@vanrot/ui 0.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/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata.d.ts +1434 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +816 -0
- package/dist/metadata.js.map +1 -0
- package/dist/primitives/alert/ui.alert.d.ts +4 -0
- package/dist/primitives/alert/ui.alert.d.ts.map +1 -0
- package/dist/primitives/alert/ui.alert.js +8 -0
- package/dist/primitives/alert/ui.alert.js.map +1 -0
- package/dist/primitives/avatar/ui.avatar.d.ts +4 -0
- package/dist/primitives/avatar/ui.avatar.d.ts.map +1 -0
- package/dist/primitives/avatar/ui.avatar.js +8 -0
- package/dist/primitives/avatar/ui.avatar.js.map +1 -0
- package/dist/primitives/badge/ui.badge.d.ts +4 -0
- package/dist/primitives/badge/ui.badge.d.ts.map +1 -0
- package/dist/primitives/badge/ui.badge.js +8 -0
- package/dist/primitives/badge/ui.badge.js.map +1 -0
- package/dist/primitives/breadcrumb/ui.breadcrumb.d.ts +4 -0
- package/dist/primitives/breadcrumb/ui.breadcrumb.d.ts.map +1 -0
- package/dist/primitives/breadcrumb/ui.breadcrumb.js +8 -0
- package/dist/primitives/breadcrumb/ui.breadcrumb.js.map +1 -0
- package/dist/primitives/button/ui.button.d.ts +4 -0
- package/dist/primitives/button/ui.button.d.ts.map +1 -0
- package/dist/primitives/button/ui.button.js +8 -0
- package/dist/primitives/button/ui.button.js.map +1 -0
- package/dist/primitives/card/ui.card.d.ts +5 -0
- package/dist/primitives/card/ui.card.d.ts.map +1 -0
- package/dist/primitives/card/ui.card.js +10 -0
- package/dist/primitives/card/ui.card.js.map +1 -0
- package/dist/primitives/checkbox/ui.checkbox.d.ts +4 -0
- package/dist/primitives/checkbox/ui.checkbox.d.ts.map +1 -0
- package/dist/primitives/checkbox/ui.checkbox.js +8 -0
- package/dist/primitives/checkbox/ui.checkbox.js.map +1 -0
- package/dist/primitives/command-menu/ui.command-menu.d.ts +4 -0
- package/dist/primitives/command-menu/ui.command-menu.d.ts.map +1 -0
- package/dist/primitives/command-menu/ui.command-menu.js +8 -0
- package/dist/primitives/command-menu/ui.command-menu.js.map +1 -0
- package/dist/primitives/container/ui.container.d.ts +4 -0
- package/dist/primitives/container/ui.container.d.ts.map +1 -0
- package/dist/primitives/container/ui.container.js +8 -0
- package/dist/primitives/container/ui.container.js.map +1 -0
- package/dist/primitives/dialog/ui.dialog.d.ts +4 -0
- package/dist/primitives/dialog/ui.dialog.d.ts.map +1 -0
- package/dist/primitives/dialog/ui.dialog.js +8 -0
- package/dist/primitives/dialog/ui.dialog.js.map +1 -0
- package/dist/primitives/drawer/ui.drawer.d.ts +4 -0
- package/dist/primitives/drawer/ui.drawer.d.ts.map +1 -0
- package/dist/primitives/drawer/ui.drawer.js +8 -0
- package/dist/primitives/drawer/ui.drawer.js.map +1 -0
- package/dist/primitives/dropdown/ui.dropdown.d.ts +4 -0
- package/dist/primitives/dropdown/ui.dropdown.d.ts.map +1 -0
- package/dist/primitives/dropdown/ui.dropdown.js +8 -0
- package/dist/primitives/dropdown/ui.dropdown.js.map +1 -0
- package/dist/primitives/empty-state/ui.empty-state.d.ts +4 -0
- package/dist/primitives/empty-state/ui.empty-state.d.ts.map +1 -0
- package/dist/primitives/empty-state/ui.empty-state.js +8 -0
- package/dist/primitives/empty-state/ui.empty-state.js.map +1 -0
- package/dist/primitives/footer/ui.footer.d.ts +4 -0
- package/dist/primitives/footer/ui.footer.d.ts.map +1 -0
- package/dist/primitives/footer/ui.footer.js +8 -0
- package/dist/primitives/footer/ui.footer.js.map +1 -0
- package/dist/primitives/form/ui.form.d.ts +4 -0
- package/dist/primitives/form/ui.form.d.ts.map +1 -0
- package/dist/primitives/form/ui.form.js +8 -0
- package/dist/primitives/form/ui.form.js.map +1 -0
- package/dist/primitives/form-field/ui.form-field.d.ts +4 -0
- package/dist/primitives/form-field/ui.form-field.d.ts.map +1 -0
- package/dist/primitives/form-field/ui.form-field.js +8 -0
- package/dist/primitives/form-field/ui.form-field.js.map +1 -0
- package/dist/primitives/grid/ui.grid.d.ts +4 -0
- package/dist/primitives/grid/ui.grid.d.ts.map +1 -0
- package/dist/primitives/grid/ui.grid.js +8 -0
- package/dist/primitives/grid/ui.grid.js.map +1 -0
- package/dist/primitives/header/ui.header.d.ts +4 -0
- package/dist/primitives/header/ui.header.d.ts.map +1 -0
- package/dist/primitives/header/ui.header.js +8 -0
- package/dist/primitives/header/ui.header.js.map +1 -0
- package/dist/primitives/img/ui.img.d.ts +4 -0
- package/dist/primitives/img/ui.img.d.ts.map +1 -0
- package/dist/primitives/img/ui.img.js +8 -0
- package/dist/primitives/img/ui.img.js.map +1 -0
- package/dist/primitives/input/ui.input.d.ts +4 -0
- package/dist/primitives/input/ui.input.d.ts.map +1 -0
- package/dist/primitives/input/ui.input.js +8 -0
- package/dist/primitives/input/ui.input.js.map +1 -0
- package/dist/primitives/label/ui.label.d.ts +4 -0
- package/dist/primitives/label/ui.label.d.ts.map +1 -0
- package/dist/primitives/label/ui.label.js +8 -0
- package/dist/primitives/label/ui.label.js.map +1 -0
- package/dist/primitives/layout/ui.layout.d.ts +4 -0
- package/dist/primitives/layout/ui.layout.d.ts.map +1 -0
- package/dist/primitives/layout/ui.layout.js +8 -0
- package/dist/primitives/layout/ui.layout.js.map +1 -0
- package/dist/primitives/list/ui.list.d.ts +4 -0
- package/dist/primitives/list/ui.list.d.ts.map +1 -0
- package/dist/primitives/list/ui.list.js +8 -0
- package/dist/primitives/list/ui.list.js.map +1 -0
- package/dist/primitives/list-item/ui.list-item.d.ts +4 -0
- package/dist/primitives/list-item/ui.list-item.d.ts.map +1 -0
- package/dist/primitives/list-item/ui.list-item.js +8 -0
- package/dist/primitives/list-item/ui.list-item.js.map +1 -0
- package/dist/primitives/loader/ui.loader.d.ts +4 -0
- package/dist/primitives/loader/ui.loader.d.ts.map +1 -0
- package/dist/primitives/loader/ui.loader.js +8 -0
- package/dist/primitives/loader/ui.loader.js.map +1 -0
- package/dist/primitives/nav/ui.nav.d.ts +4 -0
- package/dist/primitives/nav/ui.nav.d.ts.map +1 -0
- package/dist/primitives/nav/ui.nav.js +8 -0
- package/dist/primitives/nav/ui.nav.js.map +1 -0
- package/dist/primitives/pagination/ui.pagination.d.ts +4 -0
- package/dist/primitives/pagination/ui.pagination.d.ts.map +1 -0
- package/dist/primitives/pagination/ui.pagination.js +8 -0
- package/dist/primitives/pagination/ui.pagination.js.map +1 -0
- package/dist/primitives/popover/ui.popover.d.ts +4 -0
- package/dist/primitives/popover/ui.popover.d.ts.map +1 -0
- package/dist/primitives/popover/ui.popover.js +8 -0
- package/dist/primitives/popover/ui.popover.js.map +1 -0
- package/dist/primitives/radio/ui.radio.d.ts +4 -0
- package/dist/primitives/radio/ui.radio.d.ts.map +1 -0
- package/dist/primitives/radio/ui.radio.js +8 -0
- package/dist/primitives/radio/ui.radio.js.map +1 -0
- package/dist/primitives/radio-group/ui.radio-group.d.ts +4 -0
- package/dist/primitives/radio-group/ui.radio-group.d.ts.map +1 -0
- package/dist/primitives/radio-group/ui.radio-group.js +8 -0
- package/dist/primitives/radio-group/ui.radio-group.js.map +1 -0
- package/dist/primitives/section/ui.section.d.ts +4 -0
- package/dist/primitives/section/ui.section.d.ts.map +1 -0
- package/dist/primitives/section/ui.section.js +8 -0
- package/dist/primitives/section/ui.section.js.map +1 -0
- package/dist/primitives/select/ui.select.d.ts +4 -0
- package/dist/primitives/select/ui.select.d.ts.map +1 -0
- package/dist/primitives/select/ui.select.js +8 -0
- package/dist/primitives/select/ui.select.js.map +1 -0
- package/dist/primitives/separator/ui.separator.d.ts +4 -0
- package/dist/primitives/separator/ui.separator.d.ts.map +1 -0
- package/dist/primitives/separator/ui.separator.js +8 -0
- package/dist/primitives/separator/ui.separator.js.map +1 -0
- package/dist/primitives/sidebar/ui.sidebar.d.ts +4 -0
- package/dist/primitives/sidebar/ui.sidebar.d.ts.map +1 -0
- package/dist/primitives/sidebar/ui.sidebar.js +8 -0
- package/dist/primitives/sidebar/ui.sidebar.js.map +1 -0
- package/dist/primitives/skeleton/ui.skeleton.d.ts +4 -0
- package/dist/primitives/skeleton/ui.skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton/ui.skeleton.js +8 -0
- package/dist/primitives/skeleton/ui.skeleton.js.map +1 -0
- package/dist/primitives/slider/ui.slider.d.ts +4 -0
- package/dist/primitives/slider/ui.slider.d.ts.map +1 -0
- package/dist/primitives/slider/ui.slider.js +8 -0
- package/dist/primitives/slider/ui.slider.js.map +1 -0
- package/dist/primitives/src/ui.src.d.ts +4 -0
- package/dist/primitives/src/ui.src.d.ts.map +1 -0
- package/dist/primitives/src/ui.src.js +8 -0
- package/dist/primitives/src/ui.src.js.map +1 -0
- package/dist/primitives/stack/ui.stack.d.ts +4 -0
- package/dist/primitives/stack/ui.stack.d.ts.map +1 -0
- package/dist/primitives/stack/ui.stack.js +8 -0
- package/dist/primitives/stack/ui.stack.js.map +1 -0
- package/dist/primitives/stat/ui.stat.d.ts +4 -0
- package/dist/primitives/stat/ui.stat.d.ts.map +1 -0
- package/dist/primitives/stat/ui.stat.js +8 -0
- package/dist/primitives/stat/ui.stat.js.map +1 -0
- package/dist/primitives/switch/ui.switch.d.ts +4 -0
- package/dist/primitives/switch/ui.switch.d.ts.map +1 -0
- package/dist/primitives/switch/ui.switch.js +8 -0
- package/dist/primitives/switch/ui.switch.js.map +1 -0
- package/dist/primitives/table/ui.table.d.ts +4 -0
- package/dist/primitives/table/ui.table.d.ts.map +1 -0
- package/dist/primitives/table/ui.table.js +8 -0
- package/dist/primitives/table/ui.table.js.map +1 -0
- package/dist/primitives/table-body/ui.table-body.d.ts +4 -0
- package/dist/primitives/table-body/ui.table-body.d.ts.map +1 -0
- package/dist/primitives/table-body/ui.table-body.js +8 -0
- package/dist/primitives/table-body/ui.table-body.js.map +1 -0
- package/dist/primitives/table-caption/ui.table-caption.d.ts +4 -0
- package/dist/primitives/table-caption/ui.table-caption.d.ts.map +1 -0
- package/dist/primitives/table-caption/ui.table-caption.js +8 -0
- package/dist/primitives/table-caption/ui.table-caption.js.map +1 -0
- package/dist/primitives/table-cell/ui.table-cell.d.ts +4 -0
- package/dist/primitives/table-cell/ui.table-cell.d.ts.map +1 -0
- package/dist/primitives/table-cell/ui.table-cell.js +8 -0
- package/dist/primitives/table-cell/ui.table-cell.js.map +1 -0
- package/dist/primitives/table-footer/ui.table-footer.d.ts +4 -0
- package/dist/primitives/table-footer/ui.table-footer.d.ts.map +1 -0
- package/dist/primitives/table-footer/ui.table-footer.js +8 -0
- package/dist/primitives/table-footer/ui.table-footer.js.map +1 -0
- package/dist/primitives/table-head/ui.table-head.d.ts +4 -0
- package/dist/primitives/table-head/ui.table-head.d.ts.map +1 -0
- package/dist/primitives/table-head/ui.table-head.js +8 -0
- package/dist/primitives/table-head/ui.table-head.js.map +1 -0
- package/dist/primitives/table-header/ui.table-header.d.ts +4 -0
- package/dist/primitives/table-header/ui.table-header.d.ts.map +1 -0
- package/dist/primitives/table-header/ui.table-header.js +8 -0
- package/dist/primitives/table-header/ui.table-header.js.map +1 -0
- package/dist/primitives/table-row/ui.table-row.d.ts +4 -0
- package/dist/primitives/table-row/ui.table-row.d.ts.map +1 -0
- package/dist/primitives/table-row/ui.table-row.js +8 -0
- package/dist/primitives/table-row/ui.table-row.js.map +1 -0
- package/dist/primitives/tabs/ui.tabs.d.ts +4 -0
- package/dist/primitives/tabs/ui.tabs.d.ts.map +1 -0
- package/dist/primitives/tabs/ui.tabs.js +8 -0
- package/dist/primitives/tabs/ui.tabs.js.map +1 -0
- package/dist/primitives/textarea/ui.textarea.d.ts +4 -0
- package/dist/primitives/textarea/ui.textarea.d.ts.map +1 -0
- package/dist/primitives/textarea/ui.textarea.js +8 -0
- package/dist/primitives/textarea/ui.textarea.js.map +1 -0
- package/dist/primitives/toast/ui.toast.d.ts +4 -0
- package/dist/primitives/toast/ui.toast.d.ts.map +1 -0
- package/dist/primitives/toast/ui.toast.js +8 -0
- package/dist/primitives/toast/ui.toast.js.map +1 -0
- package/dist/primitives/tooltip/ui.tooltip.d.ts +4 -0
- package/dist/primitives/tooltip/ui.tooltip.d.ts.map +1 -0
- package/dist/primitives/tooltip/ui.tooltip.js +8 -0
- package/dist/primitives/tooltip/ui.tooltip.js.map +1 -0
- package/dist/registry/component-registry.d.ts +79 -0
- package/dist/registry/component-registry.d.ts.map +1 -0
- package/dist/registry/component-registry.js +945 -0
- package/dist/registry/component-registry.js.map +1 -0
- package/dist/registry/token-scales.d.ts +17 -0
- package/dist/registry/token-scales.d.ts.map +1 -0
- package/dist/registry/token-scales.js +26 -0
- package/dist/registry/token-scales.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +39 -0
- package/src/docs/guidelines.md +19 -0
- package/src/docs/package-inventory.md +33 -0
- package/src/primitives/alert/ui.alert.css +52 -0
- package/src/primitives/alert/ui.alert.html +3 -0
- package/src/primitives/alert/ui.alert.test.ts +12 -0
- package/src/primitives/alert/ui.alert.ts +9 -0
- package/src/primitives/alert/usage.home.html +3 -0
- package/src/primitives/avatar/ui.avatar.css +24 -0
- package/src/primitives/avatar/ui.avatar.html +3 -0
- package/src/primitives/avatar/ui.avatar.test.ts +12 -0
- package/src/primitives/avatar/ui.avatar.ts +9 -0
- package/src/primitives/avatar/usage.home.html +3 -0
- package/src/primitives/badge/ui.badge.css +42 -0
- package/src/primitives/badge/ui.badge.html +3 -0
- package/src/primitives/badge/ui.badge.test.ts +12 -0
- package/src/primitives/badge/ui.badge.ts +9 -0
- package/src/primitives/badge/usage.home.html +3 -0
- package/src/primitives/breadcrumb/ui.breadcrumb.css +7 -0
- package/src/primitives/breadcrumb/ui.breadcrumb.html +3 -0
- package/src/primitives/breadcrumb/ui.breadcrumb.test.ts +12 -0
- package/src/primitives/breadcrumb/ui.breadcrumb.ts +9 -0
- package/src/primitives/breadcrumb/usage.home.html +3 -0
- package/src/primitives/button/ui.button.css +109 -0
- package/src/primitives/button/ui.button.html +3 -0
- package/src/primitives/button/ui.button.test.ts +12 -0
- package/src/primitives/button/ui.button.ts +9 -0
- package/src/primitives/button/usage.home.html +3 -0
- package/src/primitives/card/ui.card.css +39 -0
- package/src/primitives/card/ui.card.html +4 -0
- package/src/primitives/card/ui.card.test.ts +14 -0
- package/src/primitives/card/ui.card.ts +11 -0
- package/src/primitives/card/usage.home.html +4 -0
- package/src/primitives/checkbox/ui.checkbox.css +3 -0
- package/src/primitives/checkbox/ui.checkbox.html +1 -0
- package/src/primitives/checkbox/ui.checkbox.test.ts +8 -0
- package/src/primitives/checkbox/ui.checkbox.ts +9 -0
- package/src/primitives/checkbox/usage.home.html +1 -0
- package/src/primitives/command-menu/ui.command-menu.css +39 -0
- package/src/primitives/command-menu/ui.command-menu.html +9 -0
- package/src/primitives/command-menu/ui.command-menu.test.ts +13 -0
- package/src/primitives/command-menu/ui.command-menu.ts +9 -0
- package/src/primitives/command-menu/usage.home.html +6 -0
- package/src/primitives/container/ui.container.css +20 -0
- package/src/primitives/container/ui.container.html +3 -0
- package/src/primitives/container/ui.container.test.ts +12 -0
- package/src/primitives/container/ui.container.ts +9 -0
- package/src/primitives/container/usage.home.html +3 -0
- package/src/primitives/dialog/ui.dialog.css +107 -0
- package/src/primitives/dialog/ui.dialog.html +15 -0
- package/src/primitives/dialog/ui.dialog.test.ts +13 -0
- package/src/primitives/dialog/ui.dialog.ts +9 -0
- package/src/primitives/dialog/usage.home.html +8 -0
- package/src/primitives/drawer/ui.drawer.css +132 -0
- package/src/primitives/drawer/ui.drawer.html +11 -0
- package/src/primitives/drawer/ui.drawer.test.ts +13 -0
- package/src/primitives/drawer/ui.drawer.ts +9 -0
- package/src/primitives/drawer/usage.home.html +8 -0
- package/src/primitives/dropdown/ui.dropdown.css +119 -0
- package/src/primitives/dropdown/ui.dropdown.html +10 -0
- package/src/primitives/dropdown/ui.dropdown.test.ts +13 -0
- package/src/primitives/dropdown/ui.dropdown.ts +9 -0
- package/src/primitives/dropdown/usage.home.html +6 -0
- package/src/primitives/empty-state/ui.empty-state.css +9 -0
- package/src/primitives/empty-state/ui.empty-state.html +3 -0
- package/src/primitives/empty-state/ui.empty-state.test.ts +8 -0
- package/src/primitives/empty-state/ui.empty-state.ts +9 -0
- package/src/primitives/empty-state/usage.home.html +3 -0
- package/src/primitives/footer/ui.footer.css +6 -0
- package/src/primitives/footer/ui.footer.html +3 -0
- package/src/primitives/footer/ui.footer.test.ts +12 -0
- package/src/primitives/footer/ui.footer.ts +9 -0
- package/src/primitives/footer/usage.home.html +3 -0
- package/src/primitives/form/ui.form.css +4 -0
- package/src/primitives/form/ui.form.html +6 -0
- package/src/primitives/form/ui.form.test.ts +8 -0
- package/src/primitives/form/ui.form.ts +9 -0
- package/src/primitives/form/usage.home.html +6 -0
- package/src/primitives/form-field/ui.form-field.css +4 -0
- package/src/primitives/form-field/ui.form-field.html +4 -0
- package/src/primitives/form-field/ui.form-field.test.ts +8 -0
- package/src/primitives/form-field/ui.form-field.ts +9 -0
- package/src/primitives/form-field/usage.home.html +4 -0
- package/src/primitives/grid/ui.grid.css +59 -0
- package/src/primitives/grid/ui.grid.html +3 -0
- package/src/primitives/grid/ui.grid.test.ts +12 -0
- package/src/primitives/grid/ui.grid.ts +9 -0
- package/src/primitives/grid/usage.home.html +5 -0
- package/src/primitives/header/ui.header.css +6 -0
- package/src/primitives/header/ui.header.html +3 -0
- package/src/primitives/header/ui.header.test.ts +12 -0
- package/src/primitives/header/ui.header.ts +9 -0
- package/src/primitives/header/usage.home.html +5 -0
- package/src/primitives/img/ui.img.css +5 -0
- package/src/primitives/img/ui.img.html +3 -0
- package/src/primitives/img/ui.img.test.ts +14 -0
- package/src/primitives/img/ui.img.ts +9 -0
- package/src/primitives/img/usage.home.html +1 -0
- package/src/primitives/input/ui.input.css +8 -0
- package/src/primitives/input/ui.input.html +1 -0
- package/src/primitives/input/ui.input.test.ts +8 -0
- package/src/primitives/input/ui.input.ts +9 -0
- package/src/primitives/input/usage.home.html +1 -0
- package/src/primitives/label/ui.label.css +4 -0
- package/src/primitives/label/ui.label.html +1 -0
- package/src/primitives/label/ui.label.test.ts +8 -0
- package/src/primitives/label/ui.label.ts +9 -0
- package/src/primitives/label/usage.home.html +1 -0
- package/src/primitives/layout/ui.layout.css +6 -0
- package/src/primitives/layout/ui.layout.html +3 -0
- package/src/primitives/layout/ui.layout.test.ts +12 -0
- package/src/primitives/layout/ui.layout.ts +9 -0
- package/src/primitives/layout/usage.home.html +8 -0
- package/src/primitives/list/ui.list.css +6 -0
- package/src/primitives/list/ui.list.html +3 -0
- package/src/primitives/list/ui.list.test.ts +8 -0
- package/src/primitives/list/ui.list.ts +9 -0
- package/src/primitives/list/usage.home.html +3 -0
- package/src/primitives/list-item/ui.list-item.css +3 -0
- package/src/primitives/list-item/ui.list-item.html +1 -0
- package/src/primitives/list-item/ui.list-item.test.ts +8 -0
- package/src/primitives/list-item/ui.list-item.ts +9 -0
- package/src/primitives/list-item/usage.home.html +1 -0
- package/src/primitives/loader/ui.loader.css +113 -0
- package/src/primitives/loader/ui.loader.html +3 -0
- package/src/primitives/loader/ui.loader.test.ts +12 -0
- package/src/primitives/loader/ui.loader.ts +9 -0
- package/src/primitives/loader/usage.home.html +3 -0
- package/src/primitives/nav/ui.nav.css +5 -0
- package/src/primitives/nav/ui.nav.html +3 -0
- package/src/primitives/nav/ui.nav.test.ts +12 -0
- package/src/primitives/nav/ui.nav.ts +9 -0
- package/src/primitives/nav/usage.home.html +3 -0
- package/src/primitives/pagination/ui.pagination.css +5 -0
- package/src/primitives/pagination/ui.pagination.html +1 -0
- package/src/primitives/pagination/ui.pagination.test.ts +8 -0
- package/src/primitives/pagination/ui.pagination.ts +9 -0
- package/src/primitives/pagination/usage.home.html +1 -0
- package/src/primitives/popover/ui.popover.css +25 -0
- package/src/primitives/popover/ui.popover.html +9 -0
- package/src/primitives/popover/ui.popover.test.ts +13 -0
- package/src/primitives/popover/ui.popover.ts +9 -0
- package/src/primitives/popover/usage.home.html +8 -0
- package/src/primitives/radio/ui.radio.css +3 -0
- package/src/primitives/radio/ui.radio.html +1 -0
- package/src/primitives/radio/ui.radio.test.ts +8 -0
- package/src/primitives/radio/ui.radio.ts +9 -0
- package/src/primitives/radio/usage.home.html +1 -0
- package/src/primitives/radio-group/ui.radio-group.css +4 -0
- package/src/primitives/radio-group/ui.radio-group.html +3 -0
- package/src/primitives/radio-group/ui.radio-group.test.ts +8 -0
- package/src/primitives/radio-group/ui.radio-group.ts +9 -0
- package/src/primitives/radio-group/usage.home.html +3 -0
- package/src/primitives/section/ui.section.css +15 -0
- package/src/primitives/section/ui.section.html +3 -0
- package/src/primitives/section/ui.section.test.ts +12 -0
- package/src/primitives/section/ui.section.ts +9 -0
- package/src/primitives/section/usage.home.html +3 -0
- package/src/primitives/select/ui.select.css +8 -0
- package/src/primitives/select/ui.select.html +1 -0
- package/src/primitives/select/ui.select.test.ts +8 -0
- package/src/primitives/select/ui.select.ts +9 -0
- package/src/primitives/select/usage.home.html +1 -0
- package/src/primitives/separator/ui.separator.css +16 -0
- package/src/primitives/separator/ui.separator.html +2 -0
- package/src/primitives/separator/ui.separator.test.ts +12 -0
- package/src/primitives/separator/ui.separator.ts +9 -0
- package/src/primitives/separator/usage.home.html +1 -0
- package/src/primitives/sidebar/ui.sidebar.css +13 -0
- package/src/primitives/sidebar/ui.sidebar.html +3 -0
- package/src/primitives/sidebar/ui.sidebar.test.ts +12 -0
- package/src/primitives/sidebar/ui.sidebar.ts +9 -0
- package/src/primitives/sidebar/usage.home.html +5 -0
- package/src/primitives/skeleton/ui.skeleton.css +53 -0
- package/src/primitives/skeleton/ui.skeleton.html +3 -0
- package/src/primitives/skeleton/ui.skeleton.test.ts +12 -0
- package/src/primitives/skeleton/ui.skeleton.ts +9 -0
- package/src/primitives/skeleton/usage.home.html +3 -0
- package/src/primitives/slider/ui.slider.css +4 -0
- package/src/primitives/slider/ui.slider.html +1 -0
- package/src/primitives/slider/ui.slider.test.ts +8 -0
- package/src/primitives/slider/ui.slider.ts +9 -0
- package/src/primitives/slider/usage.home.html +1 -0
- package/src/primitives/src/ui.src.css +3 -0
- package/src/primitives/src/ui.src.html +3 -0
- package/src/primitives/src/ui.src.test.ts +14 -0
- package/src/primitives/src/ui.src.ts +9 -0
- package/src/primitives/src/usage.home.html +4 -0
- package/src/primitives/stat/ui.stat.css +8 -0
- package/src/primitives/stat/ui.stat.html +4 -0
- package/src/primitives/stat/ui.stat.test.ts +8 -0
- package/src/primitives/stat/ui.stat.ts +9 -0
- package/src/primitives/stat/usage.home.html +4 -0
- package/src/primitives/switch/ui.switch.css +9 -0
- package/src/primitives/switch/ui.switch.html +1 -0
- package/src/primitives/switch/ui.switch.test.ts +8 -0
- package/src/primitives/switch/ui.switch.ts +9 -0
- package/src/primitives/switch/usage.home.html +1 -0
- package/src/primitives/table/ui.table.css +5 -0
- package/src/primitives/table/ui.table.html +3 -0
- package/src/primitives/table/ui.table.test.ts +8 -0
- package/src/primitives/table/ui.table.ts +9 -0
- package/src/primitives/table/usage.home.html +3 -0
- package/src/primitives/table-body/ui.table-body.css +3 -0
- package/src/primitives/table-body/ui.table-body.html +3 -0
- package/src/primitives/table-body/ui.table-body.test.ts +8 -0
- package/src/primitives/table-body/ui.table-body.ts +9 -0
- package/src/primitives/table-body/usage.home.html +3 -0
- package/src/primitives/table-caption/ui.table-caption.css +5 -0
- package/src/primitives/table-caption/ui.table-caption.html +1 -0
- package/src/primitives/table-caption/ui.table-caption.test.ts +8 -0
- package/src/primitives/table-caption/ui.table-caption.ts +9 -0
- package/src/primitives/table-caption/usage.home.html +1 -0
- package/src/primitives/table-cell/ui.table-cell.css +3 -0
- package/src/primitives/table-cell/ui.table-cell.html +1 -0
- package/src/primitives/table-cell/ui.table-cell.test.ts +8 -0
- package/src/primitives/table-cell/ui.table-cell.ts +9 -0
- package/src/primitives/table-cell/usage.home.html +1 -0
- package/src/primitives/table-footer/ui.table-footer.css +3 -0
- package/src/primitives/table-footer/ui.table-footer.html +3 -0
- package/src/primitives/table-footer/ui.table-footer.test.ts +8 -0
- package/src/primitives/table-footer/ui.table-footer.ts +9 -0
- package/src/primitives/table-footer/usage.home.html +3 -0
- package/src/primitives/table-head/ui.table-head.css +6 -0
- package/src/primitives/table-head/ui.table-head.html +1 -0
- package/src/primitives/table-head/ui.table-head.test.ts +8 -0
- package/src/primitives/table-head/ui.table-head.ts +9 -0
- package/src/primitives/table-head/usage.home.html +1 -0
- package/src/primitives/table-header/ui.table-header.css +3 -0
- package/src/primitives/table-header/ui.table-header.html +3 -0
- package/src/primitives/table-header/ui.table-header.test.ts +8 -0
- package/src/primitives/table-header/ui.table-header.ts +9 -0
- package/src/primitives/table-header/usage.home.html +3 -0
- package/src/primitives/table-row/ui.table-row.css +3 -0
- package/src/primitives/table-row/ui.table-row.html +3 -0
- package/src/primitives/table-row/ui.table-row.test.ts +8 -0
- package/src/primitives/table-row/ui.table-row.ts +9 -0
- package/src/primitives/table-row/usage.home.html +3 -0
- package/src/primitives/tabs/ui.tabs.css +103 -0
- package/src/primitives/tabs/ui.tabs.html +8 -0
- package/src/primitives/tabs/ui.tabs.test.ts +13 -0
- package/src/primitives/tabs/ui.tabs.ts +9 -0
- package/src/primitives/tabs/usage.home.html +6 -0
- package/src/primitives/textarea/ui.textarea.css +8 -0
- package/src/primitives/textarea/ui.textarea.html +1 -0
- package/src/primitives/textarea/ui.textarea.test.ts +8 -0
- package/src/primitives/textarea/ui.textarea.ts +9 -0
- package/src/primitives/textarea/usage.home.html +1 -0
- package/src/primitives/toast/ui.toast.css +123 -0
- package/src/primitives/toast/ui.toast.html +8 -0
- package/src/primitives/toast/ui.toast.test.ts +13 -0
- package/src/primitives/toast/ui.toast.ts +9 -0
- package/src/primitives/toast/usage.home.html +7 -0
- package/src/primitives/tooltip/ui.tooltip.css +15 -0
- package/src/primitives/tooltip/ui.tooltip.html +6 -0
- package/src/primitives/tooltip/ui.tooltip.test.ts +13 -0
- package/src/primitives/tooltip/ui.tooltip.ts +9 -0
- package/src/primitives/tooltip/usage.home.html +6 -0
- package/src/styles/vanrotstyles.css +20827 -0
- package/src/tokens/vanrot-tokens.css +99 -0
- package/web-types.json +542 -0
|
@@ -0,0 +1,945 @@
|
|
|
1
|
+
import { uiDensityToken, uiInputTypeToken, uiListMarkerToken, uiPaginationVariantToken, uiStatAlignToken, } from './token-scales.js';
|
|
2
|
+
export const phase16FormsDataPrimitiveOrder = [
|
|
3
|
+
'form',
|
|
4
|
+
'formField',
|
|
5
|
+
'label',
|
|
6
|
+
'input',
|
|
7
|
+
'textarea',
|
|
8
|
+
'select',
|
|
9
|
+
'checkbox',
|
|
10
|
+
'radioGroup',
|
|
11
|
+
'radio',
|
|
12
|
+
'switch',
|
|
13
|
+
'slider',
|
|
14
|
+
'table',
|
|
15
|
+
'tableHeader',
|
|
16
|
+
'tableBody',
|
|
17
|
+
'tableRow',
|
|
18
|
+
'tableHead',
|
|
19
|
+
'tableCell',
|
|
20
|
+
'tableFooter',
|
|
21
|
+
'tableCaption',
|
|
22
|
+
'pagination',
|
|
23
|
+
'list',
|
|
24
|
+
'listItem',
|
|
25
|
+
'stat',
|
|
26
|
+
'emptyState',
|
|
27
|
+
];
|
|
28
|
+
export const phase16InteractionPrimitiveOrder = [
|
|
29
|
+
'dialog',
|
|
30
|
+
'drawer',
|
|
31
|
+
'dropdown',
|
|
32
|
+
'tabs',
|
|
33
|
+
'toast',
|
|
34
|
+
];
|
|
35
|
+
export const phase16FinalPrimitiveOrder = ['popover', 'tooltip', 'commandMenu'];
|
|
36
|
+
const phase16FormsDataNativeTags = {
|
|
37
|
+
form: 'form',
|
|
38
|
+
formField: 'div',
|
|
39
|
+
label: 'label',
|
|
40
|
+
input: 'input',
|
|
41
|
+
textarea: 'textarea',
|
|
42
|
+
select: 'select',
|
|
43
|
+
checkbox: 'input',
|
|
44
|
+
radioGroup: 'div',
|
|
45
|
+
radio: 'input',
|
|
46
|
+
switch: 'button',
|
|
47
|
+
slider: 'input',
|
|
48
|
+
table: 'table',
|
|
49
|
+
tableHeader: 'thead',
|
|
50
|
+
tableBody: 'tbody',
|
|
51
|
+
tableRow: 'tr',
|
|
52
|
+
tableHead: 'th',
|
|
53
|
+
tableCell: 'td',
|
|
54
|
+
tableFooter: 'tfoot',
|
|
55
|
+
tableCaption: 'caption',
|
|
56
|
+
pagination: 'nav',
|
|
57
|
+
list: 'ul',
|
|
58
|
+
listItem: 'li',
|
|
59
|
+
stat: 'section',
|
|
60
|
+
emptyState: 'section',
|
|
61
|
+
};
|
|
62
|
+
const phase16InteractionNativeTags = {
|
|
63
|
+
dialog: 'div',
|
|
64
|
+
drawer: 'div',
|
|
65
|
+
dropdown: 'div',
|
|
66
|
+
tabs: 'div',
|
|
67
|
+
toast: 'section',
|
|
68
|
+
};
|
|
69
|
+
const phase16FormsDataSelectors = {
|
|
70
|
+
form: 'vr-form',
|
|
71
|
+
formField: 'vr-form-field',
|
|
72
|
+
label: 'vr-label',
|
|
73
|
+
input: 'vr-input',
|
|
74
|
+
textarea: 'vr-textarea',
|
|
75
|
+
select: 'vr-select',
|
|
76
|
+
checkbox: 'vr-checkbox',
|
|
77
|
+
radioGroup: 'vr-radio-group',
|
|
78
|
+
radio: 'vr-radio',
|
|
79
|
+
switch: 'vr-switch',
|
|
80
|
+
slider: 'vr-slider',
|
|
81
|
+
table: 'vr-table',
|
|
82
|
+
tableHeader: 'vr-table-header',
|
|
83
|
+
tableBody: 'vr-table-body',
|
|
84
|
+
tableRow: 'vr-table-row',
|
|
85
|
+
tableHead: 'vr-table-head',
|
|
86
|
+
tableCell: 'vr-table-cell',
|
|
87
|
+
tableFooter: 'vr-table-footer',
|
|
88
|
+
tableCaption: 'vr-table-caption',
|
|
89
|
+
pagination: 'vr-pagination',
|
|
90
|
+
list: 'vr-list',
|
|
91
|
+
listItem: 'vr-list-item',
|
|
92
|
+
stat: 'vr-stat',
|
|
93
|
+
emptyState: 'vr-empty-state',
|
|
94
|
+
};
|
|
95
|
+
const phase16InteractionSelectors = {
|
|
96
|
+
dialog: 'vr-dialog',
|
|
97
|
+
drawer: 'vr-drawer',
|
|
98
|
+
dropdown: 'vr-dropdown',
|
|
99
|
+
tabs: 'vr-tabs',
|
|
100
|
+
toast: 'vr-toast',
|
|
101
|
+
};
|
|
102
|
+
const phase16FinalSelectors = {
|
|
103
|
+
popover: 'vr-popover',
|
|
104
|
+
tooltip: 'vr-tooltip',
|
|
105
|
+
commandMenu: 'vr-command-menu',
|
|
106
|
+
};
|
|
107
|
+
const docsPathByPrimitive = {
|
|
108
|
+
form: '/docs/components/forms',
|
|
109
|
+
formField: '/docs/components/form-fields',
|
|
110
|
+
label: '/docs/components/labels',
|
|
111
|
+
input: '/docs/components/inputs',
|
|
112
|
+
textarea: '/docs/components/textareas',
|
|
113
|
+
select: '/docs/components/selects',
|
|
114
|
+
checkbox: '/docs/components/checkboxes',
|
|
115
|
+
radioGroup: '/docs/components/radio-groups',
|
|
116
|
+
radio: '/docs/components/radios',
|
|
117
|
+
switch: '/docs/components/switches',
|
|
118
|
+
slider: '/docs/components/sliders',
|
|
119
|
+
table: '/docs/components/tables',
|
|
120
|
+
tableHeader: '/docs/components/table-headers',
|
|
121
|
+
tableBody: '/docs/components/table-bodies',
|
|
122
|
+
tableRow: '/docs/components/table-rows',
|
|
123
|
+
tableHead: '/docs/components/table-heads',
|
|
124
|
+
tableCell: '/docs/components/table-cells',
|
|
125
|
+
tableFooter: '/docs/components/table-footers',
|
|
126
|
+
tableCaption: '/docs/components/table-captions',
|
|
127
|
+
pagination: '/docs/components/pagination',
|
|
128
|
+
list: '/docs/components/lists',
|
|
129
|
+
listItem: '/docs/components/list-items',
|
|
130
|
+
stat: '/docs/components/stats',
|
|
131
|
+
emptyState: '/docs/components/empty-states',
|
|
132
|
+
};
|
|
133
|
+
const phase16InteractionDocsPathByPrimitive = {
|
|
134
|
+
dialog: '/docs/components/dialogs',
|
|
135
|
+
drawer: '/docs/components/drawers',
|
|
136
|
+
dropdown: '/docs/components/dropdowns',
|
|
137
|
+
tabs: '/docs/components/tabs',
|
|
138
|
+
toast: '/docs/components/toasts',
|
|
139
|
+
};
|
|
140
|
+
const phase16FinalDocsPathByPrimitive = {
|
|
141
|
+
popover: '/docs/components/popovers',
|
|
142
|
+
tooltip: '/docs/components/tooltips',
|
|
143
|
+
commandMenu: '/docs/components/command-menu',
|
|
144
|
+
};
|
|
145
|
+
const formControlBooleans = [
|
|
146
|
+
{ name: 'required', description: 'Marks the field required for validation.' },
|
|
147
|
+
{ name: 'disabled', description: 'Prevents user interaction.' },
|
|
148
|
+
{ name: 'readonly', description: 'Keeps the control readable without allowing edits.' },
|
|
149
|
+
{ name: 'invalid', description: 'Sets visual and accessibility invalid state.' },
|
|
150
|
+
];
|
|
151
|
+
const formControlOpenAttributes = [
|
|
152
|
+
{ name: 'name', description: 'Application-owned field name.' },
|
|
153
|
+
{ name: 'value', description: 'Application-owned control value.' },
|
|
154
|
+
{ name: 'placeholder', description: 'Native placeholder text.' },
|
|
155
|
+
{ name: 'aria-label', description: 'Accessible label when no visible label is present.' },
|
|
156
|
+
{ name: 'aria-describedby', description: 'Connects help and error copy.' },
|
|
157
|
+
];
|
|
158
|
+
const formControlEvents = [
|
|
159
|
+
{ name: 'input', description: 'Native input event used by controlled form state.' },
|
|
160
|
+
{ name: 'change', description: 'Native change event used by validation state.' },
|
|
161
|
+
{ name: 'blur', description: 'Marks the field touched.' },
|
|
162
|
+
];
|
|
163
|
+
const tableBooleans = [
|
|
164
|
+
{ name: 'sortable', description: 'Enables column sorting.' },
|
|
165
|
+
{ name: 'filterable', description: 'Enables client-side filtering helpers.' },
|
|
166
|
+
{ name: 'paginated', description: 'Enables page state helpers.' },
|
|
167
|
+
{ name: 'selectable', description: 'Enables row selection state.' },
|
|
168
|
+
{ name: 'loading', description: 'Displays loading state.' },
|
|
169
|
+
];
|
|
170
|
+
const defaultSlots = [{ name: 'default', description: 'Primary component content.' }];
|
|
171
|
+
function tokenGroup(name, tokens, defaultToken, classNameForToken, emitDefaultClass = false) {
|
|
172
|
+
return {
|
|
173
|
+
name,
|
|
174
|
+
defaultToken,
|
|
175
|
+
tokens,
|
|
176
|
+
classByToken: Object.fromEntries(tokens.map((token) => [
|
|
177
|
+
token,
|
|
178
|
+
token === defaultToken && !emitDefaultClass ? '' : classNameForToken(token),
|
|
179
|
+
])),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function registryEntry(primitive, input) {
|
|
183
|
+
const selector = selectorForPrimitive(primitive);
|
|
184
|
+
return {
|
|
185
|
+
type: primitive,
|
|
186
|
+
selector,
|
|
187
|
+
nativeTag: input.nativeTag === undefined ? nativeTagForPrimitive(primitive) : input.nativeTag,
|
|
188
|
+
baseClass: selector,
|
|
189
|
+
category: input.category,
|
|
190
|
+
phase: input.phase === undefined ? '16E' : input.phase,
|
|
191
|
+
docsPath: input.docsPath === undefined ? docsPathForPrimitive(primitive) : input.docsPath,
|
|
192
|
+
tokens: input.tokens ?? {},
|
|
193
|
+
booleans: input.booleans ?? [],
|
|
194
|
+
openAttributes: input.openAttributes ?? [],
|
|
195
|
+
events: input.events ?? [],
|
|
196
|
+
slots: input.slots ?? defaultSlots,
|
|
197
|
+
anatomy: input.anatomy === undefined ? [] : input.anatomy,
|
|
198
|
+
examples: input.examples ?? [
|
|
199
|
+
{
|
|
200
|
+
label: `${selector} example`,
|
|
201
|
+
code: `<${selector}></${selector}>`,
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
accessibility: input.accessibility ?? ['Keep labels, roles, and keyboard behavior native.'],
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
function selectorForPrimitive(primitive) {
|
|
208
|
+
if (isFormsDataPrimitive(primitive)) {
|
|
209
|
+
return phase16FormsDataSelectors[primitive];
|
|
210
|
+
}
|
|
211
|
+
if (isFinalPrimitive(primitive)) {
|
|
212
|
+
return phase16FinalSelectors[primitive];
|
|
213
|
+
}
|
|
214
|
+
return phase16InteractionSelectors[primitive];
|
|
215
|
+
}
|
|
216
|
+
function nativeTagForPrimitive(primitive) {
|
|
217
|
+
if (isFormsDataPrimitive(primitive)) {
|
|
218
|
+
return phase16FormsDataNativeTags[primitive];
|
|
219
|
+
}
|
|
220
|
+
if (isFinalPrimitive(primitive)) {
|
|
221
|
+
return primitive === 'commandMenu' ? 'div' : 'div';
|
|
222
|
+
}
|
|
223
|
+
return phase16InteractionNativeTags[primitive];
|
|
224
|
+
}
|
|
225
|
+
function docsPathForPrimitive(primitive) {
|
|
226
|
+
if (isFormsDataPrimitive(primitive)) {
|
|
227
|
+
return docsPathByPrimitive[primitive];
|
|
228
|
+
}
|
|
229
|
+
if (isFinalPrimitive(primitive)) {
|
|
230
|
+
return phase16FinalDocsPathByPrimitive[primitive];
|
|
231
|
+
}
|
|
232
|
+
return phase16InteractionDocsPathByPrimitive[primitive];
|
|
233
|
+
}
|
|
234
|
+
function isFormsDataPrimitive(primitive) {
|
|
235
|
+
return phase16FormsDataPrimitiveOrder.includes(primitive);
|
|
236
|
+
}
|
|
237
|
+
function isFinalPrimitive(primitive) {
|
|
238
|
+
return phase16FinalPrimitiveOrder.includes(primitive);
|
|
239
|
+
}
|
|
240
|
+
const formFieldOpenAttributes = [
|
|
241
|
+
{ name: 'name', description: 'Application-owned field name.' },
|
|
242
|
+
{ name: 'label', description: 'Visible field label.' },
|
|
243
|
+
{ name: 'description', description: 'Help text for the field.' },
|
|
244
|
+
];
|
|
245
|
+
const inputTokens = {
|
|
246
|
+
size: tokenGroup('size', ['xs', 'sm', 'md', 'lg', 'xl'], 'md', (value) => `vr-input-size-${value}`),
|
|
247
|
+
tone: tokenGroup('tone', ['default', 'success', 'warning', 'danger'], 'default', (value) => `vr-input-tone-${value}`),
|
|
248
|
+
type: tokenGroup('type', uiInputTypeToken, 'text', (value) => `vr-input-type-${value}`),
|
|
249
|
+
};
|
|
250
|
+
const controlTokens = {
|
|
251
|
+
size: tokenGroup('size', ['xs', 'sm', 'md', 'lg'], 'md', (value) => `vr-control-size-${value}`),
|
|
252
|
+
tone: tokenGroup('tone', ['default', 'success', 'warning', 'danger'], 'default', (value) => `vr-control-tone-${value}`),
|
|
253
|
+
};
|
|
254
|
+
const tableTokens = {
|
|
255
|
+
density: tokenGroup('density', uiDensityToken, 'comfortable', (value) => `vr-table-density-${value}`),
|
|
256
|
+
tone: tokenGroup('tone', ['default', 'muted'], 'default', (value) => `vr-table-tone-${value}`),
|
|
257
|
+
};
|
|
258
|
+
export const uiComponentRegistry = {
|
|
259
|
+
form: registryEntry('form', {
|
|
260
|
+
category: 'forms',
|
|
261
|
+
booleans: [
|
|
262
|
+
{ name: 'disabled', description: 'Disables all registered fields.' },
|
|
263
|
+
{ name: 'pending', description: 'Marks a submit as in progress.' },
|
|
264
|
+
],
|
|
265
|
+
openAttributes: [{ name: 'name', description: 'Application-owned form name.' }],
|
|
266
|
+
events: [{ name: 'submit', description: 'Validates fields before application save code runs.' }],
|
|
267
|
+
examples: [
|
|
268
|
+
{
|
|
269
|
+
label: 'Controlled form',
|
|
270
|
+
code: '<vr-form><vr-form-field name="email" required><vr-input type.email></vr-input></vr-form-field></vr-form>',
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
accessibility: ['Submit orchestration marks invalid fields touched before preventing submit.'],
|
|
274
|
+
}),
|
|
275
|
+
formField: registryEntry('formField', {
|
|
276
|
+
category: 'forms',
|
|
277
|
+
booleans: [{ name: 'required', description: 'Marks the registered field required.' }],
|
|
278
|
+
openAttributes: formFieldOpenAttributes,
|
|
279
|
+
slots: [
|
|
280
|
+
{ name: 'label', description: 'Field label content.' },
|
|
281
|
+
{ name: 'description', description: 'Field help content.' },
|
|
282
|
+
{ name: 'message', description: 'Validation message content.' },
|
|
283
|
+
...defaultSlots,
|
|
284
|
+
],
|
|
285
|
+
}),
|
|
286
|
+
label: registryEntry('label', {
|
|
287
|
+
category: 'forms',
|
|
288
|
+
openAttributes: [{ name: 'for', description: 'ID of the labelled control.' }],
|
|
289
|
+
}),
|
|
290
|
+
input: registryEntry('input', {
|
|
291
|
+
category: 'forms',
|
|
292
|
+
tokens: inputTokens,
|
|
293
|
+
booleans: formControlBooleans,
|
|
294
|
+
openAttributes: formControlOpenAttributes,
|
|
295
|
+
events: [
|
|
296
|
+
{ name: 'input', description: 'Native input event used by controlled form state.' },
|
|
297
|
+
{ name: 'change', description: 'Native change event used by validation state.' },
|
|
298
|
+
{ name: 'blur', description: 'Marks the field touched.' },
|
|
299
|
+
],
|
|
300
|
+
slots: [],
|
|
301
|
+
examples: [
|
|
302
|
+
{
|
|
303
|
+
label: 'Email input',
|
|
304
|
+
code: '<vr-input type.email size.md name="email" placeholder="Email"></vr-input>',
|
|
305
|
+
},
|
|
306
|
+
],
|
|
307
|
+
accessibility: [
|
|
308
|
+
'Use a visible <vr-label> or aria-label.',
|
|
309
|
+
'Validation sets aria-invalid and aria-describedby when an error element is present.',
|
|
310
|
+
],
|
|
311
|
+
}),
|
|
312
|
+
textarea: registryEntry('textarea', {
|
|
313
|
+
category: 'forms',
|
|
314
|
+
tokens: {
|
|
315
|
+
size: tokenGroup('size', ['sm', 'md', 'lg', 'xl'], 'md', (value) => `vr-textarea-size-${value}`),
|
|
316
|
+
tone: inputTokens.tone,
|
|
317
|
+
},
|
|
318
|
+
booleans: formControlBooleans,
|
|
319
|
+
openAttributes: formControlOpenAttributes,
|
|
320
|
+
events: formControlEvents,
|
|
321
|
+
}),
|
|
322
|
+
select: registryEntry('select', {
|
|
323
|
+
category: 'forms',
|
|
324
|
+
tokens: {
|
|
325
|
+
size: inputTokens.size,
|
|
326
|
+
tone: inputTokens.tone,
|
|
327
|
+
},
|
|
328
|
+
booleans: formControlBooleans,
|
|
329
|
+
openAttributes: formControlOpenAttributes,
|
|
330
|
+
events: formControlEvents,
|
|
331
|
+
}),
|
|
332
|
+
checkbox: registryEntry('checkbox', {
|
|
333
|
+
category: 'forms',
|
|
334
|
+
tokens: controlTokens,
|
|
335
|
+
booleans: [
|
|
336
|
+
...formControlBooleans,
|
|
337
|
+
{ name: 'checked', description: 'Sets the native checked state.' },
|
|
338
|
+
],
|
|
339
|
+
openAttributes: formControlOpenAttributes,
|
|
340
|
+
events: formControlEvents,
|
|
341
|
+
slots: [],
|
|
342
|
+
}),
|
|
343
|
+
radioGroup: registryEntry('radioGroup', {
|
|
344
|
+
category: 'forms',
|
|
345
|
+
booleans: [{ name: 'disabled', description: 'Disables child radios.' }],
|
|
346
|
+
openAttributes: [{ name: 'name', description: 'Shared radio group name.' }],
|
|
347
|
+
slots: defaultSlots,
|
|
348
|
+
accessibility: ['Use a group label and keep radio options keyboard reachable.'],
|
|
349
|
+
}),
|
|
350
|
+
radio: registryEntry('radio', {
|
|
351
|
+
category: 'forms',
|
|
352
|
+
tokens: controlTokens,
|
|
353
|
+
booleans: [
|
|
354
|
+
...formControlBooleans,
|
|
355
|
+
{ name: 'checked', description: 'Sets the native checked state.' },
|
|
356
|
+
],
|
|
357
|
+
openAttributes: formControlOpenAttributes,
|
|
358
|
+
events: formControlEvents,
|
|
359
|
+
slots: [],
|
|
360
|
+
}),
|
|
361
|
+
switch: registryEntry('switch', {
|
|
362
|
+
category: 'forms',
|
|
363
|
+
tokens: {
|
|
364
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-switch-size-${value}`),
|
|
365
|
+
tone: controlTokens.tone,
|
|
366
|
+
},
|
|
367
|
+
booleans: [
|
|
368
|
+
{ name: 'checked', description: 'Sets pressed state.' },
|
|
369
|
+
{ name: 'disabled', description: 'Prevents user interaction.' },
|
|
370
|
+
],
|
|
371
|
+
events: [{ name: 'change', description: 'Emitted when pressed state changes.' }],
|
|
372
|
+
slots: [],
|
|
373
|
+
accessibility: ['Compiler lowering keeps switch as a button with role switch.'],
|
|
374
|
+
}),
|
|
375
|
+
slider: registryEntry('slider', {
|
|
376
|
+
category: 'forms',
|
|
377
|
+
tokens: {
|
|
378
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-slider-size-${value}`),
|
|
379
|
+
tone: controlTokens.tone,
|
|
380
|
+
},
|
|
381
|
+
booleans: formControlBooleans,
|
|
382
|
+
openAttributes: [
|
|
383
|
+
...formControlOpenAttributes,
|
|
384
|
+
{ name: 'min', description: 'Minimum slider value.' },
|
|
385
|
+
{ name: 'max', description: 'Maximum slider value.' },
|
|
386
|
+
{ name: 'step', description: 'Slider step value.' },
|
|
387
|
+
],
|
|
388
|
+
events: formControlEvents,
|
|
389
|
+
slots: [],
|
|
390
|
+
}),
|
|
391
|
+
table: registryEntry('table', {
|
|
392
|
+
category: 'data',
|
|
393
|
+
tokens: tableTokens,
|
|
394
|
+
booleans: tableBooleans,
|
|
395
|
+
openAttributes: [{ name: 'aria-label', description: 'Accessible table label.' }],
|
|
396
|
+
events: [
|
|
397
|
+
{ name: 'sort', description: 'Emitted when a sortable column changes.' },
|
|
398
|
+
{ name: 'filter', description: 'Emitted when the filter query changes.' },
|
|
399
|
+
{ name: 'select', description: 'Emitted when row selection changes.' },
|
|
400
|
+
],
|
|
401
|
+
examples: [
|
|
402
|
+
{
|
|
403
|
+
label: 'Sortable table',
|
|
404
|
+
code: '<vr-table density.compact sortable filterable paginated selectable></vr-table>',
|
|
405
|
+
},
|
|
406
|
+
],
|
|
407
|
+
accessibility: ['Use <vr-table-caption> for accessible context when visible title copy helps.'],
|
|
408
|
+
}),
|
|
409
|
+
tableHeader: registryEntry('tableHeader', { category: 'data' }),
|
|
410
|
+
tableBody: registryEntry('tableBody', { category: 'data' }),
|
|
411
|
+
tableRow: registryEntry('tableRow', {
|
|
412
|
+
category: 'data',
|
|
413
|
+
booleans: [
|
|
414
|
+
{ name: 'selected', description: 'Marks the row selected.' },
|
|
415
|
+
{ name: 'disabled', description: 'Prevents row selection.' },
|
|
416
|
+
],
|
|
417
|
+
}),
|
|
418
|
+
tableHead: registryEntry('tableHead', {
|
|
419
|
+
category: 'data',
|
|
420
|
+
openAttributes: [{ name: 'sort', description: 'Application-owned sort key.' }],
|
|
421
|
+
}),
|
|
422
|
+
tableCell: registryEntry('tableCell', { category: 'data' }),
|
|
423
|
+
tableFooter: registryEntry('tableFooter', { category: 'data' }),
|
|
424
|
+
tableCaption: registryEntry('tableCaption', { category: 'data' }),
|
|
425
|
+
pagination: registryEntry('pagination', {
|
|
426
|
+
category: 'data',
|
|
427
|
+
tokens: {
|
|
428
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-pagination-size-${value}`),
|
|
429
|
+
variant: tokenGroup('variant', uiPaginationVariantToken, 'default', (value) => `vr-pagination-${value}`),
|
|
430
|
+
},
|
|
431
|
+
openAttributes: [
|
|
432
|
+
{ name: 'page', description: 'Current one-based page.' },
|
|
433
|
+
{ name: 'total', description: 'Total item count.' },
|
|
434
|
+
{ name: 'pageSize', description: 'Items per page.' },
|
|
435
|
+
],
|
|
436
|
+
events: [{ name: 'page', description: 'Emitted when the active page changes.' }],
|
|
437
|
+
}),
|
|
438
|
+
list: registryEntry('list', {
|
|
439
|
+
category: 'data',
|
|
440
|
+
tokens: {
|
|
441
|
+
marker: tokenGroup('marker', uiListMarkerToken, 'disc', (value) => `vr-list-marker-${value}`),
|
|
442
|
+
density: tokenGroup('density', uiDensityToken, 'comfortable', (value) => `vr-list-density-${value}`),
|
|
443
|
+
},
|
|
444
|
+
}),
|
|
445
|
+
listItem: registryEntry('listItem', { category: 'data' }),
|
|
446
|
+
stat: registryEntry('stat', {
|
|
447
|
+
category: 'data',
|
|
448
|
+
tokens: {
|
|
449
|
+
tone: tokenGroup('tone', ['default', 'success', 'warning', 'danger', 'muted'], 'default', (value) => `vr-stat-tone-${value}`),
|
|
450
|
+
align: tokenGroup('align', uiStatAlignToken, 'left', (value) => `vr-stat-align-${value}`),
|
|
451
|
+
},
|
|
452
|
+
}),
|
|
453
|
+
emptyState: registryEntry('emptyState', {
|
|
454
|
+
category: 'data',
|
|
455
|
+
tokens: {
|
|
456
|
+
tone: tokenGroup('tone', ['default', 'muted'], 'default', (value) => `vr-empty-state-${value}`),
|
|
457
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-empty-state-size-${value}`),
|
|
458
|
+
},
|
|
459
|
+
slots: [
|
|
460
|
+
{ name: 'default', description: 'Empty state body.' },
|
|
461
|
+
{ name: 'actions', description: 'Recovery actions.' },
|
|
462
|
+
],
|
|
463
|
+
}),
|
|
464
|
+
dialog: registryEntry('dialog', {
|
|
465
|
+
nativeTag: 'div',
|
|
466
|
+
category: 'interaction',
|
|
467
|
+
phase: '16F',
|
|
468
|
+
docsPath: '/docs/components/dialogs',
|
|
469
|
+
tokens: {
|
|
470
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-dialog-size-${value}`, true),
|
|
471
|
+
motion: tokenGroup('motion', ['instant', 'subtle'], 'subtle', (value) => `vr-dialog-motion-${value}`, true),
|
|
472
|
+
},
|
|
473
|
+
openAttributes: [
|
|
474
|
+
{ name: 'open', description: 'Controls whether the dialog starts open.' },
|
|
475
|
+
{ name: 'aria-label', description: 'Accessible label when no title anatomy is present.' },
|
|
476
|
+
{ name: 'aria-labelledby', description: 'Id of the visible dialog title.' },
|
|
477
|
+
{ name: 'aria-describedby', description: 'Id of the dialog description.' },
|
|
478
|
+
],
|
|
479
|
+
events: [
|
|
480
|
+
{ name: 'openchange', description: 'Emitted when the dialog opens or closes.' },
|
|
481
|
+
{ name: 'close', description: 'Emitted after the dialog closes.' },
|
|
482
|
+
],
|
|
483
|
+
anatomy: [
|
|
484
|
+
{
|
|
485
|
+
selector: 'vr-dialog-trigger',
|
|
486
|
+
nativeTag: 'span',
|
|
487
|
+
baseClass: 'vr-dialog-trigger',
|
|
488
|
+
description: 'Registers the element that opens the dialog.',
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
selector: 'vr-dialog-content',
|
|
492
|
+
nativeTag: 'div',
|
|
493
|
+
baseClass: 'vr-dialog-content',
|
|
494
|
+
role: 'dialog',
|
|
495
|
+
description: 'Renders the accessible dialog surface.',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
selector: 'vr-dialog-header',
|
|
499
|
+
nativeTag: 'div',
|
|
500
|
+
baseClass: 'vr-dialog-header',
|
|
501
|
+
description: 'Groups title and description content.',
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
selector: 'vr-dialog-title',
|
|
505
|
+
nativeTag: 'h2',
|
|
506
|
+
baseClass: 'vr-dialog-title',
|
|
507
|
+
description: 'Provides the visible dialog title.',
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
selector: 'vr-dialog-description',
|
|
511
|
+
nativeTag: 'p',
|
|
512
|
+
baseClass: 'vr-dialog-description',
|
|
513
|
+
description: 'Provides supporting dialog description text.',
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
selector: 'vr-dialog-footer',
|
|
517
|
+
nativeTag: 'div',
|
|
518
|
+
baseClass: 'vr-dialog-footer',
|
|
519
|
+
description: 'Groups secondary and primary actions.',
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
selector: 'vr-dialog-close',
|
|
523
|
+
nativeTag: 'button',
|
|
524
|
+
baseClass: 'vr-dialog-close',
|
|
525
|
+
description: 'Closes the dialog.',
|
|
526
|
+
},
|
|
527
|
+
],
|
|
528
|
+
examples: [
|
|
529
|
+
{
|
|
530
|
+
label: 'Edit profile dialog',
|
|
531
|
+
code: '<vr-dialog size.md><vr-dialog-trigger><vr-button>Open</vr-button></vr-dialog-trigger><vr-dialog-content><vr-dialog-title>Edit profile</vr-dialog-title></vr-dialog-content></vr-dialog>',
|
|
532
|
+
},
|
|
533
|
+
],
|
|
534
|
+
accessibility: [
|
|
535
|
+
'Focus moves into the dialog when it opens.',
|
|
536
|
+
'Focus returns to the trigger when the dialog closes.',
|
|
537
|
+
],
|
|
538
|
+
}),
|
|
539
|
+
drawer: registryEntry('drawer', {
|
|
540
|
+
nativeTag: 'div',
|
|
541
|
+
category: 'interaction',
|
|
542
|
+
phase: '16F',
|
|
543
|
+
docsPath: '/docs/components/drawers',
|
|
544
|
+
tokens: {
|
|
545
|
+
side: tokenGroup('side', ['left', 'right', 'top', 'bottom'], 'right', (value) => `vr-drawer-side-${value}`, true),
|
|
546
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-drawer-size-${value}`, true),
|
|
547
|
+
},
|
|
548
|
+
openAttributes: [
|
|
549
|
+
{ name: 'open', description: 'Controls whether the drawer starts open.' },
|
|
550
|
+
{ name: 'aria-label', description: 'Accessible label when no title anatomy is present.' },
|
|
551
|
+
],
|
|
552
|
+
events: [
|
|
553
|
+
{ name: 'openchange', description: 'Emitted when the drawer opens or closes.' },
|
|
554
|
+
{ name: 'close', description: 'Emitted after the drawer closes.' },
|
|
555
|
+
],
|
|
556
|
+
anatomy: [
|
|
557
|
+
{
|
|
558
|
+
selector: 'vr-drawer-trigger',
|
|
559
|
+
nativeTag: 'span',
|
|
560
|
+
baseClass: 'vr-drawer-trigger',
|
|
561
|
+
description: 'Registers the element that opens the drawer.',
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
selector: 'vr-drawer-content',
|
|
565
|
+
nativeTag: 'aside',
|
|
566
|
+
baseClass: 'vr-drawer-content',
|
|
567
|
+
role: 'dialog',
|
|
568
|
+
description: 'Renders the drawer surface.',
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
selector: 'vr-drawer-header',
|
|
572
|
+
nativeTag: 'div',
|
|
573
|
+
baseClass: 'vr-drawer-header',
|
|
574
|
+
description: 'Groups drawer title and description.',
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
selector: 'vr-drawer-title',
|
|
578
|
+
nativeTag: 'h2',
|
|
579
|
+
baseClass: 'vr-drawer-title',
|
|
580
|
+
description: 'Provides the visible drawer title.',
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
selector: 'vr-drawer-description',
|
|
584
|
+
nativeTag: 'p',
|
|
585
|
+
baseClass: 'vr-drawer-description',
|
|
586
|
+
description: 'Provides supporting drawer description text.',
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
selector: 'vr-drawer-footer',
|
|
590
|
+
nativeTag: 'div',
|
|
591
|
+
baseClass: 'vr-drawer-footer',
|
|
592
|
+
description: 'Groups drawer actions.',
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
selector: 'vr-drawer-close',
|
|
596
|
+
nativeTag: 'button',
|
|
597
|
+
baseClass: 'vr-drawer-close',
|
|
598
|
+
description: 'Closes the drawer.',
|
|
599
|
+
},
|
|
600
|
+
],
|
|
601
|
+
examples: [
|
|
602
|
+
{
|
|
603
|
+
label: 'Filter drawer',
|
|
604
|
+
code: '<vr-drawer side.right size.md><vr-drawer-trigger><vr-button variant.outline>Filters</vr-button></vr-drawer-trigger><vr-drawer-content><vr-drawer-title>Filters</vr-drawer-title></vr-drawer-content></vr-drawer>',
|
|
605
|
+
},
|
|
606
|
+
],
|
|
607
|
+
accessibility: ['Focus moves into the drawer when it opens.', 'Escape closes the drawer.'],
|
|
608
|
+
}),
|
|
609
|
+
dropdown: registryEntry('dropdown', {
|
|
610
|
+
nativeTag: 'div',
|
|
611
|
+
category: 'interaction',
|
|
612
|
+
phase: '16F',
|
|
613
|
+
docsPath: '/docs/components/dropdowns',
|
|
614
|
+
tokens: {
|
|
615
|
+
align: tokenGroup('align', ['start', 'center', 'end'], 'start', (value) => `vr-dropdown-align-${value}`, true),
|
|
616
|
+
side: tokenGroup('side', ['top', 'bottom'], 'bottom', (value) => `vr-dropdown-side-${value}`, true),
|
|
617
|
+
size: tokenGroup('size', ['sm', 'md'], 'md', (value) => `vr-dropdown-size-${value}`, true),
|
|
618
|
+
},
|
|
619
|
+
openAttributes: [
|
|
620
|
+
{ name: 'open', description: 'Controls whether the dropdown starts open.' },
|
|
621
|
+
{ name: 'aria-label', description: 'Accessible label for icon-only dropdown triggers.' },
|
|
622
|
+
],
|
|
623
|
+
events: [
|
|
624
|
+
{ name: 'openchange', description: 'Emitted when the dropdown opens or closes.' },
|
|
625
|
+
{ name: 'select', description: 'Emitted when an item is selected.' },
|
|
626
|
+
],
|
|
627
|
+
anatomy: [
|
|
628
|
+
{
|
|
629
|
+
selector: 'vr-dropdown-trigger',
|
|
630
|
+
nativeTag: 'button',
|
|
631
|
+
baseClass: 'vr-dropdown-trigger',
|
|
632
|
+
description: 'Opens and closes the dropdown.',
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
selector: 'vr-dropdown-content',
|
|
636
|
+
nativeTag: 'div',
|
|
637
|
+
baseClass: 'vr-dropdown-content',
|
|
638
|
+
description: 'Renders dropdown options.',
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
selector: 'vr-dropdown-item',
|
|
642
|
+
nativeTag: 'button',
|
|
643
|
+
baseClass: 'vr-dropdown-item',
|
|
644
|
+
description: 'Represents a selectable dropdown item.',
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
selector: 'vr-dropdown-label',
|
|
648
|
+
nativeTag: 'div',
|
|
649
|
+
baseClass: 'vr-dropdown-label',
|
|
650
|
+
description: 'Labels a group of items.',
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
selector: 'vr-dropdown-separator',
|
|
654
|
+
nativeTag: 'hr',
|
|
655
|
+
baseClass: 'vr-dropdown-separator',
|
|
656
|
+
description: 'Separates item groups.',
|
|
657
|
+
},
|
|
658
|
+
],
|
|
659
|
+
examples: [
|
|
660
|
+
{
|
|
661
|
+
label: 'Account dropdown',
|
|
662
|
+
code: '<vr-dropdown align.end><vr-dropdown-trigger>Open</vr-dropdown-trigger><vr-dropdown-content><vr-dropdown-item>Profile</vr-dropdown-item></vr-dropdown-content></vr-dropdown>',
|
|
663
|
+
},
|
|
664
|
+
],
|
|
665
|
+
accessibility: [
|
|
666
|
+
'Trigger exposes aria-expanded.',
|
|
667
|
+
'Escape and outside pointer input close the dropdown.',
|
|
668
|
+
],
|
|
669
|
+
}),
|
|
670
|
+
tabs: registryEntry('tabs', {
|
|
671
|
+
nativeTag: 'div',
|
|
672
|
+
category: 'interaction',
|
|
673
|
+
phase: '16F',
|
|
674
|
+
docsPath: '/docs/components/tabs',
|
|
675
|
+
tokens: {
|
|
676
|
+
variant: tokenGroup('variant', ['line', 'pill'], 'line', (value) => `vr-tabs-variant-${value}`, true),
|
|
677
|
+
orientation: tokenGroup('orientation', ['horizontal', 'vertical'], 'horizontal', (value) => `vr-tabs-orientation-${value}`, true),
|
|
678
|
+
},
|
|
679
|
+
openAttributes: [
|
|
680
|
+
{ name: 'value', description: 'Selected tab value.' },
|
|
681
|
+
{ name: 'aria-label', description: 'Accessible label for the tab group.' },
|
|
682
|
+
],
|
|
683
|
+
events: [{ name: 'change', description: 'Emitted when the selected tab value changes.' }],
|
|
684
|
+
anatomy: [
|
|
685
|
+
{
|
|
686
|
+
selector: 'vr-tabs-list',
|
|
687
|
+
nativeTag: 'div',
|
|
688
|
+
baseClass: 'vr-tabs-list',
|
|
689
|
+
role: 'tablist',
|
|
690
|
+
description: 'Groups tab triggers.',
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
selector: 'vr-tabs-trigger',
|
|
694
|
+
nativeTag: 'button',
|
|
695
|
+
baseClass: 'vr-tabs-trigger',
|
|
696
|
+
role: 'tab',
|
|
697
|
+
description: 'Selects a matching panel by value.',
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
selector: 'vr-tabs-panel',
|
|
701
|
+
nativeTag: 'div',
|
|
702
|
+
baseClass: 'vr-tabs-panel',
|
|
703
|
+
role: 'tabpanel',
|
|
704
|
+
description: 'Displays content for a matching trigger value.',
|
|
705
|
+
},
|
|
706
|
+
],
|
|
707
|
+
examples: [
|
|
708
|
+
{
|
|
709
|
+
label: 'Overview tabs',
|
|
710
|
+
code: '<vr-tabs value.overview><vr-tabs-list><vr-tabs-trigger value.overview>Overview</vr-tabs-trigger></vr-tabs-list><vr-tabs-panel value.overview>Overview content</vr-tabs-panel></vr-tabs>',
|
|
711
|
+
},
|
|
712
|
+
],
|
|
713
|
+
accessibility: [
|
|
714
|
+
'Triggers expose selected state.',
|
|
715
|
+
'Arrow keys move between registered triggers.',
|
|
716
|
+
],
|
|
717
|
+
}),
|
|
718
|
+
toast: registryEntry('toast', {
|
|
719
|
+
nativeTag: 'section',
|
|
720
|
+
category: 'interaction',
|
|
721
|
+
phase: '16F',
|
|
722
|
+
docsPath: '/docs/components/toasts',
|
|
723
|
+
tokens: {
|
|
724
|
+
tone: tokenGroup('tone', ['default', 'success', 'warning', 'danger'], 'default', (value) => `vr-toast-tone-${value}`, true),
|
|
725
|
+
placement: tokenGroup('placement', ['topright', 'topleft', 'bottomright', 'bottomleft'], 'bottomright', (value) => `vr-toast-placement-${value}`, true),
|
|
726
|
+
},
|
|
727
|
+
openAttributes: [
|
|
728
|
+
{ name: 'aria-label', description: 'Accessible label for the toast live region.' },
|
|
729
|
+
],
|
|
730
|
+
events: [{ name: 'dismiss', description: 'Emitted when a toast is dismissed.' }],
|
|
731
|
+
anatomy: [
|
|
732
|
+
{
|
|
733
|
+
selector: 'vr-toast-viewport',
|
|
734
|
+
nativeTag: 'div',
|
|
735
|
+
baseClass: 'vr-toast-viewport',
|
|
736
|
+
description: 'Positions queued toast items.',
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
selector: 'vr-toast-item',
|
|
740
|
+
nativeTag: 'div',
|
|
741
|
+
baseClass: 'vr-toast-item',
|
|
742
|
+
description: 'Renders one queued toast message.',
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
selector: 'vr-toast-title',
|
|
746
|
+
nativeTag: 'strong',
|
|
747
|
+
baseClass: 'vr-toast-title',
|
|
748
|
+
description: 'Displays toast title text.',
|
|
749
|
+
},
|
|
750
|
+
{
|
|
751
|
+
selector: 'vr-toast-description',
|
|
752
|
+
nativeTag: 'p',
|
|
753
|
+
baseClass: 'vr-toast-description',
|
|
754
|
+
description: 'Displays optional toast body text.',
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
selector: 'vr-toast-close',
|
|
758
|
+
nativeTag: 'button',
|
|
759
|
+
baseClass: 'vr-toast-close',
|
|
760
|
+
description: 'Dismisses one toast.',
|
|
761
|
+
},
|
|
762
|
+
],
|
|
763
|
+
examples: [
|
|
764
|
+
{
|
|
765
|
+
label: 'Success toast',
|
|
766
|
+
code: '<vr-toast tone.success placement.bottomright><vr-toast-item><vr-toast-title>Saved</vr-toast-title></vr-toast-item></vr-toast>',
|
|
767
|
+
},
|
|
768
|
+
],
|
|
769
|
+
accessibility: [
|
|
770
|
+
'Toast viewport uses a live region.',
|
|
771
|
+
'Manual dismiss remains keyboard reachable.',
|
|
772
|
+
],
|
|
773
|
+
}),
|
|
774
|
+
popover: registryEntry('popover', {
|
|
775
|
+
nativeTag: 'div',
|
|
776
|
+
category: 'interaction',
|
|
777
|
+
phase: '16G',
|
|
778
|
+
tokens: {
|
|
779
|
+
side: tokenGroup('side', ['top', 'right', 'bottom', 'left'], 'bottom', (value) => `vr-popover-side-${value}`, true),
|
|
780
|
+
align: tokenGroup('align', ['start', 'center', 'end'], 'center', (value) => `vr-popover-align-${value}`, true),
|
|
781
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-popover-size-${value}`, true),
|
|
782
|
+
motion: tokenGroup('motion', ['instant', 'subtle'], 'subtle', (value) => `vr-popover-motion-${value}`, true),
|
|
783
|
+
},
|
|
784
|
+
openAttributes: [
|
|
785
|
+
{ name: 'open', description: 'Controls whether the popover starts open.' },
|
|
786
|
+
{ name: 'aria-label', description: 'Accessible label when no title anatomy is present.' },
|
|
787
|
+
],
|
|
788
|
+
events: [
|
|
789
|
+
{ name: 'openchange', description: 'Emitted when the popover opens or closes.' },
|
|
790
|
+
{ name: 'close', description: 'Emitted after the popover closes.' },
|
|
791
|
+
],
|
|
792
|
+
anatomy: [
|
|
793
|
+
{
|
|
794
|
+
selector: 'vr-popover-trigger',
|
|
795
|
+
nativeTag: 'span',
|
|
796
|
+
baseClass: 'vr-popover-trigger',
|
|
797
|
+
description: 'Registers the element that opens the popover.',
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
selector: 'vr-popover-content',
|
|
801
|
+
nativeTag: 'div',
|
|
802
|
+
baseClass: 'vr-popover-content',
|
|
803
|
+
role: 'dialog',
|
|
804
|
+
description: 'Renders the positioned popover surface.',
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
selector: 'vr-popover-title',
|
|
808
|
+
nativeTag: 'h3',
|
|
809
|
+
baseClass: 'vr-popover-title',
|
|
810
|
+
description: 'Provides the visible popover title.',
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
selector: 'vr-popover-description',
|
|
814
|
+
nativeTag: 'p',
|
|
815
|
+
baseClass: 'vr-popover-description',
|
|
816
|
+
description: 'Provides supporting popover copy.',
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
selector: 'vr-popover-close',
|
|
820
|
+
nativeTag: 'button',
|
|
821
|
+
baseClass: 'vr-popover-close',
|
|
822
|
+
description: 'Closes the popover.',
|
|
823
|
+
},
|
|
824
|
+
],
|
|
825
|
+
examples: [
|
|
826
|
+
{
|
|
827
|
+
label: 'Dimensions popover',
|
|
828
|
+
code: '<vr-popover align.end side.bottom><vr-popover-trigger><vr-button variant.outline>Open</vr-button></vr-popover-trigger><vr-popover-content><vr-popover-title>Dimensions</vr-popover-title></vr-popover-content></vr-popover>',
|
|
829
|
+
},
|
|
830
|
+
],
|
|
831
|
+
accessibility: [
|
|
832
|
+
'Trigger focus is restored after close.',
|
|
833
|
+
'Escape and outside pointer input close the surface.',
|
|
834
|
+
],
|
|
835
|
+
}),
|
|
836
|
+
tooltip: registryEntry('tooltip', {
|
|
837
|
+
nativeTag: 'span',
|
|
838
|
+
category: 'interaction',
|
|
839
|
+
phase: '16G',
|
|
840
|
+
tokens: {
|
|
841
|
+
side: tokenGroup('side', ['top', 'right', 'bottom', 'left'], 'top', (value) => `vr-tooltip-side-${value}`, true),
|
|
842
|
+
align: tokenGroup('align', ['start', 'center', 'end'], 'center', (value) => `vr-tooltip-align-${value}`, true),
|
|
843
|
+
delay: tokenGroup('delay', ['instant', 'short', 'normal'], 'normal', (value) => `vr-tooltip-delay-${value}`, true),
|
|
844
|
+
tone: tokenGroup('tone', ['default', 'muted'], 'default', (value) => `vr-tooltip-tone-${value}`, true),
|
|
845
|
+
},
|
|
846
|
+
openAttributes: [
|
|
847
|
+
{ name: 'aria-label', description: 'Accessible trigger label remains owned by the trigger.' },
|
|
848
|
+
],
|
|
849
|
+
events: [{ name: 'openchange', description: 'Emitted when the tooltip opens or closes.' }],
|
|
850
|
+
anatomy: [
|
|
851
|
+
{
|
|
852
|
+
selector: 'vr-tooltip-trigger',
|
|
853
|
+
nativeTag: 'span',
|
|
854
|
+
baseClass: 'vr-tooltip-trigger',
|
|
855
|
+
description: 'Registers the hover and focus target.',
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
selector: 'vr-tooltip-content',
|
|
859
|
+
nativeTag: 'span',
|
|
860
|
+
baseClass: 'vr-tooltip-content',
|
|
861
|
+
role: 'tooltip',
|
|
862
|
+
description: 'Renders short supporting text.',
|
|
863
|
+
},
|
|
864
|
+
],
|
|
865
|
+
examples: [
|
|
866
|
+
{
|
|
867
|
+
label: 'Icon tooltip',
|
|
868
|
+
code: '<vr-tooltip side.top align.center><vr-tooltip-trigger><vr-button aria-label="Copy">Copy</vr-button></vr-tooltip-trigger><vr-tooltip-content>Copy page</vr-tooltip-content></vr-tooltip>',
|
|
869
|
+
},
|
|
870
|
+
],
|
|
871
|
+
accessibility: [
|
|
872
|
+
'Tooltip content never replaces a visible or aria trigger label.',
|
|
873
|
+
'Tooltip disclosure does not move focus.',
|
|
874
|
+
],
|
|
875
|
+
}),
|
|
876
|
+
commandMenu: registryEntry('commandMenu', {
|
|
877
|
+
nativeTag: 'div',
|
|
878
|
+
category: 'interaction',
|
|
879
|
+
phase: '16G',
|
|
880
|
+
tokens: {
|
|
881
|
+
size: tokenGroup('size', ['sm', 'md', 'lg'], 'md', (value) => `vr-command-menu-size-${value}`, true),
|
|
882
|
+
density: tokenGroup('density', uiDensityToken, 'comfortable', (value) => `vr-command-menu-density-${value}`, true),
|
|
883
|
+
tone: tokenGroup('tone', ['default', 'muted'], 'default', (value) => `vr-command-menu-tone-${value}`, true),
|
|
884
|
+
},
|
|
885
|
+
openAttributes: [
|
|
886
|
+
{ name: 'aria-label', description: 'Accessible label for the command menu.' },
|
|
887
|
+
{ name: 'placeholder', description: 'Search input placeholder text.' },
|
|
888
|
+
],
|
|
889
|
+
events: [{ name: 'select', description: 'Emitted when an enabled command item is selected.' }],
|
|
890
|
+
anatomy: [
|
|
891
|
+
{
|
|
892
|
+
selector: 'vr-command-menu-input',
|
|
893
|
+
nativeTag: 'input',
|
|
894
|
+
baseClass: 'vr-command-menu-input',
|
|
895
|
+
description: 'Receives search text and keyboard navigation.',
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
selector: 'vr-command-menu-list',
|
|
899
|
+
nativeTag: 'div',
|
|
900
|
+
baseClass: 'vr-command-menu-list',
|
|
901
|
+
role: 'listbox',
|
|
902
|
+
description: 'Groups command items.',
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
selector: 'vr-command-menu-group',
|
|
906
|
+
nativeTag: 'div',
|
|
907
|
+
baseClass: 'vr-command-menu-group',
|
|
908
|
+
description: 'Groups related commands under a heading.',
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
selector: 'vr-command-menu-item',
|
|
912
|
+
nativeTag: 'button',
|
|
913
|
+
baseClass: 'vr-command-menu-item',
|
|
914
|
+
role: 'option',
|
|
915
|
+
description: 'Represents one selectable command.',
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
selector: 'vr-command-menu-empty',
|
|
919
|
+
nativeTag: 'p',
|
|
920
|
+
baseClass: 'vr-command-menu-empty',
|
|
921
|
+
description: 'Displays empty search state.',
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
selector: 'vr-command-menu-shortcut',
|
|
925
|
+
nativeTag: 'kbd',
|
|
926
|
+
baseClass: 'vr-command-menu-shortcut',
|
|
927
|
+
description: 'Displays an optional keyboard shortcut.',
|
|
928
|
+
},
|
|
929
|
+
],
|
|
930
|
+
examples: [
|
|
931
|
+
{
|
|
932
|
+
label: 'Docs command menu',
|
|
933
|
+
code: '<vr-command-menu><vr-command-menu-input placeholder="Search docs..." /><vr-command-menu-list><vr-command-menu-group heading="Components"><vr-command-menu-item value.dialog>Dialog</vr-command-menu-item></vr-command-menu-group></vr-command-menu-list></vr-command-menu>',
|
|
934
|
+
},
|
|
935
|
+
],
|
|
936
|
+
accessibility: [
|
|
937
|
+
'Input uses active descendant state for keyboard movement.',
|
|
938
|
+
'Disabled items are skipped during keyboard navigation.',
|
|
939
|
+
],
|
|
940
|
+
}),
|
|
941
|
+
};
|
|
942
|
+
export function getUiComponentRegistryItem(type) {
|
|
943
|
+
return Object.values(uiComponentRegistry).find((item) => item.type === type);
|
|
944
|
+
}
|
|
945
|
+
//# sourceMappingURL=component-registry.js.map
|