tyrell-components 1.0.0-TC44 → 1.0.0-TC46
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/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +12 -7
- package/lib/base/ty-component.js +8 -139
- package/lib/components/button.d.ts +2 -16
- package/lib/components/button.js +0 -36
- package/lib/components/calendar-month.d.ts +2 -48
- package/lib/components/calendar-month.js +4 -166
- package/lib/components/calendar-navigation.d.ts +3 -48
- package/lib/components/calendar-navigation.js +3 -126
- package/lib/components/calendar.d.ts +3 -80
- package/lib/components/calendar.js +8 -230
- package/lib/components/checkbox.d.ts +4 -71
- package/lib/components/checkbox.js +7 -151
- package/lib/components/copy.d.ts +3 -56
- package/lib/components/copy.js +1 -120
- package/lib/components/date-picker.d.ts +10 -160
- package/lib/components/date-picker.js +31 -577
- package/lib/components/file-upload.d.ts +3 -15
- package/lib/components/file-upload.js +0 -37
- package/lib/components/icon.d.ts +3 -24
- package/lib/components/icon.js +1 -90
- package/lib/components/input.d.ts +7 -107
- package/lib/components/input.js +4 -193
- package/lib/components/modal.d.ts +3 -26
- package/lib/components/modal.js +1 -188
- package/lib/components/option.d.ts +2 -9
- package/lib/components/option.js +0 -48
- package/lib/components/popup.d.ts +2 -17
- package/lib/components/popup.js +3 -130
- package/lib/components/radio.d.ts +3 -23
- package/lib/components/radio.js +0 -63
- package/lib/components/resize-observer.d.ts +2 -30
- package/lib/components/resize-observer.js +0 -45
- package/lib/components/scroll-container.d.ts +2 -12
- package/lib/components/scroll-container.js +3 -46
- package/lib/components/select.d.ts +43 -150
- package/lib/components/select.js +68 -558
- package/lib/components/selected-tags.d.ts +4 -47
- package/lib/components/selected-tags.js +0 -94
- package/lib/components/step.d.ts +1 -6
- package/lib/components/step.js +0 -6
- package/lib/components/switch.d.ts +0 -11
- package/lib/components/switch.js +2 -36
- package/lib/components/tab.d.ts +1 -6
- package/lib/components/tab.js +0 -7
- package/lib/components/tabs.d.ts +3 -63
- package/lib/components/tabs.js +2 -282
- package/lib/components/tag.d.ts +2 -36
- package/lib/components/tag.js +5 -105
- package/lib/components/textarea.d.ts +6 -86
- package/lib/components/textarea.js +2 -173
- package/lib/components/tooltip.d.ts +3 -11
- package/lib/components/tooltip.js +0 -154
- package/lib/components/wizard.d.ts +4 -54
- package/lib/components/wizard.js +0 -228
- 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 +0 -8
- package/lib/icons/heroicons/mini.d.ts +0 -1
- package/lib/icons/heroicons/mini.js +0 -8
- package/lib/icons/heroicons/outline.d.ts +0 -1
- package/lib/icons/heroicons/outline.js +0 -8
- package/lib/icons/heroicons/solid.d.ts +0 -1
- package/lib/icons/heroicons/solid.js +0 -8
- package/lib/icons/lucide.d.ts +0 -1
- package/lib/icons/lucide.js +0 -1872
- package/lib/icons/material/filled.d.ts +0 -1
- package/lib/icons/material/filled.js +0 -10
- package/lib/icons/material/outlined.d.ts +0 -1
- package/lib/icons/material/outlined.js +0 -10
- package/lib/icons/material/round.d.ts +0 -1
- package/lib/icons/material/round.js +0 -10
- package/lib/icons/material/sharp.d.ts +0 -1
- package/lib/icons/material/sharp.js +0 -10
- package/lib/icons/material/two-tone.d.ts +0 -1
- package/lib/icons/material/two-tone.js +0 -10
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -20
- package/lib/styles/button.d.ts +2 -20
- package/lib/styles/button.js +13 -120
- package/lib/styles/calendar-month.d.ts +1 -5
- package/lib/styles/calendar-month.js +3 -60
- package/lib/styles/calendar-navigation.d.ts +2 -6
- package/lib/styles/calendar-navigation.js +1 -26
- package/lib/styles/calendar.d.ts +1 -2
- package/lib/styles/calendar.js +0 -13
- package/lib/styles/checkbox.d.ts +0 -1
- package/lib/styles/checkbox.js +1 -23
- package/lib/styles/copy.d.ts +0 -1
- package/lib/styles/copy.js +2 -17
- package/lib/styles/custom-scrollbar.d.ts +1 -2
- package/lib/styles/custom-scrollbar.js +3 -18
- package/lib/styles/date-picker.d.ts +1 -5
- package/lib/styles/date-picker.js +5 -35
- package/lib/styles/file-upload.d.ts +1 -2
- package/lib/styles/file-upload.js +0 -15
- package/lib/styles/icon.d.ts +2 -6
- package/lib/styles/icon.js +1 -26
- package/lib/styles/input.d.ts +1 -6
- package/lib/styles/input.js +3 -53
- package/lib/styles/modal.d.ts +1 -2
- package/lib/styles/modal.js +3 -23
- package/lib/styles/option.d.ts +2 -6
- package/lib/styles/option.js +1 -11
- package/lib/styles/popup.d.ts +1 -2
- package/lib/styles/popup.js +4 -25
- package/lib/styles/radio.d.ts +0 -1
- package/lib/styles/radio.js +1 -15
- package/lib/styles/resize-observer.d.ts +1 -2
- package/lib/styles/resize-observer.js +0 -7
- package/lib/styles/scroll-container.d.ts +1 -2
- package/lib/styles/scroll-container.js +0 -19
- package/lib/styles/select-base.d.ts +0 -1
- package/lib/styles/select-base.js +9 -70
- package/lib/styles/select.d.ts +1 -2
- package/lib/styles/select.js +50 -18
- package/lib/styles/step.d.ts +1 -2
- package/lib/styles/step.js +0 -4
- package/lib/styles/switch.d.ts +0 -1
- package/lib/styles/switch.js +2 -20
- package/lib/styles/tab.d.ts +1 -2
- package/lib/styles/tab.js +0 -5
- package/lib/styles/tabs.d.ts +3 -11
- package/lib/styles/tabs.js +4 -47
- package/lib/styles/tag.d.ts +1 -5
- package/lib/styles/tag.js +2 -31
- package/lib/styles/textarea.d.ts +1 -2
- package/lib/styles/textarea.js +0 -44
- package/lib/styles/tooltip.d.ts +0 -1
- package/lib/styles/tooltip.js +0 -10
- package/lib/styles/wizard.d.ts +5 -21
- package/lib/styles/wizard.js +5 -85
- package/lib/types/common.d.ts +0 -2
- package/lib/types/common.js +0 -12
- package/lib/utils/calendar-utils.d.ts +4 -21
- package/lib/utils/calendar-utils.js +4 -177
- package/lib/utils/custom-scrollbar.d.ts +6 -20
- package/lib/utils/custom-scrollbar.js +1 -45
- package/lib/utils/flavor-sheet.d.ts +0 -1
- package/lib/utils/flavor-sheet.js +0 -23
- package/lib/utils/icon-registry.d.ts +0 -2
- package/lib/utils/icon-registry.js +1 -107
- 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 +0 -32
- package/lib/utils/locale.d.ts +2 -23
- package/lib/utils/locale.js +0 -86
- package/lib/utils/mobile.d.ts +0 -1
- package/lib/utils/mobile.js +0 -17
- package/lib/utils/number-format.d.ts +0 -2
- package/lib/utils/number-format.js +2 -65
- package/lib/utils/positioning.d.ts +4 -2
- package/lib/utils/positioning.js +2 -54
- package/lib/utils/property-capture.d.ts +5 -27
- package/lib/utils/property-capture.js +0 -108
- package/lib/utils/property-manager.d.ts +0 -1
- package/lib/utils/property-manager.js +0 -70
- package/lib/utils/resize-observer.d.ts +0 -1
- package/lib/utils/resize-observer.js +0 -36
- package/lib/utils/scroll-lock.d.ts +4 -11
- package/lib/utils/scroll-lock.js +0 -107
- package/lib/utils/styles.d.ts +0 -1
- package/lib/utils/styles.js +0 -24
- package/lib/version.d.ts +1 -2
- package/lib/version.js +1 -11
- package/package.json +2 -2
- 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/icon.js
CHANGED
|
@@ -1,28 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Component Styles
|
|
3
|
-
* PORTED FROM: clj/ty/components/icon.css
|
|
4
|
-
*/
|
|
5
1
|
export const iconStyles = `
|
|
6
2
|
:host {
|
|
7
3
|
/* Display & Layout - CRITICAL: No containment to prevent paint deferral */
|
|
8
|
-
display: flex;
|
|
4
|
+
display: inline-flex;
|
|
9
5
|
align-items: center;
|
|
10
6
|
justify-content: center;
|
|
11
7
|
line-height: 0;
|
|
12
8
|
|
|
13
|
-
/* Dimensions with CSS variable support for flexibility */
|
|
14
9
|
width: var(--ty-icon-size, 1em);
|
|
15
10
|
height: var(--ty-icon-size, 1em);
|
|
16
11
|
|
|
17
|
-
/* Enforce square aspect ratio */
|
|
18
12
|
aspect-ratio: 1 / 1;
|
|
19
13
|
|
|
20
14
|
|
|
21
|
-
/* Color & Transitions */
|
|
22
15
|
color: inherit;
|
|
23
16
|
transition: color var(--ty-transition-fast);
|
|
24
17
|
|
|
25
|
-
/* Flex Behavior */
|
|
26
18
|
flex-shrink: 0;
|
|
27
19
|
|
|
28
20
|
/* Visibility - Force immediate rendering */
|
|
@@ -58,12 +50,6 @@ export const iconStyles = `
|
|
|
58
50
|
display: block;
|
|
59
51
|
}
|
|
60
52
|
|
|
61
|
-
/* When used in slots, ensure proper display */
|
|
62
|
-
:host([slot]) {
|
|
63
|
-
display: inline-flex;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/* Size variants via CSS classes on the host */
|
|
67
53
|
:host(.icon-xs) {
|
|
68
54
|
width: 0.75em;
|
|
69
55
|
height: 0.75em;
|
|
@@ -150,17 +136,14 @@ export const iconStyles = `
|
|
|
150
136
|
height: 96px;
|
|
151
137
|
}
|
|
152
138
|
|
|
153
|
-
/* Spinning animation - default tempo */
|
|
154
139
|
:host(.icon-spin) {
|
|
155
140
|
animation: icon-spin 1s linear infinite;
|
|
156
141
|
}
|
|
157
142
|
|
|
158
|
-
/* Spinning animation - slow tempo */
|
|
159
143
|
:host(.icon-spin.icon-tempo-slow) {
|
|
160
144
|
animation: icon-spin 2s linear infinite;
|
|
161
145
|
}
|
|
162
146
|
|
|
163
|
-
/* Spinning animation - fast tempo */
|
|
164
147
|
:host(.icon-spin.icon-tempo-fast) {
|
|
165
148
|
animation: icon-spin 0.5s linear infinite;
|
|
166
149
|
}
|
|
@@ -175,17 +158,14 @@ export const iconStyles = `
|
|
|
175
158
|
}
|
|
176
159
|
}
|
|
177
160
|
|
|
178
|
-
/* Pulse animation - default tempo */
|
|
179
161
|
:host(.icon-pulse) {
|
|
180
162
|
animation: icon-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
181
163
|
}
|
|
182
164
|
|
|
183
|
-
/* Pulse animation - slow tempo */
|
|
184
165
|
:host(.icon-pulse.icon-tempo-slow) {
|
|
185
166
|
animation: icon-pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
186
167
|
}
|
|
187
168
|
|
|
188
|
-
/* Pulse animation - fast tempo */
|
|
189
169
|
:host(.icon-pulse.icon-tempo-fast) {
|
|
190
170
|
animation: icon-pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
191
171
|
}
|
|
@@ -207,12 +187,10 @@ export const iconStyles = `
|
|
|
207
187
|
user-select: none;
|
|
208
188
|
}
|
|
209
189
|
|
|
210
|
-
/* Allow pointer events to pass through by default */
|
|
211
190
|
:host(:not(.icon-clickable)) {
|
|
212
191
|
pointer-events: none;
|
|
213
192
|
}
|
|
214
193
|
|
|
215
|
-
/* Clickable icons */
|
|
216
194
|
:host(.icon-clickable) {
|
|
217
195
|
cursor: pointer;
|
|
218
196
|
pointer-events: auto;
|
|
@@ -227,15 +205,12 @@ export const iconStyles = `
|
|
|
227
205
|
transform: scale(0.95);
|
|
228
206
|
}
|
|
229
207
|
|
|
230
|
-
/* Disabled state */
|
|
231
208
|
:host(.icon-disabled) {
|
|
232
209
|
opacity: 0.5;
|
|
233
210
|
cursor: not-allowed;
|
|
234
211
|
}
|
|
235
212
|
|
|
236
|
-
/* Block display variant */
|
|
237
213
|
:host(.icon-block) {
|
|
238
214
|
display: block;
|
|
239
215
|
}
|
|
240
216
|
`;
|
|
241
|
-
//# sourceMappingURL=icon.js.map
|
package/lib/styles/input.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input Component Styles
|
|
3
|
-
* PORTED FROM: clj/ty/components/input.css
|
|
4
|
-
* Phase A: Regular input styles only (no checkbox, no numeric formatting)
|
|
5
|
-
*/
|
|
1
|
+
/** Input Component Styles */
|
|
6
2
|
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
7
3
|
export declare const inputCustomFlavorCss: (base: string) => string;
|
|
8
4
|
export declare const inputStyles: string;
|
|
9
|
-
//# sourceMappingURL=input.d.ts.map
|
package/lib/styles/input.js
CHANGED
|
@@ -1,24 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Input Component Styles
|
|
3
|
-
* PORTED FROM: clj/ty/components/input.css
|
|
4
|
-
* Phase A: Regular input styles only (no checkbox, no numeric formatting)
|
|
5
|
-
*/
|
|
6
1
|
import { FLAVORS } from "../types/common.js";
|
|
7
|
-
/* Flavor rules only set --input-accent (border), --input-accent-bold
|
|
8
|
-
(hover/focus border), and --input-ring (focus shadow); the wrapper base
|
|
9
|
-
rules consume them. They double as the per-instance override API:
|
|
10
|
-
`ty-input { --input-accent: … }`. Neutral is skipped — it IS the default
|
|
11
|
-
chrome (--ty-input-* tokens), and input's auto-danger-on-error logic
|
|
12
|
-
relies on neutral being the unstyled state.
|
|
13
|
-
|
|
14
|
-
Fallback flavor `fb` is used for custom flavors: suffixed tokens fall
|
|
15
|
-
back to the custom base color first (a flavor defining only
|
|
16
|
-
--ty-color-X still gets sensible hover/focus), then to neutral.
|
|
17
|
-
|
|
18
|
-
Emphasis ladder mirrors the neutral chrome (faint rest → soft hover →
|
|
19
|
-
focus + ring): a flavored field rests on its -soft shade and only
|
|
20
|
-
escalates to the full color on hover/focus — a resting field shouldn't
|
|
21
|
-
shout its full-saturation border (tones shift the whole ladder). */
|
|
22
2
|
const inputFlavor = (f, fb) => {
|
|
23
3
|
const c = (s) => fb
|
|
24
4
|
? s
|
|
@@ -45,7 +25,6 @@ const inputFlavor = (f, fb) => {
|
|
|
45
25
|
}
|
|
46
26
|
`;
|
|
47
27
|
};
|
|
48
|
-
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
49
28
|
export const inputCustomFlavorCss = (base) => inputFlavor(base, "neutral");
|
|
50
29
|
export const inputStyles = `
|
|
51
30
|
:host {
|
|
@@ -69,8 +48,6 @@ export const inputStyles = `
|
|
|
69
48
|
box-sizing: border-box;
|
|
70
49
|
}
|
|
71
50
|
|
|
72
|
-
/* ===== LABEL STYLING ===== */
|
|
73
|
-
|
|
74
51
|
.ty-field-label {
|
|
75
52
|
font-size: var(--ty-font-sm);
|
|
76
53
|
line-height: var(--ty-leading-sm);
|
|
@@ -83,7 +60,6 @@ export const inputStyles = `
|
|
|
83
60
|
align-items: center;
|
|
84
61
|
}
|
|
85
62
|
|
|
86
|
-
/* Required indicator - using SVG icon */
|
|
87
63
|
.required-icon {
|
|
88
64
|
display: inline-flex;
|
|
89
65
|
align-items: center;
|
|
@@ -99,12 +75,10 @@ export const inputStyles = `
|
|
|
99
75
|
height: 100%;
|
|
100
76
|
}
|
|
101
77
|
|
|
102
|
-
/* ===== INPUT WRAPPER WITH SLOTS ===== */
|
|
103
|
-
|
|
104
78
|
.input-wrapper {
|
|
105
79
|
display: flex;
|
|
106
80
|
align-items: center;
|
|
107
|
-
gap: 0.5rem;
|
|
81
|
+
gap: 0.5rem;
|
|
108
82
|
width: 100%;
|
|
109
83
|
box-sizing: border-box;
|
|
110
84
|
border: 1px solid var(--input-accent, var(--input-border, var(--ty-input-border)));
|
|
@@ -112,7 +86,6 @@ export const inputStyles = `
|
|
|
112
86
|
background: var(--input-bg, var(--input-bg, var(--ty-input-bg)));
|
|
113
87
|
transition: var(--ty-local-transition, all 0.15s ease-in-out);
|
|
114
88
|
|
|
115
|
-
/* Default size (md) */
|
|
116
89
|
min-height: var(--ty-size-md);
|
|
117
90
|
padding: 0 12px;
|
|
118
91
|
}
|
|
@@ -141,9 +114,6 @@ export const inputStyles = `
|
|
|
141
114
|
border-color: var(--input-disabled-border, var(--ty-input-disabled-border));
|
|
142
115
|
}
|
|
143
116
|
|
|
144
|
-
/* ===== SLOT STYLING ===== */
|
|
145
|
-
|
|
146
|
-
/* Style slotted content directly (no wrappers needed) */
|
|
147
117
|
::slotted([slot="start"]),
|
|
148
118
|
::slotted([slot="end"]) {
|
|
149
119
|
display: flex;
|
|
@@ -181,15 +151,12 @@ export const inputStyles = `
|
|
|
181
151
|
height: 1rem;
|
|
182
152
|
}
|
|
183
153
|
|
|
184
|
-
/* Icon sizing for slotted icons */
|
|
185
154
|
::slotted(ty-icon) {
|
|
186
155
|
width: 1em;
|
|
187
156
|
height: 1em;
|
|
188
157
|
flex-shrink: 0;
|
|
189
158
|
}
|
|
190
159
|
|
|
191
|
-
/* ===== ERROR MESSAGE STYLING ===== */
|
|
192
|
-
|
|
193
160
|
.error-message {
|
|
194
161
|
font-size: var(--ty-font-xs);
|
|
195
162
|
line-height: var(--ty-leading-xs);
|
|
@@ -199,7 +166,6 @@ export const inputStyles = `
|
|
|
199
166
|
padding-left: 12px;
|
|
200
167
|
}
|
|
201
168
|
|
|
202
|
-
/* Error state for wrapper */
|
|
203
169
|
.input-wrapper.error {
|
|
204
170
|
border-color: var(--ty-color-danger);
|
|
205
171
|
background: var(--ty-bg-danger-soft);
|
|
@@ -210,10 +176,8 @@ export const inputStyles = `
|
|
|
210
176
|
box-shadow: 0 0 0 3px var(--input-shadow-focus, var(--ty-input-shadow-focus));
|
|
211
177
|
}
|
|
212
178
|
|
|
213
|
-
/* ===== INPUT BASE STYLING ===== */
|
|
214
|
-
|
|
215
179
|
input {
|
|
216
|
-
/*
|
|
180
|
+
/* Linear-paired typography */
|
|
217
181
|
flex: 1;
|
|
218
182
|
min-width: 0;
|
|
219
183
|
box-sizing: border-box;
|
|
@@ -241,21 +205,16 @@ input[type="number"] {
|
|
|
241
205
|
-moz-appearance: textfield;
|
|
242
206
|
}
|
|
243
207
|
|
|
244
|
-
/* Disabled state */
|
|
245
208
|
input:disabled {
|
|
246
209
|
cursor: not-allowed;
|
|
247
210
|
color: var(--input-disabled-color, var(--ty-input-disabled-color));
|
|
248
211
|
}
|
|
249
212
|
|
|
250
|
-
/* Placeholder styling */
|
|
251
213
|
input::placeholder {
|
|
252
214
|
color: var(--input-placeholder, var(--ty-input-placeholder));
|
|
253
215
|
font-weight: 400;
|
|
254
216
|
}
|
|
255
217
|
|
|
256
|
-
/* ===== SIZE MODIFIERS ===== */
|
|
257
|
-
|
|
258
|
-
/* Small */
|
|
259
218
|
.input-wrapper.sm {
|
|
260
219
|
min-height: var(--ty-size-sm);
|
|
261
220
|
padding: 0 10px;
|
|
@@ -268,7 +227,6 @@ input::placeholder {
|
|
|
268
227
|
letter-spacing: var(--ty-tracking-sm);
|
|
269
228
|
}
|
|
270
229
|
|
|
271
|
-
/* Medium (default) */
|
|
272
230
|
.input-wrapper.md {
|
|
273
231
|
min-height: var(--ty-size-md);
|
|
274
232
|
padding: 0 12px;
|
|
@@ -281,7 +239,6 @@ input::placeholder {
|
|
|
281
239
|
letter-spacing: var(--ty-tracking-sm);
|
|
282
240
|
}
|
|
283
241
|
|
|
284
|
-
/* Large */
|
|
285
242
|
.input-wrapper.lg {
|
|
286
243
|
min-height: var(--ty-size-lg);
|
|
287
244
|
padding: 0 14px;
|
|
@@ -294,31 +251,25 @@ input::placeholder {
|
|
|
294
251
|
letter-spacing: var(--ty-tracking-base);
|
|
295
252
|
}
|
|
296
253
|
|
|
297
|
-
/*
|
|
254
|
+
/* Semantic flavor modifiers set --input-accent*, consumed above */
|
|
298
255
|
${FLAVORS.filter((f) => f !== "neutral").map((f) => inputFlavor(f)).join("")}
|
|
299
256
|
|
|
300
|
-
/* ===== ACCESSIBILITY ENHANCEMENTS ===== */
|
|
301
|
-
|
|
302
257
|
input:focus-visible {
|
|
303
258
|
outline: none;
|
|
304
259
|
}
|
|
305
260
|
|
|
306
|
-
/* High contrast mode support */
|
|
307
261
|
@media (prefers-contrast: high) {
|
|
308
262
|
.input-wrapper {
|
|
309
263
|
border-width: 2px;
|
|
310
264
|
}
|
|
311
265
|
}
|
|
312
266
|
|
|
313
|
-
/* Reduced motion support */
|
|
314
267
|
@media (prefers-reduced-motion: reduce) {
|
|
315
268
|
.input-wrapper {
|
|
316
269
|
transition: none;
|
|
317
270
|
}
|
|
318
271
|
}
|
|
319
272
|
|
|
320
|
-
/* ===== RESPONSIVE BEHAVIOR ===== */
|
|
321
|
-
|
|
322
273
|
@media (max-width: 640px) {
|
|
323
274
|
.input-wrapper.lg {
|
|
324
275
|
min-height: 40px;
|
|
@@ -356,4 +307,3 @@ input:focus-visible {
|
|
|
356
307
|
}
|
|
357
308
|
}
|
|
358
309
|
`;
|
|
359
|
-
//# sourceMappingURL=input.js.map
|
package/lib/styles/modal.d.ts
CHANGED
|
@@ -4,5 +4,4 @@
|
|
|
4
4
|
* CSS for the modal component wrapper.
|
|
5
5
|
* The modal is a pure wrapper - all content styling is user-defined.
|
|
6
6
|
*/
|
|
7
|
-
export declare const modalStyles = "\n
|
|
8
|
-
//# sourceMappingURL=modal.d.ts.map
|
|
7
|
+
export declare const modalStyles = "\n:host {\n display: contents;\n /* Don't interfere with layout */\n}\n\n/* Part of the modal wrapper functionality, not user content styling */\n.close-button {\n position: absolute;\n top: -8px;\n right: -8px;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n transition: var(--ty-transition-colors);\n z-index: 1;\n color: #d8d8d8;\n\n /* Remove all default browser styling that could cause outlines/borders */\n outline: none;\n box-shadow: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n /* Remove mobile tap highlights and focus rings */\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.close-button:hover {\n color: white;\n}\n\n/* Explicitly remove focus and active states for all interaction modes */\n.close-button:focus,\n.close-button:focus-visible,\n.close-button:focus-within,\n.close-button:active {\n outline: none !important;\n box-shadow: none !important;\n border: none !important;\n background: transparent !important;\n}\n\n/* Override hover color even in focus/active states */\n.close-button:hover,\n.close-button:focus:hover,\n.close-button:active:hover {\n color: white;\n}\n\n.close-button.hide {\n visibility: hidden;\n}\n\n/* Pure wrapper: only essential modal functionality, no styling of user content */\n.ty-modal-dialog {\n /* Reset default dialog styles */\n padding: 18px;\n border: none;\n margin: 0;\n background: transparent;\n\n /* Centered */\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n z-index: 1000;\n overflow: hidden;\n\n /* No sizing - let user content determine size */\n max-width: 85vw;\n max-height: 90vh;\n\n outline: none;\n}\n\n/* Backdrop is part of modal functionality, not user content */\n.ty-modal-dialog::backdrop {\n background: var(--ty-modal-backdrop, rgba(0, 0, 0, 0.5));\n backdrop-filter: var(--ty-modal-backdrop-blur, blur(2px));\n animation: ty-modal-backdrop-enter var(--ty-modal-duration, 200ms) ease-out;\n}\n\n/* When backdrop is disabled */\n.ty-modal-dialog:not([data-backdrop])::backdrop {\n background: transparent;\n backdrop-filter: none;\n}\n\n/* Minimal container - no styling imposed on user content */\n.modal-content {\n color: var(--ty-text);\n}\n\n@keyframes ty-modal-backdrop-enter {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n";
|
package/lib/styles/modal.js
CHANGED
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modal Styles
|
|
3
|
-
*
|
|
4
|
-
* CSS for the modal component wrapper.
|
|
5
|
-
* The modal is a pure wrapper - all content styling is user-defined.
|
|
6
|
-
*/
|
|
7
1
|
export const modalStyles = `
|
|
8
|
-
/* Modal Host Styling */
|
|
9
2
|
:host {
|
|
10
3
|
display: contents;
|
|
11
4
|
/* Don't interfere with layout */
|
|
12
|
-
/* CSS variables are now auto-generated via the with-vars? option */
|
|
13
5
|
}
|
|
14
6
|
|
|
15
|
-
/*
|
|
16
|
-
/* This is part of the modal wrapper functionality, not user content styling */
|
|
17
|
-
|
|
7
|
+
/* Part of the modal wrapper functionality, not user content styling */
|
|
18
8
|
.close-button {
|
|
19
9
|
position: absolute;
|
|
20
10
|
top: -8px;
|
|
@@ -70,9 +60,7 @@ export const modalStyles = `
|
|
|
70
60
|
visibility: hidden;
|
|
71
61
|
}
|
|
72
62
|
|
|
73
|
-
/*
|
|
74
|
-
/* Modal dialog - provides only essential modal functionality without styling user content */
|
|
75
|
-
|
|
63
|
+
/* Pure wrapper: only essential modal functionality, no styling of user content */
|
|
76
64
|
.ty-modal-dialog {
|
|
77
65
|
/* Reset default dialog styles */
|
|
78
66
|
padding: 18px;
|
|
@@ -80,13 +68,12 @@ export const modalStyles = `
|
|
|
80
68
|
margin: 0;
|
|
81
69
|
background: transparent;
|
|
82
70
|
|
|
83
|
-
/*
|
|
71
|
+
/* Centered */
|
|
84
72
|
position: fixed;
|
|
85
73
|
top: 50%;
|
|
86
74
|
left: 50%;
|
|
87
75
|
transform: translate(-50%, -50%);
|
|
88
76
|
|
|
89
|
-
/* Layer management */
|
|
90
77
|
z-index: 1000;
|
|
91
78
|
overflow: hidden;
|
|
92
79
|
|
|
@@ -97,9 +84,7 @@ export const modalStyles = `
|
|
|
97
84
|
outline: none;
|
|
98
85
|
}
|
|
99
86
|
|
|
100
|
-
/* ===== BACKDROP STYLING ===== */
|
|
101
87
|
/* Backdrop is part of modal functionality, not user content */
|
|
102
|
-
|
|
103
88
|
.ty-modal-dialog::backdrop {
|
|
104
89
|
background: var(--ty-modal-backdrop, rgba(0, 0, 0, 0.5));
|
|
105
90
|
backdrop-filter: var(--ty-modal-backdrop-blur, blur(2px));
|
|
@@ -112,15 +97,11 @@ export const modalStyles = `
|
|
|
112
97
|
backdrop-filter: none;
|
|
113
98
|
}
|
|
114
99
|
|
|
115
|
-
/* ===== MODAL CONTENT CONTAINER ===== */
|
|
116
100
|
/* Minimal container - no styling imposed on user content */
|
|
117
|
-
|
|
118
101
|
.modal-content {
|
|
119
102
|
color: var(--ty-text);
|
|
120
103
|
}
|
|
121
104
|
|
|
122
|
-
/* ===== ANIMATION KEYFRAMES ===== */
|
|
123
|
-
|
|
124
105
|
@keyframes ty-modal-backdrop-enter {
|
|
125
106
|
from {
|
|
126
107
|
opacity: 0;
|
|
@@ -131,4 +112,3 @@ export const modalStyles = `
|
|
|
131
112
|
}
|
|
132
113
|
}
|
|
133
114
|
`;
|
|
134
|
-
//# sourceMappingURL=modal.js.map
|
package/lib/styles/option.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* PORTED FROM: clj/ty/components/option.css
|
|
4
|
-
*/
|
|
5
|
-
export declare const optionStyles = "\n/* Ty Option Component Styles */\n\n.option-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ty-spacing-2);\n box-sizing: border-box;\n width: 100%;\n\n /* Ensure content is clickable */\n cursor: pointer;\n user-select: none;\n\n /* Smooth transitions */\n transition: var(--ty-transition-all);\n\n /* Text styling \u2014 Linear-paired typography */\n color: var(--ty-text);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n line-height: var(--ty-leading-sm);\n letter-spacing: var(--ty-tracking-sm);\n padding: var(--ty-spacing-2) var(--ty-spacing-3);\n border-radius: var(--ty-radius-md);\n}\n\n:host([cloned]) .option-content {\n padding: 0px;\n background: transparent;\n}\n\n.option-content:hover {\n background: var(--ty-bg-neutral-soft);\n}\n\n.option-content[highlighted] {\n background: var(--ty-bg-neutral-soft);\n color: var(--ty-text-strong);\n font-weight: var(--ty-font-semibold);\n}\n\n/* Selected: quiet \u2014 bolder text color only, no background slab, no weight change */\n.option-content[selected] {\n background: transparent;\n color: var(--ty-text-bold);\n}\n\n/* Lucide check \u2014 right-aligned, visible only on selected options */\n.option-check {\n display: none;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n margin-left: auto;\n color: var(--ty-color-primary);\n}\n\n.option-content[selected] .option-check {\n display: block;\n}\n\n/* Never show the check on the copy cloned into the select's trigger field */\n:host([cloned]) .option-check {\n display: none;\n}\n\n.option-content[selected]:hover {\n background: var(--ty-bg-neutral-soft);\n}\n\n.option-content[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.option-content[hidden] {}\n\n/* Ensure nested elements inherit proper styling */\n.option-content * {\n pointer-events: none;\n}\n";
|
|
6
|
-
//# sourceMappingURL=option.d.ts.map
|
|
1
|
+
/** Option Component Styles */
|
|
2
|
+
export declare const optionStyles = "\n.option-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ty-spacing-2);\n box-sizing: border-box;\n width: 100%;\n\n cursor: pointer;\n user-select: none;\n\n transition: var(--ty-transition-all);\n\n /* Linear-paired typography */\n color: var(--ty-text);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n line-height: var(--ty-leading-sm);\n letter-spacing: var(--ty-tracking-sm);\n padding: var(--ty-spacing-2) var(--ty-spacing-3);\n border-radius: var(--ty-radius-md);\n}\n\n:host([cloned]) .option-content {\n padding: 0px;\n background: transparent;\n}\n\n.option-content:hover {\n background: var(--ty-bg-neutral-soft);\n}\n\n.option-content[highlighted] {\n background: var(--ty-bg-neutral-soft);\n color: var(--ty-text-strong);\n font-weight: var(--ty-font-semibold);\n}\n\n/* Selected: quiet \u2014 bolder text color only, no background slab, no weight change */\n.option-content[selected] {\n background: transparent;\n color: var(--ty-text-bold);\n}\n\n/* Lucide check \u2014 right-aligned, visible only on selected options */\n.option-check {\n display: none;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n margin-left: auto;\n color: var(--ty-color-primary);\n}\n\n.option-content[selected] .option-check {\n display: block;\n}\n\n/* Never show the check on the copy cloned into the select's trigger field */\n:host([cloned]) .option-check {\n display: none;\n}\n\n.option-content[selected]:hover {\n background: var(--ty-bg-neutral-soft);\n}\n\n.option-content[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.option-content[hidden] {}\n\n.option-content * {\n pointer-events: none;\n}\n";
|
package/lib/styles/option.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Option Component Styles
|
|
3
|
-
* PORTED FROM: clj/ty/components/option.css
|
|
4
|
-
*/
|
|
5
1
|
export const optionStyles = `
|
|
6
|
-
/* Ty Option Component Styles */
|
|
7
|
-
|
|
8
2
|
.option-content {
|
|
9
3
|
display: flex;
|
|
10
4
|
align-items: center;
|
|
@@ -13,14 +7,12 @@ export const optionStyles = `
|
|
|
13
7
|
box-sizing: border-box;
|
|
14
8
|
width: 100%;
|
|
15
9
|
|
|
16
|
-
/* Ensure content is clickable */
|
|
17
10
|
cursor: pointer;
|
|
18
11
|
user-select: none;
|
|
19
12
|
|
|
20
|
-
/* Smooth transitions */
|
|
21
13
|
transition: var(--ty-transition-all);
|
|
22
14
|
|
|
23
|
-
/*
|
|
15
|
+
/* Linear-paired typography */
|
|
24
16
|
color: var(--ty-text);
|
|
25
17
|
font-family: var(--ty-font-sans);
|
|
26
18
|
font-size: var(--ty-font-sm);
|
|
@@ -81,9 +73,7 @@ export const optionStyles = `
|
|
|
81
73
|
|
|
82
74
|
.option-content[hidden] {}
|
|
83
75
|
|
|
84
|
-
/* Ensure nested elements inherit proper styling */
|
|
85
76
|
.option-content * {
|
|
86
77
|
pointer-events: none;
|
|
87
78
|
}
|
|
88
79
|
`;
|
|
89
|
-
//# sourceMappingURL=option.js.map
|
package/lib/styles/popup.d.ts
CHANGED
|
@@ -4,5 +4,4 @@
|
|
|
4
4
|
* Popup component with dropdown-like behavior and tooltip positioning.
|
|
5
5
|
* Uses dialog element for top layer rendering like dropdown and date-picker.
|
|
6
6
|
*/
|
|
7
|
-
export declare const popupStyles = "\n
|
|
8
|
-
//# sourceMappingURL=popup.d.ts.map
|
|
7
|
+
export declare const popupStyles = "\n.popup-dialog {\n position: fixed;\n top: 0;\n left: 0;\n\n /* Reset dialog defaults */\n margin: 0;\n border: none;\n background: transparent;\n max-width: none;\n max-height: none;\n\n /* Shadow infrastructure - provide space for user shadows */\n padding: var(--popup-padding, 16px);\n\n /* Hidden by default - even when [open] (for positioning phase) */\n visibility: hidden;\n opacity: 0;\n /* NO TRANSFORM here - apply only when animating to avoid measurement errors! */\n\n transition:\n opacity 150ms ease-out,\n visibility 150ms ease-out,\n transform 150ms ease-out;\n\n /* Prevent interactions when hidden */\n pointer-events: none;\n}\n\n/* Apply position variables only when position is calculated (like dropdown) */\n.popup-dialog.position-calculated {\n top: var(--popup-y, 0px);\n left: var(--popup-x, 0px);\n}\n\n/* Apply scale for entrance animation (right before .open) */\n.popup-dialog.preparing-animation {\n transform: scale(0.95);\n}\n\n.popup-dialog.open {\n visibility: visible;\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n}\n\n/* Make dialog backdrop transparent like dropdown/date-picker */\n.popup-dialog::backdrop {\n background: transparent;\n}\n\n/* Neutral structural container \u2014 users control all visuals via slotted content */\n.popup-container {\n display: contents;\n}\n\n/* Slotted content defines its own styling */\n#popup-content {\n display: contents;\n}\n\n/* Users have complete control over the popup's appearance; only essential\n positioning is imposed here. */\n#popup-content ::slotted(*) {\n position: relative;\n\n /* Prevent content from being too wide - still helpful */\n max-width: min(400px, 90vw);\n max-height: min(500px, 80vh);\n overflow: auto;\n}\n";
|
package/lib/styles/popup.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Popup Component Styles
|
|
3
|
-
*
|
|
4
|
-
* Popup component with dropdown-like behavior and tooltip positioning.
|
|
5
|
-
* Uses dialog element for top layer rendering like dropdown and date-picker.
|
|
6
|
-
*/
|
|
7
1
|
export const popupStyles = `
|
|
8
|
-
/* Popup component with dropdown-like behavior and tooltip positioning */
|
|
9
|
-
/* Uses dialog element for top layer rendering like dropdown and date-picker */
|
|
10
|
-
|
|
11
2
|
.popup-dialog {
|
|
12
3
|
position: fixed;
|
|
13
4
|
top: 0;
|
|
@@ -28,7 +19,6 @@ export const popupStyles = `
|
|
|
28
19
|
opacity: 0;
|
|
29
20
|
/* NO TRANSFORM here - apply only when animating to avoid measurement errors! */
|
|
30
21
|
|
|
31
|
-
/* Smooth transitions */
|
|
32
22
|
transition:
|
|
33
23
|
opacity 150ms ease-out,
|
|
34
24
|
visibility 150ms ease-out,
|
|
@@ -49,7 +39,6 @@ export const popupStyles = `
|
|
|
49
39
|
transform: scale(0.95);
|
|
50
40
|
}
|
|
51
41
|
|
|
52
|
-
/* When open - smooth entrance animation */
|
|
53
42
|
.popup-dialog.open {
|
|
54
43
|
visibility: visible;
|
|
55
44
|
opacity: 1;
|
|
@@ -62,28 +51,19 @@ export const popupStyles = `
|
|
|
62
51
|
background: transparent;
|
|
63
52
|
}
|
|
64
53
|
|
|
65
|
-
/*
|
|
54
|
+
/* Neutral structural container — users control all visuals via slotted content */
|
|
66
55
|
.popup-container {
|
|
67
|
-
/* No default styling - just provides structure */
|
|
68
|
-
/* Users control all visual aspects via slotted content */
|
|
69
56
|
display: contents;
|
|
70
57
|
}
|
|
71
58
|
|
|
72
|
-
/*
|
|
59
|
+
/* Slotted content defines its own styling */
|
|
73
60
|
#popup-content {
|
|
74
|
-
/* Allow slotted content to define its own styling */
|
|
75
61
|
display: contents;
|
|
76
62
|
}
|
|
77
63
|
|
|
78
|
-
/*
|
|
64
|
+
/* Users have complete control over the popup's appearance; only essential
|
|
65
|
+
positioning is imposed here. */
|
|
79
66
|
#popup-content ::slotted(*) {
|
|
80
|
-
/* Remove default styling that conflicts with user styling */
|
|
81
|
-
/* Users now have complete control over popup appearance */
|
|
82
|
-
/* background: unset; */
|
|
83
|
-
/* border: unset; */
|
|
84
|
-
/* box-shadow: unset; */
|
|
85
|
-
|
|
86
|
-
/* Only maintain essential positioning */
|
|
87
67
|
position: relative;
|
|
88
68
|
|
|
89
69
|
/* Prevent content from being too wide - still helpful */
|
|
@@ -92,4 +72,3 @@ export const popupStyles = `
|
|
|
92
72
|
overflow: auto;
|
|
93
73
|
}
|
|
94
74
|
`;
|
|
95
|
-
//# sourceMappingURL=popup.js.map
|
package/lib/styles/radio.d.ts
CHANGED
package/lib/styles/radio.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Radio Group + Radio Styles
|
|
3
|
-
*
|
|
4
|
-
* ty-radio-group: optional label + vertical/horizontal stack of radios + error message
|
|
5
|
-
* ty-radio: circle with inner dot when checked
|
|
6
|
-
*/
|
|
7
1
|
import { FLAVORS } from "../types/common.js";
|
|
8
2
|
import { inputStyles } from "./input.js";
|
|
9
|
-
/* Flavor rules only set --radio-color (checked border + inner dot); base
|
|
10
|
-
rules below consume it. Doubles as the per-instance override API:
|
|
11
|
-
`ty-radio { --radio-color: … }`. Fallback flavor `fb` is used for custom
|
|
12
|
-
flavors so missing tokens degrade to neutral. */
|
|
13
3
|
const radioFlavor = (f, fb) => {
|
|
14
4
|
const tok = (s) => fb
|
|
15
5
|
? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
|
|
@@ -20,7 +10,6 @@ const radioFlavor = (f, fb) => {
|
|
|
20
10
|
:host([flavor="${f}-"]) { --radio-color: ${tok("-soft")}; }
|
|
21
11
|
`;
|
|
22
12
|
};
|
|
23
|
-
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
24
13
|
export const radioCustomFlavorCss = (base) => radioFlavor(base, "neutral");
|
|
25
14
|
export const radioStyles = `
|
|
26
15
|
${inputStyles}
|
|
@@ -38,7 +27,6 @@ ${inputStyles}
|
|
|
38
27
|
width: 100%;
|
|
39
28
|
}
|
|
40
29
|
|
|
41
|
-
/* ===== RADIO GROUP ===== */
|
|
42
30
|
.radio-group-container {
|
|
43
31
|
display: flex;
|
|
44
32
|
flex-direction: column;
|
|
@@ -90,7 +78,7 @@ ${inputStyles}
|
|
|
90
78
|
height: 100%;
|
|
91
79
|
}
|
|
92
80
|
|
|
93
|
-
/*
|
|
81
|
+
/* A radio item is just the circle */
|
|
94
82
|
.radio-container {
|
|
95
83
|
display: inline-block;
|
|
96
84
|
cursor: pointer;
|
|
@@ -144,7 +132,6 @@ ${inputStyles}
|
|
|
144
132
|
transform: translate(-50%, -50%) scale(1);
|
|
145
133
|
}
|
|
146
134
|
|
|
147
|
-
/* Size variants */
|
|
148
135
|
.radio-container.xs .radio-circle { width: 14px; height: 14px; }
|
|
149
136
|
.radio-container.xs .radio-circle::after { width: 6px; height: 6px; }
|
|
150
137
|
|
|
@@ -160,4 +147,3 @@ ${inputStyles}
|
|
|
160
147
|
/* Flavor variants — set --radio-color, consumed by the base rules above */
|
|
161
148
|
${FLAVORS.map((f) => radioFlavor(f)).join("")}
|
|
162
149
|
`;
|
|
163
|
-
//# sourceMappingURL=radio.js.map
|
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
* TyResizeObserver styles
|
|
3
3
|
* Minimal styling - just ensures component participates in layout
|
|
4
4
|
*/
|
|
5
|
-
export declare const resizeObserverStyles = "\n:host {\n /* Default to block display, user can override */\n display: block;\n
|
|
6
|
-
//# sourceMappingURL=resize-observer.d.ts.map
|
|
5
|
+
export declare const resizeObserverStyles = "\n:host {\n /* Default to block display, user can override */\n display: block;\n position: relative;\n}\n\n::slotted(*) {\n /* No default styling - preserve natural layout */\n}\n";
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TyResizeObserver styles
|
|
3
|
-
* Minimal styling - just ensures component participates in layout
|
|
4
|
-
*/
|
|
5
1
|
export const resizeObserverStyles = `
|
|
6
2
|
:host {
|
|
7
3
|
/* Default to block display, user can override */
|
|
8
4
|
display: block;
|
|
9
|
-
/* Ensure the component can participate in layout */
|
|
10
5
|
position: relative;
|
|
11
6
|
}
|
|
12
7
|
|
|
13
|
-
/* Slot content styling */
|
|
14
8
|
::slotted(*) {
|
|
15
9
|
/* No default styling - preserve natural layout */
|
|
16
10
|
}
|
|
17
11
|
`;
|
|
18
|
-
//# sourceMappingURL=resize-observer.js.map
|
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
* TyScrollContainer styles
|
|
3
3
|
* Component-specific styles + shared custom scrollbar styles
|
|
4
4
|
*/
|
|
5
|
-
export declare const scrollContainerStyles = "\n:host {\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.scroll-wrapper {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n
|
|
6
|
-
//# sourceMappingURL=scroll-container.d.ts.map
|
|
5
|
+
export declare const scrollContainerStyles = "\n:host {\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.scroll-wrapper {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n:host([overflow-x]) .scroll-wrapper {\n overflow-x: auto;\n}\n\n:host([max-height]) .scroll-wrapper {\n max-height: var(--scroll-max-height);\n}\n\n/* hide-scrollbar: hides native, no custom */\n:host([hide-scrollbar]) .scroll-wrapper {\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n:host([hide-scrollbar]) .scroll-wrapper::-webkit-scrollbar {\n display: none;\n}\n\n/* scroll-anchoring: we manage scroll position in JS, so turn off the browser's\n native scroll anchoring to avoid double-compensation. */\n:host([scroll-anchoring]) .scroll-wrapper {\n overflow-anchor: none;\n}\n\n/* custom-scrollbar: hides native */\n:host([custom-scrollbar]) .scroll-wrapper {\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n:host([custom-scrollbar]) .scroll-wrapper::-webkit-scrollbar {\n display: none;\n}\n\n:host([custom-scrollbar]:hover) .ty-scrollbar-track-y.has-overflow,\n:host([custom-scrollbar]:hover) .ty-scrollbar-track-x.has-overflow {\n opacity: 1;\n}\n\n/* Corner gap when both axes are present */\n:host([custom-scrollbar][overflow-x]) .ty-scrollbar-track-y {\n bottom: var(--ty-scrollbar-width, 8px);\n}\n\n:host([custom-scrollbar]) .ty-scrollbar-track-x {\n right: var(--ty-scrollbar-width, 8px);\n}\n\n.shadow-overlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 2;\n}\n\n.shadow-top,\n.shadow-bottom,\n.shadow-left,\n.shadow-right {\n position: absolute;\n opacity: 0;\n transition: var(--ty-scroll-shadow-transition, opacity 0.2s ease-out);\n pointer-events: none;\n}\n\n.shadow-top {\n top: -40px;\n left: 0;\n right: 0;\n height: 80px;\n background: var(--ty-scroll-shadow-top, radial-gradient(\n ellipse 100% 30% at center,\n color-mix(in oklab, var(--ty-color-neutral-bold) 12%, transparent),\n transparent,\n transparent\n ));\n clip-path: inset(50% 0 0 0);\n}\n\n.shadow-bottom {\n bottom: -30px;\n left: 0;\n right: 0;\n height: 60px;\n background: var(--ty-scroll-shadow-bottom, radial-gradient(\n ellipse 100% 20% at center,\n color-mix(in oklab, var(--ty-color-neutral-bold) 18%, transparent),\n transparent,\n transparent\n ));\n clip-path: inset(0 0 50% 0);\n}\n\n.shadow-left {\n left: -30px;\n top: 0;\n bottom: 0;\n width: 60px;\n background: var(--ty-scroll-shadow-left, radial-gradient(\n ellipse 30% 100% at center,\n color-mix(in oklab, var(--ty-color-neutral-bold) 12%, transparent),\n transparent,\n transparent\n ));\n clip-path: inset(0 0 0 50%);\n}\n\n.shadow-right {\n right: -30px;\n top: 0;\n bottom: 0;\n width: 60px;\n background: var(--ty-scroll-shadow-right, radial-gradient(\n ellipse 30% 100% at center,\n color-mix(in oklab, var(--ty-color-neutral-bold) 12%, transparent),\n transparent,\n transparent\n ));\n clip-path: inset(0 50% 0 0);\n}\n\n.shadow-left,\n.shadow-right {\n display: none;\n}\n\n:host([overflow-x]) .shadow-left,\n:host([overflow-x]) .shadow-right {\n display: block;\n}\n\n.shadow-top.visible,\n.shadow-bottom.visible,\n.shadow-left.visible,\n.shadow-right.visible {\n opacity: 1;\n}\n\n:host([shadow=\"false\"]) .shadow-overlay {\n display: none;\n}\n\n/* Touch devices - restore native scrollbar */\n@media (pointer: coarse) and (hover: none) {\n :host([custom-scrollbar]) .scroll-wrapper {\n scrollbar-width: thin;\n scrollbar-color: var(--ty-border, color-mix(in oklab, var(--ty-color-neutral-bold) 25%, transparent)) transparent;\n }\n :host([custom-scrollbar]) .scroll-wrapper::-webkit-scrollbar {\n display: block;\n width: 4px;\n height: 4px;\n }\n :host([custom-scrollbar]) .scroll-wrapper::-webkit-scrollbar-thumb {\n background: var(--ty-border, color-mix(in oklab, var(--ty-color-neutral-bold) 25%, transparent));\n border-radius: 2px;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .shadow-top,\n .shadow-bottom,\n .shadow-left,\n .shadow-right {\n transition-duration: 0ms !important;\n }\n}\n\n\n/* Vertical track */\n.ty-scrollbar-track-y {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: var(--ty-scrollbar-width, 8px);\n z-index: 3;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.25s ease-out;\n cursor: pointer;\n}\n\n.ty-scrollbar-track-y.has-overflow {\n pointer-events: auto;\n}\n\n.ty-scrollbar-track-y.has-overflow:hover,\n.ty-scrollbar-track-y.has-overflow.scrolling,\n.ty-scrollbar-track-y.dragging {\n opacity: 1;\n}\n\n.ty-scrollbar-track-y::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--ty-scrollbar-track, transparent);\n border-radius: var(--ty-scrollbar-radius, 4px);\n opacity: 0;\n transition: opacity 0.15s ease-out;\n}\n\n.ty-scrollbar-track-y:hover::before,\n.ty-scrollbar-track-y.dragging::before {\n opacity: 1;\n background: var(--ty-scrollbar-track-hover, color-mix(in oklab, var(--ty-color-neutral-bold) 8%, transparent));\n}\n\n.ty-scrollbar-thumb-y {\n position: absolute;\n right: 0;\n width: 100%;\n min-height: var(--ty-scrollbar-thumb-min-height, 30px);\n background: var(--ty-scrollbar-thumb, color-mix(in oklab, var(--ty-color-neutral-bold) 40%, transparent));\n border-radius: var(--ty-scrollbar-radius, 4px);\n transition: var(--ty-local-transition, background 0.15s ease-out);\n box-sizing: border-box;\n border: 1px solid transparent;\n}\n\n.ty-scrollbar-thumb-y:hover,\n.ty-scrollbar-track-y.dragging .ty-scrollbar-thumb-y {\n background: var(--ty-scrollbar-thumb-hover, color-mix(in oklab, var(--ty-color-neutral-bold) 55%, transparent));\n}\n\n.ty-scrollbar-thumb-y:active,\n.ty-scrollbar-track-y.dragging .ty-scrollbar-thumb-y {\n background: var(--ty-scrollbar-thumb-active, color-mix(in oklab, var(--ty-color-neutral-bold) 70%, transparent));\n}\n\n/* Horizontal track */\n.ty-scrollbar-track-x {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: var(--ty-scrollbar-width, 8px);\n z-index: 3;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.25s ease-out;\n cursor: pointer;\n}\n\n.ty-scrollbar-track-x.has-overflow {\n pointer-events: auto;\n}\n\n.ty-scrollbar-track-x.has-overflow:hover,\n.ty-scrollbar-track-x.has-overflow.scrolling,\n.ty-scrollbar-track-x.dragging {\n opacity: 1;\n}\n\n.ty-scrollbar-track-x::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--ty-scrollbar-track, transparent);\n border-radius: var(--ty-scrollbar-radius, 4px);\n opacity: 0;\n transition: opacity 0.15s ease-out;\n}\n\n.ty-scrollbar-track-x:hover::before,\n.ty-scrollbar-track-x.dragging::before {\n opacity: 1;\n background: var(--ty-scrollbar-track-hover, color-mix(in oklab, var(--ty-color-neutral-bold) 8%, transparent));\n}\n\n.ty-scrollbar-thumb-x {\n position: absolute;\n bottom: 0;\n height: 100%;\n min-width: var(--ty-scrollbar-thumb-min-height, 30px);\n background: var(--ty-scrollbar-thumb, color-mix(in oklab, var(--ty-color-neutral-bold) 40%, transparent));\n border-radius: var(--ty-scrollbar-radius, 4px);\n transition: var(--ty-local-transition, background 0.15s ease-out);\n box-sizing: border-box;\n border: 1px solid transparent;\n}\n\n.ty-scrollbar-thumb-x:hover,\n.ty-scrollbar-track-x.dragging .ty-scrollbar-thumb-x {\n background: var(--ty-scrollbar-thumb-hover, color-mix(in oklab, var(--ty-color-neutral-bold) 55%, transparent));\n}\n\n.ty-scrollbar-thumb-x:active,\n.ty-scrollbar-track-x.dragging .ty-scrollbar-thumb-x {\n background: var(--ty-scrollbar-thumb-active, color-mix(in oklab, var(--ty-color-neutral-bold) 70%, transparent));\n}\n\n/* Touch devices: hide the custom scrollbar */\n@media (pointer: coarse) and (hover: none) {\n .ty-scrollbar-track-y,\n .ty-scrollbar-track-x {\n display: none !important;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ty-scrollbar-track-y,\n .ty-scrollbar-track-x,\n .ty-scrollbar-thumb-y,\n .ty-scrollbar-thumb-x {\n transition-duration: 0ms !important;\n }\n}\n\n";
|