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.
Files changed (354) hide show
  1. package/README.md +2 -1
  2. package/css/tyrell-colors-static.css +316 -0
  3. package/css/tyrell-theme.css +1443 -0
  4. package/css/tyrell.css +127 -423
  5. package/dist/tyrell-colors-static.css +316 -0
  6. package/dist/tyrell-theme.css +1443 -0
  7. package/dist/tyrell.css +127 -423
  8. package/dist/tyrell.js +1 -1
  9. package/lib/base/ty-component.d.ts +20 -10
  10. package/lib/base/ty-component.js +21 -144
  11. package/lib/components/button.d.ts +9 -16
  12. package/lib/components/button.js +12 -37
  13. package/lib/components/calendar-month.d.ts +17 -46
  14. package/lib/components/calendar-month.js +97 -145
  15. package/lib/components/calendar-navigation.d.ts +3 -48
  16. package/lib/components/calendar-navigation.js +3 -126
  17. package/lib/components/calendar.d.ts +6 -81
  18. package/lib/components/calendar.js +24 -236
  19. package/lib/components/checkbox.d.ts +8 -74
  20. package/lib/components/checkbox.js +21 -177
  21. package/lib/components/copy.d.ts +7 -59
  22. package/lib/components/copy.js +19 -137
  23. package/lib/components/date-picker.d.ts +23 -161
  24. package/lib/components/date-picker.js +127 -588
  25. package/lib/components/file-upload.d.ts +9 -15
  26. package/lib/components/file-upload.js +19 -41
  27. package/lib/components/icon.d.ts +3 -24
  28. package/lib/components/icon.js +1 -90
  29. package/lib/components/input.d.ts +10 -109
  30. package/lib/components/input.js +24 -209
  31. package/lib/components/modal.d.ts +17 -26
  32. package/lib/components/modal.js +67 -192
  33. package/lib/components/option.d.ts +2 -20
  34. package/lib/components/option.js +1 -148
  35. package/lib/components/popup.d.ts +2 -17
  36. package/lib/components/popup.js +35 -132
  37. package/lib/components/radio.d.ts +7 -24
  38. package/lib/components/radio.js +24 -68
  39. package/lib/components/resize-observer.d.ts +3 -30
  40. package/lib/components/resize-observer.js +12 -46
  41. package/lib/components/scroll-container.d.ts +2 -12
  42. package/lib/components/scroll-container.js +3 -46
  43. package/lib/components/select.d.ts +130 -151
  44. package/lib/components/select.js +327 -516
  45. package/lib/components/selected-tags.d.ts +8 -38
  46. package/lib/components/selected-tags.js +20 -78
  47. package/lib/components/step.d.ts +1 -6
  48. package/lib/components/step.js +0 -6
  49. package/lib/components/switch.d.ts +4 -14
  50. package/lib/components/switch.js +15 -61
  51. package/lib/components/tab.d.ts +1 -6
  52. package/lib/components/tab.js +0 -7
  53. package/lib/components/tabs.d.ts +5 -63
  54. package/lib/components/tabs.js +159 -267
  55. package/lib/components/tag.d.ts +2 -36
  56. package/lib/components/tag.js +5 -105
  57. package/lib/components/textarea.d.ts +6 -86
  58. package/lib/components/textarea.js +2 -173
  59. package/lib/components/tooltip.d.ts +7 -13
  60. package/lib/components/tooltip.js +83 -180
  61. package/lib/components/wizard.d.ts +6 -54
  62. package/lib/components/wizard.js +27 -221
  63. package/lib/icons/fontawesome/brands.d.ts +0 -1
  64. package/lib/icons/fontawesome/brands.js +0 -8
  65. package/lib/icons/fontawesome/regular.d.ts +0 -1
  66. package/lib/icons/fontawesome/regular.js +0 -8
  67. package/lib/icons/fontawesome/solid.d.ts +0 -1
  68. package/lib/icons/fontawesome/solid.js +0 -8
  69. package/lib/icons/heroicons/micro.d.ts +0 -1
  70. package/lib/icons/heroicons/micro.js +0 -8
  71. package/lib/icons/heroicons/mini.d.ts +0 -1
  72. package/lib/icons/heroicons/mini.js +0 -8
  73. package/lib/icons/heroicons/outline.d.ts +0 -1
  74. package/lib/icons/heroicons/outline.js +0 -8
  75. package/lib/icons/heroicons/solid.d.ts +0 -1
  76. package/lib/icons/heroicons/solid.js +0 -8
  77. package/lib/icons/lucide.d.ts +0 -1
  78. package/lib/icons/lucide.js +0 -1872
  79. package/lib/icons/material/filled.d.ts +0 -1
  80. package/lib/icons/material/filled.js +0 -10
  81. package/lib/icons/material/outlined.d.ts +0 -1
  82. package/lib/icons/material/outlined.js +0 -10
  83. package/lib/icons/material/round.d.ts +0 -1
  84. package/lib/icons/material/round.js +0 -10
  85. package/lib/icons/material/sharp.d.ts +0 -1
  86. package/lib/icons/material/sharp.js +0 -10
  87. package/lib/icons/material/two-tone.d.ts +0 -1
  88. package/lib/icons/material/two-tone.js +0 -10
  89. package/lib/index.d.ts +2 -2
  90. package/lib/index.js +2 -21
  91. package/lib/styles/button.d.ts +19 -7
  92. package/lib/styles/button.js +180 -77
  93. package/lib/styles/calendar-month.d.ts +4 -6
  94. package/lib/styles/calendar-month.js +57 -59
  95. package/lib/styles/calendar-navigation.d.ts +2 -6
  96. package/lib/styles/calendar-navigation.js +3 -28
  97. package/lib/styles/calendar.d.ts +1 -2
  98. package/lib/styles/calendar.js +1 -14
  99. package/lib/styles/checkbox.d.ts +3 -2
  100. package/lib/styles/checkbox.js +24 -68
  101. package/lib/styles/copy.d.ts +3 -2
  102. package/lib/styles/copy.js +25 -17
  103. package/lib/styles/custom-scrollbar.d.ts +1 -2
  104. package/lib/styles/custom-scrollbar.js +5 -20
  105. package/lib/styles/date-picker.d.ts +4 -6
  106. package/lib/styles/date-picker.js +80 -130
  107. package/lib/styles/file-upload.d.ts +1 -2
  108. package/lib/styles/file-upload.js +4 -19
  109. package/lib/styles/icon.d.ts +2 -6
  110. package/lib/styles/icon.js +7 -21
  111. package/lib/styles/input.d.ts +4 -7
  112. package/lib/styles/input.js +55 -160
  113. package/lib/styles/modal.d.ts +1 -2
  114. package/lib/styles/modal.js +21 -23
  115. package/lib/styles/option.d.ts +2 -6
  116. package/lib/styles/option.js +17 -63
  117. package/lib/styles/popup.d.ts +1 -2
  118. package/lib/styles/popup.js +26 -30
  119. package/lib/styles/radio.d.ts +3 -2
  120. package/lib/styles/radio.js +21 -32
  121. package/lib/styles/resize-observer.d.ts +1 -2
  122. package/lib/styles/resize-observer.js +0 -7
  123. package/lib/styles/scroll-container.d.ts +1 -2
  124. package/lib/styles/scroll-container.js +0 -19
  125. package/lib/styles/select-base.d.ts +8 -0
  126. package/lib/styles/{multiselect.js → select-base.js} +264 -127
  127. package/lib/styles/select.d.ts +3 -4
  128. package/lib/styles/select.js +103 -43
  129. package/lib/styles/step.d.ts +1 -2
  130. package/lib/styles/step.js +0 -4
  131. package/lib/styles/switch.d.ts +3 -2
  132. package/lib/styles/switch.js +20 -23
  133. package/lib/styles/tab.d.ts +1 -2
  134. package/lib/styles/tab.js +0 -5
  135. package/lib/styles/tabs.d.ts +3 -11
  136. package/lib/styles/tabs.js +77 -45
  137. package/lib/styles/tag.d.ts +1 -5
  138. package/lib/styles/tag.js +6 -32
  139. package/lib/styles/textarea.d.ts +1 -2
  140. package/lib/styles/textarea.js +7 -50
  141. package/lib/styles/tooltip.d.ts +4 -3
  142. package/lib/styles/tooltip.js +0 -125
  143. package/lib/styles/wizard.d.ts +5 -21
  144. package/lib/styles/wizard.js +23 -91
  145. package/lib/types/common.d.ts +1 -3
  146. package/lib/types/common.js +0 -10
  147. package/lib/utils/calendar-utils.d.ts +4 -21
  148. package/lib/utils/calendar-utils.js +4 -177
  149. package/lib/utils/custom-scrollbar.d.ts +6 -20
  150. package/lib/utils/custom-scrollbar.js +1 -45
  151. package/lib/utils/flavor-sheet.d.ts +0 -1
  152. package/lib/utils/flavor-sheet.js +0 -23
  153. package/lib/utils/icon-registry.d.ts +0 -2
  154. package/lib/utils/icon-registry.js +1 -107
  155. package/lib/utils/icons.d.ts +9 -0
  156. package/lib/utils/icons.js +1 -0
  157. package/lib/utils/loader-registry.d.ts +2 -3
  158. package/lib/utils/loader-registry.js +0 -32
  159. package/lib/utils/locale.d.ts +2 -23
  160. package/lib/utils/locale.js +0 -86
  161. package/lib/utils/mobile.d.ts +0 -1
  162. package/lib/utils/mobile.js +0 -17
  163. package/lib/utils/number-format.d.ts +6 -3
  164. package/lib/utils/number-format.js +11 -67
  165. package/lib/utils/positioning.d.ts +77 -3
  166. package/lib/utils/positioning.js +67 -58
  167. package/lib/utils/property-capture.d.ts +5 -27
  168. package/lib/utils/property-capture.js +0 -108
  169. package/lib/utils/property-manager.d.ts +0 -1
  170. package/lib/utils/property-manager.js +0 -70
  171. package/lib/utils/resize-observer.d.ts +0 -1
  172. package/lib/utils/resize-observer.js +0 -36
  173. package/lib/utils/scroll-lock.d.ts +4 -11
  174. package/lib/utils/scroll-lock.js +0 -107
  175. package/lib/utils/styles.d.ts +0 -1
  176. package/lib/utils/styles.js +0 -24
  177. package/lib/version.d.ts +1 -2
  178. package/lib/version.js +1 -11
  179. package/package.json +8 -5
  180. package/css/tyrell-brand.css +0 -1015
  181. package/dist/tyrell-brand.css +0 -1015
  182. package/lib/base/ty-component.d.ts.map +0 -1
  183. package/lib/base/ty-component.js.map +0 -1
  184. package/lib/components/button.d.ts.map +0 -1
  185. package/lib/components/button.js.map +0 -1
  186. package/lib/components/calendar-month.d.ts.map +0 -1
  187. package/lib/components/calendar-month.js.map +0 -1
  188. package/lib/components/calendar-navigation.d.ts.map +0 -1
  189. package/lib/components/calendar-navigation.js.map +0 -1
  190. package/lib/components/calendar.d.ts.map +0 -1
  191. package/lib/components/calendar.js.map +0 -1
  192. package/lib/components/checkbox.d.ts.map +0 -1
  193. package/lib/components/checkbox.js.map +0 -1
  194. package/lib/components/copy.d.ts.map +0 -1
  195. package/lib/components/copy.js.map +0 -1
  196. package/lib/components/date-picker.d.ts.map +0 -1
  197. package/lib/components/date-picker.js.map +0 -1
  198. package/lib/components/file-upload.d.ts.map +0 -1
  199. package/lib/components/file-upload.js.map +0 -1
  200. package/lib/components/icon.d.ts.map +0 -1
  201. package/lib/components/icon.js.map +0 -1
  202. package/lib/components/input.d.ts.map +0 -1
  203. package/lib/components/input.js.map +0 -1
  204. package/lib/components/modal.d.ts.map +0 -1
  205. package/lib/components/modal.js.map +0 -1
  206. package/lib/components/option.d.ts.map +0 -1
  207. package/lib/components/option.js.map +0 -1
  208. package/lib/components/popup.d.ts.map +0 -1
  209. package/lib/components/popup.js.map +0 -1
  210. package/lib/components/radio.d.ts.map +0 -1
  211. package/lib/components/radio.js.map +0 -1
  212. package/lib/components/resize-observer.d.ts.map +0 -1
  213. package/lib/components/resize-observer.js.map +0 -1
  214. package/lib/components/scroll-container.d.ts.map +0 -1
  215. package/lib/components/scroll-container.js.map +0 -1
  216. package/lib/components/select.d.ts.map +0 -1
  217. package/lib/components/select.js.map +0 -1
  218. package/lib/components/selected-tags.d.ts.map +0 -1
  219. package/lib/components/selected-tags.js.map +0 -1
  220. package/lib/components/step.d.ts.map +0 -1
  221. package/lib/components/step.js.map +0 -1
  222. package/lib/components/switch.d.ts.map +0 -1
  223. package/lib/components/switch.js.map +0 -1
  224. package/lib/components/tab.d.ts.map +0 -1
  225. package/lib/components/tab.js.map +0 -1
  226. package/lib/components/tabs.d.ts.map +0 -1
  227. package/lib/components/tabs.js.map +0 -1
  228. package/lib/components/tag.d.ts.map +0 -1
  229. package/lib/components/tag.js.map +0 -1
  230. package/lib/components/textarea.d.ts.map +0 -1
  231. package/lib/components/textarea.js.map +0 -1
  232. package/lib/components/tooltip.d.ts.map +0 -1
  233. package/lib/components/tooltip.js.map +0 -1
  234. package/lib/components/wizard.d.ts.map +0 -1
  235. package/lib/components/wizard.js.map +0 -1
  236. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  237. package/lib/icons/fontawesome/brands.js.map +0 -1
  238. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  239. package/lib/icons/fontawesome/regular.js.map +0 -1
  240. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  241. package/lib/icons/fontawesome/solid.js.map +0 -1
  242. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  243. package/lib/icons/heroicons/micro.js.map +0 -1
  244. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  245. package/lib/icons/heroicons/mini.js.map +0 -1
  246. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  247. package/lib/icons/heroicons/outline.js.map +0 -1
  248. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  249. package/lib/icons/heroicons/solid.js.map +0 -1
  250. package/lib/icons/lucide.d.ts.map +0 -1
  251. package/lib/icons/lucide.js.map +0 -1
  252. package/lib/icons/material/filled.d.ts.map +0 -1
  253. package/lib/icons/material/filled.js.map +0 -1
  254. package/lib/icons/material/outlined.d.ts.map +0 -1
  255. package/lib/icons/material/outlined.js.map +0 -1
  256. package/lib/icons/material/round.d.ts.map +0 -1
  257. package/lib/icons/material/round.js.map +0 -1
  258. package/lib/icons/material/sharp.d.ts.map +0 -1
  259. package/lib/icons/material/sharp.js.map +0 -1
  260. package/lib/icons/material/two-tone.d.ts.map +0 -1
  261. package/lib/icons/material/two-tone.js.map +0 -1
  262. package/lib/index.d.ts.map +0 -1
  263. package/lib/index.js.map +0 -1
  264. package/lib/styles/button.d.ts.map +0 -1
  265. package/lib/styles/button.js.map +0 -1
  266. package/lib/styles/calendar-month.d.ts.map +0 -1
  267. package/lib/styles/calendar-month.js.map +0 -1
  268. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  269. package/lib/styles/calendar-navigation.js.map +0 -1
  270. package/lib/styles/calendar.d.ts.map +0 -1
  271. package/lib/styles/calendar.js.map +0 -1
  272. package/lib/styles/checkbox.d.ts.map +0 -1
  273. package/lib/styles/checkbox.js.map +0 -1
  274. package/lib/styles/copy.d.ts.map +0 -1
  275. package/lib/styles/copy.js.map +0 -1
  276. package/lib/styles/custom-scrollbar.d.ts.map +0 -1
  277. package/lib/styles/custom-scrollbar.js.map +0 -1
  278. package/lib/styles/date-picker.d.ts.map +0 -1
  279. package/lib/styles/date-picker.js.map +0 -1
  280. package/lib/styles/file-upload.d.ts.map +0 -1
  281. package/lib/styles/file-upload.js.map +0 -1
  282. package/lib/styles/icon.d.ts.map +0 -1
  283. package/lib/styles/icon.js.map +0 -1
  284. package/lib/styles/input.d.ts.map +0 -1
  285. package/lib/styles/input.js.map +0 -1
  286. package/lib/styles/modal.d.ts.map +0 -1
  287. package/lib/styles/modal.js.map +0 -1
  288. package/lib/styles/multiselect.d.ts +0 -6
  289. package/lib/styles/multiselect.d.ts.map +0 -1
  290. package/lib/styles/multiselect.js.map +0 -1
  291. package/lib/styles/option.d.ts.map +0 -1
  292. package/lib/styles/option.js.map +0 -1
  293. package/lib/styles/popup.d.ts.map +0 -1
  294. package/lib/styles/popup.js.map +0 -1
  295. package/lib/styles/radio.d.ts.map +0 -1
  296. package/lib/styles/radio.js.map +0 -1
  297. package/lib/styles/resize-observer.d.ts.map +0 -1
  298. package/lib/styles/resize-observer.js.map +0 -1
  299. package/lib/styles/scroll-container.d.ts.map +0 -1
  300. package/lib/styles/scroll-container.js.map +0 -1
  301. package/lib/styles/select.d.ts.map +0 -1
  302. package/lib/styles/select.js.map +0 -1
  303. package/lib/styles/step.d.ts.map +0 -1
  304. package/lib/styles/step.js.map +0 -1
  305. package/lib/styles/switch.d.ts.map +0 -1
  306. package/lib/styles/switch.js.map +0 -1
  307. package/lib/styles/tab.d.ts.map +0 -1
  308. package/lib/styles/tab.js.map +0 -1
  309. package/lib/styles/tabs.d.ts.map +0 -1
  310. package/lib/styles/tabs.js.map +0 -1
  311. package/lib/styles/tag.d.ts.map +0 -1
  312. package/lib/styles/tag.js.map +0 -1
  313. package/lib/styles/textarea.d.ts.map +0 -1
  314. package/lib/styles/textarea.js.map +0 -1
  315. package/lib/styles/tooltip.d.ts.map +0 -1
  316. package/lib/styles/tooltip.js.map +0 -1
  317. package/lib/styles/wizard.d.ts.map +0 -1
  318. package/lib/styles/wizard.js.map +0 -1
  319. package/lib/types/common.d.ts.map +0 -1
  320. package/lib/types/common.js.map +0 -1
  321. package/lib/utils/calendar-utils.d.ts.map +0 -1
  322. package/lib/utils/calendar-utils.js.map +0 -1
  323. package/lib/utils/custom-scrollbar.d.ts.map +0 -1
  324. package/lib/utils/custom-scrollbar.js.map +0 -1
  325. package/lib/utils/flavor-sheet.d.ts.map +0 -1
  326. package/lib/utils/flavor-sheet.js.map +0 -1
  327. package/lib/utils/icon-registry.d.ts.map +0 -1
  328. package/lib/utils/icon-registry.js.map +0 -1
  329. package/lib/utils/loader-registry.d.ts.map +0 -1
  330. package/lib/utils/loader-registry.js.map +0 -1
  331. package/lib/utils/locale.d.ts.map +0 -1
  332. package/lib/utils/locale.js.map +0 -1
  333. package/lib/utils/mobile.d.ts.map +0 -1
  334. package/lib/utils/mobile.js.map +0 -1
  335. package/lib/utils/number-format.d.ts.map +0 -1
  336. package/lib/utils/number-format.js.map +0 -1
  337. package/lib/utils/parse-boolean.d.ts +0 -39
  338. package/lib/utils/parse-boolean.d.ts.map +0 -1
  339. package/lib/utils/parse-boolean.js +0 -58
  340. package/lib/utils/parse-boolean.js.map +0 -1
  341. package/lib/utils/positioning.d.ts.map +0 -1
  342. package/lib/utils/positioning.js.map +0 -1
  343. package/lib/utils/property-capture.d.ts.map +0 -1
  344. package/lib/utils/property-capture.js.map +0 -1
  345. package/lib/utils/property-manager.d.ts.map +0 -1
  346. package/lib/utils/property-manager.js.map +0 -1
  347. package/lib/utils/resize-observer.d.ts.map +0 -1
  348. package/lib/utils/resize-observer.js.map +0 -1
  349. package/lib/utils/scroll-lock.d.ts.map +0 -1
  350. package/lib/utils/scroll-lock.js.map +0 -1
  351. package/lib/utils/styles.d.ts.map +0 -1
  352. package/lib/utils/styles.js.map +0 -1
  353. package/lib/version.d.ts.map +0 -1
  354. package/lib/version.js.map +0 -1
@@ -1,6 +1,2 @@
1
- /**
2
- * Calendar Navigation Styles
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: system-ui, sans-serif;
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
@@ -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/* ============================================================================\n Calendar Container\n ============================================================================ */\n\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/* ============================================================================\n Responsive Adjustments\n ============================================================================ */\n\n@media (max-width: 320px) {\n .calendar-container {\n gap: 0.375rem;\n }\n}\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";
@@ -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: system-ui, sans-serif;
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
@@ -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
- export declare const checkboxStyles = "\n:host {\n display: inline-flex;\n width: auto;\n vertical-align: middle;\n}\n\n.checkbox-container {\n display: inline-flex;\n align-items: center;\n outline: none;\n transition: all 0.15s ease-in-out;\n user-select: none;\n cursor: pointer;\n border-radius: 6px;\n gap: var(--ty-spacing-1);\n color: var(--ty-text-faint);\n}\n\n.checkbox-container[aria-checked=\"true\"] {\n color: var(--ty-text);\n}\n\n/* Visible focus ring (keyboard) \u2014 .focused is toggled by the component */\n.checkbox-container.focused,\n.checkbox-container:focus-visible {\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-primary) 25%, transparent);\n}\n\n.checkbox-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n transition: color 0.15s ease-in-out;\n pointer-events: none;\n /* Let the container handle the click */\n}\n\n/* ===== SIZES ===== */\n\n.checkbox-container svg {\n width: 16px;\n height: 16px;\n}\n\n.checkbox-container.xs svg {\n width: 12px;\n height: 12px;\n}\n\n.checkbox-container.sm svg {\n width: 14px;\n height: 14px;\n}\n\n.checkbox-container.lg svg {\n width: 20px;\n height: 20px;\n}\n\n.checkbox-container.xl svg {\n width: 24px;\n height: 24px;\n}\n\n/* ===== SEMANTIC FLAVORS ===== */\n\n.checkbox-container.primary {\n color: var(--ty-color-primary-soft);\n}\n\n.checkbox-container.primary[aria-checked=\"true\"] {\n color: var(--ty-color-primary);\n}\n\n.checkbox-container.secondary {\n color: var(--ty-color-secondary-soft);\n}\n\n.checkbox-container.secondary[aria-checked=\"true\"] {\n color: var(--ty-color-secondary);\n}\n\n.checkbox-container.success {\n color: var(--ty-color-success-soft);\n}\n\n.checkbox-container.success[aria-checked=\"true\"] {\n color: var(--ty-color-success);\n}\n\n.checkbox-container.danger {\n color: var(--ty-color-danger-soft);\n}\n\n.checkbox-container.danger[aria-checked=\"true\"] {\n color: var(--ty-color-danger);\n}\n\n.checkbox-container.warning {\n color: var(--ty-color-warning-soft);\n}\n\n.checkbox-container.warning[aria-checked=\"true\"] {\n color: var(--ty-color-warning);\n}\n\n.checkbox-container.neutral {\n color: var(--ty-color-neutral-soft);\n}\n\n.checkbox-container.neutral[aria-checked=\"true\"] {\n color: var(--ty-color-neutral);\n}\n\n/* ===== STATES ===== */\n\n/* Clean tick: no box outline, just the checkmark. Inactive = faint tick. */\n.checkbox-container:not([aria-checked=\"true\"]) {\n opacity: 0.35;\n}\n\n/* Indeterminate (dash) sits between unchecked and checked */\n.checkbox-container[aria-checked=\"mixed\"] {\n opacity: 0.7;\n}\n\n/* Disabled must stay distinguishable from merely-unchecked: grayscale kills\n the flavor color, and disabled-unchecked drops below the unchecked 0.35. */\n.checkbox-container.disabled {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.5;\n filter: grayscale(1);\n}\n\n.checkbox-container.disabled:not([aria-checked=\"true\"]) {\n opacity: 0.2;\n}\n\n/* Error state */\n.checkbox-container.error .checkbox-icon {\n color: var(--ty-color-danger);\n}\n\n.checkbox-container.error:focus {\n box-shadow: 0 0 0 3px color-mix(in oklab, var(--ty-color-danger) 15%, transparent);\n}\n";
9
- //# sourceMappingURL=checkbox.d.ts.map
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;
@@ -1,10 +1,15 @@
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
- */
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
- color: var(--ty-text-faint);
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-text);
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
- /* ===== SEMANTIC FLAVORS ===== */
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
@@ -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
- export declare const copyStyles = "\n/* Copy field value display */\n.copy-field-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n user-select: none;\n padding: 0;\n margin: 0;\n background: transparent;\n border: none;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n/* Multiline variant */\n.copy-field-value.multiline {\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Keep the copy button pinned to the top-right when content wraps to multiple lines */\n.input-wrapper:has(.copy-field-value.multiline) {\n align-items: flex-start;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n/* Horizontal scroll variant - scroll long content instead of clipping with ellipsis */\n.copy-field-value.horizontal-scroll {\n overflow-x: auto;\n overflow-y: hidden;\n text-overflow: clip;\n white-space: nowrap;\n}\n\n/* Multiline + horizontal scroll (e.g. code blocks): preserve lines, scroll both axes */\n.copy-field-value.multiline.horizontal-scroll {\n white-space: pre;\n word-break: normal;\n overflow-y: auto;\n}\n\n/* Hide scrollbars on scrollable value - content still scrolls, chrome stays clean */\n.copy-field-value.multiline,\n.copy-field-value.horizontal-scroll {\n scrollbar-width: none; /* Firefox */\n}\n.copy-field-value.multiline::-webkit-scrollbar,\n.copy-field-value.horizontal-scroll::-webkit-scrollbar {\n display: none; /* Chrome/Safari */\n}\n\n/* Code format */\n.copy-field-value {\n font-size: 0.8em;\n}\n\n/* Hover state - primary soft background */\n.input-wrapper:not(.disabled):hover {\n background: var(--ty-bg-primary-soft);\n transition: background 0.2s ease;\n}\n\n/* Copy button */\n.copy-button {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n cursor: pointer;\n border: none;\n background: transparent;\n color: var(--ty-text-soft);\n transition: color 0.2s ease, transform 0.2s ease;\n padding: 0;\n margin: 0;\n}\n\n.copy-button:hover:not(.disabled) {\n color: var(--ty-text);\n transform: scale(1.1);\n}\n\n.copy-button.success {\n color: var(--ty-color-success);\n animation: copy-feedback 0.3s ease;\n}\n\n.copy-button.error {\n color: var(--ty-color-danger);\n animation: copy-feedback 0.3s ease;\n}\n\n@keyframes copy-feedback {\n 0%, 100% { transform: scale(1); }\n 50% { transform: scale(1.2); }\n}\n\n.copy-button svg {\n width: 18px;\n height: 18px;\n}\n\n.input-wrapper.disabled .copy-button {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.input-wrapper.disabled {\n cursor: not-allowed;\n}\n";
7
- //# sourceMappingURL=copy.d.ts.map
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;
@@ -1,10 +1,19 @@
1
- /**
2
- * Copy Component Styles
3
- * Read-only field with copy-to-clipboard functionality
4
- * Extends input styles with copy-specific styling
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
- /* Horizontal scroll variant - scroll long content instead of clipping with ellipsis */
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 soft background */
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/* ===================================== */\n/* Custom Scrollbar - Vertical Track */\n/* ===================================== */\n\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: 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/* ===================================== */\n/* Custom Scrollbar - Horizontal Track */\n/* ===================================== */\n\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: 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/* ===================================== */\n/* Touch devices - hide custom scrollbar */\n/* ===================================== */\n\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/* Respect reduced motion */\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";
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
- * Date Picker Component Styles
3
- * PORTED FROM: cljs/ty/components/date_picker.css
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;