@entifix/react-controls 0.1.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/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/i18n/catalog/en.d.ts +10 -0
- package/dist/i18n/catalog/en.d.ts.map +1 -0
- package/dist/i18n/catalog/en.js +211 -0
- package/dist/i18n/catalog/en.js.map +1 -0
- package/dist/i18n/catalog/es.d.ts +275 -0
- package/dist/i18n/catalog/es.d.ts.map +1 -0
- package/dist/i18n/catalog/es.js +261 -0
- package/dist/i18n/catalog/es.js.map +1 -0
- package/dist/i18n/catalog/index.d.ts +403 -0
- package/dist/i18n/catalog/index.d.ts.map +1 -0
- package/dist/i18n/catalog/index.js +23 -0
- package/dist/i18n/catalog/index.js.map +1 -0
- package/dist/i18n/entity-labels.d.ts +29 -0
- package/dist/i18n/entity-labels.d.ts.map +1 -0
- package/dist/i18n/entity-labels.js +49 -0
- package/dist/i18n/entity-labels.js.map +1 -0
- package/dist/i18n/fallback-catalogs.d.ts +5 -0
- package/dist/i18n/fallback-catalogs.d.ts.map +1 -0
- package/dist/i18n/fallback-catalogs.js +34 -0
- package/dist/i18n/fallback-catalogs.js.map +1 -0
- package/dist/i18n/i18n-context.d.ts +62 -0
- package/dist/i18n/i18n-context.d.ts.map +1 -0
- package/dist/i18n/i18n-context.js +128 -0
- package/dist/i18n/i18n-context.js.map +1 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +6 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/spec-support/catalogs.d.ts +2 -0
- package/dist/i18n/spec-support/catalogs.d.ts.map +1 -0
- package/dist/i18n/spec-support/catalogs.js +142 -0
- package/dist/i18n/spec-support/catalogs.js.map +1 -0
- package/dist/i18next/index.d.ts +20 -0
- package/dist/i18next/index.d.ts.map +1 -0
- package/dist/i18next/index.js +60 -0
- package/dist/i18next/index.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/preferences/index.d.ts +7 -0
- package/dist/preferences/index.d.ts.map +1 -0
- package/dist/preferences/index.js +8 -0
- package/dist/preferences/index.js.map +1 -0
- package/dist/preferences/indexeddb-ui-preferences-state.d.ts +16 -0
- package/dist/preferences/indexeddb-ui-preferences-state.d.ts.map +1 -0
- package/dist/preferences/indexeddb-ui-preferences-state.js +50 -0
- package/dist/preferences/indexeddb-ui-preferences-state.js.map +1 -0
- package/dist/preferences/local-storage-ui-preferences-state.d.ts +16 -0
- package/dist/preferences/local-storage-ui-preferences-state.d.ts.map +1 -0
- package/dist/preferences/local-storage-ui-preferences-state.js +51 -0
- package/dist/preferences/local-storage-ui-preferences-state.js.map +1 -0
- package/dist/preferences/ui-preferences-context.d.ts +16 -0
- package/dist/preferences/ui-preferences-context.d.ts.map +1 -0
- package/dist/preferences/ui-preferences-context.js +31 -0
- package/dist/preferences/ui-preferences-context.js.map +1 -0
- package/dist/preferences/ui-preferences-state.d.ts +23 -0
- package/dist/preferences/ui-preferences-state.d.ts.map +1 -0
- package/dist/preferences/ui-preferences-state.js +5 -0
- package/dist/preferences/ui-preferences-state.js.map +1 -0
- package/dist/preferences/use-ui-preference.d.ts +20 -0
- package/dist/preferences/use-ui-preference.d.ts.map +1 -0
- package/dist/preferences/use-ui-preference.js +72 -0
- package/dist/preferences/use-ui-preference.js.map +1 -0
- package/dist/preferences/use-viewport-mode.d.ts +33 -0
- package/dist/preferences/use-viewport-mode.d.ts.map +1 -0
- package/dist/preferences/use-viewport-mode.js +53 -0
- package/dist/preferences/use-viewport-mode.js.map +1 -0
- package/dist/primitives.d.ts +25 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +54 -0
- package/dist/primitives.js.map +1 -0
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +4 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-context.d.ts +26 -0
- package/dist/theme/theme-context.d.ts.map +1 -0
- package/dist/theme/theme-context.js +79 -0
- package/dist/theme/theme-context.js.map +1 -0
- package/dist/theme/types.d.ts +22 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +6 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/ui/actions/action-surfaces.d.ts +59 -0
- package/dist/ui/actions/action-surfaces.d.ts.map +1 -0
- package/dist/ui/actions/action-surfaces.js +109 -0
- package/dist/ui/actions/action-surfaces.js.map +1 -0
- package/dist/ui/actions/index.d.ts +2 -0
- package/dist/ui/actions/index.d.ts.map +1 -0
- package/dist/ui/actions/index.js +3 -0
- package/dist/ui/actions/index.js.map +1 -0
- package/dist/ui/atoms/button/button-link.d.ts +27 -0
- package/dist/ui/atoms/button/button-link.d.ts.map +1 -0
- package/dist/ui/atoms/button/button-link.js +23 -0
- package/dist/ui/atoms/button/button-link.js.map +1 -0
- package/dist/ui/atoms/button/button-recipe.d.ts +19 -0
- package/dist/ui/atoms/button/button-recipe.d.ts.map +1 -0
- package/dist/ui/atoms/button/button-recipe.js +42 -0
- package/dist/ui/atoms/button/button-recipe.js.map +1 -0
- package/dist/ui/atoms/button/button.d.ts +7 -0
- package/dist/ui/atoms/button/button.d.ts.map +1 -0
- package/dist/ui/atoms/button/button.js +22 -0
- package/dist/ui/atoms/button/button.js.map +1 -0
- package/dist/ui/atoms/button/index.d.ts +4 -0
- package/dist/ui/atoms/button/index.d.ts.map +1 -0
- package/dist/ui/atoms/button/index.js +5 -0
- package/dist/ui/atoms/button/index.js.map +1 -0
- package/dist/ui/atoms/cell-value/cell-value.d.ts +12 -0
- package/dist/ui/atoms/cell-value/cell-value.d.ts.map +1 -0
- package/dist/ui/atoms/cell-value/cell-value.js +101 -0
- package/dist/ui/atoms/cell-value/cell-value.js.map +1 -0
- package/dist/ui/atoms/cell-value/index.d.ts +2 -0
- package/dist/ui/atoms/cell-value/index.d.ts.map +1 -0
- package/dist/ui/atoms/cell-value/index.js +3 -0
- package/dist/ui/atoms/cell-value/index.js.map +1 -0
- package/dist/ui/atoms/field/checkbox.d.ts +35 -0
- package/dist/ui/atoms/field/checkbox.d.ts.map +1 -0
- package/dist/ui/atoms/field/checkbox.js +46 -0
- package/dist/ui/atoms/field/checkbox.js.map +1 -0
- package/dist/ui/atoms/field/field.d.ts +4 -0
- package/dist/ui/atoms/field/field.d.ts.map +1 -0
- package/dist/ui/atoms/field/field.js +29 -0
- package/dist/ui/atoms/field/field.js.map +1 -0
- package/dist/ui/atoms/field/index.d.ts +3 -0
- package/dist/ui/atoms/field/index.d.ts.map +1 -0
- package/dist/ui/atoms/field/index.js +4 -0
- package/dist/ui/atoms/field/index.js.map +1 -0
- package/dist/ui/atoms/field-control/field-control.d.ts +50 -0
- package/dist/ui/atoms/field-control/field-control.d.ts.map +1 -0
- package/dist/ui/atoms/field-control/field-control.js +82 -0
- package/dist/ui/atoms/field-control/field-control.js.map +1 -0
- package/dist/ui/atoms/field-control/index.d.ts +2 -0
- package/dist/ui/atoms/field-control/index.d.ts.map +1 -0
- package/dist/ui/atoms/field-control/index.js +3 -0
- package/dist/ui/atoms/field-control/index.js.map +1 -0
- package/dist/ui/atoms/skeleton/index.d.ts +2 -0
- package/dist/ui/atoms/skeleton/index.d.ts.map +1 -0
- package/dist/ui/atoms/skeleton/index.js +3 -0
- package/dist/ui/atoms/skeleton/index.js.map +1 -0
- package/dist/ui/atoms/skeleton/skeleton.d.ts +21 -0
- package/dist/ui/atoms/skeleton/skeleton.d.ts.map +1 -0
- package/dist/ui/atoms/skeleton/skeleton.js +33 -0
- package/dist/ui/atoms/skeleton/skeleton.js.map +1 -0
- package/dist/ui/atoms/table/index.d.ts +2 -0
- package/dist/ui/atoms/table/index.d.ts.map +1 -0
- package/dist/ui/atoms/table/index.js +3 -0
- package/dist/ui/atoms/table/index.js.map +1 -0
- package/dist/ui/atoms/table/table.d.ts +30 -0
- package/dist/ui/atoms/table/table.d.ts.map +1 -0
- package/dist/ui/atoms/table/table.js +84 -0
- package/dist/ui/atoms/table/table.js.map +1 -0
- package/dist/ui/atoms/text/index.d.ts +2 -0
- package/dist/ui/atoms/text/index.d.ts.map +1 -0
- package/dist/ui/atoms/text/index.js +3 -0
- package/dist/ui/atoms/text/index.js.map +1 -0
- package/dist/ui/atoms/text/text.d.ts +86 -0
- package/dist/ui/atoms/text/text.d.ts.map +1 -0
- package/dist/ui/atoms/text/text.js +221 -0
- package/dist/ui/atoms/text/text.js.map +1 -0
- package/dist/ui/layout/_demo.d.ts +6 -0
- package/dist/ui/layout/_demo.d.ts.map +1 -0
- package/dist/ui/layout/_demo.js +11 -0
- package/dist/ui/layout/_demo.js.map +1 -0
- package/dist/ui/layout/_shared.d.ts +9 -0
- package/dist/ui/layout/_shared.d.ts.map +1 -0
- package/dist/ui/layout/_shared.js +30 -0
- package/dist/ui/layout/_shared.js.map +1 -0
- package/dist/ui/layout/box/box.d.ts +10 -0
- package/dist/ui/layout/box/box.d.ts.map +1 -0
- package/dist/ui/layout/box/box.js +28 -0
- package/dist/ui/layout/box/box.js.map +1 -0
- package/dist/ui/layout/box/index.d.ts +2 -0
- package/dist/ui/layout/box/index.d.ts.map +1 -0
- package/dist/ui/layout/box/index.js +3 -0
- package/dist/ui/layout/box/index.js.map +1 -0
- package/dist/ui/layout/center/center.d.ts +13 -0
- package/dist/ui/layout/center/center.d.ts.map +1 -0
- package/dist/ui/layout/center/center.js +22 -0
- package/dist/ui/layout/center/center.js.map +1 -0
- package/dist/ui/layout/center/index.d.ts +2 -0
- package/dist/ui/layout/center/index.d.ts.map +1 -0
- package/dist/ui/layout/center/index.js +3 -0
- package/dist/ui/layout/center/index.js.map +1 -0
- package/dist/ui/layout/cluster/cluster.d.ts +11 -0
- package/dist/ui/layout/cluster/cluster.d.ts.map +1 -0
- package/dist/ui/layout/cluster/cluster.js +19 -0
- package/dist/ui/layout/cluster/cluster.js.map +1 -0
- package/dist/ui/layout/cluster/index.d.ts +2 -0
- package/dist/ui/layout/cluster/index.d.ts.map +1 -0
- package/dist/ui/layout/cluster/index.js +3 -0
- package/dist/ui/layout/cluster/index.js.map +1 -0
- package/dist/ui/layout/cover/cover.d.ts +26 -0
- package/dist/ui/layout/cover/cover.d.ts.map +1 -0
- package/dist/ui/layout/cover/cover.js +57 -0
- package/dist/ui/layout/cover/cover.js.map +1 -0
- package/dist/ui/layout/cover/index.d.ts +2 -0
- package/dist/ui/layout/cover/index.d.ts.map +1 -0
- package/dist/ui/layout/cover/index.js +3 -0
- package/dist/ui/layout/cover/index.js.map +1 -0
- package/dist/ui/layout/grid/grid.d.ts +14 -0
- package/dist/ui/layout/grid/grid.d.ts.map +1 -0
- package/dist/ui/layout/grid/grid.js +25 -0
- package/dist/ui/layout/grid/grid.js.map +1 -0
- package/dist/ui/layout/grid/index.d.ts +2 -0
- package/dist/ui/layout/grid/index.d.ts.map +1 -0
- package/dist/ui/layout/grid/index.js +3 -0
- package/dist/ui/layout/grid/index.js.map +1 -0
- package/dist/ui/layout/sidebar/index.d.ts +2 -0
- package/dist/ui/layout/sidebar/index.d.ts.map +1 -0
- package/dist/ui/layout/sidebar/index.js +3 -0
- package/dist/ui/layout/sidebar/index.js.map +1 -0
- package/dist/ui/layout/sidebar/sidebar.d.ts +33 -0
- package/dist/ui/layout/sidebar/sidebar.d.ts.map +1 -0
- package/dist/ui/layout/sidebar/sidebar.js +54 -0
- package/dist/ui/layout/sidebar/sidebar.js.map +1 -0
- package/dist/ui/layout/switcher/index.d.ts +2 -0
- package/dist/ui/layout/switcher/index.d.ts.map +1 -0
- package/dist/ui/layout/switcher/index.js +3 -0
- package/dist/ui/layout/switcher/index.js.map +1 -0
- package/dist/ui/layout/switcher/switcher.d.ts +15 -0
- package/dist/ui/layout/switcher/switcher.d.ts.map +1 -0
- package/dist/ui/layout/switcher/switcher.js +26 -0
- package/dist/ui/layout/switcher/switcher.js.map +1 -0
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.d.ts +27 -0
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.js +50 -0
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.js.map +1 -0
- package/dist/ui/molecules/breadcrumbs/index.d.ts +2 -0
- package/dist/ui/molecules/breadcrumbs/index.d.ts.map +1 -0
- package/dist/ui/molecules/breadcrumbs/index.js +3 -0
- package/dist/ui/molecules/breadcrumbs/index.js.map +1 -0
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.d.ts +47 -0
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.d.ts.map +1 -0
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.js +63 -0
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.js.map +1 -0
- package/dist/ui/molecules/bulk-action-bar/index.d.ts +2 -0
- package/dist/ui/molecules/bulk-action-bar/index.d.ts.map +1 -0
- package/dist/ui/molecules/bulk-action-bar/index.js +3 -0
- package/dist/ui/molecules/bulk-action-bar/index.js.map +1 -0
- package/dist/ui/molecules/bulk-result/bulk-result.d.ts +31 -0
- package/dist/ui/molecules/bulk-result/bulk-result.d.ts.map +1 -0
- package/dist/ui/molecules/bulk-result/bulk-result.js +86 -0
- package/dist/ui/molecules/bulk-result/bulk-result.js.map +1 -0
- package/dist/ui/molecules/bulk-result/index.d.ts +2 -0
- package/dist/ui/molecules/bulk-result/index.d.ts.map +1 -0
- package/dist/ui/molecules/bulk-result/index.js +3 -0
- package/dist/ui/molecules/bulk-result/index.js.map +1 -0
- package/dist/ui/molecules/card/card.d.ts +5 -0
- package/dist/ui/molecules/card/card.d.ts.map +1 -0
- package/dist/ui/molecules/card/card.js +14 -0
- package/dist/ui/molecules/card/card.js.map +1 -0
- package/dist/ui/molecules/card/index.d.ts +2 -0
- package/dist/ui/molecules/card/index.d.ts.map +1 -0
- package/dist/ui/molecules/card/index.js +3 -0
- package/dist/ui/molecules/card/index.js.map +1 -0
- package/dist/ui/molecules/column-settings/column-settings.d.ts +29 -0
- package/dist/ui/molecules/column-settings/column-settings.d.ts.map +1 -0
- package/dist/ui/molecules/column-settings/column-settings.js +117 -0
- package/dist/ui/molecules/column-settings/column-settings.js.map +1 -0
- package/dist/ui/molecules/column-settings/index.d.ts +2 -0
- package/dist/ui/molecules/column-settings/index.d.ts.map +1 -0
- package/dist/ui/molecules/column-settings/index.js +3 -0
- package/dist/ui/molecules/column-settings/index.js.map +1 -0
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.d.ts +31 -0
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.d.ts.map +1 -0
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.js +68 -0
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.js.map +1 -0
- package/dist/ui/molecules/confirm-dialog/index.d.ts +2 -0
- package/dist/ui/molecules/confirm-dialog/index.d.ts.map +1 -0
- package/dist/ui/molecules/confirm-dialog/index.js +3 -0
- package/dist/ui/molecules/confirm-dialog/index.js.map +1 -0
- package/dist/ui/molecules/drawer/drawer.d.ts +25 -0
- package/dist/ui/molecules/drawer/drawer.d.ts.map +1 -0
- package/dist/ui/molecules/drawer/drawer.js +60 -0
- package/dist/ui/molecules/drawer/drawer.js.map +1 -0
- package/dist/ui/molecules/drawer/index.d.ts +2 -0
- package/dist/ui/molecules/drawer/index.d.ts.map +1 -0
- package/dist/ui/molecules/drawer/index.js +3 -0
- package/dist/ui/molecules/drawer/index.js.map +1 -0
- package/dist/ui/molecules/entity-link-input/entity-link-input.d.ts +36 -0
- package/dist/ui/molecules/entity-link-input/entity-link-input.d.ts.map +1 -0
- package/dist/ui/molecules/entity-link-input/entity-link-input.js +191 -0
- package/dist/ui/molecules/entity-link-input/entity-link-input.js.map +1 -0
- package/dist/ui/molecules/entity-link-input/index.d.ts +2 -0
- package/dist/ui/molecules/entity-link-input/index.d.ts.map +1 -0
- package/dist/ui/molecules/entity-link-input/index.js +3 -0
- package/dist/ui/molecules/entity-link-input/index.js.map +1 -0
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.d.ts +19 -0
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.d.ts.map +1 -0
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.js +78 -0
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.js.map +1 -0
- package/dist/ui/molecules/entity-link-picker/index.d.ts +2 -0
- package/dist/ui/molecules/entity-link-picker/index.d.ts.map +1 -0
- package/dist/ui/molecules/entity-link-picker/index.js +3 -0
- package/dist/ui/molecules/entity-link-picker/index.js.map +1 -0
- package/dist/ui/molecules/entity-record-card/entity-record-card.d.ts +30 -0
- package/dist/ui/molecules/entity-record-card/entity-record-card.d.ts.map +1 -0
- package/dist/ui/molecules/entity-record-card/entity-record-card.js +39 -0
- package/dist/ui/molecules/entity-record-card/entity-record-card.js.map +1 -0
- package/dist/ui/molecules/entity-record-card/index.d.ts +2 -0
- package/dist/ui/molecules/entity-record-card/index.d.ts.map +1 -0
- package/dist/ui/molecules/entity-record-card/index.js +3 -0
- package/dist/ui/molecules/entity-record-card/index.js.map +1 -0
- package/dist/ui/molecules/filter-builder/filter-builder.d.ts +19 -0
- package/dist/ui/molecules/filter-builder/filter-builder.d.ts.map +1 -0
- package/dist/ui/molecules/filter-builder/filter-builder.js +333 -0
- package/dist/ui/molecules/filter-builder/filter-builder.js.map +1 -0
- package/dist/ui/molecules/filter-builder/filter-operators.d.ts +20 -0
- package/dist/ui/molecules/filter-builder/filter-operators.d.ts.map +1 -0
- package/dist/ui/molecules/filter-builder/filter-operators.js +56 -0
- package/dist/ui/molecules/filter-builder/filter-operators.js.map +1 -0
- package/dist/ui/molecules/filter-builder/index.d.ts +3 -0
- package/dist/ui/molecules/filter-builder/index.d.ts.map +1 -0
- package/dist/ui/molecules/filter-builder/index.js +4 -0
- package/dist/ui/molecules/filter-builder/index.js.map +1 -0
- package/dist/ui/molecules/loading-boundary/index.d.ts +2 -0
- package/dist/ui/molecules/loading-boundary/index.d.ts.map +1 -0
- package/dist/ui/molecules/loading-boundary/index.js +3 -0
- package/dist/ui/molecules/loading-boundary/index.js.map +1 -0
- package/dist/ui/molecules/loading-boundary/loading-boundary.d.ts +27 -0
- package/dist/ui/molecules/loading-boundary/loading-boundary.d.ts.map +1 -0
- package/dist/ui/molecules/loading-boundary/loading-boundary.js +42 -0
- package/dist/ui/molecules/loading-boundary/loading-boundary.js.map +1 -0
- package/dist/ui/molecules/menu/index.d.ts +2 -0
- package/dist/ui/molecules/menu/index.d.ts.map +1 -0
- package/dist/ui/molecules/menu/index.js +3 -0
- package/dist/ui/molecules/menu/index.js.map +1 -0
- package/dist/ui/molecules/menu/menu.d.ts +37 -0
- package/dist/ui/molecules/menu/menu.d.ts.map +1 -0
- package/dist/ui/molecules/menu/menu.js +71 -0
- package/dist/ui/molecules/menu/menu.js.map +1 -0
- package/dist/ui/molecules/pagination/index.d.ts +2 -0
- package/dist/ui/molecules/pagination/index.d.ts.map +1 -0
- package/dist/ui/molecules/pagination/index.js +3 -0
- package/dist/ui/molecules/pagination/index.js.map +1 -0
- package/dist/ui/molecules/pagination/pagination.d.ts +13 -0
- package/dist/ui/molecules/pagination/pagination.d.ts.map +1 -0
- package/dist/ui/molecules/pagination/pagination.js +68 -0
- package/dist/ui/molecules/pagination/pagination.js.map +1 -0
- package/dist/ui/molecules/sort-builder/index.d.ts +2 -0
- package/dist/ui/molecules/sort-builder/index.d.ts.map +1 -0
- package/dist/ui/molecules/sort-builder/index.js +3 -0
- package/dist/ui/molecules/sort-builder/index.js.map +1 -0
- package/dist/ui/molecules/sort-builder/sort-builder.d.ts +18 -0
- package/dist/ui/molecules/sort-builder/sort-builder.d.ts.map +1 -0
- package/dist/ui/molecules/sort-builder/sort-builder.js +185 -0
- package/dist/ui/molecules/sort-builder/sort-builder.js.map +1 -0
- package/dist/ui/molecules/stack/index.d.ts +2 -0
- package/dist/ui/molecules/stack/index.d.ts.map +1 -0
- package/dist/ui/molecules/stack/index.js +3 -0
- package/dist/ui/molecules/stack/index.js.map +1 -0
- package/dist/ui/molecules/stack/stack.d.ts +12 -0
- package/dist/ui/molecules/stack/stack.d.ts.map +1 -0
- package/dist/ui/molecules/stack/stack.js +36 -0
- package/dist/ui/molecules/stack/stack.js.map +1 -0
- package/dist/ui/molecules/tab-strip/index.d.ts +2 -0
- package/dist/ui/molecules/tab-strip/index.d.ts.map +1 -0
- package/dist/ui/molecules/tab-strip/index.js +3 -0
- package/dist/ui/molecules/tab-strip/index.js.map +1 -0
- package/dist/ui/molecules/tab-strip/tab-strip.d.ts +29 -0
- package/dist/ui/molecules/tab-strip/tab-strip.d.ts.map +1 -0
- package/dist/ui/molecules/tab-strip/tab-strip.js +82 -0
- package/dist/ui/molecules/tab-strip/tab-strip.js.map +1 -0
- package/dist/ui/molecules/table-toolbar/index.d.ts +2 -0
- package/dist/ui/molecules/table-toolbar/index.d.ts.map +1 -0
- package/dist/ui/molecules/table-toolbar/index.js +3 -0
- package/dist/ui/molecules/table-toolbar/index.js.map +1 -0
- package/dist/ui/molecules/table-toolbar/table-toolbar.d.ts +13 -0
- package/dist/ui/molecules/table-toolbar/table-toolbar.d.ts.map +1 -0
- package/dist/ui/molecules/table-toolbar/table-toolbar.js +28 -0
- package/dist/ui/molecules/table-toolbar/table-toolbar.js.map +1 -0
- package/dist/ui/molecules/theme-switcher/index.d.ts +2 -0
- package/dist/ui/molecules/theme-switcher/index.d.ts.map +1 -0
- package/dist/ui/molecules/theme-switcher/index.js +3 -0
- package/dist/ui/molecules/theme-switcher/index.js.map +1 -0
- package/dist/ui/molecules/theme-switcher/theme-switcher.d.ts +6 -0
- package/dist/ui/molecules/theme-switcher/theme-switcher.d.ts.map +1 -0
- package/dist/ui/molecules/theme-switcher/theme-switcher.js +24 -0
- package/dist/ui/molecules/theme-switcher/theme-switcher.js.map +1 -0
- package/dist/ui/organisms/command-palette/command-palette.d.ts +67 -0
- package/dist/ui/organisms/command-palette/command-palette.d.ts.map +1 -0
- package/dist/ui/organisms/command-palette/command-palette.js +226 -0
- package/dist/ui/organisms/command-palette/command-palette.js.map +1 -0
- package/dist/ui/organisms/command-palette/index.d.ts +2 -0
- package/dist/ui/organisms/command-palette/index.d.ts.map +1 -0
- package/dist/ui/organisms/command-palette/index.js +3 -0
- package/dist/ui/organisms/command-palette/index.js.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.d.ts +43 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.d.ts.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.js +281 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.js.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.types.d.ts +49 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.types.d.ts.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.types.js +3 -0
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.types.js.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/index.d.ts +3 -0
- package/dist/ui/organisms/entity-detail-grid/index.d.ts.map +1 -0
- package/dist/ui/organisms/entity-detail-grid/index.js +4 -0
- package/dist/ui/organisms/entity-detail-grid/index.js.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form-slots.d.ts +53 -0
- package/dist/ui/organisms/entity-form/entity-form-slots.d.ts.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form-slots.js +44 -0
- package/dist/ui/organisms/entity-form/entity-form-slots.js.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form.d.ts +4 -0
- package/dist/ui/organisms/entity-form/entity-form.d.ts.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form.js +494 -0
- package/dist/ui/organisms/entity-form/entity-form.js.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form.types.d.ts +151 -0
- package/dist/ui/organisms/entity-form/entity-form.types.d.ts.map +1 -0
- package/dist/ui/organisms/entity-form/entity-form.types.js +3 -0
- package/dist/ui/organisms/entity-form/entity-form.types.js.map +1 -0
- package/dist/ui/organisms/entity-form/index.d.ts +5 -0
- package/dist/ui/organisms/entity-form/index.d.ts.map +1 -0
- package/dist/ui/organisms/entity-form/index.js +6 -0
- package/dist/ui/organisms/entity-form/index.js.map +1 -0
- package/dist/ui/organisms/entity-form/use-entity-form-fields.d.ts +13 -0
- package/dist/ui/organisms/entity-form/use-entity-form-fields.d.ts.map +1 -0
- package/dist/ui/organisms/entity-form/use-entity-form-fields.js +50 -0
- package/dist/ui/organisms/entity-form/use-entity-form-fields.js.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table-slots.d.ts +55 -0
- package/dist/ui/organisms/entity-table/entity-table-slots.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table-slots.js +50 -0
- package/dist/ui/organisms/entity-table/entity-table-slots.js.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table.d.ts +4 -0
- package/dist/ui/organisms/entity-table/entity-table.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table.js +529 -0
- package/dist/ui/organisms/entity-table/entity-table.js.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table.types.d.ts +126 -0
- package/dist/ui/organisms/entity-table/entity-table.types.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/entity-table.types.js +3 -0
- package/dist/ui/organisms/entity-table/entity-table.types.js.map +1 -0
- package/dist/ui/organisms/entity-table/index.d.ts +5 -0
- package/dist/ui/organisms/entity-table/index.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/index.js +6 -0
- package/dist/ui/organisms/entity-table/index.js.map +1 -0
- package/dist/ui/organisms/entity-table/use-entity-table-columns.d.ts +29 -0
- package/dist/ui/organisms/entity-table/use-entity-table-columns.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/use-entity-table-columns.js +103 -0
- package/dist/ui/organisms/entity-table/use-entity-table-columns.js.map +1 -0
- package/dist/ui/organisms/top-bar/index.d.ts +2 -0
- package/dist/ui/organisms/top-bar/index.d.ts.map +1 -0
- package/dist/ui/organisms/top-bar/index.js +3 -0
- package/dist/ui/organisms/top-bar/index.js.map +1 -0
- package/dist/ui/organisms/top-bar/top-bar.d.ts +20 -0
- package/dist/ui/organisms/top-bar/top-bar.d.ts.map +1 -0
- package/dist/ui/organisms/top-bar/top-bar.js +43 -0
- package/dist/ui/organisms/top-bar/top-bar.js.map +1 -0
- package/dist/ui/organisms/wizard/index.d.ts +3 -0
- package/dist/ui/organisms/wizard/index.d.ts.map +1 -0
- package/dist/ui/organisms/wizard/index.js +4 -0
- package/dist/ui/organisms/wizard/index.js.map +1 -0
- package/dist/ui/organisms/wizard/wizard.d.ts +21 -0
- package/dist/ui/organisms/wizard/wizard.d.ts.map +1 -0
- package/dist/ui/organisms/wizard/wizard.js +260 -0
- package/dist/ui/organisms/wizard/wizard.js.map +1 -0
- package/dist/ui/organisms/wizard/wizard.types.d.ts +83 -0
- package/dist/ui/organisms/wizard/wizard.types.d.ts.map +1 -0
- package/dist/ui/organisms/wizard/wizard.types.js +3 -0
- package/dist/ui/organisms/wizard/wizard.types.js.map +1 -0
- package/dist/ui/utils/cn.d.ts +4 -0
- package/dist/ui/utils/cn.d.ts.map +1 -0
- package/dist/ui/utils/cn.js +5 -0
- package/dist/ui/utils/cn.js.map +1 -0
- package/dist/ui/utils/use-hotkey.d.ts +31 -0
- package/dist/ui/utils/use-hotkey.d.ts.map +1 -0
- package/dist/ui/utils/use-hotkey.js +69 -0
- package/dist/ui/utils/use-hotkey.js.map +1 -0
- package/package.json +118 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/cover/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/cover/index.ts"],"sourcesContent":["export * from './cover.js';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ElementType } from 'react';
|
|
2
|
+
import { type SpacingToken } from '../_shared.js';
|
|
3
|
+
export interface GridProps extends ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
/** Minimum column width before wrapping (defaults to the --grid-min token). */
|
|
5
|
+
min?: string;
|
|
6
|
+
gap?: SpacingToken;
|
|
7
|
+
as?: ElementType;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The single CSS-Grid escape hatch in a flex-first kit: auto-fill responsive
|
|
11
|
+
* columns for card grids, each at least `min` wide.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Grid({ min, gap, as: Tag, className, style, ...props }: GridProps): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/grid/grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,WAAW,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,SAAU,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAChE,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EACnB,GAAG,EACH,GAAS,EACT,EAAE,EAAE,GAAW,EACf,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,SAAS,+BAYX"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { cn } from '../../utils/cn.js';
|
|
5
|
+
import { GAP } from '../_shared.js';
|
|
6
|
+
/**
|
|
7
|
+
* The single CSS-Grid escape hatch in a flex-first kit: auto-fill responsive
|
|
8
|
+
* columns for card grids, each at least `min` wide.
|
|
9
|
+
*/ export function Grid(_0) {
|
|
10
|
+
let { min, gap = 'm', as: Tag = 'div', className, style } = _0, props = _object_without_properties_loose(_0, [
|
|
11
|
+
"min",
|
|
12
|
+
"gap",
|
|
13
|
+
"as",
|
|
14
|
+
"className",
|
|
15
|
+
"style"
|
|
16
|
+
]);
|
|
17
|
+
return /*#__PURE__*/ _jsx(Tag, _extends({
|
|
18
|
+
className: cn('grid grid-cols-[repeat(auto-fill,minmax(min(var(--_grid-min,16rem),100%),1fr))]', GAP[gap], className),
|
|
19
|
+
style: min ? _extends({}, style, {
|
|
20
|
+
'--_grid-min': min
|
|
21
|
+
}) : style
|
|
22
|
+
}, props));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/grid/grid.tsx"],"sourcesContent":["import type {\n ComponentPropsWithoutRef,\n CSSProperties,\n ElementType,\n} from 'react';\n\nimport { cn } from '../../utils/cn.js';\nimport { GAP, type SpacingToken } from '../_shared.js';\n\nexport interface GridProps extends ComponentPropsWithoutRef<'div'> {\n /** Minimum column width before wrapping (defaults to the --grid-min token). */\n min?: string;\n gap?: SpacingToken;\n as?: ElementType;\n}\n\n/**\n * The single CSS-Grid escape hatch in a flex-first kit: auto-fill responsive\n * columns for card grids, each at least `min` wide.\n */\nexport function Grid({\n min,\n gap = 'm',\n as: Tag = 'div',\n className,\n style,\n ...props\n}: GridProps) {\n return (\n <Tag\n className={cn(\n 'grid grid-cols-[repeat(auto-fill,minmax(min(var(--_grid-min,16rem),100%),1fr))]',\n GAP[gap],\n className,\n )}\n style={min ? ({ ...style, '--_grid-min': min } as CSSProperties) : style}\n {...props}\n />\n );\n}\n"],"names":["cn","GAP","Grid","min","gap","as","Tag","className","style","props"],"mappings":";;;AAMA,SAASA,EAAE,QAAQ,oBAAoB;AACvC,SAASC,GAAG,QAA2B,gBAAgB;AASvD;;;CAGC,GACD,OAAO,SAASC,KAAK,EAOT;QAPS,EACnBC,GAAG,EACHC,MAAM,GAAG,EACTC,IAAIC,MAAM,KAAK,EACfC,SAAS,EACTC,KAAK,EAEK,OADPC;;;;;;;IAEH,qBACE,KAACH;QACCC,WAAWP,GACT,mFACAC,GAAG,CAACG,IAAI,EACRG;QAEFC,OAAOL,MAAO,aAAKK;YAAO,eAAeL;aAA0BK;OAC/DC;AAGV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/grid/index.ts"],"sourcesContent":["export * from './grid.js';\n"],"names":[],"mappings":"AAAA,cAAc,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/sidebar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/sidebar/index.ts"],"sourcesContent":["export * from './sidebar.js';\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ElementType } from 'react';
|
|
2
|
+
import { type SpacingToken } from '../_shared.js';
|
|
3
|
+
export interface SidebarProps extends ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
/** Which edge the fixed panel sits on. */
|
|
5
|
+
side?: 'start' | 'end';
|
|
6
|
+
/** Gap between the side and the main. `'none'` renders them flush. */
|
|
7
|
+
gap?: SpacingToken | 'none';
|
|
8
|
+
as?: ElementType;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Two-panel layout: a fixed-width side + a fluid main that wraps below the
|
|
12
|
+
* side once the main can no longer hold its minimum inline size — no media
|
|
13
|
+
* query. Compose with `Sidebar.Side` and `Sidebar.Main`.
|
|
14
|
+
*/
|
|
15
|
+
declare function SidebarRoot({ side, gap, as: Tag, className, ...props }: SidebarProps): import("react").JSX.Element;
|
|
16
|
+
export interface SidebarSideProps extends ComponentPropsWithoutRef<'div'> {
|
|
17
|
+
/** Width of the fixed panel (defaults to 20rem). */
|
|
18
|
+
width?: string;
|
|
19
|
+
as?: ElementType;
|
|
20
|
+
}
|
|
21
|
+
declare function SidebarSide({ width, as: Tag, className, style, ...props }: SidebarSideProps): import("react").JSX.Element;
|
|
22
|
+
export interface SidebarMainProps extends ComponentPropsWithoutRef<'div'> {
|
|
23
|
+
/** Minimum inline size before the main wraps below the side. */
|
|
24
|
+
contentMin?: string;
|
|
25
|
+
as?: ElementType;
|
|
26
|
+
}
|
|
27
|
+
declare function SidebarMain({ contentMin, as: Tag, className, style, ...props }: SidebarMainProps): import("react").JSX.Element;
|
|
28
|
+
export declare const Sidebar: typeof SidebarRoot & {
|
|
29
|
+
Side: typeof SidebarSide;
|
|
30
|
+
Main: typeof SidebarMain;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/sidebar/sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,WAAW,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,YAAa,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACnE,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,sEAAsE;IACtE,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,EACnB,IAAc,EACd,GAAS,EACT,EAAE,EAAE,GAAW,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BAYd;AAED,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACvE,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,EAAE,EAAE,GAAW,EACf,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAUlB;AAED,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACvE,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED,iBAAS,WAAW,CAAC,EACnB,UAAU,EACV,EAAE,EAAE,GAAW,EACf,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAelB;AAED,eAAO,MAAM,OAAO;;;CAGlB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { cn } from '../../utils/cn.js';
|
|
5
|
+
import { GAP } from '../_shared.js';
|
|
6
|
+
/**
|
|
7
|
+
* Two-panel layout: a fixed-width side + a fluid main that wraps below the
|
|
8
|
+
* side once the main can no longer hold its minimum inline size — no media
|
|
9
|
+
* query. Compose with `Sidebar.Side` and `Sidebar.Main`.
|
|
10
|
+
*/ function SidebarRoot(_0) {
|
|
11
|
+
let { side = 'start', gap = 'm', as: Tag = 'div', className } = _0, props = _object_without_properties_loose(_0, [
|
|
12
|
+
"side",
|
|
13
|
+
"gap",
|
|
14
|
+
"as",
|
|
15
|
+
"className"
|
|
16
|
+
]);
|
|
17
|
+
return /*#__PURE__*/ _jsx(Tag, _extends({
|
|
18
|
+
className: cn('flex flex-wrap', side === 'end' && 'flex-row-reverse', gap !== 'none' && GAP[gap], className)
|
|
19
|
+
}, props));
|
|
20
|
+
}
|
|
21
|
+
function SidebarSide(_0) {
|
|
22
|
+
let { width, as: Tag = 'div', className, style } = _0, props = _object_without_properties_loose(_0, [
|
|
23
|
+
"width",
|
|
24
|
+
"as",
|
|
25
|
+
"className",
|
|
26
|
+
"style"
|
|
27
|
+
]);
|
|
28
|
+
return /*#__PURE__*/ _jsx(Tag, _extends({
|
|
29
|
+
className: cn('shrink grow basis-[var(--_side-width,20rem)]', className),
|
|
30
|
+
style: width ? _extends({}, style, {
|
|
31
|
+
'--_side-width': width
|
|
32
|
+
}) : style
|
|
33
|
+
}, props));
|
|
34
|
+
}
|
|
35
|
+
function SidebarMain(_0) {
|
|
36
|
+
let { contentMin, as: Tag = 'div', className, style } = _0, props = _object_without_properties_loose(_0, [
|
|
37
|
+
"contentMin",
|
|
38
|
+
"as",
|
|
39
|
+
"className",
|
|
40
|
+
"style"
|
|
41
|
+
]);
|
|
42
|
+
return /*#__PURE__*/ _jsx(Tag, _extends({
|
|
43
|
+
className: cn('basis-0 min-w-[var(--_content-min,50%)] shrink grow-[999]', className),
|
|
44
|
+
style: contentMin ? _extends({}, style, {
|
|
45
|
+
'--_content-min': contentMin
|
|
46
|
+
}) : style
|
|
47
|
+
}, props));
|
|
48
|
+
}
|
|
49
|
+
export const Sidebar = Object.assign(SidebarRoot, {
|
|
50
|
+
Side: SidebarSide,
|
|
51
|
+
Main: SidebarMain
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/sidebar/sidebar.tsx"],"sourcesContent":["import type {\n ComponentPropsWithoutRef,\n CSSProperties,\n ElementType,\n} from 'react';\n\nimport { cn } from '../../utils/cn.js';\nimport { GAP, type SpacingToken } from '../_shared.js';\n\nexport interface SidebarProps extends ComponentPropsWithoutRef<'div'> {\n /** Which edge the fixed panel sits on. */\n side?: 'start' | 'end';\n /** Gap between the side and the main. `'none'` renders them flush. */\n gap?: SpacingToken | 'none';\n as?: ElementType;\n}\n\n/**\n * Two-panel layout: a fixed-width side + a fluid main that wraps below the\n * side once the main can no longer hold its minimum inline size — no media\n * query. Compose with `Sidebar.Side` and `Sidebar.Main`.\n */\nfunction SidebarRoot({\n side = 'start',\n gap = 'm',\n as: Tag = 'div',\n className,\n ...props\n}: SidebarProps) {\n return (\n <Tag\n className={cn(\n 'flex flex-wrap',\n side === 'end' && 'flex-row-reverse',\n gap !== 'none' && GAP[gap],\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface SidebarSideProps extends ComponentPropsWithoutRef<'div'> {\n /** Width of the fixed panel (defaults to 20rem). */\n width?: string;\n as?: ElementType;\n}\n\nfunction SidebarSide({\n width,\n as: Tag = 'div',\n className,\n style,\n ...props\n}: SidebarSideProps) {\n return (\n <Tag\n className={cn('shrink grow basis-[var(--_side-width,20rem)]', className)}\n style={\n width ? ({ ...style, '--_side-width': width } as CSSProperties) : style\n }\n {...props}\n />\n );\n}\n\nexport interface SidebarMainProps extends ComponentPropsWithoutRef<'div'> {\n /** Minimum inline size before the main wraps below the side. */\n contentMin?: string;\n as?: ElementType;\n}\n\nfunction SidebarMain({\n contentMin,\n as: Tag = 'div',\n className,\n style,\n ...props\n}: SidebarMainProps) {\n return (\n <Tag\n className={cn(\n 'basis-0 min-w-[var(--_content-min,50%)] shrink grow-[999]',\n className,\n )}\n style={\n contentMin\n ? ({ ...style, '--_content-min': contentMin } as CSSProperties)\n : style\n }\n {...props}\n />\n );\n}\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Side: SidebarSide,\n Main: SidebarMain,\n});\n"],"names":["cn","GAP","SidebarRoot","side","gap","as","Tag","className","props","SidebarSide","width","style","SidebarMain","contentMin","Sidebar","Object","assign","Side","Main"],"mappings":";;;AAMA,SAASA,EAAE,QAAQ,oBAAoB;AACvC,SAASC,GAAG,QAA2B,gBAAgB;AAUvD;;;;CAIC,GACD,SAASC,YAAY,EAMN;QANM,EACnBC,OAAO,OAAO,EACdC,MAAM,GAAG,EACTC,IAAIC,MAAM,KAAK,EACfC,SAAS,EAEI,OADVC;;;;;;IAEH,qBACE,KAACF;QACCC,WAAWP,GACT,kBACAG,SAAS,SAAS,oBAClBC,QAAQ,UAAUH,GAAG,CAACG,IAAI,EAC1BG;OAEEC;AAGV;AAQA,SAASC,YAAY,EAMF;QANE,EACnBC,KAAK,EACLL,IAAIC,MAAM,KAAK,EACfC,SAAS,EACTI,KAAK,EAEY,OADdH;;;;;;IAEH,qBACE,KAACF;QACCC,WAAWP,GAAG,gDAAgDO;QAC9DI,OACED,QAAS,aAAKC;YAAO,iBAAiBD;aAA4BC;OAEhEH;AAGV;AAQA,SAASI,YAAY,EAMF;QANE,EACnBC,UAAU,EACVR,IAAIC,MAAM,KAAK,EACfC,SAAS,EACTI,KAAK,EAEY,OADdH;;;;;;IAEH,qBACE,KAACF;QACCC,WAAWP,GACT,6DACAO;QAEFI,OACEE,aACK,aAAKF;YAAO,kBAAkBE;aAC/BF;OAEFH;AAGV;AAEA,OAAO,MAAMM,UAAUC,OAAOC,MAAM,CAACd,aAAa;IAChDe,MAAMR;IACNS,MAAMN;AACR,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/switcher/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/switcher/index.ts"],"sourcesContent":["export * from './switcher.js';\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ElementType } from 'react';
|
|
2
|
+
import { type SpacingToken } from '../_shared.js';
|
|
3
|
+
export interface SwitcherProps extends ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
/** Container width at which the row switches to a vertical stack. */
|
|
5
|
+
threshold?: string;
|
|
6
|
+
gap?: SpacingToken;
|
|
7
|
+
as?: ElementType;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Lays children out as equal-width columns, switching to a vertical stack when
|
|
11
|
+
* the container is narrower than `threshold` — achieved purely with flex-basis
|
|
12
|
+
* arithmetic, no media query.
|
|
13
|
+
*/
|
|
14
|
+
export declare function Switcher({ threshold, gap, as: Tag, className, style, ...props }: SwitcherProps): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=switcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switcher.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/switcher/switcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,WAAW,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,aAAc,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACpE,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,GAAS,EACT,EAAE,EAAE,GAAW,EACf,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,+BAiBf"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { cn } from '../../utils/cn.js';
|
|
5
|
+
import { GAP } from '../_shared.js';
|
|
6
|
+
/**
|
|
7
|
+
* Lays children out as equal-width columns, switching to a vertical stack when
|
|
8
|
+
* the container is narrower than `threshold` — achieved purely with flex-basis
|
|
9
|
+
* arithmetic, no media query.
|
|
10
|
+
*/ export function Switcher(_0) {
|
|
11
|
+
let { threshold, gap = 'm', as: Tag = 'div', className, style } = _0, props = _object_without_properties_loose(_0, [
|
|
12
|
+
"threshold",
|
|
13
|
+
"gap",
|
|
14
|
+
"as",
|
|
15
|
+
"className",
|
|
16
|
+
"style"
|
|
17
|
+
]);
|
|
18
|
+
return /*#__PURE__*/ _jsx(Tag, _extends({
|
|
19
|
+
className: cn('flex flex-wrap', GAP[gap], '[&>*]:grow [&>*]:basis-[calc((var(--_threshold,30rem)_-_100%)_*_999)]', className),
|
|
20
|
+
style: threshold ? _extends({}, style, {
|
|
21
|
+
'--_threshold': threshold
|
|
22
|
+
}) : style
|
|
23
|
+
}, props));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=switcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/layout/switcher/switcher.tsx"],"sourcesContent":["import type {\n ComponentPropsWithoutRef,\n CSSProperties,\n ElementType,\n} from 'react';\n\nimport { cn } from '../../utils/cn.js';\nimport { GAP, type SpacingToken } from '../_shared.js';\n\nexport interface SwitcherProps extends ComponentPropsWithoutRef<'div'> {\n /** Container width at which the row switches to a vertical stack. */\n threshold?: string;\n gap?: SpacingToken;\n as?: ElementType;\n}\n\n/**\n * Lays children out as equal-width columns, switching to a vertical stack when\n * the container is narrower than `threshold` — achieved purely with flex-basis\n * arithmetic, no media query.\n */\nexport function Switcher({\n threshold,\n gap = 'm',\n as: Tag = 'div',\n className,\n style,\n ...props\n}: SwitcherProps) {\n return (\n <Tag\n className={cn(\n 'flex flex-wrap',\n GAP[gap],\n '[&>*]:grow [&>*]:basis-[calc((var(--_threshold,30rem)_-_100%)_*_999)]',\n className,\n )}\n style={\n threshold\n ? ({ ...style, '--_threshold': threshold } as CSSProperties)\n : style\n }\n {...props}\n />\n );\n}\n"],"names":["cn","GAP","Switcher","threshold","gap","as","Tag","className","style","props"],"mappings":";;;AAMA,SAASA,EAAE,QAAQ,oBAAoB;AACvC,SAASC,GAAG,QAA2B,gBAAgB;AASvD;;;;CAIC,GACD,OAAO,SAASC,SAAS,EAOT;QAPS,EACvBC,SAAS,EACTC,MAAM,GAAG,EACTC,IAAIC,MAAM,KAAK,EACfC,SAAS,EACTC,KAAK,EAES,OADXC;;;;;;;IAEH,qBACE,KAACH;QACCC,WAAWP,GACT,kBACAC,GAAG,CAACG,IAAI,EACR,yEACAG;QAEFC,OACEL,YACK,aAAKK;YAAO,gBAAgBL;aAC7BK;OAEFC;AAGV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
2
|
+
export interface BreadcrumbItem {
|
|
3
|
+
label: string;
|
|
4
|
+
href?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface BreadcrumbsProps extends Omit<ComponentPropsWithoutRef<'nav'>, 'children'> {
|
|
7
|
+
items: BreadcrumbItem[];
|
|
8
|
+
/** Glyph between crumbs. */
|
|
9
|
+
separator?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Optional custom link renderer for a crumb that has an `href` and is not the
|
|
12
|
+
* last one — lets a Next shell inject `<Link>` for client-side navigation.
|
|
13
|
+
* Falls back to a plain `<a>`.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Routing escape hatch. It receives `className` alongside the item and must
|
|
17
|
+
* spread it onto whatever it renders — the design system owns how a
|
|
18
|
+
* breadcrumb link looks, including its focus ring, and a host that supplied
|
|
19
|
+
* only an href silently lost both.
|
|
20
|
+
*/
|
|
21
|
+
renderLink?: (item: Required<BreadcrumbItem> & {
|
|
22
|
+
className: string;
|
|
23
|
+
}) => ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/** Accessible breadcrumb trail. Presentational only — no routing knowledge. */
|
|
26
|
+
export declare function Breadcrumbs({ items, separator, renderLink, className, ...props }: BreadcrumbsProps): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=breadcrumbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../src/ui/molecules/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,wBAAwB,CAAC,KAAK,CAAC,EAC/B,UAAU,CACX;IACC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KACnD,SAAS,CAAC;CAChB;AAKD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAe,EACf,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,+BA4ClB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
3
|
+
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useT } from '../../../i18n/index.js';
|
|
6
|
+
import { cn } from '../../utils/cn.js';
|
|
7
|
+
/** How a breadcrumb link looks, wherever it is rendered from. */ const LINK_CLASS = 'focus-ring rounded-sm hover:text-content hover:underline';
|
|
8
|
+
/** Accessible breadcrumb trail. Presentational only — no routing knowledge. */ export function Breadcrumbs(_0) {
|
|
9
|
+
let { items, separator = '/', renderLink, className } = _0, props = _object_without_properties_loose(_0, [
|
|
10
|
+
"items",
|
|
11
|
+
"separator",
|
|
12
|
+
"renderLink",
|
|
13
|
+
"className"
|
|
14
|
+
]);
|
|
15
|
+
const t = useT();
|
|
16
|
+
return /*#__PURE__*/ _jsx("nav", _extends({
|
|
17
|
+
"aria-label": t('breadcrumbs.label'),
|
|
18
|
+
className: cn('text-step-sm text-content-muted', className)
|
|
19
|
+
}, props, {
|
|
20
|
+
children: /*#__PURE__*/ _jsx("ol", {
|
|
21
|
+
className: "flex flex-wrap items-center gap-2xs",
|
|
22
|
+
children: items.map((item, index)=>{
|
|
23
|
+
const isLast = index === items.length - 1;
|
|
24
|
+
const linkable = item.href !== undefined && !isLast;
|
|
25
|
+
return /*#__PURE__*/ _jsxs("li", {
|
|
26
|
+
className: "flex items-center gap-2xs",
|
|
27
|
+
children: [
|
|
28
|
+
linkable ? renderLink ? renderLink(_extends({}, item, {
|
|
29
|
+
className: LINK_CLASS
|
|
30
|
+
})) : /*#__PURE__*/ _jsx("a", {
|
|
31
|
+
href: item.href,
|
|
32
|
+
className: LINK_CLASS,
|
|
33
|
+
children: item.label
|
|
34
|
+
}) : /*#__PURE__*/ _jsx("span", {
|
|
35
|
+
"aria-current": isLast ? 'page' : undefined,
|
|
36
|
+
className: cn(isLast && 'font-medium text-content'),
|
|
37
|
+
children: item.label
|
|
38
|
+
}),
|
|
39
|
+
!isLast && /*#__PURE__*/ _jsx("span", {
|
|
40
|
+
"aria-hidden": "true",
|
|
41
|
+
children: separator
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
}, `${item.label}-${index}`);
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/molecules/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { useT } from '../../../i18n/index.js';\nimport { cn } from '../../utils/cn.js';\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface BreadcrumbsProps extends Omit<\n ComponentPropsWithoutRef<'nav'>,\n 'children'\n> {\n items: BreadcrumbItem[];\n /** Glyph between crumbs. */\n separator?: ReactNode;\n /**\n * Optional custom link renderer for a crumb that has an `href` and is not the\n * last one — lets a Next shell inject `<Link>` for client-side navigation.\n * Falls back to a plain `<a>`.\n */\n /**\n * Routing escape hatch. It receives `className` alongside the item and must\n * spread it onto whatever it renders — the design system owns how a\n * breadcrumb link looks, including its focus ring, and a host that supplied\n * only an href silently lost both.\n */\n renderLink?: (\n item: Required<BreadcrumbItem> & { className: string },\n ) => ReactNode;\n}\n\n/** How a breadcrumb link looks, wherever it is rendered from. */\nconst LINK_CLASS = 'focus-ring rounded-sm hover:text-content hover:underline';\n\n/** Accessible breadcrumb trail. Presentational only — no routing knowledge. */\nexport function Breadcrumbs({\n items,\n separator = '/',\n renderLink,\n className,\n ...props\n}: BreadcrumbsProps) {\n const t = useT();\n\n return (\n <nav\n aria-label={t('breadcrumbs.label')}\n className={cn('text-step-sm text-content-muted', className)}\n {...props}\n >\n <ol className=\"flex flex-wrap items-center gap-2xs\">\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const linkable = item.href !== undefined && !isLast;\n return (\n <li\n key={`${item.label}-${index}`}\n className=\"flex items-center gap-2xs\"\n >\n {linkable ? (\n renderLink ? (\n renderLink({\n ...(item as Required<BreadcrumbItem>),\n className: LINK_CLASS,\n })\n ) : (\n <a href={item.href} className={LINK_CLASS}>\n {item.label}\n </a>\n )\n ) : (\n <span\n aria-current={isLast ? 'page' : undefined}\n className={cn(isLast && 'font-medium text-content')}\n >\n {item.label}\n </span>\n )}\n {!isLast && <span aria-hidden=\"true\">{separator}</span>}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n"],"names":["useT","cn","LINK_CLASS","Breadcrumbs","items","separator","renderLink","className","props","t","nav","aria-label","ol","map","item","index","isLast","length","linkable","href","undefined","li","a","label","span","aria-current","aria-hidden"],"mappings":"AAAA;;;;AAIA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,EAAE,QAAQ,oBAAoB;AA8BvC,+DAA+D,GAC/D,MAAMC,aAAa;AAEnB,6EAA6E,GAC7E,OAAO,SAASC,YAAY,EAMT;QANS,EAC1BC,KAAK,EACLC,YAAY,GAAG,EACfC,UAAU,EACVC,SAAS,EAEQ,OADdC;;;;;;IAEH,MAAMC,IAAIT;IAEV,qBACE,KAACU;QACCC,cAAYF,EAAE;QACdF,WAAWN,GAAG,mCAAmCM;OAC7CC;kBAEJ,cAAA,KAACI;YAAGL,WAAU;sBACXH,MAAMS,GAAG,CAAC,CAACC,MAAMC;gBAChB,MAAMC,SAASD,UAAUX,MAAMa,MAAM,GAAG;gBACxC,MAAMC,WAAWJ,KAAKK,IAAI,KAAKC,aAAa,CAACJ;gBAC7C,qBACE,MAACK;oBAECd,WAAU;;wBAETW,WACCZ,aACEA,WAAW,aACLQ;4BACJP,WAAWL;4CAGb,KAACoB;4BAAEH,MAAML,KAAKK,IAAI;4BAAEZ,WAAWL;sCAC5BY,KAAKS,KAAK;2CAIf,KAACC;4BACCC,gBAAcT,SAAS,SAASI;4BAChCb,WAAWN,GAAGe,UAAU;sCAEvBF,KAAKS,KAAK;;wBAGd,CAACP,wBAAU,KAACQ;4BAAKE,eAAY;sCAAQrB;;;mBAtBjC,GAAGS,KAAKS,KAAK,CAAC,CAAC,EAAER,OAAO;YAyBnC;;;AAIR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/molecules/breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/molecules/breadcrumbs/index.ts"],"sourcesContent":["export * from './breadcrumbs.js';\n"],"names":[],"mappings":"AAAA,cAAc,mBAAmB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { UseCaseDescriptor } from '@entifix/core';
|
|
2
|
+
export interface BulkActionBarProps {
|
|
3
|
+
/** How many rows the action would touch. */
|
|
4
|
+
count: number;
|
|
5
|
+
/**
|
|
6
|
+
* The collection-bound verbs this caller may run, already filtered against
|
|
7
|
+
* the verified principal by the service. The bar renders what it is given and
|
|
8
|
+
* re-checks nothing — hiding an action protects nothing, the route guard is
|
|
9
|
+
* the enforcement (ADR 0026).
|
|
10
|
+
*/
|
|
11
|
+
useCases: readonly UseCaseDescriptor[];
|
|
12
|
+
/**
|
|
13
|
+
* Offered only when the selection is a page's worth of ids *and* more rows
|
|
14
|
+
* match than are shown. Absent means there is no larger set to escalate to.
|
|
15
|
+
*
|
|
16
|
+
* It is a **separate affordance carrying the count**, never a widening of the
|
|
17
|
+
* header checkbox: "select all on this page" and "select all 3.200 matching"
|
|
18
|
+
* are different actions and the second has to be chosen deliberately.
|
|
19
|
+
*/
|
|
20
|
+
matchingTotal?: number;
|
|
21
|
+
onSelectAllMatching?: () => void;
|
|
22
|
+
onClear: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Hands back the descriptor it rendered, not just its key.
|
|
25
|
+
*
|
|
26
|
+
* The caller has to know whether the verb asked to be confirmed, and the bar
|
|
27
|
+
* is already holding the answer. Passing the key alone forced a lookup back
|
|
28
|
+
* into the same list — a branch for "not found" that cannot happen, since
|
|
29
|
+
* every key here came from this array (#216).
|
|
30
|
+
*/
|
|
31
|
+
onUseCase: (useCase: UseCaseDescriptor) => void;
|
|
32
|
+
/** Disables every verb while one is running. */
|
|
33
|
+
busy?: boolean;
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The bar that appears once rows are selected: what is selected, what can be
|
|
38
|
+
* done to it, and the way out.
|
|
39
|
+
*
|
|
40
|
+
* It is `aria-live="polite"` on the count rather than on the whole region — a
|
|
41
|
+
* region that re-announces its buttons every time one more row is ticked is
|
|
42
|
+
* noise, and the count is the only part that changed. `role="region"` with a
|
|
43
|
+
* name is what lets a screen-reader user jump to it at all, since it appears
|
|
44
|
+
* without the focus moving.
|
|
45
|
+
*/
|
|
46
|
+
export declare function BulkActionBar({ count, useCases, matchingTotal, onSelectAllMatching, onClear, onUseCase, busy, className, }: BulkActionBarProps): import("react").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=bulk-action-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-action-bar.d.ts","sourceRoot":"","sources":["../../../../src/ui/molecules/bulk-action-bar/bulk-action-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMvD,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;OAOG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,IAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,+BA2DpB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useT, useTranslateKey } from '../../../i18n/index.js';
|
|
4
|
+
import { Button } from '../../atoms/button/index.js';
|
|
5
|
+
import { cn } from '../../utils/cn.js';
|
|
6
|
+
/**
|
|
7
|
+
* The bar that appears once rows are selected: what is selected, what can be
|
|
8
|
+
* done to it, and the way out.
|
|
9
|
+
*
|
|
10
|
+
* It is `aria-live="polite"` on the count rather than on the whole region — a
|
|
11
|
+
* region that re-announces its buttons every time one more row is ticked is
|
|
12
|
+
* noise, and the count is the only part that changed. `role="region"` with a
|
|
13
|
+
* name is what lets a screen-reader user jump to it at all, since it appears
|
|
14
|
+
* without the focus moving.
|
|
15
|
+
*/ export function BulkActionBar({ count, useCases, matchingTotal, onSelectAllMatching, onClear, onUseCase, busy = false, className }) {
|
|
16
|
+
const t = useT();
|
|
17
|
+
const translateKey = useTranslateKey();
|
|
18
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
19
|
+
role: "region",
|
|
20
|
+
"aria-label": t('bulk.barLabel'),
|
|
21
|
+
"data-testid": "bulk-action-bar",
|
|
22
|
+
className: cn('flex flex-wrap items-center gap-2xs rounded-lg border border-border bg-surface-elevated px-s py-2xs', className),
|
|
23
|
+
children: [
|
|
24
|
+
/*#__PURE__*/ _jsx("span", {
|
|
25
|
+
"aria-live": "polite",
|
|
26
|
+
className: "text-step-sm text-content",
|
|
27
|
+
children: t('table.selectedCount', {
|
|
28
|
+
count
|
|
29
|
+
})
|
|
30
|
+
}),
|
|
31
|
+
matchingTotal !== undefined && onSelectAllMatching && /*#__PURE__*/ _jsx(Button, {
|
|
32
|
+
type: "button",
|
|
33
|
+
variant: "ghost",
|
|
34
|
+
size: "sm",
|
|
35
|
+
onClick: onSelectAllMatching,
|
|
36
|
+
children: t('table.selectAllMatching', {
|
|
37
|
+
count: matchingTotal
|
|
38
|
+
})
|
|
39
|
+
}),
|
|
40
|
+
useCases.map((descriptor)=>{
|
|
41
|
+
var _descriptor_confirm;
|
|
42
|
+
return /*#__PURE__*/ _jsx(Button, {
|
|
43
|
+
type: "button",
|
|
44
|
+
variant: ((_descriptor_confirm = descriptor.confirm) == null ? void 0 : _descriptor_confirm.tone) === 'destructive' ? 'destructive' : 'secondary',
|
|
45
|
+
size: "sm",
|
|
46
|
+
disabled: busy,
|
|
47
|
+
onClick: ()=>onUseCase(descriptor),
|
|
48
|
+
children: translateKey(descriptor.labelKey)
|
|
49
|
+
}, descriptor.key);
|
|
50
|
+
}),
|
|
51
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
52
|
+
type: "button",
|
|
53
|
+
variant: "ghost",
|
|
54
|
+
size: "sm",
|
|
55
|
+
disabled: busy,
|
|
56
|
+
onClick: onClear,
|
|
57
|
+
children: t('table.clearSelection')
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=bulk-action-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/molecules/bulk-action-bar/bulk-action-bar.tsx"],"sourcesContent":["'use client';\n\nimport type { UseCaseDescriptor } from '@entifix/core';\n\nimport { useT, useTranslateKey } from '../../../i18n/index.js';\nimport { Button } from '../../atoms/button/index.js';\nimport { cn } from '../../utils/cn.js';\n\nexport interface BulkActionBarProps {\n /** How many rows the action would touch. */\n count: number;\n /**\n * The collection-bound verbs this caller may run, already filtered against\n * the verified principal by the service. The bar renders what it is given and\n * re-checks nothing — hiding an action protects nothing, the route guard is\n * the enforcement (ADR 0026).\n */\n useCases: readonly UseCaseDescriptor[];\n /**\n * Offered only when the selection is a page's worth of ids *and* more rows\n * match than are shown. Absent means there is no larger set to escalate to.\n *\n * It is a **separate affordance carrying the count**, never a widening of the\n * header checkbox: \"select all on this page\" and \"select all 3.200 matching\"\n * are different actions and the second has to be chosen deliberately.\n */\n matchingTotal?: number;\n onSelectAllMatching?: () => void;\n onClear: () => void;\n /**\n * Hands back the descriptor it rendered, not just its key.\n *\n * The caller has to know whether the verb asked to be confirmed, and the bar\n * is already holding the answer. Passing the key alone forced a lookup back\n * into the same list — a branch for \"not found\" that cannot happen, since\n * every key here came from this array (#216).\n */\n onUseCase: (useCase: UseCaseDescriptor) => void;\n /** Disables every verb while one is running. */\n busy?: boolean;\n className?: string;\n}\n\n/**\n * The bar that appears once rows are selected: what is selected, what can be\n * done to it, and the way out.\n *\n * It is `aria-live=\"polite\"` on the count rather than on the whole region — a\n * region that re-announces its buttons every time one more row is ticked is\n * noise, and the count is the only part that changed. `role=\"region\"` with a\n * name is what lets a screen-reader user jump to it at all, since it appears\n * without the focus moving.\n */\nexport function BulkActionBar({\n count,\n useCases,\n matchingTotal,\n onSelectAllMatching,\n onClear,\n onUseCase,\n busy = false,\n className,\n}: BulkActionBarProps) {\n const t = useT();\n const translateKey = useTranslateKey();\n\n return (\n <div\n role=\"region\"\n aria-label={t('bulk.barLabel')}\n data-testid=\"bulk-action-bar\"\n className={cn(\n 'flex flex-wrap items-center gap-2xs rounded-lg border border-border bg-surface-elevated px-s py-2xs',\n className,\n )}\n >\n <span aria-live=\"polite\" className=\"text-step-sm text-content\">\n {t('table.selectedCount', { count })}\n </span>\n\n {matchingTotal !== undefined && onSelectAllMatching && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={onSelectAllMatching}\n >\n {t('table.selectAllMatching', { count: matchingTotal })}\n </Button>\n )}\n\n {useCases.map(descriptor => (\n <Button\n key={descriptor.key}\n type=\"button\"\n variant={\n descriptor.confirm?.tone === 'destructive'\n ? 'destructive'\n : 'secondary'\n }\n size=\"sm\"\n disabled={busy}\n onClick={() => onUseCase(descriptor)}\n >\n {/* A descriptor's label is a *runtime* catalog key — the type system\n cannot see a typo here, `@r10c/i18n-check` is what does. */}\n {translateKey(descriptor.labelKey)}\n </Button>\n ))}\n\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n disabled={busy}\n onClick={onClear}\n >\n {t('table.clearSelection')}\n </Button>\n </div>\n );\n}\n"],"names":["useT","useTranslateKey","Button","cn","BulkActionBar","count","useCases","matchingTotal","onSelectAllMatching","onClear","onUseCase","busy","className","t","translateKey","div","role","aria-label","data-testid","span","aria-live","undefined","type","variant","size","onClick","map","descriptor","confirm","tone","disabled","labelKey","key"],"mappings":"AAAA;;AAIA,SAASA,IAAI,EAAEC,eAAe,QAAQ,yBAAyB;AAC/D,SAASC,MAAM,QAAQ,8BAA8B;AACrD,SAASC,EAAE,QAAQ,oBAAoB;AAqCvC;;;;;;;;;CASC,GACD,OAAO,SAASC,cAAc,EAC5BC,KAAK,EACLC,QAAQ,EACRC,aAAa,EACbC,mBAAmB,EACnBC,OAAO,EACPC,SAAS,EACTC,OAAO,KAAK,EACZC,SAAS,EACU;IACnB,MAAMC,IAAIb;IACV,MAAMc,eAAeb;IAErB,qBACE,MAACc;QACCC,MAAK;QACLC,cAAYJ,EAAE;QACdK,eAAY;QACZN,WAAWT,GACT,uGACAS;;0BAGF,KAACO;gBAAKC,aAAU;gBAASR,WAAU;0BAChCC,EAAE,uBAAuB;oBAAER;gBAAM;;YAGnCE,kBAAkBc,aAAab,qCAC9B,KAACN;gBACCoB,MAAK;gBACLC,SAAQ;gBACRC,MAAK;gBACLC,SAASjB;0BAERK,EAAE,2BAA2B;oBAAER,OAAOE;gBAAc;;YAIxDD,SAASoB,GAAG,CAACC,CAAAA;oBAKRA;qCAJJ,KAACzB;oBAECoB,MAAK;oBACLC,SACEI,EAAAA,sBAAAA,WAAWC,OAAO,qBAAlBD,oBAAoBE,IAAI,MAAK,gBACzB,gBACA;oBAENL,MAAK;oBACLM,UAAUnB;oBACVc,SAAS,IAAMf,UAAUiB;8BAIxBb,aAAaa,WAAWI,QAAQ;mBAb5BJ,WAAWK,GAAG;;0BAiBvB,KAAC9B;gBACCoB,MAAK;gBACLC,SAAQ;gBACRC,MAAK;gBACLM,UAAUnB;gBACVc,SAAShB;0BAERI,EAAE;;;;AAIX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/molecules/bulk-action-bar/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/molecules/bulk-action-bar/index.ts"],"sourcesContent":["export * from './bulk-action-bar.js';\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type BulkOutcome, type EntityId } from '@entifix/core';
|
|
2
|
+
export interface BulkResultProps {
|
|
3
|
+
outcomes: readonly BulkOutcome[];
|
|
4
|
+
/**
|
|
5
|
+
* How a failed row is named to the user. An id is not an answer to "which
|
|
6
|
+
* ones failed" — the caller holds the rows and can render the same label the
|
|
7
|
+
* table shows. Falls back to the id when the row is no longer on the page.
|
|
8
|
+
*/
|
|
9
|
+
labelFor?: (id: EntityId) => string | undefined;
|
|
10
|
+
/** Re-runs the failures **only**. Absent hides the affordance. */
|
|
11
|
+
onRetryFailed?: (ids: EntityId[]) => void;
|
|
12
|
+
onDismiss: () => void;
|
|
13
|
+
busy?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* What a bulk action actually did, per row.
|
|
18
|
+
*
|
|
19
|
+
* The requirement this exists for: 40 selected, 3 fail. A single notice lies
|
|
20
|
+
* whichever way it is written — as a failure it hides the 37 rows that were
|
|
21
|
+
* written, and as a success it hides the 3 that were not, which is worse
|
|
22
|
+
* because the user walks away believing the work is done. So both counts are
|
|
23
|
+
* always stated, and every failure is named with its own reason.
|
|
24
|
+
*
|
|
25
|
+
* `role="status"`, not `role="alert"`: a partial failure is an outcome to read,
|
|
26
|
+
* not an interruption, and `alert` on a list this long is hostile. The region
|
|
27
|
+
* is `tabIndex={-1}` so the caller can move focus to it once the run ends,
|
|
28
|
+
* which is the only reliable way a keyboard user learns the result arrived.
|
|
29
|
+
*/
|
|
30
|
+
export declare function BulkResult({ outcomes, labelFor, onRetryFailed, onDismiss, busy, className, }: BulkResultProps): import("react").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=bulk-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-result.d.ts","sourceRoot":"","sources":["../../../../src/ui/molecules/bulk-result/bulk-result.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAMvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,CAAC;IAChD,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,SAAS,EACT,IAAY,EACZ,SAAS,GACV,EAAE,eAAe,+BAyEjB"}
|