@spectral_labs/ui 1.2.0 → 1.3.0

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 (467) hide show
  1. package/dist/components/accordion/__tests__/AccordionTest.svelte +4 -4
  2. package/dist/components/accordion/components/accordion-content.svelte +3 -3
  3. package/dist/components/accordion/components/accordion-item.svelte +1 -1
  4. package/dist/components/accordion/components/accordion-root.svelte +5 -7
  5. package/dist/components/accordion/components/accordion-root.svelte.d.ts.map +1 -1
  6. package/dist/components/accordion/components/accordion-trigger.svelte +12 -12
  7. package/dist/components/alert-dialog/__tests__/AlertDialogTest.svelte +6 -3
  8. package/dist/components/alert-dialog/__tests__/alert-dialog.a11y.test.js +9 -2
  9. package/dist/components/alert-dialog/components/alert-dialog-action.svelte +2 -2
  10. package/dist/components/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
  11. package/dist/components/alert-dialog/components/alert-dialog-content.svelte +15 -11
  12. package/dist/components/alert-dialog/components/alert-dialog-content.svelte.d.ts.map +1 -1
  13. package/dist/components/alert-dialog/components/alert-dialog-description.svelte +1 -1
  14. package/dist/components/alert-dialog/components/alert-dialog-overlay.svelte +8 -6
  15. package/dist/components/alert-dialog/components/alert-dialog-overlay.svelte.d.ts.map +1 -1
  16. package/dist/components/alert-dialog/components/alert-dialog-root.svelte +7 -2
  17. package/dist/components/alert-dialog/components/alert-dialog-root.svelte.d.ts.map +1 -1
  18. package/dist/components/alert-dialog/components/alert-dialog-title.svelte +6 -2
  19. package/dist/components/alert-dialog/components/alert-dialog-trigger.svelte +3 -3
  20. package/dist/components/app-bar/app-bar.svelte +12 -12
  21. package/dist/components/aspect-ratio/aspect-ratio.svelte +2 -2
  22. package/dist/components/avatar/avatar.svelte +6 -6
  23. package/dist/components/badge/badge.svelte +49 -13
  24. package/dist/components/badge/types.d.ts.map +1 -1
  25. package/dist/components/bottom-sheet/__tests__/BottomSheetTest.svelte +16 -6
  26. package/dist/components/bottom-sheet/components/bottom-sheet-root.svelte +20 -20
  27. package/dist/components/breadcrumb/breadcrumb-item.svelte +2 -2
  28. package/dist/components/breadcrumb/breadcrumb-link.svelte +6 -2
  29. package/dist/components/breadcrumb/breadcrumb-link.svelte.d.ts.map +1 -1
  30. package/dist/components/breadcrumb/breadcrumb-list.svelte +2 -2
  31. package/dist/components/breadcrumb/breadcrumb-page.svelte +3 -3
  32. package/dist/components/breadcrumb/breadcrumb-separator.svelte +12 -4
  33. package/dist/components/breadcrumb/breadcrumb.svelte +2 -2
  34. package/dist/components/button/button.svelte +1 -1
  35. package/dist/components/button/types.d.ts.map +1 -1
  36. package/dist/components/calendar/__tests__/CalendarTest.svelte +1 -1
  37. package/dist/components/calendar/calendar.svelte.d.ts.map +1 -1
  38. package/dist/components/calendar/calendar.svelte.js +89 -33
  39. package/dist/components/calendar/components/calendar-grid.svelte +16 -15
  40. package/dist/components/calendar/components/calendar-grid.svelte.d.ts.map +1 -1
  41. package/dist/components/calendar/components/calendar-header.svelte +1 -1
  42. package/dist/components/calendar/components/calendar-heading.svelte +2 -2
  43. package/dist/components/calendar/components/calendar-next-button.svelte +14 -6
  44. package/dist/components/calendar/components/calendar-prev-button.svelte +14 -6
  45. package/dist/components/calendar/components/calendar-root.svelte +50 -22
  46. package/dist/components/calendar/components/calendar-root.svelte.d.ts.map +1 -1
  47. package/dist/components/card/card.svelte +1 -1
  48. package/dist/components/checkbox/checkbox.svelte +23 -27
  49. package/dist/components/checkbox/checkbox.svelte.d.ts.map +1 -1
  50. package/dist/components/chips/chip-group.svelte +8 -13
  51. package/dist/components/chips/chip-group.svelte.d.ts.map +1 -1
  52. package/dist/components/chips/chips.svelte +32 -39
  53. package/dist/components/chips/chips.svelte.d.ts.map +1 -1
  54. package/dist/components/chips/types.d.ts +5 -5
  55. package/dist/components/chips/types.d.ts.map +1 -1
  56. package/dist/components/collapsible/__tests__/CollapsibleTest.svelte +1 -1
  57. package/dist/components/collapsible/components/collapsible-content.svelte +8 -6
  58. package/dist/components/collapsible/components/collapsible-content.svelte.d.ts.map +1 -1
  59. package/dist/components/collapsible/components/collapsible-root.svelte +2 -3
  60. package/dist/components/collapsible/components/collapsible-root.svelte.d.ts.map +1 -1
  61. package/dist/components/collapsible/components/collapsible-trigger.svelte +2 -2
  62. package/dist/components/combobox/__tests__/ComboboxTest.svelte +5 -5
  63. package/dist/components/combobox/components/combobox-content.svelte +4 -6
  64. package/dist/components/combobox/components/combobox-content.svelte.d.ts.map +1 -1
  65. package/dist/components/combobox/components/combobox-input.svelte +10 -15
  66. package/dist/components/combobox/components/combobox-input.svelte.d.ts.map +1 -1
  67. package/dist/components/combobox/components/combobox-item.svelte +5 -8
  68. package/dist/components/combobox/components/combobox-item.svelte.d.ts.map +1 -1
  69. package/dist/components/combobox/components/combobox-root.svelte +13 -18
  70. package/dist/components/combobox/components/combobox-root.svelte.d.ts.map +1 -1
  71. package/dist/components/combobox/index.d.ts +1 -1
  72. package/dist/components/combobox/index.d.ts.map +1 -1
  73. package/dist/components/command/__tests__/CommandTest.svelte +19 -10
  74. package/dist/components/command/__tests__/command.a11y.test.js +1 -1
  75. package/dist/components/command/command.svelte.d.ts.map +1 -1
  76. package/dist/components/command/command.svelte.js +20 -10
  77. package/dist/components/command/components/command-empty.svelte +2 -2
  78. package/dist/components/command/components/command-group.svelte +6 -4
  79. package/dist/components/command/components/command-group.svelte.d.ts.map +1 -1
  80. package/dist/components/command/components/command-input.svelte +27 -14
  81. package/dist/components/command/components/command-input.svelte.d.ts.map +1 -1
  82. package/dist/components/command/components/command-item.svelte +12 -7
  83. package/dist/components/command/components/command-item.svelte.d.ts.map +1 -1
  84. package/dist/components/command/components/command-list.svelte +2 -7
  85. package/dist/components/command/components/command-root.svelte +18 -10
  86. package/dist/components/command/components/command-root.svelte.d.ts.map +1 -1
  87. package/dist/components/command/components/command-separator.svelte +2 -2
  88. package/dist/components/context-menu/__tests__/ContextMenuNonInteractiveTest.svelte +2 -4
  89. package/dist/components/context-menu/__tests__/ContextMenuTest.svelte +1 -1
  90. package/dist/components/context-menu/__tests__/context-menu.test.svelte.js +4 -1
  91. package/dist/components/context-menu/components/context-menu-content.svelte +7 -10
  92. package/dist/components/context-menu/components/context-menu-content.svelte.d.ts.map +1 -1
  93. package/dist/components/context-menu/components/context-menu-root.svelte +7 -2
  94. package/dist/components/context-menu/components/context-menu-root.svelte.d.ts.map +1 -1
  95. package/dist/components/context-menu/components/context-menu-trigger.svelte +13 -13
  96. package/dist/components/context-menu/index.d.ts +1 -1
  97. package/dist/components/context-menu/index.d.ts.map +1 -1
  98. package/dist/components/context-menu/types.d.ts +1 -1
  99. package/dist/components/context-menu/types.d.ts.map +1 -1
  100. package/dist/components/date-field/__tests__/DateFieldTest.svelte +1 -1
  101. package/dist/components/date-field/__tests__/date-field.test.svelte.js +5 -5
  102. package/dist/components/date-field/components/date-field-root.svelte +55 -55
  103. package/dist/components/date-field/types.d.ts +14 -14
  104. package/dist/components/date-field/types.d.ts.map +1 -1
  105. package/dist/components/date-picker/__tests__/DatePickerTest.svelte +2 -8
  106. package/dist/components/date-picker/__tests__/date-picker.test.svelte.js +10 -9
  107. package/dist/components/date-picker/components/date-picker-root.svelte +38 -31
  108. package/dist/components/date-picker/components/date-picker-root.svelte.d.ts.map +1 -1
  109. package/dist/components/date-range-field/__tests__/DateRangeFieldTest.svelte +1 -1
  110. package/dist/components/date-range-field/__tests__/date-range-field.test.svelte.js +3 -3
  111. package/dist/components/date-range-field/components/date-range-field-root.svelte +5 -5
  112. package/dist/components/date-range-picker/__tests__/DateRangePickerTest.svelte +2 -7
  113. package/dist/components/date-range-picker/__tests__/date-range-picker.test.svelte.js +11 -11
  114. package/dist/components/date-range-picker/components/date-range-picker-root.svelte +40 -32
  115. package/dist/components/date-range-picker/components/date-range-picker-root.svelte.d.ts.map +1 -1
  116. package/dist/components/dialog/__tests__/DialogTest.svelte +11 -4
  117. package/dist/components/dialog/__tests__/dialog.test.svelte.js +11 -0
  118. package/dist/components/dialog/components/dialog-close.svelte +2 -2
  119. package/dist/components/dialog/components/dialog-content.svelte +73 -13
  120. package/dist/components/dialog/components/dialog-content.svelte.d.ts.map +1 -1
  121. package/dist/components/dialog/components/dialog-description.svelte +1 -1
  122. package/dist/components/dialog/components/dialog-overlay.svelte +8 -6
  123. package/dist/components/dialog/components/dialog-overlay.svelte.d.ts.map +1 -1
  124. package/dist/components/dialog/components/dialog-root.svelte +4 -2
  125. package/dist/components/dialog/components/dialog-root.svelte.d.ts.map +1 -1
  126. package/dist/components/dialog/components/dialog-title.svelte +6 -2
  127. package/dist/components/dialog/components/dialog-trigger.svelte +3 -3
  128. package/dist/components/dialog/index.d.ts +1 -1
  129. package/dist/components/dialog/index.d.ts.map +1 -1
  130. package/dist/components/dialog/types.d.ts +12 -0
  131. package/dist/components/dialog/types.d.ts.map +1 -1
  132. package/dist/components/drop-zone/drop-zone.svelte +12 -18
  133. package/dist/components/drop-zone/drop-zone.svelte.d.ts.map +1 -1
  134. package/dist/components/dropdown-menu/__tests__/DropdownMenuTest.svelte +1 -1
  135. package/dist/components/dropdown-menu/components/dropdown-menu-checkbox-item.svelte +19 -8
  136. package/dist/components/dropdown-menu/components/dropdown-menu-checkbox-item.svelte.d.ts.map +1 -1
  137. package/dist/components/dropdown-menu/components/dropdown-menu-content.svelte +8 -12
  138. package/dist/components/dropdown-menu/components/dropdown-menu-content.svelte.d.ts.map +1 -1
  139. package/dist/components/dropdown-menu/components/dropdown-menu-item.svelte +4 -6
  140. package/dist/components/dropdown-menu/components/dropdown-menu-item.svelte.d.ts.map +1 -1
  141. package/dist/components/dropdown-menu/components/dropdown-menu-label.svelte +1 -1
  142. package/dist/components/dropdown-menu/components/dropdown-menu-root.svelte +7 -2
  143. package/dist/components/dropdown-menu/components/dropdown-menu-root.svelte.d.ts.map +1 -1
  144. package/dist/components/dropdown-menu/components/dropdown-menu-separator.svelte +2 -2
  145. package/dist/components/dropdown-menu/components/dropdown-menu-sub-content.svelte +5 -8
  146. package/dist/components/dropdown-menu/components/dropdown-menu-sub-content.svelte.d.ts.map +1 -1
  147. package/dist/components/dropdown-menu/components/dropdown-menu-sub-trigger.svelte +19 -14
  148. package/dist/components/dropdown-menu/components/dropdown-menu-sub-trigger.svelte.d.ts.map +1 -1
  149. package/dist/components/dropdown-menu/components/dropdown-menu-sub.svelte +19 -7
  150. package/dist/components/dropdown-menu/components/dropdown-menu-sub.svelte.d.ts.map +1 -1
  151. package/dist/components/dropdown-menu/components/dropdown-menu-trigger.svelte +5 -7
  152. package/dist/components/dropdown-menu/components/dropdown-menu-trigger.svelte.d.ts.map +1 -1
  153. package/dist/components/empty-state/empty-state.svelte +6 -6
  154. package/dist/components/fab/fab.svelte +2 -2
  155. package/dist/components/field/__tests__/FieldTest.svelte +2 -2
  156. package/dist/components/field/field-description.svelte +1 -1
  157. package/dist/components/field/field-error.svelte +2 -2
  158. package/dist/components/field/field-group.svelte +1 -1
  159. package/dist/components/field/field-label.svelte +2 -2
  160. package/dist/components/field/field-separator.svelte +4 -4
  161. package/dist/components/field/field.svelte +1 -1
  162. package/dist/components/grid-list/__tests__/GridListTest.svelte +2 -2
  163. package/dist/components/grid-list/components/grid-list-item.svelte +11 -17
  164. package/dist/components/grid-list/components/grid-list-item.svelte.d.ts.map +1 -1
  165. package/dist/components/grid-list/components/grid-list-root.svelte +32 -35
  166. package/dist/components/grid-list/components/grid-list-root.svelte.d.ts.map +1 -1
  167. package/dist/components/grid-list/grid-list.svelte.d.ts.map +1 -1
  168. package/dist/components/grid-list/grid-list.svelte.js +25 -15
  169. package/dist/components/grid-list/index.d.ts +1 -1
  170. package/dist/components/grid-list/index.d.ts.map +1 -1
  171. package/dist/components/grid-list/types.d.ts +21 -21
  172. package/dist/components/grid-list/types.d.ts.map +1 -1
  173. package/dist/components/hover-card/__tests__/HoverCardTest.svelte +3 -3
  174. package/dist/components/hover-card/components/hover-card-content.svelte +26 -12
  175. package/dist/components/hover-card/components/hover-card-content.svelte.d.ts.map +1 -1
  176. package/dist/components/hover-card/components/hover-card-root.svelte +10 -4
  177. package/dist/components/hover-card/components/hover-card-root.svelte.d.ts.map +1 -1
  178. package/dist/components/hover-card/components/hover-card-trigger.svelte +3 -4
  179. package/dist/components/hover-card/components/hover-card-trigger.svelte.d.ts.map +1 -1
  180. package/dist/components/indicator/indicator.svelte +5 -5
  181. package/dist/components/input/__tests__/input.test.svelte.js +29 -0
  182. package/dist/components/input/input.svelte +22 -5
  183. package/dist/components/label/label.svelte +2 -3
  184. package/dist/components/label/label.svelte.d.ts.map +1 -1
  185. package/dist/components/language-select/__tests__/languages.test.js +8 -8
  186. package/dist/components/language-select/language-select.svelte +23 -35
  187. package/dist/components/language-select/language-select.svelte.d.ts.map +1 -1
  188. package/dist/components/link-preview/__tests__/LinkPreviewTest.svelte +2 -2
  189. package/dist/components/link-preview/__tests__/link-preview.a11y.test.js +5 -1
  190. package/dist/components/link-preview/__tests__/link-preview.test.svelte.js +4 -1
  191. package/dist/components/link-preview/components/link-preview-content.svelte +16 -7
  192. package/dist/components/link-preview/components/link-preview-content.svelte.d.ts.map +1 -1
  193. package/dist/components/link-preview/components/link-preview-root.svelte +7 -2
  194. package/dist/components/link-preview/components/link-preview-root.svelte.d.ts.map +1 -1
  195. package/dist/components/link-preview/components/link-preview-trigger.svelte +15 -13
  196. package/dist/components/link-preview/components/link-preview-trigger.svelte.d.ts.map +1 -1
  197. package/dist/components/link-preview/index.d.ts +1 -1
  198. package/dist/components/link-preview/index.d.ts.map +1 -1
  199. package/dist/components/list/components/list-item.svelte +4 -4
  200. package/dist/components/list/components/list-root.svelte +2 -2
  201. package/dist/components/menubar/__tests__/MenubarTest.svelte +5 -5
  202. package/dist/components/menubar/__tests__/menubar.a11y.test.js +5 -1
  203. package/dist/components/menubar/components/menubar-content.svelte +36 -27
  204. package/dist/components/menubar/components/menubar-content.svelte.d.ts.map +1 -1
  205. package/dist/components/menubar/components/menubar-menu.svelte +7 -3
  206. package/dist/components/menubar/components/menubar-menu.svelte.d.ts.map +1 -1
  207. package/dist/components/menubar/components/menubar-root.svelte +12 -22
  208. package/dist/components/menubar/components/menubar-root.svelte.d.ts.map +1 -1
  209. package/dist/components/menubar/components/menubar-trigger.svelte +6 -8
  210. package/dist/components/menubar/components/menubar-trigger.svelte.d.ts.map +1 -1
  211. package/dist/components/meter/meter.svelte +6 -9
  212. package/dist/components/meter/meter.svelte.d.ts.map +1 -1
  213. package/dist/components/nav-bar/components/nav-bar-item.svelte +9 -12
  214. package/dist/components/nav-bar/components/nav-bar-item.svelte.d.ts.map +1 -1
  215. package/dist/components/nav-bar/components/nav-bar-root.svelte +3 -3
  216. package/dist/components/nav-drawer/components/nav-drawer-item.svelte +8 -11
  217. package/dist/components/nav-drawer/components/nav-drawer-item.svelte.d.ts.map +1 -1
  218. package/dist/components/nav-drawer/components/nav-drawer-root.svelte +11 -11
  219. package/dist/components/nav-drawer/components/nav-drawer-root.svelte.d.ts.map +1 -1
  220. package/dist/components/nav-rail/components/nav-rail-item.svelte +10 -12
  221. package/dist/components/nav-rail/components/nav-rail-item.svelte.d.ts.map +1 -1
  222. package/dist/components/nav-rail/components/nav-rail-root.svelte +4 -4
  223. package/dist/components/pagination/pagination.svelte +28 -33
  224. package/dist/components/pagination/pagination.svelte.d.ts.map +1 -1
  225. package/dist/components/pin-input/pin-input.svelte +21 -20
  226. package/dist/components/pin-input/pin-input.svelte.d.ts.map +1 -1
  227. package/dist/components/popover/__tests__/PopoverTest.svelte +2 -2
  228. package/dist/components/popover/components/popover-close.svelte +2 -2
  229. package/dist/components/popover/components/popover-content.svelte +48 -25
  230. package/dist/components/popover/components/popover-content.svelte.d.ts.map +1 -1
  231. package/dist/components/popover/components/popover-root.svelte +1 -1
  232. package/dist/components/popover/components/popover-trigger.svelte +4 -5
  233. package/dist/components/popover/components/popover-trigger.svelte.d.ts.map +1 -1
  234. package/dist/components/progress/progress.svelte +3 -3
  235. package/dist/components/radio-group/components/radio-group-item.svelte +8 -9
  236. package/dist/components/radio-group/components/radio-group-item.svelte.d.ts.map +1 -1
  237. package/dist/components/radio-group/components/radio-group-root.svelte +6 -5
  238. package/dist/components/radio-group/components/radio-group-root.svelte.d.ts.map +1 -1
  239. package/dist/components/range-calendar/__tests__/RangeCalendarTest.svelte +1 -1
  240. package/dist/components/range-calendar/__tests__/range-calendar.test.svelte.js +4 -1
  241. package/dist/components/range-calendar/components/range-calendar-grid.svelte +16 -17
  242. package/dist/components/range-calendar/components/range-calendar-grid.svelte.d.ts.map +1 -1
  243. package/dist/components/range-calendar/components/range-calendar-header.svelte +29 -13
  244. package/dist/components/range-calendar/components/range-calendar-root.svelte +42 -17
  245. package/dist/components/range-calendar/components/range-calendar-root.svelte.d.ts.map +1 -1
  246. package/dist/components/range-calendar/range-calendar.svelte.d.ts.map +1 -1
  247. package/dist/components/range-calendar/range-calendar.svelte.js +54 -24
  248. package/dist/components/rating-group/rating-group.svelte +17 -23
  249. package/dist/components/rating-group/rating-group.svelte.d.ts.map +1 -1
  250. package/dist/components/scroll-area/scroll-area.svelte +22 -28
  251. package/dist/components/scroll-area/scroll-area.svelte.d.ts.map +1 -1
  252. package/dist/components/search-field/__tests__/SearchFieldTest.svelte +3 -3
  253. package/dist/components/search-field/__tests__/search-field.test.svelte.js +28 -0
  254. package/dist/components/search-field/search-field.svelte +44 -18
  255. package/dist/components/search-field/types.d.ts +7 -7
  256. package/dist/components/search-field/types.d.ts.map +1 -1
  257. package/dist/components/select/__tests__/SelectLabelPersistenceTest.svelte +6 -8
  258. package/dist/components/select/__tests__/SelectTest.svelte +1 -1
  259. package/dist/components/select/components/select-content.svelte +13 -16
  260. package/dist/components/select/components/select-content.svelte.d.ts.map +1 -1
  261. package/dist/components/select/components/select-item.svelte +14 -16
  262. package/dist/components/select/components/select-item.svelte.d.ts.map +1 -1
  263. package/dist/components/select/components/select-root.svelte +9 -12
  264. package/dist/components/select/components/select-root.svelte.d.ts.map +1 -1
  265. package/dist/components/select/components/select-trigger.svelte +20 -12
  266. package/dist/components/select/components/select-trigger.svelte.d.ts.map +1 -1
  267. package/dist/components/separator/separator.svelte +1 -1
  268. package/dist/components/sheet/__tests__/SheetTest.svelte +2 -2
  269. package/dist/components/sheet/components/sheet-close.svelte +2 -2
  270. package/dist/components/sheet/components/sheet-content.svelte +12 -11
  271. package/dist/components/sheet/components/sheet-content.svelte.d.ts.map +1 -1
  272. package/dist/components/sheet/components/sheet-description.svelte +1 -1
  273. package/dist/components/sheet/components/sheet-overlay.svelte +8 -6
  274. package/dist/components/sheet/components/sheet-overlay.svelte.d.ts.map +1 -1
  275. package/dist/components/sheet/components/sheet-root.svelte +4 -2
  276. package/dist/components/sheet/components/sheet-root.svelte.d.ts.map +1 -1
  277. package/dist/components/sheet/components/sheet-title.svelte +7 -6
  278. package/dist/components/sheet/components/sheet-trigger.svelte +3 -3
  279. package/dist/components/side-sheet/__tests__/side-sheet.test.svelte.js +3 -1
  280. package/dist/components/side-sheet/side-sheet.svelte +5 -5
  281. package/dist/components/sidebar/__tests__/SidebarFullTest.svelte +7 -7
  282. package/dist/components/sidebar/__tests__/SidebarTest.svelte +2 -2
  283. package/dist/components/sidebar/__tests__/sidebar.test.svelte.js +9 -5
  284. package/dist/components/sidebar/components/sidebar-content.svelte +1 -1
  285. package/dist/components/sidebar/components/sidebar-footer.svelte +1 -1
  286. package/dist/components/sidebar/components/sidebar-group-content.svelte +1 -1
  287. package/dist/components/sidebar/components/sidebar-group-label.svelte +1 -1
  288. package/dist/components/sidebar/components/sidebar-group.svelte +1 -1
  289. package/dist/components/sidebar/components/sidebar-header.svelte +1 -1
  290. package/dist/components/sidebar/components/sidebar-inset.svelte +1 -1
  291. package/dist/components/sidebar/components/sidebar-menu-action.svelte +11 -4
  292. package/dist/components/sidebar/components/sidebar-menu-action.svelte.d.ts.map +1 -1
  293. package/dist/components/sidebar/components/sidebar-menu-button.svelte +8 -4
  294. package/dist/components/sidebar/components/sidebar-menu-item.svelte +1 -1
  295. package/dist/components/sidebar/components/sidebar-menu-sub-button.svelte +5 -3
  296. package/dist/components/sidebar/components/sidebar-menu-sub-item.svelte +1 -1
  297. package/dist/components/sidebar/components/sidebar-menu-sub.svelte +1 -1
  298. package/dist/components/sidebar/components/sidebar-menu.svelte +1 -1
  299. package/dist/components/sidebar/components/sidebar-provider.svelte +5 -3
  300. package/dist/components/sidebar/components/sidebar-provider.svelte.d.ts.map +1 -1
  301. package/dist/components/sidebar/components/sidebar-root.svelte +6 -4
  302. package/dist/components/sidebar/components/sidebar-separator.svelte +1 -1
  303. package/dist/components/sidebar/components/sidebar-trigger.svelte +13 -5
  304. package/dist/components/sidebar/sidebar.svelte.d.ts.map +1 -1
  305. package/dist/components/sidebar/sidebar.svelte.js +9 -3
  306. package/dist/components/simple-dialog/__tests__/SimpleDialogTest.svelte +16 -5
  307. package/dist/components/simple-dialog/__tests__/simple-dialog.test.svelte.js +5 -0
  308. package/dist/components/simple-dialog/simple-dialog.svelte +9 -8
  309. package/dist/components/simple-dialog/simple-dialog.svelte.d.ts.map +1 -1
  310. package/dist/components/simple-dialog/types.d.ts +3 -0
  311. package/dist/components/simple-dialog/types.d.ts.map +1 -1
  312. package/dist/components/simple-tooltip/__tests__/SimpleTooltipTest.svelte +2 -2
  313. package/dist/components/simple-tooltip/__tests__/simple-tooltip.test.svelte.js +1 -0
  314. package/dist/components/simple-tooltip/simple-tooltip.svelte +1 -1
  315. package/dist/components/slider/slider.svelte +11 -15
  316. package/dist/components/slider/slider.svelte.d.ts.map +1 -1
  317. package/dist/components/slider/types.d.ts +10 -10
  318. package/dist/components/slider/types.d.ts.map +1 -1
  319. package/dist/components/sortable-list/__tests__/SortableListTest.svelte +9 -2
  320. package/dist/components/sortable-list/__tests__/sortable-list.test.svelte.js +13 -7
  321. package/dist/components/sortable-list/components/sortable-list-handle.svelte +20 -25
  322. package/dist/components/sortable-list/components/sortable-list-handle.svelte.d.ts.map +1 -1
  323. package/dist/components/sortable-list/components/sortable-list-indicator.svelte +11 -16
  324. package/dist/components/sortable-list/components/sortable-list-indicator.svelte.d.ts.map +1 -1
  325. package/dist/components/sortable-list/components/sortable-list-item.svelte +5 -9
  326. package/dist/components/sortable-list/components/sortable-list-item.svelte.d.ts.map +1 -1
  327. package/dist/components/sortable-list/components/sortable-list-root.svelte +3 -3
  328. package/dist/components/sortable-list/sortable-list.svelte.d.ts.map +1 -1
  329. package/dist/components/sortable-list/sortable-list.svelte.js +8 -10
  330. package/dist/components/sortable-list/types.d.ts +15 -15
  331. package/dist/components/sortable-list/types.d.ts.map +1 -1
  332. package/dist/components/splitter/splitter.svelte +21 -30
  333. package/dist/components/splitter/splitter.svelte.d.ts.map +1 -1
  334. package/dist/components/switch/switch.svelte +11 -11
  335. package/dist/components/switch/switch.svelte.d.ts.map +1 -1
  336. package/dist/components/table/components/table-body.svelte +1 -1
  337. package/dist/components/table/components/table-cell.svelte +23 -35
  338. package/dist/components/table/components/table-cell.svelte.d.ts.map +1 -1
  339. package/dist/components/table/components/table-header.svelte +1 -1
  340. package/dist/components/table/components/table-resize-handle.svelte +7 -10
  341. package/dist/components/table/components/table-resize-handle.svelte.d.ts.map +1 -1
  342. package/dist/components/table/components/table-root.svelte +26 -22
  343. package/dist/components/table/components/table-row.svelte +5 -4
  344. package/dist/components/table/components/table-row.svelte.d.ts.map +1 -1
  345. package/dist/components/table/table.svelte.d.ts.map +1 -1
  346. package/dist/components/table/table.svelte.js +6 -2
  347. package/dist/components/tabs/__tests__/TabsTest.svelte +7 -7
  348. package/dist/components/tabs/__tests__/tabs.test.svelte.js +4 -1
  349. package/dist/components/tabs/components/tabs-content.svelte +2 -2
  350. package/dist/components/tabs/components/tabs-list.svelte +10 -13
  351. package/dist/components/tabs/components/tabs-list.svelte.d.ts.map +1 -1
  352. package/dist/components/tabs/components/tabs-root.svelte +1 -1
  353. package/dist/components/tabs/components/tabs-trigger.svelte +4 -5
  354. package/dist/components/tabs/components/tabs-trigger.svelte.d.ts.map +1 -1
  355. package/dist/components/textarea/__tests__/textarea.test.svelte.js +29 -0
  356. package/dist/components/textarea/textarea.svelte +14 -1
  357. package/dist/components/time-field/__tests__/TimeFieldTest.svelte +1 -1
  358. package/dist/components/time-field/__tests__/time-field.test.svelte.js +6 -8
  359. package/dist/components/time-field/components/time-field-root.svelte +67 -73
  360. package/dist/components/time-field/components/time-field-root.svelte.d.ts.map +1 -1
  361. package/dist/components/time-field/index.d.ts +1 -1
  362. package/dist/components/time-field/index.d.ts.map +1 -1
  363. package/dist/components/time-field/time-field.svelte.d.ts.map +1 -1
  364. package/dist/components/time-field/types.d.ts +13 -13
  365. package/dist/components/time-field/types.d.ts.map +1 -1
  366. package/dist/components/time-range-field/__tests__/TimeRangeFieldTest.svelte +1 -1
  367. package/dist/components/time-range-field/__tests__/time-range-field.test.svelte.js +4 -4
  368. package/dist/components/time-range-field/components/time-range-field-root.svelte +5 -5
  369. package/dist/components/time-range-field/types.d.ts +1 -1
  370. package/dist/components/time-range-field/types.d.ts.map +1 -1
  371. package/dist/components/toast/toast.svelte +15 -15
  372. package/dist/components/toggle/toggle.svelte +3 -4
  373. package/dist/components/toggle/toggle.svelte.d.ts.map +1 -1
  374. package/dist/components/toggle-group/components/toggle-group-item.svelte +3 -4
  375. package/dist/components/toggle-group/components/toggle-group-item.svelte.d.ts.map +1 -1
  376. package/dist/components/toggle-group/components/toggle-group-root.svelte +7 -11
  377. package/dist/components/toggle-group/components/toggle-group-root.svelte.d.ts.map +1 -1
  378. package/dist/components/toggle-group/types.d.ts.map +1 -1
  379. package/dist/components/toolbar/__tests__/ToolbarCompositionTest.svelte +7 -7
  380. package/dist/components/toolbar/__tests__/ToolbarTabstopTest.svelte +5 -5
  381. package/dist/components/toolbar/toolbar-group.svelte +3 -8
  382. package/dist/components/toolbar/toolbar-group.svelte.d.ts.map +1 -1
  383. package/dist/components/toolbar/toolbar-separator.svelte +2 -3
  384. package/dist/components/toolbar/toolbar-separator.svelte.d.ts.map +1 -1
  385. package/dist/components/toolbar/toolbar.svelte +17 -23
  386. package/dist/components/toolbar/toolbar.svelte.d.ts.map +1 -1
  387. package/dist/components/tooltip/__tests__/TooltipTest.svelte +1 -1
  388. package/dist/components/tooltip/components/tooltip-content.svelte +20 -15
  389. package/dist/components/tooltip/components/tooltip-content.svelte.d.ts.map +1 -1
  390. package/dist/components/tooltip/components/tooltip-provider.svelte +8 -3
  391. package/dist/components/tooltip/components/tooltip-provider.svelte.d.ts.map +1 -1
  392. package/dist/components/tooltip/components/tooltip-root.svelte +1 -1
  393. package/dist/components/tooltip/components/tooltip-trigger.svelte +15 -13
  394. package/dist/components/tooltip/components/tooltip-trigger.svelte.d.ts.map +1 -1
  395. package/dist/components/tooltip/index.d.ts +1 -1
  396. package/dist/components/tooltip/index.d.ts.map +1 -1
  397. package/dist/components/tooltip/tooltip-provider.svelte.d.ts.map +1 -1
  398. package/dist/components/tree/__tests__/TreeLabelContentTest.svelte +7 -7
  399. package/dist/components/tree/__tests__/TreeTest.svelte +7 -7
  400. package/dist/components/tree/components/tree-item.svelte +22 -26
  401. package/dist/components/tree/components/tree-item.svelte.d.ts.map +1 -1
  402. package/dist/components/tree/components/tree-root.svelte +2 -2
  403. package/dist/components/tree/tree.svelte.d.ts.map +1 -1
  404. package/dist/components/tree/types.d.ts +9 -9
  405. package/dist/components/tree/types.d.ts.map +1 -1
  406. package/dist/components/virtualizer/__tests__/waterfall-layout.test.js +1 -1
  407. package/dist/components/virtualizer/components/virtualizer-root.svelte +8 -17
  408. package/dist/components/virtualizer/components/virtualizer-root.svelte.d.ts.map +1 -1
  409. package/dist/index.d.ts +2 -2
  410. package/dist/index.d.ts.map +1 -1
  411. package/dist/index.js +1 -1
  412. package/dist/internal/announcer/announcer.svelte.d.ts.map +1 -1
  413. package/dist/internal/date-time/calendar-helpers.d.ts.map +1 -1
  414. package/dist/internal/date-time/formatter.d.ts.map +1 -1
  415. package/dist/internal/date-time/types.d.ts.map +1 -1
  416. package/dist/internal/date-time/types.js +4 -1
  417. package/dist/internal/date-time/utils.d.ts +2 -2
  418. package/dist/internal/date-time/utils.d.ts.map +1 -1
  419. package/dist/internal/date-time/utils.js +2 -2
  420. package/dist/internal/dismissible-layer/dismissible-layer.svelte.d.ts.map +1 -1
  421. package/dist/internal/dismissible-layer/dismissible-layer.svelte.js +6 -6
  422. package/dist/internal/drag-drop/__tests__/auto-scroll.test.js +6 -2
  423. package/dist/internal/drag-drop/__tests__/drag-session.test.svelte.js +9 -4
  424. package/dist/internal/drag-drop/__tests__/drop-delegate.test.js +18 -10
  425. package/dist/internal/drag-drop/auto-scroll.svelte.d.ts.map +1 -1
  426. package/dist/internal/drag-drop/auto-scroll.svelte.js +12 -8
  427. package/dist/internal/drag-drop/drag-session.svelte.d.ts.map +1 -1
  428. package/dist/internal/drag-drop/drag-session.svelte.js +41 -17
  429. package/dist/internal/drag-drop/drag-source.svelte.d.ts.map +1 -1
  430. package/dist/internal/drag-drop/drop-delegate.svelte.d.ts.map +1 -1
  431. package/dist/internal/drag-drop/drop-delegate.svelte.js +3 -3
  432. package/dist/internal/drag-drop/drop-target.svelte.d.ts.map +1 -1
  433. package/dist/internal/drag-drop/keyboard-dnd.svelte.d.ts.map +1 -1
  434. package/dist/internal/escape-layer/escape-layer.svelte.d.ts.map +1 -1
  435. package/dist/internal/escape-layer/escape-layer.svelte.js +2 -2
  436. package/dist/internal/floating-layer/floating-layer.svelte.d.ts.map +1 -1
  437. package/dist/internal/floating-layer/types.d.ts.map +1 -1
  438. package/dist/internal/focus-scope/focus-scope.svelte.d.ts.map +1 -1
  439. package/dist/internal/grace-area/grace-area.svelte.d.ts.map +1 -1
  440. package/dist/internal/grace-area/grace-area.svelte.js +1 -1
  441. package/dist/internal/helpers/arrays.d.ts.map +1 -1
  442. package/dist/internal/helpers/dom.d.ts.map +1 -1
  443. package/dist/internal/helpers/dom.js +2 -2
  444. package/dist/internal/helpers/merge-props.d.ts.map +1 -1
  445. package/dist/internal/i18n/languages.d.ts.map +1 -1
  446. package/dist/internal/i18n/languages.js +2 -2
  447. package/dist/internal/portal/__tests__/PortalTest.svelte +3 -3
  448. package/dist/internal/portal/portal-consumer.svelte +1 -1
  449. package/dist/internal/portal/portal.svelte +7 -3
  450. package/dist/internal/portal/portal.svelte.d.ts.map +1 -1
  451. package/dist/internal/presence-layer/presence-layer.svelte.d.ts.map +1 -1
  452. package/dist/internal/roving-focus/roving-focus.svelte.d.ts.map +1 -1
  453. package/dist/internal/roving-focus/roving-focus.svelte.js +2 -2
  454. package/dist/internal/scroll-lock/scroll-lock.svelte.d.ts.map +1 -1
  455. package/dist/internal/text-selection-layer/text-selection-layer.svelte.d.ts.map +1 -1
  456. package/dist/internal/typeahead/typeahead.svelte.d.ts.map +1 -1
  457. package/dist/internal/typeahead/typeahead.svelte.js +1 -1
  458. package/package.json +1 -1
  459. package/src/fonts.css +2 -2
  460. package/src/themes/__tests__/carbon-dark-contrast.test.ts +4 -3
  461. package/src/themes/carbon.css +104 -107
  462. package/src/themes/day.css +104 -106
  463. package/src/themes/docs.css +104 -106
  464. package/src/themes/iris-ocr.css +104 -108
  465. package/src/themes/midnight.css +104 -107
  466. package/src/themes/spectral-components.css +3 -1
  467. package/src/themes/spectral.css +116 -111
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TabsProps } from '../types.js'
3
3
  import { setTabsContext } from '../tabs.svelte.js'
4
4
 
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TabsTriggerProps } from '../types.js'
3
3
  import { getTabsContext } from '../tabs.svelte.js'
4
4
 
@@ -8,15 +8,14 @@
8
8
  const isActive = $derived(ctx.value === value)
9
9
 
10
10
  function onclick() {
11
- if (!disabled)
12
- ctx.setValue(value)
11
+ if (!disabled) ctx.setValue(value)
13
12
  }
14
13
  </script>
15
14
 
16
15
  <button
17
16
  class="sp-tabs-trigger {className ?? ''}"
18
- type='button'
19
- role='tab'
17
+ type="button"
18
+ role="tab"
20
19
  aria-selected={isActive}
21
20
  tabindex={isActive ? 0 : -1}
22
21
  {disabled}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/tabs/components/tabs-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA0BnD,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"tabs-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/tabs/components/tabs-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAyBnD,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -1,6 +1,10 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
1
4
  import { mount, unmount } from 'svelte';
2
5
  import { afterEach, describe, expect, it } from 'vitest';
3
6
  import Textarea from '../textarea.svelte';
7
+ const componentSource = readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../textarea.svelte'), 'utf8');
4
8
  describe('textarea', () => {
5
9
  let target;
6
10
  let instance;
@@ -23,4 +27,29 @@ describe('textarea', () => {
23
27
  setup({ invalid: true });
24
28
  expect(target.querySelector('textarea')?.getAttribute('aria-invalid')).toBe('true');
25
29
  });
30
+ // ── iOS Safari focus-zoom contract ────────────────────────────────
31
+ // Real WebKit focus-zoom cannot be reproduced in jsdom. These tests
32
+ // lock the CSS contract that prevents the regression on `size="sm"` :
33
+ // the `sm` typography stays token-driven for desktop, and a clamp to
34
+ // >= 1rem is applied on coarse pointers (touch / iOS). Other sizes
35
+ // inherit the base 1rem and are already iOS-safe.
36
+ describe('iOS Safari focus-zoom contract (size="sm")', () => {
37
+ it('keeps fine-pointer typography on the body-medium token', () => {
38
+ expect(componentSource).toMatch(/\.sp-textarea\.sm\s*\{[^}]*font-size:\s*var\(--sp-sys-typescale-body-medium-size[^}]*\}/);
39
+ });
40
+ it('clamps the sm textarea to at least 1rem on coarse pointers', () => {
41
+ expect(componentSource).toMatch(/@media\s*\(pointer:\s*coarse\)\s*\{[\s\S]*?\.sp-textarea\.sm\s*\{[^}]*font-size:\s*max\(1rem,[^)]*\)[\s\S]*?\}/);
42
+ });
43
+ it('only the sm variant is targeted by the coarse-pointer clamp', () => {
44
+ // The clamp must target `.sp-textarea.sm` and only `.sp-textarea.sm`.
45
+ // Other sizes inherit the base 1rem and must not get an override.
46
+ const coarseRules = [
47
+ ...componentSource.matchAll(/@media\s*\(pointer:\s*coarse\)\s*\{[^}]*\{/g),
48
+ ];
49
+ expect(coarseRules.length).toBe(1);
50
+ expect(coarseRules[0][0]).toContain('.sp-textarea.sm');
51
+ expect(coarseRules[0][0]).not.toContain('.sp-textarea.md');
52
+ expect(coarseRules[0][0]).not.toContain('.sp-textarea.lg');
53
+ });
54
+ });
26
55
  });
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TextareaProps } from './types.js'
3
3
 
4
4
  let {
@@ -48,6 +48,19 @@
48
48
  font-size: var(--sp-sys-typescale-body-medium-size, 0.875rem);
49
49
  }
50
50
 
51
+ /* iOS Safari focus zoom : WebKit auto-zooms the viewport when a focused
52
+ form control's computed font-size is < 16px. The `sm` size renders
53
+ at `body-medium` (14px by default), which crosses that threshold.
54
+ Clamp to at least 1rem on coarse pointers (touch / iOS) so dense
55
+ forms on mobile stay usable; `max()` preserves any theme that may
56
+ override `--sp-sys-typescale-body-medium-size` upward. Other sizes
57
+ inherit the base 1rem and are already iOS-safe. */
58
+ @media (pointer: coarse) {
59
+ .sp-textarea.sm {
60
+ font-size: max(1rem, var(--sp-sys-typescale-body-medium-size, 0.875rem));
61
+ }
62
+ }
63
+
51
64
  .sp-textarea.md {
52
65
  min-height: 96px;
53
66
  }
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TimeValue } from '../types.js'
3
3
  import * as TimeField from '../index.js'
4
4
 
@@ -29,10 +29,9 @@ describe('timeField', () => {
29
29
  // 3. Segments include hour and minute labels
30
30
  it('segments include hour and minute labels', () => {
31
31
  setup();
32
- const labels = Array.from(target.querySelectorAll('[role="spinbutton"]'))
33
- .map(s => s.getAttribute('aria-label')?.toLowerCase() ?? '');
34
- expect(labels.some(l => l && (l.includes('hour') || l.includes('heure')))).toBe(true);
35
- expect(labels.some(l => l && l.includes('minute'))).toBe(true);
32
+ const labels = Array.from(target.querySelectorAll('[role="spinbutton"]')).map((s) => s.getAttribute('aria-label')?.toLowerCase() ?? '');
33
+ expect(labels.some((l) => l && (l.includes('hour') || l.includes('heure')))).toBe(true);
34
+ expect(labels.some((l) => l && l.includes('minute'))).toBe(true);
36
35
  });
37
36
  // 4. Renders value when provided (minute field shows 30)
38
37
  it('renders value when provided', () => {
@@ -76,9 +75,8 @@ describe('timeField', () => {
76
75
  // 9. granularity="second" adds seconds segment
77
76
  it('granularity="second" adds seconds segment', () => {
78
77
  setup({ granularity: 'second', value: { hour: 14, minute: 30, second: 45 } });
79
- const labels = Array.from(target.querySelectorAll('[role="spinbutton"]'))
80
- .map(s => s.getAttribute('aria-label')?.toLowerCase() ?? '');
81
- expect(labels.some(l => l && l.includes('second'))).toBe(true);
78
+ const labels = Array.from(target.querySelectorAll('[role="spinbutton"]')).map((s) => s.getAttribute('aria-label')?.toLowerCase() ?? '');
79
+ expect(labels.some((l) => l && l.includes('second'))).toBe(true);
82
80
  });
83
81
  // 10. disabled marks group with data-disabled
84
82
  it('disabled marks group as disabled', () => {
@@ -90,7 +88,7 @@ describe('timeField', () => {
90
88
  it('readonly marks segments as readonly', () => {
91
89
  setup({ readonly: true });
92
90
  const segments = target.querySelectorAll('[role="spinbutton"]');
93
- const readonlySegments = Array.from(segments).filter(s => s.getAttribute('aria-readonly') === 'true');
91
+ const readonlySegments = Array.from(segments).filter((s) => s.getAttribute('aria-readonly') === 'true');
94
92
  expect(readonlySegments.length).toBeGreaterThanOrEqual(2);
95
93
  });
96
94
  // 12. group has aria-label
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TimeSegmentValues } from '../time-field.svelte.js'
3
3
  import type { DayPeriod, TimeFieldProps, TimeValue } from '../types.js'
4
4
  import {
@@ -35,13 +35,12 @@
35
35
  $effect(() => {
36
36
  if (value) {
37
37
  segmentValues = {
38
- hour: resolvedHourCycle === 12 ? (value.hour % 12 || 12) : value.hour,
38
+ hour: resolvedHourCycle === 12 ? value.hour % 12 || 12 : value.hour,
39
39
  minute: value.minute,
40
40
  second: value.second,
41
41
  dayPeriod: value.hour >= 12 ? 'PM' : 'AM',
42
42
  }
43
- }
44
- else {
43
+ } else {
45
44
  segmentValues = { hour: null, minute: null, second: null, dayPeriod: 'AM' }
46
45
  }
47
46
  })
@@ -50,21 +49,16 @@
50
49
 
51
50
  function tryBuildValue(): TimeValue | undefined {
52
51
  const { hour, minute, second } = segmentValues
53
- if (hour === null)
54
- return undefined
55
- if ((granularity === 'minute' || granularity === 'second') && minute === null)
56
- return undefined
57
- if (granularity === 'second' && second === null)
58
- return undefined
52
+ if (hour === null) return undefined
53
+ if ((granularity === 'minute' || granularity === 'second') && minute === null) return undefined
54
+ if (granularity === 'second' && second === null) return undefined
59
55
 
60
56
  // Convert 12h display to 24h internal value
61
57
  let h24 = hour ?? 0
62
58
  if (resolvedHourCycle === 12) {
63
59
  const period = segmentValues.dayPeriod
64
- if (period === 'AM' && h24 === 12)
65
- h24 = 0
66
- else if (period === 'PM' && h24 < 12)
67
- h24 += 12
60
+ if (period === 'AM' && h24 === 12) h24 = 0
61
+ else if (period === 'PM' && h24 < 12) h24 += 12
68
62
  }
69
63
 
70
64
  return {
@@ -78,8 +72,7 @@
78
72
  if (part === 'dayPeriod') {
79
73
  // Just update dayPeriod — tryBuildValue handles 12h→24h conversion
80
74
  segmentValues = { ...segmentValues, dayPeriod: val as DayPeriod }
81
- }
82
- else {
75
+ } else {
83
76
  segmentValues = { ...segmentValues, [part]: val as number }
84
77
  }
85
78
  const built = tryBuildValue()
@@ -92,8 +85,7 @@
92
85
  function clearSegment(part: string) {
93
86
  if (part === 'dayPeriod') {
94
87
  segmentValues = { ...segmentValues, dayPeriod: 'AM' }
95
- }
96
- else {
88
+ } else {
97
89
  segmentValues = { ...segmentValues, [part]: null }
98
90
  }
99
91
  value = undefined
@@ -106,12 +98,24 @@
106
98
  }
107
99
 
108
100
  setTimeFieldContext({
109
- get value() { return value },
110
- get segments() { return segments },
111
- get disabled() { return disabled },
112
- get readonly() { return isReadonly },
113
- get hourCycle() { return resolvedHourCycle },
114
- get granularity() { return granularity },
101
+ get value() {
102
+ return value
103
+ },
104
+ get segments() {
105
+ return segments
106
+ },
107
+ get disabled() {
108
+ return disabled
109
+ },
110
+ get readonly() {
111
+ return isReadonly
112
+ },
113
+ get hourCycle() {
114
+ return resolvedHourCycle
115
+ },
116
+ get granularity() {
117
+ return granularity
118
+ },
115
119
  updateSegment,
116
120
  clearSegment,
117
121
  toggleDayPeriod,
@@ -157,41 +161,32 @@
157
161
  let next: number
158
162
  if (current === null) {
159
163
  next = key === 'ArrowUp' ? min : max
160
- }
161
- else {
164
+ } else {
162
165
  next = current + step
163
- if (next > max)
164
- next = min
165
- if (next < min)
166
- next = max
166
+ if (next > max) next = min
167
+ if (next < min) next = max
167
168
  }
168
169
  updateSegment(part, next)
169
- }
170
- else if (key === 'Backspace' || key === 'Delete') {
170
+ } else if (key === 'Backspace' || key === 'Delete') {
171
171
  e.preventDefault()
172
172
  clearSegment(part)
173
- }
174
- else if (key === 'ArrowLeft') {
173
+ } else if (key === 'ArrowLeft') {
175
174
  e.preventDefault()
176
175
  navigateSegment(e.currentTarget as HTMLElement, 'prev')
177
- }
178
- else if (key === 'ArrowRight') {
176
+ } else if (key === 'ArrowRight') {
179
177
  e.preventDefault()
180
178
  navigateSegment(e.currentTarget as HTMLElement, 'next')
181
- }
182
- else if (/^\d$/.test(key)) {
179
+ } else if (/^\d$/.test(key)) {
183
180
  e.preventDefault()
184
181
  const digit = Number.parseInt(key, 10)
185
182
  const current = segmentValues[part as keyof TimeSegmentValues] as number | null
186
- let newVal = (current === null || current === 0) ? digit : current * 10 + digit
187
- if (newVal > max)
188
- newVal = digit
183
+ let newVal = current === null || current === 0 ? digit : current * 10 + digit
184
+ if (newVal > max) newVal = digit
189
185
  updateSegment(part, newVal)
190
186
  // Auto-advance
191
187
  if (String(newVal).length >= 2 || newVal * 10 > max)
192
188
  navigateSegment(e.currentTarget as HTMLElement, 'next')
193
- }
194
- else if (key !== 'Tab') {
189
+ } else if (key !== 'Tab') {
195
190
  e.preventDefault()
196
191
  }
197
192
  }
@@ -201,36 +196,34 @@
201
196
  if (key === 'ArrowUp' || key === 'ArrowDown') {
202
197
  e.preventDefault()
203
198
  toggleDayPeriod()
204
- }
205
- else if (key === 'a' || key === 'A') {
199
+ } else if (key === 'a' || key === 'A') {
206
200
  e.preventDefault()
207
201
  updateSegment('dayPeriod', 'AM')
208
- }
209
- else if (key === 'p' || key === 'P') {
202
+ } else if (key === 'p' || key === 'P') {
210
203
  e.preventDefault()
211
204
  updateSegment('dayPeriod', 'PM')
212
- }
213
- else if (key === 'ArrowLeft') {
205
+ } else if (key === 'ArrowLeft') {
214
206
  e.preventDefault()
215
207
  navigateSegment(e.currentTarget as HTMLElement, 'prev')
216
- }
217
- else if (key === 'ArrowRight') {
208
+ } else if (key === 'ArrowRight') {
218
209
  e.preventDefault()
219
210
  navigateSegment(e.currentTarget as HTMLElement, 'next')
220
- }
221
- else if (key === 'Backspace') {
211
+ } else if (key === 'Backspace') {
222
212
  e.preventDefault()
223
213
  updateSegment('dayPeriod', 'AM')
224
- }
225
- else if (key !== 'Tab') {
214
+ } else if (key !== 'Tab') {
226
215
  e.preventDefault()
227
216
  }
228
217
  }
229
218
 
230
219
  function navigateSegment(el: HTMLElement, direction: 'next' | 'prev') {
231
- let sibling: Element | null = direction === 'next' ? el.nextElementSibling : el.previousElementSibling
220
+ let sibling: Element | null =
221
+ direction === 'next' ? el.nextElementSibling : el.previousElementSibling
232
222
  while (sibling) {
233
- if (sibling.getAttribute('role') === 'spinbutton' || sibling.hasAttribute('data-day-period')) {
223
+ if (
224
+ sibling.getAttribute('role') === 'spinbutton' ||
225
+ sibling.hasAttribute('data-day-period')
226
+ ) {
234
227
  ;(sibling as HTMLElement).focus()
235
228
  return
236
229
  }
@@ -241,7 +234,7 @@
241
234
 
242
235
  <div
243
236
  class="sp-time-field {className ?? ''}"
244
- role='group'
237
+ role="group"
245
238
  aria-label={ariaLabel ?? 'Time'}
246
239
  data-disabled={disabled || undefined}
247
240
  >
@@ -251,42 +244,43 @@
251
244
  {#each segments as segment, i (`${i}-${segment.part}`)}
252
245
  {#if segment.part === 'dayPeriod'}
253
246
  <span
254
- class='sp-time-field-segment sp-time-field-day-period'
255
- role='spinbutton'
247
+ class="sp-time-field-segment sp-time-field-day-period"
248
+ role="spinbutton"
256
249
  tabindex={disabled ? -1 : 0}
257
250
  data-day-period
258
- aria-label='AM/PM'
251
+ aria-label="AM/PM"
259
252
  aria-readonly={isReadonly || undefined}
260
253
  aria-valuetext={segment.value}
261
- onkeydown={e => handleSegmentKeydown(e, 'dayPeriod')}
262
- onbeforeinput={e => e.preventDefault()}
263
- >{segment.value}</span>
254
+ onkeydown={(e) => handleSegmentKeydown(e, 'dayPeriod')}
255
+ onbeforeinput={(e) => e.preventDefault()}>{segment.value}</span
256
+ >
264
257
  {:else if segment.editable}
265
258
  {@const part = segment.part}
266
259
  <span
267
- class='sp-time-field-segment'
268
- role='spinbutton'
260
+ class="sp-time-field-segment"
261
+ role="spinbutton"
269
262
  contenteditable={!disabled && !isReadonly}
270
- inputmode='numeric'
263
+ inputmode="numeric"
271
264
  tabindex={disabled ? -1 : 0}
272
- data-placeholder={segmentValues[part as 'hour' | 'minute' | 'second'] === null || undefined}
265
+ data-placeholder={segmentValues[part as 'hour' | 'minute' | 'second'] === null ||
266
+ undefined}
273
267
  aria-label={part}
274
268
  aria-readonly={isReadonly || undefined}
275
269
  aria-valuenow={segmentValues[part as 'hour' | 'minute' | 'second'] ?? undefined}
276
270
  aria-valuemin={part === 'hour' ? (resolvedHourCycle === 12 ? 1 : 0) : 0}
277
271
  aria-valuemax={part === 'hour' ? (resolvedHourCycle === 12 ? 12 : 23) : 59}
278
- onkeydown={e => handleSegmentKeydown(e, part)}
279
- onbeforeinput={e => e.preventDefault()}
280
- >{segment.value}</span>
272
+ onkeydown={(e) => handleSegmentKeydown(e, part)}
273
+ onbeforeinput={(e) => e.preventDefault()}>{segment.value}</span
274
+ >
281
275
  {:else}
282
- <span class='sp-time-field-literal' aria-hidden='true'>{segment.value}</span>
276
+ <span class="sp-time-field-literal" aria-hidden="true">{segment.value}</span>
283
277
  {/if}
284
278
  {/each}
285
279
  {/if}
286
280
  </div>
287
281
 
288
282
  {#if name}
289
- <input type='hidden' {name} value={hiddenValue} {required} />
283
+ <input type="hidden" {name} value={hiddenValue} {required} />
290
284
  {/if}
291
285
 
292
286
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"time-field-root.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/time-field/components/time-field-root.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,cAAc,EAAa,MAAM,aAAa,CAAA;AA6QvE,QAAA,MAAM,aAAa,yDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"time-field-root.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/time-field/components/time-field-root.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,cAAc,EAAa,MAAM,aAAa,CAAA;AAuQvE,QAAA,MAAM,aAAa,yDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { default as Root } from './components/time-field-root.svelte';
2
- export type { HourCycle, TimeFieldProps, TimeGranularity, TimeRange, TimeRangeFieldProps, TimeValue } from './types.js';
2
+ export type { HourCycle, TimeFieldProps, TimeGranularity, TimeRange, TimeRangeFieldProps, TimeValue, } from './types.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qCAAqC,CAAA;AACrE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qCAAqC,CAAA;AACrE,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"time-field.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/time-field.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAMlF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,eAAe,CAAA;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAChE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAI7D;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,SAAS,GACnB,eAAe,EAAE,CAmDnB"}
1
+ {"version":3,"file":"time-field.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/time-field.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAMlF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,eAAe,CAAA;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAChE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAI7D;AAED,4CAA4C;AAC5C,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,SAAS,GACnB,eAAe,EAAE,CAiDnB"}
@@ -4,32 +4,32 @@ export type HourCycle = 12 | 24;
4
4
  export type DayPeriod = 'AM' | 'PM';
5
5
  export interface TimeFieldProps {
6
6
  /** Current time value as { hour, minute, second }. */
7
- 'value'?: TimeValue;
7
+ value?: TimeValue;
8
8
  /** Callback when value changes. */
9
- 'onValueChange'?: (value: TimeValue | undefined) => void;
9
+ onValueChange?: (value: TimeValue | undefined) => void;
10
10
  /** Which time parts to display. */
11
- 'granularity'?: TimeGranularity;
11
+ granularity?: TimeGranularity;
12
12
  /** 12 or 24 hour clock (defaults to locale default). */
13
- 'hourCycle'?: HourCycle;
13
+ hourCycle?: HourCycle;
14
14
  /** Locale for formatting. */
15
- 'locale'?: string;
15
+ locale?: string;
16
16
  /** Minimum time. */
17
- 'minValue'?: TimeValue;
17
+ minValue?: TimeValue;
18
18
  /** Maximum time. */
19
- 'maxValue'?: TimeValue;
19
+ maxValue?: TimeValue;
20
20
  /** Disabled state. */
21
- 'disabled'?: boolean;
21
+ disabled?: boolean;
22
22
  /** Readonly state. */
23
- 'readonly'?: boolean;
23
+ readonly?: boolean;
24
24
  /** Required for form validation. */
25
- 'required'?: boolean;
25
+ required?: boolean;
26
26
  /** Form field name (renders hidden input). */
27
- 'name'?: string;
27
+ name?: string;
28
28
  /** Accessible label. */
29
29
  'aria-label'?: string;
30
30
  /** Additional CSS class. */
31
- 'class'?: string;
32
- 'children'?: Snippet;
31
+ class?: string;
32
+ children?: Snippet;
33
33
  }
34
34
  export interface TimeValue {
35
35
  hour: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAErC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC1D,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,CAAA;AAC/B,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnC,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,mCAAmC;IACnC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAA;IACxD,mCAAmC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAA;IAC/B,wDAAwD;IACxD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oBAAoB;IACpB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,oBAAoB;IACpB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,sBAAsB;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sBAAsB;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC1C,mCAAmC;IACnC,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAErC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC1D,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,CAAA;AAC/B,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnC,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,mCAAmC;IACnC,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,wDAAwD;IACxD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC1C,mCAAmC;IACnC,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB"}
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TimeRange } from '../types.js'
3
3
  import TimeRangeFieldRoot from '../components/time-range-field-root.svelte'
4
4
 
@@ -42,7 +42,7 @@ describe('timeRangeField', () => {
42
42
  // At least 2 fields × 2 segments (hour + minute) = 4 spinbuttons
43
43
  expect(segments.length).toBeGreaterThanOrEqual(4);
44
44
  // Verify hour values are present in aria-valuenow attributes
45
- const hourSegments = Array.from(segments).filter(s => s.getAttribute('aria-label') === 'hour');
45
+ const hourSegments = Array.from(segments).filter((s) => s.getAttribute('aria-label') === 'hour');
46
46
  expect(hourSegments.length).toBeGreaterThanOrEqual(2);
47
47
  });
48
48
  // T-C-2-3: applies data-disabled to inner TimeField groups when disabled=true
@@ -106,7 +106,7 @@ describe('timeRangeField', () => {
106
106
  it('updates rendered segments when remounted with new TimeRange value', () => {
107
107
  setup();
108
108
  // Initial state: no value → segments show placeholder (no aria-valuenow)
109
- const initialHourSegments = Array.from(target.querySelectorAll('[role="spinbutton"]')).filter(s => s.getAttribute('aria-label') === 'hour');
109
+ const initialHourSegments = Array.from(target.querySelectorAll('[role="spinbutton"]')).filter((s) => s.getAttribute('aria-label') === 'hour');
110
110
  expect(initialHourSegments.length).toBeGreaterThanOrEqual(2);
111
111
  expect(initialHourSegments[0].getAttribute('aria-valuenow')).toBeNull();
112
112
  // Remount with concrete value
@@ -115,10 +115,10 @@ describe('timeRangeField', () => {
115
115
  const newRange = { start: new Time(14, 0), end: new Time(16, 45) };
116
116
  instance = mount(TimeRangeFieldTest, { target, props: { value: newRange } });
117
117
  flushSync();
118
- const updatedHourSegments = Array.from(target.querySelectorAll('[role="spinbutton"]')).filter(s => s.getAttribute('aria-label') === 'hour');
118
+ const updatedHourSegments = Array.from(target.querySelectorAll('[role="spinbutton"]')).filter((s) => s.getAttribute('aria-label') === 'hour');
119
119
  expect(updatedHourSegments.length).toBeGreaterThanOrEqual(2);
120
120
  // At least one hour segment should have a valuenow (14 or its 12h equivalent)
121
- const hasValue = updatedHourSegments.some(s => s.getAttribute('aria-valuenow') !== null);
121
+ const hasValue = updatedHourSegments.some((s) => s.getAttribute('aria-valuenow') !== null);
122
122
  expect(hasValue).toBe(true);
123
123
  });
124
124
  });
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { TimeRange, TimeRangeFieldProps, TimeValue } from '../types.js'
3
3
  import * as TimeField from '../../time-field/index.js'
4
4
 
@@ -41,7 +41,7 @@
41
41
  }
42
42
  </script>
43
43
 
44
- <div class="sp-time-range-field {className ?? ''}" role='group' aria-label='Time range'>
44
+ <div class="sp-time-range-field {className ?? ''}" role="group" aria-label="Time range">
45
45
  {#if children}
46
46
  {@render children()}
47
47
  {:else}
@@ -55,9 +55,9 @@
55
55
  readonly={isReadonly}
56
56
  {required}
57
57
  name={name ? `${name}-start` : undefined}
58
- aria-label='Start time'
58
+ aria-label="Start time"
59
59
  />
60
- <span class='sp-time-range-separator' aria-hidden='true'>–</span>
60
+ <span class="sp-time-range-separator" aria-hidden="true">–</span>
61
61
  <TimeField.Root
62
62
  value={endValue}
63
63
  onValueChange={onEndChange}
@@ -68,7 +68,7 @@
68
68
  readonly={isReadonly}
69
69
  {required}
70
70
  name={name ? `${name}-end` : undefined}
71
- aria-label='End time'
71
+ aria-label="End time"
72
72
  />
73
73
  {/if}
74
74
  </div>
@@ -1,2 +1,2 @@
1
- export type { HourCycle, TimeGranularity, TimeRange, TimeRangeFieldProps, TimeValue } from '../time-field/types.js';
1
+ export type { HourCycle, TimeGranularity, TimeRange, TimeRangeFieldProps, TimeValue, } from '../time-field/types.js';
2
2
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-range-field/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/components/time-range-field/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,MAAM,wBAAwB,CAAA"}
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang="ts">
2
2
  import type { ToastProps } from './types.js'
3
3
  import { isBrowser, useId } from '../../internal/helpers/index.js'
4
4
 
@@ -35,35 +35,35 @@
35
35
  register it before content appears. Only the inner content is
36
36
  conditionally rendered — the aria-live wrapper stays stable.
37
37
  -->
38
- <div class='sp-toast-region' {id} role='status' aria-live='polite' aria-atomic='true'>
38
+ <div class="sp-toast-region" {id} role="status" aria-live="polite" aria-atomic="true">
39
39
  {#if visible}
40
40
  <div class="sp-toast {variant} {className ?? ''}" data-variant={variant}>
41
- <div class='sp-toast-content'>
41
+ <div class="sp-toast-content">
42
42
  {#if title}
43
- <p class='sp-toast-title'>{title}</p>
43
+ <p class="sp-toast-title">{title}</p>
44
44
  {/if}
45
45
  {#if description}
46
- <p class='sp-toast-description'>{description}</p>
46
+ <p class="sp-toast-description">{description}</p>
47
47
  {/if}
48
48
  {#if children}
49
49
  {@render children()}
50
50
  {/if}
51
51
  </div>
52
- <div class='sp-toast-actions'>
52
+ <div class="sp-toast-actions">
53
53
  {#if action}
54
54
  {@render action()}
55
55
  {/if}
56
56
  {#if dismissible}
57
- <button class='sp-toast-dismiss' type='button' aria-label='Dismiss' onclick={dismiss}>
57
+ <button class="sp-toast-dismiss" type="button" aria-label="Dismiss" onclick={dismiss}>
58
58
  <svg
59
- viewBox='0 0 24 24'
60
- fill='none'
61
- stroke='currentColor'
62
- stroke-width='2'
63
- stroke-linecap='round'
64
- stroke-linejoin='round'
65
- ><line x1='18' y1='6' x2='6' y2='18'></line><line x1='6' y1='6' x2='18' y2='18'
66
- ></line></svg
59
+ viewBox="0 0 24 24"
60
+ fill="none"
61
+ stroke="currentColor"
62
+ stroke-width="2"
63
+ stroke-linecap="round"
64
+ stroke-linejoin="round"
65
+ ><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"
66
+ ></line></svg
67
67
  >
68
68
  </button>
69
69
  {/if}