Compare commits

...

7 Commits

Author SHA1 Message Date
Savanni D'Gerinel cc24655842 Muck about with flakes
It's not looking good. I still don't really understand what I'm doing.
2023-03-18 20:14:21 -04:00
Savanni D'Gerinel 9984fdd950 Start on the Rust glimmer library 2023-03-16 20:47:02 -04:00
Savanni D'Gerinel 8c644161e1 Start building a rust library 2023-03-16 17:48:20 -04:00
Savanni D'Gerinel 01b2277c53 Try packaging glimmer with esbuild 2023-03-15 15:45:45 -04:00
Savanni D'Gerinel 0c32669eb2 Remove Vite and use typescript for the build
Since this is a library that shouldn't be loaded directly into a web app, typescript is sufficient, and Vite is too hard to configure as a library.
2023-03-14 09:08:12 -04:00
Savanni D'Gerinel 2482a32f8e Start adding components 2023-03-14 00:34:39 -04:00
Savanni D'Gerinel ecc213306c Start the glimmer library 2023-03-13 22:03:51 -04:00
32 changed files with 1966 additions and 19 deletions

View File

@ -1,6 +1,75 @@
{ {
"nodes": { "nodes": {
"crane": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1678152261,
"narHash": "sha256-cPRDxwygVMleiSEGELrvAiq9vYAN4c3KK/K4UEO13vU=",
"owner": "ipetkov",
"repo": "crane",
"rev": "5291dd0aa7a52d607fc952763ef60714e4c881d4",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": {
"lastModified": 1676283394,
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": { "locked": {
"lastModified": 1659877975, "lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
@ -17,11 +86,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1675918889, "lastModified": 1678872516,
"narHash": "sha256-hy7re4F9AEQqwZxubct7jBRos6md26bmxnCjxf5utJA=", "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "49efda9011e8cdcd6c1aad30384cb1dc230c82fe", "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -48,11 +117,11 @@
}, },
"oxalica": { "oxalica": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"narHash": "sha256-0eO3S+2gLODqDoloufeC99PfQ5mthuN9JADzqFXid1Y=", "narHash": "sha256-0E/zReDMCVEV24OCISKEw0ofPkW8ZSlLwD/XDwSOFFI=",
"type": "tarball", "type": "tarball",
"url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz" "url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
}, },
@ -63,18 +132,45 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"crane": "crane",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"oxalica": "oxalica", "oxalica": "oxalica",
"unstable": "unstable" "unstable": "unstable"
} }
}, },
"rust-overlay": {
"inputs": {
"flake-utils": [
"crane",
"flake-utils"
],
"nixpkgs": [
"crane",
"nixpkgs"
]
},
"locked": {
"lastModified": 1677812689,
"narHash": "sha256-EakqhgRnjVeYJv5+BJx/NZ7/eFTMBxc4AhICUNquhUg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e53e8853aa7b0688bc270e9e6a681d22e01cf299",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1675942811, "lastModified": 1678898370,
"narHash": "sha256-/v4Z9mJmADTpXrdIlAjFa1e+gkpIIROR670UVDQFwIw=", "narHash": "sha256-xTICr1j+uat5hk9FyuPOFGxpWHdJRibwZC+ATi0RbtE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "724bfc0892363087709bd3a5a1666296759154b1", "rev": "ac718d02867a84b42522a0ece52d841188208f2c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -2,22 +2,33 @@
description = "Lumenescent Dreams Tools"; description = "Lumenescent Dreams Tools";
inputs = { inputs = {
crane.inputs.nixpkgs.follows = "nixpkgs";
crane.url = "github:ipetkov/crane";
nixpkgs.url = "nixpkgs/nixos-22.11"; nixpkgs.url = "nixpkgs/nixos-22.11";
unstable.url = "nixpkgs/nixos-unstable";
oxalica.url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"; oxalica.url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";
unstable.url = "nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
}; };
outputs = { self, nixpkgs, unstable, oxalica }: outputs = inputs@{ self, nixpkgs, unstable, oxalica, crane, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let let
version = builtins.string 0 8 self.lastModifiedDate; version = builtins.string 0 8 self.lastModifiedDate;
supportedSystems = [ "x86_64-linux" ]; pkgs = import nixpkgs { inherit system; };
craneLib = crane.lib.${system};
projects = {
glimmer = import ./glimmer/rust { inherit inputs system; };
};
in in
{ {
devShell."x86_64-linux" = packages.glimmer = projects.glimmer.package;
devShells.default =
let let
rust_overlay = import oxalica; rust_overlay = import oxalica;
pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ rust_overlay ]; }; pkgs = import nixpkgs { inherit system; overlays = [ rust_overlay ]; };
pkgs-unstable = import unstable { system = "x86_64-linux"; overlays = [ rust_overlay ]; }; pkgs-unstable = import unstable { inherit system; overlays = [ rust_overlay ]; };
rust = pkgs.rust-bin.stable."1.65.0".default.override { rust = pkgs.rust-bin.stable."1.65.0".default.override {
extensions = [ "rust-src" ]; extensions = [ "rust-src" ];
}; };
@ -27,7 +38,6 @@
buildInputs = [ buildInputs = [
pkgs.clang pkgs.clang
pkgs.entr pkgs.entr
pkgs.glade
pkgs.glib pkgs.glib
pkgs.gst_all_1.gst-plugins-bad pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-base pkgs.gst_all_1.gst-plugins-base
@ -40,9 +50,12 @@
pkgs.pipewire pkgs.pipewire
pkgs.pkg-config pkgs.pkg-config
pkgs.sqlite pkgs.sqlite
pkgs-unstable.typeshare
rust rust
]; ];
LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib"; LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib";
}; };
};
checks = projects.glimmer.checks;
});
} }

0
glimmer/Makefile Normal file
View File

2
glimmer/rust/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/target
result*

704
glimmer/rust/Cargo.lock generated Normal file
View File

@ -0,0 +1,704 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "anyhow"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "cairo-rs"
version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3125b15ec28b84c238f6f476c6034016a5f6cc0221cb514ca46c532139fc97d"
dependencies = [
"bitflags",
"cairo-sys-rs",
"glib",
"libc",
"once_cell",
"thiserror",
]
[[package]]
name = "cairo-sys-rs"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421"
dependencies = [
"glib-sys",
"libc",
"system-deps",
]
[[package]]
name = "cfg-expr"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
dependencies = [
"smallvec",
]
[[package]]
name = "field-offset"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535"
dependencies = [
"memoffset",
"rustc_version",
]
[[package]]
name = "futures-channel"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
dependencies = [
"futures-core",
]
[[package]]
name = "futures-core"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
[[package]]
name = "futures-executor"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
dependencies = [
"futures-core",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-io"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
[[package]]
name = "futures-macro"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "futures-task"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
[[package]]
name = "futures-util"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
dependencies = [
"futures-core",
"futures-macro",
"futures-task",
"pin-project-lite",
"pin-utils",
"slab",
]
[[package]]
name = "gdk-pixbuf"
version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3578c60dee9d029ad86593ed88cb40f35c1b83360e12498d055022385dd9a05"
dependencies = [
"bitflags",
"gdk-pixbuf-sys",
"gio",
"glib",
"libc",
]
[[package]]
name = "gdk-pixbuf-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016"
dependencies = [
"gio-sys",
"glib-sys",
"gobject-sys",
"libc",
"system-deps",
]
[[package]]
name = "gdk4"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb2181330ebf9d091f8ea7fed6877f7adc92114128592e1fdaeb1da28e0d01e9"
dependencies = [
"bitflags",
"cairo-rs",
"gdk-pixbuf",
"gdk4-sys",
"gio",
"glib",
"libc",
"pango",
]
[[package]]
name = "gdk4-sys"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de55cb49432901fe2b3534177fa06844665b9b0911d85d8601a8d8b88b7791db"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
"gio-sys",
"glib-sys",
"gobject-sys",
"libc",
"pango-sys",
"pkg-config",
"system-deps",
]
[[package]]
name = "gio"
version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a1c84b4534a290a29160ef5c6eff2a9c95833111472e824fc5cb78b513dd092"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-io",
"futures-util",
"gio-sys",
"glib",
"libc",
"once_cell",
"pin-project-lite",
"smallvec",
"thiserror",
]
[[package]]
name = "gio-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229"
dependencies = [
"glib-sys",
"gobject-sys",
"libc",
"system-deps",
"winapi",
]
[[package]]
name = "glib"
version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddd4df61a866ed7259d6189b8bcb1464989a77f1d85d25d002279bbe9dd38b2f"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"futures-util",
"gio-sys",
"glib-macros",
"glib-sys",
"gobject-sys",
"libc",
"once_cell",
"smallvec",
"thiserror",
]
[[package]]
name = "glib-build-tools"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "251935cb159350458a627642b0852a7fb8e027e3c5916dc2cebcd70f025de3fc"
[[package]]
name = "glib-macros"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf"
dependencies = [
"anyhow",
"heck",
"proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "glib-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65"
dependencies = [
"libc",
"system-deps",
]
[[package]]
name = "glimmer"
version = "0.1.0"
dependencies = [
"glib",
"glib-build-tools",
"gtk4",
]
[[package]]
name = "gobject-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1"
dependencies = [
"glib-sys",
"libc",
"system-deps",
]
[[package]]
name = "graphene-rs"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95ecb4d347e6d09820df3bdfd89a74a8eec07753a06bb92a3aac3ad31d04447b"
dependencies = [
"glib",
"graphene-sys",
"libc",
]
[[package]]
name = "graphene-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9aa82337d3972b4eafdea71e607c23f47be6f27f749aab613f1ad8ddbe6dcd6"
dependencies = [
"glib-sys",
"libc",
"pkg-config",
"system-deps",
]
[[package]]
name = "gsk4"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "591239f5c52ca803b222124ac9c47f230cd180cee9b114c4d672e4a94b74f491"
dependencies = [
"bitflags",
"cairo-rs",
"gdk4",
"glib",
"graphene-rs",
"gsk4-sys",
"libc",
"pango",
]
[[package]]
name = "gsk4-sys"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "195a63f0be42529f98c3eb3bae0decfd0428ba2cc683b3e20ced88f340904ec5"
dependencies = [
"cairo-sys-rs",
"gdk4-sys",
"glib-sys",
"gobject-sys",
"graphene-sys",
"libc",
"pango-sys",
"system-deps",
]
[[package]]
name = "gtk4"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd89dba65def483a233dc4fdd3f3dab01576e3d83f80f6c9303ebe421661855e"
dependencies = [
"bitflags",
"cairo-rs",
"field-offset",
"futures-channel",
"gdk-pixbuf",
"gdk4",
"gio",
"glib",
"graphene-rs",
"gsk4",
"gtk4-macros",
"gtk4-sys",
"libc",
"once_cell",
"pango",
]
[[package]]
name = "gtk4-macros"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "832687a415d9d8bc11fe9c17dda1bf13ee262c41b995dd4df1d1cce33cead405"
dependencies = [
"anyhow",
"proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "gtk4-sys"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e370564e3fdacff7cffc99f7366b6a4689feb44e819d3ccee598a9a215b71605"
dependencies = [
"cairo-sys-rs",
"gdk-pixbuf-sys",
"gdk4-sys",
"gio-sys",
"glib-sys",
"gobject-sys",
"graphene-sys",
"gsk4-sys",
"libc",
"pango-sys",
"system-deps",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "indexmap"
version = "1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
dependencies = [
"autocfg",
"hashbrown",
]
[[package]]
name = "libc"
version = "0.2.140"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "pango"
version = "0.16.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdff66b271861037b89d028656184059e03b0b6ccb36003820be19f7200b1e94"
dependencies = [
"bitflags",
"gio",
"glib",
"libc",
"once_cell",
"pango-sys",
]
[[package]]
name = "pango-sys"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f"
dependencies = [
"glib-sys",
"gobject-sys",
"libc",
"system-deps",
]
[[package]]
name = "pin-project-lite"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
[[package]]
name = "proc-macro-crate"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
dependencies = [
"once_cell",
"toml_edit",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro2"
version = "1.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rustc_version"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver",
]
[[package]]
name = "semver"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
[[package]]
name = "serde"
version = "1.0.156"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
[[package]]
name = "slab"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
dependencies = [
"autocfg",
]
[[package]]
name = "smallvec"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "system-deps"
version = "6.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
dependencies = [
"cfg-expr",
"heck",
"pkg-config",
"toml",
"version-compare",
]
[[package]]
name = "thiserror"
version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "toml_datetime"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
[[package]]
name = "toml_edit"
version = "0.19.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc18466501acd8ac6a3f615dd29a3438f8ca6bb3b19537138b3106e575621274"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "unicode-ident"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
[[package]]
name = "version-compare"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "winnow"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23d020b441f92996c80d94ae9166e8501e59c7bb56121189dc9eab3bd8216966"
dependencies = [
"memchr",
]

13
glimmer/rust/Cargo.toml Normal file
View File

@ -0,0 +1,13 @@
[package]
name = "glimmer"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
gtk = { version = "0.5", package = "gtk4" }
glib = { version = "0.16" }
[build-dependencies]
glib-build-tools = "0.16"

49
glimmer/rust/default.nix Normal file
View File

@ -0,0 +1,49 @@
{ inputs, system }:
let
pkgs = import inputs.unstable { inherit system; };
craneLib = inputs.crane.lib.${system};
src = ./.;
cargoArtifacts = craneLib.buildDepsOnly {
name = "glimmer-deps";
inherit src;
nativeBuildInputs = [
pkgs.pkg-config
pkgs.glib
pkgs.gtk4
];
};
glimmer-clippy = craneLib.cargoClippy {
name = "glimmer-clippy";
inherit cargoArtifacts src;
cargoClippyExtraArgs = "-- --deny warnings";
};
glimmer = craneLib.vendorCargoDeps {
name = "glimmer";
inherit cargoArtifacts src;
nativeBuildInputs = [
pkgs.pkg-config
pkgs.glib
pkgs.gtk4
];
};
in
{
package = glimmer;
/*
devShells.default = pkgs.mkShell {
inputsFrom = builtins.attrValues self.checks.${system};
nativeBuildInputs = with pkgs; [
cargo
rustc
];
};
*/
checks = {
inherit glimmer glimmer-clippy;
};
}

64
glimmer/rust/src/lib.rs Normal file
View File

@ -0,0 +1,64 @@
use glib::Object;
use gtk::{prelude::*, subclass::prelude::*};
pub struct Card<C> {
pub children: Vec<C>,
}
#[derive(Default)]
pub struct CardElementPrivate {
children: Vec<gtk::Widget>,
}
#[glib::object_subclass]
impl ObjectSubclass for CardElementPrivate {
const NAME: &'static str = "CardElement";
type Type = CardElement;
type ParentType = gtk::Box;
}
impl ObjectImpl for CardElementPrivate {}
impl WidgetImpl for CardElementPrivate {}
impl BoxImpl for CardElementPrivate {}
glib::wrapper! {
pub struct CardElement(ObjectSubclass<CardElementPrivate>) @extends gtk::Widget, gtk::Box;
}
impl CardElement {
pub fn new() -> Self {
Object::builder().build()
}
}
#[derive(Clone, Debug)]
pub struct TextField {
pub placeholder: String,
pub text: String,
}
#[derive(Default)]
pub struct TextFieldElementPrivate {}
#[glib::object_subclass]
impl ObjectSubclass for TextFieldElementPrivate {
const NAME: &'static str = "TextFieldElement";
type Type = TextFieldElement;
type ParentType = gtk::Box;
}
impl ObjectImpl for TextFieldElementPrivate {}
impl WidgetImpl for TextFieldElementPrivate {}
impl BoxImpl for TextFieldElementPrivate {}
glib::wrapper! {
pub struct TextFieldElement(ObjectSubclass<TextFieldElementPrivate>) @extends gtk::Widget, gtk::Box;
}
#[cfg(test)]
mod test {
#[test]
fn it_succeeds() {
assert!(true);
}
}

3
glimmer/rust/src/main.rs Normal file
View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

24
glimmer/web/.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

3
glimmer/web/Makefile Normal file
View File

@ -0,0 +1,3 @@
dev:
find src/ | entr npm run build

View File

@ -0,0 +1,5 @@
export declare class DataCard extends HTMLElement {
constructor();
connectedCallback(): void;
}
//# sourceMappingURL=DataCard.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"DataCard.d.ts","sourceRoot":"","sources":["../../src/components/DataCard.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,WAAW;;IAKvC,iBAAiB;CAGlB"}

View File

@ -0,0 +1,9 @@
export class DataCard extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.classList.add("card");
}
}
//# sourceMappingURL=DataCard.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"DataCard.js","sourceRoot":"","sources":["../../src/components/DataCard.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,WAAW;IACvC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF"}

View File

@ -0,0 +1,11 @@
export declare class TextField extends HTMLElement {
field: HTMLInputElement;
static get observedAttributes(): string[];
constructor();
get placeholder(): string | null;
set placeholder(text: string | null);
get text(): string | null;
set text(text: string | null);
connectedCallback(): void;
}
//# sourceMappingURL=TextField.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../src/components/TextField.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,WAAW;IACxC,KAAK,EAAE,gBAAgB,CAAC;IAExB,MAAM,KAAK,kBAAkB,aAE5B;;IAQD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAOlC;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAO3B;IAED,iBAAiB;CAGlB"}

View File

@ -0,0 +1,38 @@
export class TextField extends HTMLElement {
field;
static get observedAttributes() {
return ["placeholder", "text"];
}
constructor() {
super();
this.field = document.createElement("input");
}
get placeholder() {
return this.getAttribute("placeholder");
}
set placeholder(text) {
if (text) {
this.setAttribute("placeholder", text);
}
else {
this.removeAttribute("placeholder");
}
this.field.placeholder = text || "";
}
get text() {
return this.getAttribute("text");
}
set text(text) {
if (text) {
this.setAttribute("text", text);
}
else {
this.removeAttribute("text");
}
this.field.placeholder = text || "";
}
connectedCallback() {
this.appendChild(this.field);
}
}
//# sourceMappingURL=TextField.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../src/components/TextField.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,WAAW;IACxC,KAAK,CAAmB;IAExB,MAAM,KAAK,kBAAkB;QAC3B,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,IAAmB;QACjC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,IAAmB;QAC1B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}

12
glimmer/web/build/index.d.ts vendored Normal file
View File

@ -0,0 +1,12 @@
import "./style.css";
import { DataCard } from "./components/DataCard";
import { TextField } from "./components/TextField";
declare global {
interface HTMLElementTagNameMap {
"data-card": DataCard;
"text-field": TextField;
}
}
declare const init: () => void;
export { init, DataCard, TextField };
//# sourceMappingURL=index.d.ts.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;QACtB,YAAY,EAAE,SAAS,CAAC;KACzB;CACF;AAID,QAAA,MAAM,IAAI,YAGT,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC"}

View File

@ -0,0 +1,10 @@
import "./style.css";
import { DataCard } from "./components/DataCard";
import { TextField } from "./components/TextField";
console.log("components initialized");
const init = () => {
window.customElements.define("data-card", DataCard);
window.customElements.define("text-field", TextField);
};
export { init, DataCard, TextField };
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASnD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAEtC,MAAM,IAAI,GAAG,GAAG,EAAE;IAChB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC"}

7
glimmer/web/log.txt Normal file
View File

@ -0,0 +1,7 @@
File dev
Warnings :
0 : open file error
Your trace has 0 errors and 1 warnings.

610
glimmer/web/package-lock.json generated Normal file
View File

@ -0,0 +1,610 @@
{
"name": "glimmer",
"version": "0.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "glimmer",
"version": "0.0.0",
"devDependencies": {
"esbuild": "^0.17.11",
"typescript": "^4.9.5"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.11.tgz",
"integrity": "sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz",
"integrity": "sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.11.tgz",
"integrity": "sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz",
"integrity": "sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz",
"integrity": "sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz",
"integrity": "sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz",
"integrity": "sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz",
"integrity": "sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz",
"integrity": "sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz",
"integrity": "sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz",
"integrity": "sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==",
"cpu": [
"loong64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz",
"integrity": "sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==",
"cpu": [
"mips64el"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz",
"integrity": "sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz",
"integrity": "sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==",
"cpu": [
"riscv64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz",
"integrity": "sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==",
"cpu": [
"s390x"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz",
"integrity": "sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz",
"integrity": "sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz",
"integrity": "sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz",
"integrity": "sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz",
"integrity": "sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz",
"integrity": "sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz",
"integrity": "sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/esbuild": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.11.tgz",
"integrity": "sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==",
"dev": true,
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.17.11",
"@esbuild/android-arm64": "0.17.11",
"@esbuild/android-x64": "0.17.11",
"@esbuild/darwin-arm64": "0.17.11",
"@esbuild/darwin-x64": "0.17.11",
"@esbuild/freebsd-arm64": "0.17.11",
"@esbuild/freebsd-x64": "0.17.11",
"@esbuild/linux-arm": "0.17.11",
"@esbuild/linux-arm64": "0.17.11",
"@esbuild/linux-ia32": "0.17.11",
"@esbuild/linux-loong64": "0.17.11",
"@esbuild/linux-mips64el": "0.17.11",
"@esbuild/linux-ppc64": "0.17.11",
"@esbuild/linux-riscv64": "0.17.11",
"@esbuild/linux-s390x": "0.17.11",
"@esbuild/linux-x64": "0.17.11",
"@esbuild/netbsd-x64": "0.17.11",
"@esbuild/openbsd-x64": "0.17.11",
"@esbuild/sunos-x64": "0.17.11",
"@esbuild/win32-arm64": "0.17.11",
"@esbuild/win32-ia32": "0.17.11",
"@esbuild/win32-x64": "0.17.11"
}
},
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
}
},
"dependencies": {
"@esbuild/android-arm": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.11.tgz",
"integrity": "sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz",
"integrity": "sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.11.tgz",
"integrity": "sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz",
"integrity": "sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz",
"integrity": "sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz",
"integrity": "sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz",
"integrity": "sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz",
"integrity": "sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz",
"integrity": "sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz",
"integrity": "sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz",
"integrity": "sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz",
"integrity": "sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz",
"integrity": "sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz",
"integrity": "sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz",
"integrity": "sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz",
"integrity": "sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz",
"integrity": "sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz",
"integrity": "sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz",
"integrity": "sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz",
"integrity": "sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz",
"integrity": "sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz",
"integrity": "sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==",
"dev": true,
"optional": true
},
"esbuild": {
"version": "0.17.11",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.11.tgz",
"integrity": "sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.17.11",
"@esbuild/android-arm64": "0.17.11",
"@esbuild/android-x64": "0.17.11",
"@esbuild/darwin-arm64": "0.17.11",
"@esbuild/darwin-x64": "0.17.11",
"@esbuild/freebsd-arm64": "0.17.11",
"@esbuild/freebsd-x64": "0.17.11",
"@esbuild/linux-arm": "0.17.11",
"@esbuild/linux-arm64": "0.17.11",
"@esbuild/linux-ia32": "0.17.11",
"@esbuild/linux-loong64": "0.17.11",
"@esbuild/linux-mips64el": "0.17.11",
"@esbuild/linux-ppc64": "0.17.11",
"@esbuild/linux-riscv64": "0.17.11",
"@esbuild/linux-s390x": "0.17.11",
"@esbuild/linux-x64": "0.17.11",
"@esbuild/netbsd-x64": "0.17.11",
"@esbuild/openbsd-x64": "0.17.11",
"@esbuild/sunos-x64": "0.17.11",
"@esbuild/win32-arm64": "0.17.11",
"@esbuild/win32-ia32": "0.17.11",
"@esbuild/win32-x64": "0.17.11"
}
},
"typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true
}
}
}

18
glimmer/web/package.json Normal file
View File

@ -0,0 +1,18 @@
{
"name": "glimmer",
"private": true,
"version": "0.0.0",
"type": "module",
"main": "dist/glimmer",
"types": "dist/glimmer.d.ts",
"scripts": {
"build": "tsc && esbuild src/index.ts --bundle --outfile=dist/glimmer.js && cp build/index.d.ts dist/glimmer.d.ts"
},
"files": [
"/dist"
],
"devDependencies": {
"esbuild": "^0.17.11",
"typescript": "^4.9.5"
}
}

View File

@ -0,0 +1,9 @@
export class DataCard extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
this.classList.add("card");
}
}

View File

@ -0,0 +1,43 @@
export class TextField extends HTMLElement {
field: HTMLInputElement;
static get observedAttributes() {
return ["placeholder", "text"];
}
constructor() {
super();
this.field = document.createElement("input");
}
get placeholder(): string | null {
return this.getAttribute("placeholder");
}
set placeholder(text: string | null) {
if (text) {
this.setAttribute("placeholder", text);
} else {
this.removeAttribute("placeholder");
}
this.field.placeholder = text || "";
}
get text(): string | null {
return this.getAttribute("text");
}
set text(text: string | null) {
if (text) {
this.setAttribute("text", text);
} else {
this.removeAttribute("text");
}
this.field.placeholder = text || "";
}
connectedCallback() {
this.appendChild(this.field);
}
}

19
glimmer/web/src/index.ts Normal file
View File

@ -0,0 +1,19 @@
import "./style.css";
import { DataCard } from "./components/DataCard";
import { TextField } from "./components/TextField";
declare global {
interface HTMLElementTagNameMap {
"data-card": DataCard;
"text-field": TextField;
}
}
console.log("components initialized");
const init = () => {
window.customElements.define("data-card", DataCard);
window.customElements.define("text-field", TextField);
};
export { init, DataCard, TextField };

155
glimmer/web/src/style.css Normal file
View File

@ -0,0 +1,155 @@
:root {
--color-grey-900: hsl(240 5% 20%);
--color-grey-800: hsl(240 5% 25%);
--color-grey-700: hsl(240 5% 35%);
--color-grey-600: hsl(240 5% 45%);
--color-grey-500: hsl(240 5% 50%);
--color-grey-400: hsl(240 5% 60%);
--color-grey-300: hsl(240 5% 75%);
--color-grey-200: hsl(240 5% 90%);
--color-grey-100: hsl(240 10% 95%);
--color-blue-900: hsl(240 100% 10%);
--color-blue-800: hsl(240 100% 20%);
--color-blue-700: hsl(240 100% 30%);
--color-blue-600: hsl(240 100% 40%);
--color-blue-500: hsl(235 100% 50%);
--color-blue-400: hsl(230 100% 60%);
--color-blue-300: hsl(225 100% 70%);
--color-blue-200: hsl(220 100% 75%);
--color-blue-100: hsl(220 100% 80%);
--color-purple-900: hsl(280 100% 10%);
--color-purple-800: hsl(280 100% 20%);
--color-purple-700: hsl(280 100% 30%);
--color-purple-600: hsl(280 100% 40%);
--color-purple-500: hsl(280 100% 50%);
--color-purple-400: hsl(280 100% 60%);
--color-purple-300: hsl(280 100% 70%);
--color-purple-200: hsl(280 100% 80%);
--color-purple-100: hsl(280 100% 90%);
--color-red-900: hsl(10 100% 10%);
--color-red-800: hsl(10 100% 20%);
--color-red-700: hsl(10 100% 30%);
--color-red-600: hsl(10 100% 40%);
--color-red-500: hsl(10 100% 50%);
--color-red-400: hsl(8 100% 60%);
--color-red-300: hsl(5 100% 70%);
--color-red-200: hsl(0 100% 80%);
--color-red-100: hsl(0 100% 90%);
--shadow-900: rgba(0, 0, 0, .20);
--shadow-500: rgba(0, 0, 0, .15);
--shadow-100: rgba(0, 0, 0, .1);
--border-color: var(--color-grey-600);
--border-shadow: var(--color-grey-800);
--background-color-light: var(--color-grey-100);
--background-color-medium: var(--color-grey-200);
--background-color-dark: var(--color-grey-300);
--primary-color-light: var(--color-blue-100);
--primary-color-medium: var(--color-blue-500);
--primary-color-dark: var(--color-blue-700);
--accent-color-light: var(--color-purple-100);
--accent-color-medium: var(--color-purple-500);
--accent-color-dark: var(--color-purple-700);
--elevation-recessed: inset 1px 2px 3px var(--shadow-500), inset 0 1px 2px var(--shadow-900);
--elevation-low: 1px 2px 3px var(--shadow-500), 0 1px 2px var(--shadow-900);
--elevation-medium: 2px 6px 5px var(--shadow-500), 0 1px 2px var(--shadow-900);
--elevation-high: 3px 8px 6px var(--shadow-900), 0 0px 3px var(--shadow-900);
}
.swatch-grey-900 { background-color: var(--color-grey-900); }
.swatch-grey-800 { background-color: var(--color-grey-800); }
.swatch-grey-700 { background-color: var(--color-grey-700); }
.swatch-grey-600 { background-color: var(--color-grey-600); }
.swatch-grey-500 { background-color: var(--color-grey-500); }
.swatch-grey-400 { background-color: var(--color-grey-400); }
.swatch-grey-300 { background-color: var(--color-grey-300); }
.swatch-grey-200 { background-color: var(--color-grey-200); }
.swatch-grey-100 { background-color: var(--color-grey-100); }
.swatch-blue-900 { background-color: var(--color-blue-900); }
.swatch-blue-800 { background-color: var(--color-blue-800); }
.swatch-blue-700 { background-color: var(--color-blue-700); }
.swatch-blue-600 { background-color: var(--color-blue-600); }
.swatch-blue-500 { background-color: var(--color-blue-500); }
.swatch-blue-400 { background-color: var(--color-blue-400); }
.swatch-blue-300 { background-color: var(--color-blue-300); }
.swatch-blue-200 { background-color: var(--color-blue-200); }
.swatch-blue-100 { background-color: var(--color-blue-100); }
.swatch-purple-900 { background-color: var(--color-purple-900); }
.swatch-purple-800 { background-color: var(--color-purple-800); }
.swatch-purple-700 { background-color: var(--color-purple-700); }
.swatch-purple-600 { background-color: var(--color-purple-600); }
.swatch-purple-500 { background-color: var(--color-purple-500); }
.swatch-purple-400 { background-color: var(--color-purple-400); }
.swatch-purple-300 { background-color: var(--color-purple-300); }
.swatch-purple-200 { background-color: var(--color-purple-200); }
.swatch-purple-100 { background-color: var(--color-purple-100); }
.swatch-red-900 { background-color: var(--color-red-900); }
.swatch-red-800 { background-color: var(--color-red-800); }
.swatch-red-700 { background-color: var(--color-red-700); }
.swatch-red-600 { background-color: var(--color-red-600); }
.swatch-red-500 { background-color: var(--color-red-500); }
.swatch-red-400 { background-color: var(--color-red-400); }
.swatch-red-300 { background-color: var(--color-red-300); }
.swatch-red-200 { background-color: var(--color-red-200); }
.swatch-red-100 { background-color: var(--color-red-100); }
body {
background-color: var(--background-color-medium);
}
.colorset {
display: flex;
gap: 4px;
margin: 16px 0px 16px 0px;
}
.swatch {
border: 1px solid black;
border-radius: 5px;
width: 100px;
height: 50px;
}
.flex {
display: flex;
gap: 8px;
margin: 16px 0px 16px 0px;
}
.card {
display: block;
border-radius: 5px;
padding: 8px;
width: 500px;
height: 100px;
}
.card--recessed {
border: 1px solid var(--border-color);
box-shadow: var(--elevation-recessed);
}
.card--low {
border: 1px solid var(--border-color);
box-shadow: var(--elevation-low);
}
.card--medium {
border: 1px solid var(--border-color);
box-shadow: var(--elevation-medium);
}
.card--high {
border: 1px solid var(--border-color);
box-shadow: var(--elevation-high);
}

1
glimmer/web/src/vite-env.d.ts vendored Normal file
View File

@ -0,0 +1 @@
/// <reference types="vite/client" />

23
glimmer/web/tsconfig.json Normal file
View File

@ -0,0 +1,23 @@
{
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ESNext", "DOM"],
"moduleResolution": "Node",
"strict": true,
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"skipLibCheck": true,
"sourceMap": true,
"declaration": true,
"declarationMap": true,
"allowSyntheticDefaultImports": true,
"outDir": "./build"
},
"include": ["src"]
}