@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,41 @@
1
+ import { Context } from '../common/index.js';
2
+ export class BreadcrumbRootState {
3
+ props;
4
+ #activeBreadcrumbItemId = $state('');
5
+ constructor(props) {
6
+ this.props = props;
7
+ this.isBreadcrumbItemActive = this.isBreadcrumbItemActive.bind(this);
8
+ this.setBreadcrumbItemActive = this.setBreadcrumbItemActive.bind(this);
9
+ }
10
+ isBreadcrumbItemActive(itemId) {
11
+ return this.#activeBreadcrumbItemId === itemId;
12
+ }
13
+ setBreadcrumbItemActive(itemId) {
14
+ this.#activeBreadcrumbItemId = itemId;
15
+ }
16
+ }
17
+ export class BreadcrumbItemState {
18
+ props;
19
+ root;
20
+ isActive = $derived.by(() => this.root.isBreadcrumbItemActive(this.props.id || ''));
21
+ constructor(props, root) {
22
+ this.props = props;
23
+ this.root = root;
24
+ if (this.props.isActive) {
25
+ this.root.setBreadcrumbItemActive(this.props.id || '');
26
+ }
27
+ }
28
+ }
29
+ const BreadcrumbRootContext = new Context('breadcrumb-root');
30
+ const BreadcrumbItemContext = new Context('breadcrumb-item');
31
+ export function initBreadcrumbRootState(props) {
32
+ const rootState = new BreadcrumbRootState(props);
33
+ return BreadcrumbRootContext.set(rootState);
34
+ }
35
+ export function initBreadcrumbItemState(props) {
36
+ if (!BreadcrumbRootContext.exists()) {
37
+ throw new Error('BreadcrumbRootContext is not set. Please initialize it first.');
38
+ }
39
+ const rootState = BreadcrumbRootContext.get();
40
+ return BreadcrumbItemContext.set(new BreadcrumbItemState(props, rootState));
41
+ }
@@ -0,0 +1,3 @@
1
+ export { default as Item } from './breadcrumb-item.svelte';
2
+ export { default as Root } from './breadcrumb.svelte';
3
+ export type { BreadcrumbItemProps as ItemProps, BreadcrumbRootProps as RootProps } from './types.js';
@@ -0,0 +1,2 @@
1
+ export { default as Item } from './breadcrumb-item.svelte';
2
+ export { default as Root } from './breadcrumb.svelte';
@@ -0,0 +1 @@
1
+ export * as Breadcrumb from './composition.js';
@@ -0,0 +1 @@
1
+ export * as Breadcrumb from './composition.js';
@@ -0,0 +1,9 @@
1
+ import type { ListItemElement, OListElement } from '../common/types.js';
2
+ export type BreadcrumbRootProps = OListElement & {
3
+ ariaLabel?: string;
4
+ divider?: string;
5
+ };
6
+ export type BreadcrumbItemProps = ListItemElement & {
7
+ isActive?: boolean;
8
+ href?: string;
9
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ <script lang="ts">import { noop } from '../common/noop.js';
2
+ import { MediaQuery } from 'svelte/reactivity';
3
+ import { MediaQueryStringsByBreakpointEnum } from './types.js';
4
+ let { children, currentBreakpoint = $bindable(undefined), isDisabled = false, onChange = noop, onBreakUp = noop, onBreakDown = noop, renderOn } = $props();
5
+ const mediaQueries = Object.entries(MediaQueryStringsByBreakpointEnum).map(([breakpoint, queryString]) => ({
6
+ breakpoint: parseInt(breakpoint),
7
+ mediaQuery: new MediaQuery(queryString)
8
+ }));
9
+ const doRenderChildren = () => {
10
+ if (!children || isDisabled) {
11
+ return false;
12
+ }
13
+ if (Array.isArray(renderOn)) {
14
+ // only call includes when currentBreakpoint is defined to satisfy the BaseBreakpoint type
15
+ if (currentBreakpoint == null) {
16
+ return false;
17
+ }
18
+ return renderOn.includes(currentBreakpoint);
19
+ }
20
+ else {
21
+ return renderOn === currentBreakpoint;
22
+ }
23
+ };
24
+ // Effect to monitor all media queries and update currentBreakpoint
25
+ $effect(() => {
26
+ if (isDisabled) {
27
+ return;
28
+ }
29
+ // Find the currently matching breakpoint
30
+ const matchingBreakpoint = mediaQueries.find(({ mediaQuery }) => mediaQuery.current);
31
+ // Only proceed if we found a matching breakpoint and it's different from current
32
+ if (matchingBreakpoint !== undefined && currentBreakpoint !== matchingBreakpoint.breakpoint) {
33
+ const previousBreakpoint = currentBreakpoint ?? null;
34
+ currentBreakpoint = matchingBreakpoint.breakpoint;
35
+ // Trigger onChange callback
36
+ onChange({ current: currentBreakpoint, previous: previousBreakpoint });
37
+ // Trigger direction-specific callbacks
38
+ if (previousBreakpoint === null) {
39
+ // First detection always counts as breaking up from null
40
+ onBreakUp({ from: null, to: currentBreakpoint });
41
+ }
42
+ else if (currentBreakpoint > previousBreakpoint) {
43
+ onBreakUp({ from: previousBreakpoint, to: currentBreakpoint });
44
+ }
45
+ else {
46
+ onBreakDown({ from: previousBreakpoint, to: currentBreakpoint });
47
+ }
48
+ }
49
+ });
50
+ </script>
51
+
52
+ {#if doRenderChildren()}
53
+ {@render children?.()}
54
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { BreakpointListenerRootProps } from './types.js';
2
+ declare const BreakpointListener: import("svelte").Component<BreakpointListenerRootProps, {}, "currentBreakpoint">;
3
+ type BreakpointListener = ReturnType<typeof BreakpointListener>;
4
+ export default BreakpointListener;
@@ -0,0 +1,2 @@
1
+ export { default as BreakpointListener } from './breakpoint-listener.svelte';
2
+ export * from './types.js';
@@ -0,0 +1,2 @@
1
+ export { default as BreakpointListener } from './breakpoint-listener.svelte';
2
+ export * from './types.js';
@@ -0,0 +1,30 @@
1
+ import type { Snippet } from 'svelte';
2
+ export type BreakEvent = {
3
+ from: BreakpointEnum | null;
4
+ to: BreakpointEnum;
5
+ };
6
+ /**
7
+ * Enum for breakpoints using numbers to facilitate comparisons.
8
+ */
9
+ export declare enum BreakpointEnum {
10
+ XS = 0,
11
+ SM = 1,
12
+ MD = 2,
13
+ LG = 3,
14
+ XL = 4,
15
+ XXL = 5
16
+ }
17
+ export type BreakpointListenerRootProps = {
18
+ children?: Snippet;
19
+ currentBreakpoint?: BreakpointEnum;
20
+ isDisabled?: boolean;
21
+ onChange?: (changeEvent: ChangeEvent) => void;
22
+ onBreakUp?: (breakEvent: BreakEvent) => void;
23
+ onBreakDown?: (breakEvent: BreakEvent) => void;
24
+ renderOn?: BreakpointEnum | BreakpointEnum[];
25
+ };
26
+ export type ChangeEvent = {
27
+ current: BreakpointEnum;
28
+ previous: BreakpointEnum | null;
29
+ };
30
+ export declare const MediaQueryStringsByBreakpointEnum: Record<BreakpointEnum, string>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Enum for breakpoints using numbers to facilitate comparisons.
3
+ */
4
+ export var BreakpointEnum;
5
+ (function (BreakpointEnum) {
6
+ BreakpointEnum[BreakpointEnum["XS"] = 0] = "XS";
7
+ BreakpointEnum[BreakpointEnum["SM"] = 1] = "SM";
8
+ BreakpointEnum[BreakpointEnum["MD"] = 2] = "MD";
9
+ BreakpointEnum[BreakpointEnum["LG"] = 3] = "LG";
10
+ BreakpointEnum[BreakpointEnum["XL"] = 4] = "XL";
11
+ BreakpointEnum[BreakpointEnum["XXL"] = 5] = "XXL";
12
+ })(BreakpointEnum || (BreakpointEnum = {}));
13
+ export const MediaQueryStringsByBreakpointEnum = {
14
+ [BreakpointEnum.XS]: '(max-width: 575.98px)',
15
+ [BreakpointEnum.SM]: '(min-width: 576px) and (max-width: 767.98px)',
16
+ [BreakpointEnum.MD]: '(min-width: 768px) and (max-width: 991.98px)',
17
+ [BreakpointEnum.LG]: '(min-width: 992px) and (max-width: 1199.98px)',
18
+ [BreakpointEnum.XL]: '(min-width: 1200px) and (max-width: 1399.98px)',
19
+ [BreakpointEnum.XXL]: '(min-width: 1400px)'
20
+ };
@@ -0,0 +1,87 @@
1
+ <!--
2
+ @component
3
+ ## Button
4
+ Use Bootstrap's custom button styles for actions in forms, dialogs, and more. Includes support for multiple sizes, states, and more.
5
+
6
+ @example
7
+ ```svelte
8
+ <Button>Click me</Button>
9
+ ```
10
+
11
+ #### Button color variants
12
+ ```svelte
13
+ <Button colorVariant="primary">Primary</Button>
14
+ <Button colorVariant="secondary">Secondary</Button>
15
+ <Button colorVariant="success">Success</Button>
16
+ <Button colorVariant="danger">Danger</Button>
17
+ <Button colorVariant="warning">Warning</Button>
18
+ <Button colorVariant="info">Info</Button>
19
+ <Button colorVariant="light">Light</Button>
20
+ <Button colorVariant="dark">Dark</Button>
21
+ <Button colorVariant="link">Link</Button>
22
+ ```
23
+
24
+ #### Button sizes
25
+ ```svelte
26
+ <Button size="lg">Large button</Button>
27
+ <Button size="sm">Small button</Button>
28
+ ```
29
+
30
+ #### Disabled state
31
+ ```svelte
32
+ <Button disabled>Disabled button</Button>
33
+ ```
34
+
35
+ #### Button with href
36
+ ```svelte
37
+ <Button href="https://example.com">Link button</Button>
38
+ ```
39
+ #### Button with input type
40
+ ```svelte
41
+ <Button type="submit" value="Submit">Submit</Button>
42
+ <Button type="reset" value="Reset">Reset</Button>
43
+ <Button type="button" value="Custom">Custom</Button>
44
+ ```
45
+
46
+ ### Props
47
+ - `children` (slot): Content to display inside the button.
48
+ - `class` (string): Optional. Additional CSS classes.
49
+ - `colorVariant` (string): Optional. Button style variant ('primary', 'secondary', 'success', etc.).
50
+ - `disabled` (boolean): Optional. Disables the button when true (default: false).
51
+ - `elementRef` (HTMLElement): Optional. Reference to the button DOM element.
52
+ - `href` (string): Optional. Turns the button into an anchor element when provided.
53
+ - `size` (string): Optional. Button size ('lg' or 'sm').
54
+ - `type` (string): Optional. Button type attribute (default: 'button').
55
+ - `value` (string): Optional. Value attribute when rendered as an input.
56
+ -->
57
+ <script lang="ts">/* eslint-disable @typescript-eslint/no-explicit-any -- `restOfProps` spread targets <svelte:element> which unions <a>/<button>; the union type is not spreadable without `as any` */
58
+ import { uniqueClsx } from '../common/css.js';
59
+ // Generate a unique ID for the collapse element, in case one is not provided...
60
+ const uid = $props.id();
61
+ let { children, class: classValues, colorVariant, disabled = false, elementRef = $bindable(null), href, id = `btn-${uid}`, size, type = 'button', value = $bindable(undefined), ...restOfProps } = $props();
62
+ let isAnchor = $derived(Boolean(href));
63
+ let isInput = $derived(Boolean(value));
64
+ let elementType = $derived(isAnchor ? 'a' : isInput ? 'input' : 'button');
65
+ let classes = $derived(uniqueClsx('btn', colorVariant && `btn-${colorVariant}`, size && `btn-${size}`, isAnchor && disabled && 'disabled', classValues));
66
+ </script>
67
+
68
+ {#if !isInput}
69
+ <svelte:element
70
+ this={elementType}
71
+ aria-disabled={isAnchor ? disabled : undefined}
72
+ bind:this={elementRef}
73
+ class={classes}
74
+ disabled={isAnchor ? undefined : disabled}
75
+ href={href && !disabled ? href : undefined}
76
+ {id}
77
+ role={isAnchor ? 'button' : undefined}
78
+ tabindex={isAnchor && disabled ? -1 : 0}
79
+ type={isAnchor ? undefined : type}
80
+ {...restOfProps as any}
81
+ ><!-- using `as Record<string, unknown>` because Svelte doesn't support spreading props on elements with different types -->
82
+ {@render children?.()}
83
+ </svelte:element>
84
+ {:else}
85
+ <!-- using `as Record<string, unknown>` because Svelte doesn't support spreading props on elements with different types -->
86
+ <input bind:this={elementRef} bind:value class={classes} {disabled} tabindex={disabled ? -1 : 0} {type} {...restOfProps as any} />
87
+ {/if}
@@ -0,0 +1,59 @@
1
+ import type { ButtonRootProps } from './types.js';
2
+ /**
3
+ * ## Button
4
+ * Use Bootstrap's custom button styles for actions in forms, dialogs, and more. Includes support for multiple sizes, states, and more.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <Button>Click me</Button>
9
+ * ```
10
+ *
11
+ * #### Button color variants
12
+ * ```svelte
13
+ * <Button colorVariant="primary">Primary</Button>
14
+ * <Button colorVariant="secondary">Secondary</Button>
15
+ * <Button colorVariant="success">Success</Button>
16
+ * <Button colorVariant="danger">Danger</Button>
17
+ * <Button colorVariant="warning">Warning</Button>
18
+ * <Button colorVariant="info">Info</Button>
19
+ * <Button colorVariant="light">Light</Button>
20
+ * <Button colorVariant="dark">Dark</Button>
21
+ * <Button colorVariant="link">Link</Button>
22
+ * ```
23
+ *
24
+ * #### Button sizes
25
+ * ```svelte
26
+ * <Button size="lg">Large button</Button>
27
+ * <Button size="sm">Small button</Button>
28
+ * ```
29
+ *
30
+ * #### Disabled state
31
+ * ```svelte
32
+ * <Button disabled>Disabled button</Button>
33
+ * ```
34
+ *
35
+ * #### Button with href
36
+ * ```svelte
37
+ * <Button href="https://example.com">Link button</Button>
38
+ * ```
39
+ * #### Button with input type
40
+ * ```svelte
41
+ * <Button type="submit" value="Submit">Submit</Button>
42
+ * <Button type="reset" value="Reset">Reset</Button>
43
+ * <Button type="button" value="Custom">Custom</Button>
44
+ * ```
45
+ *
46
+ * ### Props
47
+ * - `children` (slot): Content to display inside the button.
48
+ * - `class` (string): Optional. Additional CSS classes.
49
+ * - `colorVariant` (string): Optional. Button style variant ('primary', 'secondary', 'success', etc.).
50
+ * - `disabled` (boolean): Optional. Disables the button when true (default: false).
51
+ * - `elementRef` (HTMLElement): Optional. Reference to the button DOM element.
52
+ * - `href` (string): Optional. Turns the button into an anchor element when provided.
53
+ * - `size` (string): Optional. Button size ('lg' or 'sm').
54
+ * - `type` (string): Optional. Button type attribute (default: 'button').
55
+ * - `value` (string): Optional. Value attribute when rendered as an input.
56
+ */
57
+ declare const Button: import("svelte").Component<ButtonRootProps, {}, "value" | "elementRef">;
58
+ type Button = ReturnType<typeof Button>;
59
+ export default Button;
@@ -0,0 +1,2 @@
1
+ export { default as Button } from './button.svelte';
2
+ export * from './types.js';
@@ -0,0 +1,2 @@
1
+ export { default as Button } from './button.svelte';
2
+ export * from './types.js';
@@ -0,0 +1,26 @@
1
+ import type { BaseColorVariant, WithElementRef } from '../common/types.js';
2
+ import type { HTMLAnchorAttributes, HTMLButtonAttributes, HTMLInputAttributes } from 'svelte/elements';
3
+ export type ButtonAsAnchorElement = WithElementRef<Omit<HTMLAnchorAttributes, 'href' | 'type' | 'value'>> & {
4
+ disabled?: HTMLButtonAttributes['disabled'];
5
+ href: HTMLAnchorAttributes['href'];
6
+ type?: never;
7
+ value?: never;
8
+ };
9
+ export type ButtonAsButtonElement = WithElementRef<Omit<HTMLButtonAttributes, 'href' | 'type' | 'value'>> & {
10
+ disabled?: HTMLButtonAttributes['disabled'];
11
+ type?: HTMLButtonAttributes['type'];
12
+ href?: never;
13
+ value?: never;
14
+ };
15
+ export type ButtonAsInputElement = WithElementRef<Omit<HTMLInputAttributes, 'href' | 'size' | 'type' | 'value'>> & {
16
+ disabled?: HTMLInputAttributes['disabled'];
17
+ type?: HTMLInputAttributes['type'];
18
+ href?: never;
19
+ value?: string;
20
+ };
21
+ export type ButtonRootProps = (ButtonAsAnchorElement | ButtonAsButtonElement | ButtonAsInputElement) & {
22
+ colorVariant?: ButtonColorVariant;
23
+ size?: ButtonSize;
24
+ };
25
+ export type ButtonColorVariant = BaseColorVariant | 'link' | 'outline-primary' | 'outline-secondary' | 'outline-success' | 'outline-danger' | 'outline-warning' | 'outline-info' | 'outline-light' | 'outline-dark';
26
+ export type ButtonSize = 'sm' | 'lg' | '';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ <!--
2
+ @component
3
+ ## ButtonCheck
4
+ Bootstrap toggle-button input that renders a `.btn-check` input and its matching `.btn` label.
5
+
6
+ @example
7
+ ```svelte
8
+ <ButtonCheck id="newsletter">Newsletter</ButtonCheck>
9
+ ```
10
+
11
+ #### Radio toggle group
12
+ ```svelte
13
+ <ButtonGroup>
14
+ <ButtonCheck id="option-a" name="options" type="radio" colorVariant="outline-primary">Option A</ButtonCheck>
15
+ <ButtonCheck id="option-b" name="options" type="radio" colorVariant="outline-primary">Option B</ButtonCheck>
16
+ </ButtonGroup>
17
+ ```
18
+
19
+ ### Props
20
+ - `autocomplete` (string): Optional. Defaults to `'off'`.
21
+ - `checked` (boolean): Optional. Bindable checked state for checkbox inputs.
22
+ - `class` (string): Optional. Additional CSS classes for the input.
23
+ - `colorVariant` (string): Optional. Button style variant for the label.
24
+ - `disabled` (boolean): Optional. Disables the input and label interaction.
25
+ - `elementRef` (HTMLInputElement): Optional. Reference to the input element.
26
+ - `group` (string | unknown[]): Optional. Bindable group value for grouped radio or checkbox inputs.
27
+ - `id` (string): Optional. Input id used by the label `for` attribute.
28
+ - `labelClass` (string): Optional. Additional CSS classes for the label.
29
+ - `labelElementRef` (HTMLLabelElement): Optional. Reference to the label element.
30
+ - `name` (string): Optional. Input group name, commonly used with radio toggles.
31
+ - `type` (`'checkbox' | 'radio'`): Optional. Defaults to `'checkbox'`.
32
+ -->
33
+ <script lang="ts">import { noop, uniqueClsx } from '../common/index.js';
34
+ const uid = $props.id();
35
+ let { autocomplete = 'off', children, checked = $bindable(false), class: classValues, colorVariant, disabled = false, elementRef = $bindable(null), group = $bindable(undefined), id = `btn-check-${uid}`, labelClass, labelElementRef = $bindable(null), onchange = noop, type = 'checkbox', value = undefined, ...restOfProps } = $props();
36
+ let inputClasses = $derived(uniqueClsx('btn-check', classValues));
37
+ let labelClasses = $derived(uniqueClsx('btn', colorVariant && `btn-${colorVariant}`, labelClass));
38
+ let isCheckboxGroup = $derived(type === 'checkbox' && group !== undefined);
39
+ </script>
40
+
41
+ {#if type === 'radio'}
42
+ <input bind:this={elementRef} bind:group {autocomplete} class={inputClasses} {disabled} {id} {onchange} type="radio" {value} {...restOfProps} />
43
+ {:else if isCheckboxGroup}
44
+ <input
45
+ bind:this={elementRef}
46
+ bind:group
47
+ {autocomplete}
48
+ class={inputClasses}
49
+ {disabled}
50
+ {id}
51
+ {onchange}
52
+ type="checkbox"
53
+ {value}
54
+ {...restOfProps} />
55
+ {:else}
56
+ <input
57
+ bind:this={elementRef}
58
+ bind:checked
59
+ {autocomplete}
60
+ class={inputClasses}
61
+ {disabled}
62
+ {id}
63
+ {onchange}
64
+ type="checkbox"
65
+ {value}
66
+ {...restOfProps} />
67
+ {/if}
68
+ <label bind:this={labelElementRef} class={labelClasses} for={id}>
69
+ {@render children?.()}
70
+ </label>
@@ -0,0 +1,35 @@
1
+ import type { ButtonCheckRootProps } from './types.js';
2
+ /**
3
+ * ## ButtonCheck
4
+ * Bootstrap toggle-button input that renders a `.btn-check` input and its matching `.btn` label.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <ButtonCheck id="newsletter">Newsletter</ButtonCheck>
9
+ * ```
10
+ *
11
+ * #### Radio toggle group
12
+ * ```svelte
13
+ * <ButtonGroup>
14
+ * <ButtonCheck id="option-a" name="options" type="radio" colorVariant="outline-primary">Option A</ButtonCheck>
15
+ * <ButtonCheck id="option-b" name="options" type="radio" colorVariant="outline-primary">Option B</ButtonCheck>
16
+ * </ButtonGroup>
17
+ * ```
18
+ *
19
+ * ### Props
20
+ * - `autocomplete` (string): Optional. Defaults to `'off'`.
21
+ * - `checked` (boolean): Optional. Bindable checked state for checkbox inputs.
22
+ * - `class` (string): Optional. Additional CSS classes for the input.
23
+ * - `colorVariant` (string): Optional. Button style variant for the label.
24
+ * - `disabled` (boolean): Optional. Disables the input and label interaction.
25
+ * - `elementRef` (HTMLInputElement): Optional. Reference to the input element.
26
+ * - `group` (string | unknown[]): Optional. Bindable group value for grouped radio or checkbox inputs.
27
+ * - `id` (string): Optional. Input id used by the label `for` attribute.
28
+ * - `labelClass` (string): Optional. Additional CSS classes for the label.
29
+ * - `labelElementRef` (HTMLLabelElement): Optional. Reference to the label element.
30
+ * - `name` (string): Optional. Input group name, commonly used with radio toggles.
31
+ * - `type` (`'checkbox' | 'radio'`): Optional. Defaults to `'checkbox'`.
32
+ */
33
+ declare const ButtonCheck: import("svelte").Component<ButtonCheckRootProps, {}, "elementRef" | "group" | "checked" | "labelElementRef">;
34
+ type ButtonCheck = ReturnType<typeof ButtonCheck>;
35
+ export default ButtonCheck;
@@ -0,0 +1,51 @@
1
+ <!--
2
+ @component
3
+ ## ButtonGroup
4
+ A component that groups a series of buttons together on a single line or stacked vertically.
5
+
6
+ @example
7
+ ```svelte
8
+ <ButtonGroup>
9
+ <Button>Left</Button>
10
+ <Button>Middle</Button>
11
+ <Button>Right</Button>
12
+ </ButtonGroup>
13
+ ```
14
+
15
+ #### Basic button group
16
+ ```svelte
17
+ <ButtonGroup>
18
+ <Button colorVariant="primary">Primary</Button>
19
+ <Button colorVariant="secondary">Secondary</Button>
20
+ <Button colorVariant="success">Success</Button>
21
+ </ButtonGroup>
22
+ ```
23
+
24
+ #### Vertical button group
25
+ ```svelte
26
+ <ButtonGroup isVertical={true}>
27
+ <Button>Top</Button>
28
+ <Button>Middle</Button>
29
+ <Button>Bottom</Button>
30
+ </ButtonGroup>
31
+ ```
32
+
33
+ ### Props
34
+ - `ariaLabel` (string): Optional. Accessibility label for the button group
35
+ - `class` (string): Optional. CSS classes for styling the button group
36
+ - `elementRef` (HTMLElement): Optional. Reference to the button group DOM element
37
+ - `id` (string): Optional. ID for the button group
38
+ - `isVertical` (boolean): Optional. Makes the button group stack vertically\
39
+ - `size` (string): Optional. Size of the button group ('sm' or 'lg')
40
+ -->
41
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
42
+ import {} from './types.js';
43
+ // Generate a unique ID for the collapse element, in case one is not provided...
44
+ const uid = $props.id();
45
+ let { ariaLabel = `Button group ${uid}`, children, class: classValues, elementRef = $bindable(null), id = `btn-group-${uid}`, isVertical = false, size, ...restOfProps } = $props();
46
+ let classes = $derived(uniqueClsx({ 'btn-group-vertical': isVertical }, { 'btn-group': !isVertical }, size && `btn-group-${size}`, classValues));
47
+ </script>
48
+
49
+ <div aria-label={ariaLabel} bind:this={elementRef} class={classes} {id} role="group" {...restOfProps}>
50
+ {@render children?.()}
51
+ </div>
@@ -0,0 +1,43 @@
1
+ import { type ButtonGroupRootProps } from './types.js';
2
+ /**
3
+ * ## ButtonGroup
4
+ * A component that groups a series of buttons together on a single line or stacked vertically.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <ButtonGroup>
9
+ * <Button>Left</Button>
10
+ * <Button>Middle</Button>
11
+ * <Button>Right</Button>
12
+ * </ButtonGroup>
13
+ * ```
14
+ *
15
+ * #### Basic button group
16
+ * ```svelte
17
+ * <ButtonGroup>
18
+ * <Button colorVariant="primary">Primary</Button>
19
+ * <Button colorVariant="secondary">Secondary</Button>
20
+ * <Button colorVariant="success">Success</Button>
21
+ * </ButtonGroup>
22
+ * ```
23
+ *
24
+ * #### Vertical button group
25
+ * ```svelte
26
+ * <ButtonGroup isVertical={true}>
27
+ * <Button>Top</Button>
28
+ * <Button>Middle</Button>
29
+ * <Button>Bottom</Button>
30
+ * </ButtonGroup>
31
+ * ```
32
+ *
33
+ * ### Props
34
+ * - `ariaLabel` (string): Optional. Accessibility label for the button group
35
+ * - `class` (string): Optional. CSS classes for styling the button group
36
+ * - `elementRef` (HTMLElement): Optional. Reference to the button group DOM element
37
+ * - `id` (string): Optional. ID for the button group
38
+ * - `isVertical` (boolean): Optional. Makes the button group stack vertically\
39
+ * - `size` (string): Optional. Size of the button group ('sm' or 'lg')
40
+ */
41
+ declare const ButtonGroup: import("svelte").Component<ButtonGroupRootProps, {}, "elementRef">;
42
+ type ButtonGroup = ReturnType<typeof ButtonGroup>;
43
+ export default ButtonGroup;
@@ -0,0 +1,36 @@
1
+ <!--
2
+ @component
3
+ ## ButtonToolbar
4
+ Combine sets of button groups into button toolbars for more complex components.
5
+
6
+ @example
7
+ ```svelte
8
+ <ButtonToolbar ariaLabel="Toolbar with button groups">
9
+ <ButtonGroup class="me-2">
10
+ <Button>1</Button>
11
+ <Button>2</Button>
12
+ <Button>3</Button>
13
+ </ButtonGroup>
14
+ <ButtonGroup class="me-2">
15
+ <Button>4</Button>
16
+ <Button>5</Button>
17
+ </ButtonGroup>
18
+ </ButtonToolbar>
19
+ ```
20
+ ### Props
21
+ - `ariaLabel` (string): Optional. Accessibility label for the button group.
22
+ - `class` (string): Optional. CSS classes for styling the button group.
23
+ - `elementRef` (HTMLElement): Optional. Reference to the button group DOM element.
24
+ - `id` (string): Optional. ID for the button group.
25
+ -->
26
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
27
+ import {} from './types.js';
28
+ // Generate a unique ID for the collapse element, in case one is not provided...
29
+ const uid = $props.id();
30
+ let { ariaLabel = 'Button toolbar ${uid}', children, class: classValues, elementRef = $bindable(null), id = `btn-toolbar-${uid}`, ...restOfProps } = $props();
31
+ let classes = $derived(uniqueClsx('btn-toolbar', classValues));
32
+ </script>
33
+
34
+ <div aria-label={ariaLabel} bind:this={elementRef} class={classes} {id} role="toolbar" {...restOfProps}>
35
+ {@render children?.()}
36
+ </div>
@@ -0,0 +1,28 @@
1
+ import { type ButtonToolbarRootProps } from './types.js';
2
+ /**
3
+ * ## ButtonToolbar
4
+ * Combine sets of button groups into button toolbars for more complex components.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * <ButtonToolbar ariaLabel="Toolbar with button groups">
9
+ * <ButtonGroup class="me-2">
10
+ * <Button>1</Button>
11
+ * <Button>2</Button>
12
+ * <Button>3</Button>
13
+ * </ButtonGroup>
14
+ * <ButtonGroup class="me-2">
15
+ * <Button>4</Button>
16
+ * <Button>5</Button>
17
+ * </ButtonGroup>
18
+ * </ButtonToolbar>
19
+ * ```
20
+ * ### Props
21
+ * - `ariaLabel` (string): Optional. Accessibility label for the button group.
22
+ * - `class` (string): Optional. CSS classes for styling the button group.
23
+ * - `elementRef` (HTMLElement): Optional. Reference to the button group DOM element.
24
+ * - `id` (string): Optional. ID for the button group.
25
+ */
26
+ declare const ButtonToolbar: import("svelte").Component<ButtonToolbarRootProps, {}, "elementRef">;
27
+ type ButtonToolbar = ReturnType<typeof ButtonToolbar>;
28
+ export default ButtonToolbar;
@@ -0,0 +1,4 @@
1
+ export { default as ButtonCheck } from './button-check.svelte';
2
+ export { default as ButtonGroup } from './button-group.svelte';
3
+ export { default as ButtonToolbar } from './button-toolbar.svelte';
4
+ export * from './types.js';
@@ -0,0 +1,4 @@
1
+ export { default as ButtonCheck } from './button-check.svelte';
2
+ export { default as ButtonGroup } from './button-group.svelte';
3
+ export { default as ButtonToolbar } from './button-toolbar.svelte';
4
+ export * from './types.js';