@vielzeug/buildit 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -0
- package/dist/accordion-item.cjs +32 -0
- package/dist/accordion-item.cjs.map +1 -0
- package/dist/accordion-item.js +72 -0
- package/dist/accordion-item.js.map +1 -0
- package/dist/accordion.cjs +2 -0
- package/dist/accordion.cjs.map +1 -0
- package/dist/accordion.js +37 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.cjs +31 -0
- package/dist/alert.cjs.map +1 -0
- package/dist/alert.js +85 -0
- package/dist/alert.js.map +1 -0
- package/dist/avatar.cjs +37 -0
- package/dist/avatar.cjs.map +1 -0
- package/dist/avatar.js +123 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.cjs +7 -0
- package/dist/badge.cjs.map +1 -0
- package/dist/badge.js +60 -0
- package/dist/badge.js.map +1 -0
- package/dist/box.cjs +2 -0
- package/dist/box.cjs.map +1 -0
- package/dist/box.js +22 -0
- package/dist/box.js.map +1 -0
- package/dist/breadcrumb.cjs +21 -0
- package/dist/breadcrumb.cjs.map +1 -0
- package/dist/breadcrumb.js +58 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/buildit.cjs +1892 -0
- package/dist/buildit.cjs.map +1 -0
- package/dist/buildit.js +1892 -0
- package/dist/buildit.js.map +1 -0
- package/dist/button-group.cjs +6 -0
- package/dist/button-group.cjs.map +1 -0
- package/dist/button-group.js +31 -0
- package/dist/button-group.js.map +1 -0
- package/dist/button.cjs +30 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.js +115 -0
- package/dist/button.js.map +1 -0
- package/dist/card.cjs +23 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.js +99 -0
- package/dist/card.js.map +1 -0
- package/dist/checkbox-group.cjs +20 -0
- package/dist/checkbox-group.cjs.map +1 -0
- package/dist/checkbox-group.js +88 -0
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox.cjs +37 -0
- package/dist/checkbox.cjs.map +1 -0
- package/dist/checkbox.js +115 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.cjs +56 -0
- package/dist/chip.cjs.map +1 -0
- package/dist/chip.js +140 -0
- package/dist/chip.js.map +1 -0
- package/dist/combobox.cjs +93 -0
- package/dist/combobox.cjs.map +1 -0
- package/dist/combobox.js +401 -0
- package/dist/combobox.js.map +1 -0
- package/dist/content/avatar/avatar-group.css?inline.cjs +2 -0
- package/dist/content/avatar/avatar-group.css?inline.cjs.map +1 -0
- package/dist/content/avatar/avatar-group.css?inline.js +6 -0
- package/dist/content/avatar/avatar-group.css?inline.js.map +1 -0
- package/dist/content/avatar/avatar.css?inline.cjs +2 -0
- package/dist/content/avatar/avatar.css?inline.cjs.map +1 -0
- package/dist/content/avatar/avatar.css?inline.js +6 -0
- package/dist/content/avatar/avatar.css?inline.js.map +1 -0
- package/dist/content/avatar/avatar.d.ts +78 -0
- package/dist/content/avatar/avatar.d.ts.map +1 -0
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs +2 -0
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs.map +1 -0
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.js +6 -0
- package/dist/content/breadcrumb/breadcrumb-item.css?inline.js.map +1 -0
- package/dist/content/breadcrumb/breadcrumb.css?inline.cjs +2 -0
- package/dist/content/breadcrumb/breadcrumb.css?inline.cjs.map +1 -0
- package/dist/content/breadcrumb/breadcrumb.css?inline.js +6 -0
- package/dist/content/breadcrumb/breadcrumb.css?inline.js.map +1 -0
- package/dist/content/breadcrumb/breadcrumb.d.ts +36 -0
- package/dist/content/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/content/card/card.css?inline.cjs +2 -0
- package/dist/content/card/card.css?inline.cjs.map +1 -0
- package/dist/content/card/card.css?inline.js +6 -0
- package/dist/content/card/card.css?inline.js.map +1 -0
- package/dist/content/card/card.d.ts +66 -0
- package/dist/content/card/card.d.ts.map +1 -0
- package/dist/content/index.cjs +1 -0
- package/dist/content/index.d.ts +15 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +7 -0
- package/dist/content/pagination/pagination.css?inline.cjs +2 -0
- package/dist/content/pagination/pagination.css?inline.cjs.map +1 -0
- package/dist/content/pagination/pagination.css?inline.js +6 -0
- package/dist/content/pagination/pagination.css?inline.js.map +1 -0
- package/dist/content/pagination/pagination.d.ts +56 -0
- package/dist/content/pagination/pagination.d.ts.map +1 -0
- package/dist/content/separator/separator.css?inline.cjs +2 -0
- package/dist/content/separator/separator.css?inline.cjs.map +1 -0
- package/dist/content/separator/separator.css?inline.js +6 -0
- package/dist/content/separator/separator.css?inline.js.map +1 -0
- package/dist/content/separator/separator.d.ts +35 -0
- package/dist/content/separator/separator.d.ts.map +1 -0
- package/dist/content/table/table.css?inline.cjs +2 -0
- package/dist/content/table/table.css?inline.cjs.map +1 -0
- package/dist/content/table/table.css?inline.js +6 -0
- package/dist/content/table/table.css?inline.js.map +1 -0
- package/dist/content/table/table.d.ts +69 -0
- package/dist/content/table/table.d.ts.map +1 -0
- package/dist/content/text/text.css?inline.cjs +2 -0
- package/dist/content/text/text.css?inline.cjs.map +1 -0
- package/dist/content/text/text.css?inline.js +6 -0
- package/dist/content/text/text.css?inline.js.map +1 -0
- package/dist/content/text/text.d.ts +55 -0
- package/dist/content/text/text.d.ts.map +1 -0
- package/dist/craftit/dist/core/internal.cjs +2 -0
- package/dist/craftit/dist/core/internal.cjs.map +1 -0
- package/dist/craftit/dist/core/internal.js +25 -0
- package/dist/craftit/dist/core/internal.js.map +1 -0
- package/dist/craftit/dist/core/runtime-bindings.cjs +2 -0
- package/dist/craftit/dist/core/runtime-bindings.cjs.map +1 -0
- package/dist/craftit/dist/core/runtime-bindings.js +38 -0
- package/dist/craftit/dist/core/runtime-bindings.js.map +1 -0
- package/dist/craftit/dist/core/runtime-lifecycle.cjs +2 -0
- package/dist/craftit/dist/core/runtime-lifecycle.cjs.map +1 -0
- package/dist/craftit/dist/core/runtime-lifecycle.js +68 -0
- package/dist/craftit/dist/core/runtime-lifecycle.js.map +1 -0
- package/dist/craftit/dist/core/runtime.cjs +1 -0
- package/dist/craftit/dist/core/runtime.js +2 -0
- package/dist/craftit/dist/core/utilities.cjs +2 -0
- package/dist/craftit/dist/core/utilities.cjs.map +1 -0
- package/dist/craftit/dist/core/utilities.js +12 -0
- package/dist/craftit/dist/core/utilities.js.map +1 -0
- package/dist/craftit/dist/directives/attr.cjs +2 -0
- package/dist/craftit/dist/directives/attr.cjs.map +1 -0
- package/dist/craftit/dist/directives/attr.js +13 -0
- package/dist/craftit/dist/directives/attr.js.map +1 -0
- package/dist/craftit/dist/directives/bind.cjs +1 -0
- package/dist/craftit/dist/directives/bind.js +3 -0
- package/dist/craftit/dist/directives/choose.cjs +1 -0
- package/dist/craftit/dist/directives/choose.js +1 -0
- package/dist/craftit/dist/directives/classes.cjs +2 -0
- package/dist/craftit/dist/directives/classes.cjs.map +1 -0
- package/dist/craftit/dist/directives/classes.js +12 -0
- package/dist/craftit/dist/directives/classes.js.map +1 -0
- package/dist/craftit/dist/directives/each.cjs +2 -0
- package/dist/craftit/dist/directives/each.cjs.map +1 -0
- package/dist/craftit/dist/directives/each.js +96 -0
- package/dist/craftit/dist/directives/each.js.map +1 -0
- package/dist/craftit/dist/directives/index.cjs +1 -0
- package/dist/craftit/dist/directives/index.js +12 -0
- package/dist/craftit/dist/directives/match.cjs +1 -0
- package/dist/craftit/dist/directives/match.js +1 -0
- package/dist/craftit/dist/directives/memo.cjs +1 -0
- package/dist/craftit/dist/directives/memo.js +1 -0
- package/dist/craftit/dist/directives/raw.cjs +1 -0
- package/dist/craftit/dist/directives/raw.js +2 -0
- package/dist/craftit/dist/directives/spread.cjs +2 -0
- package/dist/craftit/dist/directives/spread.cjs.map +1 -0
- package/dist/craftit/dist/directives/spread.js +30 -0
- package/dist/craftit/dist/directives/spread.js.map +1 -0
- package/dist/craftit/dist/directives/style.cjs +1 -0
- package/dist/craftit/dist/directives/style.js +1 -0
- package/dist/craftit/dist/directives/until.cjs +1 -0
- package/dist/craftit/dist/directives/until.js +1 -0
- package/dist/craftit/dist/directives/when.cjs +2 -0
- package/dist/craftit/dist/directives/when.cjs.map +1 -0
- package/dist/craftit/dist/directives/when.js +14 -0
- package/dist/craftit/dist/directives/when.js.map +1 -0
- package/dist/craftit/dist/labs/a11y.cjs +2 -0
- package/dist/craftit/dist/labs/a11y.cjs.map +1 -0
- package/dist/craftit/dist/labs/a11y.js +38 -0
- package/dist/craftit/dist/labs/a11y.js.map +1 -0
- package/dist/craftit/dist/labs/list.cjs +2 -0
- package/dist/craftit/dist/labs/list.cjs.map +1 -0
- package/dist/craftit/dist/labs/list.js +87 -0
- package/dist/craftit/dist/labs/list.js.map +1 -0
- package/dist/craftit/dist/labs/observers.cjs +2 -0
- package/dist/craftit/dist/labs/observers.cjs.map +1 -0
- package/dist/craftit/dist/labs/observers.js +28 -0
- package/dist/craftit/dist/labs/observers.js.map +1 -0
- package/dist/craftit/dist/labs/overlay.cjs +2 -0
- package/dist/craftit/dist/labs/overlay.cjs.map +1 -0
- package/dist/craftit/dist/labs/overlay.js +49 -0
- package/dist/craftit/dist/labs/overlay.js.map +1 -0
- package/dist/craftit/dist/labs/selectable.cjs +2 -0
- package/dist/craftit/dist/labs/selectable.cjs.map +1 -0
- package/dist/craftit/dist/labs/selectable.js +29 -0
- package/dist/craftit/dist/labs/selectable.js.map +1 -0
- package/dist/craftit/dist/labs/selection.cjs +2 -0
- package/dist/craftit/dist/labs/selection.cjs.map +1 -0
- package/dist/craftit/dist/labs/selection.js +42 -0
- package/dist/craftit/dist/labs/selection.js.map +1 -0
- package/dist/craftit/dist/labs.cjs +1 -0
- package/dist/craftit/dist/labs.js +6 -0
- package/dist/custom-elements.json +2321 -0
- package/dist/dialog.cjs +33 -0
- package/dist/dialog.cjs.map +1 -0
- package/dist/dialog.js +94 -0
- package/dist/dialog.js.map +1 -0
- package/dist/disclosure/accordion/accordion.css?inline.cjs +2 -0
- package/dist/disclosure/accordion/accordion.css?inline.cjs.map +1 -0
- package/dist/disclosure/accordion/accordion.css?inline.js +6 -0
- package/dist/disclosure/accordion/accordion.css?inline.js.map +1 -0
- package/dist/disclosure/accordion/accordion.d.ts +47 -0
- package/dist/disclosure/accordion/accordion.d.ts.map +1 -0
- package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs +2 -0
- package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs.map +1 -0
- package/dist/disclosure/accordion-item/accordion-item.css?inline.js +6 -0
- package/dist/disclosure/accordion-item/accordion-item.css?inline.js.map +1 -0
- package/dist/disclosure/accordion-item/accordion-item.d.ts +62 -0
- package/dist/disclosure/accordion-item/accordion-item.d.ts.map +1 -0
- package/dist/disclosure/index.cjs +1 -0
- package/dist/disclosure/index.d.ts +11 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +5 -0
- package/dist/disclosure/tab-item/tab-item.css?inline.cjs +2 -0
- package/dist/disclosure/tab-item/tab-item.css?inline.cjs.map +1 -0
- package/dist/disclosure/tab-item/tab-item.css?inline.js +6 -0
- package/dist/disclosure/tab-item/tab-item.css?inline.js.map +1 -0
- package/dist/disclosure/tab-item/tab-item.d.ts +39 -0
- package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -0
- package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs +2 -0
- package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs.map +1 -0
- package/dist/disclosure/tab-panel/tab-panel.css?inline.js +6 -0
- package/dist/disclosure/tab-panel/tab-panel.css?inline.js.map +1 -0
- package/dist/disclosure/tab-panel/tab-panel.d.ts +30 -0
- package/dist/disclosure/tab-panel/tab-panel.d.ts.map +1 -0
- package/dist/disclosure/tabs/tabs.css?inline.cjs +2 -0
- package/dist/disclosure/tabs/tabs.css?inline.cjs.map +1 -0
- package/dist/disclosure/tabs/tabs.css?inline.js +6 -0
- package/dist/disclosure/tabs/tabs.css?inline.js.map +1 -0
- package/dist/disclosure/tabs/tabs.d.ts +64 -0
- package/dist/disclosure/tabs/tabs.d.ts.map +1 -0
- package/dist/drawer.cjs +31 -0
- package/dist/drawer.cjs.map +1 -0
- package/dist/drawer.js +98 -0
- package/dist/drawer.js.map +1 -0
- package/dist/feedback/alert/alert.css?inline.cjs +2 -0
- package/dist/feedback/alert/alert.css?inline.cjs.map +1 -0
- package/dist/feedback/alert/alert.css?inline.js +6 -0
- package/dist/feedback/alert/alert.css?inline.js.map +1 -0
- package/dist/feedback/alert/alert.d.ts +63 -0
- package/dist/feedback/alert/alert.d.ts.map +1 -0
- package/dist/feedback/badge/badge.css?inline.cjs +2 -0
- package/dist/feedback/badge/badge.css?inline.cjs.map +1 -0
- package/dist/feedback/badge/badge.css?inline.js +6 -0
- package/dist/feedback/badge/badge.css?inline.js.map +1 -0
- package/dist/feedback/badge/badge.d.ts +67 -0
- package/dist/feedback/badge/badge.d.ts.map +1 -0
- package/dist/feedback/chip/chip.css?inline.cjs +2 -0
- package/dist/feedback/chip/chip.css?inline.cjs.map +1 -0
- package/dist/feedback/chip/chip.css?inline.js +6 -0
- package/dist/feedback/chip/chip.css?inline.js.map +1 -0
- package/dist/feedback/chip/chip.d.ts +124 -0
- package/dist/feedback/chip/chip.d.ts.map +1 -0
- package/dist/feedback/index.cjs +1 -0
- package/dist/feedback/index.d.ts +13 -0
- package/dist/feedback/index.d.ts.map +1 -0
- package/dist/feedback/index.js +6 -0
- package/dist/feedback/progress/progress.css?inline.cjs +2 -0
- package/dist/feedback/progress/progress.css?inline.cjs.map +1 -0
- package/dist/feedback/progress/progress.css?inline.js +6 -0
- package/dist/feedback/progress/progress.css?inline.js.map +1 -0
- package/dist/feedback/progress/progress.d.ts +64 -0
- package/dist/feedback/progress/progress.d.ts.map +1 -0
- package/dist/feedback/skeleton/skeleton.css?inline.cjs +2 -0
- package/dist/feedback/skeleton/skeleton.css?inline.cjs.map +1 -0
- package/dist/feedback/skeleton/skeleton.css?inline.js +6 -0
- package/dist/feedback/skeleton/skeleton.css?inline.js.map +1 -0
- package/dist/feedback/skeleton/skeleton.d.ts +61 -0
- package/dist/feedback/skeleton/skeleton.d.ts.map +1 -0
- package/dist/feedback/toast/index.d.ts +2 -0
- package/dist/feedback/toast/index.d.ts.map +1 -0
- package/dist/feedback/toast/toast.css?inline.cjs +2 -0
- package/dist/feedback/toast/toast.css?inline.cjs.map +1 -0
- package/dist/feedback/toast/toast.css?inline.js +6 -0
- package/dist/feedback/toast/toast.css?inline.js.map +1 -0
- package/dist/feedback/toast/toast.d.ts +95 -0
- package/dist/feedback/toast/toast.d.ts.map +1 -0
- package/dist/file-input.cjs +66 -0
- package/dist/file-input.cjs.map +1 -0
- package/dist/file-input.js +210 -0
- package/dist/file-input.js.map +1 -0
- package/dist/form.cjs +11 -0
- package/dist/form.cjs.map +1 -0
- package/dist/form.js +49 -0
- package/dist/form.js.map +1 -0
- package/dist/grid-item.cjs +2 -0
- package/dist/grid-item.cjs.map +1 -0
- package/dist/grid-item.js +28 -0
- package/dist/grid-item.js.map +1 -0
- package/dist/grid.cjs +2 -0
- package/dist/grid.cjs.map +1 -0
- package/dist/grid.js +90 -0
- package/dist/grid.js.map +1 -0
- package/dist/icons.cjs +176 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.ts +15 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +181 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/input.cjs +48 -0
- package/dist/input.cjs.map +1 -0
- package/dist/input.js +182 -0
- package/dist/input.js.map +1 -0
- package/dist/inputs/button/button.css?inline.cjs +2 -0
- package/dist/inputs/button/button.css?inline.cjs.map +1 -0
- package/dist/inputs/button/button.css?inline.js +6 -0
- package/dist/inputs/button/button.css?inline.js.map +1 -0
- package/dist/inputs/button/button.d.ts +73 -0
- package/dist/inputs/button/button.d.ts.map +1 -0
- package/dist/inputs/button-group/button-group.css?inline.cjs +2 -0
- package/dist/inputs/button-group/button-group.css?inline.cjs.map +1 -0
- package/dist/inputs/button-group/button-group.css?inline.js +6 -0
- package/dist/inputs/button-group/button-group.css?inline.js.map +1 -0
- package/dist/inputs/button-group/button-group.d.ts +52 -0
- package/dist/inputs/button-group/button-group.d.ts.map +1 -0
- package/dist/inputs/checkbox/checkbox.css?inline.cjs +2 -0
- package/dist/inputs/checkbox/checkbox.css?inline.cjs.map +1 -0
- package/dist/inputs/checkbox/checkbox.css?inline.js +6 -0
- package/dist/inputs/checkbox/checkbox.css?inline.js.map +1 -0
- package/dist/inputs/checkbox/checkbox.d.ts +43 -0
- package/dist/inputs/checkbox/checkbox.d.ts.map +1 -0
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs +2 -0
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs.map +1 -0
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.js +6 -0
- package/dist/inputs/checkbox-group/checkbox-group.css?inline.js.map +1 -0
- package/dist/inputs/checkbox-group/checkbox-group.d.ts +56 -0
- package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -0
- package/dist/inputs/combobox/combobox-options.cjs +2 -0
- package/dist/inputs/combobox/combobox-options.cjs.map +1 -0
- package/dist/inputs/combobox/combobox-options.d.ts +7 -0
- package/dist/inputs/combobox/combobox-options.d.ts.map +1 -0
- package/dist/inputs/combobox/combobox-options.js +36 -0
- package/dist/inputs/combobox/combobox-options.js.map +1 -0
- package/dist/inputs/combobox/combobox-virtualizer.cjs +2 -0
- package/dist/inputs/combobox/combobox-virtualizer.cjs.map +1 -0
- package/dist/inputs/combobox/combobox-virtualizer.d.ts +20 -0
- package/dist/inputs/combobox/combobox-virtualizer.d.ts.map +1 -0
- package/dist/inputs/combobox/combobox-virtualizer.js +71 -0
- package/dist/inputs/combobox/combobox-virtualizer.js.map +1 -0
- package/dist/inputs/combobox/combobox.css?inline.cjs +2 -0
- package/dist/inputs/combobox/combobox.css?inline.cjs.map +1 -0
- package/dist/inputs/combobox/combobox.css?inline.js +6 -0
- package/dist/inputs/combobox/combobox.css?inline.js.map +1 -0
- package/dist/inputs/combobox/combobox.d.ts +28 -0
- package/dist/inputs/combobox/combobox.d.ts.map +1 -0
- package/dist/inputs/combobox/combobox.types.d.ts +36 -0
- package/dist/inputs/combobox/combobox.types.d.ts.map +1 -0
- package/dist/inputs/file-input/file-input.css?inline.cjs +2 -0
- package/dist/inputs/file-input/file-input.css?inline.cjs.map +1 -0
- package/dist/inputs/file-input/file-input.css?inline.js +6 -0
- package/dist/inputs/file-input/file-input.css?inline.js.map +1 -0
- package/dist/inputs/file-input/file-input.d.ts +94 -0
- package/dist/inputs/file-input/file-input.d.ts.map +1 -0
- package/dist/inputs/form/form.css?inline.cjs +2 -0
- package/dist/inputs/form/form.css?inline.cjs.map +1 -0
- package/dist/inputs/form/form.css?inline.js +6 -0
- package/dist/inputs/form/form.css?inline.js.map +1 -0
- package/dist/inputs/form/form.d.ts +61 -0
- package/dist/inputs/form/form.d.ts.map +1 -0
- package/dist/inputs/index.cjs +1 -0
- package/dist/inputs/index.d.ts +38 -0
- package/dist/inputs/index.d.ts.map +1 -0
- package/dist/inputs/index.js +18 -0
- package/dist/inputs/input/input.css?inline.cjs +2 -0
- package/dist/inputs/input/input.css?inline.cjs.map +1 -0
- package/dist/inputs/input/input.css?inline.js +6 -0
- package/dist/inputs/input/input.css?inline.js.map +1 -0
- package/dist/inputs/input/input.d.ts +82 -0
- package/dist/inputs/input/input.d.ts.map +1 -0
- package/dist/inputs/number-input/number-input.css?inline.cjs +2 -0
- package/dist/inputs/number-input/number-input.css?inline.cjs.map +1 -0
- package/dist/inputs/number-input/number-input.css?inline.js +6 -0
- package/dist/inputs/number-input/number-input.css?inline.js.map +1 -0
- package/dist/inputs/number-input/number-input.d.ts +76 -0
- package/dist/inputs/number-input/number-input.d.ts.map +1 -0
- package/dist/inputs/otp-input/otp-input.css?inline.cjs +2 -0
- package/dist/inputs/otp-input/otp-input.css?inline.cjs.map +1 -0
- package/dist/inputs/otp-input/otp-input.css?inline.js +6 -0
- package/dist/inputs/otp-input/otp-input.css?inline.js.map +1 -0
- package/dist/inputs/otp-input/otp-input.d.ts +71 -0
- package/dist/inputs/otp-input/otp-input.d.ts.map +1 -0
- package/dist/inputs/radio/radio.css?inline.cjs +2 -0
- package/dist/inputs/radio/radio.css?inline.cjs.map +1 -0
- package/dist/inputs/radio/radio.css?inline.js +6 -0
- package/dist/inputs/radio/radio.css?inline.js.map +1 -0
- package/dist/inputs/radio/radio.d.ts +41 -0
- package/dist/inputs/radio/radio.d.ts.map +1 -0
- package/dist/inputs/radio-group/radio-group.css?inline.cjs +2 -0
- package/dist/inputs/radio-group/radio-group.css?inline.cjs.map +1 -0
- package/dist/inputs/radio-group/radio-group.css?inline.js +6 -0
- package/dist/inputs/radio-group/radio-group.css?inline.js.map +1 -0
- package/dist/inputs/radio-group/radio-group.d.ts +61 -0
- package/dist/inputs/radio-group/radio-group.d.ts.map +1 -0
- package/dist/inputs/rating/rating.css?inline.cjs +2 -0
- package/dist/inputs/rating/rating.css?inline.cjs.map +1 -0
- package/dist/inputs/rating/rating.css?inline.js +6 -0
- package/dist/inputs/rating/rating.css?inline.js.map +1 -0
- package/dist/inputs/rating/rating.d.ts +48 -0
- package/dist/inputs/rating/rating.d.ts.map +1 -0
- package/dist/inputs/select/select.css?inline.cjs +2 -0
- package/dist/inputs/select/select.css?inline.cjs.map +1 -0
- package/dist/inputs/select/select.css?inline.js +6 -0
- package/dist/inputs/select/select.css?inline.js.map +1 -0
- package/dist/inputs/select/select.d.ts +79 -0
- package/dist/inputs/select/select.d.ts.map +1 -0
- package/dist/inputs/shared/base-props.d.ts +39 -0
- package/dist/inputs/shared/base-props.d.ts.map +1 -0
- package/dist/inputs/shared/composables/index.cjs +1 -0
- package/dist/inputs/shared/composables/index.d.ts +3 -0
- package/dist/inputs/shared/composables/index.d.ts.map +1 -0
- package/dist/inputs/shared/composables/index.js +2 -0
- package/dist/inputs/shared/composables/use-text-field.cjs +2 -0
- package/dist/inputs/shared/composables/use-text-field.cjs.map +1 -0
- package/dist/inputs/shared/composables/use-text-field.d.ts +33 -0
- package/dist/inputs/shared/composables/use-text-field.d.ts.map +1 -0
- package/dist/inputs/shared/composables/use-text-field.js +41 -0
- package/dist/inputs/shared/composables/use-text-field.js.map +1 -0
- package/dist/inputs/shared/composables/use-toggle-field.cjs +2 -0
- package/dist/inputs/shared/composables/use-toggle-field.cjs.map +1 -0
- package/dist/inputs/shared/composables/use-toggle-field.d.ts +18 -0
- package/dist/inputs/shared/composables/use-toggle-field.d.ts.map +1 -0
- package/dist/inputs/shared/composables/use-toggle-field.js +26 -0
- package/dist/inputs/shared/composables/use-toggle-field.js.map +1 -0
- package/dist/inputs/shared/design-presets.cjs +2 -0
- package/dist/inputs/shared/design-presets.cjs.map +1 -0
- package/dist/inputs/shared/design-presets.d.ts +97 -0
- package/dist/inputs/shared/design-presets.d.ts.map +1 -0
- package/dist/inputs/shared/design-presets.js +92 -0
- package/dist/inputs/shared/design-presets.js.map +1 -0
- package/dist/inputs/shared/dom-sync/dropdown.cjs +2 -0
- package/dist/inputs/shared/dom-sync/dropdown.cjs.map +1 -0
- package/dist/inputs/shared/dom-sync/dropdown.d.ts +7 -0
- package/dist/inputs/shared/dom-sync/dropdown.d.ts.map +1 -0
- package/dist/inputs/shared/dom-sync/dropdown.js +30 -0
- package/dist/inputs/shared/dom-sync/dropdown.js.map +1 -0
- package/dist/inputs/shared/dom-sync/field-sync.cjs +2 -0
- package/dist/inputs/shared/dom-sync/field-sync.cjs.map +1 -0
- package/dist/inputs/shared/dom-sync/field-sync.d.ts +36 -0
- package/dist/inputs/shared/dom-sync/field-sync.d.ts.map +1 -0
- package/dist/inputs/shared/dom-sync/field-sync.js +37 -0
- package/dist/inputs/shared/dom-sync/field-sync.js.map +1 -0
- package/dist/inputs/shared/dom-sync/form-context.cjs +2 -0
- package/dist/inputs/shared/dom-sync/form-context.cjs.map +1 -0
- package/dist/inputs/shared/dom-sync/form-context.d.ts +18 -0
- package/dist/inputs/shared/dom-sync/form-context.d.ts.map +1 -0
- package/dist/inputs/shared/dom-sync/form-context.js +20 -0
- package/dist/inputs/shared/dom-sync/form-context.js.map +1 -0
- package/dist/inputs/shared/dom-sync/index.cjs +1 -0
- package/dist/inputs/shared/dom-sync/index.d.ts +5 -0
- package/dist/inputs/shared/dom-sync/index.d.ts.map +1 -0
- package/dist/inputs/shared/dom-sync/index.js +4 -0
- package/dist/inputs/shared/dom-sync/label-sync.cjs +2 -0
- package/dist/inputs/shared/dom-sync/label-sync.cjs.map +1 -0
- package/dist/inputs/shared/dom-sync/label-sync.d.ts +16 -0
- package/dist/inputs/shared/dom-sync/label-sync.d.ts.map +1 -0
- package/dist/inputs/shared/dom-sync/label-sync.js +12 -0
- package/dist/inputs/shared/dom-sync/label-sync.js.map +1 -0
- package/dist/inputs/shared/form-context.cjs +2 -0
- package/dist/inputs/shared/form-context.cjs.map +1 -0
- package/dist/inputs/shared/form-context.d.ts +19 -0
- package/dist/inputs/shared/form-context.d.ts.map +1 -0
- package/dist/inputs/shared/form-context.js +7 -0
- package/dist/inputs/shared/form-context.js.map +1 -0
- package/dist/inputs/shared/utils/assistive-text.cjs +2 -0
- package/dist/inputs/shared/utils/assistive-text.cjs.map +1 -0
- package/dist/inputs/shared/utils/assistive-text.d.ts +24 -0
- package/dist/inputs/shared/utils/assistive-text.d.ts.map +1 -0
- package/dist/inputs/shared/utils/assistive-text.js +37 -0
- package/dist/inputs/shared/utils/assistive-text.js.map +1 -0
- package/dist/inputs/shared/utils/choice-change.cjs +2 -0
- package/dist/inputs/shared/utils/choice-change.cjs.map +1 -0
- package/dist/inputs/shared/utils/choice-change.d.ts +8 -0
- package/dist/inputs/shared/utils/choice-change.d.ts.map +1 -0
- package/dist/inputs/shared/utils/choice-change.js +13 -0
- package/dist/inputs/shared/utils/choice-change.js.map +1 -0
- package/dist/inputs/shared/utils/controlled-csv.cjs +2 -0
- package/dist/inputs/shared/utils/controlled-csv.cjs.map +1 -0
- package/dist/inputs/shared/utils/controlled-csv.d.ts +8 -0
- package/dist/inputs/shared/utils/controlled-csv.d.ts.map +1 -0
- package/dist/inputs/shared/utils/controlled-csv.js +15 -0
- package/dist/inputs/shared/utils/controlled-csv.js.map +1 -0
- package/dist/inputs/shared/utils/field-values.cjs +2 -0
- package/dist/inputs/shared/utils/field-values.cjs.map +1 -0
- package/dist/inputs/shared/utils/field-values.d.ts +5 -0
- package/dist/inputs/shared/utils/field-values.d.ts.map +1 -0
- package/dist/inputs/shared/utils/field-values.js +13 -0
- package/dist/inputs/shared/utils/field-values.js.map +1 -0
- package/dist/inputs/shared/utils/index.d.ts +5 -0
- package/dist/inputs/shared/utils/index.d.ts.map +1 -0
- package/dist/inputs/shared/validation/index.cjs +2 -0
- package/dist/inputs/shared/validation/index.cjs.map +1 -0
- package/dist/inputs/shared/validation/index.d.ts +14 -0
- package/dist/inputs/shared/validation/index.d.ts.map +1 -0
- package/dist/inputs/shared/validation/index.js +13 -0
- package/dist/inputs/shared/validation/index.js.map +1 -0
- package/dist/inputs/slider/slider.css?inline.cjs +2 -0
- package/dist/inputs/slider/slider.css?inline.cjs.map +1 -0
- package/dist/inputs/slider/slider.css?inline.js +6 -0
- package/dist/inputs/slider/slider.css?inline.js.map +1 -0
- package/dist/inputs/slider/slider.d.ts +82 -0
- package/dist/inputs/slider/slider.d.ts.map +1 -0
- package/dist/inputs/switch/switch.css?inline.cjs +2 -0
- package/dist/inputs/switch/switch.css?inline.cjs.map +1 -0
- package/dist/inputs/switch/switch.css?inline.js +6 -0
- package/dist/inputs/switch/switch.css?inline.js.map +1 -0
- package/dist/inputs/switch/switch.d.ts +40 -0
- package/dist/inputs/switch/switch.d.ts.map +1 -0
- package/dist/inputs/textarea/textarea.css?inline.cjs +2 -0
- package/dist/inputs/textarea/textarea.css?inline.cjs.map +1 -0
- package/dist/inputs/textarea/textarea.css?inline.js +6 -0
- package/dist/inputs/textarea/textarea.css?inline.js.map +1 -0
- package/dist/inputs/textarea/textarea.d.ts +57 -0
- package/dist/inputs/textarea/textarea.d.ts.map +1 -0
- package/dist/layout/box/box.css?inline.cjs +2 -0
- package/dist/layout/box/box.css?inline.cjs.map +1 -0
- package/dist/layout/box/box.css?inline.js +6 -0
- package/dist/layout/box/box.css?inline.js.map +1 -0
- package/dist/layout/box/box.d.ts +52 -0
- package/dist/layout/box/box.d.ts.map +1 -0
- package/dist/layout/grid/grid.css?inline.cjs +2 -0
- package/dist/layout/grid/grid.css?inline.cjs.map +1 -0
- package/dist/layout/grid/grid.css?inline.js +6 -0
- package/dist/layout/grid/grid.css?inline.js.map +1 -0
- package/dist/layout/grid/grid.d.ts +105 -0
- package/dist/layout/grid/grid.d.ts.map +1 -0
- package/dist/layout/grid-item/grid-item.css?inline.cjs +2 -0
- package/dist/layout/grid-item/grid-item.css?inline.cjs.map +1 -0
- package/dist/layout/grid-item/grid-item.css?inline.js +6 -0
- package/dist/layout/grid-item/grid-item.css?inline.js.map +1 -0
- package/dist/layout/grid-item/grid-item.d.ts +47 -0
- package/dist/layout/grid-item/grid-item.d.ts.map +1 -0
- package/dist/layout/index.cjs +1 -0
- package/dist/layout/index.d.ts +9 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +4 -0
- package/dist/layout/sidebar/sidebar-group.css?inline.cjs +2 -0
- package/dist/layout/sidebar/sidebar-group.css?inline.cjs.map +1 -0
- package/dist/layout/sidebar/sidebar-group.css?inline.js +6 -0
- package/dist/layout/sidebar/sidebar-group.css?inline.js.map +1 -0
- package/dist/layout/sidebar/sidebar-item.css?inline.cjs +2 -0
- package/dist/layout/sidebar/sidebar-item.css?inline.cjs.map +1 -0
- package/dist/layout/sidebar/sidebar-item.css?inline.js +6 -0
- package/dist/layout/sidebar/sidebar-item.css?inline.js.map +1 -0
- package/dist/layout/sidebar/sidebar.css?inline.cjs +2 -0
- package/dist/layout/sidebar/sidebar.css?inline.cjs.map +1 -0
- package/dist/layout/sidebar/sidebar.css?inline.js +6 -0
- package/dist/layout/sidebar/sidebar.css?inline.js.map +1 -0
- package/dist/layout/sidebar/sidebar.d.ts +190 -0
- package/dist/layout/sidebar/sidebar.d.ts.map +1 -0
- package/dist/menu.cjs +133 -0
- package/dist/menu.cjs.map +1 -0
- package/dist/menu.js +296 -0
- package/dist/menu.js.map +1 -0
- package/dist/number-input.cjs +55 -0
- package/dist/number-input.cjs.map +1 -0
- package/dist/number-input.js +158 -0
- package/dist/number-input.js.map +1 -0
- package/dist/otp-input.cjs +22 -0
- package/dist/otp-input.cjs.map +1 -0
- package/dist/otp-input.js +120 -0
- package/dist/otp-input.js.map +1 -0
- package/dist/overlay/dialog/dialog.css?inline.cjs +2 -0
- package/dist/overlay/dialog/dialog.css?inline.cjs.map +1 -0
- package/dist/overlay/dialog/dialog.css?inline.js +6 -0
- package/dist/overlay/dialog/dialog.css?inline.js.map +1 -0
- package/dist/overlay/dialog/dialog.d.ts +98 -0
- package/dist/overlay/dialog/dialog.d.ts.map +1 -0
- package/dist/overlay/drawer/drawer.css?inline.cjs +2 -0
- package/dist/overlay/drawer/drawer.css?inline.cjs.map +1 -0
- package/dist/overlay/drawer/drawer.css?inline.js +6 -0
- package/dist/overlay/drawer/drawer.css?inline.js.map +1 -0
- package/dist/overlay/drawer/drawer.d.ts +98 -0
- package/dist/overlay/drawer/drawer.d.ts.map +1 -0
- package/dist/overlay/index.cjs +1 -0
- package/dist/overlay/index.d.ts +11 -0
- package/dist/overlay/index.d.ts.map +1 -0
- package/dist/overlay/index.js +5 -0
- package/dist/overlay/menu/menu.css?inline.cjs +2 -0
- package/dist/overlay/menu/menu.css?inline.cjs.map +1 -0
- package/dist/overlay/menu/menu.css?inline.js +6 -0
- package/dist/overlay/menu/menu.css?inline.js.map +1 -0
- package/dist/overlay/menu/menu.d.ts +45 -0
- package/dist/overlay/menu/menu.d.ts.map +1 -0
- package/dist/overlay/popover/popover.css?inline.cjs +2 -0
- package/dist/overlay/popover/popover.css?inline.cjs.map +1 -0
- package/dist/overlay/popover/popover.css?inline.js +6 -0
- package/dist/overlay/popover/popover.css?inline.js.map +1 -0
- package/dist/overlay/popover/popover.d.ts +56 -0
- package/dist/overlay/popover/popover.d.ts.map +1 -0
- package/dist/overlay/tooltip/tooltip.css?inline.cjs +2 -0
- package/dist/overlay/tooltip/tooltip.css?inline.cjs.map +1 -0
- package/dist/overlay/tooltip/tooltip.css?inline.js +6 -0
- package/dist/overlay/tooltip/tooltip.css?inline.js.map +1 -0
- package/dist/overlay/tooltip/tooltip.d.ts +55 -0
- package/dist/overlay/tooltip/tooltip.d.ts.map +1 -0
- package/dist/pagination.cjs +102 -0
- package/dist/pagination.cjs.map +1 -0
- package/dist/pagination.js +168 -0
- package/dist/pagination.js.map +1 -0
- package/dist/popover.cjs +16 -0
- package/dist/popover.cjs.map +1 -0
- package/dist/popover.js +110 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress.cjs +51 -0
- package/dist/progress.cjs.map +1 -0
- package/dist/progress.js +90 -0
- package/dist/progress.js.map +1 -0
- package/dist/radio-group.cjs +20 -0
- package/dist/radio-group.cjs.map +1 -0
- package/dist/radio-group.js +104 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/radio.cjs +16 -0
- package/dist/radio.cjs.map +1 -0
- package/dist/radio.js +135 -0
- package/dist/radio.js.map +1 -0
- package/dist/rating.cjs +37 -0
- package/dist/rating.cjs.map +1 -0
- package/dist/rating.js +123 -0
- package/dist/rating.js.map +1 -0
- package/dist/select.cjs +77 -0
- package/dist/select.cjs.map +1 -0
- package/dist/select.js +317 -0
- package/dist/select.js.map +1 -0
- package/dist/separator.cjs +26 -0
- package/dist/separator.cjs.map +1 -0
- package/dist/separator.js +46 -0
- package/dist/separator.js.map +1 -0
- package/dist/sidebar.cjs +69 -0
- package/dist/sidebar.cjs.map +1 -0
- package/dist/sidebar.js +202 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/skeleton.cjs +10 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.js +56 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.cjs +24 -0
- package/dist/slider.cjs.map +1 -0
- package/dist/slider.js +209 -0
- package/dist/slider.js.map +1 -0
- package/dist/stateit/dist/computed.cjs +2 -0
- package/dist/stateit/dist/computed.cjs.map +1 -0
- package/dist/stateit/dist/computed.js +65 -0
- package/dist/stateit/dist/computed.js.map +1 -0
- package/dist/stateit/dist/effect.cjs +2 -0
- package/dist/stateit/dist/effect.cjs.map +1 -0
- package/dist/stateit/dist/effect.js +53 -0
- package/dist/stateit/dist/effect.js.map +1 -0
- package/dist/stateit/dist/index.cjs +1 -0
- package/dist/stateit/dist/index.js +5 -0
- package/dist/stateit/dist/runtime.cjs +2 -0
- package/dist/stateit/dist/runtime.cjs.map +1 -0
- package/dist/stateit/dist/runtime.js +43 -0
- package/dist/stateit/dist/runtime.js.map +1 -0
- package/dist/stateit/dist/signal.cjs +2 -0
- package/dist/stateit/dist/signal.cjs.map +1 -0
- package/dist/stateit/dist/signal.js +27 -0
- package/dist/stateit/dist/signal.js.map +1 -0
- package/dist/stateit/dist/store.cjs +2 -0
- package/dist/stateit/dist/store.cjs.map +1 -0
- package/dist/stateit/dist/store.js +17 -0
- package/dist/stateit/dist/store.js.map +1 -0
- package/dist/stateit/dist/types.cjs +2 -0
- package/dist/stateit/dist/types.cjs.map +1 -0
- package/dist/stateit/dist/types.js +6 -0
- package/dist/stateit/dist/types.js.map +1 -0
- package/dist/styles/animation.css +87 -0
- package/dist/styles/index.cjs +2 -0
- package/dist/styles/index.cjs.map +1 -0
- package/dist/styles/index.d.ts +48 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +26 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/layer.css +18 -0
- package/dist/styles/mixins/accessibility.css.cjs +15 -0
- package/dist/styles/mixins/accessibility.css.cjs.map +1 -0
- package/dist/styles/mixins/accessibility.css.d.ts +46 -0
- package/dist/styles/mixins/accessibility.css.d.ts.map +1 -0
- package/dist/styles/mixins/accessibility.css.js +20 -0
- package/dist/styles/mixins/accessibility.css.js.map +1 -0
- package/dist/styles/mixins/animation.css.cjs +71 -0
- package/dist/styles/mixins/animation.css.cjs.map +1 -0
- package/dist/styles/mixins/animation.css.d.ts +22 -0
- package/dist/styles/mixins/animation.css.d.ts.map +1 -0
- package/dist/styles/mixins/animation.css.js +90 -0
- package/dist/styles/mixins/animation.css.js.map +1 -0
- package/dist/styles/mixins/shape.css.cjs +72 -0
- package/dist/styles/mixins/shape.css.cjs.map +1 -0
- package/dist/styles/mixins/shape.css.d.ts +97 -0
- package/dist/styles/mixins/shape.css.d.ts.map +1 -0
- package/dist/styles/mixins/shape.css.js +104 -0
- package/dist/styles/mixins/shape.css.js.map +1 -0
- package/dist/styles/mixins/states.css.cjs +18 -0
- package/dist/styles/mixins/states.css.cjs.map +1 -0
- package/dist/styles/mixins/states.css.d.ts +61 -0
- package/dist/styles/mixins/states.css.d.ts.map +1 -0
- package/dist/styles/mixins/states.css.js +26 -0
- package/dist/styles/mixins/states.css.js.map +1 -0
- package/dist/styles/mixins/theme.css.cjs +146 -0
- package/dist/styles/mixins/theme.css.cjs.map +1 -0
- package/dist/styles/mixins/theme.css.d.ts +93 -0
- package/dist/styles/mixins/theme.css.d.ts.map +1 -0
- package/dist/styles/mixins/theme.css.js +151 -0
- package/dist/styles/mixins/theme.css.js.map +1 -0
- package/dist/styles/mixins/variants.css.cjs +84 -0
- package/dist/styles/mixins/variants.css.cjs.map +1 -0
- package/dist/styles/mixins/variants.css.d.ts +22 -0
- package/dist/styles/mixins/variants.css.d.ts.map +1 -0
- package/dist/styles/mixins/variants.css.js +89 -0
- package/dist/styles/mixins/variants.css.js.map +1 -0
- package/dist/styles/preflight.css +237 -0
- package/dist/styles/styles.css +5 -0
- package/dist/styles/theme.css +457 -0
- package/dist/switch.cjs +16 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.js +82 -0
- package/dist/switch.js.map +1 -0
- package/dist/tab-item.cjs +17 -0
- package/dist/tab-item.cjs.map +1 -0
- package/dist/tab-item.js +57 -0
- package/dist/tab-item.js.map +1 -0
- package/dist/tab-panel.cjs +14 -0
- package/dist/tab-panel.cjs.map +1 -0
- package/dist/tab-panel.js +51 -0
- package/dist/tab-panel.js.map +1 -0
- package/dist/table.cjs +2 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.js +101 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.cjs +17 -0
- package/dist/tabs.cjs.map +1 -0
- package/dist/tabs.js +98 -0
- package/dist/tabs.js.map +1 -0
- package/dist/text.cjs +2 -0
- package/dist/text.cjs.map +1 -0
- package/dist/text.js +30 -0
- package/dist/text.js.map +1 -0
- package/dist/textarea.cjs +16 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.js +122 -0
- package/dist/textarea.js.map +1 -0
- package/dist/toast.cjs +63 -0
- package/dist/toast.cjs.map +1 -0
- package/dist/toast.js +221 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.cjs +15 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.js +111 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/shared.d.ts +120 -0
- package/dist/types/shared.d.ts.map +1 -0
- package/dist/utils/animation.cjs +2 -0
- package/dist/utils/animation.cjs.map +1 -0
- package/dist/utils/animation.d.ts +2 -0
- package/dist/utils/animation.d.ts.map +1 -0
- package/dist/utils/animation.js +29 -0
- package/dist/utils/animation.js.map +1 -0
- package/dist/utils/background-lock.cjs +2 -0
- package/dist/utils/background-lock.cjs.map +1 -0
- package/dist/utils/background-lock.d.ts +20 -0
- package/dist/utils/background-lock.d.ts.map +1 -0
- package/dist/utils/background-lock.js +21 -0
- package/dist/utils/background-lock.js.map +1 -0
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/use-overlay.cjs +2 -0
- package/dist/utils/use-overlay.cjs.map +1 -0
- package/dist/utils/use-overlay.d.ts +26 -0
- package/dist/utils/use-overlay.d.ts.map +1 -0
- package/dist/utils/use-overlay.js +34 -0
- package/dist/utils/use-overlay.js.map +1 -0
- package/dist/virtualit/dist/dom/dom.cjs +2 -0
- package/dist/virtualit/dist/dom/dom.cjs.map +1 -0
- package/dist/virtualit/dist/dom/dom.js +47 -0
- package/dist/virtualit/dist/dom/dom.js.map +1 -0
- package/dist/virtualit/dist/dom.cjs +1 -0
- package/dist/virtualit/dist/dom.js +2 -0
- package/dist/virtualit/dist/virtualit.cjs +2 -0
- package/dist/virtualit/dist/virtualit.cjs.map +1 -0
- package/dist/virtualit/dist/virtualit.js +129 -0
- package/dist/virtualit/dist/virtualit.js.map +1 -0
- package/package.json +282 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.css?inline.js","names":[],"sources":["../../../src/overlay/menu/menu.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_menu-panel-bg: var(\n --menu-panel-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_menu-panel-border-color: var(\n --menu-panel-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_menu-panel-blur: var(--menu-panel-blur, var(--blur-md));\n --_menu-panel-shadow: var(--menu-panel-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n /* ========================================\n Menu Panel\n ======================================== */\n\n .menu-panel {\n position: fixed;\n inset-inline-start: 0;\n top: 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n visibility: hidden;\n min-width: var(--menu-panel-min-width, 10rem);\n padding: var(--size-1);\n margin: 0;\n pointer-events: none;\n background: var(--_menu-panel-bg);\n border: var(--border) solid var(--_menu-panel-border-color);\n border-radius: var(--menu-panel-radius, var(--rounded-lg));\n box-shadow: var(--_menu-panel-shadow);\n opacity: 0;\n backdrop-filter: blur(var(--_menu-panel-blur));\n transform: translateY(-4px) scale(0.97);\n transform-origin: top;\n transition:\n opacity var(--transition-fast),\n transform var(--transition-fast),\n visibility var(--transition-fast);\n }\n\n .menu-panel[data-open] {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n /* ========================================\n Menu Items (slotted bit-menu-item)\n ======================================== */\n\n ::slotted(bit-menu-item) {\n display: block;\n }\n\n ::slotted(bit-menu-separator) {\n display: block;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type OverlayOpenReason, type OverlayCloseReason } from '@vielzeug/craftit/labs';
|
|
2
|
+
import type { AddEventListeners, ComponentSize, ThemeColor } from '../../types';
|
|
3
|
+
export interface MenuSelectDetail {
|
|
4
|
+
value: string;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export type BitMenuItemType = 'checkbox' | 'radio';
|
|
8
|
+
export type BitMenuEvents = {
|
|
9
|
+
close: {
|
|
10
|
+
reason: OverlayCloseReason;
|
|
11
|
+
};
|
|
12
|
+
open: {
|
|
13
|
+
reason: OverlayOpenReason;
|
|
14
|
+
};
|
|
15
|
+
select: MenuSelectDetail;
|
|
16
|
+
};
|
|
17
|
+
export type BitMenuItemProps = {
|
|
18
|
+
checked?: boolean;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
type?: BitMenuItemType;
|
|
21
|
+
value?: string;
|
|
22
|
+
};
|
|
23
|
+
export type BitMenuProps = {
|
|
24
|
+
color?: ThemeColor;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
placement?: 'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end';
|
|
27
|
+
size?: ComponentSize;
|
|
28
|
+
};
|
|
29
|
+
export declare const MENU_ITEM_TAG: string;
|
|
30
|
+
export declare const SEPARATOR_TAG: string;
|
|
31
|
+
/**
|
|
32
|
+
* `bit-menu` — Action dropdown menu triggered by a slotted trigger element.
|
|
33
|
+
* Nest `<bit-menu-item>` elements inside for menu options.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```html
|
|
37
|
+
* <bit-menu>
|
|
38
|
+
* <button slot="trigger">Actions</button>
|
|
39
|
+
* <bit-menu-item value="edit">Edit</bit-menu-item>
|
|
40
|
+
* <bit-menu-item value="delete">Delete</bit-menu-item>
|
|
41
|
+
* </bit-menu>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare const MENU_TAG: AddEventListeners<BitMenuEvents>;
|
|
45
|
+
//# sourceMappingURL=menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/overlay/menu/menu.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACpC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IACvF,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAkBF,eAAO,MAAM,aAAa,QAoJxB,CAAC;AAMH,eAAO,MAAM,aAAa,QAaxB,CAAC;AAMH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAmOJ,iBAAiB,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`@layer buildit.base{:host{--_panel-bg:var(--popover-bg,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-50) 85%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 85%, transparent)));--_panel-blur:var(--popover-panel-blur,var(--blur-md));--_panel-border-color:var(--popover-border-color,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 8%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 8%, transparent)));--_panel-shadow:var(--popover-shadow,var(--shadow-xl));display:inline-block;position:relative}.panel{inset:unset;box-sizing:border-box;min-width:var(--popover-min-width,12rem);max-width:var(--popover-max-width,24rem);max-height:var(--popover-max-height,min(70vh, 32rem));word-break:auto-phrase;overflow-wrap:anywhere;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transform:scale(.96) translateY(var(--size-2));transition:var(--_motion-transition,opacity var(--transition-fast), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete);margin:0;padding:0;position:fixed;overflow:auto}.panel:popover-open{opacity:1;transform:scale(1)translateY(0)}@starting-style{.panel:popover-open{opacity:0;transform:scale(.96) translateY(var(--size-2))}}}`;exports.default=e;
|
|
2
|
+
//# sourceMappingURL=popover.css?inline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.css?inline.cjs","names":[],"sources":["../../../src/overlay/popover/popover.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_panel-bg: var(\n --popover-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_panel-blur: var(--popover-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --popover-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_panel-shadow: var(--popover-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n .panel {\n position: fixed;\n\n /* Popover UA resets */\n inset: unset;\n box-sizing: border-box;\n min-width: var(--popover-min-width, 12rem);\n max-width: var(--popover-max-width, 24rem);\n max-height: var(--popover-max-height, min(70vh, 32rem));\n padding: 0;\n margin: 0;\n overflow: auto;\n word-break: auto-phrase;\n overflow-wrap: anywhere;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--rounded-lg);\n box-shadow: var(--_panel-shadow);\n\n /* Hidden by default */\n opacity: 0;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(0.96) translateY(var(--size-2));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete\n );\n }\n\n .panel:popover-open {\n opacity: 1;\n transform: scale(1) translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/overlay/popover/popover.css?inline
|
|
2
|
+
var e = "@layer buildit.base{:host{--_panel-bg:var(--popover-bg,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-50) 85%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 85%, transparent)));--_panel-blur:var(--popover-panel-blur,var(--blur-md));--_panel-border-color:var(--popover-border-color,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 8%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 8%, transparent)));--_panel-shadow:var(--popover-shadow,var(--shadow-xl));display:inline-block;position:relative}.panel{inset:unset;box-sizing:border-box;min-width:var(--popover-min-width,12rem);max-width:var(--popover-max-width,24rem);max-height:var(--popover-max-height,min(70vh, 32rem));word-break:auto-phrase;overflow-wrap:anywhere;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transform:scale(.96) translateY(var(--size-2));transition:var(--_motion-transition,opacity var(--transition-fast), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete);margin:0;padding:0;position:fixed;overflow:auto}.panel:popover-open{opacity:1;transform:scale(1)translateY(0)}@starting-style{.panel:popover-open{opacity:0;transform:scale(.96) translateY(var(--size-2))}}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=popover.css?inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.css?inline.js","names":[],"sources":["../../../src/overlay/popover/popover.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_panel-bg: var(\n --popover-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_panel-blur: var(--popover-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --popover-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_panel-shadow: var(--popover-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n .panel {\n position: fixed;\n\n /* Popover UA resets */\n inset: unset;\n box-sizing: border-box;\n min-width: var(--popover-min-width, 12rem);\n max-width: var(--popover-max-width, 24rem);\n max-height: var(--popover-max-height, min(70vh, 32rem));\n padding: 0;\n margin: 0;\n overflow: auto;\n word-break: auto-phrase;\n overflow-wrap: anywhere;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--rounded-lg);\n box-shadow: var(--_panel-shadow);\n\n /* Hidden by default */\n opacity: 0;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(0.96) translateY(var(--size-2));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete\n );\n }\n\n .panel:popover-open {\n opacity: 1;\n transform: scale(1) translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Placement } from '@vielzeug/floatit';
|
|
2
|
+
export type PopoverTrigger = 'click' | 'hover' | 'focus';
|
|
3
|
+
export type BitPopoverEvents = {
|
|
4
|
+
/** Emitted when the popover closes */
|
|
5
|
+
close: undefined;
|
|
6
|
+
/** Emitted when the popover opens */
|
|
7
|
+
open: undefined;
|
|
8
|
+
};
|
|
9
|
+
/** Popover component properties */
|
|
10
|
+
export type BitPopoverProps = {
|
|
11
|
+
/** Disable the popover */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Accessible label for the panel */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Gap between trigger and panel in px */
|
|
16
|
+
offset?: number;
|
|
17
|
+
/** Controlled open state */
|
|
18
|
+
open?: boolean;
|
|
19
|
+
/** Preferred placement relative to the trigger */
|
|
20
|
+
placement?: Placement;
|
|
21
|
+
/** Which trigger(s) open/close the popover — comma-separated */
|
|
22
|
+
trigger?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A floating informational or interactive panel anchored to a trigger element.
|
|
26
|
+
* Unlike tooltips, popovers support arbitrary interactive content via slots.
|
|
27
|
+
*
|
|
28
|
+
* @element bit-popover
|
|
29
|
+
*
|
|
30
|
+
* @attr {string} placement - Preferred placement (default: 'bottom')
|
|
31
|
+
* @attr {string} trigger - 'click' | 'hover' | 'focus' or comma-separated (default: 'click')
|
|
32
|
+
* @attr {boolean} open - Controlled open state
|
|
33
|
+
* @attr {number} offset - Gap in px between trigger and panel (default: 8)
|
|
34
|
+
* @attr {boolean} disabled - Disables the popover
|
|
35
|
+
* @attr {string} label - aria-label on the panel
|
|
36
|
+
*
|
|
37
|
+
* @slot - The trigger element
|
|
38
|
+
* @slot content - Panel content
|
|
39
|
+
*
|
|
40
|
+
* @fires open - When the panel opens
|
|
41
|
+
* @fires close - When the panel closes
|
|
42
|
+
*
|
|
43
|
+
* @cssprop --popover-min-width - Min width of the panel
|
|
44
|
+
* @cssprop --popover-max-width - Max width of the panel
|
|
45
|
+
* @cssprop --popover-max-height - Max height of the panel
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```html
|
|
49
|
+
* <bit-popover>
|
|
50
|
+
* <button>Open</button>
|
|
51
|
+
* <div slot="content">Panel content here</div>
|
|
52
|
+
* </bit-popover>
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare const POPOVER_TAG: string;
|
|
56
|
+
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/overlay/popover/popover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAOnD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAiBzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sCAAsC;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,qCAAqC;IACrC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,WAAW,QAiNtB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`.tooltip{inset:unset;padding:var(--size-1-5) var(--size-3);border:var(--_tooltip-border-width,var(--border-0)) solid var(--_tooltip-border-color,transparent);transform-origin:50%;will-change:opacity, transform, filter;margin:0;overflow:visible}@layer buildit.base{:host{display:inline-block;position:relative}.tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-100))var(--lightningcss-dark,var(--color-contrast-900));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 80%, transparent));--_tooltip-border-width:var(--border);--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 12%, transparent));--_tooltip-shadow:var(--shadow-md);--_tooltip-closed-transform:translateY(var(--size-1)) scale(.98);max-width:var(--tooltip-max-width,var(--size-72));font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-snug);color:var(--_tooltip-fg);word-break:auto-phrase;white-space:pre-line;pointer-events:none;background:var(--_tooltip-bg);border-radius:var(--rounded);box-shadow:var(--_tooltip-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));transform:var(--_tooltip-closed-transform);transition:opacity var(--transition-fast), transform var(--transition-normal) var(--ease-out), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete;position:fixed}.tooltip[data-placement=top]{--_tooltip-closed-transform:translateY(var(--size-2)) scale(.96)}.tooltip[data-placement=bottom]{--_tooltip-closed-transform:translateY(calc(var(--size-2) * -1)) scale(.96)}.tooltip[data-placement=left]{--_tooltip-closed-transform:translateX(var(--size-2)) scale(.96)}.tooltip[data-placement=right]{--_tooltip-closed-transform:translateX(calc(var(--size-2) * -1)) scale(.96)}.tooltip:popover-open{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-spring), display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;transform:translate(0)scale(1)}@starting-style{.tooltip:popover-open{opacity:0;transform:var(--_tooltip-closed-transform)}}}@layer buildit.variants{:host([variant=light]) .tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-900))var(--lightningcss-dark,var(--color-contrast-100));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 80%, transparent));--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 12%, transparent));--_tooltip-shadow:var(--shadow-md)}}@layer buildit.utilities{:host([size=sm]) .tooltip{font-size:var(--text-xs)}:host([size=lg]) .tooltip{font-size:var(--text-base)}}`;exports.default=e;
|
|
2
|
+
//# sourceMappingURL=tooltip.css?inline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.css?inline.cjs","names":[],"sources":["../../../src/overlay/tooltip/tooltip.css?inline"],"sourcesContent":["/* ========================================\n Popover UA resets — unlayered so they unconditionally beat\n the browser's [popover] UA stylesheet (padding / inset / border / margin).\n Must NOT be inside @layer; unlayered author rules win over every layer and\n every UA default.\n ======================================== */\n.tooltip {\n inset: unset;\n padding: var(--size-1-5) var(--size-3);\n margin: 0;\n overflow: visible;\n border: var(--_tooltip-border-width, var(--border-0)) solid var(--_tooltip-border-color, transparent);\n transform-origin: center;\n will-change: opacity, transform, filter;\n}\n\n@layer buildit.base {\n :host {\n position: relative;\n display: inline-block;\n }\n\n .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-100), var(--color-contrast-900));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent)\n );\n --_tooltip-border-width: var(--border);\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n --_tooltip-closed-transform: translateY(var(--size-1)) scale(0.98);\n\n /* Positioning — JS sets top/left inline */\n position: fixed;\n max-width: var(--tooltip-max-width, var(--size-72));\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n line-height: var(--leading-snug);\n color: var(--_tooltip-fg);\n word-break: auto-phrase;\n white-space: pre-line;\n pointer-events: none;\n background: var(--_tooltip-bg);\n border-radius: var(--rounded);\n box-shadow: var(--_tooltip-shadow);\n\n /* Hidden by default (also serves as exit state) */\n opacity: 0;\n backdrop-filter: blur(var(--blur-sm));\n transform: var(--_tooltip-closed-transform);\n transition:\n opacity var(--transition-fast),\n transform var(--transition-normal) var(--ease-out),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete;\n }\n\n .tooltip[data-placement='top'] {\n --_tooltip-closed-transform: translateY(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='bottom'] {\n --_tooltip-closed-transform: translateY(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n .tooltip[data-placement='left'] {\n --_tooltip-closed-transform: translateX(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='right'] {\n --_tooltip-closed-transform: translateX(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n /* Entry animation via @starting-style */\n .tooltip:popover-open {\n opacity: 1;\n transform: translate(0, 0) scale(1);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-spring),\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n\n @starting-style {\n opacity: 0;\n transform: var(--_tooltip-closed-transform);\n }\n }\n}\n\n@layer buildit.variants {\n /* Light tooltip */\n :host([variant='light']) .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-900), var(--color-contrast-100));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent)\n );\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) .tooltip {\n font-size: var(--text-xs);\n }\n\n :host([size='lg']) .tooltip {\n font-size: var(--text-base);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/overlay/tooltip/tooltip.css?inline
|
|
2
|
+
var e = ".tooltip{inset:unset;padding:var(--size-1-5) var(--size-3);border:var(--_tooltip-border-width,var(--border-0)) solid var(--_tooltip-border-color,transparent);transform-origin:50%;will-change:opacity, transform, filter;margin:0;overflow:visible}@layer buildit.base{:host{display:inline-block;position:relative}.tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-100))var(--lightningcss-dark,var(--color-contrast-900));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 80%, transparent));--_tooltip-border-width:var(--border);--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 12%, transparent));--_tooltip-shadow:var(--shadow-md);--_tooltip-closed-transform:translateY(var(--size-1)) scale(.98);max-width:var(--tooltip-max-width,var(--size-72));font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-snug);color:var(--_tooltip-fg);word-break:auto-phrase;white-space:pre-line;pointer-events:none;background:var(--_tooltip-bg);border-radius:var(--rounded);box-shadow:var(--_tooltip-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));transform:var(--_tooltip-closed-transform);transition:opacity var(--transition-fast), transform var(--transition-normal) var(--ease-out), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete;position:fixed}.tooltip[data-placement=top]{--_tooltip-closed-transform:translateY(var(--size-2)) scale(.96)}.tooltip[data-placement=bottom]{--_tooltip-closed-transform:translateY(calc(var(--size-2) * -1)) scale(.96)}.tooltip[data-placement=left]{--_tooltip-closed-transform:translateX(var(--size-2)) scale(.96)}.tooltip[data-placement=right]{--_tooltip-closed-transform:translateX(calc(var(--size-2) * -1)) scale(.96)}.tooltip:popover-open{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-spring), display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;transform:translate(0)scale(1)}@starting-style{.tooltip:popover-open{opacity:0;transform:var(--_tooltip-closed-transform)}}}@layer buildit.variants{:host([variant=light]) .tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-900))var(--lightningcss-dark,var(--color-contrast-100));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 80%, transparent));--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 12%, transparent));--_tooltip-shadow:var(--shadow-md)}}@layer buildit.utilities{:host([size=sm]) .tooltip{font-size:var(--text-xs)}:host([size=lg]) .tooltip{font-size:var(--text-base)}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=tooltip.css?inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.css?inline.js","names":[],"sources":["../../../src/overlay/tooltip/tooltip.css?inline"],"sourcesContent":["/* ========================================\n Popover UA resets — unlayered so they unconditionally beat\n the browser's [popover] UA stylesheet (padding / inset / border / margin).\n Must NOT be inside @layer; unlayered author rules win over every layer and\n every UA default.\n ======================================== */\n.tooltip {\n inset: unset;\n padding: var(--size-1-5) var(--size-3);\n margin: 0;\n overflow: visible;\n border: var(--_tooltip-border-width, var(--border-0)) solid var(--_tooltip-border-color, transparent);\n transform-origin: center;\n will-change: opacity, transform, filter;\n}\n\n@layer buildit.base {\n :host {\n position: relative;\n display: inline-block;\n }\n\n .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-100), var(--color-contrast-900));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent)\n );\n --_tooltip-border-width: var(--border);\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n --_tooltip-closed-transform: translateY(var(--size-1)) scale(0.98);\n\n /* Positioning — JS sets top/left inline */\n position: fixed;\n max-width: var(--tooltip-max-width, var(--size-72));\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n line-height: var(--leading-snug);\n color: var(--_tooltip-fg);\n word-break: auto-phrase;\n white-space: pre-line;\n pointer-events: none;\n background: var(--_tooltip-bg);\n border-radius: var(--rounded);\n box-shadow: var(--_tooltip-shadow);\n\n /* Hidden by default (also serves as exit state) */\n opacity: 0;\n backdrop-filter: blur(var(--blur-sm));\n transform: var(--_tooltip-closed-transform);\n transition:\n opacity var(--transition-fast),\n transform var(--transition-normal) var(--ease-out),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete;\n }\n\n .tooltip[data-placement='top'] {\n --_tooltip-closed-transform: translateY(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='bottom'] {\n --_tooltip-closed-transform: translateY(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n .tooltip[data-placement='left'] {\n --_tooltip-closed-transform: translateX(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='right'] {\n --_tooltip-closed-transform: translateX(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n /* Entry animation via @starting-style */\n .tooltip:popover-open {\n opacity: 1;\n transform: translate(0, 0) scale(1);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-spring),\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n\n @starting-style {\n opacity: 0;\n transform: var(--_tooltip-closed-transform);\n }\n }\n}\n\n@layer buildit.variants {\n /* Light tooltip */\n :host([variant='light']) .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-900), var(--color-contrast-100));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent)\n );\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) .tooltip {\n font-size: var(--text-xs);\n }\n\n :host([size='lg']) .tooltip {\n font-size: var(--text-base);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ComponentSize } from '../../types';
|
|
2
|
+
type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
3
|
+
/** Tooltip component properties */
|
|
4
|
+
export type BitTooltipProps = {
|
|
5
|
+
/** Hide delay in ms (useful to keep tooltip open when moving focus between trigger and tooltip) */
|
|
6
|
+
'close-delay'?: number;
|
|
7
|
+
/** Tooltip text content */
|
|
8
|
+
content?: string;
|
|
9
|
+
/** Show delay in ms */
|
|
10
|
+
delay?: number;
|
|
11
|
+
/** Disable the tooltip */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Controlled open state. When provided, the tooltip acts as a controlled component and ignores trigger events for open/close. */
|
|
14
|
+
open?: boolean;
|
|
15
|
+
/** Preferred placement relative to trigger */
|
|
16
|
+
placement?: TooltipPlacement;
|
|
17
|
+
/** Tooltip size */
|
|
18
|
+
size?: ComponentSize;
|
|
19
|
+
/** Which trigger(s) show/hide the tooltip — comma-separated if multiple, e.g. "hover,focus" */
|
|
20
|
+
trigger?: string;
|
|
21
|
+
/** Visual variant: 'dark' (default) or 'light' */
|
|
22
|
+
variant?: 'dark' | 'light';
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A lightweight tooltip shown on hover/focus/click relative to the slotted trigger.
|
|
26
|
+
*
|
|
27
|
+
* @element bit-tooltip
|
|
28
|
+
*
|
|
29
|
+
* @attr {string} content - Tooltip text content
|
|
30
|
+
* @attr {string} placement - 'top' | 'bottom' | 'left' | 'right' (default: 'top')
|
|
31
|
+
* @attr {string} trigger - 'hover' | 'focus' | 'click' or comma-separated combination
|
|
32
|
+
* @attr {number} delay - Show delay in milliseconds (default: 0)
|
|
33
|
+
* @attr {string} size - Size: 'sm' | 'md' | 'lg'
|
|
34
|
+
* @attr {string} variant - 'dark' (default) | 'light'
|
|
35
|
+
* @attr {boolean} disabled - Disable the tooltip
|
|
36
|
+
*
|
|
37
|
+
* @slot - Trigger element that the tooltip is anchored to
|
|
38
|
+
* @slot content - Complex tooltip content (overrides the `content` attribute)
|
|
39
|
+
*
|
|
40
|
+
* @cssprop --tooltip-max-width - Max width of the tooltip bubble
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```html
|
|
44
|
+
* <bit-tooltip content="Copy to clipboard">
|
|
45
|
+
* <button>Copy</button>
|
|
46
|
+
* </bit-tooltip>
|
|
47
|
+
*
|
|
48
|
+
* <bit-tooltip placement="right" trigger="focus,hover" content="Required field">
|
|
49
|
+
* <input type="text" />
|
|
50
|
+
* </bit-tooltip>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const TOOLTIP_TAG: string;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/overlay/tooltip/tooltip.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,KAAK,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAQ5D,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG;IAC5B,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kIAAkI;IAClI,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,QA6OtB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./styles/mixins/accessibility.css.cjs`),t=require(`./styles/mixins/shape.css.cjs`),n=require(`./styles/mixins/theme.css.cjs`);require(`./styles/index.cjs`);const r=require(`./craftit/dist/directives/each.cjs`);require(`./craftit/dist/directives/index.cjs`),require(`./button.cjs`);const i=require(`./content/pagination/pagination.css?inline.cjs`);let a=require(`@vielzeug/craftit`);function o(e,t,n){let r=t,i=[];if(r<=2+2*n+3)return Array.from({length:r},(e,t)=>t+1);let a=Math.max(e-n,2),o=Math.min(e+n,r-1);i.push(1),a>3?i.push(`ellipsis-start`):a===3&&i.push(2);for(let e=a;e<=o;e++)i.push(e);return o<r-1-1?i.push(`ellipsis-end`):o===r-1-1&&i.push(r-1),i.push(r),i}var s=(0,a.defineComponent)({props:{color:{default:void 0},label:{default:`Pagination`},page:{default:1},"show-first-last":{default:!1,type:Boolean},"show-prev-next":{default:!1,type:Boolean},siblings:{default:1},size:{default:void 0},"total-pages":{default:1},variant:{default:void 0}},setup({emit:e,host:t,props:n}){function i(r){let i=Number(n[`total-pages`].value)||1,a=Math.min(Math.max(1,r),i);a!==Number(n.page.value)&&(t.setAttribute(`page`,String(a)),e(`change`,{page:a}))}function s(e){let t=e.target?.closest(`[part="page-btn"]`);if(!t)return;let n=t.getAttribute(`aria-label`);if(!n)return;let r=n.match(/\d+/);r&&i(Number(r[0]))}let c=(0,a.computed)(()=>o(Number(n.page.value)||1,Number(n[`total-pages`].value)||1,Number(n.siblings.value)??1)),l=(0,a.computed)(()=>(Number(n.page.value)||1)<=1),u=(0,a.computed)(()=>(Number(n.page.value)||1)>=(Number(n[`total-pages`].value)||1));return a.html`
|
|
2
|
+
<nav :aria-label="${()=>n.label.value}" part="nav" @click=${s}>
|
|
3
|
+
<ol class="pagination" part="list">
|
|
4
|
+
${()=>n[`show-first-last`].value?a.html`<li>
|
|
5
|
+
<button
|
|
6
|
+
type="button"
|
|
7
|
+
class="nav-btn"
|
|
8
|
+
part="first-btn"
|
|
9
|
+
aria-label="First page"
|
|
10
|
+
?disabled=${()=>l.value}
|
|
11
|
+
@click=${()=>i(1)}>
|
|
12
|
+
<svg
|
|
13
|
+
width="16"
|
|
14
|
+
height="16"
|
|
15
|
+
viewBox="0 0 24 24"
|
|
16
|
+
fill="none"
|
|
17
|
+
stroke="currentColor"
|
|
18
|
+
stroke-width="2"
|
|
19
|
+
stroke-linecap="round"
|
|
20
|
+
stroke-linejoin="round"
|
|
21
|
+
aria-hidden="true">
|
|
22
|
+
<polyline points="11 17 6 12 11 7" />
|
|
23
|
+
<polyline points="18 17 13 12 18 7" />
|
|
24
|
+
</svg>
|
|
25
|
+
</button>
|
|
26
|
+
</li>`:``}
|
|
27
|
+
${()=>n[`show-prev-next`].value?a.html`<li>
|
|
28
|
+
<button
|
|
29
|
+
type="button"
|
|
30
|
+
class="nav-btn"
|
|
31
|
+
part="prev-btn"
|
|
32
|
+
aria-label="Previous page"
|
|
33
|
+
?disabled=${()=>l.value}
|
|
34
|
+
@click=${()=>i((Number(n.page.value)||1)-1)}>
|
|
35
|
+
<svg
|
|
36
|
+
width="16"
|
|
37
|
+
height="16"
|
|
38
|
+
viewBox="0 0 24 24"
|
|
39
|
+
fill="none"
|
|
40
|
+
stroke="currentColor"
|
|
41
|
+
stroke-width="2"
|
|
42
|
+
stroke-linecap="round"
|
|
43
|
+
stroke-linejoin="round"
|
|
44
|
+
aria-hidden="true">
|
|
45
|
+
<polyline points="15 18 9 12 15 6" />
|
|
46
|
+
</svg>
|
|
47
|
+
</button>
|
|
48
|
+
</li>`:``}
|
|
49
|
+
<li style="display: contents;">
|
|
50
|
+
${r.d(c,e=>{if(e===`ellipsis-start`||e===`ellipsis-end`)return a.html`<span class="ellipsis" aria-hidden="true">…</span>`;let t=e;return t===(Number(n.page.value)||1)?a.html`<button type="button" part="page-btn" aria-label="Page ${t}" aria-current="page">
|
|
51
|
+
${t}
|
|
52
|
+
</button>`:a.html`<button type="button" part="page-btn" aria-label="Page ${t}">${t}</button>`},void 0,{key:e=>`${e}`})}
|
|
53
|
+
</li>
|
|
54
|
+
${()=>n[`show-prev-next`].value?a.html`<li>
|
|
55
|
+
<button
|
|
56
|
+
type="button"
|
|
57
|
+
class="nav-btn"
|
|
58
|
+
part="next-btn"
|
|
59
|
+
aria-label="Next page"
|
|
60
|
+
?disabled=${()=>u.value}
|
|
61
|
+
@click=${()=>i((Number(n.page.value)||1)+1)}>
|
|
62
|
+
<svg
|
|
63
|
+
width="16"
|
|
64
|
+
height="16"
|
|
65
|
+
viewBox="0 0 24 24"
|
|
66
|
+
fill="none"
|
|
67
|
+
stroke="currentColor"
|
|
68
|
+
stroke-width="2"
|
|
69
|
+
stroke-linecap="round"
|
|
70
|
+
stroke-linejoin="round"
|
|
71
|
+
aria-hidden="true">
|
|
72
|
+
<polyline points="9 18 15 12 9 6" />
|
|
73
|
+
</svg>
|
|
74
|
+
</button>
|
|
75
|
+
</li>`:``}
|
|
76
|
+
${()=>n[`show-first-last`].value?a.html`<li>
|
|
77
|
+
<button
|
|
78
|
+
type="button"
|
|
79
|
+
class="nav-btn"
|
|
80
|
+
part="last-btn"
|
|
81
|
+
aria-label="Last page"
|
|
82
|
+
?disabled=${()=>u.value}
|
|
83
|
+
@click=${()=>i(Number(n[`total-pages`].value)||1)}>
|
|
84
|
+
<svg
|
|
85
|
+
width="16"
|
|
86
|
+
height="16"
|
|
87
|
+
viewBox="0 0 24 24"
|
|
88
|
+
fill="none"
|
|
89
|
+
stroke="currentColor"
|
|
90
|
+
stroke-width="2"
|
|
91
|
+
stroke-linecap="round"
|
|
92
|
+
stroke-linejoin="round"
|
|
93
|
+
aria-hidden="true">
|
|
94
|
+
<polyline points="13 17 18 12 13 7" />
|
|
95
|
+
<polyline points="6 17 11 12 6 7" />
|
|
96
|
+
</svg>
|
|
97
|
+
</button>
|
|
98
|
+
</li>`:``}
|
|
99
|
+
</ol>
|
|
100
|
+
</nav>
|
|
101
|
+
`},styles:[n.colorThemeMixin,t.sizeVariantMixin({}),e.coarsePointerMixin,i.default],tag:`bit-pagination`});exports.PAGINATION_TAG=s;
|
|
102
|
+
//# sourceMappingURL=pagination.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.cjs","names":[],"sources":["../src/content/pagination/pagination.ts"],"sourcesContent":["import { computed, defineComponent, html } from '@vielzeug/craftit';\nimport { each } from '@vielzeug/craftit/directives';\n\nimport '../../inputs/button/button';\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { coarsePointerMixin, colorThemeMixin, sizeVariantMixin } from '../../styles';\nimport styles from './pagination.css?inline';\n\nexport type BitPaginationEvents = {\n change: { page: number };\n};\n\n/** Pagination props */\nexport type BitPaginationProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Accessible label for the nav landmark */\n label?: string;\n /** Current page (1-indexed) */\n page?: number;\n /** Show first/last page navigation buttons */\n 'show-first-last'?: boolean;\n /** Show prev/next navigation buttons */\n 'show-prev-next'?: boolean;\n /** Number of sibling pages shown around the current page */\n siblings?: number;\n /** Size */\n size?: ComponentSize;\n /** Total number of pages */\n 'total-pages'?: number;\n /** Visual variant for nav buttons */\n variant?: VisualVariant;\n};\n\nfunction buildPageRange(\n currentPage: number,\n totalPages: number,\n siblings: number,\n): Array<number | 'ellipsis-start' | 'ellipsis-end'> {\n const BOUNDARY = 1; // always show first and last page\n const total = totalPages;\n const pages: Array<number | 'ellipsis-start' | 'ellipsis-end'> = [];\n\n // If total is small enough, show all pages\n if (total <= 2 * BOUNDARY + 2 * siblings + 3) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblings, BOUNDARY + 1);\n const rightSibling = Math.min(currentPage + siblings, total - BOUNDARY);\n\n pages.push(1);\n\n if (leftSibling > BOUNDARY + 2) pages.push('ellipsis-start');\n else if (leftSibling === BOUNDARY + 2) pages.push(BOUNDARY + 1);\n\n for (let i = leftSibling; i <= rightSibling; i++) pages.push(i);\n\n if (rightSibling < total - BOUNDARY - 1) pages.push('ellipsis-end');\n else if (rightSibling === total - BOUNDARY - 1) pages.push(total - BOUNDARY);\n\n pages.push(total);\n\n return pages;\n}\n\n/**\n * Page-based navigation control.\n *\n * @element bit-pagination\n *\n * @attr {number} page - Current page (1-indexed, default: 1)\n * @attr {number} total-pages - Total number of pages (required)\n * @attr {number} siblings - Sibling pages around current (default: 1)\n * @attr {boolean} show-first-last - Show first/last page buttons (default: false)\n * @attr {boolean} show-prev-next - Show prev/next buttons (default: false)\n * @attr {string} color - Theme color\n * @attr {string} variant - Visual variant for nav buttons: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost' | 'glass' (default: 'ghost')\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} label - Accessible nav label (default: 'Pagination')\n *\n * @fires change - Emitted when the page changes, with { page: number }\n *\n * @cssprop --pagination-item-size - Width/height of each item\n * @cssprop --pagination-gap - Gap between items\n * @cssprop --pagination-radius - Border radius of items\n *\n * @example\n * ```html\n * <bit-pagination page=\"3\" total-pages=\"10\" color=\"primary\"></bit-pagination>\n * ```\n */\nexport const PAGINATION_TAG = defineComponent<BitPaginationProps, BitPaginationEvents>({\n props: {\n color: { default: undefined },\n label: { default: 'Pagination' },\n page: { default: 1 },\n 'show-first-last': { default: false, type: Boolean },\n 'show-prev-next': { default: false, type: Boolean },\n siblings: { default: 1 },\n size: { default: undefined },\n 'total-pages': { default: 1 },\n variant: { default: undefined },\n },\n setup({ emit, host, props }) {\n function goTo(page: number) {\n const total = Number(props['total-pages'].value) || 1;\n const next = Math.min(Math.max(1, page), total);\n\n if (next === Number(props.page.value)) return;\n\n host.setAttribute('page', String(next));\n emit('change', { page: next });\n }\n\n function handlePageClick(event: Event) {\n const btn = (event.target as HTMLElement)?.closest('[part=\"page-btn\"]') as HTMLButtonElement | null;\n\n if (!btn) return;\n\n const ariaLabel = btn.getAttribute('aria-label');\n\n if (!ariaLabel) return;\n\n const pageMatch = ariaLabel.match(/\\d+/);\n\n if (!pageMatch) return;\n\n const page = Number(pageMatch[0]);\n\n goTo(page);\n }\n\n const pageItems = computed(() =>\n buildPageRange(\n Number(props.page.value) || 1,\n Number(props['total-pages'].value) || 1,\n // eslint-disable-next-line no-constant-binary-expression\n Number(props.siblings.value) ?? 1,\n ),\n );\n const isFirst = computed(() => (Number(props.page.value) || 1) <= 1);\n const isLast = computed(() => (Number(props.page.value) || 1) >= (Number(props['total-pages'].value) || 1));\n\n return html`\n <nav :aria-label=\"${() => props.label.value}\" part=\"nav\" @click=${handlePageClick}>\n <ol class=\"pagination\" part=\"list\">\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"first-btn\"\n aria-label=\"First page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo(1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"prev-btn\"\n aria-label=\"Previous page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo((Number(props.page.value) || 1) - 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n <li style=\"display: contents;\">\n ${each(\n pageItems,\n (item) => {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n return html`<span class=\"ellipsis\" aria-hidden=\"true\">…</span>`;\n }\n\n const pg = item as number;\n const isCurrent = pg === (Number(props.page.value) || 1);\n\n return isCurrent\n ? html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\" aria-current=\"page\">\n ${pg}\n </button>`\n : html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\">${pg}</button>`;\n },\n undefined,\n { key: (item) => `${item}` },\n )}\n </li>\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"next-btn\"\n aria-label=\"Next page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo((Number(props.page.value) || 1) + 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"last-btn\"\n aria-label=\"Last page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo(Number(props['total-pages'].value) || 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n </ol>\n </nav>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, styles],\n tag: 'bit-pagination',\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { coarsePointerMixin as e } from "./styles/mixins/accessibility.css.js";
|
|
2
|
+
import { sizeVariantMixin as t } from "./styles/mixins/shape.css.js";
|
|
3
|
+
import { colorThemeMixin as n } from "./styles/mixins/theme.css.js";
|
|
4
|
+
import "./styles/index.js";
|
|
5
|
+
import { d as r } from "./craftit/dist/directives/each.js";
|
|
6
|
+
import "./craftit/dist/directives/index.js";
|
|
7
|
+
import "./button.js";
|
|
8
|
+
import i from "./content/pagination/pagination.css?inline.js";
|
|
9
|
+
import { computed as a, defineComponent as o, html as s } from "@vielzeug/craftit";
|
|
10
|
+
//#region src/content/pagination/pagination.ts
|
|
11
|
+
function c(e, t, n) {
|
|
12
|
+
let r = t, i = [];
|
|
13
|
+
if (r <= 2 + 2 * n + 3) return Array.from({ length: r }, (e, t) => t + 1);
|
|
14
|
+
let a = Math.max(e - n, 2), o = Math.min(e + n, r - 1);
|
|
15
|
+
i.push(1), a > 3 ? i.push("ellipsis-start") : a === 3 && i.push(2);
|
|
16
|
+
for (let e = a; e <= o; e++) i.push(e);
|
|
17
|
+
return o < r - 1 - 1 ? i.push("ellipsis-end") : o === r - 1 - 1 && i.push(r - 1), i.push(r), i;
|
|
18
|
+
}
|
|
19
|
+
var l = o({
|
|
20
|
+
props: {
|
|
21
|
+
color: { default: void 0 },
|
|
22
|
+
label: { default: "Pagination" },
|
|
23
|
+
page: { default: 1 },
|
|
24
|
+
"show-first-last": {
|
|
25
|
+
default: !1,
|
|
26
|
+
type: Boolean
|
|
27
|
+
},
|
|
28
|
+
"show-prev-next": {
|
|
29
|
+
default: !1,
|
|
30
|
+
type: Boolean
|
|
31
|
+
},
|
|
32
|
+
siblings: { default: 1 },
|
|
33
|
+
size: { default: void 0 },
|
|
34
|
+
"total-pages": { default: 1 },
|
|
35
|
+
variant: { default: void 0 }
|
|
36
|
+
},
|
|
37
|
+
setup({ emit: e, host: t, props: n }) {
|
|
38
|
+
function i(r) {
|
|
39
|
+
let i = Number(n["total-pages"].value) || 1, a = Math.min(Math.max(1, r), i);
|
|
40
|
+
a !== Number(n.page.value) && (t.setAttribute("page", String(a)), e("change", { page: a }));
|
|
41
|
+
}
|
|
42
|
+
function o(e) {
|
|
43
|
+
let t = e.target?.closest("[part=\"page-btn\"]");
|
|
44
|
+
if (!t) return;
|
|
45
|
+
let n = t.getAttribute("aria-label");
|
|
46
|
+
if (!n) return;
|
|
47
|
+
let r = n.match(/\d+/);
|
|
48
|
+
r && i(Number(r[0]));
|
|
49
|
+
}
|
|
50
|
+
let l = a(() => c(Number(n.page.value) || 1, Number(n["total-pages"].value) || 1, Number(n.siblings.value) ?? 1)), u = a(() => (Number(n.page.value) || 1) <= 1), d = a(() => (Number(n.page.value) || 1) >= (Number(n["total-pages"].value) || 1));
|
|
51
|
+
return s`
|
|
52
|
+
<nav :aria-label="${() => n.label.value}" part="nav" @click=${o}>
|
|
53
|
+
<ol class="pagination" part="list">
|
|
54
|
+
${() => n["show-first-last"].value ? s`<li>
|
|
55
|
+
<button
|
|
56
|
+
type="button"
|
|
57
|
+
class="nav-btn"
|
|
58
|
+
part="first-btn"
|
|
59
|
+
aria-label="First page"
|
|
60
|
+
?disabled=${() => u.value}
|
|
61
|
+
@click=${() => i(1)}>
|
|
62
|
+
<svg
|
|
63
|
+
width="16"
|
|
64
|
+
height="16"
|
|
65
|
+
viewBox="0 0 24 24"
|
|
66
|
+
fill="none"
|
|
67
|
+
stroke="currentColor"
|
|
68
|
+
stroke-width="2"
|
|
69
|
+
stroke-linecap="round"
|
|
70
|
+
stroke-linejoin="round"
|
|
71
|
+
aria-hidden="true">
|
|
72
|
+
<polyline points="11 17 6 12 11 7" />
|
|
73
|
+
<polyline points="18 17 13 12 18 7" />
|
|
74
|
+
</svg>
|
|
75
|
+
</button>
|
|
76
|
+
</li>` : ""}
|
|
77
|
+
${() => n["show-prev-next"].value ? s`<li>
|
|
78
|
+
<button
|
|
79
|
+
type="button"
|
|
80
|
+
class="nav-btn"
|
|
81
|
+
part="prev-btn"
|
|
82
|
+
aria-label="Previous page"
|
|
83
|
+
?disabled=${() => u.value}
|
|
84
|
+
@click=${() => i((Number(n.page.value) || 1) - 1)}>
|
|
85
|
+
<svg
|
|
86
|
+
width="16"
|
|
87
|
+
height="16"
|
|
88
|
+
viewBox="0 0 24 24"
|
|
89
|
+
fill="none"
|
|
90
|
+
stroke="currentColor"
|
|
91
|
+
stroke-width="2"
|
|
92
|
+
stroke-linecap="round"
|
|
93
|
+
stroke-linejoin="round"
|
|
94
|
+
aria-hidden="true">
|
|
95
|
+
<polyline points="15 18 9 12 15 6" />
|
|
96
|
+
</svg>
|
|
97
|
+
</button>
|
|
98
|
+
</li>` : ""}
|
|
99
|
+
<li style="display: contents;">
|
|
100
|
+
${r(l, (e) => {
|
|
101
|
+
if (e === "ellipsis-start" || e === "ellipsis-end") return s`<span class="ellipsis" aria-hidden="true">…</span>`;
|
|
102
|
+
let t = e;
|
|
103
|
+
return t === (Number(n.page.value) || 1) ? s`<button type="button" part="page-btn" aria-label="Page ${t}" aria-current="page">
|
|
104
|
+
${t}
|
|
105
|
+
</button>` : s`<button type="button" part="page-btn" aria-label="Page ${t}">${t}</button>`;
|
|
106
|
+
}, void 0, { key: (e) => `${e}` })}
|
|
107
|
+
</li>
|
|
108
|
+
${() => n["show-prev-next"].value ? s`<li>
|
|
109
|
+
<button
|
|
110
|
+
type="button"
|
|
111
|
+
class="nav-btn"
|
|
112
|
+
part="next-btn"
|
|
113
|
+
aria-label="Next page"
|
|
114
|
+
?disabled=${() => d.value}
|
|
115
|
+
@click=${() => i((Number(n.page.value) || 1) + 1)}>
|
|
116
|
+
<svg
|
|
117
|
+
width="16"
|
|
118
|
+
height="16"
|
|
119
|
+
viewBox="0 0 24 24"
|
|
120
|
+
fill="none"
|
|
121
|
+
stroke="currentColor"
|
|
122
|
+
stroke-width="2"
|
|
123
|
+
stroke-linecap="round"
|
|
124
|
+
stroke-linejoin="round"
|
|
125
|
+
aria-hidden="true">
|
|
126
|
+
<polyline points="9 18 15 12 9 6" />
|
|
127
|
+
</svg>
|
|
128
|
+
</button>
|
|
129
|
+
</li>` : ""}
|
|
130
|
+
${() => n["show-first-last"].value ? s`<li>
|
|
131
|
+
<button
|
|
132
|
+
type="button"
|
|
133
|
+
class="nav-btn"
|
|
134
|
+
part="last-btn"
|
|
135
|
+
aria-label="Last page"
|
|
136
|
+
?disabled=${() => d.value}
|
|
137
|
+
@click=${() => i(Number(n["total-pages"].value) || 1)}>
|
|
138
|
+
<svg
|
|
139
|
+
width="16"
|
|
140
|
+
height="16"
|
|
141
|
+
viewBox="0 0 24 24"
|
|
142
|
+
fill="none"
|
|
143
|
+
stroke="currentColor"
|
|
144
|
+
stroke-width="2"
|
|
145
|
+
stroke-linecap="round"
|
|
146
|
+
stroke-linejoin="round"
|
|
147
|
+
aria-hidden="true">
|
|
148
|
+
<polyline points="13 17 18 12 13 7" />
|
|
149
|
+
<polyline points="6 17 11 12 6 7" />
|
|
150
|
+
</svg>
|
|
151
|
+
</button>
|
|
152
|
+
</li>` : ""}
|
|
153
|
+
</ol>
|
|
154
|
+
</nav>
|
|
155
|
+
`;
|
|
156
|
+
},
|
|
157
|
+
styles: [
|
|
158
|
+
n,
|
|
159
|
+
t({}),
|
|
160
|
+
e,
|
|
161
|
+
i
|
|
162
|
+
],
|
|
163
|
+
tag: "bit-pagination"
|
|
164
|
+
});
|
|
165
|
+
//#endregion
|
|
166
|
+
export { l as PAGINATION_TAG };
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","names":[],"sources":["../src/content/pagination/pagination.ts"],"sourcesContent":["import { computed, defineComponent, html } from '@vielzeug/craftit';\nimport { each } from '@vielzeug/craftit/directives';\n\nimport '../../inputs/button/button';\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { coarsePointerMixin, colorThemeMixin, sizeVariantMixin } from '../../styles';\nimport styles from './pagination.css?inline';\n\nexport type BitPaginationEvents = {\n change: { page: number };\n};\n\n/** Pagination props */\nexport type BitPaginationProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Accessible label for the nav landmark */\n label?: string;\n /** Current page (1-indexed) */\n page?: number;\n /** Show first/last page navigation buttons */\n 'show-first-last'?: boolean;\n /** Show prev/next navigation buttons */\n 'show-prev-next'?: boolean;\n /** Number of sibling pages shown around the current page */\n siblings?: number;\n /** Size */\n size?: ComponentSize;\n /** Total number of pages */\n 'total-pages'?: number;\n /** Visual variant for nav buttons */\n variant?: VisualVariant;\n};\n\nfunction buildPageRange(\n currentPage: number,\n totalPages: number,\n siblings: number,\n): Array<number | 'ellipsis-start' | 'ellipsis-end'> {\n const BOUNDARY = 1; // always show first and last page\n const total = totalPages;\n const pages: Array<number | 'ellipsis-start' | 'ellipsis-end'> = [];\n\n // If total is small enough, show all pages\n if (total <= 2 * BOUNDARY + 2 * siblings + 3) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblings, BOUNDARY + 1);\n const rightSibling = Math.min(currentPage + siblings, total - BOUNDARY);\n\n pages.push(1);\n\n if (leftSibling > BOUNDARY + 2) pages.push('ellipsis-start');\n else if (leftSibling === BOUNDARY + 2) pages.push(BOUNDARY + 1);\n\n for (let i = leftSibling; i <= rightSibling; i++) pages.push(i);\n\n if (rightSibling < total - BOUNDARY - 1) pages.push('ellipsis-end');\n else if (rightSibling === total - BOUNDARY - 1) pages.push(total - BOUNDARY);\n\n pages.push(total);\n\n return pages;\n}\n\n/**\n * Page-based navigation control.\n *\n * @element bit-pagination\n *\n * @attr {number} page - Current page (1-indexed, default: 1)\n * @attr {number} total-pages - Total number of pages (required)\n * @attr {number} siblings - Sibling pages around current (default: 1)\n * @attr {boolean} show-first-last - Show first/last page buttons (default: false)\n * @attr {boolean} show-prev-next - Show prev/next buttons (default: false)\n * @attr {string} color - Theme color\n * @attr {string} variant - Visual variant for nav buttons: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost' | 'glass' (default: 'ghost')\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} label - Accessible nav label (default: 'Pagination')\n *\n * @fires change - Emitted when the page changes, with { page: number }\n *\n * @cssprop --pagination-item-size - Width/height of each item\n * @cssprop --pagination-gap - Gap between items\n * @cssprop --pagination-radius - Border radius of items\n *\n * @example\n * ```html\n * <bit-pagination page=\"3\" total-pages=\"10\" color=\"primary\"></bit-pagination>\n * ```\n */\nexport const PAGINATION_TAG = defineComponent<BitPaginationProps, BitPaginationEvents>({\n props: {\n color: { default: undefined },\n label: { default: 'Pagination' },\n page: { default: 1 },\n 'show-first-last': { default: false, type: Boolean },\n 'show-prev-next': { default: false, type: Boolean },\n siblings: { default: 1 },\n size: { default: undefined },\n 'total-pages': { default: 1 },\n variant: { default: undefined },\n },\n setup({ emit, host, props }) {\n function goTo(page: number) {\n const total = Number(props['total-pages'].value) || 1;\n const next = Math.min(Math.max(1, page), total);\n\n if (next === Number(props.page.value)) return;\n\n host.setAttribute('page', String(next));\n emit('change', { page: next });\n }\n\n function handlePageClick(event: Event) {\n const btn = (event.target as HTMLElement)?.closest('[part=\"page-btn\"]') as HTMLButtonElement | null;\n\n if (!btn) return;\n\n const ariaLabel = btn.getAttribute('aria-label');\n\n if (!ariaLabel) return;\n\n const pageMatch = ariaLabel.match(/\\d+/);\n\n if (!pageMatch) return;\n\n const page = Number(pageMatch[0]);\n\n goTo(page);\n }\n\n const pageItems = computed(() =>\n buildPageRange(\n Number(props.page.value) || 1,\n Number(props['total-pages'].value) || 1,\n // eslint-disable-next-line no-constant-binary-expression\n Number(props.siblings.value) ?? 1,\n ),\n );\n const isFirst = computed(() => (Number(props.page.value) || 1) <= 1);\n const isLast = computed(() => (Number(props.page.value) || 1) >= (Number(props['total-pages'].value) || 1));\n\n return html`\n <nav :aria-label=\"${() => props.label.value}\" part=\"nav\" @click=${handlePageClick}>\n <ol class=\"pagination\" part=\"list\">\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"first-btn\"\n aria-label=\"First page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo(1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"prev-btn\"\n aria-label=\"Previous page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo((Number(props.page.value) || 1) - 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n <li style=\"display: contents;\">\n ${each(\n pageItems,\n (item) => {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n return html`<span class=\"ellipsis\" aria-hidden=\"true\">…</span>`;\n }\n\n const pg = item as number;\n const isCurrent = pg === (Number(props.page.value) || 1);\n\n return isCurrent\n ? html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\" aria-current=\"page\">\n ${pg}\n </button>`\n : html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\">${pg}</button>`;\n },\n undefined,\n { key: (item) => `${item}` },\n )}\n </li>\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"next-btn\"\n aria-label=\"Next page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo((Number(props.page.value) || 1) + 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"last-btn\"\n aria-label=\"Last page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo(Number(props['total-pages'].value) || 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n </ol>\n </nav>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, styles],\n tag: 'bit-pagination',\n});\n"],"mappings":"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"}
|
package/dist/popover.cjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./styles/mixins/accessibility.css.cjs`);require(`./styles/index.cjs`);const t=require(`./overlay/popover/popover.css?inline.cjs`);let n=require(`@vielzeug/craftit`),r=require(`@vielzeug/floatit`);var i=8,a=new Set([`click`,`hover`,`focus`]);function o(e){let t=String(e).split(`,`).map(e=>e.trim()).filter(e=>a.has(e));return t.length>0?t:[`click`]}var s=(0,n.defineComponent)({props:{disabled:{default:!1},label:{default:void 0},offset:{default:i},open:{default:void 0},placement:{default:`bottom`},trigger:{default:`click`}},setup({emit:e,host:t,props:a}){let s=(0,n.signal)(!1),c=(0,n.createId)(`popover`),l=null,u=null,d=null,f=(0,n.computed)(()=>o(a.trigger.value));function p(){!l||!u||(0,r.positionFloat)(u,l,{middleware:[(0,r.offset)(a.offset.value??i),(0,r.flip)(),(0,r.shift)({padding:8})],placement:a.placement.value}).then(e=>{l&&(l.dataset.placement=e)})}function m(){s.value=!0,u?.setAttribute(`aria-expanded`,`true`),l&&!l.matches(`:popover-open`)&&l.showPopover(),u&&l&&(d?.(),d=(0,r.autoUpdate)(u,l,p)),p()}function h(){d?.(),d=null,u?.setAttribute(`aria-expanded`,`false`),s.value=!1,l?.matches(`:popover-open`)&&l.hidePopover()}function g(){a.open.value===void 0&&(a.disabled.value||s.value||(m(),e(`open`)))}function _(){a.open.value===void 0&&s.value&&(h(),e(`close`))}function v(){s.value?_():g()}function y(e){e.key===`Escape`&&_()}function b(e){if(!s.value)return;let n=e.composedPath();n.includes(t)||l&&n.includes(l)||u&&n.includes(u)||_()}function x(e){let t=e.relatedTarget;t&&l?.contains(t)||t&&u?.contains(t)||_()}return(0,n.onMount)(()=>{let r=t.shadowRoot?.querySelector(`slot:not([name])`);if(!r)return;let i=()=>{o();let e=r.assignedElements({flatten:!0})[0];if(!e)return;u=e,e.setAttribute(`aria-controls`,c),e.setAttribute(`aria-haspopup`,`dialog`),e.setAttribute(`aria-expanded`,String(s.value)),e.setAttribute(`aria-disabled`,String(!!a.disabled.value));let t=f.value;t.includes(`click`)&&(e.addEventListener(`click`,v),document.addEventListener(`click`,b,{capture:!0})),t.includes(`hover`)&&(e.addEventListener(`pointerenter`,g),e.addEventListener(`pointerleave`,_),l?.addEventListener(`pointerenter`,g),l?.addEventListener(`pointerleave`,_)),t.includes(`focus`)&&(e.addEventListener(`focusin`,g),e.addEventListener(`focusout`,x),l?.addEventListener(`focusout`,x)),document.addEventListener(`keydown`,y)},o=()=>{u&&=(u.removeAttribute(`aria-controls`),u.removeAttribute(`aria-haspopup`),u.removeAttribute(`aria-expanded`),u.removeAttribute(`aria-disabled`),u.removeEventListener(`click`,v),u.removeEventListener(`pointerenter`,g),u.removeEventListener(`pointerleave`,_),u.removeEventListener(`focusin`,g),u.removeEventListener(`focusout`,x),l?.removeEventListener(`pointerenter`,g),l?.removeEventListener(`pointerleave`,_),l?.removeEventListener(`focusout`,x),document.removeEventListener(`click`,b,{capture:!0}),document.removeEventListener(`keydown`,y),null)};return(0,n.onSlotChange)(`default`,i),(0,n.watch)(a.open,t=>{t!=null&&(t?(m(),e(`open`)):(h(),e(`close`)))}),(0,n.watch)(a.trigger,i),(0,n.watch)(a.disabled,e=>{u?.setAttribute(`aria-disabled`,String(!!e)),e&&_()}),()=>{o(),d?.(),d=null,l?.matches(`:popover-open`)&&l.hidePopover()}}),n.html`
|
|
2
|
+
<slot></slot>
|
|
3
|
+
<div
|
|
4
|
+
class="panel"
|
|
5
|
+
part="panel"
|
|
6
|
+
id="${c}"
|
|
7
|
+
role="dialog"
|
|
8
|
+
aria-modal="false"
|
|
9
|
+
popover="manual"
|
|
10
|
+
:aria-label="${()=>a.label.value??null}"
|
|
11
|
+
:aria-hidden="${()=>String(!s.value)}"
|
|
12
|
+
ref=${e=>{l=e}}>
|
|
13
|
+
<slot name="content"></slot>
|
|
14
|
+
</div>
|
|
15
|
+
`},styles:[e.reducedMotionMixin,t.default],tag:`bit-popover`});exports.POPOVER_TAG=s;
|
|
16
|
+
//# sourceMappingURL=popover.cjs.map
|