tyrell-components 1.0.0-RC13 → 1.0.0-RC15
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/README.md +10 -2
- package/css/tyrell-theme.css +192 -180
- package/css/tyrell.css +23 -0
- package/dist/tyrell-colors-static.css +1 -316
- package/dist/tyrell-theme.css +1 -1454
- package/dist/tyrell.css +1 -1371
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +20 -10
- package/lib/base/ty-component.js +196 -319
- package/lib/components/button.d.ts +3 -17
- package/lib/components/button.js +261 -295
- package/lib/components/calendar-month.d.ts +4 -50
- package/lib/components/calendar-month.js +443 -582
- package/lib/components/calendar-navigation.d.ts +3 -48
- package/lib/components/calendar-navigation.js +239 -362
- package/lib/components/calendar.d.ts +8 -83
- package/lib/components/calendar.js +616 -829
- package/lib/components/checkbox.d.ts +5 -72
- package/lib/components/checkbox.js +273 -416
- package/lib/components/copy.d.ts +4 -57
- package/lib/components/copy.js +280 -397
- package/lib/components/date-picker.d.ts +21 -163
- package/lib/components/date-picker.js +1143 -1674
- package/lib/components/file-upload.d.ts +9 -15
- package/lib/components/file-upload.js +404 -426
- package/lib/components/icon.d.ts +3 -24
- package/lib/components/icon.js +141 -230
- package/lib/components/input.d.ts +8 -108
- package/lib/components/input.js +593 -784
- package/lib/components/modal.d.ts +17 -26
- package/lib/components/modal.js +340 -484
- package/lib/components/option.d.ts +2 -9
- package/lib/components/option.js +168 -216
- package/lib/components/popup.d.ts +2 -17
- package/lib/components/popup.js +249 -380
- package/lib/components/radio.d.ts +5 -25
- package/lib/components/radio.js +407 -461
- package/lib/components/resize-observer.d.ts +3 -30
- package/lib/components/resize-observer.js +69 -103
- package/lib/components/scroll-container.d.ts +2 -12
- package/lib/components/scroll-container.js +293 -338
- package/lib/components/select.d.ts +87 -159
- package/lib/components/select.js +1609 -2090
- package/lib/components/selected-tags.d.ts +5 -48
- package/lib/components/selected-tags.js +188 -276
- package/lib/components/step.d.ts +1 -6
- package/lib/components/step.js +62 -68
- package/lib/components/switch.d.ts +1 -12
- package/lib/components/switch.js +214 -247
- package/lib/components/tab.d.ts +1 -6
- package/lib/components/tab.js +62 -69
- package/lib/components/tabs.d.ts +6 -63
- package/lib/components/tabs.js +545 -777
- package/lib/components/tag.d.ts +3 -37
- package/lib/components/tag.js +236 -335
- package/lib/components/textarea.d.ts +7 -87
- package/lib/components/textarea.js +457 -627
- package/lib/components/tooltip.d.ts +3 -11
- package/lib/components/tooltip.js +307 -443
- package/lib/components/wizard.d.ts +6 -54
- package/lib/components/wizard.js +405 -618
- package/lib/icons/fontawesome/brands.d.ts +0 -1
- package/lib/icons/fontawesome/brands.js +0 -8
- package/lib/icons/fontawesome/regular.d.ts +0 -1
- package/lib/icons/fontawesome/regular.js +0 -8
- package/lib/icons/fontawesome/solid.d.ts +0 -1
- package/lib/icons/fontawesome/solid.js +0 -8
- package/lib/icons/heroicons/micro.d.ts +0 -1
- package/lib/icons/heroicons/micro.js +392 -400
- package/lib/icons/heroicons/mini.d.ts +0 -1
- package/lib/icons/heroicons/mini.js +382 -390
- package/lib/icons/heroicons/outline.d.ts +0 -1
- package/lib/icons/heroicons/outline.js +337 -345
- package/lib/icons/heroicons/solid.d.ts +0 -1
- package/lib/icons/heroicons/solid.js +407 -415
- package/lib/icons/lucide.d.ts +0 -1
- package/lib/icons/lucide.js +24479 -26351
- package/lib/icons/material/filled.d.ts +0 -1
- package/lib/icons/material/filled.js +9653 -9663
- package/lib/icons/material/outlined.d.ts +0 -1
- package/lib/icons/material/outlined.js +10271 -10281
- package/lib/icons/material/round.d.ts +0 -1
- package/lib/icons/material/round.js +10495 -10505
- package/lib/icons/material/sharp.d.ts +0 -1
- package/lib/icons/material/sharp.js +9905 -9915
- package/lib/icons/material/two-tone.d.ts +0 -1
- package/lib/icons/material/two-tone.js +12792 -12802
- package/lib/index.d.ts +0 -1
- package/lib/index.js +21 -41
- package/lib/styles/button.d.ts +2 -20
- package/lib/styles/button.js +202 -404
- package/lib/styles/calendar-month.d.ts +1 -5
- package/lib/styles/calendar-month.js +127 -244
- package/lib/styles/calendar-navigation.d.ts +2 -6
- package/lib/styles/calendar-navigation.js +64 -104
- package/lib/styles/calendar.d.ts +1 -2
- package/lib/styles/calendar.js +9 -22
- package/lib/styles/checkbox.d.ts +0 -1
- package/lib/styles/checkbox.js +45 -94
- package/lib/styles/copy.d.ts +0 -1
- package/lib/styles/copy.js +67 -106
- package/lib/styles/custom-scrollbar.d.ts +1 -2
- package/lib/styles/custom-scrollbar.js +80 -115
- package/lib/styles/date-picker.d.ts +1 -5
- package/lib/styles/date-picker.js +261 -335
- package/lib/styles/field-size.d.ts +6 -0
- package/lib/styles/field-size.js +91 -0
- package/lib/styles/file-upload.d.ts +1 -2
- package/lib/styles/file-upload.js +143 -188
- package/lib/styles/icon.d.ts +2 -6
- package/lib/styles/icon.js +92 -170
- package/lib/styles/input.d.ts +1 -6
- package/lib/styles/input.js +125 -290
- package/lib/styles/modal.d.ts +1 -2
- package/lib/styles/modal.js +71 -108
- package/lib/styles/option.d.ts +2 -6
- package/lib/styles/option.js +49 -64
- package/lib/styles/popup.d.ts +1 -2
- package/lib/styles/popup.js +42 -77
- package/lib/styles/radio.d.ts +0 -1
- package/lib/styles/radio.js +69 -110
- package/lib/styles/resize-observer.d.ts +1 -2
- package/lib/styles/resize-observer.js +2 -12
- package/lib/styles/scroll-container.d.ts +1 -2
- package/lib/styles/scroll-container.js +100 -149
- package/lib/styles/select-base.d.ts +0 -1
- package/lib/styles/select-base.js +597 -785
- package/lib/styles/select.d.ts +1 -2
- package/lib/styles/select.js +140 -236
- package/lib/styles/step.d.ts +1 -2
- package/lib/styles/step.js +22 -33
- package/lib/styles/switch.d.ts +0 -1
- package/lib/styles/switch.js +34 -73
- package/lib/styles/tab.d.ts +1 -2
- package/lib/styles/tab.js +22 -34
- package/lib/styles/tabs.d.ts +3 -11
- package/lib/styles/tabs.js +190 -222
- package/lib/styles/tag.d.ts +1 -5
- package/lib/styles/tag.js +136 -218
- package/lib/styles/textarea.d.ts +1 -2
- package/lib/styles/textarea.js +210 -319
- package/lib/styles/tooltip.d.ts +0 -1
- package/lib/styles/tooltip.js +3 -13
- package/lib/styles/wizard.d.ts +5 -21
- package/lib/styles/wizard.js +170 -306
- package/lib/types/common.d.ts +2 -2
- package/lib/types/common.js +6 -17
- package/lib/utils/calendar-utils.d.ts +4 -21
- package/lib/utils/calendar-utils.js +100 -273
- package/lib/utils/custom-scrollbar.d.ts +6 -20
- package/lib/utils/custom-scrollbar.js +273 -317
- package/lib/utils/flavor-sheet.d.ts +0 -1
- package/lib/utils/flavor-sheet.js +14 -37
- package/lib/utils/icon-registry.d.ts +0 -2
- package/lib/utils/icon-registry.js +137 -243
- package/lib/utils/icons.d.ts +0 -1
- package/lib/utils/icons.js +0 -9
- package/lib/utils/loader-registry.d.ts +0 -1
- package/lib/utils/loader-registry.js +3 -35
- package/lib/utils/locale.d.ts +2 -23
- package/lib/utils/locale.js +34 -120
- package/lib/utils/mobile.d.ts +0 -1
- package/lib/utils/mobile.js +1 -18
- package/lib/utils/number-format.d.ts +6 -3
- package/lib/utils/number-format.js +54 -110
- package/lib/utils/positioning.d.ts +50 -7
- package/lib/utils/positioning.js +224 -234
- package/lib/utils/property-capture.d.ts +5 -27
- package/lib/utils/property-capture.js +36 -144
- package/lib/utils/property-manager.d.ts +0 -1
- package/lib/utils/property-manager.js +126 -196
- package/lib/utils/resize-observer.d.ts +0 -1
- package/lib/utils/resize-observer.js +23 -59
- package/lib/utils/scroll-lock.d.ts +4 -11
- package/lib/utils/scroll-lock.js +65 -172
- package/lib/utils/styles.d.ts +0 -1
- package/lib/utils/styles.js +17 -41
- package/lib/version.d.ts +1 -2
- package/lib/version.js +1 -11
- package/package.json +4 -4
- package/lib/base/ty-component.d.ts.map +0 -1
- package/lib/base/ty-component.js.map +0 -1
- package/lib/components/button.d.ts.map +0 -1
- package/lib/components/button.js.map +0 -1
- package/lib/components/calendar-month.d.ts.map +0 -1
- package/lib/components/calendar-month.js.map +0 -1
- package/lib/components/calendar-navigation.d.ts.map +0 -1
- package/lib/components/calendar-navigation.js.map +0 -1
- package/lib/components/calendar.d.ts.map +0 -1
- package/lib/components/calendar.js.map +0 -1
- package/lib/components/checkbox.d.ts.map +0 -1
- package/lib/components/checkbox.js.map +0 -1
- package/lib/components/copy.d.ts.map +0 -1
- package/lib/components/copy.js.map +0 -1
- package/lib/components/date-picker.d.ts.map +0 -1
- package/lib/components/date-picker.js.map +0 -1
- package/lib/components/file-upload.d.ts.map +0 -1
- package/lib/components/file-upload.js.map +0 -1
- package/lib/components/icon.d.ts.map +0 -1
- package/lib/components/icon.js.map +0 -1
- package/lib/components/input.d.ts.map +0 -1
- package/lib/components/input.js.map +0 -1
- package/lib/components/modal.d.ts.map +0 -1
- package/lib/components/modal.js.map +0 -1
- package/lib/components/option.d.ts.map +0 -1
- package/lib/components/option.js.map +0 -1
- package/lib/components/popup.d.ts.map +0 -1
- package/lib/components/popup.js.map +0 -1
- package/lib/components/radio.d.ts.map +0 -1
- package/lib/components/radio.js.map +0 -1
- package/lib/components/resize-observer.d.ts.map +0 -1
- package/lib/components/resize-observer.js.map +0 -1
- package/lib/components/scroll-container.d.ts.map +0 -1
- package/lib/components/scroll-container.js.map +0 -1
- package/lib/components/select.d.ts.map +0 -1
- package/lib/components/select.js.map +0 -1
- package/lib/components/selected-tags.d.ts.map +0 -1
- package/lib/components/selected-tags.js.map +0 -1
- package/lib/components/step.d.ts.map +0 -1
- package/lib/components/step.js.map +0 -1
- package/lib/components/switch.d.ts.map +0 -1
- package/lib/components/switch.js.map +0 -1
- package/lib/components/tab.d.ts.map +0 -1
- package/lib/components/tab.js.map +0 -1
- package/lib/components/tabs.d.ts.map +0 -1
- package/lib/components/tabs.js.map +0 -1
- package/lib/components/tag.d.ts.map +0 -1
- package/lib/components/tag.js.map +0 -1
- package/lib/components/textarea.d.ts.map +0 -1
- package/lib/components/textarea.js.map +0 -1
- package/lib/components/tooltip.d.ts.map +0 -1
- package/lib/components/tooltip.js.map +0 -1
- package/lib/components/wizard.d.ts.map +0 -1
- package/lib/components/wizard.js.map +0 -1
- package/lib/icons/fontawesome/brands.d.ts.map +0 -1
- package/lib/icons/fontawesome/brands.js.map +0 -1
- package/lib/icons/fontawesome/regular.d.ts.map +0 -1
- package/lib/icons/fontawesome/regular.js.map +0 -1
- package/lib/icons/fontawesome/solid.d.ts.map +0 -1
- package/lib/icons/fontawesome/solid.js.map +0 -1
- package/lib/icons/heroicons/micro.d.ts.map +0 -1
- package/lib/icons/heroicons/micro.js.map +0 -1
- package/lib/icons/heroicons/mini.d.ts.map +0 -1
- package/lib/icons/heroicons/mini.js.map +0 -1
- package/lib/icons/heroicons/outline.d.ts.map +0 -1
- package/lib/icons/heroicons/outline.js.map +0 -1
- package/lib/icons/heroicons/solid.d.ts.map +0 -1
- package/lib/icons/heroicons/solid.js.map +0 -1
- package/lib/icons/lucide.d.ts.map +0 -1
- package/lib/icons/lucide.js.map +0 -1
- package/lib/icons/material/filled.d.ts.map +0 -1
- package/lib/icons/material/filled.js.map +0 -1
- package/lib/icons/material/outlined.d.ts.map +0 -1
- package/lib/icons/material/outlined.js.map +0 -1
- package/lib/icons/material/round.d.ts.map +0 -1
- package/lib/icons/material/round.js.map +0 -1
- package/lib/icons/material/sharp.d.ts.map +0 -1
- package/lib/icons/material/sharp.js.map +0 -1
- package/lib/icons/material/two-tone.d.ts.map +0 -1
- package/lib/icons/material/two-tone.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/styles/button.d.ts.map +0 -1
- package/lib/styles/button.js.map +0 -1
- package/lib/styles/calendar-month.d.ts.map +0 -1
- package/lib/styles/calendar-month.js.map +0 -1
- package/lib/styles/calendar-navigation.d.ts.map +0 -1
- package/lib/styles/calendar-navigation.js.map +0 -1
- package/lib/styles/calendar.d.ts.map +0 -1
- package/lib/styles/calendar.js.map +0 -1
- package/lib/styles/checkbox.d.ts.map +0 -1
- package/lib/styles/checkbox.js.map +0 -1
- package/lib/styles/copy.d.ts.map +0 -1
- package/lib/styles/copy.js.map +0 -1
- package/lib/styles/custom-scrollbar.d.ts.map +0 -1
- package/lib/styles/custom-scrollbar.js.map +0 -1
- package/lib/styles/date-picker.d.ts.map +0 -1
- package/lib/styles/date-picker.js.map +0 -1
- package/lib/styles/file-upload.d.ts.map +0 -1
- package/lib/styles/file-upload.js.map +0 -1
- package/lib/styles/icon.d.ts.map +0 -1
- package/lib/styles/icon.js.map +0 -1
- package/lib/styles/input.d.ts.map +0 -1
- package/lib/styles/input.js.map +0 -1
- package/lib/styles/modal.d.ts.map +0 -1
- package/lib/styles/modal.js.map +0 -1
- package/lib/styles/multiselect.d.ts +0 -8
- package/lib/styles/multiselect.d.ts.map +0 -1
- package/lib/styles/multiselect.js +0 -849
- package/lib/styles/multiselect.js.map +0 -1
- package/lib/styles/option.d.ts.map +0 -1
- package/lib/styles/option.js.map +0 -1
- package/lib/styles/popup.d.ts.map +0 -1
- package/lib/styles/popup.js.map +0 -1
- package/lib/styles/radio.d.ts.map +0 -1
- package/lib/styles/radio.js.map +0 -1
- package/lib/styles/resize-observer.d.ts.map +0 -1
- package/lib/styles/resize-observer.js.map +0 -1
- package/lib/styles/scroll-container.d.ts.map +0 -1
- package/lib/styles/scroll-container.js.map +0 -1
- package/lib/styles/select-base.d.ts.map +0 -1
- package/lib/styles/select-base.js.map +0 -1
- package/lib/styles/select.d.ts.map +0 -1
- package/lib/styles/select.js.map +0 -1
- package/lib/styles/step.d.ts.map +0 -1
- package/lib/styles/step.js.map +0 -1
- package/lib/styles/switch.d.ts.map +0 -1
- package/lib/styles/switch.js.map +0 -1
- package/lib/styles/tab.d.ts.map +0 -1
- package/lib/styles/tab.js.map +0 -1
- package/lib/styles/tabs.d.ts.map +0 -1
- package/lib/styles/tabs.js.map +0 -1
- package/lib/styles/tag.d.ts.map +0 -1
- package/lib/styles/tag.js.map +0 -1
- package/lib/styles/textarea.d.ts.map +0 -1
- package/lib/styles/textarea.js.map +0 -1
- package/lib/styles/tooltip.d.ts.map +0 -1
- package/lib/styles/tooltip.js.map +0 -1
- package/lib/styles/wizard.d.ts.map +0 -1
- package/lib/styles/wizard.js.map +0 -1
- package/lib/types/common.d.ts.map +0 -1
- package/lib/types/common.js.map +0 -1
- package/lib/utils/calendar-utils.d.ts.map +0 -1
- package/lib/utils/calendar-utils.js.map +0 -1
- package/lib/utils/custom-scrollbar.d.ts.map +0 -1
- package/lib/utils/custom-scrollbar.js.map +0 -1
- package/lib/utils/flavor-sheet.d.ts.map +0 -1
- package/lib/utils/flavor-sheet.js.map +0 -1
- package/lib/utils/icon-registry.d.ts.map +0 -1
- package/lib/utils/icon-registry.js.map +0 -1
- package/lib/utils/icons.d.ts.map +0 -1
- package/lib/utils/icons.js.map +0 -1
- package/lib/utils/loader-registry.d.ts.map +0 -1
- package/lib/utils/loader-registry.js.map +0 -1
- package/lib/utils/locale.d.ts.map +0 -1
- package/lib/utils/locale.js.map +0 -1
- package/lib/utils/mobile.d.ts.map +0 -1
- package/lib/utils/mobile.js.map +0 -1
- package/lib/utils/number-format.d.ts.map +0 -1
- package/lib/utils/number-format.js.map +0 -1
- package/lib/utils/parse-boolean.d.ts +0 -39
- package/lib/utils/parse-boolean.d.ts.map +0 -1
- package/lib/utils/parse-boolean.js +0 -58
- package/lib/utils/parse-boolean.js.map +0 -1
- package/lib/utils/positioning.d.ts.map +0 -1
- package/lib/utils/positioning.js.map +0 -1
- package/lib/utils/property-capture.d.ts.map +0 -1
- package/lib/utils/property-capture.js.map +0 -1
- package/lib/utils/property-manager.d.ts.map +0 -1
- package/lib/utils/property-manager.js.map +0 -1
- package/lib/utils/resize-observer.d.ts.map +0 -1
- package/lib/utils/resize-observer.js.map +0 -1
- package/lib/utils/scroll-lock.d.ts.map +0 -1
- package/lib/utils/scroll-lock.js.map +0 -1
- package/lib/utils/styles.d.ts.map +0 -1
- package/lib/utils/styles.js.map +0 -1
- package/lib/version.d.ts.map +0 -1
- package/lib/version.js.map +0 -1
package/lib/styles/wizard.d.ts
CHANGED
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Wizard Component Styles
|
|
3
3
|
*
|
|
4
|
-
* CSS Parts (
|
|
5
|
-
* -
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - panels-container: The content viewport
|
|
9
|
-
*
|
|
10
|
-
* Theming: four accent-alias knobs (one per state), four surface knobs
|
|
11
|
-
* (container chrome), and a small set of geometry/motion overrides.
|
|
12
|
-
*
|
|
13
|
-
* Per-state circles read their colors directly from the matching accent
|
|
14
|
-
* variable — no per-state `-bg` indirection. Override one of:
|
|
15
|
-
* --ty-wizard-active-accent (default: --ty-color-primary)
|
|
16
|
-
* --ty-wizard-completed-accent (default: --ty-color-success)
|
|
17
|
-
* --ty-wizard-error-accent (default: --ty-color-danger)
|
|
18
|
-
* --ty-wizard-pending-accent (default: --ty-color-neutral)
|
|
19
|
-
*
|
|
20
|
-
* For per-shade fine control, override the brand-layer's flavor seeds
|
|
21
|
-
* (--ty-color-primary, --ty-color-success-strong, etc.) — they cascade
|
|
22
|
-
* through here.
|
|
4
|
+
* CSS Parts (::part): indicators-wrapper, progress-line, step-circle,
|
|
5
|
+
* panels-container. Theming knobs are declared on :host below; per-state
|
|
6
|
+
* circles read the matching accent var directly (no `-bg` indirection), and
|
|
7
|
+
* the brand-layer flavor seeds cascade through for per-shade control.
|
|
23
8
|
*/
|
|
24
|
-
export declare const wizardStyles = "\n/* ============================================================================\n Theming Tokens \u2014 see file header for the override surface.\n Every default chains back to the brand layer / global scale tokens.\n ============================================================================ */\n\n:host {\n display: block;\n width: var(--ty-wizard-width, 100%); /* set by width attribute \u2014 not a public token */\n height: var(--ty-wizard-height, 700px); /* set by height attribute \u2014 not a public token */\n box-sizing: border-box;\n\n /* State accents \u2014 the primary override surface. One variable retints the\n * matching circle background, border, and glow. */\n --ty-wizard-active-accent: var(--ty-color-primary);\n --ty-wizard-completed-accent: var(--ty-color-success);\n --ty-wizard-error-accent: var(--ty-color-danger);\n --ty-wizard-pending-accent: var(--ty-color-neutral);\n\n /* Container chrome \u2014 routes through global scales. Override --ty-radius-lg\n * or --ty-shadow-md app-wide and the wizard follows; override these locally\n * to give the wizard a distinct look. */\n --ty-wizard-bg: var(--ty-surface-floating);\n --ty-wizard-border: var(--ty-border);\n --ty-wizard-radius: var(--ty-radius-lg, 12px);\n --ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));\n\n /* Header strip */\n --ty-wizard-header-bg: var(--ty-surface-content);\n --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));\n --ty-wizard-header-padding: 24px 24px 16px;\n\n /* Progress line */\n --ty-wizard-progress-track: var(--ty-border);\n --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);\n --ty-wizard-progress-height: 2px;\n\n /* Motion \u2014 routes through global motion tokens if defined. */\n --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);\n --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);\n\n /* Circle geometry */\n --ty-wizard-circle-size: 32px;\n --ty-wizard-circle-border-width: 2px;\n\n /* Panels viewport */\n --ty-wizard-panels-bg: var(--ty-surface-elevated);\n\n /* Focus */\n --ty-wizard-focus-outline: var(--ty-wizard-active-accent);\n}\n\n.wizard-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n border-radius: var(--ty-wizard-radius);\n border: 1px solid var(--ty-wizard-border);\n background: var(--ty-wizard-bg);\n box-shadow: var(--ty-wizard-shadow);\n overflow: hidden;\n}\n\n/* ===================================== */\n/* Step Indicators Wrapper */\n/* ===================================== */\n\n.step-indicators-wrapper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n position: relative;\n padding: var(--ty-wizard-header-padding);\n border-bottom: 1px solid var(--ty-wizard-header-border);\n background: var(--ty-wizard-header-bg);\n}\n\n/* ===================================== */\n/* Progress Line (behind step circles) */\n/* ===================================== */\n\n.progress-line {\n position: absolute;\n /*\n * With equal-width indicators (flex: 1), each takes 100%/N of the width.\n * Circle centers sit at 50%/N from the left edge of each indicator.\n * Inset = 50% / step-count from each side keeps the line between circle centres.\n */\n left: calc(50% / var(--ty-wizard-step-count, 4));\n right: calc(50% / var(--ty-wizard-step-count, 4));\n top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);\n height: var(--ty-wizard-progress-height);\n background: var(--ty-wizard-progress-track);\n z-index: 0;\n pointer-events: none;\n transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n}\n\n.progress-overlay {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n background: var(--ty-wizard-progress-fill);\n transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: width;\n}\n\n/* ===================================== */\n/* Step Indicators Container */\n/* ===================================== */\n\n.step-indicators {\n display: flex;\n align-items: flex-start;\n position: relative;\n}\n\n/* ===================================== */\n/* Individual Step Indicator */\n/* ===================================== */\n\n.step-indicator {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n background: transparent;\n border: none;\n padding: 0;\n font: inherit;\n transition: opacity 200ms;\n flex: 1;\n min-width: 0;\n}\n\n.step-indicator[aria-disabled=\"true\"] {\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.step-indicator:focus-visible {\n outline: 2px solid var(--ty-wizard-focus-outline);\n outline-offset: 4px;\n border-radius: 50%;\n}\n\n/* ===================================== */\n/* Step Circle */\n/* ===================================== */\n\n.step-circle {\n width: var(--ty-wizard-circle-size);\n height: var(--ty-wizard-circle-size);\n border-radius: 50%;\n border: var(--ty-wizard-circle-border-width) solid;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 10;\n transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.step-circle[data-state=\"completed\"] {\n background: var(--ty-wizard-completed-accent);\n border-color: var(--ty-color-success-strong);\n /* Derived from the accent this circle actually paints, not from\n --ty-solid-success-fg: the two diverge in dark mode (--ty-solid-l\n dims solid fills by 0.25 L), which stranded white text at 3.5:1. */\n color: oklch(\n from var(--ty-wizard-completed-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"active\"] {\n background: var(--ty-wizard-active-accent);\n border-color: var(--ty-color-primary-strong);\n color: oklch(\n from var(--ty-wizard-active-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"pending\"] {\n background: var(--ty-surface-elevated);\n border-color: var(--ty-border);\n color: var(--ty-color-neutral);\n}\n\n.step-circle[data-state=\"error\"] {\n background: var(--ty-wizard-error-accent);\n border-color: var(--ty-color-danger-strong);\n color: oklch(\n from var(--ty-wizard-error-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);\n}\n\n/* ===================================== */\n/* Step Text Container */\n/* ===================================== */\n\n.step-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: center;\n}\n\n/* ===================================== */\n/* Step Label */\n/* ===================================== */\n\n.step-label {\n font-size: var(--ty-font-sm, 14px);\n font-weight: var(--ty-font-semibold, 600);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n}\n\n.step-indicator[aria-selected=\"true\"] .step-label {\n color: var(--ty-color-neutral-strong);\n}\n\n.step-indicator[aria-selected=\"false\"] .step-label {\n color: var(--ty-color-neutral);\n}\n\n/* ===================================== */\n/* Step Description */\n/* ===================================== */\n\n.step-description {\n font-size: var(--ty-font-xs, 12px);\n font-weight: var(--ty-font-normal, 400);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n text-align: center;\n max-width: 120px;\n}\n\n.step-indicator[aria-selected=\"true\"] .step-description {\n color: var(--ty-color-neutral-bold);\n}\n\n/* ===================================== */\n/* Custom Indicator Content via Slots */\n/* ===================================== */\n\n::slotted([slot^=\"indicator-\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n/* ===================================== */\n/* Panels Viewport */\n/* ===================================== */\n\n.panels-viewport {\n position: relative;\n flex: 1;\n overflow: hidden;\n min-height: 0;\n background: var(--ty-wizard-panels-bg);\n}\n\n/* ===================================== */\n/* Panels Wrapper (slides horizontally) */\n/* ===================================== */\n\n.panels-wrapper {\n display: flex;\n height: 100%;\n transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: transform;\n}\n\n/* ===================================== */\n/* Slotted Step Panels */\n/* ===================================== */\n\n::slotted(ty-step) {\n width: var(--ty-wizard-width, 100%);\n height: 100%;\n flex-shrink: 0;\n}\n\n/* ===================================== */\n/* Accessibility & Motion Preferences */\n/* ===================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .panels-wrapper {\n transition-duration: 0ms !important;\n }\n\n .progress-overlay {\n transition-duration: 0ms !important;\n }\n\n .step-circle {\n transition-duration: 0ms !important;\n }\n\n .progress-line {\n transition-duration: 0ms !important;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n";
|
|
25
|
-
//# sourceMappingURL=wizard.d.ts.map
|
|
9
|
+
export declare const wizardStyles = "\n/* Theming tokens \u2014 every default chains back to the brand layer / global\n scale tokens. */\n\n:host {\n display: block;\n width: var(--ty-wizard-width, 100%); /* set by width attribute \u2014 not a public token */\n height: var(--ty-wizard-height, 700px); /* set by height attribute \u2014 not a public token */\n box-sizing: border-box;\n\n /* State accents \u2014 the primary override surface. One variable retints the\n * matching circle background, border, and glow. */\n --ty-wizard-active-accent: var(--ty-color-primary);\n --ty-wizard-completed-accent: var(--ty-color-success);\n --ty-wizard-error-accent: var(--ty-color-danger);\n --ty-wizard-pending-accent: var(--ty-color-neutral);\n\n /* Container chrome \u2014 routes through global scales. Override --ty-radius-lg\n * or --ty-shadow-md app-wide and the wizard follows; override these locally\n * to give the wizard a distinct look. */\n --ty-wizard-bg: var(--ty-surface-floating);\n --ty-wizard-border: var(--ty-border);\n --ty-wizard-radius: var(--ty-radius-lg, 12px);\n --ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));\n\n --ty-wizard-header-bg: var(--ty-surface-content);\n --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));\n --ty-wizard-header-padding: 24px 24px 16px;\n\n --ty-wizard-progress-track: var(--ty-border);\n --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);\n --ty-wizard-progress-height: 2px;\n\n /* Motion \u2014 routes through global motion tokens if defined. */\n --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);\n --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);\n\n --ty-wizard-circle-size: 32px;\n --ty-wizard-circle-border-width: 2px;\n\n --ty-wizard-panels-bg: var(--ty-surface-elevated);\n\n --ty-wizard-focus-outline: var(--ty-wizard-active-accent);\n}\n\n.wizard-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n border-radius: var(--ty-wizard-radius);\n border: 1px solid var(--ty-wizard-border);\n background: var(--ty-wizard-bg);\n box-shadow: var(--ty-wizard-shadow);\n overflow: hidden;\n}\n\n.step-indicators-wrapper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n position: relative;\n padding: var(--ty-wizard-header-padding);\n border-bottom: 1px solid var(--ty-wizard-header-border);\n background: var(--ty-wizard-header-bg);\n}\n\n/* Progress line, behind the step circles */\n.progress-line {\n position: absolute;\n /*\n * With equal-width indicators (flex: 1), each takes 100%/N of the width.\n * Circle centers sit at 50%/N from the left edge of each indicator.\n * Inset = 50% / step-count from each side keeps the line between circle centres.\n */\n left: calc(50% / var(--ty-wizard-step-count, 4));\n right: calc(50% / var(--ty-wizard-step-count, 4));\n top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);\n height: var(--ty-wizard-progress-height);\n background: var(--ty-wizard-progress-track);\n z-index: 0;\n pointer-events: none;\n transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n}\n\n.progress-overlay {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n background: var(--ty-wizard-progress-fill);\n transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: width;\n}\n\n.step-indicators {\n display: flex;\n align-items: flex-start;\n position: relative;\n}\n\n.step-indicator {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n background: transparent;\n border: none;\n padding: 0;\n font: inherit;\n transition: opacity 200ms;\n flex: 1;\n min-width: 0;\n}\n\n.step-indicator[aria-disabled=\"true\"] {\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.step-indicator:focus-visible {\n outline: 2px solid var(--ty-wizard-focus-outline);\n outline-offset: 4px;\n border-radius: 50%;\n}\n\n.step-circle {\n width: var(--ty-wizard-circle-size);\n height: var(--ty-wizard-circle-size);\n border-radius: 50%;\n border: var(--ty-wizard-circle-border-width) solid;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 10;\n transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.step-circle[data-state=\"completed\"] {\n background: var(--ty-wizard-completed-accent);\n border-color: var(--ty-color-success-strong);\n /* Derived from the accent this circle actually paints, not from\n --ty-solid-success-fg: the two diverge in dark mode (--ty-solid-l\n dims solid fills by 0.25 L), which stranded white text at 3.5:1. */\n color: oklch(\n from var(--ty-wizard-completed-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"active\"] {\n background: var(--ty-wizard-active-accent);\n border-color: var(--ty-color-primary-strong);\n color: oklch(\n from var(--ty-wizard-active-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"pending\"] {\n background: var(--ty-surface-elevated);\n border-color: var(--ty-border);\n color: var(--ty-color-neutral);\n}\n\n.step-circle[data-state=\"error\"] {\n background: var(--ty-wizard-error-accent);\n border-color: var(--ty-color-danger-strong);\n color: oklch(\n from var(--ty-wizard-error-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);\n}\n\n.step-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: center;\n}\n\n.step-label {\n font-size: var(--ty-font-sm, 14px);\n font-weight: var(--ty-font-semibold, 600);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n}\n\n.step-indicator[aria-selected=\"true\"] .step-label {\n color: var(--ty-color-neutral-strong);\n}\n\n.step-indicator[aria-selected=\"false\"] .step-label {\n color: var(--ty-color-neutral);\n}\n\n.step-description {\n font-size: var(--ty-font-xs, 12px);\n font-weight: var(--ty-font-normal, 400);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n text-align: center;\n max-width: 120px;\n}\n\n.step-indicator[aria-selected=\"true\"] .step-description {\n color: var(--ty-color-neutral-bold);\n}\n\n/* Custom indicator content via slots */\n::slotted([slot^=\"indicator-\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.panels-viewport {\n position: relative;\n flex: 1;\n overflow: hidden;\n min-height: 0;\n background: var(--ty-wizard-panels-bg);\n}\n\n/* Panels wrapper slides horizontally */\n.panels-wrapper {\n display: flex;\n height: 100%;\n transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: transform;\n}\n\n::slotted(ty-step) {\n width: var(--ty-wizard-width, 100%);\n height: 100%;\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .panels-wrapper {\n transition-duration: 0ms !important;\n }\n\n .progress-overlay {\n transition-duration: 0ms !important;\n }\n\n .step-circle {\n transition-duration: 0ms !important;\n }\n\n .progress-line {\n transition-duration: 0ms !important;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n";
|
package/lib/styles/wizard.js
CHANGED
|
@@ -1,360 +1,224 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wizard Component Styles
|
|
3
|
-
*
|
|
4
|
-
* CSS Parts (for styling via ::part):
|
|
5
|
-
* - indicators-wrapper: The header containing step indicators
|
|
6
|
-
* - progress-line: The background progress track
|
|
7
|
-
* - step-circle: Individual step circle indicators
|
|
8
|
-
* - panels-container: The content viewport
|
|
9
|
-
*
|
|
10
|
-
* Theming: four accent-alias knobs (one per state), four surface knobs
|
|
11
|
-
* (container chrome), and a small set of geometry/motion overrides.
|
|
12
|
-
*
|
|
13
|
-
* Per-state circles read their colors directly from the matching accent
|
|
14
|
-
* variable — no per-state `-bg` indirection. Override one of:
|
|
15
|
-
* --ty-wizard-active-accent (default: --ty-color-primary)
|
|
16
|
-
* --ty-wizard-completed-accent (default: --ty-color-success)
|
|
17
|
-
* --ty-wizard-error-accent (default: --ty-color-danger)
|
|
18
|
-
* --ty-wizard-pending-accent (default: --ty-color-neutral)
|
|
19
|
-
*
|
|
20
|
-
* For per-shade fine control, override the brand-layer's flavor seeds
|
|
21
|
-
* (--ty-color-primary, --ty-color-success-strong, etc.) — they cascade
|
|
22
|
-
* through here.
|
|
23
|
-
*/
|
|
24
1
|
export const wizardStyles = `
|
|
25
|
-
/* ============================================================================
|
|
26
|
-
Theming Tokens — see file header for the override surface.
|
|
27
|
-
Every default chains back to the brand layer / global scale tokens.
|
|
28
|
-
============================================================================ */
|
|
29
|
-
|
|
30
2
|
:host {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/* Progress line */
|
|
57
|
-
--ty-wizard-progress-track: var(--ty-border);
|
|
58
|
-
--ty-wizard-progress-fill: var(--ty-wizard-completed-accent);
|
|
59
|
-
--ty-wizard-progress-height: 2px;
|
|
60
|
-
|
|
61
|
-
/* Motion — routes through global motion tokens if defined. */
|
|
62
|
-
--ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);
|
|
63
|
-
--ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);
|
|
64
|
-
|
|
65
|
-
/* Circle geometry */
|
|
66
|
-
--ty-wizard-circle-size: 32px;
|
|
67
|
-
--ty-wizard-circle-border-width: 2px;
|
|
68
|
-
|
|
69
|
-
/* Panels viewport */
|
|
70
|
-
--ty-wizard-panels-bg: var(--ty-surface-elevated);
|
|
71
|
-
|
|
72
|
-
/* Focus */
|
|
73
|
-
--ty-wizard-focus-outline: var(--ty-wizard-active-accent);
|
|
3
|
+
display: block;
|
|
4
|
+
width: var(--ty-wizard-width, 100%);
|
|
5
|
+
height: var(--ty-wizard-height, 700px);
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
--ty-wizard-active-accent: var(--ty-color-primary);
|
|
8
|
+
--ty-wizard-completed-accent: var(--ty-color-success);
|
|
9
|
+
--ty-wizard-error-accent: var(--ty-color-danger);
|
|
10
|
+
--ty-wizard-pending-accent: var(--ty-color-neutral);
|
|
11
|
+
--ty-wizard-bg: var(--ty-surface-floating);
|
|
12
|
+
--ty-wizard-border: var(--ty-border);
|
|
13
|
+
--ty-wizard-radius: var(--ty-radius-lg, 12px);
|
|
14
|
+
--ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
|
|
15
|
+
--ty-wizard-header-bg: var(--ty-surface-content);
|
|
16
|
+
--ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));
|
|
17
|
+
--ty-wizard-header-padding: 24px 24px 16px;
|
|
18
|
+
--ty-wizard-progress-track: var(--ty-border);
|
|
19
|
+
--ty-wizard-progress-fill: var(--ty-wizard-completed-accent);
|
|
20
|
+
--ty-wizard-progress-height: 2px;
|
|
21
|
+
--ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);
|
|
22
|
+
--ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);
|
|
23
|
+
--ty-wizard-circle-size: 32px;
|
|
24
|
+
--ty-wizard-circle-border-width: 2px;
|
|
25
|
+
--ty-wizard-panels-bg: var(--ty-surface-elevated);
|
|
26
|
+
--ty-wizard-focus-outline: var(--ty-wizard-active-accent);
|
|
74
27
|
}
|
|
75
|
-
|
|
76
28
|
.wizard-container {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
position: relative;
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
border-radius: var(--ty-wizard-radius);
|
|
36
|
+
border: 1px solid var(--ty-wizard-border);
|
|
37
|
+
background: var(--ty-wizard-bg);
|
|
38
|
+
box-shadow: var(--ty-wizard-shadow);
|
|
39
|
+
overflow: hidden;
|
|
88
40
|
}
|
|
89
|
-
|
|
90
|
-
/* ===================================== */
|
|
91
|
-
/* Step Indicators Wrapper */
|
|
92
|
-
/* ===================================== */
|
|
93
|
-
|
|
94
41
|
.step-indicators-wrapper {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: column;
|
|
44
|
+
flex-shrink: 0;
|
|
45
|
+
position: relative;
|
|
46
|
+
padding: var(--ty-wizard-header-padding);
|
|
47
|
+
border-bottom: 1px solid var(--ty-wizard-header-border);
|
|
48
|
+
background: var(--ty-wizard-header-bg);
|
|
102
49
|
}
|
|
103
|
-
|
|
104
|
-
/* ===================================== */
|
|
105
|
-
/* Progress Line (behind step circles) */
|
|
106
|
-
/* ===================================== */
|
|
107
|
-
|
|
108
50
|
.progress-line {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
height: var(--ty-wizard-progress-height);
|
|
119
|
-
background: var(--ty-wizard-progress-track);
|
|
120
|
-
z-index: 0;
|
|
121
|
-
pointer-events: none;
|
|
122
|
-
transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
|
|
51
|
+
position: absolute;
|
|
52
|
+
left: calc(50% / var(--ty-wizard-step-count, 4));
|
|
53
|
+
right: calc(50% / var(--ty-wizard-step-count, 4));
|
|
54
|
+
top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);
|
|
55
|
+
height: var(--ty-wizard-progress-height);
|
|
56
|
+
background: var(--ty-wizard-progress-track);
|
|
57
|
+
z-index: 0;
|
|
58
|
+
pointer-events: none;
|
|
59
|
+
transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
|
|
123
60
|
}
|
|
124
|
-
|
|
125
61
|
.progress-overlay {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
62
|
+
position: absolute;
|
|
63
|
+
left: 0;
|
|
64
|
+
top: 0;
|
|
65
|
+
height: 100%;
|
|
66
|
+
background: var(--ty-wizard-progress-fill);
|
|
67
|
+
transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
|
|
68
|
+
will-change: width;
|
|
133
69
|
}
|
|
134
|
-
|
|
135
|
-
/* ===================================== */
|
|
136
|
-
/* Step Indicators Container */
|
|
137
|
-
/* ===================================== */
|
|
138
|
-
|
|
139
70
|
.step-indicators {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: flex-start;
|
|
73
|
+
position: relative;
|
|
143
74
|
}
|
|
144
|
-
|
|
145
|
-
/* ===================================== */
|
|
146
|
-
/* Individual Step Indicator */
|
|
147
|
-
/* ===================================== */
|
|
148
|
-
|
|
149
75
|
.step-indicator {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-direction: column;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 8px;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
background: transparent;
|
|
82
|
+
border: none;
|
|
83
|
+
padding: 0;
|
|
84
|
+
font: inherit;
|
|
85
|
+
transition: opacity 200ms;
|
|
86
|
+
flex: 1;
|
|
87
|
+
min-width: 0;
|
|
162
88
|
}
|
|
163
|
-
|
|
164
89
|
.step-indicator[aria-disabled="true"] {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
90
|
+
opacity: 0.4;
|
|
91
|
+
cursor: not-allowed;
|
|
92
|
+
pointer-events: none;
|
|
168
93
|
}
|
|
169
|
-
|
|
170
94
|
.step-indicator:focus-visible {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
95
|
+
outline: 2px solid var(--ty-wizard-focus-outline);
|
|
96
|
+
outline-offset: 4px;
|
|
97
|
+
border-radius: 50%;
|
|
174
98
|
}
|
|
175
|
-
|
|
176
|
-
/* ===================================== */
|
|
177
|
-
/* Step Circle */
|
|
178
|
-
/* ===================================== */
|
|
179
|
-
|
|
180
99
|
.step-circle {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
100
|
+
width: var(--ty-wizard-circle-size);
|
|
101
|
+
height: var(--ty-wizard-circle-size);
|
|
102
|
+
border-radius: 50%;
|
|
103
|
+
border: var(--ty-wizard-circle-border-width) solid;
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
position: relative;
|
|
108
|
+
z-index: 10;
|
|
109
|
+
transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));
|
|
110
|
+
box-sizing: border-box;
|
|
111
|
+
flex-shrink: 0;
|
|
193
112
|
}
|
|
194
|
-
|
|
195
113
|
.step-circle[data-state="completed"] {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
|
|
204
|
-
);
|
|
205
|
-
box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);
|
|
114
|
+
background: var(--ty-wizard-completed-accent);
|
|
115
|
+
border-color: var(--ty-color-success-strong);
|
|
116
|
+
color: oklch(
|
|
117
|
+
from var(--ty-wizard-completed-accent)
|
|
118
|
+
clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
|
|
119
|
+
);
|
|
120
|
+
box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);
|
|
206
121
|
}
|
|
207
|
-
|
|
208
122
|
.step-circle[data-state="active"] {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
123
|
+
background: var(--ty-wizard-active-accent);
|
|
124
|
+
border-color: var(--ty-color-primary-strong);
|
|
125
|
+
color: oklch(
|
|
126
|
+
from var(--ty-wizard-active-accent)
|
|
127
|
+
clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
|
|
128
|
+
);
|
|
129
|
+
box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);
|
|
216
130
|
}
|
|
217
|
-
|
|
218
131
|
.step-circle[data-state="pending"] {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
132
|
+
background: var(--ty-surface-elevated);
|
|
133
|
+
border-color: var(--ty-border);
|
|
134
|
+
color: var(--ty-color-neutral);
|
|
222
135
|
}
|
|
223
|
-
|
|
224
136
|
.step-circle[data-state="error"] {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
137
|
+
background: var(--ty-wizard-error-accent);
|
|
138
|
+
border-color: var(--ty-color-danger-strong);
|
|
139
|
+
color: oklch(
|
|
140
|
+
from var(--ty-wizard-error-accent)
|
|
141
|
+
clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
|
|
142
|
+
);
|
|
143
|
+
box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);
|
|
232
144
|
}
|
|
233
|
-
|
|
234
|
-
/* ===================================== */
|
|
235
|
-
/* Step Text Container */
|
|
236
|
-
/* ===================================== */
|
|
237
|
-
|
|
238
145
|
.step-text {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
146
|
+
display: flex;
|
|
147
|
+
flex-direction: column;
|
|
148
|
+
gap: 2px;
|
|
149
|
+
align-items: center;
|
|
243
150
|
}
|
|
244
|
-
|
|
245
|
-
/* ===================================== */
|
|
246
|
-
/* Step Label */
|
|
247
|
-
/* ===================================== */
|
|
248
|
-
|
|
249
151
|
.step-label {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
152
|
+
font-size: var(--ty-font-sm, 14px);
|
|
153
|
+
font-weight: var(--ty-font-semibold, 600);
|
|
154
|
+
color: var(--ty-color-neutral);
|
|
155
|
+
transition: var(--ty-local-transition, color 200ms);
|
|
254
156
|
}
|
|
255
|
-
|
|
256
157
|
.step-indicator[aria-selected="true"] .step-label {
|
|
257
|
-
|
|
158
|
+
color: var(--ty-color-neutral-strong);
|
|
258
159
|
}
|
|
259
|
-
|
|
260
160
|
.step-indicator[aria-selected="false"] .step-label {
|
|
261
|
-
|
|
161
|
+
color: var(--ty-color-neutral);
|
|
262
162
|
}
|
|
263
|
-
|
|
264
|
-
/* ===================================== */
|
|
265
|
-
/* Step Description */
|
|
266
|
-
/* ===================================== */
|
|
267
|
-
|
|
268
163
|
.step-description {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
164
|
+
font-size: var(--ty-font-xs, 12px);
|
|
165
|
+
font-weight: var(--ty-font-normal, 400);
|
|
166
|
+
color: var(--ty-color-neutral);
|
|
167
|
+
transition: var(--ty-local-transition, color 200ms);
|
|
168
|
+
text-align: center;
|
|
169
|
+
max-width: 120px;
|
|
275
170
|
}
|
|
276
|
-
|
|
277
171
|
.step-indicator[aria-selected="true"] .step-description {
|
|
278
|
-
|
|
172
|
+
color: var(--ty-color-neutral-bold);
|
|
279
173
|
}
|
|
280
|
-
|
|
281
|
-
/* ===================================== */
|
|
282
|
-
/* Custom Indicator Content via Slots */
|
|
283
|
-
/* ===================================== */
|
|
284
|
-
|
|
285
174
|
::slotted([slot^="indicator-"]) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
175
|
+
display: flex;
|
|
176
|
+
align-items: center;
|
|
177
|
+
justify-content: center;
|
|
178
|
+
width: 100%;
|
|
179
|
+
height: 100%;
|
|
291
180
|
}
|
|
292
|
-
|
|
293
|
-
/* ===================================== */
|
|
294
|
-
/* Panels Viewport */
|
|
295
|
-
/* ===================================== */
|
|
296
|
-
|
|
297
181
|
.panels-viewport {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
182
|
+
position: relative;
|
|
183
|
+
flex: 1;
|
|
184
|
+
overflow: hidden;
|
|
185
|
+
min-height: 0;
|
|
186
|
+
background: var(--ty-wizard-panels-bg);
|
|
303
187
|
}
|
|
304
|
-
|
|
305
|
-
/* ===================================== */
|
|
306
|
-
/* Panels Wrapper (slides horizontally) */
|
|
307
|
-
/* ===================================== */
|
|
308
|
-
|
|
309
188
|
.panels-wrapper {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
189
|
+
display: flex;
|
|
190
|
+
height: 100%;
|
|
191
|
+
transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
|
|
192
|
+
will-change: transform;
|
|
314
193
|
}
|
|
315
|
-
|
|
316
|
-
/* ===================================== */
|
|
317
|
-
/* Slotted Step Panels */
|
|
318
|
-
/* ===================================== */
|
|
319
|
-
|
|
320
194
|
::slotted(ty-step) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
195
|
+
width: var(--ty-wizard-width, 100%);
|
|
196
|
+
height: 100%;
|
|
197
|
+
flex-shrink: 0;
|
|
324
198
|
}
|
|
325
|
-
|
|
326
|
-
/* ===================================== */
|
|
327
|
-
/* Accessibility & Motion Preferences */
|
|
328
|
-
/* ===================================== */
|
|
329
|
-
|
|
330
199
|
@media (prefers-reduced-motion: reduce) {
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
.progress-line {
|
|
344
|
-
transition-duration: 0ms !important;
|
|
345
|
-
}
|
|
200
|
+
.panels-wrapper {
|
|
201
|
+
transition-duration: 0ms !important;
|
|
202
|
+
}
|
|
203
|
+
.progress-overlay {
|
|
204
|
+
transition-duration: 0ms !important;
|
|
205
|
+
}
|
|
206
|
+
.step-circle {
|
|
207
|
+
transition-duration: 0ms !important;
|
|
208
|
+
}
|
|
209
|
+
.progress-line {
|
|
210
|
+
transition-duration: 0ms !important;
|
|
211
|
+
}
|
|
346
212
|
}
|
|
347
|
-
|
|
348
213
|
.sr-only {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
214
|
+
position: absolute;
|
|
215
|
+
width: 1px;
|
|
216
|
+
height: 1px;
|
|
217
|
+
padding: 0;
|
|
218
|
+
margin: -1px;
|
|
219
|
+
overflow: hidden;
|
|
220
|
+
clip: rect(0, 0, 0, 0);
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
border-width: 0;
|
|
358
223
|
}
|
|
359
224
|
`;
|
|
360
|
-
//# sourceMappingURL=wizard.js.map
|
package/lib/types/common.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export type FlavorShaded<F extends string = FlavorBase> = F | `${F}+` | `${F}-`;
|
|
|
24
24
|
export type Flavor = FlavorShaded | (string & {});
|
|
25
25
|
/** Component size variants */
|
|
26
26
|
export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
27
|
+
/** Default `size` for every field component — change here, not per component. */
|
|
28
|
+
export declare const DEFAULT_SIZE: Size;
|
|
27
29
|
/** Input types supported by ty-input */
|
|
28
30
|
export type InputType = 'text' | 'password' | 'email' | 'url' | 'tel' | 'date' | 'time' | 'datetime-local' | 'number' | 'currency' | 'percent' | 'compact' | 'checkbox';
|
|
29
31
|
/** Base properties shared by all Ty components */
|
|
@@ -50,7 +52,6 @@ export interface TyButtonElement extends TyBaseElement {
|
|
|
50
52
|
/** Button type for forms */
|
|
51
53
|
type?: 'button' | 'submit' | 'reset';
|
|
52
54
|
}
|
|
53
|
-
/** CSS style content */
|
|
54
55
|
/** Icon size variants */
|
|
55
56
|
export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '12' | '14' | '16' | '18' | '20' | '24' | '32' | '48' | '64' | '80' | '96';
|
|
56
57
|
/** Icon animation tempo */
|
|
@@ -141,4 +142,3 @@ export interface StyleContent {
|
|
|
141
142
|
/** Optional style ID for caching */
|
|
142
143
|
id?: string;
|
|
143
144
|
}
|
|
144
|
-
//# sourceMappingURL=common.d.ts.map
|
package/lib/types/common.js
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ty Component Common Types
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Built-in semantic color flavor names. Append `+` for a stronger shade or `-`
|
|
6
|
-
* for a softer shade — e.g. `primary`, `primary+`, `primary-`. Matches the
|
|
7
|
-
* design system's `ty-bg-primary+` / `ty-text-primary-` class convention.
|
|
8
|
-
*/
|
|
9
|
-
/* `secondary` was removed in TC37 — the built-in set is semantic-only.
|
|
10
|
-
* An aesthetic second accent is one flavor-pack away (see CSS_GUIDE →
|
|
11
|
-
* Custom Flavors); markup using flavor="secondary" degrades to neutral. */
|
|
12
1
|
export const FLAVORS = [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
'primary',
|
|
3
|
+
'success',
|
|
4
|
+
'danger',
|
|
5
|
+
'warning',
|
|
6
|
+
'neutral',
|
|
18
7
|
];
|
|
19
|
-
|
|
8
|
+
export const DEFAULT_SIZE = 'sm';
|