@winkintel/bootstrap-svelte 0.0.1

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 (471) hide show
  1. package/LICENSE.md +202 -0
  2. package/README.md +221 -0
  3. package/dist/Accordion/accordion-body.svelte +8 -0
  4. package/dist/Accordion/accordion-body.svelte.d.ts +4 -0
  5. package/dist/Accordion/accordion-button.svelte +25 -0
  6. package/dist/Accordion/accordion-button.svelte.d.ts +4 -0
  7. package/dist/Accordion/accordion-collapse.svelte +18 -0
  8. package/dist/Accordion/accordion-collapse.svelte.d.ts +4 -0
  9. package/dist/Accordion/accordion-header.svelte +8 -0
  10. package/dist/Accordion/accordion-header.svelte.d.ts +4 -0
  11. package/dist/Accordion/accordion-item.svelte +33 -0
  12. package/dist/Accordion/accordion-item.svelte.d.ts +4 -0
  13. package/dist/Accordion/accordion.svelte +65 -0
  14. package/dist/Accordion/accordion.svelte.d.ts +51 -0
  15. package/dist/Accordion/accordion.svelte.js +139 -0
  16. package/dist/Accordion/composition.d.ts +7 -0
  17. package/dist/Accordion/composition.js +6 -0
  18. package/dist/Accordion/index.d.ts +1 -0
  19. package/dist/Accordion/index.js +1 -0
  20. package/dist/Accordion/types.d.ts +15 -0
  21. package/dist/Accordion/types.js +1 -0
  22. package/dist/Alert/alert.svelte +73 -0
  23. package/dist/Alert/alert.svelte.d.ts +46 -0
  24. package/dist/Alert/index.d.ts +2 -0
  25. package/dist/Alert/index.js +2 -0
  26. package/dist/Alert/types.d.ts +11 -0
  27. package/dist/Alert/types.js +1 -0
  28. package/dist/Badge/badge.svelte +42 -0
  29. package/dist/Badge/badge.svelte.d.ts +36 -0
  30. package/dist/Badge/index.d.ts +2 -0
  31. package/dist/Badge/index.js +2 -0
  32. package/dist/Badge/types.d.ts +28 -0
  33. package/dist/Badge/types.js +24 -0
  34. package/dist/Breadcrumb/breadcrumb-item.svelte +66 -0
  35. package/dist/Breadcrumb/breadcrumb-item.svelte.d.ts +30 -0
  36. package/dist/Breadcrumb/breadcrumb.svelte +57 -0
  37. package/dist/Breadcrumb/breadcrumb.svelte.d.ts +34 -0
  38. package/dist/Breadcrumb/breadcrumb.svelte.js +41 -0
  39. package/dist/Breadcrumb/composition.d.ts +3 -0
  40. package/dist/Breadcrumb/composition.js +2 -0
  41. package/dist/Breadcrumb/index.d.ts +1 -0
  42. package/dist/Breadcrumb/index.js +1 -0
  43. package/dist/Breadcrumb/types.d.ts +9 -0
  44. package/dist/Breadcrumb/types.js +1 -0
  45. package/dist/BreakpointListener/breakpoint-listener.svelte +54 -0
  46. package/dist/BreakpointListener/breakpoint-listener.svelte.d.ts +4 -0
  47. package/dist/BreakpointListener/index.d.ts +2 -0
  48. package/dist/BreakpointListener/index.js +2 -0
  49. package/dist/BreakpointListener/types.d.ts +30 -0
  50. package/dist/BreakpointListener/types.js +20 -0
  51. package/dist/Button/button.svelte +87 -0
  52. package/dist/Button/button.svelte.d.ts +59 -0
  53. package/dist/Button/index.d.ts +2 -0
  54. package/dist/Button/index.js +2 -0
  55. package/dist/Button/types.d.ts +26 -0
  56. package/dist/Button/types.js +1 -0
  57. package/dist/ButtonGroup/button-check.svelte +70 -0
  58. package/dist/ButtonGroup/button-check.svelte.d.ts +35 -0
  59. package/dist/ButtonGroup/button-group.svelte +51 -0
  60. package/dist/ButtonGroup/button-group.svelte.d.ts +43 -0
  61. package/dist/ButtonGroup/button-toolbar.svelte +36 -0
  62. package/dist/ButtonGroup/button-toolbar.svelte.d.ts +28 -0
  63. package/dist/ButtonGroup/index.d.ts +4 -0
  64. package/dist/ButtonGroup/index.js +4 -0
  65. package/dist/ButtonGroup/types.d.ts +21 -0
  66. package/dist/ButtonGroup/types.js +1 -0
  67. package/dist/Card/card-body.svelte +10 -0
  68. package/dist/Card/card-body.svelte.d.ts +3 -0
  69. package/dist/Card/card-footer.svelte +10 -0
  70. package/dist/Card/card-footer.svelte.d.ts +3 -0
  71. package/dist/Card/card-group.svelte +10 -0
  72. package/dist/Card/card-group.svelte.d.ts +3 -0
  73. package/dist/Card/card-header.svelte +10 -0
  74. package/dist/Card/card-header.svelte.d.ts +3 -0
  75. package/dist/Card/card-img-overlay.svelte +10 -0
  76. package/dist/Card/card-img-overlay.svelte.d.ts +3 -0
  77. package/dist/Card/card-img.svelte +12 -0
  78. package/dist/Card/card-img.svelte.d.ts +4 -0
  79. package/dist/Card/card-link.svelte +10 -0
  80. package/dist/Card/card-link.svelte.d.ts +4 -0
  81. package/dist/Card/card-subtitle.svelte +11 -0
  82. package/dist/Card/card-subtitle.svelte.d.ts +4 -0
  83. package/dist/Card/card-text.svelte +10 -0
  84. package/dist/Card/card-text.svelte.d.ts +3 -0
  85. package/dist/Card/card-title.svelte +11 -0
  86. package/dist/Card/card-title.svelte.d.ts +4 -0
  87. package/dist/Card/card.svelte +45 -0
  88. package/dist/Card/card.svelte.d.ts +38 -0
  89. package/dist/Card/composition.d.ts +12 -0
  90. package/dist/Card/composition.js +11 -0
  91. package/dist/Card/index.d.ts +1 -0
  92. package/dist/Card/index.js +1 -0
  93. package/dist/Card/types.d.ts +22 -0
  94. package/dist/Card/types.js +1 -0
  95. package/dist/Carousel/carousel-caption.svelte +30 -0
  96. package/dist/Carousel/carousel-caption.svelte.d.ts +22 -0
  97. package/dist/Carousel/carousel-control-next.svelte +35 -0
  98. package/dist/Carousel/carousel-control-next.svelte.d.ts +21 -0
  99. package/dist/Carousel/carousel-control-prev.svelte +35 -0
  100. package/dist/Carousel/carousel-control-prev.svelte.d.ts +21 -0
  101. package/dist/Carousel/carousel-indicator-button.svelte +41 -0
  102. package/dist/Carousel/carousel-indicator-button.svelte.d.ts +21 -0
  103. package/dist/Carousel/carousel-indicators.svelte +33 -0
  104. package/dist/Carousel/carousel-indicators.svelte.d.ts +25 -0
  105. package/dist/Carousel/carousel-inner.svelte +30 -0
  106. package/dist/Carousel/carousel-inner.svelte.d.ts +22 -0
  107. package/dist/Carousel/carousel-item.svelte +138 -0
  108. package/dist/Carousel/carousel-item.svelte.d.ts +28 -0
  109. package/dist/Carousel/carousel.svelte +140 -0
  110. package/dist/Carousel/carousel.svelte.d.ts +46 -0
  111. package/dist/Carousel/carousel.svelte.js +551 -0
  112. package/dist/Carousel/composition.d.ts +9 -0
  113. package/dist/Carousel/composition.js +8 -0
  114. package/dist/Carousel/index.d.ts +1 -0
  115. package/dist/Carousel/index.js +1 -0
  116. package/dist/Carousel/types.d.ts +74 -0
  117. package/dist/Carousel/types.js +1 -0
  118. package/dist/CloseButton/close-button.svelte +32 -0
  119. package/dist/CloseButton/close-button.svelte.d.ts +29 -0
  120. package/dist/CloseButton/index.d.ts +2 -0
  121. package/dist/CloseButton/index.js +2 -0
  122. package/dist/CloseButton/types.d.ts +6 -0
  123. package/dist/CloseButton/types.js +1 -0
  124. package/dist/Col/col.svelte +133 -0
  125. package/dist/Col/col.svelte.d.ts +60 -0
  126. package/dist/Col/index.d.ts +2 -0
  127. package/dist/Col/index.js +2 -0
  128. package/dist/Col/types.d.ts +30 -0
  129. package/dist/Col/types.js +1 -0
  130. package/dist/Collapse/collapse-aria-attachment.svelte.d.ts +3 -0
  131. package/dist/Collapse/collapse-aria-attachment.svelte.js +32 -0
  132. package/dist/Collapse/collapse.svelte +63 -0
  133. package/dist/Collapse/collapse.svelte.d.ts +45 -0
  134. package/dist/Collapse/index.d.ts +3 -0
  135. package/dist/Collapse/index.js +3 -0
  136. package/dist/Collapse/transition.d.ts +5 -0
  137. package/dist/Collapse/transition.js +75 -0
  138. package/dist/Collapse/types.d.ts +18 -0
  139. package/dist/Collapse/types.js +1 -0
  140. package/dist/Container/container.svelte +46 -0
  141. package/dist/Container/container.svelte.d.ts +36 -0
  142. package/dist/Container/index.d.ts +2 -0
  143. package/dist/Container/index.js +2 -0
  144. package/dist/Container/types.d.ts +8 -0
  145. package/dist/Container/types.js +1 -0
  146. package/dist/Dropdown/composition.d.ts +8 -0
  147. package/dist/Dropdown/composition.js +7 -0
  148. package/dist/Dropdown/dropdown-divider.svelte +23 -0
  149. package/dist/Dropdown/dropdown-divider.svelte.d.ts +18 -0
  150. package/dist/Dropdown/dropdown-header.svelte +27 -0
  151. package/dist/Dropdown/dropdown-header.svelte.d.ts +19 -0
  152. package/dist/Dropdown/dropdown-item-text.svelte +26 -0
  153. package/dist/Dropdown/dropdown-item-text.svelte.d.ts +18 -0
  154. package/dist/Dropdown/dropdown-item.svelte +86 -0
  155. package/dist/Dropdown/dropdown-item.svelte.d.ts +24 -0
  156. package/dist/Dropdown/dropdown-menu.svelte +82 -0
  157. package/dist/Dropdown/dropdown-menu.svelte.d.ts +27 -0
  158. package/dist/Dropdown/dropdown-toggle.svelte +67 -0
  159. package/dist/Dropdown/dropdown-toggle.svelte.d.ts +24 -0
  160. package/dist/Dropdown/dropdown.svelte +106 -0
  161. package/dist/Dropdown/dropdown.svelte.d.ts +34 -0
  162. package/dist/Dropdown/dropdown.svelte.js +435 -0
  163. package/dist/Dropdown/index.d.ts +1 -0
  164. package/dist/Dropdown/index.js +1 -0
  165. package/dist/Dropdown/types.d.ts +47 -0
  166. package/dist/Dropdown/types.js +1 -0
  167. package/dist/Form/composition.d.ts +34 -0
  168. package/dist/Form/composition.js +33 -0
  169. package/dist/Form/form-check-input.svelte +92 -0
  170. package/dist/Form/form-check-input.svelte.d.ts +48 -0
  171. package/dist/Form/form-check-label.svelte +26 -0
  172. package/dist/Form/form-check-label.svelte.d.ts +21 -0
  173. package/dist/Form/form-check.svelte +55 -0
  174. package/dist/Form/form-check.svelte.d.ts +50 -0
  175. package/dist/Form/form-color-input.svelte +54 -0
  176. package/dist/Form/form-color-input.svelte.d.ts +30 -0
  177. package/dist/Form/form-date-input.svelte +64 -0
  178. package/dist/Form/form-date-input.svelte.d.ts +46 -0
  179. package/dist/Form/form-datetime-local-input.svelte +60 -0
  180. package/dist/Form/form-datetime-local-input.svelte.d.ts +45 -0
  181. package/dist/Form/form-email-input.svelte +64 -0
  182. package/dist/Form/form-email-input.svelte.d.ts +46 -0
  183. package/dist/Form/form-feedback.svelte +36 -0
  184. package/dist/Form/form-feedback.svelte.d.ts +26 -0
  185. package/dist/Form/form-file-input.svelte +43 -0
  186. package/dist/Form/form-file-input.svelte.d.ts +30 -0
  187. package/dist/Form/form-floating.svelte +44 -0
  188. package/dist/Form/form-floating.svelte.d.ts +38 -0
  189. package/dist/Form/form-helper-text.svelte +35 -0
  190. package/dist/Form/form-helper-text.svelte.d.ts +29 -0
  191. package/dist/Form/form-hidden-input.svelte +18 -0
  192. package/dist/Form/form-hidden-input.svelte.d.ts +16 -0
  193. package/dist/Form/form-image-input.svelte +30 -0
  194. package/dist/Form/form-image-input.svelte.d.ts +26 -0
  195. package/dist/Form/form-input-group-text.svelte +47 -0
  196. package/dist/Form/form-input-group-text.svelte.d.ts +42 -0
  197. package/dist/Form/form-input-group.svelte +52 -0
  198. package/dist/Form/form-input-group.svelte.d.ts +43 -0
  199. package/dist/Form/form-input-label.svelte +33 -0
  200. package/dist/Form/form-input-label.svelte.d.ts +28 -0
  201. package/dist/Form/form-month-input.svelte +63 -0
  202. package/dist/Form/form-month-input.svelte.d.ts +48 -0
  203. package/dist/Form/form-number-input.svelte +62 -0
  204. package/dist/Form/form-number-input.svelte.d.ts +47 -0
  205. package/dist/Form/form-password-input.svelte +60 -0
  206. package/dist/Form/form-password-input.svelte.d.ts +41 -0
  207. package/dist/Form/form-radio-input.svelte +47 -0
  208. package/dist/Form/form-radio-input.svelte.d.ts +41 -0
  209. package/dist/Form/form-radio-label.svelte +41 -0
  210. package/dist/Form/form-radio-label.svelte.d.ts +35 -0
  211. package/dist/Form/form-range-input.svelte +43 -0
  212. package/dist/Form/form-range-input.svelte.d.ts +39 -0
  213. package/dist/Form/form-search-input.svelte +63 -0
  214. package/dist/Form/form-search-input.svelte.d.ts +45 -0
  215. package/dist/Form/form-select.svelte +85 -0
  216. package/dist/Form/form-select.svelte.d.ts +59 -0
  217. package/dist/Form/form-switch-input.svelte +54 -0
  218. package/dist/Form/form-switch-input.svelte.d.ts +41 -0
  219. package/dist/Form/form-switch-label.svelte +25 -0
  220. package/dist/Form/form-switch-label.svelte.d.ts +19 -0
  221. package/dist/Form/form-telephone-input.svelte +129 -0
  222. package/dist/Form/form-telephone-input.svelte.d.ts +55 -0
  223. package/dist/Form/form-text-area.svelte +57 -0
  224. package/dist/Form/form-text-area.svelte.d.ts +38 -0
  225. package/dist/Form/form-text-input.svelte +55 -0
  226. package/dist/Form/form-text-input.svelte.d.ts +37 -0
  227. package/dist/Form/form-time-input.svelte +62 -0
  228. package/dist/Form/form-time-input.svelte.d.ts +47 -0
  229. package/dist/Form/form-url-input.svelte +60 -0
  230. package/dist/Form/form-url-input.svelte.d.ts +45 -0
  231. package/dist/Form/form-week-Input.svelte +62 -0
  232. package/dist/Form/form-week-Input.svelte.d.ts +47 -0
  233. package/dist/Form/form.svelte +37 -0
  234. package/dist/Form/form.svelte.d.ts +23 -0
  235. package/dist/Form/index.d.ts +1 -0
  236. package/dist/Form/index.js +1 -0
  237. package/dist/Form/types.d.ts +168 -0
  238. package/dist/Form/types.js +1 -0
  239. package/dist/ListGroup/composition.d.ts +4 -0
  240. package/dist/ListGroup/composition.js +3 -0
  241. package/dist/ListGroup/index.d.ts +1 -0
  242. package/dist/ListGroup/index.js +1 -0
  243. package/dist/ListGroup/list-group-item-action.svelte +50 -0
  244. package/dist/ListGroup/list-group-item-action.svelte.d.ts +23 -0
  245. package/dist/ListGroup/list-group-item.svelte +58 -0
  246. package/dist/ListGroup/list-group-item.svelte.d.ts +51 -0
  247. package/dist/ListGroup/list-group.svelte +83 -0
  248. package/dist/ListGroup/list-group.svelte.d.ts +68 -0
  249. package/dist/ListGroup/types.d.ts +20 -0
  250. package/dist/ListGroup/types.js +1 -0
  251. package/dist/Modal/composition.d.ts +8 -0
  252. package/dist/Modal/composition.js +7 -0
  253. package/dist/Modal/index.d.ts +1 -0
  254. package/dist/Modal/index.js +1 -0
  255. package/dist/Modal/modal-body.svelte +27 -0
  256. package/dist/Modal/modal-body.svelte.d.ts +19 -0
  257. package/dist/Modal/modal-content.svelte +35 -0
  258. package/dist/Modal/modal-content.svelte.d.ts +27 -0
  259. package/dist/Modal/modal-dialog.svelte +65 -0
  260. package/dist/Modal/modal-dialog.svelte.d.ts +52 -0
  261. package/dist/Modal/modal-footer.svelte +28 -0
  262. package/dist/Modal/modal-footer.svelte.d.ts +20 -0
  263. package/dist/Modal/modal-header.svelte +50 -0
  264. package/dist/Modal/modal-header.svelte.d.ts +29 -0
  265. package/dist/Modal/modal-title.svelte +45 -0
  266. package/dist/Modal/modal-title.svelte.d.ts +26 -0
  267. package/dist/Modal/modal.svelte +233 -0
  268. package/dist/Modal/modal.svelte.d.ts +52 -0
  269. package/dist/Modal/modal.svelte.js +86 -0
  270. package/dist/Modal/types.d.ts +31 -0
  271. package/dist/Modal/types.js +1 -0
  272. package/dist/Nav/composition.d.ts +4 -0
  273. package/dist/Nav/composition.js +3 -0
  274. package/dist/Nav/index.d.ts +1 -0
  275. package/dist/Nav/index.js +1 -0
  276. package/dist/Nav/nav-item.svelte +25 -0
  277. package/dist/Nav/nav-item.svelte.d.ts +18 -0
  278. package/dist/Nav/nav-link.svelte +77 -0
  279. package/dist/Nav/nav-link.svelte.d.ts +22 -0
  280. package/dist/Nav/nav.svelte +93 -0
  281. package/dist/Nav/nav.svelte.d.ts +56 -0
  282. package/dist/Nav/types.d.ts +26 -0
  283. package/dist/Nav/types.js +1 -0
  284. package/dist/Navbar/composition.d.ts +8 -0
  285. package/dist/Navbar/composition.js +7 -0
  286. package/dist/Navbar/index.d.ts +1 -0
  287. package/dist/Navbar/index.js +1 -0
  288. package/dist/Navbar/navbar-brand.svelte +55 -0
  289. package/dist/Navbar/navbar-brand.svelte.d.ts +48 -0
  290. package/dist/Navbar/navbar-collapse.svelte +76 -0
  291. package/dist/Navbar/navbar-collapse.svelte.d.ts +55 -0
  292. package/dist/Navbar/navbar-nav.svelte +66 -0
  293. package/dist/Navbar/navbar-nav.svelte.d.ts +53 -0
  294. package/dist/Navbar/navbar-text.svelte +36 -0
  295. package/dist/Navbar/navbar-text.svelte.d.ts +28 -0
  296. package/dist/Navbar/navbar-toggler-icon.svelte +34 -0
  297. package/dist/Navbar/navbar-toggler-icon.svelte.d.ts +28 -0
  298. package/dist/Navbar/navbar-toggler.svelte +75 -0
  299. package/dist/Navbar/navbar-toggler.svelte.d.ts +48 -0
  300. package/dist/Navbar/navbar.svelte +116 -0
  301. package/dist/Navbar/navbar.svelte.d.ts +88 -0
  302. package/dist/Navbar/types.d.ts +23 -0
  303. package/dist/Navbar/types.js +1 -0
  304. package/dist/Offcanvas/composition.d.ts +5 -0
  305. package/dist/Offcanvas/composition.js +4 -0
  306. package/dist/Offcanvas/index.d.ts +1 -0
  307. package/dist/Offcanvas/index.js +1 -0
  308. package/dist/Offcanvas/offcanvas-body.svelte +25 -0
  309. package/dist/Offcanvas/offcanvas-body.svelte.d.ts +19 -0
  310. package/dist/Offcanvas/offcanvas-header.svelte +39 -0
  311. package/dist/Offcanvas/offcanvas-header.svelte.d.ts +20 -0
  312. package/dist/Offcanvas/offcanvas-title.svelte +31 -0
  313. package/dist/Offcanvas/offcanvas-title.svelte.d.ts +25 -0
  314. package/dist/Offcanvas/offcanvas.svelte +220 -0
  315. package/dist/Offcanvas/offcanvas.svelte.d.ts +61 -0
  316. package/dist/Offcanvas/types.d.ts +25 -0
  317. package/dist/Offcanvas/types.js +1 -0
  318. package/dist/Pagination/composition.d.ts +4 -0
  319. package/dist/Pagination/composition.js +3 -0
  320. package/dist/Pagination/index.d.ts +1 -0
  321. package/dist/Pagination/index.js +1 -0
  322. package/dist/Pagination/pagination-item.svelte +81 -0
  323. package/dist/Pagination/pagination-item.svelte.d.ts +35 -0
  324. package/dist/Pagination/pagination-link.svelte +45 -0
  325. package/dist/Pagination/pagination-link.svelte.d.ts +25 -0
  326. package/dist/Pagination/pagination.svelte +60 -0
  327. package/dist/Pagination/pagination.svelte.d.ts +37 -0
  328. package/dist/Pagination/pagination.svelte.js +117 -0
  329. package/dist/Pagination/types.d.ts +19 -0
  330. package/dist/Pagination/types.js +1 -0
  331. package/dist/Placeholder/composition.d.ts +3 -0
  332. package/dist/Placeholder/composition.js +2 -0
  333. package/dist/Placeholder/index.d.ts +1 -0
  334. package/dist/Placeholder/index.js +1 -0
  335. package/dist/Placeholder/placeholder-item.svelte +53 -0
  336. package/dist/Placeholder/placeholder-item.svelte.d.ts +48 -0
  337. package/dist/Placeholder/placeholder.svelte +37 -0
  338. package/dist/Placeholder/placeholder.svelte.d.ts +32 -0
  339. package/dist/Placeholder/types.d.ts +12 -0
  340. package/dist/Placeholder/types.js +1 -0
  341. package/dist/Popover/composition.d.ts +4 -0
  342. package/dist/Popover/composition.js +3 -0
  343. package/dist/Popover/index.d.ts +1 -0
  344. package/dist/Popover/index.js +1 -0
  345. package/dist/Popover/popover-body.svelte +10 -0
  346. package/dist/Popover/popover-body.svelte.d.ts +3 -0
  347. package/dist/Popover/popover-header.svelte +11 -0
  348. package/dist/Popover/popover-header.svelte.d.ts +4 -0
  349. package/dist/Popover/popover.svelte +74 -0
  350. package/dist/Popover/popover.svelte.d.ts +53 -0
  351. package/dist/Popover/types.d.ts +20 -0
  352. package/dist/Popover/types.js +1 -0
  353. package/dist/Portal/index.d.ts +2 -0
  354. package/dist/Portal/index.js +2 -0
  355. package/dist/Portal/portal-host.svelte +5 -0
  356. package/dist/Portal/portal-host.svelte.d.ts +7 -0
  357. package/dist/Portal/portal.svelte +69 -0
  358. package/dist/Portal/portal.svelte.d.ts +32 -0
  359. package/dist/Portal/types.d.ts +6 -0
  360. package/dist/Portal/types.js +1 -0
  361. package/dist/Progress/index.d.ts +3 -0
  362. package/dist/Progress/index.js +3 -0
  363. package/dist/Progress/progress-bar.svelte +101 -0
  364. package/dist/Progress/progress-bar.svelte.d.ts +39 -0
  365. package/dist/Progress/progress-stacked.svelte +34 -0
  366. package/dist/Progress/progress-stacked.svelte.d.ts +24 -0
  367. package/dist/Progress/progress.svelte.d.ts +31 -0
  368. package/dist/Progress/progress.svelte.js +52 -0
  369. package/dist/Progress/types.d.ts +40 -0
  370. package/dist/Progress/types.js +1 -0
  371. package/dist/Row/index.d.ts +2 -0
  372. package/dist/Row/index.js +2 -0
  373. package/dist/Row/row.svelte +75 -0
  374. package/dist/Row/row.svelte.d.ts +46 -0
  375. package/dist/Row/types.d.ts +12 -0
  376. package/dist/Row/types.js +1 -0
  377. package/dist/Scrollspy/index.d.ts +2 -0
  378. package/dist/Scrollspy/index.js +2 -0
  379. package/dist/Scrollspy/scrollspy-attachment.svelte.d.ts +10 -0
  380. package/dist/Scrollspy/scrollspy-attachment.svelte.js +122 -0
  381. package/dist/Scrollspy/types.d.ts +9 -0
  382. package/dist/Scrollspy/types.js +1 -0
  383. package/dist/Spinner/index.d.ts +2 -0
  384. package/dist/Spinner/index.js +2 -0
  385. package/dist/Spinner/spinner.svelte +77 -0
  386. package/dist/Spinner/spinner.svelte.d.ts +70 -0
  387. package/dist/Spinner/types.d.ts +9 -0
  388. package/dist/Spinner/types.js +1 -0
  389. package/dist/Tab/composition.d.ts +5 -0
  390. package/dist/Tab/composition.js +4 -0
  391. package/dist/Tab/index.d.ts +1 -0
  392. package/dist/Tab/index.js +1 -0
  393. package/dist/Tab/tab-content.svelte +29 -0
  394. package/dist/Tab/tab-content.svelte.d.ts +23 -0
  395. package/dist/Tab/tab-nav-link.svelte +69 -0
  396. package/dist/Tab/tab-nav-link.svelte.d.ts +22 -0
  397. package/dist/Tab/tab-pane.svelte +72 -0
  398. package/dist/Tab/tab-pane.svelte.d.ts +26 -0
  399. package/dist/Tab/tab.svelte +63 -0
  400. package/dist/Tab/tab.svelte.d.ts +50 -0
  401. package/dist/Tab/types.d.ts +18 -0
  402. package/dist/Tab/types.js +1 -0
  403. package/dist/Table/composition.d.ts +9 -0
  404. package/dist/Table/composition.js +8 -0
  405. package/dist/Table/index.d.ts +1 -0
  406. package/dist/Table/index.js +1 -0
  407. package/dist/Table/table-body.svelte +30 -0
  408. package/dist/Table/table-body.svelte.d.ts +23 -0
  409. package/dist/Table/table-caption.svelte +20 -0
  410. package/dist/Table/table-caption.svelte.d.ts +15 -0
  411. package/dist/Table/table-data.svelte +30 -0
  412. package/dist/Table/table-data.svelte.d.ts +19 -0
  413. package/dist/Table/table-foot.svelte +31 -0
  414. package/dist/Table/table-foot.svelte.d.ts +24 -0
  415. package/dist/Table/table-head.svelte +31 -0
  416. package/dist/Table/table-head.svelte.d.ts +24 -0
  417. package/dist/Table/table-header.svelte +38 -0
  418. package/dist/Table/table-header.svelte.d.ts +17 -0
  419. package/dist/Table/table-row.svelte +34 -0
  420. package/dist/Table/table-row.svelte.d.ts +23 -0
  421. package/dist/Table/table.svelte +154 -0
  422. package/dist/Table/table.svelte.d.ts +98 -0
  423. package/dist/Table/table.svelte.js +92 -0
  424. package/dist/Table/types.d.ts +43 -0
  425. package/dist/Table/types.js +1 -0
  426. package/dist/Toast/composition.d.ts +5 -0
  427. package/dist/Toast/composition.js +4 -0
  428. package/dist/Toast/index.d.ts +1 -0
  429. package/dist/Toast/index.js +1 -0
  430. package/dist/Toast/toast-body.svelte +26 -0
  431. package/dist/Toast/toast-body.svelte.d.ts +18 -0
  432. package/dist/Toast/toast-container.svelte +44 -0
  433. package/dist/Toast/toast-container.svelte.d.ts +36 -0
  434. package/dist/Toast/toast-header.svelte +56 -0
  435. package/dist/Toast/toast-header.svelte.d.ts +36 -0
  436. package/dist/Toast/toast.svelte +112 -0
  437. package/dist/Toast/toast.svelte.d.ts +54 -0
  438. package/dist/Toast/toast.svelte.js +83 -0
  439. package/dist/Toast/types.d.ts +53 -0
  440. package/dist/Toast/types.js +19 -0
  441. package/dist/Tooltip/composition.d.ts +3 -0
  442. package/dist/Tooltip/composition.js +2 -0
  443. package/dist/Tooltip/index.d.ts +1 -0
  444. package/dist/Tooltip/index.js +1 -0
  445. package/dist/Tooltip/tooltip-inner.svelte +10 -0
  446. package/dist/Tooltip/tooltip-inner.svelte.d.ts +4 -0
  447. package/dist/Tooltip/tooltip.svelte +213 -0
  448. package/dist/Tooltip/tooltip.svelte.d.ts +54 -0
  449. package/dist/Tooltip/types.d.ts +43 -0
  450. package/dist/Tooltip/types.js +1 -0
  451. package/dist/common/context.d.ts +47 -0
  452. package/dist/common/context.js +70 -0
  453. package/dist/common/css.d.ts +71 -0
  454. package/dist/common/css.js +133 -0
  455. package/dist/common/dom.d.ts +51 -0
  456. package/dist/common/dom.js +98 -0
  457. package/dist/common/index.d.ts +6 -0
  458. package/dist/common/index.js +5 -0
  459. package/dist/common/nav-tab.svelte.d.ts +88 -0
  460. package/dist/common/nav-tab.svelte.js +188 -0
  461. package/dist/common/navbar-offcanvas.svelte.d.ts +101 -0
  462. package/dist/common/navbar-offcanvas.svelte.js +228 -0
  463. package/dist/common/noop.d.ts +4 -0
  464. package/dist/common/noop.js +4 -0
  465. package/dist/common/scrollbar.d.ts +20 -0
  466. package/dist/common/scrollbar.js +53 -0
  467. package/dist/common/types.d.ts +143 -0
  468. package/dist/common/types.js +40 -0
  469. package/dist/index.d.ts +33 -0
  470. package/dist/index.js +33 -0
  471. package/package.json +105 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ## Modal.Footer
3
+ * Footer component for the Modal content.
4
+ *
5
+ * @example
6
+ * ```svelte
7
+ * <Modal.Footer>
8
+ * <Button colorVariant="secondary" onclick={() => setIsShown(false)}>Close</Button>
9
+ * <Button colorVariant="primary" onclick={() => handleSave()}>Save changes</Button>
10
+ * </Modal.Footer>
11
+ * ```
12
+ * ### Props
13
+ * - `children` (slot): Content to display inside the footer
14
+ * - `class` (string): Optional. Additional CSS classes
15
+ * - `elementRef` (HTMLElement): Optional. Reference to the footer DOM element
16
+ * - `id` (string): Optional. ID for the footer element
17
+ */
18
+ declare const ModalFooter: import("svelte").Component<import("../index.js").DivElement, {}, "elementRef">;
19
+ type ModalFooter = ReturnType<typeof ModalFooter>;
20
+ export default ModalFooter;
@@ -0,0 +1,50 @@
1
+ <!--
2
+ @component
3
+ ## Modal.Header
4
+ Header component for the Modal. Usually contains the Modal.Title and a close button.
5
+
6
+ @example
7
+ ```svelte
8
+ <Modal.Header>
9
+ <Modal.Title>Modal Title</Modal.Title>
10
+ </Modal.Header>
11
+ ```
12
+
13
+ #### Without close button
14
+ ```svelte
15
+ <Modal.Header isDismissible={false}>
16
+ <Modal.Title>Modal Title</Modal.Title>
17
+ </Modal.Header>
18
+ ```
19
+
20
+ ### Props
21
+ - `children` (slot): Content to display inside the header
22
+ - `class` (string): Optional. Additional CSS classes
23
+ - `elementRef` (HTMLElement): Optional. Reference to the header DOM element
24
+ - `id` (string): Optional. ID for the header element
25
+ - `isDismissible` (boolean): Optional. Controls whether the header has a close button
26
+ -->
27
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
28
+ import { CloseButton } from '../index.js';
29
+ import { Modal } from './index.js';
30
+ import { initModalHeaderState, ModalHeaderState } from './modal.svelte.js';
31
+ // Generate a unique ID for the modal header element, in case one is not provided...
32
+ const uid = $props.id();
33
+ let { children, class: classValues, elementRef = $bindable(null), id = `modal-header-${uid}`, isDismissible = true, ...restOfProps } = $props();
34
+ const headerState = initModalHeaderState({
35
+ get isDismissible() {
36
+ return isDismissible;
37
+ }
38
+ });
39
+ let classes = $derived(uniqueClsx('modal-header', classValues));
40
+ const handleClick = (_event) => {
41
+ headerState.onclick();
42
+ };
43
+ </script>
44
+
45
+ <div bind:this={elementRef} class={classes} {id} {...restOfProps}>
46
+ {@render children?.()}
47
+ {#if isDismissible}
48
+ <CloseButton onclick={handleClick}></CloseButton>
49
+ {/if}
50
+ </div>
@@ -0,0 +1,29 @@
1
+ import { Modal } from './index.js';
2
+ /**
3
+ * ## Modal.Header
4
+ * Header component for the Modal. Usually contains the Modal.Title and a close button.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <Modal.Header>
9
+ * <Modal.Title>Modal Title</Modal.Title>
10
+ * </Modal.Header>
11
+ * ```
12
+ *
13
+ * #### Without close button
14
+ * ```svelte
15
+ * <Modal.Header isDismissible={false}>
16
+ * <Modal.Title>Modal Title</Modal.Title>
17
+ * </Modal.Header>
18
+ * ```
19
+ *
20
+ * ### Props
21
+ * - `children` (slot): Content to display inside the header
22
+ * - `class` (string): Optional. Additional CSS classes
23
+ * - `elementRef` (HTMLElement): Optional. Reference to the header DOM element
24
+ * - `id` (string): Optional. ID for the header element
25
+ * - `isDismissible` (boolean): Optional. Controls whether the header has a close button
26
+ */
27
+ declare const ModalHeader: import("svelte").Component<Modal.HeaderProps, {}, "elementRef">;
28
+ type ModalHeader = ReturnType<typeof ModalHeader>;
29
+ export default ModalHeader;
@@ -0,0 +1,45 @@
1
+ <!--
2
+ @component
3
+ ## Modal.Title
4
+ Title component for the Modal.Header.
5
+
6
+ @example
7
+ ```svelte
8
+ <Modal.Title>Modal Title</Modal.Title>
9
+ ```
10
+
11
+ #### Custom heading level
12
+ ```svelte
13
+ <Modal.Title level={1}>H1 Title</Modal.Title>
14
+ <Modal.Title level={2}>H2 Title</Modal.Title>
15
+ ```
16
+
17
+ ### Props
18
+ - `children` (slot): Content to display inside the title
19
+ - `class` (string): Optional. Additional CSS classes
20
+ - `elementRef` (HTMLElement): Optional. Reference to the title DOM element
21
+ - `id` (string): Optional. ID for the title element
22
+ - `level` (number): Optional. Heading level (1-6) for the title element
23
+ -->
24
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
25
+ import { onDestroy } from 'svelte';
26
+ import { getOptionalModalRootState } from './modal.svelte.js';
27
+ // Generate a unique ID for the modal title element, in case one is not provided...
28
+ const uid = $props.id();
29
+ let { children, class: classValues, elementRef = $bindable(null), id = `modal-title-${uid}`, level = 5, ...restOfProps } = $props();
30
+ let elementType = $derived(`h${level}`);
31
+ let classes = $derived(uniqueClsx('modal-title', classValues));
32
+ const rootState = getOptionalModalRootState();
33
+ $effect(() => {
34
+ if (id)
35
+ rootState?.registerTitleId(id);
36
+ });
37
+ onDestroy(() => {
38
+ if (id)
39
+ rootState?.unregisterTitleId(id);
40
+ });
41
+ </script>
42
+
43
+ <svelte:element this={elementType} bind:this={elementRef} class={classes} {id} {...restOfProps}>
44
+ {@render children?.()}
45
+ </svelte:element>
@@ -0,0 +1,26 @@
1
+ import type { Modal } from './index.js';
2
+ /**
3
+ * ## Modal.Title
4
+ * Title component for the Modal.Header.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <Modal.Title>Modal Title</Modal.Title>
9
+ * ```
10
+ *
11
+ * #### Custom heading level
12
+ * ```svelte
13
+ * <Modal.Title level={1}>H1 Title</Modal.Title>
14
+ * <Modal.Title level={2}>H2 Title</Modal.Title>
15
+ * ```
16
+ *
17
+ * ### Props
18
+ * - `children` (slot): Content to display inside the title
19
+ * - `class` (string): Optional. Additional CSS classes
20
+ * - `elementRef` (HTMLElement): Optional. Reference to the title DOM element
21
+ * - `id` (string): Optional. ID for the title element
22
+ * - `level` (number): Optional. Heading level (1-6) for the title element
23
+ */
24
+ declare const ModalTitle: import("svelte").Component<Modal.TitleProps, {}, "elementRef">;
25
+ type ModalTitle = ReturnType<typeof ModalTitle>;
26
+ export default ModalTitle;
@@ -0,0 +1,233 @@
1
+ <!--
2
+ @component
3
+ ## Modal
4
+ Add dialogs to your site for lightboxes, user notifications, or completely custom content.
5
+
6
+ @example
7
+ ```svelte
8
+ <Modal isShown={true}>
9
+ <Modal.Dialog>
10
+ <Modal.Content>
11
+ <Modal.Header>
12
+ <Modal.Title>Modal Title</Modal.Title>
13
+ </Modal.Header>
14
+ <Modal.Body>
15
+ Modal content goes here.
16
+ </Modal.Body>
17
+ <Modal.Footer>
18
+ <Button onclick={() => setIsShown(false)}>Close</Button>
19
+ </Modal.Footer>
20
+ </Modal.Content>
21
+ </Modal.Dialog>
22
+ </Modal>
23
+ ```
24
+
25
+ #### Static backdrop
26
+ ```svelte
27
+ <Modal useBackdrop="static">...</Modal>
28
+ ```
29
+
30
+ #### Keyboard dismissible
31
+ ```svelte
32
+ <Modal isKeyboardDismissible={true}>...</Modal>
33
+ ```
34
+
35
+ ### Props
36
+ - `children` (slot): Content to display inside the modal.
37
+ - `class` (string): Optional. Additional CSS classes.
38
+ - `elementRef` (HTMLElement): Optional. Reference to the modal DOM element.
39
+ - `id` (string): Optional. ID for the modal element.
40
+ - `isFocusable` (boolean): Optional. Controls whether the modal can receive focus.
41
+ - `isKeyboardDismissible` (boolean): Optional. Controls whether the modal can be dismissed with the Escape key.
42
+ - `isShown` (boolean): Optional. Controls whether the modal is visible.
43
+ - `onHide` (function): Optional. Callback to invoke when the modal starts hiding.
44
+ - `onHidden` (function): Optional. Callback to invoke when the modal has been hidden.
45
+ - `onShow` (function): Optional. Callback to invoke when the modal starts showing.
46
+ - `onShown` (function): Optional. Callback to invoke when the modal has been shown.
47
+ - `useBackdrop` (boolean | 'static'): Optional. Controls whether the modal has a backdrop and if it's static (non-dismissible).
48
+ - `useFade` (boolean): Optional. Controls whether the modal uses a fade transition.
49
+ -->
50
+ <script lang="ts">import { disableBodyScrolling, noop, resetBodyScrolling, uniqueClsx } from '../common/index.js';
51
+ import { Portal } from '../index.js';
52
+ import { onMount, tick } from 'svelte';
53
+ import { fade, fly } from 'svelte/transition';
54
+ import { initModalRootState, ModalRootState } from './modal.svelte.js';
55
+ // Generate a unique ID for the modal element, in case one is not provided...
56
+ const uid = $props.id();
57
+ let { children, class: classValues, elementRef = $bindable(null), id = `modal-${uid}`, isShown = false, isKeyboardDismissible = true, isFocusable = true, onHide = noop, onHidePrevented = noop, onHidden = noop, onShow = noop, onShown = noop, useBackdrop = true, useFade = true, ...restOfProps } = $props();
58
+ // Initialize the root state of the modal component...
59
+ let bodyElement = $state(null);
60
+ let previouslyFocusedElement = null;
61
+ const unset = Symbol('unset');
62
+ let previousIsShown = unset;
63
+ let previousRootIsShown = false;
64
+ let previousUseBackdrop = unset;
65
+ const rootState = initModalRootState({
66
+ get isShown() {
67
+ return isShown;
68
+ },
69
+ get useBackdrop() {
70
+ return useBackdrop;
71
+ }
72
+ });
73
+ // Derived classes for the modal component...
74
+ let isHidePrevented = $state(false);
75
+ let backDropClasses = $derived(uniqueClsx('modal-backdrop', { fade: useFade, show: rootState.isShown }));
76
+ let classes = $derived(uniqueClsx('modal', {
77
+ fade: useFade,
78
+ show: rootState.isShown,
79
+ 'd-block': rootState.isShown,
80
+ 'modal-static': isHidePrevented
81
+ }, classValues));
82
+ // Listen changes to the isShown prop and update the root state accordingly...
83
+ $effect(() => {
84
+ if (previousIsShown !== unset && previousIsShown !== isShown) {
85
+ if (isShown && !rootState.isShown) {
86
+ rootState.toggleIsShown();
87
+ }
88
+ else if (!isShown && rootState.isShown) {
89
+ rootState.toggleIsShown();
90
+ }
91
+ }
92
+ previousIsShown = isShown;
93
+ });
94
+ // Listen changes to the useBackdrop prop and update the root state accordingly...
95
+ $effect(() => {
96
+ if (previousUseBackdrop !== unset && previousUseBackdrop !== useBackdrop) {
97
+ if (useBackdrop && !rootState.useBackdrop) {
98
+ rootState.useBackdrop = useBackdrop;
99
+ }
100
+ else if (!useBackdrop && rootState.useBackdrop) {
101
+ rootState.useBackdrop = useBackdrop;
102
+ }
103
+ }
104
+ previousUseBackdrop = useBackdrop;
105
+ });
106
+ $effect(() => {
107
+ if (rootState.isShown && !previousRootIsShown) {
108
+ previouslyFocusedElement = document.activeElement instanceof HTMLElement ? document.activeElement : null;
109
+ focusModal();
110
+ }
111
+ else if (!rootState.isShown && previousRootIsShown) {
112
+ restoreFocus();
113
+ }
114
+ previousRootIsShown = rootState.isShown;
115
+ });
116
+ const handleOnShow = (event) => {
117
+ if (bodyElement) {
118
+ disableBodyScrolling(bodyElement);
119
+ bodyElement.classList.add('modal-open');
120
+ }
121
+ onShow(event);
122
+ };
123
+ const handleOnHidden = (event) => {
124
+ if (bodyElement) {
125
+ resetBodyScrolling(bodyElement);
126
+ bodyElement.classList.remove('modal-open');
127
+ }
128
+ onHidden(event);
129
+ };
130
+ async function focusModal() {
131
+ if (!isFocusable)
132
+ return;
133
+ await tick();
134
+ const focusTarget = getFocusableElements()[0] ?? elementRef;
135
+ focusTarget?.focus({ preventScroll: true });
136
+ }
137
+ function restoreFocus() {
138
+ if (previouslyFocusedElement?.isConnected) {
139
+ previouslyFocusedElement.focus({ preventScroll: true });
140
+ }
141
+ previouslyFocusedElement = null;
142
+ }
143
+ function getFocusableElements() {
144
+ if (!elementRef)
145
+ return [];
146
+ return Array.from(elementRef.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter((element) => !element.hasAttribute('disabled') && element.getAttribute('aria-hidden') !== 'true');
147
+ }
148
+ function trapFocus(event) {
149
+ const focusableElements = getFocusableElements();
150
+ const firstElement = focusableElements[0] ?? elementRef;
151
+ const lastElement = focusableElements[focusableElements.length - 1] ?? elementRef;
152
+ if (!firstElement || !lastElement)
153
+ return;
154
+ if (event.shiftKey && document.activeElement === firstElement) {
155
+ event.preventDefault();
156
+ lastElement.focus();
157
+ }
158
+ else if (!event.shiftKey && document.activeElement === lastElement) {
159
+ event.preventDefault();
160
+ firstElement.focus();
161
+ }
162
+ }
163
+ // Get the body element when the component is mounted...
164
+ onMount(() => {
165
+ if (typeof window !== 'undefined') {
166
+ bodyElement = document.querySelector('body');
167
+ }
168
+ });
169
+ // Dismiss the modal when the backdrop is clicked...
170
+ const handleBackdropMouseDown = (event) => {
171
+ const target = event.target;
172
+ const closestModal = target.closest('.modal-dialog');
173
+ if (closestModal) {
174
+ event.stopPropagation();
175
+ return;
176
+ }
177
+ if (rootState.isShown && useBackdrop === 'static') {
178
+ event.stopPropagation();
179
+ onHidePrevented(event);
180
+ isHidePrevented = true;
181
+ setTimeout(() => {
182
+ isHidePrevented = false;
183
+ }, 300);
184
+ return;
185
+ }
186
+ if (rootState.isShown && useBackdrop !== 'static') {
187
+ event.stopPropagation();
188
+ rootState.toggleIsShown();
189
+ }
190
+ };
191
+ // Handle keyboard events to dismiss modal on Escape key press
192
+ const handleKeydown = (event) => {
193
+ const keyboardEvent = event;
194
+ if (!rootState.isShown)
195
+ return;
196
+ if (keyboardEvent.key === 'Tab') {
197
+ trapFocus(keyboardEvent);
198
+ return;
199
+ }
200
+ if (rootState.isShown && isKeyboardDismissible && keyboardEvent.key === 'Escape') {
201
+ rootState.toggleIsShown();
202
+ }
203
+ };
204
+ </script>
205
+
206
+ <svelte:window on:keydown={handleKeydown} />
207
+
208
+ {#if rootState.isShown}
209
+ <div
210
+ aria-labelledby={rootState.titleId}
211
+ aria-modal={rootState.isShown}
212
+ bind:this={elementRef}
213
+ class={classes}
214
+ {id}
215
+ role="dialog"
216
+ tabindex={isFocusable ? -1 : undefined}
217
+ onmousedown={handleBackdropMouseDown}
218
+ onintrostart={handleOnShow}
219
+ onintroend={onShown}
220
+ onoutrostart={onHide}
221
+ onoutroend={handleOnHidden}
222
+ transition:fly={{ duration: useFade ? 300 : 0, y: '-50px', opacity: 0 }}
223
+ {...restOfProps}>
224
+ {@render children?.()}
225
+ </div>
226
+ {/if}
227
+
228
+ <Portal target="body">
229
+ {#if rootState.isBackdropShown}
230
+ <div class={backDropClasses} onmousedown={handleBackdropMouseDown} role="presentation" transition:fade={{ duration: useFade ? 150 : 0 }}>
231
+ </div>
232
+ {/if}
233
+ </Portal>
@@ -0,0 +1,52 @@
1
+ import type { Modal } from './index.js';
2
+ /**
3
+ * ## Modal
4
+ * Add dialogs to your site for lightboxes, user notifications, or completely custom content.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <Modal isShown={true}>
9
+ * <Modal.Dialog>
10
+ * <Modal.Content>
11
+ * <Modal.Header>
12
+ * <Modal.Title>Modal Title</Modal.Title>
13
+ * </Modal.Header>
14
+ * <Modal.Body>
15
+ * Modal content goes here.
16
+ * </Modal.Body>
17
+ * <Modal.Footer>
18
+ * <Button onclick={() => setIsShown(false)}>Close</Button>
19
+ * </Modal.Footer>
20
+ * </Modal.Content>
21
+ * </Modal.Dialog>
22
+ * </Modal>
23
+ * ```
24
+ *
25
+ * #### Static backdrop
26
+ * ```svelte
27
+ * <Modal useBackdrop="static">...</Modal>
28
+ * ```
29
+ *
30
+ * #### Keyboard dismissible
31
+ * ```svelte
32
+ * <Modal isKeyboardDismissible={true}>...</Modal>
33
+ * ```
34
+ *
35
+ * ### Props
36
+ * - `children` (slot): Content to display inside the modal.
37
+ * - `class` (string): Optional. Additional CSS classes.
38
+ * - `elementRef` (HTMLElement): Optional. Reference to the modal DOM element.
39
+ * - `id` (string): Optional. ID for the modal element.
40
+ * - `isFocusable` (boolean): Optional. Controls whether the modal can receive focus.
41
+ * - `isKeyboardDismissible` (boolean): Optional. Controls whether the modal can be dismissed with the Escape key.
42
+ * - `isShown` (boolean): Optional. Controls whether the modal is visible.
43
+ * - `onHide` (function): Optional. Callback to invoke when the modal starts hiding.
44
+ * - `onHidden` (function): Optional. Callback to invoke when the modal has been hidden.
45
+ * - `onShow` (function): Optional. Callback to invoke when the modal starts showing.
46
+ * - `onShown` (function): Optional. Callback to invoke when the modal has been shown.
47
+ * - `useBackdrop` (boolean | 'static'): Optional. Controls whether the modal has a backdrop and if it's static (non-dismissible).
48
+ * - `useFade` (boolean): Optional. Controls whether the modal uses a fade transition.
49
+ */
50
+ declare const Modal: import("svelte").Component<Modal.RootProps, {}, "elementRef">;
51
+ type Modal = ReturnType<typeof Modal>;
52
+ export default Modal;
@@ -0,0 +1,86 @@
1
+ import { Context } from '../common/index.js';
2
+ /**
3
+ * ModalRootState is the state of the Modal component.
4
+ * It is used to manage the state of the Modal and its children.
5
+ */
6
+ export class ModalRootState {
7
+ props;
8
+ // Private
9
+ #isShown = $state(false);
10
+ #useBackdrop = $state(true);
11
+ titleId = $state(undefined);
12
+ constructor(props) {
13
+ this.props = props;
14
+ this.toggleIsShown = this.toggleIsShown.bind(this);
15
+ this.#isShown = this.props.isShown ?? false;
16
+ this.#useBackdrop = this.props.useBackdrop ?? true;
17
+ }
18
+ get isBackdropShown() {
19
+ return this.isShown && this.#useBackdrop !== false;
20
+ }
21
+ get isShown() {
22
+ return this.#isShown;
23
+ }
24
+ get useBackdrop() {
25
+ return this.#useBackdrop;
26
+ }
27
+ set useBackdrop(value) {
28
+ this.#useBackdrop = value;
29
+ }
30
+ toggleIsShown() {
31
+ this.#isShown = !this.#isShown;
32
+ }
33
+ registerTitleId(id) {
34
+ this.titleId ??= id;
35
+ }
36
+ unregisterTitleId(id) {
37
+ if (this.titleId === id) {
38
+ this.titleId = undefined;
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * ModalHeaderState is the state of the Modal.Header component.
44
+ * It is used to manage the state of the Modal.Header and its children.
45
+ */
46
+ export class ModalHeaderState {
47
+ props;
48
+ root;
49
+ isShown = $derived.by(() => this.root.isShown);
50
+ isDismissible = $state(false);
51
+ constructor(props, root) {
52
+ this.props = props;
53
+ this.root = root;
54
+ this.isDismissible = this.props.isDismissible ?? false;
55
+ }
56
+ onclick() {
57
+ this.root.toggleIsShown();
58
+ }
59
+ }
60
+ const ModalRootContext = new Context('modal-root');
61
+ /**
62
+ * Creates a new ModalRootState and sets it in the ModalRootContext.
63
+ * This is used to manage the state of the Modal component and its children.
64
+ * @param props The props of the Modal component.
65
+ * @returns The created ModalRootState.
66
+ */
67
+ export function initModalRootState(props) {
68
+ const rootState = new ModalRootState(props);
69
+ return ModalRootContext.set(rootState);
70
+ }
71
+ /**
72
+ * Creates a new ModalHeaderState and sets it in the ModalHeaderContext.
73
+ * This is used to manage the state of the Modal.Header component and its children.
74
+ * @param props The props of the Modal.Header component.
75
+ * @returns The created ModalHeaderState.
76
+ */
77
+ export function initModalHeaderState(props) {
78
+ const rootState = ModalRootContext.get();
79
+ return new ModalHeaderState(props, rootState);
80
+ }
81
+ export function getModalRootState() {
82
+ return ModalRootContext.get();
83
+ }
84
+ export function getOptionalModalRootState() {
85
+ return ModalRootContext.getOr(undefined);
86
+ }
@@ -0,0 +1,31 @@
1
+ import type { BaseBreakpoint, DivElement, HeadingElement, HeadingLevels } from '../common/types.js';
2
+ export type ModalBackdrop = 'static' | boolean;
3
+ export type ModalFullscreenBreakpoint = BaseBreakpoint | 'always';
4
+ export type ModalSize = 'sm' | 'lg' | 'xl';
5
+ export type ModalRootProps = DivElement & {
6
+ isFocusable?: boolean;
7
+ isKeyboardDismissible?: boolean;
8
+ isShown?: boolean;
9
+ onHide?: EventListener;
10
+ onHidePrevented?: EventListener;
11
+ onHidden?: EventListener;
12
+ onShow?: EventListener;
13
+ onShown?: EventListener;
14
+ useBackdrop?: ModalBackdrop;
15
+ useFade?: boolean;
16
+ };
17
+ export type ModalDialogProps = DivElement & {
18
+ fullscreenOnBreakpoint?: ModalFullscreenBreakpoint;
19
+ isScrollable?: boolean;
20
+ isVerticallyCentered?: boolean;
21
+ size?: ModalSize;
22
+ };
23
+ export type ModalContentProps = DivElement;
24
+ export type ModalHeaderProps = DivElement & {
25
+ isDismissible?: boolean;
26
+ };
27
+ export type ModalTitleProps = HeadingElement & {
28
+ level?: HeadingLevels;
29
+ };
30
+ export type ModalBodyProps = DivElement;
31
+ export type ModalFooterProps = DivElement;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export { default as Item } from './nav-item.svelte';
2
+ export { default as Link } from './nav-link.svelte';
3
+ export { default as Root } from './nav.svelte';
4
+ export type { NavItemProps as ItemProps, NavLinkProps as LinkProps, NavRootProps as RootProps } from './types.js';
@@ -0,0 +1,3 @@
1
+ export { default as Item } from './nav-item.svelte';
2
+ export { default as Link } from './nav-link.svelte';
3
+ export { default as Root } from './nav.svelte';
@@ -0,0 +1 @@
1
+ export * as Nav from './composition.js';
@@ -0,0 +1 @@
1
+ export * as Nav from './composition.js';
@@ -0,0 +1,25 @@
1
+ <!--
2
+ @component
3
+ ## Nav.Item
4
+ Nav item component to wrap Nav.Link components.
5
+
6
+ @example
7
+ ```svelte
8
+ <Nav.Item>
9
+ <Nav.Link href="#!" isActive={true}>Active</Nav.Link>
10
+ </Nav.Item>
11
+ ```
12
+ ### Props
13
+ - `class` (string): Optional. Additional CSS classes
14
+ - `elementRef` (HTMLElement): Optional. Reference to the item DOM element
15
+ -->
16
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
17
+ import { doesTabRootContextExists } from '../common/nav-tab.svelte.js';
18
+ let { children, class: classValues, elementRef = $bindable(null), role, ...restOfProps } = $props();
19
+ let defaultRole = $derived(doesTabRootContextExists() ? 'presentation' : role);
20
+ let classes = $derived(uniqueClsx('nav-item', classValues));
21
+ </script>
22
+
23
+ <li bind:this={elementRef} class={classes} role={defaultRole} {...restOfProps}>
24
+ {@render children?.()}
25
+ </li>
@@ -0,0 +1,18 @@
1
+ import type { Nav } from './index.js';
2
+ /**
3
+ * ## Nav.Item
4
+ * Nav item component to wrap Nav.Link components.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <Nav.Item>
9
+ * <Nav.Link href="#!" isActive={true}>Active</Nav.Link>
10
+ * </Nav.Item>
11
+ * ```
12
+ * ### Props
13
+ * - `class` (string): Optional. Additional CSS classes
14
+ * - `elementRef` (HTMLElement): Optional. Reference to the item DOM element
15
+ */
16
+ declare const NavItem: import("svelte").Component<Nav.ItemProps, {}, "elementRef">;
17
+ type NavItem = ReturnType<typeof NavItem>;
18
+ export default NavItem;