zabi-components 8.0.0 → 8.1.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 (364) hide show
  1. package/CHANGELOG.md +1924 -0
  2. package/README.md +243 -10
  3. package/THEME.md +149 -332
  4. package/THEMING.md +1192 -266
  5. package/dist/atoms/ActionPanel.svelte +15 -5
  6. package/dist/atoms/Avatar.svelte +104 -0
  7. package/dist/atoms/Avatar.svelte.d.ts +34 -0
  8. package/dist/atoms/Badge.svelte +36 -7
  9. package/dist/atoms/Badge.svelte.d.ts +2 -2
  10. package/dist/atoms/Button.svelte +177 -27
  11. package/dist/atoms/Button.svelte.d.ts +30 -2
  12. package/dist/atoms/Card.svelte +4 -4
  13. package/dist/atoms/CardHeader.svelte +16 -4
  14. package/dist/atoms/Checkbox.svelte +48 -21
  15. package/dist/atoms/Checkbox.svelte.d.ts +4 -2
  16. package/dist/atoms/CodeBlock.svelte +20 -2
  17. package/dist/atoms/CodeBlock.svelte.d.ts +4 -0
  18. package/dist/atoms/ColorPicker.svelte +259 -49
  19. package/dist/atoms/ColorPicker.svelte.d.ts +3 -0
  20. package/dist/atoms/Container.svelte +16 -8
  21. package/dist/atoms/DateField.svelte +107 -0
  22. package/dist/atoms/DateField.svelte.d.ts +53 -0
  23. package/dist/atoms/FieldMessages.svelte +69 -0
  24. package/dist/atoms/FieldMessages.svelte.d.ts +23 -0
  25. package/dist/atoms/FloatingActionButton.svelte +174 -0
  26. package/dist/atoms/FloatingActionButton.svelte.d.ts +51 -0
  27. package/dist/atoms/Heading.svelte +37 -5
  28. package/dist/atoms/Heading.svelte.d.ts +7 -0
  29. package/dist/atoms/IconButton.svelte +220 -24
  30. package/dist/atoms/IconButton.svelte.d.ts +49 -4
  31. package/dist/atoms/Input.svelte +253 -52
  32. package/dist/atoms/Input.svelte.d.ts +32 -2
  33. package/dist/atoms/List.svelte +4 -1
  34. package/dist/atoms/ListItem.svelte +44 -11
  35. package/dist/atoms/ListItem.svelte.d.ts +5 -0
  36. package/dist/atoms/Progress.svelte +27 -8
  37. package/dist/atoms/Progress.svelte.d.ts +4 -0
  38. package/dist/atoms/Radio.svelte +19 -3
  39. package/dist/atoms/Radio.svelte.d.ts +4 -2
  40. package/dist/atoms/Rating.svelte +494 -0
  41. package/dist/atoms/Rating.svelte.d.ts +56 -0
  42. package/dist/atoms/Select.svelte +433 -91
  43. package/dist/atoms/Select.svelte.d.ts +49 -3
  44. package/dist/atoms/SelectionControl.svelte +94 -17
  45. package/dist/atoms/SelectionControl.svelte.d.ts +4 -3
  46. package/dist/atoms/Skeleton.svelte +1 -1
  47. package/dist/atoms/Slider.svelte +309 -0
  48. package/dist/atoms/Slider.svelte.d.ts +40 -0
  49. package/dist/atoms/Spinner.svelte +57 -0
  50. package/dist/atoms/Spinner.svelte.d.ts +19 -0
  51. package/dist/atoms/Table.svelte +151 -6
  52. package/dist/atoms/Table.svelte.d.ts +15 -3
  53. package/dist/atoms/TemporalField.svelte +140 -0
  54. package/dist/atoms/TemporalField.svelte.d.ts +32 -0
  55. package/dist/atoms/Text.svelte +23 -11
  56. package/dist/atoms/Text.svelte.d.ts +6 -3
  57. package/dist/atoms/Textarea.svelte +55 -44
  58. package/dist/atoms/Textarea.svelte.d.ts +14 -2
  59. package/dist/atoms/ThemeToggle.svelte +223 -44
  60. package/dist/atoms/ThemeToggle.svelte.d.ts +26 -3
  61. package/dist/atoms/TimeField.svelte +108 -0
  62. package/dist/atoms/TimeField.svelte.d.ts +54 -0
  63. package/dist/atoms/Toast.svelte +17 -4
  64. package/dist/atoms/Toast.svelte.d.ts +2 -0
  65. package/dist/atoms/Toggle.svelte +41 -8
  66. package/dist/atoms/Toggle.svelte.d.ts +11 -2
  67. package/dist/atoms/Tooltip.svelte +508 -23
  68. package/dist/atoms/Tooltip.svelte.d.ts +11 -0
  69. package/dist/atoms/ZabiStringsProvider.svelte +45 -0
  70. package/dist/atoms/ZabiStringsProvider.svelte.d.ts +27 -0
  71. package/dist/atoms/index.d.ts +17 -0
  72. package/dist/atoms/index.js +12 -0
  73. package/dist/atoms/selection-control.styles.d.ts +36 -5
  74. package/dist/atoms/selection-control.styles.js +40 -9
  75. package/dist/components/atoms/index.d.ts +17 -0
  76. package/dist/components/atoms/index.d.ts.map +1 -1
  77. package/dist/components/atoms/selection-control.styles.d.ts +36 -5
  78. package/dist/components/atoms/selection-control.styles.d.ts.map +1 -1
  79. package/dist/components/index.d.ts +80 -2
  80. package/dist/components/index.d.ts.map +1 -1
  81. package/dist/components/molecules/index.d.ts +46 -0
  82. package/dist/components/molecules/index.d.ts.map +1 -1
  83. package/dist/components/molecules/toast-store.d.ts +53 -7
  84. package/dist/components/molecules/toast-store.d.ts.map +1 -1
  85. package/dist/components/organisms/index.d.ts +5 -0
  86. package/dist/components/organisms/index.d.ts.map +1 -1
  87. package/dist/components/types/variants.d.ts +15 -1
  88. package/dist/components/types/variants.d.ts.map +1 -1
  89. package/dist/components/util/app-shell.d.ts +28 -0
  90. package/dist/components/util/app-shell.d.ts.map +1 -0
  91. package/dist/components/util/avatar.d.ts +36 -0
  92. package/dist/components/util/avatar.d.ts.map +1 -0
  93. package/dist/components/util/bottom-sheet.d.ts +30 -0
  94. package/dist/components/util/bottom-sheet.d.ts.map +1 -0
  95. package/dist/components/util/bottom-tab-bar.d.ts +35 -0
  96. package/dist/components/util/bottom-tab-bar.d.ts.map +1 -0
  97. package/dist/components/util/calendar.d.ts +56 -0
  98. package/dist/components/util/calendar.d.ts.map +1 -0
  99. package/dist/components/util/collapsible.d.ts +58 -0
  100. package/dist/components/util/collapsible.d.ts.map +1 -0
  101. package/dist/components/util/confirm-dialog.d.ts +12 -0
  102. package/dist/components/util/confirm-dialog.d.ts.map +1 -0
  103. package/dist/components/util/date.d.ts +96 -0
  104. package/dist/components/util/date.d.ts.map +1 -0
  105. package/dist/components/util/drawer.d.ts +13 -0
  106. package/dist/components/util/drawer.d.ts.map +1 -0
  107. package/dist/components/util/dropdown.d.ts +47 -0
  108. package/dist/components/util/dropdown.d.ts.map +1 -0
  109. package/dist/components/util/field.d.ts +39 -0
  110. package/dist/components/util/field.d.ts.map +1 -0
  111. package/dist/components/util/fit-in-viewport.d.ts +201 -0
  112. package/dist/components/util/fit-in-viewport.d.ts.map +1 -0
  113. package/dist/components/util/focus-utils.d.ts +75 -2
  114. package/dist/components/util/focus-utils.d.ts.map +1 -1
  115. package/dist/components/util/hydration.d.ts +45 -0
  116. package/dist/components/util/hydration.d.ts.map +1 -0
  117. package/dist/components/util/keyboard-inset.d.ts +18 -0
  118. package/dist/components/util/keyboard-inset.d.ts.map +1 -0
  119. package/dist/components/util/media-grid.d.ts +51 -0
  120. package/dist/components/util/media-grid.d.ts.map +1 -0
  121. package/dist/components/util/media.d.ts +6 -0
  122. package/dist/components/util/media.d.ts.map +1 -0
  123. package/dist/components/util/overlay-chrome.d.ts +53 -0
  124. package/dist/components/util/overlay-chrome.d.ts.map +1 -0
  125. package/dist/components/util/overlay.d.ts +72 -0
  126. package/dist/components/util/overlay.d.ts.map +1 -0
  127. package/dist/components/util/photo.d.ts +215 -0
  128. package/dist/components/util/photo.d.ts.map +1 -0
  129. package/dist/components/util/portal.d.ts +23 -0
  130. package/dist/components/util/portal.d.ts.map +1 -0
  131. package/dist/components/util/pull-to-refresh.d.ts +27 -0
  132. package/dist/components/util/pull-to-refresh.d.ts.map +1 -0
  133. package/dist/components/util/radio-keys.d.ts +25 -0
  134. package/dist/components/util/radio-keys.d.ts.map +1 -0
  135. package/dist/components/util/rating.d.ts +23 -0
  136. package/dist/components/util/rating.d.ts.map +1 -0
  137. package/dist/components/util/ready-made-strings.d.ts +77 -0
  138. package/dist/components/util/ready-made-strings.d.ts.map +1 -0
  139. package/dist/components/util/scroll-padding.d.ts +20 -0
  140. package/dist/components/util/scroll-padding.d.ts.map +1 -0
  141. package/dist/components/util/segmented-control.d.ts +16 -0
  142. package/dist/components/util/segmented-control.d.ts.map +1 -0
  143. package/dist/components/util/select.d.ts +41 -0
  144. package/dist/components/util/select.d.ts.map +1 -0
  145. package/dist/components/util/sheet-drag.d.ts +60 -0
  146. package/dist/components/util/sheet-drag.d.ts.map +1 -0
  147. package/dist/components/util/sidebar.d.ts +63 -0
  148. package/dist/components/util/sidebar.d.ts.map +1 -0
  149. package/dist/components/util/sortable-list.d.ts +65 -0
  150. package/dist/components/util/sortable-list.d.ts.map +1 -0
  151. package/dist/components/util/stepper.d.ts +40 -0
  152. package/dist/components/util/stepper.d.ts.map +1 -0
  153. package/dist/components/util/swipeable-list-item.d.ts +36 -0
  154. package/dist/components/util/swipeable-list-item.d.ts.map +1 -0
  155. package/dist/components/util/theme-mode.d.ts +80 -0
  156. package/dist/components/util/theme-mode.d.ts.map +1 -0
  157. package/dist/components/util/toaster.d.ts +93 -0
  158. package/dist/components/util/toaster.d.ts.map +1 -0
  159. package/dist/components/util/tooltip.d.ts +10 -0
  160. package/dist/components/util/tooltip.d.ts.map +1 -0
  161. package/dist/components/util/top-navbar.d.ts +11 -0
  162. package/dist/components/util/top-navbar.d.ts.map +1 -0
  163. package/dist/components/util/touch-target.d.ts +31 -0
  164. package/dist/components/util/touch-target.d.ts.map +1 -0
  165. package/dist/components/util/zabi-strings.d.ts +133 -0
  166. package/dist/components/util/zabi-strings.d.ts.map +1 -0
  167. package/dist/create-theme/cli.js +169 -0
  168. package/dist/create-theme/index.d.ts +176 -0
  169. package/dist/create-theme/index.js +817 -0
  170. package/dist/create-theme/lib/ramp-math.js +128 -0
  171. package/dist/create-theme/lib/resolve.js +141 -0
  172. package/dist/create-theme/theme-data.js +1116 -0
  173. package/dist/index.d.ts +80 -2
  174. package/dist/index.js +57 -2
  175. package/dist/molecules/Alert.svelte +33 -5
  176. package/dist/molecules/Alert.svelte.d.ts +2 -0
  177. package/dist/molecules/AppBar.svelte +415 -0
  178. package/dist/molecules/AppBar.svelte.d.ts +69 -0
  179. package/dist/molecules/AvatarGroup.svelte +116 -0
  180. package/dist/molecules/AvatarGroup.svelte.d.ts +40 -0
  181. package/dist/molecules/BottomSheet.svelte +540 -0
  182. package/dist/molecules/BottomSheet.svelte.d.ts +93 -0
  183. package/dist/molecules/BottomTabBar.svelte +297 -0
  184. package/dist/molecules/BottomTabBar.svelte.d.ts +64 -0
  185. package/dist/molecules/Calendar.svelte +597 -0
  186. package/dist/molecules/Calendar.svelte.d.ts +72 -0
  187. package/dist/molecules/Collapsible.svelte +243 -0
  188. package/dist/molecules/Collapsible.svelte.d.ts +44 -0
  189. package/dist/molecules/CollapsibleGroup.svelte +126 -0
  190. package/dist/molecules/CollapsibleGroup.svelte.d.ts +14 -0
  191. package/dist/molecules/ComponentDemo.svelte +16 -4
  192. package/dist/molecules/ComponentDemo.svelte.d.ts +3 -0
  193. package/dist/molecules/ConfirmDialog.svelte +253 -0
  194. package/dist/molecules/ConfirmDialog.svelte.d.ts +55 -0
  195. package/dist/molecules/ContactForm.svelte +34 -17
  196. package/dist/molecules/ContactForm.svelte.d.ts +8 -0
  197. package/dist/molecules/Drawer.svelte +394 -0
  198. package/dist/molecules/Drawer.svelte.d.ts +55 -0
  199. package/dist/molecules/Dropdown.svelte +509 -48
  200. package/dist/molecules/Dropdown.svelte.d.ts +45 -6
  201. package/dist/molecules/DropdownItem.svelte +122 -0
  202. package/dist/molecules/DropdownItem.svelte.d.ts +28 -0
  203. package/dist/molecules/EmptyState.svelte +55 -10
  204. package/dist/molecules/EmptyState.svelte.d.ts +8 -0
  205. package/dist/molecules/FormField.svelte +9 -1
  206. package/dist/molecules/FormField.svelte.d.ts +2 -0
  207. package/dist/molecules/Header.svelte +1 -1
  208. package/dist/molecules/ImageUpload.svelte +383 -70
  209. package/dist/molecules/ImageUpload.svelte.d.ts +47 -2
  210. package/dist/molecules/MediaGrid.svelte +527 -0
  211. package/dist/molecules/MediaGrid.svelte.d.ts +77 -0
  212. package/dist/molecules/Modal.svelte +288 -72
  213. package/dist/molecules/Modal.svelte.d.ts +51 -2
  214. package/dist/molecules/NavigationMenuContent.svelte +58 -1
  215. package/dist/molecules/NavigationMenuItem.svelte +0 -1
  216. package/dist/molecules/NavigationMenuLink.svelte +1 -1
  217. package/dist/molecules/NavigationMenuList.svelte +10 -3
  218. package/dist/molecules/NavigationMenuTrigger.svelte +2 -2
  219. package/dist/molecules/Page.svelte +32 -2
  220. package/dist/molecules/Page.svelte.d.ts +11 -0
  221. package/dist/molecules/PhotoGrid.svelte +433 -0
  222. package/dist/molecules/PhotoGrid.svelte.d.ts +62 -0
  223. package/dist/molecules/PhotoViewer.svelte +1116 -0
  224. package/dist/molecules/PhotoViewer.svelte.d.ts +56 -0
  225. package/dist/molecules/PropsTable.svelte +22 -10
  226. package/dist/molecules/PropsTable.svelte.d.ts +3 -0
  227. package/dist/molecules/PullToRefresh.svelte +263 -0
  228. package/dist/molecules/PullToRefresh.svelte.d.ts +52 -0
  229. package/dist/molecules/RadioGroup.svelte +52 -14
  230. package/dist/molecules/RadioGroup.svelte.d.ts +14 -3
  231. package/dist/molecules/Section.svelte +1 -1
  232. package/dist/molecules/SegmentedControl.svelte +323 -0
  233. package/dist/molecules/SegmentedControl.svelte.d.ts +34 -0
  234. package/dist/molecules/SidebarBrandHeader.svelte +11 -1
  235. package/dist/molecules/SidebarBrandHeader.svelte.d.ts +3 -0
  236. package/dist/molecules/SidebarFooter.svelte +29 -6
  237. package/dist/molecules/SidebarFooter.svelte.d.ts +3 -0
  238. package/dist/molecules/SlideUp.svelte +220 -61
  239. package/dist/molecules/SlideUp.svelte.d.ts +26 -0
  240. package/dist/molecules/SortableList.svelte +632 -0
  241. package/dist/molecules/SortableList.svelte.d.ts +69 -0
  242. package/dist/molecules/Stepper.svelte +548 -0
  243. package/dist/molecules/Stepper.svelte.d.ts +39 -0
  244. package/dist/molecules/StickyActionBar.svelte +191 -0
  245. package/dist/molecules/StickyActionBar.svelte.d.ts +65 -0
  246. package/dist/molecules/SwipeableListItem.svelte +334 -0
  247. package/dist/molecules/SwipeableListItem.svelte.d.ts +54 -0
  248. package/dist/molecules/Tabs.svelte +233 -9
  249. package/dist/molecules/Tabs.svelte.d.ts +7 -0
  250. package/dist/molecules/Toaster.svelte +350 -5
  251. package/dist/molecules/Toaster.svelte.d.ts +95 -2
  252. package/dist/molecules/ToasterToast.svelte +253 -67
  253. package/dist/molecules/ToasterToast.svelte.d.ts +9 -0
  254. package/dist/molecules/UnsavedChangesBar.svelte +212 -0
  255. package/dist/molecules/UnsavedChangesBar.svelte.d.ts +43 -0
  256. package/dist/molecules/index.d.ts +46 -0
  257. package/dist/molecules/index.js +27 -0
  258. package/dist/molecules/toast-store.d.ts +53 -7
  259. package/dist/molecules/toast-store.js +21 -0
  260. package/dist/organisms/AppShell.svelte +196 -0
  261. package/dist/organisms/AppShell.svelte.d.ts +61 -0
  262. package/dist/organisms/SidebarAccountPanel.svelte +107 -12
  263. package/dist/organisms/SidebarAccountPanel.svelte.d.ts +19 -0
  264. package/dist/organisms/SidebarNavigation.svelte +96 -15
  265. package/dist/organisms/SidebarNavigation.svelte.d.ts +29 -1
  266. package/dist/organisms/SidebarPanel.svelte +31 -10
  267. package/dist/organisms/SidebarShell.svelte +162 -11
  268. package/dist/organisms/SidebarShell.svelte.d.ts +56 -2
  269. package/dist/organisms/TopNavbar.svelte +256 -31
  270. package/dist/organisms/TopNavbar.svelte.d.ts +26 -0
  271. package/dist/organisms/index.d.ts +5 -0
  272. package/dist/organisms/index.js +3 -0
  273. package/dist/types/components.d.ts +4 -0
  274. package/dist/types/components.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +605 -25
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/dist/types/variants.ts +17 -1
  278. package/dist/util/app-shell.d.ts +27 -0
  279. package/dist/util/app-shell.js +72 -0
  280. package/dist/util/avatar.d.ts +35 -0
  281. package/dist/util/avatar.js +52 -0
  282. package/dist/util/bottom-sheet.d.ts +29 -0
  283. package/dist/util/bottom-sheet.js +43 -0
  284. package/dist/util/bottom-tab-bar.d.ts +34 -0
  285. package/dist/util/bottom-tab-bar.js +54 -0
  286. package/dist/util/calendar.d.ts +55 -0
  287. package/dist/util/calendar.js +74 -0
  288. package/dist/util/collapsible.d.ts +57 -0
  289. package/dist/util/collapsible.js +23 -0
  290. package/dist/util/confirm-dialog.d.ts +11 -0
  291. package/dist/util/confirm-dialog.js +2 -0
  292. package/dist/util/date.d.ts +95 -0
  293. package/dist/util/date.js +237 -0
  294. package/dist/util/drawer.d.ts +12 -0
  295. package/dist/util/drawer.js +7 -0
  296. package/dist/util/dropdown.d.ts +46 -0
  297. package/dist/util/dropdown.js +21 -0
  298. package/dist/util/field.d.ts +38 -0
  299. package/dist/util/field.js +38 -0
  300. package/dist/util/fit-in-viewport.d.ts +200 -0
  301. package/dist/util/fit-in-viewport.js +399 -0
  302. package/dist/util/focus-utils.d.ts +75 -2
  303. package/dist/util/focus-utils.js +182 -9
  304. package/dist/util/hydration.d.ts +44 -0
  305. package/dist/util/hydration.js +58 -0
  306. package/dist/util/keyboard-inset.d.ts +17 -0
  307. package/dist/util/keyboard-inset.js +53 -0
  308. package/dist/util/media-grid.d.ts +50 -0
  309. package/dist/util/media-grid.js +81 -0
  310. package/dist/util/media.d.ts +5 -0
  311. package/dist/util/media.js +10 -0
  312. package/dist/util/overlay-chrome.d.ts +52 -0
  313. package/dist/util/overlay-chrome.js +56 -0
  314. package/dist/util/overlay.d.ts +71 -0
  315. package/dist/util/overlay.js +240 -0
  316. package/dist/util/photo.d.ts +214 -0
  317. package/dist/util/photo.js +206 -0
  318. package/dist/util/portal.d.ts +22 -0
  319. package/dist/util/portal.js +50 -0
  320. package/dist/util/pull-to-refresh.d.ts +26 -0
  321. package/dist/util/pull-to-refresh.js +30 -0
  322. package/dist/util/radio-keys.d.ts +24 -0
  323. package/dist/util/radio-keys.js +49 -0
  324. package/dist/util/rating.d.ts +22 -0
  325. package/dist/util/rating.js +26 -0
  326. package/dist/util/ready-made-strings.d.ts +76 -0
  327. package/dist/util/ready-made-strings.js +67 -0
  328. package/dist/util/scroll-padding.d.ts +19 -0
  329. package/dist/util/scroll-padding.js +44 -0
  330. package/dist/util/segmented-control.d.ts +15 -0
  331. package/dist/util/segmented-control.js +1 -0
  332. package/dist/util/select.d.ts +40 -0
  333. package/dist/util/select.js +63 -0
  334. package/dist/util/sheet-drag.d.ts +59 -0
  335. package/dist/util/sheet-drag.js +241 -0
  336. package/dist/util/sidebar.d.ts +62 -0
  337. package/dist/util/sidebar.js +38 -0
  338. package/dist/util/sortable-list.d.ts +64 -0
  339. package/dist/util/sortable-list.js +53 -0
  340. package/dist/util/stepper.d.ts +39 -0
  341. package/dist/util/stepper.js +38 -0
  342. package/dist/util/swipeable-list-item.d.ts +35 -0
  343. package/dist/util/swipeable-list-item.js +32 -0
  344. package/dist/util/theme-mode.d.ts +79 -0
  345. package/dist/util/theme-mode.js +121 -0
  346. package/dist/util/toaster.d.ts +92 -0
  347. package/dist/util/toaster.js +75 -0
  348. package/dist/util/tooltip.d.ts +9 -0
  349. package/dist/util/tooltip.js +18 -0
  350. package/dist/util/top-navbar.d.ts +10 -0
  351. package/dist/util/top-navbar.js +5 -0
  352. package/dist/util/touch-target.d.ts +30 -0
  353. package/dist/util/touch-target.js +30 -0
  354. package/dist/util/zabi-strings.d.ts +132 -0
  355. package/dist/util/zabi-strings.js +105 -0
  356. package/dist/zabi-components-colors.css +5 -2
  357. package/dist/zabi-components-theme-dark-only.css +543 -241
  358. package/dist/zabi-components-theme-dark.css +543 -241
  359. package/dist/zabi-components-theme-only.css +1584 -367
  360. package/dist/zabi-components-theme.css +1584 -367
  361. package/dist/zabi-components.css +3885 -518
  362. package/docs/lucide-icons.md +40 -17
  363. package/docs/theme-imports.md +81 -11
  364. package/package.json +35 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/util/sidebar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4BAA4B;AAC5B,MAAM,WAAW,yBAAyB;IACtC,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,oCAAoC,EAAE,yBAElD,CAAC;AAEF,uBAAuB;AACvB,MAAM,WAAW,oBAAoB;IACjC,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACjD;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,0BAA0B;IACvC,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,qCAAqC,EAAE,0BAenD,CAAC;AAEF,8FAA8F;AAC9F,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB,EAAE,yBAAyB;IAC7F,iFAAiF;IACjF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAED,eAAO,MAAM,kCAAkC,EAAE,wBAQhD,CAAC"}
@@ -0,0 +1,65 @@
1
+ /** Types and pure helpers for `SortableList`. Kept out of the component so they can be tested without a DOM. */
2
+ import type { Snippet } from "svelte";
3
+ /** Payload of `onreorder`: which item moved, and between which zero-based indexes. */
4
+ export interface SortableListReorderDetail<T> {
5
+ item: T;
6
+ from: number;
7
+ to: number;
8
+ /** The list in its new order (the same array `bind:items` receives). */
9
+ items: T[];
10
+ }
11
+ /** What a live-region message is built from. `position` is one-based. */
12
+ export interface SortableListAnnouncement {
13
+ label: string;
14
+ position: number;
15
+ total: number;
16
+ }
17
+ /** Second argument of the `item` snippet. */
18
+ export interface SortableListRow {
19
+ /** Zero-based index in the current order. */
20
+ index: number;
21
+ /** True while this row is being dragged with a pointer. */
22
+ dragging: boolean;
23
+ /** True when the list or this item is disabled. */
24
+ disabled: boolean;
25
+ /** The drag handle. Render it yourself when `controls="manual"`. */
26
+ handle: Snippet;
27
+ /** The move up / move down buttons. Render them yourself when `controls="manual"`. */
28
+ moveButtons: Snippet;
29
+ }
30
+ /** Every built-in string. Pass a partial object to `strings` to translate. */
31
+ export interface SortableListStrings {
32
+ /** Accessible name of the drag handle. */
33
+ handleLabel: (label: string) => string;
34
+ /** How to use the handle; referenced by every handle through `aria-describedby`. */
35
+ handleDescription: string;
36
+ moveUp: (label: string) => string;
37
+ moveDown: (label: string) => string;
38
+ /** Announced after every move. */
39
+ moved: (detail: SortableListAnnouncement) => string;
40
+ /** Announced when Escape (or a cancelled pointer) abandons a drag. */
41
+ cancelled: (detail: SortableListAnnouncement) => string;
42
+ /** Announced when Arrow Up or Home is pressed on the first item. */
43
+ atStart: (detail: SortableListAnnouncement) => string;
44
+ /** Announced when Arrow Down or End is pressed on the last item. */
45
+ atEnd: (detail: SortableListAnnouncement) => string;
46
+ }
47
+ export declare const SORTABLE_LIST_STRINGS: SortableListStrings;
48
+ /** A copy of `items` with the entry at `from` moved to `to`. Out-of-range indexes are clamped. */
49
+ export declare function moveItem<T>(items: readonly T[], from: number, to: number): T[];
50
+ /** Top edge and height of a row, measured once when a drag starts. */
51
+ export interface SortableSlot {
52
+ top: number;
53
+ height: number;
54
+ }
55
+ /**
56
+ * Index the dragged row would land on, given how far it has travelled.
57
+ *
58
+ * A row below counts as passed once the dragged row's bottom edge crosses its
59
+ * centre, and a row above once the top edge does. Both are read from the
60
+ * positions measured at drag start, so the answer depends on the pointer
61
+ * alone: rows sliding out of the way cannot feed back into it and make the
62
+ * target flicker, which is what happens when the live positions are compared.
63
+ */
64
+ export declare function dropIndex(slots: readonly SortableSlot[], from: number, offset: number): number;
65
+ //# sourceMappingURL=sortable-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortable-list.d.ts","sourceRoot":"","sources":["../../../src/components/util/sortable-list.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,sFAAsF;AACtF,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,KAAK,EAAE,CAAC,EAAE,CAAC;CACd;AAED,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC5B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAChC,0CAA0C;IAC1C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,kCAAkC;IAClC,KAAK,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACpD,sEAAsE;IACtE,SAAS,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACxD,oEAAoE;IACpE,OAAO,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACtD,oEAAoE;IACpE,KAAK,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,MAAM,CAAC;CACvD;AAED,eAAO,MAAM,qBAAqB,EAAE,mBAcnC,CAAC;AAEF,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAO9E;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACrB,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,MAAM,CAeR"}
@@ -0,0 +1,40 @@
1
+ /** Types and pure helpers for `Stepper`. Kept out of the component so they can be tested without a DOM. */
2
+ /** One step: a label, and optionally a line under it. A plain string is a step with only a label. */
3
+ export interface StepperStep {
4
+ label: string;
5
+ /** A short line under the label in the full layout, and under the current step's name in the compact one. */
6
+ description?: string;
7
+ }
8
+ /** A step as the `steps` prop takes it. */
9
+ export type StepperItem = string | StepperStep;
10
+ /** Where a step is in the flow. */
11
+ export type StepperStepState = "completed" | "current" | "upcoming";
12
+ export type StepperLayout = "auto" | "full" | "compact";
13
+ /**
14
+ * Every built-in string. Pass a partial object to `strings` to translate.
15
+ * `step` is counted from 1 in all of them.
16
+ */
17
+ export interface StepperStrings {
18
+ /** The visible start of the compact line: "Step 2 of 3". */
19
+ position: (step: number, total: number) => string;
20
+ /**
21
+ * What a screen reader reads for a step, and the name of its button when
22
+ * the step is one: "Step 1 of 3: Details, completed".
23
+ */
24
+ stepLabel: (step: number, total: number, label: string, state: StepperStepState) => string;
25
+ /** Read out, politely, when the current step changes: "Step 2 of 3: Ratings". */
26
+ announcement: (step: number, total: number, label: string) => string;
27
+ }
28
+ export declare const STEPPER_STRINGS: StepperStrings;
29
+ /** Strings and objects alike, as objects. */
30
+ export declare function normalizeSteps(steps: readonly StepperItem[] | null | undefined): StepperStep[];
31
+ /**
32
+ * The index of the step that is shown as current: `current` as a whole number
33
+ * held within the steps. Below the first step it is the first, past the last
34
+ * it is the last, and something that is not a number is the first. `-1` when
35
+ * there are no steps.
36
+ */
37
+ export declare function clampStep(current: number | null | undefined, total: number): number;
38
+ /** The state of the step at `index` when the step at `current` is the current one. */
39
+ export declare function stepState(index: number, current: number): StepperStepState;
40
+ //# sourceMappingURL=stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/components/util/stepper.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAE3G,qGAAqG;AACrG,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,6GAA6G;IAC7G,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/C,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC3F,iFAAiF;IACjF,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACxE;AAQD,eAAO,MAAM,eAAe,EAAE,cAK7B,CAAC;AAEF,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAE9F;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnF;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAG1E"}
@@ -0,0 +1,36 @@
1
+ import type { Component } from "svelte";
2
+ /** Public types and shared state for `SwipeableListItem`. */
3
+ /** One action behind a row, such as Delete. */
4
+ export interface SwipeableListItemAction {
5
+ id: string;
6
+ /** The button's text, and its accessible name. */
7
+ label: string;
8
+ /** Drawn above the label. */
9
+ icon?: Component<{
10
+ size?: number;
11
+ class?: string;
12
+ }>;
13
+ /** `danger` for an action that destroys something. */
14
+ tone?: "default" | "danger";
15
+ /** Runs when the button is pressed. The row closes afterwards. */
16
+ onselect: () => void;
17
+ }
18
+ /** The words a `SwipeableListItem` says by itself. */
19
+ export interface SwipeableListItemStrings {
20
+ /** Accessible name of the button that opens the row's actions, and of the group they are in. */
21
+ actions: string;
22
+ }
23
+ export declare const DEFAULT_SWIPEABLE_LIST_ITEM_STRINGS: SwipeableListItemStrings;
24
+ /**
25
+ * Says that a row has opened: every other open row in the same list closes.
26
+ * Returns what to call when this row closes or goes away.
27
+ */
28
+ export declare function registerOpenRow(root: HTMLElement, close: () => void): () => void;
29
+ /**
30
+ * Where a swipe ends: open or closed. A flick decides by its direction,
31
+ * whatever the distance; otherwise the row goes to whichever is nearer.
32
+ * `revealed` and `width` are px of the actions; `velocity` is px per ms,
33
+ * positive towards revealing.
34
+ */
35
+ export declare function settleSwipe(revealed: number, width: number, velocity: number, flick: number): boolean;
36
+ //# sourceMappingURL=swipeable-list-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipeable-list-item.d.ts","sourceRoot":"","sources":["../../../src/components/util/swipeable-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,6DAA6D;AAE7D,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,sDAAsD;IACtD,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACrC,gGAAgG;IAChG,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,mCAAmC,EAAE,wBAEjD,CAAC;AAaF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQhF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The page's theme mode, read and written in one place.
3
+ *
4
+ * The theme is switched on `<html>`: `data-theme="auto" | "light" | "dark"`,
5
+ * or the older `dark` class (THEMING.md, "Light, dark and auto"). ThemeToggle
6
+ * uses these helpers, and so can an app that renders a control of its own, a
7
+ * SegmentedControl with three options for instance: both then read and write
8
+ * the same attribute, and ThemeToggle follows whatever the other one sets.
9
+ *
10
+ * Everything here is safe to call on the server: without a document the
11
+ * readers return the default and the writers do nothing.
12
+ */
13
+ /** `"auto"` follows the system; the other two are a choice. */
14
+ export type ThemeMode = "auto" | "light" | "dark";
15
+ /** The modes in the order a three-way ThemeToggle steps through them. */
16
+ export declare const THEME_MODES: readonly ThemeMode[];
17
+ /** Where the choice is kept in `localStorage` unless a key is given. The key ThemeToggle has always used. */
18
+ export declare const DEFAULT_THEME_STORAGE_KEY = "theme";
19
+ /** The texts ThemeToggle builds its accessible name from. Pass any of them as `labels`. */
20
+ export interface ThemeToggleLabels {
21
+ /** What `"auto"` is called, with three modes. Default `"system"`. */
22
+ auto: string;
23
+ /** Default `"light"`. */
24
+ light: string;
25
+ /** Default `"dark"`. */
26
+ dark: string;
27
+ /**
28
+ * The name with three modes, from the current mode's word and the next
29
+ * one's. Default: "Theme: system. Switch to light".
30
+ */
31
+ describe: (current: string, next: string) => string;
32
+ /**
33
+ * The name with two modes. It does not change: the button is a switch, and
34
+ * `aria-pressed` says whether dark is on. Default "Dark mode".
35
+ */
36
+ darkMode: string;
37
+ /** The name before the button mounts, when the mode is not known yet. Default "Theme toggle". */
38
+ beforeMount: string;
39
+ }
40
+ export declare function isThemeMode(value: unknown): value is ThemeMode;
41
+ /**
42
+ * The mode the page is in. `data-theme` says it outright; a page without the
43
+ * attribute is dark with the `dark` class and light without it (such a page
44
+ * does not follow the system, so it is never `"auto"`).
45
+ */
46
+ export declare function getThemeMode(): ThemeMode;
47
+ /** Whether the page is dark right now: by the class, by `data-theme="dark"`, or by `auto` on a dark system. */
48
+ export declare function isThemeDark(): boolean;
49
+ export interface SetThemeModeOptions {
50
+ /**
51
+ * Where to keep the choice in `localStorage`. Default `"theme"`; `null`
52
+ * keeps nothing (an app that stores the choice in its own backend).
53
+ */
54
+ storageKey?: string | null;
55
+ }
56
+ /**
57
+ * Puts the page in `mode` by writing `data-theme` on `<html>`, and remembers
58
+ * it. A leftover `dark` class and an inline `color-scheme` are removed: either
59
+ * would hold the page dark, or its native controls, under another mode. The
60
+ * theme sets `color-scheme` for each value of the attribute.
61
+ */
62
+ export declare function setThemeMode(mode: ThemeMode, options?: SetThemeModeOptions): void;
63
+ /** The stored choice, or `null` when there is none, it is not a mode, or `storageKey` is `null`. */
64
+ export declare function getStoredThemeMode(storageKey?: string | null): ThemeMode | null;
65
+ /** Remembers `mode` under `storageKey` (default `"theme"`); `null` keeps nothing. */
66
+ export declare function storeThemeMode(mode: ThemeMode, storageKey?: string | null): void;
67
+ /**
68
+ * A script for `<head>` that applies the stored mode before the first paint,
69
+ * so a returning visitor does not see the other theme flash by. Returns the
70
+ * source as a string; it has no dependencies and can be inlined as it is.
71
+ *
72
+ * It writes to whichever mechanism the page uses, as ThemeToggle does:
73
+ * `data-theme` when `<html>` already has the attribute or the stored mode is
74
+ * `"auto"`, and the `dark` class otherwise. With nothing stored it does
75
+ * nothing, and the markup's own `data-theme` (or its absence) stands.
76
+ *
77
+ * The key is written into the script as a JSON string, so any key is safe.
78
+ */
79
+ export declare function themeInitScript(storageKey?: string): string;
80
+ //# sourceMappingURL=theme-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-mode.d.ts","sourceRoot":"","sources":["../../../src/components/util/theme-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,yEAAyE;AACzE,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAA8B,CAAC;AAE3E,6GAA6G;AAC7G,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,2FAA2F;AAC3F,MAAM,WAAW,iBAAiB;IAC9B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAMxC;AAED,+GAA+G;AAC/G,wBAAgB,WAAW,IAAI,OAAO,CAUrC;AAED,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAQrF;AAED,oGAAoG;AACpG,wBAAgB,kBAAkB,CAAC,UAAU,GAAE,MAAM,GAAG,IAAgC,GAAG,SAAS,GAAG,IAAI,CAQ1G;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,MAAM,GAAG,IAAgC,GAAG,IAAI,CAO3G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,UAAU,GAAE,MAAkC,GAAG,MAAM,CAWtF"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Every word a `Toaster` says by itself. An app in another language passes
3
+ * its own through `strings`; what it leaves out stays as it is here.
4
+ */
5
+ export interface ToasterStrings {
6
+ /** Accessible name of the region the toasts are in. */
7
+ regionLabel: string;
8
+ /**
9
+ * What a toast says when it was pushed with neither a `title` nor a
10
+ * `message`, by type. A toast with a message shows the message.
11
+ */
12
+ successTitle: string;
13
+ errorTitle: string;
14
+ warningTitle: string;
15
+ infoTitle: string;
16
+ /** The time a toast has left, while its timer runs. */
17
+ closesIn: (seconds: number) => string;
18
+ /** The same, while a pointer, a finger or focus holds the timer. */
19
+ pausedClosesIn: (seconds: number) => string;
20
+ /** The button that stops the timer; shown with `showCountdown`. */
21
+ stop: string;
22
+ /** The button under a toast's opened details, which closes them again. */
23
+ okay: string;
24
+ /** Accessible name of the button that opens a toast's details. */
25
+ expand: string;
26
+ /** The same button, once they are open. */
27
+ collapse: string;
28
+ /** Accessible name of the button that dismisses a toast. */
29
+ dismiss: string;
30
+ /**
31
+ * Read after a toast's text when it has an action, so a screen reader
32
+ * user hears that there is one. `label` is the action's own.
33
+ */
34
+ actionAvailable: (label: string) => string;
35
+ }
36
+ export declare const DEFAULT_TOASTER_STRINGS: ToasterStrings;
37
+ /**
38
+ * The three lengths a toast can be given by name, in milliseconds.
39
+ *
40
+ * `short` (3 s) is for a few words that need no reading time ("Saved").
41
+ * Anything a person has to read is `medium` (7 s) or `long` (14 s). What
42
+ * they have to act on, and an error, should stay: `"persistent"`.
43
+ */
44
+ export declare const TOAST_DURATIONS: {
45
+ readonly short: 3000;
46
+ readonly medium: 7000;
47
+ readonly long: 14000;
48
+ };
49
+ /**
50
+ * How long a toast stays: one of the named lengths, `"persistent"` (until it
51
+ * is dismissed), or a number of milliseconds, where `0` is persistent too.
52
+ */
53
+ export type ToastDuration = keyof typeof TOAST_DURATIONS | "persistent" | number;
54
+ /**
55
+ * A toast with more visible text than this (title and message together) gets
56
+ * `long` when the app gave it no duration.
57
+ */
58
+ export declare const TOAST_LONG_TEXT_LENGTH = 120;
59
+ /**
60
+ * And one with more than this stays until it is dismissed: `long` was
61
+ * measured as too short to read it in, and nothing longer has a name.
62
+ */
63
+ export declare const TOAST_PERSISTENT_TEXT_LENGTH = 240;
64
+ /**
65
+ * How long a toast stays, in milliseconds; `0` is until it is dismissed.
66
+ *
67
+ * What the app said for the toast wins, whatever the toast is. When it said
68
+ * nothing: an error stays, and so does a toast with an action, since the user
69
+ * has to be able to reach the button. So does a text longer than
70
+ * `TOAST_PERSISTENT_TEXT_LENGTH`, whatever the Toaster's default. Everything
71
+ * else gets the Toaster's `defaultDuration`, or `medium` without one; a text
72
+ * longer than `TOAST_LONG_TEXT_LENGTH` gets `long`, unless the default is
73
+ * longer still.
74
+ */
75
+ export declare function resolveToastDuration(toast: {
76
+ duration?: ToastDuration;
77
+ type: string;
78
+ hasAction: boolean;
79
+ textLength: number;
80
+ }, defaultDuration?: ToastDuration): number;
81
+ /**
82
+ * The least a toast has left when a finger that held it lifts, in seconds.
83
+ * As long as `short`: holding a short toast starts it again, in effect.
84
+ */
85
+ export declare const TOAST_SECONDS_AFTER_HOLD = 3;
86
+ /** What `onpausechange` of a `Toaster` is called with. */
87
+ export interface ToastPauseChange {
88
+ /** The id of the toast, as `pushToast` returned it. */
89
+ id: string;
90
+ /** True while a pointer is over the toast, a finger is on it, or focus is inside it. */
91
+ paused: boolean;
92
+ }
93
+ //# sourceMappingURL=toaster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../../src/components/util/toaster.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,oEAAoE;IACpE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED,eAAO,MAAM,uBAAuB,EAAE,cAcrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;CAAsD,CAAC;AAEnF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,GAAG,YAAY,GAAG,MAAM,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAchD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EACzF,eAAe,CAAC,EAAE,aAAa,GAChC,MAAM,CAQR;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC7B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,MAAM,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * One tooltip at a time. A tooltip that opens closes the one that was open: a
3
+ * mouse resting on one trigger while Tab moves focus to another would
4
+ * otherwise show both, one of them stale.
5
+ */
6
+ /** Called by a tooltip as it opens, with what closes it. Closes any other. */
7
+ export declare function claimOpenTooltip(close: () => void): void;
8
+ /** Called by a tooltip as it closes or goes. */
9
+ export declare function releaseOpenTooltip(close: () => void): void;
10
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/util/tooltip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAGxD;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAE1D"}
@@ -0,0 +1,11 @@
1
+ /** The words `TopNavbar` says by itself. Pass any of them as `strings`. */
2
+ export interface TopNavbarStrings {
3
+ /** Accessible name of the phone menu's button while the menu is closed. */
4
+ openMenu: string;
5
+ /** The same button, while the menu is open. */
6
+ closeMenu: string;
7
+ /** Read after the label of a link that opens in a new tab. */
8
+ opensInNewTab: string;
9
+ }
10
+ export declare const DEFAULT_TOP_NAVBAR_STRINGS: TopNavbarStrings;
11
+ //# sourceMappingURL=top-navbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"top-navbar.d.ts","sourceRoot":"","sources":["../../../src/components/util/top-navbar.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC7B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAIxC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Touch targets: 44 by 44px on a coarse pointer, nothing changed on a fine one.
3
+ *
4
+ * There are two ways to get there, and which one a control takes depends on
5
+ * what stands beside it.
6
+ *
7
+ * 1. The control itself grows: `pointer-coarse:min-h-11` (and `min-w-11` for a
8
+ * square one), written where the size is. Button, IconButton, Input and
9
+ * Select do this at `sm` and `md`, so a row of them still lines up; so does
10
+ * any control that has a neighbour close by (the handle and the move
11
+ * buttons of a SortableList row). `scripts/check-control-geometry.js` holds
12
+ * the shared controls to it.
13
+ *
14
+ * 2. The control keeps its size and an invisible layer around it takes the
15
+ * touch: `TOUCH_HIT_AREA` below. Only for a control that stands alone, with
16
+ * nothing pressable within about 10px: a close button in the corner of an
17
+ * Alert or in the header of a Modal, the switch of a Toggle. The layer
18
+ * reaches past the visible box, so beside another control it would cover
19
+ * that control's edge and a tap there would fire the wrong one. An `xs`
20
+ * IconButton had such a layer and lost it for that reason. A Toggle is
21
+ * stacked in settings lists, so its row is 44px tall on a coarse pointer:
22
+ * the layer of one switch then never reaches the switch above or below.
23
+ */
24
+ /**
25
+ * An invisible hit area of at least 44 by 44px, centred on the element, on a
26
+ * coarse pointer only. The element must be positioned (`relative`, `absolute`
27
+ * or `fixed`; `pointer-coarse:relative` where it was not positioned before, so
28
+ * a fine pointer sees no change) and must not clip its overflow.
29
+ */
30
+ export declare const TOUCH_HIT_AREA = "pointer-coarse:before:absolute pointer-coarse:before:top-1/2 pointer-coarse:before:left-1/2 pointer-coarse:before:size-full pointer-coarse:before:min-h-11 pointer-coarse:before:min-w-11 pointer-coarse:before:-translate-x-1/2 pointer-coarse:before:-translate-y-1/2 pointer-coarse:before:content-['']";
31
+ //# sourceMappingURL=touch-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch-target.d.ts","sourceRoot":"","sources":["../../../src/components/util/touch-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,+SACqR,CAAC"}
@@ -0,0 +1,133 @@
1
+ import type { AvatarGroupStrings } from "./avatar.js";
2
+ import type { CalendarStrings } from "./calendar.js";
3
+ import type { MediaGridStrings } from "./media-grid.js";
4
+ import type { PhotoGridStrings, PhotoViewerStrings } from "./photo.js";
5
+ import type { PullToRefreshStrings } from "./pull-to-refresh.js";
6
+ import type { RatingStrings } from "./rating.js";
7
+ import type { ColorPickerStrings, ComponentDemoStrings, ContactFormStrings, PropsTableStrings } from "./ready-made-strings.js";
8
+ import type { SelectStrings } from "./select.js";
9
+ import type { SidebarAccountPanelStrings, SidebarBrandHeaderStrings, SidebarFooterStrings, SidebarNavigationStrings } from "./sidebar.js";
10
+ import type { SortableListStrings } from "./sortable-list.js";
11
+ import type { StepperStrings } from "./stepper.js";
12
+ import type { SwipeableListItemStrings } from "./swipeable-list-item.js";
13
+ import type { ThemeToggleLabels } from "./theme-mode.js";
14
+ import type { ToasterStrings } from "./toaster.js";
15
+ import type { TopNavbarStrings } from "./top-navbar.js";
16
+ /**
17
+ * The few words that many components' single-text props default to. A
18
+ * component whose prop is not given says the one here.
19
+ */
20
+ export interface ZabiCommonStrings {
21
+ /** The close button of a dialog, a drawer or a sheet (`closeLabel`). */
22
+ close: string;
23
+ /** AppBar's back control (`backLabel`). */
24
+ back: string;
25
+ /** A sheet's grip while it takes the sheet up a step (`expandLabel`). */
26
+ expand: string;
27
+ /** The same, while it takes it down (`collapseLabel`). */
28
+ collapse: string;
29
+ /** Read after the label of a required field (FormField's `requiredLabel`). */
30
+ required: string;
31
+ /** The button in a password field that shows what was typed (Input's `revealLabel`). */
32
+ showPassword: string;
33
+ /** Placeholder of a search field in a sidebar (`searchPlaceholder`). */
34
+ search: string;
35
+ /** ConfirmDialog's confirming button (`confirmLabel`). */
36
+ confirm: string;
37
+ /** ConfirmDialog's other button (`cancelLabel`). */
38
+ cancel: string;
39
+ }
40
+ export declare const DEFAULT_ZABI_COMMON_STRINGS: ZabiCommonStrings;
41
+ /** Toast's own text: `closeLabel`. */
42
+ export interface ToastTexts {
43
+ closeLabel: string;
44
+ }
45
+ export declare const DEFAULT_TOAST_TEXTS: ToastTexts;
46
+ /** Alert's own text: `closeLabel`. */
47
+ export interface AlertTexts {
48
+ closeLabel: string;
49
+ }
50
+ export declare const DEFAULT_ALERT_TEXTS: AlertTexts;
51
+ /** CodeBlock's own texts: the copy button's name, and what is announced once copied. */
52
+ export interface CodeBlockTexts {
53
+ copyLabel: string;
54
+ copiedLabel: string;
55
+ }
56
+ export declare const DEFAULT_CODE_BLOCK_TEXTS: CodeBlockTexts;
57
+ /** ImageUpload's own texts, by the name of the prop each one is. */
58
+ export interface ImageUploadTexts {
59
+ placeholder: string;
60
+ browseText: string;
61
+ changeText: string;
62
+ removeText: string;
63
+ selectedText: string;
64
+ removedText: string;
65
+ errorTitle: string;
66
+ errorRecovery: string;
67
+ }
68
+ export declare const DEFAULT_IMAGE_UPLOAD_TEXTS: ImageUploadTexts;
69
+ /** UnsavedChangesBar's own texts, by the name of the prop each one is. */
70
+ export interface UnsavedChangesBarTexts {
71
+ message: string;
72
+ label: string;
73
+ saveLabel: string;
74
+ discardLabel: string;
75
+ }
76
+ export declare const DEFAULT_UNSAVED_CHANGES_BAR_TEXTS: UnsavedChangesBarTexts;
77
+ /** One optional entry per component that has words of its own, and `common`. */
78
+ export interface ZabiStrings {
79
+ common?: Partial<ZabiCommonStrings>;
80
+ alert?: Partial<AlertTexts>;
81
+ avatarGroup?: Partial<AvatarGroupStrings>;
82
+ calendar?: Partial<CalendarStrings>;
83
+ codeBlock?: Partial<CodeBlockTexts>;
84
+ colorPicker?: Partial<ColorPickerStrings>;
85
+ componentDemo?: Partial<ComponentDemoStrings>;
86
+ contactForm?: Partial<ContactFormStrings>;
87
+ imageUpload?: Partial<ImageUploadTexts>;
88
+ mediaGrid?: Partial<MediaGridStrings>;
89
+ photoGrid?: Partial<PhotoGridStrings>;
90
+ photoViewer?: Partial<PhotoViewerStrings>;
91
+ propsTable?: Partial<PropsTableStrings>;
92
+ pullToRefresh?: Partial<PullToRefreshStrings>;
93
+ rating?: Partial<RatingStrings>;
94
+ select?: Partial<SelectStrings>;
95
+ sidebarAccountPanel?: Partial<SidebarAccountPanelStrings>;
96
+ sidebarBrandHeader?: Partial<SidebarBrandHeaderStrings>;
97
+ sidebarFooter?: Partial<SidebarFooterStrings>;
98
+ sidebarNavigation?: Partial<SidebarNavigationStrings>;
99
+ sortableList?: Partial<SortableListStrings>;
100
+ stepper?: Partial<StepperStrings>;
101
+ swipeableListItem?: Partial<SwipeableListItemStrings>;
102
+ themeToggle?: Partial<ThemeToggleLabels>;
103
+ toast?: Partial<ToastTexts>;
104
+ toaster?: Partial<ToasterStrings>;
105
+ topNavbar?: Partial<TopNavbarStrings>;
106
+ unsavedChangesBar?: Partial<UnsavedChangesBarTexts>;
107
+ }
108
+ /** What the context holds: an object whose `current` is read when it is needed, so a change reaches every reader. */
109
+ export interface ZabiStringsContext {
110
+ readonly current: ZabiStrings;
111
+ }
112
+ /** `over` on top of `under`, entry by entry: an inner provider only replaces the words it gives. */
113
+ export declare function mergeZabiStrings(under: ZabiStrings | undefined, over: ZabiStrings | undefined): ZabiStrings;
114
+ /** For `ZabiStringsProvider`: the provider above this one, if any. Call while the component initialises. */
115
+ export declare function outerZabiStrings(): ZabiStringsContext | undefined;
116
+ /** For `ZabiStringsProvider`: makes `context` what everything below reads. */
117
+ export declare function provideZabiStrings(context: ZabiStringsContext): void;
118
+ /**
119
+ * The words of the provider this component is under, for app code that wants
120
+ * the same words elsewhere. Call it while the component initialises, and read
121
+ * `current` where the words are used (in the markup, or a `$derived`), so a
122
+ * change of language is followed. Outside a provider `current` is empty.
123
+ */
124
+ export declare function getZabiStrings(): ZabiStringsContext;
125
+ /**
126
+ * A component's own entry: `zabiStringsFor("select")` returns a function that
127
+ * gives the provider's words for Select now, or undefined. Call it while the
128
+ * component initialises; call what it returns inside a `$derived`.
129
+ */
130
+ export declare function zabiStringsFor<K extends Exclude<keyof ZabiStrings, "common">>(key: K): () => ZabiStrings[K];
131
+ /** The common words with their defaults filled in, the same way. */
132
+ export declare function zabiCommonStrings(): () => ZabiCommonStrings;
133
+ //# sourceMappingURL=zabi-strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zabi-strings.d.ts","sourceRoot":"","sources":["../../../src/components/util/zabi-strings.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EACR,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EACR,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,2BAA2B,EAAE,iBAUzC,CAAC;AAOF,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;CACtB;AACD,eAAO,MAAM,mBAAmB,EAAE,UAAiD,CAAC;AAEpF,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;CACtB;AACD,eAAO,MAAM,mBAAmB,EAAE,UAA4C,CAAC;AAE/E,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AACD,eAAO,MAAM,wBAAwB,EAAE,cAGtC,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AACD,eAAO,MAAM,0BAA0B,EAAE,gBASxC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACxB;AACD,eAAO,MAAM,iCAAiC,EAAE,sBAK/C,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvD;AAED,qHAAqH;AACrH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CACjC;AAKD,oGAAoG;AACpG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAQ3G;AAED,4GAA4G;AAC5G,wBAAgB,gBAAgB,IAAI,kBAAkB,GAAG,SAAS,CAEjE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,WAAW,EAAE,QAAQ,CAAC,EACzE,GAAG,EAAE,CAAC,GACP,MAAM,WAAW,CAAC,CAAC,CAAC,CAGtB;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,IAAI,MAAM,iBAAiB,CAM3D"}