tyrell-components 1.0.0-RC12 → 1.0.0-RC14
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 +2 -1
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +1443 -0
- package/css/tyrell.css +127 -423
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +1443 -0
- package/dist/tyrell.css +127 -423
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +20 -10
- package/lib/base/ty-component.js +21 -144
- package/lib/components/button.d.ts +9 -16
- package/lib/components/button.js +12 -37
- package/lib/components/calendar-month.d.ts +17 -46
- package/lib/components/calendar-month.js +97 -145
- package/lib/components/calendar-navigation.d.ts +3 -48
- package/lib/components/calendar-navigation.js +3 -126
- package/lib/components/calendar.d.ts +6 -81
- package/lib/components/calendar.js +24 -236
- package/lib/components/checkbox.d.ts +8 -74
- package/lib/components/checkbox.js +21 -177
- package/lib/components/copy.d.ts +7 -59
- package/lib/components/copy.js +19 -137
- package/lib/components/date-picker.d.ts +23 -161
- package/lib/components/date-picker.js +127 -588
- package/lib/components/file-upload.d.ts +9 -15
- package/lib/components/file-upload.js +19 -41
- package/lib/components/icon.d.ts +3 -24
- package/lib/components/icon.js +1 -90
- package/lib/components/input.d.ts +10 -109
- package/lib/components/input.js +24 -209
- package/lib/components/modal.d.ts +17 -26
- package/lib/components/modal.js +67 -192
- package/lib/components/option.d.ts +2 -20
- package/lib/components/option.js +1 -148
- package/lib/components/popup.d.ts +2 -17
- package/lib/components/popup.js +35 -132
- package/lib/components/radio.d.ts +7 -24
- package/lib/components/radio.js +24 -68
- package/lib/components/resize-observer.d.ts +3 -30
- package/lib/components/resize-observer.js +12 -46
- package/lib/components/scroll-container.d.ts +2 -12
- package/lib/components/scroll-container.js +3 -46
- package/lib/components/select.d.ts +130 -151
- package/lib/components/select.js +327 -516
- package/lib/components/selected-tags.d.ts +8 -38
- package/lib/components/selected-tags.js +20 -78
- package/lib/components/step.d.ts +1 -6
- package/lib/components/step.js +0 -6
- package/lib/components/switch.d.ts +4 -14
- package/lib/components/switch.js +15 -61
- package/lib/components/tab.d.ts +1 -6
- package/lib/components/tab.js +0 -7
- package/lib/components/tabs.d.ts +5 -63
- package/lib/components/tabs.js +159 -267
- 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 +7 -13
- package/lib/components/tooltip.js +83 -180
- package/lib/components/wizard.d.ts +6 -54
- package/lib/components/wizard.js +27 -221
- 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 +2 -2
- package/lib/index.js +2 -21
- package/lib/styles/button.d.ts +19 -7
- package/lib/styles/button.js +180 -77
- package/lib/styles/calendar-month.d.ts +4 -6
- package/lib/styles/calendar-month.js +57 -59
- package/lib/styles/calendar-navigation.d.ts +2 -6
- package/lib/styles/calendar-navigation.js +3 -28
- package/lib/styles/calendar.d.ts +1 -2
- package/lib/styles/calendar.js +1 -14
- package/lib/styles/checkbox.d.ts +3 -2
- package/lib/styles/checkbox.js +24 -68
- package/lib/styles/copy.d.ts +3 -2
- package/lib/styles/copy.js +25 -17
- package/lib/styles/custom-scrollbar.d.ts +1 -2
- package/lib/styles/custom-scrollbar.js +5 -20
- package/lib/styles/date-picker.d.ts +4 -6
- package/lib/styles/date-picker.js +80 -130
- package/lib/styles/file-upload.d.ts +1 -2
- package/lib/styles/file-upload.js +4 -19
- package/lib/styles/icon.d.ts +2 -6
- package/lib/styles/icon.js +7 -21
- package/lib/styles/input.d.ts +4 -7
- package/lib/styles/input.js +55 -160
- package/lib/styles/modal.d.ts +1 -2
- package/lib/styles/modal.js +21 -23
- package/lib/styles/option.d.ts +2 -6
- package/lib/styles/option.js +17 -63
- package/lib/styles/popup.d.ts +1 -2
- package/lib/styles/popup.js +26 -30
- package/lib/styles/radio.d.ts +3 -2
- package/lib/styles/radio.js +21 -32
- 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 +8 -0
- package/lib/styles/{multiselect.js → select-base.js} +264 -127
- package/lib/styles/select.d.ts +3 -4
- package/lib/styles/select.js +103 -43
- package/lib/styles/step.d.ts +1 -2
- package/lib/styles/step.js +0 -4
- package/lib/styles/switch.d.ts +3 -2
- package/lib/styles/switch.js +20 -23
- 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 +77 -45
- package/lib/styles/tag.d.ts +1 -5
- package/lib/styles/tag.js +6 -32
- package/lib/styles/textarea.d.ts +1 -2
- package/lib/styles/textarea.js +7 -50
- package/lib/styles/tooltip.d.ts +4 -3
- package/lib/styles/tooltip.js +0 -125
- package/lib/styles/wizard.d.ts +5 -21
- package/lib/styles/wizard.js +23 -91
- package/lib/types/common.d.ts +1 -3
- package/lib/types/common.js +0 -10
- 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 +9 -0
- package/lib/utils/icons.js +1 -0
- package/lib/utils/loader-registry.d.ts +2 -3
- 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 +6 -3
- package/lib/utils/number-format.js +11 -67
- package/lib/utils/positioning.d.ts +77 -3
- package/lib/utils/positioning.js +67 -58
- 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 +8 -5
- package/css/tyrell-brand.css +0 -1015
- package/dist/tyrell-brand.css +0 -1015
- 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 -6
- package/lib/styles/multiselect.d.ts.map +0 -1
- 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.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/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: 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: inherit;\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,25 +28,18 @@ 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;
|
|
46
34
|
justify-content: space-between;
|
|
47
35
|
padding: var(--nav-padding);
|
|
48
|
-
font-family:
|
|
36
|
+
font-family: inherit;
|
|
49
37
|
user-select: none;
|
|
50
38
|
width: var(--nav-width, var(--nav-default-width));
|
|
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;
|
|
@@ -87,7 +68,7 @@ export const calendarNavigationStyles = `
|
|
|
87
68
|
background-color: transparent;
|
|
88
69
|
color: var(--ty-calendar-nav-color, var(--ty-color-neutral));
|
|
89
70
|
cursor: pointer;
|
|
90
|
-
transition: all 0.15s ease;
|
|
71
|
+
transition: var(--ty-local-transition, all 0.15s ease);
|
|
91
72
|
outline: none;
|
|
92
73
|
}
|
|
93
74
|
|
|
@@ -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: inherit;\n}\n\n@media (max-width: 320px) {\n .calendar-container {\n gap: 0.375rem;\n }\n}\n";
|
package/lib/styles/calendar.js
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
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;
|
|
13
5
|
gap: 0.125rem;
|
|
14
6
|
box-sizing: border-box;
|
|
15
|
-
font-family:
|
|
7
|
+
font-family: inherit;
|
|
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
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
* carries the state. Full flavor color when checked, faint when unchecked,
|
|
6
6
|
* dash at mid-opacity when indeterminate, grayscale when disabled.
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
9
|
+
export declare const checkboxCustomFlavorCss: (base: string) => string;
|
|
10
|
+
export declare const checkboxStyles: string;
|
package/lib/styles/checkbox.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { FLAVORS } from "../types/common.js";
|
|
2
|
+
const checkboxFlavor = (f, fb) => {
|
|
3
|
+
const tok = (s) => fb
|
|
4
|
+
? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
|
|
5
|
+
: `var(--ty-color-${f}${s})`;
|
|
6
|
+
return `
|
|
7
|
+
:host([flavor="${f}"]) { --checkbox-color: ${tok("")}; --checkbox-color-off: ${tok("-soft")}; --checkbox-ring: color-mix(in oklab, ${tok("")} 25%, transparent); }
|
|
8
|
+
:host([flavor="${f}+"]) { --checkbox-color: ${tok("-strong")}; --checkbox-color-off: ${tok("-soft")}; --checkbox-ring: color-mix(in oklab, ${tok("-strong")} 25%, transparent); }
|
|
9
|
+
:host([flavor="${f}-"]) { --checkbox-color: ${tok("-soft")}; --checkbox-color-off: ${tok("-faint")}; --checkbox-ring: color-mix(in oklab, ${tok("-soft")} 25%, transparent); }
|
|
10
|
+
`;
|
|
11
|
+
};
|
|
12
|
+
export const checkboxCustomFlavorCss = (base) => checkboxFlavor(base, "neutral");
|
|
8
13
|
export const checkboxStyles = `
|
|
9
14
|
:host {
|
|
10
15
|
display: inline-flex;
|
|
@@ -16,22 +21,26 @@ export const checkboxStyles = `
|
|
|
16
21
|
display: inline-flex;
|
|
17
22
|
align-items: center;
|
|
18
23
|
outline: none;
|
|
19
|
-
transition: all 0.15s ease-in-out;
|
|
24
|
+
transition: var(--ty-local-transition, all 0.15s ease-in-out);
|
|
20
25
|
user-select: none;
|
|
21
26
|
cursor: pointer;
|
|
22
27
|
border-radius: 6px;
|
|
23
28
|
gap: var(--ty-spacing-1);
|
|
24
|
-
|
|
29
|
+
/* Default (no flavor attribute) is neutral — defaults don't reflect to the
|
|
30
|
+
host attribute, so the fallbacks here carry the default look. */
|
|
31
|
+
color: var(--checkbox-color-off, var(--ty-color-neutral-soft));
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
.checkbox-container[aria-checked="true"] {
|
|
28
|
-
color: var(--ty-
|
|
35
|
+
color: var(--checkbox-color, var(--ty-color-neutral));
|
|
29
36
|
}
|
|
30
37
|
|
|
31
|
-
/* Visible focus ring (keyboard) — .focused is toggled by the component
|
|
38
|
+
/* Visible focus ring (keyboard) — .focused is toggled by the component.
|
|
39
|
+
Matches the checked-state color so a danger checkbox gets a red ring,
|
|
40
|
+
not a fixed primary one. */
|
|
32
41
|
.checkbox-container.focused,
|
|
33
42
|
.checkbox-container:focus-visible {
|
|
34
|
-
box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-primary) 25%, transparent);
|
|
43
|
+
box-shadow: 0 0 0 3px var(--checkbox-ring, color-mix(in oklab, var(--ty-color-primary) 25%, transparent));
|
|
35
44
|
}
|
|
36
45
|
|
|
37
46
|
.checkbox-icon {
|
|
@@ -39,13 +48,11 @@ export const checkboxStyles = `
|
|
|
39
48
|
align-items: center;
|
|
40
49
|
justify-content: center;
|
|
41
50
|
color: inherit;
|
|
42
|
-
transition: color 0.15s ease-in-out;
|
|
51
|
+
transition: var(--ty-local-transition, color 0.15s ease-in-out);
|
|
43
52
|
pointer-events: none;
|
|
44
53
|
/* Let the container handle the click */
|
|
45
54
|
}
|
|
46
55
|
|
|
47
|
-
/* ===== SIZES ===== */
|
|
48
|
-
|
|
49
56
|
.checkbox-container svg {
|
|
50
57
|
width: 16px;
|
|
51
58
|
height: 16px;
|
|
@@ -71,57 +78,8 @@ export const checkboxStyles = `
|
|
|
71
78
|
height: 24px;
|
|
72
79
|
}
|
|
73
80
|
|
|
74
|
-
/*
|
|
75
|
-
|
|
76
|
-
.checkbox-container.primary {
|
|
77
|
-
color: var(--ty-color-primary-soft);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.checkbox-container.primary[aria-checked="true"] {
|
|
81
|
-
color: var(--ty-color-primary);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.checkbox-container.secondary {
|
|
85
|
-
color: var(--ty-color-secondary-soft);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.checkbox-container.secondary[aria-checked="true"] {
|
|
89
|
-
color: var(--ty-color-secondary);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.checkbox-container.success {
|
|
93
|
-
color: var(--ty-color-success-soft);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.checkbox-container.success[aria-checked="true"] {
|
|
97
|
-
color: var(--ty-color-success);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.checkbox-container.danger {
|
|
101
|
-
color: var(--ty-color-danger-soft);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.checkbox-container.danger[aria-checked="true"] {
|
|
105
|
-
color: var(--ty-color-danger);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.checkbox-container.warning {
|
|
109
|
-
color: var(--ty-color-warning-soft);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.checkbox-container.warning[aria-checked="true"] {
|
|
113
|
-
color: var(--ty-color-warning);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.checkbox-container.neutral {
|
|
117
|
-
color: var(--ty-color-neutral-soft);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.checkbox-container.neutral[aria-checked="true"] {
|
|
121
|
-
color: var(--ty-color-neutral);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/* ===== STATES ===== */
|
|
81
|
+
/* Semantic flavors set --checkbox-color[-off], consumed above */
|
|
82
|
+
${FLAVORS.map((f) => checkboxFlavor(f)).join("")}
|
|
125
83
|
|
|
126
84
|
/* Clean tick: no box outline, just the checkmark. Inactive = faint tick. */
|
|
127
85
|
.checkbox-container:not([aria-checked="true"]) {
|
|
@@ -146,7 +104,6 @@ export const checkboxStyles = `
|
|
|
146
104
|
opacity: 0.2;
|
|
147
105
|
}
|
|
148
106
|
|
|
149
|
-
/* Error state */
|
|
150
107
|
.checkbox-container.error .checkbox-icon {
|
|
151
108
|
color: var(--ty-color-danger);
|
|
152
109
|
}
|
|
@@ -155,4 +112,3 @@ export const checkboxStyles = `
|
|
|
155
112
|
box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-danger) 15%, transparent);
|
|
156
113
|
}
|
|
157
114
|
`;
|
|
158
|
-
//# sourceMappingURL=checkbox.js.map
|
package/lib/styles/copy.d.ts
CHANGED
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
* Read-only field with copy-to-clipboard functionality
|
|
4
4
|
* Extends input styles with copy-specific styling
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
7
|
+
export declare const copyCustomFlavorCss: (base: string) => string;
|
|
8
|
+
export declare const copyStyles: string;
|
package/lib/styles/copy.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { FLAVORS } from "../types/common.js";
|
|
2
|
+
const copyFlavor = (f, fb) => {
|
|
3
|
+
const c = (s) => fb
|
|
4
|
+
? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
|
|
5
|
+
: `var(--ty-color-${f}${s})`;
|
|
6
|
+
const bg = (s) => fb
|
|
7
|
+
? `var(--ty-bg-${f}${s}, var(--ty-bg-${fb}${s}))`
|
|
8
|
+
: `var(--ty-bg-${f}${s})`;
|
|
9
|
+
return `
|
|
10
|
+
:host([flavor="${f}"]) { --copy-color: ${c("")}; --copy-color-hover: ${c("-strong")}; --copy-bg-hover: ${bg("-soft")}; }
|
|
11
|
+
:host([flavor="${f}+"]) { --copy-color: ${c("-strong")}; --copy-color-hover: ${c("-strong")}; --copy-bg-hover: ${bg("-soft")}; }
|
|
12
|
+
:host([flavor="${f}-"]) { --copy-color: ${c("-soft")}; --copy-color-hover: ${c("")}; --copy-bg-hover: ${bg("-soft")}; }
|
|
13
|
+
`;
|
|
14
|
+
};
|
|
15
|
+
export const copyCustomFlavorCss = (base) => copyFlavor(base, "neutral");
|
|
6
16
|
export const copyStyles = `
|
|
7
|
-
/* Copy field value display */
|
|
8
17
|
.copy-field-value {
|
|
9
18
|
flex: 1;
|
|
10
19
|
overflow: hidden;
|
|
@@ -21,7 +30,6 @@ export const copyStyles = `
|
|
|
21
30
|
line-height: inherit;
|
|
22
31
|
}
|
|
23
32
|
|
|
24
|
-
/* Multiline variant */
|
|
25
33
|
.copy-field-value.multiline {
|
|
26
34
|
white-space: pre-wrap;
|
|
27
35
|
word-break: break-word;
|
|
@@ -36,7 +44,7 @@ export const copyStyles = `
|
|
|
36
44
|
padding-bottom: 8px;
|
|
37
45
|
}
|
|
38
46
|
|
|
39
|
-
/*
|
|
47
|
+
/* Scroll long content instead of clipping with an ellipsis */
|
|
40
48
|
.copy-field-value.horizontal-scroll {
|
|
41
49
|
overflow-x: auto;
|
|
42
50
|
overflow-y: hidden;
|
|
@@ -61,18 +69,16 @@ export const copyStyles = `
|
|
|
61
69
|
display: none; /* Chrome/Safari */
|
|
62
70
|
}
|
|
63
71
|
|
|
64
|
-
/* Code format */
|
|
65
72
|
.copy-field-value {
|
|
66
73
|
font-size: 0.8em;
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
/* Hover state - primary
|
|
76
|
+
/* Hover state — flavor-soft background (primary by default) */
|
|
70
77
|
.input-wrapper:not(.disabled):hover {
|
|
71
|
-
background: var(--ty-bg-primary-soft);
|
|
72
|
-
transition: background 0.2s ease;
|
|
78
|
+
background: var(--copy-bg-hover, var(--ty-bg-primary-soft));
|
|
79
|
+
transition: var(--ty-local-transition, background 0.2s ease);
|
|
73
80
|
}
|
|
74
81
|
|
|
75
|
-
/* Copy button */
|
|
76
82
|
.copy-button {
|
|
77
83
|
flex-shrink: 0;
|
|
78
84
|
display: flex;
|
|
@@ -83,14 +89,14 @@ export const copyStyles = `
|
|
|
83
89
|
cursor: pointer;
|
|
84
90
|
border: none;
|
|
85
91
|
background: transparent;
|
|
86
|
-
color: var(--ty-text-soft);
|
|
87
|
-
transition: color 0.2s ease, transform 0.2s ease;
|
|
92
|
+
color: var(--copy-color, var(--ty-text-soft));
|
|
93
|
+
transition: var(--ty-local-transition, color 0.2s ease, transform 0.2s ease);
|
|
88
94
|
padding: 0;
|
|
89
95
|
margin: 0;
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
.copy-button:hover:not(.disabled) {
|
|
93
|
-
color: var(--ty-text);
|
|
99
|
+
color: var(--copy-color-hover, var(--ty-text));
|
|
94
100
|
transform: scale(1.1);
|
|
95
101
|
}
|
|
96
102
|
|
|
@@ -122,5 +128,7 @@ export const copyStyles = `
|
|
|
122
128
|
.input-wrapper.disabled {
|
|
123
129
|
cursor: not-allowed;
|
|
124
130
|
}
|
|
131
|
+
|
|
132
|
+
/* Semantic flavors set --copy-*, consumed above */
|
|
133
|
+
${FLAVORS.map((f) => copyFlavor(f)).join("")}
|
|
125
134
|
`;
|
|
126
|
-
//# 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;
|
|
@@ -53,7 +46,7 @@ export const customScrollbarStyles = `
|
|
|
53
46
|
min-height: var(--ty-scrollbar-thumb-min-height, 30px);
|
|
54
47
|
background: var(--ty-scrollbar-thumb, color-mix(in oklab, var(--ty-color-neutral-bold) 40%, transparent));
|
|
55
48
|
border-radius: var(--ty-scrollbar-radius, 4px);
|
|
56
|
-
transition: background 0.15s ease-out;
|
|
49
|
+
transition: var(--ty-local-transition, background 0.15s ease-out);
|
|
57
50
|
box-sizing: border-box;
|
|
58
51
|
border: 1px solid transparent;
|
|
59
52
|
}
|
|
@@ -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;
|
|
@@ -118,7 +108,7 @@ export const customScrollbarStyles = `
|
|
|
118
108
|
min-width: var(--ty-scrollbar-thumb-min-height, 30px);
|
|
119
109
|
background: var(--ty-scrollbar-thumb, color-mix(in oklab, var(--ty-color-neutral-bold) 40%, transparent));
|
|
120
110
|
border-radius: var(--ty-scrollbar-radius, 4px);
|
|
121
|
-
transition: background 0.15s ease-out;
|
|
111
|
+
transition: var(--ty-local-transition, background 0.15s ease-out);
|
|
122
112
|
box-sizing: border-box;
|
|
123
113
|
border: 1px solid transparent;
|
|
124
114
|
}
|
|
@@ -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,6 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare const datePickerStyles = "\n/* Date Picker Component Styles */\n:host {\n display: block;\n width: auto;\n min-width: 200px;\n\n /* ==========================================================================\n Theming Tokens \u2014 Date Picker Stub\n Thin shim over --ty-input-*. Override these to retheme just the date-picker\n trigger without affecting other inputs.\n ========================================================================== */\n --ty-date-picker-bg: var(--ty-input-bg);\n --ty-date-picker-color: var(--ty-input-color);\n --ty-date-picker-placeholder: var(--ty-input-placeholder);\n --ty-date-picker-border: var(--ty-input-border);\n --ty-date-picker-border-hover: var(--ty-input-border-hover);\n --ty-date-picker-border-focus: var(--ty-input-border-focus);\n --ty-date-picker-shadow-focus: var(--ty-input-shadow-focus);\n --ty-date-picker-disabled-bg: var(--ty-input-disabled-bg);\n --ty-date-picker-disabled-color: var(--ty-input-disabled-color);\n --ty-date-picker-radius: var(--ty-radius-md);\n\n /* ==========================================================================\n Theming Tokens \u2014 Calendar Popup Surface\n Shared with ty-calendar / ty-calendar-month theming.\n ========================================================================== */\n --ty-calendar-surface-bg: var(--ty-surface-floating);\n --ty-calendar-surface-border: var(--ty-input-border);\n --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));\n --ty-calendar-surface-radius: var(--ty-radius-lg);\n\n /* ==========================================================================\n Theming Tokens \u2014 Time Section\n ========================================================================== */\n --ty-calendar-time-bg: transparent;\n --ty-calendar-time-border: var(--ty-border-faint);\n --ty-calendar-time-label-color: var(--ty-color-neutral);\n --ty-calendar-time-input-color: var(--ty-input-color);\n --ty-calendar-time-placeholder-color: var(--ty-input-placeholder);\n --ty-calendar-time-icon-color: var(--ty-color-neutral-soft);\n}\n\n/* Container structure (reuses dropdown patterns) */\n.dropdown-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n}\n\n.ty-field-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: 12px;\n display: flex;\n align-items: center;\n}\n\n.required-icon {\n display: inline-flex;\n align-items: center;\n color: #ef4444;\n width: 12px;\n height: 12px;\n vertical-align: middle;\n margin-left: 4px;\n}\n\n.dropdown-wrapper {\n position: relative;\n display: block;\n width: 100%;\n}\n\n/* Start-slot icon (leading content inside the date-picker stub) */\n.date-picker-stub ::slotted([slot=\"start\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin-right: 0.5rem;\n color: var(--ty-color-text-soft);\n}\n\n.date-picker-stub ::slotted(ty-icon[slot=\"start\"]) {\n width: 1em;\n height: 1em;\n}\n\n/* Date picker stub (styled like dropdown) */\n.date-picker-stub {\n width: 100%;\n cursor: pointer;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n background: var(--ty-date-picker-bg);\n color: var(--ty-date-picker-color);\n border: 1px solid var(--ty-date-picker-border);\n border-radius: var(--ty-date-picker-radius);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n font-weight: var(--ty-font-normal);\n line-height: var(--ty-line-height-tight);\n min-height: var(--ty-size-md);\n padding: var(--ty-spacing-2) var(--ty-spacing-3);\n padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));\n transition: var(--ty-transition-all), opacity 0.2s ease;\n outline: none;\n}\n\n.date-picker-stub:hover:not([disabled]):not(.open) {\n border-color: var(--ty-date-picker-border-hover);\n}\n\n.date-picker-stub[disabled] {\n background-color: var(--ty-date-picker-disabled-bg);\n color: var(--ty-date-picker-disabled-color);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.date-picker-stub:focus,\n.date-picker-stub.open {\n border-color: var(--ty-date-picker-border-focus);\n box-shadow: 0 0 0 3px var(--ty-date-picker-shadow-focus);\n}\n\n/* Size variants */\n.date-picker-stub.xs {\n min-height: var(--ty-size-xs);\n font-size: var(--ty-font-xs);\n padding: var(--ty-spacing-1) var(--ty-spacing-2);\n padding-right: calc(var(--ty-spacing-2) + 0.875rem + var(--ty-spacing-1));\n}\n\n.date-picker-stub.sm {\n min-height: var(--ty-size-sm);\n font-size: var(--ty-font-xs);\n padding: var(--ty-spacing-1) var(--ty-spacing-2);\n padding-right: calc(var(--ty-spacing-2) + 0.875rem + var(--ty-spacing-1));\n}\n\n.date-picker-stub.lg {\n min-height: var(--ty-size-lg);\n font-size: var(--ty-font-base);\n padding: var(--ty-spacing-2) var(--ty-spacing-4);\n padding-right: calc(var(--ty-spacing-4) + 1.125rem + var(--ty-spacing-2));\n}\n\n.date-picker-stub.xl {\n min-height: var(--ty-size-xl);\n font-size: var(--ty-font-lg);\n padding: var(--ty-spacing-3) var(--ty-spacing-4);\n padding-right: calc(var(--ty-spacing-4) + 1.25rem + var(--ty-spacing-3));\n}\n\n/* Flavor variants */\n/* Primary - Main brand focus state */\n.date-picker-stub.primary {\n border-color: var(--ty-input-primary-border, var(--ty-color-primary));\n}\n\n.date-picker-stub.primary:hover:not([disabled]) {\n border-color: var(--ty-color-primary-bold);\n}\n\n.date-picker-stub.primary:focus,\n.date-picker-stub.primary.open {\n border-color: var(--ty-color-primary-bold);\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-primary) 15%, transparent);\n}\n\n/* Secondary - Supporting action focus state */\n.date-picker-stub.secondary {\n border-color: var(--ty-input-secondary-border, var(--ty-color-secondary));\n}\n\n.date-picker-stub.secondary:hover:not([disabled]) {\n border-color: var(--ty-color-secondary-bold);\n}\n\n.date-picker-stub.secondary:focus,\n.date-picker-stub.secondary.open {\n border-color: var(--ty-color-secondary-bold);\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-secondary) 15%, transparent);\n}\n\n/* Success - Valid/confirmed input state */\n.date-picker-stub.success {\n border-color: var(--ty-input-success-border, var(--ty-color-success));\n}\n\n.date-picker-stub.success:hover:not([disabled]) {\n border-color: var(--ty-color-success-bold);\n}\n\n.date-picker-stub.success:focus,\n.date-picker-stub.success.open {\n border-color: var(--ty-color-success-bold);\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-success) 15%, transparent);\n}\n\n/* Danger - Error/invalid input state */\n.date-picker-stub.danger {\n border-color: var(--ty-input-danger-border, var(--ty-color-danger));\n}\n\n.date-picker-stub.danger:hover:not([disabled]) {\n border-color: var(--ty-color-danger-bold);\n}\n\n.date-picker-stub.danger:focus,\n.date-picker-stub.danger.open {\n border-color: var(--ty-color-danger-bold);\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-danger) 15%, transparent);\n}\n\n/* Warning - Caution/attention needed input state */\n.date-picker-stub.warning {\n border-color: var(--ty-input-warning-border, var(--ty-color-warning));\n}\n\n.date-picker-stub.warning:hover:not([disabled]) {\n border-color: var(--ty-color-warning-bold);\n}\n\n.date-picker-stub.warning:focus,\n.date-picker-stub.warning.open {\n border-color: var(--ty-color-warning-bold);\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-warning) 15%, transparent);\n}\n\n/* Text content */\n.stub-text {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: none;\n color: inherit;\n pointer-events: none;\n}\n\n.stub-text.placeholder {\n color: var(--ty-date-picker-placeholder);\n}\n\n/* Icons */\n.stub-icons {\n display: flex;\n align-items: center;\n gap: var(--ty-spacing-1);\n position: absolute;\n right: var(--ty-spacing-3);\n top: 50%;\n transform: translateY(-50%);\n height: 1rem;\n pointer-events: none;\n z-index: 2;\n}\n\n.stub-clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n padding: 0;\n border: none;\n background: none;\n color: var(--ty-color-neutral-soft);\n cursor: pointer;\n border-radius: var(--ty-radius-sm);\n transition: all 0.15s ease;\n pointer-events: auto;\n}\n\n.stub-clear:hover {\n color: var(--ty-color-negative);\n background-color: var(--ty-bg-negative-faint);\n}\n\n.stub-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n color: var(--ty-color-neutral-soft);\n}\n\n.date-picker-stub:hover .stub-arrow {\n color: var(--ty-color-neutral);\n}\n\n.date-picker-stub:focus .stub-arrow,\n.date-picker-stub.open .stub-arrow {\n color: var(--ty-date-picker-border-focus);\n}\n\n/* Calendar dialog (showModal positioning system) */\n.calendar-dialog {\n position: fixed;\n flex-direction: column;\n max-width: 90vw;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n box-sizing: border-box;\n padding: var(--calendar-padding, 8px);\n\n /* Hidden by default */\n opacity: 0;\n transition: opacity 200ms ease;\n\n transform: translate(var(--calendar-offset-x, 0px), var(--calendar-offset-y, 0px));\n top: -1000px;\n left: -1000px;\n}\n\n/* Direction-based positioning with CSS classes */\n.calendar-dialog.position-below {\n left: var(--calendar-x);\n top: var(--calendar-y);\n}\n\n.calendar-dialog.position-above {\n left: var(--calendar-x);\n bottom: var(--calendar-y);\n top: auto;\n flex-direction: column-reverse;\n}\n\n.calendar-dialog.open {\n opacity: 1;\n}\n\n.calendar-dialog::backdrop {\n background: transparent\n}\n\n/* Calendar content container */\n.calendar-content {\n background-color: var(--ty-calendar-surface-bg);\n border: 1px solid var(--ty-calendar-surface-border);\n border-radius: var(--ty-calendar-surface-radius);\n box-shadow: var(--ty-calendar-surface-shadow);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* Native date input for mobile */\n/* Native input is invisible \u2014 used only to trigger the OS picker */\n.native-date-input {\n position: absolute;\n inset: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: none;\n cursor: pointer;\n z-index: 1;\n}\n\n.native-date-input::-webkit-calendar-picker-indicator {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n}\n\n/* Time input section */\n.time-section {\n display: flex;\n min-height: 2.5rem;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n border-top: 1px solid var(--ty-calendar-time-border);\n background-color: var(--ty-calendar-time-bg);\n width: 100%;\n box-sizing: border-box;\n position: relative;\n}\n\n.time-label {\n font-size: var(--ty-font-sm);\n font-weight: 500;\n color: var(--ty-calendar-time-label-color);\n flex-shrink: 0;\n}\n\n.time-input {\n width: 3.5rem;\n border: 1px solid var(--ty-input-border);\n border-radius: var(--ty-radius-sm);\n background: var(--ty-input-bg);\n color: var(--ty-calendar-time-input-color);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n font-variant-numeric: tabular-nums;\n text-align: center;\n padding: 0.25rem 0.375rem;\n outline: none;\n transition: var(--ty-transition-all);\n}\n\n.time-input:focus {\n border-color: var(--ty-input-border-focus);\n box-shadow: 0 0 0 3px var(--ty-input-shadow-focus);\n}\n\n.time-input::placeholder {\n color: var(--ty-calendar-time-placeholder-color);\n}\n\n.time-icon {\n display: flex;\n align-items: center;\n color: var(--ty-calendar-time-icon-color);\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n";
|
|
6
|
-
//# sourceMappingURL=date-picker.d.ts.map
|
|
1
|
+
/** Date Picker Component Styles */
|
|
2
|
+
/** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
|
|
3
|
+
export declare const datePickerCustomFlavorCss: (base: string) => string;
|
|
4
|
+
export declare const datePickerStyles: string;
|