@skdx/web-components 0.30.0 → 0.32.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 (325) hide show
  1. package/custom-elements.json +35590 -29009
  2. package/dist/alert/AlertAnatomy.cjs +1 -1
  3. package/dist/alert/AlertAnatomy.js +1 -1
  4. package/dist/autocomplete/AutocompleteAnatomy.cjs +1 -1
  5. package/dist/autocomplete/AutocompleteAnatomy.js +1 -1
  6. package/dist/autocomplete/AutocompleteContent.cjs +2 -2
  7. package/dist/autocomplete/AutocompleteContent.d.cts +3 -0
  8. package/dist/autocomplete/AutocompleteContent.d.ts +3 -0
  9. package/dist/autocomplete/AutocompleteContent.js +2 -2
  10. package/dist/avatar/AvatarImage.cjs +12 -6
  11. package/dist/avatar/AvatarImage.js +9 -3
  12. package/dist/backdrop/Backdrop.cjs +1 -0
  13. package/dist/backdrop/Backdrop.d.cts +12 -0
  14. package/dist/backdrop/Backdrop.d.ts +12 -0
  15. package/dist/backdrop/Backdrop.js +1 -0
  16. package/dist/backdrop/index.cjs +1 -0
  17. package/dist/backdrop/index.d.cts +1 -0
  18. package/dist/backdrop/index.d.ts +1 -0
  19. package/dist/backdrop/index.js +1 -0
  20. package/dist/badge/BadgeDelete.cjs +1 -1
  21. package/dist/badge/BadgeDelete.js +1 -1
  22. package/dist/badge/BadgeLabel.cjs +1 -1
  23. package/dist/badge/BadgeLabel.js +2 -2
  24. package/dist/badge/BadgeLeading.cjs +1 -1
  25. package/dist/badge/BadgeLeading.js +2 -2
  26. package/dist/breadcrumb/BreadcrumbLink.cjs +5 -1
  27. package/dist/breadcrumb/BreadcrumbLink.js +8 -4
  28. package/dist/checkbox-card/CheckboxCardAnatomy.cjs +9 -9
  29. package/dist/checkbox-card/CheckboxCardAnatomy.js +9 -9
  30. package/dist/checkbox-group/CheckboxGroupItem.cjs +1 -1
  31. package/dist/checkbox-group/CheckboxGroupItem.d.cts +2 -1
  32. package/dist/checkbox-group/CheckboxGroupItem.d.ts +2 -1
  33. package/dist/checkbox-group/CheckboxGroupItem.js +2 -2
  34. package/dist/checkbox-group/CheckboxGroupSelectAll.cjs +2 -2
  35. package/dist/checkbox-group/CheckboxGroupSelectAll.d.cts +2 -0
  36. package/dist/checkbox-group/CheckboxGroupSelectAll.d.ts +2 -0
  37. package/dist/checkbox-group/CheckboxGroupSelectAll.js +1 -1
  38. package/dist/checkbox-group/indicator.cjs +1 -1
  39. package/dist/checkbox-group/indicator.d.cts +7 -0
  40. package/dist/checkbox-group/indicator.d.ts +7 -0
  41. package/dist/checkbox-group/indicator.js +1 -1
  42. package/dist/chip/Chip.cjs +1 -0
  43. package/dist/chip/Chip.d.cts +11 -0
  44. package/dist/chip/Chip.d.ts +11 -0
  45. package/dist/chip/Chip.js +1 -0
  46. package/dist/chip/index.cjs +1 -0
  47. package/dist/chip/index.d.cts +1 -0
  48. package/dist/chip/index.d.ts +1 -0
  49. package/dist/chip/index.js +1 -0
  50. package/dist/clipboard/ClipboardTrigger.cjs +5 -5
  51. package/dist/clipboard/ClipboardTrigger.d.cts +3 -2
  52. package/dist/clipboard/ClipboardTrigger.d.ts +3 -2
  53. package/dist/clipboard/ClipboardTrigger.js +6 -6
  54. package/dist/combobox/Combobox.cjs +2 -2
  55. package/dist/combobox/Combobox.d.cts +4 -0
  56. package/dist/combobox/Combobox.d.ts +4 -0
  57. package/dist/combobox/Combobox.js +2 -2
  58. package/dist/combobox/ComboboxContent.cjs +1 -1
  59. package/dist/combobox/ComboboxContent.js +2 -2
  60. package/dist/combobox/index.cjs +1 -1
  61. package/dist/combobox/index.d.cts +2 -1
  62. package/dist/combobox/index.d.ts +2 -1
  63. package/dist/combobox/index.js +1 -1
  64. package/dist/date-picker/DatePickerCalendar.cjs +1 -1
  65. package/dist/date-picker/DatePickerCalendar.d.cts +1 -0
  66. package/dist/date-picker/DatePickerCalendar.d.ts +1 -0
  67. package/dist/date-picker/DatePickerCalendar.js +1 -1
  68. package/dist/date-picker/DatePickerContent.cjs +1 -1
  69. package/dist/date-picker/DatePickerContent.js +2 -2
  70. package/dist/date-picker/DatePickerTrigger.cjs +19 -6
  71. package/dist/date-picker/DatePickerTrigger.d.cts +8 -0
  72. package/dist/date-picker/DatePickerTrigger.d.ts +8 -0
  73. package/dist/date-picker/DatePickerTrigger.js +17 -4
  74. package/dist/date-picker/family.cjs +1 -1
  75. package/dist/date-picker/family.js +1 -1
  76. package/dist/date-range-picker/DateRangePicker.cjs +1 -0
  77. package/dist/date-range-picker/DateRangePicker.d.cts +12 -0
  78. package/dist/date-range-picker/DateRangePicker.d.ts +12 -0
  79. package/dist/date-range-picker/DateRangePicker.js +1 -0
  80. package/dist/date-range-picker/index.cjs +1 -0
  81. package/dist/date-range-picker/index.d.cts +1 -0
  82. package/dist/date-range-picker/index.d.ts +1 -0
  83. package/dist/date-range-picker/index.js +1 -0
  84. package/dist/date-time-picker/DateTimePicker.cjs +1 -0
  85. package/dist/date-time-picker/DateTimePicker.d.cts +12 -0
  86. package/dist/date-time-picker/DateTimePicker.d.ts +12 -0
  87. package/dist/date-time-picker/DateTimePicker.js +1 -0
  88. package/dist/date-time-picker/index.cjs +1 -0
  89. package/dist/date-time-picker/index.d.cts +1 -0
  90. package/dist/date-time-picker/index.d.ts +1 -0
  91. package/dist/date-time-picker/index.js +1 -0
  92. package/dist/dialog/DialogContent.cjs +1 -1
  93. package/dist/dialog/DialogContent.d.cts +2 -0
  94. package/dist/dialog/DialogContent.d.ts +2 -0
  95. package/dist/dialog/DialogContent.js +1 -1
  96. package/dist/dialog/Dialogs.cjs +24 -0
  97. package/dist/dialog/Dialogs.d.cts +43 -0
  98. package/dist/dialog/Dialogs.d.ts +43 -0
  99. package/dist/dialog/Dialogs.js +24 -0
  100. package/dist/dialog/index.cjs +1 -1
  101. package/dist/dialog/index.d.cts +2 -0
  102. package/dist/dialog/index.d.ts +2 -0
  103. package/dist/dialog/index.js +1 -1
  104. package/dist/drawer/DrawerContent.cjs +2 -2
  105. package/dist/drawer/DrawerContent.js +2 -2
  106. package/dist/fab/Fab.cjs +1 -0
  107. package/dist/fab/Fab.d.cts +12 -0
  108. package/dist/fab/Fab.d.ts +12 -0
  109. package/dist/fab/Fab.js +1 -0
  110. package/dist/fab/index.cjs +1 -0
  111. package/dist/fab/index.d.cts +1 -0
  112. package/dist/fab/index.d.ts +1 -0
  113. package/dist/fab/index.js +1 -0
  114. package/dist/field/FieldError.cjs +2 -2
  115. package/dist/field/FieldError.js +1 -1
  116. package/dist/floating-panel/FloatingPanel.cjs +2 -2
  117. package/dist/floating-panel/FloatingPanel.d.cts +3 -0
  118. package/dist/floating-panel/FloatingPanel.d.ts +3 -0
  119. package/dist/floating-panel/FloatingPanel.js +2 -2
  120. package/dist/floating-panel/FloatingPanelContent.cjs +2 -2
  121. package/dist/floating-panel/FloatingPanelContent.d.cts +3 -0
  122. package/dist/floating-panel/FloatingPanelContent.d.ts +3 -0
  123. package/dist/floating-panel/FloatingPanelContent.js +2 -2
  124. package/dist/gauge/Gauge.cjs +1 -0
  125. package/dist/gauge/Gauge.d.cts +12 -0
  126. package/dist/gauge/Gauge.d.ts +12 -0
  127. package/dist/gauge/Gauge.js +1 -0
  128. package/dist/gauge/index.cjs +1 -0
  129. package/dist/gauge/index.d.cts +1 -0
  130. package/dist/gauge/index.d.ts +1 -0
  131. package/dist/gauge/index.js +1 -0
  132. package/dist/grid/Grid.cjs +1 -0
  133. package/dist/grid/Grid.d.cts +12 -0
  134. package/dist/grid/Grid.d.ts +12 -0
  135. package/dist/grid/Grid.js +1 -0
  136. package/dist/grid/index.cjs +1 -0
  137. package/dist/grid/index.d.cts +1 -0
  138. package/dist/grid/index.d.ts +1 -0
  139. package/dist/grid/index.js +1 -0
  140. package/dist/index.cjs +1 -1
  141. package/dist/index.d.cts +16 -3
  142. package/dist/index.d.ts +16 -3
  143. package/dist/index.js +1 -1
  144. package/dist/internal/csv.cjs +2 -0
  145. package/dist/internal/csv.d.cts +43 -0
  146. package/dist/internal/csv.d.ts +43 -0
  147. package/dist/internal/csv.js +2 -0
  148. package/dist/internal/dialogs.cjs +1 -0
  149. package/dist/internal/dialogs.d.cts +96 -0
  150. package/dist/internal/dialogs.d.ts +96 -0
  151. package/dist/internal/dialogs.js +1 -0
  152. package/dist/internal/dismiss.cjs +1 -1
  153. package/dist/internal/dismiss.d.cts +1 -1
  154. package/dist/internal/dismiss.d.ts +1 -1
  155. package/dist/internal/dismiss.js +1 -1
  156. package/dist/internal/dismissal.cjs +1 -1
  157. package/dist/internal/dismissal.d.cts +7 -0
  158. package/dist/internal/dismissal.d.ts +7 -0
  159. package/dist/internal/dismissal.js +1 -1
  160. package/dist/internal/field-core.cjs +1 -1
  161. package/dist/internal/field-core.d.cts +2 -0
  162. package/dist/internal/field-core.d.ts +2 -0
  163. package/dist/internal/field-core.js +1 -1
  164. package/dist/internal/form-associated.cjs +1 -1
  165. package/dist/internal/form-associated.js +1 -1
  166. package/dist/internal/light-dom-styles.cjs +3 -1
  167. package/dist/internal/light-dom-styles.js +2 -0
  168. package/dist/internal/media-query.cjs +1 -0
  169. package/dist/internal/media-query.d.cts +7 -0
  170. package/dist/internal/media-query.d.ts +7 -0
  171. package/dist/internal/media-query.js +1 -0
  172. package/dist/internal/menu-panel.cjs +1 -1
  173. package/dist/internal/menu-panel.js +2 -2
  174. package/dist/internal/options.cjs +1 -1
  175. package/dist/internal/options.d.cts +1 -1
  176. package/dist/internal/options.d.ts +1 -1
  177. package/dist/internal/options.js +1 -1
  178. package/dist/internal/styles.cjs +20 -7
  179. package/dist/internal/styles.d.cts +1 -1
  180. package/dist/internal/styles.d.ts +1 -1
  181. package/dist/internal/styles.js +20 -7
  182. package/dist/list/ListItem.cjs +13 -8
  183. package/dist/list/ListItem.js +12 -7
  184. package/dist/loading-overlay/LoadingOverlayBackdrop.cjs +1 -1
  185. package/dist/loading-overlay/LoadingOverlayBackdrop.js +1 -1
  186. package/dist/loading-overlay/LoadingOverlayContent.cjs +1 -1
  187. package/dist/loading-overlay/LoadingOverlayContent.js +3 -3
  188. package/dist/mentions/MentionsContent.cjs +1 -1
  189. package/dist/mentions/MentionsContent.js +2 -2
  190. package/dist/menu/MenuAnatomy.cjs +1 -1
  191. package/dist/menu/MenuAnatomy.js +1 -1
  192. package/dist/menu/MenuTrigger.cjs +3 -2
  193. package/dist/menu/MenuTrigger.d.cts +5 -0
  194. package/dist/menu/MenuTrigger.d.ts +5 -0
  195. package/dist/menu/MenuTrigger.js +5 -4
  196. package/dist/navigation-menu/NavigationMenuContent.cjs +2 -2
  197. package/dist/navigation-menu/NavigationMenuContent.js +1 -1
  198. package/dist/paper/Paper.cjs +1 -0
  199. package/dist/paper/Paper.d.cts +11 -0
  200. package/dist/paper/Paper.d.ts +11 -0
  201. package/dist/paper/Paper.js +1 -0
  202. package/dist/paper/index.cjs +1 -0
  203. package/dist/paper/index.d.cts +1 -0
  204. package/dist/paper/index.d.ts +1 -0
  205. package/dist/paper/index.js +1 -0
  206. package/dist/password-input/PasswordInputField.cjs +2 -2
  207. package/dist/password-input/PasswordInputField.js +4 -4
  208. package/dist/popover/PopoverAnchor.cjs +1 -1
  209. package/dist/popover/PopoverAnchor.d.cts +1 -0
  210. package/dist/popover/PopoverAnchor.d.ts +1 -0
  211. package/dist/popover/PopoverAnchor.js +2 -2
  212. package/dist/popover/PopoverContent.cjs +1 -1
  213. package/dist/popover/PopoverContent.js +2 -2
  214. package/dist/popover/PopoverDescription.cjs +7 -2
  215. package/dist/popover/PopoverDescription.js +7 -2
  216. package/dist/popover/PopoverTitle.cjs +7 -2
  217. package/dist/popover/PopoverTitle.js +7 -2
  218. package/dist/popover/family.cjs +1 -1
  219. package/dist/popover/family.js +1 -1
  220. package/dist/progress/ProgressCircle.cjs +2 -2
  221. package/dist/progress/ProgressCircle.js +1 -1
  222. package/dist/progress/ProgressCircleIndicator.cjs +2 -2
  223. package/dist/progress/ProgressCircleIndicator.js +2 -2
  224. package/dist/progress/ProgressIndicator.cjs +2 -2
  225. package/dist/progress/ProgressIndicator.js +1 -1
  226. package/dist/progress/ProgressLabel.cjs +1 -1
  227. package/dist/progress/ProgressLabel.js +1 -1
  228. package/dist/progress/ProgressValue.cjs +1 -1
  229. package/dist/progress/ProgressValue.js +1 -1
  230. package/dist/select/SelectContent.cjs +2 -2
  231. package/dist/select/SelectContent.d.cts +3 -0
  232. package/dist/select/SelectContent.d.ts +3 -0
  233. package/dist/select/SelectContent.js +2 -2
  234. package/dist/speed-dial/SpeedDial.cjs +2 -2
  235. package/dist/speed-dial/SpeedDial.d.cts +6 -0
  236. package/dist/speed-dial/SpeedDial.d.ts +6 -0
  237. package/dist/speed-dial/SpeedDial.js +2 -2
  238. package/dist/speed-dial/SpeedDialAnatomy.cjs +1 -1
  239. package/dist/speed-dial/SpeedDialAnatomy.js +1 -1
  240. package/dist/speed-dial/SpeedDialContent.cjs +1 -1
  241. package/dist/speed-dial/SpeedDialContent.js +2 -2
  242. package/dist/speed-dial/SpeedDialTrigger.cjs +5 -4
  243. package/dist/speed-dial/SpeedDialTrigger.d.cts +5 -0
  244. package/dist/speed-dial/SpeedDialTrigger.d.ts +5 -0
  245. package/dist/speed-dial/SpeedDialTrigger.js +5 -4
  246. package/dist/stack/Stack.cjs +1 -0
  247. package/dist/stack/Stack.d.cts +12 -0
  248. package/dist/stack/Stack.d.ts +12 -0
  249. package/dist/stack/Stack.js +1 -0
  250. package/dist/stack/index.cjs +1 -0
  251. package/dist/stack/index.d.cts +1 -0
  252. package/dist/stack/index.d.ts +1 -0
  253. package/dist/stack/index.js +1 -0
  254. package/dist/table/Table.cjs +4 -4
  255. package/dist/table/Table.d.cts +17 -1
  256. package/dist/table/Table.d.ts +17 -1
  257. package/dist/table/Table.js +5 -5
  258. package/dist/table/TableAnatomy.cjs +5 -5
  259. package/dist/table/TableAnatomy.d.cts +4 -1
  260. package/dist/table/TableAnatomy.d.ts +4 -1
  261. package/dist/table/TableAnatomy.js +11 -11
  262. package/dist/table/TableColumnHeaderFilterInput.cjs +15 -0
  263. package/dist/table/TableColumnHeaderFilterInput.d.cts +37 -0
  264. package/dist/table/TableColumnHeaderFilterInput.d.ts +37 -0
  265. package/dist/table/TableColumnHeaderFilterInput.js +15 -0
  266. package/dist/table/TableExpandTrigger.cjs +5 -5
  267. package/dist/table/TableExpandTrigger.d.cts +1 -0
  268. package/dist/table/TableExpandTrigger.d.ts +1 -0
  269. package/dist/table/TableExpandTrigger.js +5 -5
  270. package/dist/table/TableHeaderCell.cjs +44 -31
  271. package/dist/table/TableHeaderCell.d.cts +18 -0
  272. package/dist/table/TableHeaderCell.d.ts +18 -0
  273. package/dist/table/TableHeaderCell.js +44 -31
  274. package/dist/table/index.cjs +1 -1
  275. package/dist/table/index.d.cts +1 -1
  276. package/dist/table/index.d.ts +1 -1
  277. package/dist/table/index.js +1 -1
  278. package/dist/table/primitives.cjs +1 -1
  279. package/dist/table/primitives.d.cts +1 -0
  280. package/dist/table/primitives.d.ts +1 -0
  281. package/dist/table/primitives.js +1 -1
  282. package/dist/table/types.cjs +1 -1
  283. package/dist/table/types.d.cts +2 -0
  284. package/dist/table/types.d.ts +2 -0
  285. package/dist/tag-group/TagGroupAnatomy.cjs +4 -4
  286. package/dist/tag-group/TagGroupAnatomy.d.cts +5 -1
  287. package/dist/tag-group/TagGroupAnatomy.d.ts +5 -1
  288. package/dist/tag-group/TagGroupAnatomy.js +5 -5
  289. package/dist/tags-input/TagsInputInput.cjs +3 -2
  290. package/dist/tags-input/TagsInputInput.d.cts +5 -0
  291. package/dist/tags-input/TagsInputInput.d.ts +5 -0
  292. package/dist/tags-input/TagsInputInput.js +10 -9
  293. package/dist/text-field/TextField.cjs +8 -4
  294. package/dist/text-field/TextField.js +8 -4
  295. package/dist/timeline/Timeline.cjs +9 -2
  296. package/dist/timeline/Timeline.d.cts +8 -1
  297. package/dist/timeline/Timeline.d.ts +8 -1
  298. package/dist/timeline/Timeline.js +9 -2
  299. package/dist/timeline/TimelineAnatomy.cjs +7 -7
  300. package/dist/timeline/TimelineAnatomy.js +8 -8
  301. package/dist/tooltip/Tooltip.cjs +1 -0
  302. package/dist/tooltip/Tooltip.d.cts +20 -0
  303. package/dist/tooltip/Tooltip.d.ts +20 -0
  304. package/dist/tooltip/Tooltip.js +1 -0
  305. package/dist/tooltip/index.cjs +1 -0
  306. package/dist/tooltip/index.d.cts +1 -0
  307. package/dist/tooltip/index.d.ts +1 -0
  308. package/dist/tooltip/index.js +1 -0
  309. package/dist/tour/TourAnatomy.cjs +1 -1
  310. package/dist/tour/TourAnatomy.d.cts +1 -0
  311. package/dist/tour/TourAnatomy.d.ts +1 -0
  312. package/dist/tour/TourAnatomy.js +1 -1
  313. package/dist/tour/TourContent.cjs +1 -1
  314. package/dist/tour/TourContent.js +2 -2
  315. package/dist/tour/TourNextTrigger.cjs +1 -1
  316. package/dist/tour/TourNextTrigger.js +1 -1
  317. package/dist/tree/Tree.cjs +1 -1
  318. package/dist/tree/Tree.d.cts +1 -1
  319. package/dist/tree/Tree.d.ts +1 -1
  320. package/dist/tree/Tree.js +1 -1
  321. package/dist/tree-select/TreeSelectContent.cjs +2 -2
  322. package/dist/tree-select/TreeSelectContent.d.cts +3 -0
  323. package/dist/tree-select/TreeSelectContent.d.ts +3 -0
  324. package/dist/tree-select/TreeSelectContent.js +2 -2
  325. package/package.json +126 -2
package/dist/index.d.ts CHANGED
@@ -14,11 +14,14 @@ export { SkdxAutocomplete, defaultGetSuggestionCountLabel } from './autocomplete
14
14
  export type { SkdxAutocompleteFilter, SkdxAutocompleteItemEntry } from './autocomplete/index.js';
15
15
  export { SkdxAvatar } from './avatar/index.js';
16
16
  export { SkdxBadge } from './badge/index.js';
17
+ export { SkdxChip } from './chip/index.js';
17
18
  export { SkdxBreadcrumb, type SkdxBreadcrumbItemDescriptor } from './breadcrumb/index.js';
18
19
  export { SkdxButton } from './button/index.js';
20
+ export { SkdxFab } from './fab/index.js';
19
21
  export { SkdxCalendar, getISOWeek, resolveLocale, getMonthNames, getWeekDayNames, getLocaleWeekStartsOn, formatMonthLabel, formatDateLabel, formatYear, formatYearRange, type NameWidth, type CalendarSelectionMode, type CalendarValue, type DateRange, type RangePosition, type CalendarPageBehavior, type CalendarView, } from './calendar/index.js';
20
22
  export type { CalendarDay } from './calendar/index.js';
21
23
  export { SkdxCard, SkdxCardHeader, SkdxCardContent, SkdxCardFooter } from './card/index.js';
24
+ export { SkdxPaper } from './paper/index.js';
22
25
  export { SkdxCarousel } from './carousel/index.js';
23
26
  export { SkdxCheckbox, type SkdxCheckedState } from './checkbox/index.js';
24
27
  export { SkdxCheckboxCard } from './checkbox-card/index.js';
@@ -27,13 +30,16 @@ export { SkdxClipboard } from './clipboard/index.js';
27
30
  export { SkdxCollapsible } from './collapsible/index.js';
28
31
  export { SkdxColorPicker, type SkdxColorPickerSwatchDescriptor } from './color-picker/index.js';
29
32
  export type { ColorFormat } from './color-picker/index.js';
30
- export { SkdxCombobox } from './combobox/index.js';
31
- export type { SkdxComboboxFilter, SkdxComboboxHighlightChangeDetail, SkdxComboboxHighlightReason, SkdxComboboxItemEntry, SkdxComboboxOpenOn, } from './combobox/index.js';
33
+ export { SkdxCombobox, defaultOptionsFilter } from './combobox/index.js';
34
+ export type { SkdxComboboxFilter, SkdxComboboxHighlightChangeDetail, SkdxComboboxHighlightReason, SkdxComboboxItemEntry, SkdxComboboxOpenOn, SkdxComboboxValueChangeDetail, } from './combobox/index.js';
32
35
  export { SkdxCommand, defaultCommandFilter } from './command/index.js';
33
36
  export type { SkdxCommandFilter, SkdxCommandGroupDescriptor, SkdxCommandItemDescriptor, } from './command/index.js';
34
37
  export { SkdxDateField } from './date-field/index.js';
35
38
  export { SkdxDatePicker } from './date-picker/index.js';
39
+ export { SkdxDateTimePicker } from './date-time-picker/index.js';
40
+ export { SkdxDateRangePicker } from './date-range-picker/index.js';
36
41
  export { SkdxDialog, type SkdxDialogDismiss, type SkdxDialogRole } from './dialog/index.js';
42
+ export { SkdxDialogs, createDialogs, type DialogsStore, type DialogsEntry, type DialogsKind, type DialogsOptions, type DialogsPromptOptions, type DialogsResult, } from './dialog/index.js';
37
43
  export { SkdxDrawer, type SkdxDrawerDismiss, type SkdxDrawerPlacement } from './drawer/index.js';
38
44
  export { SkdxMenu } from './menu/index.js';
39
45
  export type { SkdxMenuItemDescriptor, SkdxMenuOpenOn, SkdxMenuPoint } from './menu/index.js';
@@ -51,6 +57,7 @@ export { SkdxLabel } from './label/index.js';
51
57
  export { SkdxListbox } from './listbox/index.js';
52
58
  export type { SkdxListboxValueChangeDetail } from './listbox/index.js';
53
59
  export { SkdxLoadingOverlay } from './loading-overlay/index.js';
60
+ export { SkdxBackdrop } from './backdrop/index.js';
54
61
  export { SkdxMentions, defaultGetResultCountLabel, defaultMentionSerializer } from './mentions/index.js';
55
62
  export type { SkdxMentionsFilter, SkdxMentionsHighlightChangeDetail, SkdxMentionsHighlightReason, SkdxMentionsInsertedMention, SkdxMentionsItemEntry, SkdxMentionsOptionData, SkdxMentionsQueryChangeDetail, SkdxMentionsSerializer, SkdxMentionsValueChangeDetail, } from './mentions/index.js';
56
63
  export { SkdxMenubar } from './menubar/index.js';
@@ -63,7 +70,9 @@ export type { PaginationRangeEntry, PaginationRangeOptions, PaginationLabels, Re
63
70
  export { SkdxPasswordInput } from './password-input/index.js';
64
71
  export { SkdxPinInput, pinInputDigitLabel } from './pin-input/index.js';
65
72
  export { SkdxPopover, type PopoverModality, type SkdxPopoverOpenOn, type SkdxPopoverRole, } from './popover/index.js';
73
+ export { SkdxTooltip } from './tooltip/index.js';
66
74
  export { SkdxProgress, type SkdxProgressRange, type SkdxProgressRole } from './progress/index.js';
75
+ export { SkdxGauge } from './gauge/index.js';
67
76
  export { SkdxQrCode } from './qr-code/index.js';
68
77
  export type { QrCodeErrorCorrection } from './qr-code/index.js';
69
78
  export { SkdxRadioCard } from './radio-card/index.js';
@@ -78,6 +87,8 @@ export { SkdxSelect, defaultGetSelectionLabel } from './select/index.js';
78
87
  export type { SkdxSelectFilter, SkdxSelectItemDescriptor, SkdxSelectItemEntry } from './select/index.js';
79
88
  export { SkdxDivider } from './divider/index.js';
80
89
  export { SkdxBox } from './box/index.js';
90
+ export { SkdxStack } from './stack/index.js';
91
+ export { SkdxGrid } from './grid/index.js';
81
92
  export { SkdxList, SkdxListItem } from './list/index.js';
82
93
  export type { SkdxListItemDescriptor, SkdxListOrientation } from './list/index.js';
83
94
  export { SkdxLink } from './link/index.js';
@@ -92,7 +103,7 @@ export type { StepStatus, StepperOrientation, StepperNavigationMode, StepperItem
92
103
  export { SkdxSwitch } from './switch/index.js';
93
104
  export { SkdxTable, SkdxTableRow, SkdxTableCell } from './table/index.js';
94
105
  export { defaultRowId, type SkdxTableColumn } from './table/index.js';
95
- export type { SortDirection, TableSort, TableSortState, TableSelectAllScope, TableSelectionMode, TableColumnWidths, } from './table/index.js';
106
+ export type { SortDirection, TableSort, TableSortState, TableFilterState, TableSelectAllScope, TableSelectionMode, TableColumnWidths, } from './table/index.js';
96
107
  export { SkdxTabs } from './tabs/index.js';
97
108
  export type { TabsChangeReason, TabsValueChangeDetail, SkdxTabsItemDescriptor } from './tabs/index.js';
98
109
  export { SkdxTagsInput, type TagsInputInvalidDetail } from './tags-input/index.js';
@@ -126,3 +137,5 @@ export { SkdxVisuallyHidden } from './utils/visually-hidden.js';
126
137
  export { SkdxPortal } from './utils/portal.js';
127
138
  export { announce, clearAnnouncements, ANNOUNCE_DEBOUNCE_MS, type AnnouncePoliteness, } from './utils/live-announcer.js';
128
139
  export type { PolymorphicTag } from './utils/polymorphic.js';
140
+ export { matchesMediaQuery, subscribeMediaQuery } from './internal/media-query.js';
141
+ export { toCsv, type CsvColumn, type CsvOptions } from './internal/csv.js';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{SkdxAccordion as o}from"./accordion/index.js";import{SkdxAlert as a}from"./alert/index.js";import{SkdxAngleSlider as x}from"./angle-slider/index.js";import{SkdxAspectRatio as i}from"./aspect-ratio/index.js";import{SkdxAutocomplete as l,defaultGetSuggestionCountLabel as S}from"./autocomplete/index.js";import{SkdxAvatar as k}from"./avatar/index.js";import{SkdxBadge as f}from"./badge/index.js";import{SkdxBreadcrumb as c}from"./breadcrumb/index.js";import{SkdxButton as u}from"./button/index.js";import{SkdxCalendar as D,getISOWeek as b,resolveLocale as C,getMonthNames as h,getWeekDayNames as F,getLocaleWeekStartsOn as M,formatMonthLabel as P,formatDateLabel as R,formatYear as I,formatYearRange as A}from"./calendar/index.js";import{SkdxCard as O,SkdxCardHeader as v,SkdxCardContent as G,SkdxCardFooter as E}from"./card/index.js";import{SkdxCarousel as V}from"./carousel/index.js";import{SkdxCheckbox as w}from"./checkbox/index.js";import{SkdxCheckboxCard as z}from"./checkbox-card/index.js";import{SkdxCheckboxGroup as _}from"./checkbox-group/index.js";import{SkdxClipboard as Q}from"./clipboard/index.js";import{SkdxCollapsible as j}from"./collapsible/index.js";import{SkdxColorPicker as K}from"./color-picker/index.js";import{SkdxCombobox as X}from"./combobox/index.js";import{SkdxCommand as $,defaultCommandFilter as ee}from"./command/index.js";import{SkdxDateField as oe}from"./date-field/index.js";import{SkdxDatePicker as ae}from"./date-picker/index.js";import{SkdxDialog as xe}from"./dialog/index.js";import{SkdxDrawer as ie}from"./drawer/index.js";import{SkdxMenu as le}from"./menu/index.js";import{SkdxEditable as me}from"./editable/index.js";import{SkdxField as se,SkdxFieldset as fe}from"./field/index.js";import{SkdxFileUpload as ce}from"./file-upload/index.js";import{SkdxFloatingPanel as ue,gestureAnnouncement as Te}from"./floating-panel/index.js";import{SkdxForm as be,SkdxFormField as Ce}from"./form/index.js";import{SkdxHeading as Fe}from"./heading/index.js";import{SkdxKbd as Pe}from"./kbd/index.js";import{SkdxLabel as Ie}from"./label/index.js";import{SkdxListbox as Le}from"./listbox/index.js";import{SkdxLoadingOverlay as ve}from"./loading-overlay/index.js";import{SkdxMentions as Ee,defaultGetResultCountLabel as Ne,defaultMentionSerializer as Ve}from"./mentions/index.js";import{SkdxMenubar as we}from"./menubar/index.js";import{SkdxNavigationMenu as ze}from"./navigation-menu/index.js";import{SkdxNumberField as _e}from"./number-field/index.js";import{SkdxPagination as Qe,getPaginationRange as Ye,DEFAULT_PAGINATION_LABELS as je}from"./pagination/index.js";import{SkdxPasswordInput as Ke}from"./password-input/index.js";import{SkdxPinInput as Xe,pinInputDigitLabel as Ze}from"./pin-input/index.js";import{SkdxPopover as et}from"./popover/index.js";import{SkdxProgress as ot}from"./progress/index.js";import{SkdxQrCode as at}from"./qr-code/index.js";import{SkdxRadioCard as xt}from"./radio-card/index.js";import{SkdxRadioGroup as it}from"./radio-group/index.js";import{SkdxRating as lt}from"./rating/index.js";import{SkdxResizablePanelGroup as mt,SkdxResizablePanel as kt}from"./resizable/index.js";import{SkdxScrollArea as ft}from"./scroll-area/index.js";import{SkdxSelect as ct,defaultGetSelectionLabel as gt}from"./select/index.js";import{SkdxDivider as Tt}from"./divider/index.js";import{SkdxBox as bt}from"./box/index.js";import{SkdxList as ht,SkdxListItem as Ft}from"./list/index.js";import{SkdxLink as Pt}from"./link/index.js";import{SkdxImage as It}from"./image/index.js";import{SkdxSkeleton as Lt}from"./skeleton/index.js";import{SkdxSlider as vt}from"./slider/index.js";import{SkdxSpinner as Et}from"./spinner/index.js";import{SkdxSpeedDial as Vt}from"./speed-dial/index.js";import{SkdxSplitButton as wt}from"./split-button/index.js";import{SkdxStepper as zt}from"./stepper/index.js";import{SkdxSwitch as _t}from"./switch/index.js";import{SkdxTable as Qt,SkdxTableRow as Yt,SkdxTableCell as jt}from"./table/index.js";import{defaultRowId as Kt}from"./table/index.js";import{SkdxTabs as Xt}from"./tabs/index.js";import{SkdxTagsInput as $t}from"./tags-input/index.js";import{SkdxTagGroup as to}from"./tag-group/index.js";import{SkdxText as ro}from"./text/index.js";import{SkdxTextField as po}from"./text-field/index.js";import{SkdxTextarea as io}from"./textarea/index.js";import{SkdxTime as lo}from"./time/index.js";import{SkdxTimeField as mo}from"./time-field/index.js";import{SkdxTimeline as so}from"./timeline/index.js";import{SkdxToastRegion as yo,createToaster as co,DEFAULT_TOAST_DURATION as go}from"./toast/index.js";import{SkdxToggleGroup as To}from"./toggle-group/index.js";import{SkdxToggle as bo}from"./toggle/index.js";import{SkdxToolbar as ho}from"./toolbar/index.js";import{SkdxTour as Mo}from"./tour/index.js";import{SkdxTransfer as Ro,defaultTransferFilter as Io,moveAnnouncement as Ao}from"./transfer/index.js";import{searchResultsAnnouncement as Oo}from"./transfer/index.js";import{SkdxTree as Go}from"./tree/index.js";import{SkdxTreeSelect as No,SkdxTreeSelectColumns as Vo,defaultTreeSelectFilter as Bo,defaultGetMatchCountLabel as wo}from"./tree-select/index.js";import{SkdxVisuallyHidden as zo}from"./utils/visually-hidden.js";import{SkdxPortal as _o}from"./utils/portal.js";import{announce as Qo,clearAnnouncements as Yo,ANNOUNCE_DEBOUNCE_MS as jo}from"./utils/live-announcer.js";export{jo as ANNOUNCE_DEBOUNCE_MS,je as DEFAULT_PAGINATION_LABELS,go as DEFAULT_TOAST_DURATION,o as SkdxAccordion,a as SkdxAlert,x as SkdxAngleSlider,i as SkdxAspectRatio,l as SkdxAutocomplete,k as SkdxAvatar,f as SkdxBadge,bt as SkdxBox,c as SkdxBreadcrumb,u as SkdxButton,D as SkdxCalendar,O as SkdxCard,G as SkdxCardContent,E as SkdxCardFooter,v as SkdxCardHeader,V as SkdxCarousel,w as SkdxCheckbox,z as SkdxCheckboxCard,_ as SkdxCheckboxGroup,Q as SkdxClipboard,j as SkdxCollapsible,K as SkdxColorPicker,X as SkdxCombobox,$ as SkdxCommand,oe as SkdxDateField,ae as SkdxDatePicker,xe as SkdxDialog,Tt as SkdxDivider,ie as SkdxDrawer,me as SkdxEditable,se as SkdxField,fe as SkdxFieldset,ce as SkdxFileUpload,ue as SkdxFloatingPanel,be as SkdxForm,Ce as SkdxFormField,Fe as SkdxHeading,It as SkdxImage,Pe as SkdxKbd,Ie as SkdxLabel,Pt as SkdxLink,ht as SkdxList,Ft as SkdxListItem,Le as SkdxListbox,ve as SkdxLoadingOverlay,Ee as SkdxMentions,le as SkdxMenu,we as SkdxMenubar,ze as SkdxNavigationMenu,_e as SkdxNumberField,Qe as SkdxPagination,Ke as SkdxPasswordInput,Xe as SkdxPinInput,et as SkdxPopover,_o as SkdxPortal,ot as SkdxProgress,at as SkdxQrCode,xt as SkdxRadioCard,it as SkdxRadioGroup,lt as SkdxRating,kt as SkdxResizablePanel,mt as SkdxResizablePanelGroup,ft as SkdxScrollArea,ct as SkdxSelect,Lt as SkdxSkeleton,vt as SkdxSlider,Vt as SkdxSpeedDial,Et as SkdxSpinner,wt as SkdxSplitButton,zt as SkdxStepper,_t as SkdxSwitch,Qt as SkdxTable,jt as SkdxTableCell,Yt as SkdxTableRow,Xt as SkdxTabs,to as SkdxTagGroup,$t as SkdxTagsInput,ro as SkdxText,po as SkdxTextField,io as SkdxTextarea,lo as SkdxTime,mo as SkdxTimeField,so as SkdxTimeline,yo as SkdxToastRegion,bo as SkdxToggle,To as SkdxToggleGroup,ho as SkdxToolbar,Mo as SkdxTour,Ro as SkdxTransfer,Go as SkdxTree,No as SkdxTreeSelect,Vo as SkdxTreeSelectColumns,zo as SkdxVisuallyHidden,Qo as announce,Yo as clearAnnouncements,co as createToaster,ee as defaultCommandFilter,wo as defaultGetMatchCountLabel,Ne as defaultGetResultCountLabel,gt as defaultGetSelectionLabel,S as defaultGetSuggestionCountLabel,Ve as defaultMentionSerializer,Kt as defaultRowId,Io as defaultTransferFilter,Bo as defaultTreeSelectFilter,R as formatDateLabel,P as formatMonthLabel,I as formatYear,A as formatYearRange,Te as gestureAnnouncement,b as getISOWeek,M as getLocaleWeekStartsOn,h as getMonthNames,Ye as getPaginationRange,F as getWeekDayNames,Ao as moveAnnouncement,Ze as pinInputDigitLabel,C as resolveLocale,Oo as searchResultsAnnouncement};
1
+ import{SkdxAccordion as o}from"./accordion/index.js";import{SkdxAlert as a}from"./alert/index.js";import{SkdxAngleSlider as x}from"./angle-slider/index.js";import{SkdxAspectRatio as i}from"./aspect-ratio/index.js";import{SkdxAutocomplete as S,defaultGetSuggestionCountLabel as n}from"./autocomplete/index.js";import{SkdxAvatar as k}from"./avatar/index.js";import{SkdxBadge as f}from"./badge/index.js";import{SkdxChip as g}from"./chip/index.js";import{SkdxBreadcrumb as u}from"./breadcrumb/index.js";import{SkdxButton as D}from"./button/index.js";import{SkdxFab as C}from"./fab/index.js";import{SkdxCalendar as F,getISOWeek as M,resolveLocale as P,getMonthNames as R,getWeekDayNames as I,getLocaleWeekStartsOn as A,formatMonthLabel as O,formatDateLabel as L,formatYear as v,formatYearRange as G}from"./calendar/index.js";import{SkdxCard as N,SkdxCardHeader as V,SkdxCardContent as B,SkdxCardFooter as w}from"./card/index.js";import{SkdxPaper as z}from"./paper/index.js";import{SkdxCarousel as _}from"./carousel/index.js";import{SkdxCheckbox as W}from"./checkbox/index.js";import{SkdxCheckboxCard as Y}from"./checkbox-card/index.js";import{SkdxCheckboxGroup as q}from"./checkbox-group/index.js";import{SkdxClipboard as X}from"./clipboard/index.js";import{SkdxCollapsible as $}from"./collapsible/index.js";import{SkdxColorPicker as te}from"./color-picker/index.js";import{SkdxCombobox as re,defaultOptionsFilter as ae}from"./combobox/index.js";import{SkdxCommand as xe,defaultCommandFilter as de}from"./command/index.js";import{SkdxDateField as le}from"./date-field/index.js";import{SkdxDatePicker as ne}from"./date-picker/index.js";import{SkdxDateTimePicker as ke}from"./date-time-picker/index.js";import{SkdxDateRangePicker as fe}from"./date-range-picker/index.js";import{SkdxDialog as ge}from"./dialog/index.js";import{SkdxDialogs as ue,createDialogs as Te}from"./dialog/index.js";import{SkdxDrawer as be}from"./drawer/index.js";import{SkdxMenu as he}from"./menu/index.js";import{SkdxEditable as Me}from"./editable/index.js";import{SkdxField as Re,SkdxFieldset as Ie}from"./field/index.js";import{SkdxFileUpload as Oe}from"./file-upload/index.js";import{SkdxFloatingPanel as ve,gestureAnnouncement as Ge}from"./floating-panel/index.js";import{SkdxForm as Ne,SkdxFormField as Ve}from"./form/index.js";import{SkdxHeading as we}from"./heading/index.js";import{SkdxKbd as ze}from"./kbd/index.js";import{SkdxLabel as _e}from"./label/index.js";import{SkdxListbox as We}from"./listbox/index.js";import{SkdxLoadingOverlay as Ye}from"./loading-overlay/index.js";import{SkdxBackdrop as qe}from"./backdrop/index.js";import{SkdxMentions as Xe,defaultGetResultCountLabel as Ze,defaultMentionSerializer as $e}from"./mentions/index.js";import{SkdxMenubar as tt}from"./menubar/index.js";import{SkdxNavigationMenu as rt}from"./navigation-menu/index.js";import{SkdxNumberField as pt}from"./number-field/index.js";import{SkdxPagination as dt,getPaginationRange as it,DEFAULT_PAGINATION_LABELS as lt}from"./pagination/index.js";import{SkdxPasswordInput as nt}from"./password-input/index.js";import{SkdxPinInput as kt,pinInputDigitLabel as st}from"./pin-input/index.js";import{SkdxPopover as yt}from"./popover/index.js";import{SkdxTooltip as ct}from"./tooltip/index.js";import{SkdxProgress as Tt}from"./progress/index.js";import{SkdxGauge as bt}from"./gauge/index.js";import{SkdxQrCode as ht}from"./qr-code/index.js";import{SkdxRadioCard as Mt}from"./radio-card/index.js";import{SkdxRadioGroup as Rt}from"./radio-group/index.js";import{SkdxRating as At}from"./rating/index.js";import{SkdxResizablePanelGroup as Lt,SkdxResizablePanel as vt}from"./resizable/index.js";import{SkdxScrollArea as Et}from"./scroll-area/index.js";import{SkdxSelect as Vt,defaultGetSelectionLabel as Bt}from"./select/index.js";import{SkdxDivider as Ut}from"./divider/index.js";import{SkdxBox as Ht}from"./box/index.js";import{SkdxStack as Qt}from"./stack/index.js";import{SkdxGrid as Kt}from"./grid/index.js";import{SkdxList as jt,SkdxListItem as qt}from"./list/index.js";import{SkdxLink as Xt}from"./link/index.js";import{SkdxImage as $t}from"./image/index.js";import{SkdxSkeleton as to}from"./skeleton/index.js";import{SkdxSlider as ro}from"./slider/index.js";import{SkdxSpinner as po}from"./spinner/index.js";import{SkdxSpeedDial as io}from"./speed-dial/index.js";import{SkdxSplitButton as So}from"./split-button/index.js";import{SkdxStepper as mo}from"./stepper/index.js";import{SkdxSwitch as so}from"./switch/index.js";import{SkdxTable as yo,SkdxTableRow as go,SkdxTableCell as co}from"./table/index.js";import{defaultRowId as To}from"./table/index.js";import{SkdxTabs as bo}from"./tabs/index.js";import{SkdxTagsInput as ho}from"./tags-input/index.js";import{SkdxTagGroup as Mo}from"./tag-group/index.js";import{SkdxText as Ro}from"./text/index.js";import{SkdxTextField as Ao}from"./text-field/index.js";import{SkdxTextarea as Lo}from"./textarea/index.js";import{SkdxTime as Go}from"./time/index.js";import{SkdxTimeField as No}from"./time-field/index.js";import{SkdxTimeline as Bo}from"./timeline/index.js";import{SkdxToastRegion as Uo,createToaster as zo,DEFAULT_TOAST_DURATION as Ho}from"./toast/index.js";import{SkdxToggleGroup as Qo}from"./toggle-group/index.js";import{SkdxToggle as Ko}from"./toggle/index.js";import{SkdxToolbar as jo}from"./toolbar/index.js";import{SkdxTour as Jo}from"./tour/index.js";import{SkdxTransfer as Zo,defaultTransferFilter as $o,moveAnnouncement as er}from"./transfer/index.js";import{searchResultsAnnouncement as or}from"./transfer/index.js";import{SkdxTree as ar}from"./tree/index.js";import{SkdxTreeSelect as xr,SkdxTreeSelectColumns as dr,defaultTreeSelectFilter as ir,defaultGetMatchCountLabel as lr}from"./tree-select/index.js";import{SkdxVisuallyHidden as nr}from"./utils/visually-hidden.js";import{SkdxPortal as kr}from"./utils/portal.js";import{announce as fr,clearAnnouncements as yr,ANNOUNCE_DEBOUNCE_MS as gr}from"./utils/live-announcer.js";import{matchesMediaQuery as ur,subscribeMediaQuery as Tr}from"./internal/media-query.js";import{toCsv as br}from"./internal/csv.js";export{gr as ANNOUNCE_DEBOUNCE_MS,lt as DEFAULT_PAGINATION_LABELS,Ho as DEFAULT_TOAST_DURATION,o as SkdxAccordion,a as SkdxAlert,x as SkdxAngleSlider,i as SkdxAspectRatio,S as SkdxAutocomplete,k as SkdxAvatar,qe as SkdxBackdrop,f as SkdxBadge,Ht as SkdxBox,u as SkdxBreadcrumb,D as SkdxButton,F as SkdxCalendar,N as SkdxCard,B as SkdxCardContent,w as SkdxCardFooter,V as SkdxCardHeader,_ as SkdxCarousel,W as SkdxCheckbox,Y as SkdxCheckboxCard,q as SkdxCheckboxGroup,g as SkdxChip,X as SkdxClipboard,$ as SkdxCollapsible,te as SkdxColorPicker,re as SkdxCombobox,xe as SkdxCommand,le as SkdxDateField,ne as SkdxDatePicker,fe as SkdxDateRangePicker,ke as SkdxDateTimePicker,ge as SkdxDialog,ue as SkdxDialogs,Ut as SkdxDivider,be as SkdxDrawer,Me as SkdxEditable,C as SkdxFab,Re as SkdxField,Ie as SkdxFieldset,Oe as SkdxFileUpload,ve as SkdxFloatingPanel,Ne as SkdxForm,Ve as SkdxFormField,bt as SkdxGauge,Kt as SkdxGrid,we as SkdxHeading,$t as SkdxImage,ze as SkdxKbd,_e as SkdxLabel,Xt as SkdxLink,jt as SkdxList,qt as SkdxListItem,We as SkdxListbox,Ye as SkdxLoadingOverlay,Xe as SkdxMentions,he as SkdxMenu,tt as SkdxMenubar,rt as SkdxNavigationMenu,pt as SkdxNumberField,dt as SkdxPagination,z as SkdxPaper,nt as SkdxPasswordInput,kt as SkdxPinInput,yt as SkdxPopover,kr as SkdxPortal,Tt as SkdxProgress,ht as SkdxQrCode,Mt as SkdxRadioCard,Rt as SkdxRadioGroup,At as SkdxRating,vt as SkdxResizablePanel,Lt as SkdxResizablePanelGroup,Et as SkdxScrollArea,Vt as SkdxSelect,to as SkdxSkeleton,ro as SkdxSlider,io as SkdxSpeedDial,po as SkdxSpinner,So as SkdxSplitButton,Qt as SkdxStack,mo as SkdxStepper,so as SkdxSwitch,yo as SkdxTable,co as SkdxTableCell,go as SkdxTableRow,bo as SkdxTabs,Mo as SkdxTagGroup,ho as SkdxTagsInput,Ro as SkdxText,Ao as SkdxTextField,Lo as SkdxTextarea,Go as SkdxTime,No as SkdxTimeField,Bo as SkdxTimeline,Uo as SkdxToastRegion,Ko as SkdxToggle,Qo as SkdxToggleGroup,jo as SkdxToolbar,ct as SkdxTooltip,Jo as SkdxTour,Zo as SkdxTransfer,ar as SkdxTree,xr as SkdxTreeSelect,dr as SkdxTreeSelectColumns,nr as SkdxVisuallyHidden,fr as announce,yr as clearAnnouncements,Te as createDialogs,zo as createToaster,de as defaultCommandFilter,lr as defaultGetMatchCountLabel,Ze as defaultGetResultCountLabel,Bt as defaultGetSelectionLabel,n as defaultGetSuggestionCountLabel,$e as defaultMentionSerializer,ae as defaultOptionsFilter,To as defaultRowId,$o as defaultTransferFilter,ir as defaultTreeSelectFilter,L as formatDateLabel,O as formatMonthLabel,v as formatYear,G as formatYearRange,Ge as gestureAnnouncement,M as getISOWeek,A as getLocaleWeekStartsOn,R as getMonthNames,it as getPaginationRange,I as getWeekDayNames,ur as matchesMediaQuery,er as moveAnnouncement,st as pinInputDigitLabel,P as resolveLocale,or as searchResultsAnnouncement,Tr as subscribeMediaQuery,br as toCsv};
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var l=(n,e)=>{for(var t in e)f(n,t,{get:e[t],enumerable:!0})},p=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of u(e))!y.call(n,o)&&o!==t&&f(n,o,{get:()=>e[o],enumerable:!(i=c(e,o))||i.enumerable});return n};var w=n=>p(f({},"__esModule",{value:!0}),n);var R={};l(R,{toCsv:()=>m});module.exports=w(R);function k(n){return n==null?"":n instanceof Date?n.toISOString():typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"||typeof n=="bigint"?String(n):JSON.stringify(n)??""}function d(n,e){let t=k(n);return/["\r\n]/.test(t)||t.includes(e)?`"${t.replace(/"/g,'""')}"`:t}function m(n,e={}){let t=e.delimiter??",",i=n[0],o=(e.columns??(i?Object.keys(i):[])).map(r=>typeof r=="string"?{key:r}:r),s=[];e.header!==!1&&o.length&&s.push(o.map(r=>d(r.label??r.key,t)).join(t));for(let r of n)s.push(o.map(g=>d(r[g.key],t)).join(t));return s.join(`\r
2
+ `)}0&&(module.exports={toCsv});
@@ -0,0 +1,43 @@
1
+ /** One output column: the row key to read and, optionally, the header text to print instead of the key. */
2
+ export interface CsvColumn<Row> {
3
+ /** Property of each row whose value fills this column. */
4
+ key: keyof Row & string;
5
+ /**
6
+ * Header cell text.
7
+ *
8
+ * @default the key itself
9
+ */
10
+ label?: string | undefined;
11
+ }
12
+ /** Output options for {@link toCsv}; every field has a working default. */
13
+ export interface CsvOptions<Row> {
14
+ /**
15
+ * Columns to emit, in order; omit to emit every key of the first row.
16
+ *
17
+ * @default Object.keys(rows[0])
18
+ */
19
+ columns?: readonly (CsvColumn<Row> | (keyof Row & string))[] | undefined;
20
+ /**
21
+ * Field separator.
22
+ *
23
+ * @default ','
24
+ */
25
+ delimiter?: string | undefined;
26
+ /**
27
+ * Whether the first line is the header row.
28
+ *
29
+ * @default true
30
+ */
31
+ header?: boolean | undefined;
32
+ }
33
+ /**
34
+ * Serialises rows to RFC 4180 CSV text — CRLF line ends, fields quoted only when
35
+ * they contain the delimiter, a quote or a line break — ready for a Blob or a
36
+ * data: URL. Dates print as ISO 8601; null and undefined print as empty fields.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * toCsv(rows, { columns: [{ key: 'name', label: 'Name' }, 'amount'] });
41
+ * ```
42
+ */
43
+ export declare function toCsv<Row extends object>(rows: readonly Row[], options?: CsvOptions<Row>): string;
@@ -0,0 +1,43 @@
1
+ /** One output column: the row key to read and, optionally, the header text to print instead of the key. */
2
+ export interface CsvColumn<Row> {
3
+ /** Property of each row whose value fills this column. */
4
+ key: keyof Row & string;
5
+ /**
6
+ * Header cell text.
7
+ *
8
+ * @default the key itself
9
+ */
10
+ label?: string | undefined;
11
+ }
12
+ /** Output options for {@link toCsv}; every field has a working default. */
13
+ export interface CsvOptions<Row> {
14
+ /**
15
+ * Columns to emit, in order; omit to emit every key of the first row.
16
+ *
17
+ * @default Object.keys(rows[0])
18
+ */
19
+ columns?: readonly (CsvColumn<Row> | (keyof Row & string))[] | undefined;
20
+ /**
21
+ * Field separator.
22
+ *
23
+ * @default ','
24
+ */
25
+ delimiter?: string | undefined;
26
+ /**
27
+ * Whether the first line is the header row.
28
+ *
29
+ * @default true
30
+ */
31
+ header?: boolean | undefined;
32
+ }
33
+ /**
34
+ * Serialises rows to RFC 4180 CSV text — CRLF line ends, fields quoted only when
35
+ * they contain the delimiter, a quote or a line break — ready for a Blob or a
36
+ * data: URL. Dates print as ISO 8601; null and undefined print as empty fields.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * toCsv(rows, { columns: [{ key: 'name', label: 'Name' }, 'amount'] });
41
+ * ```
42
+ */
43
+ export declare function toCsv<Row extends object>(rows: readonly Row[], options?: CsvOptions<Row>): string;
@@ -0,0 +1,2 @@
1
+ function g(n){return n==null?"":n instanceof Date?n.toISOString():typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"||typeof n=="bigint"?String(n):JSON.stringify(n)??""}function f(n,o){let e=g(n);return/["\r\n]/.test(e)||e.includes(o)?`"${e.replace(/"/g,'""')}"`:e}function c(n,o={}){let e=o.delimiter??",",s=n[0],r=(o.columns??(s?Object.keys(s):[])).map(t=>typeof t=="string"?{key:t}:t),i=[];o.header!==!1&&r.length&&i.push(r.map(t=>f(t.label??t.key,e)).join(e));for(let t of n)i.push(r.map(d=>f(t[d.key],e)).join(e));return i.join(`\r
2
+ `)}export{c as toCsv};
@@ -0,0 +1 @@
1
+ "use strict";var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},m=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of f(t))!p.call(e,r)&&r!==o&&a(e,r,{get:()=>t[r],enumerable:!(s=g(t,r))||s.enumerable});return e};var D=e=>m(a({},"__esModule",{value:!0}),e);var O={};c(O,{createDialogs:()=>x,dialogsCancelResult:()=>y,dialogsConfirmResult:()=>v});module.exports=D(O);var b={alert:"OK",confirm:"Confirm",prompt:"OK"};function x(){let e=[],t=new Set,o=0;function s(){for(let n of t)n()}function r(n,i){let l=typeof i=="string"?{title:i}:i,u={...l,id:`skdx-dialogs-${++o}`,kind:n,confirmLabel:l.confirmLabel??b[n],cancelLabel:n==="alert"?void 0:l.cancelLabel??"Cancel"};return new Promise(d=>{e.push({entry:u,resolve:d}),e.length===1&&s()})}return{subscribe(n){return t.add(n),()=>{t.delete(n)}},getCurrent:()=>e[0]?.entry??null,alert:n=>r("alert",n).then(()=>{}),confirm:n=>r("confirm",n).then(i=>i===!0),prompt:n=>r("prompt",n).then(i=>typeof i=="string"?i:null),settle(n,i){if(e[0]?.entry.id!==n)return;let{resolve:l}=e.shift();l(i),s()}}}function y(e){if(e.kind==="confirm")return!1;if(e.kind==="prompt")return null}function v(e,t){if(e.kind==="confirm")return!0;if(e.kind==="prompt")return t}0&&(module.exports={createDialogs,dialogsCancelResult,dialogsConfirmResult});
@@ -0,0 +1,96 @@
1
+ /** Which of the three canned dialogs an entry is. */
2
+ export type DialogsKind = 'alert' | 'confirm' | 'prompt';
3
+ /** Options common to alert, confirm and prompt; a bare string is the title. */
4
+ export interface DialogsOptions {
5
+ /** Heading of the dialog, rendered as its title and accessible name. */
6
+ title: string;
7
+ /**
8
+ * Body text under the title, rendered as the dialog's description.
9
+ *
10
+ * @default undefined — no description.
11
+ */
12
+ description?: string | undefined;
13
+ /**
14
+ * Label of the confirming button.
15
+ *
16
+ * @default 'OK' for alert and prompt, 'Confirm' for confirm
17
+ */
18
+ confirmLabel?: string | undefined;
19
+ /**
20
+ * Label of the cancelling button; alerts have none.
21
+ *
22
+ * @default 'Cancel'
23
+ */
24
+ cancelLabel?: string | undefined;
25
+ /**
26
+ * Severity rung the skin colours the dialog by, mirrored to `data-status`.
27
+ *
28
+ * @default undefined — the skin's own default.
29
+ */
30
+ status?: string | undefined;
31
+ }
32
+ /** Options for a prompt, which adds a single text field to the confirm shape. */
33
+ export interface DialogsPromptOptions extends DialogsOptions {
34
+ /**
35
+ * Text the field starts with.
36
+ *
37
+ * @default ''
38
+ */
39
+ defaultValue?: string | undefined;
40
+ /**
41
+ * Visible label of the text field.
42
+ *
43
+ * @default 'Value'
44
+ */
45
+ label?: string | undefined;
46
+ /**
47
+ * Placeholder shown in the empty field.
48
+ *
49
+ * @default undefined — no placeholder.
50
+ */
51
+ placeholder?: string | undefined;
52
+ }
53
+ /** A queued dialog as the host renders it: resolved options plus the settle callback. */
54
+ export interface DialogsEntry extends DialogsPromptOptions {
55
+ /** Stable identity, for keying the rendered dialog. */
56
+ id: string;
57
+ /** Which canned dialog this is. */
58
+ kind: DialogsKind;
59
+ /** Resolved confirming label, never undefined. */
60
+ confirmLabel: string;
61
+ /** Resolved cancelling label, `undefined` for alerts. */
62
+ cancelLabel: string | undefined;
63
+ }
64
+ /** What settling an entry hands back: nothing for alert, a boolean for confirm, text or null for prompt. */
65
+ export type DialogsResult = void | boolean | string | null;
66
+ /** The queue every host renders from and every caller awaits on. */
67
+ export interface DialogsStore {
68
+ /** Subscribes to queue changes. Returns its own unsubscribe. */
69
+ subscribe: (listener: () => void) => () => void;
70
+ /** The entry currently shown, or `null` — a stable reference until the queue changes. */
71
+ getCurrent: () => DialogsEntry | null;
72
+ /** Shows a message with one button; resolves when it is dismissed. */
73
+ alert(options: DialogsOptions | string): Promise<void>;
74
+ /** Asks a yes/no question; resolves `true` on confirm, `false` on cancel or dismissal. */
75
+ confirm(options: DialogsOptions | string): Promise<boolean>;
76
+ /** Asks for one line of text; resolves the text on confirm, `null` on cancel or dismissal. */
77
+ prompt(options: DialogsPromptOptions | string): Promise<string | null>;
78
+ /** Resolves and removes the entry with `id`, then shows the next one. No-ops for an id that is not current. */
79
+ settle(id: string, result: DialogsResult): void;
80
+ }
81
+ /**
82
+ * Creates the dialog queue once per app. Hand it to the `Dialogs` host and call
83
+ * `alert`, `confirm` or `prompt` from anywhere; each returns a promise that
84
+ * settles with the user's answer.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const dialogs = createDialogs();
89
+ * if (await dialogs.confirm({ title: 'Delete the project?', status: 'danger' })) remove();
90
+ * ```
91
+ */
92
+ export declare function createDialogs(): DialogsStore;
93
+ /** What cancelling or dismissing `entry` resolves with: `false` for confirm, `null` for prompt, nothing for alert. */
94
+ export declare function dialogsCancelResult(entry: DialogsEntry): DialogsResult;
95
+ /** What confirming `entry` resolves with: `true` for confirm, the typed `draft` for prompt, nothing for alert. */
96
+ export declare function dialogsConfirmResult(entry: DialogsEntry, draft: string): DialogsResult;
@@ -0,0 +1,96 @@
1
+ /** Which of the three canned dialogs an entry is. */
2
+ export type DialogsKind = 'alert' | 'confirm' | 'prompt';
3
+ /** Options common to alert, confirm and prompt; a bare string is the title. */
4
+ export interface DialogsOptions {
5
+ /** Heading of the dialog, rendered as its title and accessible name. */
6
+ title: string;
7
+ /**
8
+ * Body text under the title, rendered as the dialog's description.
9
+ *
10
+ * @default undefined — no description.
11
+ */
12
+ description?: string | undefined;
13
+ /**
14
+ * Label of the confirming button.
15
+ *
16
+ * @default 'OK' for alert and prompt, 'Confirm' for confirm
17
+ */
18
+ confirmLabel?: string | undefined;
19
+ /**
20
+ * Label of the cancelling button; alerts have none.
21
+ *
22
+ * @default 'Cancel'
23
+ */
24
+ cancelLabel?: string | undefined;
25
+ /**
26
+ * Severity rung the skin colours the dialog by, mirrored to `data-status`.
27
+ *
28
+ * @default undefined — the skin's own default.
29
+ */
30
+ status?: string | undefined;
31
+ }
32
+ /** Options for a prompt, which adds a single text field to the confirm shape. */
33
+ export interface DialogsPromptOptions extends DialogsOptions {
34
+ /**
35
+ * Text the field starts with.
36
+ *
37
+ * @default ''
38
+ */
39
+ defaultValue?: string | undefined;
40
+ /**
41
+ * Visible label of the text field.
42
+ *
43
+ * @default 'Value'
44
+ */
45
+ label?: string | undefined;
46
+ /**
47
+ * Placeholder shown in the empty field.
48
+ *
49
+ * @default undefined — no placeholder.
50
+ */
51
+ placeholder?: string | undefined;
52
+ }
53
+ /** A queued dialog as the host renders it: resolved options plus the settle callback. */
54
+ export interface DialogsEntry extends DialogsPromptOptions {
55
+ /** Stable identity, for keying the rendered dialog. */
56
+ id: string;
57
+ /** Which canned dialog this is. */
58
+ kind: DialogsKind;
59
+ /** Resolved confirming label, never undefined. */
60
+ confirmLabel: string;
61
+ /** Resolved cancelling label, `undefined` for alerts. */
62
+ cancelLabel: string | undefined;
63
+ }
64
+ /** What settling an entry hands back: nothing for alert, a boolean for confirm, text or null for prompt. */
65
+ export type DialogsResult = void | boolean | string | null;
66
+ /** The queue every host renders from and every caller awaits on. */
67
+ export interface DialogsStore {
68
+ /** Subscribes to queue changes. Returns its own unsubscribe. */
69
+ subscribe: (listener: () => void) => () => void;
70
+ /** The entry currently shown, or `null` — a stable reference until the queue changes. */
71
+ getCurrent: () => DialogsEntry | null;
72
+ /** Shows a message with one button; resolves when it is dismissed. */
73
+ alert(options: DialogsOptions | string): Promise<void>;
74
+ /** Asks a yes/no question; resolves `true` on confirm, `false` on cancel or dismissal. */
75
+ confirm(options: DialogsOptions | string): Promise<boolean>;
76
+ /** Asks for one line of text; resolves the text on confirm, `null` on cancel or dismissal. */
77
+ prompt(options: DialogsPromptOptions | string): Promise<string | null>;
78
+ /** Resolves and removes the entry with `id`, then shows the next one. No-ops for an id that is not current. */
79
+ settle(id: string, result: DialogsResult): void;
80
+ }
81
+ /**
82
+ * Creates the dialog queue once per app. Hand it to the `Dialogs` host and call
83
+ * `alert`, `confirm` or `prompt` from anywhere; each returns a promise that
84
+ * settles with the user's answer.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const dialogs = createDialogs();
89
+ * if (await dialogs.confirm({ title: 'Delete the project?', status: 'danger' })) remove();
90
+ * ```
91
+ */
92
+ export declare function createDialogs(): DialogsStore;
93
+ /** What cancelling or dismissing `entry` resolves with: `false` for confirm, `null` for prompt, nothing for alert. */
94
+ export declare function dialogsCancelResult(entry: DialogsEntry): DialogsResult;
95
+ /** What confirming `entry` resolves with: `true` for confirm, the typed `draft` for prompt, nothing for alert. */
96
+ export declare function dialogsConfirmResult(entry: DialogsEntry, draft: string): DialogsResult;
@@ -0,0 +1 @@
1
+ var d={alert:"OK",confirm:"Confirm",prompt:"OK"};function g(){let n=[],i=new Set,l=0;function s(){for(let e of i)e()}function o(e,t){let r=typeof t=="string"?{title:t}:t,a={...r,id:`skdx-dialogs-${++l}`,kind:e,confirmLabel:r.confirmLabel??d[e],cancelLabel:e==="alert"?void 0:r.cancelLabel??"Cancel"};return new Promise(u=>{n.push({entry:a,resolve:u}),n.length===1&&s()})}return{subscribe(e){return i.add(e),()=>{i.delete(e)}},getCurrent:()=>n[0]?.entry??null,alert:e=>o("alert",e).then(()=>{}),confirm:e=>o("confirm",e).then(t=>t===!0),prompt:e=>o("prompt",e).then(t=>typeof t=="string"?t:null),settle(e,t){if(n[0]?.entry.id!==e)return;let{resolve:r}=n.shift();r(t),s()}}}function f(n){if(n.kind==="confirm")return!1;if(n.kind==="prompt")return null}function p(n,i){if(n.kind==="confirm")return!0;if(n.kind==="prompt")return i}export{g as createDialogs,f as dialogsCancelResult,p as dialogsConfirmResult};
@@ -1 +1 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},v=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of p(e))!d.call(t,u)&&u!==n&&a(t,u,{get:()=>e[u],enumerable:!(s=i(e,u))||s.enumerable});return t};var E=t=>v(a({},"__esModule",{value:!0}),t);var y={};l(y,{autoFocusRelay:()=>h,backdropPointerDown:()=>o.backdropPointerDown,dispatchAnswer:()=>m,dispatchAutoFocus:()=>r,dispatchEscapeKeyDown:()=>f,dispatchOutside:()=>w,escapeLayer:()=>o.escapeLayer,focusOnOpen:()=>o.focusOnOpen,focusOutsideTarget:()=>o.focusOutsideTarget,handleEscapeKeyDown:()=>o.handleEscapeKeyDown,pushDismissLayer:()=>o.pushDismissLayer,topDismissLayer:()=>o.topDismissLayer,triggerContains:()=>o.triggerContains});module.exports=E(y);var o=require("./dismissal.cjs"),c={bubbles:!0,composed:!0,cancelable:!0};function f(t,e){let n=new CustomEvent("escape-key-down",{detail:e,...c});return t.dispatchEvent(n),!n.defaultPrevented}function m(t,e,n){let s=new CustomEvent(e,{detail:n,...c});return t.dispatchEvent(s),!s.defaultPrevented}function w(t,e,n){let s=new CustomEvent(e,{detail:n,...c}),u=new CustomEvent("interact-outside",{detail:n,...c});return t.dispatchEvent(u),u.defaultPrevented&&s.preventDefault(),t.dispatchEvent(s),!s.defaultPrevented}function r(t,e){let n=new CustomEvent(e,{detail:null,...c});return t.dispatchEvent(n),!n.defaultPrevented}function h(t){return e=>{let n=e.type;r(t,n)||e.preventDefault()}}0&&(module.exports={autoFocusRelay,backdropPointerDown,dispatchAnswer,dispatchAutoFocus,dispatchEscapeKeyDown,dispatchOutside,escapeLayer,focusOnOpen,focusOutsideTarget,handleEscapeKeyDown,pushDismissLayer,topDismissLayer,triggerContains});
1
+ "use strict";var c=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)c(t,o,{get:e[o],enumerable:!0})},v=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of p(e))!d.call(t,u)&&u!==o&&c(t,u,{get:()=>e[u],enumerable:!(s=i(e,u))||s.enumerable});return t};var E=t=>v(c({},"__esModule",{value:!0}),t);var h={};l(h,{autoFocusRelay:()=>y,backdropPointerDown:()=>n.backdropPointerDown,dispatchAnswer:()=>m,dispatchAutoFocus:()=>r,dispatchEscapeKeyDown:()=>f,dispatchOutside:()=>w,escapeLayer:()=>n.escapeLayer,focusOnOpen:()=>n.focusOnOpen,focusOutsideTarget:()=>n.focusOutsideTarget,handleEscapeKeyDown:()=>n.handleEscapeKeyDown,nestedLayerContains:()=>n.nestedLayerContains,pushDismissLayer:()=>n.pushDismissLayer,topDismissLayer:()=>n.topDismissLayer,triggerContains:()=>n.triggerContains});module.exports=E(h);var n=require("./dismissal.cjs"),a={bubbles:!0,composed:!0,cancelable:!0};function f(t,e){let o=new CustomEvent("escape-key-down",{detail:e,...a});return t.dispatchEvent(o),!o.defaultPrevented}function m(t,e,o){let s=new CustomEvent(e,{detail:o,...a});return t.dispatchEvent(s),!s.defaultPrevented}function w(t,e,o){let s=new CustomEvent(e,{detail:o,...a}),u=new CustomEvent("interact-outside",{detail:o,...a});return t.dispatchEvent(u),u.defaultPrevented&&s.preventDefault(),t.dispatchEvent(s),!s.defaultPrevented}function r(t,e){let o=new CustomEvent(e,{detail:null,...a});return t.dispatchEvent(o),!o.defaultPrevented}function y(t){return e=>{let o=e.type;r(t,o)||e.preventDefault()}}0&&(module.exports={autoFocusRelay,backdropPointerDown,dispatchAnswer,dispatchAutoFocus,dispatchEscapeKeyDown,dispatchOutside,escapeLayer,focusOnOpen,focusOutsideTarget,handleEscapeKeyDown,nestedLayerContains,pushDismissLayer,topDismissLayer,triggerContains});
@@ -40,4 +40,4 @@ export declare function dispatchAutoFocus(host: HTMLElement, name: 'open-auto-fo
40
40
  * @internal
41
41
  */
42
42
  export declare function autoFocusRelay(host: HTMLElement): (event: CustomEvent<null>) => void;
43
- export { backdropPointerDown, escapeLayer, focusOnOpen, focusOutsideTarget, handleEscapeKeyDown, pushDismissLayer, topDismissLayer, triggerContains, type DismissLayer, } from './dismissal.cjs';
43
+ export { backdropPointerDown, escapeLayer, focusOnOpen, focusOutsideTarget, handleEscapeKeyDown, nestedLayerContains, pushDismissLayer, topDismissLayer, triggerContains, type DismissLayer, } from './dismissal.cjs';
@@ -40,4 +40,4 @@ export declare function dispatchAutoFocus(host: HTMLElement, name: 'open-auto-fo
40
40
  * @internal
41
41
  */
42
42
  export declare function autoFocusRelay(host: HTMLElement): (event: CustomEvent<null>) => void;
43
- export { backdropPointerDown, escapeLayer, focusOnOpen, focusOutsideTarget, handleEscapeKeyDown, pushDismissLayer, topDismissLayer, triggerContains, type DismissLayer, } from './dismissal.js';
43
+ export { backdropPointerDown, escapeLayer, focusOnOpen, focusOutsideTarget, handleEscapeKeyDown, nestedLayerContains, pushDismissLayer, topDismissLayer, triggerContains, type DismissLayer, } from './dismissal.js';
@@ -1 +1 @@
1
- import{backdropPointerDown as v,escapeLayer as E,focusOnOpen as f,focusOutsideTarget as m,handleEscapeKeyDown as w,pushDismissLayer as h,topDismissLayer as y,triggerContains as b}from"./dismissal.js";var s={bubbles:!0,composed:!0,cancelable:!0};function a(t,n){let e=new CustomEvent("escape-key-down",{detail:n,...s});return t.dispatchEvent(e),!e.defaultPrevented}function r(t,n,e){let o=new CustomEvent(n,{detail:e,...s});return t.dispatchEvent(o),!o.defaultPrevented}function i(t,n,e){let o=new CustomEvent(n,{detail:e,...s}),u=new CustomEvent("interact-outside",{detail:e,...s});return t.dispatchEvent(u),u.defaultPrevented&&o.preventDefault(),t.dispatchEvent(o),!o.defaultPrevented}function c(t,n){let e=new CustomEvent(n,{detail:null,...s});return t.dispatchEvent(e),!e.defaultPrevented}function p(t){return n=>{let e=n.type;c(t,e)||n.preventDefault()}}export{p as autoFocusRelay,v as backdropPointerDown,r as dispatchAnswer,c as dispatchAutoFocus,a as dispatchEscapeKeyDown,i as dispatchOutside,E as escapeLayer,f as focusOnOpen,m as focusOutsideTarget,w as handleEscapeKeyDown,h as pushDismissLayer,y as topDismissLayer,b as triggerContains};
1
+ import{backdropPointerDown as v,escapeLayer as E,focusOnOpen as f,focusOutsideTarget as m,handleEscapeKeyDown as w,nestedLayerContains as y,pushDismissLayer as h,topDismissLayer as L,triggerContains as b}from"./dismissal.js";var s={bubbles:!0,composed:!0,cancelable:!0};function c(t,n){let e=new CustomEvent("escape-key-down",{detail:n,...s});return t.dispatchEvent(e),!e.defaultPrevented}function r(t,n,e){let o=new CustomEvent(n,{detail:e,...s});return t.dispatchEvent(o),!o.defaultPrevented}function i(t,n,e){let o=new CustomEvent(n,{detail:e,...s}),u=new CustomEvent("interact-outside",{detail:e,...s});return t.dispatchEvent(u),u.defaultPrevented&&o.preventDefault(),t.dispatchEvent(o),!o.defaultPrevented}function a(t,n){let e=new CustomEvent(n,{detail:null,...s});return t.dispatchEvent(e),!e.defaultPrevented}function p(t){return n=>{let e=n.type;a(t,e)||n.preventDefault()}}export{p as autoFocusRelay,v as backdropPointerDown,r as dispatchAnswer,a as dispatchAutoFocus,c as dispatchEscapeKeyDown,i as dispatchOutside,E as escapeLayer,f as focusOnOpen,m as focusOutsideTarget,w as handleEscapeKeyDown,y as nestedLayerContains,h as pushDismissLayer,L as topDismissLayer,b as triggerContains};
@@ -1 +1 @@
1
- "use strict";var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(e,n)=>{for(var t in n)r(e,t,{get:n[t],enumerable:!0})},p=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of f(n))!d.call(e,s)&&s!==t&&r(e,s,{get:()=>n[s],enumerable:!(o=a(n,s))||o.enumerable});return e};var E=e=>p(r({},"__esModule",{value:!0}),e);var w={};y(w,{autoFocusEvent:()=>x,backdropPointerDown:()=>O,escapeLayer:()=>c,focusOnOpen:()=>L,focusOutsideEvent:()=>D,focusOutsideTarget:()=>K,handleEscapeKeyDown:()=>v,pushDismissLayer:()=>b,topDismissLayer:()=>i,triggerContains:()=>F});module.exports=E(w);var u=[];function m(e,n){return e.insideElements().some(t=>n.insideElements().some(o=>o&&t?.contains(o)))}function b(e){return u.push(e),()=>{let n=u.indexOf(e);n!==-1&&u.splice(n,1)}}function i(e=u){for(let n=e.length-1;n>=0;n--){let t=e[n];if(!e.some(o=>o!==t&&m(t,o)))return t}}function c(e){let n=e?u.filter(t=>t.insideElements().some(o=>o?.contains(e))):[];return i(n)??i()}function v(e,n,t){return e.key!=="Escape"||!t||c(e.target)!==n?!1:(t(e),e.preventDefault(),!0)}function x(e,n){if(!n)return!0;let t=new CustomEvent(e,{cancelable:!0,detail:null});return n(t),!t.defaultPrevented}function D(e){return new CustomEvent("focus-outside",{detail:e,cancelable:!0})}var l=0;function L(e){l+=1;try{e()}finally{queueMicrotask(()=>{l-=1})}}function K(e){if(l>0)return null;let n=e.target;return!n||n===document.body?null:n}function F(e,n){if(!e||!n)return!1;if(e.contains(n))return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.contains(n)}function O(e,n){return!n||e.target!==n?null:e instanceof PointerEvent?e:new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,pointerType:"mouse",clientX:e.clientX,clientY:e.clientY,screenX:e.screenX,screenY:e.screenY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey})}0&&(module.exports={autoFocusEvent,backdropPointerDown,escapeLayer,focusOnOpen,focusOutsideEvent,focusOutsideTarget,handleEscapeKeyDown,pushDismissLayer,topDismissLayer,triggerContains});
1
+ "use strict";var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var E=(e,n)=>{for(var t in n)i(e,t,{get:n[t],enumerable:!0})},b=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of y(n))!p.call(e,s)&&s!==t&&i(e,s,{get:()=>n[s],enumerable:!(o=m(n,s))||o.enumerable});return e};var v=e=>b(i({},"__esModule",{value:!0}),e);var C={};E(C,{autoFocusEvent:()=>h,backdropPointerDown:()=>O,escapeLayer:()=>d,focusOnOpen:()=>K,focusOutsideEvent:()=>w,focusOutsideTarget:()=>F,handleEscapeKeyDown:()=>L,nestedLayerContains:()=>D,pushDismissLayer:()=>x,topDismissLayer:()=>l,triggerContains:()=>N});module.exports=v(C);var u=[];function a(e,n){let t=n;for(;t;){if(e.contains(t))return!0;let o=t.getRootNode();t=o instanceof ShadowRoot?o.host:null}return!1}function f(e,n){return e.insideElements().some(t=>n.insideElements().some(o=>o&&t&&a(t,o)))}function x(e){return u.push(e),()=>{let n=u.indexOf(e);n!==-1&&u.splice(n,1)}}function D(e,n){let t=new Set([e]),o=!0;for(;o;){o=!1;for(let s of u)t.has(s)||[...t].some(r=>f(r,s))&&(t.add(s),o=!0)}return t.delete(e),[...t].some(s=>s.insideElements().some(r=>r&&a(r,n)))}function l(e=u){for(let n=e.length-1;n>=0;n--){let t=e[n];if(!e.some(o=>o!==t&&f(t,o)))return t}}function d(e){let n=e?u.filter(t=>t.insideElements().some(o=>o?.contains(e))):[];return l(n)??l()}function L(e,n,t){return e.key!=="Escape"||!t||d(e.target)!==n?!1:(t(e),e.preventDefault(),!0)}function h(e,n){if(!n)return!0;let t=new CustomEvent(e,{cancelable:!0,detail:null});return n(t),!t.defaultPrevented}function w(e){return new CustomEvent("focus-outside",{detail:e,cancelable:!0})}var c=0;function K(e){c+=1;try{e()}finally{queueMicrotask(()=>{c-=1})}}function F(e){if(c>0)return null;let n=e.target;return!n||n===document.body?null:n}function N(e,n){if(!e||!n)return!1;if(e.contains(n))return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.contains(n)}function O(e,n){return!n||e.target!==n?null:e instanceof PointerEvent?e:new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,pointerType:"mouse",clientX:e.clientX,clientY:e.clientY,screenX:e.screenX,screenY:e.screenY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey})}0&&(module.exports={autoFocusEvent,backdropPointerDown,escapeLayer,focusOnOpen,focusOutsideEvent,focusOutsideTarget,handleEscapeKeyDown,nestedLayerContains,pushDismissLayer,topDismissLayer,triggerContains});
@@ -9,6 +9,13 @@ export interface DismissLayer {
9
9
  }
10
10
  /** Registers an open layer and returns its teardown; layers close out of order (a parent unmount takes its children), so the teardown removes by identity, not by position. */
11
11
  export declare function pushDismissLayer(layer: DismissLayer): () => void;
12
+ /**
13
+ * Whether `target` sits inside a layer that opened within `layer`: a portalled
14
+ * listbox or popover whose trigger lives in this panel. `contains()` cannot see
15
+ * it, so an outside-interaction check must ask the stack as well. Transitive,
16
+ * so a Select inside a Popover inside a Dialog still counts for the Dialog.
17
+ */
18
+ export declare function nestedLayerContains(layer: DismissLayer, target: Node): boolean;
12
19
  /** The layer nothing else is open inside: push order cannot rank nested layers, because a framework's effects run child-first. */
13
20
  export declare function topDismissLayer(candidates?: readonly DismissLayer[]): DismissLayer | undefined;
14
21
  /** The one layer an Escape belongs to: sibling non-modal layers can be open at once, so the layer holding the key's target answers, and the top layer only when none does. */
@@ -9,6 +9,13 @@ export interface DismissLayer {
9
9
  }
10
10
  /** Registers an open layer and returns its teardown; layers close out of order (a parent unmount takes its children), so the teardown removes by identity, not by position. */
11
11
  export declare function pushDismissLayer(layer: DismissLayer): () => void;
12
+ /**
13
+ * Whether `target` sits inside a layer that opened within `layer`: a portalled
14
+ * listbox or popover whose trigger lives in this panel. `contains()` cannot see
15
+ * it, so an outside-interaction check must ask the stack as well. Transitive,
16
+ * so a Select inside a Popover inside a Dialog still counts for the Dialog.
17
+ */
18
+ export declare function nestedLayerContains(layer: DismissLayer, target: Node): boolean;
12
19
  /** The layer nothing else is open inside: push order cannot rank nested layers, because a framework's effects run child-first. */
13
20
  export declare function topDismissLayer(candidates?: readonly DismissLayer[]): DismissLayer | undefined;
14
21
  /** The one layer an Escape belongs to: sibling non-modal layers can be open at once, so the layer holding the key's target answers, and the top layer only when none does. */
@@ -1 +1 @@
1
- var s=[];function i(e,n){return e.insideElements().some(t=>n.insideElements().some(o=>o&&t?.contains(o)))}function c(e){return s.push(e),()=>{let n=s.indexOf(e);n!==-1&&s.splice(n,1)}}function r(e=s){for(let n=e.length-1;n>=0;n--){let t=e[n];if(!e.some(o=>o!==t&&i(t,o)))return t}}function l(e){let n=e?s.filter(t=>t.insideElements().some(o=>o?.contains(e))):[];return r(n)??r()}function a(e,n,t){return e.key!=="Escape"||!t||l(e.target)!==n?!1:(t(e),e.preventDefault(),!0)}function f(e,n){if(!n)return!0;let t=new CustomEvent(e,{cancelable:!0,detail:null});return n(t),!t.defaultPrevented}function d(e){return new CustomEvent("focus-outside",{detail:e,cancelable:!0})}var u=0;function y(e){u+=1;try{e()}finally{queueMicrotask(()=>{u-=1})}}function p(e){if(u>0)return null;let n=e.target;return!n||n===document.body?null:n}function E(e,n){if(!e||!n)return!1;if(e.contains(n))return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.contains(n)}function m(e,n){return!n||e.target!==n?null:e instanceof PointerEvent?e:new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,pointerType:"mouse",clientX:e.clientX,clientY:e.clientY,screenX:e.screenX,screenY:e.screenY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey})}export{f as autoFocusEvent,m as backdropPointerDown,l as escapeLayer,y as focusOnOpen,d as focusOutsideEvent,p as focusOutsideTarget,a as handleEscapeKeyDown,c as pushDismissLayer,r as topDismissLayer,E as triggerContains};
1
+ var s=[];function c(e,n){let t=n;for(;t;){if(e.contains(t))return!0;let o=t.getRootNode();t=o instanceof ShadowRoot?o.host:null}return!1}function a(e,n){return e.insideElements().some(t=>n.insideElements().some(o=>o&&t&&c(t,o)))}function d(e){return s.push(e),()=>{let n=s.indexOf(e);n!==-1&&s.splice(n,1)}}function m(e,n){let t=new Set([e]),o=!0;for(;o;){o=!1;for(let u of s)t.has(u)||[...t].some(r=>a(r,u))&&(t.add(u),o=!0)}return t.delete(e),[...t].some(u=>u.insideElements().some(r=>r&&c(r,n)))}function l(e=s){for(let n=e.length-1;n>=0;n--){let t=e[n];if(!e.some(o=>o!==t&&a(t,o)))return t}}function f(e){let n=e?s.filter(t=>t.insideElements().some(o=>o?.contains(e))):[];return l(n)??l()}function y(e,n,t){return e.key!=="Escape"||!t||f(e.target)!==n?!1:(t(e),e.preventDefault(),!0)}function p(e,n){if(!n)return!0;let t=new CustomEvent(e,{cancelable:!0,detail:null});return n(t),!t.defaultPrevented}function E(e){return new CustomEvent("focus-outside",{detail:e,cancelable:!0})}var i=0;function b(e){i+=1;try{e()}finally{queueMicrotask(()=>{i-=1})}}function v(e){if(i>0)return null;let n=e.target;return!n||n===document.body?null:n}function x(e,n){if(!e||!n)return!1;if(e.contains(n))return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.contains(n)}function D(e,n){return!n||e.target!==n?null:e instanceof PointerEvent?e:new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,pointerType:"mouse",clientX:e.clientX,clientY:e.clientY,screenX:e.screenX,screenY:e.screenY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey})}export{p as autoFocusEvent,D as backdropPointerDown,f as escapeLayer,b as focusOnOpen,E as focusOutsideEvent,v as focusOutsideTarget,y as handleEscapeKeyDown,m as nestedLayerContains,d as pushDismissLayer,l as topDismissLayer,x as triggerContains};
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var q=(i,e)=>{for(var t in e)f(i,t,{get:e[t],enumerable:!0})},U=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of N(e))!H.call(i,n)&&n!==t&&f(i,n,{get:()=>e[n],enumerable:!(r=P(e,n))||r.enumerable});return i};var $=i=>U(f({},"__esModule",{value:!0}),i);var se={};q(se,{CHARACTER_COUNT_ANNOUNCE_DELAY_MS:()=>Y,ERROR_SUMMARY_RESCAN_EVENTS:()=>j,FIELD_CHARACTER_COUNT_ATTRIBUTE:()=>G,FIELD_CONTROL_ATTRIBUTE:()=>w,FIELD_CONTROL_SELECTOR:()=>I,FIELD_DESCRIPTION_ATTRIBUTE:()=>F,FIELD_ERROR_ATTRIBUTE:()=>L,FIELD_ERROR_SUMMARY_ATTRIBUTE:()=>D,FIELD_MESSAGE_ATTRIBUTE:()=>c,FIELD_NAME_ATTRIBUTE:()=>u,FIELD_PENDING_ATTRIBUTE:()=>v,FIELD_REQUIRED_INDICATOR_ATTRIBUTE:()=>z,FIELD_RESUBMIT_ATTRIBUTE:()=>h,FIELD_ROOT_ATTRIBUTE:()=>o,FIELD_VALIDITY_CHANGE_EVENT:()=>C,FORM_FIELD_ATTRIBUTE:()=>p,FORM_MESSAGE_ATTRIBUTE:()=>_,FieldController:()=>A,NATIVE_INVALID_FALLBACK_MESSAGE:()=>O,characterCountMessage:()=>M,characterCountVisible:()=>V,collectFieldErrors:()=>Z,errorSummaryScope:()=>X,findFieldControl:()=>x,focusFieldTarget:()=>ie,isFilled:()=>d,normalizeMessages:()=>b,readControlValue:()=>B,resetFields:()=>te,validateFields:()=>ee});module.exports=$(se);var C="validity-change",o="data-skdx-field",u="data-skdx-field-name",c="data-skdx-field-message",F="data-skdx-field-description",L="data-skdx-field-error",G="data-skdx-field-character-count",v="data-skdx-field-pending",h="data-skdx-field-resubmit",p="data-skdx-form-field",_="data-skdx-form-message",j=["validity-change","invalid","change","blur"],D="data-skdx-error-summary",Y=1e3;function M(i){let e=Math.abs(i),t=e===1?"character":"characters";return i<0?`You have ${e} ${t} too many`:`You have ${e} ${t} remaining`}function V(i,e,t=0){return t<=0?!0:i>=e*t/100}var O="This field is invalid.",w="data-skdx-field-control",I=[`[${w}]`,'input:not([type="hidden"])',"select","textarea",'[role="textbox"]','[role="searchbox"]','[role="combobox"]','[role="listbox"]','[role="radiogroup"]','[role="group"]','[role="slider"]','[role="spinbutton"]','[role="checkbox"]','[role="radio"]','[role="switch"]'].join(", "),z="data-skdx-field-required-indicator",K=new Set(["INPUT","SELECT","TEXTAREA"]),k=new Set(["radiogroup","group"]),Q=['input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function b(i){return i==null?[]:(Array.isArray(i)?i:[i]).filter(t=>typeof t=="string"&&t.trim()!=="")}function x(i){for(let e of Array.from(i.querySelectorAll(I)))if(e.getAttribute("aria-hidden")!=="true"&&e.closest(`[${o}]`)===i)return e;return null}function g(i,e){return E(i,o,e)}function E(i,e,t){for(let r of Array.from(i.querySelectorAll(t)))if(r.closest(`[${e}]`)===i)return r;return null}function B(i){if(!i)return;let e=i;return e.type==="checkbox"||e.type==="radio"?e.checked:"value"in i?e.value:i.querySelector('input[aria-hidden="true"]')?.value}function d(i){return i==null||i===!1||i===""?!1:!(Array.isArray(i)&&i.length===0)}function a(i,e,t){t?i.setAttribute(e,""):i.removeAttribute(e)}function R(i,...e){let t=i.split(/\s+/).filter(Boolean);for(let r of e)r&&!t.includes(r)&&t.push(r);return t.join(" ")}function X(i){return i.closest("form, skdx-form")??i.parentElement??i}function J(i){let e=x(i),r=g(i,`[${L}]`)?.textContent?.trim()||i.getAttribute(c)||i.getAttribute(u)||"";return!e?.id||!r?[]:[{id:e.id,message:r}]}function W(i){let e=E(i,p,I);if(!e?.id||e.getAttribute("aria-invalid")!=="true")return[];let r=E(i,p,`[${_}]:not([hidden])`)?.textContent?.trim()||i.getAttribute(u)||"";return r?[{id:e.id,message:r}]:[]}function Z(i){return Array.from(i.querySelectorAll(`[${o}][data-invalid], [${p}]`)).flatMap(t=>(t.hasAttribute(o)?J:W)(t))}var T="__skdxFieldCheckValidity",y="__skdxFieldReset";async function ee(i){let e=Array.from(i.querySelectorAll(`[${o}]`));return(await Promise.all(e.map(r=>r[T]?.()??Promise.resolve(!0)))).every(Boolean)}function te(i){for(let e of Array.from(i.querySelectorAll(`[${o}]`)))e[y]?.()}function ie(i,e=document){let t=e.getElementById(i);if(!t)return;let r=t.getAttribute("role"),s=(t.tagName==="FIELDSET"||r!==null&&k.has(r)?t.querySelector(Q):null)??t;s.focus(),s.scrollIntoView?.({block:"center"})}var A=class{constructor(e){this.options=e;this.props={};this.root=null;this.form=null;this.control=null;this.baseDescribedBy="";this.baseLabelledBy="";this.wroteLabelledBy=!1;this.wroteRequired=!1;this.wroteDisabled=!1;this.wroteGroupDisabled=!1;this.runToken=0;this.pending=!1;this.injected=[];this.custom=[];this.characterCount=null;this.awaitingSubmit=!1;this.handleInput=()=>{let e=this.isOverLimit(this.snapshot.count),t=this.readCount();this.update({dirty:!0,filled:d(this.resolveValue()),count:t,errors:this.composeErrors(t)}),this.scheduleCountAnnouncement(t,e),(this.props.mode==="change"||this.snapshot.errors.length>0)&&this.scheduleValidation()};this.handleFocusOut=()=>{let e=this.readCount();this.update({touched:!0,filled:d(this.resolveValue()),count:e,errors:this.composeErrors(e)});let t=this.validationTimer!==void 0;clearTimeout(this.validationTimer),this.validationTimer=void 0;let r=this.props.mode??"blur";(t||r==="blur"||this.snapshot.errors.length>0)&&this.runValidation()};this.handleSubmit=e=>{if(!this.form)return;let t=e.target;if(t!==this.form&&t?.closest?.("form")!==this.form||this.isEngineResubmit(e))return;this.markTouched();let r=this.runValidation({silent:this.hasErrorSummary()});if(S(r)){e.preventDefault(),this.awaitingSubmit=!0,Promise.resolve(r).then(()=>{this.awaitingSubmit&&(this.awaitingSubmit=!1,this.resubmitIfSettled())});return}(r.length>0||this.pending)&&e.preventDefault()};this.snapshot={controlId:"",errors:[],valid:!0,touched:!1,dirty:!1,filled:!1,count:0,validity:null}}get state(){return this.snapshot}setProps(e){let t=this.props.value;this.props=e;let r=b(e.errors??null),n=!re(this.injected,r);n&&(this.injected=r);let s=e.value!==t;if(!n&&!s)return;let l=this.readCount();this.update({count:l,filled:d(this.resolveValue()),errors:this.composeErrors(l)})}setCharacterCount(e){if((this.characterCount?.maxLength??null)===(e?.maxLength??null)&&(this.characterCount?.threshold??0)===(e?.threshold??0))return;this.characterCount=e;let r=this.readCount();this.update({count:r,errors:this.composeErrors(r)})}readCount(){let e=this.resolveValue();return typeof e=="string"?e.length:0}countMessage(e){return(this.props.getCharacterCountMessage??M)(e)}isOverLimit(e){return this.characterCount!==null&&e>this.characterCount.maxLength}composeErrors(e=this.snapshot.count){let t=[...this.injected,...this.custom];return this.characterCount&&this.isOverLimit(e)&&t.push(this.countMessage(this.characterCount.maxLength-e)),t}scheduleCountAnnouncement(e,t){let r=this.characterCount;if(!r)return;if(clearTimeout(this.announceTimer),this.isOverLimit(e)){t||this.options.announce(this.countMessage(r.maxLength-e),"assertive");return}if(!V(e,r.maxLength,r.threshold))return;let n=r.maxLength-e;this.announceTimer=setTimeout(()=>{this.options.announce(this.countMessage(n),"polite")},1e3)}connect(e){this.root=e,e.setAttribute(o,""),Object.defineProperty(e,T,{value:()=>this.validate(),configurable:!0,enumerable:!1,writable:!0}),Object.defineProperty(e,y,{value:()=>this.reset(),configurable:!0,enumerable:!1,writable:!0}),e.addEventListener("input",this.handleInput,!0),e.addEventListener("change",this.handleInput,!0),e.addEventListener("focusout",this.handleFocusOut,!0),this.form=e.closest("form"),this.form&&e.ownerDocument.addEventListener("submit",this.handleSubmit,!0),this.sync();let t=this.readCount();this.update({filled:d(this.resolveValue()),count:t,errors:this.composeErrors(t)})}disconnect(){clearTimeout(this.announceTimer),clearTimeout(this.validationTimer),this.validationTimer=void 0,this.awaitingSubmit=!1;let e=this.root;e&&(e.removeEventListener("input",this.handleInput,!0),e.removeEventListener("change",this.handleInput,!0),e.removeEventListener("focusout",this.handleFocusOut,!0),this.form&&e.ownerDocument.removeEventListener("submit",this.handleSubmit,!0),delete e[T],delete e[y],this.root=null,this.form=null,this.control=null)}sync(){let e=this.root;if(!e)return;let t=x(e);t!==this.control&&(this.control=t,this.baseDescribedBy=t?.getAttribute("aria-describedby")??"",this.baseLabelledBy=t?.getAttribute("aria-labelledby")??"",this.wroteLabelledBy=!1,this.wroteRequired=!1,this.wroteDisabled=!1,this.wroteGroupDisabled=!1);let{name:r}=this.props;r?e.setAttribute(u,r):e.removeAttribute(u);let n=this.snapshot.errors.join(" ");n?e.setAttribute(c,n):e.removeAttribute(c),this.applyStateAttributes(e),t&&(t.id||(t.id=this.options.controlId),t.id!==this.snapshot.controlId&&(this.snapshot={...this.snapshot,controlId:t.id,validity:this.readValidity()},this.options.onSnapshotChange(this.snapshot)),this.applyDescribedBy(e,t),this.snapshot.errors.length>0?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),this.applyLabelledBy(e,t),this.applyConstraintState(t),this.applyStateAttributes(t))}applyDescribedBy(e,t){let r=g(e,`[${F}]`)!==null,n=g(e,`[${L}]`)!==null,s=R(this.baseDescribedBy,r?this.options.descriptionId:void 0,n?this.options.errorId:void 0);s?t.setAttribute("aria-describedby",s):t.removeAttribute("aria-describedby")}applyLabelledBy(e,t){let r=e.ownerDocument.getElementById(this.options.labelId)!==null;this.options.grouped&&r?(t.setAttribute("aria-labelledby",R(this.baseLabelledBy,this.options.labelId)),this.wroteLabelledBy=!0):this.wroteLabelledBy&&(this.baseLabelledBy?t.setAttribute("aria-labelledby",this.baseLabelledBy):t.removeAttribute("aria-labelledby"),this.wroteLabelledBy=!1)}applyConstraintState(e){let t=K.has(e.tagName),r=this.props.required===!0,n=this.props.disabled===!0;r?(t?e.setAttribute("required",""):e.setAttribute("aria-required","true"),this.wroteRequired=!0):this.wroteRequired&&(e.removeAttribute(t?"required":"aria-required"),this.wroteRequired=!1),n?(t?e.setAttribute("disabled",""):e.setAttribute("aria-disabled","true"),this.wroteDisabled=!0):this.wroteDisabled&&(e.removeAttribute(t?"disabled":"aria-disabled"),this.wroteDisabled=!1),t||this.applyGroupDisabled(e,n)}applyGroupDisabled(e,t){let r=e.getAttribute("role");if(!(!(e.tagName==="FIELDSET"||r!==null&&k.has(r))||!t&&!this.wroteGroupDisabled)){for(let s of e.querySelectorAll("input, select, textarea, button"))t?s.setAttribute("disabled",""):s.removeAttribute("disabled");this.wroteGroupDisabled=t}}validate(){return Promise.resolve(this.runValidation()).then(e=>e.length===0)}reset(){this.injected=[],this.custom=[],this.pending=!1,this.awaitingSubmit=!1,this.runToken++,clearTimeout(this.announceTimer),clearTimeout(this.validationTimer),this.validationTimer=void 0,this.markPending(!1);let e=this.readCount();this.update({touched:!1,dirty:!1,count:e,filled:d(this.resolveValue()),errors:this.composeErrors(e)}),this.sync()}markTouched(){this.snapshot.touched||this.update({touched:!0})}applyStateAttributes(e){let{errors:t,touched:r,dirty:n,filled:s,count:l}=this.snapshot;a(e,"data-invalid",t.length>0),a(e,"data-valid",t.length===0),a(e,"data-touched",r),a(e,"data-dirty",n),a(e,"data-filled",s),a(e,"data-over-limit",this.isOverLimit(l)),a(e,"data-disabled",this.props.disabled===!0)}resolveValue(){return this.props.value!==void 0?this.props.value:B(this.control)}readValidity(){return this.control?.validity??null}markPending(e){this.root&&a(this.root,v,e)}nativeMessage(){let e=this.control;return!e?.validity||e.validity.valid?null:e.validationMessage||this.props.invalidMessage||O}runValidation(e={}){let t=++this.runToken,r=this.props.validate?.(this.resolveValue());return S(r)?(this.pending=!0,this.markPending(!0),Promise.resolve(r).then(n=>t!==this.runToken?this.snapshot.errors:(this.pending=!1,this.markPending(!1),this.commit(n,e)))):this.commit(r,e)}commit(e,t){if(this.custom=b(e),this.custom.length===0){let m=this.nativeMessage();m&&!this.injected.includes(m)&&(this.custom=[m])}let r=this.readCount(),n=this.composeErrors(r),s=this.snapshot.errors.length===0;this.update({errors:n,count:r,filled:d(this.resolveValue())});let l=n[0];return l&&s&&!t.silent&&this.options.announce(l,"assertive"),n}update(e){let t={...this.snapshot,...e,valid:!0,validity:this.readValidity()};t.valid=t.errors.length===0,!ne(this.snapshot,t)&&(this.snapshot=t,this.sync(),this.options.onSnapshotChange(t),this.root?.dispatchEvent(new CustomEvent(C,{bubbles:!0,composed:!0,detail:{valid:t.valid,errors:t.errors,touched:t.touched,dirty:t.dirty,filled:t.filled,count:t.count,validity:t.validity}})))}scheduleValidation(){clearTimeout(this.validationTimer),this.validationTimer=void 0;let e=this.props.mode==="change"?this.props.validationDebounceTime??0:0;if(e<=0){this.runValidation();return}this.validationTimer=setTimeout(()=>{this.validationTimer=void 0,this.runValidation()},e)}hasErrorSummary(){return this.form?.querySelector(`[${D}]`)!=null}isEngineResubmit(e){return this.form?.hasAttribute(h)?(this.snapshot.errors.length>0&&e.preventDefault(),!0):!1}resubmitIfSettled(){let e=this.form;if(!(!e||typeof e.requestSubmit!="function")&&!e.querySelector(`[${v}]`)&&!e.querySelector(`[${o}][data-invalid]`)){e.setAttribute(h,"");try{e.requestSubmit()}finally{e.removeAttribute(h)}}}};function S(i){return typeof i?.then=="function"}function re(i,e){return i.length===e.length&&i.every((t,r)=>t===e[r])}function ne(i,e){return i.controlId===e.controlId&&i.valid===e.valid&&i.touched===e.touched&&i.dirty===e.dirty&&i.filled===e.filled&&i.count===e.count&&i.validity===e.validity&&i.errors.length===e.errors.length&&i.errors.every((t,r)=>t===e.errors[r])}0&&(module.exports={CHARACTER_COUNT_ANNOUNCE_DELAY_MS,ERROR_SUMMARY_RESCAN_EVENTS,FIELD_CHARACTER_COUNT_ATTRIBUTE,FIELD_CONTROL_ATTRIBUTE,FIELD_CONTROL_SELECTOR,FIELD_DESCRIPTION_ATTRIBUTE,FIELD_ERROR_ATTRIBUTE,FIELD_ERROR_SUMMARY_ATTRIBUTE,FIELD_MESSAGE_ATTRIBUTE,FIELD_NAME_ATTRIBUTE,FIELD_PENDING_ATTRIBUTE,FIELD_REQUIRED_INDICATOR_ATTRIBUTE,FIELD_RESUBMIT_ATTRIBUTE,FIELD_ROOT_ATTRIBUTE,FIELD_VALIDITY_CHANGE_EVENT,FORM_FIELD_ATTRIBUTE,FORM_MESSAGE_ATTRIBUTE,FieldController,NATIVE_INVALID_FALLBACK_MESSAGE,characterCountMessage,characterCountVisible,collectFieldErrors,errorSummaryScope,findFieldControl,focusFieldTarget,isFilled,normalizeMessages,readControlValue,resetFields,validateFields});
1
+ "use strict";var m=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var q=(i,e)=>{for(var t in e)m(i,t,{get:e[t],enumerable:!0})},U=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of N(e))!H.call(i,n)&&n!==t&&m(i,n,{get:()=>e[n],enumerable:!(r=P(e,n))||r.enumerable});return i};var $=i=>U(m({},"__esModule",{value:!0}),i);var oe={};q(oe,{CHARACTER_COUNT_ANNOUNCE_DELAY_MS:()=>Y,ERROR_SUMMARY_RESCAN_EVENTS:()=>j,FIELD_CHARACTER_COUNT_ATTRIBUTE:()=>G,FIELD_CONTROL_ATTRIBUTE:()=>w,FIELD_CONTROL_SELECTOR:()=>x,FIELD_DESCRIPTION_ATTRIBUTE:()=>F,FIELD_ERROR_ATTRIBUTE:()=>L,FIELD_ERROR_SUMMARY_ATTRIBUTE:()=>D,FIELD_MESSAGE_ATTRIBUTE:()=>c,FIELD_NAME_ATTRIBUTE:()=>u,FIELD_PENDING_ATTRIBUTE:()=>v,FIELD_REQUIRED_INDICATOR_ATTRIBUTE:()=>K,FIELD_RESUBMIT_ATTRIBUTE:()=>h,FIELD_ROOT_ATTRIBUTE:()=>o,FIELD_VALIDITY_CHANGE_EVENT:()=>C,FORM_FIELD_ATTRIBUTE:()=>p,FORM_MESSAGE_ATTRIBUTE:()=>_,FieldController:()=>A,NATIVE_INVALID_FALLBACK_MESSAGE:()=>O,characterCountMessage:()=>M,characterCountVisible:()=>V,collectFieldErrors:()=>ee,errorSummaryScope:()=>J,findFieldControl:()=>I,focusFieldTarget:()=>re,isFilled:()=>d,joinFieldMessages:()=>z,normalizeMessages:()=>b,readControlValue:()=>B,resetFields:()=>ie,validateFields:()=>te});module.exports=$(oe);var C="validity-change",o="data-skdx-field",u="data-skdx-field-name",c="data-skdx-field-message",F="data-skdx-field-description",L="data-skdx-field-error",G="data-skdx-field-character-count",v="data-skdx-field-pending",h="data-skdx-field-resubmit",p="data-skdx-form-field",_="data-skdx-form-message",j=["validity-change","invalid","change","blur"],D="data-skdx-error-summary",Y=1e3;function M(i){let e=Math.abs(i),t=e===1?"character":"characters";return i<0?`You have ${e} ${t} too many`:`You have ${e} ${t} remaining`}function V(i,e,t=0){return t<=0?!0:i>=e*t/100}function z(i){return i.map((e,t)=>t===i.length-1||/[.!?]$/.test(e)?e:`${e}.`).join(" ")}var O="This field is invalid.",w="data-skdx-field-control",x=[`[${w}]`,'input:not([type="hidden"])',"select","textarea",'[role="textbox"]','[role="searchbox"]','[role="combobox"]','[role="listbox"]','[role="radiogroup"]','[role="group"]','[role="slider"]','[role="spinbutton"]','[role="checkbox"]','[role="radio"]','[role="switch"]'].join(", "),K="data-skdx-field-required-indicator",Q=new Set(["INPUT","SELECT","TEXTAREA"]),k=new Set(["radiogroup","group"]),X=['input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function b(i){return i==null?[]:(Array.isArray(i)?i:[i]).filter(t=>typeof t=="string"&&t.trim()!=="")}function I(i){for(let e of Array.from(i.querySelectorAll(x)))if(e.getAttribute("aria-hidden")!=="true"&&e.closest(`[${o}]`)===i)return e;return null}function g(i,e){return E(i,o,e)}function E(i,e,t){for(let r of Array.from(i.querySelectorAll(t)))if(r.closest(`[${e}]`)===i)return r;return null}function B(i){if(!i)return;let e=i;return e.type==="checkbox"||e.type==="radio"?e.checked:"value"in i?e.value:i.querySelector('input[aria-hidden="true"]')?.value}function d(i){return i==null||i===!1||i===""?!1:!(Array.isArray(i)&&i.length===0)}function a(i,e,t){t?i.setAttribute(e,""):i.removeAttribute(e)}function R(i,...e){let t=i.split(/\s+/).filter(Boolean);for(let r of e)r&&!t.includes(r)&&t.push(r);return t.join(" ")}function J(i){return i.closest("form, skdx-form")??i.parentElement??i}function W(i){let e=I(i),r=g(i,`[${L}]`)?.textContent?.trim()||i.getAttribute(c)||i.getAttribute(u)||"";return!e?.id||!r?[]:[{id:e.id,message:r}]}function Z(i){let e=E(i,p,x);if(!e?.id||e.getAttribute("aria-invalid")!=="true")return[];let r=E(i,p,`[${_}]:not([hidden])`)?.textContent?.trim()||i.getAttribute(u)||"";return r?[{id:e.id,message:r}]:[]}function ee(i){return Array.from(i.querySelectorAll(`[${o}][data-invalid], [${p}]`)).flatMap(t=>(t.hasAttribute(o)?W:Z)(t))}var T="__skdxFieldCheckValidity",y="__skdxFieldReset";async function te(i){let e=Array.from(i.querySelectorAll(`[${o}]`));return(await Promise.all(e.map(r=>r[T]?.()??Promise.resolve(!0)))).every(Boolean)}function ie(i){for(let e of Array.from(i.querySelectorAll(`[${o}]`)))e[y]?.()}function re(i,e=document){let t=e.getElementById(i);if(!t)return;let r=t.getAttribute("role"),s=(t.tagName==="FIELDSET"||r!==null&&k.has(r)?t.querySelector(X):null)??t;s.focus(),s.scrollIntoView?.({block:"center"})}var A=class{constructor(e){this.options=e;this.props={};this.root=null;this.form=null;this.control=null;this.baseDescribedBy="";this.baseLabelledBy="";this.wroteLabelledBy=!1;this.wroteRequired=!1;this.wroteDisabled=!1;this.wroteGroupDisabled=!1;this.runToken=0;this.pending=!1;this.injected=[];this.custom=[];this.characterCount=null;this.awaitingSubmit=!1;this.handleInput=()=>{let e=this.isOverLimit(this.snapshot.count),t=this.readCount();this.update({dirty:!0,filled:d(this.resolveValue()),count:t,errors:this.composeErrors(t)}),this.scheduleCountAnnouncement(t,e),(this.props.mode==="change"||this.snapshot.errors.length>0)&&this.scheduleValidation()};this.handleFocusOut=()=>{let e=this.readCount();this.update({touched:!0,filled:d(this.resolveValue()),count:e,errors:this.composeErrors(e)});let t=this.validationTimer!==void 0;clearTimeout(this.validationTimer),this.validationTimer=void 0;let r=this.props.mode??"blur";(t||r==="blur"||this.snapshot.errors.length>0)&&this.runValidation()};this.handleSubmit=e=>{if(!this.form)return;let t=e.target;if(t!==this.form&&t?.closest?.("form")!==this.form||this.isEngineResubmit(e))return;this.markTouched();let r=this.runValidation({silent:this.hasErrorSummary()});if(S(r)){e.preventDefault(),this.awaitingSubmit=!0,Promise.resolve(r).then(()=>{this.awaitingSubmit&&(this.awaitingSubmit=!1,this.resubmitIfSettled())});return}(r.length>0||this.pending)&&e.preventDefault()};this.snapshot={controlId:"",errors:[],valid:!0,touched:!1,dirty:!1,filled:!1,count:0,validity:null}}get state(){return this.snapshot}setProps(e){let t=this.props.value;this.props=e;let r=b(e.errors??null),n=!ne(this.injected,r);n&&(this.injected=r);let s=e.value!==t;if(!n&&!s)return;let l=this.readCount();this.update({count:l,filled:d(this.resolveValue()),errors:this.composeErrors(l)})}setCharacterCount(e){if((this.characterCount?.maxLength??null)===(e?.maxLength??null)&&(this.characterCount?.threshold??0)===(e?.threshold??0))return;this.characterCount=e;let r=this.readCount();this.update({count:r,errors:this.composeErrors(r)})}readCount(){let e=this.resolveValue();return typeof e=="string"?e.length:0}countMessage(e){return(this.props.getCharacterCountMessage??M)(e)}isOverLimit(e){return this.characterCount!==null&&e>this.characterCount.maxLength}composeErrors(e=this.snapshot.count){let t=[...this.injected,...this.custom];return this.characterCount&&this.isOverLimit(e)&&t.push(this.countMessage(this.characterCount.maxLength-e)),t}scheduleCountAnnouncement(e,t){let r=this.characterCount;if(!r)return;if(clearTimeout(this.announceTimer),this.isOverLimit(e)){t||this.options.announce(this.countMessage(r.maxLength-e),"assertive");return}if(!V(e,r.maxLength,r.threshold))return;let n=r.maxLength-e;this.announceTimer=setTimeout(()=>{this.options.announce(this.countMessage(n),"polite")},1e3)}connect(e){this.root=e,e.setAttribute(o,""),Object.defineProperty(e,T,{value:()=>this.validate(),configurable:!0,enumerable:!1,writable:!0}),Object.defineProperty(e,y,{value:()=>this.reset(),configurable:!0,enumerable:!1,writable:!0}),e.addEventListener("input",this.handleInput,!0),e.addEventListener("change",this.handleInput,!0),e.addEventListener("focusout",this.handleFocusOut,!0),this.form=e.closest("form"),this.form&&e.ownerDocument.addEventListener("submit",this.handleSubmit,!0),this.sync();let t=this.readCount();this.update({filled:d(this.resolveValue()),count:t,errors:this.composeErrors(t)})}disconnect(){clearTimeout(this.announceTimer),clearTimeout(this.validationTimer),this.validationTimer=void 0,this.awaitingSubmit=!1;let e=this.root;e&&(e.removeEventListener("input",this.handleInput,!0),e.removeEventListener("change",this.handleInput,!0),e.removeEventListener("focusout",this.handleFocusOut,!0),this.form&&e.ownerDocument.removeEventListener("submit",this.handleSubmit,!0),delete e[T],delete e[y],this.root=null,this.form=null,this.control=null)}sync(){let e=this.root;if(!e)return;let t=I(e);t!==this.control&&(this.control=t,this.baseDescribedBy=t?.getAttribute("aria-describedby")??"",this.baseLabelledBy=t?.getAttribute("aria-labelledby")??"",this.wroteLabelledBy=!1,this.wroteRequired=!1,this.wroteDisabled=!1,this.wroteGroupDisabled=!1);let{name:r}=this.props;r?e.setAttribute(u,r):e.removeAttribute(u);let n=this.snapshot.errors.join(" ");n?e.setAttribute(c,n):e.removeAttribute(c),this.applyStateAttributes(e),t&&(t.id||(t.id=this.options.controlId),t.id!==this.snapshot.controlId&&(this.snapshot={...this.snapshot,controlId:t.id,validity:this.readValidity()},this.options.onSnapshotChange(this.snapshot)),this.applyDescribedBy(e,t),this.snapshot.errors.length>0?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),this.applyLabelledBy(e,t),this.applyConstraintState(t),this.applyStateAttributes(t))}applyDescribedBy(e,t){let r=g(e,`[${F}]`)!==null,n=g(e,`[${L}]`)!==null,s=R(this.baseDescribedBy,r?this.options.descriptionId:void 0,n?this.options.errorId:void 0);s?t.setAttribute("aria-describedby",s):t.removeAttribute("aria-describedby")}applyLabelledBy(e,t){let r=e.ownerDocument.getElementById(this.options.labelId)!==null;this.options.grouped&&r?(t.setAttribute("aria-labelledby",R(this.baseLabelledBy,this.options.labelId)),this.wroteLabelledBy=!0):this.wroteLabelledBy&&(this.baseLabelledBy?t.setAttribute("aria-labelledby",this.baseLabelledBy):t.removeAttribute("aria-labelledby"),this.wroteLabelledBy=!1)}applyConstraintState(e){let t=Q.has(e.tagName),r=this.props.required===!0,n=this.props.disabled===!0;r?(t?e.setAttribute("required",""):e.setAttribute("aria-required","true"),this.wroteRequired=!0):this.wroteRequired&&(e.removeAttribute(t?"required":"aria-required"),this.wroteRequired=!1),n?(t?e.setAttribute("disabled",""):e.setAttribute("aria-disabled","true"),this.wroteDisabled=!0):this.wroteDisabled&&(e.removeAttribute(t?"disabled":"aria-disabled"),this.wroteDisabled=!1),t||this.applyGroupDisabled(e,n)}applyGroupDisabled(e,t){let r=e.getAttribute("role");if(!(!(e.tagName==="FIELDSET"||r!==null&&k.has(r))||!t&&!this.wroteGroupDisabled)){for(let s of e.querySelectorAll("input, select, textarea, button"))t?s.setAttribute("disabled",""):s.removeAttribute("disabled");this.wroteGroupDisabled=t}}validate(){return Promise.resolve(this.runValidation()).then(e=>e.length===0)}reset(){this.injected=[],this.custom=[],this.pending=!1,this.awaitingSubmit=!1,this.runToken++,clearTimeout(this.announceTimer),clearTimeout(this.validationTimer),this.validationTimer=void 0,this.markPending(!1);let e=this.readCount();this.update({touched:!1,dirty:!1,count:e,filled:d(this.resolveValue()),errors:this.composeErrors(e)}),this.sync()}markTouched(){this.snapshot.touched||this.update({touched:!0})}applyStateAttributes(e){let{errors:t,touched:r,dirty:n,filled:s,count:l}=this.snapshot;a(e,"data-invalid",t.length>0),a(e,"data-valid",t.length===0),a(e,"data-touched",r),a(e,"data-dirty",n),a(e,"data-filled",s),a(e,"data-over-limit",this.isOverLimit(l)),a(e,"data-disabled",this.props.disabled===!0)}resolveValue(){return this.props.value!==void 0?this.props.value:B(this.control)}readValidity(){return this.control?.validity??null}markPending(e){this.root&&a(this.root,v,e)}nativeMessage(){let e=this.control;return!e?.validity||e.validity.valid?null:e.validationMessage||this.props.invalidMessage||O}runValidation(e={}){let t=++this.runToken,r=this.props.validate?.(this.resolveValue());return S(r)?(this.pending=!0,this.markPending(!0),Promise.resolve(r).then(n=>t!==this.runToken?this.snapshot.errors:(this.pending=!1,this.markPending(!1),this.commit(n,e)))):this.commit(r,e)}commit(e,t){if(this.custom=b(e),this.custom.length===0){let f=this.nativeMessage();f&&!this.injected.includes(f)&&(this.custom=[f])}let r=this.readCount(),n=this.composeErrors(r),s=this.snapshot.errors.length===0;this.update({errors:n,count:r,filled:d(this.resolveValue())});let l=n[0];return l&&s&&!t.silent&&this.options.announce(l,"assertive"),n}update(e){let t={...this.snapshot,...e,valid:!0,validity:this.readValidity()};t.valid=t.errors.length===0,!se(this.snapshot,t)&&(this.snapshot=t,this.sync(),this.options.onSnapshotChange(t),this.root?.dispatchEvent(new CustomEvent(C,{bubbles:!0,composed:!0,detail:{valid:t.valid,errors:t.errors,touched:t.touched,dirty:t.dirty,filled:t.filled,count:t.count,validity:t.validity}})))}scheduleValidation(){clearTimeout(this.validationTimer),this.validationTimer=void 0;let e=this.props.mode==="change"?this.props.validationDebounceTime??0:0;if(e<=0){this.runValidation();return}this.validationTimer=setTimeout(()=>{this.validationTimer=void 0,this.runValidation()},e)}hasErrorSummary(){return this.form?.querySelector(`[${D}]`)!=null}isEngineResubmit(e){return this.form?.hasAttribute(h)?(this.snapshot.errors.length>0&&e.preventDefault(),!0):!1}resubmitIfSettled(){let e=this.form;if(!(!e||typeof e.requestSubmit!="function")&&!e.querySelector(`[${v}]`)&&!e.querySelector(`[${o}][data-invalid]`)){e.setAttribute(h,"");try{e.requestSubmit()}finally{e.removeAttribute(h)}}}};function S(i){return typeof i?.then=="function"}function ne(i,e){return i.length===e.length&&i.every((t,r)=>t===e[r])}function se(i,e){return i.controlId===e.controlId&&i.valid===e.valid&&i.touched===e.touched&&i.dirty===e.dirty&&i.filled===e.filled&&i.count===e.count&&i.validity===e.validity&&i.errors.length===e.errors.length&&i.errors.every((t,r)=>t===e.errors[r])}0&&(module.exports={CHARACTER_COUNT_ANNOUNCE_DELAY_MS,ERROR_SUMMARY_RESCAN_EVENTS,FIELD_CHARACTER_COUNT_ATTRIBUTE,FIELD_CONTROL_ATTRIBUTE,FIELD_CONTROL_SELECTOR,FIELD_DESCRIPTION_ATTRIBUTE,FIELD_ERROR_ATTRIBUTE,FIELD_ERROR_SUMMARY_ATTRIBUTE,FIELD_MESSAGE_ATTRIBUTE,FIELD_NAME_ATTRIBUTE,FIELD_PENDING_ATTRIBUTE,FIELD_REQUIRED_INDICATOR_ATTRIBUTE,FIELD_RESUBMIT_ATTRIBUTE,FIELD_ROOT_ATTRIBUTE,FIELD_VALIDITY_CHANGE_EVENT,FORM_FIELD_ATTRIBUTE,FORM_MESSAGE_ATTRIBUTE,FieldController,NATIVE_INVALID_FALLBACK_MESSAGE,characterCountMessage,characterCountVisible,collectFieldErrors,errorSummaryScope,findFieldControl,focusFieldTarget,isFilled,joinFieldMessages,normalizeMessages,readControlValue,resetFields,validateFields});