tyrell-components 1.0.0-TC45 → 1.0.0-TC47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/css/tyrell-theme.css +93 -100
- package/dist/tyrell-theme.css +93 -100
- 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 +13 -162
- package/lib/components/date-picker.js +39 -584
- 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 +4 -135
- 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 +22 -153
- package/lib/components/select.js +30 -585
- 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 +5 -283
- 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 +2 -160
- 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 +18 -121
- package/lib/styles/calendar-month.d.ts +1 -5
- package/lib/styles/calendar-month.js +4 -61
- package/lib/styles/calendar-navigation.d.ts +2 -6
- package/lib/styles/calendar-navigation.js +2 -27
- package/lib/styles/calendar.d.ts +1 -2
- package/lib/styles/calendar.js +1 -14
- 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 +8 -38
- package/lib/styles/file-upload.d.ts +1 -2
- package/lib/styles/file-upload.js +1 -16
- package/lib/styles/icon.d.ts +2 -6
- package/lib/styles/icon.js +7 -21
- package/lib/styles/input.d.ts +1 -6
- package/lib/styles/input.js +5 -54
- 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 +2 -12
- 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 +2 -16
- 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 +15 -74
- package/lib/styles/select.d.ts +1 -2
- package/lib/styles/select.js +2 -14
- 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 +10 -48
- 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 +2 -45
- 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 +8 -88
- 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 +50 -7
- package/lib/utils/positioning.js +49 -59
- 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/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: inherit;\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,16 +7,14 @@ 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
|
-
font-family:
|
|
17
|
+
font-family: inherit;
|
|
26
18
|
font-size: var(--ty-font-sm);
|
|
27
19
|
line-height: var(--ty-leading-sm);
|
|
28
20
|
letter-spacing: var(--ty-tracking-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,12 +27,11 @@ ${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;
|
|
45
33
|
gap: 0.4rem;
|
|
46
|
-
font-family:
|
|
34
|
+
font-family: inherit;
|
|
47
35
|
color: var(--ty-color-text);
|
|
48
36
|
}
|
|
49
37
|
|
|
@@ -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";
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TyScrollContainer styles
|
|
3
|
-
* Component-specific styles + shared custom scrollbar styles
|
|
4
|
-
*/
|
|
5
1
|
import { customScrollbarStyles } from './custom-scrollbar.js';
|
|
6
2
|
export const scrollContainerStyles = `
|
|
7
3
|
:host {
|
|
@@ -17,7 +13,6 @@ export const scrollContainerStyles = `
|
|
|
17
13
|
overflow-x: hidden;
|
|
18
14
|
}
|
|
19
15
|
|
|
20
|
-
/* Allow horizontal scrolling when enabled */
|
|
21
16
|
:host([overflow-x]) .scroll-wrapper {
|
|
22
17
|
overflow-x: auto;
|
|
23
18
|
}
|
|
@@ -26,10 +21,7 @@ export const scrollContainerStyles = `
|
|
|
26
21
|
max-height: var(--scroll-max-height);
|
|
27
22
|
}
|
|
28
23
|
|
|
29
|
-
/* ===================================== */
|
|
30
24
|
/* hide-scrollbar: hides native, no custom */
|
|
31
|
-
/* ===================================== */
|
|
32
|
-
|
|
33
25
|
:host([hide-scrollbar]) .scroll-wrapper {
|
|
34
26
|
scrollbar-width: none;
|
|
35
27
|
-ms-overflow-style: none;
|
|
@@ -45,10 +37,7 @@ export const scrollContainerStyles = `
|
|
|
45
37
|
overflow-anchor: none;
|
|
46
38
|
}
|
|
47
39
|
|
|
48
|
-
/* ===================================== */
|
|
49
40
|
/* custom-scrollbar: hides native */
|
|
50
|
-
/* ===================================== */
|
|
51
|
-
|
|
52
41
|
:host([custom-scrollbar]) .scroll-wrapper {
|
|
53
42
|
scrollbar-width: none;
|
|
54
43
|
-ms-overflow-style: none;
|
|
@@ -58,7 +47,6 @@ export const scrollContainerStyles = `
|
|
|
58
47
|
display: none;
|
|
59
48
|
}
|
|
60
49
|
|
|
61
|
-
/* Show scrollbar tracks on host hover */
|
|
62
50
|
:host([custom-scrollbar]:hover) .ty-scrollbar-track-y.has-overflow,
|
|
63
51
|
:host([custom-scrollbar]:hover) .ty-scrollbar-track-x.has-overflow {
|
|
64
52
|
opacity: 1;
|
|
@@ -73,10 +61,6 @@ export const scrollContainerStyles = `
|
|
|
73
61
|
right: var(--ty-scrollbar-width, 8px);
|
|
74
62
|
}
|
|
75
63
|
|
|
76
|
-
/* ===================================== */
|
|
77
|
-
/* Shadow Indicators */
|
|
78
|
-
/* ===================================== */
|
|
79
|
-
|
|
80
64
|
.shadow-overlay {
|
|
81
65
|
position: absolute;
|
|
82
66
|
inset: 0;
|
|
@@ -188,7 +172,6 @@ export const scrollContainerStyles = `
|
|
|
188
172
|
}
|
|
189
173
|
}
|
|
190
174
|
|
|
191
|
-
/* Respect reduced motion */
|
|
192
175
|
@media (prefers-reduced-motion: reduce) {
|
|
193
176
|
.shadow-top,
|
|
194
177
|
.shadow-bottom,
|
|
@@ -198,7 +181,5 @@ export const scrollContainerStyles = `
|
|
|
198
181
|
}
|
|
199
182
|
}
|
|
200
183
|
|
|
201
|
-
/* Shared scrollbar styles */
|
|
202
184
|
${customScrollbarStyles}
|
|
203
185
|
`;
|
|
204
|
-
//# sourceMappingURL=scroll-container.js.map
|