@entifix/react-controls 0.18.2 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -5
- package/dist/i18n/catalog/en.d.ts.map +1 -1
- package/dist/i18n/catalog/en.js +68 -10
- package/dist/i18n/catalog/en.js.map +1 -1
- package/dist/i18n/catalog/es.d.ts +76 -5
- package/dist/i18n/catalog/es.d.ts.map +1 -1
- package/dist/i18n/catalog/es.js +74 -10
- package/dist/i18n/catalog/es.js.map +1 -1
- package/dist/i18n/catalog/index.d.ts +126 -10
- package/dist/i18n/catalog/index.d.ts.map +1 -1
- package/dist/i18n/entity-labels.d.ts +14 -0
- package/dist/i18n/entity-labels.d.ts.map +1 -1
- package/dist/i18n/entity-labels.js +15 -0
- package/dist/i18n/entity-labels.js.map +1 -1
- package/dist/i18n/i18n-context.js +2 -2
- package/dist/i18n/i18n-context.js.map +1 -1
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/primitives.d.ts +7 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +7 -1
- package/dist/primitives.js.map +1 -1
- package/dist/theme/index.d.ts +1 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/theme-context.d.ts +35 -7
- package/dist/theme/theme-context.d.ts.map +1 -1
- package/dist/theme/theme-context.js +109 -21
- package/dist/theme/theme-context.js.map +1 -1
- package/dist/theme/theme-cookie.d.ts +9 -0
- package/dist/theme/theme-cookie.d.ts.map +1 -0
- package/dist/theme/theme-cookie.js +8 -0
- package/dist/theme/theme-cookie.js.map +1 -0
- package/dist/theme/theme-script.d.ts +8 -5
- package/dist/theme/theme-script.d.ts.map +1 -1
- package/dist/theme/theme-script.js +24 -10
- package/dist/theme/theme-script.js.map +1 -1
- package/dist/theme/types.d.ts +19 -3
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/ui/actions/action-surfaces.d.ts +1 -1
- package/dist/ui/actions/action-surfaces.js +1 -1
- package/dist/ui/actions/action-surfaces.js.map +1 -1
- package/dist/ui/actions/error-actions.d.ts +32 -0
- package/dist/ui/actions/error-actions.d.ts.map +1 -0
- package/dist/ui/actions/error-actions.js +40 -0
- package/dist/ui/actions/error-actions.js.map +1 -0
- package/dist/ui/actions/index.d.ts +2 -0
- package/dist/ui/actions/index.d.ts.map +1 -1
- package/dist/ui/actions/index.js +2 -0
- package/dist/ui/actions/index.js.map +1 -1
- package/dist/ui/actions/shortcut.d.ts +13 -0
- package/dist/ui/actions/shortcut.d.ts.map +1 -0
- package/dist/ui/actions/shortcut.js +18 -0
- package/dist/ui/actions/shortcut.js.map +1 -0
- package/dist/ui/actions/use-verb-invoker.d.ts +50 -0
- package/dist/ui/actions/use-verb-invoker.d.ts.map +1 -0
- package/dist/ui/actions/use-verb-invoker.js +93 -0
- package/dist/ui/actions/use-verb-invoker.js.map +1 -0
- package/dist/ui/atoms/alert/alert-dismiss.d.ts +9 -0
- package/dist/ui/atoms/alert/alert-dismiss.d.ts.map +1 -0
- package/dist/ui/atoms/alert/alert-dismiss.js +28 -0
- package/dist/ui/atoms/alert/alert-dismiss.js.map +1 -0
- package/dist/ui/atoms/alert/alert.d.ts +24 -0
- package/dist/ui/atoms/alert/alert.d.ts.map +1 -0
- package/dist/ui/atoms/alert/alert.js +50 -0
- package/dist/ui/atoms/alert/alert.js.map +1 -0
- package/dist/ui/atoms/alert/index.d.ts +3 -0
- package/dist/ui/atoms/alert/index.d.ts.map +1 -0
- package/dist/ui/atoms/alert/index.js +4 -0
- package/dist/ui/atoms/alert/index.js.map +1 -0
- package/dist/ui/atoms/alert/tone.d.ts +8 -0
- package/dist/ui/atoms/alert/tone.d.ts.map +1 -0
- package/dist/ui/atoms/alert/tone.js +11 -0
- package/dist/ui/atoms/alert/tone.js.map +1 -0
- package/dist/ui/atoms/button/button-recipe.js +1 -1
- package/dist/ui/atoms/button/button-recipe.js.map +1 -1
- package/dist/ui/atoms/button/index.d.ts +1 -0
- package/dist/ui/atoms/button/index.d.ts.map +1 -1
- package/dist/ui/atoms/button/index.js +1 -0
- package/dist/ui/atoms/button/index.js.map +1 -1
- package/dist/ui/atoms/button/submit-button.d.ts +13 -0
- package/dist/ui/atoms/button/submit-button.d.ts.map +1 -0
- package/dist/ui/atoms/button/submit-button.js +29 -0
- package/dist/ui/atoms/button/submit-button.js.map +1 -0
- package/dist/ui/atoms/cell-value/cell-value.d.ts +6 -1
- package/dist/ui/atoms/cell-value/cell-value.d.ts.map +1 -1
- package/dist/ui/atoms/cell-value/cell-value.js +48 -16
- package/dist/ui/atoms/cell-value/cell-value.js.map +1 -1
- package/dist/ui/atoms/field/checkbox.d.ts.map +1 -1
- package/dist/ui/atoms/field/checkbox.js +21 -1
- package/dist/ui/atoms/field/checkbox.js.map +1 -1
- package/dist/ui/atoms/field/field.js +1 -1
- package/dist/ui/atoms/field/field.js.map +1 -1
- package/dist/ui/atoms/field-control/field-control.d.ts +7 -1
- package/dist/ui/atoms/field-control/field-control.d.ts.map +1 -1
- package/dist/ui/atoms/field-control/field-control.js +25 -3
- package/dist/ui/atoms/field-control/field-control.js.map +1 -1
- package/dist/ui/atoms/money/index.d.ts +4 -0
- package/dist/ui/atoms/money/index.d.ts.map +1 -0
- package/dist/ui/atoms/money/index.js +5 -0
- package/dist/ui/atoms/money/index.js.map +1 -0
- package/dist/ui/atoms/money/money-input.d.ts +19 -0
- package/dist/ui/atoms/money/money-input.d.ts.map +1 -0
- package/dist/ui/atoms/money/money-input.js +75 -0
- package/dist/ui/atoms/money/money-input.js.map +1 -0
- package/dist/ui/atoms/money/money-math.d.ts +21 -0
- package/dist/ui/atoms/money/money-math.d.ts.map +1 -0
- package/dist/ui/atoms/money/money-math.js +36 -0
- package/dist/ui/atoms/money/money-math.js.map +1 -0
- package/dist/ui/atoms/money/money.d.ts +19 -0
- package/dist/ui/atoms/money/money.d.ts.map +1 -0
- package/dist/ui/atoms/money/money.js +26 -0
- package/dist/ui/atoms/money/money.js.map +1 -0
- package/dist/ui/atoms/number-input/index.d.ts +3 -0
- package/dist/ui/atoms/number-input/index.d.ts.map +1 -0
- package/dist/ui/atoms/number-input/index.js +4 -0
- package/dist/ui/atoms/number-input/index.js.map +1 -0
- package/dist/ui/atoms/number-input/number-input.d.ts +10 -0
- package/dist/ui/atoms/number-input/number-input.d.ts.map +1 -0
- package/dist/ui/atoms/number-input/number-input.js +23 -0
- package/dist/ui/atoms/number-input/number-input.js.map +1 -0
- package/dist/ui/atoms/number-input/quantity-input.d.ts +29 -0
- package/dist/ui/atoms/number-input/quantity-input.d.ts.map +1 -0
- package/dist/ui/atoms/number-input/quantity-input.js +100 -0
- package/dist/ui/atoms/number-input/quantity-input.js.map +1 -0
- package/dist/ui/atoms/skeleton/skeleton.js +1 -1
- package/dist/ui/atoms/skeleton/skeleton.js.map +1 -1
- package/dist/ui/atoms/status-tag/index.d.ts +2 -0
- package/dist/ui/atoms/status-tag/index.d.ts.map +1 -0
- package/dist/ui/atoms/status-tag/index.js +3 -0
- package/dist/ui/atoms/status-tag/index.js.map +1 -0
- package/dist/ui/atoms/status-tag/status-tag.d.ts +17 -0
- package/dist/ui/atoms/status-tag/status-tag.d.ts.map +1 -0
- package/dist/ui/atoms/status-tag/status-tag.js +37 -0
- package/dist/ui/atoms/status-tag/status-tag.js.map +1 -0
- package/dist/ui/atoms/switch/switch.d.ts.map +1 -1
- package/dist/ui/atoms/switch/switch.js +6 -3
- package/dist/ui/atoms/switch/switch.js.map +1 -1
- package/dist/ui/atoms/table/table.d.ts +12 -3
- package/dist/ui/atoms/table/table.d.ts.map +1 -1
- package/dist/ui/atoms/table/table.js +59 -10
- package/dist/ui/atoms/table/table.js.map +1 -1
- package/dist/ui/atoms/text/text.d.ts +2 -2
- package/dist/ui/atoms/text/text.d.ts.map +1 -1
- package/dist/ui/atoms/text/text.js.map +1 -1
- package/dist/ui/molecules/action-bar/action-bar.d.ts +76 -0
- package/dist/ui/molecules/action-bar/action-bar.d.ts.map +1 -0
- package/dist/ui/molecules/action-bar/action-bar.js +218 -0
- package/dist/ui/molecules/action-bar/action-bar.js.map +1 -0
- package/dist/ui/molecules/action-bar/index.d.ts +2 -0
- package/dist/ui/molecules/action-bar/index.d.ts.map +1 -0
- package/dist/ui/molecules/action-bar/index.js +3 -0
- package/dist/ui/molecules/action-bar/index.js.map +1 -0
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.d.ts +11 -2
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.js +9 -7
- package/dist/ui/molecules/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.d.ts.map +1 -1
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.js +8 -10
- package/dist/ui/molecules/bulk-action-bar/bulk-action-bar.js.map +1 -1
- package/dist/ui/molecules/bulk-result/bulk-result.d.ts +3 -3
- package/dist/ui/molecules/bulk-result/bulk-result.js +4 -4
- package/dist/ui/molecules/bulk-result/bulk-result.js.map +1 -1
- package/dist/ui/molecules/column-settings/column-settings.js +1 -1
- package/dist/ui/molecules/column-settings/column-settings.js.map +1 -1
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.d.ts +24 -9
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.d.ts.map +1 -1
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.js +38 -13
- package/dist/ui/molecules/confirm-dialog/confirm-dialog.js.map +1 -1
- package/dist/ui/molecules/description-list/description-list.d.ts +17 -0
- package/dist/ui/molecules/description-list/description-list.d.ts.map +1 -0
- package/dist/ui/molecules/description-list/description-list.js +36 -0
- package/dist/ui/molecules/description-list/description-list.js.map +1 -0
- package/dist/ui/molecules/description-list/index.d.ts +2 -0
- package/dist/ui/molecules/description-list/index.d.ts.map +1 -0
- package/dist/ui/molecules/description-list/index.js +3 -0
- package/dist/ui/molecules/description-list/index.js.map +1 -0
- package/dist/ui/molecules/drawer/drawer.js +3 -3
- package/dist/ui/molecules/drawer/drawer.js.map +1 -1
- package/dist/ui/molecules/empty-state/empty-state.d.ts +15 -0
- package/dist/ui/molecules/empty-state/empty-state.d.ts.map +1 -0
- package/dist/ui/molecules/empty-state/empty-state.js +29 -0
- package/dist/ui/molecules/empty-state/empty-state.js.map +1 -0
- package/dist/ui/molecules/empty-state/index.d.ts +2 -0
- package/dist/ui/molecules/empty-state/index.d.ts.map +1 -0
- package/dist/ui/molecules/empty-state/index.js +3 -0
- package/dist/ui/molecules/empty-state/index.js.map +1 -0
- package/dist/ui/molecules/entity-link-input/entity-link-input.d.ts.map +1 -1
- package/dist/ui/molecules/entity-link-input/entity-link-input.js +7 -4
- package/dist/ui/molecules/entity-link-input/entity-link-input.js.map +1 -1
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.js +2 -2
- package/dist/ui/molecules/entity-link-picker/entity-link-picker.js.map +1 -1
- package/dist/ui/molecules/entity-record-card/entity-record-card.d.ts +33 -20
- package/dist/ui/molecules/entity-record-card/entity-record-card.d.ts.map +1 -1
- package/dist/ui/molecules/entity-record-card/entity-record-card.js +53 -20
- package/dist/ui/molecules/entity-record-card/entity-record-card.js.map +1 -1
- package/dist/ui/molecules/filter-builder/filter-builder.d.ts +8 -2
- package/dist/ui/molecules/filter-builder/filter-builder.d.ts.map +1 -1
- package/dist/ui/molecules/filter-builder/filter-builder.js +14 -5
- package/dist/ui/molecules/filter-builder/filter-builder.js.map +1 -1
- package/dist/ui/molecules/filter-chips/filter-chips.d.ts +16 -0
- package/dist/ui/molecules/filter-chips/filter-chips.d.ts.map +1 -0
- package/dist/ui/molecules/filter-chips/filter-chips.js +73 -0
- package/dist/ui/molecules/filter-chips/filter-chips.js.map +1 -0
- package/dist/ui/molecules/filter-chips/index.d.ts +2 -0
- package/dist/ui/molecules/filter-chips/index.d.ts.map +1 -0
- package/dist/ui/molecules/filter-chips/index.js +3 -0
- package/dist/ui/molecules/filter-chips/index.js.map +1 -0
- package/dist/ui/molecules/media-gallery/index.d.ts +2 -0
- package/dist/ui/molecules/media-gallery/index.d.ts.map +1 -0
- package/dist/ui/molecules/media-gallery/index.js +3 -0
- package/dist/ui/molecules/media-gallery/index.js.map +1 -0
- package/dist/ui/molecules/media-gallery/media-gallery.d.ts +31 -0
- package/dist/ui/molecules/media-gallery/media-gallery.d.ts.map +1 -0
- package/dist/ui/molecules/media-gallery/media-gallery.js +64 -0
- package/dist/ui/molecules/media-gallery/media-gallery.js.map +1 -0
- package/dist/ui/molecules/menu/menu.d.ts +11 -1
- package/dist/ui/molecules/menu/menu.d.ts.map +1 -1
- package/dist/ui/molecules/menu/menu.js +68 -6
- package/dist/ui/molecules/menu/menu.js.map +1 -1
- package/dist/ui/molecules/nav-menu/nav-menu.js +4 -4
- package/dist/ui/molecules/nav-menu/nav-menu.js.map +1 -1
- package/dist/ui/molecules/pagination/pagination.d.ts +5 -0
- package/dist/ui/molecules/pagination/pagination.d.ts.map +1 -1
- package/dist/ui/molecules/pagination/pagination.js +35 -18
- package/dist/ui/molecules/pagination/pagination.js.map +1 -1
- package/dist/ui/molecules/region-state/index.d.ts +2 -0
- package/dist/ui/molecules/region-state/index.d.ts.map +1 -0
- package/dist/ui/molecules/region-state/index.js +3 -0
- package/dist/ui/molecules/region-state/index.js.map +1 -0
- package/dist/ui/molecules/region-state/region-state.d.ts +42 -0
- package/dist/ui/molecules/region-state/region-state.d.ts.map +1 -0
- package/dist/ui/molecules/region-state/region-state.js +83 -0
- package/dist/ui/molecules/region-state/region-state.js.map +1 -0
- package/dist/ui/molecules/segmented-nav/segment-classes.d.ts +3 -3
- package/dist/ui/molecules/segmented-nav/segment-classes.d.ts.map +1 -1
- package/dist/ui/molecules/segmented-nav/segment-classes.js +2 -2
- package/dist/ui/molecules/segmented-nav/segment-classes.js.map +1 -1
- package/dist/ui/molecules/segmented-nav/segmented-nav.d.ts +14 -4
- package/dist/ui/molecules/segmented-nav/segmented-nav.d.ts.map +1 -1
- package/dist/ui/molecules/segmented-nav/segmented-nav.js +6 -5
- package/dist/ui/molecules/segmented-nav/segmented-nav.js.map +1 -1
- package/dist/ui/molecules/split-view/split-view.js +3 -3
- package/dist/ui/molecules/split-view/split-view.js.map +1 -1
- package/dist/ui/molecules/tab-strip/tab-strip.d.ts +51 -12
- package/dist/ui/molecules/tab-strip/tab-strip.d.ts.map +1 -1
- package/dist/ui/molecules/tab-strip/tab-strip.js +125 -34
- package/dist/ui/molecules/tab-strip/tab-strip.js.map +1 -1
- package/dist/ui/molecules/table-toolbar/table-toolbar.d.ts +3 -1
- package/dist/ui/molecules/table-toolbar/table-toolbar.d.ts.map +1 -1
- package/dist/ui/molecules/table-toolbar/table-toolbar.js +3 -2
- package/dist/ui/molecules/table-toolbar/table-toolbar.js.map +1 -1
- package/dist/ui/molecules/toast-region/toast-region.d.ts +63 -19
- package/dist/ui/molecules/toast-region/toast-region.d.ts.map +1 -1
- package/dist/ui/molecules/toast-region/toast-region.js +129 -42
- package/dist/ui/molecules/toast-region/toast-region.js.map +1 -1
- package/dist/ui/organisms/command-palette/command-palette.d.ts.map +1 -1
- package/dist/ui/organisms/command-palette/command-palette.js +25 -18
- package/dist/ui/organisms/command-palette/command-palette.js.map +1 -1
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.d.ts.map +1 -1
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.js +8 -3
- package/dist/ui/organisms/entity-detail-grid/entity-detail-grid.js.map +1 -1
- package/dist/ui/organisms/entity-form/entity-form.d.ts +1 -1
- package/dist/ui/organisms/entity-form/entity-form.d.ts.map +1 -1
- package/dist/ui/organisms/entity-form/entity-form.js +325 -215
- package/dist/ui/organisms/entity-form/entity-form.js.map +1 -1
- package/dist/ui/organisms/entity-form/entity-form.types.d.ts +8 -0
- package/dist/ui/organisms/entity-form/entity-form.types.d.ts.map +1 -1
- package/dist/ui/organisms/entity-form/entity-form.types.js.map +1 -1
- package/dist/ui/organisms/entity-table/entity-table.d.ts +1 -1
- package/dist/ui/organisms/entity-table/entity-table.d.ts.map +1 -1
- package/dist/ui/organisms/entity-table/entity-table.js +334 -198
- package/dist/ui/organisms/entity-table/entity-table.js.map +1 -1
- package/dist/ui/organisms/entity-table/entity-table.types.d.ts +19 -4
- package/dist/ui/organisms/entity-table/entity-table.types.d.ts.map +1 -1
- package/dist/ui/organisms/entity-table/entity-table.types.js.map +1 -1
- package/dist/ui/organisms/entity-table/header-sort.d.ts +18 -0
- package/dist/ui/organisms/entity-table/header-sort.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/header-sort.js +54 -0
- package/dist/ui/organisms/entity-table/header-sort.js.map +1 -0
- package/dist/ui/organisms/entity-table/pivot.d.ts +25 -0
- package/dist/ui/organisms/entity-table/pivot.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/pivot.js +106 -0
- package/dist/ui/organisms/entity-table/pivot.js.map +1 -0
- package/dist/ui/organisms/entity-table/use-result-announcement.d.ts +13 -0
- package/dist/ui/organisms/entity-table/use-result-announcement.d.ts.map +1 -0
- package/dist/ui/organisms/entity-table/use-result-announcement.js +31 -0
- package/dist/ui/organisms/entity-table/use-result-announcement.js.map +1 -0
- package/dist/ui/organisms/top-bar/live-indicator.d.ts +11 -0
- package/dist/ui/organisms/top-bar/live-indicator.d.ts.map +1 -0
- package/dist/ui/organisms/top-bar/live-indicator.js +46 -0
- package/dist/ui/organisms/top-bar/live-indicator.js.map +1 -0
- package/dist/ui/organisms/top-bar/top-bar.d.ts +11 -2
- package/dist/ui/organisms/top-bar/top-bar.d.ts.map +1 -1
- package/dist/ui/organisms/top-bar/top-bar.js +14 -5
- package/dist/ui/organisms/top-bar/top-bar.js.map +1 -1
- package/dist/ui/organisms/wizard/wizard.d.ts +1 -1
- package/dist/ui/organisms/wizard/wizard.d.ts.map +1 -1
- package/dist/ui/organisms/wizard/wizard.js +7 -1
- package/dist/ui/organisms/wizard/wizard.js.map +1 -1
- package/dist/ui/organisms/wizard/wizard.types.d.ts +8 -0
- package/dist/ui/organisms/wizard/wizard.types.d.ts.map +1 -1
- package/dist/ui/organisms/wizard/wizard.types.js.map +1 -1
- package/dist/ui/utils/live-updates.d.ts +24 -0
- package/dist/ui/utils/live-updates.d.ts.map +1 -0
- package/dist/ui/utils/live-updates.js +20 -0
- package/dist/ui/utils/live-updates.js.map +1 -0
- package/dist/ui/utils/use-focus-on-arrival.d.ts +14 -0
- package/dist/ui/utils/use-focus-on-arrival.d.ts.map +1 -0
- package/dist/ui/utils/use-focus-on-arrival.js +42 -0
- package/dist/ui/utils/use-focus-on-arrival.js.map +1 -0
- package/dist/ui/utils/use-hotkey.d.ts +44 -25
- package/dist/ui/utils/use-hotkey.d.ts.map +1 -1
- package/dist/ui/utils/use-hotkey.js +80 -48
- package/dist/ui/utils/use-hotkey.js.map +1 -1
- package/package.json +5 -5
- package/dist/ui/molecules/split-button/index.d.ts +0 -2
- package/dist/ui/molecules/split-button/index.d.ts.map +0 -1
- package/dist/ui/molecules/split-button/index.js +0 -3
- package/dist/ui/molecules/split-button/index.js.map +0 -1
- package/dist/ui/molecules/split-button/split-button.d.ts +0 -21
- package/dist/ui/molecules/split-button/split-button.d.ts.map +0 -1
- package/dist/ui/molecules/split-button/split-button.js +0 -35
- package/dist/ui/molecules/split-button/split-button.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,6 +4,14 @@ The React UI. `EntityTable`, `EntityForm`, `FilterBuilder`, `SortBuilder`, `Wiza
|
|
|
4
4
|
|
|
5
5
|
Styling is Tailwind utilities over the token names in `@entifix/style`.
|
|
6
6
|
|
|
7
|
+
They hold to WCAG 2.2 AA by contract, not by care at each call site
|
|
8
|
+
([conformance report](https://github.com/r10c-technologies/entifix/blob/main/docs/accessibility/openacr.yaml)):
|
|
9
|
+
|
|
10
|
+
- **Actions** — one `ActionBar` renders every surface: one primary, an overflow menu, destructive verbs last and confirmed through `ConfirmDialog` (undo, confirm or typed), and the shortcuts it advertises bound through `useHotkey`, which takes modifier chords only and refuses a conflict.
|
|
11
|
+
- **States** — `RegionState` says why a region is empty or failed, with Clear filters, Retry and a host's next step from `ErrorActionsProvider`; toasts take a tone and an action through `useToasts().show`; `useFocusOnArrival` keeps focus off `<body>` after a write; `LiveUpdatesProvider` lets the top bar say when live updates pause.
|
|
12
|
+
- **Tables** — header sort, a caption, a keyboard-reachable scroll region, announced result counts, `FilterChips`, facet counts, and cards when the table's own container is too narrow.
|
|
13
|
+
- **Theme** — `ThemeProvider` keeps the choice in a cookie a server can render (`readThemeCookies` in `@entifix/next-shell/server`); `ThemeScript` is for a host with no server.
|
|
14
|
+
|
|
7
15
|
## Install
|
|
8
16
|
|
|
9
17
|
```sh
|
|
@@ -12,11 +20,11 @@ pnpm add @entifix/react-controls effect react
|
|
|
12
20
|
|
|
13
21
|
## Entry points
|
|
14
22
|
|
|
15
|
-
| Import | What it holds
|
|
16
|
-
| ------------------------------------ |
|
|
17
|
-
| `@entifix/react-controls` | Everything: entity organisms, layout primitives, atoms, theme and UI-preference providers
|
|
18
|
-
| `@entifix/react-controls/primitives` | Layout primitives, atoms and presentational molecules (`
|
|
19
|
-
| `@entifix/react-controls/i18next` | `I18nProvider`, binding the controls to i18next
|
|
23
|
+
| Import | What it holds |
|
|
24
|
+
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| `@entifix/react-controls` | Everything: entity organisms, layout primitives, atoms, theme and UI-preference providers |
|
|
26
|
+
| `@entifix/react-controls/primitives` | Layout primitives, atoms (`Alert`, `StatusTag`, `Money`, `QuantityInput`…) and presentational molecules (`Breadcrumbs`, `EmptyState`, `MediaGallery`, `SegmentedNav`…), `ThemeScript` — no entity metadata |
|
|
27
|
+
| `@entifix/react-controls/i18next` | `I18nProvider`, binding the controls to i18next |
|
|
20
28
|
|
|
21
29
|
## Optional peers
|
|
22
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog/en.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,KAAK,UAAU,GAAG,cAAc,SAAS,EAAE,QAAQ,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog/en.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,KAAK,UAAU,GAAG,cAAc,SAAS,EAAE,QAAQ,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,UAsRtB,CAAC"}
|
package/dist/i18n/catalog/en.js
CHANGED
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
* reach a build. `tools/check-i18n.mjs` covers what types cannot — empty values,
|
|
5
5
|
* and keys present here but absent from `es`.
|
|
6
6
|
*/ export const controls = {
|
|
7
|
+
actions: {
|
|
8
|
+
more: 'More actions',
|
|
9
|
+
forRecord: 'Actions for {{record}}'
|
|
10
|
+
},
|
|
7
11
|
table: {
|
|
8
|
-
open: 'Open',
|
|
9
12
|
select: 'Select',
|
|
10
13
|
actions: 'Actions',
|
|
11
14
|
new: 'New',
|
|
12
15
|
filters: 'Filters',
|
|
13
16
|
sorting: 'Sorting',
|
|
14
17
|
loading: 'Loading…',
|
|
15
|
-
empty: 'No records',
|
|
16
|
-
error: 'Could not load records',
|
|
17
18
|
selection: 'Selection',
|
|
18
19
|
selectRow: 'Select {{record}}',
|
|
19
20
|
expandRow: 'Expand {{record}}',
|
|
@@ -23,7 +24,12 @@
|
|
|
23
24
|
selectAllMatching_other: 'Select all {{count}} matches',
|
|
24
25
|
selectedCount_one: '{{count}} selected',
|
|
25
26
|
selectedCount_other: '{{count}} selected',
|
|
26
|
-
clearSelection: 'Clear selection'
|
|
27
|
+
clearSelection: 'Clear selection',
|
|
28
|
+
results_one: '{{count}} result',
|
|
29
|
+
results_other: '{{count}} results',
|
|
30
|
+
noResultsFiltered: 'No results for these filters',
|
|
31
|
+
caption: '{{entity}} · {{results}}',
|
|
32
|
+
captionSorted: '{{entity}} · {{results}} · sorted by {{column}}, {{direction}}'
|
|
27
33
|
},
|
|
28
34
|
bulk: {
|
|
29
35
|
running: 'Running…',
|
|
@@ -46,17 +52,32 @@
|
|
|
46
52
|
delete: 'Delete',
|
|
47
53
|
deleting: 'Deleting…',
|
|
48
54
|
clone: 'Duplicate',
|
|
49
|
-
moreActions: 'More actions',
|
|
50
55
|
back: 'Back',
|
|
51
56
|
loading: 'Loading…',
|
|
52
|
-
pending: 'Waiting for the server…'
|
|
57
|
+
pending: 'Waiting for the server…',
|
|
58
|
+
errorSummary_one: 'Fix {{count}} field before saving',
|
|
59
|
+
errorSummary_other: 'Fix {{count}} fields before saving',
|
|
60
|
+
requiredHint: 'Fields marked * are required.',
|
|
61
|
+
requiredMarker: '*'
|
|
62
|
+
},
|
|
63
|
+
state: {
|
|
64
|
+
retry: 'Retry',
|
|
65
|
+
forbidden: "You don't have permission to see {{plural}}.",
|
|
66
|
+
stale: 'What is shown may be out of date.',
|
|
67
|
+
noResults: 'No {{plural}} match these filters.',
|
|
68
|
+
clearFilters: 'Clear filters',
|
|
69
|
+
empty: 'Your {{plural}} will appear here.',
|
|
70
|
+
saved: 'Saved {{object}}.'
|
|
53
71
|
},
|
|
54
72
|
pagination: {
|
|
55
73
|
label: 'Pages',
|
|
56
74
|
summary: 'Page {{current}} of {{total}} · {{items}} items',
|
|
57
75
|
rows: 'Rows',
|
|
76
|
+
first: 'First',
|
|
58
77
|
previous: 'Previous',
|
|
59
|
-
next: 'Next'
|
|
78
|
+
next: 'Next',
|
|
79
|
+
last: 'Last',
|
|
80
|
+
page: 'Page {{current}} of {{total}}'
|
|
60
81
|
},
|
|
61
82
|
columns: {
|
|
62
83
|
title: 'Columns',
|
|
@@ -81,7 +102,11 @@
|
|
|
81
102
|
rangeEnd: 'Filter range end',
|
|
82
103
|
remove: 'Remove filter',
|
|
83
104
|
applyAria: 'Apply filters',
|
|
84
|
-
clearAria: 'Clear filters'
|
|
105
|
+
clearAria: 'Clear filters',
|
|
106
|
+
applied: 'Applied filters',
|
|
107
|
+
removeChip: 'Remove filter: {{filter}}',
|
|
108
|
+
clearAll: 'Clear all',
|
|
109
|
+
withCount: '{{label}} ({{count}})'
|
|
85
110
|
},
|
|
86
111
|
sort: {
|
|
87
112
|
by: 'Sort by',
|
|
@@ -100,9 +125,21 @@
|
|
|
100
125
|
applyAria: 'Apply sorting',
|
|
101
126
|
clearAria: 'Clear sorting'
|
|
102
127
|
},
|
|
128
|
+
alert: {
|
|
129
|
+
dismiss: 'Dismiss'
|
|
130
|
+
},
|
|
131
|
+
quantity: {
|
|
132
|
+
decrease: 'Decrease {{label}}',
|
|
133
|
+
increase: 'Increase {{label}}'
|
|
134
|
+
},
|
|
103
135
|
tabs: {
|
|
104
136
|
close: 'Close {{label}}',
|
|
105
|
-
new: 'Open a new tab'
|
|
137
|
+
new: 'Open a new tab',
|
|
138
|
+
list: 'Workspace tabs',
|
|
139
|
+
withState: '{{label}}, {{state}}',
|
|
140
|
+
dirty: 'unsaved changes',
|
|
141
|
+
saving: 'saving',
|
|
142
|
+
error: 'not saved'
|
|
106
143
|
},
|
|
107
144
|
link: {
|
|
108
145
|
search: 'Search {{field}}',
|
|
@@ -176,6 +213,11 @@
|
|
|
176
213
|
isNull: 'is empty',
|
|
177
214
|
isNotNull: 'is not empty'
|
|
178
215
|
},
|
|
216
|
+
density: {
|
|
217
|
+
label: 'Density',
|
|
218
|
+
comfortable: 'Comfortable',
|
|
219
|
+
compact: 'Compact'
|
|
220
|
+
},
|
|
179
221
|
theme: {
|
|
180
222
|
label: 'Theme'
|
|
181
223
|
},
|
|
@@ -192,7 +234,23 @@
|
|
|
192
234
|
confirm: {
|
|
193
235
|
confirm: 'Confirm',
|
|
194
236
|
cancel: 'Cancel',
|
|
195
|
-
|
|
237
|
+
question: '{{verb}} {{object}}?',
|
|
238
|
+
verbCount_one: '{{verb}}',
|
|
239
|
+
verbCount_other: '{{verb}} {{count}}',
|
|
240
|
+
selection_one: '{{count}} {{label}}',
|
|
241
|
+
selection_other: '{{count}} {{plural}}',
|
|
242
|
+
typeToConfirm: 'Type {{expected}} to confirm',
|
|
243
|
+
done: 'Done: {{verb}}, {{object}}.',
|
|
244
|
+
undo: 'Undo',
|
|
245
|
+
deleteMessage: 'It is removed for good.',
|
|
246
|
+
deleted: '{{object}} deleted.'
|
|
247
|
+
},
|
|
248
|
+
live: {
|
|
249
|
+
reconnecting: 'Live updates paused — reconnecting',
|
|
250
|
+
stopped: 'Live updates stopped',
|
|
251
|
+
reconnect: 'Reconnect',
|
|
252
|
+
resumed: 'Live updates resumed',
|
|
253
|
+
waiting: 'Waiting for connection…'
|
|
196
254
|
},
|
|
197
255
|
toast: {
|
|
198
256
|
region: 'Notifications',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/catalog/en.ts"],"sourcesContent":["/**\n * The `es` shape is the contract: annotating with it makes a key that exists in\n * Spanish but not here a *compile* error, so a half-translated locale cannot\n * reach a build. `tools/check-i18n.mjs` covers what types cannot — empty values,\n * and keys present here but absent from `es`.\n */\ntype EsControls = typeof import('./es.js').controls;\n\nexport const controls: EsControls = {\n table: {\n open: 'Open',\n select: 'Select',\n actions: 'Actions',\n new: 'New',\n filters: 'Filters',\n sorting: 'Sorting',\n loading: 'Loading…',\n empty: 'No records',\n error: 'Could not load records',\n selection: 'Selection',\n selectRow: 'Select {{record}}',\n expandRow: 'Expand {{record}}',\n collapseRow: 'Collapse {{record}}',\n selectAllOnPage: 'Select all on this page',\n selectAllMatching_one: 'Select {{count}} match',\n selectAllMatching_other: 'Select all {{count}} matches',\n selectedCount_one: '{{count}} selected',\n selectedCount_other: '{{count}} selected',\n clearSelection: 'Clear selection',\n },\n bulk: {\n running: 'Running…',\n succeeded_one: '{{count}} record updated',\n succeeded_other: '{{count}} records updated',\n failed_one: '{{count}} record failed',\n failed_other: '{{count}} records failed',\n retryFailed: 'Retry the failures',\n dismiss: 'Dismiss result',\n resultLabel: 'Bulk action result',\n barLabel: 'Actions on the selection',\n },\n form: {\n details: 'Details',\n new: 'New',\n view: 'View',\n edit: 'Edit',\n save: 'Save',\n saving: 'Saving…',\n delete: 'Delete',\n deleting: 'Deleting…',\n clone: 'Duplicate',\n moreActions: 'More actions',\n back: 'Back',\n loading: 'Loading…',\n pending: 'Waiting for the server…',\n },\n pagination: {\n label: 'Pages',\n summary: 'Page {{current}} of {{total}} · {{items}} items',\n rows: 'Rows',\n previous: 'Previous',\n next: 'Next',\n },\n columns: {\n title: 'Columns',\n subtitle: 'Visibility and order',\n reset: 'Reset to default',\n moveUp: 'Move {{column}} up',\n moveDown: 'Move {{column}} down',\n },\n filter: {\n match: 'Match',\n all: 'all',\n any: 'any',\n add: 'Add filter',\n apply: 'Apply',\n clear: 'Clear',\n none: 'No filterable members on this entity.',\n listPlaceholder: 'comma, separated, values',\n matchAria: 'Match all or any filter',\n member: 'Filter member',\n operator: 'Filter operator',\n value: 'Filter value',\n rangeEnd: 'Filter range end',\n remove: 'Remove filter',\n applyAria: 'Apply filters',\n clearAria: 'Clear filters',\n },\n sort: {\n by: 'Sort by',\n then: 'then by',\n ascending: 'ascending',\n descending: 'descending',\n add: 'Add sort',\n apply: 'Apply',\n clear: 'Clear',\n none: 'No sortable members on this entity.',\n member: 'Sort member',\n direction: 'Sort direction',\n raisePriority: 'Raise sort priority',\n lowerPriority: 'Lower sort priority',\n remove: 'Remove sort',\n applyAria: 'Apply sorting',\n clearAria: 'Clear sorting',\n },\n tabs: {\n close: 'Close {{label}}',\n new: 'Open a new tab',\n },\n link: {\n search: 'Search {{field}}',\n suggestAria: 'Show {{field}} suggestions',\n browseAria: 'Browse {{field}}',\n browseTitle: 'Select {{field}}',\n clear: 'Clear {{field}}',\n empty: '— unassigned —',\n loading: 'Loading…',\n noResults: 'No matches',\n error: 'Could not load options',\n close: 'Close',\n },\n detail: {\n addRow: 'Add row',\n removeRow: 'Remove row {{row}}',\n rowActions: 'Row actions',\n empty: 'No rows yet.',\n errorSummary_one: '{{count}} cell has errors',\n errorSummary_other: '{{count}} cells have errors',\n },\n value: {\n none: '— none —',\n yes: 'Yes',\n no: 'No',\n /**\n * A `composition` in a table: its rows are edited on the master's own\n * screen rather than in the cell, so the cell says how many there are.\n */\n rowCount_one: '{{count}} row',\n rowCount_other: '{{count}} rows',\n },\n /**\n * `required`…`option` are the metadata-derived rules. The rest are the\n * vocabulary an entity's Standard Schema writes its messages in: a schema\n * carries the *key*, never a sentence, so a rule stays translatable.\n *\n * `field` is the only parameter available — a Standard Schema issue exposes a\n * message and a path, nothing else — so these stay unquantified. A rule that\n * has to state its bound writes its own key in its domain catalog and passes\n * it namespaced (`entity:product-specification.validation.codeLength`).\n */\n validation: {\n required: '{{field}} is required',\n number: '{{field}} must be a number',\n date: '{{field}} must be a date',\n option: '{{field}} is not a valid option',\n minLength: '{{field}} is too short',\n maxLength: '{{field}} is too long',\n min: '{{field}} is too small',\n max: '{{field}} is too large',\n pattern: '{{field}} has an invalid format',\n minItems_one: '{{field}} needs at least {{count}} item',\n minItems_other: '{{field}} needs at least {{count}} items',\n maxItems_one: '{{field}} takes at most {{count}} item',\n maxItems_other: '{{field}} takes at most {{count}} items',\n notBefore: '{{field}} cannot be before {{other}}',\n locale: '{{field}} has no {{locale}} text',\n },\n operator: {\n eq: 'is',\n ne: 'is not',\n gt: 'greater than',\n gte: 'greater or equal',\n lt: 'less than',\n lte: 'less or equal',\n in: 'is one of',\n nin: 'is none of',\n between: 'between',\n nbetween: 'not between',\n like: 'contains',\n nlike: 'does not contain',\n isNull: 'is empty',\n isNotNull: 'is not empty',\n },\n theme: {\n label: 'Theme',\n },\n themes: {\n aurora: 'Aurora',\n sunset: 'Sunset',\n midnight: 'Midnight',\n ocean: 'Ocean (runtime)',\n marketplace: 'Marketplace',\n marketplaceDark: 'Marketplace dark',\n auth: 'Identity',\n authDark: 'Identity dark',\n },\n confirm: {\n confirm: 'Confirm',\n cancel: 'Cancel',\n title: 'Confirm',\n },\n toast: {\n region: 'Notifications',\n dismiss: 'Dismiss',\n },\n breadcrumbs: {\n label: 'Breadcrumb',\n },\n wizard: {\n steps: 'Steps',\n previous: 'Back',\n next: 'Continue',\n finish: 'Finish',\n submitting: 'Submitting…',\n stepOf: 'Step {{current}} of {{total}}',\n goToStep: 'Back to {{label}}',\n status: {\n pending: 'pending',\n active: 'in progress',\n complete: 'completed',\n error: 'has errors',\n },\n resume: {\n title: 'Picking up where you left off',\n dismiss: 'Got it',\n },\n },\n};\n"],"names":["controls","table","open","select","actions","new","filters","sorting","loading","empty","error","selection","selectRow","expandRow","collapseRow","selectAllOnPage","selectAllMatching_one","selectAllMatching_other","selectedCount_one","selectedCount_other","clearSelection","bulk","running","succeeded_one","succeeded_other","failed_one","failed_other","retryFailed","dismiss","resultLabel","barLabel","form","details","view","edit","save","saving","delete","deleting","clone","moreActions","back","pending","pagination","label","summary","rows","previous","next","columns","title","subtitle","reset","moveUp","moveDown","filter","match","all","any","add","apply","clear","none","listPlaceholder","matchAria","member","operator","value","rangeEnd","remove","applyAria","clearAria","sort","by","then","ascending","descending","direction","raisePriority","lowerPriority","tabs","close","link","search","suggestAria","browseAria","browseTitle","noResults","detail","addRow","removeRow","rowActions","errorSummary_one","errorSummary_other","yes","no","rowCount_one","rowCount_other","validation","required","number","date","option","minLength","maxLength","min","max","pattern","minItems_one","minItems_other","maxItems_one","maxItems_other","notBefore","locale","eq","ne","gt","gte","lt","lte","in","nin","between","nbetween","like","nlike","isNull","isNotNull","theme","themes","aurora","sunset","midnight","ocean","marketplace","marketplaceDark","auth","authDark","confirm","cancel","toast","region","breadcrumbs","wizard","steps","finish","submitting","stepOf","goToStep","status","active","complete","resume"],"mappings":"AAAA;;;;;CAKC,GAGD,OAAO,MAAMA,WAAuB;IAClCC,OAAO;QACLC,MAAM;QACNC,QAAQ;QACRC,SAAS;QACTC,KAAK;QACLC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,OAAO;QACPC,OAAO;QACPC,WAAW;QACXC,WAAW;QACXC,WAAW;QACXC,aAAa;QACbC,iBAAiB;QACjBC,uBAAuB;QACvBC,yBAAyB;QACzBC,mBAAmB;QACnBC,qBAAqB;QACrBC,gBAAgB;IAClB;IACAC,MAAM;QACJC,SAAS;QACTC,eAAe;QACfC,iBAAiB;QACjBC,YAAY;QACZC,cAAc;QACdC,aAAa;QACbC,SAAS;QACTC,aAAa;QACbC,UAAU;IACZ;IACAC,MAAM;QACJC,SAAS;QACT3B,KAAK;QACL4B,MAAM;QACNC,MAAM;QACNC,MAAM;QACNC,QAAQ;QACRC,QAAQ;QACRC,UAAU;QACVC,OAAO;QACPC,aAAa;QACbC,MAAM;QACNjC,SAAS;QACTkC,SAAS;IACX;IACAC,YAAY;QACVC,OAAO;QACPC,SAAS;QACTC,MAAM;QACNC,UAAU;QACVC,MAAM;IACR;IACAC,SAAS;QACPC,OAAO;QACPC,UAAU;QACVC,OAAO;QACPC,QAAQ;QACRC,UAAU;IACZ;IACAC,QAAQ;QACNC,OAAO;QACPC,KAAK;QACLC,KAAK;QACLC,KAAK;QACLC,OAAO;QACPC,OAAO;QACPC,MAAM;QACNC,iBAAiB;QACjBC,WAAW;QACXC,QAAQ;QACRC,UAAU;QACVC,OAAO;QACPC,UAAU;QACVC,QAAQ;QACRC,WAAW;QACXC,WAAW;IACb;IACAC,MAAM;QACJC,IAAI;QACJC,MAAM;QACNC,WAAW;QACXC,YAAY;QACZjB,KAAK;QACLC,OAAO;QACPC,OAAO;QACPC,MAAM;QACNG,QAAQ;QACRY,WAAW;QACXC,eAAe;QACfC,eAAe;QACfV,QAAQ;QACRC,WAAW;QACXC,WAAW;IACb;IACAS,MAAM;QACJC,OAAO;QACP5E,KAAK;IACP;IACA6E,MAAM;QACJC,QAAQ;QACRC,aAAa;QACbC,YAAY;QACZC,aAAa;QACbzB,OAAO;QACPpD,OAAO;QACPD,SAAS;QACT+E,WAAW;QACX7E,OAAO;QACPuE,OAAO;IACT;IACAO,QAAQ;QACNC,QAAQ;QACRC,WAAW;QACXC,YAAY;QACZlF,OAAO;QACPmF,kBAAkB;QAClBC,oBAAoB;IACtB;IACA1B,OAAO;QACLL,MAAM;QACNgC,KAAK;QACLC,IAAI;QACJ;;;KAGC,GACDC,cAAc;QACdC,gBAAgB;IAClB;IACA;;;;;;;;;GASC,GACDC,YAAY;QACVC,UAAU;QACVC,QAAQ;QACRC,MAAM;QACNC,QAAQ;QACRC,WAAW;QACXC,WAAW;QACXC,KAAK;QACLC,KAAK;QACLC,SAAS;QACTC,cAAc;QACdC,gBAAgB;QAChBC,cAAc;QACdC,gBAAgB;QAChBC,WAAW;QACXC,QAAQ;IACV;IACA/C,UAAU;QACRgD,IAAI;QACJC,IAAI;QACJC,IAAI;QACJC,KAAK;QACLC,IAAI;QACJC,KAAK;QACLC,IAAI;QACJC,KAAK;QACLC,SAAS;QACTC,UAAU;QACVC,MAAM;QACNC,OAAO;QACPC,QAAQ;QACRC,WAAW;IACb;IACAC,OAAO;QACLpF,OAAO;IACT;IACAqF,QAAQ;QACNC,QAAQ;QACRC,QAAQ;QACRC,UAAU;QACVC,OAAO;QACPC,aAAa;QACbC,iBAAiB;QACjBC,MAAM;QACNC,UAAU;IACZ;IACAC,SAAS;QACPA,SAAS;QACTC,QAAQ;QACRzF,OAAO;IACT;IACA0F,OAAO;QACLC,QAAQ;QACRjH,SAAS;IACX;IACAkH,aAAa;QACXlG,OAAO;IACT;IACAmG,QAAQ;QACNC,OAAO;QACPjG,UAAU;QACVC,MAAM;QACNiG,QAAQ;QACRC,YAAY;QACZC,QAAQ;QACRC,UAAU;QACVC,QAAQ;YACN3G,SAAS;YACT4G,QAAQ;YACRC,UAAU;YACV7I,OAAO;QACT;QACA8I,QAAQ;YACNtG,OAAO;YACPtB,SAAS;QACX;IACF;AACF,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/catalog/en.ts"],"sourcesContent":["/**\n * The `es` shape is the contract: annotating with it makes a key that exists in\n * Spanish but not here a *compile* error, so a half-translated locale cannot\n * reach a build. `tools/check-i18n.mjs` covers what types cannot — empty values,\n * and keys present here but absent from `es`.\n */\ntype EsControls = typeof import('./es.js').controls;\n\nexport const controls: EsControls = {\n actions: {\n more: 'More actions',\n forRecord: 'Actions for {{record}}',\n },\n table: {\n select: 'Select',\n actions: 'Actions',\n new: 'New',\n filters: 'Filters',\n sorting: 'Sorting',\n loading: 'Loading…',\n selection: 'Selection',\n selectRow: 'Select {{record}}',\n expandRow: 'Expand {{record}}',\n collapseRow: 'Collapse {{record}}',\n selectAllOnPage: 'Select all on this page',\n selectAllMatching_one: 'Select {{count}} match',\n selectAllMatching_other: 'Select all {{count}} matches',\n selectedCount_one: '{{count}} selected',\n selectedCount_other: '{{count}} selected',\n clearSelection: 'Clear selection',\n results_one: '{{count}} result',\n results_other: '{{count}} results',\n noResultsFiltered: 'No results for these filters',\n caption: '{{entity}} · {{results}}',\n captionSorted:\n '{{entity}} · {{results}} · sorted by {{column}}, {{direction}}',\n },\n bulk: {\n running: 'Running…',\n succeeded_one: '{{count}} record updated',\n succeeded_other: '{{count}} records updated',\n failed_one: '{{count}} record failed',\n failed_other: '{{count}} records failed',\n retryFailed: 'Retry the failures',\n dismiss: 'Dismiss result',\n resultLabel: 'Bulk action result',\n barLabel: 'Actions on the selection',\n },\n form: {\n details: 'Details',\n new: 'New',\n view: 'View',\n edit: 'Edit',\n save: 'Save',\n saving: 'Saving…',\n delete: 'Delete',\n deleting: 'Deleting…',\n clone: 'Duplicate',\n back: 'Back',\n loading: 'Loading…',\n pending: 'Waiting for the server…',\n errorSummary_one: 'Fix {{count}} field before saving',\n errorSummary_other: 'Fix {{count}} fields before saving',\n requiredHint: 'Fields marked * are required.',\n requiredMarker: '*',\n },\n state: {\n retry: 'Retry',\n forbidden: \"You don't have permission to see {{plural}}.\",\n stale: 'What is shown may be out of date.',\n noResults: 'No {{plural}} match these filters.',\n clearFilters: 'Clear filters',\n empty: 'Your {{plural}} will appear here.',\n saved: 'Saved {{object}}.',\n },\n pagination: {\n label: 'Pages',\n summary: 'Page {{current}} of {{total}} · {{items}} items',\n rows: 'Rows',\n first: 'First',\n previous: 'Previous',\n next: 'Next',\n last: 'Last',\n page: 'Page {{current}} of {{total}}',\n },\n columns: {\n title: 'Columns',\n subtitle: 'Visibility and order',\n reset: 'Reset to default',\n moveUp: 'Move {{column}} up',\n moveDown: 'Move {{column}} down',\n },\n filter: {\n match: 'Match',\n all: 'all',\n any: 'any',\n add: 'Add filter',\n apply: 'Apply',\n clear: 'Clear',\n none: 'No filterable members on this entity.',\n listPlaceholder: 'comma, separated, values',\n matchAria: 'Match all or any filter',\n member: 'Filter member',\n operator: 'Filter operator',\n value: 'Filter value',\n rangeEnd: 'Filter range end',\n remove: 'Remove filter',\n applyAria: 'Apply filters',\n clearAria: 'Clear filters',\n applied: 'Applied filters',\n removeChip: 'Remove filter: {{filter}}',\n clearAll: 'Clear all',\n withCount: '{{label}} ({{count}})',\n },\n sort: {\n by: 'Sort by',\n then: 'then by',\n ascending: 'ascending',\n descending: 'descending',\n add: 'Add sort',\n apply: 'Apply',\n clear: 'Clear',\n none: 'No sortable members on this entity.',\n member: 'Sort member',\n direction: 'Sort direction',\n raisePriority: 'Raise sort priority',\n lowerPriority: 'Lower sort priority',\n remove: 'Remove sort',\n applyAria: 'Apply sorting',\n clearAria: 'Clear sorting',\n },\n alert: {\n dismiss: 'Dismiss',\n },\n quantity: {\n decrease: 'Decrease {{label}}',\n increase: 'Increase {{label}}',\n },\n tabs: {\n close: 'Close {{label}}',\n new: 'Open a new tab',\n list: 'Workspace tabs',\n withState: '{{label}}, {{state}}',\n dirty: 'unsaved changes',\n saving: 'saving',\n error: 'not saved',\n },\n link: {\n search: 'Search {{field}}',\n suggestAria: 'Show {{field}} suggestions',\n browseAria: 'Browse {{field}}',\n browseTitle: 'Select {{field}}',\n clear: 'Clear {{field}}',\n empty: '— unassigned —',\n loading: 'Loading…',\n noResults: 'No matches',\n error: 'Could not load options',\n close: 'Close',\n },\n detail: {\n addRow: 'Add row',\n removeRow: 'Remove row {{row}}',\n rowActions: 'Row actions',\n empty: 'No rows yet.',\n errorSummary_one: '{{count}} cell has errors',\n errorSummary_other: '{{count}} cells have errors',\n },\n value: {\n none: '— none —',\n yes: 'Yes',\n no: 'No',\n /**\n * A `composition` in a table: its rows are edited on the master's own\n * screen rather than in the cell, so the cell says how many there are.\n */\n rowCount_one: '{{count}} row',\n rowCount_other: '{{count}} rows',\n },\n /**\n * `required`…`option` are the metadata-derived rules. The rest are the\n * vocabulary an entity's Standard Schema writes its messages in: a schema\n * carries the *key*, never a sentence, so a rule stays translatable.\n *\n * `field` is the only parameter available — a Standard Schema issue exposes a\n * message and a path, nothing else — so these stay unquantified. A rule that\n * has to state its bound writes its own key in its domain catalog and passes\n * it namespaced (`entity:product-specification.validation.codeLength`).\n */\n validation: {\n required: '{{field}} is required',\n number: '{{field}} must be a number',\n date: '{{field}} must be a date',\n option: '{{field}} is not a valid option',\n minLength: '{{field}} is too short',\n maxLength: '{{field}} is too long',\n min: '{{field}} is too small',\n max: '{{field}} is too large',\n pattern: '{{field}} has an invalid format',\n minItems_one: '{{field}} needs at least {{count}} item',\n minItems_other: '{{field}} needs at least {{count}} items',\n maxItems_one: '{{field}} takes at most {{count}} item',\n maxItems_other: '{{field}} takes at most {{count}} items',\n notBefore: '{{field}} cannot be before {{other}}',\n locale: '{{field}} has no {{locale}} text',\n },\n operator: {\n eq: 'is',\n ne: 'is not',\n gt: 'greater than',\n gte: 'greater or equal',\n lt: 'less than',\n lte: 'less or equal',\n in: 'is one of',\n nin: 'is none of',\n between: 'between',\n nbetween: 'not between',\n like: 'contains',\n nlike: 'does not contain',\n isNull: 'is empty',\n isNotNull: 'is not empty',\n },\n density: {\n label: 'Density',\n comfortable: 'Comfortable',\n compact: 'Compact',\n },\n theme: {\n label: 'Theme',\n },\n themes: {\n aurora: 'Aurora',\n sunset: 'Sunset',\n midnight: 'Midnight',\n ocean: 'Ocean (runtime)',\n marketplace: 'Marketplace',\n marketplaceDark: 'Marketplace dark',\n auth: 'Identity',\n authDark: 'Identity dark',\n },\n confirm: {\n confirm: 'Confirm',\n cancel: 'Cancel',\n question: '{{verb}} {{object}}?',\n verbCount_one: '{{verb}}',\n verbCount_other: '{{verb}} {{count}}',\n selection_one: '{{count}} {{label}}',\n selection_other: '{{count}} {{plural}}',\n typeToConfirm: 'Type {{expected}} to confirm',\n done: 'Done: {{verb}}, {{object}}.',\n undo: 'Undo',\n deleteMessage: 'It is removed for good.',\n deleted: '{{object}} deleted.',\n },\n live: {\n reconnecting: 'Live updates paused — reconnecting',\n stopped: 'Live updates stopped',\n reconnect: 'Reconnect',\n resumed: 'Live updates resumed',\n waiting: 'Waiting for connection…',\n },\n toast: {\n region: 'Notifications',\n dismiss: 'Dismiss',\n },\n breadcrumbs: {\n label: 'Breadcrumb',\n },\n wizard: {\n steps: 'Steps',\n previous: 'Back',\n next: 'Continue',\n finish: 'Finish',\n submitting: 'Submitting…',\n stepOf: 'Step {{current}} of {{total}}',\n goToStep: 'Back to {{label}}',\n status: {\n pending: 'pending',\n active: 'in progress',\n complete: 'completed',\n error: 'has errors',\n },\n resume: {\n title: 'Picking up where you left off',\n dismiss: 'Got it',\n },\n },\n};\n"],"names":["controls","actions","more","forRecord","table","select","new","filters","sorting","loading","selection","selectRow","expandRow","collapseRow","selectAllOnPage","selectAllMatching_one","selectAllMatching_other","selectedCount_one","selectedCount_other","clearSelection","results_one","results_other","noResultsFiltered","caption","captionSorted","bulk","running","succeeded_one","succeeded_other","failed_one","failed_other","retryFailed","dismiss","resultLabel","barLabel","form","details","view","edit","save","saving","delete","deleting","clone","back","pending","errorSummary_one","errorSummary_other","requiredHint","requiredMarker","state","retry","forbidden","stale","noResults","clearFilters","empty","saved","pagination","label","summary","rows","first","previous","next","last","page","columns","title","subtitle","reset","moveUp","moveDown","filter","match","all","any","add","apply","clear","none","listPlaceholder","matchAria","member","operator","value","rangeEnd","remove","applyAria","clearAria","applied","removeChip","clearAll","withCount","sort","by","then","ascending","descending","direction","raisePriority","lowerPriority","alert","quantity","decrease","increase","tabs","close","list","withState","dirty","error","link","search","suggestAria","browseAria","browseTitle","detail","addRow","removeRow","rowActions","yes","no","rowCount_one","rowCount_other","validation","required","number","date","option","minLength","maxLength","min","max","pattern","minItems_one","minItems_other","maxItems_one","maxItems_other","notBefore","locale","eq","ne","gt","gte","lt","lte","in","nin","between","nbetween","like","nlike","isNull","isNotNull","density","comfortable","compact","theme","themes","aurora","sunset","midnight","ocean","marketplace","marketplaceDark","auth","authDark","confirm","cancel","question","verbCount_one","verbCount_other","selection_one","selection_other","typeToConfirm","done","undo","deleteMessage","deleted","live","reconnecting","stopped","reconnect","resumed","waiting","toast","region","breadcrumbs","wizard","steps","finish","submitting","stepOf","goToStep","status","active","complete","resume"],"mappings":"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"}
|
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
* import a T3 package.
|
|
6
6
|
*/
|
|
7
7
|
export declare const controls: {
|
|
8
|
+
actions: {
|
|
9
|
+
more: string;
|
|
10
|
+
forRecord: string;
|
|
11
|
+
};
|
|
8
12
|
table: {
|
|
9
|
-
open: string;
|
|
10
13
|
select: string;
|
|
11
14
|
actions: string;
|
|
12
15
|
new: string;
|
|
13
16
|
filters: string;
|
|
14
17
|
sorting: string;
|
|
15
18
|
loading: string;
|
|
16
|
-
empty: string;
|
|
17
|
-
error: string;
|
|
18
19
|
/**
|
|
19
20
|
* La columna de selección. `selectRow` nombra la fila porque una casilla
|
|
20
21
|
* sin etiqueta visible sólo se anuncia por su `aria-label`, y repetir el
|
|
@@ -34,6 +35,16 @@ export declare const controls: {
|
|
|
34
35
|
selectedCount_one: string;
|
|
35
36
|
selectedCount_other: string;
|
|
36
37
|
clearSelection: string;
|
|
38
|
+
/**
|
|
39
|
+
* Lo que dice la región de estado tras filtrar, ordenar o cambiar de
|
|
40
|
+
* página — nunca en la primera carga, que el lector pidió al llegar.
|
|
41
|
+
*/
|
|
42
|
+
results_one: string;
|
|
43
|
+
results_other: string;
|
|
44
|
+
noResultsFiltered: string;
|
|
45
|
+
/** El `caption` de la tabla: qué contiene, cuántos y en qué orden. */
|
|
46
|
+
caption: string;
|
|
47
|
+
captionSorted: string;
|
|
37
48
|
};
|
|
38
49
|
/**
|
|
39
50
|
* Una acción sobre una selección. El resultado es por fila, nunca un aviso
|
|
@@ -60,17 +71,38 @@ export declare const controls: {
|
|
|
60
71
|
delete: string;
|
|
61
72
|
deleting: string;
|
|
62
73
|
clone: string;
|
|
63
|
-
moreActions: string;
|
|
64
74
|
back: string;
|
|
65
75
|
loading: string;
|
|
66
76
|
pending: string;
|
|
77
|
+
/** El resumen de un guardado rechazado: toma el foco, enlaza cada campo. */
|
|
78
|
+
errorSummary_one: string;
|
|
79
|
+
errorSummary_other: string;
|
|
80
|
+
requiredHint: string;
|
|
81
|
+
requiredMarker: string;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Lo que dice una región cuando no muestra su contenido (ADR 0028): qué
|
|
85
|
+
* pasó, qué hacer, sin culpar a nadie y sin códigos.
|
|
86
|
+
*/
|
|
87
|
+
state: {
|
|
88
|
+
retry: string;
|
|
89
|
+
forbidden: string;
|
|
90
|
+
stale: string;
|
|
91
|
+
noResults: string;
|
|
92
|
+
clearFilters: string;
|
|
93
|
+
empty: string;
|
|
94
|
+
saved: string;
|
|
67
95
|
};
|
|
68
96
|
pagination: {
|
|
69
97
|
label: string;
|
|
70
98
|
summary: string;
|
|
71
99
|
rows: string;
|
|
100
|
+
first: string;
|
|
72
101
|
previous: string;
|
|
73
102
|
next: string;
|
|
103
|
+
last: string;
|
|
104
|
+
/** Lo que se anuncia al cambiar de página. */
|
|
105
|
+
page: string;
|
|
74
106
|
};
|
|
75
107
|
columns: {
|
|
76
108
|
title: string;
|
|
@@ -96,6 +128,11 @@ export declare const controls: {
|
|
|
96
128
|
remove: string;
|
|
97
129
|
applyAria: string;
|
|
98
130
|
clearAria: string;
|
|
131
|
+
applied: string;
|
|
132
|
+
removeChip: string;
|
|
133
|
+
clearAll: string;
|
|
134
|
+
/** Una opción con cuántos registros la tienen: «Borrador (3)». */
|
|
135
|
+
withCount: string;
|
|
99
136
|
};
|
|
100
137
|
sort: {
|
|
101
138
|
by: string;
|
|
@@ -114,9 +151,21 @@ export declare const controls: {
|
|
|
114
151
|
applyAria: string;
|
|
115
152
|
clearAria: string;
|
|
116
153
|
};
|
|
154
|
+
alert: {
|
|
155
|
+
dismiss: string;
|
|
156
|
+
};
|
|
157
|
+
quantity: {
|
|
158
|
+
decrease: string;
|
|
159
|
+
increase: string;
|
|
160
|
+
};
|
|
117
161
|
tabs: {
|
|
118
162
|
close: string;
|
|
119
163
|
new: string;
|
|
164
|
+
list: string;
|
|
165
|
+
withState: string;
|
|
166
|
+
dirty: string;
|
|
167
|
+
saving: string;
|
|
168
|
+
error: string;
|
|
120
169
|
};
|
|
121
170
|
/**
|
|
122
171
|
* El editor de una relación. `search` es la búsqueda rápida y `browse` abre el
|
|
@@ -210,6 +259,11 @@ export declare const controls: {
|
|
|
210
259
|
isNull: string;
|
|
211
260
|
isNotNull: string;
|
|
212
261
|
};
|
|
262
|
+
density: {
|
|
263
|
+
label: string;
|
|
264
|
+
comfortable: string;
|
|
265
|
+
compact: string;
|
|
266
|
+
};
|
|
213
267
|
theme: {
|
|
214
268
|
label: string;
|
|
215
269
|
};
|
|
@@ -232,7 +286,24 @@ export declare const controls: {
|
|
|
232
286
|
confirm: {
|
|
233
287
|
confirm: string;
|
|
234
288
|
cancel: string;
|
|
235
|
-
|
|
289
|
+
question: string;
|
|
290
|
+
verbCount_one: string;
|
|
291
|
+
verbCount_other: string;
|
|
292
|
+
selection_one: string;
|
|
293
|
+
selection_other: string;
|
|
294
|
+
typeToConfirm: string;
|
|
295
|
+
done: string;
|
|
296
|
+
undo: string;
|
|
297
|
+
deleteMessage: string;
|
|
298
|
+
deleted: string;
|
|
299
|
+
};
|
|
300
|
+
/** Las actualizaciones en vivo: se dicen al caer y al volver, nada más. */
|
|
301
|
+
live: {
|
|
302
|
+
reconnecting: string;
|
|
303
|
+
stopped: string;
|
|
304
|
+
reconnect: string;
|
|
305
|
+
resumed: string;
|
|
306
|
+
waiting: string;
|
|
236
307
|
};
|
|
237
308
|
toast: {
|
|
238
309
|
region: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog/es.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog/es.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;QAYjB;;;;WAIG;;;;;;QAMH;;;WAGG;;;;;;QAMH;;;WAGG;;;;QAIH,sEAAsE;;;;IAKxE;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;QAyBD,4EAA4E;;;;;;IAM9E;;;OAGG;;;;;;;;;;;;;;;;;;QAkBD,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8B9C,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCpE;;;;OAIG;;;;;;;;;;;;;IAaH;;;;;;OAMG;;;;;;;;;;;;;QAaD;;;WAGG;;;;IAIL;;;;;;;;;;OAUG;;;;;;;;;;;;;;;;;;IAkBH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;IAyBH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;IAyBH,2EAA2E;;;;;;;;;;;;;;;IAe3E;;;;OAIG;;;;QAID;;;;WAIG;;;QAGH;;;;;WAKG;;;;QAIH;;;WAGG;;;;;;;QAOH;;;;WAIG;;;;;;CAMN,CAAC"}
|
package/dist/i18n/catalog/es.js
CHANGED
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
* to see every namespace from one module, and `@entifix/tooling` (T0) may not
|
|
5
5
|
* import a T3 package.
|
|
6
6
|
*/ export const controls = {
|
|
7
|
+
actions: {
|
|
8
|
+
more: 'Más acciones',
|
|
9
|
+
forRecord: 'Acciones para {{record}}'
|
|
10
|
+
},
|
|
7
11
|
table: {
|
|
8
|
-
open: 'Abrir',
|
|
9
12
|
select: 'Seleccionar',
|
|
10
13
|
actions: 'Acciones',
|
|
11
14
|
new: 'Nuevo',
|
|
12
15
|
filters: 'Filtros',
|
|
13
16
|
sorting: 'Orden',
|
|
14
17
|
loading: 'Cargando…',
|
|
15
|
-
empty: 'Sin registros',
|
|
16
|
-
error: 'No se pudieron cargar los registros',
|
|
17
18
|
/**
|
|
18
19
|
* La columna de selección. `selectRow` nombra la fila porque una casilla
|
|
19
20
|
* sin etiqueta visible sólo se anuncia por su `aria-label`, y repetir el
|
|
@@ -30,7 +31,15 @@
|
|
|
30
31
|
selectAllMatching_other: 'Seleccionar las {{count}} coincidencias',
|
|
31
32
|
selectedCount_one: '{{count}} seleccionado',
|
|
32
33
|
selectedCount_other: '{{count}} seleccionados',
|
|
33
|
-
clearSelection: 'Limpiar selección'
|
|
34
|
+
clearSelection: 'Limpiar selección',
|
|
35
|
+
/**
|
|
36
|
+
* Lo que dice la región de estado tras filtrar, ordenar o cambiar de
|
|
37
|
+
* página — nunca en la primera carga, que el lector pidió al llegar.
|
|
38
|
+
*/ results_one: '{{count}} resultado',
|
|
39
|
+
results_other: '{{count}} resultados',
|
|
40
|
+
noResultsFiltered: 'Sin resultados para estos filtros',
|
|
41
|
+
/** El `caption` de la tabla: qué contiene, cuántos y en qué orden. */ caption: '{{entity}} · {{results}}',
|
|
42
|
+
captionSorted: '{{entity}} · {{results}} · ordenado por {{column}}, {{direction}}'
|
|
34
43
|
},
|
|
35
44
|
/**
|
|
36
45
|
* Una acción sobre una selección. El resultado es por fila, nunca un aviso
|
|
@@ -56,17 +65,35 @@
|
|
|
56
65
|
delete: 'Eliminar',
|
|
57
66
|
deleting: 'Eliminando…',
|
|
58
67
|
clone: 'Duplicar',
|
|
59
|
-
moreActions: 'Más acciones',
|
|
60
68
|
back: 'Volver',
|
|
61
69
|
loading: 'Cargando…',
|
|
62
|
-
pending: 'Esperando al servidor…'
|
|
70
|
+
pending: 'Esperando al servidor…',
|
|
71
|
+
/** El resumen de un guardado rechazado: toma el foco, enlaza cada campo. */ errorSummary_one: 'Revise {{count}} campo antes de guardar',
|
|
72
|
+
errorSummary_other: 'Revise {{count}} campos antes de guardar',
|
|
73
|
+
requiredHint: 'Los campos marcados con * son obligatorios.',
|
|
74
|
+
requiredMarker: '*'
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* Lo que dice una región cuando no muestra su contenido (ADR 0028): qué
|
|
78
|
+
* pasó, qué hacer, sin culpar a nadie y sin códigos.
|
|
79
|
+
*/ state: {
|
|
80
|
+
retry: 'Reintentar',
|
|
81
|
+
forbidden: 'No tiene permiso para ver {{plural}}.',
|
|
82
|
+
stale: 'Lo que se muestra puede estar desactualizado.',
|
|
83
|
+
noResults: 'No hay {{plural}} que coincidan con estos filtros.',
|
|
84
|
+
clearFilters: 'Limpiar filtros',
|
|
85
|
+
empty: 'Aquí aparecerán sus {{plural}}.',
|
|
86
|
+
saved: 'Se guardó {{object}}.'
|
|
63
87
|
},
|
|
64
88
|
pagination: {
|
|
65
89
|
label: 'Páginas',
|
|
66
90
|
summary: 'Página {{current}} de {{total}} · {{items}} registros',
|
|
67
91
|
rows: 'Filas',
|
|
92
|
+
first: 'Primera',
|
|
68
93
|
previous: 'Anterior',
|
|
69
|
-
next: 'Siguiente'
|
|
94
|
+
next: 'Siguiente',
|
|
95
|
+
last: 'Última',
|
|
96
|
+
/** Lo que se anuncia al cambiar de página. */ page: 'Página {{current}} de {{total}}'
|
|
70
97
|
},
|
|
71
98
|
columns: {
|
|
72
99
|
title: 'Columnas',
|
|
@@ -91,7 +118,11 @@
|
|
|
91
118
|
rangeEnd: 'Fin del rango del filtro',
|
|
92
119
|
remove: 'Quitar filtro',
|
|
93
120
|
applyAria: 'Aplicar filtros',
|
|
94
|
-
clearAria: 'Limpiar filtros'
|
|
121
|
+
clearAria: 'Limpiar filtros',
|
|
122
|
+
applied: 'Filtros aplicados',
|
|
123
|
+
removeChip: 'Quitar filtro: {{filter}}',
|
|
124
|
+
clearAll: 'Limpiar todo',
|
|
125
|
+
/** Una opción con cuántos registros la tienen: «Borrador (3)». */ withCount: '{{label}} ({{count}})'
|
|
95
126
|
},
|
|
96
127
|
sort: {
|
|
97
128
|
by: 'Ordenar por',
|
|
@@ -110,9 +141,21 @@
|
|
|
110
141
|
applyAria: 'Aplicar orden',
|
|
111
142
|
clearAria: 'Limpiar orden'
|
|
112
143
|
},
|
|
144
|
+
alert: {
|
|
145
|
+
dismiss: 'Descartar'
|
|
146
|
+
},
|
|
147
|
+
quantity: {
|
|
148
|
+
decrease: 'Disminuir {{label}}',
|
|
149
|
+
increase: 'Aumentar {{label}}'
|
|
150
|
+
},
|
|
113
151
|
tabs: {
|
|
114
152
|
close: 'Cerrar {{label}}',
|
|
115
|
-
new: 'Abrir una pestaña nueva'
|
|
153
|
+
new: 'Abrir una pestaña nueva',
|
|
154
|
+
list: 'Pestañas del espacio de trabajo',
|
|
155
|
+
withState: '{{label}}, {{state}}',
|
|
156
|
+
dirty: 'cambios sin guardar',
|
|
157
|
+
saving: 'guardando',
|
|
158
|
+
error: 'sin guardar'
|
|
116
159
|
},
|
|
117
160
|
/**
|
|
118
161
|
* El editor de una relación. `search` es la búsqueda rápida y `browse` abre el
|
|
@@ -201,6 +244,11 @@
|
|
|
201
244
|
isNull: 'está vacío',
|
|
202
245
|
isNotNull: 'no está vacío'
|
|
203
246
|
},
|
|
247
|
+
density: {
|
|
248
|
+
label: 'Densidad',
|
|
249
|
+
comfortable: 'Cómoda',
|
|
250
|
+
compact: 'Compacta'
|
|
251
|
+
},
|
|
204
252
|
theme: {
|
|
205
253
|
label: 'Tema'
|
|
206
254
|
},
|
|
@@ -222,7 +270,23 @@
|
|
|
222
270
|
confirm: {
|
|
223
271
|
confirm: 'Confirmar',
|
|
224
272
|
cancel: 'Cancelar',
|
|
225
|
-
|
|
273
|
+
question: '¿{{verb}} {{object}}?',
|
|
274
|
+
verbCount_one: '{{verb}}',
|
|
275
|
+
verbCount_other: '{{verb}} {{count}}',
|
|
276
|
+
selection_one: '{{count}} {{label}}',
|
|
277
|
+
selection_other: '{{count}} {{plural}}',
|
|
278
|
+
typeToConfirm: 'Escriba {{expected}} para confirmar',
|
|
279
|
+
done: 'Hecho: {{verb}}, {{object}}.',
|
|
280
|
+
undo: 'Deshacer',
|
|
281
|
+
deleteMessage: 'Se elimina de forma definitiva.',
|
|
282
|
+
deleted: 'Se eliminó {{object}}.'
|
|
283
|
+
},
|
|
284
|
+
/** Las actualizaciones en vivo: se dicen al caer y al volver, nada más. */ live: {
|
|
285
|
+
reconnecting: 'Actualizaciones en vivo en pausa — reconectando',
|
|
286
|
+
stopped: 'Actualizaciones en vivo detenidas',
|
|
287
|
+
reconnect: 'Reconectar',
|
|
288
|
+
resumed: 'Actualizaciones en vivo reanudadas',
|
|
289
|
+
waiting: 'Esperando la conexión…'
|
|
226
290
|
},
|
|
227
291
|
toast: {
|
|
228
292
|
region: 'Notificaciones',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/catalog/es.ts"],"sourcesContent":["/**\n * Copy owned by `@entifix/react-controls` — the agnostic entity UI. It lives\n * here rather than next to the components because the typed-key augmentation has\n * to see every namespace from one module, and `@entifix/tooling` (T0) may not\n * import a T3 package.\n */\nexport const controls = {\n table: {\n open: 'Abrir',\n select: 'Seleccionar',\n actions: 'Acciones',\n new: 'Nuevo',\n filters: 'Filtros',\n sorting: 'Orden',\n loading: 'Cargando…',\n empty: 'Sin registros',\n error: 'No se pudieron cargar los registros',\n /**\n * La columna de selección. `selectRow` nombra la fila porque una casilla\n * sin etiqueta visible sólo se anuncia por su `aria-label`, y repetir el\n * encabezado en cada fila no diría cuál es.\n */\n selection: 'Selección',\n selectRow: 'Seleccionar {{record}}',\n expandRow: 'Expandir {{record}}',\n collapseRow: 'Contraer {{record}}',\n selectAllOnPage: 'Seleccionar todo en esta página',\n /**\n * La segunda selección — la que el servidor evalúa — lleva el número\n * siempre: es la diferencia entre actuar sobre 25 filas y sobre 3.200.\n */\n selectAllMatching_one: 'Seleccionar {{count}} coincidencia',\n selectAllMatching_other: 'Seleccionar las {{count}} coincidencias',\n selectedCount_one: '{{count}} seleccionado',\n selectedCount_other: '{{count}} seleccionados',\n clearSelection: 'Limpiar selección',\n },\n /**\n * Una acción sobre una selección. El resultado es por fila, nunca un aviso\n * único: 40 seleccionadas y 3 fallidas no es ni un éxito ni un error.\n */\n bulk: {\n running: 'Ejecutando…',\n succeeded_one: '{{count}} registro actualizado',\n succeeded_other: '{{count}} registros actualizados',\n failed_one: '{{count}} registro falló',\n failed_other: '{{count}} registros fallaron',\n retryFailed: 'Reintentar los fallidos',\n dismiss: 'Cerrar resultado',\n resultLabel: 'Resultado de la acción masiva',\n barLabel: 'Acciones sobre la selección',\n },\n form: {\n details: 'Detalles',\n new: 'Nuevo',\n view: 'Ver',\n edit: 'Editar',\n save: 'Guardar',\n saving: 'Guardando…',\n delete: 'Eliminar',\n deleting: 'Eliminando…',\n clone: 'Duplicar',\n moreActions: 'Más acciones',\n back: 'Volver',\n loading: 'Cargando…',\n pending: 'Esperando al servidor…',\n },\n pagination: {\n label: 'Páginas',\n summary: 'Página {{current}} de {{total}} · {{items}} registros',\n rows: 'Filas',\n previous: 'Anterior',\n next: 'Siguiente',\n },\n columns: {\n title: 'Columnas',\n subtitle: 'Visibilidad y orden',\n reset: 'Restablecer',\n moveUp: 'Subir {{column}}',\n moveDown: 'Bajar {{column}}',\n },\n filter: {\n match: 'Coincidir',\n all: 'todos',\n any: 'cualquiera',\n add: 'Añadir filtro',\n apply: 'Aplicar',\n clear: 'Limpiar',\n none: 'Esta entidad no tiene miembros filtrables.',\n listPlaceholder: 'valores, separados, por comas',\n matchAria: 'Coincidir todos o cualquiera de los filtros',\n member: 'Miembro del filtro',\n operator: 'Operador del filtro',\n value: 'Valor del filtro',\n rangeEnd: 'Fin del rango del filtro',\n remove: 'Quitar filtro',\n applyAria: 'Aplicar filtros',\n clearAria: 'Limpiar filtros',\n },\n sort: {\n by: 'Ordenar por',\n then: 'después por',\n ascending: 'ascendente',\n descending: 'descendente',\n add: 'Añadir orden',\n apply: 'Aplicar',\n clear: 'Limpiar',\n none: 'Esta entidad no tiene miembros ordenables.',\n member: 'Miembro de orden',\n direction: 'Dirección de orden',\n raisePriority: 'Subir prioridad de orden',\n lowerPriority: 'Bajar prioridad de orden',\n remove: 'Quitar orden',\n applyAria: 'Aplicar orden',\n clearAria: 'Limpiar orden',\n },\n tabs: {\n close: 'Cerrar {{label}}',\n new: 'Abrir una pestaña nueva',\n },\n /**\n * El editor de una relación. `search` es la búsqueda rápida y `browse` abre el\n * catálogo completo; ambos botones son iconos, así que sus etiquetas `aria` son\n * lo único que un lector de pantalla anuncia.\n */\n link: {\n search: 'Buscar {{field}}',\n suggestAria: 'Ver sugerencias de {{field}}',\n browseAria: 'Examinar {{field}}',\n browseTitle: 'Seleccionar {{field}}',\n clear: 'Quitar {{field}}',\n empty: '— sin asignar —',\n loading: 'Cargando…',\n noResults: 'Sin coincidencias',\n error: 'No se pudieron cargar las opciones',\n close: 'Cerrar',\n },\n /**\n * La rejilla de detalle: las filas que un registro **posee** — las líneas de\n * un pedido, los renglones de una factura. `errorSummary` es el único\n * `role=\"alert\"` del control: un aviso por celda anunciaría la rejilla entera\n * en cada pulsación, y un mensaje que sólo vive en la celda es inalcanzable\n * cuando la fila que falla está fuera de pantalla.\n */\n detail: {\n addRow: 'Añadir fila',\n removeRow: 'Quitar fila {{row}}',\n rowActions: 'Acciones de fila',\n empty: 'Todavía no hay filas.',\n errorSummary_one: '{{count}} celda con errores',\n errorSummary_other: '{{count}} celdas con errores',\n },\n value: {\n none: '— ninguno —',\n yes: 'Sí',\n no: 'No',\n /**\n * Una `composition` en una tabla: sus filas se editan en la pantalla del\n * maestro, no en la celda, así que la celda dice cuántas hay.\n */\n rowCount_one: '{{count}} fila',\n rowCount_other: '{{count}} filas',\n },\n /**\n * `required`…`option` son las reglas derivadas de la metadata. El resto es el\n * vocabulario en el que un Standard Schema de una entidad escribe sus\n * mensajes: el esquema lleva la *clave*, nunca una frase, para que la regla\n * siga siendo traducible.\n *\n * `field` es el único parámetro disponible — un issue de Standard Schema\n * expone un mensaje y una ruta, nada más — así que estos mensajes no indican\n * el límite. Una regla que deba enunciarlo escribe su propia clave en el\n * catálogo de su dominio (`entity:product-specification.validation.codeLength`).\n */\n validation: {\n required: '{{field}} es obligatorio',\n number: '{{field}} debe ser un número',\n date: '{{field}} debe ser una fecha',\n option: '{{field}} no es una opción válida',\n minLength: '{{field}} es demasiado corto',\n maxLength: '{{field}} es demasiado largo',\n min: '{{field}} es demasiado pequeño',\n max: '{{field}} es demasiado grande',\n pattern: '{{field}} tiene un formato inválido',\n minItems_one: '{{field}} necesita al menos {{count}} elemento',\n minItems_other: '{{field}} necesita al menos {{count}} elementos',\n maxItems_one: '{{field}} admite como máximo {{count}} elemento',\n maxItems_other: '{{field}} admite como máximo {{count}} elementos',\n notBefore: '{{field}} no puede ser anterior a {{other}}',\n locale: '{{field}} no tiene texto en {{locale}}',\n },\n /**\n * The filter vocabulary shown to a user. Deliberately distinct from\n * `RSQL_TOKENS` in `@entifix/core` — those are wire tokens (`==`, `=gt=`)\n * and must never be translated.\n */\n operator: {\n eq: 'es',\n ne: 'no es',\n gt: 'mayor que',\n gte: 'mayor o igual',\n lt: 'menor que',\n lte: 'menor o igual',\n in: 'es uno de',\n nin: 'no es ninguno de',\n between: 'entre',\n nbetween: 'fuera de',\n like: 'contiene',\n nlike: 'no contiene',\n isNull: 'está vacío',\n isNotNull: 'no está vacío',\n },\n theme: {\n label: 'Tema',\n },\n /**\n * Captions for the theme presets shipped by `@entifix/style`, plus the\n * per-app brand sets. They name design-system tokens, not app copy, so they\n * live beside the switcher that renders them and stay reachable from\n * Storybook, where no shell is mounted.\n */\n themes: {\n aurora: 'Aurora',\n sunset: 'Atardecer',\n midnight: 'Medianoche',\n ocean: 'Océano (en runtime)',\n marketplace: 'Marketplace',\n marketplaceDark: 'Marketplace oscuro',\n auth: 'Identidad',\n authDark: 'Identidad oscura',\n },\n confirm: {\n confirm: 'Confirmar',\n cancel: 'Cancelar',\n title: 'Confirmar',\n },\n toast: {\n region: 'Notificaciones',\n dismiss: 'Descartar',\n },\n breadcrumbs: {\n label: 'Ruta de navegación',\n },\n /**\n * El asistente. Las etiquetas de cada paso las traduce quien declara el\n * asistente, no el control: un paso es del dominio que lo definió, y su copy\n * vive en `shell:` junto al resto de sus nombres.\n */\n wizard: {\n steps: 'Pasos',\n previous: 'Atrás',\n /**\n * \"Continuar\" y no \"Siguiente\": una tabla dentro de un paso trae su propio\n * paginador, cuyo botón **es** \"Siguiente\". Dos controles con el mismo\n * nombre en la misma pantalla se anuncian igual y hacen cosas distintas.\n */\n next: 'Continuar',\n finish: 'Finalizar',\n /**\n * Un envío que **no** resuelve. El asistente entrega el trabajo y vuelve\n * antes de que la escritura termine, así que dice \"enviando\" y\n * nunca \"guardado\": lo segundo sería una afirmación que el control no puede\n * comprobar.\n */\n submitting: 'Enviando…',\n stepOf: 'Paso {{current}} de {{total}}',\n goToStep: 'Volver a {{label}}',\n /**\n * El estado de cada paso, anunciado además de mostrarse. El color por sí\n * solo no lo dice, y un lector de pantalla recorre la lista sin verlo.\n */\n status: {\n pending: 'pendiente',\n active: 'en curso',\n complete: 'completado',\n error: 'con errores',\n },\n /**\n * El recordatorio al retomar. La persistencia da el \"continuar\" gratis; lo\n * que no da es acordarse de lo ya decidido, que es la falla conocida de los\n * asistentes largos.\n */\n resume: {\n title: 'Retomando donde lo dejaste',\n dismiss: 'Entendido',\n },\n },\n};\n"],"names":["controls","table","open","select","actions","new","filters","sorting","loading","empty","error","selection","selectRow","expandRow","collapseRow","selectAllOnPage","selectAllMatching_one","selectAllMatching_other","selectedCount_one","selectedCount_other","clearSelection","bulk","running","succeeded_one","succeeded_other","failed_one","failed_other","retryFailed","dismiss","resultLabel","barLabel","form","details","view","edit","save","saving","delete","deleting","clone","moreActions","back","pending","pagination","label","summary","rows","previous","next","columns","title","subtitle","reset","moveUp","moveDown","filter","match","all","any","add","apply","clear","none","listPlaceholder","matchAria","member","operator","value","rangeEnd","remove","applyAria","clearAria","sort","by","then","ascending","descending","direction","raisePriority","lowerPriority","tabs","close","link","search","suggestAria","browseAria","browseTitle","noResults","detail","addRow","removeRow","rowActions","errorSummary_one","errorSummary_other","yes","no","rowCount_one","rowCount_other","validation","required","number","date","option","minLength","maxLength","min","max","pattern","minItems_one","minItems_other","maxItems_one","maxItems_other","notBefore","locale","eq","ne","gt","gte","lt","lte","in","nin","between","nbetween","like","nlike","isNull","isNotNull","theme","themes","aurora","sunset","midnight","ocean","marketplace","marketplaceDark","auth","authDark","confirm","cancel","toast","region","breadcrumbs","wizard","steps","finish","submitting","stepOf","goToStep","status","active","complete","resume"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/catalog/es.ts"],"sourcesContent":["/**\n * Copy owned by `@entifix/react-controls` — the agnostic entity UI. It lives\n * here rather than next to the components because the typed-key augmentation has\n * to see every namespace from one module, and `@entifix/tooling` (T0) may not\n * import a T3 package.\n */\nexport const controls = {\n actions: {\n more: 'Más acciones',\n forRecord: 'Acciones para {{record}}',\n },\n table: {\n select: 'Seleccionar',\n actions: 'Acciones',\n new: 'Nuevo',\n filters: 'Filtros',\n sorting: 'Orden',\n loading: 'Cargando…',\n /**\n * La columna de selección. `selectRow` nombra la fila porque una casilla\n * sin etiqueta visible sólo se anuncia por su `aria-label`, y repetir el\n * encabezado en cada fila no diría cuál es.\n */\n selection: 'Selección',\n selectRow: 'Seleccionar {{record}}',\n expandRow: 'Expandir {{record}}',\n collapseRow: 'Contraer {{record}}',\n selectAllOnPage: 'Seleccionar todo en esta página',\n /**\n * La segunda selección — la que el servidor evalúa — lleva el número\n * siempre: es la diferencia entre actuar sobre 25 filas y sobre 3.200.\n */\n selectAllMatching_one: 'Seleccionar {{count}} coincidencia',\n selectAllMatching_other: 'Seleccionar las {{count}} coincidencias',\n selectedCount_one: '{{count}} seleccionado',\n selectedCount_other: '{{count}} seleccionados',\n clearSelection: 'Limpiar selección',\n /**\n * Lo que dice la región de estado tras filtrar, ordenar o cambiar de\n * página — nunca en la primera carga, que el lector pidió al llegar.\n */\n results_one: '{{count}} resultado',\n results_other: '{{count}} resultados',\n noResultsFiltered: 'Sin resultados para estos filtros',\n /** El `caption` de la tabla: qué contiene, cuántos y en qué orden. */\n caption: '{{entity}} · {{results}}',\n captionSorted:\n '{{entity}} · {{results}} · ordenado por {{column}}, {{direction}}',\n },\n /**\n * Una acción sobre una selección. El resultado es por fila, nunca un aviso\n * único: 40 seleccionadas y 3 fallidas no es ni un éxito ni un error.\n */\n bulk: {\n running: 'Ejecutando…',\n succeeded_one: '{{count}} registro actualizado',\n succeeded_other: '{{count}} registros actualizados',\n failed_one: '{{count}} registro falló',\n failed_other: '{{count}} registros fallaron',\n retryFailed: 'Reintentar los fallidos',\n dismiss: 'Cerrar resultado',\n resultLabel: 'Resultado de la acción masiva',\n barLabel: 'Acciones sobre la selección',\n },\n form: {\n details: 'Detalles',\n new: 'Nuevo',\n view: 'Ver',\n edit: 'Editar',\n save: 'Guardar',\n saving: 'Guardando…',\n delete: 'Eliminar',\n deleting: 'Eliminando…',\n clone: 'Duplicar',\n back: 'Volver',\n loading: 'Cargando…',\n pending: 'Esperando al servidor…',\n /** El resumen de un guardado rechazado: toma el foco, enlaza cada campo. */\n errorSummary_one: 'Revise {{count}} campo antes de guardar',\n errorSummary_other: 'Revise {{count}} campos antes de guardar',\n requiredHint: 'Los campos marcados con * son obligatorios.',\n requiredMarker: '*',\n },\n /**\n * Lo que dice una región cuando no muestra su contenido (ADR 0028): qué\n * pasó, qué hacer, sin culpar a nadie y sin códigos.\n */\n state: {\n retry: 'Reintentar',\n forbidden: 'No tiene permiso para ver {{plural}}.',\n stale: 'Lo que se muestra puede estar desactualizado.',\n noResults: 'No hay {{plural}} que coincidan con estos filtros.',\n clearFilters: 'Limpiar filtros',\n empty: 'Aquí aparecerán sus {{plural}}.',\n saved: 'Se guardó {{object}}.',\n },\n pagination: {\n label: 'Páginas',\n summary: 'Página {{current}} de {{total}} · {{items}} registros',\n rows: 'Filas',\n first: 'Primera',\n previous: 'Anterior',\n next: 'Siguiente',\n last: 'Última',\n /** Lo que se anuncia al cambiar de página. */\n page: 'Página {{current}} de {{total}}',\n },\n columns: {\n title: 'Columnas',\n subtitle: 'Visibilidad y orden',\n reset: 'Restablecer',\n moveUp: 'Subir {{column}}',\n moveDown: 'Bajar {{column}}',\n },\n filter: {\n match: 'Coincidir',\n all: 'todos',\n any: 'cualquiera',\n add: 'Añadir filtro',\n apply: 'Aplicar',\n clear: 'Limpiar',\n none: 'Esta entidad no tiene miembros filtrables.',\n listPlaceholder: 'valores, separados, por comas',\n matchAria: 'Coincidir todos o cualquiera de los filtros',\n member: 'Miembro del filtro',\n operator: 'Operador del filtro',\n value: 'Valor del filtro',\n rangeEnd: 'Fin del rango del filtro',\n remove: 'Quitar filtro',\n applyAria: 'Aplicar filtros',\n clearAria: 'Limpiar filtros',\n applied: 'Filtros aplicados',\n removeChip: 'Quitar filtro: {{filter}}',\n clearAll: 'Limpiar todo',\n /** Una opción con cuántos registros la tienen: «Borrador (3)». */\n withCount: '{{label}} ({{count}})',\n },\n sort: {\n by: 'Ordenar por',\n then: 'después por',\n ascending: 'ascendente',\n descending: 'descendente',\n add: 'Añadir orden',\n apply: 'Aplicar',\n clear: 'Limpiar',\n none: 'Esta entidad no tiene miembros ordenables.',\n member: 'Miembro de orden',\n direction: 'Dirección de orden',\n raisePriority: 'Subir prioridad de orden',\n lowerPriority: 'Bajar prioridad de orden',\n remove: 'Quitar orden',\n applyAria: 'Aplicar orden',\n clearAria: 'Limpiar orden',\n },\n alert: {\n dismiss: 'Descartar',\n },\n quantity: {\n decrease: 'Disminuir {{label}}',\n increase: 'Aumentar {{label}}',\n },\n tabs: {\n close: 'Cerrar {{label}}',\n new: 'Abrir una pestaña nueva',\n list: 'Pestañas del espacio de trabajo',\n withState: '{{label}}, {{state}}',\n dirty: 'cambios sin guardar',\n saving: 'guardando',\n error: 'sin guardar',\n },\n /**\n * El editor de una relación. `search` es la búsqueda rápida y `browse` abre el\n * catálogo completo; ambos botones son iconos, así que sus etiquetas `aria` son\n * lo único que un lector de pantalla anuncia.\n */\n link: {\n search: 'Buscar {{field}}',\n suggestAria: 'Ver sugerencias de {{field}}',\n browseAria: 'Examinar {{field}}',\n browseTitle: 'Seleccionar {{field}}',\n clear: 'Quitar {{field}}',\n empty: '— sin asignar —',\n loading: 'Cargando…',\n noResults: 'Sin coincidencias',\n error: 'No se pudieron cargar las opciones',\n close: 'Cerrar',\n },\n /**\n * La rejilla de detalle: las filas que un registro **posee** — las líneas de\n * un pedido, los renglones de una factura. `errorSummary` es el único\n * `role=\"alert\"` del control: un aviso por celda anunciaría la rejilla entera\n * en cada pulsación, y un mensaje que sólo vive en la celda es inalcanzable\n * cuando la fila que falla está fuera de pantalla.\n */\n detail: {\n addRow: 'Añadir fila',\n removeRow: 'Quitar fila {{row}}',\n rowActions: 'Acciones de fila',\n empty: 'Todavía no hay filas.',\n errorSummary_one: '{{count}} celda con errores',\n errorSummary_other: '{{count}} celdas con errores',\n },\n value: {\n none: '— ninguno —',\n yes: 'Sí',\n no: 'No',\n /**\n * Una `composition` en una tabla: sus filas se editan en la pantalla del\n * maestro, no en la celda, así que la celda dice cuántas hay.\n */\n rowCount_one: '{{count}} fila',\n rowCount_other: '{{count}} filas',\n },\n /**\n * `required`…`option` son las reglas derivadas de la metadata. El resto es el\n * vocabulario en el que un Standard Schema de una entidad escribe sus\n * mensajes: el esquema lleva la *clave*, nunca una frase, para que la regla\n * siga siendo traducible.\n *\n * `field` es el único parámetro disponible — un issue de Standard Schema\n * expone un mensaje y una ruta, nada más — así que estos mensajes no indican\n * el límite. Una regla que deba enunciarlo escribe su propia clave en el\n * catálogo de su dominio (`entity:product-specification.validation.codeLength`).\n */\n validation: {\n required: '{{field}} es obligatorio',\n number: '{{field}} debe ser un número',\n date: '{{field}} debe ser una fecha',\n option: '{{field}} no es una opción válida',\n minLength: '{{field}} es demasiado corto',\n maxLength: '{{field}} es demasiado largo',\n min: '{{field}} es demasiado pequeño',\n max: '{{field}} es demasiado grande',\n pattern: '{{field}} tiene un formato inválido',\n minItems_one: '{{field}} necesita al menos {{count}} elemento',\n minItems_other: '{{field}} necesita al menos {{count}} elementos',\n maxItems_one: '{{field}} admite como máximo {{count}} elemento',\n maxItems_other: '{{field}} admite como máximo {{count}} elementos',\n notBefore: '{{field}} no puede ser anterior a {{other}}',\n locale: '{{field}} no tiene texto en {{locale}}',\n },\n /**\n * The filter vocabulary shown to a user. Deliberately distinct from\n * `RSQL_TOKENS` in `@entifix/core` — those are wire tokens (`==`, `=gt=`)\n * and must never be translated.\n */\n operator: {\n eq: 'es',\n ne: 'no es',\n gt: 'mayor que',\n gte: 'mayor o igual',\n lt: 'menor que',\n lte: 'menor o igual',\n in: 'es uno de',\n nin: 'no es ninguno de',\n between: 'entre',\n nbetween: 'fuera de',\n like: 'contiene',\n nlike: 'no contiene',\n isNull: 'está vacío',\n isNotNull: 'no está vacío',\n },\n density: {\n label: 'Densidad',\n comfortable: 'Cómoda',\n compact: 'Compacta',\n },\n theme: {\n label: 'Tema',\n },\n /**\n * Captions for the theme presets shipped by `@entifix/style`, plus the\n * per-app brand sets. They name design-system tokens, not app copy, so they\n * live beside the switcher that renders them and stay reachable from\n * Storybook, where no shell is mounted.\n */\n themes: {\n aurora: 'Aurora',\n sunset: 'Atardecer',\n midnight: 'Medianoche',\n ocean: 'Océano (en runtime)',\n marketplace: 'Marketplace',\n marketplaceDark: 'Marketplace oscuro',\n auth: 'Identidad',\n authDark: 'Identidad oscura',\n },\n confirm: {\n confirm: 'Confirmar',\n cancel: 'Cancelar',\n question: '¿{{verb}} {{object}}?',\n verbCount_one: '{{verb}}',\n verbCount_other: '{{verb}} {{count}}',\n selection_one: '{{count}} {{label}}',\n selection_other: '{{count}} {{plural}}',\n typeToConfirm: 'Escriba {{expected}} para confirmar',\n done: 'Hecho: {{verb}}, {{object}}.',\n undo: 'Deshacer',\n deleteMessage: 'Se elimina de forma definitiva.',\n deleted: 'Se eliminó {{object}}.',\n },\n /** Las actualizaciones en vivo: se dicen al caer y al volver, nada más. */\n live: {\n reconnecting: 'Actualizaciones en vivo en pausa — reconectando',\n stopped: 'Actualizaciones en vivo detenidas',\n reconnect: 'Reconectar',\n resumed: 'Actualizaciones en vivo reanudadas',\n waiting: 'Esperando la conexión…',\n },\n toast: {\n region: 'Notificaciones',\n dismiss: 'Descartar',\n },\n breadcrumbs: {\n label: 'Ruta de navegación',\n },\n /**\n * El asistente. Las etiquetas de cada paso las traduce quien declara el\n * asistente, no el control: un paso es del dominio que lo definió, y su copy\n * vive en `shell:` junto al resto de sus nombres.\n */\n wizard: {\n steps: 'Pasos',\n previous: 'Atrás',\n /**\n * \"Continuar\" y no \"Siguiente\": una tabla dentro de un paso trae su propio\n * paginador, cuyo botón **es** \"Siguiente\". Dos controles con el mismo\n * nombre en la misma pantalla se anuncian igual y hacen cosas distintas.\n */\n next: 'Continuar',\n finish: 'Finalizar',\n /**\n * Un envío que **no** resuelve. El asistente entrega el trabajo y vuelve\n * antes de que la escritura termine, así que dice \"enviando\" y\n * nunca \"guardado\": lo segundo sería una afirmación que el control no puede\n * comprobar.\n */\n submitting: 'Enviando…',\n stepOf: 'Paso {{current}} de {{total}}',\n goToStep: 'Volver a {{label}}',\n /**\n * El estado de cada paso, anunciado además de mostrarse. El color por sí\n * solo no lo dice, y un lector de pantalla recorre la lista sin verlo.\n */\n status: {\n pending: 'pendiente',\n active: 'en curso',\n complete: 'completado',\n error: 'con errores',\n },\n /**\n * El recordatorio al retomar. La persistencia da el \"continuar\" gratis; lo\n * que no da es acordarse de lo ya decidido, que es la falla conocida de los\n * asistentes largos.\n */\n resume: {\n title: 'Retomando donde lo dejaste',\n dismiss: 'Entendido',\n },\n },\n};\n"],"names":["controls","actions","more","forRecord","table","select","new","filters","sorting","loading","selection","selectRow","expandRow","collapseRow","selectAllOnPage","selectAllMatching_one","selectAllMatching_other","selectedCount_one","selectedCount_other","clearSelection","results_one","results_other","noResultsFiltered","caption","captionSorted","bulk","running","succeeded_one","succeeded_other","failed_one","failed_other","retryFailed","dismiss","resultLabel","barLabel","form","details","view","edit","save","saving","delete","deleting","clone","back","pending","errorSummary_one","errorSummary_other","requiredHint","requiredMarker","state","retry","forbidden","stale","noResults","clearFilters","empty","saved","pagination","label","summary","rows","first","previous","next","last","page","columns","title","subtitle","reset","moveUp","moveDown","filter","match","all","any","add","apply","clear","none","listPlaceholder","matchAria","member","operator","value","rangeEnd","remove","applyAria","clearAria","applied","removeChip","clearAll","withCount","sort","by","then","ascending","descending","direction","raisePriority","lowerPriority","alert","quantity","decrease","increase","tabs","close","list","withState","dirty","error","link","search","suggestAria","browseAria","browseTitle","detail","addRow","removeRow","rowActions","yes","no","rowCount_one","rowCount_other","validation","required","number","date","option","minLength","maxLength","min","max","pattern","minItems_one","minItems_other","maxItems_one","maxItems_other","notBefore","locale","eq","ne","gt","gte","lt","lte","in","nin","between","nbetween","like","nlike","isNull","isNotNull","density","comfortable","compact","theme","themes","aurora","sunset","midnight","ocean","marketplace","marketplaceDark","auth","authDark","confirm","cancel","question","verbCount_one","verbCount_other","selection_one","selection_other","typeToConfirm","done","undo","deleteMessage","deleted","live","reconnecting","stopped","reconnect","resumed","waiting","toast","region","breadcrumbs","wizard","steps","finish","submitting","stepOf","goToStep","status","active","complete","resume"],"mappings":"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"}
|