@weave-framework/ui 0.2.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +17 -0
- package/dist/autocomplete/autocomplete.d.ts +86 -0
- package/dist/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete/autocomplete.js +263 -0
- package/dist/autocomplete/autocomplete.js.map +1 -0
- package/dist/badge/badge.d.ts +39 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +59 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/bottom-sheet/bottom-sheet.d.ts +21 -0
- package/dist/bottom-sheet/bottom-sheet.d.ts.map +1 -0
- package/dist/bottom-sheet/bottom-sheet.js +82 -0
- package/dist/bottom-sheet/bottom-sheet.js.map +1 -0
- package/dist/button/button.d.ts +47 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.js +47 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button-toggle/button-toggle.d.ts +65 -0
- package/dist/button-toggle/button-toggle.d.ts.map +1 -0
- package/dist/button-toggle/button-toggle.js +127 -0
- package/dist/button-toggle/button-toggle.js.map +1 -0
- package/dist/card/card.d.ts +30 -0
- package/dist/card/card.d.ts.map +1 -0
- package/dist/card/card.js +32 -0
- package/dist/card/card.js.map +1 -0
- package/dist/cdk/bidi.d.ts +19 -0
- package/dist/cdk/bidi.d.ts.map +1 -0
- package/dist/cdk/bidi.js +32 -0
- package/dist/cdk/bidi.js.map +1 -0
- package/dist/cdk/breakpoints.d.ts +21 -0
- package/dist/cdk/breakpoints.d.ts.map +1 -0
- package/dist/cdk/breakpoints.js +39 -0
- package/dist/cdk/breakpoints.js.map +1 -0
- package/dist/cdk/clipboard.d.ts +8 -0
- package/dist/cdk/clipboard.d.ts.map +1 -0
- package/dist/cdk/clipboard.js +38 -0
- package/dist/cdk/clipboard.js.map +1 -0
- package/dist/cdk/data-source.d.ts +41 -0
- package/dist/cdk/data-source.d.ts.map +1 -0
- package/dist/cdk/data-source.js +36 -0
- package/dist/cdk/data-source.js.map +1 -0
- package/dist/cdk/date-adapter.d.ts +63 -0
- package/dist/cdk/date-adapter.d.ts.map +1 -0
- package/dist/cdk/date-adapter.js +155 -0
- package/dist/cdk/date-adapter.js.map +1 -0
- package/dist/cdk/drag-drop.d.ts +77 -0
- package/dist/cdk/drag-drop.d.ts.map +1 -0
- package/dist/cdk/drag-drop.js +268 -0
- package/dist/cdk/drag-drop.js.map +1 -0
- package/dist/cdk/focus-monitor.d.ts +27 -0
- package/dist/cdk/focus-monitor.d.ts.map +1 -0
- package/dist/cdk/focus-monitor.js +66 -0
- package/dist/cdk/focus-monitor.js.map +1 -0
- package/dist/cdk/focus-trap.d.ts +39 -0
- package/dist/cdk/focus-trap.d.ts.map +1 -0
- package/dist/cdk/focus-trap.js +127 -0
- package/dist/cdk/focus-trap.js.map +1 -0
- package/dist/cdk/index.d.ts +29 -0
- package/dist/cdk/index.d.ts.map +1 -0
- package/dist/cdk/index.js +29 -0
- package/dist/cdk/index.js.map +1 -0
- package/dist/cdk/interactivity.d.ts +19 -0
- package/dist/cdk/interactivity.d.ts.map +1 -0
- package/dist/cdk/interactivity.js +70 -0
- package/dist/cdk/interactivity.js.map +1 -0
- package/dist/cdk/key-manager.d.ts +41 -0
- package/dist/cdk/key-manager.d.ts.map +1 -0
- package/dist/cdk/key-manager.js +126 -0
- package/dist/cdk/key-manager.js.map +1 -0
- package/dist/cdk/live-announcer.d.ts +19 -0
- package/dist/cdk/live-announcer.d.ts.map +1 -0
- package/dist/cdk/live-announcer.js +48 -0
- package/dist/cdk/live-announcer.js.map +1 -0
- package/dist/cdk/observers.d.ts +17 -0
- package/dist/cdk/observers.d.ts.map +1 -0
- package/dist/cdk/observers.js +35 -0
- package/dist/cdk/observers.js.map +1 -0
- package/dist/cdk/overlay.d.ts +73 -0
- package/dist/cdk/overlay.d.ts.map +1 -0
- package/dist/cdk/overlay.js +154 -0
- package/dist/cdk/overlay.js.map +1 -0
- package/dist/cdk/platform.d.ts +22 -0
- package/dist/cdk/platform.d.ts.map +1 -0
- package/dist/cdk/platform.js +55 -0
- package/dist/cdk/platform.js.map +1 -0
- package/dist/cdk/portal.d.ts +31 -0
- package/dist/cdk/portal.d.ts.map +1 -0
- package/dist/cdk/portal.js +55 -0
- package/dist/cdk/portal.js.map +1 -0
- package/dist/cdk/positioning.d.ts +53 -0
- package/dist/cdk/positioning.d.ts.map +1 -0
- package/dist/cdk/positioning.js +140 -0
- package/dist/cdk/positioning.js.map +1 -0
- package/dist/cdk/scroll.d.ts +43 -0
- package/dist/cdk/scroll.d.ts.map +1 -0
- package/dist/cdk/scroll.js +97 -0
- package/dist/cdk/scroll.js.map +1 -0
- package/dist/cdk/selection-model.d.ts +50 -0
- package/dist/cdk/selection-model.d.ts.map +1 -0
- package/dist/cdk/selection-model.js +77 -0
- package/dist/cdk/selection-model.js.map +1 -0
- package/dist/cdk/virtual-scroll.d.ts +50 -0
- package/dist/cdk/virtual-scroll.d.ts.map +1 -0
- package/dist/cdk/virtual-scroll.js +92 -0
- package/dist/cdk/virtual-scroll.js.map +1 -0
- package/dist/checkbox/checkbox.d.ts +65 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +82 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/chips/chips.d.ts +65 -0
- package/dist/chips/chips.d.ts.map +1 -0
- package/dist/chips/chips.js +119 -0
- package/dist/chips/chips.js.map +1 -0
- package/dist/context-menu/context-menu.d.ts +32 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +63 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/datepicker/datepicker.d.ts +100 -0
- package/dist/datepicker/datepicker.d.ts.map +1 -0
- package/dist/datepicker/datepicker.js +440 -0
- package/dist/datepicker/datepicker.js.map +1 -0
- package/dist/dialog/dialog.d.ts +27 -0
- package/dist/dialog/dialog.d.ts.map +1 -0
- package/dist/dialog/dialog.js +47 -0
- package/dist/dialog/dialog.js.map +1 -0
- package/dist/dialog/modal-core.d.ts +42 -0
- package/dist/dialog/modal-core.d.ts.map +1 -0
- package/dist/dialog/modal-core.js +103 -0
- package/dist/dialog/modal-core.js.map +1 -0
- package/dist/expansion/expansion.d.ts +71 -0
- package/dist/expansion/expansion.d.ts.map +1 -0
- package/dist/expansion/expansion.js +127 -0
- package/dist/expansion/expansion.js.map +1 -0
- package/dist/form-field/form-field.d.ts +48 -0
- package/dist/form-field/form-field.d.ts.map +1 -0
- package/dist/form-field/form-field.js +89 -0
- package/dist/form-field/form-field.js.map +1 -0
- package/dist/grid-list/grid-list.d.ts +25 -0
- package/dist/grid-list/grid-list.d.ts.map +1 -0
- package/dist/grid-list/grid-list.js +22 -0
- package/dist/grid-list/grid-list.js.map +1 -0
- package/dist/icon/icon.d.ts +40 -0
- package/dist/icon/icon.d.ts.map +1 -0
- package/dist/icon/icon.js +99 -0
- package/dist/icon/icon.js.map +1 -0
- package/dist/icon/icons.d.ts +60 -0
- package/dist/icon/icons.d.ts.map +1 -0
- package/dist/icon/icons.js +126 -0
- package/dist/icon/icons.js.map +1 -0
- package/dist/icon/lucide-icons.d.ts +11 -0
- package/dist/icon/lucide-icons.d.ts.map +1 -0
- package/dist/icon/lucide-icons.js +65 -0
- package/dist/icon/lucide-icons.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/input/input.d.ts +90 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +138 -0
- package/dist/input/input.js.map +1 -0
- package/dist/internal/compose.d.ts +26 -0
- package/dist/internal/compose.d.ts.map +1 -0
- package/dist/internal/compose.js +32 -0
- package/dist/internal/compose.js.map +1 -0
- package/dist/list/list.d.ts +70 -0
- package/dist/list/list.d.ts.map +1 -0
- package/dist/list/list.js +144 -0
- package/dist/list/list.js.map +1 -0
- package/dist/menu/menu-core.d.ts +56 -0
- package/dist/menu/menu-core.d.ts.map +1 -0
- package/dist/menu/menu-core.js +122 -0
- package/dist/menu/menu-core.js.map +1 -0
- package/dist/menu/menu.d.ts +31 -0
- package/dist/menu/menu.d.ts.map +1 -0
- package/dist/menu/menu.js +68 -0
- package/dist/menu/menu.js.map +1 -0
- package/dist/menubar/menubar.d.ts +49 -0
- package/dist/menubar/menubar.d.ts.map +1 -0
- package/dist/menubar/menubar.js +162 -0
- package/dist/menubar/menubar.js.map +1 -0
- package/dist/paginator/paginator.d.ts +89 -0
- package/dist/paginator/paginator.d.ts.map +1 -0
- package/dist/paginator/paginator.js +159 -0
- package/dist/paginator/paginator.js.map +1 -0
- package/dist/popover-edit/popover-edit.d.ts +33 -0
- package/dist/popover-edit/popover-edit.d.ts.map +1 -0
- package/dist/popover-edit/popover-edit.js +107 -0
- package/dist/popover-edit/popover-edit.js.map +1 -0
- package/dist/progress-bar/progress-bar.d.ts +32 -0
- package/dist/progress-bar/progress-bar.d.ts.map +1 -0
- package/dist/progress-bar/progress-bar.js +42 -0
- package/dist/progress-bar/progress-bar.js.map +1 -0
- package/dist/progress-spinner/progress-spinner.d.ts +25 -0
- package/dist/progress-spinner/progress-spinner.d.ts.map +1 -0
- package/dist/progress-spinner/progress-spinner.js +25 -0
- package/dist/progress-spinner/progress-spinner.js.map +1 -0
- package/dist/radio/radio.d.ts +68 -0
- package/dist/radio/radio.d.ts.map +1 -0
- package/dist/radio/radio.js +81 -0
- package/dist/radio/radio.js.map +1 -0
- package/dist/ripple/ripple.d.ts +20 -0
- package/dist/ripple/ripple.d.ts.map +1 -0
- package/dist/ripple/ripple.js +41 -0
- package/dist/ripple/ripple.js.map +1 -0
- package/dist/select/select.d.ts +83 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +320 -0
- package/dist/select/select.js.map +1 -0
- package/dist/shared/options.d.ts +44 -0
- package/dist/shared/options.d.ts.map +1 -0
- package/dist/shared/options.js +59 -0
- package/dist/shared/options.js.map +1 -0
- package/dist/shared/positions.d.ts +20 -0
- package/dist/shared/positions.d.ts.map +1 -0
- package/dist/shared/positions.js +27 -0
- package/dist/shared/positions.js.map +1 -0
- package/dist/sidenav/sidenav.d.ts +65 -0
- package/dist/sidenav/sidenav.d.ts.map +1 -0
- package/dist/sidenav/sidenav.js +120 -0
- package/dist/sidenav/sidenav.js.map +1 -0
- package/dist/slide-toggle/slide-toggle.d.ts +56 -0
- package/dist/slide-toggle/slide-toggle.d.ts.map +1 -0
- package/dist/slide-toggle/slide-toggle.js +62 -0
- package/dist/slide-toggle/slide-toggle.js.map +1 -0
- package/dist/slider/slider.d.ts +69 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +184 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/snackbar/snackbar.d.ts +25 -0
- package/dist/snackbar/snackbar.d.ts.map +1 -0
- package/dist/snackbar/snackbar.js +135 -0
- package/dist/snackbar/snackbar.js.map +1 -0
- package/dist/stepper/stepper.d.ts +87 -0
- package/dist/stepper/stepper.d.ts.map +1 -0
- package/dist/stepper/stepper.js +142 -0
- package/dist/stepper/stepper.js.map +1 -0
- package/dist/table/table.d.ts +140 -0
- package/dist/table/table.d.ts.map +1 -0
- package/dist/table/table.js +312 -0
- package/dist/table/table.js.map +1 -0
- package/dist/tabs/tabs.d.ts +64 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +126 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/timepicker/timepicker.d.ts +83 -0
- package/dist/timepicker/timepicker.d.ts.map +1 -0
- package/dist/timepicker/timepicker.js +303 -0
- package/dist/timepicker/timepicker.js.map +1 -0
- package/dist/toolbar/toolbar.d.ts +34 -0
- package/dist/toolbar/toolbar.d.ts.map +1 -0
- package/dist/toolbar/toolbar.js +35 -0
- package/dist/toolbar/toolbar.js.map +1 -0
- package/dist/tooltip/tooltip.d.ts +30 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -0
- package/dist/tooltip/tooltip.js +109 -0
- package/dist/tooltip/tooltip.js.map +1 -0
- package/dist/tree/tree.d.ts +100 -0
- package/dist/tree/tree.d.ts.map +1 -0
- package/dist/tree/tree.js +288 -0
- package/dist/tree/tree.js.map +1 -0
- package/package.json +230 -0
- package/src/styles/_api.scss +384 -0
- package/src/styles/_helpers.scss +101 -0
- package/src/styles/_index.scss +12 -0
- package/src/styles/_ref.scss +20 -0
- package/src/styles/_sass-utils.scss +14 -0
- package/src/styles/_token-utils.scss +24 -0
- package/src/styles/components/autocomplete/_index.scss +10 -0
- package/src/styles/components/autocomplete/_styles.scss +46 -0
- package/src/styles/components/autocomplete/_tokens.scss +28 -0
- package/src/styles/components/badge/_index.scss +12 -0
- package/src/styles/components/badge/_styles.scss +72 -0
- package/src/styles/components/badge/_tokens.scss +27 -0
- package/src/styles/components/bottom-sheet/_index.scss +9 -0
- package/src/styles/components/bottom-sheet/_styles.scss +77 -0
- package/src/styles/components/bottom-sheet/_tokens.scss +33 -0
- package/src/styles/components/button/_index.scss +12 -0
- package/src/styles/components/button/_styles.scss +106 -0
- package/src/styles/components/button/_tokens.scss +36 -0
- package/src/styles/components/button-toggle/_index.scss +12 -0
- package/src/styles/components/button-toggle/_styles.scss +57 -0
- package/src/styles/components/button-toggle/_tokens.scss +25 -0
- package/src/styles/components/card/_index.scss +15 -0
- package/src/styles/components/card/_styles.scss +68 -0
- package/src/styles/components/card/_tokens.scss +26 -0
- package/src/styles/components/checkbox/_index.scss +13 -0
- package/src/styles/components/checkbox/_styles.scss +108 -0
- package/src/styles/components/checkbox/_tokens.scss +25 -0
- package/src/styles/components/chips/_index.scss +12 -0
- package/src/styles/components/chips/_styles.scss +83 -0
- package/src/styles/components/chips/_tokens.scss +28 -0
- package/src/styles/components/datepicker/_index.scss +10 -0
- package/src/styles/components/datepicker/_styles.scss +203 -0
- package/src/styles/components/datepicker/_tokens.scss +50 -0
- package/src/styles/components/dialog/_index.scss +9 -0
- package/src/styles/components/dialog/_styles.scss +54 -0
- package/src/styles/components/dialog/_tokens.scss +29 -0
- package/src/styles/components/divider/_index.scss +8 -0
- package/src/styles/components/divider/_styles.scss +18 -0
- package/src/styles/components/divider/_tokens.scss +12 -0
- package/src/styles/components/expansion/_index.scss +14 -0
- package/src/styles/components/expansion/_styles.scss +128 -0
- package/src/styles/components/expansion/_tokens.scss +32 -0
- package/src/styles/components/form-field/_index.scss +13 -0
- package/src/styles/components/form-field/_styles.scss +39 -0
- package/src/styles/components/form-field/_tokens.scss +19 -0
- package/src/styles/components/grid-list/_index.scss +12 -0
- package/src/styles/components/grid-list/_styles.scss +31 -0
- package/src/styles/components/grid-list/_tokens.scss +18 -0
- package/src/styles/components/icon/_index.scss +8 -0
- package/src/styles/components/icon/_styles.scss +18 -0
- package/src/styles/components/icon/_tokens.scss +8 -0
- package/src/styles/components/input/_index.scss +13 -0
- package/src/styles/components/input/_styles.scss +111 -0
- package/src/styles/components/input/_tokens.scss +21 -0
- package/src/styles/components/list/_index.scss +12 -0
- package/src/styles/components/list/_styles.scss +87 -0
- package/src/styles/components/list/_tokens.scss +31 -0
- package/src/styles/components/menu/_index.scss +9 -0
- package/src/styles/components/menu/_styles.scss +60 -0
- package/src/styles/components/menu/_tokens.scss +33 -0
- package/src/styles/components/menubar/_index.scss +9 -0
- package/src/styles/components/menubar/_styles.scss +41 -0
- package/src/styles/components/menubar/_tokens.scss +25 -0
- package/src/styles/components/overlay/_index.scss +8 -0
- package/src/styles/components/overlay/_styles.scss +25 -0
- package/src/styles/components/overlay/_tokens.scss +21 -0
- package/src/styles/components/paginator/_index.scss +14 -0
- package/src/styles/components/paginator/_styles.scss +77 -0
- package/src/styles/components/paginator/_tokens.scss +28 -0
- package/src/styles/components/popover-edit/_index.scss +9 -0
- package/src/styles/components/popover-edit/_styles.scss +31 -0
- package/src/styles/components/popover-edit/_tokens.scss +21 -0
- package/src/styles/components/progress-bar/_index.scss +11 -0
- package/src/styles/components/progress-bar/_styles.scss +39 -0
- package/src/styles/components/progress-bar/_tokens.scss +17 -0
- package/src/styles/components/progress-spinner/_index.scss +11 -0
- package/src/styles/components/progress-spinner/_styles.scss +26 -0
- package/src/styles/components/progress-spinner/_tokens.scss +15 -0
- package/src/styles/components/radio/_index.scss +14 -0
- package/src/styles/components/radio/_styles.scss +92 -0
- package/src/styles/components/radio/_tokens.scss +24 -0
- package/src/styles/components/ripple/_index.scss +8 -0
- package/src/styles/components/ripple/_styles.scss +20 -0
- package/src/styles/components/ripple/_tokens.scss +12 -0
- package/src/styles/components/select/_index.scss +9 -0
- package/src/styles/components/select/_styles.scss +120 -0
- package/src/styles/components/select/_tokens.scss +35 -0
- package/src/styles/components/sidenav/_index.scss +14 -0
- package/src/styles/components/sidenav/_styles.scss +105 -0
- package/src/styles/components/sidenav/_tokens.scss +24 -0
- package/src/styles/components/slide-toggle/_index.scss +13 -0
- package/src/styles/components/slide-toggle/_styles.scss +86 -0
- package/src/styles/components/slide-toggle/_tokens.scss +24 -0
- package/src/styles/components/slider/_index.scss +13 -0
- package/src/styles/components/slider/_styles.scss +77 -0
- package/src/styles/components/slider/_tokens.scss +21 -0
- package/src/styles/components/snackbar/_index.scss +8 -0
- package/src/styles/components/snackbar/_styles.scss +59 -0
- package/src/styles/components/snackbar/_tokens.scss +28 -0
- package/src/styles/components/stepper/_index.scss +14 -0
- package/src/styles/components/stepper/_styles.scss +129 -0
- package/src/styles/components/stepper/_tokens.scss +44 -0
- package/src/styles/components/table/_index.scss +14 -0
- package/src/styles/components/table/_styles.scss +202 -0
- package/src/styles/components/table/_tokens.scss +47 -0
- package/src/styles/components/tabs/_index.scss +13 -0
- package/src/styles/components/tabs/_styles.scss +76 -0
- package/src/styles/components/tabs/_tokens.scss +28 -0
- package/src/styles/components/timepicker/_index.scss +9 -0
- package/src/styles/components/timepicker/_styles.scss +136 -0
- package/src/styles/components/timepicker/_tokens.scss +46 -0
- package/src/styles/components/toolbar/_index.scss +12 -0
- package/src/styles/components/toolbar/_styles.scss +41 -0
- package/src/styles/components/toolbar/_tokens.scss +17 -0
- package/src/styles/components/tooltip/_index.scss +8 -0
- package/src/styles/components/tooltip/_styles.scss +29 -0
- package/src/styles/components/tooltip/_tokens.scss +22 -0
- package/src/styles/components/tree/_index.scss +13 -0
- package/src/styles/components/tree/_styles.scss +99 -0
- package/src/styles/components/tree/_tokens.scss +38 -0
- package/src/styles/theme/_defaults.scss +50 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// timepicker — styles() mixin. An underline trigger field (shared field-underline helper) with
|
|
2
|
+
// a clock icon; the panel reuses the overlay-panel chrome and lays out hour/minute spinner
|
|
3
|
+
// columns (each a role=spinbutton with ▲/▼) + an AM/PM toggle. Forwarded by ./_index.scss.
|
|
4
|
+
@use '../../helpers' as helpers;
|
|
5
|
+
|
|
6
|
+
@mixin styles() {
|
|
7
|
+
.weave-timepicker {
|
|
8
|
+
display: block;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.weave-timepicker__field {
|
|
12
|
+
@include helpers.field-underline(
|
|
13
|
+
var(--weave-timepicker-border),
|
|
14
|
+
var(--weave-timepicker-focus),
|
|
15
|
+
var(--weave-timepicker-border-width)
|
|
16
|
+
);
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: var(--weave-timepicker-gap);
|
|
20
|
+
padding: var(--weave-timepicker-field-padding-y) 0;
|
|
21
|
+
color: var(--weave-timepicker-text);
|
|
22
|
+
font-size: var(--weave-timepicker-font-size);
|
|
23
|
+
font-weight: var(--weave-timepicker-weight);
|
|
24
|
+
line-height: 1.4;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.weave-timepicker__value--placeholder {
|
|
29
|
+
color: var(--weave-timepicker-placeholder);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.weave-timepicker__spacer {
|
|
33
|
+
flex: 1 1 auto;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.weave-timepicker__clear {
|
|
37
|
+
@include helpers.clear-button(var(--weave-timepicker-placeholder), var(--weave-timepicker-text));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// A clock glyph (pure CSS: a ring with two hands).
|
|
41
|
+
.weave-timepicker__icon {
|
|
42
|
+
position: relative;
|
|
43
|
+
flex: 0 0 auto;
|
|
44
|
+
width: var(--weave-timepicker-icon-size);
|
|
45
|
+
height: var(--weave-timepicker-icon-size);
|
|
46
|
+
border: 1.5px solid var(--weave-timepicker-icon);
|
|
47
|
+
border-radius: 50%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.weave-timepicker__icon::before {
|
|
51
|
+
content: '';
|
|
52
|
+
position: absolute;
|
|
53
|
+
left: 50%;
|
|
54
|
+
top: 25%;
|
|
55
|
+
width: 1.5px;
|
|
56
|
+
height: 30%;
|
|
57
|
+
background: var(--weave-timepicker-icon);
|
|
58
|
+
transform: translateX(-50%);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.weave-timepicker--disabled .weave-timepicker__field {
|
|
62
|
+
color: var(--weave-timepicker-disabled-text);
|
|
63
|
+
cursor: default;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.weave-timepicker--invalid .weave-timepicker__field {
|
|
67
|
+
border-bottom-color: var(--weave-timepicker-error);
|
|
68
|
+
box-shadow: inset 0 -1px 0 0 var(--weave-timepicker-error);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ── spinner panel ── */
|
|
72
|
+
.weave-timepicker__panel {
|
|
73
|
+
@include helpers.overlay-panel;
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
gap: var(--weave-timepicker-col-gap);
|
|
77
|
+
padding: var(--weave-timepicker-panel-padding);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.weave-timepicker__col {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
align-items: center;
|
|
84
|
+
width: var(--weave-timepicker-col-width);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.weave-timepicker__col:focus-visible {
|
|
88
|
+
@include helpers.focus-ring;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.weave-timepicker__col-value {
|
|
92
|
+
padding: 2px 0;
|
|
93
|
+
color: var(--weave-timepicker-text);
|
|
94
|
+
font-size: var(--weave-timepicker-value-size);
|
|
95
|
+
font-weight: var(--weave-timepicker-value-weight);
|
|
96
|
+
font-variant-numeric: tabular-nums;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.weave-timepicker__spin {
|
|
100
|
+
@include helpers.field-reset;
|
|
101
|
+
display: inline-flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
justify-content: center;
|
|
104
|
+
width: var(--weave-timepicker-spin-size);
|
|
105
|
+
height: var(--weave-timepicker-spin-size);
|
|
106
|
+
color: var(--weave-timepicker-spin);
|
|
107
|
+
font-size: var(--weave-timepicker-spin-glyph-size);
|
|
108
|
+
cursor: pointer;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.weave-timepicker__spin:hover {
|
|
112
|
+
color: var(--weave-timepicker-spin-hover);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.weave-timepicker__colon {
|
|
116
|
+
color: var(--weave-timepicker-colon);
|
|
117
|
+
font-size: var(--weave-timepicker-colon-size);
|
|
118
|
+
font-weight: var(--weave-timepicker-value-weight);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.weave-timepicker__ampm {
|
|
122
|
+
@include helpers.field-reset;
|
|
123
|
+
margin-inline-start: var(--weave-timepicker-col-gap);
|
|
124
|
+
padding: var(--weave-timepicker-ampm-padding-y) var(--weave-timepicker-ampm-padding-x);
|
|
125
|
+
border: 1px solid var(--weave-timepicker-ampm-border);
|
|
126
|
+
border-radius: var(--weave-timepicker-radius);
|
|
127
|
+
color: var(--weave-timepicker-ampm-text);
|
|
128
|
+
font-size: var(--weave-timepicker-ampm-size);
|
|
129
|
+
font-weight: var(--weave-timepicker-ampm-weight);
|
|
130
|
+
cursor: pointer;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.weave-timepicker__ampm:focus-visible {
|
|
134
|
+
@include helpers.focus-ring;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// timepicker — design tokens (schema). An underline trigger field (like Datepicker) + a
|
|
2
|
+
// spinner popover: hour ▲/▼ : minute ▲/▼ columns + an AM/PM toggle (the design). Panel reuses
|
|
3
|
+
// the shared overlay-panel chrome. Forwarded by ./_index.scss.
|
|
4
|
+
@use '../../ref' as ref;
|
|
5
|
+
|
|
6
|
+
$tokens: (
|
|
7
|
+
color: (
|
|
8
|
+
text: ref.ref('color.ink'),
|
|
9
|
+
placeholder: ref.ref('color.sub'),
|
|
10
|
+
border: ref.ref('color.line'),
|
|
11
|
+
focus: ref.ref('color.accent'),
|
|
12
|
+
error: ref.ref('color.error'),
|
|
13
|
+
icon: ref.ref('color.sub'),
|
|
14
|
+
disabled-text: ref.ref('color.sub'),
|
|
15
|
+
// Spinner.
|
|
16
|
+
spin: ref.ref('color.sub'),
|
|
17
|
+
spin-hover: ref.ref('color.accent'),
|
|
18
|
+
colon: ref.ref('color.sub'),
|
|
19
|
+
ampm-border: ref.ref('color.line'),
|
|
20
|
+
ampm-text: ref.ref('color.ink'),
|
|
21
|
+
),
|
|
22
|
+
size: (
|
|
23
|
+
gap: 8px,
|
|
24
|
+
field-padding-y: 6px,
|
|
25
|
+
border-width: 1.5px,
|
|
26
|
+
radius: ref.ref('shape.radius'),
|
|
27
|
+
icon-size: 14px,
|
|
28
|
+
panel-padding: 12px,
|
|
29
|
+
col-gap: 6px,
|
|
30
|
+
col-width: 42px,
|
|
31
|
+
spin-size: 22px,
|
|
32
|
+
ampm-padding-x: 10px,
|
|
33
|
+
ampm-padding-y: 6px,
|
|
34
|
+
duration: ref.ref('motion.fast'),
|
|
35
|
+
),
|
|
36
|
+
typography: (
|
|
37
|
+
font-size: 13px,
|
|
38
|
+
weight: 500,
|
|
39
|
+
value-size: 20px,
|
|
40
|
+
value-weight: 600,
|
|
41
|
+
colon-size: 20px,
|
|
42
|
+
spin-glyph-size: 10px,
|
|
43
|
+
ampm-size: 12px,
|
|
44
|
+
ampm-weight: 600,
|
|
45
|
+
),
|
|
46
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Toolbar — a horizontal app bar. Behavior lives in toolbar.ts (container + class
|
|
2
|
+
// forward); this is the visual. Keyline: 52px tall, surface bg, 1px line bottom rule,
|
|
3
|
+
// NO shadow. A flex row; parts are the class contract the consumer composes:
|
|
4
|
+
// __start / __end clusters (flex, gapped)
|
|
5
|
+
// __spacer flex-grow gap that pushes __end to the right
|
|
6
|
+
// --ink inverts to an ink bar; --sticky pins it to the top.
|
|
7
|
+
//
|
|
8
|
+
// Barrel — forwards the split partials ($tokens + the styles() mixin). Add another
|
|
9
|
+
// concern as its own file (e.g. _keyframes.scss) and @forward it here.
|
|
10
|
+
|
|
11
|
+
@forward 'tokens';
|
|
12
|
+
@forward 'styles';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// toolbar — styles() mixin (class rules). Forwarded by ./_index.scss.
|
|
2
|
+
|
|
3
|
+
@mixin styles() {
|
|
4
|
+
.weave-toolbar {
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
gap: var(--weave-toolbar-gap);
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
height: var(--weave-toolbar-height);
|
|
10
|
+
padding: 0 var(--weave-toolbar-padding-x);
|
|
11
|
+
background: var(--weave-toolbar-background);
|
|
12
|
+
color: var(--weave-toolbar-text);
|
|
13
|
+
border-bottom: 1px solid var(--weave-toolbar-border);
|
|
14
|
+
|
|
15
|
+
@content;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.weave-toolbar--ink {
|
|
19
|
+
background: var(--weave-toolbar-ink-background);
|
|
20
|
+
color: var(--weave-toolbar-ink-text);
|
|
21
|
+
border-bottom-color: transparent;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.weave-toolbar--sticky {
|
|
25
|
+
position: sticky;
|
|
26
|
+
top: 0;
|
|
27
|
+
z-index: 10;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* The flexible gap — everything after it is pushed to the trailing edge. */
|
|
31
|
+
.weave-toolbar__spacer {
|
|
32
|
+
flex: 1 1 auto;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.weave-toolbar__start,
|
|
36
|
+
.weave-toolbar__end {
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
gap: var(--weave-toolbar-gap);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// toolbar — design tokens (schema). Forwarded by ./_index.scss.
|
|
2
|
+
@use '../../ref' as ref;
|
|
3
|
+
|
|
4
|
+
$tokens: (
|
|
5
|
+
color: (
|
|
6
|
+
background: ref.ref('color.surface'),
|
|
7
|
+
border: ref.ref('color.line'),
|
|
8
|
+
text: ref.ref('color.ink'),
|
|
9
|
+
ink-background: ref.ref('color.ink'),
|
|
10
|
+
ink-text: ref.ref('color.canvas'),
|
|
11
|
+
),
|
|
12
|
+
size: (
|
|
13
|
+
height: 52px,
|
|
14
|
+
padding-x: 16px,
|
|
15
|
+
gap: 12px,
|
|
16
|
+
),
|
|
17
|
+
);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Tooltip — a hint bubble positioned against a host by the CDK overlay. Behavior lives
|
|
2
|
+
// in tooltip.ts (the `use:tooltip` action — hover/focus open, flip positioning,
|
|
3
|
+
// aria-describedby, Esc close); this is the visual: a small inverted (ink) bubble that
|
|
4
|
+
// never captures the pointer and fades in fast.
|
|
5
|
+
//
|
|
6
|
+
// Barrel — forwards the split partials ($tokens + the styles() mixin).
|
|
7
|
+
@forward 'tokens';
|
|
8
|
+
@forward 'styles';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// tooltip — styles() mixin (class rules). A small inverted bubble; the CDK overlay
|
|
2
|
+
// positions it against the host. Never captures the pointer (must not block host hover);
|
|
3
|
+
// fades in fast. Keyframes live inside styles() (same pattern as Ripple/Progress Bar).
|
|
4
|
+
// Forwarded by ./_index.scss.
|
|
5
|
+
|
|
6
|
+
@mixin styles() {
|
|
7
|
+
.weave-tooltip {
|
|
8
|
+
pointer-events: none;
|
|
9
|
+
max-width: var(--weave-tooltip-max-width);
|
|
10
|
+
padding: var(--weave-tooltip-padding-y) var(--weave-tooltip-padding-x);
|
|
11
|
+
border-radius: var(--weave-tooltip-radius);
|
|
12
|
+
background: var(--weave-tooltip-background);
|
|
13
|
+
color: var(--weave-tooltip-text);
|
|
14
|
+
font-size: var(--weave-tooltip-font-size);
|
|
15
|
+
font-weight: var(--weave-tooltip-weight);
|
|
16
|
+
line-height: var(--weave-tooltip-line-height);
|
|
17
|
+
animation: weave-tooltip-in var(--weave-tooltip-duration) ease;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@keyframes weave-tooltip-in {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
to {
|
|
26
|
+
opacity: 1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// tooltip — design tokens (schema). A small inverted hint bubble (ink bg, surface text).
|
|
2
|
+
// Forwarded by ./_index.scss.
|
|
3
|
+
@use '../../ref' as ref;
|
|
4
|
+
|
|
5
|
+
$tokens: (
|
|
6
|
+
color: (
|
|
7
|
+
background: ref.ref('color.ink'),
|
|
8
|
+
text: ref.ref('color.surface'),
|
|
9
|
+
),
|
|
10
|
+
size: (
|
|
11
|
+
padding-x: 8px,
|
|
12
|
+
padding-y: 4px,
|
|
13
|
+
radius: ref.ref('shape.radius'),
|
|
14
|
+
max-width: 240px,
|
|
15
|
+
duration: ref.ref('motion.fast'),
|
|
16
|
+
),
|
|
17
|
+
typography: (
|
|
18
|
+
font-size: 11px,
|
|
19
|
+
weight: 500,
|
|
20
|
+
line-height: 1.4,
|
|
21
|
+
),
|
|
22
|
+
);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Tree — a hierarchical disclosure surface. Behavior lives in tree.ts (nested + flat data
|
|
2
|
+
// models, a visible-flatten pass, expand/collapse + selection via the CDK SelectionModel,
|
|
3
|
+
// roving keyboard via the CDK listKeyManager); this is the visual.
|
|
4
|
+
//
|
|
5
|
+
// A flat list of role=treeitem rows indented by depth (an inline --weave-tree-depth custom
|
|
6
|
+
// prop × the indent token), a rotating ▸ disclosure marker, hairline hover, and accent as a
|
|
7
|
+
// mark: the 2px accent left border + accentSoft tint on a selected node. State rides native
|
|
8
|
+
// attrs — [aria-expanded] / [aria-selected].
|
|
9
|
+
//
|
|
10
|
+
// Barrel — forwards the split partials ($tokens + the styles() mixin).
|
|
11
|
+
|
|
12
|
+
@forward 'tokens';
|
|
13
|
+
@forward 'styles';
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// tree — styles() mixin (class rules). A flat list of role=treeitem rows, each indented by
|
|
2
|
+
// its depth via an inline --weave-tree-depth custom prop; a rotating ▸ marker discloses
|
|
3
|
+
// children; state rides native ARIA attrs ([aria-expanded], [aria-selected]). Forwarded by
|
|
4
|
+
// ./_index.scss.
|
|
5
|
+
@use '../../helpers' as helpers;
|
|
6
|
+
|
|
7
|
+
@mixin styles() {
|
|
8
|
+
.weave-tree {
|
|
9
|
+
display: block;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.weave-tree__node {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
gap: var(--weave-tree-gap);
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
min-height: var(--weave-tree-node-height);
|
|
18
|
+
padding-block: var(--weave-tree-node-padding-y);
|
|
19
|
+
padding-inline-end: var(--weave-tree-node-padding-x);
|
|
20
|
+
// Base padding + depth × indent (depth set inline per node).
|
|
21
|
+
padding-inline-start: calc(
|
|
22
|
+
var(--weave-tree-node-padding-x) + var(--weave-tree-indent) * var(--weave-tree-depth, 0)
|
|
23
|
+
);
|
|
24
|
+
// Reserve the selected marker so selecting never shifts content.
|
|
25
|
+
border-inline-start: var(--weave-tree-marker-width) solid transparent;
|
|
26
|
+
color: var(--weave-tree-text);
|
|
27
|
+
font-size: var(--weave-tree-font-size);
|
|
28
|
+
line-height: var(--weave-tree-line-height);
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
user-select: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.weave-tree__node:hover {
|
|
34
|
+
background: var(--weave-tree-row-hover);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.weave-tree__node:focus-visible {
|
|
38
|
+
@include helpers.focus-ring;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ── selection (native ARIA attr, no state class) ── */
|
|
42
|
+
.weave-tree__node[aria-selected='true'] {
|
|
43
|
+
background: var(--weave-tree-selected-background);
|
|
44
|
+
border-inline-start-color: var(--weave-tree-selected-marker);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ── disclosure marker ── */
|
|
48
|
+
.weave-tree__toggle {
|
|
49
|
+
flex: 0 0 auto;
|
|
50
|
+
display: inline-flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
width: var(--weave-tree-toggle-size);
|
|
54
|
+
height: var(--weave-tree-toggle-size);
|
|
55
|
+
color: var(--weave-tree-toggle);
|
|
56
|
+
font-size: var(--weave-tree-toggle-glyph);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.weave-tree__toggle::before {
|
|
60
|
+
content: '\25B8'; // ▸
|
|
61
|
+
display: inline-block;
|
|
62
|
+
transition: transform var(--weave-tree-duration) ease;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// A leaf keeps the toggle's width (so content aligns) but shows no glyph.
|
|
66
|
+
.weave-tree__toggle--leaf::before {
|
|
67
|
+
content: '';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.weave-tree__node[aria-expanded='true'] .weave-tree__toggle::before {
|
|
71
|
+
transform: rotate(90deg);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.weave-tree__content {
|
|
75
|
+
flex: 1 1 auto;
|
|
76
|
+
min-width: 0;
|
|
77
|
+
overflow: hidden;
|
|
78
|
+
white-space: nowrap;
|
|
79
|
+
text-overflow: ellipsis;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Reorder drag handle — only this starts a drag (node clicks still select/expand).
|
|
83
|
+
// touch-action:none so a touch-drag on the grip doesn't scroll.
|
|
84
|
+
.weave-tree__drag-handle {
|
|
85
|
+
flex: 0 0 auto;
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
width: var(--weave-tree-drag-handle-size);
|
|
90
|
+
color: var(--weave-tree-drag-handle);
|
|
91
|
+
cursor: grab;
|
|
92
|
+
touch-action: none;
|
|
93
|
+
user-select: none;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.weave-tree__drag-handle:active {
|
|
97
|
+
cursor: grabbing;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// tree — design tokens (schema). A hierarchical disclosure list: compact rows, a rotating
|
|
2
|
+
// ▸ disclosure marker, indent = depth × indent, and accent-as-a-mark selection (accentSoft
|
|
3
|
+
// tint + 2px accent left border, like the List). Forwarded by ./_index.scss.
|
|
4
|
+
@use '../../ref' as ref;
|
|
5
|
+
|
|
6
|
+
$tokens: (
|
|
7
|
+
color: (
|
|
8
|
+
text: ref.ref('color.ink'),
|
|
9
|
+
// The disclosure ▸ marker.
|
|
10
|
+
toggle: ref.ref('color.sub'),
|
|
11
|
+
line: ref.ref('color.line'),
|
|
12
|
+
row-hover: ref.ref('color.field'),
|
|
13
|
+
// accentSoft = accent at ~12% alpha (the selected-row tint from the design).
|
|
14
|
+
selected-background: color-mix(in srgb, ref.ref('color.accent') 12%, transparent),
|
|
15
|
+
selected-marker: ref.ref('color.accent'),
|
|
16
|
+
// The reorder drag handle (⠿ grip).
|
|
17
|
+
drag-handle: ref.ref('color.sub'),
|
|
18
|
+
),
|
|
19
|
+
size: (
|
|
20
|
+
node-height: 34px,
|
|
21
|
+
drag-handle-size: 16px,
|
|
22
|
+
node-padding-x: 10px,
|
|
23
|
+
node-padding-y: 6px,
|
|
24
|
+
// Per-level indentation (design: depth × 18px).
|
|
25
|
+
indent: 18px,
|
|
26
|
+
toggle-size: 20px,
|
|
27
|
+
gap: 4px,
|
|
28
|
+
// 2px accent left border on the selected node (reserved transparent otherwise).
|
|
29
|
+
marker-width: 2px,
|
|
30
|
+
duration: ref.ref('motion.fast'),
|
|
31
|
+
),
|
|
32
|
+
typography: (
|
|
33
|
+
font-size: 14px,
|
|
34
|
+
line-height: 1.3,
|
|
35
|
+
// Font-size of the ▸ disclosure glyph.
|
|
36
|
+
toggle-glyph: 12px,
|
|
37
|
+
),
|
|
38
|
+
);
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Weave design tokens — the default theme (hifi values, our own design system).
|
|
2
|
+
// Groups: color / text / shape / motion.
|
|
3
|
+
//
|
|
4
|
+
// `$light` is the default. `$dim` is a partial (color-only) preset — spread it into
|
|
5
|
+
// theme(): `@include weave.theme(weave.$dim);` for the Dim appearance.
|
|
6
|
+
|
|
7
|
+
$light: (
|
|
8
|
+
color: (
|
|
9
|
+
canvas: #f4f5f7,
|
|
10
|
+
surface: #ffffff,
|
|
11
|
+
ink: #17181c,
|
|
12
|
+
sub: #71727a,
|
|
13
|
+
line: rgba(20, 22, 28, 0.16),
|
|
14
|
+
field: #ecedf0,
|
|
15
|
+
accent: #4c6286,
|
|
16
|
+
// semantic status
|
|
17
|
+
paid: #3e8e5a,
|
|
18
|
+
error: #c2403a,
|
|
19
|
+
neutral: #9a9ca3,
|
|
20
|
+
),
|
|
21
|
+
text: (
|
|
22
|
+
base: 13px,
|
|
23
|
+
label: 10px,
|
|
24
|
+
display: 34px,
|
|
25
|
+
),
|
|
26
|
+
shape: (
|
|
27
|
+
radius: 4px,
|
|
28
|
+
),
|
|
29
|
+
motion: (
|
|
30
|
+
fast: 0.15s,
|
|
31
|
+
sheet: 0.26s,
|
|
32
|
+
ripple: 0.55s,
|
|
33
|
+
),
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
// Dim appearance — color overrides only (text/shape/motion inherit from $light).
|
|
37
|
+
$dim: (
|
|
38
|
+
color: (
|
|
39
|
+
canvas: #161719,
|
|
40
|
+
surface: #1e1f22,
|
|
41
|
+
ink: #ececee,
|
|
42
|
+
sub: #9a9ca3,
|
|
43
|
+
line: rgba(255, 255, 255, 0.14),
|
|
44
|
+
field: #2a2b2f,
|
|
45
|
+
accent: #4c6286,
|
|
46
|
+
paid: #3e8e5a,
|
|
47
|
+
error: #c2403a,
|
|
48
|
+
neutral: #9a9ca3,
|
|
49
|
+
),
|
|
50
|
+
);
|