@ifloppy/maxcraftmc-ui-svelte 0.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 (495) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +11 -0
  4. package/README.md +122 -0
  5. package/css/_popover.scss +325 -0
  6. package/css/all.css +1 -0
  7. package/css/all.scss +81 -0
  8. package/css/g10.css +1 -0
  9. package/css/g10.scss +34 -0
  10. package/css/g100.css +1 -0
  11. package/css/g100.scss +33 -0
  12. package/css/g80.css +1 -0
  13. package/css/g80.scss +34 -0
  14. package/css/g90.css +1 -0
  15. package/css/g90.scss +33 -0
  16. package/css/maxcraft.css +3239 -0
  17. package/css/white.css +1 -0
  18. package/css/white.scss +33 -0
  19. package/docs/compatibility.md +53 -0
  20. package/docs/component-catalog.md +99 -0
  21. package/docs/consumer-checklist.md +42 -0
  22. package/docs/contributing.md +80 -0
  23. package/docs/hugo-integration.md +94 -0
  24. package/docs/installation.md +89 -0
  25. package/docs/publishing.md +74 -0
  26. package/docs/svelte-migration.md +123 -0
  27. package/docs/theme-tokens.md +60 -0
  28. package/examples/component-gallery/index.html +12 -0
  29. package/examples/component-gallery/src/App.svelte +474 -0
  30. package/examples/component-gallery/src/main.js +6 -0
  31. package/examples/component-gallery/vite.config.js +6 -0
  32. package/examples/hugo-head.html +25 -0
  33. package/examples/hugo-module-mounts.toml +34 -0
  34. package/examples/svelte-basic/+layout.svelte +11 -0
  35. package/examples/svelte-basic/+page.svelte +150 -0
  36. package/package.json +80 -0
  37. package/src/Accordion/Accordion.svelte +60 -0
  38. package/src/Accordion/AccordionItem.svelte +79 -0
  39. package/src/Accordion/AccordionSkeleton.svelte +63 -0
  40. package/src/Accordion/index.js +3 -0
  41. package/src/AspectRatio/AspectRatio.svelte +25 -0
  42. package/src/AspectRatio/index.js +1 -0
  43. package/src/Breadcrumb/Breadcrumb.svelte +40 -0
  44. package/src/Breadcrumb/BreadcrumbItem.svelte +46 -0
  45. package/src/Breadcrumb/BreadcrumbSkeleton.svelte +26 -0
  46. package/src/Breadcrumb/index.js +3 -0
  47. package/src/Breakpoint/Breakpoint.svelte +47 -0
  48. package/src/Breakpoint/breakpointObserver.d.ts +28 -0
  49. package/src/Breakpoint/breakpointObserver.js +82 -0
  50. package/src/Breakpoint/breakpoints.d.ts +11 -0
  51. package/src/Breakpoint/breakpoints.js +13 -0
  52. package/src/Breakpoint/index.d.ts +4 -0
  53. package/src/Breakpoint/index.js +3 -0
  54. package/src/Button/Button.svelte +212 -0
  55. package/src/Button/ButtonSet.svelte +12 -0
  56. package/src/Button/ButtonSkeleton.svelte +54 -0
  57. package/src/Button/index.js +3 -0
  58. package/src/Checkbox/Checkbox.svelte +130 -0
  59. package/src/Checkbox/CheckboxSkeleton.svelte +14 -0
  60. package/src/Checkbox/InlineCheckbox.svelte +41 -0
  61. package/src/Checkbox/index.js +3 -0
  62. package/src/CodeSnippet/CodeSnippet.svelte +280 -0
  63. package/src/CodeSnippet/CodeSnippetSkeleton.svelte +27 -0
  64. package/src/CodeSnippet/index.js +2 -0
  65. package/src/ComboBox/ComboBox.svelte +432 -0
  66. package/src/ComboBox/index.js +1 -0
  67. package/src/ComposedModal/ComposedModal.svelte +172 -0
  68. package/src/ComposedModal/ModalBody.svelte +22 -0
  69. package/src/ComposedModal/ModalFooter.svelte +90 -0
  70. package/src/ComposedModal/ModalHeader.svelte +65 -0
  71. package/src/ComposedModal/index.js +4 -0
  72. package/src/ContentSwitcher/ContentSwitcher.svelte +74 -0
  73. package/src/ContentSwitcher/Switch.svelte +72 -0
  74. package/src/ContentSwitcher/index.js +2 -0
  75. package/src/ContextMenu/ContextMenu.svelte +196 -0
  76. package/src/ContextMenu/ContextMenuDivider.svelte +1 -0
  77. package/src/ContextMenu/ContextMenuGroup.svelte +36 -0
  78. package/src/ContextMenu/ContextMenuOption.svelte +286 -0
  79. package/src/ContextMenu/ContextMenuRadioGroup.svelte +34 -0
  80. package/src/ContextMenu/index.js +5 -0
  81. package/src/CopyButton/CopyButton.svelte +82 -0
  82. package/src/CopyButton/index.js +1 -0
  83. package/src/DataTable/DataTable.svelte +609 -0
  84. package/src/DataTable/DataTableSkeleton.svelte +102 -0
  85. package/src/DataTable/DataTableTypes.d.ts +18 -0
  86. package/src/DataTable/Table.svelte +60 -0
  87. package/src/DataTable/TableBody.svelte +3 -0
  88. package/src/DataTable/TableCell.svelte +4 -0
  89. package/src/DataTable/TableContainer.svelte +28 -0
  90. package/src/DataTable/TableHead.svelte +5 -0
  91. package/src/DataTable/TableHeader.svelte +76 -0
  92. package/src/DataTable/TableRow.svelte +4 -0
  93. package/src/DataTable/Toolbar.svelte +34 -0
  94. package/src/DataTable/ToolbarBatchActions.svelte +99 -0
  95. package/src/DataTable/ToolbarContent.svelte +3 -0
  96. package/src/DataTable/ToolbarMenu.svelte +23 -0
  97. package/src/DataTable/ToolbarMenuItem.svelte +9 -0
  98. package/src/DataTable/ToolbarSearch.svelte +122 -0
  99. package/src/DataTable/index.js +15 -0
  100. package/src/DatePicker/DatePicker.svelte +271 -0
  101. package/src/DatePicker/DatePickerInput.svelte +173 -0
  102. package/src/DatePicker/DatePickerSkeleton.svelte +36 -0
  103. package/src/DatePicker/createCalendar.js +100 -0
  104. package/src/DatePicker/index.js +3 -0
  105. package/src/Dropdown/Dropdown.svelte +336 -0
  106. package/src/Dropdown/DropdownSkeleton.svelte +23 -0
  107. package/src/Dropdown/index.js +2 -0
  108. package/src/FileUploader/FileUploader.svelte +177 -0
  109. package/src/FileUploader/FileUploaderButton.svelte +125 -0
  110. package/src/FileUploader/FileUploaderDropContainer.svelte +129 -0
  111. package/src/FileUploader/FileUploaderItem.svelte +79 -0
  112. package/src/FileUploader/FileUploaderSkeleton.svelte +19 -0
  113. package/src/FileUploader/Filename.svelte +57 -0
  114. package/src/FileUploader/index.js +6 -0
  115. package/src/FluidForm/FluidForm.svelte +23 -0
  116. package/src/FluidForm/index.js +1 -0
  117. package/src/Form/Form.svelte +20 -0
  118. package/src/Form/index.js +1 -0
  119. package/src/FormGroup/FormGroup.svelte +44 -0
  120. package/src/FormGroup/index.js +1 -0
  121. package/src/FormItem/FormItem.svelte +12 -0
  122. package/src/FormItem/index.js +1 -0
  123. package/src/FormLabel/FormLabel.svelte +18 -0
  124. package/src/FormLabel/index.js +1 -0
  125. package/src/Grid/Column.svelte +119 -0
  126. package/src/Grid/Grid.svelte +58 -0
  127. package/src/Grid/Row.svelte +54 -0
  128. package/src/Grid/index.js +3 -0
  129. package/src/ImageLoader/ImageLoader.svelte +117 -0
  130. package/src/ImageLoader/index.js +1 -0
  131. package/src/InlineLoading/InlineLoading.svelte +82 -0
  132. package/src/InlineLoading/index.js +1 -0
  133. package/src/Link/Link.svelte +89 -0
  134. package/src/Link/OutboundLink.svelte +18 -0
  135. package/src/Link/index.js +2 -0
  136. package/src/ListBox/ListBox.svelte +64 -0
  137. package/src/ListBox/ListBoxField.svelte +67 -0
  138. package/src/ListBox/ListBoxMenu.svelte +18 -0
  139. package/src/ListBox/ListBoxMenuIcon.svelte +38 -0
  140. package/src/ListBox/ListBoxMenuItem.svelte +38 -0
  141. package/src/ListBox/ListBoxSelection.svelte +114 -0
  142. package/src/ListBox/index.js +6 -0
  143. package/src/ListItem/ListItem.svelte +12 -0
  144. package/src/ListItem/index.js +1 -0
  145. package/src/Loading/Loading.svelte +76 -0
  146. package/src/Loading/index.js +1 -0
  147. package/src/LocalStorage/LocalStorage.svelte +71 -0
  148. package/src/LocalStorage/index.js +1 -0
  149. package/src/Modal/Modal.svelte +304 -0
  150. package/src/Modal/index.js +1 -0
  151. package/src/Modal/modalStore.js +36 -0
  152. package/src/MultiSelect/MultiSelect.svelte +557 -0
  153. package/src/MultiSelect/index.js +1 -0
  154. package/src/Notification/InlineNotification.svelte +114 -0
  155. package/src/Notification/NotificationActionButton.svelte +18 -0
  156. package/src/Notification/NotificationButton.svelte +47 -0
  157. package/src/Notification/NotificationIcon.svelte +41 -0
  158. package/src/Notification/ToastNotification.svelte +131 -0
  159. package/src/Notification/index.js +5 -0
  160. package/src/NumberInput/NumberInput.svelte +279 -0
  161. package/src/NumberInput/NumberInputSkeleton.svelte +20 -0
  162. package/src/NumberInput/index.js +2 -0
  163. package/src/OrderedList/OrderedList.svelte +26 -0
  164. package/src/OrderedList/index.js +1 -0
  165. package/src/OverflowMenu/OverflowMenu.svelte +259 -0
  166. package/src/OverflowMenu/OverflowMenuItem.svelte +117 -0
  167. package/src/OverflowMenu/index.js +2 -0
  168. package/src/Pagination/Pagination.svelte +216 -0
  169. package/src/Pagination/PaginationSkeleton.svelte +24 -0
  170. package/src/Pagination/index.js +2 -0
  171. package/src/PaginationNav/PaginationItem.svelte +23 -0
  172. package/src/PaginationNav/PaginationNav.svelte +190 -0
  173. package/src/PaginationNav/PaginationOverflow.svelte +56 -0
  174. package/src/PaginationNav/index.js +1 -0
  175. package/src/Popover/Popover.svelte +73 -0
  176. package/src/Popover/index.js +1 -0
  177. package/src/ProgressBar/ProgressBar.svelte +110 -0
  178. package/src/ProgressBar/index.js +1 -0
  179. package/src/ProgressIndicator/ProgressIndicator.svelte +79 -0
  180. package/src/ProgressIndicator/ProgressIndicatorSkeleton.svelte +38 -0
  181. package/src/ProgressIndicator/ProgressStep.svelte +107 -0
  182. package/src/ProgressIndicator/index.js +3 -0
  183. package/src/RadioButton/RadioButton.svelte +93 -0
  184. package/src/RadioButton/RadioButtonSkeleton.svelte +13 -0
  185. package/src/RadioButton/index.js +2 -0
  186. package/src/RadioButtonGroup/RadioButtonGroup.svelte +120 -0
  187. package/src/RadioButtonGroup/index.js +1 -0
  188. package/src/RecursiveList/RecursiveList.svelte +38 -0
  189. package/src/RecursiveList/RecursiveListItem.svelte +19 -0
  190. package/src/RecursiveList/index.js +1 -0
  191. package/src/Search/Search.svelte +173 -0
  192. package/src/Search/SearchSkeleton.svelte +24 -0
  193. package/src/Search/index.js +2 -0
  194. package/src/Select/Select.svelte +248 -0
  195. package/src/Select/SelectItem.svelte +63 -0
  196. package/src/Select/SelectItemGroup.svelte +11 -0
  197. package/src/Select/SelectSkeleton.svelte +22 -0
  198. package/src/Select/index.js +4 -0
  199. package/src/SkeletonPlaceholder/SkeletonPlaceholder.svelte +10 -0
  200. package/src/SkeletonPlaceholder/index.js +1 -0
  201. package/src/SkeletonText/SkeletonText.svelte +50 -0
  202. package/src/SkeletonText/index.js +1 -0
  203. package/src/Slider/Slider.svelte +232 -0
  204. package/src/Slider/SliderSkeleton.svelte +28 -0
  205. package/src/Slider/index.js +2 -0
  206. package/src/StructuredList/StructuredList.svelte +53 -0
  207. package/src/StructuredList/StructuredListBody.svelte +13 -0
  208. package/src/StructuredList/StructuredListCell.svelte +22 -0
  209. package/src/StructuredList/StructuredListHead.svelte +13 -0
  210. package/src/StructuredList/StructuredListInput.svelte +45 -0
  211. package/src/StructuredList/StructuredListRow.svelte +44 -0
  212. package/src/StructuredList/StructuredListSkeleton.svelte +36 -0
  213. package/src/StructuredList/index.js +7 -0
  214. package/src/Tabs/Tab.svelte +74 -0
  215. package/src/Tabs/TabContent.svelte +26 -0
  216. package/src/Tabs/Tabs.svelte +168 -0
  217. package/src/Tabs/TabsSkeleton.svelte +34 -0
  218. package/src/Tabs/index.js +4 -0
  219. package/src/Tag/Tag.svelte +172 -0
  220. package/src/Tag/TagSkeleton.svelte +17 -0
  221. package/src/Tag/index.js +2 -0
  222. package/src/TextArea/TextArea.svelte +134 -0
  223. package/src/TextArea/TextAreaSkeleton.svelte +20 -0
  224. package/src/TextArea/index.js +2 -0
  225. package/src/TextInput/PasswordInput.svelte +265 -0
  226. package/src/TextInput/TextInput.svelte +249 -0
  227. package/src/TextInput/TextInputSkeleton.svelte +20 -0
  228. package/src/TextInput/index.js +3 -0
  229. package/src/Theme/Theme.svelte +120 -0
  230. package/src/Theme/index.js +1 -0
  231. package/src/Tile/ClickableTile.svelte +43 -0
  232. package/src/Tile/ExpandableTile.svelte +104 -0
  233. package/src/Tile/RadioTile.svelte +95 -0
  234. package/src/Tile/SelectableTile.svelte +95 -0
  235. package/src/Tile/Tile.svelte +18 -0
  236. package/src/Tile/TileGroup.svelte +66 -0
  237. package/src/Tile/index.js +6 -0
  238. package/src/TimePicker/TimePicker.svelte +115 -0
  239. package/src/TimePicker/TimePickerSelect.svelte +78 -0
  240. package/src/TimePicker/index.js +2 -0
  241. package/src/Toggle/Toggle.svelte +107 -0
  242. package/src/Toggle/ToggleSkeleton.svelte +51 -0
  243. package/src/Toggle/index.js +2 -0
  244. package/src/Tooltip/Tooltip.svelte +269 -0
  245. package/src/Tooltip/TooltipFooter.svelte +29 -0
  246. package/src/Tooltip/index.js +2 -0
  247. package/src/TooltipDefinition/TooltipDefinition.svelte +85 -0
  248. package/src/TooltipDefinition/index.js +1 -0
  249. package/src/TooltipIcon/TooltipIcon.svelte +83 -0
  250. package/src/TooltipIcon/index.js +1 -0
  251. package/src/TreeView/TreeView.svelte +266 -0
  252. package/src/TreeView/TreeViewNode.svelte +133 -0
  253. package/src/TreeView/TreeViewNodeList.svelte +179 -0
  254. package/src/TreeView/index.d.ts +1 -0
  255. package/src/TreeView/index.js +1 -0
  256. package/src/Truncate/Truncate.svelte +12 -0
  257. package/src/Truncate/index.js +2 -0
  258. package/src/Truncate/truncate.d.ts +12 -0
  259. package/src/Truncate/truncate.js +29 -0
  260. package/src/UIShell/Content.svelte +24 -0
  261. package/src/UIShell/HamburgerMenu.svelte +45 -0
  262. package/src/UIShell/Header.svelte +103 -0
  263. package/src/UIShell/HeaderAction.svelte +160 -0
  264. package/src/UIShell/HeaderActionLink.svelte +43 -0
  265. package/src/UIShell/HeaderGlobalAction.svelte +33 -0
  266. package/src/UIShell/HeaderNav.svelte +13 -0
  267. package/src/UIShell/HeaderNavItem.svelte +66 -0
  268. package/src/UIShell/HeaderNavMenu.svelte +106 -0
  269. package/src/UIShell/HeaderPanelDivider.svelte +22 -0
  270. package/src/UIShell/HeaderPanelLink.svelte +23 -0
  271. package/src/UIShell/HeaderPanelLinks.svelte +3 -0
  272. package/src/UIShell/HeaderSearch.svelte +338 -0
  273. package/src/UIShell/HeaderUtilities.svelte +3 -0
  274. package/src/UIShell/SideNav.svelte +84 -0
  275. package/src/UIShell/SideNavDivider.svelte +1 -0
  276. package/src/UIShell/SideNavItems.svelte +3 -0
  277. package/src/UIShell/SideNavLink.svelte +54 -0
  278. package/src/UIShell/SideNavMenu.svelte +59 -0
  279. package/src/UIShell/SideNavMenuItem.svelte +32 -0
  280. package/src/UIShell/SkipToContent.svelte +11 -0
  281. package/src/UIShell/index.js +20 -0
  282. package/src/UIShell/navStore.js +7 -0
  283. package/src/UnorderedList/UnorderedList.svelte +22 -0
  284. package/src/UnorderedList/index.js +1 -0
  285. package/src/icons/Add.svelte +28 -0
  286. package/src/icons/ArrowUp.svelte +28 -0
  287. package/src/icons/ArrowsVertical.svelte +28 -0
  288. package/src/icons/Calendar.svelte +28 -0
  289. package/src/icons/CaretDown.svelte +26 -0
  290. package/src/icons/CaretLeft.svelte +26 -0
  291. package/src/icons/CaretRight.svelte +26 -0
  292. package/src/icons/Checkmark.svelte +26 -0
  293. package/src/icons/CheckmarkFilled.svelte +32 -0
  294. package/src/icons/CheckmarkOutline.svelte +30 -0
  295. package/src/icons/ChevronDown.svelte +26 -0
  296. package/src/icons/ChevronRight.svelte +26 -0
  297. package/src/icons/CircleDash.svelte +28 -0
  298. package/src/icons/Close.svelte +28 -0
  299. package/src/icons/Copy.svelte +28 -0
  300. package/src/icons/EditOff.svelte +28 -0
  301. package/src/icons/ErrorFilled.svelte +33 -0
  302. package/src/icons/IconSearch.svelte +28 -0
  303. package/src/icons/Incomplete.svelte +28 -0
  304. package/src/icons/Information.svelte +30 -0
  305. package/src/icons/InformationFilled.svelte +32 -0
  306. package/src/icons/InformationSquareFilled.svelte +32 -0
  307. package/src/icons/Launch.svelte +30 -0
  308. package/src/icons/Menu.svelte +26 -0
  309. package/src/icons/OverflowMenuHorizontal.svelte +27 -0
  310. package/src/icons/OverflowMenuVertical.svelte +27 -0
  311. package/src/icons/Settings.svelte +30 -0
  312. package/src/icons/Subtract.svelte +26 -0
  313. package/src/icons/Switcher.svelte +28 -0
  314. package/src/icons/View.svelte +30 -0
  315. package/src/icons/ViewOff.svelte +30 -0
  316. package/src/icons/Warning.svelte +29 -0
  317. package/src/icons/WarningAltFilled.svelte +34 -0
  318. package/src/icons/WarningFilled.svelte +33 -0
  319. package/src/index.js +155 -0
  320. package/src/utils/toHierarchy.d.ts +21 -0
  321. package/src/utils/toHierarchy.js +49 -0
  322. package/tokens/maxcraft.css +84 -0
  323. package/types/Accordion/Accordion.svelte.d.ts +39 -0
  324. package/types/Accordion/AccordionItem.svelte.d.ts +48 -0
  325. package/types/Accordion/AccordionSkeleton.svelte.d.ts +45 -0
  326. package/types/AspectRatio/AspectRatio.svelte.d.ts +31 -0
  327. package/types/Breadcrumb/Breadcrumb.svelte.d.ts +27 -0
  328. package/types/Breadcrumb/BreadcrumbItem.svelte.d.ts +33 -0
  329. package/types/Breadcrumb/BreadcrumbSkeleton.svelte.d.ts +33 -0
  330. package/types/Breakpoint/Breakpoint.svelte.d.ts +30 -0
  331. package/types/Breakpoint/breakpointObserver.d.ts +28 -0
  332. package/types/Breakpoint/breakpoints.d.ts +11 -0
  333. package/types/Breakpoint/index.d.ts +4 -0
  334. package/types/Button/Button.svelte.d.ts +140 -0
  335. package/types/Button/ButtonSet.svelte.d.ts +22 -0
  336. package/types/Button/ButtonSkeleton.svelte.d.ts +35 -0
  337. package/types/Checkbox/Checkbox.svelte.d.ts +109 -0
  338. package/types/Checkbox/CheckboxSkeleton.svelte.d.ts +21 -0
  339. package/types/CodeSnippet/CodeSnippet.svelte.d.ts +140 -0
  340. package/types/CodeSnippet/CodeSnippetSkeleton.svelte.d.ts +27 -0
  341. package/types/ComboBox/ComboBox.svelte.d.ts +189 -0
  342. package/types/ComposedModal/ComposedModal.svelte.d.ts +69 -0
  343. package/types/ComposedModal/ModalBody.svelte.d.ts +28 -0
  344. package/types/ComposedModal/ModalFooter.svelte.d.ts +65 -0
  345. package/types/ComposedModal/ModalHeader.svelte.d.ts +58 -0
  346. package/types/ContentSwitcher/ContentSwitcher.svelte.d.ts +34 -0
  347. package/types/ContentSwitcher/Switch.svelte.d.ts +53 -0
  348. package/types/ContextMenu/ContextMenu.svelte.d.ts +53 -0
  349. package/types/ContextMenu/ContextMenuDivider.svelte.d.ts +9 -0
  350. package/types/ContextMenu/ContextMenuGroup.svelte.d.ts +20 -0
  351. package/types/ContextMenu/ContextMenuOption.svelte.d.ts +86 -0
  352. package/types/ContextMenu/ContextMenuRadioGroup.svelte.d.ts +21 -0
  353. package/types/CopyButton/CopyButton.svelte.d.ts +50 -0
  354. package/types/DataTable/DataTable.svelte.d.ts +238 -0
  355. package/types/DataTable/DataTableSkeleton.svelte.d.ts +67 -0
  356. package/types/DataTable/DataTableTypes.d.ts +18 -0
  357. package/types/DataTable/Table.svelte.d.ts +52 -0
  358. package/types/DataTable/TableBody.svelte.d.ts +16 -0
  359. package/types/DataTable/TableCell.svelte.d.ts +21 -0
  360. package/types/DataTable/TableContainer.svelte.d.ts +40 -0
  361. package/types/DataTable/TableHead.svelte.d.ts +21 -0
  362. package/types/DataTable/TableHeader.svelte.d.ts +57 -0
  363. package/types/DataTable/TableRow.svelte.d.ts +21 -0
  364. package/types/DataTable/Toolbar.svelte.d.ts +22 -0
  365. package/types/DataTable/ToolbarBatchActions.svelte.d.ts +28 -0
  366. package/types/DataTable/ToolbarContent.svelte.d.ts +9 -0
  367. package/types/DataTable/ToolbarMenu.svelte.d.ts +10 -0
  368. package/types/DataTable/ToolbarMenuItem.svelte.d.ts +10 -0
  369. package/types/DataTable/ToolbarSearch.svelte.d.ts +84 -0
  370. package/types/DatePicker/DatePicker.svelte.d.ts +105 -0
  371. package/types/DatePicker/DatePickerInput.svelte.d.ts +118 -0
  372. package/types/DatePicker/DatePickerSkeleton.svelte.d.ts +33 -0
  373. package/types/Dropdown/Dropdown.svelte.d.ts +160 -0
  374. package/types/Dropdown/DropdownSkeleton.svelte.d.ts +27 -0
  375. package/types/FileUploader/FileUploader.svelte.d.ts +104 -0
  376. package/types/FileUploader/FileUploaderButton.svelte.d.ts +98 -0
  377. package/types/FileUploader/FileUploaderDropContainer.svelte.d.ts +92 -0
  378. package/types/FileUploader/FileUploaderItem.svelte.d.ts +69 -0
  379. package/types/FileUploader/FileUploaderSkeleton.svelte.d.ts +21 -0
  380. package/types/FileUploader/Filename.svelte.d.ts +36 -0
  381. package/types/FluidForm/FluidForm.svelte.d.ts +23 -0
  382. package/types/Form/Form.svelte.d.ts +29 -0
  383. package/types/FormGroup/FormGroup.svelte.d.ts +57 -0
  384. package/types/FormItem/FormItem.svelte.d.ts +21 -0
  385. package/types/FormLabel/FormLabel.svelte.d.ts +27 -0
  386. package/types/Grid/Column.svelte.d.ts +92 -0
  387. package/types/Grid/Grid.svelte.d.ts +65 -0
  388. package/types/Grid/Row.svelte.d.ts +59 -0
  389. package/types/ImageLoader/ImageLoader.svelte.d.ts +64 -0
  390. package/types/InlineLoading/InlineLoading.svelte.d.ts +47 -0
  391. package/types/Link/Link.svelte.d.ts +64 -0
  392. package/types/Link/OutboundLink.svelte.d.ts +15 -0
  393. package/types/ListBox/ListBox.svelte.d.ts +70 -0
  394. package/types/ListBox/ListBoxField.svelte.d.ts +67 -0
  395. package/types/ListBox/ListBoxMenu.svelte.d.ts +28 -0
  396. package/types/ListBox/ListBoxMenuIcon.svelte.d.ts +35 -0
  397. package/types/ListBox/ListBoxMenuItem.svelte.d.ts +38 -0
  398. package/types/ListBox/ListBoxSelection.svelte.d.ts +47 -0
  399. package/types/ListItem/ListItem.svelte.d.ts +21 -0
  400. package/types/Loading/Loading.svelte.d.ts +40 -0
  401. package/types/LocalStorage/LocalStorage.svelte.d.ts +34 -0
  402. package/types/Modal/Modal.svelte.d.ts +156 -0
  403. package/types/MultiSelect/MultiSelect.svelte.d.ts +264 -0
  404. package/types/Notification/InlineNotification.svelte.d.ts +82 -0
  405. package/types/Notification/NotificationActionButton.svelte.d.ts +15 -0
  406. package/types/Notification/NotificationButton.svelte.d.ts +45 -0
  407. package/types/Notification/NotificationIcon.svelte.d.ts +33 -0
  408. package/types/Notification/ToastNotification.svelte.d.ts +95 -0
  409. package/types/NumberInput/NumberInput.svelte.d.ts +168 -0
  410. package/types/NumberInput/NumberInputSkeleton.svelte.d.ts +27 -0
  411. package/types/OrderedList/OrderedList.svelte.d.ts +39 -0
  412. package/types/OverflowMenu/OverflowMenu.svelte.d.ts +96 -0
  413. package/types/OverflowMenu/OverflowMenuItem.svelte.d.ts +71 -0
  414. package/types/Pagination/Pagination.svelte.d.ts +129 -0
  415. package/types/Pagination/PaginationSkeleton.svelte.d.ts +21 -0
  416. package/types/PaginationNav/PaginationNav.svelte.d.ts +63 -0
  417. package/types/Popover/Popover.svelte.d.ts +70 -0
  418. package/types/ProgressBar/ProgressBar.svelte.d.ts +70 -0
  419. package/types/ProgressIndicator/ProgressIndicator.svelte.d.ts +46 -0
  420. package/types/ProgressIndicator/ProgressIndicatorSkeleton.svelte.d.ts +34 -0
  421. package/types/ProgressIndicator/ProgressStep.svelte.d.ts +70 -0
  422. package/types/RadioButton/RadioButton.svelte.d.ts +80 -0
  423. package/types/RadioButton/RadioButtonSkeleton.svelte.d.ts +21 -0
  424. package/types/RadioButtonGroup/RadioButtonGroup.svelte.d.ts +76 -0
  425. package/types/RecursiveList/RecursiveList.svelte.d.ts +34 -0
  426. package/types/Search/Search.svelte.d.ts +128 -0
  427. package/types/Search/SearchSkeleton.svelte.d.ts +27 -0
  428. package/types/Select/Select.svelte.d.ts +124 -0
  429. package/types/Select/SelectItem.svelte.d.ts +46 -0
  430. package/types/Select/SelectItemGroup.svelte.d.ts +28 -0
  431. package/types/Select/SelectSkeleton.svelte.d.ts +27 -0
  432. package/types/SkeletonPlaceholder/SkeletonPlaceholder.svelte.d.ts +21 -0
  433. package/types/SkeletonText/SkeletonText.svelte.d.ts +45 -0
  434. package/types/Slider/Slider.svelte.d.ts +139 -0
  435. package/types/Slider/SliderSkeleton.svelte.d.ts +27 -0
  436. package/types/StructuredList/StructuredList.svelte.d.ts +46 -0
  437. package/types/StructuredList/StructuredListBody.svelte.d.ts +21 -0
  438. package/types/StructuredList/StructuredListCell.svelte.d.ts +33 -0
  439. package/types/StructuredList/StructuredListHead.svelte.d.ts +21 -0
  440. package/types/StructuredList/StructuredListInput.svelte.d.ts +52 -0
  441. package/types/StructuredList/StructuredListRow.svelte.d.ts +40 -0
  442. package/types/StructuredList/StructuredListSkeleton.svelte.d.ts +28 -0
  443. package/types/Tabs/Tab.svelte.d.ts +58 -0
  444. package/types/Tabs/TabContent.svelte.d.ts +22 -0
  445. package/types/Tabs/Tabs.svelte.d.ts +50 -0
  446. package/types/Tabs/TabsSkeleton.svelte.d.ts +33 -0
  447. package/types/Tag/Tag.svelte.d.ts +87 -0
  448. package/types/Tag/TagSkeleton.svelte.d.ts +26 -0
  449. package/types/TextArea/TextArea.svelte.d.ts +124 -0
  450. package/types/TextArea/TextAreaSkeleton.svelte.d.ts +27 -0
  451. package/types/TextInput/PasswordInput.svelte.d.ts +154 -0
  452. package/types/TextInput/TextInput.svelte.d.ts +139 -0
  453. package/types/TextInput/TextInputSkeleton.svelte.d.ts +27 -0
  454. package/types/Theme/Theme.svelte.d.ts +58 -0
  455. package/types/Tile/ClickableTile.svelte.d.ts +46 -0
  456. package/types/Tile/ExpandableTile.svelte.d.ts +88 -0
  457. package/types/Tile/RadioTile.svelte.d.ts +77 -0
  458. package/types/Tile/SelectableTile.svelte.d.ts +84 -0
  459. package/types/Tile/Tile.svelte.d.ts +27 -0
  460. package/types/Tile/TileGroup.svelte.d.ts +46 -0
  461. package/types/TimePicker/TimePicker.svelte.d.ts +112 -0
  462. package/types/TimePicker/TimePickerSelect.svelte.d.ts +63 -0
  463. package/types/Toggle/Toggle.svelte.d.ts +80 -0
  464. package/types/Toggle/ToggleSkeleton.svelte.d.ts +39 -0
  465. package/types/Tooltip/Tooltip.svelte.d.ts +106 -0
  466. package/types/Tooltip/TooltipFooter.svelte.d.ts +15 -0
  467. package/types/TooltipDefinition/TooltipDefinition.svelte.d.ts +60 -0
  468. package/types/TooltipIcon/TooltipIcon.svelte.d.ts +65 -0
  469. package/types/TreeView/TreeView.svelte.d.ts +114 -0
  470. package/types/TreeView/index.d.ts +1 -0
  471. package/types/Truncate/Truncate.svelte.d.ts +21 -0
  472. package/types/Truncate/truncate.d.ts +12 -0
  473. package/types/UIShell/Content.svelte.d.ts +22 -0
  474. package/types/UIShell/Header.svelte.d.ts +93 -0
  475. package/types/UIShell/HeaderAction.svelte.d.ts +80 -0
  476. package/types/UIShell/HeaderActionLink.svelte.d.ts +40 -0
  477. package/types/UIShell/HeaderGlobalAction.svelte.d.ts +28 -0
  478. package/types/UIShell/HeaderNav.svelte.d.ts +16 -0
  479. package/types/UIShell/HeaderNavItem.svelte.d.ts +49 -0
  480. package/types/UIShell/HeaderNavMenu.svelte.d.ts +49 -0
  481. package/types/UIShell/HeaderPanelDivider.svelte.d.ts +9 -0
  482. package/types/UIShell/HeaderPanelLink.svelte.d.ts +28 -0
  483. package/types/UIShell/HeaderPanelLinks.svelte.d.ts +9 -0
  484. package/types/UIShell/HeaderSearch.svelte.d.ts +67 -0
  485. package/types/UIShell/HeaderUtilities.svelte.d.ts +9 -0
  486. package/types/UIShell/SideNav.svelte.d.ts +56 -0
  487. package/types/UIShell/SideNavDivider.svelte.d.ts +16 -0
  488. package/types/UIShell/SideNavItems.svelte.d.ts +9 -0
  489. package/types/UIShell/SideNavLink.svelte.d.ts +46 -0
  490. package/types/UIShell/SideNavMenu.svelte.d.ts +40 -0
  491. package/types/UIShell/SideNavMenuItem.svelte.d.ts +40 -0
  492. package/types/UIShell/SkipToContent.svelte.d.ts +28 -0
  493. package/types/UnorderedList/UnorderedList.svelte.d.ts +33 -0
  494. package/types/index.d.ts +169 -0
  495. package/types/utils/toHierarchy.d.ts +21 -0
@@ -0,0 +1,117 @@
1
+ <script>
2
+ /**
3
+ * @event {null} load
4
+ * @event {null} error
5
+ */
6
+
7
+ /**
8
+ * Specify the image source
9
+ */
10
+ export let src = "";
11
+
12
+ /**
13
+ * Specify the image alt text
14
+ */
15
+ export let alt = "";
16
+
17
+ /**
18
+ * Specify the aspect ratio for the image wrapper
19
+ * @type {"2x1" | "16x9" | "4x3" | "1x1" | "3x4" | "3x2" | "9x16" | "1x2"}
20
+ */
21
+ export let ratio = undefined;
22
+
23
+ /**
24
+ * Set to `true` when `loaded` is `true` and `error` is false
25
+ */
26
+ export let loading = false;
27
+
28
+ /**
29
+ * Set to `true` when the image is loaded
30
+ */
31
+ export let loaded = false;
32
+
33
+ /**
34
+ * Set to `true` if an error occurs when loading the image
35
+ */
36
+ export let error = false;
37
+
38
+ /**
39
+ * Set to `true` to fade in the image on load
40
+ * The duration uses the `fast-02` value following Carbon guidelines on motion
41
+ */
42
+ export let fadeIn = false;
43
+
44
+ /**
45
+ * Method invoked to load the image provided a `src` value
46
+ * @type {(url?: string) => void}
47
+ */
48
+ export const loadImage = (url) => {
49
+ if (image != null) image = null;
50
+ loaded = false;
51
+ error = false;
52
+ image = new Image();
53
+ image.src = url || src;
54
+ image.onload = () => (loaded = true);
55
+ image.onerror = () => (error = true);
56
+ };
57
+
58
+ import { onMount, createEventDispatcher } from "svelte";
59
+ import { fade } from "svelte/transition";
60
+ import AspectRatio from "../AspectRatio/AspectRatio.svelte";
61
+
62
+ const dispatch = createEventDispatcher();
63
+
64
+ // "fast-02" duration (ms) from Carbon motion recommended for fading micro-interactions
65
+ const fast02 = 110;
66
+
67
+ let image = null;
68
+
69
+ $: loading = !loaded && !error;
70
+ $: if (src && typeof window !== "undefined") loadImage();
71
+ $: if (loaded) dispatch("load");
72
+ $: if (error) dispatch("error");
73
+
74
+ onMount(() => {
75
+ return () => (image = null);
76
+ });
77
+ </script>
78
+
79
+ {#if ratio === undefined}
80
+ {#if loading}
81
+ <slot name="loading" />
82
+ {/if}
83
+ {#key src}
84
+ {#if loaded}
85
+ <img
86
+ style:width="100%"
87
+ {...$$restProps}
88
+ {src}
89
+ {alt}
90
+ transition:fade|local={{ duration: fadeIn ? fast02 : 0 }}
91
+ />
92
+ {/if}
93
+ {/key}
94
+ {#if error}
95
+ <slot name="error" />
96
+ {/if}
97
+ {:else}
98
+ <AspectRatio {ratio}>
99
+ {#if loading}
100
+ <slot name="loading" />
101
+ {/if}
102
+ {#key src}
103
+ {#if loaded}
104
+ <img
105
+ style:width="100%"
106
+ {...$$restProps}
107
+ {src}
108
+ {alt}
109
+ transition:fade|local={{ duration: fadeIn ? fast02 : 0 }}
110
+ />
111
+ {/if}
112
+ {/key}
113
+ {#if error}
114
+ <slot name="error" />
115
+ {/if}
116
+ </AspectRatio>
117
+ {/if}
@@ -0,0 +1 @@
1
+ export { default as ImageLoader } from "./ImageLoader.svelte";
@@ -0,0 +1,82 @@
1
+ <script>
2
+ /**
3
+ * Set the loading status
4
+ * @type {"active" | "inactive" | "finished" | "error"}
5
+ */
6
+ export let status = "active";
7
+
8
+ /**
9
+ * Set the loading description
10
+ * @type {string}
11
+ */
12
+ export let description = undefined;
13
+
14
+ /**
15
+ * Specify a description for the loading icon.
16
+ * Defaults to the `status` prop for the "error" and "finished" states
17
+ * @type {string}
18
+ */
19
+ export let iconDescription = undefined;
20
+
21
+ /** Specify the timeout delay (ms) after `status` is set to "success" */
22
+ export let successDelay = 1500;
23
+
24
+ import { createEventDispatcher, afterUpdate, onMount } from "svelte";
25
+ import CheckmarkFilled from "../icons/CheckmarkFilled.svelte";
26
+ import ErrorFilled from "../icons/ErrorFilled.svelte";
27
+ import Loading from "../Loading/Loading.svelte";
28
+
29
+ const dispatch = createEventDispatcher();
30
+
31
+ let timeout = undefined;
32
+
33
+ onMount(() => {
34
+ return () => {
35
+ clearTimeout(timeout);
36
+ };
37
+ });
38
+
39
+ afterUpdate(() => {
40
+ if (status === "finished") {
41
+ timeout = setTimeout(() => {
42
+ dispatch("success");
43
+ }, successDelay);
44
+ }
45
+ });
46
+ </script>
47
+
48
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
49
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
50
+ <div
51
+ class:bx--inline-loading={true}
52
+ aria-live="assertive"
53
+ {...$$restProps}
54
+ on:click
55
+ on:mouseover
56
+ on:mouseenter
57
+ on:mouseleave
58
+ >
59
+ <div class:bx--inline-loading__animation={true}>
60
+ {#if status === "error"}
61
+ <ErrorFilled
62
+ class="bx--inline-loading--error"
63
+ title={iconDescription || status}
64
+ />
65
+ {:else if status === "finished"}
66
+ <CheckmarkFilled
67
+ class="bx--inline-loading__checkmark-container"
68
+ title={iconDescription || status}
69
+ />
70
+ {:else if status === "inactive" || status === "active"}
71
+ <Loading
72
+ small
73
+ description={iconDescription}
74
+ withOverlay={false}
75
+ active={status === "active"}
76
+ />
77
+ {/if}
78
+ </div>
79
+ {#if description}
80
+ <div class:bx--inline-loading__text={true}>{description}</div>
81
+ {/if}
82
+ </div>
@@ -0,0 +1 @@
1
+ export { default as InlineLoading } from "./InlineLoading.svelte";
@@ -0,0 +1,89 @@
1
+ <script>
2
+ /**
3
+ * Specify the size of the link
4
+ * @type {"sm" | "lg"}
5
+ */
6
+ export let size = undefined;
7
+
8
+ /**
9
+ * Specify the href value
10
+ * @type {string}
11
+ */
12
+ export let href = undefined;
13
+
14
+ /** Set to `true` to use the inline variant */
15
+ export let inline = false;
16
+
17
+ /**
18
+ * Specify the icon to render
19
+ * `inline` must be `false`
20
+ * @type {any}
21
+ */
22
+ export let icon = undefined;
23
+
24
+ /** Set to `true` to disable the checkbox */
25
+ export let disabled = false;
26
+
27
+ /** Set to `true` to allow visited styles */
28
+ export let visited = false;
29
+
30
+ /** Obtain a reference to the top-level HTML element */
31
+ export let ref = null;
32
+ </script>
33
+
34
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
35
+ <!-- svelte-ignore a11y-missing-attribute -->
36
+ <!-- svelte-ignore a11y-no-redundant-roles -->
37
+ <!-- svelte-ignore a11y-interactive-supports-focus -->
38
+ {#if disabled}
39
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
40
+ <a
41
+ bind:this={ref}
42
+ role="link"
43
+ aria-disabled="true"
44
+ class:bx--link={true}
45
+ class:bx--link--disabled={disabled}
46
+ class:bx--link--inline={inline}
47
+ class:bx--link--visited={visited}
48
+ {...$$restProps}
49
+ on:click
50
+ on:mouseover
51
+ on:mouseenter
52
+ on:mouseleave
53
+ >
54
+ <slot />
55
+ {#if !inline && ($$slots.icon || icon)}
56
+ <div class:bx--link__icon={true}>
57
+ <slot name="icon">
58
+ <svelte:component this={icon} />
59
+ </slot>
60
+ </div>
61
+ {/if}
62
+ </a>
63
+ {:else}
64
+ <a
65
+ bind:this={ref}
66
+ class:bx--link={true}
67
+ class:bx--link--disabled={disabled}
68
+ class:bx--link--inline={inline}
69
+ class:bx--link--visited={visited}
70
+ class:bx--link--sm={size === "sm"}
71
+ class:bx--link--lg={size === "lg"}
72
+ rel={$$restProps.target === "_blank" ? "noopener noreferrer" : undefined}
73
+ {href}
74
+ {...$$restProps}
75
+ on:click
76
+ on:mouseover
77
+ on:mouseenter
78
+ on:mouseleave
79
+ >
80
+ <slot />
81
+ {#if !inline && ($$slots.icon || icon)}
82
+ <div class:bx--link__icon={true}>
83
+ <slot name="icon">
84
+ <svelte:component this={icon} />
85
+ </slot>
86
+ </div>
87
+ {/if}
88
+ </a>
89
+ {/if}
@@ -0,0 +1,18 @@
1
+ <script>
2
+ /** @extends {"./Link.svelte"} LinkProps */
3
+
4
+ import Link from "./Link.svelte";
5
+ import Launch from "../icons/Launch.svelte";
6
+ </script>
7
+
8
+ <Link
9
+ {...$$restProps}
10
+ on:click
11
+ on:mouseover
12
+ on:mouseenter
13
+ on:mouseleave
14
+ target="_blank"
15
+ icon={Launch}
16
+ >
17
+ <slot />
18
+ </Link>
@@ -0,0 +1,2 @@
1
+ export { default as Link } from "./Link.svelte";
2
+ export { default as OutboundLink } from "./OutboundLink.svelte";
@@ -0,0 +1,64 @@
1
+ <script>
2
+ /**
3
+ * Set the size of the list box
4
+ * @type {"sm" | "xl"}
5
+ */
6
+ export let size = undefined;
7
+
8
+ /**
9
+ * Set the type of the list box
10
+ * @type {"default" | "inline"}
11
+ */
12
+ export let type = "default";
13
+
14
+ /** Set to `true` to open the list box */
15
+ export let open = false;
16
+
17
+ /** Set to `true` to enable the light variant */
18
+ export let light = false;
19
+
20
+ /** Set to `true` to disable the list box */
21
+ export let disabled = false;
22
+
23
+ /** Set to `true` to indicate an invalid state */
24
+ export let invalid = false;
25
+
26
+ /** Specify the invalid state text */
27
+ export let invalidText = "";
28
+
29
+ /** Set to `true` to indicate an warning state */
30
+ export let warn = false;
31
+
32
+ /** Specify the warning state text */
33
+ export let warnText = "";
34
+ </script>
35
+
36
+ <div
37
+ role="listbox"
38
+ tabindex="-1"
39
+ data-invalid={invalid || undefined}
40
+ class:bx--list-box={true}
41
+ class:bx--list-box--sm={size === "sm"}
42
+ class:bx--list-box--xl={size === "xl"}
43
+ class:bx--list-box--inline={type === "inline"}
44
+ class:bx--list-box--disabled={disabled}
45
+ class:bx--list-box--expanded={open}
46
+ class:bx--list-box--light={light}
47
+ class:bx--list-box--warning={!invalid && warn}
48
+ {...$$restProps}
49
+ on:keydown
50
+ on:keydown={(e) => {
51
+ if (e.key === "Escape") {
52
+ e.stopPropagation();
53
+ }
54
+ }}
55
+ on:click|preventDefault
56
+ >
57
+ <slot />
58
+ </div>
59
+ {#if invalid}
60
+ <div class:bx--form-requirement={true}>{invalidText}</div>
61
+ {/if}
62
+ {#if !invalid && warn}
63
+ <div class:bx--form-requirement={true}>{warnText}</div>
64
+ {/if}
@@ -0,0 +1,67 @@
1
+ <script>
2
+ /**
3
+ * @typedef {"close" | "open"} ListBoxFieldTranslationId
4
+ */
5
+
6
+ /** Set to `true` to disable the list box field */
7
+ export let disabled = false;
8
+
9
+ /** Specify the role attribute */
10
+ export let role = "combobox";
11
+
12
+ /** Specify the tabindex */
13
+ export let tabindex = "-1";
14
+
15
+ /** Default translation ids */
16
+ export const translationIds = { close: "close", open: "open" };
17
+
18
+ /**
19
+ * Override the default translation ids
20
+ * @type {(id: ListBoxFieldTranslationId) => string}
21
+ */
22
+ export let translateWithId = (id) => defaultTranslations[id];
23
+
24
+ /** Set an id for the top-level element */
25
+ export let id = "ccs-" + Math.random().toString(36);
26
+
27
+ /** Obtain a reference to the top-level HTML element */
28
+ export let ref = null;
29
+
30
+ import { getContext } from "svelte";
31
+
32
+ const defaultTranslations = {
33
+ [translationIds.close]: "Close menu",
34
+ [translationIds.open]: "Open menu",
35
+ };
36
+ const ctx = getContext("MultiSelect");
37
+
38
+ $: if (ctx && ref) {
39
+ ctx.declareRef({ key: "field", ref });
40
+ }
41
+
42
+ $: ariaExpanded = $$props["aria-expanded"];
43
+ $: menuId = `menu-${id}`;
44
+ </script>
45
+
46
+ <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
47
+ <div
48
+ bind:this={ref}
49
+ {role}
50
+ aria-expanded={ariaExpanded}
51
+ aria-owns={(ariaExpanded && menuId) || undefined}
52
+ aria-controls={(ariaExpanded && menuId) || undefined}
53
+ aria-disabled={disabled}
54
+ aria-label={ariaExpanded ? translateWithId("close") : translateWithId("open")}
55
+ tabindex={disabled ? "-1" : tabindex}
56
+ class:bx--list-box__field={true}
57
+ {...$$restProps}
58
+ on:click
59
+ on:mouseover
60
+ on:mouseenter
61
+ on:mouseleave
62
+ on:keydown|stopPropagation
63
+ on:focus
64
+ on:blur
65
+ >
66
+ <slot />
67
+ </div>
@@ -0,0 +1,18 @@
1
+ <script>
2
+ /** Set an id for the top-level element */
3
+ export let id = "ccs-" + Math.random().toString(36);
4
+
5
+ /** Obtain a reference to the HTML element */
6
+ export let ref = null;
7
+ </script>
8
+
9
+ <div
10
+ bind:this={ref}
11
+ role="listbox"
12
+ id="menu-{id}"
13
+ class:bx--list-box__menu={true}
14
+ {...$$restProps}
15
+ on:scroll
16
+ >
17
+ <slot />
18
+ </div>
@@ -0,0 +1,38 @@
1
+ <script>
2
+ /**
3
+ * @typedef {"close" | "open"} ListBoxMenuIconTranslationId
4
+ */
5
+
6
+ /** Set to `true` to open the list box menu icon */
7
+ export let open = false;
8
+
9
+ /** Default translation ids */
10
+ export const translationIds = { close: "close", open: "open" };
11
+
12
+ /**
13
+ * Override the default translation ids
14
+ * @type {(id: ListBoxMenuIconTranslationId) => string}
15
+ */
16
+ export let translateWithId = (id) => defaultTranslations[id];
17
+
18
+ import ChevronDown from "../icons/ChevronDown.svelte";
19
+
20
+ const defaultTranslations = {
21
+ [translationIds.close]: "Close menu",
22
+ [translationIds.open]: "Open menu",
23
+ };
24
+
25
+ $: translationId = open ? translationIds.close : translationIds.open;
26
+ $: description =
27
+ translateWithId?.(translationId) ?? defaultTranslations[translationId];
28
+ </script>
29
+
30
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
31
+ <div
32
+ class:bx--list-box__menu-icon={true}
33
+ class:bx--list-box__menu-icon--open={open}
34
+ {...$$restProps}
35
+ on:click|preventDefault
36
+ >
37
+ <ChevronDown aria-label={description} title={description} />
38
+ </div>
@@ -0,0 +1,38 @@
1
+ <script>
2
+ /** Set to `true` to enable the active state */
3
+ export let active = false;
4
+
5
+ /** Set to `true` to enable the highlighted state */
6
+ export let highlighted = false;
7
+
8
+ /** Set to `true` to disable the menu item */
9
+ export let disabled = false;
10
+
11
+ let ref = null;
12
+
13
+ $: isTruncated = ref?.offsetWidth < ref?.scrollWidth;
14
+ $: title = isTruncated ? ref?.innerText : undefined;
15
+ $: if (highlighted && ref && !ref.matches(":hover")) {
16
+ // Scroll highlighted item into view if using keyboard navigation
17
+ ref.scrollIntoView({ block: "nearest" });
18
+ }
19
+ </script>
20
+
21
+ <div
22
+ role="option"
23
+ tabindex="-1"
24
+ class:bx--list-box__menu-item={true}
25
+ class:bx--list-box__menu-item--active={active}
26
+ class:bx--list-box__menu-item--highlighted={highlighted || active}
27
+ aria-selected={active}
28
+ aria-disabled={disabled ? true : undefined}
29
+ disabled={disabled ? true : undefined}
30
+ {...$$restProps}
31
+ on:click
32
+ on:mouseenter
33
+ on:mouseleave
34
+ >
35
+ <div bind:this={ref} {title} class:bx--list-box__menu-item__option={true}>
36
+ <slot />
37
+ </div>
38
+ </div>
@@ -0,0 +1,114 @@
1
+ <script>
2
+ /**
3
+ * @event {KeyboardEvent | MouseEvent} clear
4
+ */
5
+
6
+ /**
7
+ * @typedef {"clearAll" | "clearSelection"} ListBoxSelectionTranslationId
8
+ */
9
+
10
+ /**
11
+ * Specify the number of selected items
12
+ * @type {number}
13
+ */
14
+ export let selectionCount = undefined;
15
+
16
+ /** Set to `true` to disable the list box selection */
17
+ export let disabled = false;
18
+
19
+ /** Default translation ids */
20
+ export const translationIds = {
21
+ clearAll: "clearAll",
22
+ clearSelection: "clearSelection",
23
+ };
24
+
25
+ /**
26
+ * Override the default translation ids
27
+ * @type {(id: ListBoxSelectionTranslationId) => string}
28
+ */
29
+ export let translateWithId = (id) => defaultTranslations[id];
30
+
31
+ /** Obtain a reference to the top-level HTML element */
32
+ export let ref = null;
33
+
34
+ import { createEventDispatcher, getContext } from "svelte";
35
+ import Close from "../icons/Close.svelte";
36
+
37
+ const defaultTranslations = {
38
+ [translationIds.clearAll]: "Clear all selected items",
39
+ [translationIds.clearSelection]: "Clear selected item",
40
+ };
41
+ const dispatch = createEventDispatcher();
42
+ const ctx = getContext("MultiSelect");
43
+
44
+ $: if (ctx && ref) {
45
+ ctx.declareRef({ key: "selection", ref });
46
+ }
47
+ $: translationId =
48
+ selectionCount === undefined
49
+ ? translationIds.clearSelection
50
+ : translationIds.clearAll;
51
+ $: buttonLabel =
52
+ translateWithId?.(translationId) ?? defaultTranslations[translationId];
53
+ $: description =
54
+ translateWithId?.(translationId) ?? defaultTranslations[translationId];
55
+ </script>
56
+
57
+ {#if selectionCount !== undefined}
58
+ <div
59
+ class:bx--tag={true}
60
+ class:bx--tag--filter={true}
61
+ class:bx--tag--high-contrast={true}
62
+ class:bx--tag--disabled={disabled}
63
+ >
64
+ <span class:bx--tag__label={true} title={selectionCount}>
65
+ {selectionCount}
66
+ </span>
67
+ <div
68
+ bind:this={ref}
69
+ role="button"
70
+ tabindex={disabled ? -1 : 0}
71
+ class:bx--tag__close-icon={true}
72
+ on:click|preventDefault|stopPropagation={(e) => {
73
+ if (!disabled) {
74
+ dispatch("clear", e);
75
+ }
76
+ }}
77
+ on:keydown|stopPropagation={(e) => {
78
+ if (!disabled && (e.key === "Enter" || e.key === " ")) {
79
+ dispatch("clear", e);
80
+ }
81
+ }}
82
+ {disabled}
83
+ aria-label={buttonLabel}
84
+ title={description}
85
+ >
86
+ <Close />
87
+ </div>
88
+ </div>
89
+ {:else}
90
+ <div
91
+ bind:this={ref}
92
+ role="button"
93
+ aria-label={description}
94
+ title={description}
95
+ tabindex={disabled ? "-1" : "0"}
96
+ class:bx--list-box__selection={true}
97
+ class:bx--tag--filter={selectionCount}
98
+ class:bx--list-box__selection--multi={selectionCount}
99
+ {...$$restProps}
100
+ on:click|preventDefault|stopPropagation={(e) => {
101
+ if (!disabled) {
102
+ dispatch("clear", e);
103
+ }
104
+ }}
105
+ on:keydown|stopPropagation={(e) => {
106
+ if (!disabled && (e.key === "Enter" || e.key === " ")) {
107
+ dispatch("clear", e);
108
+ }
109
+ }}
110
+ >
111
+ {#if selectionCount !== undefined}{selectionCount}{/if}
112
+ <Close />
113
+ </div>
114
+ {/if}
@@ -0,0 +1,6 @@
1
+ export { default as ListBox } from "./ListBox.svelte";
2
+ export { default as ListBoxField } from "./ListBoxField.svelte";
3
+ export { default as ListBoxMenu } from "./ListBoxMenu.svelte";
4
+ export { default as ListBoxMenuIcon } from "./ListBoxMenuIcon.svelte";
5
+ export { default as ListBoxMenuItem } from "./ListBoxMenuItem.svelte";
6
+ export { default as ListBoxSelection } from "./ListBoxSelection.svelte";
@@ -0,0 +1,12 @@
1
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
2
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
3
+ <li
4
+ class:bx--list__item={true}
5
+ {...$$restProps}
6
+ on:click
7
+ on:mouseover
8
+ on:mouseenter
9
+ on:mouseleave
10
+ >
11
+ <slot />
12
+ </li>
@@ -0,0 +1 @@
1
+ export { default as ListItem } from "./ListItem.svelte";