@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.
- package/LICENSE.md +202 -0
- package/README.md +221 -0
- package/dist/Accordion/accordion-body.svelte +8 -0
- package/dist/Accordion/accordion-body.svelte.d.ts +4 -0
- package/dist/Accordion/accordion-button.svelte +25 -0
- package/dist/Accordion/accordion-button.svelte.d.ts +4 -0
- package/dist/Accordion/accordion-collapse.svelte +18 -0
- package/dist/Accordion/accordion-collapse.svelte.d.ts +4 -0
- package/dist/Accordion/accordion-header.svelte +8 -0
- package/dist/Accordion/accordion-header.svelte.d.ts +4 -0
- package/dist/Accordion/accordion-item.svelte +33 -0
- package/dist/Accordion/accordion-item.svelte.d.ts +4 -0
- package/dist/Accordion/accordion.svelte +65 -0
- package/dist/Accordion/accordion.svelte.d.ts +51 -0
- package/dist/Accordion/accordion.svelte.js +139 -0
- package/dist/Accordion/composition.d.ts +7 -0
- package/dist/Accordion/composition.js +6 -0
- package/dist/Accordion/index.d.ts +1 -0
- package/dist/Accordion/index.js +1 -0
- package/dist/Accordion/types.d.ts +15 -0
- package/dist/Accordion/types.js +1 -0
- package/dist/Alert/alert.svelte +73 -0
- package/dist/Alert/alert.svelte.d.ts +46 -0
- package/dist/Alert/index.d.ts +2 -0
- package/dist/Alert/index.js +2 -0
- package/dist/Alert/types.d.ts +11 -0
- package/dist/Alert/types.js +1 -0
- package/dist/Badge/badge.svelte +42 -0
- package/dist/Badge/badge.svelte.d.ts +36 -0
- package/dist/Badge/index.d.ts +2 -0
- package/dist/Badge/index.js +2 -0
- package/dist/Badge/types.d.ts +28 -0
- package/dist/Badge/types.js +24 -0
- package/dist/Breadcrumb/breadcrumb-item.svelte +66 -0
- package/dist/Breadcrumb/breadcrumb-item.svelte.d.ts +30 -0
- package/dist/Breadcrumb/breadcrumb.svelte +57 -0
- package/dist/Breadcrumb/breadcrumb.svelte.d.ts +34 -0
- package/dist/Breadcrumb/breadcrumb.svelte.js +41 -0
- package/dist/Breadcrumb/composition.d.ts +3 -0
- package/dist/Breadcrumb/composition.js +2 -0
- package/dist/Breadcrumb/index.d.ts +1 -0
- package/dist/Breadcrumb/index.js +1 -0
- package/dist/Breadcrumb/types.d.ts +9 -0
- package/dist/Breadcrumb/types.js +1 -0
- package/dist/BreakpointListener/breakpoint-listener.svelte +54 -0
- package/dist/BreakpointListener/breakpoint-listener.svelte.d.ts +4 -0
- package/dist/BreakpointListener/index.d.ts +2 -0
- package/dist/BreakpointListener/index.js +2 -0
- package/dist/BreakpointListener/types.d.ts +30 -0
- package/dist/BreakpointListener/types.js +20 -0
- package/dist/Button/button.svelte +87 -0
- package/dist/Button/button.svelte.d.ts +59 -0
- package/dist/Button/index.d.ts +2 -0
- package/dist/Button/index.js +2 -0
- package/dist/Button/types.d.ts +26 -0
- package/dist/Button/types.js +1 -0
- package/dist/ButtonGroup/button-check.svelte +70 -0
- package/dist/ButtonGroup/button-check.svelte.d.ts +35 -0
- package/dist/ButtonGroup/button-group.svelte +51 -0
- package/dist/ButtonGroup/button-group.svelte.d.ts +43 -0
- package/dist/ButtonGroup/button-toolbar.svelte +36 -0
- package/dist/ButtonGroup/button-toolbar.svelte.d.ts +28 -0
- package/dist/ButtonGroup/index.d.ts +4 -0
- package/dist/ButtonGroup/index.js +4 -0
- package/dist/ButtonGroup/types.d.ts +21 -0
- package/dist/ButtonGroup/types.js +1 -0
- package/dist/Card/card-body.svelte +10 -0
- package/dist/Card/card-body.svelte.d.ts +3 -0
- package/dist/Card/card-footer.svelte +10 -0
- package/dist/Card/card-footer.svelte.d.ts +3 -0
- package/dist/Card/card-group.svelte +10 -0
- package/dist/Card/card-group.svelte.d.ts +3 -0
- package/dist/Card/card-header.svelte +10 -0
- package/dist/Card/card-header.svelte.d.ts +3 -0
- package/dist/Card/card-img-overlay.svelte +10 -0
- package/dist/Card/card-img-overlay.svelte.d.ts +3 -0
- package/dist/Card/card-img.svelte +12 -0
- package/dist/Card/card-img.svelte.d.ts +4 -0
- package/dist/Card/card-link.svelte +10 -0
- package/dist/Card/card-link.svelte.d.ts +4 -0
- package/dist/Card/card-subtitle.svelte +11 -0
- package/dist/Card/card-subtitle.svelte.d.ts +4 -0
- package/dist/Card/card-text.svelte +10 -0
- package/dist/Card/card-text.svelte.d.ts +3 -0
- package/dist/Card/card-title.svelte +11 -0
- package/dist/Card/card-title.svelte.d.ts +4 -0
- package/dist/Card/card.svelte +45 -0
- package/dist/Card/card.svelte.d.ts +38 -0
- package/dist/Card/composition.d.ts +12 -0
- package/dist/Card/composition.js +11 -0
- package/dist/Card/index.d.ts +1 -0
- package/dist/Card/index.js +1 -0
- package/dist/Card/types.d.ts +22 -0
- package/dist/Card/types.js +1 -0
- package/dist/Carousel/carousel-caption.svelte +30 -0
- package/dist/Carousel/carousel-caption.svelte.d.ts +22 -0
- package/dist/Carousel/carousel-control-next.svelte +35 -0
- package/dist/Carousel/carousel-control-next.svelte.d.ts +21 -0
- package/dist/Carousel/carousel-control-prev.svelte +35 -0
- package/dist/Carousel/carousel-control-prev.svelte.d.ts +21 -0
- package/dist/Carousel/carousel-indicator-button.svelte +41 -0
- package/dist/Carousel/carousel-indicator-button.svelte.d.ts +21 -0
- package/dist/Carousel/carousel-indicators.svelte +33 -0
- package/dist/Carousel/carousel-indicators.svelte.d.ts +25 -0
- package/dist/Carousel/carousel-inner.svelte +30 -0
- package/dist/Carousel/carousel-inner.svelte.d.ts +22 -0
- package/dist/Carousel/carousel-item.svelte +138 -0
- package/dist/Carousel/carousel-item.svelte.d.ts +28 -0
- package/dist/Carousel/carousel.svelte +140 -0
- package/dist/Carousel/carousel.svelte.d.ts +46 -0
- package/dist/Carousel/carousel.svelte.js +551 -0
- package/dist/Carousel/composition.d.ts +9 -0
- package/dist/Carousel/composition.js +8 -0
- package/dist/Carousel/index.d.ts +1 -0
- package/dist/Carousel/index.js +1 -0
- package/dist/Carousel/types.d.ts +74 -0
- package/dist/Carousel/types.js +1 -0
- package/dist/CloseButton/close-button.svelte +32 -0
- package/dist/CloseButton/close-button.svelte.d.ts +29 -0
- package/dist/CloseButton/index.d.ts +2 -0
- package/dist/CloseButton/index.js +2 -0
- package/dist/CloseButton/types.d.ts +6 -0
- package/dist/CloseButton/types.js +1 -0
- package/dist/Col/col.svelte +133 -0
- package/dist/Col/col.svelte.d.ts +60 -0
- package/dist/Col/index.d.ts +2 -0
- package/dist/Col/index.js +2 -0
- package/dist/Col/types.d.ts +30 -0
- package/dist/Col/types.js +1 -0
- package/dist/Collapse/collapse-aria-attachment.svelte.d.ts +3 -0
- package/dist/Collapse/collapse-aria-attachment.svelte.js +32 -0
- package/dist/Collapse/collapse.svelte +63 -0
- package/dist/Collapse/collapse.svelte.d.ts +45 -0
- package/dist/Collapse/index.d.ts +3 -0
- package/dist/Collapse/index.js +3 -0
- package/dist/Collapse/transition.d.ts +5 -0
- package/dist/Collapse/transition.js +75 -0
- package/dist/Collapse/types.d.ts +18 -0
- package/dist/Collapse/types.js +1 -0
- package/dist/Container/container.svelte +46 -0
- package/dist/Container/container.svelte.d.ts +36 -0
- package/dist/Container/index.d.ts +2 -0
- package/dist/Container/index.js +2 -0
- package/dist/Container/types.d.ts +8 -0
- package/dist/Container/types.js +1 -0
- package/dist/Dropdown/composition.d.ts +8 -0
- package/dist/Dropdown/composition.js +7 -0
- package/dist/Dropdown/dropdown-divider.svelte +23 -0
- package/dist/Dropdown/dropdown-divider.svelte.d.ts +18 -0
- package/dist/Dropdown/dropdown-header.svelte +27 -0
- package/dist/Dropdown/dropdown-header.svelte.d.ts +19 -0
- package/dist/Dropdown/dropdown-item-text.svelte +26 -0
- package/dist/Dropdown/dropdown-item-text.svelte.d.ts +18 -0
- package/dist/Dropdown/dropdown-item.svelte +86 -0
- package/dist/Dropdown/dropdown-item.svelte.d.ts +24 -0
- package/dist/Dropdown/dropdown-menu.svelte +82 -0
- package/dist/Dropdown/dropdown-menu.svelte.d.ts +27 -0
- package/dist/Dropdown/dropdown-toggle.svelte +67 -0
- package/dist/Dropdown/dropdown-toggle.svelte.d.ts +24 -0
- package/dist/Dropdown/dropdown.svelte +106 -0
- package/dist/Dropdown/dropdown.svelte.d.ts +34 -0
- package/dist/Dropdown/dropdown.svelte.js +435 -0
- package/dist/Dropdown/index.d.ts +1 -0
- package/dist/Dropdown/index.js +1 -0
- package/dist/Dropdown/types.d.ts +47 -0
- package/dist/Dropdown/types.js +1 -0
- package/dist/Form/composition.d.ts +34 -0
- package/dist/Form/composition.js +33 -0
- package/dist/Form/form-check-input.svelte +92 -0
- package/dist/Form/form-check-input.svelte.d.ts +48 -0
- package/dist/Form/form-check-label.svelte +26 -0
- package/dist/Form/form-check-label.svelte.d.ts +21 -0
- package/dist/Form/form-check.svelte +55 -0
- package/dist/Form/form-check.svelte.d.ts +50 -0
- package/dist/Form/form-color-input.svelte +54 -0
- package/dist/Form/form-color-input.svelte.d.ts +30 -0
- package/dist/Form/form-date-input.svelte +64 -0
- package/dist/Form/form-date-input.svelte.d.ts +46 -0
- package/dist/Form/form-datetime-local-input.svelte +60 -0
- package/dist/Form/form-datetime-local-input.svelte.d.ts +45 -0
- package/dist/Form/form-email-input.svelte +64 -0
- package/dist/Form/form-email-input.svelte.d.ts +46 -0
- package/dist/Form/form-feedback.svelte +36 -0
- package/dist/Form/form-feedback.svelte.d.ts +26 -0
- package/dist/Form/form-file-input.svelte +43 -0
- package/dist/Form/form-file-input.svelte.d.ts +30 -0
- package/dist/Form/form-floating.svelte +44 -0
- package/dist/Form/form-floating.svelte.d.ts +38 -0
- package/dist/Form/form-helper-text.svelte +35 -0
- package/dist/Form/form-helper-text.svelte.d.ts +29 -0
- package/dist/Form/form-hidden-input.svelte +18 -0
- package/dist/Form/form-hidden-input.svelte.d.ts +16 -0
- package/dist/Form/form-image-input.svelte +30 -0
- package/dist/Form/form-image-input.svelte.d.ts +26 -0
- package/dist/Form/form-input-group-text.svelte +47 -0
- package/dist/Form/form-input-group-text.svelte.d.ts +42 -0
- package/dist/Form/form-input-group.svelte +52 -0
- package/dist/Form/form-input-group.svelte.d.ts +43 -0
- package/dist/Form/form-input-label.svelte +33 -0
- package/dist/Form/form-input-label.svelte.d.ts +28 -0
- package/dist/Form/form-month-input.svelte +63 -0
- package/dist/Form/form-month-input.svelte.d.ts +48 -0
- package/dist/Form/form-number-input.svelte +62 -0
- package/dist/Form/form-number-input.svelte.d.ts +47 -0
- package/dist/Form/form-password-input.svelte +60 -0
- package/dist/Form/form-password-input.svelte.d.ts +41 -0
- package/dist/Form/form-radio-input.svelte +47 -0
- package/dist/Form/form-radio-input.svelte.d.ts +41 -0
- package/dist/Form/form-radio-label.svelte +41 -0
- package/dist/Form/form-radio-label.svelte.d.ts +35 -0
- package/dist/Form/form-range-input.svelte +43 -0
- package/dist/Form/form-range-input.svelte.d.ts +39 -0
- package/dist/Form/form-search-input.svelte +63 -0
- package/dist/Form/form-search-input.svelte.d.ts +45 -0
- package/dist/Form/form-select.svelte +85 -0
- package/dist/Form/form-select.svelte.d.ts +59 -0
- package/dist/Form/form-switch-input.svelte +54 -0
- package/dist/Form/form-switch-input.svelte.d.ts +41 -0
- package/dist/Form/form-switch-label.svelte +25 -0
- package/dist/Form/form-switch-label.svelte.d.ts +19 -0
- package/dist/Form/form-telephone-input.svelte +129 -0
- package/dist/Form/form-telephone-input.svelte.d.ts +55 -0
- package/dist/Form/form-text-area.svelte +57 -0
- package/dist/Form/form-text-area.svelte.d.ts +38 -0
- package/dist/Form/form-text-input.svelte +55 -0
- package/dist/Form/form-text-input.svelte.d.ts +37 -0
- package/dist/Form/form-time-input.svelte +62 -0
- package/dist/Form/form-time-input.svelte.d.ts +47 -0
- package/dist/Form/form-url-input.svelte +60 -0
- package/dist/Form/form-url-input.svelte.d.ts +45 -0
- package/dist/Form/form-week-Input.svelte +62 -0
- package/dist/Form/form-week-Input.svelte.d.ts +47 -0
- package/dist/Form/form.svelte +37 -0
- package/dist/Form/form.svelte.d.ts +23 -0
- package/dist/Form/index.d.ts +1 -0
- package/dist/Form/index.js +1 -0
- package/dist/Form/types.d.ts +168 -0
- package/dist/Form/types.js +1 -0
- package/dist/ListGroup/composition.d.ts +4 -0
- package/dist/ListGroup/composition.js +3 -0
- package/dist/ListGroup/index.d.ts +1 -0
- package/dist/ListGroup/index.js +1 -0
- package/dist/ListGroup/list-group-item-action.svelte +50 -0
- package/dist/ListGroup/list-group-item-action.svelte.d.ts +23 -0
- package/dist/ListGroup/list-group-item.svelte +58 -0
- package/dist/ListGroup/list-group-item.svelte.d.ts +51 -0
- package/dist/ListGroup/list-group.svelte +83 -0
- package/dist/ListGroup/list-group.svelte.d.ts +68 -0
- package/dist/ListGroup/types.d.ts +20 -0
- package/dist/ListGroup/types.js +1 -0
- package/dist/Modal/composition.d.ts +8 -0
- package/dist/Modal/composition.js +7 -0
- package/dist/Modal/index.d.ts +1 -0
- package/dist/Modal/index.js +1 -0
- package/dist/Modal/modal-body.svelte +27 -0
- package/dist/Modal/modal-body.svelte.d.ts +19 -0
- package/dist/Modal/modal-content.svelte +35 -0
- package/dist/Modal/modal-content.svelte.d.ts +27 -0
- package/dist/Modal/modal-dialog.svelte +65 -0
- package/dist/Modal/modal-dialog.svelte.d.ts +52 -0
- package/dist/Modal/modal-footer.svelte +28 -0
- package/dist/Modal/modal-footer.svelte.d.ts +20 -0
- package/dist/Modal/modal-header.svelte +50 -0
- package/dist/Modal/modal-header.svelte.d.ts +29 -0
- package/dist/Modal/modal-title.svelte +45 -0
- package/dist/Modal/modal-title.svelte.d.ts +26 -0
- package/dist/Modal/modal.svelte +233 -0
- package/dist/Modal/modal.svelte.d.ts +52 -0
- package/dist/Modal/modal.svelte.js +86 -0
- package/dist/Modal/types.d.ts +31 -0
- package/dist/Modal/types.js +1 -0
- package/dist/Nav/composition.d.ts +4 -0
- package/dist/Nav/composition.js +3 -0
- package/dist/Nav/index.d.ts +1 -0
- package/dist/Nav/index.js +1 -0
- package/dist/Nav/nav-item.svelte +25 -0
- package/dist/Nav/nav-item.svelte.d.ts +18 -0
- package/dist/Nav/nav-link.svelte +77 -0
- package/dist/Nav/nav-link.svelte.d.ts +22 -0
- package/dist/Nav/nav.svelte +93 -0
- package/dist/Nav/nav.svelte.d.ts +56 -0
- package/dist/Nav/types.d.ts +26 -0
- package/dist/Nav/types.js +1 -0
- package/dist/Navbar/composition.d.ts +8 -0
- package/dist/Navbar/composition.js +7 -0
- package/dist/Navbar/index.d.ts +1 -0
- package/dist/Navbar/index.js +1 -0
- package/dist/Navbar/navbar-brand.svelte +55 -0
- package/dist/Navbar/navbar-brand.svelte.d.ts +48 -0
- package/dist/Navbar/navbar-collapse.svelte +76 -0
- package/dist/Navbar/navbar-collapse.svelte.d.ts +55 -0
- package/dist/Navbar/navbar-nav.svelte +66 -0
- package/dist/Navbar/navbar-nav.svelte.d.ts +53 -0
- package/dist/Navbar/navbar-text.svelte +36 -0
- package/dist/Navbar/navbar-text.svelte.d.ts +28 -0
- package/dist/Navbar/navbar-toggler-icon.svelte +34 -0
- package/dist/Navbar/navbar-toggler-icon.svelte.d.ts +28 -0
- package/dist/Navbar/navbar-toggler.svelte +75 -0
- package/dist/Navbar/navbar-toggler.svelte.d.ts +48 -0
- package/dist/Navbar/navbar.svelte +116 -0
- package/dist/Navbar/navbar.svelte.d.ts +88 -0
- package/dist/Navbar/types.d.ts +23 -0
- package/dist/Navbar/types.js +1 -0
- package/dist/Offcanvas/composition.d.ts +5 -0
- package/dist/Offcanvas/composition.js +4 -0
- package/dist/Offcanvas/index.d.ts +1 -0
- package/dist/Offcanvas/index.js +1 -0
- package/dist/Offcanvas/offcanvas-body.svelte +25 -0
- package/dist/Offcanvas/offcanvas-body.svelte.d.ts +19 -0
- package/dist/Offcanvas/offcanvas-header.svelte +39 -0
- package/dist/Offcanvas/offcanvas-header.svelte.d.ts +20 -0
- package/dist/Offcanvas/offcanvas-title.svelte +31 -0
- package/dist/Offcanvas/offcanvas-title.svelte.d.ts +25 -0
- package/dist/Offcanvas/offcanvas.svelte +220 -0
- package/dist/Offcanvas/offcanvas.svelte.d.ts +61 -0
- package/dist/Offcanvas/types.d.ts +25 -0
- package/dist/Offcanvas/types.js +1 -0
- package/dist/Pagination/composition.d.ts +4 -0
- package/dist/Pagination/composition.js +3 -0
- package/dist/Pagination/index.d.ts +1 -0
- package/dist/Pagination/index.js +1 -0
- package/dist/Pagination/pagination-item.svelte +81 -0
- package/dist/Pagination/pagination-item.svelte.d.ts +35 -0
- package/dist/Pagination/pagination-link.svelte +45 -0
- package/dist/Pagination/pagination-link.svelte.d.ts +25 -0
- package/dist/Pagination/pagination.svelte +60 -0
- package/dist/Pagination/pagination.svelte.d.ts +37 -0
- package/dist/Pagination/pagination.svelte.js +117 -0
- package/dist/Pagination/types.d.ts +19 -0
- package/dist/Pagination/types.js +1 -0
- package/dist/Placeholder/composition.d.ts +3 -0
- package/dist/Placeholder/composition.js +2 -0
- package/dist/Placeholder/index.d.ts +1 -0
- package/dist/Placeholder/index.js +1 -0
- package/dist/Placeholder/placeholder-item.svelte +53 -0
- package/dist/Placeholder/placeholder-item.svelte.d.ts +48 -0
- package/dist/Placeholder/placeholder.svelte +37 -0
- package/dist/Placeholder/placeholder.svelte.d.ts +32 -0
- package/dist/Placeholder/types.d.ts +12 -0
- package/dist/Placeholder/types.js +1 -0
- package/dist/Popover/composition.d.ts +4 -0
- package/dist/Popover/composition.js +3 -0
- package/dist/Popover/index.d.ts +1 -0
- package/dist/Popover/index.js +1 -0
- package/dist/Popover/popover-body.svelte +10 -0
- package/dist/Popover/popover-body.svelte.d.ts +3 -0
- package/dist/Popover/popover-header.svelte +11 -0
- package/dist/Popover/popover-header.svelte.d.ts +4 -0
- package/dist/Popover/popover.svelte +74 -0
- package/dist/Popover/popover.svelte.d.ts +53 -0
- package/dist/Popover/types.d.ts +20 -0
- package/dist/Popover/types.js +1 -0
- package/dist/Portal/index.d.ts +2 -0
- package/dist/Portal/index.js +2 -0
- package/dist/Portal/portal-host.svelte +5 -0
- package/dist/Portal/portal-host.svelte.d.ts +7 -0
- package/dist/Portal/portal.svelte +69 -0
- package/dist/Portal/portal.svelte.d.ts +32 -0
- package/dist/Portal/types.d.ts +6 -0
- package/dist/Portal/types.js +1 -0
- package/dist/Progress/index.d.ts +3 -0
- package/dist/Progress/index.js +3 -0
- package/dist/Progress/progress-bar.svelte +101 -0
- package/dist/Progress/progress-bar.svelte.d.ts +39 -0
- package/dist/Progress/progress-stacked.svelte +34 -0
- package/dist/Progress/progress-stacked.svelte.d.ts +24 -0
- package/dist/Progress/progress.svelte.d.ts +31 -0
- package/dist/Progress/progress.svelte.js +52 -0
- package/dist/Progress/types.d.ts +40 -0
- package/dist/Progress/types.js +1 -0
- package/dist/Row/index.d.ts +2 -0
- package/dist/Row/index.js +2 -0
- package/dist/Row/row.svelte +75 -0
- package/dist/Row/row.svelte.d.ts +46 -0
- package/dist/Row/types.d.ts +12 -0
- package/dist/Row/types.js +1 -0
- package/dist/Scrollspy/index.d.ts +2 -0
- package/dist/Scrollspy/index.js +2 -0
- package/dist/Scrollspy/scrollspy-attachment.svelte.d.ts +10 -0
- package/dist/Scrollspy/scrollspy-attachment.svelte.js +122 -0
- package/dist/Scrollspy/types.d.ts +9 -0
- package/dist/Scrollspy/types.js +1 -0
- package/dist/Spinner/index.d.ts +2 -0
- package/dist/Spinner/index.js +2 -0
- package/dist/Spinner/spinner.svelte +77 -0
- package/dist/Spinner/spinner.svelte.d.ts +70 -0
- package/dist/Spinner/types.d.ts +9 -0
- package/dist/Spinner/types.js +1 -0
- package/dist/Tab/composition.d.ts +5 -0
- package/dist/Tab/composition.js +4 -0
- package/dist/Tab/index.d.ts +1 -0
- package/dist/Tab/index.js +1 -0
- package/dist/Tab/tab-content.svelte +29 -0
- package/dist/Tab/tab-content.svelte.d.ts +23 -0
- package/dist/Tab/tab-nav-link.svelte +69 -0
- package/dist/Tab/tab-nav-link.svelte.d.ts +22 -0
- package/dist/Tab/tab-pane.svelte +72 -0
- package/dist/Tab/tab-pane.svelte.d.ts +26 -0
- package/dist/Tab/tab.svelte +63 -0
- package/dist/Tab/tab.svelte.d.ts +50 -0
- package/dist/Tab/types.d.ts +18 -0
- package/dist/Tab/types.js +1 -0
- package/dist/Table/composition.d.ts +9 -0
- package/dist/Table/composition.js +8 -0
- package/dist/Table/index.d.ts +1 -0
- package/dist/Table/index.js +1 -0
- package/dist/Table/table-body.svelte +30 -0
- package/dist/Table/table-body.svelte.d.ts +23 -0
- package/dist/Table/table-caption.svelte +20 -0
- package/dist/Table/table-caption.svelte.d.ts +15 -0
- package/dist/Table/table-data.svelte +30 -0
- package/dist/Table/table-data.svelte.d.ts +19 -0
- package/dist/Table/table-foot.svelte +31 -0
- package/dist/Table/table-foot.svelte.d.ts +24 -0
- package/dist/Table/table-head.svelte +31 -0
- package/dist/Table/table-head.svelte.d.ts +24 -0
- package/dist/Table/table-header.svelte +38 -0
- package/dist/Table/table-header.svelte.d.ts +17 -0
- package/dist/Table/table-row.svelte +34 -0
- package/dist/Table/table-row.svelte.d.ts +23 -0
- package/dist/Table/table.svelte +154 -0
- package/dist/Table/table.svelte.d.ts +98 -0
- package/dist/Table/table.svelte.js +92 -0
- package/dist/Table/types.d.ts +43 -0
- package/dist/Table/types.js +1 -0
- package/dist/Toast/composition.d.ts +5 -0
- package/dist/Toast/composition.js +4 -0
- package/dist/Toast/index.d.ts +1 -0
- package/dist/Toast/index.js +1 -0
- package/dist/Toast/toast-body.svelte +26 -0
- package/dist/Toast/toast-body.svelte.d.ts +18 -0
- package/dist/Toast/toast-container.svelte +44 -0
- package/dist/Toast/toast-container.svelte.d.ts +36 -0
- package/dist/Toast/toast-header.svelte +56 -0
- package/dist/Toast/toast-header.svelte.d.ts +36 -0
- package/dist/Toast/toast.svelte +112 -0
- package/dist/Toast/toast.svelte.d.ts +54 -0
- package/dist/Toast/toast.svelte.js +83 -0
- package/dist/Toast/types.d.ts +53 -0
- package/dist/Toast/types.js +19 -0
- package/dist/Tooltip/composition.d.ts +3 -0
- package/dist/Tooltip/composition.js +2 -0
- package/dist/Tooltip/index.d.ts +1 -0
- package/dist/Tooltip/index.js +1 -0
- package/dist/Tooltip/tooltip-inner.svelte +10 -0
- package/dist/Tooltip/tooltip-inner.svelte.d.ts +4 -0
- package/dist/Tooltip/tooltip.svelte +213 -0
- package/dist/Tooltip/tooltip.svelte.d.ts +54 -0
- package/dist/Tooltip/types.d.ts +43 -0
- package/dist/Tooltip/types.js +1 -0
- package/dist/common/context.d.ts +47 -0
- package/dist/common/context.js +70 -0
- package/dist/common/css.d.ts +71 -0
- package/dist/common/css.js +133 -0
- package/dist/common/dom.d.ts +51 -0
- package/dist/common/dom.js +98 -0
- package/dist/common/index.d.ts +6 -0
- package/dist/common/index.js +5 -0
- package/dist/common/nav-tab.svelte.d.ts +88 -0
- package/dist/common/nav-tab.svelte.js +188 -0
- package/dist/common/navbar-offcanvas.svelte.d.ts +101 -0
- package/dist/common/navbar-offcanvas.svelte.js +228 -0
- package/dist/common/noop.d.ts +4 -0
- package/dist/common/noop.js +4 -0
- package/dist/common/scrollbar.d.ts +20 -0
- package/dist/common/scrollbar.js +53 -0
- package/dist/common/types.d.ts +143 -0
- package/dist/common/types.js +40 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +33 -0
- 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;
|