tyrell-components 1.0.0-RC10
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 +221 -0
- package/css/tyrell-brand.css +767 -0
- package/css/tyrell.css +1679 -0
- package/dist/tyrell-brand.css +767 -0
- package/dist/tyrell.css +1679 -0
- package/dist/tyrell.js +2 -0
- package/lib/base/ty-component.d.ts +133 -0
- package/lib/base/ty-component.d.ts.map +1 -0
- package/lib/base/ty-component.js +297 -0
- package/lib/base/ty-component.js.map +1 -0
- package/lib/components/button.d.ts +135 -0
- package/lib/components/button.d.ts.map +1 -0
- package/lib/components/button.js +277 -0
- package/lib/components/button.js.map +1 -0
- package/lib/components/calendar-month.d.ts +132 -0
- package/lib/components/calendar-month.d.ts.map +1 -0
- package/lib/components/calendar-month.js +440 -0
- package/lib/components/calendar-month.js.map +1 -0
- package/lib/components/calendar-navigation.d.ts +137 -0
- package/lib/components/calendar-navigation.d.ts.map +1 -0
- package/lib/components/calendar-navigation.js +366 -0
- package/lib/components/calendar-navigation.js.map +1 -0
- package/lib/components/calendar.d.ts +166 -0
- package/lib/components/calendar.d.ts.map +1 -0
- package/lib/components/calendar.js +774 -0
- package/lib/components/calendar.js.map +1 -0
- package/lib/components/checkbox.d.ts +189 -0
- package/lib/components/checkbox.d.ts.map +1 -0
- package/lib/components/checkbox.js +400 -0
- package/lib/components/checkbox.js.map +1 -0
- package/lib/components/copy.d.ts +180 -0
- package/lib/components/copy.d.ts.map +1 -0
- package/lib/components/copy.js +393 -0
- package/lib/components/copy.js.map +1 -0
- package/lib/components/date-picker.d.ts +379 -0
- package/lib/components/date-picker.d.ts.map +1 -0
- package/lib/components/date-picker.js +1586 -0
- package/lib/components/date-picker.js.map +1 -0
- package/lib/components/dropdown.d.ts +424 -0
- package/lib/components/dropdown.d.ts.map +1 -0
- package/lib/components/dropdown.js +1640 -0
- package/lib/components/dropdown.js.map +1 -0
- package/lib/components/file-upload.d.ts +121 -0
- package/lib/components/file-upload.d.ts.map +1 -0
- package/lib/components/file-upload.js +441 -0
- package/lib/components/file-upload.js.map +1 -0
- package/lib/components/icon.d.ts +118 -0
- package/lib/components/icon.d.ts.map +1 -0
- package/lib/components/icon.js +245 -0
- package/lib/components/icon.js.map +1 -0
- package/lib/components/input.d.ts +270 -0
- package/lib/components/input.d.ts.map +1 -0
- package/lib/components/input.js +721 -0
- package/lib/components/input.js.map +1 -0
- package/lib/components/modal.d.ts +78 -0
- package/lib/components/modal.d.ts.map +1 -0
- package/lib/components/modal.js +497 -0
- package/lib/components/modal.js.map +1 -0
- package/lib/components/multiselect.d.ts +397 -0
- package/lib/components/multiselect.d.ts.map +1 -0
- package/lib/components/multiselect.js +1595 -0
- package/lib/components/multiselect.js.map +1 -0
- package/lib/components/option.d.ts +66 -0
- package/lib/components/option.d.ts.map +1 -0
- package/lib/components/option.js +314 -0
- package/lib/components/option.js.map +1 -0
- package/lib/components/popup.d.ts +43 -0
- package/lib/components/popup.d.ts.map +1 -0
- package/lib/components/popup.js +380 -0
- package/lib/components/popup.js.map +1 -0
- package/lib/components/radio.d.ts +198 -0
- package/lib/components/radio.d.ts.map +1 -0
- package/lib/components/radio.js +437 -0
- package/lib/components/radio.js.map +1 -0
- package/lib/components/resize-observer.d.ts +48 -0
- package/lib/components/resize-observer.d.ts.map +1 -0
- package/lib/components/resize-observer.js +108 -0
- package/lib/components/resize-observer.js.map +1 -0
- package/lib/components/scroll-container.d.ts +51 -0
- package/lib/components/scroll-container.d.ts.map +1 -0
- package/lib/components/scroll-container.js +239 -0
- package/lib/components/scroll-container.js.map +1 -0
- package/lib/components/step.d.ts +26 -0
- package/lib/components/step.d.ts.map +1 -0
- package/lib/components/step.js +75 -0
- package/lib/components/step.js.map +1 -0
- package/lib/components/switch.d.ts +111 -0
- package/lib/components/switch.d.ts.map +1 -0
- package/lib/components/switch.js +240 -0
- package/lib/components/switch.js.map +1 -0
- package/lib/components/tab.d.ts +23 -0
- package/lib/components/tab.d.ts.map +1 -0
- package/lib/components/tab.js +76 -0
- package/lib/components/tab.js.map +1 -0
- package/lib/components/tabs.d.ts +93 -0
- package/lib/components/tabs.d.ts.map +1 -0
- package/lib/components/tabs.js +653 -0
- package/lib/components/tabs.js.map +1 -0
- package/lib/components/tag.d.ts +144 -0
- package/lib/components/tag.d.ts.map +1 -0
- package/lib/components/tag.js +316 -0
- package/lib/components/tag.js.map +1 -0
- package/lib/components/textarea.d.ts +241 -0
- package/lib/components/textarea.d.ts.map +1 -0
- package/lib/components/textarea.js +585 -0
- package/lib/components/textarea.js.map +1 -0
- package/lib/components/tooltip.d.ts +40 -0
- package/lib/components/tooltip.d.ts.map +1 -0
- package/lib/components/tooltip.js +439 -0
- package/lib/components/tooltip.js.map +1 -0
- package/lib/components/wizard.d.ts +86 -0
- package/lib/components/wizard.d.ts.map +1 -0
- package/lib/components/wizard.js +636 -0
- package/lib/components/wizard.js.map +1 -0
- package/lib/icons/fontawesome/brands.d.ts +557 -0
- package/lib/icons/fontawesome/brands.d.ts.map +1 -0
- package/lib/icons/fontawesome/brands.js +557 -0
- package/lib/icons/fontawesome/brands.js.map +1 -0
- package/lib/icons/fontawesome/regular.d.ts +281 -0
- package/lib/icons/fontawesome/regular.d.ts.map +1 -0
- package/lib/icons/fontawesome/regular.js +281 -0
- package/lib/icons/fontawesome/regular.js.map +1 -0
- package/lib/icons/fontawesome/solid.d.ts +1992 -0
- package/lib/icons/fontawesome/solid.d.ts.map +1 -0
- package/lib/icons/fontawesome/solid.js +1992 -0
- package/lib/icons/fontawesome/solid.js.map +1 -0
- package/lib/icons/heroicons/micro.d.ts +324 -0
- package/lib/icons/heroicons/micro.d.ts.map +1 -0
- package/lib/icons/heroicons/micro.js +1032 -0
- package/lib/icons/heroicons/micro.js.map +1 -0
- package/lib/icons/heroicons/mini.d.ts +332 -0
- package/lib/icons/heroicons/mini.d.ts.map +1 -0
- package/lib/icons/heroicons/mini.js +1038 -0
- package/lib/icons/heroicons/mini.js.map +1 -0
- package/lib/icons/heroicons/outline.d.ts +332 -0
- package/lib/icons/heroicons/outline.d.ts.map +1 -0
- package/lib/icons/heroicons/outline.js +993 -0
- package/lib/icons/heroicons/outline.js.map +1 -0
- package/lib/icons/heroicons/solid.d.ts +332 -0
- package/lib/icons/heroicons/solid.d.ts.map +1 -0
- package/lib/icons/heroicons/solid.js +1063 -0
- package/lib/icons/heroicons/solid.js.map +1 -0
- package/lib/icons/lucide.d.ts +1872 -0
- package/lib/icons/lucide.d.ts.map +1 -0
- package/lib/icons/lucide.js +28212 -0
- package/lib/icons/lucide.js.map +1 -0
- package/lib/icons/material/filled.d.ts +2180 -0
- package/lib/icons/material/filled.d.ts.map +1 -0
- package/lib/icons/material/filled.js +14003 -0
- package/lib/icons/material/filled.js.map +1 -0
- package/lib/icons/material/outlined.d.ts +2142 -0
- package/lib/icons/material/outlined.d.ts.map +1 -0
- package/lib/icons/material/outlined.js +14545 -0
- package/lib/icons/material/outlined.js.map +1 -0
- package/lib/icons/material/round.d.ts +2147 -0
- package/lib/icons/material/round.d.ts.map +1 -0
- package/lib/icons/material/round.js +14779 -0
- package/lib/icons/material/round.js.map +1 -0
- package/lib/icons/material/sharp.d.ts +2147 -0
- package/lib/icons/material/sharp.d.ts.map +1 -0
- package/lib/icons/material/sharp.js +14189 -0
- package/lib/icons/material/sharp.js.map +1 -0
- package/lib/icons/material/two-tone.d.ts +2185 -0
- package/lib/icons/material/two-tone.d.ts.map +1 -0
- package/lib/icons/material/two-tone.js +17152 -0
- package/lib/icons/material/two-tone.js.map +1 -0
- package/lib/index.d.ts +86 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/styles/button.d.ts +14 -0
- package/lib/styles/button.d.ts.map +1 -0
- package/lib/styles/button.js +498 -0
- package/lib/styles/button.js.map +1 -0
- package/lib/styles/calendar-month.d.ts +6 -0
- package/lib/styles/calendar-month.d.ts.map +1 -0
- package/lib/styles/calendar-month.js +275 -0
- package/lib/styles/calendar-month.js.map +1 -0
- package/lib/styles/calendar-navigation.d.ts +6 -0
- package/lib/styles/calendar-navigation.d.ts.map +1 -0
- package/lib/styles/calendar-navigation.js +143 -0
- package/lib/styles/calendar-navigation.js.map +1 -0
- package/lib/styles/calendar.d.ts +6 -0
- package/lib/styles/calendar.d.ts.map +1 -0
- package/lib/styles/calendar.js +28 -0
- package/lib/styles/calendar.js.map +1 -0
- package/lib/styles/checkbox.d.ts +9 -0
- package/lib/styles/checkbox.d.ts.map +1 -0
- package/lib/styles/checkbox.js +19 -0
- package/lib/styles/checkbox.js.map +1 -0
- package/lib/styles/copy.d.ts +7 -0
- package/lib/styles/copy.d.ts.map +1 -0
- package/lib/styles/copy.js +94 -0
- package/lib/styles/copy.js.map +1 -0
- package/lib/styles/custom-scrollbar.d.ts +6 -0
- package/lib/styles/custom-scrollbar.d.ts.map +1 -0
- package/lib/styles/custom-scrollbar.js +157 -0
- package/lib/styles/custom-scrollbar.js.map +1 -0
- package/lib/styles/date-picker.d.ts +6 -0
- package/lib/styles/date-picker.d.ts.map +1 -0
- package/lib/styles/date-picker.js +438 -0
- package/lib/styles/date-picker.js.map +1 -0
- package/lib/styles/dropdown.d.ts +12 -0
- package/lib/styles/dropdown.d.ts.map +1 -0
- package/lib/styles/dropdown.js +1081 -0
- package/lib/styles/dropdown.js.map +1 -0
- package/lib/styles/file-upload.d.ts +2 -0
- package/lib/styles/file-upload.d.ts.map +1 -0
- package/lib/styles/file-upload.js +241 -0
- package/lib/styles/file-upload.js.map +1 -0
- package/lib/styles/icon.d.ts +6 -0
- package/lib/styles/icon.d.ts.map +1 -0
- package/lib/styles/icon.js +241 -0
- package/lib/styles/icon.js.map +1 -0
- package/lib/styles/input.d.ts +7 -0
- package/lib/styles/input.d.ts.map +1 -0
- package/lib/styles/input.js +685 -0
- package/lib/styles/input.js.map +1 -0
- package/lib/styles/modal.d.ts +8 -0
- package/lib/styles/modal.d.ts.map +1 -0
- package/lib/styles/modal.js +134 -0
- package/lib/styles/modal.js.map +1 -0
- package/lib/styles/multiselect.d.ts +6 -0
- package/lib/styles/multiselect.d.ts.map +1 -0
- package/lib/styles/multiselect.js +825 -0
- package/lib/styles/multiselect.js.map +1 -0
- package/lib/styles/option.d.ts +6 -0
- package/lib/styles/option.d.ts.map +1 -0
- package/lib/styles/option.js +116 -0
- package/lib/styles/option.js.map +1 -0
- package/lib/styles/popup.d.ts +8 -0
- package/lib/styles/popup.d.ts.map +1 -0
- package/lib/styles/popup.js +95 -0
- package/lib/styles/popup.js.map +1 -0
- package/lib/styles/radio.d.ts +8 -0
- package/lib/styles/radio.d.ts.map +1 -0
- package/lib/styles/radio.js +160 -0
- package/lib/styles/radio.js.map +1 -0
- package/lib/styles/resize-observer.d.ts +6 -0
- package/lib/styles/resize-observer.d.ts.map +1 -0
- package/lib/styles/resize-observer.js +18 -0
- package/lib/styles/resize-observer.js.map +1 -0
- package/lib/styles/scroll-container.d.ts +6 -0
- package/lib/styles/scroll-container.d.ts.map +1 -0
- package/lib/styles/scroll-container.js +198 -0
- package/lib/styles/scroll-container.js.map +1 -0
- package/lib/styles/step.d.ts +5 -0
- package/lib/styles/step.d.ts.map +1 -0
- package/lib/styles/step.js +50 -0
- package/lib/styles/step.js.map +1 -0
- package/lib/styles/switch.d.ts +9 -0
- package/lib/styles/switch.d.ts.map +1 -0
- package/lib/styles/switch.js +100 -0
- package/lib/styles/switch.js.map +1 -0
- package/lib/styles/tab.d.ts +5 -0
- package/lib/styles/tab.d.ts.map +1 -0
- package/lib/styles/tab.js +51 -0
- package/lib/styles/tab.js.map +1 -0
- package/lib/styles/tabs.d.ts +13 -0
- package/lib/styles/tabs.d.ts.map +1 -0
- package/lib/styles/tabs.js +184 -0
- package/lib/styles/tabs.js.map +1 -0
- package/lib/styles/tag.d.ts +6 -0
- package/lib/styles/tag.d.ts.map +1 -0
- package/lib/styles/tag.js +409 -0
- package/lib/styles/tag.js.map +1 -0
- package/lib/styles/textarea.d.ts +6 -0
- package/lib/styles/textarea.d.ts.map +1 -0
- package/lib/styles/textarea.js +350 -0
- package/lib/styles/textarea.js.map +1 -0
- package/lib/styles/tooltip.d.ts +9 -0
- package/lib/styles/tooltip.d.ts.map +1 -0
- package/lib/styles/tooltip.js +133 -0
- package/lib/styles/tooltip.js.map +1 -0
- package/lib/styles/wizard.d.ts +25 -0
- package/lib/styles/wizard.d.ts.map +1 -0
- package/lib/styles/wizard.js +348 -0
- package/lib/styles/wizard.js.map +1 -0
- package/lib/types/common.d.ts +143 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +5 -0
- package/lib/types/common.js.map +1 -0
- package/lib/utils/calendar-utils.d.ts +176 -0
- package/lib/utils/calendar-utils.d.ts.map +1 -0
- package/lib/utils/calendar-utils.js +370 -0
- package/lib/utils/calendar-utils.js.map +1 -0
- package/lib/utils/custom-scrollbar.d.ts +82 -0
- package/lib/utils/custom-scrollbar.d.ts.map +1 -0
- package/lib/utils/custom-scrollbar.js +320 -0
- package/lib/utils/custom-scrollbar.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +78 -0
- package/lib/utils/icon-registry.d.ts.map +1 -0
- package/lib/utils/icon-registry.js +304 -0
- package/lib/utils/icon-registry.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +35 -0
- package/lib/utils/loader-registry.d.ts.map +1 -0
- package/lib/utils/loader-registry.js +43 -0
- package/lib/utils/loader-registry.js.map +1 -0
- package/lib/utils/locale.d.ts +136 -0
- package/lib/utils/locale.d.ts.map +1 -0
- package/lib/utils/locale.js +213 -0
- package/lib/utils/locale.js.map +1 -0
- package/lib/utils/mobile.d.ts +14 -0
- package/lib/utils/mobile.d.ts.map +1 -0
- package/lib/utils/mobile.js +21 -0
- package/lib/utils/mobile.js.map +1 -0
- package/lib/utils/number-format.d.ts +83 -0
- package/lib/utils/number-format.d.ts.map +1 -0
- package/lib/utils/number-format.js +143 -0
- package/lib/utils/number-format.js.map +1 -0
- package/lib/utils/parse-boolean.d.ts +39 -0
- package/lib/utils/parse-boolean.d.ts.map +1 -0
- package/lib/utils/parse-boolean.js +58 -0
- package/lib/utils/parse-boolean.js.map +1 -0
- package/lib/utils/positioning.d.ts +143 -0
- package/lib/utils/positioning.d.ts.map +1 -0
- package/lib/utils/positioning.js +308 -0
- package/lib/utils/positioning.js.map +1 -0
- package/lib/utils/property-capture.d.ts +132 -0
- package/lib/utils/property-capture.d.ts.map +1 -0
- package/lib/utils/property-capture.js +152 -0
- package/lib/utils/property-capture.js.map +1 -0
- package/lib/utils/property-manager.d.ts +90 -0
- package/lib/utils/property-manager.d.ts.map +1 -0
- package/lib/utils/property-manager.js +197 -0
- package/lib/utils/property-manager.js.map +1 -0
- package/lib/utils/resize-observer.d.ts +42 -0
- package/lib/utils/resize-observer.d.ts.map +1 -0
- package/lib/utils/resize-observer.js +71 -0
- package/lib/utils/resize-observer.js.map +1 -0
- package/lib/utils/scroll-lock.d.ts +79 -0
- package/lib/utils/scroll-lock.d.ts.map +1 -0
- package/lib/utils/scroll-lock.js +197 -0
- package/lib/utils/scroll-lock.js.map +1 -0
- package/lib/utils/styles.d.ts +27 -0
- package/lib/utils/styles.d.ts.map +1 -0
- package/lib/utils/styles.js +53 -0
- package/lib/utils/styles.js.map +1 -0
- package/lib/version.d.ts +8 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +11 -0
- package/lib/version.js.map +1 -0
- package/package.json +163 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Styles for ty-textarea component
|
|
3
|
+
* Enhanced textarea with auto-resize functionality
|
|
4
|
+
*/
|
|
5
|
+
export const textareaStyles = `
|
|
6
|
+
:host {
|
|
7
|
+
display: block;
|
|
8
|
+
font-family: var(--ty-font-sans);
|
|
9
|
+
width: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.textarea-container {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
width: 100%;
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
position: relative;
|
|
18
|
+
/* For absolute positioned dummy element */
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.textarea-wrapper {
|
|
22
|
+
position: relative;
|
|
23
|
+
width: 100%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Custom scrollbar track positioning within textarea border */
|
|
27
|
+
.textarea-wrapper .ty-scrollbar-track-y {
|
|
28
|
+
top: 2px;
|
|
29
|
+
right: 2px;
|
|
30
|
+
bottom: 2px;
|
|
31
|
+
border-radius: 0 4px 4px 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ===== LABEL STYLING ===== */
|
|
35
|
+
|
|
36
|
+
.ty-field-label {
|
|
37
|
+
font-size: var(--ty-font-sm);
|
|
38
|
+
line-height: var(--ty-leading-sm);
|
|
39
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
40
|
+
font-weight: var(--ty-font-medium);
|
|
41
|
+
color: var(--ty-label-color);
|
|
42
|
+
margin-bottom: 6px;
|
|
43
|
+
padding-left: 12px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Required indicator - using SVG icon instead of CSS */
|
|
47
|
+
.required-icon {
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
color: var(--ty-color-danger);
|
|
51
|
+
width: 12px;
|
|
52
|
+
height: 12px;
|
|
53
|
+
vertical-align: middle;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ===== ERROR MESSAGE STYLING ===== */
|
|
57
|
+
|
|
58
|
+
.error-message {
|
|
59
|
+
font-size: var(--ty-font-xs);
|
|
60
|
+
line-height: var(--ty-leading-xs);
|
|
61
|
+
letter-spacing: var(--ty-tracking-xs);
|
|
62
|
+
color: var(--ty-color-danger);
|
|
63
|
+
margin-top: 4px;
|
|
64
|
+
padding-left: 12px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Error state for textareas */
|
|
68
|
+
textarea.error {
|
|
69
|
+
border-color: var(--ty-color-danger);
|
|
70
|
+
background: var(--ty-bg-danger-soft);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
textarea.error:focus {
|
|
74
|
+
border-color: var(--ty-color-danger-bold);
|
|
75
|
+
box-shadow: 0 0 0 3px var(--input-shadow-focus, var(--ty-input-shadow-focus));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ===== TEXTAREA BASE STYLING ===== */
|
|
79
|
+
|
|
80
|
+
textarea {
|
|
81
|
+
/* Base appearance — elegant and minimal like input */
|
|
82
|
+
box-sizing: border-box;
|
|
83
|
+
width: 100%;
|
|
84
|
+
border: 1px solid var(--input-border, var(--ty-input-border));
|
|
85
|
+
border-radius: 6px;
|
|
86
|
+
background: var(--input-bg, var(--ty-input-bg));
|
|
87
|
+
color: var(--input-color, var(--ty-input-color));
|
|
88
|
+
font-family: inherit;
|
|
89
|
+
/* Linear-paired typography */
|
|
90
|
+
font-size: var(--ty-font-sm);
|
|
91
|
+
line-height: var(--ty-leading-sm);
|
|
92
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
93
|
+
font-weight: var(--ty-font-normal);
|
|
94
|
+
transition: all 0.15s ease-in-out;
|
|
95
|
+
outline: none;
|
|
96
|
+
|
|
97
|
+
/* Default size (md) - refined spacing */
|
|
98
|
+
min-height: 80px;
|
|
99
|
+
/* Larger than input for multiline */
|
|
100
|
+
padding: 12px 12px;
|
|
101
|
+
/* Slightly larger padding for text areas */
|
|
102
|
+
|
|
103
|
+
/* Auto-resize specific styles */
|
|
104
|
+
overflow: hidden;
|
|
105
|
+
/* Hide scrollbars since we're auto-resizing */
|
|
106
|
+
resize: none;
|
|
107
|
+
/* Disable manual resize by default */
|
|
108
|
+
|
|
109
|
+
/* Ensure consistent text wrapping */
|
|
110
|
+
white-space: pre-wrap;
|
|
111
|
+
word-wrap: break-word;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Hide native scrollbar for webkit when custom scrollbar is active
|
|
115
|
+
(scrollbar-width: none handles Firefox; this handles Chrome/Safari) */
|
|
116
|
+
:host([data-custom-scroll]) textarea::-webkit-scrollbar {
|
|
117
|
+
display: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Focus state - elegant blue glow like input */
|
|
121
|
+
textarea:focus {
|
|
122
|
+
border-color: var(--input-border-focus, var(--ty-input-border-focus));
|
|
123
|
+
box-shadow: 0 0 0 3px var(--input-shadow-focus, var(--ty-input-shadow-focus));
|
|
124
|
+
background: var(--input-bg, var(--ty-input-bg));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Hover state - subtle feedback */
|
|
128
|
+
textarea:hover:not(:disabled) {
|
|
129
|
+
border-color: var(--input-border-hover, var(--ty-input-border-hover));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Disabled state - refined opacity */
|
|
133
|
+
textarea:disabled {
|
|
134
|
+
cursor: not-allowed;
|
|
135
|
+
opacity: 0.5;
|
|
136
|
+
background: var(--input-disabled-bg, var(--ty-input-disabled-bg));
|
|
137
|
+
border-color: var(--input-disabled-border, var(--ty-input-disabled-border));
|
|
138
|
+
color: var(--input-disabled-color, var(--ty-input-disabled-color));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Placeholder styling - subtle and elegant */
|
|
142
|
+
textarea::placeholder {
|
|
143
|
+
color: var(--input-placeholder, var(--ty-input-placeholder));
|
|
144
|
+
font-weight: 400;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* ===== RESIZE CONTROL OPTIONS ===== */
|
|
148
|
+
|
|
149
|
+
/* Allow manual resizing */
|
|
150
|
+
textarea.resize-both {
|
|
151
|
+
resize: both;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
textarea.resize-horizontal {
|
|
155
|
+
resize: horizontal;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
textarea.resize-vertical {
|
|
159
|
+
resize: vertical;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
textarea.resize-none {
|
|
163
|
+
resize: none;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Auto-resize mode (default) disables manual resize */
|
|
167
|
+
textarea:not(.resize-both):not(.resize-horizontal):not(.resize-vertical) {
|
|
168
|
+
resize: none;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* ===== DUMMY ELEMENT FOR AUTO-RESIZE ===== */
|
|
172
|
+
|
|
173
|
+
.textarea-dummy {
|
|
174
|
+
/* Hidden element that measures text height */
|
|
175
|
+
position: absolute !important;
|
|
176
|
+
top: 0 !important;
|
|
177
|
+
left: 0 !important;
|
|
178
|
+
visibility: hidden !important;
|
|
179
|
+
white-space: pre-wrap !important;
|
|
180
|
+
word-break: break-word !important;
|
|
181
|
+
box-sizing: border-box !important;
|
|
182
|
+
overflow: hidden !important;
|
|
183
|
+
pointer-events: none !important;
|
|
184
|
+
z-index: -1 !important;
|
|
185
|
+
|
|
186
|
+
/* Ensure it has the same text behavior as textarea */
|
|
187
|
+
word-wrap: break-word !important;
|
|
188
|
+
overflow-wrap: break-word !important;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* ===== SIZE MODIFIERS ===== */
|
|
192
|
+
|
|
193
|
+
/* Extra Small */
|
|
194
|
+
textarea.xs {
|
|
195
|
+
min-height: 64px;
|
|
196
|
+
padding: 8px 10px;
|
|
197
|
+
font-size: var(--ty-font-xs);
|
|
198
|
+
line-height: var(--ty-leading-xs);
|
|
199
|
+
letter-spacing: var(--ty-tracking-xs);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Small */
|
|
203
|
+
textarea.sm {
|
|
204
|
+
min-height: 72px;
|
|
205
|
+
padding: 10px 10px;
|
|
206
|
+
font-size: var(--ty-font-sm);
|
|
207
|
+
line-height: var(--ty-leading-sm);
|
|
208
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* Medium (default) */
|
|
212
|
+
textarea.md {
|
|
213
|
+
min-height: 80px;
|
|
214
|
+
padding: 12px 12px;
|
|
215
|
+
font-size: var(--ty-font-sm);
|
|
216
|
+
line-height: var(--ty-leading-sm);
|
|
217
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* Large */
|
|
221
|
+
textarea.lg {
|
|
222
|
+
min-height: 96px;
|
|
223
|
+
padding: 14px 14px;
|
|
224
|
+
font-size: var(--ty-font-base);
|
|
225
|
+
line-height: var(--ty-leading-base);
|
|
226
|
+
letter-spacing: var(--ty-tracking-base);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Extra Large */
|
|
230
|
+
textarea.xl {
|
|
231
|
+
min-height: 112px;
|
|
232
|
+
padding: 16px 16px;
|
|
233
|
+
font-size: var(--ty-font-lg);
|
|
234
|
+
line-height: var(--ty-leading-lg);
|
|
235
|
+
letter-spacing: var(--ty-tracking-lg);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/* ===== ACCESSIBILITY ENHANCEMENTS ===== */
|
|
239
|
+
|
|
240
|
+
textarea:focus-visible {
|
|
241
|
+
outline: none;
|
|
242
|
+
/* We use box-shadow instead */
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* High contrast mode support */
|
|
246
|
+
@media (prefers-contrast: high) {
|
|
247
|
+
textarea {
|
|
248
|
+
border-width: 2px;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* Reduced motion support */
|
|
253
|
+
@media (prefers-reduced-motion: reduce) {
|
|
254
|
+
textarea {
|
|
255
|
+
transition: none;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.textarea-dummy {
|
|
259
|
+
transition: none;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/* ===== CONTAINER-AWARE RESPONSIVE BEHAVIOR ===== */
|
|
264
|
+
|
|
265
|
+
/* Scale down on smaller containers using container queries */
|
|
266
|
+
@container (max-width: 480px) {
|
|
267
|
+
textarea.lg {
|
|
268
|
+
font-size: var(--ty-font-sm);
|
|
269
|
+
line-height: var(--ty-leading-sm);
|
|
270
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
271
|
+
padding: 12px 12px;
|
|
272
|
+
min-height: 80px;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
textarea.xl {
|
|
276
|
+
font-size: var(--ty-font-base);
|
|
277
|
+
line-height: var(--ty-leading-base);
|
|
278
|
+
letter-spacing: var(--ty-tracking-base);
|
|
279
|
+
padding: 14px 14px;
|
|
280
|
+
min-height: 96px;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@container (max-width: 320px) {
|
|
285
|
+
textarea.xl {
|
|
286
|
+
font-size: var(--ty-font-sm);
|
|
287
|
+
line-height: var(--ty-leading-sm);
|
|
288
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
289
|
+
padding: 12px 12px;
|
|
290
|
+
min-height: 80px;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* Fallback for browsers without container query support */
|
|
295
|
+
@media (max-width: 640px) {
|
|
296
|
+
textarea.lg {
|
|
297
|
+
font-size: var(--ty-font-sm);
|
|
298
|
+
line-height: var(--ty-leading-sm);
|
|
299
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
300
|
+
padding: 12px 12px;
|
|
301
|
+
min-height: 80px;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
textarea.xl {
|
|
305
|
+
font-size: var(--ty-font-base);
|
|
306
|
+
line-height: var(--ty-leading-base);
|
|
307
|
+
letter-spacing: var(--ty-tracking-base);
|
|
308
|
+
padding: 14px 14px;
|
|
309
|
+
min-height: 96px;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@media (max-width: 480px) {
|
|
314
|
+
textarea.xl {
|
|
315
|
+
font-size: var(--ty-font-sm);
|
|
316
|
+
line-height: var(--ty-leading-sm);
|
|
317
|
+
letter-spacing: var(--ty-tracking-sm);
|
|
318
|
+
padding: 12px 12px;
|
|
319
|
+
min-height: 80px;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/* ===== ANIMATION AND TRANSITIONS ===== */
|
|
324
|
+
|
|
325
|
+
/* Smooth height transitions for auto-resize */
|
|
326
|
+
textarea {
|
|
327
|
+
transition:
|
|
328
|
+
border-color 0.15s ease-in-out,
|
|
329
|
+
box-shadow 0.15s ease-in-out,
|
|
330
|
+
background-color 0.15s ease-in-out,
|
|
331
|
+
height 0.1s ease-out;
|
|
332
|
+
/* Smooth height changes */
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/* Disable height transition on focus to avoid jarring effect */
|
|
336
|
+
textarea:focus {
|
|
337
|
+
transition:
|
|
338
|
+
border-color 0.15s ease-in-out,
|
|
339
|
+
box-shadow 0.15s ease-in-out,
|
|
340
|
+
background-color 0.15s ease-in-out;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* For users who prefer reduced motion, disable height transitions */
|
|
344
|
+
@media (prefers-reduced-motion: reduce) {
|
|
345
|
+
textarea {
|
|
346
|
+
transition: none;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
`;
|
|
350
|
+
//# sourceMappingURL=textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/styles/textarea.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwV7B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tooltip Styles
|
|
3
|
+
*
|
|
4
|
+
* Bold, button-like tooltips with high contrast and semantic colors.
|
|
5
|
+
* Designed to grab attention and provide clear, readable information.
|
|
6
|
+
*/
|
|
7
|
+
import type { StyleContent } from '../types/common.js';
|
|
8
|
+
export declare const tooltipStyles: StyleContent;
|
|
9
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/styles/tooltip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,aAAa,EAAE,YA6H3B,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tooltip Styles
|
|
3
|
+
*
|
|
4
|
+
* Bold, button-like tooltips with high contrast and semantic colors.
|
|
5
|
+
* Designed to grab attention and provide clear, readable information.
|
|
6
|
+
*/
|
|
7
|
+
export const tooltipStyles = {
|
|
8
|
+
id: 'ty-tooltip',
|
|
9
|
+
css: `
|
|
10
|
+
/* Tooltip host element - display contents to not affect layout */
|
|
11
|
+
:host {
|
|
12
|
+
display: contents;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Tooltip container - positioned element */
|
|
16
|
+
#tooltip-container {
|
|
17
|
+
position: fixed;
|
|
18
|
+
top: var(--y, 0px);
|
|
19
|
+
left: var(--x, 0px);
|
|
20
|
+
z-index: var(--ty-z-tooltip, 9999);
|
|
21
|
+
|
|
22
|
+
/* Hidden by default */
|
|
23
|
+
visibility: hidden;
|
|
24
|
+
opacity: 0;
|
|
25
|
+
transition: opacity 200ms, visibility 200ms;
|
|
26
|
+
|
|
27
|
+
/* Prevent interaction */
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
user-select: none;
|
|
30
|
+
-webkit-user-select: none;
|
|
31
|
+
|
|
32
|
+
/* Bold shadow for depth */
|
|
33
|
+
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2),
|
|
34
|
+
0 4px 6px -4px rgba(0, 0, 0, 0.1);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* When open */
|
|
38
|
+
#tooltip-container.open {
|
|
39
|
+
visibility: visible;
|
|
40
|
+
opacity: 1;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Base tooltip styling - Dark inverted style (like buttons) */
|
|
44
|
+
#tooltip-container {
|
|
45
|
+
/* Bold, high-contrast styling. Defaults route through the neutral ramp
|
|
46
|
+
* so the tooltip inverts cleanly: dark in light mode, light in dark mode.
|
|
47
|
+
* Consumers can pin it to a fixed look via --ty-tooltip-bg/-color. */
|
|
48
|
+
background: var(--ty-tooltip-bg, var(--ty-color-neutral-strong));
|
|
49
|
+
color: var(--ty-tooltip-color, var(--ty-color-neutral-faint));
|
|
50
|
+
|
|
51
|
+
/* Comfortable padding */
|
|
52
|
+
padding: var(--ty-tooltip-padding, 8px 12px);
|
|
53
|
+
border-radius: var(--ty-tooltip-radius, 6px);
|
|
54
|
+
|
|
55
|
+
/* No border - solid color provides contrast */
|
|
56
|
+
border: none;
|
|
57
|
+
|
|
58
|
+
/* Sizing */
|
|
59
|
+
max-width: var(--ty-tooltip-max-width, 250px);
|
|
60
|
+
|
|
61
|
+
/* Typography - clear and readable */
|
|
62
|
+
font-size: var(--ty-font-sm, 14px);
|
|
63
|
+
font-weight: var(--ty-font-semibold, 600);
|
|
64
|
+
line-height: 1.5;
|
|
65
|
+
text-align: center;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Content slot */
|
|
69
|
+
#tooltip-container ::slotted(*) {
|
|
70
|
+
/* Ensure slotted content inherits styles */
|
|
71
|
+
color: inherit;
|
|
72
|
+
font-size: inherit;
|
|
73
|
+
line-height: inherit;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* ============================================ */
|
|
77
|
+
/* Flavor Variants - Bold, Button-like Colors */
|
|
78
|
+
/* ============================================ */
|
|
79
|
+
|
|
80
|
+
/* Primary - Bold blue (like primary button) */
|
|
81
|
+
#tooltip-container[data-flavor="primary"] {
|
|
82
|
+
background: var(--ty-color-primary, #3b82f6);
|
|
83
|
+
color: #ffffff;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Success - Bold green */
|
|
87
|
+
#tooltip-container[data-flavor="success"] {
|
|
88
|
+
background: var(--ty-color-success, #10b981);
|
|
89
|
+
color: #ffffff;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Danger - Bold red */
|
|
93
|
+
#tooltip-container[data-flavor="danger"] {
|
|
94
|
+
background: var(--ty-color-danger, #ef4444);
|
|
95
|
+
color: #ffffff;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Warning - Bold orange/amber */
|
|
99
|
+
#tooltip-container[data-flavor="warning"] {
|
|
100
|
+
background: var(--ty-color-warning, #f59e0b);
|
|
101
|
+
color: #ffffff;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Neutral - Medium gray (default alternative) */
|
|
105
|
+
#tooltip-container[data-flavor="neutral"] {
|
|
106
|
+
background: var(--ty-color-neutral, #6b7280);
|
|
107
|
+
color: #ffffff;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Light - For dark backgrounds */
|
|
111
|
+
#tooltip-container[data-flavor="light"] {
|
|
112
|
+
background: var(--ty-surface-floating, var(--ty-surface-elevated, #ffffff));
|
|
113
|
+
color: var(--ty-color-neutral-strong, #111827);
|
|
114
|
+
box-shadow: var(--ty-shadow-lg,
|
|
115
|
+
0 10px 15px -3px rgba(0, 0, 0, 0.15),
|
|
116
|
+
0 4px 6px -4px rgba(0, 0, 0, 0.1),
|
|
117
|
+
0 0 0 1px rgba(0, 0, 0, 0.05));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Dark - Inverted style (default) */
|
|
121
|
+
#tooltip-container[data-flavor="dark"] {
|
|
122
|
+
background: var(--ty-tooltip-bg, var(--ty-color-neutral-strong));
|
|
123
|
+
color: var(--ty-color-neutral-faint);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Secondary - Purple/indigo */
|
|
127
|
+
#tooltip-container[data-flavor="secondary"] {
|
|
128
|
+
background: var(--ty-color-secondary, #8b5cf6);
|
|
129
|
+
color: #ffffff;
|
|
130
|
+
}
|
|
131
|
+
`,
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/styles/tooltip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HN;CACA,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
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: 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 color: var(--ty-solid-success-fg, white);\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: var(--ty-solid-primary-fg, white);\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: var(--ty-solid-danger-fg, white);\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: 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: 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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/styles/wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAO,MAAM,YAAY,yzSAmUxB,CAAC"}
|