tyrell-components 1.0.0-RC13 → 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 (355) hide show
  1. package/README.md +1 -1
  2. package/css/tyrell-theme.css +167 -178
  3. package/css/tyrell.css +19 -0
  4. package/dist/tyrell-theme.css +167 -178
  5. package/dist/tyrell.css +19 -0
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +20 -10
  8. package/lib/base/ty-component.js +21 -144
  9. package/lib/components/button.d.ts +2 -16
  10. package/lib/components/button.js +0 -36
  11. package/lib/components/calendar-month.d.ts +2 -48
  12. package/lib/components/calendar-month.js +4 -166
  13. package/lib/components/calendar-navigation.d.ts +3 -48
  14. package/lib/components/calendar-navigation.js +3 -126
  15. package/lib/components/calendar.d.ts +3 -80
  16. package/lib/components/calendar.js +8 -230
  17. package/lib/components/checkbox.d.ts +4 -71
  18. package/lib/components/checkbox.js +7 -151
  19. package/lib/components/copy.d.ts +3 -56
  20. package/lib/components/copy.js +1 -120
  21. package/lib/components/date-picker.d.ts +13 -162
  22. package/lib/components/date-picker.js +41 -592
  23. package/lib/components/file-upload.d.ts +9 -15
  24. package/lib/components/file-upload.js +19 -41
  25. package/lib/components/icon.d.ts +3 -24
  26. package/lib/components/icon.js +1 -90
  27. package/lib/components/input.d.ts +7 -107
  28. package/lib/components/input.js +5 -193
  29. package/lib/components/modal.d.ts +17 -26
  30. package/lib/components/modal.js +57 -201
  31. package/lib/components/option.d.ts +2 -9
  32. package/lib/components/option.js +0 -48
  33. package/lib/components/popup.d.ts +2 -17
  34. package/lib/components/popup.js +8 -139
  35. package/lib/components/radio.d.ts +3 -23
  36. package/lib/components/radio.js +10 -65
  37. package/lib/components/resize-observer.d.ts +3 -30
  38. package/lib/components/resize-observer.js +12 -46
  39. package/lib/components/scroll-container.d.ts +2 -12
  40. package/lib/components/scroll-container.js +3 -46
  41. package/lib/components/select.d.ts +22 -153
  42. package/lib/components/select.js +33 -590
  43. package/lib/components/selected-tags.d.ts +4 -47
  44. package/lib/components/selected-tags.js +1 -95
  45. package/lib/components/step.d.ts +1 -6
  46. package/lib/components/step.js +0 -6
  47. package/lib/components/switch.d.ts +0 -11
  48. package/lib/components/switch.js +2 -36
  49. package/lib/components/tab.d.ts +1 -6
  50. package/lib/components/tab.js +0 -7
  51. package/lib/components/tabs.d.ts +5 -63
  52. package/lib/components/tabs.js +20 -283
  53. package/lib/components/tag.d.ts +2 -36
  54. package/lib/components/tag.js +5 -105
  55. package/lib/components/textarea.d.ts +6 -86
  56. package/lib/components/textarea.js +2 -173
  57. package/lib/components/tooltip.d.ts +3 -11
  58. package/lib/components/tooltip.js +24 -160
  59. package/lib/components/wizard.d.ts +6 -54
  60. package/lib/components/wizard.js +15 -228
  61. package/lib/icons/fontawesome/brands.d.ts +0 -1
  62. package/lib/icons/fontawesome/brands.js +0 -8
  63. package/lib/icons/fontawesome/regular.d.ts +0 -1
  64. package/lib/icons/fontawesome/regular.js +0 -8
  65. package/lib/icons/fontawesome/solid.d.ts +0 -1
  66. package/lib/icons/fontawesome/solid.js +0 -8
  67. package/lib/icons/heroicons/micro.d.ts +0 -1
  68. package/lib/icons/heroicons/micro.js +0 -8
  69. package/lib/icons/heroicons/mini.d.ts +0 -1
  70. package/lib/icons/heroicons/mini.js +0 -8
  71. package/lib/icons/heroicons/outline.d.ts +0 -1
  72. package/lib/icons/heroicons/outline.js +0 -8
  73. package/lib/icons/heroicons/solid.d.ts +0 -1
  74. package/lib/icons/heroicons/solid.js +0 -8
  75. package/lib/icons/lucide.d.ts +0 -1
  76. package/lib/icons/lucide.js +0 -1872
  77. package/lib/icons/material/filled.d.ts +0 -1
  78. package/lib/icons/material/filled.js +0 -10
  79. package/lib/icons/material/outlined.d.ts +0 -1
  80. package/lib/icons/material/outlined.js +0 -10
  81. package/lib/icons/material/round.d.ts +0 -1
  82. package/lib/icons/material/round.js +0 -10
  83. package/lib/icons/material/sharp.d.ts +0 -1
  84. package/lib/icons/material/sharp.js +0 -10
  85. package/lib/icons/material/two-tone.d.ts +0 -1
  86. package/lib/icons/material/two-tone.js +0 -10
  87. package/lib/index.d.ts +0 -1
  88. package/lib/index.js +0 -20
  89. package/lib/styles/button.d.ts +2 -20
  90. package/lib/styles/button.js +22 -122
  91. package/lib/styles/calendar-month.d.ts +1 -5
  92. package/lib/styles/calendar-month.js +4 -61
  93. package/lib/styles/calendar-navigation.d.ts +2 -6
  94. package/lib/styles/calendar-navigation.js +2 -27
  95. package/lib/styles/calendar.d.ts +1 -2
  96. package/lib/styles/calendar.js +1 -14
  97. package/lib/styles/checkbox.d.ts +0 -1
  98. package/lib/styles/checkbox.js +1 -23
  99. package/lib/styles/copy.d.ts +0 -1
  100. package/lib/styles/copy.js +2 -17
  101. package/lib/styles/custom-scrollbar.d.ts +1 -2
  102. package/lib/styles/custom-scrollbar.js +3 -18
  103. package/lib/styles/date-picker.d.ts +1 -5
  104. package/lib/styles/date-picker.js +35 -39
  105. package/lib/styles/file-upload.d.ts +1 -2
  106. package/lib/styles/file-upload.js +1 -16
  107. package/lib/styles/icon.d.ts +2 -6
  108. package/lib/styles/icon.js +7 -21
  109. package/lib/styles/input.d.ts +1 -6
  110. package/lib/styles/input.js +5 -54
  111. package/lib/styles/modal.d.ts +1 -2
  112. package/lib/styles/modal.js +21 -23
  113. package/lib/styles/option.d.ts +2 -6
  114. package/lib/styles/option.js +17 -12
  115. package/lib/styles/popup.d.ts +1 -2
  116. package/lib/styles/popup.js +26 -30
  117. package/lib/styles/radio.d.ts +0 -1
  118. package/lib/styles/radio.js +2 -16
  119. package/lib/styles/resize-observer.d.ts +1 -2
  120. package/lib/styles/resize-observer.js +0 -7
  121. package/lib/styles/scroll-container.d.ts +1 -2
  122. package/lib/styles/scroll-container.js +0 -19
  123. package/lib/styles/select-base.d.ts +0 -1
  124. package/lib/styles/select-base.js +68 -79
  125. package/lib/styles/select.d.ts +1 -2
  126. package/lib/styles/select.js +7 -15
  127. package/lib/styles/step.d.ts +1 -2
  128. package/lib/styles/step.js +0 -4
  129. package/lib/styles/switch.d.ts +0 -1
  130. package/lib/styles/switch.js +2 -20
  131. package/lib/styles/tab.d.ts +1 -2
  132. package/lib/styles/tab.js +0 -5
  133. package/lib/styles/tabs.d.ts +3 -11
  134. package/lib/styles/tabs.js +10 -48
  135. package/lib/styles/tag.d.ts +1 -5
  136. package/lib/styles/tag.js +2 -31
  137. package/lib/styles/textarea.d.ts +1 -2
  138. package/lib/styles/textarea.js +2 -45
  139. package/lib/styles/tooltip.d.ts +0 -1
  140. package/lib/styles/tooltip.js +0 -10
  141. package/lib/styles/wizard.d.ts +5 -21
  142. package/lib/styles/wizard.js +8 -88
  143. package/lib/types/common.d.ts +0 -2
  144. package/lib/types/common.js +0 -12
  145. package/lib/utils/calendar-utils.d.ts +4 -21
  146. package/lib/utils/calendar-utils.js +4 -177
  147. package/lib/utils/custom-scrollbar.d.ts +6 -20
  148. package/lib/utils/custom-scrollbar.js +1 -45
  149. package/lib/utils/flavor-sheet.d.ts +0 -1
  150. package/lib/utils/flavor-sheet.js +0 -23
  151. package/lib/utils/icon-registry.d.ts +0 -2
  152. package/lib/utils/icon-registry.js +1 -107
  153. package/lib/utils/icons.d.ts +0 -1
  154. package/lib/utils/icons.js +0 -9
  155. package/lib/utils/loader-registry.d.ts +0 -1
  156. package/lib/utils/loader-registry.js +0 -32
  157. package/lib/utils/locale.d.ts +2 -23
  158. package/lib/utils/locale.js +0 -86
  159. package/lib/utils/mobile.d.ts +0 -1
  160. package/lib/utils/mobile.js +0 -17
  161. package/lib/utils/number-format.d.ts +6 -3
  162. package/lib/utils/number-format.js +11 -67
  163. package/lib/utils/positioning.d.ts +50 -7
  164. package/lib/utils/positioning.js +52 -62
  165. package/lib/utils/property-capture.d.ts +5 -27
  166. package/lib/utils/property-capture.js +0 -108
  167. package/lib/utils/property-manager.d.ts +0 -1
  168. package/lib/utils/property-manager.js +0 -70
  169. package/lib/utils/resize-observer.d.ts +0 -1
  170. package/lib/utils/resize-observer.js +0 -36
  171. package/lib/utils/scroll-lock.d.ts +4 -11
  172. package/lib/utils/scroll-lock.js +0 -107
  173. package/lib/utils/styles.d.ts +0 -1
  174. package/lib/utils/styles.js +0 -24
  175. package/lib/version.d.ts +1 -2
  176. package/lib/version.js +1 -11
  177. package/package.json +2 -2
  178. package/lib/base/ty-component.d.ts.map +0 -1
  179. package/lib/base/ty-component.js.map +0 -1
  180. package/lib/components/button.d.ts.map +0 -1
  181. package/lib/components/button.js.map +0 -1
  182. package/lib/components/calendar-month.d.ts.map +0 -1
  183. package/lib/components/calendar-month.js.map +0 -1
  184. package/lib/components/calendar-navigation.d.ts.map +0 -1
  185. package/lib/components/calendar-navigation.js.map +0 -1
  186. package/lib/components/calendar.d.ts.map +0 -1
  187. package/lib/components/calendar.js.map +0 -1
  188. package/lib/components/checkbox.d.ts.map +0 -1
  189. package/lib/components/checkbox.js.map +0 -1
  190. package/lib/components/copy.d.ts.map +0 -1
  191. package/lib/components/copy.js.map +0 -1
  192. package/lib/components/date-picker.d.ts.map +0 -1
  193. package/lib/components/date-picker.js.map +0 -1
  194. package/lib/components/file-upload.d.ts.map +0 -1
  195. package/lib/components/file-upload.js.map +0 -1
  196. package/lib/components/icon.d.ts.map +0 -1
  197. package/lib/components/icon.js.map +0 -1
  198. package/lib/components/input.d.ts.map +0 -1
  199. package/lib/components/input.js.map +0 -1
  200. package/lib/components/modal.d.ts.map +0 -1
  201. package/lib/components/modal.js.map +0 -1
  202. package/lib/components/option.d.ts.map +0 -1
  203. package/lib/components/option.js.map +0 -1
  204. package/lib/components/popup.d.ts.map +0 -1
  205. package/lib/components/popup.js.map +0 -1
  206. package/lib/components/radio.d.ts.map +0 -1
  207. package/lib/components/radio.js.map +0 -1
  208. package/lib/components/resize-observer.d.ts.map +0 -1
  209. package/lib/components/resize-observer.js.map +0 -1
  210. package/lib/components/scroll-container.d.ts.map +0 -1
  211. package/lib/components/scroll-container.js.map +0 -1
  212. package/lib/components/select.d.ts.map +0 -1
  213. package/lib/components/select.js.map +0 -1
  214. package/lib/components/selected-tags.d.ts.map +0 -1
  215. package/lib/components/selected-tags.js.map +0 -1
  216. package/lib/components/step.d.ts.map +0 -1
  217. package/lib/components/step.js.map +0 -1
  218. package/lib/components/switch.d.ts.map +0 -1
  219. package/lib/components/switch.js.map +0 -1
  220. package/lib/components/tab.d.ts.map +0 -1
  221. package/lib/components/tab.js.map +0 -1
  222. package/lib/components/tabs.d.ts.map +0 -1
  223. package/lib/components/tabs.js.map +0 -1
  224. package/lib/components/tag.d.ts.map +0 -1
  225. package/lib/components/tag.js.map +0 -1
  226. package/lib/components/textarea.d.ts.map +0 -1
  227. package/lib/components/textarea.js.map +0 -1
  228. package/lib/components/tooltip.d.ts.map +0 -1
  229. package/lib/components/tooltip.js.map +0 -1
  230. package/lib/components/wizard.d.ts.map +0 -1
  231. package/lib/components/wizard.js.map +0 -1
  232. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  233. package/lib/icons/fontawesome/brands.js.map +0 -1
  234. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  235. package/lib/icons/fontawesome/regular.js.map +0 -1
  236. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  237. package/lib/icons/fontawesome/solid.js.map +0 -1
  238. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  239. package/lib/icons/heroicons/micro.js.map +0 -1
  240. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  241. package/lib/icons/heroicons/mini.js.map +0 -1
  242. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  243. package/lib/icons/heroicons/outline.js.map +0 -1
  244. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  245. package/lib/icons/heroicons/solid.js.map +0 -1
  246. package/lib/icons/lucide.d.ts.map +0 -1
  247. package/lib/icons/lucide.js.map +0 -1
  248. package/lib/icons/material/filled.d.ts.map +0 -1
  249. package/lib/icons/material/filled.js.map +0 -1
  250. package/lib/icons/material/outlined.d.ts.map +0 -1
  251. package/lib/icons/material/outlined.js.map +0 -1
  252. package/lib/icons/material/round.d.ts.map +0 -1
  253. package/lib/icons/material/round.js.map +0 -1
  254. package/lib/icons/material/sharp.d.ts.map +0 -1
  255. package/lib/icons/material/sharp.js.map +0 -1
  256. package/lib/icons/material/two-tone.d.ts.map +0 -1
  257. package/lib/icons/material/two-tone.js.map +0 -1
  258. package/lib/index.d.ts.map +0 -1
  259. package/lib/index.js.map +0 -1
  260. package/lib/styles/button.d.ts.map +0 -1
  261. package/lib/styles/button.js.map +0 -1
  262. package/lib/styles/calendar-month.d.ts.map +0 -1
  263. package/lib/styles/calendar-month.js.map +0 -1
  264. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  265. package/lib/styles/calendar-navigation.js.map +0 -1
  266. package/lib/styles/calendar.d.ts.map +0 -1
  267. package/lib/styles/calendar.js.map +0 -1
  268. package/lib/styles/checkbox.d.ts.map +0 -1
  269. package/lib/styles/checkbox.js.map +0 -1
  270. package/lib/styles/copy.d.ts.map +0 -1
  271. package/lib/styles/copy.js.map +0 -1
  272. package/lib/styles/custom-scrollbar.d.ts.map +0 -1
  273. package/lib/styles/custom-scrollbar.js.map +0 -1
  274. package/lib/styles/date-picker.d.ts.map +0 -1
  275. package/lib/styles/date-picker.js.map +0 -1
  276. package/lib/styles/file-upload.d.ts.map +0 -1
  277. package/lib/styles/file-upload.js.map +0 -1
  278. package/lib/styles/icon.d.ts.map +0 -1
  279. package/lib/styles/icon.js.map +0 -1
  280. package/lib/styles/input.d.ts.map +0 -1
  281. package/lib/styles/input.js.map +0 -1
  282. package/lib/styles/modal.d.ts.map +0 -1
  283. package/lib/styles/modal.js.map +0 -1
  284. package/lib/styles/multiselect.d.ts +0 -8
  285. package/lib/styles/multiselect.d.ts.map +0 -1
  286. package/lib/styles/multiselect.js +0 -849
  287. package/lib/styles/multiselect.js.map +0 -1
  288. package/lib/styles/option.d.ts.map +0 -1
  289. package/lib/styles/option.js.map +0 -1
  290. package/lib/styles/popup.d.ts.map +0 -1
  291. package/lib/styles/popup.js.map +0 -1
  292. package/lib/styles/radio.d.ts.map +0 -1
  293. package/lib/styles/radio.js.map +0 -1
  294. package/lib/styles/resize-observer.d.ts.map +0 -1
  295. package/lib/styles/resize-observer.js.map +0 -1
  296. package/lib/styles/scroll-container.d.ts.map +0 -1
  297. package/lib/styles/scroll-container.js.map +0 -1
  298. package/lib/styles/select-base.d.ts.map +0 -1
  299. package/lib/styles/select-base.js.map +0 -1
  300. package/lib/styles/select.d.ts.map +0 -1
  301. package/lib/styles/select.js.map +0 -1
  302. package/lib/styles/step.d.ts.map +0 -1
  303. package/lib/styles/step.js.map +0 -1
  304. package/lib/styles/switch.d.ts.map +0 -1
  305. package/lib/styles/switch.js.map +0 -1
  306. package/lib/styles/tab.d.ts.map +0 -1
  307. package/lib/styles/tab.js.map +0 -1
  308. package/lib/styles/tabs.d.ts.map +0 -1
  309. package/lib/styles/tabs.js.map +0 -1
  310. package/lib/styles/tag.d.ts.map +0 -1
  311. package/lib/styles/tag.js.map +0 -1
  312. package/lib/styles/textarea.d.ts.map +0 -1
  313. package/lib/styles/textarea.js.map +0 -1
  314. package/lib/styles/tooltip.d.ts.map +0 -1
  315. package/lib/styles/tooltip.js.map +0 -1
  316. package/lib/styles/wizard.d.ts.map +0 -1
  317. package/lib/styles/wizard.js.map +0 -1
  318. package/lib/types/common.d.ts.map +0 -1
  319. package/lib/types/common.js.map +0 -1
  320. package/lib/utils/calendar-utils.d.ts.map +0 -1
  321. package/lib/utils/calendar-utils.js.map +0 -1
  322. package/lib/utils/custom-scrollbar.d.ts.map +0 -1
  323. package/lib/utils/custom-scrollbar.js.map +0 -1
  324. package/lib/utils/flavor-sheet.d.ts.map +0 -1
  325. package/lib/utils/flavor-sheet.js.map +0 -1
  326. package/lib/utils/icon-registry.d.ts.map +0 -1
  327. package/lib/utils/icon-registry.js.map +0 -1
  328. package/lib/utils/icons.d.ts.map +0 -1
  329. package/lib/utils/icons.js.map +0 -1
  330. package/lib/utils/loader-registry.d.ts.map +0 -1
  331. package/lib/utils/loader-registry.js.map +0 -1
  332. package/lib/utils/locale.d.ts.map +0 -1
  333. package/lib/utils/locale.js.map +0 -1
  334. package/lib/utils/mobile.d.ts.map +0 -1
  335. package/lib/utils/mobile.js.map +0 -1
  336. package/lib/utils/number-format.d.ts.map +0 -1
  337. package/lib/utils/number-format.js.map +0 -1
  338. package/lib/utils/parse-boolean.d.ts +0 -39
  339. package/lib/utils/parse-boolean.d.ts.map +0 -1
  340. package/lib/utils/parse-boolean.js +0 -58
  341. package/lib/utils/parse-boolean.js.map +0 -1
  342. package/lib/utils/positioning.d.ts.map +0 -1
  343. package/lib/utils/positioning.js.map +0 -1
  344. package/lib/utils/property-capture.d.ts.map +0 -1
  345. package/lib/utils/property-capture.js.map +0 -1
  346. package/lib/utils/property-manager.d.ts.map +0 -1
  347. package/lib/utils/property-manager.js.map +0 -1
  348. package/lib/utils/resize-observer.d.ts.map +0 -1
  349. package/lib/utils/resize-observer.js.map +0 -1
  350. package/lib/utils/scroll-lock.d.ts.map +0 -1
  351. package/lib/utils/scroll-lock.js.map +0 -1
  352. package/lib/utils/styles.d.ts.map +0 -1
  353. package/lib/utils/styles.js.map +0 -1
  354. package/lib/version.d.ts.map +0 -1
  355. package/lib/version.js.map +0 -1
@@ -1,25 +1,9 @@
1
1
  /**
2
2
  * Wizard Component Styles
3
3
  *
4
- * CSS Parts (for styling via ::part):
5
- * - indicators-wrapper: The header containing step indicators
6
- * - progress-line: The background progress track
7
- * - step-circle: Individual step circle indicators
8
- * - panels-container: The content viewport
9
- *
10
- * Theming: four accent-alias knobs (one per state), four surface knobs
11
- * (container chrome), and a small set of geometry/motion overrides.
12
- *
13
- * Per-state circles read their colors directly from the matching accent
14
- * variable — no per-state `-bg` indirection. Override one of:
15
- * --ty-wizard-active-accent (default: --ty-color-primary)
16
- * --ty-wizard-completed-accent (default: --ty-color-success)
17
- * --ty-wizard-error-accent (default: --ty-color-danger)
18
- * --ty-wizard-pending-accent (default: --ty-color-neutral)
19
- *
20
- * For per-shade fine control, override the brand-layer's flavor seeds
21
- * (--ty-color-primary, --ty-color-success-strong, etc.) — they cascade
22
- * through here.
4
+ * CSS Parts (::part): indicators-wrapper, progress-line, step-circle,
5
+ * panels-container. Theming knobs are declared on :host below; per-state
6
+ * circles read the matching accent var directly (no `-bg` indirection), and
7
+ * the brand-layer flavor seeds cascade through for per-shade control.
23
8
  */
24
- export declare const wizardStyles = "\n/* ============================================================================\n Theming Tokens \u2014 see file header for the override surface.\n Every default chains back to the brand layer / global scale tokens.\n ============================================================================ */\n\n:host {\n display: block;\n width: var(--ty-wizard-width, 100%); /* set by width attribute \u2014 not a public token */\n height: var(--ty-wizard-height, 700px); /* set by height attribute \u2014 not a public token */\n box-sizing: border-box;\n\n /* State accents \u2014 the primary override surface. One variable retints the\n * matching circle background, border, and glow. */\n --ty-wizard-active-accent: var(--ty-color-primary);\n --ty-wizard-completed-accent: var(--ty-color-success);\n --ty-wizard-error-accent: var(--ty-color-danger);\n --ty-wizard-pending-accent: var(--ty-color-neutral);\n\n /* Container chrome \u2014 routes through global scales. Override --ty-radius-lg\n * or --ty-shadow-md app-wide and the wizard follows; override these locally\n * to give the wizard a distinct look. */\n --ty-wizard-bg: var(--ty-surface-floating);\n --ty-wizard-border: var(--ty-border);\n --ty-wizard-radius: var(--ty-radius-lg, 12px);\n --ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));\n\n /* Header strip */\n --ty-wizard-header-bg: var(--ty-surface-content);\n --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));\n --ty-wizard-header-padding: 24px 24px 16px;\n\n /* Progress line */\n --ty-wizard-progress-track: var(--ty-border);\n --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);\n --ty-wizard-progress-height: 2px;\n\n /* Motion \u2014 routes through global motion tokens if defined. */\n --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);\n --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);\n\n /* Circle geometry */\n --ty-wizard-circle-size: 32px;\n --ty-wizard-circle-border-width: 2px;\n\n /* Panels viewport */\n --ty-wizard-panels-bg: var(--ty-surface-elevated);\n\n /* Focus */\n --ty-wizard-focus-outline: var(--ty-wizard-active-accent);\n}\n\n.wizard-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n border-radius: var(--ty-wizard-radius);\n border: 1px solid var(--ty-wizard-border);\n background: var(--ty-wizard-bg);\n box-shadow: var(--ty-wizard-shadow);\n overflow: hidden;\n}\n\n/* ===================================== */\n/* Step Indicators Wrapper */\n/* ===================================== */\n\n.step-indicators-wrapper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n position: relative;\n padding: var(--ty-wizard-header-padding);\n border-bottom: 1px solid var(--ty-wizard-header-border);\n background: var(--ty-wizard-header-bg);\n}\n\n/* ===================================== */\n/* Progress Line (behind step circles) */\n/* ===================================== */\n\n.progress-line {\n position: absolute;\n /*\n * With equal-width indicators (flex: 1), each takes 100%/N of the width.\n * Circle centers sit at 50%/N from the left edge of each indicator.\n * Inset = 50% / step-count from each side keeps the line between circle centres.\n */\n left: calc(50% / var(--ty-wizard-step-count, 4));\n right: calc(50% / var(--ty-wizard-step-count, 4));\n top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);\n height: var(--ty-wizard-progress-height);\n background: var(--ty-wizard-progress-track);\n z-index: 0;\n pointer-events: none;\n transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n}\n\n.progress-overlay {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n background: var(--ty-wizard-progress-fill);\n transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: width;\n}\n\n/* ===================================== */\n/* Step Indicators Container */\n/* ===================================== */\n\n.step-indicators {\n display: flex;\n align-items: flex-start;\n position: relative;\n}\n\n/* ===================================== */\n/* Individual Step Indicator */\n/* ===================================== */\n\n.step-indicator {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n background: transparent;\n border: none;\n padding: 0;\n font: inherit;\n transition: opacity 200ms;\n flex: 1;\n min-width: 0;\n}\n\n.step-indicator[aria-disabled=\"true\"] {\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.step-indicator:focus-visible {\n outline: 2px solid var(--ty-wizard-focus-outline);\n outline-offset: 4px;\n border-radius: 50%;\n}\n\n/* ===================================== */\n/* Step Circle */\n/* ===================================== */\n\n.step-circle {\n width: var(--ty-wizard-circle-size);\n height: var(--ty-wizard-circle-size);\n border-radius: 50%;\n border: var(--ty-wizard-circle-border-width) solid;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 10;\n transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.step-circle[data-state=\"completed\"] {\n background: var(--ty-wizard-completed-accent);\n border-color: var(--ty-color-success-strong);\n /* Derived from the accent this circle actually paints, not from\n --ty-solid-success-fg: the two diverge in dark mode (--ty-solid-l\n dims solid fills by 0.25 L), which stranded white text at 3.5:1. */\n color: oklch(\n from var(--ty-wizard-completed-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"active\"] {\n background: var(--ty-wizard-active-accent);\n border-color: var(--ty-color-primary-strong);\n color: oklch(\n from var(--ty-wizard-active-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"pending\"] {\n background: var(--ty-surface-elevated);\n border-color: var(--ty-border);\n color: var(--ty-color-neutral);\n}\n\n.step-circle[data-state=\"error\"] {\n background: var(--ty-wizard-error-accent);\n border-color: var(--ty-color-danger-strong);\n color: oklch(\n from var(--ty-wizard-error-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);\n}\n\n/* ===================================== */\n/* Step Text Container */\n/* ===================================== */\n\n.step-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: center;\n}\n\n/* ===================================== */\n/* Step Label */\n/* ===================================== */\n\n.step-label {\n font-size: var(--ty-font-sm, 14px);\n font-weight: var(--ty-font-semibold, 600);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n}\n\n.step-indicator[aria-selected=\"true\"] .step-label {\n color: var(--ty-color-neutral-strong);\n}\n\n.step-indicator[aria-selected=\"false\"] .step-label {\n color: var(--ty-color-neutral);\n}\n\n/* ===================================== */\n/* Step Description */\n/* ===================================== */\n\n.step-description {\n font-size: var(--ty-font-xs, 12px);\n font-weight: var(--ty-font-normal, 400);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n text-align: center;\n max-width: 120px;\n}\n\n.step-indicator[aria-selected=\"true\"] .step-description {\n color: var(--ty-color-neutral-bold);\n}\n\n/* ===================================== */\n/* Custom Indicator Content via Slots */\n/* ===================================== */\n\n::slotted([slot^=\"indicator-\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n/* ===================================== */\n/* Panels Viewport */\n/* ===================================== */\n\n.panels-viewport {\n position: relative;\n flex: 1;\n overflow: hidden;\n min-height: 0;\n background: var(--ty-wizard-panels-bg);\n}\n\n/* ===================================== */\n/* Panels Wrapper (slides horizontally) */\n/* ===================================== */\n\n.panels-wrapper {\n display: flex;\n height: 100%;\n transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: transform;\n}\n\n/* ===================================== */\n/* Slotted Step Panels */\n/* ===================================== */\n\n::slotted(ty-step) {\n width: var(--ty-wizard-width, 100%);\n height: 100%;\n flex-shrink: 0;\n}\n\n/* ===================================== */\n/* Accessibility & Motion Preferences */\n/* ===================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .panels-wrapper {\n transition-duration: 0ms !important;\n }\n\n .progress-overlay {\n transition-duration: 0ms !important;\n }\n\n .step-circle {\n transition-duration: 0ms !important;\n }\n\n .progress-line {\n transition-duration: 0ms !important;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n";
25
- //# sourceMappingURL=wizard.d.ts.map
9
+ export declare const wizardStyles = "\n/* Theming tokens \u2014 every default chains back to the brand layer / global\n scale tokens. */\n\n:host {\n display: block;\n width: var(--ty-wizard-width, 100%); /* set by width attribute \u2014 not a public token */\n height: var(--ty-wizard-height, 700px); /* set by height attribute \u2014 not a public token */\n box-sizing: border-box;\n\n /* State accents \u2014 the primary override surface. One variable retints the\n * matching circle background, border, and glow. */\n --ty-wizard-active-accent: var(--ty-color-primary);\n --ty-wizard-completed-accent: var(--ty-color-success);\n --ty-wizard-error-accent: var(--ty-color-danger);\n --ty-wizard-pending-accent: var(--ty-color-neutral);\n\n /* Container chrome \u2014 routes through global scales. Override --ty-radius-lg\n * or --ty-shadow-md app-wide and the wizard follows; override these locally\n * to give the wizard a distinct look. */\n --ty-wizard-bg: var(--ty-surface-floating);\n --ty-wizard-border: var(--ty-border);\n --ty-wizard-radius: var(--ty-radius-lg, 12px);\n --ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));\n\n --ty-wizard-header-bg: var(--ty-surface-content);\n --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));\n --ty-wizard-header-padding: 24px 24px 16px;\n\n --ty-wizard-progress-track: var(--ty-border);\n --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);\n --ty-wizard-progress-height: 2px;\n\n /* Motion \u2014 routes through global motion tokens if defined. */\n --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);\n --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);\n\n --ty-wizard-circle-size: 32px;\n --ty-wizard-circle-border-width: 2px;\n\n --ty-wizard-panels-bg: var(--ty-surface-elevated);\n\n --ty-wizard-focus-outline: var(--ty-wizard-active-accent);\n}\n\n.wizard-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n border-radius: var(--ty-wizard-radius);\n border: 1px solid var(--ty-wizard-border);\n background: var(--ty-wizard-bg);\n box-shadow: var(--ty-wizard-shadow);\n overflow: hidden;\n}\n\n.step-indicators-wrapper {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n position: relative;\n padding: var(--ty-wizard-header-padding);\n border-bottom: 1px solid var(--ty-wizard-header-border);\n background: var(--ty-wizard-header-bg);\n}\n\n/* Progress line, behind the step circles */\n.progress-line {\n position: absolute;\n /*\n * With equal-width indicators (flex: 1), each takes 100%/N of the width.\n * Circle centers sit at 50%/N from the left edge of each indicator.\n * Inset = 50% / step-count from each side keeps the line between circle centres.\n */\n left: calc(50% / var(--ty-wizard-step-count, 4));\n right: calc(50% / var(--ty-wizard-step-count, 4));\n top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);\n height: var(--ty-wizard-progress-height);\n background: var(--ty-wizard-progress-track);\n z-index: 0;\n pointer-events: none;\n transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n}\n\n.progress-overlay {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n background: var(--ty-wizard-progress-fill);\n transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: width;\n}\n\n.step-indicators {\n display: flex;\n align-items: flex-start;\n position: relative;\n}\n\n.step-indicator {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n background: transparent;\n border: none;\n padding: 0;\n font: inherit;\n transition: opacity 200ms;\n flex: 1;\n min-width: 0;\n}\n\n.step-indicator[aria-disabled=\"true\"] {\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.step-indicator:focus-visible {\n outline: 2px solid var(--ty-wizard-focus-outline);\n outline-offset: 4px;\n border-radius: 50%;\n}\n\n.step-circle {\n width: var(--ty-wizard-circle-size);\n height: var(--ty-wizard-circle-size);\n border-radius: 50%;\n border: var(--ty-wizard-circle-border-width) solid;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n z-index: 10;\n transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.step-circle[data-state=\"completed\"] {\n background: var(--ty-wizard-completed-accent);\n border-color: var(--ty-color-success-strong);\n /* Derived from the accent this circle actually paints, not from\n --ty-solid-success-fg: the two diverge in dark mode (--ty-solid-l\n dims solid fills by 0.25 L), which stranded white text at 3.5:1. */\n color: oklch(\n from var(--ty-wizard-completed-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"active\"] {\n background: var(--ty-wizard-active-accent);\n border-color: var(--ty-color-primary-strong);\n color: oklch(\n from var(--ty-wizard-active-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);\n}\n\n.step-circle[data-state=\"pending\"] {\n background: var(--ty-surface-elevated);\n border-color: var(--ty-border);\n color: var(--ty-color-neutral);\n}\n\n.step-circle[data-state=\"error\"] {\n background: var(--ty-wizard-error-accent);\n border-color: var(--ty-color-danger-strong);\n color: oklch(\n from var(--ty-wizard-error-accent)\n clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0\n );\n box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);\n}\n\n.step-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: center;\n}\n\n.step-label {\n font-size: var(--ty-font-sm, 14px);\n font-weight: var(--ty-font-semibold, 600);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n}\n\n.step-indicator[aria-selected=\"true\"] .step-label {\n color: var(--ty-color-neutral-strong);\n}\n\n.step-indicator[aria-selected=\"false\"] .step-label {\n color: var(--ty-color-neutral);\n}\n\n.step-description {\n font-size: var(--ty-font-xs, 12px);\n font-weight: var(--ty-font-normal, 400);\n color: var(--ty-color-neutral);\n transition: var(--ty-local-transition, color 200ms);\n text-align: center;\n max-width: 120px;\n}\n\n.step-indicator[aria-selected=\"true\"] .step-description {\n color: var(--ty-color-neutral-bold);\n}\n\n/* Custom indicator content via slots */\n::slotted([slot^=\"indicator-\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.panels-viewport {\n position: relative;\n flex: 1;\n overflow: hidden;\n min-height: 0;\n background: var(--ty-wizard-panels-bg);\n}\n\n/* Panels wrapper slides horizontally */\n.panels-wrapper {\n display: flex;\n height: 100%;\n transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);\n will-change: transform;\n}\n\n::slotted(ty-step) {\n width: var(--ty-wizard-width, 100%);\n height: 100%;\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .panels-wrapper {\n transition-duration: 0ms !important;\n }\n\n .progress-overlay {\n transition-duration: 0ms !important;\n }\n\n .step-circle {\n transition-duration: 0ms !important;\n }\n\n .progress-line {\n transition-duration: 0ms !important;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n";
@@ -1,31 +1,6 @@
1
- /**
2
- * Wizard Component Styles
3
- *
4
- * CSS Parts (for styling via ::part):
5
- * - indicators-wrapper: The header containing step indicators
6
- * - progress-line: The background progress track
7
- * - step-circle: Individual step circle indicators
8
- * - panels-container: The content viewport
9
- *
10
- * Theming: four accent-alias knobs (one per state), four surface knobs
11
- * (container chrome), and a small set of geometry/motion overrides.
12
- *
13
- * Per-state circles read their colors directly from the matching accent
14
- * variable — no per-state `-bg` indirection. Override one of:
15
- * --ty-wizard-active-accent (default: --ty-color-primary)
16
- * --ty-wizard-completed-accent (default: --ty-color-success)
17
- * --ty-wizard-error-accent (default: --ty-color-danger)
18
- * --ty-wizard-pending-accent (default: --ty-color-neutral)
19
- *
20
- * For per-shade fine control, override the brand-layer's flavor seeds
21
- * (--ty-color-primary, --ty-color-success-strong, etc.) — they cascade
22
- * through here.
23
- */
24
1
  export const wizardStyles = `
25
- /* ============================================================================
26
- Theming Tokens — see file header for the override surface.
27
- Every default chains back to the brand layer / global scale tokens.
28
- ============================================================================ */
2
+ /* Theming tokens — every default chains back to the brand layer / global
3
+ scale tokens. */
29
4
 
30
5
  :host {
31
6
  display: block;
@@ -48,12 +23,10 @@ export const wizardStyles = `
48
23
  --ty-wizard-radius: var(--ty-radius-lg, 12px);
49
24
  --ty-wizard-shadow: var(--ty-shadow-md, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
50
25
 
51
- /* Header strip */
52
26
  --ty-wizard-header-bg: var(--ty-surface-content);
53
27
  --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));
54
28
  --ty-wizard-header-padding: 24px 24px 16px;
55
29
 
56
- /* Progress line */
57
30
  --ty-wizard-progress-track: var(--ty-border);
58
31
  --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);
59
32
  --ty-wizard-progress-height: 2px;
@@ -62,14 +35,11 @@ export const wizardStyles = `
62
35
  --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);
63
36
  --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);
64
37
 
65
- /* Circle geometry */
66
38
  --ty-wizard-circle-size: 32px;
67
39
  --ty-wizard-circle-border-width: 2px;
68
40
 
69
- /* Panels viewport */
70
41
  --ty-wizard-panels-bg: var(--ty-surface-elevated);
71
42
 
72
- /* Focus */
73
43
  --ty-wizard-focus-outline: var(--ty-wizard-active-accent);
74
44
  }
75
45
 
@@ -87,10 +57,6 @@ export const wizardStyles = `
87
57
  overflow: hidden;
88
58
  }
89
59
 
90
- /* ===================================== */
91
- /* Step Indicators Wrapper */
92
- /* ===================================== */
93
-
94
60
  .step-indicators-wrapper {
95
61
  display: flex;
96
62
  flex-direction: column;
@@ -101,10 +67,7 @@ export const wizardStyles = `
101
67
  background: var(--ty-wizard-header-bg);
102
68
  }
103
69
 
104
- /* ===================================== */
105
- /* Progress Line (behind step circles) */
106
- /* ===================================== */
107
-
70
+ /* Progress line, behind the step circles */
108
71
  .progress-line {
109
72
  position: absolute;
110
73
  /*
@@ -132,20 +95,12 @@ export const wizardStyles = `
132
95
  will-change: width;
133
96
  }
134
97
 
135
- /* ===================================== */
136
- /* Step Indicators Container */
137
- /* ===================================== */
138
-
139
98
  .step-indicators {
140
99
  display: flex;
141
100
  align-items: flex-start;
142
101
  position: relative;
143
102
  }
144
103
 
145
- /* ===================================== */
146
- /* Individual Step Indicator */
147
- /* ===================================== */
148
-
149
104
  .step-indicator {
150
105
  display: flex;
151
106
  flex-direction: column;
@@ -173,10 +128,6 @@ export const wizardStyles = `
173
128
  border-radius: 50%;
174
129
  }
175
130
 
176
- /* ===================================== */
177
- /* Step Circle */
178
- /* ===================================== */
179
-
180
131
  .step-circle {
181
132
  width: var(--ty-wizard-circle-size);
182
133
  height: var(--ty-wizard-circle-size);
@@ -200,7 +151,7 @@ export const wizardStyles = `
200
151
  dims solid fills by 0.25 L), which stranded white text at 3.5:1. */
201
152
  color: oklch(
202
153
  from var(--ty-wizard-completed-accent)
203
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
154
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
204
155
  );
205
156
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);
206
157
  }
@@ -210,7 +161,7 @@ export const wizardStyles = `
210
161
  border-color: var(--ty-color-primary-strong);
211
162
  color: oklch(
212
163
  from var(--ty-wizard-active-accent)
213
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
164
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
214
165
  );
215
166
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);
216
167
  }
@@ -226,15 +177,11 @@ export const wizardStyles = `
226
177
  border-color: var(--ty-color-danger-strong);
227
178
  color: oklch(
228
179
  from var(--ty-wizard-error-accent)
229
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
180
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
230
181
  );
231
182
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);
232
183
  }
233
184
 
234
- /* ===================================== */
235
- /* Step Text Container */
236
- /* ===================================== */
237
-
238
185
  .step-text {
239
186
  display: flex;
240
187
  flex-direction: column;
@@ -242,10 +189,6 @@ export const wizardStyles = `
242
189
  align-items: center;
243
190
  }
244
191
 
245
- /* ===================================== */
246
- /* Step Label */
247
- /* ===================================== */
248
-
249
192
  .step-label {
250
193
  font-size: var(--ty-font-sm, 14px);
251
194
  font-weight: var(--ty-font-semibold, 600);
@@ -261,10 +204,6 @@ export const wizardStyles = `
261
204
  color: var(--ty-color-neutral);
262
205
  }
263
206
 
264
- /* ===================================== */
265
- /* Step Description */
266
- /* ===================================== */
267
-
268
207
  .step-description {
269
208
  font-size: var(--ty-font-xs, 12px);
270
209
  font-weight: var(--ty-font-normal, 400);
@@ -278,10 +217,7 @@ export const wizardStyles = `
278
217
  color: var(--ty-color-neutral-bold);
279
218
  }
280
219
 
281
- /* ===================================== */
282
- /* Custom Indicator Content via Slots */
283
- /* ===================================== */
284
-
220
+ /* Custom indicator content via slots */
285
221
  ::slotted([slot^="indicator-"]) {
286
222
  display: flex;
287
223
  align-items: center;
@@ -290,10 +226,6 @@ export const wizardStyles = `
290
226
  height: 100%;
291
227
  }
292
228
 
293
- /* ===================================== */
294
- /* Panels Viewport */
295
- /* ===================================== */
296
-
297
229
  .panels-viewport {
298
230
  position: relative;
299
231
  flex: 1;
@@ -302,10 +234,7 @@ export const wizardStyles = `
302
234
  background: var(--ty-wizard-panels-bg);
303
235
  }
304
236
 
305
- /* ===================================== */
306
- /* Panels Wrapper (slides horizontally) */
307
- /* ===================================== */
308
-
237
+ /* Panels wrapper slides horizontally */
309
238
  .panels-wrapper {
310
239
  display: flex;
311
240
  height: 100%;
@@ -313,20 +242,12 @@ export const wizardStyles = `
313
242
  will-change: transform;
314
243
  }
315
244
 
316
- /* ===================================== */
317
- /* Slotted Step Panels */
318
- /* ===================================== */
319
-
320
245
  ::slotted(ty-step) {
321
246
  width: var(--ty-wizard-width, 100%);
322
247
  height: 100%;
323
248
  flex-shrink: 0;
324
249
  }
325
250
 
326
- /* ===================================== */
327
- /* Accessibility & Motion Preferences */
328
- /* ===================================== */
329
-
330
251
  @media (prefers-reduced-motion: reduce) {
331
252
  .panels-wrapper {
332
253
  transition-duration: 0ms !important;
@@ -357,4 +278,3 @@ export const wizardStyles = `
357
278
  border-width: 0;
358
279
  }
359
280
  `;
360
- //# sourceMappingURL=wizard.js.map
@@ -50,7 +50,6 @@ export interface TyButtonElement extends TyBaseElement {
50
50
  /** Button type for forms */
51
51
  type?: 'button' | 'submit' | 'reset';
52
52
  }
53
- /** CSS style content */
54
53
  /** Icon size variants */
55
54
  export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '12' | '14' | '16' | '18' | '20' | '24' | '32' | '48' | '64' | '80' | '96';
56
55
  /** Icon animation tempo */
@@ -141,4 +140,3 @@ export interface StyleContent {
141
140
  /** Optional style ID for caching */
142
141
  id?: string;
143
142
  }
144
- //# sourceMappingURL=common.d.ts.map
@@ -1,14 +1,3 @@
1
- /**
2
- * Ty Component Common Types
3
- */
4
- /**
5
- * Built-in semantic color flavor names. Append `+` for a stronger shade or `-`
6
- * for a softer shade — e.g. `primary`, `primary+`, `primary-`. Matches the
7
- * design system's `ty-bg-primary+` / `ty-text-primary-` class convention.
8
- */
9
- /* `secondary` was removed in TC37 — the built-in set is semantic-only.
10
- * An aesthetic second accent is one flavor-pack away (see CSS_GUIDE →
11
- * Custom Flavors); markup using flavor="secondary" degrades to neutral. */
12
1
  export const FLAVORS = [
13
2
  'primary',
14
3
  'success',
@@ -16,4 +5,3 @@ export const FLAVORS = [
16
5
  'warning',
17
6
  'neutral',
18
7
  ];
19
- //# sourceMappingURL=common.js.map
@@ -1,25 +1,9 @@
1
1
  /**
2
- * Calendar Utilities
2
+ * Calendar month generation and localization (native Date API only).
3
3
  *
4
- * Pure TypeScript utilities for calendar month generation and localization.
5
- * Ported from ClojureScript ty/date/core.cljs
6
- *
7
- * Key Features:
8
- * - 42-day calendar grid generation (6 weeks × 7 days)
9
- * - Monday-first week ordering
10
- * - Rich day context with metadata
11
- * - Localized weekday names
12
- * - No external dependencies (native Date API only)
13
- *
14
- * Note on Timestamps:
15
- * - `value`: UTC timestamp at midnight UTC (timezone-independent, use for storage/server)
16
- * - `localValue`: Local timestamp at midnight local time (use for display/local calculations)
17
- * - `year/month/dayInMonth`: Calendar date components (user's mental model)
18
- *
19
- * Example for October 13, 2025:
20
- * - value = Date.UTC(2025, 9, 13) = consistent worldwide
21
- * - localValue = new Date(2025, 9, 13).getTime() = varies by timezone
22
- * - Both represent the same calendar date, different moments in time
4
+ * Timestamps: `value` is UTC midnight (timezone-independent, for storage/server),
5
+ * `localValue` is local midnight (for display/local math). Both denote the same
6
+ * calendar date but are different moments in time.
23
7
  */
24
8
  /**
25
9
  * Rich context for a single calendar day
@@ -125,4 +109,3 @@ export declare function parseISODate(isoString: string): {
125
109
  month: number;
126
110
  day: number;
127
111
  } | null;
128
- //# sourceMappingURL=calendar-utils.d.ts.map
@@ -1,89 +1,31 @@
1
- /**
2
- * Calendar Utilities
3
- *
4
- * Pure TypeScript utilities for calendar month generation and localization.
5
- * Ported from ClojureScript ty/date/core.cljs
6
- *
7
- * Key Features:
8
- * - 42-day calendar grid generation (6 weeks × 7 days)
9
- * - Monday-first week ordering
10
- * - Rich day context with metadata
11
- * - Localized weekday names
12
- * - No external dependencies (native Date API only)
13
- *
14
- * Note on Timestamps:
15
- * - `value`: UTC timestamp at midnight UTC (timezone-independent, use for storage/server)
16
- * - `localValue`: Local timestamp at midnight local time (use for display/local calculations)
17
- * - `year/month/dayInMonth`: Calendar date components (user's mental model)
18
- *
19
- * Example for October 13, 2025:
20
- * - value = Date.UTC(2025, 9, 13) = consistent worldwide
21
- * - localValue = new Date(2025, 9, 13).getTime() = varies by timezone
22
- * - Both represent the same calendar date, different moments in time
23
- */
24
- // ============================================================================
25
- // Validation Functions
26
- // ============================================================================
27
- /**
28
- * Validate month value (1-12)
29
- */
30
1
  function validateMonth(month) {
31
2
  if (!Number.isInteger(month) || month < 1 || month > 12) {
32
3
  throw new RangeError(`Invalid month: ${month}. Must be an integer between 1 and 12.`);
33
4
  }
34
5
  }
35
- /**
36
- * Validate year value (reasonable range)
37
- */
38
6
  function validateYear(year) {
39
7
  if (!Number.isInteger(year) || year < 1 || year > 9999) {
40
8
  throw new RangeError(`Invalid year: ${year}. Must be an integer between 1 and 9999.`);
41
9
  }
42
10
  }
43
- // ============================================================================
44
- // Helper Functions
45
- // ============================================================================
46
- /**
47
- * Check if two dates are on the same day (ignoring time)
48
- * Works in local timezone
49
- */
50
11
  function isSameDay(date1, date2) {
51
12
  return date1.getFullYear() === date2.getFullYear()
52
13
  && date1.getMonth() === date2.getMonth()
53
14
  && date1.getDate() === date2.getDate();
54
15
  }
55
- /**
56
- * Create a date at midnight local time
57
- * This ensures consistent behavior across the application
58
- */
59
16
  function createMidnightDate(year, month, day) {
60
17
  return new Date(year, month - 1, day, 0, 0, 0, 0);
61
18
  }
62
- /**
63
- * Get today's date at midnight local time
64
- * Used for consistent "today" detection
65
- */
66
19
  function getTodayMidnight() {
67
20
  const now = new Date();
68
21
  return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);
69
22
  }
70
- /**
71
- * Create a DayContext from a Date object
72
- *
73
- * @param date - The date to create context for (should be at midnight)
74
- * @param targetYear - The year of the calendar month being displayed
75
- * @param targetMonth - The month (1-12) of the calendar month being displayed
76
- * @param selection - Optional selection state from calendar
77
- * @returns Rich day context with metadata
78
- */
79
23
  function createDayContext(date, targetYear, targetMonth, selection) {
80
24
  const year = date.getFullYear();
81
- const month = date.getMonth() + 1; // Convert to 1-based
25
+ const month = date.getMonth() + 1;
82
26
  const dayInMonth = date.getDate();
83
- const dayOfWeek = date.getDay(); // 0 = Sunday, 6 = Saturday
84
- // Check if this day is from a different month
27
+ const dayOfWeek = date.getDay();
85
28
  const isOtherMonth = year !== targetYear || month !== targetMonth;
86
- // Determine if previous or next month
87
29
  let isPrevMonth = false;
88
30
  let isNextMonth = false;
89
31
  if (isOtherMonth) {
@@ -94,16 +36,11 @@ function createDayContext(date, targetYear, targetMonth, selection) {
94
36
  isNextMonth = true;
95
37
  }
96
38
  }
97
- // Check if today (compare dates at midnight for consistency)
98
39
  const todayMidnight = getTodayMidnight();
99
40
  const isToday = isSameDay(date, todayMidnight);
100
- // Check if this day is selected
101
41
  const isSelected = selection?.year === year
102
42
  && selection?.month === month
103
43
  && selection?.day === dayInMonth;
104
- // Calculate both UTC and local timestamps
105
- // value: UTC midnight (consistent worldwide for the same date)
106
- // localValue: Local midnight (respects user's timezone)
107
44
  const utcValue = Date.UTC(year, month - 1, dayInMonth, 0, 0, 0, 0);
108
45
  const localValue = date.getTime();
109
46
  return {
@@ -123,64 +60,23 @@ function createDayContext(date, targetYear, targetMonth, selection) {
123
60
  selectedDay: selection?.day,
124
61
  };
125
62
  }
126
- /**
127
- * Get the Monday at or before a given date
128
- * (Monday = start of week in ISO 8601)
129
- *
130
- * @param date - Any date
131
- * @returns The Monday of that week at midnight
132
- */
133
63
  function getMondayOfWeek(date) {
134
- const dayOfWeek = date.getDay(); // 0 = Sunday, 1 = Monday, etc.
135
- // Calculate days to subtract to get to Monday
136
- // Sunday (0) → go back 6 days
137
- // Monday (1) → go back 0 days
138
- // Tuesday (2) → go back 1 day
139
- // ...
64
+ const dayOfWeek = date.getDay();
140
65
  const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
141
- // Create new date at Monday midnight
142
66
  const monday = new Date(date);
143
67
  monday.setDate(date.getDate() - daysToMonday);
144
- monday.setHours(0, 0, 0, 0); // Ensure midnight
68
+ monday.setHours(0, 0, 0, 0);
145
69
  return monday;
146
70
  }
147
- /**
148
- * Get the start date for the calendar grid
149
- * (The Monday at or before the first day of the month)
150
- *
151
- * @param year - Year
152
- * @param month - Month (1-12)
153
- * @returns The Monday that starts the calendar grid
154
- */
155
71
  function getMonthGridStart(year, month) {
156
- // Get first day of month at midnight (month is 1-based, Date constructor is 0-based)
157
72
  const firstDay = createMidnightDate(year, month, 1);
158
- // Get the Monday of that week
159
73
  return getMondayOfWeek(firstDay);
160
74
  }
161
- /**
162
- * Add days to a date safely
163
- * Creates a new date without mutating the original
164
- *
165
- * @param date - Starting date
166
- * @param days - Number of days to add
167
- * @returns New date with days added
168
- */
169
75
  function addDays(date, days) {
170
76
  const result = new Date(date);
171
77
  result.setDate(result.getDate() + days);
172
78
  return result;
173
79
  }
174
- /**
175
- * Generate N consecutive days starting from a date
176
- *
177
- * @param startDate - Starting date
178
- * @param count - Number of days to generate
179
- * @param targetYear - Year of the calendar month
180
- * @param targetMonth - Month (1-12) of the calendar month
181
- * @param selection - Optional selection state to include in day contexts
182
- * @returns Array of day contexts
183
- */
184
80
  function generateDays(startDate, count, targetYear, targetMonth, selection) {
185
81
  const days = [];
186
82
  for (let i = 0; i < count; i++) {
@@ -189,94 +85,28 @@ function generateDays(startDate, count, targetYear, targetMonth, selection) {
189
85
  }
190
86
  return days;
191
87
  }
192
- // ============================================================================
193
- // Main Calendar Functions
194
- // ============================================================================
195
- /**
196
- * Generate a 42-day calendar grid for a given month
197
- *
198
- * Returns 6 weeks (42 days) starting from the Monday at or before
199
- * the first day of the month. This ensures a complete calendar view
200
- * with days from the previous and next months as needed.
201
- *
202
- * @param year - Year (e.g., 2025)
203
- * @param month - Month (1-12, 1 = January)
204
- * @param selection - Optional selection state to include in day contexts
205
- * @returns Array of 42 day contexts with rich metadata
206
- *
207
- * @throws {RangeError} If year or month are invalid
208
- *
209
- * @example
210
- * const days = getCalendarMonthDays(2025, 10); // October 2025
211
- * console.log(days.length); // 42
212
- * console.log(days[0].dayInMonth); // First day shown (might be from September)
213
- */
214
88
  export function getCalendarMonthDays(year, month, selection) {
215
- // Validate inputs
216
89
  validateYear(year);
217
90
  validateMonth(month);
218
91
  const startDate = getMonthGridStart(year, month);
219
92
  return generateDays(startDate, 42, year, month, selection);
220
93
  }
221
- /**
222
- * Get localized weekday names in Monday-first order
223
- *
224
- * Note: Intl.DateTimeFormat returns Sunday-first by default,
225
- * so we reorder to Monday-first: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
226
- *
227
- * @param locale - Locale string (e.g., "en-US", "de-DE", "ja-JP")
228
- * @param style - Display style: "long" (Monday), "short" (Mon), "narrow" (M)
229
- * @returns Array of 7 weekday names starting with Monday
230
- *
231
- * @example
232
- * getLocalizedWeekdays("en-US", "short")
233
- * // Returns: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
234
- *
235
- * getLocalizedWeekdays("de-DE", "long")
236
- * // Returns: ["Montag", "Dienstag", "Mittwoch", ...]
237
- */
238
94
  export function getLocalizedWeekdays(locale, style = 'short') {
239
95
  const formatter = new Intl.DateTimeFormat(locale, { weekday: style });
240
- // Create a Sunday (base date) - January 7, 2024 is a Sunday
241
96
  const sunday = new Date(2024, 0, 7);
242
- // Generate Sunday-first array: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
243
97
  const sundayFirst = Array.from({ length: 7 }, (_, i) => {
244
98
  const date = addDays(sunday, i);
245
99
  return formatter.format(date);
246
100
  });
247
- // Reorder to Monday-first: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
248
101
  const [firstDay, ...rest] = sundayFirst;
249
102
  return [...rest, firstDay];
250
103
  }
251
- // ============================================================================
252
- // Utility Functions (for testing and debugging)
253
- // ============================================================================
254
- /**
255
- * Get month name in specified locale
256
- *
257
- * @param month - Month (1-12)
258
- * @param locale - Locale string
259
- * @param style - Display style
260
- * @returns Localized month name
261
- *
262
- * @throws {RangeError} If month is invalid
263
- */
264
104
  export function getMonthName(month, locale = 'en-US', style = 'long') {
265
105
  validateMonth(month);
266
106
  const date = new Date(2024, month - 1, 1);
267
107
  const formatter = new Intl.DateTimeFormat(locale, { month: style });
268
108
  return formatter.format(date);
269
109
  }
270
- /**
271
- * Parse an ISO date string (YYYY-MM-DD) into year, month, day components
272
- *
273
- * @param isoString - ISO date string (YYYY-MM-DD)
274
- * @returns Object with year, month (1-12), and day, or null if invalid
275
- *
276
- * @example
277
- * parseISODate("2025-10-13")
278
- * // Returns: { year: 2025, month: 10, day: 13 }
279
- */
280
110
  export function parseISODate(isoString) {
281
111
  const match = isoString.match(/^(\d{4})-(\d{2})-(\d{2})$/);
282
112
  if (!match)
@@ -284,18 +114,15 @@ export function parseISODate(isoString) {
284
114
  const year = parseInt(match[1], 10);
285
115
  const month = parseInt(match[2], 10);
286
116
  const day = parseInt(match[3], 10);
287
- // Validate ranges
288
117
  if (year < 1 || year > 9999)
289
118
  return null;
290
119
  if (month < 1 || month > 12)
291
120
  return null;
292
121
  if (day < 1 || day > 31)
293
122
  return null;
294
- // Check if date is valid (handles Feb 30, etc.)
295
123
  const date = new Date(year, month - 1, day);
296
124
  if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
297
125
  return null;
298
126
  }
299
127
  return { year, month, day };
300
128
  }
301
- //# sourceMappingURL=calendar-utils.js.map