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
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* Clean, modern design with proper visual hierarchy and size variants
|
|
4
|
-
*/
|
|
5
|
-
export declare const calendarNavigationStyles = "\n/* ============================================================================\n Size Variants (CSS Custom Properties)\n ============================================================================ */\n\n/* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of\n use (NOT on :host) so consumers can override them from outside \u2014 this\n component is nested inside ty-calendar's shadow, so a :host default would\n block inherited overrides. --ty-calendar-accent still cascades in. */\n\n:host([data-size=\"md\"]) {\n --nav-btn-size: 2rem;\n --nav-btn-icon-size: 1.25rem;\n --nav-font-size: 1rem;\n --nav-padding: 0.5rem 0.75rem;\n --nav-default-width: 280px;\n}\n\n:host([data-size=\"sm\"]) {\n --nav-btn-size: 1.5rem;\n --nav-btn-icon-size: 1rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.375rem 0.5rem;\n --nav-default-width: 240px;\n}\n\n:host([data-size=\"lg\"]) {\n --nav-btn-size: 2.5rem;\n --nav-btn-icon-size: 1.5rem;\n --nav-font-size: 1.125rem;\n --nav-padding: 0.625rem 1rem;\n --nav-default-width: 360px;\n}\n\n/* ============================================================================\n Main Navigation Header\n ============================================================================ */\n\n.calendar-navigation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nav-padding);\n font-family: system-ui, sans-serif;\n user-select: none;\n width: var(--nav-width, var(--nav-default-width));\n box-sizing: border-box;\n}\n\n/* ============================================================================\n Navigation Groups (Left, Center, Right)\n ============================================================================ */\n\n.nav-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.nav-group-left,\n.nav-group-right {\n flex: 0 0 auto;\n}\n\n.nav-group-center {\n flex: 1;\n justify-content: center;\n}\n\n/* ============================================================================\n Navigation Buttons\n ============================================================================ */\n\n.nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nav-btn-size);\n height: var(--nav-btn-size);\n padding: 0;\n border: none;\n border-radius: var(--ty-radius-base);\n background-color: transparent;\n color: var(--ty-calendar-nav-color, var(--ty-color-neutral));\n cursor: pointer;\n transition: var(--ty-local-transition, all 0.15s ease);\n outline: none;\n}\n\n.nav-btn:hover {\n background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));\n color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));\n}\n\n.nav-btn:active {\n background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));\n transform: scale(0.95);\n}\n\n.nav-btn:disabled {\n opacity: 0.35;\n cursor: default;\n pointer-events: none;\n}\n\n.nav-btn:focus-visible {\n outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));\n outline-offset: 2px;\n}\n\n/* SVG sizing */\n.nav-btn svg {\n width: var(--nav-btn-icon-size);\n height: var(--nav-btn-icon-size);\n display: block;\n}\n\n/* ============================================================================\n Month/Year Display (Center)\n ============================================================================ */\n\n.month-year-display {\n font-size: var(--nav-font-size);\n font-weight: 600;\n color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));\n text-align: center;\n white-space: nowrap;\n letter-spacing: -0.01em;\n}\n";
|
|
6
|
-
//# sourceMappingURL=calendar-navigation.d.ts.map
|
|
1
|
+
/** Calendar Navigation Styles */
|
|
2
|
+
export declare const calendarNavigationStyles = "\n/* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of\n use (NOT on :host) so consumers can override them from outside \u2014 this\n component is nested inside ty-calendar's shadow, so a :host default would\n block inherited overrides. --ty-calendar-accent still cascades in. */\n\n:host([data-size=\"md\"]) {\n --nav-btn-size: 2rem;\n --nav-btn-icon-size: 1.25rem;\n --nav-font-size: 1rem;\n --nav-padding: 0.5rem 0.75rem;\n --nav-default-width: 280px;\n}\n\n:host([data-size=\"sm\"]) {\n --nav-btn-size: 1.5rem;\n --nav-btn-icon-size: 1rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.375rem 0.5rem;\n --nav-default-width: 240px;\n}\n\n:host([data-size=\"lg\"]) {\n --nav-btn-size: 2.5rem;\n --nav-btn-icon-size: 1.5rem;\n --nav-font-size: 1.125rem;\n --nav-padding: 0.625rem 1rem;\n --nav-default-width: 360px;\n}\n\n.calendar-navigation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nav-padding);\n font-family: system-ui, sans-serif;\n user-select: none;\n width: var(--nav-width, var(--nav-default-width));\n box-sizing: border-box;\n}\n\n/* Navigation groups: left, center, right */\n.nav-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.nav-group-left,\n.nav-group-right {\n flex: 0 0 auto;\n}\n\n.nav-group-center {\n flex: 1;\n justify-content: center;\n}\n\n.nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nav-btn-size);\n height: var(--nav-btn-size);\n padding: 0;\n border: none;\n border-radius: var(--ty-radius-base);\n background-color: transparent;\n color: var(--ty-calendar-nav-color, var(--ty-color-neutral));\n cursor: pointer;\n transition: var(--ty-local-transition, all 0.15s ease);\n outline: none;\n}\n\n.nav-btn:hover {\n background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));\n color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));\n}\n\n.nav-btn:active {\n background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));\n transform: scale(0.95);\n}\n\n.nav-btn:disabled {\n opacity: 0.35;\n cursor: default;\n pointer-events: none;\n}\n\n.nav-btn:focus-visible {\n outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));\n outline-offset: 2px;\n}\n\n.nav-btn svg {\n width: var(--nav-btn-icon-size);\n height: var(--nav-btn-icon-size);\n display: block;\n}\n\n.month-year-display {\n font-size: var(--nav-font-size);\n font-weight: 600;\n color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));\n text-align: center;\n white-space: nowrap;\n letter-spacing: -0.01em;\n}\n";
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Calendar Navigation Styles
|
|
3
|
-
* Clean, modern design with proper visual hierarchy and size variants
|
|
4
|
-
*/
|
|
5
1
|
export const calendarNavigationStyles = `
|
|
6
|
-
/* ============================================================================
|
|
7
|
-
Size Variants (CSS Custom Properties)
|
|
8
|
-
============================================================================ */
|
|
9
|
-
|
|
10
2
|
/* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of
|
|
11
3
|
use (NOT on :host) so consumers can override them from outside — this
|
|
12
4
|
component is nested inside ty-calendar's shadow, so a :host default would
|
|
@@ -36,10 +28,6 @@ export const calendarNavigationStyles = `
|
|
|
36
28
|
--nav-default-width: 360px;
|
|
37
29
|
}
|
|
38
30
|
|
|
39
|
-
/* ============================================================================
|
|
40
|
-
Main Navigation Header
|
|
41
|
-
============================================================================ */
|
|
42
|
-
|
|
43
31
|
.calendar-navigation-header {
|
|
44
32
|
display: flex;
|
|
45
33
|
align-items: center;
|
|
@@ -51,10 +39,7 @@ export const calendarNavigationStyles = `
|
|
|
51
39
|
box-sizing: border-box;
|
|
52
40
|
}
|
|
53
41
|
|
|
54
|
-
/*
|
|
55
|
-
Navigation Groups (Left, Center, Right)
|
|
56
|
-
============================================================================ */
|
|
57
|
-
|
|
42
|
+
/* Navigation groups: left, center, right */
|
|
58
43
|
.nav-group {
|
|
59
44
|
display: flex;
|
|
60
45
|
align-items: center;
|
|
@@ -71,10 +56,6 @@ export const calendarNavigationStyles = `
|
|
|
71
56
|
justify-content: center;
|
|
72
57
|
}
|
|
73
58
|
|
|
74
|
-
/* ============================================================================
|
|
75
|
-
Navigation Buttons
|
|
76
|
-
============================================================================ */
|
|
77
|
-
|
|
78
59
|
.nav-btn {
|
|
79
60
|
display: inline-flex;
|
|
80
61
|
align-items: center;
|
|
@@ -112,17 +93,12 @@ export const calendarNavigationStyles = `
|
|
|
112
93
|
outline-offset: 2px;
|
|
113
94
|
}
|
|
114
95
|
|
|
115
|
-
/* SVG sizing */
|
|
116
96
|
.nav-btn svg {
|
|
117
97
|
width: var(--nav-btn-icon-size);
|
|
118
98
|
height: var(--nav-btn-icon-size);
|
|
119
99
|
display: block;
|
|
120
100
|
}
|
|
121
101
|
|
|
122
|
-
/* ============================================================================
|
|
123
|
-
Month/Year Display (Center)
|
|
124
|
-
============================================================================ */
|
|
125
|
-
|
|
126
102
|
.month-year-display {
|
|
127
103
|
font-size: var(--nav-font-size);
|
|
128
104
|
font-weight: 600;
|
|
@@ -132,4 +108,3 @@ export const calendarNavigationStyles = `
|
|
|
132
108
|
letter-spacing: -0.01em;
|
|
133
109
|
}
|
|
134
110
|
`;
|
|
135
|
-
//# sourceMappingURL=calendar-navigation.js.map
|
package/lib/styles/calendar.d.ts
CHANGED
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
* Calendar Orchestration Styles
|
|
3
3
|
* Simple container for navigation + month display
|
|
4
4
|
*/
|
|
5
|
-
export declare const calendarStyles = "\n
|
|
6
|
-
//# sourceMappingURL=calendar.d.ts.map
|
|
5
|
+
export declare const calendarStyles = "\n.calendar-container {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n box-sizing: border-box;\n font-family: system-ui, sans-serif;\n}\n\n@media (max-width: 320px) {\n .calendar-container {\n gap: 0.375rem;\n }\n}\n";
|
package/lib/styles/calendar.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Calendar Orchestration Styles
|
|
3
|
-
* Simple container for navigation + month display
|
|
4
|
-
*/
|
|
5
1
|
export const calendarStyles = `
|
|
6
|
-
/* ============================================================================
|
|
7
|
-
Calendar Container
|
|
8
|
-
============================================================================ */
|
|
9
|
-
|
|
10
2
|
.calendar-container {
|
|
11
3
|
display: flex;
|
|
12
4
|
flex-direction: column;
|
|
@@ -15,14 +7,9 @@ export const calendarStyles = `
|
|
|
15
7
|
font-family: system-ui, sans-serif;
|
|
16
8
|
}
|
|
17
9
|
|
|
18
|
-
/* ============================================================================
|
|
19
|
-
Responsive Adjustments
|
|
20
|
-
============================================================================ */
|
|
21
|
-
|
|
22
10
|
@media (max-width: 320px) {
|
|
23
11
|
.calendar-container {
|
|
24
12
|
gap: 0.375rem;
|
|
25
13
|
}
|
|
26
14
|
}
|
|
27
15
|
`;
|
|
28
|
-
//# sourceMappingURL=calendar.js.map
|
package/lib/styles/checkbox.d.ts
CHANGED
package/lib/styles/checkbox.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checkbox Component Styles — self-contained (no inputStyles import).
|
|
3
|
-
*
|
|
4
|
-
* The checkbox is "just the tick": a single checkmark whose color/opacity
|
|
5
|
-
* carries the state. Full flavor color when checked, faint when unchecked,
|
|
6
|
-
* dash at mid-opacity when indeterminate, grayscale when disabled.
|
|
7
|
-
*/
|
|
8
1
|
import { FLAVORS } from "../types/common.js";
|
|
9
|
-
/* Flavor rules only set --checkbox-color (checked) / --checkbox-color-off
|
|
10
|
-
(unchecked) / --checkbox-ring (focus ring); the base rules below consume
|
|
11
|
-
them. Doubles as the per-instance override API: `ty-checkbox {
|
|
12
|
-
--checkbox-color: … }`. --checkbox-ring pre-resolves the color-mix() here
|
|
13
|
-
(rather than inlining a nested var(...,fallback) as a color-mix argument
|
|
14
|
-
directly in the box-shadow rule) — that nested form fails at
|
|
15
|
-
computed-value time in some engines. Fallback flavor `fb` is used for
|
|
16
|
-
custom flavors so missing tokens degrade to neutral. */
|
|
17
2
|
const checkboxFlavor = (f, fb) => {
|
|
18
3
|
const tok = (s) => fb
|
|
19
4
|
? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
|
|
@@ -24,7 +9,6 @@ const checkboxFlavor = (f, fb) => {
|
|
|
24
9
|
:host([flavor="${f}-"]) { --checkbox-color: ${tok("-soft")}; --checkbox-color-off: ${tok("-faint")}; --checkbox-ring: color-mix(in oklab, ${tok("-soft")} 25%, transparent); }
|
|
25
10
|
`;
|
|
26
11
|
};
|
|
27
|
-
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
28
12
|
export const checkboxCustomFlavorCss = (base) => checkboxFlavor(base, "neutral");
|
|
29
13
|
export const checkboxStyles = `
|
|
30
14
|
:host {
|
|
@@ -69,8 +53,6 @@ export const checkboxStyles = `
|
|
|
69
53
|
/* Let the container handle the click */
|
|
70
54
|
}
|
|
71
55
|
|
|
72
|
-
/* ===== SIZES ===== */
|
|
73
|
-
|
|
74
56
|
.checkbox-container svg {
|
|
75
57
|
width: 16px;
|
|
76
58
|
height: 16px;
|
|
@@ -96,11 +78,9 @@ export const checkboxStyles = `
|
|
|
96
78
|
height: 24px;
|
|
97
79
|
}
|
|
98
80
|
|
|
99
|
-
/*
|
|
81
|
+
/* Semantic flavors set --checkbox-color[-off], consumed above */
|
|
100
82
|
${FLAVORS.map((f) => checkboxFlavor(f)).join("")}
|
|
101
83
|
|
|
102
|
-
/* ===== STATES ===== */
|
|
103
|
-
|
|
104
84
|
/* Clean tick: no box outline, just the checkmark. Inactive = faint tick. */
|
|
105
85
|
.checkbox-container:not([aria-checked="true"]) {
|
|
106
86
|
opacity: 0.35;
|
|
@@ -124,7 +104,6 @@ ${FLAVORS.map((f) => checkboxFlavor(f)).join("")}
|
|
|
124
104
|
opacity: 0.2;
|
|
125
105
|
}
|
|
126
106
|
|
|
127
|
-
/* Error state */
|
|
128
107
|
.checkbox-container.error .checkbox-icon {
|
|
129
108
|
color: var(--ty-color-danger);
|
|
130
109
|
}
|
|
@@ -133,4 +112,3 @@ ${FLAVORS.map((f) => checkboxFlavor(f)).join("")}
|
|
|
133
112
|
box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-danger) 15%, transparent);
|
|
134
113
|
}
|
|
135
114
|
`;
|
|
136
|
-
//# sourceMappingURL=checkbox.js.map
|
package/lib/styles/copy.d.ts
CHANGED
package/lib/styles/copy.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copy Component Styles
|
|
3
|
-
* Read-only field with copy-to-clipboard functionality
|
|
4
|
-
* Extends input styles with copy-specific styling
|
|
5
|
-
*/
|
|
6
1
|
import { FLAVORS } from "../types/common.js";
|
|
7
|
-
/* Flavor rules only set --copy-color (button), --copy-color-hover, and
|
|
8
|
-
--copy-bg-hover (wrapper hover); the base rules below consume them.
|
|
9
|
-
Doubles as the per-instance override API. Fallback flavor `fb` is used
|
|
10
|
-
for custom flavors so missing tokens degrade to neutral. */
|
|
11
2
|
const copyFlavor = (f, fb) => {
|
|
12
3
|
const c = (s) => fb
|
|
13
4
|
? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
|
|
@@ -21,10 +12,8 @@ const copyFlavor = (f, fb) => {
|
|
|
21
12
|
:host([flavor="${f}-"]) { --copy-color: ${c("-soft")}; --copy-color-hover: ${c("")}; --copy-bg-hover: ${bg("-soft")}; }
|
|
22
13
|
`;
|
|
23
14
|
};
|
|
24
|
-
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
25
15
|
export const copyCustomFlavorCss = (base) => copyFlavor(base, "neutral");
|
|
26
16
|
export const copyStyles = `
|
|
27
|
-
/* Copy field value display */
|
|
28
17
|
.copy-field-value {
|
|
29
18
|
flex: 1;
|
|
30
19
|
overflow: hidden;
|
|
@@ -41,7 +30,6 @@ export const copyStyles = `
|
|
|
41
30
|
line-height: inherit;
|
|
42
31
|
}
|
|
43
32
|
|
|
44
|
-
/* Multiline variant */
|
|
45
33
|
.copy-field-value.multiline {
|
|
46
34
|
white-space: pre-wrap;
|
|
47
35
|
word-break: break-word;
|
|
@@ -56,7 +44,7 @@ export const copyStyles = `
|
|
|
56
44
|
padding-bottom: 8px;
|
|
57
45
|
}
|
|
58
46
|
|
|
59
|
-
/*
|
|
47
|
+
/* Scroll long content instead of clipping with an ellipsis */
|
|
60
48
|
.copy-field-value.horizontal-scroll {
|
|
61
49
|
overflow-x: auto;
|
|
62
50
|
overflow-y: hidden;
|
|
@@ -81,7 +69,6 @@ export const copyStyles = `
|
|
|
81
69
|
display: none; /* Chrome/Safari */
|
|
82
70
|
}
|
|
83
71
|
|
|
84
|
-
/* Code format */
|
|
85
72
|
.copy-field-value {
|
|
86
73
|
font-size: 0.8em;
|
|
87
74
|
}
|
|
@@ -92,7 +79,6 @@ export const copyStyles = `
|
|
|
92
79
|
transition: var(--ty-local-transition, background 0.2s ease);
|
|
93
80
|
}
|
|
94
81
|
|
|
95
|
-
/* Copy button */
|
|
96
82
|
.copy-button {
|
|
97
83
|
flex-shrink: 0;
|
|
98
84
|
display: flex;
|
|
@@ -143,7 +129,6 @@ export const copyStyles = `
|
|
|
143
129
|
cursor: not-allowed;
|
|
144
130
|
}
|
|
145
131
|
|
|
146
|
-
/*
|
|
132
|
+
/* Semantic flavors set --copy-*, consumed above */
|
|
147
133
|
${FLAVORS.map((f) => copyFlavor(f)).join("")}
|
|
148
134
|
`;
|
|
149
|
-
//# sourceMappingURL=copy.js.map
|
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
* Shared CSS for CustomScrollbar utility
|
|
3
3
|
* Include this in any component that uses CustomScrollbar
|
|
4
4
|
*/
|
|
5
|
-
export declare const customScrollbarStyles = "\n/*
|
|
6
|
-
//# sourceMappingURL=custom-scrollbar.d.ts.map
|
|
5
|
+
export declare const customScrollbarStyles = "\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";
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared CSS for CustomScrollbar utility
|
|
3
|
-
* Include this in any component that uses CustomScrollbar
|
|
4
|
-
*/
|
|
5
1
|
export const customScrollbarStyles = `
|
|
6
|
-
/*
|
|
7
|
-
/* Custom Scrollbar - Vertical Track */
|
|
8
|
-
/* ===================================== */
|
|
9
|
-
|
|
2
|
+
/* Vertical track */
|
|
10
3
|
.ty-scrollbar-track-y {
|
|
11
4
|
position: absolute;
|
|
12
5
|
top: 0;
|
|
@@ -68,10 +61,7 @@ export const customScrollbarStyles = `
|
|
|
68
61
|
background: var(--ty-scrollbar-thumb-active, color-mix(in oklab, var(--ty-color-neutral-bold) 70%, transparent));
|
|
69
62
|
}
|
|
70
63
|
|
|
71
|
-
/*
|
|
72
|
-
/* Custom Scrollbar - Horizontal Track */
|
|
73
|
-
/* ===================================== */
|
|
74
|
-
|
|
64
|
+
/* Horizontal track */
|
|
75
65
|
.ty-scrollbar-track-x {
|
|
76
66
|
position: absolute;
|
|
77
67
|
bottom: 0;
|
|
@@ -133,10 +123,7 @@ export const customScrollbarStyles = `
|
|
|
133
123
|
background: var(--ty-scrollbar-thumb-active, color-mix(in oklab, var(--ty-color-neutral-bold) 70%, transparent));
|
|
134
124
|
}
|
|
135
125
|
|
|
136
|
-
/*
|
|
137
|
-
/* Touch devices - hide custom scrollbar */
|
|
138
|
-
/* ===================================== */
|
|
139
|
-
|
|
126
|
+
/* Touch devices: hide the custom scrollbar */
|
|
140
127
|
@media (pointer: coarse) and (hover: none) {
|
|
141
128
|
.ty-scrollbar-track-y,
|
|
142
129
|
.ty-scrollbar-track-x {
|
|
@@ -144,7 +131,6 @@ export const customScrollbarStyles = `
|
|
|
144
131
|
}
|
|
145
132
|
}
|
|
146
133
|
|
|
147
|
-
/* Respect reduced motion */
|
|
148
134
|
@media (prefers-reduced-motion: reduce) {
|
|
149
135
|
.ty-scrollbar-track-y,
|
|
150
136
|
.ty-scrollbar-track-x,
|
|
@@ -154,4 +140,3 @@ export const customScrollbarStyles = `
|
|
|
154
140
|
}
|
|
155
141
|
}
|
|
156
142
|
`;
|
|
157
|
-
//# sourceMappingURL=custom-scrollbar.js.map
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Date Picker Component Styles
|
|
3
|
-
* PORTED FROM: cljs/ty/components/date_picker.css
|
|
4
|
-
*/
|
|
1
|
+
/** Date Picker Component Styles */
|
|
5
2
|
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
6
3
|
export declare const datePickerCustomFlavorCss: (base: string) => string;
|
|
7
4
|
export declare const datePickerStyles: string;
|
|
8
|
-
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Date Picker Component Styles
|
|
3
|
-
* PORTED FROM: cljs/ty/components/date_picker.css
|
|
4
|
-
*/
|
|
5
1
|
import { FLAVORS } from "../types/common.js";
|
|
6
|
-
/* Flavor rules only set --date-picker-accent (border), -accent-bold
|
|
7
|
-
(hover/focus border), and -ring (focus shadow); the stub base rules
|
|
8
|
-
consume them. Doubles as the per-instance override API. Neutral is
|
|
9
|
-
skipped — the 'default' flavor is the unstyled --ty-date-picker-* chrome.
|
|
10
|
-
Fallback flavor `fb` is used for custom flavors (suffixed tokens fall
|
|
11
|
-
back to the custom base color, then neutral). */
|
|
12
2
|
const datePickerFlavor = (f, fb) => {
|
|
13
3
|
const c = (s) => fb
|
|
14
4
|
? s
|
|
@@ -35,21 +25,16 @@ const datePickerFlavor = (f, fb) => {
|
|
|
35
25
|
}
|
|
36
26
|
`;
|
|
37
27
|
};
|
|
38
|
-
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
39
28
|
export const datePickerCustomFlavorCss = (base) => datePickerFlavor(base, "neutral");
|
|
40
29
|
export const datePickerStyles = `
|
|
41
|
-
/* Date Picker Component Styles */
|
|
42
30
|
:host {
|
|
43
31
|
display: block;
|
|
44
32
|
width: auto;
|
|
45
33
|
min-width: 200px;
|
|
46
34
|
font-family: var(--ty-font-sans);
|
|
47
35
|
|
|
48
|
-
/*
|
|
49
|
-
|
|
50
|
-
Thin shim over --ty-input-*. Override these to retheme just the date-picker
|
|
51
|
-
trigger without affecting other inputs.
|
|
52
|
-
========================================================================== */
|
|
36
|
+
/* Theming tokens — date-picker stub. Thin shim over --ty-input-*: override
|
|
37
|
+
these to retheme just the date-picker trigger, not other inputs. */
|
|
53
38
|
--ty-date-picker-bg: var(--ty-input-bg);
|
|
54
39
|
--ty-date-picker-color: var(--ty-input-color);
|
|
55
40
|
--ty-date-picker-placeholder: var(--ty-input-placeholder);
|
|
@@ -61,18 +46,14 @@ export const datePickerStyles = `
|
|
|
61
46
|
--ty-date-picker-disabled-color: var(--ty-input-disabled-color);
|
|
62
47
|
--ty-date-picker-radius: var(--ty-radius-md);
|
|
63
48
|
|
|
64
|
-
/*
|
|
65
|
-
|
|
66
|
-
Shared with ty-calendar / ty-calendar-month theming.
|
|
67
|
-
========================================================================== */
|
|
49
|
+
/* Theming tokens — calendar popup surface. Shared with ty-calendar /
|
|
50
|
+
ty-calendar-month theming. */
|
|
68
51
|
--ty-calendar-surface-bg: var(--ty-surface-floating);
|
|
69
52
|
--ty-calendar-surface-border: var(--ty-input-border);
|
|
70
53
|
--ty-calendar-surface-shadow: var(--ty-shadow-lg, 0 4px 20px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.1));
|
|
71
54
|
--ty-calendar-surface-radius: var(--ty-radius-lg);
|
|
72
55
|
|
|
73
|
-
/*
|
|
74
|
-
Theming Tokens — Time Section
|
|
75
|
-
========================================================================== */
|
|
56
|
+
/* Theming tokens — time section */
|
|
76
57
|
--ty-calendar-time-bg: transparent;
|
|
77
58
|
--ty-calendar-time-border: var(--ty-border-faint);
|
|
78
59
|
--ty-calendar-time-label-color: var(--ty-color-neutral);
|
|
@@ -117,7 +98,6 @@ export const datePickerStyles = `
|
|
|
117
98
|
width: 100%;
|
|
118
99
|
}
|
|
119
100
|
|
|
120
|
-
/* Start-slot icon (leading content inside the date-picker stub) */
|
|
121
101
|
.date-picker-stub ::slotted([slot="start"]) {
|
|
122
102
|
display: flex;
|
|
123
103
|
align-items: center;
|
|
@@ -132,7 +112,6 @@ export const datePickerStyles = `
|
|
|
132
112
|
height: 1em;
|
|
133
113
|
}
|
|
134
114
|
|
|
135
|
-
/* Date picker stub (styled like dropdown) */
|
|
136
115
|
.date-picker-stub {
|
|
137
116
|
width: 100%;
|
|
138
117
|
cursor: pointer;
|
|
@@ -172,7 +151,6 @@ export const datePickerStyles = `
|
|
|
172
151
|
box-shadow: 0 0 0 3px var(--date-picker-ring, var(--ty-date-picker-shadow-focus));
|
|
173
152
|
}
|
|
174
153
|
|
|
175
|
-
/* Size variants */
|
|
176
154
|
.date-picker-stub.sm {
|
|
177
155
|
min-height: var(--ty-size-sm);
|
|
178
156
|
font-size: var(--ty-font-xs);
|
|
@@ -190,7 +168,6 @@ export const datePickerStyles = `
|
|
|
190
168
|
/* Flavor variants — set --date-picker-accent*, consumed by the stub rules above */
|
|
191
169
|
${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join("")}
|
|
192
170
|
|
|
193
|
-
/* Text content */
|
|
194
171
|
.stub-text {
|
|
195
172
|
flex: 1;
|
|
196
173
|
white-space: nowrap;
|
|
@@ -205,7 +182,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
205
182
|
color: var(--ty-date-picker-placeholder);
|
|
206
183
|
}
|
|
207
184
|
|
|
208
|
-
/* Icons */
|
|
209
185
|
.stub-icons {
|
|
210
186
|
display: flex;
|
|
211
187
|
align-items: center;
|
|
@@ -275,7 +251,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
275
251
|
box-sizing: border-box;
|
|
276
252
|
padding: var(--calendar-padding, 8px);
|
|
277
253
|
|
|
278
|
-
/* Hidden by default */
|
|
279
254
|
opacity: 0;
|
|
280
255
|
transition: opacity 200ms ease;
|
|
281
256
|
|
|
@@ -284,7 +259,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
284
259
|
left: -1000px;
|
|
285
260
|
}
|
|
286
261
|
|
|
287
|
-
/* Direction-based positioning with CSS classes */
|
|
288
262
|
.calendar-dialog.position-below {
|
|
289
263
|
left: var(--calendar-x);
|
|
290
264
|
top: var(--calendar-y);
|
|
@@ -305,7 +279,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
305
279
|
background: transparent
|
|
306
280
|
}
|
|
307
281
|
|
|
308
|
-
/* Calendar content container */
|
|
309
282
|
.calendar-content {
|
|
310
283
|
background-color: var(--ty-calendar-surface-bg);
|
|
311
284
|
border: 1px solid var(--ty-calendar-surface-border);
|
|
@@ -317,7 +290,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
317
290
|
align-items: center;
|
|
318
291
|
}
|
|
319
292
|
|
|
320
|
-
/* Native date input for mobile */
|
|
321
293
|
/* Native input is invisible — used only to trigger the OS picker */
|
|
322
294
|
.native-date-input {
|
|
323
295
|
position: absolute;
|
|
@@ -342,7 +314,6 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
342
314
|
cursor: pointer;
|
|
343
315
|
}
|
|
344
316
|
|
|
345
|
-
/* Time input section */
|
|
346
317
|
.time-section {
|
|
347
318
|
display: flex;
|
|
348
319
|
min-height: 2.5rem;
|
|
@@ -397,4 +368,3 @@ ${FLAVORS.filter((f) => f !== "neutral").map((f) => datePickerFlavor(f)).join(""
|
|
|
397
368
|
flex-shrink: 0;
|
|
398
369
|
}
|
|
399
370
|
`;
|
|
400
|
-
//# sourceMappingURL=date-picker.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const fileUploadStyles = "\n:host {\n display: block;\n font-family: var(--ty-font-sans);\n width: 100%;\n}\n\n.file-upload-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n}\n\n
|
|
2
|
-
//# sourceMappingURL=file-upload.d.ts.map
|
|
1
|
+
export declare const fileUploadStyles = "\n:host {\n display: block;\n font-family: var(--ty-font-sans);\n width: 100%;\n}\n\n.file-upload-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n}\n\n.upload-label {\n font-size: var(--ty-font-sm);\n line-height: var(--ty-leading-sm);\n letter-spacing: var(--ty-tracking-sm);\n font-weight: var(--ty-font-medium);\n color: var(--ty-label-color);\n margin-bottom: 6px;\n padding-left: 4px;\n display: flex;\n align-items: center;\n}\n\n.required-icon {\n color: var(--ty-color-danger);\n margin-left: 4px;\n font-size: 0.75rem;\n line-height: 1;\n}\n\n.drop-zone {\n border: 2px dashed var(--ty-border);\n border-radius: var(--ty-radius-base);\n padding: 2rem 1.5rem;\n text-align: center;\n cursor: pointer;\n transition: var(--ty-local-transition, border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease);\n outline: none;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n min-height: 140px;\n user-select: none;\n}\n\n.drop-zone:hover:not(.disabled) {\n border-color: var(--ty-input-border-hover);\n background: var(--ty-surface-content);\n}\n\n.drop-zone.focused {\n border-color: var(--ty-input-border-focus);\n box-shadow: 0 0 0 3px var(--ty-input-shadow-focus);\n}\n\n.drop-zone.drag-active {\n border-color: var(--ty-color-primary);\n border-style: solid;\n background: var(--ty-bg-primary-);\n}\n\n.drop-zone.drag-active .upload-icon {\n color: var(--ty-color-primary);\n transform: translateY(-2px);\n}\n\n.drop-zone.has-files {\n min-height: 80px;\n padding: 1.25rem 1.5rem;\n}\n\n.drop-zone.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.drop-zone.error {\n border-color: var(--ty-color-danger);\n}\n\n.drop-zone.error:not(.disabled) {\n background: var(--ty-bg-danger-);\n}\n\n.upload-icon {\n color: var(--ty-text-faint);\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: var(--ty-local-transition, color 0.15s ease, transform 0.15s ease);\n pointer-events: none;\n}\n\n.upload-icon svg {\n width: 100%;\n height: 100%;\n}\n\n.upload-hint {\n color: var(--ty-text-soft);\n font-size: var(--ty-font-sm);\n line-height: var(--ty-leading-sm);\n pointer-events: none;\n}\n\n.browse-link {\n color: var(--ty-color-primary);\n font-weight: var(--ty-font-medium);\n}\n\n.upload-sub-hint {\n color: var(--ty-text-faint);\n font-size: var(--ty-font-xs);\n line-height: var(--ty-leading-xs);\n pointer-events: none;\n}\n\n.file-list {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n margin-top: 0.5rem;\n}\n\n.file-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border-radius: var(--ty-radius-base);\n background: var(--ty-surface-content);\n border: 1px solid var(--ty-border-soft);\n}\n\n.file-icon {\n color: var(--ty-text-faint);\n flex-shrink: 0;\n width: 1rem;\n height: 1rem;\n display: flex;\n align-items: center;\n}\n\n.file-icon svg {\n width: 100%;\n height: 100%;\n}\n\n.file-name {\n flex: 1;\n font-size: var(--ty-font-sm);\n color: var(--ty-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.file-size {\n font-size: var(--ty-font-xs);\n color: var(--ty-text-faint);\n flex-shrink: 0;\n font-variant-numeric: tabular-nums;\n}\n\n.file-remove {\n flex-shrink: 0;\n cursor: pointer;\n color: var(--ty-text-faint);\n width: 1.25rem;\n height: 1.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: var(--ty-local-transition, color 0.15s ease, background-color 0.15s ease);\n border: none;\n background: none;\n padding: 0;\n outline: none;\n}\n\n.file-remove:hover {\n color: var(--ty-color-danger);\n background: var(--ty-bg-danger-);\n}\n\n.file-remove:focus-visible {\n box-shadow: 0 0 0 2px var(--ty-color-danger);\n}\n\n.file-remove svg {\n width: 12px;\n height: 12px;\n}\n\n.error-message {\n font-size: var(--ty-font-xs);\n line-height: var(--ty-leading-xs);\n color: var(--ty-color-danger);\n margin-top: 4px;\n padding-left: 4px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .drop-zone,\n .upload-icon,\n .file-remove {\n transition: none;\n }\n}\n\n@media (prefers-contrast: high) {\n .drop-zone {\n border-width: 3px;\n }\n}\n";
|
|
@@ -12,8 +12,6 @@ export const fileUploadStyles = `
|
|
|
12
12
|
box-sizing: border-box;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/* ===== LABEL ===== */
|
|
16
|
-
|
|
17
15
|
.upload-label {
|
|
18
16
|
font-size: var(--ty-font-sm);
|
|
19
17
|
line-height: var(--ty-leading-sm);
|
|
@@ -33,8 +31,6 @@ export const fileUploadStyles = `
|
|
|
33
31
|
line-height: 1;
|
|
34
32
|
}
|
|
35
33
|
|
|
36
|
-
/* ===== DROP ZONE ===== */
|
|
37
|
-
|
|
38
34
|
.drop-zone {
|
|
39
35
|
border: 2px dashed var(--ty-border);
|
|
40
36
|
border-radius: var(--ty-radius-base);
|
|
@@ -92,8 +88,6 @@ export const fileUploadStyles = `
|
|
|
92
88
|
background: var(--ty-bg-danger-);
|
|
93
89
|
}
|
|
94
90
|
|
|
95
|
-
/* ===== UPLOAD ICON ===== */
|
|
96
|
-
|
|
97
91
|
.upload-icon {
|
|
98
92
|
color: var(--ty-text-faint);
|
|
99
93
|
width: 2.5rem;
|
|
@@ -110,8 +104,6 @@ export const fileUploadStyles = `
|
|
|
110
104
|
height: 100%;
|
|
111
105
|
}
|
|
112
106
|
|
|
113
|
-
/* ===== HINT TEXT ===== */
|
|
114
|
-
|
|
115
107
|
.upload-hint {
|
|
116
108
|
color: var(--ty-text-soft);
|
|
117
109
|
font-size: var(--ty-font-sm);
|
|
@@ -131,8 +123,6 @@ export const fileUploadStyles = `
|
|
|
131
123
|
pointer-events: none;
|
|
132
124
|
}
|
|
133
125
|
|
|
134
|
-
/* ===== FILE LIST ===== */
|
|
135
|
-
|
|
136
126
|
.file-list {
|
|
137
127
|
display: flex;
|
|
138
128
|
flex-direction: column;
|
|
@@ -212,8 +202,6 @@ export const fileUploadStyles = `
|
|
|
212
202
|
height: 12px;
|
|
213
203
|
}
|
|
214
204
|
|
|
215
|
-
/* ===== ERROR MESSAGE ===== */
|
|
216
|
-
|
|
217
205
|
.error-message {
|
|
218
206
|
font-size: var(--ty-font-xs);
|
|
219
207
|
line-height: var(--ty-leading-xs);
|
|
@@ -222,8 +210,6 @@ export const fileUploadStyles = `
|
|
|
222
210
|
padding-left: 4px;
|
|
223
211
|
}
|
|
224
212
|
|
|
225
|
-
/* ===== ACCESSIBILITY ===== */
|
|
226
|
-
|
|
227
213
|
@media (prefers-reduced-motion: reduce) {
|
|
228
214
|
.drop-zone,
|
|
229
215
|
.upload-icon,
|
|
@@ -238,4 +224,3 @@ export const fileUploadStyles = `
|
|
|
238
224
|
}
|
|
239
225
|
}
|
|
240
226
|
`;
|
|
241
|
-
//# sourceMappingURL=file-upload.js.map
|
package/lib/styles/icon.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* PORTED FROM: clj/ty/components/icon.css
|
|
4
|
-
*/
|
|
5
|
-
export declare const iconStyles = "\n:host {\n /* Display & Layout - CRITICAL: No containment to prevent paint deferral */\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n \n /* Dimensions with CSS variable support for flexibility */\n width: var(--ty-icon-size, 1em);\n height: var(--ty-icon-size, 1em);\n \n /* Enforce square aspect ratio */\n aspect-ratio: 1 / 1;\n \n \n /* Color & Transitions */\n color: inherit;\n transition: color var(--ty-transition-fast);\n \n /* Flex Behavior */\n flex-shrink: 0;\n \n /* Visibility - Force immediate rendering */\n visibility: visible !important;\n opacity: 1;\n \n /* ANTI-FLICKER: Force browser to paint immediately */\n will-change: contents;\n \n /* Prevent any sub-pixel rendering issues */\n transform: translateZ(0);\n -webkit-font-smoothing: antialiased;\n}\n\n/* The SVG element inside shadow DOM (registry / fallback path) */\n:host svg {\n width: 100%;\n height: 100%;\n display: block;\n\n /* Force immediate SVG rendering */\n will-change: auto;\n transform: translateZ(0);\n}\n\n/* Slotted SVG (server-side path: <ty-icon><svg>...</svg></ty-icon>).\n ::slotted() targets light-DOM children so they fill the host the same way\n shadow-DOM SVG does. Color is inherited from :host via currentColor. */\n::slotted(svg),\n::slotted(img) {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* When used in slots, ensure proper display */\n:host([slot]) {\n display: inline-flex;\n}\n\n/* Size variants via CSS classes on the host */\n:host(.icon-xs) {\n width: 0.75em;\n height: 0.75em;\n}\n\n:host(.icon-sm) {\n width: 0.875em;\n height: 0.875em;\n}\n\n:host(.icon-md) {\n width: 1em;\n height: 1em;\n}\n\n:host(.icon-lg) {\n width: 1.25em;\n height: 1.25em;\n}\n\n:host(.icon-xl) {\n width: 1.5em;\n height: 1.5em;\n}\n\n:host(.icon-2xl) {\n width: 2em;\n height: 2em;\n}\n\n/* Fixed pixel sizes */\n:host(.icon-12) {\n width: 12px;\n height: 12px;\n}\n\n:host(.icon-14) {\n width: 14px;\n height: 14px;\n}\n\n:host(.icon-16) {\n width: 16px;\n height: 16px;\n}\n\n:host(.icon-18) {\n width: 18px;\n height: 18px;\n}\n\n:host(.icon-20) {\n width: 20px;\n height: 20px;\n}\n\n:host(.icon-24) {\n width: 24px;\n height: 24px;\n}\n\n:host(.icon-32) {\n width: 32px;\n height: 32px;\n}\n\n:host(.icon-48) {\n width: 48px;\n height: 48px;\n}\n\n:host(.icon-64) {\n width: 64px;\n height: 64px;\n}\n\n:host(.icon-80) {\n width: 80px;\n height: 80px;\n}\n\n:host(.icon-96) {\n width: 96px;\n height: 96px;\n}\n\n/* Spinning animation - default tempo */\n:host(.icon-spin) {\n animation: icon-spin 1s linear infinite;\n}\n\n/* Spinning animation - slow tempo */\n:host(.icon-spin.icon-tempo-slow) {\n animation: icon-spin 2s linear infinite;\n}\n\n/* Spinning animation - fast tempo */\n:host(.icon-spin.icon-tempo-fast) {\n animation: icon-spin 0.5s linear infinite;\n}\n\n@keyframes icon-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Pulse animation - default tempo */\n:host(.icon-pulse) {\n animation: icon-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n/* Pulse animation - slow tempo */\n:host(.icon-pulse.icon-tempo-slow) {\n animation: icon-pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n/* Pulse animation - fast tempo */\n:host(.icon-pulse.icon-tempo-fast) {\n animation: icon-pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n@keyframes icon-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n}\n\n/* Accessibility: ensure icons are not announced by screen readers by default */\n:host {\n -webkit-user-select: none;\n user-select: none;\n}\n\n/* Allow pointer events to pass through by default */\n:host(:not(.icon-clickable)) {\n pointer-events: none;\n}\n\n/* Clickable icons */\n:host(.icon-clickable) {\n cursor: pointer;\n pointer-events: auto;\n transition: color var(--ty-transition-fast), transform var(--ty-transition-fast);\n}\n\n:host(.icon-clickable:hover) {\n transform: scale(1.1);\n}\n\n:host(.icon-clickable:active) {\n transform: scale(0.95);\n}\n\n/* Disabled state */\n:host(.icon-disabled) {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Block display variant */\n:host(.icon-block) {\n display: block;\n}\n";
|
|
6
|
-
//# sourceMappingURL=icon.d.ts.map
|
|
1
|
+
/** Icon Component Styles */
|
|
2
|
+
export declare const iconStyles = "\n:host {\n /* Display & Layout - CRITICAL: No containment to prevent paint deferral */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n \n width: var(--ty-icon-size, 1em);\n height: var(--ty-icon-size, 1em);\n \n aspect-ratio: 1 / 1;\n \n \n color: inherit;\n transition: color var(--ty-transition-fast);\n \n flex-shrink: 0;\n \n /* Visibility - Force immediate rendering */\n visibility: visible !important;\n opacity: 1;\n \n /* ANTI-FLICKER: Force browser to paint immediately */\n will-change: contents;\n \n /* Prevent any sub-pixel rendering issues */\n transform: translateZ(0);\n -webkit-font-smoothing: antialiased;\n}\n\n/* The SVG element inside shadow DOM (registry / fallback path) */\n:host svg {\n width: 100%;\n height: 100%;\n display: block;\n\n /* Force immediate SVG rendering */\n will-change: auto;\n transform: translateZ(0);\n}\n\n/* Slotted SVG (server-side path: <ty-icon><svg>...</svg></ty-icon>).\n ::slotted() targets light-DOM children so they fill the host the same way\n shadow-DOM SVG does. Color is inherited from :host via currentColor. */\n::slotted(svg),\n::slotted(img) {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host(.icon-xs) {\n width: 0.75em;\n height: 0.75em;\n}\n\n:host(.icon-sm) {\n width: 0.875em;\n height: 0.875em;\n}\n\n:host(.icon-md) {\n width: 1em;\n height: 1em;\n}\n\n:host(.icon-lg) {\n width: 1.25em;\n height: 1.25em;\n}\n\n:host(.icon-xl) {\n width: 1.5em;\n height: 1.5em;\n}\n\n:host(.icon-2xl) {\n width: 2em;\n height: 2em;\n}\n\n/* Fixed pixel sizes */\n:host(.icon-12) {\n width: 12px;\n height: 12px;\n}\n\n:host(.icon-14) {\n width: 14px;\n height: 14px;\n}\n\n:host(.icon-16) {\n width: 16px;\n height: 16px;\n}\n\n:host(.icon-18) {\n width: 18px;\n height: 18px;\n}\n\n:host(.icon-20) {\n width: 20px;\n height: 20px;\n}\n\n:host(.icon-24) {\n width: 24px;\n height: 24px;\n}\n\n:host(.icon-32) {\n width: 32px;\n height: 32px;\n}\n\n:host(.icon-48) {\n width: 48px;\n height: 48px;\n}\n\n:host(.icon-64) {\n width: 64px;\n height: 64px;\n}\n\n:host(.icon-80) {\n width: 80px;\n height: 80px;\n}\n\n:host(.icon-96) {\n width: 96px;\n height: 96px;\n}\n\n:host(.icon-spin) {\n animation: icon-spin 1s linear infinite;\n}\n\n:host(.icon-spin.icon-tempo-slow) {\n animation: icon-spin 2s linear infinite;\n}\n\n:host(.icon-spin.icon-tempo-fast) {\n animation: icon-spin 0.5s linear infinite;\n}\n\n@keyframes icon-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n:host(.icon-pulse) {\n animation: icon-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n:host(.icon-pulse.icon-tempo-slow) {\n animation: icon-pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n:host(.icon-pulse.icon-tempo-fast) {\n animation: icon-pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n@keyframes icon-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n}\n\n/* Accessibility: ensure icons are not announced by screen readers by default */\n:host {\n -webkit-user-select: none;\n user-select: none;\n}\n\n:host(:not(.icon-clickable)) {\n pointer-events: none;\n}\n\n:host(.icon-clickable) {\n cursor: pointer;\n pointer-events: auto;\n transition: color var(--ty-transition-fast), transform var(--ty-transition-fast);\n}\n\n:host(.icon-clickable:hover) {\n transform: scale(1.1);\n}\n\n:host(.icon-clickable:active) {\n transform: scale(0.95);\n}\n\n:host(.icon-disabled) {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n:host(.icon-block) {\n display: block;\n}\n";
|