@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,249 @@
1
+ <script>
2
+ /**
3
+ * @event {null | number | string} change
4
+ * @event {null | number | string} input
5
+ */
6
+
7
+ /**
8
+ * Set the size of the input
9
+ * @type {"sm" | "xl"}
10
+ */
11
+ export let size = undefined;
12
+
13
+ /**
14
+ * Specify the input value.
15
+ *
16
+ * `value` will be set to `null` if type="number"
17
+ * and the value is empty.
18
+ * @type {null | number | string}
19
+ */
20
+ export let value = "";
21
+
22
+ /** Specify the placeholder text */
23
+ export let placeholder = "";
24
+
25
+ /** Set to `true` to enable the light variant */
26
+ export let light = false;
27
+
28
+ /** Set to `true` to disable the input */
29
+ export let disabled = false;
30
+
31
+ /** Specify the helper text */
32
+ export let helperText = "";
33
+
34
+ /** Set an id for the input element */
35
+ export let id = "ccs-" + Math.random().toString(36);
36
+
37
+ /**
38
+ * Specify a name attribute for the input
39
+ * @type {string}
40
+ */
41
+ export let name = undefined;
42
+
43
+ /** Specify the label text */
44
+ export let labelText = "";
45
+
46
+ /** Set to `true` to visually hide the label text */
47
+ export let hideLabel = false;
48
+
49
+ /** Set to `true` to indicate an invalid state */
50
+ export let invalid = false;
51
+
52
+ /** Specify the invalid state text */
53
+ export let invalidText = "";
54
+
55
+ /** Set to `true` to indicate an warning state */
56
+ export let warn = false;
57
+
58
+ /** Specify the warning state text */
59
+ export let warnText = "";
60
+
61
+ /** Obtain a reference to the input HTML element */
62
+ export let ref = null;
63
+
64
+ /** Set to `true` to mark the field as required */
65
+ export let required = false;
66
+
67
+ /** Set to `true` to use the inline variant */
68
+ export let inline = false;
69
+
70
+ /** Set to `true` to use the read-only variant */
71
+ export let readonly = false;
72
+
73
+ import { createEventDispatcher, getContext } from "svelte";
74
+ import WarningFilled from "../icons/WarningFilled.svelte";
75
+ import WarningAltFilled from "../icons/WarningAltFilled.svelte";
76
+ import EditOff from "../icons/EditOff.svelte";
77
+
78
+ const ctx = getContext("Form");
79
+ const dispatch = createEventDispatcher();
80
+
81
+ function parse(raw) {
82
+ if ($$restProps.type !== "number") return raw;
83
+ return raw != "" ? Number(raw) : null;
84
+ }
85
+
86
+ /** @type {(e: Event) => void} */
87
+ const onInput = (e) => {
88
+ value = parse(e.target.value);
89
+ dispatch("input", value);
90
+ };
91
+
92
+ /** @type {(e: Event) => void} */
93
+ const onChange = (e) => {
94
+ dispatch("change", parse(e.target.value));
95
+ };
96
+
97
+ const isFluid = !!ctx && ctx.isFluid;
98
+ $: error = invalid && !readonly;
99
+ $: helperId = `helper-${id}`;
100
+ $: errorId = `error-${id}`;
101
+ $: warnId = `warn-${id}`;
102
+ </script>
103
+
104
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
105
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
106
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
107
+ <div
108
+ class:bx--form-item={true}
109
+ class:bx--text-input-wrapper={true}
110
+ class:bx--text-input-wrapper--inline={inline}
111
+ class:bx--text-input-wrapper--light={light}
112
+ class:bx--text-input-wrapper--readonly={readonly}
113
+ on:click
114
+ on:mouseover
115
+ on:mouseenter
116
+ on:mouseleave
117
+ >
118
+ {#if inline}
119
+ <div class:bx--text-input__label-helper-wrapper={true}>
120
+ {#if labelText}
121
+ <label
122
+ for={id}
123
+ class:bx--label={true}
124
+ class:bx--visually-hidden={hideLabel}
125
+ class:bx--label--disabled={disabled}
126
+ class:bx--label--inline={inline}
127
+ class:bx--label--inline--sm={size === "sm"}
128
+ class:bx--label--inline--xl={size === "xl"}
129
+ >
130
+ <slot name="labelText">
131
+ {labelText}
132
+ </slot>
133
+ </label>
134
+ {/if}
135
+ {#if !isFluid && helperText}
136
+ <div
137
+ class:bx--form__helper-text={true}
138
+ class:bx--form__helper-text--disabled={disabled}
139
+ class:bx--form__helper-text--inline={inline}
140
+ >
141
+ {helperText}
142
+ </div>
143
+ {/if}
144
+ </div>
145
+ {/if}
146
+ {#if !inline && (labelText || $$slots.labelText)}
147
+ <label
148
+ for={id}
149
+ class:bx--label={true}
150
+ class:bx--visually-hidden={hideLabel}
151
+ class:bx--label--disabled={disabled}
152
+ class:bx--label--inline={inline}
153
+ class:bx--label--inline-sm={inline && size === "sm"}
154
+ class:bx--label--inline-xl={inline && size === "xl"}
155
+ >
156
+ <slot name="labelText">
157
+ {labelText}
158
+ </slot>
159
+ </label>
160
+ {/if}
161
+ <div
162
+ class:bx--text-input__field-outer-wrapper={true}
163
+ class:bx--text-input__field-outer-wrapper--inline={inline}
164
+ >
165
+ <div
166
+ data-invalid={error || undefined}
167
+ data-warn={warn || undefined}
168
+ class:bx--text-input__field-wrapper={true}
169
+ class:bx--text-input__field-wrapper--warning={!invalid && warn}
170
+ >
171
+ {#if readonly}
172
+ <EditOff class="bx--text-input__readonly-icon" />
173
+ {:else}
174
+ {#if invalid}
175
+ <WarningFilled class="bx--text-input__invalid-icon" />
176
+ {/if}
177
+ {#if !invalid && warn}
178
+ <WarningAltFilled
179
+ class="bx--text-input__invalid-icon
180
+ bx--text-input__invalid-icon--warning"
181
+ />
182
+ {/if}
183
+ {/if}
184
+ <input
185
+ bind:this={ref}
186
+ data-invalid={error || undefined}
187
+ aria-invalid={error || undefined}
188
+ data-warn={warn || undefined}
189
+ aria-describedby={error
190
+ ? errorId
191
+ : warn
192
+ ? warnId
193
+ : helperText
194
+ ? helperId
195
+ : undefined}
196
+ {disabled}
197
+ {id}
198
+ {name}
199
+ {placeholder}
200
+ bind:value
201
+ {required}
202
+ {readonly}
203
+ class:bx--text-input={true}
204
+ class:bx--text-input--light={light}
205
+ class:bx--text-input--invalid={error}
206
+ class:bx--text-input--warning={warn}
207
+ class:bx--text-input--sm={size === "sm"}
208
+ class:bx--text-input--xl={size === "xl"}
209
+ {...$$restProps}
210
+ on:change={onChange}
211
+ on:input={onInput}
212
+ on:keydown
213
+ on:keyup
214
+ on:focus
215
+ on:blur
216
+ on:paste
217
+ />
218
+ {#if isFluid}
219
+ <hr class:bx--text-input__divider={true} />
220
+ {/if}
221
+ {#if isFluid && !inline && invalid}
222
+ <div class:bx--form-requirement={true} id={errorId}>
223
+ {invalidText}
224
+ </div>
225
+ {/if}
226
+ {#if isFluid && !inline && warn}
227
+ <div class:bx--form-requirement={true} id={warnId}>{warnText}</div>
228
+ {/if}
229
+ </div>
230
+ {#if !invalid && !warn && !isFluid && !inline && helperText}
231
+ <div
232
+ id={helperId}
233
+ class:bx--form__helper-text={true}
234
+ class:bx--form__helper-text--disabled={disabled}
235
+ class:bx--form__helper-text--inline={inline}
236
+ >
237
+ {helperText}
238
+ </div>
239
+ {/if}
240
+ {#if !isFluid && invalid}
241
+ <div class:bx--form-requirement={true} id={errorId}>
242
+ {invalidText}
243
+ </div>
244
+ {/if}
245
+ {#if !isFluid && !invalid && warn}
246
+ <div class:bx--form-requirement={true} id={warnId}>{warnText}</div>
247
+ {/if}
248
+ </div>
249
+ </div>
@@ -0,0 +1,20 @@
1
+ <script>
2
+ /** Set to `true` to hide the label text */
3
+ export let hideLabel = false;
4
+ </script>
5
+
6
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
7
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
8
+ <div
9
+ class:bx--form-item={true}
10
+ {...$$restProps}
11
+ on:click
12
+ on:mouseover
13
+ on:mouseenter
14
+ on:mouseleave
15
+ >
16
+ {#if !hideLabel}
17
+ <span class:bx--label={true} class:bx--skeleton={true}></span>
18
+ {/if}
19
+ <div class:bx--skeleton={true} class:bx--text-input={true}></div>
20
+ </div>
@@ -0,0 +1,3 @@
1
+ export { default as TextInput } from "./TextInput.svelte";
2
+ export { default as TextInputSkeleton } from "./TextInputSkeleton.svelte";
3
+ export { default as PasswordInput } from "./PasswordInput.svelte";
@@ -0,0 +1,120 @@
1
+ <script>
2
+ /**
3
+ * Dynamic, client-side theming using CSS variables
4
+ * Only works with `carbon-components-svelte/css/all.css`
5
+ */
6
+
7
+ /**
8
+ * @typedef {"white" | "g10" | "g80" | "g90" | "g100"} CarbonTheme
9
+ * @event {{ theme: CarbonTheme; }} update
10
+ * @slot {{ theme: CarbonTheme; }}
11
+ */
12
+
13
+ /**
14
+ * Set the current Carbon theme
15
+ * @type {CarbonTheme}
16
+ */
17
+ export let theme = "white";
18
+
19
+ /**
20
+ * Customize a theme with your own tokens
21
+ * @see https://carbondesignsystem.com/guidelines/themes/overview#customizing-a-theme
22
+ * @type {{ [token: string]: any; }}
23
+ */
24
+ export let tokens = {};
25
+
26
+ /** Set to `true` to persist the theme using window.localStorage */
27
+ export let persist = false;
28
+
29
+ /** Specify the local storage key */
30
+ export let persistKey = "theme";
31
+
32
+ /**
33
+ * Render a toggle or select dropdown to control the theme
34
+ * @type {"toggle" | "select"}
35
+ */
36
+ export let render = undefined;
37
+
38
+ /**
39
+ * Override the default toggle props
40
+ * @type {import("../Toggle/Toggle.svelte").ToggleProps & { themes?: [labelA: CarbonTheme, labelB: CarbonTheme]; }}
41
+ */
42
+ export let toggle = {
43
+ themes: ["white", "g100"],
44
+ labelA: "",
45
+ labelB: "",
46
+ labelText: "Dark mode",
47
+ hideLabel: false,
48
+ };
49
+
50
+ /** @type {Record<CarbonTheme, string>} */
51
+ const themes = {
52
+ white: "White",
53
+ g10: "Gray 10",
54
+ g80: "Gray 80",
55
+ g90: "Gray 90",
56
+ g100: "Gray 100",
57
+ };
58
+
59
+ /** @type {CarbonTheme} */
60
+ const themeKeys = Object.keys(themes);
61
+
62
+ /**
63
+ * Override the default select props
64
+ * @type {import("../Select/Select.svelte").SelectProps & { themes?: CarbonTheme[]; }}
65
+ */
66
+ export let select = {
67
+ themes: themeKeys,
68
+ labelText: "Themes",
69
+ hideLabel: false,
70
+ };
71
+
72
+ import { createEventDispatcher } from "svelte";
73
+ import Toggle from "../Toggle/Toggle.svelte";
74
+ import Select from "../Select/Select.svelte";
75
+ import SelectItem from "../Select/SelectItem.svelte";
76
+ import LocalStorage from "../LocalStorage/LocalStorage.svelte";
77
+
78
+ const dispatch = createEventDispatcher();
79
+
80
+ $: if (typeof window !== "undefined") {
81
+ Object.entries(tokens).forEach(([token, value]) => {
82
+ document.documentElement.style.setProperty(`--cds-${token}`, value);
83
+ });
84
+
85
+ if (theme in themes) {
86
+ document.documentElement.setAttribute("theme", theme);
87
+ dispatch("update", { theme });
88
+ } else {
89
+ console.warn(
90
+ `[Theme.svelte] invalid theme "${theme}". Value must be one of: ${JSON.stringify(
91
+ Object.keys(themes),
92
+ )}`,
93
+ );
94
+ }
95
+ }
96
+ </script>
97
+
98
+ {#if persist}
99
+ <LocalStorage bind:value={theme} key={persistKey} />
100
+ {/if}
101
+
102
+ {#if render === "toggle"}
103
+ {@const { themes: toggleThemes, ...toggleProps } = toggle}
104
+ <Toggle
105
+ {...toggleProps}
106
+ toggled={theme === toggleThemes[1]}
107
+ on:toggle={({ detail }) => {
108
+ theme = detail.toggled ? toggleThemes[1] : toggleThemes[0];
109
+ }}
110
+ />
111
+ {:else if render === "select"}
112
+ {@const { themes: selectThemes, ...selectProps } = select}
113
+ <Select {...selectProps} bind:selected={theme}>
114
+ {#each selectThemes as theme (theme)}
115
+ <SelectItem value={theme} text={themes[theme]} />
116
+ {/each}
117
+ </Select>
118
+ {/if}
119
+
120
+ <slot {theme} />
@@ -0,0 +1 @@
1
+ export { default as Theme } from "./Theme.svelte";
@@ -0,0 +1,43 @@
1
+ <script>
2
+ /** @restProps {a | p} */
3
+
4
+ /** Set to `true` to click the tile */
5
+ export let clicked = false;
6
+
7
+ /** Set to `true` to enable the light variant */
8
+ export let light = false;
9
+
10
+ /** Set to `true` to disable the tile */
11
+ export let disabled = false;
12
+
13
+ /**
14
+ * Set the `href`
15
+ * @type {string}
16
+ */
17
+ export let href = undefined;
18
+
19
+ import Link from "../Link/Link.svelte";
20
+ </script>
21
+
22
+ <Link
23
+ {...$$restProps}
24
+ {disabled}
25
+ class="bx--tile bx--tile--clickable {clicked &&
26
+ 'bx--tile--is-clicked'} {light && 'bx--tile--light'} {$$restProps.class}"
27
+ {href}
28
+ on:click
29
+ on:click={() => {
30
+ clicked = !clicked;
31
+ }}
32
+ on:keydown
33
+ on:keydown={({ key }) => {
34
+ if (key === " " || key === "Enter") {
35
+ clicked = !clicked;
36
+ }
37
+ }}
38
+ on:mouseover
39
+ on:mouseenter
40
+ on:mouseleave
41
+ >
42
+ <slot />
43
+ </Link>
@@ -0,0 +1,104 @@
1
+ <script>
2
+ /** Set to `true` to expand the tile */
3
+ export let expanded = false;
4
+
5
+ /** Set to `true` to enable the light variant */
6
+ export let light = false;
7
+
8
+ /** Specify the max height of the tile (number of pixels) */
9
+ export let tileMaxHeight = 0;
10
+
11
+ /** Specify the padding of the tile (number of pixels) */
12
+ export let tilePadding = 0;
13
+
14
+ /** Specify the icon text of the collapsed tile */
15
+ export let tileCollapsedIconText = "Interact to expand Tile";
16
+
17
+ /** Specify the icon text of the expanded tile */
18
+ export let tileExpandedIconText = "Interact to collapse Tile";
19
+
20
+ /** Specify the icon label of the expanded tile */
21
+ export let tileExpandedLabel = "";
22
+
23
+ /** Specify the icon label of the collapsed tile */
24
+ export let tileCollapsedLabel = "";
25
+
26
+ /** Specify the tabindex */
27
+ export let tabindex = "0";
28
+
29
+ /** Set an id for the top-level div element */
30
+ export let id = "ccs-" + Math.random().toString(36);
31
+
32
+ /** Obtain a reference to the top-level element */
33
+ export let ref = null;
34
+
35
+ import { afterUpdate, onMount } from "svelte";
36
+ import ChevronDown from "../icons/ChevronDown.svelte";
37
+
38
+ let refAbove = null;
39
+
40
+ onMount(() => {
41
+ const resizeObserver = new ResizeObserver(([elem]) => {
42
+ tileMaxHeight = elem.contentRect.height;
43
+ });
44
+
45
+ resizeObserver.observe(refAbove);
46
+
47
+ return () => {
48
+ resizeObserver.disconnect();
49
+ };
50
+ });
51
+
52
+ afterUpdate(() => {
53
+ if (tileMaxHeight === 0) {
54
+ tileMaxHeight = refAbove.getBoundingClientRect().height;
55
+ }
56
+
57
+ const style = getComputedStyle(ref);
58
+
59
+ tilePadding =
60
+ parseInt(style.getPropertyValue("padding-top"), 10) +
61
+ parseInt(style.getPropertyValue("padding-bottom"), 10);
62
+ });
63
+ </script>
64
+
65
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
66
+ <button
67
+ bind:this={ref}
68
+ type="button"
69
+ {id}
70
+ aria-expanded={expanded}
71
+ {tabindex}
72
+ title={expanded ? tileExpandedIconText : tileCollapsedIconText}
73
+ class:bx--tile={true}
74
+ class:bx--tile--expandable={true}
75
+ class:bx--tile--is-expanded={expanded}
76
+ class:bx--tile--light={light}
77
+ style:max-height={expanded ? "none" : `${tileMaxHeight + tilePadding}px`}
78
+ {...$$restProps}
79
+ on:click
80
+ on:click={() => {
81
+ expanded = !expanded;
82
+ }}
83
+ on:keypress
84
+ on:mouseover
85
+ on:mouseenter
86
+ on:mouseleave
87
+ >
88
+ <div>
89
+ <div bind:this={refAbove} class:bx--tile-content={true}>
90
+ <span class:bx--tile-content__above-the-fold={true}>
91
+ <slot name="above" />
92
+ </span>
93
+ </div>
94
+ <div class:bx--tile__chevron={true}>
95
+ <span>{expanded ? tileExpandedLabel : tileCollapsedLabel}</span>
96
+ <ChevronDown />
97
+ </div>
98
+ <div class:bx--tile-content={true}>
99
+ <span class:bx--tile-content__below-the-fold={true}>
100
+ <slot name="below" />
101
+ </span>
102
+ </div>
103
+ </div>
104
+ </button>
@@ -0,0 +1,95 @@
1
+ <script>
2
+ /** Set to `true` to check the tile */
3
+ export let checked = false;
4
+
5
+ /** Set to `true` to enable the light variant */
6
+ export let light = false;
7
+
8
+ /** Set to `true` to disable the tile */
9
+ export let disabled = false;
10
+
11
+ /** Set to `true` to mark the field as required */
12
+ export let required = false;
13
+
14
+ /** Specify the value of the radio input */
15
+ export let value = "";
16
+
17
+ /** Specify the tabindex */
18
+ export let tabindex = "0";
19
+
20
+ /** Specify the ARIA label for the radio tile checkmark icon */
21
+ export let iconDescription = "Tile checkmark";
22
+
23
+ /** Set an id for the input element */
24
+ export let id = "ccs-" + Math.random().toString(36);
25
+
26
+ /**
27
+ * Specify a name attribute for the radio tile input
28
+ * @type {string}
29
+ */
30
+ export let name = undefined;
31
+
32
+ import { getContext } from "svelte";
33
+ import { readable } from "svelte/store";
34
+ import CheckmarkFilled from "../icons/CheckmarkFilled.svelte";
35
+
36
+ const { add, update, selectedValue, groupName, groupRequired } = getContext(
37
+ "TileGroup",
38
+ ) ?? {
39
+ add: () => {},
40
+ groupName: readable(undefined),
41
+ groupRequired: readable(undefined),
42
+ selectedValue: readable(checked ? value : undefined),
43
+ };
44
+
45
+ add({ value, checked });
46
+
47
+ $: checked = value === $selectedValue;
48
+ </script>
49
+
50
+ <input
51
+ type="radio"
52
+ {id}
53
+ name={$groupName ?? name}
54
+ {value}
55
+ {checked}
56
+ tabindex={disabled ? undefined : tabindex}
57
+ {disabled}
58
+ required={$groupRequired ?? required}
59
+ class:bx--tile-input={true}
60
+ on:change
61
+ on:change={() => {
62
+ if (disabled) return;
63
+ update(value);
64
+ }}
65
+ on:keydown
66
+ on:keydown={(e) => {
67
+ if (disabled) return;
68
+ if (e.key === " " || e.key === "Enter") {
69
+ e.preventDefault();
70
+ update(value);
71
+ }
72
+ }}
73
+ />
74
+ <!-- svelte-ignore a11y-mouse-events-have-key-events -->
75
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
76
+ <label
77
+ for={id}
78
+ class:bx--tile={true}
79
+ class:bx--tile--selectable={true}
80
+ class:bx--tile--is-selected={checked}
81
+ class:bx--tile--light={light}
82
+ class:bx--tile--disabled={disabled}
83
+ {...$$restProps}
84
+ on:click
85
+ on:mouseover
86
+ on:mouseenter
87
+ on:mouseleave
88
+ >
89
+ <span class:bx--tile__checkmark={true}>
90
+ <CheckmarkFilled aria-label={iconDescription} title={iconDescription} />
91
+ </span>
92
+ <span class:bx--tile-content={true}>
93
+ <slot />
94
+ </span>
95
+ </label>