@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,82 @@
1
+ import { onMount } from "svelte";
2
+ import { derived, writable } from "svelte/store";
3
+ import { breakpoints } from "./breakpoints";
4
+
5
+ /**
6
+ * Creates a readable store that returns the current breakpoint size.
7
+ * It also provides functions for creating derived stores used to do comparisons.
8
+ */
9
+ export function breakpointObserver() {
10
+ const store = writable(undefined);
11
+
12
+ onMount(() => {
13
+ /** @type {Record<import("./breakpoints").BreakpointSize, MediaQueryList>} */
14
+ const match = {
15
+ sm: window.matchMedia(`(max-width: ${breakpoints.md}px)`),
16
+ md: window.matchMedia(
17
+ `(min-width: ${breakpoints.md}px) and (max-width: ${breakpoints.lg}px)`,
18
+ ),
19
+ lg: window.matchMedia(
20
+ `(min-width: ${breakpoints.lg}px) and (max-width: ${breakpoints.xlg}px)`,
21
+ ),
22
+ xlg: window.matchMedia(
23
+ `(min-width: ${breakpoints.xlg}px) and (max-width: ${breakpoints.max}px)`,
24
+ ),
25
+ max: window.matchMedia(`(min-width: ${breakpoints.max}px)`),
26
+ };
27
+ const matchers = Object.entries(match);
28
+ const sizeByMedia = Object.fromEntries(
29
+ matchers.map(([size, queryList]) => [queryList.media, size]),
30
+ );
31
+
32
+ const size = matchers.find(([size, queryList]) => queryList.matches)[0];
33
+ store.set(size);
34
+
35
+ /** @type {(e: MediaQueryListEvent) => void} */
36
+ function handleChange({ matches, media }) {
37
+ const size = sizeByMedia[media];
38
+ if (matches) store.set(size);
39
+ }
40
+
41
+ matchers.forEach(([size, queryList]) =>
42
+ queryList.addEventListener("change", handleChange),
43
+ );
44
+
45
+ return () => {
46
+ matchers.forEach(([size, queryList]) =>
47
+ queryList.removeEventListener("change", handleChange),
48
+ );
49
+ };
50
+ });
51
+
52
+ return {
53
+ subscribe: store.subscribe,
54
+
55
+ /**
56
+ * Returns a store readable store that returns whether the current
57
+ * breakpoint is smaller than {@link size}.
58
+ * @param {import("./breakpoints").BreakpointSize} size Size to compare against.
59
+ */
60
+ smallerThan: (size) => {
61
+ checkSizeValid(size);
62
+ return derived(store, ($size) => breakpoints[$size] < breakpoints[size]);
63
+ },
64
+
65
+ /**
66
+ * Returns a store readable store that returns whether the current
67
+ * breakpoint is larger than {@link size}.
68
+ * @param {import("./breakpoints").BreakpointSize} size Size to compare against.
69
+ */
70
+ largerThan: (size) => {
71
+ checkSizeValid(size);
72
+ return derived(store, ($size) => breakpoints[$size] > breakpoints[size]);
73
+ },
74
+ };
75
+ }
76
+
77
+ function checkSizeValid(size) {
78
+ if (size in breakpoints == false)
79
+ throw new Error(`"${size}" is not a valid breakpoint size.`);
80
+ }
81
+
82
+ export default breakpointObserver;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Pixel sizes of Carbon grid breakpoints.
3
+ * @type {Record<BreakpointSize, BreakpointValue>}
4
+ */
5
+ export const breakpoints: Record<BreakpointSize, BreakpointValue>;
6
+
7
+ export type BreakpointSize = "sm" | "md" | "lg" | "xlg" | "max";
8
+
9
+ export type BreakpointValue = 320 | 672 | 1056 | 1312 | 1584;
10
+
11
+ export default breakpoints;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Pixel sizes of Carbon grid breakpoints.
3
+ * @type {Record<import("./breakpoints").BreakpointSize, BreakpointValue>}
4
+ */
5
+ export const breakpoints = Object.freeze({
6
+ sm: 320,
7
+ md: 672,
8
+ lg: 1056,
9
+ xlg: 1312,
10
+ max: 1584,
11
+ });
12
+
13
+ export default breakpoints;
@@ -0,0 +1,4 @@
1
+ // @ts-nocheck `Breakpoint` is auto-generated by `sveld`.
2
+ export { default as Breakpoint } from "./Breakpoint.svelte";
3
+ export { breakpointObserver } from "./breakpointObserver";
4
+ export { breakpoints } from "./breakpoints";
@@ -0,0 +1,3 @@
1
+ export { default as Breakpoint } from "./Breakpoint.svelte";
2
+ export { breakpointObserver } from "./breakpointObserver";
3
+ export { breakpoints } from "./breakpoints";
@@ -0,0 +1,212 @@
1
+ <script>
2
+ /**
3
+ * @extends {"./ButtonSkeleton.svelte"} ButtonSkeletonProps
4
+ * @restProps {button | a | div}
5
+ * @slot {{ props: { role: "button"; type?: string; tabindex: any; disabled: boolean; href?: string; class: string; [key: string]: any; } }}
6
+ */
7
+
8
+ /**
9
+ * Specify the kind of button
10
+ * @type {"primary" | "secondary" | "tertiary" | "ghost" | "danger" | "danger-tertiary" | "danger-ghost"}
11
+ */
12
+ export let kind = "primary";
13
+
14
+ /**
15
+ * Specify the size of button
16
+ * @type {"default" | "field" | "small" | "lg" | "xl"}
17
+ */
18
+ export let size = "default";
19
+
20
+ /** Set to `true` to use Carbon's expressive typesetting */
21
+ export let expressive = false;
22
+
23
+ /**
24
+ * Set to `true` to enable the selected state for an icon-only, ghost button
25
+ */
26
+ export let isSelected = false;
27
+
28
+ /**
29
+ * Specify the icon to render
30
+ * Alternatively, use the named slot "icon" (e.g., `<Icon slot="icon" size="{20}" />`)
31
+ *
32
+ * @type {any}
33
+ */
34
+ export let icon = undefined;
35
+
36
+ /**
37
+ * Specify the ARIA label for the button icon
38
+ * @type {string}
39
+ */
40
+ export let iconDescription = undefined;
41
+
42
+ /**
43
+ * Set the alignment of the tooltip relative to the icon.
44
+ * Only applies to icon-only buttons
45
+ * @type {"start" | "center" | "end"}
46
+ */
47
+ export let tooltipAlignment = "center";
48
+
49
+ /**
50
+ * Set the position of the tooltip relative to the icon
51
+ * @type {"top" | "right" | "bottom" | "left"}
52
+ */
53
+ export let tooltipPosition = "bottom";
54
+
55
+ /**
56
+ * Set to `true` to render a custom HTML element
57
+ * Props are destructured as `props` in the default slot (e.g., <Button let:props><div {...props}>...</div></Button>)
58
+ */
59
+ export let as = false;
60
+
61
+ /** Set to `true` to display the skeleton state */
62
+ export let skeleton = false;
63
+
64
+ /** Set to `true` to disable the button */
65
+ export let disabled = false;
66
+
67
+ /**
68
+ * Set the `href` to use an anchor link
69
+ * @type {string}
70
+ */
71
+ export let href = undefined;
72
+
73
+ /** Specify the tabindex */
74
+ export let tabindex = "0";
75
+
76
+ /** Specify the `type` attribute for the button element */
77
+ export let type = "button";
78
+
79
+ /** Obtain a reference to the HTML element */
80
+ export let ref = null;
81
+
82
+ import { getContext } from "svelte";
83
+ import ButtonSkeleton from "./ButtonSkeleton.svelte";
84
+
85
+ const ctx = getContext("ComposedModal");
86
+
87
+ $: if (ctx && ref) {
88
+ ctx.declareRef(ref);
89
+ }
90
+ $: hasIconOnly = (icon || $$slots.icon) && !$$slots.default;
91
+ $: iconProps = {
92
+ "aria-hidden": "true",
93
+ class: "bx--btn__icon",
94
+ "aria-label": iconDescription,
95
+ };
96
+ $: buttonProps = {
97
+ type: href && !disabled ? undefined : type,
98
+ tabindex,
99
+ disabled: disabled === true ? true : undefined,
100
+ href,
101
+ "aria-pressed":
102
+ hasIconOnly && kind === "ghost" && !href ? isSelected : undefined,
103
+ ...$$restProps,
104
+ class: [
105
+ "bx--btn",
106
+ expressive && "bx--btn--expressive",
107
+ ((size === "small" && !expressive) ||
108
+ (size === "sm" && !expressive) ||
109
+ (size === "small" && !expressive)) &&
110
+ "bx--btn--sm",
111
+ (size === "field" && !expressive) ||
112
+ (size === "md" && !expressive && "bx--btn--md"),
113
+ size === "field" && "bx--btn--field",
114
+ size === "small" && "bx--btn--sm",
115
+ size === "lg" && "bx--btn--lg",
116
+ size === "xl" && "bx--btn--xl",
117
+ kind && `bx--btn--${kind}`,
118
+ disabled && "bx--btn--disabled",
119
+ hasIconOnly && "bx--btn--icon-only",
120
+ hasIconOnly && "bx--tooltip__trigger",
121
+ hasIconOnly && "bx--tooltip--a11y",
122
+ hasIconOnly &&
123
+ tooltipPosition &&
124
+ `bx--btn--icon-only--${tooltipPosition}`,
125
+ hasIconOnly &&
126
+ tooltipAlignment &&
127
+ `bx--tooltip--align-${tooltipAlignment}`,
128
+ hasIconOnly && isSelected && kind === "ghost" && "bx--btn--selected",
129
+ $$restProps.class,
130
+ ]
131
+ .filter(Boolean)
132
+ .join(" "),
133
+ };
134
+ </script>
135
+
136
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
137
+ {#if skeleton}
138
+ <ButtonSkeleton
139
+ {href}
140
+ {size}
141
+ {...$$restProps}
142
+ style={hasIconOnly && "width: 3rem;"}
143
+ on:click
144
+ on:focus
145
+ on:blur
146
+ on:mouseover
147
+ on:mouseenter
148
+ on:mouseleave
149
+ />
150
+ {:else if as}
151
+ <slot props={buttonProps} />
152
+ {:else if href && !disabled}
153
+ <!-- svelte-ignore a11y-missing-attribute -->
154
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
155
+ <a
156
+ bind:this={ref}
157
+ {...buttonProps}
158
+ on:click
159
+ on:focus
160
+ on:blur
161
+ on:mouseover
162
+ on:mouseenter
163
+ on:mouseleave
164
+ >
165
+ {#if hasIconOnly}
166
+ <span class:bx--assistive-text={true}>{iconDescription}</span>
167
+ {/if}
168
+ <slot />
169
+ {#if $$slots.icon}
170
+ <slot
171
+ name="icon"
172
+ style={hasIconOnly ? "margin-left: 0" : undefined}
173
+ {...iconProps}
174
+ />
175
+ {:else if icon}
176
+ <svelte:component
177
+ this={icon}
178
+ style={hasIconOnly ? "margin-left: 0" : undefined}
179
+ {...iconProps}
180
+ />
181
+ {/if}
182
+ </a>
183
+ {:else}
184
+ <button
185
+ bind:this={ref}
186
+ {...buttonProps}
187
+ on:click
188
+ on:focus
189
+ on:blur
190
+ on:mouseover
191
+ on:mouseenter
192
+ on:mouseleave
193
+ >
194
+ {#if hasIconOnly}
195
+ <span class:bx--assistive-text={true}>{iconDescription}</span>
196
+ {/if}
197
+ <slot />
198
+ {#if $$slots.icon}
199
+ <slot
200
+ name="icon"
201
+ style={hasIconOnly ? "margin-left: 0" : undefined}
202
+ {...iconProps}
203
+ />
204
+ {:else if icon}
205
+ <svelte:component
206
+ this={icon}
207
+ style={hasIconOnly ? "margin-left: 0" : undefined}
208
+ {...iconProps}
209
+ />
210
+ {/if}
211
+ </button>
212
+ {/if}
@@ -0,0 +1,12 @@
1
+ <script>
2
+ /** Set to `true` to stack the buttons vertically */
3
+ export let stacked = false;
4
+ </script>
5
+
6
+ <div
7
+ class:bx--btn-set={true}
8
+ class:bx--btn-set--stacked={stacked}
9
+ {...$$restProps}
10
+ >
11
+ <slot />
12
+ </div>
@@ -0,0 +1,54 @@
1
+ <script>
2
+ /**
3
+ * Set the `href` to use an anchor link
4
+ * @type {string}
5
+ */
6
+ export let href = undefined;
7
+
8
+ /**
9
+ * Specify the size of button skeleton
10
+ * @type {"default" | "field" | "small" | "lg" | "xl"}
11
+ */
12
+ export let size = "default";
13
+ </script>
14
+
15
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
16
+ {#if href}
17
+ <a
18
+ {href}
19
+ rel={$$restProps.target === "_blank" ? "noopener noreferrer" : undefined}
20
+ role="button"
21
+ class:bx--skeleton={true}
22
+ class:bx--btn={true}
23
+ class:bx--btn--field={size === "field"}
24
+ class:bx--btn--sm={size === "small"}
25
+ class:bx--btn--lg={size === "lg"}
26
+ class:bx--btn--xl={size === "xl"}
27
+ {...$$restProps}
28
+ on:click
29
+ on:focus
30
+ on:blur
31
+ on:mouseover
32
+ on:mouseenter
33
+ on:mouseleave
34
+ >
35
+ {""}
36
+ </a>
37
+ {:else}
38
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
39
+ <div
40
+ class:bx--skeleton={true}
41
+ class:bx--btn={true}
42
+ class:bx--btn--field={size === "field"}
43
+ class:bx--btn--sm={size === "small"}
44
+ class:bx--btn--lg={size === "lg"}
45
+ class:bx--btn--xl={size === "xl"}
46
+ {...$$restProps}
47
+ on:click
48
+ on:focus
49
+ on:blur
50
+ on:mouseover
51
+ on:mouseenter
52
+ on:mouseleave
53
+ ></div>
54
+ {/if}
@@ -0,0 +1,3 @@
1
+ export { default as Button } from "./Button.svelte";
2
+ export { default as ButtonSkeleton } from "./ButtonSkeleton.svelte";
3
+ export { default as ButtonSet } from "./ButtonSet.svelte";
@@ -0,0 +1,130 @@
1
+ <script>
2
+ /**
3
+ * @restProps {div}
4
+ * @event {boolean} check
5
+ */
6
+
7
+ /**
8
+ * Specify the value of the checkbox
9
+ * @type {any}
10
+ */
11
+ export let value = "";
12
+
13
+ /** Specify whether the checkbox is checked */
14
+ export let checked = false;
15
+
16
+ /**
17
+ * Specify the bound group
18
+ * @type {ReadonlyArray<any>}
19
+ */
20
+ export let group = undefined;
21
+
22
+ /** Specify whether the checkbox is indeterminate */
23
+ export let indeterminate = false;
24
+
25
+ /** Set to `true` to display the skeleton state */
26
+ export let skeleton = false;
27
+
28
+ /** Set to `true` to mark the field as required */
29
+ export let required = false;
30
+
31
+ /** Set to `true` for the checkbox to be read-only */
32
+ export let readonly = false;
33
+
34
+ /** Set to `true` to disable the checkbox */
35
+ export let disabled = false;
36
+
37
+ /** Specify the label text */
38
+ export let labelText = "";
39
+
40
+ /** Set to `true` to visually hide the label text */
41
+ export let hideLabel = false;
42
+
43
+ /** Set a name for the input element */
44
+ export let name = "";
45
+
46
+ /**
47
+ * Specify the title attribute for the label element
48
+ * @type {string}
49
+ */
50
+ export let title = undefined;
51
+
52
+ /** Set an id for the input label */
53
+ export let id = "ccs-" + Math.random().toString(36);
54
+
55
+ /** Obtain a reference to the input HTML element */
56
+ export let ref = null;
57
+
58
+ import { createEventDispatcher } from "svelte";
59
+ import CheckboxSkeleton from "./CheckboxSkeleton.svelte";
60
+
61
+ const dispatch = createEventDispatcher();
62
+
63
+ $: useGroup = Array.isArray(group);
64
+ $: checked = useGroup ? group.includes(value) : checked;
65
+ $: dispatch("check", checked);
66
+
67
+ let refLabel = null;
68
+
69
+ $: isTruncated = refLabel?.offsetWidth < refLabel?.scrollWidth;
70
+ $: title = !title && isTruncated ? refLabel?.innerText : title;
71
+ </script>
72
+
73
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
74
+ {#if skeleton}
75
+ <CheckboxSkeleton
76
+ {...$$restProps}
77
+ on:click
78
+ on:mouseover
79
+ on:mouseenter
80
+ on:mouseleave
81
+ />
82
+ {:else}
83
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
84
+ <div
85
+ class:bx--form-item={true}
86
+ class:bx--checkbox-wrapper={true}
87
+ {...$$restProps}
88
+ on:click
89
+ on:mouseover
90
+ on:mouseenter
91
+ on:mouseleave
92
+ >
93
+ <input
94
+ bind:this={ref}
95
+ type="checkbox"
96
+ {value}
97
+ {checked}
98
+ {disabled}
99
+ {id}
100
+ bind:indeterminate
101
+ {name}
102
+ {required}
103
+ {readonly}
104
+ class:bx--checkbox={true}
105
+ on:change={() => {
106
+ if (useGroup) {
107
+ group = group.includes(value)
108
+ ? group.filter((_value) => _value !== value)
109
+ : [...group, value];
110
+ } else {
111
+ checked = !checked;
112
+ }
113
+ }}
114
+ on:change
115
+ on:focus
116
+ on:blur
117
+ />
118
+ <label for={id} {title} class:bx--checkbox-label={true}>
119
+ <span
120
+ bind:this={refLabel}
121
+ class:bx--checkbox-label-text={true}
122
+ class:bx--visually-hidden={hideLabel}
123
+ >
124
+ <slot name="labelText">
125
+ {labelText}
126
+ </slot>
127
+ </span>
128
+ </label>
129
+ </div>
130
+ {/if}
@@ -0,0 +1,14 @@
1
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
2
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
3
+ <div
4
+ class:bx--form-item={true}
5
+ class:bx--checkbox-wrapper={true}
6
+ class:bx--checkbox-label={true}
7
+ {...$$restProps}
8
+ on:click
9
+ on:mouseover
10
+ on:mouseenter
11
+ on:mouseleave
12
+ >
13
+ <span class:bx--checkbox-label-text={true} class:bx--skeleton={true}></span>
14
+ </div>
@@ -0,0 +1,41 @@
1
+ <script>
2
+ /** Specify whether the checkbox is checked */
3
+ export let checked = false;
4
+
5
+ /** Specify whether the checkbox is indeterminate */
6
+ export let indeterminate = false;
7
+
8
+ /**
9
+ * Specify the title attribute for the label element
10
+ * @type {string}
11
+ */
12
+ export let title = undefined;
13
+
14
+ /** Set an id for the input label */
15
+ export let id = "ccs-" + Math.random().toString(36);
16
+
17
+ /** Obtain a reference to the input HTML element */
18
+ export let ref = null;
19
+ </script>
20
+
21
+ <div class:bx--checkbox--inline={true}>
22
+ <input
23
+ bind:this={ref}
24
+ type="checkbox"
25
+ class:bx--checkbox={true}
26
+ checked={indeterminate ? false : checked}
27
+ bind:indeterminate
28
+ {id}
29
+ {...$$restProps}
30
+ aria-checked={indeterminate ? undefined : checked}
31
+ on:change
32
+ on:focus
33
+ on:blur
34
+ />
35
+ <label
36
+ for={id}
37
+ {title}
38
+ aria-label={$$props["aria-label"]}
39
+ class:bx--checkbox-label={true}
40
+ ></label>
41
+ </div>
@@ -0,0 +1,3 @@
1
+ export { default as Checkbox } from "./Checkbox.svelte";
2
+ export { default as CheckboxSkeleton } from "./CheckboxSkeleton.svelte";
3
+ export { default as InlineCheckbox } from "./InlineCheckbox.svelte";