tyrell-components 1.0.0-RC13 → 1.0.0-RC15

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 (358) hide show
  1. package/README.md +10 -2
  2. package/css/tyrell-theme.css +192 -180
  3. package/css/tyrell.css +23 -0
  4. package/dist/tyrell-colors-static.css +1 -316
  5. package/dist/tyrell-theme.css +1 -1454
  6. package/dist/tyrell.css +1 -1371
  7. package/dist/tyrell.js +1 -1
  8. package/lib/base/ty-component.d.ts +20 -10
  9. package/lib/base/ty-component.js +196 -319
  10. package/lib/components/button.d.ts +3 -17
  11. package/lib/components/button.js +261 -295
  12. package/lib/components/calendar-month.d.ts +4 -50
  13. package/lib/components/calendar-month.js +443 -582
  14. package/lib/components/calendar-navigation.d.ts +3 -48
  15. package/lib/components/calendar-navigation.js +239 -362
  16. package/lib/components/calendar.d.ts +8 -83
  17. package/lib/components/calendar.js +616 -829
  18. package/lib/components/checkbox.d.ts +5 -72
  19. package/lib/components/checkbox.js +273 -416
  20. package/lib/components/copy.d.ts +4 -57
  21. package/lib/components/copy.js +280 -397
  22. package/lib/components/date-picker.d.ts +21 -163
  23. package/lib/components/date-picker.js +1143 -1674
  24. package/lib/components/file-upload.d.ts +9 -15
  25. package/lib/components/file-upload.js +404 -426
  26. package/lib/components/icon.d.ts +3 -24
  27. package/lib/components/icon.js +141 -230
  28. package/lib/components/input.d.ts +8 -108
  29. package/lib/components/input.js +593 -784
  30. package/lib/components/modal.d.ts +17 -26
  31. package/lib/components/modal.js +340 -484
  32. package/lib/components/option.d.ts +2 -9
  33. package/lib/components/option.js +168 -216
  34. package/lib/components/popup.d.ts +2 -17
  35. package/lib/components/popup.js +249 -380
  36. package/lib/components/radio.d.ts +5 -25
  37. package/lib/components/radio.js +407 -461
  38. package/lib/components/resize-observer.d.ts +3 -30
  39. package/lib/components/resize-observer.js +69 -103
  40. package/lib/components/scroll-container.d.ts +2 -12
  41. package/lib/components/scroll-container.js +293 -338
  42. package/lib/components/select.d.ts +87 -159
  43. package/lib/components/select.js +1609 -2090
  44. package/lib/components/selected-tags.d.ts +5 -48
  45. package/lib/components/selected-tags.js +188 -276
  46. package/lib/components/step.d.ts +1 -6
  47. package/lib/components/step.js +62 -68
  48. package/lib/components/switch.d.ts +1 -12
  49. package/lib/components/switch.js +214 -247
  50. package/lib/components/tab.d.ts +1 -6
  51. package/lib/components/tab.js +62 -69
  52. package/lib/components/tabs.d.ts +6 -63
  53. package/lib/components/tabs.js +545 -777
  54. package/lib/components/tag.d.ts +3 -37
  55. package/lib/components/tag.js +236 -335
  56. package/lib/components/textarea.d.ts +7 -87
  57. package/lib/components/textarea.js +457 -627
  58. package/lib/components/tooltip.d.ts +3 -11
  59. package/lib/components/tooltip.js +307 -443
  60. package/lib/components/wizard.d.ts +6 -54
  61. package/lib/components/wizard.js +405 -618
  62. package/lib/icons/fontawesome/brands.d.ts +0 -1
  63. package/lib/icons/fontawesome/brands.js +0 -8
  64. package/lib/icons/fontawesome/regular.d.ts +0 -1
  65. package/lib/icons/fontawesome/regular.js +0 -8
  66. package/lib/icons/fontawesome/solid.d.ts +0 -1
  67. package/lib/icons/fontawesome/solid.js +0 -8
  68. package/lib/icons/heroicons/micro.d.ts +0 -1
  69. package/lib/icons/heroicons/micro.js +392 -400
  70. package/lib/icons/heroicons/mini.d.ts +0 -1
  71. package/lib/icons/heroicons/mini.js +382 -390
  72. package/lib/icons/heroicons/outline.d.ts +0 -1
  73. package/lib/icons/heroicons/outline.js +337 -345
  74. package/lib/icons/heroicons/solid.d.ts +0 -1
  75. package/lib/icons/heroicons/solid.js +407 -415
  76. package/lib/icons/lucide.d.ts +0 -1
  77. package/lib/icons/lucide.js +24479 -26351
  78. package/lib/icons/material/filled.d.ts +0 -1
  79. package/lib/icons/material/filled.js +9653 -9663
  80. package/lib/icons/material/outlined.d.ts +0 -1
  81. package/lib/icons/material/outlined.js +10271 -10281
  82. package/lib/icons/material/round.d.ts +0 -1
  83. package/lib/icons/material/round.js +10495 -10505
  84. package/lib/icons/material/sharp.d.ts +0 -1
  85. package/lib/icons/material/sharp.js +9905 -9915
  86. package/lib/icons/material/two-tone.d.ts +0 -1
  87. package/lib/icons/material/two-tone.js +12792 -12802
  88. package/lib/index.d.ts +0 -1
  89. package/lib/index.js +21 -41
  90. package/lib/styles/button.d.ts +2 -20
  91. package/lib/styles/button.js +202 -404
  92. package/lib/styles/calendar-month.d.ts +1 -5
  93. package/lib/styles/calendar-month.js +127 -244
  94. package/lib/styles/calendar-navigation.d.ts +2 -6
  95. package/lib/styles/calendar-navigation.js +64 -104
  96. package/lib/styles/calendar.d.ts +1 -2
  97. package/lib/styles/calendar.js +9 -22
  98. package/lib/styles/checkbox.d.ts +0 -1
  99. package/lib/styles/checkbox.js +45 -94
  100. package/lib/styles/copy.d.ts +0 -1
  101. package/lib/styles/copy.js +67 -106
  102. package/lib/styles/custom-scrollbar.d.ts +1 -2
  103. package/lib/styles/custom-scrollbar.js +80 -115
  104. package/lib/styles/date-picker.d.ts +1 -5
  105. package/lib/styles/date-picker.js +261 -335
  106. package/lib/styles/field-size.d.ts +6 -0
  107. package/lib/styles/field-size.js +91 -0
  108. package/lib/styles/file-upload.d.ts +1 -2
  109. package/lib/styles/file-upload.js +143 -188
  110. package/lib/styles/icon.d.ts +2 -6
  111. package/lib/styles/icon.js +92 -170
  112. package/lib/styles/input.d.ts +1 -6
  113. package/lib/styles/input.js +125 -290
  114. package/lib/styles/modal.d.ts +1 -2
  115. package/lib/styles/modal.js +71 -108
  116. package/lib/styles/option.d.ts +2 -6
  117. package/lib/styles/option.js +49 -64
  118. package/lib/styles/popup.d.ts +1 -2
  119. package/lib/styles/popup.js +42 -77
  120. package/lib/styles/radio.d.ts +0 -1
  121. package/lib/styles/radio.js +69 -110
  122. package/lib/styles/resize-observer.d.ts +1 -2
  123. package/lib/styles/resize-observer.js +2 -12
  124. package/lib/styles/scroll-container.d.ts +1 -2
  125. package/lib/styles/scroll-container.js +100 -149
  126. package/lib/styles/select-base.d.ts +0 -1
  127. package/lib/styles/select-base.js +597 -785
  128. package/lib/styles/select.d.ts +1 -2
  129. package/lib/styles/select.js +140 -236
  130. package/lib/styles/step.d.ts +1 -2
  131. package/lib/styles/step.js +22 -33
  132. package/lib/styles/switch.d.ts +0 -1
  133. package/lib/styles/switch.js +34 -73
  134. package/lib/styles/tab.d.ts +1 -2
  135. package/lib/styles/tab.js +22 -34
  136. package/lib/styles/tabs.d.ts +3 -11
  137. package/lib/styles/tabs.js +190 -222
  138. package/lib/styles/tag.d.ts +1 -5
  139. package/lib/styles/tag.js +136 -218
  140. package/lib/styles/textarea.d.ts +1 -2
  141. package/lib/styles/textarea.js +210 -319
  142. package/lib/styles/tooltip.d.ts +0 -1
  143. package/lib/styles/tooltip.js +3 -13
  144. package/lib/styles/wizard.d.ts +5 -21
  145. package/lib/styles/wizard.js +170 -306
  146. package/lib/types/common.d.ts +2 -2
  147. package/lib/types/common.js +6 -17
  148. package/lib/utils/calendar-utils.d.ts +4 -21
  149. package/lib/utils/calendar-utils.js +100 -273
  150. package/lib/utils/custom-scrollbar.d.ts +6 -20
  151. package/lib/utils/custom-scrollbar.js +273 -317
  152. package/lib/utils/flavor-sheet.d.ts +0 -1
  153. package/lib/utils/flavor-sheet.js +14 -37
  154. package/lib/utils/icon-registry.d.ts +0 -2
  155. package/lib/utils/icon-registry.js +137 -243
  156. package/lib/utils/icons.d.ts +0 -1
  157. package/lib/utils/icons.js +0 -9
  158. package/lib/utils/loader-registry.d.ts +0 -1
  159. package/lib/utils/loader-registry.js +3 -35
  160. package/lib/utils/locale.d.ts +2 -23
  161. package/lib/utils/locale.js +34 -120
  162. package/lib/utils/mobile.d.ts +0 -1
  163. package/lib/utils/mobile.js +1 -18
  164. package/lib/utils/number-format.d.ts +6 -3
  165. package/lib/utils/number-format.js +54 -110
  166. package/lib/utils/positioning.d.ts +50 -7
  167. package/lib/utils/positioning.js +224 -234
  168. package/lib/utils/property-capture.d.ts +5 -27
  169. package/lib/utils/property-capture.js +36 -144
  170. package/lib/utils/property-manager.d.ts +0 -1
  171. package/lib/utils/property-manager.js +126 -196
  172. package/lib/utils/resize-observer.d.ts +0 -1
  173. package/lib/utils/resize-observer.js +23 -59
  174. package/lib/utils/scroll-lock.d.ts +4 -11
  175. package/lib/utils/scroll-lock.js +65 -172
  176. package/lib/utils/styles.d.ts +0 -1
  177. package/lib/utils/styles.js +17 -41
  178. package/lib/version.d.ts +1 -2
  179. package/lib/version.js +1 -11
  180. package/package.json +4 -4
  181. package/lib/base/ty-component.d.ts.map +0 -1
  182. package/lib/base/ty-component.js.map +0 -1
  183. package/lib/components/button.d.ts.map +0 -1
  184. package/lib/components/button.js.map +0 -1
  185. package/lib/components/calendar-month.d.ts.map +0 -1
  186. package/lib/components/calendar-month.js.map +0 -1
  187. package/lib/components/calendar-navigation.d.ts.map +0 -1
  188. package/lib/components/calendar-navigation.js.map +0 -1
  189. package/lib/components/calendar.d.ts.map +0 -1
  190. package/lib/components/calendar.js.map +0 -1
  191. package/lib/components/checkbox.d.ts.map +0 -1
  192. package/lib/components/checkbox.js.map +0 -1
  193. package/lib/components/copy.d.ts.map +0 -1
  194. package/lib/components/copy.js.map +0 -1
  195. package/lib/components/date-picker.d.ts.map +0 -1
  196. package/lib/components/date-picker.js.map +0 -1
  197. package/lib/components/file-upload.d.ts.map +0 -1
  198. package/lib/components/file-upload.js.map +0 -1
  199. package/lib/components/icon.d.ts.map +0 -1
  200. package/lib/components/icon.js.map +0 -1
  201. package/lib/components/input.d.ts.map +0 -1
  202. package/lib/components/input.js.map +0 -1
  203. package/lib/components/modal.d.ts.map +0 -1
  204. package/lib/components/modal.js.map +0 -1
  205. package/lib/components/option.d.ts.map +0 -1
  206. package/lib/components/option.js.map +0 -1
  207. package/lib/components/popup.d.ts.map +0 -1
  208. package/lib/components/popup.js.map +0 -1
  209. package/lib/components/radio.d.ts.map +0 -1
  210. package/lib/components/radio.js.map +0 -1
  211. package/lib/components/resize-observer.d.ts.map +0 -1
  212. package/lib/components/resize-observer.js.map +0 -1
  213. package/lib/components/scroll-container.d.ts.map +0 -1
  214. package/lib/components/scroll-container.js.map +0 -1
  215. package/lib/components/select.d.ts.map +0 -1
  216. package/lib/components/select.js.map +0 -1
  217. package/lib/components/selected-tags.d.ts.map +0 -1
  218. package/lib/components/selected-tags.js.map +0 -1
  219. package/lib/components/step.d.ts.map +0 -1
  220. package/lib/components/step.js.map +0 -1
  221. package/lib/components/switch.d.ts.map +0 -1
  222. package/lib/components/switch.js.map +0 -1
  223. package/lib/components/tab.d.ts.map +0 -1
  224. package/lib/components/tab.js.map +0 -1
  225. package/lib/components/tabs.d.ts.map +0 -1
  226. package/lib/components/tabs.js.map +0 -1
  227. package/lib/components/tag.d.ts.map +0 -1
  228. package/lib/components/tag.js.map +0 -1
  229. package/lib/components/textarea.d.ts.map +0 -1
  230. package/lib/components/textarea.js.map +0 -1
  231. package/lib/components/tooltip.d.ts.map +0 -1
  232. package/lib/components/tooltip.js.map +0 -1
  233. package/lib/components/wizard.d.ts.map +0 -1
  234. package/lib/components/wizard.js.map +0 -1
  235. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  236. package/lib/icons/fontawesome/brands.js.map +0 -1
  237. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  238. package/lib/icons/fontawesome/regular.js.map +0 -1
  239. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  240. package/lib/icons/fontawesome/solid.js.map +0 -1
  241. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  242. package/lib/icons/heroicons/micro.js.map +0 -1
  243. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  244. package/lib/icons/heroicons/mini.js.map +0 -1
  245. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  246. package/lib/icons/heroicons/outline.js.map +0 -1
  247. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  248. package/lib/icons/heroicons/solid.js.map +0 -1
  249. package/lib/icons/lucide.d.ts.map +0 -1
  250. package/lib/icons/lucide.js.map +0 -1
  251. package/lib/icons/material/filled.d.ts.map +0 -1
  252. package/lib/icons/material/filled.js.map +0 -1
  253. package/lib/icons/material/outlined.d.ts.map +0 -1
  254. package/lib/icons/material/outlined.js.map +0 -1
  255. package/lib/icons/material/round.d.ts.map +0 -1
  256. package/lib/icons/material/round.js.map +0 -1
  257. package/lib/icons/material/sharp.d.ts.map +0 -1
  258. package/lib/icons/material/sharp.js.map +0 -1
  259. package/lib/icons/material/two-tone.d.ts.map +0 -1
  260. package/lib/icons/material/two-tone.js.map +0 -1
  261. package/lib/index.d.ts.map +0 -1
  262. package/lib/index.js.map +0 -1
  263. package/lib/styles/button.d.ts.map +0 -1
  264. package/lib/styles/button.js.map +0 -1
  265. package/lib/styles/calendar-month.d.ts.map +0 -1
  266. package/lib/styles/calendar-month.js.map +0 -1
  267. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  268. package/lib/styles/calendar-navigation.js.map +0 -1
  269. package/lib/styles/calendar.d.ts.map +0 -1
  270. package/lib/styles/calendar.js.map +0 -1
  271. package/lib/styles/checkbox.d.ts.map +0 -1
  272. package/lib/styles/checkbox.js.map +0 -1
  273. package/lib/styles/copy.d.ts.map +0 -1
  274. package/lib/styles/copy.js.map +0 -1
  275. package/lib/styles/custom-scrollbar.d.ts.map +0 -1
  276. package/lib/styles/custom-scrollbar.js.map +0 -1
  277. package/lib/styles/date-picker.d.ts.map +0 -1
  278. package/lib/styles/date-picker.js.map +0 -1
  279. package/lib/styles/file-upload.d.ts.map +0 -1
  280. package/lib/styles/file-upload.js.map +0 -1
  281. package/lib/styles/icon.d.ts.map +0 -1
  282. package/lib/styles/icon.js.map +0 -1
  283. package/lib/styles/input.d.ts.map +0 -1
  284. package/lib/styles/input.js.map +0 -1
  285. package/lib/styles/modal.d.ts.map +0 -1
  286. package/lib/styles/modal.js.map +0 -1
  287. package/lib/styles/multiselect.d.ts +0 -8
  288. package/lib/styles/multiselect.d.ts.map +0 -1
  289. package/lib/styles/multiselect.js +0 -849
  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-base.d.ts.map +0 -1
  302. package/lib/styles/select-base.js.map +0 -1
  303. package/lib/styles/select.d.ts.map +0 -1
  304. package/lib/styles/select.js.map +0 -1
  305. package/lib/styles/step.d.ts.map +0 -1
  306. package/lib/styles/step.js.map +0 -1
  307. package/lib/styles/switch.d.ts.map +0 -1
  308. package/lib/styles/switch.js.map +0 -1
  309. package/lib/styles/tab.d.ts.map +0 -1
  310. package/lib/styles/tab.js.map +0 -1
  311. package/lib/styles/tabs.d.ts.map +0 -1
  312. package/lib/styles/tabs.js.map +0 -1
  313. package/lib/styles/tag.d.ts.map +0 -1
  314. package/lib/styles/tag.js.map +0 -1
  315. package/lib/styles/textarea.d.ts.map +0 -1
  316. package/lib/styles/textarea.js.map +0 -1
  317. package/lib/styles/tooltip.d.ts.map +0 -1
  318. package/lib/styles/tooltip.js.map +0 -1
  319. package/lib/styles/wizard.d.ts.map +0 -1
  320. package/lib/styles/wizard.js.map +0 -1
  321. package/lib/types/common.d.ts.map +0 -1
  322. package/lib/types/common.js.map +0 -1
  323. package/lib/utils/calendar-utils.d.ts.map +0 -1
  324. package/lib/utils/calendar-utils.js.map +0 -1
  325. package/lib/utils/custom-scrollbar.d.ts.map +0 -1
  326. package/lib/utils/custom-scrollbar.js.map +0 -1
  327. package/lib/utils/flavor-sheet.d.ts.map +0 -1
  328. package/lib/utils/flavor-sheet.js.map +0 -1
  329. package/lib/utils/icon-registry.d.ts.map +0 -1
  330. package/lib/utils/icon-registry.js.map +0 -1
  331. package/lib/utils/icons.d.ts.map +0 -1
  332. package/lib/utils/icons.js.map +0 -1
  333. package/lib/utils/loader-registry.d.ts.map +0 -1
  334. package/lib/utils/loader-registry.js.map +0 -1
  335. package/lib/utils/locale.d.ts.map +0 -1
  336. package/lib/utils/locale.js.map +0 -1
  337. package/lib/utils/mobile.d.ts.map +0 -1
  338. package/lib/utils/mobile.js.map +0 -1
  339. package/lib/utils/number-format.d.ts.map +0 -1
  340. package/lib/utils/number-format.js.map +0 -1
  341. package/lib/utils/parse-boolean.d.ts +0 -39
  342. package/lib/utils/parse-boolean.d.ts.map +0 -1
  343. package/lib/utils/parse-boolean.js +0 -58
  344. package/lib/utils/parse-boolean.js.map +0 -1
  345. package/lib/utils/positioning.d.ts.map +0 -1
  346. package/lib/utils/positioning.js.map +0 -1
  347. package/lib/utils/property-capture.d.ts.map +0 -1
  348. package/lib/utils/property-capture.js.map +0 -1
  349. package/lib/utils/property-manager.d.ts.map +0 -1
  350. package/lib/utils/property-manager.js.map +0 -1
  351. package/lib/utils/resize-observer.d.ts.map +0 -1
  352. package/lib/utils/resize-observer.js.map +0 -1
  353. package/lib/utils/scroll-lock.d.ts.map +0 -1
  354. package/lib/utils/scroll-lock.js.map +0 -1
  355. package/lib/utils/styles.d.ts.map +0 -1
  356. package/lib/utils/styles.js.map +0 -1
  357. package/lib/version.d.ts.map +0 -1
  358. 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,360 +1,224 @@
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
- ============================================================================ */
29
-
30
2
  :host {
31
- display: block;
32
- width: var(--ty-wizard-width, 100%); /* set by width attribute — not a public token */
33
- height: var(--ty-wizard-height, 700px); /* set by height attribute — not a public token */
34
- box-sizing: border-box;
35
-
36
- /* State accents — the primary override surface. One variable retints the
37
- * matching circle background, border, and glow. */
38
- --ty-wizard-active-accent: var(--ty-color-primary);
39
- --ty-wizard-completed-accent: var(--ty-color-success);
40
- --ty-wizard-error-accent: var(--ty-color-danger);
41
- --ty-wizard-pending-accent: var(--ty-color-neutral);
42
-
43
- /* Container chrome — routes through global scales. Override --ty-radius-lg
44
- * or --ty-shadow-md app-wide and the wizard follows; override these locally
45
- * to give the wizard a distinct look. */
46
- --ty-wizard-bg: var(--ty-surface-floating);
47
- --ty-wizard-border: var(--ty-border);
48
- --ty-wizard-radius: var(--ty-radius-lg, 12px);
49
- --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
-
51
- /* Header strip */
52
- --ty-wizard-header-bg: var(--ty-surface-content);
53
- --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));
54
- --ty-wizard-header-padding: 24px 24px 16px;
55
-
56
- /* Progress line */
57
- --ty-wizard-progress-track: var(--ty-border);
58
- --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);
59
- --ty-wizard-progress-height: 2px;
60
-
61
- /* Motion — routes through global motion tokens if defined. */
62
- --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);
63
- --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);
64
-
65
- /* Circle geometry */
66
- --ty-wizard-circle-size: 32px;
67
- --ty-wizard-circle-border-width: 2px;
68
-
69
- /* Panels viewport */
70
- --ty-wizard-panels-bg: var(--ty-surface-elevated);
71
-
72
- /* Focus */
73
- --ty-wizard-focus-outline: var(--ty-wizard-active-accent);
3
+ display: block;
4
+ width: var(--ty-wizard-width, 100%);
5
+ height: var(--ty-wizard-height, 700px);
6
+ box-sizing: border-box;
7
+ --ty-wizard-active-accent: var(--ty-color-primary);
8
+ --ty-wizard-completed-accent: var(--ty-color-success);
9
+ --ty-wizard-error-accent: var(--ty-color-danger);
10
+ --ty-wizard-pending-accent: var(--ty-color-neutral);
11
+ --ty-wizard-bg: var(--ty-surface-floating);
12
+ --ty-wizard-border: var(--ty-border);
13
+ --ty-wizard-radius: var(--ty-radius-lg, 12px);
14
+ --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));
15
+ --ty-wizard-header-bg: var(--ty-surface-content);
16
+ --ty-wizard-header-border: var(--ty-border-soft, var(--ty-border));
17
+ --ty-wizard-header-padding: 24px 24px 16px;
18
+ --ty-wizard-progress-track: var(--ty-border);
19
+ --ty-wizard-progress-fill: var(--ty-wizard-completed-accent);
20
+ --ty-wizard-progress-height: 2px;
21
+ --ty-wizard-transition-duration: var(--ty-transition-duration, 300ms);
22
+ --ty-wizard-transition-easing: var(--ty-transition-easing, ease-in-out);
23
+ --ty-wizard-circle-size: 32px;
24
+ --ty-wizard-circle-border-width: 2px;
25
+ --ty-wizard-panels-bg: var(--ty-surface-elevated);
26
+ --ty-wizard-focus-outline: var(--ty-wizard-active-accent);
74
27
  }
75
-
76
28
  .wizard-container {
77
- width: 100%;
78
- height: 100%;
79
- display: flex;
80
- flex-direction: column;
81
- position: relative;
82
- box-sizing: border-box;
83
- border-radius: var(--ty-wizard-radius);
84
- border: 1px solid var(--ty-wizard-border);
85
- background: var(--ty-wizard-bg);
86
- box-shadow: var(--ty-wizard-shadow);
87
- overflow: hidden;
29
+ width: 100%;
30
+ height: 100%;
31
+ display: flex;
32
+ flex-direction: column;
33
+ position: relative;
34
+ box-sizing: border-box;
35
+ border-radius: var(--ty-wizard-radius);
36
+ border: 1px solid var(--ty-wizard-border);
37
+ background: var(--ty-wizard-bg);
38
+ box-shadow: var(--ty-wizard-shadow);
39
+ overflow: hidden;
88
40
  }
89
-
90
- /* ===================================== */
91
- /* Step Indicators Wrapper */
92
- /* ===================================== */
93
-
94
41
  .step-indicators-wrapper {
95
- display: flex;
96
- flex-direction: column;
97
- flex-shrink: 0;
98
- position: relative;
99
- padding: var(--ty-wizard-header-padding);
100
- border-bottom: 1px solid var(--ty-wizard-header-border);
101
- background: var(--ty-wizard-header-bg);
42
+ display: flex;
43
+ flex-direction: column;
44
+ flex-shrink: 0;
45
+ position: relative;
46
+ padding: var(--ty-wizard-header-padding);
47
+ border-bottom: 1px solid var(--ty-wizard-header-border);
48
+ background: var(--ty-wizard-header-bg);
102
49
  }
103
-
104
- /* ===================================== */
105
- /* Progress Line (behind step circles) */
106
- /* ===================================== */
107
-
108
50
  .progress-line {
109
- position: absolute;
110
- /*
111
- * With equal-width indicators (flex: 1), each takes 100%/N of the width.
112
- * Circle centers sit at 50%/N from the left edge of each indicator.
113
- * Inset = 50% / step-count from each side keeps the line between circle centres.
114
- */
115
- left: calc(50% / var(--ty-wizard-step-count, 4));
116
- right: calc(50% / var(--ty-wizard-step-count, 4));
117
- top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);
118
- height: var(--ty-wizard-progress-height);
119
- background: var(--ty-wizard-progress-track);
120
- z-index: 0;
121
- pointer-events: none;
122
- transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
51
+ position: absolute;
52
+ left: calc(50% / var(--ty-wizard-step-count, 4));
53
+ right: calc(50% / var(--ty-wizard-step-count, 4));
54
+ top: calc(var(--ty-wizard-circle-size, 32px) / 2 - 1px);
55
+ height: var(--ty-wizard-progress-height);
56
+ background: var(--ty-wizard-progress-track);
57
+ z-index: 0;
58
+ pointer-events: none;
59
+ transition: opacity var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
123
60
  }
124
-
125
61
  .progress-overlay {
126
- position: absolute;
127
- left: 0;
128
- top: 0;
129
- height: 100%;
130
- background: var(--ty-wizard-progress-fill);
131
- transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
132
- will-change: width;
62
+ position: absolute;
63
+ left: 0;
64
+ top: 0;
65
+ height: 100%;
66
+ background: var(--ty-wizard-progress-fill);
67
+ transition: width var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
68
+ will-change: width;
133
69
  }
134
-
135
- /* ===================================== */
136
- /* Step Indicators Container */
137
- /* ===================================== */
138
-
139
70
  .step-indicators {
140
- display: flex;
141
- align-items: flex-start;
142
- position: relative;
71
+ display: flex;
72
+ align-items: flex-start;
73
+ position: relative;
143
74
  }
144
-
145
- /* ===================================== */
146
- /* Individual Step Indicator */
147
- /* ===================================== */
148
-
149
75
  .step-indicator {
150
- display: flex;
151
- flex-direction: column;
152
- align-items: center;
153
- gap: 8px;
154
- cursor: pointer;
155
- background: transparent;
156
- border: none;
157
- padding: 0;
158
- font: inherit;
159
- transition: opacity 200ms;
160
- flex: 1;
161
- min-width: 0;
76
+ display: flex;
77
+ flex-direction: column;
78
+ align-items: center;
79
+ gap: 8px;
80
+ cursor: pointer;
81
+ background: transparent;
82
+ border: none;
83
+ padding: 0;
84
+ font: inherit;
85
+ transition: opacity 200ms;
86
+ flex: 1;
87
+ min-width: 0;
162
88
  }
163
-
164
89
  .step-indicator[aria-disabled="true"] {
165
- opacity: 0.4;
166
- cursor: not-allowed;
167
- pointer-events: none;
90
+ opacity: 0.4;
91
+ cursor: not-allowed;
92
+ pointer-events: none;
168
93
  }
169
-
170
94
  .step-indicator:focus-visible {
171
- outline: 2px solid var(--ty-wizard-focus-outline);
172
- outline-offset: 4px;
173
- border-radius: 50%;
95
+ outline: 2px solid var(--ty-wizard-focus-outline);
96
+ outline-offset: 4px;
97
+ border-radius: 50%;
174
98
  }
175
-
176
- /* ===================================== */
177
- /* Step Circle */
178
- /* ===================================== */
179
-
180
99
  .step-circle {
181
- width: var(--ty-wizard-circle-size);
182
- height: var(--ty-wizard-circle-size);
183
- border-radius: 50%;
184
- border: var(--ty-wizard-circle-border-width) solid;
185
- display: flex;
186
- align-items: center;
187
- justify-content: center;
188
- position: relative;
189
- z-index: 10;
190
- transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));
191
- box-sizing: border-box;
192
- flex-shrink: 0;
100
+ width: var(--ty-wizard-circle-size);
101
+ height: var(--ty-wizard-circle-size);
102
+ border-radius: 50%;
103
+ border: var(--ty-wizard-circle-border-width) solid;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ position: relative;
108
+ z-index: 10;
109
+ transition: var(--ty-local-transition, all var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing));
110
+ box-sizing: border-box;
111
+ flex-shrink: 0;
193
112
  }
194
-
195
113
  .step-circle[data-state="completed"] {
196
- background: var(--ty-wizard-completed-accent);
197
- border-color: var(--ty-color-success-strong);
198
- /* Derived from the accent this circle actually paints, not from
199
- --ty-solid-success-fg: the two diverge in dark mode (--ty-solid-l
200
- dims solid fills by 0.25 L), which stranded white text at 3.5:1. */
201
- color: oklch(
202
- from var(--ty-wizard-completed-accent)
203
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
204
- );
205
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);
114
+ background: var(--ty-wizard-completed-accent);
115
+ border-color: var(--ty-color-success-strong);
116
+ color: oklch(
117
+ from var(--ty-wizard-completed-accent)
118
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
119
+ );
120
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-completed-accent) 12%, transparent);
206
121
  }
207
-
208
122
  .step-circle[data-state="active"] {
209
- background: var(--ty-wizard-active-accent);
210
- border-color: var(--ty-color-primary-strong);
211
- color: oklch(
212
- from var(--ty-wizard-active-accent)
213
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
214
- );
215
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);
123
+ background: var(--ty-wizard-active-accent);
124
+ border-color: var(--ty-color-primary-strong);
125
+ color: oklch(
126
+ from var(--ty-wizard-active-accent)
127
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
128
+ );
129
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-active-accent) 12%, transparent);
216
130
  }
217
-
218
131
  .step-circle[data-state="pending"] {
219
- background: var(--ty-surface-elevated);
220
- border-color: var(--ty-border);
221
- color: var(--ty-color-neutral);
132
+ background: var(--ty-surface-elevated);
133
+ border-color: var(--ty-border);
134
+ color: var(--ty-color-neutral);
222
135
  }
223
-
224
136
  .step-circle[data-state="error"] {
225
- background: var(--ty-wizard-error-accent);
226
- border-color: var(--ty-color-danger-strong);
227
- color: oklch(
228
- from var(--ty-wizard-error-accent)
229
- clamp(0, (var(--ty-solid-fg-threshold, 0.6) - l) * 1000, 1) 0 0
230
- );
231
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);
137
+ background: var(--ty-wizard-error-accent);
138
+ border-color: var(--ty-color-danger-strong);
139
+ color: oklch(
140
+ from var(--ty-wizard-error-accent)
141
+ clamp(0, (var(--ty-solid-fg-threshold, 0.57) - l) * 1000, 1) 0 0
142
+ );
143
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--ty-wizard-error-accent) 12%, transparent);
232
144
  }
233
-
234
- /* ===================================== */
235
- /* Step Text Container */
236
- /* ===================================== */
237
-
238
145
  .step-text {
239
- display: flex;
240
- flex-direction: column;
241
- gap: 2px;
242
- align-items: center;
146
+ display: flex;
147
+ flex-direction: column;
148
+ gap: 2px;
149
+ align-items: center;
243
150
  }
244
-
245
- /* ===================================== */
246
- /* Step Label */
247
- /* ===================================== */
248
-
249
151
  .step-label {
250
- font-size: var(--ty-font-sm, 14px);
251
- font-weight: var(--ty-font-semibold, 600);
252
- color: var(--ty-color-neutral);
253
- transition: var(--ty-local-transition, color 200ms);
152
+ font-size: var(--ty-font-sm, 14px);
153
+ font-weight: var(--ty-font-semibold, 600);
154
+ color: var(--ty-color-neutral);
155
+ transition: var(--ty-local-transition, color 200ms);
254
156
  }
255
-
256
157
  .step-indicator[aria-selected="true"] .step-label {
257
- color: var(--ty-color-neutral-strong);
158
+ color: var(--ty-color-neutral-strong);
258
159
  }
259
-
260
160
  .step-indicator[aria-selected="false"] .step-label {
261
- color: var(--ty-color-neutral);
161
+ color: var(--ty-color-neutral);
262
162
  }
263
-
264
- /* ===================================== */
265
- /* Step Description */
266
- /* ===================================== */
267
-
268
163
  .step-description {
269
- font-size: var(--ty-font-xs, 12px);
270
- font-weight: var(--ty-font-normal, 400);
271
- color: var(--ty-color-neutral);
272
- transition: var(--ty-local-transition, color 200ms);
273
- text-align: center;
274
- max-width: 120px;
164
+ font-size: var(--ty-font-xs, 12px);
165
+ font-weight: var(--ty-font-normal, 400);
166
+ color: var(--ty-color-neutral);
167
+ transition: var(--ty-local-transition, color 200ms);
168
+ text-align: center;
169
+ max-width: 120px;
275
170
  }
276
-
277
171
  .step-indicator[aria-selected="true"] .step-description {
278
- color: var(--ty-color-neutral-bold);
172
+ color: var(--ty-color-neutral-bold);
279
173
  }
280
-
281
- /* ===================================== */
282
- /* Custom Indicator Content via Slots */
283
- /* ===================================== */
284
-
285
174
  ::slotted([slot^="indicator-"]) {
286
- display: flex;
287
- align-items: center;
288
- justify-content: center;
289
- width: 100%;
290
- height: 100%;
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: center;
178
+ width: 100%;
179
+ height: 100%;
291
180
  }
292
-
293
- /* ===================================== */
294
- /* Panels Viewport */
295
- /* ===================================== */
296
-
297
181
  .panels-viewport {
298
- position: relative;
299
- flex: 1;
300
- overflow: hidden;
301
- min-height: 0;
302
- background: var(--ty-wizard-panels-bg);
182
+ position: relative;
183
+ flex: 1;
184
+ overflow: hidden;
185
+ min-height: 0;
186
+ background: var(--ty-wizard-panels-bg);
303
187
  }
304
-
305
- /* ===================================== */
306
- /* Panels Wrapper (slides horizontally) */
307
- /* ===================================== */
308
-
309
188
  .panels-wrapper {
310
- display: flex;
311
- height: 100%;
312
- transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
313
- will-change: transform;
189
+ display: flex;
190
+ height: 100%;
191
+ transition: transform var(--ty-wizard-transition-duration) var(--ty-wizard-transition-easing);
192
+ will-change: transform;
314
193
  }
315
-
316
- /* ===================================== */
317
- /* Slotted Step Panels */
318
- /* ===================================== */
319
-
320
194
  ::slotted(ty-step) {
321
- width: var(--ty-wizard-width, 100%);
322
- height: 100%;
323
- flex-shrink: 0;
195
+ width: var(--ty-wizard-width, 100%);
196
+ height: 100%;
197
+ flex-shrink: 0;
324
198
  }
325
-
326
- /* ===================================== */
327
- /* Accessibility & Motion Preferences */
328
- /* ===================================== */
329
-
330
199
  @media (prefers-reduced-motion: reduce) {
331
- .panels-wrapper {
332
- transition-duration: 0ms !important;
333
- }
334
-
335
- .progress-overlay {
336
- transition-duration: 0ms !important;
337
- }
338
-
339
- .step-circle {
340
- transition-duration: 0ms !important;
341
- }
342
-
343
- .progress-line {
344
- transition-duration: 0ms !important;
345
- }
200
+ .panels-wrapper {
201
+ transition-duration: 0ms !important;
202
+ }
203
+ .progress-overlay {
204
+ transition-duration: 0ms !important;
205
+ }
206
+ .step-circle {
207
+ transition-duration: 0ms !important;
208
+ }
209
+ .progress-line {
210
+ transition-duration: 0ms !important;
211
+ }
346
212
  }
347
-
348
213
  .sr-only {
349
- position: absolute;
350
- width: 1px;
351
- height: 1px;
352
- padding: 0;
353
- margin: -1px;
354
- overflow: hidden;
355
- clip: rect(0, 0, 0, 0);
356
- white-space: nowrap;
357
- border-width: 0;
214
+ position: absolute;
215
+ width: 1px;
216
+ height: 1px;
217
+ padding: 0;
218
+ margin: -1px;
219
+ overflow: hidden;
220
+ clip: rect(0, 0, 0, 0);
221
+ white-space: nowrap;
222
+ border-width: 0;
358
223
  }
359
224
  `;
360
- //# sourceMappingURL=wizard.js.map
@@ -24,6 +24,8 @@ export type FlavorShaded<F extends string = FlavorBase> = F | `${F}+` | `${F}-`;
24
24
  export type Flavor = FlavorShaded | (string & {});
25
25
  /** Component size variants */
26
26
  export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
27
+ /** Default `size` for every field component — change here, not per component. */
28
+ export declare const DEFAULT_SIZE: Size;
27
29
  /** Input types supported by ty-input */
28
30
  export type InputType = 'text' | 'password' | 'email' | 'url' | 'tel' | 'date' | 'time' | 'datetime-local' | 'number' | 'currency' | 'percent' | 'compact' | 'checkbox';
29
31
  /** Base properties shared by all Ty components */
@@ -50,7 +52,6 @@ export interface TyButtonElement extends TyBaseElement {
50
52
  /** Button type for forms */
51
53
  type?: 'button' | 'submit' | 'reset';
52
54
  }
53
- /** CSS style content */
54
55
  /** Icon size variants */
55
56
  export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '12' | '14' | '16' | '18' | '20' | '24' | '32' | '48' | '64' | '80' | '96';
56
57
  /** Icon animation tempo */
@@ -141,4 +142,3 @@ export interface StyleContent {
141
142
  /** Optional style ID for caching */
142
143
  id?: string;
143
144
  }
144
- //# sourceMappingURL=common.d.ts.map
@@ -1,19 +1,8 @@
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
- 'primary',
14
- 'success',
15
- 'danger',
16
- 'warning',
17
- 'neutral',
2
+ 'primary',
3
+ 'success',
4
+ 'danger',
5
+ 'warning',
6
+ 'neutral',
18
7
  ];
19
- //# sourceMappingURL=common.js.map
8
+ export const DEFAULT_SIZE = 'sm';