@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,45 @@
1
+ import type { Form } from './index.js';
2
+ /**
3
+ * ## Form.SearchInput
4
+ * Bootstrap-styled search input component with search-specific features.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * // Default search input
9
+ * <Form.SearchInput title="Set a search value" value="search value" />
10
+ *
11
+ * // Disabled search input
12
+ * <Form.SearchInput disabled title="Set a search value" value="search value" />
13
+ *
14
+ * // Readonly search input
15
+ * <Form.SearchInput readonly title="Set a search value" value="search value" />
16
+ *
17
+ * // Readonly plaintext search input
18
+ * <Form.SearchInput isPlaintext readonly title="Set a search value" value="search value" />
19
+ *
20
+ * // Small sizing
21
+ * <Form.SearchInput sizing="sm" title="Set a search value" value="search value" />
22
+ *
23
+ * // Large sizing
24
+ * <Form.SearchInput sizing="lg" title="Set a search value" value="search value" />
25
+ *
26
+ * // With datalist
27
+ * <Form.SearchInput list="listOfSearchValues" title="Set a search value" value="search value" />
28
+ * <datalist id="listOfSearchValues">
29
+ * <option value="search value 1"></option>
30
+ * <option value="search value 2"></option>
31
+ * <option value="search value 3"></option>
32
+ * </datalist>
33
+ * ```
34
+ * ### Props
35
+ * - `class` (string): Optional. Additional CSS classes to apply to the input.
36
+ * - `elementRef` (HTMLInputElement): Optional. Reference to the input DOM element.
37
+ * - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
38
+ * - `isPlaintext` (boolean): Optional. When true, renders as plaintext (no input border).
39
+ * - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
40
+ * - `sizing` ('sm' | 'lg'): Optional. Controls the size of the input element.
41
+ * - `value` (string): Optional. The search value. If undefined, the input is empty.
42
+ */
43
+ declare const FormSearchInput: import("svelte").Component<Form.SearchInputProps, {}, "value" | "elementRef">;
44
+ type FormSearchInput = ReturnType<typeof FormSearchInput>;
45
+ export default FormSearchInput;
@@ -0,0 +1,85 @@
1
+ <!--
2
+ @component
3
+ ## Form.Select
4
+ Bootstrap-styled select input component for dropdown selection.
5
+
6
+ @example
7
+ ```svelte
8
+ // Default select
9
+ <Form.Select aria-label="Default select example">
10
+ <option selected>Open this select menu</option>
11
+ <option value="1">One</option>
12
+ <option value="2">Two</option>
13
+ <option value="3">Three</option>
14
+ </Form.Select>
15
+
16
+ // Disabled select
17
+ <Form.Select aria-label="Disabled select example" disabled>
18
+ <option selected>Open this select menu</option>
19
+ <option value="1">One</option>
20
+ <option value="2">Two</option>
21
+ <option value="3">Three</option>
22
+ </Form.Select>
23
+
24
+ // Multiple select
25
+ <Form.Select aria-label="Multiple select example" multiple>
26
+ <option selected>Open this select menu</option>
27
+ <option value="1">One</option>
28
+ <option value="2">Two</option>
29
+ <option value="3">Three</option>
30
+ </Form.Select>
31
+
32
+ // With specific size
33
+ <Form.Select aria-label="Size of 2 select example" multiple size={2}>
34
+ <option selected>Open this select menu</option>
35
+ <option value="1">One</option>
36
+ <option value="2">Two</option>
37
+ <option value="3">Three</option>
38
+ </Form.Select>
39
+
40
+ // Small sizing
41
+ <Form.Select aria-label="Default select example" sizing="sm">
42
+ <option selected>Open this select menu</option>
43
+ <option value="1">One</option>
44
+ <option value="2">Two</option>
45
+ <option value="3">Three</option>
46
+ </Form.Select>
47
+ ```
48
+ ### Props
49
+ - `class` (string): Optional. Additional CSS classes to apply to the select.
50
+ - `elementRef` (HTMLSelectElement): Optional. Reference to the select DOM element.
51
+ - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
52
+ - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
53
+ - `multiple` (boolean): Optional. When true, allows multiple selections. If undefined, only single selection is allowed.
54
+ - `sizing` ('sm' | 'lg'): Optional. Controls the size of the select element.
55
+ - `value` (string): Optional. The selected value of the select. If undefined, the select is empty.
56
+ -->
57
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
58
+ let { children, class: classValues, elementRef = $bindable(null), isInvalid, isValid, multiple, sizing, value = $bindable(multiple ? [] : undefined), ...restOfProps } = $props();
59
+ let classes = $derived(uniqueClsx('form-select', {
60
+ [`form-select-${sizing}`]: !!sizing,
61
+ 'is-valid': isValid,
62
+ 'is-invalid': isInvalid
63
+ }, classValues));
64
+ </script>
65
+
66
+ {#if multiple}
67
+ <select
68
+ aria-invalid={isInvalid === true ? 'true' : isValid === true ? 'false' : undefined}
69
+ bind:this={elementRef}
70
+ bind:value
71
+ class={classes}
72
+ multiple
73
+ {...restOfProps}>
74
+ {@render children?.()}
75
+ </select>
76
+ {:else}
77
+ <select
78
+ aria-invalid={isInvalid === true ? 'true' : isValid === true ? 'false' : undefined}
79
+ bind:this={elementRef}
80
+ bind:value
81
+ class={classes}
82
+ {...restOfProps}>
83
+ {@render children?.()}
84
+ </select>
85
+ {/if}
@@ -0,0 +1,59 @@
1
+ import type { Form } from './index.js';
2
+ /**
3
+ * ## Form.Select
4
+ * Bootstrap-styled select input component for dropdown selection.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * // Default select
9
+ * <Form.Select aria-label="Default select example">
10
+ * <option selected>Open this select menu</option>
11
+ * <option value="1">One</option>
12
+ * <option value="2">Two</option>
13
+ * <option value="3">Three</option>
14
+ * </Form.Select>
15
+ *
16
+ * // Disabled select
17
+ * <Form.Select aria-label="Disabled select example" disabled>
18
+ * <option selected>Open this select menu</option>
19
+ * <option value="1">One</option>
20
+ * <option value="2">Two</option>
21
+ * <option value="3">Three</option>
22
+ * </Form.Select>
23
+ *
24
+ * // Multiple select
25
+ * <Form.Select aria-label="Multiple select example" multiple>
26
+ * <option selected>Open this select menu</option>
27
+ * <option value="1">One</option>
28
+ * <option value="2">Two</option>
29
+ * <option value="3">Three</option>
30
+ * </Form.Select>
31
+ *
32
+ * // With specific size
33
+ * <Form.Select aria-label="Size of 2 select example" multiple size={2}>
34
+ * <option selected>Open this select menu</option>
35
+ * <option value="1">One</option>
36
+ * <option value="2">Two</option>
37
+ * <option value="3">Three</option>
38
+ * </Form.Select>
39
+ *
40
+ * // Small sizing
41
+ * <Form.Select aria-label="Default select example" sizing="sm">
42
+ * <option selected>Open this select menu</option>
43
+ * <option value="1">One</option>
44
+ * <option value="2">Two</option>
45
+ * <option value="3">Three</option>
46
+ * </Form.Select>
47
+ * ```
48
+ * ### Props
49
+ * - `class` (string): Optional. Additional CSS classes to apply to the select.
50
+ * - `elementRef` (HTMLSelectElement): Optional. Reference to the select DOM element.
51
+ * - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
52
+ * - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
53
+ * - `multiple` (boolean): Optional. When true, allows multiple selections. If undefined, only single selection is allowed.
54
+ * - `sizing` ('sm' | 'lg'): Optional. Controls the size of the select element.
55
+ * - `value` (string): Optional. The selected value of the select. If undefined, the select is empty.
56
+ */
57
+ declare const FormSelect: import("svelte").Component<Form.SelectProps, {}, "value" | "elementRef">;
58
+ type FormSelect = ReturnType<typeof FormSelect>;
59
+ export default FormSelect;
@@ -0,0 +1,54 @@
1
+ <!--
2
+ @component
3
+ ## Form.SwitchInput
4
+ Bootstrap-styled switch input component for toggling between two states.
5
+
6
+ @example
7
+ ```svelte
8
+ // Default switch
9
+ <Form.Check isSwitch>
10
+ <Form.SwitchInput id="switchDefault" name="switchDefault" />
11
+ <Form.CheckLabel for="switchDefault">Default switch</Form.CheckLabel>
12
+ </Form.Check>
13
+
14
+ // Checked switch
15
+ <Form.Check isSwitch>
16
+ <Form.SwitchInput checked id="switchChecked" name="switchChecked" />
17
+ <Form.CheckLabel for="switchChecked">Checked switch</Form.CheckLabel>
18
+ </Form.Check>
19
+
20
+ // Disabled switch
21
+ <Form.Check isSwitch>
22
+ <Form.SwitchInput disabled id="switchDisabled" name="switchDisabled" />
23
+ <Form.CheckLabel for="switchDisabled">Disabled switch</Form.CheckLabel>
24
+ </Form.Check>
25
+
26
+ // Disabled checked switch
27
+ <Form.Check isSwitch>
28
+ <Form.SwitchInput checked disabled id="switchDisabledChecked" name="switchDisabledChecked" />
29
+ <Form.CheckLabel for="switchDisabledChecked">Disabled checked switch</Form.CheckLabel>
30
+ </Form.Check>
31
+ ```
32
+ ### Props
33
+ - `checked` (boolean): Optional. Binds the switch state. If undefined, the switch is unchecked.
34
+ - `class` (string): Optional. Additional CSS classes to apply to the switch.
35
+ - `elementRef` (HTMLInputElement): Optional. Reference to the switch DOM element.
36
+ - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
37
+ - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
38
+ -->
39
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
40
+ let { checked = $bindable(undefined), class: classValues, elementRef = $bindable(null), isInvalid, isValid, ...restOfProps } = $props();
41
+ let classes = $derived(uniqueClsx('form-check-input', {
42
+ 'is-valid': isValid,
43
+ 'is-invalid': isInvalid
44
+ }, classValues));
45
+ </script>
46
+
47
+ <input
48
+ aria-invalid={isInvalid === true ? 'true' : isValid === true ? 'false' : undefined}
49
+ bind:this={elementRef}
50
+ bind:checked
51
+ class={classes}
52
+ role="switch"
53
+ type="checkbox"
54
+ {...restOfProps} />
@@ -0,0 +1,41 @@
1
+ import type { Form } from './index.js';
2
+ /**
3
+ * ## Form.SwitchInput
4
+ * Bootstrap-styled switch input component for toggling between two states.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * // Default switch
9
+ * <Form.Check isSwitch>
10
+ * <Form.SwitchInput id="switchDefault" name="switchDefault" />
11
+ * <Form.CheckLabel for="switchDefault">Default switch</Form.CheckLabel>
12
+ * </Form.Check>
13
+ *
14
+ * // Checked switch
15
+ * <Form.Check isSwitch>
16
+ * <Form.SwitchInput checked id="switchChecked" name="switchChecked" />
17
+ * <Form.CheckLabel for="switchChecked">Checked switch</Form.CheckLabel>
18
+ * </Form.Check>
19
+ *
20
+ * // Disabled switch
21
+ * <Form.Check isSwitch>
22
+ * <Form.SwitchInput disabled id="switchDisabled" name="switchDisabled" />
23
+ * <Form.CheckLabel for="switchDisabled">Disabled switch</Form.CheckLabel>
24
+ * </Form.Check>
25
+ *
26
+ * // Disabled checked switch
27
+ * <Form.Check isSwitch>
28
+ * <Form.SwitchInput checked disabled id="switchDisabledChecked" name="switchDisabledChecked" />
29
+ * <Form.CheckLabel for="switchDisabledChecked">Disabled checked switch</Form.CheckLabel>
30
+ * </Form.Check>
31
+ * ```
32
+ * ### Props
33
+ * - `checked` (boolean): Optional. Binds the switch state. If undefined, the switch is unchecked.
34
+ * - `class` (string): Optional. Additional CSS classes to apply to the switch.
35
+ * - `elementRef` (HTMLInputElement): Optional. Reference to the switch DOM element.
36
+ * - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
37
+ * - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
38
+ */
39
+ declare const FormSwitchInput: import("svelte").Component<Form.SwitchInputProps, {}, "elementRef" | "checked">;
40
+ type FormSwitchInput = ReturnType<typeof FormSwitchInput>;
41
+ export default FormSwitchInput;
@@ -0,0 +1,25 @@
1
+ <!--
2
+ @component
3
+ ## Form.SwitchLabel
4
+ Bootstrap-styled label component specifically for switch inputs.
5
+
6
+ @example
7
+ ```svelte
8
+ // Radio with label
9
+ <Form.Check isSwitch>
10
+ <Form.SwitchInput id="switchExample" name="switchExample" value="option1" />
11
+ <Form.SwitchLabel for="switchExample">Radio example</Form.RadioLabel>
12
+ </Form.Check>
13
+ ```
14
+ ### Props
15
+ - `class` (string): Optional. Additional CSS classes to apply to the label.
16
+ - `elementRef` (HTMLLabelElement): Optional. Reference to the label DOM element.
17
+ -->
18
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
19
+ let { children, class: classValues, elementRef = $bindable(null), ...restOfProps } = $props();
20
+ let classes = $derived(uniqueClsx('form-check-label', classValues));
21
+ </script>
22
+
23
+ <label bind:this={elementRef} class={classes} {...restOfProps}>
24
+ {@render children?.()}
25
+ </label>
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ## Form.SwitchLabel
3
+ * Bootstrap-styled label component specifically for switch inputs.
4
+ *
5
+ * @example
6
+ * ```svelte
7
+ * // Radio with label
8
+ * <Form.Check isSwitch>
9
+ * <Form.SwitchInput id="switchExample" name="switchExample" value="option1" />
10
+ * <Form.SwitchLabel for="switchExample">Radio example</Form.RadioLabel>
11
+ * </Form.Check>
12
+ * ```
13
+ * ### Props
14
+ * - `class` (string): Optional. Additional CSS classes to apply to the label.
15
+ * - `elementRef` (HTMLLabelElement): Optional. Reference to the label DOM element.
16
+ */
17
+ declare const FormSwitchLabel: import("svelte").Component<import("../index.js").LabelElement, {}, "elementRef">;
18
+ type FormSwitchLabel = ReturnType<typeof FormSwitchLabel>;
19
+ export default FormSwitchLabel;
@@ -0,0 +1,129 @@
1
+ <!--
2
+ @component
3
+ ## Form.TelephoneInput
4
+ Bootstrap-styled telephone input component for entering phone numbers.
5
+
6
+ @example
7
+ ```svelte
8
+ // Default telephone input
9
+ <Form.TelephoneInput placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
10
+
11
+ // Disabled telephone input
12
+ <Form.TelephoneInput disabled placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
13
+
14
+ // Readonly telephone input
15
+ <Form.TelephoneInput readonly placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
16
+
17
+ // Readonly plaintext telephone input
18
+ <Form.TelephoneInput isPlaintext readonly placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
19
+
20
+ // Small sizing
21
+ <Form.TelephoneInput sizing="sm" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
22
+
23
+ // Large sizing
24
+ <Form.TelephoneInput sizing="lg" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
25
+
26
+ // With datalist
27
+ <Form.TelephoneInput list="listOfTelephones" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
28
+ <datalist id="listOfTelephones">
29
+ <option value="555-123-4567"></option>
30
+ <option value="555-234-5678"></option>
31
+ <option value="555-345-6789"></option>
32
+ </datalist>
33
+
34
+ // With mask (single template)
35
+ <Form.TelephoneInput mask="(###) ###-####" pattern="\(\d{3}\) \d{3}-\d{4}" placeholder="(555) 515-1212" />
36
+
37
+ // With mask (multiple templates — picks the shortest one that fits the typed digit count)
38
+ <Form.TelephoneInput mask={['###-###-####', '(###) ###-####']} />
39
+ ```
40
+ ### Props
41
+ - `class` (string): Optional. Additional CSS classes to apply to the input.
42
+ - `elementRef` (HTMLInputElement): Optional. Reference to the input DOM element.
43
+ - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
44
+ - `isPlaintext` (boolean): Optional. When true, renders as plaintext (no input border).
45
+ - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
46
+ - `mask` (string | string[]): Optional. Mask template(s) applied as the user types. `#` marks a digit
47
+ slot; any other character (`(`, `)`, `-`, `.`, space, `+`, etc.) is a literal and inserted automatically.
48
+ When an array is provided, the mask whose digit-slot count fits the typed digit count is chosen.
49
+ Independent of `pattern` — `pattern` continues to drive native browser validation only.
50
+ - `sizing` ('sm' | 'lg'): Optional. Controls the size of the input element.
51
+ - `value` (string): Optional. The telephone number value. If undefined, the input is empty.
52
+ -->
53
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
54
+ import { noop } from '../common/index.js';
55
+ let { class: classValues, elementRef = $bindable(null), isInvalid, isPlaintext = false, isValid, mask, oninput = noop, sizing, value = $bindable(undefined), ...restOfProps } = $props();
56
+ let classes = $derived(uniqueClsx({
57
+ 'form-control': !isPlaintext,
58
+ 'form-control-plaintext': isPlaintext,
59
+ [`form-control-${sizing}`]: !!sizing,
60
+ 'is-valid': isValid,
61
+ 'is-invalid': isInvalid
62
+ }, classValues));
63
+ /**
64
+ * Format `rawValue` against a mask template. `#` slots are filled with the next
65
+ * digit from `rawValue` (non-digits in the source are skipped). Literal
66
+ * characters in the template — `(`, `)`, `-`, `.`, space, `+`, etc. — are
67
+ * inserted only after at least one digit has been consumed, so the user
68
+ * doesn't see dangling separators when they delete the trailing digits.
69
+ */
70
+ function applyMask(rawValue, mask) {
71
+ const digits = rawValue.replace(/\D/g, '');
72
+ let digitIndex = 0;
73
+ let result = '';
74
+ for (const char of mask) {
75
+ if (char === '#') {
76
+ const digit = digits[digitIndex];
77
+ if (digit === undefined) {
78
+ break;
79
+ }
80
+ result += digit;
81
+ digitIndex++;
82
+ }
83
+ else if (digitIndex < digits.length) {
84
+ result += char;
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+ /** Count the number of `#` digit slots in a mask template. */
90
+ function countMaskSlots(mask) {
91
+ return [...mask].filter((char) => char === '#').length;
92
+ }
93
+ /**
94
+ * Pick the first mask whose digit-slot count fits the current digit count.
95
+ * Falls back to the longest mask (the last one) once the user has typed more
96
+ * digits than any mask can hold.
97
+ */
98
+ function chooseMask(rawValue, masks) {
99
+ const digitCount = rawValue.replace(/\D/g, '').length;
100
+ return masks.find((candidate) => digitCount <= countMaskSlots(candidate)) ?? masks[masks.length - 1] ?? masks[0];
101
+ }
102
+ const handleInput = (event) => {
103
+ if (mask !== undefined) {
104
+ const masks = Array.isArray(mask) ? mask : [mask];
105
+ if (masks.length > 0) {
106
+ const selectedMask = chooseMask(event.currentTarget.value, masks);
107
+ const maskedValue = applyMask(event.currentTarget.value, selectedMask);
108
+ if (event.currentTarget.value !== maskedValue) {
109
+ event.currentTarget.value = maskedValue;
110
+ }
111
+ value = maskedValue;
112
+ }
113
+ }
114
+ // `oninput` defaults to `noop` but Svelte's HTMLAttributes types it as
115
+ // `FormEventHandler | null | undefined`, so we null-check before invoking.
116
+ if (oninput !== null) {
117
+ oninput(event);
118
+ }
119
+ };
120
+ </script>
121
+
122
+ <input
123
+ aria-invalid={isInvalid === true ? 'true' : isValid === true ? 'false' : undefined}
124
+ bind:this={elementRef}
125
+ bind:value
126
+ class={classes}
127
+ oninput={handleInput}
128
+ type="tel"
129
+ {...restOfProps} />
@@ -0,0 +1,55 @@
1
+ import type { Form } from './index.js';
2
+ /**
3
+ * ## Form.TelephoneInput
4
+ * Bootstrap-styled telephone input component for entering phone numbers.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * // Default telephone input
9
+ * <Form.TelephoneInput placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
10
+ *
11
+ * // Disabled telephone input
12
+ * <Form.TelephoneInput disabled placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
13
+ *
14
+ * // Readonly telephone input
15
+ * <Form.TelephoneInput readonly placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
16
+ *
17
+ * // Readonly plaintext telephone input
18
+ * <Form.TelephoneInput isPlaintext readonly placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
19
+ *
20
+ * // Small sizing
21
+ * <Form.TelephoneInput sizing="sm" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
22
+ *
23
+ * // Large sizing
24
+ * <Form.TelephoneInput sizing="lg" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
25
+ *
26
+ * // With datalist
27
+ * <Form.TelephoneInput list="listOfTelephones" placeholder="555-867-5309" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
28
+ * <datalist id="listOfTelephones">
29
+ * <option value="555-123-4567"></option>
30
+ * <option value="555-234-5678"></option>
31
+ * <option value="555-345-6789"></option>
32
+ * </datalist>
33
+ *
34
+ * // With mask (single template)
35
+ * <Form.TelephoneInput mask="(###) ###-####" pattern="\(\d{3}\) \d{3}-\d{4}" placeholder="(555) 515-1212" />
36
+ *
37
+ * // With mask (multiple templates — picks the shortest one that fits the typed digit count)
38
+ * <Form.TelephoneInput mask={['###-###-####', '(###) ###-####']} />
39
+ * ```
40
+ * ### Props
41
+ * - `class` (string): Optional. Additional CSS classes to apply to the input.
42
+ * - `elementRef` (HTMLInputElement): Optional. Reference to the input DOM element.
43
+ * - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
44
+ * - `isPlaintext` (boolean): Optional. When true, renders as plaintext (no input border).
45
+ * - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
46
+ * - `mask` (string | string[]): Optional. Mask template(s) applied as the user types. `#` marks a digit
47
+ * slot; any other character (`(`, `)`, `-`, `.`, space, `+`, etc.) is a literal and inserted automatically.
48
+ * When an array is provided, the mask whose digit-slot count fits the typed digit count is chosen.
49
+ * Independent of `pattern` — `pattern` continues to drive native browser validation only.
50
+ * - `sizing` ('sm' | 'lg'): Optional. Controls the size of the input element.
51
+ * - `value` (string): Optional. The telephone number value. If undefined, the input is empty.
52
+ */
53
+ declare const FormTelephoneInput: import("svelte").Component<Form.TelephoneInputProps, {}, "value" | "elementRef">;
54
+ type FormTelephoneInput = ReturnType<typeof FormTelephoneInput>;
55
+ export default FormTelephoneInput;
@@ -0,0 +1,57 @@
1
+ <!--
2
+ @component
3
+ ## Form.TextArea
4
+ Bootstrap-styled textarea component for multi-line text input.
5
+
6
+ @example
7
+ ```svelte
8
+ // Default textarea
9
+ <Form.TextArea title="Set a text value" value="textarea value" />
10
+
11
+ // Disabled textarea
12
+ <Form.TextArea disabled title="Set a textarea value" value="textarea value" />
13
+
14
+ // Readonly textarea
15
+ <Form.TextArea readonly title="Set a textarea value" value="textarea value" />
16
+
17
+ // Small sizing
18
+ <Form.TextArea sizing="sm" title="Set a textarea value" value="textarea value" />
19
+
20
+ // Large sizing
21
+ <Form.TextArea sizing="lg" title="Set a textarea value" value="textarea value" />
22
+
23
+ // Non-resizable textarea
24
+ <Form.TextArea isResizable={false} title="Set a textarea value" value="textarea value" />
25
+ ```
26
+ ### Props
27
+ - `class` (string): Optional. Additional CSS classes to apply to the textarea.
28
+ - `elementRef` (HTMLTextAreaElement): Optional. Reference to the textarea DOM element.
29
+ - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
30
+ - `isResizable` (boolean): Optional. Controls whether the textarea is resizable. Defaults to true.
31
+ - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
32
+ - `sizing` ('sm' | 'lg'): Optional. Controls the size of the textarea element.
33
+ - `style` (string): Optional. Custom inline styles to apply to the textarea.
34
+ - `value` (string): Optional. The text value of the textarea. If undefined, the textarea is empty.
35
+ -->
36
+ <script lang="ts">import { uniqueClsx } from '../common/css.js';
37
+ let { class: classValues, elementRef = $bindable(null), isInvalid, isResizable = true, isValid, sizing, style, value = $bindable(undefined), ...restOfProps } = $props();
38
+ let classes = $derived(uniqueClsx('form-control', {
39
+ [`form-control-${sizing}`]: !!sizing,
40
+ 'is-valid': isValid,
41
+ 'is-invalid': isInvalid
42
+ }, classValues));
43
+ let styles = $derived.by(() => {
44
+ if (isResizable && style === undefined) {
45
+ return undefined;
46
+ }
47
+ return isResizable === false ? `resize: none; ${style}` : style || undefined;
48
+ });
49
+ </script>
50
+
51
+ <textarea
52
+ aria-invalid={isInvalid === true ? 'true' : isValid === true ? 'false' : undefined}
53
+ bind:this={elementRef}
54
+ bind:value
55
+ class={classes}
56
+ style={styles}
57
+ {...restOfProps}></textarea>
@@ -0,0 +1,38 @@
1
+ import type { Form } from './index.js';
2
+ /**
3
+ * ## Form.TextArea
4
+ * Bootstrap-styled textarea component for multi-line text input.
5
+ *
6
+ * @example
7
+ * ```svelte
8
+ * // Default textarea
9
+ * <Form.TextArea title="Set a text value" value="textarea value" />
10
+ *
11
+ * // Disabled textarea
12
+ * <Form.TextArea disabled title="Set a textarea value" value="textarea value" />
13
+ *
14
+ * // Readonly textarea
15
+ * <Form.TextArea readonly title="Set a textarea value" value="textarea value" />
16
+ *
17
+ * // Small sizing
18
+ * <Form.TextArea sizing="sm" title="Set a textarea value" value="textarea value" />
19
+ *
20
+ * // Large sizing
21
+ * <Form.TextArea sizing="lg" title="Set a textarea value" value="textarea value" />
22
+ *
23
+ * // Non-resizable textarea
24
+ * <Form.TextArea isResizable={false} title="Set a textarea value" value="textarea value" />
25
+ * ```
26
+ * ### Props
27
+ * - `class` (string): Optional. Additional CSS classes to apply to the textarea.
28
+ * - `elementRef` (HTMLTextAreaElement): Optional. Reference to the textarea DOM element.
29
+ * - `isInvalid` (boolean): Optional. Indicates whether the input is invalid. If undefined, no validation styles are applied.
30
+ * - `isResizable` (boolean): Optional. Controls whether the textarea is resizable. Defaults to true.
31
+ * - `isValid` (boolean): Optional. Indicates whether the input is valid. If undefined, no validation styles are applied.
32
+ * - `sizing` ('sm' | 'lg'): Optional. Controls the size of the textarea element.
33
+ * - `style` (string): Optional. Custom inline styles to apply to the textarea.
34
+ * - `value` (string): Optional. The text value of the textarea. If undefined, the textarea is empty.
35
+ */
36
+ declare const FormTextArea: import("svelte").Component<Form.TextAreaProps, {}, "value" | "elementRef">;
37
+ type FormTextArea = ReturnType<typeof FormTextArea>;
38
+ export default FormTextArea;