@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,67 @@
|
|
|
1
|
+
import type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';
|
|
2
|
+
type BadgeVariant = Extract<VisualVariant, 'solid' | 'flat' | 'bordered' | 'outline' | 'frost'>;
|
|
3
|
+
/** Badge component properties */
|
|
4
|
+
export type BitBadgeProps = {
|
|
5
|
+
/**
|
|
6
|
+
* When set, switches to overlay mode: the host becomes `position:relative`
|
|
7
|
+
* and the badge pins to a corner over the slotted content.
|
|
8
|
+
* Value controls which corner: 'top-end' (default) | 'top-start' | 'bottom-end' | 'bottom-start'
|
|
9
|
+
*/
|
|
10
|
+
anchor?: 'top-end' | 'top-start' | 'bottom-end' | 'bottom-start';
|
|
11
|
+
/** Accessible label for assistive technology. Recommended for count-only and dot mode. */
|
|
12
|
+
ariaLabel?: string;
|
|
13
|
+
/** Theme color */
|
|
14
|
+
color?: ThemeColor;
|
|
15
|
+
/** Numeric count to display */
|
|
16
|
+
count?: number;
|
|
17
|
+
/** Render as a small dot with no label */
|
|
18
|
+
dot?: boolean;
|
|
19
|
+
/** Max count — displays "<max>+" when count exceeds this value */
|
|
20
|
+
max?: number;
|
|
21
|
+
/** Border radius override */
|
|
22
|
+
rounded?: RoundedSize;
|
|
23
|
+
/** Badge size */
|
|
24
|
+
size?: ComponentSize;
|
|
25
|
+
/** Visual style variant */
|
|
26
|
+
variant?: BadgeVariant;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* A compact badge/chip for counts, statuses, and labels.
|
|
30
|
+
* Supports numeric counts with overflow, dot mode, and icon slots.
|
|
31
|
+
*
|
|
32
|
+
* @element bit-badge
|
|
33
|
+
*
|
|
34
|
+
* @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
|
|
35
|
+
* @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'frost'
|
|
36
|
+
* @attr {string} size - Component size: 'sm' | 'md' | 'lg'
|
|
37
|
+
* @attr {number} count - Numeric count to display
|
|
38
|
+
* @attr {number} max - Max count before showing "<max>+"
|
|
39
|
+
* @attr {boolean} dot - Render as a dot indicator (no text)
|
|
40
|
+
* @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'full' etc.
|
|
41
|
+
*
|
|
42
|
+
* @slot - Badge label text
|
|
43
|
+
* @slot icon - Icon displayed before the label
|
|
44
|
+
* @slot target - Element the badge is anchored to (used with the anchor attribute)
|
|
45
|
+
*
|
|
46
|
+
* @cssprop --badge-bg - Badge background color
|
|
47
|
+
* @cssprop --badge-color - Badge text color
|
|
48
|
+
* @cssprop --badge-border-color - Badge border color
|
|
49
|
+
* @cssprop --badge-radius - Border radius
|
|
50
|
+
* @cssprop --badge-font-size - Font size
|
|
51
|
+
* @cssprop --badge-font-weight - Font weight
|
|
52
|
+
* @cssprop --badge-padding-x - Horizontal padding
|
|
53
|
+
* @cssprop --badge-padding-y - Vertical padding
|
|
54
|
+
* @cssprop --badge-gap - Gap between icon and label
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```html
|
|
58
|
+
* <bit-badge color="primary">New</bit-badge>
|
|
59
|
+
* <bit-badge color="error" count="5"></bit-badge>
|
|
60
|
+
* <bit-badge color="error" count="120" max="99"></bit-badge>
|
|
61
|
+
* <bit-badge color="success" dot></bit-badge>
|
|
62
|
+
* <bit-badge color="warning" variant="flat">Beta</bit-badge>
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const BADGE_TAG: string;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/feedback/badge/badge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKzF,KAAK,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEhG,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;IACjE,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,iBAAiB;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,SAAS,QA2CpB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`@layer buildit.base{:host{--_bg:var(--chip-bg,var(--color-contrast-150,var(--color-contrast-100)));--_color:var(--chip-color,var(--color-contrast-800));--_border-color:var(--chip-border-color,transparent);--_radius:var(--chip-radius,var(--rounded-full));--_font-size:var(--chip-font-size,var(--text-sm));--_font-weight:var(--chip-font-weight,var(--font-medium));--_padding-x:var(--chip-padding-x,var(--size-2-5));--_padding-y:var(--chip-padding-y,var(--size-0-5));--_gap:var(--chip-gap,var(--size-1));vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.chip{box-sizing:border-box;gap:var(--_gap);max-width:100%;padding:var(--_padding-y) var(--_padding-x);font-size:var(--_font-size);font-weight:var(--_font-weight);color:var(--_color);white-space:nowrap;background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);align-items:center;line-height:1.2;display:inline-flex;position:relative}.label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.remove-btn{width:1.35em;height:1.35em;margin-inline:var(--size-0-5) calc(var(--size-2) * -1);color:inherit;cursor:pointer;background:color-mix(in srgb, currentcolor 12%, transparent);border-radius:var(--_radius);opacity:.7;transition:background var(--transition-fast), opacity var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.remove-btn:hover{background:color-mix(in srgb, currentcolor 28%, transparent);opacity:1}.remove-btn:focus-visible{outline-offset:1px;opacity:1;outline:2px solid}::slotted([slot=icon]){flex-shrink:0;justify-content:center;align-items:center;width:1em;height:1em;display:inline-flex}.chip-btn{width:100%;font:inherit;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:inline-flex}.chip-btn:disabled{cursor:not-allowed}:host([mode=selectable][checked]) .chip{outline:var(--border-2) solid var(--_theme-base,currentColor);outline-offset:-2px}:host([mode=selectable]:not([disabled])) .chip,:host([mode=action]:not([disabled])) .chip{cursor:pointer}.chip-btn:focus-visible .chip{outline:2px solid var(--_theme-base,currentColor);outline-offset:2px}}@layer buildit.variants{:host(:not([variant])) .chip,:host([variant=solid]) .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));border-color:#0000}:host([variant=flat]) .chip{color:var(--_theme-base,var(--color-contrast-800));background:color-mix(in srgb, var(--_theme-backdrop,var(--color-contrast-200)) 55%, transparent);border-color:#0000}:host([variant=bordered]) .chip{color:var(--_theme-base,var(--color-contrast-900));background:var(--_theme-backdrop,var(--color-contrast-50));border-color:var(--_theme-border,var(--color-contrast-300))}:host([variant=bordered]) .remove-btn{color:var(--_theme-backdrop,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border:var(--border) solid var(--_theme-focus,var(--color-contrast-700))}:host([variant=bordered]) .remove-btn:hover{background:color-mix(in srgb, var(--_theme-focus,var(--color-contrast-700)) 80%, black);opacity:1}:host([variant=outline]) .chip{color:var(--_theme-base,var(--color-contrast-900));border-color:var(--_theme-base,var(--color-contrast-400));background:0 0}:host([variant=outline]) .remove-btn{color:var(--_theme-backdrop,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border:var(--border) solid var(--_theme-focus,var(--color-contrast-700))}:host([variant=outline]) .remove-btn:hover{background:color-mix(in srgb, var(--_theme-focus,var(--color-contrast-700)) 80%, black);opacity:1}:host([variant=ghost]) .chip{color:var(--_theme-base,var(--color-contrast-900));background:0 0;border-color:#0000}:host([variant=ghost]) .remove-btn{border:var(--border) solid var(--_theme-focus,var(--color-contrast-400))}:host([variant=ghost]) .remove-btn:hover{background:color-mix(in srgb, currentcolor 15%, transparent)}:host(:not([variant]):is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip,:host([variant=solid]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-focus,var(--color-contrast-800))}:host(:not([variant]):is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip,:host([variant=solid]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-2xs)}:host([variant=flat]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700))}:host([variant=flat]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-sm)}:host([variant=bordered]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border-color:var(--_theme-focus,var(--color-contrast-700))}:host([variant=bordered]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-sm)}:host([variant=outline]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-backdrop,var(--color-contrast-100));border-color:var(--_theme-focus,var(--color-contrast-700))}:host([variant=outline]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));box-shadow:var(--inset-shadow-2xs)}:host([variant=ghost]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-backdrop,var(--color-contrast-100))}:host([variant=ghost]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));box-shadow:var(--inset-shadow-2xs)}}`;exports.default=e;
|
|
2
|
+
//# sourceMappingURL=chip.css?inline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.css?inline.cjs","names":[],"sources":["../../../src/feedback/chip/chip.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_bg: var(--chip-bg, var(--color-contrast-150, var(--color-contrast-100)));\n --_color: var(--chip-color, var(--color-contrast-800));\n --_border-color: var(--chip-border-color, transparent);\n --_radius: var(--chip-radius, var(--rounded-full));\n --_font-size: var(--chip-font-size, var(--text-sm));\n --_font-weight: var(--chip-font-weight, var(--font-medium));\n --_padding-x: var(--chip-padding-x, var(--size-2-5));\n --_padding-y: var(--chip-padding-y, var(--size-0-5));\n --_gap: var(--chip-gap, var(--size-1));\n\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n vertical-align: middle;\n }\n\n .chip {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n gap: var(--_gap);\n align-items: center;\n max-width: 100%;\n padding: var(--_padding-y) var(--_padding-x);\n font-size: var(--_font-size);\n font-weight: var(--_font-weight);\n line-height: 1.2;\n color: var(--_color);\n white-space: nowrap;\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n border-color var(--transition-fast),\n box-shadow var(--transition-fast),\n color var(--transition-fast);\n }\n\n .label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ========================================\n Remove Button\n ======================================== */\n\n .remove-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1.35em;\n height: 1.35em;\n padding: 0;\n margin-inline: var(--size-0-5) calc(var(--size-2) * -1);\n color: inherit;\n cursor: pointer;\n background: color-mix(in srgb, currentcolor 12%, transparent);\n border: none;\n border-radius: var(--_radius);\n opacity: 0.7;\n transition:\n background var(--transition-fast),\n opacity var(--transition-fast);\n }\n\n .remove-btn:hover {\n background: color-mix(in srgb, currentcolor 28%, transparent);\n opacity: 1;\n }\n\n .remove-btn:focus-visible {\n outline: 2px solid currentcolor;\n outline-offset: 1px;\n opacity: 1;\n }\n\n /* ========================================\n Icon slot\n ======================================== */\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1em;\n height: 1em;\n }\n\n .chip-btn {\n display: inline-flex;\n width: 100%;\n padding: 0;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: inherit;\n cursor: pointer;\n background: none;\n border: none;\n }\n\n .chip-btn:disabled {\n cursor: not-allowed;\n }\n\n :host([mode='selectable'][checked]) .chip {\n outline: var(--border-2) solid var(--_theme-base, currentColor);\n outline-offset: -2px;\n }\n\n :host([mode='selectable']:not([disabled])) .chip,\n :host([mode='action']:not([disabled])) .chip {\n cursor: pointer;\n }\n\n .chip-btn:focus-visible .chip {\n outline: 2px solid var(--_theme-base, currentColor);\n outline-offset: 2px;\n }\n}\n\n@layer buildit.variants {\n /* Solid (Default) — full theme color fill */\n :host(:not([variant])) .chip,\n :host([variant='solid']) .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n border-color: transparent;\n }\n\n /* Flat — subtle tint */\n :host([variant='flat']) .chip {\n color: var(--_theme-base, var(--color-contrast-800));\n background: color-mix(in srgb, var(--_theme-backdrop, var(--color-contrast-200)) 55%, transparent);\n border-color: transparent;\n }\n\n /* Bordered — backdrop fill with themed border */\n :host([variant='bordered']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: var(--_theme-backdrop, var(--color-contrast-50));\n border-color: var(--_theme-border, var(--color-contrast-300));\n }\n\n :host([variant='bordered']) .remove-btn {\n color: var(--_theme-backdrop, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='bordered']) .remove-btn:hover {\n background: color-mix(in srgb, var(--_theme-focus, var(--color-contrast-700)) 80%, black);\n opacity: 1;\n }\n\n /* Outline — transparent with colored border */\n :host([variant='outline']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: transparent;\n border-color: var(--_theme-base, var(--color-contrast-400));\n }\n\n :host([variant='outline']) .remove-btn {\n color: var(--_theme-backdrop, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='outline']) .remove-btn:hover {\n background: color-mix(in srgb, var(--_theme-focus, var(--color-contrast-700)) 80%, black);\n opacity: 1;\n }\n\n /* Ghost — transparent, no border */\n :host([variant='ghost']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: transparent;\n border-color: transparent;\n }\n\n :host([variant='ghost']) .remove-btn {\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-400));\n }\n\n :host([variant='ghost']) .remove-btn:hover {\n background: color-mix(in srgb, currentcolor 15%, transparent);\n }\n\n /* ========================================\n Hover / Active Feedback — interactive modes\n ======================================== */\n\n /* Solid (default) */\n :host(:not([variant]):is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip,\n :host([variant='solid']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-focus, var(--color-contrast-800));\n }\n\n :host(:not([variant]):is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip,\n :host([variant='solid']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='flat']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-sm);\n }\n\n /* Bordered */\n :host([variant='bordered']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border-color: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='bordered']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-sm);\n }\n\n /* Outline */\n :host([variant='outline']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n border-color: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='outline']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n box-shadow: var(--inset-shadow-2xs);\n }\n\n /* Ghost */\n :host([variant='ghost']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n :host([variant='ghost']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n box-shadow: var(--inset-shadow-2xs);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/feedback/chip/chip.css?inline
|
|
2
|
+
var e = "@layer buildit.base{:host{--_bg:var(--chip-bg,var(--color-contrast-150,var(--color-contrast-100)));--_color:var(--chip-color,var(--color-contrast-800));--_border-color:var(--chip-border-color,transparent);--_radius:var(--chip-radius,var(--rounded-full));--_font-size:var(--chip-font-size,var(--text-sm));--_font-weight:var(--chip-font-weight,var(--font-medium));--_padding-x:var(--chip-padding-x,var(--size-2-5));--_padding-y:var(--chip-padding-y,var(--size-0-5));--_gap:var(--chip-gap,var(--size-1));vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.chip{box-sizing:border-box;gap:var(--_gap);max-width:100%;padding:var(--_padding-y) var(--_padding-x);font-size:var(--_font-size);font-weight:var(--_font-weight);color:var(--_color);white-space:nowrap;background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);align-items:center;line-height:1.2;display:inline-flex;position:relative}.label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.remove-btn{width:1.35em;height:1.35em;margin-inline:var(--size-0-5) calc(var(--size-2) * -1);color:inherit;cursor:pointer;background:color-mix(in srgb, currentcolor 12%, transparent);border-radius:var(--_radius);opacity:.7;transition:background var(--transition-fast), opacity var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.remove-btn:hover{background:color-mix(in srgb, currentcolor 28%, transparent);opacity:1}.remove-btn:focus-visible{outline-offset:1px;opacity:1;outline:2px solid}::slotted([slot=icon]){flex-shrink:0;justify-content:center;align-items:center;width:1em;height:1em;display:inline-flex}.chip-btn{width:100%;font:inherit;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:inline-flex}.chip-btn:disabled{cursor:not-allowed}:host([mode=selectable][checked]) .chip{outline:var(--border-2) solid var(--_theme-base,currentColor);outline-offset:-2px}:host([mode=selectable]:not([disabled])) .chip,:host([mode=action]:not([disabled])) .chip{cursor:pointer}.chip-btn:focus-visible .chip{outline:2px solid var(--_theme-base,currentColor);outline-offset:2px}}@layer buildit.variants{:host(:not([variant])) .chip,:host([variant=solid]) .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));border-color:#0000}:host([variant=flat]) .chip{color:var(--_theme-base,var(--color-contrast-800));background:color-mix(in srgb, var(--_theme-backdrop,var(--color-contrast-200)) 55%, transparent);border-color:#0000}:host([variant=bordered]) .chip{color:var(--_theme-base,var(--color-contrast-900));background:var(--_theme-backdrop,var(--color-contrast-50));border-color:var(--_theme-border,var(--color-contrast-300))}:host([variant=bordered]) .remove-btn{color:var(--_theme-backdrop,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border:var(--border) solid var(--_theme-focus,var(--color-contrast-700))}:host([variant=bordered]) .remove-btn:hover{background:color-mix(in srgb, var(--_theme-focus,var(--color-contrast-700)) 80%, black);opacity:1}:host([variant=outline]) .chip{color:var(--_theme-base,var(--color-contrast-900));border-color:var(--_theme-base,var(--color-contrast-400));background:0 0}:host([variant=outline]) .remove-btn{color:var(--_theme-backdrop,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border:var(--border) solid var(--_theme-focus,var(--color-contrast-700))}:host([variant=outline]) .remove-btn:hover{background:color-mix(in srgb, var(--_theme-focus,var(--color-contrast-700)) 80%, black);opacity:1}:host([variant=ghost]) .chip{color:var(--_theme-base,var(--color-contrast-900));background:0 0;border-color:#0000}:host([variant=ghost]) .remove-btn{border:var(--border) solid var(--_theme-focus,var(--color-contrast-400))}:host([variant=ghost]) .remove-btn:hover{background:color-mix(in srgb, currentcolor 15%, transparent)}:host(:not([variant]):is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip,:host([variant=solid]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-focus,var(--color-contrast-800))}:host(:not([variant]):is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip,:host([variant=solid]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-2xs)}:host([variant=flat]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700))}:host([variant=flat]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-sm)}:host([variant=bordered]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-focus,var(--color-contrast-700));border-color:var(--_theme-focus,var(--color-contrast-700))}:host([variant=bordered]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-content,var(--color-contrast-900));box-shadow:var(--inset-shadow-sm)}:host([variant=outline]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-backdrop,var(--color-contrast-100));border-color:var(--_theme-focus,var(--color-contrast-700))}:host([variant=outline]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));box-shadow:var(--inset-shadow-2xs)}:host([variant=ghost]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:hover .chip{background:var(--_theme-backdrop,var(--color-contrast-100))}:host([variant=ghost]:is([mode=selectable],[mode=action]):not([disabled])) .chip-btn:active .chip{color:var(--_theme-contrast,var(--color-contrast-50));background:var(--_theme-base,var(--color-contrast-700));box-shadow:var(--inset-shadow-2xs)}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=chip.css?inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.css?inline.js","names":[],"sources":["../../../src/feedback/chip/chip.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_bg: var(--chip-bg, var(--color-contrast-150, var(--color-contrast-100)));\n --_color: var(--chip-color, var(--color-contrast-800));\n --_border-color: var(--chip-border-color, transparent);\n --_radius: var(--chip-radius, var(--rounded-full));\n --_font-size: var(--chip-font-size, var(--text-sm));\n --_font-weight: var(--chip-font-weight, var(--font-medium));\n --_padding-x: var(--chip-padding-x, var(--size-2-5));\n --_padding-y: var(--chip-padding-y, var(--size-0-5));\n --_gap: var(--chip-gap, var(--size-1));\n\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n vertical-align: middle;\n }\n\n .chip {\n position: relative;\n box-sizing: border-box;\n display: inline-flex;\n gap: var(--_gap);\n align-items: center;\n max-width: 100%;\n padding: var(--_padding-y) var(--_padding-x);\n font-size: var(--_font-size);\n font-weight: var(--_font-weight);\n line-height: 1.2;\n color: var(--_color);\n white-space: nowrap;\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n border-color var(--transition-fast),\n box-shadow var(--transition-fast),\n color var(--transition-fast);\n }\n\n .label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ========================================\n Remove Button\n ======================================== */\n\n .remove-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1.35em;\n height: 1.35em;\n padding: 0;\n margin-inline: var(--size-0-5) calc(var(--size-2) * -1);\n color: inherit;\n cursor: pointer;\n background: color-mix(in srgb, currentcolor 12%, transparent);\n border: none;\n border-radius: var(--_radius);\n opacity: 0.7;\n transition:\n background var(--transition-fast),\n opacity var(--transition-fast);\n }\n\n .remove-btn:hover {\n background: color-mix(in srgb, currentcolor 28%, transparent);\n opacity: 1;\n }\n\n .remove-btn:focus-visible {\n outline: 2px solid currentcolor;\n outline-offset: 1px;\n opacity: 1;\n }\n\n /* ========================================\n Icon slot\n ======================================== */\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1em;\n height: 1em;\n }\n\n .chip-btn {\n display: inline-flex;\n width: 100%;\n padding: 0;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: inherit;\n cursor: pointer;\n background: none;\n border: none;\n }\n\n .chip-btn:disabled {\n cursor: not-allowed;\n }\n\n :host([mode='selectable'][checked]) .chip {\n outline: var(--border-2) solid var(--_theme-base, currentColor);\n outline-offset: -2px;\n }\n\n :host([mode='selectable']:not([disabled])) .chip,\n :host([mode='action']:not([disabled])) .chip {\n cursor: pointer;\n }\n\n .chip-btn:focus-visible .chip {\n outline: 2px solid var(--_theme-base, currentColor);\n outline-offset: 2px;\n }\n}\n\n@layer buildit.variants {\n /* Solid (Default) — full theme color fill */\n :host(:not([variant])) .chip,\n :host([variant='solid']) .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n border-color: transparent;\n }\n\n /* Flat — subtle tint */\n :host([variant='flat']) .chip {\n color: var(--_theme-base, var(--color-contrast-800));\n background: color-mix(in srgb, var(--_theme-backdrop, var(--color-contrast-200)) 55%, transparent);\n border-color: transparent;\n }\n\n /* Bordered — backdrop fill with themed border */\n :host([variant='bordered']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: var(--_theme-backdrop, var(--color-contrast-50));\n border-color: var(--_theme-border, var(--color-contrast-300));\n }\n\n :host([variant='bordered']) .remove-btn {\n color: var(--_theme-backdrop, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='bordered']) .remove-btn:hover {\n background: color-mix(in srgb, var(--_theme-focus, var(--color-contrast-700)) 80%, black);\n opacity: 1;\n }\n\n /* Outline — transparent with colored border */\n :host([variant='outline']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: transparent;\n border-color: var(--_theme-base, var(--color-contrast-400));\n }\n\n :host([variant='outline']) .remove-btn {\n color: var(--_theme-backdrop, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='outline']) .remove-btn:hover {\n background: color-mix(in srgb, var(--_theme-focus, var(--color-contrast-700)) 80%, black);\n opacity: 1;\n }\n\n /* Ghost — transparent, no border */\n :host([variant='ghost']) .chip {\n color: var(--_theme-base, var(--color-contrast-900));\n background: transparent;\n border-color: transparent;\n }\n\n :host([variant='ghost']) .remove-btn {\n border: var(--border) solid var(--_theme-focus, var(--color-contrast-400));\n }\n\n :host([variant='ghost']) .remove-btn:hover {\n background: color-mix(in srgb, currentcolor 15%, transparent);\n }\n\n /* ========================================\n Hover / Active Feedback — interactive modes\n ======================================== */\n\n /* Solid (default) */\n :host(:not([variant]):is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip,\n :host([variant='solid']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-focus, var(--color-contrast-800));\n }\n\n :host(:not([variant]):is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip,\n :host([variant='solid']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-2xs);\n }\n\n /* Flat */\n :host([variant='flat']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='flat']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-sm);\n }\n\n /* Bordered */\n :host([variant='bordered']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-focus, var(--color-contrast-700));\n border-color: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='bordered']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-content, var(--color-contrast-900));\n box-shadow: var(--inset-shadow-sm);\n }\n\n /* Outline */\n :host([variant='outline']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n border-color: var(--_theme-focus, var(--color-contrast-700));\n }\n\n :host([variant='outline']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n box-shadow: var(--inset-shadow-2xs);\n }\n\n /* Ghost */\n :host([variant='ghost']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:hover .chip {\n background: var(--_theme-backdrop, var(--color-contrast-100));\n }\n\n :host([variant='ghost']:is([mode='selectable'], [mode='action']):not([disabled])) .chip-btn:active .chip {\n color: var(--_theme-contrast, var(--color-contrast-50));\n background: var(--_theme-base, var(--color-contrast-700));\n box-shadow: var(--inset-shadow-2xs);\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { ComponentSize, RoundedSize, ThemeColor, VisualVariant } from '../../types';
|
|
2
|
+
/** Chip component properties */
|
|
3
|
+
type ChipBaseProps = {
|
|
4
|
+
/** Accessible label (required for icon-only chips) */
|
|
5
|
+
'aria-label'?: string;
|
|
6
|
+
/** Theme color */
|
|
7
|
+
color?: ThemeColor;
|
|
8
|
+
/** Disable interactions */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
/** Border radius override */
|
|
11
|
+
rounded?: RoundedSize | '';
|
|
12
|
+
/** Component size */
|
|
13
|
+
size?: ComponentSize;
|
|
14
|
+
/** Value associated with this chip — included in emitted event detail */
|
|
15
|
+
value?: string;
|
|
16
|
+
/** Visual style variant */
|
|
17
|
+
variant?: Exclude<VisualVariant, 'glass' | 'text' | 'frost'>;
|
|
18
|
+
};
|
|
19
|
+
type BitChipMode = 'static' | 'removable' | 'selectable' | 'action';
|
|
20
|
+
/** Read-only presentation chip */
|
|
21
|
+
type StaticChipProps = {
|
|
22
|
+
mode?: Extract<BitChipMode, 'static'>;
|
|
23
|
+
};
|
|
24
|
+
/** Removable chip mode */
|
|
25
|
+
type RemovableChipProps = {
|
|
26
|
+
mode: Extract<BitChipMode, 'removable'>;
|
|
27
|
+
};
|
|
28
|
+
/** Selectable chip mode */
|
|
29
|
+
type SelectableChipProps = {
|
|
30
|
+
/** Controlled checked state for `mode="selectable"` */
|
|
31
|
+
checked?: boolean | undefined;
|
|
32
|
+
/** Initial checked state for uncontrolled `mode="selectable"` */
|
|
33
|
+
'default-checked'?: boolean;
|
|
34
|
+
mode: Extract<BitChipMode, 'selectable'>;
|
|
35
|
+
};
|
|
36
|
+
/** Action chip mode — behaves like a button, fires a click event without maintaining state */
|
|
37
|
+
type ActionChipProps = {
|
|
38
|
+
mode: Extract<BitChipMode, 'action'>;
|
|
39
|
+
};
|
|
40
|
+
export type BitChipEvents = {
|
|
41
|
+
change: {
|
|
42
|
+
checked: boolean;
|
|
43
|
+
originalEvent: Event;
|
|
44
|
+
value: string | undefined;
|
|
45
|
+
};
|
|
46
|
+
click: {
|
|
47
|
+
originalEvent: MouseEvent;
|
|
48
|
+
value: string | undefined;
|
|
49
|
+
};
|
|
50
|
+
remove: {
|
|
51
|
+
originalEvent: MouseEvent;
|
|
52
|
+
value: string | undefined;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
export type BitChipProps = ChipBaseProps & (StaticChipProps | RemovableChipProps | SelectableChipProps | ActionChipProps);
|
|
56
|
+
/**
|
|
57
|
+
* A compact, styled label element. Supports icons, a remove button, colors, sizes, and variants.
|
|
58
|
+
* Commonly used to represent tags, filters, or selected options in a multiselect field.
|
|
59
|
+
*
|
|
60
|
+
* @element bit-chip
|
|
61
|
+
*
|
|
62
|
+
* @attr {string} aria-label - Accessible label (required for icon-only chips)
|
|
63
|
+
* @attr {string} color - Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'
|
|
64
|
+
* @attr {string} variant - Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost'
|
|
65
|
+
* @attr {string} size - Component size: 'sm' | 'md' | 'lg'
|
|
66
|
+
* @attr {string} rounded - Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'
|
|
67
|
+
* @attr {string} mode - Interaction mode: 'static' | 'removable' | 'selectable' | 'action'
|
|
68
|
+
* @attr {boolean} disabled - Disable the chip
|
|
69
|
+
* @attr {string} value - Value included in emitted event detail
|
|
70
|
+
* @attr {boolean} checked - Controlled checked state for selectable chips
|
|
71
|
+
* @attr {boolean} default-checked - Initial checked state for uncontrolled selectable chips
|
|
72
|
+
*
|
|
73
|
+
* @slot - Chip label text
|
|
74
|
+
* @slot icon - Leading icon or decoration
|
|
75
|
+
*
|
|
76
|
+
* @event remove - Fired when the remove button is clicked, with `detail.value` and `detail.originalEvent`
|
|
77
|
+
* @event change - Fired when a selectable chip toggles, with `detail.checked`, `detail.value`, and `detail.originalEvent`
|
|
78
|
+
* @event click - Fired when an action chip is clicked, with `detail.value` and `detail.originalEvent`
|
|
79
|
+
*
|
|
80
|
+
* @cssprop --chip-bg - Background color
|
|
81
|
+
* @cssprop --chip-color - Text color
|
|
82
|
+
* @cssprop --chip-border-color - Border color
|
|
83
|
+
* @cssprop --chip-radius - Border radius
|
|
84
|
+
* @cssprop --chip-font-size - Font size
|
|
85
|
+
* @cssprop --chip-font-weight - Font weight
|
|
86
|
+
* @cssprop --chip-padding-x - Horizontal padding
|
|
87
|
+
* @cssprop --chip-padding-y - Vertical padding
|
|
88
|
+
* @cssprop --chip-gap - Gap between icon, label and remove button
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```html
|
|
92
|
+
* <!-- Static chip (read-only) -->
|
|
93
|
+
* <bit-chip color="primary">Design</bit-chip>
|
|
94
|
+
*
|
|
95
|
+
* <!-- Removable chip -->
|
|
96
|
+
* <bit-chip color="success" variant="flat" mode="removable" value="ts">
|
|
97
|
+
* TypeScript
|
|
98
|
+
* </bit-chip>
|
|
99
|
+
*
|
|
100
|
+
* <!-- Selectable chip (controlled) -->
|
|
101
|
+
* <bit-chip color="info" variant="flat" mode="selectable" checked value="ui">
|
|
102
|
+
* UI
|
|
103
|
+
* </bit-chip>
|
|
104
|
+
*
|
|
105
|
+
* <!-- Selectable chip (uncontrolled) -->
|
|
106
|
+
* <bit-chip color="info" variant="flat" mode="selectable" default-checked value="ui">
|
|
107
|
+
* UI
|
|
108
|
+
* </bit-chip>
|
|
109
|
+
*
|
|
110
|
+
* <!-- Action chip (acts like a button) -->
|
|
111
|
+
* <bit-chip color="warning" mode="action" value="add">
|
|
112
|
+
* <svg slot="icon" ...></svg>
|
|
113
|
+
* Add Item
|
|
114
|
+
* </bit-chip>
|
|
115
|
+
*
|
|
116
|
+
* <!-- Icon-only chip -->
|
|
117
|
+
* <bit-chip color="error" mode="action" aria-label="Delete">
|
|
118
|
+
* <svg slot="icon" ...></svg>
|
|
119
|
+
* </bit-chip>
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare const CHIP_TAG: string;
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/feedback/chip/chip.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAuCzF,gCAAgC;AAChC,KAAK,aAAa,GAAG;IACnB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC;IAC3B,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC9D,CAAC;AAEF,KAAK,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEpE,kCAAkC;AAClC,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;CACvC,CAAC;AAEF,0BAA0B;AAC1B,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;CACzC,CAAC;AAEF,2BAA2B;AAC3B,KAAK,mBAAmB,GAAG;IACzB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;CAC1C,CAAC;AAEF,8FAA8F;AAC9F,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;CACtC,CAAC;AAQF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC9E,KAAK,EAAE;QAAE,aAAa,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAChE,MAAM,EAAE;QAAE,aAAa,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,CAAC,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,eAAe,CAAC,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,eAAO,MAAM,QAAQ,QA8KnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../alert.cjs`),require(`../badge.cjs`),require(`../chip.cjs`),require(`../progress.cjs`),require(`../skeleton.cjs`),require(`../toast.cjs`);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { ALERT_TAG } from './alert/alert';
|
|
2
|
+
export type { BitAlertEvents, BitAlertProps } from './alert/alert';
|
|
3
|
+
export { BADGE_TAG } from './badge/badge';
|
|
4
|
+
export type { BitBadgeProps } from './badge/badge';
|
|
5
|
+
export { CHIP_TAG } from './chip/chip';
|
|
6
|
+
export type { BitChipEvents, BitChipProps } from './chip/chip';
|
|
7
|
+
export { PROGRESS_TAG } from './progress/progress';
|
|
8
|
+
export type { BitProgressProps } from './progress/progress';
|
|
9
|
+
export { SKELETON_TAG } from './skeleton/skeleton';
|
|
10
|
+
export type { BitSkeletonProps } from './skeleton/skeleton';
|
|
11
|
+
export { toast, TOAST_TAG } from './toast/toast';
|
|
12
|
+
export type { BitToastEvents, BitToastProps, ToastItem } from './toast/toast';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feedback/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`@layer buildit.base{:host{--_height:var(--progress-height,var(--size-2,.5rem));--_radius:var(--progress-radius,var(--rounded-full,9999px));--_circle-size:var(--progress-circle-size,6rem);--_circular-label-size:var(--progress-circular-label-size,var(--text-xl,1.25rem));--_circular-title-size:var(--progress-circular-title-size,var(--text-xs,.75rem));width:100%;display:block}.track{width:100%;height:var(--_height);background:var(--progress-track-bg,var(--color-contrast-300,#ddd));border-radius:var(--_radius);overflow:hidden}.fill{width:var(--_percent,0%);background:var(--progress-fill,var(--_theme-base,#3b82f6));border-radius:inherit;transform-origin:0;height:100%;transition:var(--_motion-transition,width var(--transition-normal))}:host(:dir(rtl)) .fill{transform-origin:100%}@keyframes bit-progress-slide{0%{transform:translate(-150%)scaleX(.6)}50%{transform:translate(50%)scaleX(1)}to{transform:translate(300%)scaleX(.6)}}:host([indeterminate]) .fill{width:40%;animation:var(--_motion-animation,bit-progress-slide 1.5s cubic-bezier(.4, 0, .2, 1) infinite)}:host(:dir(rtl)[indeterminate]) .fill{animation-direction:reverse}.wrapper{gap:var(--progress-label-gap,var(--space-1,.25rem));flex-direction:column;width:100%;display:flex}.header{gap:var(--space-2,.5rem);justify-content:space-between;align-items:baseline;display:none}:host([title]) .header{display:flex}.progress-title{font-size:var(--text-sm,.875rem);font-weight:var(--font-weight-medium,500);color:var(--progress-title-color,currentColor);line-height:1.25}.header-label{display:none}:host([title][label]) .header-label{display:inline}.bar-row{display:contents}:host([label]:not([title])) .bar-row{gap:var(--progress-label-gap,var(--space-2,.5rem));align-items:center;width:100%;display:flex}.track-outer{width:100%;position:relative}:host([label]:not([title])) .track-outer{flex:1;width:auto;min-width:0}.end-label{font-size:var(--text-sm,.875rem);color:var(--progress-label-color,currentColor);white-space:nowrap;flex-shrink:0;line-height:1.25}.row-label{display:none}:host([label]:not([title])) .row-label{display:inline}.floating-label{bottom:calc(100% + var(--space-1,.25rem));left:var(--_percent,0%);padding:var(--space-0-5,.125rem) var(--space-2,.5rem);font-size:var(--text-xs,.75rem);font-weight:var(--font-weight-medium,500);color:var(--color-white,#fff);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:var(--progress-fill,var(--_theme-base,#3b82f6));border-radius:var(--rounded-md,.375rem);line-height:1;display:none;position:absolute;transform:translate(-50%)}:host([floating-label]:not([indeterminate])) .floating-label{display:block}:host([floating-label]:not([indeterminate])) .wrapper{padding-top:calc(var(--text-xs,.75rem) + var(--space-1,.25rem) * 3)}.circular-track{width:var(--_circle-size);height:var(--_circle-size);justify-content:center;align-items:center;display:inline-flex;position:relative}.circular-track svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.circular-inner{gap:var(--space-0-5,.125rem);padding:calc(8% + var(--_height));text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.circular-label{text-overflow:ellipsis;max-width:100%;font-size:var(--_circular-label-size);font-weight:var(--font-weight-semibold,600);color:var(--progress-label-color,currentColor);white-space:nowrap;line-height:1;overflow:hidden}.circular-title{text-overflow:ellipsis;max-width:100%;font-size:var(--_circular-title-size);color:var(--progress-title-color,var(--color-contrast-500,#6b7280));white-space:nowrap;line-height:1.25;overflow:hidden}.circular-label:empty,.circular-title:empty{display:none}.circle-bg{fill:none;stroke:var(--progress-track-bg,var(--color-contrast-300,#ddd));stroke-width:var(--progress-stroke-width,calc(var(--_height) * 1.2))}.circle-fill{fill:none;stroke:var(--progress-fill,var(--_theme-base,#3b82f6));stroke-width:var(--progress-stroke-width,calc(var(--_height) * 1.2));stroke-linecap:round;transition:var(--_motion-transition,stroke-dashoffset var(--transition-normal))}@keyframes bit-progress-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes bit-progress-dash{0%{stroke-dasharray:1px var(--_circ);stroke-dashoffset:var(--_circ)}40%{stroke-dasharray:calc(var(--_circ) * .75) var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.1)}60%{stroke-dasharray:calc(var(--_circ) * .75) var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.1)}to{stroke-dasharray:1px var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.9)}}:host([indeterminate]) .circular-track svg{animation:var(--_motion-animation,bit-progress-spin 1.4s linear infinite)}:host([indeterminate]) .circle-fill{animation:var(--_motion-animation,bit-progress-dash 1.4s ease-in-out infinite)}}@layer buildit.utilities{:host([size=sm]){--_height:var(--size-1,.25rem);--_circle-size:4rem;--_circular-label-size:var(--text-sm,.875rem);--_circular-title-size:var(--text-2xs,.625rem)}:host([size=md]){--_height:var(--size-2,.5rem);--_circle-size:6rem}:host([size=lg]){--_height:var(--size-3-5,.875rem);--_circle-size:9rem;--_circular-label-size:var(--text-3xl,1.875rem);--_circular-title-size:var(--text-sm,.875rem)}}@media (prefers-reduced-motion:reduce){:host([indeterminate]) .fill{opacity:.6;width:100%}:host([indeterminate]) .circle-fill{stroke-dasharray:none}}`;exports.default=e;
|
|
2
|
+
//# sourceMappingURL=progress.css?inline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.css?inline.cjs","names":[],"sources":["../../../src/feedback/progress/progress.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_height: var(--progress-height, var(--size-2, 0.5rem));\n --_radius: var(--progress-radius, var(--rounded-full, 9999px));\n --_circle-size: var(--progress-circle-size, 6rem);\n --_circular-label-size: var(--progress-circular-label-size, var(--text-xl, 1.25rem));\n --_circular-title-size: var(--progress-circular-title-size, var(--text-xs, 0.75rem));\n\n display: block;\n\n /* Stretch to fill the parent container (matches native <progress> behaviour).\n The host's width is set against its parent, so % widths inside shadow DOM\n (.track, .fill) resolve correctly in any flex/grid/block context. */\n width: 100%;\n }\n\n /* ========================================\n Linear Bar\n ======================================== */\n\n .track {\n width: 100%;\n height: var(--_height);\n overflow: hidden;\n\n /* contrast-300 (88% lightness) gives a visible groove in light mode */\n background: var(--progress-track-bg, var(--color-contrast-300, #ddd));\n border-radius: var(--_radius);\n }\n\n .fill {\n width: var(--_percent, 0%);\n height: 100%;\n background: var(--progress-fill, var(--_theme-base, #3b82f6));\n border-radius: inherit;\n transform-origin: left;\n transition: var(--_motion-transition, width var(--transition-normal));\n }\n\n /* In RTL the fill grows from the inline-end (physical right) side */\n :host(:dir(rtl)) .fill {\n transform-origin: right;\n }\n\n /* Indeterminate: sliding bar */\n @keyframes bit-progress-slide {\n 0% {\n transform: translateX(-150%) scaleX(0.6);\n }\n\n 50% {\n transform: translateX(50%) scaleX(1);\n }\n\n 100% {\n transform: translateX(300%) scaleX(0.6);\n }\n }\n\n :host([indeterminate]) .fill {\n width: 40%;\n animation: var(--_motion-animation, bit-progress-slide 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite);\n }\n\n /* In RTL the indeterminate bar sweeps right-to-left */\n :host(:dir(rtl)[indeterminate]) .fill {\n animation-direction: reverse;\n }\n\n /* ========================================\n Wrapper / Label / Title / Floating label\n ======================================== */\n\n /* Flex-column shell for the linear variant */\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--progress-label-gap, var(--space-1, 0.25rem));\n width: 100%;\n }\n\n /* Header row ─ visible only when [title] is present */\n .header {\n display: none;\n gap: var(--space-2, 0.5rem);\n align-items: baseline;\n justify-content: space-between;\n }\n\n :host([title]) .header {\n display: flex;\n }\n\n .progress-title {\n font-size: var(--text-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1.25;\n color: var(--progress-title-color, currentColor);\n }\n\n /* Label inside the header ─ only when both [title] and [label] are set */\n .header-label {\n display: none;\n }\n\n :host([title][label]) .header-label {\n display: inline;\n }\n\n /* Bar row ─ transparent wrapper by default; becomes a flex row when\n [label] is present without [title] so the label sits beside the bar */\n .bar-row {\n display: contents;\n }\n\n :host([label]:not([title])) .bar-row {\n display: flex;\n gap: var(--progress-label-gap, var(--space-2, 0.5rem));\n align-items: center;\n width: 100%;\n }\n\n /* Outer track container ─ always position:relative for floating-label */\n .track-outer {\n position: relative;\n width: 100%;\n }\n\n :host([label]:not([title])) .track-outer {\n flex: 1 1 0%;\n width: auto;\n min-width: 0;\n }\n\n /* Shared label typography */\n .end-label {\n flex-shrink: 0;\n font-size: var(--text-sm, 0.875rem);\n line-height: 1.25;\n color: var(--progress-label-color, currentColor);\n white-space: nowrap;\n }\n\n /* Trailing end label ─ shown only when [label] is present without [title] */\n .row-label {\n display: none;\n }\n\n :host([label]:not([title])) .row-label {\n display: inline;\n }\n\n /* Floating label chip ─────────────────────────────────────────────────\n Positioned above the fill endpoint.\n Formula: left = X% (fill width) − Y (half chip width)\n Implemented as: left: var(--_percent); transform: translateX(-50%) */\n .floating-label {\n position: absolute;\n bottom: calc(100% + var(--space-1, 0.25rem));\n left: var(--_percent, 0%);\n display: none;\n padding: var(--space-0-5, 0.125rem) var(--space-2, 0.5rem);\n font-size: var(--text-xs, 0.75rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1;\n color: var(--color-white, #fff);\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n background: var(--progress-fill, var(--_theme-base, #3b82f6));\n border-radius: var(--rounded-md, 0.375rem);\n transform: translateX(-50%);\n }\n\n :host([floating-label]:not([indeterminate])) .floating-label {\n display: block;\n }\n\n /* Reserve vertical space above the track so the chip does not clip */\n :host([floating-label]:not([indeterminate])) .wrapper {\n padding-top: calc(var(--text-xs, 0.75rem) + var(--space-1, 0.25rem) * 3);\n }\n\n /* ========================================\n Circular variant\n ======================================== */\n\n .circular-track {\n position: relative; /* anchor the inner text overlay */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_circle-size);\n height: var(--_circle-size);\n }\n\n .circular-track svg {\n width: 100%;\n height: 100%;\n overflow: visible;\n transform: rotate(-90deg);\n }\n\n /* Inner overlay — label + title stacked and centered inside the ring */\n .circular-inner {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n gap: var(--space-0-5, 0.125rem);\n align-items: center;\n justify-content: center;\n\n /* Inset from the stroke edge so text stays clear of the ring */\n padding: calc(8% + var(--_height));\n overflow: hidden;\n text-align: center;\n pointer-events: none;\n }\n\n .circular-label {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_circular-label-size);\n font-weight: var(--font-weight-semibold, 600);\n line-height: 1;\n color: var(--progress-label-color, currentColor);\n white-space: nowrap;\n }\n\n .circular-title {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_circular-title-size);\n line-height: 1.25;\n color: var(--progress-title-color, var(--color-contrast-500, #6b7280));\n white-space: nowrap;\n }\n\n /* Hide empty inner text nodes so flexbox gap doesn't create phantom space */\n .circular-label:empty,\n .circular-title:empty {\n display: none;\n }\n\n .circle-bg {\n fill: none;\n stroke: var(--progress-track-bg, var(--color-contrast-300, #ddd));\n stroke-width: var(--progress-stroke-width, calc(var(--_height) * 1.2));\n }\n\n .circle-fill {\n fill: none;\n stroke: var(--progress-fill, var(--_theme-base, #3b82f6));\n stroke-width: var(--progress-stroke-width, calc(var(--_height) * 1.2));\n stroke-linecap: round;\n transition: var(--_motion-transition, stroke-dashoffset var(--transition-normal));\n }\n\n @keyframes bit-progress-spin {\n from {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n }\n\n @keyframes bit-progress-dash {\n 0% {\n stroke-dasharray: 1px var(--_circ);\n stroke-dashoffset: var(--_circ);\n }\n\n 40% {\n stroke-dasharray: calc(var(--_circ) * 0.75) var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.1);\n }\n\n 60% {\n stroke-dasharray: calc(var(--_circ) * 0.75) var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.1);\n }\n\n 100% {\n stroke-dasharray: 1px var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.9);\n }\n }\n\n :host([indeterminate]) .circular-track svg {\n animation: var(--_motion-animation, bit-progress-spin 1.4s linear infinite);\n }\n\n :host([indeterminate]) .circle-fill {\n animation: var(--_motion-animation, bit-progress-dash 1.4s ease-in-out infinite);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) {\n --_height: var(--size-1, 0.25rem);\n --_circle-size: 4rem;\n --_circular-label-size: var(--text-sm, 0.875rem);\n --_circular-title-size: var(--text-2xs, 0.625rem);\n }\n\n :host([size='md']) {\n --_height: var(--size-2, 0.5rem);\n --_circle-size: 6rem;\n }\n\n :host([size='lg']) {\n --_height: var(--size-3-5, 0.875rem);\n --_circle-size: 9rem;\n --_circular-label-size: var(--text-3xl, 1.875rem);\n --_circular-title-size: var(--text-sm, 0.875rem);\n }\n}\n\n/* Extra indeterminate state overrides — cannot be expressed via CSS variables alone */\n@media (prefers-reduced-motion: reduce) {\n :host([indeterminate]) .fill {\n width: 100%;\n opacity: 0.6;\n }\n\n :host([indeterminate]) .circle-fill {\n stroke-dasharray: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/feedback/progress/progress.css?inline
|
|
2
|
+
var e = "@layer buildit.base{:host{--_height:var(--progress-height,var(--size-2,.5rem));--_radius:var(--progress-radius,var(--rounded-full,9999px));--_circle-size:var(--progress-circle-size,6rem);--_circular-label-size:var(--progress-circular-label-size,var(--text-xl,1.25rem));--_circular-title-size:var(--progress-circular-title-size,var(--text-xs,.75rem));width:100%;display:block}.track{width:100%;height:var(--_height);background:var(--progress-track-bg,var(--color-contrast-300,#ddd));border-radius:var(--_radius);overflow:hidden}.fill{width:var(--_percent,0%);background:var(--progress-fill,var(--_theme-base,#3b82f6));border-radius:inherit;transform-origin:0;height:100%;transition:var(--_motion-transition,width var(--transition-normal))}:host(:dir(rtl)) .fill{transform-origin:100%}@keyframes bit-progress-slide{0%{transform:translate(-150%)scaleX(.6)}50%{transform:translate(50%)scaleX(1)}to{transform:translate(300%)scaleX(.6)}}:host([indeterminate]) .fill{width:40%;animation:var(--_motion-animation,bit-progress-slide 1.5s cubic-bezier(.4, 0, .2, 1) infinite)}:host(:dir(rtl)[indeterminate]) .fill{animation-direction:reverse}.wrapper{gap:var(--progress-label-gap,var(--space-1,.25rem));flex-direction:column;width:100%;display:flex}.header{gap:var(--space-2,.5rem);justify-content:space-between;align-items:baseline;display:none}:host([title]) .header{display:flex}.progress-title{font-size:var(--text-sm,.875rem);font-weight:var(--font-weight-medium,500);color:var(--progress-title-color,currentColor);line-height:1.25}.header-label{display:none}:host([title][label]) .header-label{display:inline}.bar-row{display:contents}:host([label]:not([title])) .bar-row{gap:var(--progress-label-gap,var(--space-2,.5rem));align-items:center;width:100%;display:flex}.track-outer{width:100%;position:relative}:host([label]:not([title])) .track-outer{flex:1;width:auto;min-width:0}.end-label{font-size:var(--text-sm,.875rem);color:var(--progress-label-color,currentColor);white-space:nowrap;flex-shrink:0;line-height:1.25}.row-label{display:none}:host([label]:not([title])) .row-label{display:inline}.floating-label{bottom:calc(100% + var(--space-1,.25rem));left:var(--_percent,0%);padding:var(--space-0-5,.125rem) var(--space-2,.5rem);font-size:var(--text-xs,.75rem);font-weight:var(--font-weight-medium,500);color:var(--color-white,#fff);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:var(--progress-fill,var(--_theme-base,#3b82f6));border-radius:var(--rounded-md,.375rem);line-height:1;display:none;position:absolute;transform:translate(-50%)}:host([floating-label]:not([indeterminate])) .floating-label{display:block}:host([floating-label]:not([indeterminate])) .wrapper{padding-top:calc(var(--text-xs,.75rem) + var(--space-1,.25rem) * 3)}.circular-track{width:var(--_circle-size);height:var(--_circle-size);justify-content:center;align-items:center;display:inline-flex;position:relative}.circular-track svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.circular-inner{gap:var(--space-0-5,.125rem);padding:calc(8% + var(--_height));text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.circular-label{text-overflow:ellipsis;max-width:100%;font-size:var(--_circular-label-size);font-weight:var(--font-weight-semibold,600);color:var(--progress-label-color,currentColor);white-space:nowrap;line-height:1;overflow:hidden}.circular-title{text-overflow:ellipsis;max-width:100%;font-size:var(--_circular-title-size);color:var(--progress-title-color,var(--color-contrast-500,#6b7280));white-space:nowrap;line-height:1.25;overflow:hidden}.circular-label:empty,.circular-title:empty{display:none}.circle-bg{fill:none;stroke:var(--progress-track-bg,var(--color-contrast-300,#ddd));stroke-width:var(--progress-stroke-width,calc(var(--_height) * 1.2))}.circle-fill{fill:none;stroke:var(--progress-fill,var(--_theme-base,#3b82f6));stroke-width:var(--progress-stroke-width,calc(var(--_height) * 1.2));stroke-linecap:round;transition:var(--_motion-transition,stroke-dashoffset var(--transition-normal))}@keyframes bit-progress-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes bit-progress-dash{0%{stroke-dasharray:1px var(--_circ);stroke-dashoffset:var(--_circ)}40%{stroke-dasharray:calc(var(--_circ) * .75) var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.1)}60%{stroke-dasharray:calc(var(--_circ) * .75) var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.1)}to{stroke-dasharray:1px var(--_circ);stroke-dashoffset:calc(var(--_circ) * -.9)}}:host([indeterminate]) .circular-track svg{animation:var(--_motion-animation,bit-progress-spin 1.4s linear infinite)}:host([indeterminate]) .circle-fill{animation:var(--_motion-animation,bit-progress-dash 1.4s ease-in-out infinite)}}@layer buildit.utilities{:host([size=sm]){--_height:var(--size-1,.25rem);--_circle-size:4rem;--_circular-label-size:var(--text-sm,.875rem);--_circular-title-size:var(--text-2xs,.625rem)}:host([size=md]){--_height:var(--size-2,.5rem);--_circle-size:6rem}:host([size=lg]){--_height:var(--size-3-5,.875rem);--_circle-size:9rem;--_circular-label-size:var(--text-3xl,1.875rem);--_circular-title-size:var(--text-sm,.875rem)}}@media (prefers-reduced-motion:reduce){:host([indeterminate]) .fill{opacity:.6;width:100%}:host([indeterminate]) .circle-fill{stroke-dasharray:none}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=progress.css?inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.css?inline.js","names":[],"sources":["../../../src/feedback/progress/progress.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_height: var(--progress-height, var(--size-2, 0.5rem));\n --_radius: var(--progress-radius, var(--rounded-full, 9999px));\n --_circle-size: var(--progress-circle-size, 6rem);\n --_circular-label-size: var(--progress-circular-label-size, var(--text-xl, 1.25rem));\n --_circular-title-size: var(--progress-circular-title-size, var(--text-xs, 0.75rem));\n\n display: block;\n\n /* Stretch to fill the parent container (matches native <progress> behaviour).\n The host's width is set against its parent, so % widths inside shadow DOM\n (.track, .fill) resolve correctly in any flex/grid/block context. */\n width: 100%;\n }\n\n /* ========================================\n Linear Bar\n ======================================== */\n\n .track {\n width: 100%;\n height: var(--_height);\n overflow: hidden;\n\n /* contrast-300 (88% lightness) gives a visible groove in light mode */\n background: var(--progress-track-bg, var(--color-contrast-300, #ddd));\n border-radius: var(--_radius);\n }\n\n .fill {\n width: var(--_percent, 0%);\n height: 100%;\n background: var(--progress-fill, var(--_theme-base, #3b82f6));\n border-radius: inherit;\n transform-origin: left;\n transition: var(--_motion-transition, width var(--transition-normal));\n }\n\n /* In RTL the fill grows from the inline-end (physical right) side */\n :host(:dir(rtl)) .fill {\n transform-origin: right;\n }\n\n /* Indeterminate: sliding bar */\n @keyframes bit-progress-slide {\n 0% {\n transform: translateX(-150%) scaleX(0.6);\n }\n\n 50% {\n transform: translateX(50%) scaleX(1);\n }\n\n 100% {\n transform: translateX(300%) scaleX(0.6);\n }\n }\n\n :host([indeterminate]) .fill {\n width: 40%;\n animation: var(--_motion-animation, bit-progress-slide 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite);\n }\n\n /* In RTL the indeterminate bar sweeps right-to-left */\n :host(:dir(rtl)[indeterminate]) .fill {\n animation-direction: reverse;\n }\n\n /* ========================================\n Wrapper / Label / Title / Floating label\n ======================================== */\n\n /* Flex-column shell for the linear variant */\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--progress-label-gap, var(--space-1, 0.25rem));\n width: 100%;\n }\n\n /* Header row ─ visible only when [title] is present */\n .header {\n display: none;\n gap: var(--space-2, 0.5rem);\n align-items: baseline;\n justify-content: space-between;\n }\n\n :host([title]) .header {\n display: flex;\n }\n\n .progress-title {\n font-size: var(--text-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1.25;\n color: var(--progress-title-color, currentColor);\n }\n\n /* Label inside the header ─ only when both [title] and [label] are set */\n .header-label {\n display: none;\n }\n\n :host([title][label]) .header-label {\n display: inline;\n }\n\n /* Bar row ─ transparent wrapper by default; becomes a flex row when\n [label] is present without [title] so the label sits beside the bar */\n .bar-row {\n display: contents;\n }\n\n :host([label]:not([title])) .bar-row {\n display: flex;\n gap: var(--progress-label-gap, var(--space-2, 0.5rem));\n align-items: center;\n width: 100%;\n }\n\n /* Outer track container ─ always position:relative for floating-label */\n .track-outer {\n position: relative;\n width: 100%;\n }\n\n :host([label]:not([title])) .track-outer {\n flex: 1 1 0%;\n width: auto;\n min-width: 0;\n }\n\n /* Shared label typography */\n .end-label {\n flex-shrink: 0;\n font-size: var(--text-sm, 0.875rem);\n line-height: 1.25;\n color: var(--progress-label-color, currentColor);\n white-space: nowrap;\n }\n\n /* Trailing end label ─ shown only when [label] is present without [title] */\n .row-label {\n display: none;\n }\n\n :host([label]:not([title])) .row-label {\n display: inline;\n }\n\n /* Floating label chip ─────────────────────────────────────────────────\n Positioned above the fill endpoint.\n Formula: left = X% (fill width) − Y (half chip width)\n Implemented as: left: var(--_percent); transform: translateX(-50%) */\n .floating-label {\n position: absolute;\n bottom: calc(100% + var(--space-1, 0.25rem));\n left: var(--_percent, 0%);\n display: none;\n padding: var(--space-0-5, 0.125rem) var(--space-2, 0.5rem);\n font-size: var(--text-xs, 0.75rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1;\n color: var(--color-white, #fff);\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n background: var(--progress-fill, var(--_theme-base, #3b82f6));\n border-radius: var(--rounded-md, 0.375rem);\n transform: translateX(-50%);\n }\n\n :host([floating-label]:not([indeterminate])) .floating-label {\n display: block;\n }\n\n /* Reserve vertical space above the track so the chip does not clip */\n :host([floating-label]:not([indeterminate])) .wrapper {\n padding-top: calc(var(--text-xs, 0.75rem) + var(--space-1, 0.25rem) * 3);\n }\n\n /* ========================================\n Circular variant\n ======================================== */\n\n .circular-track {\n position: relative; /* anchor the inner text overlay */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_circle-size);\n height: var(--_circle-size);\n }\n\n .circular-track svg {\n width: 100%;\n height: 100%;\n overflow: visible;\n transform: rotate(-90deg);\n }\n\n /* Inner overlay — label + title stacked and centered inside the ring */\n .circular-inner {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n gap: var(--space-0-5, 0.125rem);\n align-items: center;\n justify-content: center;\n\n /* Inset from the stroke edge so text stays clear of the ring */\n padding: calc(8% + var(--_height));\n overflow: hidden;\n text-align: center;\n pointer-events: none;\n }\n\n .circular-label {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_circular-label-size);\n font-weight: var(--font-weight-semibold, 600);\n line-height: 1;\n color: var(--progress-label-color, currentColor);\n white-space: nowrap;\n }\n\n .circular-title {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_circular-title-size);\n line-height: 1.25;\n color: var(--progress-title-color, var(--color-contrast-500, #6b7280));\n white-space: nowrap;\n }\n\n /* Hide empty inner text nodes so flexbox gap doesn't create phantom space */\n .circular-label:empty,\n .circular-title:empty {\n display: none;\n }\n\n .circle-bg {\n fill: none;\n stroke: var(--progress-track-bg, var(--color-contrast-300, #ddd));\n stroke-width: var(--progress-stroke-width, calc(var(--_height) * 1.2));\n }\n\n .circle-fill {\n fill: none;\n stroke: var(--progress-fill, var(--_theme-base, #3b82f6));\n stroke-width: var(--progress-stroke-width, calc(var(--_height) * 1.2));\n stroke-linecap: round;\n transition: var(--_motion-transition, stroke-dashoffset var(--transition-normal));\n }\n\n @keyframes bit-progress-spin {\n from {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n }\n\n @keyframes bit-progress-dash {\n 0% {\n stroke-dasharray: 1px var(--_circ);\n stroke-dashoffset: var(--_circ);\n }\n\n 40% {\n stroke-dasharray: calc(var(--_circ) * 0.75) var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.1);\n }\n\n 60% {\n stroke-dasharray: calc(var(--_circ) * 0.75) var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.1);\n }\n\n 100% {\n stroke-dasharray: 1px var(--_circ);\n stroke-dashoffset: calc(var(--_circ) * -0.9);\n }\n }\n\n :host([indeterminate]) .circular-track svg {\n animation: var(--_motion-animation, bit-progress-spin 1.4s linear infinite);\n }\n\n :host([indeterminate]) .circle-fill {\n animation: var(--_motion-animation, bit-progress-dash 1.4s ease-in-out infinite);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) {\n --_height: var(--size-1, 0.25rem);\n --_circle-size: 4rem;\n --_circular-label-size: var(--text-sm, 0.875rem);\n --_circular-title-size: var(--text-2xs, 0.625rem);\n }\n\n :host([size='md']) {\n --_height: var(--size-2, 0.5rem);\n --_circle-size: 6rem;\n }\n\n :host([size='lg']) {\n --_height: var(--size-3-5, 0.875rem);\n --_circle-size: 9rem;\n --_circular-label-size: var(--text-3xl, 1.875rem);\n --_circular-title-size: var(--text-sm, 0.875rem);\n }\n}\n\n/* Extra indeterminate state overrides — cannot be expressed via CSS variables alone */\n@media (prefers-reduced-motion: reduce) {\n :host([indeterminate]) .fill {\n width: 100%;\n opacity: 0.6;\n }\n\n :host([indeterminate]) .circle-fill {\n stroke-dasharray: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ComponentSize, ThemeColor } from '../../types';
|
|
2
|
+
/** Progress bar component properties */
|
|
3
|
+
export type BitProgressProps = {
|
|
4
|
+
/** Theme color for the fill bar */
|
|
5
|
+
color?: ThemeColor;
|
|
6
|
+
/** Floating chip centered above the fill endpoint (linear only). Hidden in indeterminate mode. Position formula: left = fill% − half chip width (CSS: left:X%; transform:translateX(−50%)). */
|
|
7
|
+
'floating-label'?: string;
|
|
8
|
+
/** When true, shows an infinite animation — use when progress is unknown. */
|
|
9
|
+
indeterminate?: boolean;
|
|
10
|
+
/** Accessible name AND visible text label.
|
|
11
|
+
* - Linear without `title`: rendered at the end of the bar.
|
|
12
|
+
* - Linear with `title`: moved into the header row above the bar.
|
|
13
|
+
* - Circular: large text centered inside the ring. */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Maximum value. Defaults to 100. */
|
|
16
|
+
max?: number;
|
|
17
|
+
/** Size variant controlling bar height */
|
|
18
|
+
size?: ComponentSize;
|
|
19
|
+
/** Title text.
|
|
20
|
+
* - Linear: displayed as a header above the bar; moves `label` into the header row.
|
|
21
|
+
* - Circular: smaller text displayed below the `label` inside the ring. */
|
|
22
|
+
title?: string;
|
|
23
|
+
/** 'linear' (default) or 'circular' */
|
|
24
|
+
type?: 'linear' | 'circular';
|
|
25
|
+
/** Current progress value (0 to `max`). Ignored when `indeterminate`. */
|
|
26
|
+
value?: number;
|
|
27
|
+
/** Human-readable value text for screen readers (e.g. "Step 2 of 5", "75%"). Overrides the raw aria-valuenow when set. */
|
|
28
|
+
'value-text'?: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* A linear progress bar for conveying operation progress.
|
|
32
|
+
* Supports determinate (known value) and indeterminate (unknown duration) modes.
|
|
33
|
+
*
|
|
34
|
+
* @element bit-progress
|
|
35
|
+
*
|
|
36
|
+
* @attr {number} value - Current value (0–max). Defaults to 0.
|
|
37
|
+
* @attr {number} max - Maximum value. Defaults to 100.
|
|
38
|
+
* @attr {boolean} indeterminate - Show infinite animation (ignores value/max).
|
|
39
|
+
* @attr {string} color - Theme color: 'primary' | 'success' | 'warning' | 'error' | …
|
|
40
|
+
* @attr {string} size - Bar height: 'sm' | 'md' | 'lg'
|
|
41
|
+
* @attr {string} label - Visible text label + accessible name. Linear: at bar end (or header row with title). Circular: large text centered inside the ring.
|
|
42
|
+
* @attr {string} title - Title text. Linear: header above the bar (moves label to header row). Circular: smaller text below the label inside the ring.
|
|
43
|
+
* @attr {string} floating-label - Floating chip centered above the fill endpoint (linear only); hidden when indeterminate.
|
|
44
|
+
*
|
|
45
|
+
* @cssprop --progress-height - Bar height override
|
|
46
|
+
* @cssprop --progress-track-bg - Track background color
|
|
47
|
+
* @cssprop --progress-fill - Fill bar color
|
|
48
|
+
* @cssprop --progress-radius - Border radius
|
|
49
|
+
* @cssprop --progress-label-gap - Gap between header/bar row and between bar and trailing label (default 0.25 rem)
|
|
50
|
+
* @cssprop --progress-title-color - Title text color (defaults to currentColor)
|
|
51
|
+
* @cssprop --progress-label-color - Label text color (defaults to currentColor)
|
|
52
|
+
* @cssprop --progress-circle-size - Circular indicator diameter (default 6rem)
|
|
53
|
+
* @cssprop --progress-circular-label-size - Font size of the label inside the ring (default --text-xl)
|
|
54
|
+
* @cssprop --progress-circular-title-size - Font size of the title inside the ring (default --text-xs)
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```html
|
|
58
|
+
* <bit-progress value="45"></bit-progress>
|
|
59
|
+
* <bit-progress value="75" max="100" color="success" size="lg"></bit-progress>
|
|
60
|
+
* <bit-progress indeterminate color="primary" label="Loading…"></bit-progress>
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare const PROGRESS_TAG: string;
|
|
64
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/feedback/progress/progress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK7D,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mCAAmC;IACnC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,+LAA+L;IAC/L,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;0DAGsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;+EAE2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0HAA0H;IAC1H,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,YAAY,QAmGvB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=`@layer buildit.base{:host{--_bg:var(--skeleton-bg,var(--color-contrast-200));--_highlight:var(--skeleton-highlight,var(--color-contrast-100));--_radius:var(--skeleton-radius,var(--rounded-lg));--_circle-size:var(--skeleton-size,var(--size-10));--_width:var(--skeleton-width,100%);--_height:var(--skeleton-height,var(--size-4));--_line-gap:var(--skeleton-line-gap,var(--size-2));--_last-line-width:var(--skeleton-last-line-width,60%);--_duration:var(--skeleton-duration,1.6s);--_stripe-size:var(--skeleton-stripe-size,8px);width:var(--_width);height:var(--_height);display:inline-block}.stack{gap:var(--_line-gap);width:100%;height:100%;display:grid}.bone{background:var(--_bg);border-radius:var(--_radius);width:100%;height:100%;position:relative;overflow:hidden}.bone:after{content:"";background:linear-gradient(90deg, var(--_bg) 0%, var(--_highlight) 50%, var(--_bg) 100%);animation:var(--_motion-animation,bit-skeleton-shimmer var(--_duration) linear infinite);position:absolute;inset:0;transform:translate(-100%)}:host([data-animated=false]) .bone:after{display:none}:host([data-paused]) .bone:after{animation-play-state:paused}@keyframes bit-skeleton-shimmer{to{transform:translate(100%)}}:host(:dir(rtl)) .bone:after{animation-direction:reverse}}@layer buildit.variants{:host([variant=circle]){--_radius:var(--rounded-full);width:var(--skeleton-width,var(--_circle-size));height:var(--skeleton-height,var(--_circle-size));aspect-ratio:1}:host([variant=text]){--_height:var(--size-3);--_radius:var(--rounded-sm);height:auto}:host([variant=text]) .stack{height:auto}:host([variant=text]) .bone{height:var(--_height)}:host([variant=text]) .bone[data-last=true]{width:var(--_last-line-width)}}@layer buildit.striped{:host([striped]) .stack{width:99%}:host([striped]) .bone{--_stripe-color:var(--skeleton-stripe-color,var(--color-contrast-400));border:var(--border) dashed var(--_stripe-color);background-color:#0000}:host([striped]) .bone:before{--_stripe-color:var(--skeleton-stripe-color,var(--color-contrast-300));content:"";background-color:var(--_stripe-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E");-webkit-mask-size:var(--_stripe-size) var(--_stripe-size);-webkit-mask-size:var(--_stripe-size) var(--_stripe-size);mask-size:var(--_stripe-size) var(--_stripe-size);position:absolute;inset:0}:host([striped]) .bone:after{display:none}}@layer buildit.utilities{:host([size=sm]){--_height:var(--size-3);--_circle-size:var(--size-8)}:host([size=md]){--_height:var(--size-4);--_circle-size:var(--size-10)}:host([size=lg]){--_height:var(--size-6);--_circle-size:var(--size-14)}}@media (forced-colors:active){.bone{background:buttonface;border:1px solid buttontext}.bone:after{display:none}}`;exports.default=e;
|
|
2
|
+
//# sourceMappingURL=skeleton.css?inline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.css?inline.cjs","names":[],"sources":["../../../src/feedback/skeleton/skeleton.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_bg: var(--skeleton-bg, var(--color-contrast-200));\n --_highlight: var(--skeleton-highlight, var(--color-contrast-100));\n --_radius: var(--skeleton-radius, var(--rounded-lg));\n --_circle-size: var(--skeleton-size, var(--size-10));\n --_width: var(--skeleton-width, 100%);\n --_height: var(--skeleton-height, var(--size-4));\n --_line-gap: var(--skeleton-line-gap, var(--size-2));\n --_last-line-width: var(--skeleton-last-line-width, 60%);\n --_duration: var(--skeleton-duration, 1.6s);\n --_stripe-size: var(--skeleton-stripe-size, 8px);\n\n display: inline-block;\n width: var(--_width);\n height: var(--_height);\n }\n\n .stack {\n display: grid;\n gap: var(--_line-gap);\n width: 100%;\n height: 100%;\n }\n\n .bone {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: var(--_bg);\n border-radius: var(--_radius);\n }\n\n .bone::after {\n position: absolute;\n inset: 0;\n content: '';\n background: linear-gradient(90deg, var(--_bg) 0%, var(--_highlight) 50%, var(--_bg) 100%);\n transform: translateX(-100%);\n animation: var(--_motion-animation, bit-skeleton-shimmer var(--_duration) linear infinite);\n }\n\n :host([data-animated='false']) .bone::after {\n display: none;\n }\n\n /* Pause shimmer when scrolled out of the viewport — no visible effect, saves GPU */\n :host([data-paused]) .bone::after {\n animation-play-state: paused;\n }\n\n @keyframes bit-skeleton-shimmer {\n to {\n transform: translateX(100%);\n }\n }\n\n /* In RTL the shimmer should sweep right-to-left */\n :host(:dir(rtl)) .bone::after {\n animation-direction: reverse;\n }\n}\n\n@layer buildit.variants {\n /* Circle variant — avatars, icons */\n :host([variant='circle']) {\n --_radius: var(--rounded-full);\n\n width: var(--skeleton-width, var(--_circle-size));\n height: var(--skeleton-height, var(--_circle-size));\n aspect-ratio: 1 / 1;\n }\n\n /* Text variant — thinner, for inline text lines */\n :host([variant='text']) {\n --_height: var(--size-3);\n --_radius: var(--rounded-sm);\n\n height: auto;\n }\n\n :host([variant='text']) .stack {\n height: auto;\n }\n\n :host([variant='text']) .bone {\n height: var(--_height);\n }\n\n :host([variant='text']) .bone[data-last='true'] {\n width: var(--_last-line-width);\n }\n}\n\n@layer buildit.striped {\n :host([striped]) .stack {\n width: 99%;\n }\n\n :host([striped]) .bone {\n --_stripe-color: var(--skeleton-stripe-color, var(--color-contrast-400));\n\n background-color: transparent;\n border: var(--border) dashed var(--_stripe-color);\n }\n\n :host([striped]) .bone::before {\n --_stripe-color: var(--skeleton-stripe-color, var(--color-contrast-300));\n\n position: absolute;\n inset: 0;\n content: '';\n background-color: var(--_stripe-color);\n mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E\");\n mask-size: var(--_stripe-size) var(--_stripe-size);\n }\n\n :host([striped]) .bone::after {\n display: none;\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) {\n --_height: var(--size-3);\n --_circle-size: var(--size-8);\n }\n\n :host([size='md']) {\n --_height: var(--size-4);\n --_circle-size: var(--size-10);\n }\n\n :host([size='lg']) {\n --_height: var(--size-6);\n --_circle-size: var(--size-14);\n }\n}\n\n@media (forced-colors: active) {\n .bone {\n background: ButtonFace;\n border: 1px solid ButtonText;\n }\n\n .bone::after {\n display: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/feedback/skeleton/skeleton.css?inline
|
|
2
|
+
var e = "@layer buildit.base{:host{--_bg:var(--skeleton-bg,var(--color-contrast-200));--_highlight:var(--skeleton-highlight,var(--color-contrast-100));--_radius:var(--skeleton-radius,var(--rounded-lg));--_circle-size:var(--skeleton-size,var(--size-10));--_width:var(--skeleton-width,100%);--_height:var(--skeleton-height,var(--size-4));--_line-gap:var(--skeleton-line-gap,var(--size-2));--_last-line-width:var(--skeleton-last-line-width,60%);--_duration:var(--skeleton-duration,1.6s);--_stripe-size:var(--skeleton-stripe-size,8px);width:var(--_width);height:var(--_height);display:inline-block}.stack{gap:var(--_line-gap);width:100%;height:100%;display:grid}.bone{background:var(--_bg);border-radius:var(--_radius);width:100%;height:100%;position:relative;overflow:hidden}.bone:after{content:\"\";background:linear-gradient(90deg, var(--_bg) 0%, var(--_highlight) 50%, var(--_bg) 100%);animation:var(--_motion-animation,bit-skeleton-shimmer var(--_duration) linear infinite);position:absolute;inset:0;transform:translate(-100%)}:host([data-animated=false]) .bone:after{display:none}:host([data-paused]) .bone:after{animation-play-state:paused}@keyframes bit-skeleton-shimmer{to{transform:translate(100%)}}:host(:dir(rtl)) .bone:after{animation-direction:reverse}}@layer buildit.variants{:host([variant=circle]){--_radius:var(--rounded-full);width:var(--skeleton-width,var(--_circle-size));height:var(--skeleton-height,var(--_circle-size));aspect-ratio:1}:host([variant=text]){--_height:var(--size-3);--_radius:var(--rounded-sm);height:auto}:host([variant=text]) .stack{height:auto}:host([variant=text]) .bone{height:var(--_height)}:host([variant=text]) .bone[data-last=true]{width:var(--_last-line-width)}}@layer buildit.striped{:host([striped]) .stack{width:99%}:host([striped]) .bone{--_stripe-color:var(--skeleton-stripe-color,var(--color-contrast-400));border:var(--border) dashed var(--_stripe-color);background-color:#0000}:host([striped]) .bone:before{--_stripe-color:var(--skeleton-stripe-color,var(--color-contrast-300));content:\"\";background-color:var(--_stripe-color);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E\");-webkit-mask-size:var(--_stripe-size) var(--_stripe-size);-webkit-mask-size:var(--_stripe-size) var(--_stripe-size);mask-size:var(--_stripe-size) var(--_stripe-size);position:absolute;inset:0}:host([striped]) .bone:after{display:none}}@layer buildit.utilities{:host([size=sm]){--_height:var(--size-3);--_circle-size:var(--size-8)}:host([size=md]){--_height:var(--size-4);--_circle-size:var(--size-10)}:host([size=lg]){--_height:var(--size-6);--_circle-size:var(--size-14)}}@media (forced-colors:active){.bone{background:buttonface;border:1px solid buttontext}.bone:after{display:none}}";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=skeleton.css?inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.css?inline.js","names":[],"sources":["../../../src/feedback/skeleton/skeleton.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_bg: var(--skeleton-bg, var(--color-contrast-200));\n --_highlight: var(--skeleton-highlight, var(--color-contrast-100));\n --_radius: var(--skeleton-radius, var(--rounded-lg));\n --_circle-size: var(--skeleton-size, var(--size-10));\n --_width: var(--skeleton-width, 100%);\n --_height: var(--skeleton-height, var(--size-4));\n --_line-gap: var(--skeleton-line-gap, var(--size-2));\n --_last-line-width: var(--skeleton-last-line-width, 60%);\n --_duration: var(--skeleton-duration, 1.6s);\n --_stripe-size: var(--skeleton-stripe-size, 8px);\n\n display: inline-block;\n width: var(--_width);\n height: var(--_height);\n }\n\n .stack {\n display: grid;\n gap: var(--_line-gap);\n width: 100%;\n height: 100%;\n }\n\n .bone {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: var(--_bg);\n border-radius: var(--_radius);\n }\n\n .bone::after {\n position: absolute;\n inset: 0;\n content: '';\n background: linear-gradient(90deg, var(--_bg) 0%, var(--_highlight) 50%, var(--_bg) 100%);\n transform: translateX(-100%);\n animation: var(--_motion-animation, bit-skeleton-shimmer var(--_duration) linear infinite);\n }\n\n :host([data-animated='false']) .bone::after {\n display: none;\n }\n\n /* Pause shimmer when scrolled out of the viewport — no visible effect, saves GPU */\n :host([data-paused]) .bone::after {\n animation-play-state: paused;\n }\n\n @keyframes bit-skeleton-shimmer {\n to {\n transform: translateX(100%);\n }\n }\n\n /* In RTL the shimmer should sweep right-to-left */\n :host(:dir(rtl)) .bone::after {\n animation-direction: reverse;\n }\n}\n\n@layer buildit.variants {\n /* Circle variant — avatars, icons */\n :host([variant='circle']) {\n --_radius: var(--rounded-full);\n\n width: var(--skeleton-width, var(--_circle-size));\n height: var(--skeleton-height, var(--_circle-size));\n aspect-ratio: 1 / 1;\n }\n\n /* Text variant — thinner, for inline text lines */\n :host([variant='text']) {\n --_height: var(--size-3);\n --_radius: var(--rounded-sm);\n\n height: auto;\n }\n\n :host([variant='text']) .stack {\n height: auto;\n }\n\n :host([variant='text']) .bone {\n height: var(--_height);\n }\n\n :host([variant='text']) .bone[data-last='true'] {\n width: var(--_last-line-width);\n }\n}\n\n@layer buildit.striped {\n :host([striped]) .stack {\n width: 99%;\n }\n\n :host([striped]) .bone {\n --_stripe-color: var(--skeleton-stripe-color, var(--color-contrast-400));\n\n background-color: transparent;\n border: var(--border) dashed var(--_stripe-color);\n }\n\n :host([striped]) .bone::before {\n --_stripe-color: var(--skeleton-stripe-color, var(--color-contrast-300));\n\n position: absolute;\n inset: 0;\n content: '';\n background-color: var(--_stripe-color);\n mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cline x1='0' y1='8' x2='8' y2='0' stroke='white' stroke-width='1'/%3E%3C/svg%3E\");\n mask-size: var(--_stripe-size) var(--_stripe-size);\n }\n\n :host([striped]) .bone::after {\n display: none;\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) {\n --_height: var(--size-3);\n --_circle-size: var(--size-8);\n }\n\n :host([size='md']) {\n --_height: var(--size-4);\n --_circle-size: var(--size-10);\n }\n\n :host([size='lg']) {\n --_height: var(--size-6);\n --_circle-size: var(--size-14);\n }\n}\n\n@media (forced-colors: active) {\n .bone {\n background: ButtonFace;\n border: 1px solid ButtonText;\n }\n\n .bone::after {\n display: none;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ComponentSize } from '../../types';
|
|
2
|
+
/** Skeleton loader component properties */
|
|
3
|
+
export type BitSkeletonProps = {
|
|
4
|
+
/** Toggle shimmer animation */
|
|
5
|
+
animated?: boolean;
|
|
6
|
+
/** Height override (e.g. '1rem', '3rem') */
|
|
7
|
+
height?: string;
|
|
8
|
+
/** Number of text lines for `variant='text'` */
|
|
9
|
+
lines?: number;
|
|
10
|
+
/** Radius override (e.g. '9999px', 'var(--rounded-xl)') */
|
|
11
|
+
radius?: string;
|
|
12
|
+
/** Size preset controlling line height and circle size */
|
|
13
|
+
size?: ComponentSize;
|
|
14
|
+
/** Render diagonal stripes instead of the shimmer — useful as a design-mode placeholder */
|
|
15
|
+
striped?: boolean;
|
|
16
|
+
/** Visual variant: 'rect' (default), 'circle', or 'text' */
|
|
17
|
+
variant?: 'rect' | 'circle' | 'text';
|
|
18
|
+
/** Width override (e.g. '12rem', '70%') */
|
|
19
|
+
width?: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A shimmer placeholder that represents loading content.
|
|
23
|
+
* Control dimensions via the `--skeleton-width` and `--skeleton-height` CSS custom properties,
|
|
24
|
+
* or via `width` / `height` inline styles.
|
|
25
|
+
*
|
|
26
|
+
* @element bit-skeleton
|
|
27
|
+
*
|
|
28
|
+
* @attr {string} variant - Shape: 'rect' (default) | 'circle' | 'text'
|
|
29
|
+
* @attr {string} size - Height/circle preset: 'sm' | 'md' | 'lg'
|
|
30
|
+
* @attr {string} width - Width override (CSS length/percentage)
|
|
31
|
+
* @attr {string} height - Height override (CSS length)
|
|
32
|
+
* @attr {string} radius - Radius override
|
|
33
|
+
* @attr {boolean} animated - Disable with `animated="false"`
|
|
34
|
+
* @attr {number} lines - Text line count (only for `variant='text'`)
|
|
35
|
+
* @attr {boolean} striped - Replace shimmer with diagonal stripes
|
|
36
|
+
*
|
|
37
|
+
* @cssprop --skeleton-bg - Base shimmer color
|
|
38
|
+
* @cssprop --skeleton-highlight - Shimmer highlight color
|
|
39
|
+
* @cssprop --skeleton-radius - Border radius
|
|
40
|
+
* @cssprop --skeleton-size - Circle fallback size
|
|
41
|
+
* @cssprop --skeleton-width - Width (default: 100%)
|
|
42
|
+
* @cssprop --skeleton-height - Height (default: var(--size-4))
|
|
43
|
+
* @cssprop --skeleton-line-gap - Vertical gap between text lines
|
|
44
|
+
* @cssprop --skeleton-last-line-width - Width of the final text line
|
|
45
|
+
* @cssprop --skeleton-duration - Shimmer animation duration
|
|
46
|
+
* @cssprop --skeleton-stripe-size - Width of each diagonal stripe (default: 6px)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```html
|
|
50
|
+
* <!-- Paragraph lines -->
|
|
51
|
+
* <bit-skeleton variant="text" lines="3" width="100%"></bit-skeleton>
|
|
52
|
+
*
|
|
53
|
+
* <!-- Avatar -->
|
|
54
|
+
* <bit-skeleton variant="circle" size="md"></bit-skeleton>
|
|
55
|
+
*
|
|
56
|
+
* <!-- Card image -->
|
|
57
|
+
* <bit-skeleton width="100%" height="10rem"></bit-skeleton>
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare const SKELETON_TAG: string;
|
|
61
|
+
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/feedback/skeleton/skeleton.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,YAAY,QAgEvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feedback/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|