@eifi1/ui-kit 0.51.3 → 0.51.5
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 +6 -6
- package/dist/account/account-settings-labels.js.map +1 -1
- package/dist/account/account-settings.js +11 -9
- package/dist/account/account-settings.js.map +1 -1
- package/dist/account/delete-account-setting.js +56 -65
- package/dist/account/delete-account-setting.js.map +1 -1
- package/dist/account/email-change-setting-labels.js.map +1 -1
- package/dist/account/email-change-setting.js.map +1 -1
- package/dist/account/passkeys-setting.js.map +1 -1
- package/dist/account/sessions-setting.js.map +1 -1
- package/dist/admin/admin-action-confirm.js +1 -3
- package/dist/admin/admin-action-confirm.js.map +1 -1
- package/dist/admin/admin-action-log.js.map +1 -1
- package/dist/admin/admin-area-labels.js +4 -1
- package/dist/admin/admin-area-labels.js.map +1 -1
- package/dist/admin/admin-overview.js +19 -11
- package/dist/admin/admin-overview.js.map +1 -1
- package/dist/admin/admin-sections.js.map +1 -1
- package/dist/admin/admin-tool-links.d.ts +1 -1
- package/dist/admin/admin-tool-links.js +7 -1
- package/dist/admin/admin-tool-links.js.map +1 -1
- package/dist/admin/invitations-panel.js +2 -13
- package/dist/admin/invitations-panel.js.map +1 -1
- package/dist/admin/mail-test-card.js.map +1 -1
- package/dist/admin/reviewer-scope-editor.js +4 -11
- package/dist/admin/reviewer-scope-editor.js.map +1 -1
- package/dist/admin/role-select.js.map +1 -1
- package/dist/admin/user-roster.js +1 -9
- package/dist/admin/user-roster.js.map +1 -1
- package/dist/auth/accept-invitation.js.map +1 -1
- package/dist/auth/auth-errors.js.map +1 -1
- package/dist/auth/forgot-password-form.js +23 -31
- package/dist/auth/forgot-password-form.js.map +1 -1
- package/dist/auth/register-form.js.map +1 -1
- package/dist/auth/reset-password-form.js.map +1 -1
- package/dist/auth/sign-in-form.js +13 -5
- package/dist/auth/sign-in-form.js.map +1 -1
- package/dist/auth/verify-email.js +1 -8
- package/dist/auth/verify-email.js.map +1 -1
- package/dist/billing/billing-banner.js.map +1 -1
- package/dist/billing/billing-labels.js.map +1 -1
- package/dist/billing/checkout-processing.js.map +1 -1
- package/dist/billing/plan-card.js +91 -85
- package/dist/billing/plan-card.js.map +1 -1
- package/dist/billing/plan-limit-toast.js.map +1 -1
- package/dist/billing/plan-limit.js.map +1 -1
- package/dist/billing/plan-price.js.map +1 -1
- package/dist/billing/plan-switch.js.map +1 -1
- package/dist/billing/subscription-actions.js.map +1 -1
- package/dist/bin/eifi1-pay-page.mjs +6 -1
- package/dist/components/account-chips.js.map +1 -1
- package/dist/components/alert-banner.js +1 -5
- package/dist/components/alert-banner.js.map +1 -1
- package/dist/components/amount-input.js +29 -12
- package/dist/components/amount-input.js.map +1 -1
- package/dist/components/authed-image.js.map +1 -1
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/bulk-action-bar.js +1 -4
- package/dist/components/bulk-action-bar.js.map +1 -1
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button-look.js.map +1 -1
- package/dist/components/button.js +1 -7
- package/dist/components/button.js.map +1 -1
- package/dist/components/calculator.js +5 -5
- package/dist/components/calculator.js.map +1 -1
- package/dist/components/calendar-heatmap.js +4 -10
- package/dist/components/calendar-heatmap.js.map +1 -1
- package/dist/components/card.js +1 -8
- package/dist/components/card.js.map +1 -1
- package/dist/components/chart-zoom-core.js +3 -17
- package/dist/components/chart-zoom-core.js.map +1 -1
- package/dist/components/chart.d.ts +1 -1
- package/dist/components/chart.js +4 -22
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox-group.js +1 -4
- package/dist/components/checkbox-group.js.map +1 -1
- package/dist/components/chip-input.js +4 -1
- package/dist/components/chip-input.js.map +1 -1
- package/dist/components/chip.js +10 -5
- package/dist/components/chip.js.map +1 -1
- package/dist/components/choice-card.js +58 -74
- package/dist/components/choice-card.js.map +1 -1
- package/dist/components/column-mapper-labels.js.map +1 -1
- package/dist/components/column-mapper.js +167 -227
- package/dist/components/column-mapper.js.map +1 -1
- package/dist/components/combobox-core.js +5 -9
- package/dist/components/combobox-core.js.map +1 -1
- package/dist/components/combobox.js +1 -4
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/country-select.d.ts +5 -4
- package/dist/components/country-select.js +3 -19
- package/dist/components/country-select.js.map +1 -1
- package/dist/components/currency-option-list.js +13 -11
- package/dist/components/currency-option-list.js.map +1 -1
- package/dist/components/currency-select.js +1 -6
- package/dist/components/currency-select.js.map +1 -1
- package/dist/components/danger-confirm.js.map +1 -1
- package/dist/components/data-table-cells.js.map +1 -1
- package/dist/components/data-table-column-settings.js.map +1 -1
- package/dist/components/data-table-filter-popover.js +2 -18
- package/dist/components/data-table-filter-popover.js.map +1 -1
- package/dist/components/data-table-filters.js.map +1 -1
- package/dist/components/data-table-fit.js +7 -5
- package/dist/components/data-table-fit.js.map +1 -1
- package/dist/components/data-table-groups.js +3 -1
- package/dist/components/data-table-groups.js.map +1 -1
- package/dist/components/data-table-head.js +49 -57
- package/dist/components/data-table-head.js.map +1 -1
- package/dist/components/data-table-mobile.js +31 -44
- package/dist/components/data-table-mobile.js.map +1 -1
- package/dist/components/data-table-pagination.js.map +1 -1
- package/dist/components/data-table-row-actions.js +19 -16
- package/dist/components/data-table-row-actions.js.map +1 -1
- package/dist/components/data-table-row.js.map +1 -1
- package/dist/components/data-table-shared.js.map +1 -1
- package/dist/components/data-table-sort.js.map +1 -1
- package/dist/components/data-table-virtual.js +4 -1
- package/dist/components/data-table-virtual.js.map +1 -1
- package/dist/components/data-table.d.ts +8 -0
- package/dist/components/data-table.js +30 -39
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +1 -6
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/date-range-picker.js.map +1 -1
- package/dist/components/description-list.js +10 -10
- package/dist/components/description-list.js.map +1 -1
- package/dist/components/dialog-frame.js +9 -2
- package/dist/components/dialog-frame.js.map +1 -1
- package/dist/components/disclosure.js +17 -27
- package/dist/components/disclosure.js.map +1 -1
- package/dist/components/dropdown.js +25 -35
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/empty-state.js.map +1 -1
- package/dist/components/entity-combobox.js.map +1 -1
- package/dist/components/error-boundary.js.map +1 -1
- package/dist/components/field-base.js +5 -5
- package/dist/components/field-base.js.map +1 -1
- package/dist/components/field-parts.d.ts +1 -1
- package/dist/components/field-parts.js +10 -14
- package/dist/components/field-parts.js.map +1 -1
- package/dist/components/field-sync.js +8 -10
- package/dist/components/field-sync.js.map +1 -1
- package/dist/components/file-button.js.map +1 -1
- package/dist/components/file-dropzone.js.map +1 -1
- package/dist/components/floating-panel.js +4 -1
- package/dist/components/floating-panel.js.map +1 -1
- package/dist/components/focus-ring.js.map +1 -1
- package/dist/components/form-actions.js.map +1 -1
- package/dist/components/grouped-picker.js +11 -12
- package/dist/components/grouped-picker.js.map +1 -1
- package/dist/components/hover-menu.js +1 -4
- package/dist/components/hover-menu.js.map +1 -1
- package/dist/components/iban-input-labels.js.map +1 -1
- package/dist/components/icon-button.js +4 -1
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/icon-picker.js +6 -10
- package/dist/components/icon-picker.js.map +1 -1
- package/dist/components/image-grid.js +41 -50
- package/dist/components/image-grid.js.map +1 -1
- package/dist/components/inline-edit-field.js.map +1 -1
- package/dist/components/inline-entity-combobox.js +6 -12
- package/dist/components/inline-entity-combobox.js.map +1 -1
- package/dist/components/input.js +14 -2
- package/dist/components/input.js.map +1 -1
- package/dist/components/jump-calendar.js +1 -7
- package/dist/components/jump-calendar.js.map +1 -1
- package/dist/components/legal-labels.js +8 -2
- package/dist/components/legal-labels.js.map +1 -1
- package/dist/components/legal-page.d.ts +18 -1
- package/dist/components/legal-page.js +27 -2
- package/dist/components/legal-page.js.map +1 -1
- package/dist/components/legal.d.ts +40 -5
- package/dist/components/legal.js +41 -5
- package/dist/components/legal.js.map +1 -1
- package/dist/components/lightbox.js.map +1 -1
- package/dist/components/line-items.js +26 -36
- package/dist/components/line-items.js.map +1 -1
- package/dist/components/list-labels.js +3 -1
- package/dist/components/list-labels.js.map +1 -1
- package/dist/components/list.d.ts +18 -1
- package/dist/components/list.js +54 -13
- package/dist/components/list.js.map +1 -1
- package/dist/components/measured-grid.js +29 -53
- package/dist/components/measured-grid.js.map +1 -1
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/mini-calendar.js +13 -31
- package/dist/components/mini-calendar.js.map +1 -1
- package/dist/components/money-field.js.map +1 -1
- package/dist/components/month-picker.js +10 -21
- package/dist/components/month-picker.js.map +1 -1
- package/dist/components/multi-entity-combobox.js +3 -16
- package/dist/components/multi-entity-combobox.js.map +1 -1
- package/dist/components/multi-select.js.map +1 -1
- package/dist/components/nav-pills.js +10 -1
- package/dist/components/nav-pills.js.map +1 -1
- package/dist/components/number-field.js.map +1 -1
- package/dist/components/number-input.js +1 -7
- package/dist/components/number-input.js.map +1 -1
- package/dist/components/numpad-sheet.js +1 -4
- package/dist/components/numpad-sheet.js.map +1 -1
- package/dist/components/one-time-code-input.js +1 -7
- package/dist/components/one-time-code-input.js.map +1 -1
- package/dist/components/page-contents.js +13 -22
- package/dist/components/page-contents.js.map +1 -1
- package/dist/components/page-header.js +1 -11
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/password-strength-labels.js.map +1 -1
- package/dist/components/password-strength.js +2 -8
- package/dist/components/password-strength.js.map +1 -1
- package/dist/components/phone-input.js +42 -57
- package/dist/components/phone-input.js.map +1 -1
- package/dist/components/picker-sheet.js.map +1 -1
- package/dist/components/pie-chart.js +1 -8
- package/dist/components/pie-chart.js.map +1 -1
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress-bar.js +16 -9
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/qr-code.js +1 -8
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/row-actions.js +5 -1
- package/dist/components/row-actions.js.map +1 -1
- package/dist/components/search-field.js.map +1 -1
- package/dist/components/select.js +28 -38
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.js +1 -5
- package/dist/components/separator.js.map +1 -1
- package/dist/components/series-chart-axes.js +4 -1
- package/dist/components/series-chart-axes.js.map +1 -1
- package/dist/components/series-chart-budget.js.map +1 -1
- package/dist/components/series-chart-ticks.js.map +1 -1
- package/dist/components/series-chart.js +29 -45
- package/dist/components/series-chart.js.map +1 -1
- package/dist/components/settings-fields.js +21 -17
- package/dist/components/settings-fields.js.map +1 -1
- package/dist/components/share-card.js +4 -9
- package/dist/components/share-card.js.map +1 -1
- package/dist/components/sign-chip.js.map +1 -1
- package/dist/components/signature-pad.js +4 -13
- package/dist/components/signature-pad.js.map +1 -1
- package/dist/components/signed-amount.js +12 -5
- package/dist/components/signed-amount.js.map +1 -1
- package/dist/components/skeleton.js +2 -17
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.js +13 -36
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sparkline.js.map +1 -1
- package/dist/components/stat-tile.js +14 -10
- package/dist/components/stat-tile.js.map +1 -1
- package/dist/components/swatch-picker.js +14 -4
- package/dist/components/swatch-picker.js.map +1 -1
- package/dist/components/swipeable-row.d.ts +1 -1
- package/dist/components/swipeable-row.js +1 -8
- package/dist/components/swipeable-row.js.map +1 -1
- package/dist/components/table-skeleton.js +4 -1
- package/dist/components/table-skeleton.js.map +1 -1
- package/dist/components/table.js +12 -9
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js +5 -24
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text-link.js.map +1 -1
- package/dist/components/text.js.map +1 -1
- package/dist/components/tile-radio.js +1 -7
- package/dist/components/tile-radio.js.map +1 -1
- package/dist/components/time-input.js.map +1 -1
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js +6 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle-legend.js +2 -11
- package/dist/components/toggle-legend.js.map +1 -1
- package/dist/components/tooltip.js +2 -22
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/translation-review-editor.js +1 -4
- package/dist/components/translation-review-editor.js.map +1 -1
- package/dist/components/translation-review-parts.d.ts +1 -1
- package/dist/components/translation-review-parts.js +7 -1
- package/dist/components/translation-review-parts.js.map +1 -1
- package/dist/components/translation-review.js +18 -7
- package/dist/components/translation-review.js.map +1 -1
- package/dist/components/tree-view.js +14 -10
- package/dist/components/tree-view.js.map +1 -1
- package/dist/components/treemap.js +1 -13
- package/dist/components/treemap.js.map +1 -1
- package/dist/components/trigger-aria.js.map +1 -1
- package/dist/components/use-table-state.js +14 -11
- package/dist/components/use-table-state.js.map +1 -1
- package/dist/components/user-avatar.js +3 -26
- package/dist/components/user-avatar.js.map +1 -1
- package/dist/demo/demo-start.js +8 -4
- package/dist/demo/demo-start.js.map +1 -1
- package/dist/eslint/index.js +1 -1
- package/dist/feedback/feedback-attachment-labels.js.map +1 -1
- package/dist/feedback/feedback-attachment.js +1 -8
- package/dist/feedback/feedback-attachment.js.map +1 -1
- package/dist/feedback/feedback-capture.d.ts +1 -1
- package/dist/feedback/feedback-capture.js +3 -1
- package/dist/feedback/feedback-capture.js.map +1 -1
- package/dist/feedback/feedback-comment-thread.js +27 -13
- package/dist/feedback/feedback-comment-thread.js.map +1 -1
- package/dist/feedback/feedback-context.js +1 -4
- package/dist/feedback/feedback-context.js.map +1 -1
- package/dist/feedback/feedback-dialog.js.map +1 -1
- package/dist/feedback/feedback-inbox.js.map +1 -1
- package/dist/feedback/feedback-public-list.js +7 -1
- package/dist/feedback/feedback-public-list.js.map +1 -1
- package/dist/feedback/feedback-record.js +1 -5
- package/dist/feedback/feedback-record.js.map +1 -1
- package/dist/feedback/feedback-replies.js +25 -10
- package/dist/feedback/feedback-replies.js.map +1 -1
- package/dist/feedback/feedback-row-detail.js.map +1 -1
- package/dist/feedback/feedback-status-undo.js.map +1 -1
- package/dist/feedback/feedback-submit-dialog.js.map +1 -1
- package/dist/feedback/feedback-table.d.ts +3 -1
- package/dist/feedback/feedback-table.js +22 -5
- package/dist/feedback/feedback-table.js.map +1 -1
- package/dist/feedback/feedback-thread.js +2 -13
- package/dist/feedback/feedback-thread.js.map +1 -1
- package/dist/feedback/feedback-vocabulary.js.map +1 -1
- package/dist/feedback/feedback-vote-button.js.map +1 -1
- package/dist/hooks/use-anchored-rect.js.map +1 -1
- package/dist/hooks/use-document-title.js.map +1 -1
- package/dist/hooks/use-file-drop.js.map +1 -1
- package/dist/hooks/use-file-picker-labels.js.map +1 -1
- package/dist/hooks/use-file-picker.js.map +1 -1
- package/dist/hooks/use-focus-trap.js.map +1 -1
- package/dist/hooks/use-overlay-history.js +10 -5
- package/dist/hooks/use-overlay-history.js.map +1 -1
- package/dist/hooks/use-row-swipe.d.ts +1 -1
- package/dist/hooks/use-row-swipe.js +1 -6
- package/dist/hooks/use-row-swipe.js.map +1 -1
- package/dist/i18n/defaults.js +1 -4
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.js +15 -4
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.js +2 -8
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/languages.js.map +1 -1
- package/dist/i18n/locales/en.js +19 -4
- package/dist/i18n/locales/en.js.map +2 -2
- package/dist/i18n/locales/es.js +15 -4
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.js +15 -4
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.js +15 -4
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.js +15 -4
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.js +11 -3
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/plurals.js.map +1 -1
- package/dist/i18n/review.js +15 -7
- package/dist/i18n/review.js.map +1 -1
- package/dist/i18n/shared-labels.js.map +1 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.js +40 -23
- package/dist/index.js.map +1 -1
- package/dist/landing/access.js +1 -4
- package/dist/landing/access.js.map +1 -1
- package/dist/landing/landing-sections.js +35 -38
- package/dist/landing/landing-sections.js.map +1 -1
- package/dist/landing/page-seo.js.map +1 -1
- package/dist/lib/calc.js.map +1 -1
- package/dist/lib/clipboard-minus.js.map +1 -1
- package/dist/lib/dates.js.map +1 -1
- package/dist/lib/decimal-marks.js.map +1 -1
- package/dist/lib/device-settings.js +2 -1
- package/dist/lib/device-settings.js.map +1 -1
- package/dist/lib/direction.js.map +1 -1
- package/dist/lib/iban.js.map +1 -1
- package/dist/lib/logger.js +1 -5
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/person-name.js.map +1 -1
- package/dist/lib/phone.js.map +1 -1
- package/dist/lib/qr-encode.js +344 -8
- package/dist/lib/qr-encode.js.map +1 -1
- package/dist/lib/session-refresh.js.map +1 -1
- package/dist/lib/table-text.js +15 -3
- package/dist/lib/table-text.js.map +1 -1
- package/dist/lib/text-match.d.ts +20 -0
- package/dist/lib/text-match.js +11 -1
- package/dist/lib/text-match.js.map +1 -1
- package/dist/lib/translation-review.js.map +1 -1
- package/dist/notifications/notification-inbox.js +63 -44
- package/dist/notifications/notification-inbox.js.map +1 -1
- package/dist/notifications/notification-parts.js.map +1 -1
- package/dist/notifications/notification-types-setting.js.map +1 -1
- package/dist/notifications/notifications-labels.js.map +1 -1
- package/dist/notifications/push-device-setting.js +6 -1
- package/dist/notifications/push-device-setting.js.map +1 -1
- package/dist/notifications/push-devices-setting.js.map +1 -1
- package/dist/notifications/push-worker.js.map +1 -1
- package/dist/notifications/quiet-hours-setting.js.map +1 -1
- package/dist/notifications/use-push-device.js +4 -1
- package/dist/notifications/use-push-device.js.map +1 -1
- package/dist/offline/pwa-update-prompt.d.ts +1 -1
- package/dist/offline/pwa-update-prompt.js +7 -1
- package/dist/offline/pwa-update-prompt.js.map +1 -1
- package/dist/offline/query-persistence.js.map +1 -1
- package/dist/offline.d.ts +1 -1
- package/dist/offline.js +6 -1
- package/dist/offline.js.map +1 -1
- package/dist/pay/pay.css +8 -1
- package/dist/rhf/fields.d.ts +1 -2
- package/dist/rhf/fields.js +1 -10
- package/dist/rhf/fields.js.map +1 -1
- package/dist/rhf/form-core.js +1 -4
- package/dist/rhf/form-core.js.map +1 -1
- package/dist/rhf/line-items.js.map +1 -1
- package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
- package/dist/search/command-palette.js +71 -62
- package/dist/search/command-palette.js.map +1 -1
- package/dist/search/global-search.js +34 -5
- package/dist/search/global-search.js.map +1 -1
- package/dist/search/search-index.js.map +1 -1
- package/dist/settings/device-reset-setting.js +1 -6
- package/dist/settings/device-reset-setting.js.map +1 -1
- package/dist/settings/settings-heading.js.map +1 -1
- package/dist/settings/settings-layout.js +9 -20
- package/dist/settings/settings-layout.js.map +1 -1
- package/dist/settings/use-settings-focus.d.ts +7 -0
- package/dist/settings/use-settings-focus.js +2 -0
- package/dist/settings/use-settings-focus.js.map +1 -1
- package/dist/settings/use-settings-route.js.map +1 -1
- package/dist/shell/app-shell.js +62 -31
- package/dist/shell/app-shell.js.map +1 -1
- package/dist/shell/auth-layout.js +1 -10
- package/dist/shell/auth-layout.js.map +1 -1
- package/dist/shell/dev-menu.d.ts +5 -0
- package/dist/shell/dev-menu.js +14 -7
- package/dist/shell/dev-menu.js.map +1 -1
- package/dist/shell/option-switcher-menu.js.map +1 -1
- package/dist/shell/sync-status-indicator.js +7 -6
- package/dist/shell/sync-status-indicator.js.map +1 -1
- package/dist/shell/top-bar-parts-labels.js.map +1 -1
- package/dist/shell/topbar-action-menu.d.ts +14 -1
- package/dist/shell/topbar-action-menu.js +85 -34
- package/dist/shell/topbar-action-menu.js.map +1 -1
- package/dist/shell/topbar-controls.js +1 -10
- package/dist/shell/topbar-controls.js.map +1 -1
- package/dist/shell/tour-menu.js +9 -1
- package/dist/shell/tour-menu.js.map +1 -1
- package/dist/shell.d.ts +1 -1
- package/dist/shell.js +2 -1
- package/dist/shell.js.map +1 -1
- package/dist/sync/db.js.map +1 -1
- package/dist/sync/engine.js +24 -6
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync.d.ts +2 -2
- package/dist/sync.js +7 -1
- package/dist/sync.js.map +1 -1
- package/dist/testing/css-variables.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -3
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/react.js.map +1 -1
- package/dist/testing/viewport.js +7 -4
- package/dist/testing/viewport.js.map +1 -1
- package/dist/theme/contrast-tokens.js +13 -2
- package/dist/theme/contrast-tokens.js.map +1 -1
- package/dist/theme/palette-derive.d.ts +1 -1
- package/dist/theme/palette-derive.js +18 -29
- package/dist/theme/palette-derive.js.map +1 -1
- package/dist/theme/palette-presets.js.map +1 -1
- package/dist/theme/palette-store.js.map +1 -1
- package/dist/theme/text-size.js.map +1 -1
- package/dist/theme/theme-store.js +1 -3
- package/dist/theme/theme-store.js.map +1 -1
- package/dist/tour/tour-catalogue.js.map +1 -1
- package/dist/tour/tour-dock.js +5 -1
- package/dist/tour/tour-dock.js.map +1 -1
- package/dist/tour/tour-engine.js +1 -4
- package/dist/tour/tour-engine.js.map +1 -1
- package/dist/tour/tour.js +21 -12
- package/dist/tour/tour.js.map +1 -1
- package/dist/tour/use-tour-progress.js.map +1 -1
- package/dist/tour/use-tour-url-sync.js.map +1 -1
- package/dist/wizard/stepper-nav.js +3 -24
- package/dist/wizard/stepper-nav.js.map +1 -1
- package/dist/wizard/types.js.map +1 -1
- package/dist/wizard/use-wizard.js +24 -28
- package/dist/wizard/use-wizard.js.map +1 -1
- package/dist/wizard/validation.js.map +1 -1
- package/dist/wizard/wizard-context.js.map +1 -1
- package/dist/wizard/wizard-step.d.ts +1 -1
- package/dist/wizard/wizard-step.js +1 -8
- package/dist/wizard/wizard-step.js.map +1 -1
- package/dist/wizard/wizard-summary.js.map +1 -1
- package/package.json +5 -2
- package/src/account/account-settings-labels.ts +1 -2
- package/src/account/account-settings.tsx +11 -17
- package/src/account/delete-account-setting.tsx +1 -6
- package/src/account/email-change-setting-labels.ts +1 -2
- package/src/account/email-change-setting.tsx +3 -1
- package/src/account/passkeys-setting.tsx +1 -3
- package/src/account/sessions-setting.tsx +4 -2
- package/src/admin/admin-action-confirm.tsx +4 -7
- package/src/admin/admin-action-log.tsx +29 -29
- package/src/admin/admin-area-labels.ts +4 -1
- package/src/admin/admin-overview.tsx +8 -2
- package/src/admin/admin-sections.tsx +3 -1
- package/src/admin/admin-tool-links.tsx +7 -1
- package/src/admin/invitations-panel.tsx +5 -11
- package/src/admin/mail-test-card.tsx +1 -2
- package/src/admin/reviewer-scope-editor.tsx +4 -9
- package/src/admin/role-select.tsx +4 -2
- package/src/admin/user-roster.tsx +2 -11
- package/src/auth/accept-invitation.tsx +1 -7
- package/src/auth/auth-errors.ts +1 -6
- package/src/auth/forgot-password-form.tsx +2 -7
- package/src/auth/register-form.tsx +7 -8
- package/src/auth/reset-password-form.tsx +2 -5
- package/src/auth/sign-in-form.tsx +15 -14
- package/src/auth/verify-email.tsx +2 -7
- package/src/billing/billing-banner.tsx +3 -7
- package/src/billing/billing-labels.ts +6 -4
- package/src/billing/checkout-processing.ts +0 -1
- package/src/billing/plan-card.tsx +9 -8
- package/src/billing/plan-limit-toast.tsx +1 -2
- package/src/billing/plan-limit.ts +1 -2
- package/src/billing/plan-price.ts +1 -4
- package/src/billing/plan-switch.tsx +1 -2
- package/src/billing/subscription-actions.tsx +5 -2
- package/src/components/account-chips.tsx +1 -7
- package/src/components/alert-banner.tsx +2 -8
- package/src/components/amount-input.tsx +206 -178
- package/src/components/authed-image.tsx +7 -4
- package/src/components/autocomplete.tsx +7 -9
- package/src/components/bulk-action-bar.tsx +2 -7
- package/src/components/button-group.tsx +1 -2
- package/src/components/button-look.ts +6 -17
- package/src/components/button.tsx +1 -4
- package/src/components/calculator.tsx +6 -9
- package/src/components/calendar-heatmap.tsx +5 -10
- package/src/components/card.tsx +9 -13
- package/src/components/chart-zoom-core.tsx +6 -33
- package/src/components/chart.tsx +8 -31
- package/src/components/checkbox-group.tsx +1 -4
- package/src/components/chip-input.tsx +6 -6
- package/src/components/chip.tsx +14 -26
- package/src/components/choice-card.tsx +4 -18
- package/src/components/column-mapper-labels.ts +3 -10
- package/src/components/column-mapper.tsx +33 -122
- package/src/components/combobox-core.tsx +17 -47
- package/src/components/combobox.tsx +2 -6
- package/src/components/confirm-dialog.tsx +1 -3
- package/src/components/copy-button.tsx +2 -4
- package/src/components/country-select.tsx +9 -21
- package/src/components/currency-option-list.tsx +16 -18
- package/src/components/currency-select.tsx +2 -7
- package/src/components/danger-confirm.tsx +8 -9
- package/src/components/data-table-cells.tsx +1 -2
- package/src/components/data-table-column-settings.tsx +1 -3
- package/src/components/data-table-filter-popover.tsx +5 -19
- package/src/components/data-table-filters.ts +1 -6
- package/src/components/data-table-fit.ts +7 -7
- package/src/components/data-table-groups.tsx +3 -1
- package/src/components/data-table-head.tsx +32 -46
- package/src/components/data-table-mobile.tsx +99 -108
- package/src/components/data-table-pagination.tsx +2 -6
- package/src/components/data-table-row-actions.tsx +25 -24
- package/src/components/data-table-row.tsx +16 -17
- package/src/components/data-table-shared.tsx +10 -16
- package/src/components/data-table-sort.ts +1 -2
- package/src/components/data-table-virtual.ts +9 -4
- package/src/components/data-table.tsx +497 -501
- package/src/components/date-picker.tsx +1 -7
- package/src/components/date-range-picker.tsx +3 -13
- package/src/components/description-list.tsx +7 -13
- package/src/components/dialog-frame.tsx +12 -3
- package/src/components/disclosure.tsx +8 -12
- package/src/components/dropdown.tsx +3 -11
- package/src/components/empty-state.tsx +1 -3
- package/src/components/entity-combobox.tsx +2 -6
- package/src/components/error-boundary.tsx +7 -7
- package/src/components/field-base.tsx +8 -14
- package/src/components/field-parts.tsx +12 -23
- package/src/components/field-sync.tsx +7 -11
- package/src/components/file-button.tsx +7 -3
- package/src/components/file-dropzone.tsx +7 -12
- package/src/components/floating-panel.tsx +44 -51
- package/src/components/focus-ring.ts +1 -2
- package/src/components/form-actions.tsx +1 -4
- package/src/components/grouped-picker.tsx +21 -16
- package/src/components/hover-menu.tsx +1 -4
- package/src/components/iban-input-labels.ts +1 -2
- package/src/components/icon-button.tsx +46 -48
- package/src/components/icon-picker.tsx +9 -20
- package/src/components/image-grid.tsx +1 -6
- package/src/components/inline-edit-field.tsx +1 -5
- package/src/components/inline-entity-combobox.tsx +11 -25
- package/src/components/input.tsx +14 -2
- package/src/components/jump-calendar.tsx +2 -6
- package/src/components/legal-labels.ts +8 -3
- package/src/components/legal-page.tsx +56 -6
- package/src/components/legal.tsx +83 -10
- package/src/components/lightbox.tsx +1 -3
- package/src/components/line-items.tsx +7 -15
- package/src/components/list-labels.ts +2 -0
- package/src/components/list.tsx +81 -27
- package/src/components/measured-grid.tsx +8 -30
- package/src/components/menu-item.tsx +1 -3
- package/src/components/mini-calendar.tsx +129 -159
- package/src/components/money-field.tsx +4 -2
- package/src/components/month-picker.tsx +14 -21
- package/src/components/multi-entity-combobox.tsx +6 -26
- package/src/components/multi-select.tsx +5 -9
- package/src/components/nav-pills.tsx +10 -2
- package/src/components/number-field.tsx +18 -15
- package/src/components/number-input.tsx +3 -19
- package/src/components/numpad-sheet.tsx +9 -13
- package/src/components/one-time-code-input.tsx +6 -11
- package/src/components/page-contents.tsx +2 -9
- package/src/components/page-header.tsx +5 -10
- package/src/components/password-strength-labels.ts +1 -2
- package/src/components/password-strength.tsx +6 -9
- package/src/components/phone-input.tsx +2 -13
- package/src/components/picker-sheet.tsx +2 -5
- package/src/components/pie-chart.tsx +6 -12
- package/src/components/popover.tsx +2 -1
- package/src/components/progress-bar.tsx +16 -25
- package/src/components/qr-code.tsx +2 -9
- package/src/components/row-actions.tsx +9 -1
- package/src/components/search-field.tsx +4 -5
- package/src/components/select.tsx +2 -10
- package/src/components/separator.tsx +1 -5
- package/src/components/series-chart-axes.ts +5 -5
- package/src/components/series-chart-budget.ts +1 -4
- package/src/components/series-chart-ticks.ts +1 -4
- package/src/components/series-chart.tsx +43 -83
- package/src/components/settings-fields.tsx +20 -15
- package/src/components/share-card.tsx +6 -14
- package/src/components/sign-chip.tsx +16 -16
- package/src/components/signature-pad.tsx +21 -13
- package/src/components/signed-amount.tsx +6 -14
- package/src/components/skeleton.tsx +2 -13
- package/src/components/slider.tsx +9 -20
- package/src/components/sparkline.tsx +2 -13
- package/src/components/stat-tile.tsx +13 -24
- package/src/components/swatch-picker.tsx +8 -3
- package/src/components/swipeable-row.tsx +2 -11
- package/src/components/table-skeleton.tsx +4 -1
- package/src/components/table.tsx +12 -8
- package/src/components/tabs.tsx +24 -39
- package/src/components/text-link.tsx +6 -6
- package/src/components/text.tsx +1 -2
- package/src/components/tile-radio.tsx +6 -19
- package/src/components/time-input.tsx +4 -5
- package/src/components/toast.tsx +3 -12
- package/src/components/toggle-group.tsx +9 -9
- package/src/components/toggle-legend.tsx +4 -16
- package/src/components/tooltip.tsx +9 -48
- package/src/components/translation-review-editor.tsx +4 -4
- package/src/components/translation-review-parts.tsx +7 -1
- package/src/components/translation-review.tsx +15 -16
- package/src/components/tree-view.tsx +17 -20
- package/src/components/treemap.tsx +3 -15
- package/src/components/trigger-aria.ts +1 -4
- package/src/components/use-table-state.ts +16 -17
- package/src/components/user-avatar.tsx +4 -21
- package/src/demo/demo-start.tsx +8 -4
- package/src/feedback/feedback-attachment-labels.ts +2 -1
- package/src/feedback/feedback-attachment.tsx +16 -29
- package/src/feedback/feedback-capture.ts +3 -1
- package/src/feedback/feedback-comment-thread.tsx +9 -6
- package/src/feedback/feedback-context.tsx +1 -4
- package/src/feedback/feedback-dialog.tsx +3 -4
- package/src/feedback/feedback-inbox.tsx +3 -9
- package/src/feedback/feedback-public-list.tsx +7 -1
- package/src/feedback/feedback-record.ts +6 -14
- package/src/feedback/feedback-replies.tsx +10 -5
- package/src/feedback/feedback-row-detail.tsx +2 -5
- package/src/feedback/feedback-status-undo.ts +1 -4
- package/src/feedback/feedback-submit-dialog.tsx +4 -4
- package/src/feedback/feedback-table.tsx +29 -9
- package/src/feedback/feedback-thread.tsx +4 -16
- package/src/feedback/feedback-vocabulary.ts +72 -82
- package/src/feedback/feedback-vote-button.tsx +9 -8
- package/src/hooks/use-anchored-rect.ts +1 -4
- package/src/hooks/use-document-title.ts +3 -1
- package/src/hooks/use-file-drop.ts +1 -3
- package/src/hooks/use-file-picker-labels.ts +1 -2
- package/src/hooks/use-file-picker.tsx +1 -5
- package/src/hooks/use-focus-trap.ts +1 -2
- package/src/hooks/use-overlay-history.ts +10 -5
- package/src/hooks/use-row-swipe.ts +1 -6
- package/src/i18n/defaults.ts +1 -4
- package/src/i18n/german.ts +42 -50
- package/src/i18n/kit-labels.tsx +5 -20
- package/src/i18n/languages.ts +2 -8
- package/src/i18n/locales/en.ts +15 -31
- package/src/i18n/locales/es.ts +44 -50
- package/src/i18n/locales/fr.ts +43 -52
- package/src/i18n/locales/hu.ts +35 -38
- package/src/i18n/locales/it.ts +44 -53
- package/src/i18n/locales/zh.ts +23 -33
- package/src/i18n/plurals.ts +4 -1
- package/src/i18n/review.ts +20 -7
- package/src/i18n/shared-labels.ts +1 -2
- package/src/index.ts +107 -32
- package/src/landing/access.ts +2 -7
- package/src/landing/landing-sections.tsx +14 -15
- package/src/landing/page-seo.ts +1 -3
- package/src/lib/calc.ts +4 -1
- package/src/lib/clipboard-minus.ts +4 -1
- package/src/lib/dates.ts +2 -10
- package/src/lib/decimal-marks.ts +1 -3
- package/src/lib/device-settings.ts +2 -1
- package/src/lib/direction.ts +1 -3
- package/src/lib/iban.ts +89 -9
- package/src/lib/logger.ts +1 -5
- package/src/lib/person-name.ts +1 -3
- package/src/lib/phone.ts +5 -8
- package/src/lib/qr-encode.ts +32 -8
- package/src/lib/session-refresh.ts +5 -6
- package/src/lib/table-text.ts +24 -6
- package/src/lib/text-match.ts +43 -1
- package/src/lib/translation-review.ts +1 -3
- package/src/notifications/notification-inbox.tsx +17 -4
- package/src/notifications/notification-parts.tsx +1 -2
- package/src/notifications/notification-types-setting.tsx +19 -18
- package/src/notifications/notifications-labels.ts +1 -2
- package/src/notifications/push-device-setting.tsx +7 -1
- package/src/notifications/push-devices-setting.tsx +7 -3
- package/src/notifications/push-worker.ts +10 -2
- package/src/notifications/quiet-hours-setting.tsx +4 -1
- package/src/notifications/use-push-device.ts +4 -1
- package/src/offline/pwa-update-prompt.tsx +7 -1
- package/src/offline/query-persistence.ts +9 -6
- package/src/offline.ts +6 -1
- package/src/rhf/fields.tsx +50 -19
- package/src/rhf/form-core.tsx +2 -6
- package/src/rhf/line-items.tsx +5 -7
- package/src/rhf/use-rhf-wizard-step.ts +3 -12
- package/src/search/command-palette.tsx +15 -23
- package/src/search/global-search.tsx +38 -8
- package/src/search/search-index.ts +5 -1
- package/src/settings/device-reset-setting.tsx +5 -8
- package/src/settings/settings-heading.tsx +3 -1
- package/src/settings/settings-layout.tsx +6 -13
- package/src/settings/use-settings-focus.ts +8 -0
- package/src/settings/use-settings-route.ts +4 -3
- package/src/shell/app-shell.tsx +48 -24
- package/src/shell/auth-layout.tsx +1 -6
- package/src/shell/dev-menu.tsx +18 -6
- package/src/shell/option-switcher-menu.tsx +1 -3
- package/src/shell/sync-status-indicator.tsx +14 -12
- package/src/shell/top-bar-parts-labels.ts +1 -3
- package/src/shell/topbar-action-menu.tsx +130 -45
- package/src/shell/topbar-controls.tsx +5 -19
- package/src/shell/tour-menu.tsx +9 -1
- package/src/shell.ts +1 -1
- package/src/sync/db.ts +5 -1
- package/src/sync/engine.ts +44 -12
- package/src/sync.ts +16 -2
- package/src/testing/css-variables.ts +1 -2
- package/src/testing/index.ts +1 -6
- package/src/testing/react.ts +1 -2
- package/src/testing/viewport.ts +9 -9
- package/src/theme/contrast-tokens.ts +13 -2
- package/src/theme/palette-derive.ts +24 -50
- package/src/theme/palette-presets.ts +0 -1
- package/src/theme/palette-store.ts +1 -4
- package/src/theme/text-size.ts +1 -1
- package/src/theme/theme-store.ts +2 -6
- package/src/tour/tour-catalogue.tsx +4 -2
- package/src/tour/tour-dock.ts +5 -1
- package/src/tour/tour-engine.ts +2 -6
- package/src/tour/tour.tsx +28 -12
- package/src/tour/use-tour-progress.ts +8 -2
- package/src/tour/use-tour-url-sync.ts +3 -1
- package/src/vite-env.d.ts +1 -4
- package/src/wizard/stepper-nav.tsx +10 -35
- package/src/wizard/types.ts +1 -4
- package/src/wizard/use-wizard.ts +28 -43
- package/src/wizard/validation.ts +1 -5
- package/src/wizard/wizard-context.tsx +2 -6
- package/src/wizard/wizard-step.tsx +1 -8
- package/src/wizard/wizard-summary.tsx +2 -6
- package/tokens.css +393 -152
package/src/i18n/locales/zh.ts
CHANGED
|
@@ -418,8 +418,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
418
418
|
day: (date, value) => `${date}:${value}`,
|
|
419
419
|
less: "较少",
|
|
420
420
|
more: "较多",
|
|
421
|
-
truncated: (count) =>
|
|
422
|
-
`仅显示最近的日期;另有 ${n(count)} 天未显示。`,
|
|
421
|
+
truncated: (count) => `仅显示最近的日期;另有 ${n(count)} 天未显示。`,
|
|
423
422
|
},
|
|
424
423
|
datePicker: {
|
|
425
424
|
apply: "应用",
|
|
@@ -566,8 +565,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
566
565
|
rejectedCount: (name, maxFiles) => `未添加“${name}”:最多 ${n(maxFiles)} 个文件`,
|
|
567
566
|
rejectedInvalid: (name) => `“${name}”无法在此使用`,
|
|
568
567
|
rejectedMany: (count) => `${n(count)} 个文件未添加`,
|
|
569
|
-
selected: (count, firstName) =>
|
|
570
|
-
count === 1 ? `已选择“${firstName}”` : `已选择 ${n(count)} 个文件`,
|
|
568
|
+
selected: (count, firstName) => (count === 1 ? `已选择“${firstName}”` : `已选择 ${n(count)} 个文件`),
|
|
571
569
|
remove: (name) => `移除“${name}”`,
|
|
572
570
|
clearAll: "移除所有文件",
|
|
573
571
|
removed: (name) => `已移除“${name}”`,
|
|
@@ -714,8 +712,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
714
712
|
},
|
|
715
713
|
seriesChart: {
|
|
716
714
|
resetZoom: "重置缩放",
|
|
717
|
-
zoomHint:
|
|
718
|
-
"拖动以缩放:近似正方形的选区同时缩放两条坐标轴,细长的选区只缩放其所沿的那条轴。双击可重置。",
|
|
715
|
+
zoomHint: "拖动以缩放:近似正方形的选区同时缩放两条坐标轴,细长的选区只缩放其所沿的那条轴。双击可重置。",
|
|
719
716
|
empty: "无数据",
|
|
720
717
|
legend: "数据系列",
|
|
721
718
|
points: "图表数值",
|
|
@@ -746,6 +743,8 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
746
743
|
list: {
|
|
747
744
|
unread: "未读",
|
|
748
745
|
opensInNewTab: "在新标签页中打开",
|
|
746
|
+
showAll: (count) => `显示全部(${n(count)})`,
|
|
747
|
+
showFewer: "收起",
|
|
749
748
|
},
|
|
750
749
|
breadcrumbs: {
|
|
751
750
|
label: "面包屑导航",
|
|
@@ -876,6 +875,8 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
876
875
|
impressum: "运营者信息",
|
|
877
876
|
privacy: "隐私政策",
|
|
878
877
|
terms: "使用条款",
|
|
878
|
+
security: "安全",
|
|
879
|
+
accessibility: "无障碍",
|
|
879
880
|
},
|
|
880
881
|
titles: {
|
|
881
882
|
impressum: "运营者信息",
|
|
@@ -891,11 +892,14 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
891
892
|
"封闭测试阶段。以下法律措辞尚未经律师审阅,将在公开发布之前完成审阅。其中的技术说明——存储了什么、存储在哪里以及谁可以读取——描述的是软件目前的实际行为,旨在供人对照软件加以核实。",
|
|
892
893
|
},
|
|
893
894
|
translation: {
|
|
894
|
-
note: (o) =>
|
|
895
|
-
`本页为方便阅读而提供的译文,以${o.bindingLanguage}版本为准。`,
|
|
895
|
+
note: (o) => `本页为方便阅读而提供的译文,以${o.bindingLanguage}版本为准。`,
|
|
896
896
|
show: (o) => `查看${o.bindingLanguage}版本`,
|
|
897
897
|
},
|
|
898
898
|
updated: (date) => `最后更新:${date}`,
|
|
899
|
+
summary: {
|
|
900
|
+
title: "要点",
|
|
901
|
+
note: "本摘要仅供参考;只有完整文本具有约束力。",
|
|
902
|
+
},
|
|
899
903
|
sections: {
|
|
900
904
|
impressum: {
|
|
901
905
|
operator: {
|
|
@@ -952,7 +956,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
952
956
|
},
|
|
953
957
|
changes: {
|
|
954
958
|
title: "条款变更",
|
|
955
|
-
body: "我们可能会随着服务的发展更新本条款。重大变更将至少在生效前 30
|
|
959
|
+
body: "我们可能会随着服务的发展更新本条款。重大变更将至少在生效前 30 天通过电子邮件和应用程序公布,并附上新文本。如您不同意,可在该日期前提出异议或删除您的账户,并可在此之前导出您的数据。如您在该日期后继续使用本服务,则适用变更后的条款。仅对您有利的变更或法律要求的变更,无需上述提前通知即可生效,且不得提出异议。如您对某项变更提出异议,我们可在该变更生效之日关闭您的账户。如您已付费的期间超过该日期,我们将退还未使用部分的费用。",
|
|
956
960
|
},
|
|
957
961
|
language: {
|
|
958
962
|
title: "语言",
|
|
@@ -1286,9 +1290,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1286
1290
|
started: "下载已开始。",
|
|
1287
1291
|
saveAgain: "没有开始?保存文件",
|
|
1288
1292
|
rateLimited: (seconds) =>
|
|
1289
|
-
seconds && seconds > 0
|
|
1290
|
-
? `您刚刚导出过数据,请 ${wait(seconds)}后重试。`
|
|
1291
|
-
: "您刚刚导出过数据,请一分钟后重试。",
|
|
1293
|
+
seconds && seconds > 0 ? `您刚刚导出过数据,请 ${wait(seconds)}后重试。` : "您刚刚导出过数据,请一分钟后重试。",
|
|
1292
1294
|
failed: "导出失败,请重试。",
|
|
1293
1295
|
},
|
|
1294
1296
|
userRoster: {
|
|
@@ -1328,8 +1330,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1328
1330
|
lastAdmin: "这是最后一位活跃管理员。请先将其他人设为管理员。",
|
|
1329
1331
|
self: "不能对您自己的账户执行此操作。",
|
|
1330
1332
|
confirmationMismatch: "该地址与此账户不符。请检查您当前所在的账户。",
|
|
1331
|
-
otherCompanies:
|
|
1332
|
-
"此账户也属于其他公司,因此只有平台运营者才能执行此操作。您可以改为将其从本公司移除。",
|
|
1333
|
+
otherCompanies: "此账户也属于其他公司,因此只有平台运营者才能执行此操作。您可以改为将其从本公司移除。",
|
|
1333
1334
|
removeFromCompany: "从公司移除",
|
|
1334
1335
|
failed: "操作未成功,请重试。",
|
|
1335
1336
|
},
|
|
@@ -1444,8 +1445,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1444
1445
|
resend: (email) => `向 ${email} 发送新链接`,
|
|
1445
1446
|
copyLink: "复制邀请链接",
|
|
1446
1447
|
revoke: (email) => `撤回对 ${email} 的邀请`,
|
|
1447
|
-
consoleHint:
|
|
1448
|
-
"此服务器不发送邮件——邮件会写入服务器日志。请在这里复制每个邀请链接并自行转交:链接只显示一次。",
|
|
1448
|
+
consoleHint: "此服务器不发送邮件——邮件会写入服务器日志。请在这里复制每个邀请链接并自行转交:链接只显示一次。",
|
|
1449
1449
|
linkReady: (email) => `${email} 的邀请链接,仅显示这一次:`,
|
|
1450
1450
|
notSent: (email) => `已邀请 ${email},但邮件未能发送。请重新发送。`,
|
|
1451
1451
|
failed: "操作未成功,请重试。",
|
|
@@ -1468,8 +1468,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1468
1468
|
ibanInput: {
|
|
1469
1469
|
format: "IBAN 以两个字母的国家代码和两位校验码开头。",
|
|
1470
1470
|
country: (code) => `“${code}”不是 IBAN 的国家代码。`,
|
|
1471
|
-
length: (actual, expected) =>
|
|
1472
|
-
`该国家的 IBAN 应为 ${n(expected)} 个字符,当前为 ${n(actual)} 个。`,
|
|
1471
|
+
length: (actual, expected) => `该国家的 IBAN 应为 ${n(expected)} 个字符,当前为 ${n(actual)} 个。`,
|
|
1473
1472
|
checksum: "校验码不匹配,可能有字符输入错误。",
|
|
1474
1473
|
qrRequired: "这是普通 IBAN。QR 账单需要该账户的 QR-IBAN。",
|
|
1475
1474
|
qrNotAllowed: "这是 QR-IBAN,只能接收 QR 账单付款。请输入该账户的普通 IBAN。",
|
|
@@ -1627,9 +1626,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1627
1626
|
demo: {
|
|
1628
1627
|
starting: "正在启动演示…",
|
|
1629
1628
|
rateLimited: (minutes) =>
|
|
1630
|
-
minutes
|
|
1631
|
-
? `来自此网络的演示过多,请 ${n(minutes)} 分钟后重试。`
|
|
1632
|
-
: "来自此网络的演示过多,请稍后重试。",
|
|
1629
|
+
minutes ? `来自此网络的演示过多,请 ${n(minutes)} 分钟后重试。` : "来自此网络的演示过多,请稍后重试。",
|
|
1633
1630
|
capacity: "演示名额已满,请稍后重试。",
|
|
1634
1631
|
unavailable: "演示暂不可用。",
|
|
1635
1632
|
failed: "无法启动演示,请重试。",
|
|
@@ -1681,17 +1678,13 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1681
1678
|
expired: "已过期",
|
|
1682
1679
|
comped: "免费赠送",
|
|
1683
1680
|
},
|
|
1684
|
-
trialEnding: (days) =>
|
|
1685
|
-
|
|
1686
|
-
grantEnding: (days) =>
|
|
1687
|
-
`您的免费使用权将于${inDays(days)}结束。之后您仍可查看所有内容,但需要套餐才能进行修改。`,
|
|
1681
|
+
trialEnding: (days) => `您的试用期将于${inDays(days)}结束。之后您仍可查看所有内容,但需要套餐才能进行修改。`,
|
|
1682
|
+
grantEnding: (days) => `您的免费使用权将于${inDays(days)}结束。之后您仍可查看所有内容,但需要套餐才能进行修改。`,
|
|
1688
1683
|
paymentFailed: "您的上一笔付款未成功。请更新付款方式,以保留您的套餐。",
|
|
1689
1684
|
planEnded: "您的套餐已结束。您仍可查看和导出所有内容;选择套餐后即可再次进行修改。",
|
|
1690
1685
|
// Never why: the owner's payment status is the owner's personal data (§12.6).
|
|
1691
1686
|
guestReadOnly: (item) =>
|
|
1692
|
-
item
|
|
1693
|
-
? `“${item}”目前为只读;其所有者可以解除此限制。`
|
|
1694
|
-
: "此内容目前为只读;其所有者可以解除此限制。",
|
|
1687
|
+
item ? `“${item}”目前为只读;其所有者可以解除此限制。` : "此内容目前为只读;其所有者可以解除此限制。",
|
|
1695
1688
|
processing: "您的付款正在处理中。确认后您的套餐即会生效;此页面会自动更新。",
|
|
1696
1689
|
choosePlan: "选择套餐",
|
|
1697
1690
|
updatePayment: "更新付款方式",
|
|
@@ -1730,9 +1723,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1730
1723
|
switchConfirm: "更改套餐",
|
|
1731
1724
|
// 0.42 (§16): the portal for the buyer only, the in-app cancel, the grant warning.
|
|
1732
1725
|
buyerHolds: (buyer) =>
|
|
1733
|
-
buyer
|
|
1734
|
-
? `付款方式和发票由购买该订阅的 ${buyer} 管理。`
|
|
1735
|
-
: "付款方式和发票由购买该订阅的管理员管理。",
|
|
1726
|
+
buyer ? `付款方式和发票由购买该订阅的 ${buyer} 管理。` : "付款方式和发票由购买该订阅的管理员管理。",
|
|
1736
1727
|
cancelConfirmTitle: "取消订阅",
|
|
1737
1728
|
cancelConfirmBody: (date) => `您的订阅将于 ${date} 结束。在此之前,一切照常使用。`,
|
|
1738
1729
|
cancelConfirmAction: "立即取消订阅",
|
|
@@ -1787,8 +1778,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
|
|
|
1787
1778
|
saveFailed: "无法保存到您的账户。此设备上仍然生效。",
|
|
1788
1779
|
// 0.46: DateFormatSetting (keksdose's words where it has them).
|
|
1789
1780
|
dateFormat: "日期格式",
|
|
1790
|
-
dateFormatHelp:
|
|
1791
|
-
"整个应用中日期的书写方式。与界面语言无关,因此您可以用英文阅读应用,同时仍看到德式日期。",
|
|
1781
|
+
dateFormatHelp: "整个应用中日期的书写方式。与界面语言无关,因此您可以用英文阅读应用,同时仍看到德式日期。",
|
|
1792
1782
|
dateFormatAuto: "跟随语言",
|
|
1793
1783
|
// 0.46: AccountMenuTextSize (keksdose live #426).
|
|
1794
1784
|
textSmaller: "缩小文字",
|
package/src/i18n/plurals.ts
CHANGED
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
* i18n.addResourceBundle(lng, "translation", withAllPlurals(catalogue, lng));
|
|
21
21
|
* // i18next-http-backend: { parse: (data, lng) => withAllPlurals(JSON.parse(data), lng) }
|
|
22
22
|
*/
|
|
23
|
-
export function withAllPlurals<T extends Record<string, unknown>>(
|
|
23
|
+
export function withAllPlurals<T extends Record<string, unknown>>(
|
|
24
|
+
catalogue: T,
|
|
25
|
+
locale: string,
|
|
26
|
+
): T & Record<string, unknown> {
|
|
24
27
|
const cardinal = pluralCategories(locale, "cardinal");
|
|
25
28
|
const ordinal = pluralCategories(locale, "ordinal");
|
|
26
29
|
const fill = (tree: Record<string, unknown>): Record<string, unknown> => {
|
package/src/i18n/review.ts
CHANGED
|
@@ -49,10 +49,12 @@ export function kitLabelStrings(labels: UiKitLabels, options: KitLabelStringsOpt
|
|
|
49
49
|
// The key is the SAMPLE's (`…body(operator)`), whatever the label is called with,
|
|
50
50
|
// so rows with and without the app's operator join on the same keys.
|
|
51
51
|
const called = operator ? args.map((arg) => (arg === LEGAL_OPERATOR_SAMPLE ? operator : arg)) : args;
|
|
52
|
-
out[
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
out[
|
|
53
|
+
`${path}(${args
|
|
54
|
+
.map(sampleName)
|
|
55
|
+
.filter((a) => a !== "")
|
|
56
|
+
.join(", ")})`
|
|
57
|
+
] = render(node as (...args: unknown[]) => unknown, called);
|
|
56
58
|
}
|
|
57
59
|
} else if (node !== null && typeof node === "object") {
|
|
58
60
|
for (const [key, value] of Object.entries(node)) walk(value, path ? `${path}.${key}` : key);
|
|
@@ -311,6 +313,8 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
311
313
|
"legal.translation.show": operatorSample,
|
|
312
314
|
// 0.51.3: the as-of line, with the date already written out.
|
|
313
315
|
"legal.updated": [["{{date}}"]],
|
|
316
|
+
// 0.51.4: a limited list's "Show all (n)", with the whole list's count.
|
|
317
|
+
"list.showAll": [[12], [1240]],
|
|
314
318
|
// 0.29.0: the sign-in and sign-up parts (docs/auth-harmonization.md).
|
|
315
319
|
"signIn.tagHint": [["{{taggedAddress}}"]],
|
|
316
320
|
"register.emailTagUse": [["{{address}}"]],
|
|
@@ -405,7 +409,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
405
409
|
"billing.buyerHolds": [["{{buyer}}"], [undefined]],
|
|
406
410
|
"billing.paymentFailedAskBuyer": [["{{buyer}}"], [undefined]],
|
|
407
411
|
"billing.cancelConfirmBody": [["{{date}}"]],
|
|
408
|
-
"billing.portalOpensNewTab": [
|
|
412
|
+
"billing.portalOpensNewTab": [
|
|
413
|
+
["{{provider}}", "{{app}}"],
|
|
414
|
+
["{{provider}}", undefined],
|
|
415
|
+
],
|
|
409
416
|
"planChange.current": [["{{plan}}"]],
|
|
410
417
|
"planChange.changed": [["{{from}}", "{{to}}"]],
|
|
411
418
|
"planChange.set": [["{{to}}"]],
|
|
@@ -415,7 +422,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
415
422
|
// the users tile's new accounts.
|
|
416
423
|
"adminArea.waiting": one,
|
|
417
424
|
// 0.45.0 (admin §9.3.4): an IconButton's name with its waiting count.
|
|
418
|
-
"adminArea.waitingLabel": [
|
|
425
|
+
"adminArea.waitingLabel": [
|
|
426
|
+
["{{label}}", 1],
|
|
427
|
+
["{{label}}", 3],
|
|
428
|
+
],
|
|
419
429
|
// 0.45.0 (admin §9.2.4): the test mail's transport, masked address and limiter.
|
|
420
430
|
"mailTestCard.transport": [["{{backend}}"]],
|
|
421
431
|
"mailTestCard.sent": [["{{address}}"]],
|
|
@@ -435,7 +445,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
435
445
|
// 0.43.0 (docs/tours-harmonization.md §3, §8): the tours page's counts, its group
|
|
436
446
|
// option, the completion day and a reset's day and reason.
|
|
437
447
|
"tourCatalogue.groupAll": one,
|
|
438
|
-
"tourCatalogue.groupOption": [
|
|
448
|
+
"tourCatalogue.groupOption": [
|
|
449
|
+
["{{group}}", 1],
|
|
450
|
+
["{{group}}", 3],
|
|
451
|
+
],
|
|
439
452
|
"tourCatalogue.stateAll": one,
|
|
440
453
|
"tourCatalogue.stateTodo": one,
|
|
441
454
|
"tourCatalogue.stateDone": one,
|
|
@@ -64,8 +64,7 @@ export const DEFAULT_COMBOBOX_LABELS: ComboboxLabels = {
|
|
|
64
64
|
selectedCount: (count) => `${count} selected`,
|
|
65
65
|
loadError: "Couldn’t load results",
|
|
66
66
|
resultCount: (count) => (count === 1 ? "1 result" : `${count} results`),
|
|
67
|
-
minChars: (count) =>
|
|
68
|
-
count === 1 ? "Type at least 1 character" : `Type at least ${count} characters`,
|
|
67
|
+
minChars: (count) => (count === 1 ? "Type at least 1 character" : `Type at least ${count} characters`),
|
|
69
68
|
};
|
|
70
69
|
|
|
71
70
|
export const DEFAULT_MULTI_SELECT_LABELS: MultiSelectLabels = {
|
package/src/index.ts
CHANGED
|
@@ -22,8 +22,9 @@ export { readStored, writeStored } from "./lib/safe-storage";
|
|
|
22
22
|
// (`filename*` first) — 0.34, KS U5; the kit's own three downloads use them.
|
|
23
23
|
export { saveBlob, filenameFromDisposition } from "./lib/download";
|
|
24
24
|
// Date helpers are also available via the "@eifi1/ui-kit/dates" subpath.
|
|
25
|
-
// One fold and one ranking for every list's search box (DUP-5), for an app's own lists
|
|
26
|
-
|
|
25
|
+
// One fold and one ranking for every list's search box (DUP-5), for an app's own lists;
|
|
26
|
+
// and the pickers' every-word match (0.51.5), for an async `loadOptions` that filters itself.
|
|
27
|
+
export { foldForSearch, rankMatch, searchWords, matchesSearch } from "./lib/text-match";
|
|
27
28
|
export type { MatchRank } from "./lib/text-match";
|
|
28
29
|
// 0.12.0: the QR encoder QrCode draws with — no dependency, see lib/qr-encode.ts.
|
|
29
30
|
export { encodeQr } from "./lib/qr-encode";
|
|
@@ -31,11 +32,29 @@ export type { QrEncodeOptions, QrErrorCorrection, QrMatrix } from "./lib/qr-enco
|
|
|
31
32
|
// 0.18: the cold-start notice keksdose built (#199), for every app: the framework-free
|
|
32
33
|
// watchdog over the app's requests (the corner notice is components/server-wake).
|
|
33
34
|
export { createServerWake, serverWake, watchReadsAnd, attachServerWake, wrapFetch } from "./lib/server-wake";
|
|
34
|
-
export type {
|
|
35
|
+
export type {
|
|
36
|
+
ServerWakeStage,
|
|
37
|
+
ServerWakeFilter,
|
|
38
|
+
ServerWakeOptions,
|
|
39
|
+
ServerWakeRequest,
|
|
40
|
+
ServerWakeWatcher,
|
|
41
|
+
ServerWakeAxiosConfig,
|
|
42
|
+
AxiosLikeInstance,
|
|
43
|
+
} from "./lib/server-wake";
|
|
35
44
|
// 0.34 (docs/auth-harmonization.md §11, round 0.34 C7): renewing a session — one refresh
|
|
36
45
|
// per tab, a definitive failure ends the session once, a transient one keeps it.
|
|
37
|
-
export {
|
|
38
|
-
|
|
46
|
+
export {
|
|
47
|
+
createSessionRefresh,
|
|
48
|
+
attachSessionRefresh,
|
|
49
|
+
isTransientRefreshFailure,
|
|
50
|
+
isSignedOutStep,
|
|
51
|
+
} from "./lib/session-refresh";
|
|
52
|
+
export type {
|
|
53
|
+
SessionRefresh,
|
|
54
|
+
SessionRefreshOptions,
|
|
55
|
+
SessionRenewal,
|
|
56
|
+
SessionRefreshOutcome,
|
|
57
|
+
} from "./lib/session-refresh";
|
|
39
58
|
// 0.29.0 (docs/auth-harmonization.md): the person-name order of each language.
|
|
40
59
|
export { formatPersonName, personInitials } from "./lib/person-name";
|
|
41
60
|
export type { PersonName } from "./lib/person-name";
|
|
@@ -93,25 +112,10 @@ export type {
|
|
|
93
112
|
// 0.22.0, the inputs round: the country list and the IBAN, ISIN and phone helpers that
|
|
94
113
|
// CountrySelect, IbanInput and PhoneInput are built on.
|
|
95
114
|
export { COUNTRY_CODES, countryName } from "./lib/countries";
|
|
96
|
-
export {
|
|
97
|
-
IBAN_LENGTHS,
|
|
98
|
-
compactIban,
|
|
99
|
-
formatIban,
|
|
100
|
-
ibanCheckDigits,
|
|
101
|
-
ibanProblem,
|
|
102
|
-
isValidIban,
|
|
103
|
-
isQrIban,
|
|
104
|
-
} from "./lib/iban";
|
|
115
|
+
export { IBAN_LENGTHS, compactIban, formatIban, ibanCheckDigits, ibanProblem, isValidIban, isQrIban } from "./lib/iban";
|
|
105
116
|
export type { IbanKind, IbanProblem } from "./lib/iban";
|
|
106
117
|
export { formatIsin, isinCheckDigit, isValidIsin } from "./lib/isin";
|
|
107
|
-
export {
|
|
108
|
-
PHONE_DIAL_CODES,
|
|
109
|
-
PHONE_COUNTRIES,
|
|
110
|
-
parsePhone,
|
|
111
|
-
formatNationalPhone,
|
|
112
|
-
formatPhone,
|
|
113
|
-
isE164,
|
|
114
|
-
} from "./lib/phone";
|
|
118
|
+
export { PHONE_DIAL_CODES, PHONE_COUNTRIES, parsePhone, formatNationalPhone, formatPhone, isE164 } from "./lib/phone";
|
|
115
119
|
export type { PhoneCountryCode, PhoneCountry, ParsedPhone } from "./lib/phone";
|
|
116
120
|
// 0.23.0: ColumnMapper's pure half (Kurvenschmiede's columns input, keksdose's import map).
|
|
117
121
|
export {
|
|
@@ -188,7 +192,14 @@ export { useWindowedRows, WINDOWED_ROW_INDEX } from "./hooks/use-windowed-rows";
|
|
|
188
192
|
export type { WindowedRows } from "./hooks/use-windowed-rows";
|
|
189
193
|
// 0.32.0 (docs/text-size-harmonization.md): the breakpoints, and the hooks components read
|
|
190
194
|
// the behaviours at Large from (§4, §10.7–10.9).
|
|
191
|
-
export {
|
|
195
|
+
export {
|
|
196
|
+
useBreakpoint,
|
|
197
|
+
usePhoneLayout,
|
|
198
|
+
breakpointQuery,
|
|
199
|
+
BREAKPOINT_REM,
|
|
200
|
+
remPx,
|
|
201
|
+
useRemPx,
|
|
202
|
+
} from "./hooks/use-breakpoint";
|
|
192
203
|
export type { Breakpoint, BreakpointVariant, RemLength } from "./hooks/use-breakpoint";
|
|
193
204
|
export { useLargeText, useCoarsePointer, useInlineFacts } from "./hooks/use-large-text";
|
|
194
205
|
|
|
@@ -418,13 +429,42 @@ export * from "./components/form-actions";
|
|
|
418
429
|
// 0.33: a lock says its source, and a control can be exempt from one
|
|
419
430
|
// (docs/billing-harmonization.md §12.36): the kinds, the holds, `CommitScope`,
|
|
420
431
|
// `COMMIT_EXCEPT_BILLING` and the pure `writeLockFor`.
|
|
421
|
-
export {
|
|
432
|
+
export {
|
|
433
|
+
WriteLockProvider,
|
|
434
|
+
useWriteLock,
|
|
435
|
+
writeLockFor,
|
|
436
|
+
COMMIT_EXCEPT_BILLING,
|
|
437
|
+
DEFAULT_WRITE_LOCK_LABELS,
|
|
438
|
+
} from "./components/write-lock";
|
|
422
439
|
// 0.46 (kastlan K4): the offline lock kind, its scope and its source.
|
|
423
440
|
export { OFFLINE_LOCK, COMMIT_EXCEPT_OFFLINE, useOfflineWriteLock } from "./components/write-lock";
|
|
424
|
-
export type {
|
|
441
|
+
export type {
|
|
442
|
+
WriteLock,
|
|
443
|
+
WriteLockLabels,
|
|
444
|
+
WriteLockProviderProps,
|
|
445
|
+
WriteLockKind,
|
|
446
|
+
WriteLockHold,
|
|
447
|
+
CommitScope,
|
|
448
|
+
} from "./components/write-lock";
|
|
425
449
|
// 0.18: the parts both apps' admin rosters repeat (Kurvenschmiede 6).
|
|
426
|
-
export {
|
|
427
|
-
|
|
450
|
+
export {
|
|
451
|
+
RoleChip,
|
|
452
|
+
AccountStateChip,
|
|
453
|
+
DateMark,
|
|
454
|
+
dateColumn,
|
|
455
|
+
DEFAULT_ACCOUNT_STATE_LABELS,
|
|
456
|
+
ACCOUNT_STATE_TONES,
|
|
457
|
+
} from "./components/account-chips";
|
|
458
|
+
export type {
|
|
459
|
+
RoleChipProps,
|
|
460
|
+
RoleDefinition,
|
|
461
|
+
RoleVocabulary,
|
|
462
|
+
AccountState,
|
|
463
|
+
AccountStateLabels,
|
|
464
|
+
AccountStateChipProps,
|
|
465
|
+
DateMarkProps,
|
|
466
|
+
DateColumnOptions,
|
|
467
|
+
} from "./components/account-chips";
|
|
428
468
|
// 0.42 (docs/admin-harmonization.md §2.1): the role in the account menu's header, a link
|
|
429
469
|
// to the role's tool (`RoleDefinition.href`).
|
|
430
470
|
export { AccountRoleChip } from "./components/account-chips";
|
|
@@ -435,7 +475,17 @@ export { ServerWakeNotice, useServerWakeStage, DEFAULT_SERVER_WAKE_LABELS } from
|
|
|
435
475
|
export type { ServerWakeLabels, ServerWakeNoticeProps } from "./components/server-wake";
|
|
436
476
|
// 0.18: sharing — grantees, roles, pending grants, candidates (Kurvenschmiede 1).
|
|
437
477
|
export { ShareCard, ShareDialog, SharePanel, DEFAULT_SHARE_CARD_LABELS } from "./components/share-card";
|
|
438
|
-
export type {
|
|
478
|
+
export type {
|
|
479
|
+
ShareCardProps,
|
|
480
|
+
ShareDialogProps,
|
|
481
|
+
SharePanelProps,
|
|
482
|
+
ShareCardLabels,
|
|
483
|
+
ShareRole,
|
|
484
|
+
ShareGrantee,
|
|
485
|
+
SharePendingGrant,
|
|
486
|
+
ShareCandidate,
|
|
487
|
+
ShareAddRequest,
|
|
488
|
+
} from "./components/share-card";
|
|
439
489
|
export * from "./components/line-items";
|
|
440
490
|
export * from "./components/progress-bar";
|
|
441
491
|
// Named: skeleton.tsx also holds SKELETON_CLASS, the look StatTile shares — internal.
|
|
@@ -548,6 +598,7 @@ export type {
|
|
|
548
598
|
LegalOperator,
|
|
549
599
|
LegalOperatorText,
|
|
550
600
|
LegalPageKey,
|
|
601
|
+
LegalInfoPageKey,
|
|
551
602
|
LegalTextSectionLabels,
|
|
552
603
|
LegalOperatorSectionLabels,
|
|
553
604
|
LegalFramedSectionLabels,
|
|
@@ -741,7 +792,13 @@ export type {
|
|
|
741
792
|
EmailChangeAction,
|
|
742
793
|
} from "./account/email-change-setting";
|
|
743
794
|
export { SessionsSetting, DEFAULT_SESSIONS_LABELS } from "./account/sessions-setting";
|
|
744
|
-
export type {
|
|
795
|
+
export type {
|
|
796
|
+
SessionsSettingProps,
|
|
797
|
+
SessionsLabels,
|
|
798
|
+
SessionItem,
|
|
799
|
+
SessionId,
|
|
800
|
+
SessionsAction,
|
|
801
|
+
} from "./account/sessions-setting";
|
|
745
802
|
export { DeleteAccountSetting, DEFAULT_DELETE_ACCOUNT_LABELS } from "./account/delete-account-setting";
|
|
746
803
|
export type {
|
|
747
804
|
DeleteAccountSettingProps,
|
|
@@ -883,9 +940,22 @@ export type {
|
|
|
883
940
|
export { DEFAULT_BILLING_LABELS, useBillingLabels, SUBSCRIPTION_STATUSES } from "./billing/billing-labels";
|
|
884
941
|
export type { BillingLabels, SubscriptionStatus } from "./billing/billing-labels";
|
|
885
942
|
export { BILLING_INTERVALS, planPrice, minorToMajor, formatPlanPrice, billingCurrencyFor } from "./billing/plan-price";
|
|
886
|
-
export type {
|
|
943
|
+
export type {
|
|
944
|
+
BillingInterval,
|
|
945
|
+
BillingCurrency,
|
|
946
|
+
PlanIntervalPrices,
|
|
947
|
+
PlanPrices,
|
|
948
|
+
PlanPriceAnswer,
|
|
949
|
+
} from "./billing/plan-price";
|
|
887
950
|
export { PlanCard, PlanPicker, GrantWarningConfirm, planRelation } from "./billing/plan-card";
|
|
888
|
-
export type {
|
|
951
|
+
export type {
|
|
952
|
+
BillingPlan,
|
|
953
|
+
PlanRelation,
|
|
954
|
+
PlanCardProps,
|
|
955
|
+
PlanPickerProps,
|
|
956
|
+
PlanChoice,
|
|
957
|
+
GrantWarningConfirmProps,
|
|
958
|
+
} from "./billing/plan-card";
|
|
889
959
|
export { SubscriptionStatusChip, SUBSCRIPTION_STATUS_TONES } from "./billing/subscription-status-chip";
|
|
890
960
|
export type { SubscriptionStatusChipProps } from "./billing/subscription-status-chip";
|
|
891
961
|
export { BillingBanner } from "./billing/billing-banner";
|
|
@@ -911,7 +981,12 @@ export {
|
|
|
911
981
|
withoutCheckoutReturn,
|
|
912
982
|
checkoutReturnUrl,
|
|
913
983
|
} from "./billing/checkout-return";
|
|
914
|
-
export {
|
|
984
|
+
export {
|
|
985
|
+
checkoutFingerprint,
|
|
986
|
+
checkoutLanded,
|
|
987
|
+
noteCheckoutStarted,
|
|
988
|
+
useCheckoutProcessing,
|
|
989
|
+
} from "./billing/checkout-processing";
|
|
915
990
|
export type { CheckoutOverview, CheckoutProcessingOptions } from "./billing/checkout-processing";
|
|
916
991
|
// The link to the pay page and Paddle's locale (§14.4); the page itself ships as dist/pay/.
|
|
917
992
|
export { PAY_PAGE_LANG_PARAM, paddleLocale, payPageUrl } from "./billing/pay-page";
|
package/src/landing/access.ts
CHANGED
|
@@ -19,8 +19,7 @@ import type { LabelOverride } from "../i18n/kit-labels";
|
|
|
19
19
|
* the switch is one line when it comes.
|
|
20
20
|
*/
|
|
21
21
|
export type AccessChoice =
|
|
22
|
-
|
|
23
|
-
| { kind: "register"; href: string };
|
|
22
|
+
{ kind: "request"; email: string; app?: string; askCompany?: boolean } | { kind: "register"; href: string };
|
|
24
23
|
|
|
25
24
|
/** What {@link accessAction} answers: where the access action goes and what it says. */
|
|
26
25
|
export interface AccessLink {
|
|
@@ -88,11 +87,7 @@ export function useAccessAction(access: AccessChoice, labels?: LabelOverride<Lan
|
|
|
88
87
|
const app = access.kind === "request" ? access.app : undefined;
|
|
89
88
|
const askCompany = access.kind === "request" ? access.askCompany === true : false;
|
|
90
89
|
return useMemo(
|
|
91
|
-
() =>
|
|
92
|
-
accessAction(
|
|
93
|
-
kind === "register" ? { kind, href: target } : { kind, email: target, app, askCompany },
|
|
94
|
-
words,
|
|
95
|
-
),
|
|
90
|
+
() => accessAction(kind === "register" ? { kind, href: target } : { kind, email: target, app, askCompany }, words),
|
|
96
91
|
[kind, target, app, askCompany, words],
|
|
97
92
|
);
|
|
98
93
|
}
|
|
@@ -109,9 +109,7 @@ export function Hero({
|
|
|
109
109
|
>
|
|
110
110
|
<div>
|
|
111
111
|
{shownBadge != null && <div className="mb-4">{shownBadge}</div>}
|
|
112
|
-
<Heading className="text-4xl font-bold tracking-tight text-balance text-primary sm:text-5xl">
|
|
113
|
-
{title}
|
|
114
|
-
</Heading>
|
|
112
|
+
<Heading className="text-4xl font-bold tracking-tight text-balance text-primary sm:text-5xl">{title}</Heading>
|
|
115
113
|
{subtitle != null && <p className="mt-4 max-w-xl text-lg text-secondary">{subtitle}</p>}
|
|
116
114
|
<div className="mt-8">
|
|
117
115
|
{actions ?? (
|
|
@@ -143,11 +141,7 @@ export type FeatureRowsProps = ComponentPropsWithRef<"section">;
|
|
|
143
141
|
*/
|
|
144
142
|
export function FeatureRows({ className, children, ...rest }: FeatureRowsProps) {
|
|
145
143
|
return (
|
|
146
|
-
<section
|
|
147
|
-
{...rest}
|
|
148
|
-
data-slot="landing-feature-rows"
|
|
149
|
-
className={cn("border-t border-subtle bg-surface", className)}
|
|
150
|
-
>
|
|
144
|
+
<section {...rest} data-slot="landing-feature-rows" className={cn("border-t border-subtle bg-surface", className)}>
|
|
151
145
|
<div className="mx-auto max-w-6xl px-4 py-8 sm:py-12">{children}</div>
|
|
152
146
|
</section>
|
|
153
147
|
);
|
|
@@ -191,7 +185,11 @@ export function FeatureRow({
|
|
|
191
185
|
<div
|
|
192
186
|
{...rest}
|
|
193
187
|
data-slot="landing-feature-row"
|
|
194
|
-
className={cn(
|
|
188
|
+
className={cn(
|
|
189
|
+
"group/feature grid grid-cols-1 items-center gap-8 py-10",
|
|
190
|
+
visual != null && "lg:grid-cols-2 lg:gap-16",
|
|
191
|
+
className,
|
|
192
|
+
)}
|
|
195
193
|
>
|
|
196
194
|
<div className="lg:group-even/feature:order-last">
|
|
197
195
|
{(icon != null || eyebrow != null) && (
|
|
@@ -250,7 +248,12 @@ export interface TrustStripProps extends Omit<ComponentPropsWithRef<"section">,
|
|
|
250
248
|
export function TrustStrip({ items, headingAs: Heading = "h3", className, ...rest }: TrustStripProps) {
|
|
251
249
|
return (
|
|
252
250
|
<section {...rest} data-slot="landing-trust" className={cn("mx-auto max-w-6xl px-4 py-12 sm:py-16", className)}>
|
|
253
|
-
<ul
|
|
251
|
+
<ul
|
|
252
|
+
className={cn(
|
|
253
|
+
"grid grid-cols-1 gap-8 sm:grid-cols-2",
|
|
254
|
+
items.length === 3 ? "lg:grid-cols-3" : "lg:grid-cols-4",
|
|
255
|
+
)}
|
|
256
|
+
>
|
|
254
257
|
{items.map((item, i) => (
|
|
255
258
|
<li key={i}>
|
|
256
259
|
{item.icon != null && (
|
|
@@ -298,11 +301,7 @@ export function CtaBand({
|
|
|
298
301
|
...rest
|
|
299
302
|
}: CtaBandProps) {
|
|
300
303
|
return (
|
|
301
|
-
<section
|
|
302
|
-
{...rest}
|
|
303
|
-
data-slot="landing-cta"
|
|
304
|
-
className={cn("border-t border-subtle bg-surface", className)}
|
|
305
|
-
>
|
|
304
|
+
<section {...rest} data-slot="landing-cta" className={cn("border-t border-subtle bg-surface", className)}>
|
|
306
305
|
<div className="mx-auto max-w-5xl px-4 py-16 text-center">
|
|
307
306
|
<Heading className="text-2xl font-semibold tracking-tight text-balance text-primary sm:text-3xl">
|
|
308
307
|
{title}
|
package/src/landing/page-seo.ts
CHANGED
|
@@ -67,9 +67,7 @@ export function usePageSeoIf(seo: PageSeo | null): void {
|
|
|
67
67
|
|
|
68
68
|
// The description tag ships in index.html, so upsert rather than append —
|
|
69
69
|
// two `meta[name=description]` tags would be a coin flip for the scraper.
|
|
70
|
-
const meta = description
|
|
71
|
-
? document.head.querySelector<HTMLMetaElement>('meta[name="description"]')
|
|
72
|
-
: null;
|
|
70
|
+
const meta = description ? document.head.querySelector<HTMLMetaElement>('meta[name="description"]') : null;
|
|
73
71
|
const previousDescription = meta?.content;
|
|
74
72
|
if (meta && description) meta.content = description;
|
|
75
73
|
|
package/src/lib/calc.ts
CHANGED
|
@@ -231,7 +231,10 @@ export function commitExpression(raw: string): string {
|
|
|
231
231
|
// not appear to state it differently. (The `[^0-9.-]` strip on the same line
|
|
232
232
|
// already ate whatever commas a non-global replace missed, so this changes no
|
|
233
233
|
// behaviour — it removes the need for the next reader to run it to find that out.)
|
|
234
|
-
const cleaned = s
|
|
234
|
+
const cleaned = s
|
|
235
|
+
.replace(/,/g, ".")
|
|
236
|
+
.replace(/[^0-9.-]/g, "")
|
|
237
|
+
.replace(/(?!^)-/g, "");
|
|
235
238
|
return cleaned.replace(/^(-?\d*\.?\d*).*$/, "$1");
|
|
236
239
|
}
|
|
237
240
|
|
|
@@ -39,7 +39,10 @@ function isEditable(node: Node | null | undefined): boolean {
|
|
|
39
39
|
const el = node instanceof Element ? node : node?.parentElement;
|
|
40
40
|
if (!el) return false;
|
|
41
41
|
if (el.closest("input, textarea, select")) return true;
|
|
42
|
-
return (
|
|
42
|
+
return (
|
|
43
|
+
(el as HTMLElement).isContentEditable === true ||
|
|
44
|
+
el.closest('[contenteditable=""], [contenteditable="true"]') !== null
|
|
45
|
+
);
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/** Table parts copied alone are wrapped back into a table, which Excel reads as cells. */
|
package/src/lib/dates.ts
CHANGED
|
@@ -129,11 +129,7 @@ export function parseIsoDate(s: string): Date | null {
|
|
|
129
129
|
* override (e.g. `{ dateStyle: "medium" }`). `locale` may be `undefined` since 0.34 —
|
|
130
130
|
* the runtime's default, as `Intl` reads it and as every other kit formatter takes it
|
|
131
131
|
* (DUP-11: DatePicker re-wrapped this function only to pass none). */
|
|
132
|
-
export function formatIsoDate(
|
|
133
|
-
iso: string,
|
|
134
|
-
locale: string | undefined,
|
|
135
|
-
options?: Intl.DateTimeFormatOptions,
|
|
136
|
-
): string {
|
|
132
|
+
export function formatIsoDate(iso: string, locale: string | undefined, options?: Intl.DateTimeFormatOptions): string {
|
|
137
133
|
const d = parseIsoDate(iso);
|
|
138
134
|
return d ? d.toLocaleDateString(locale, options) : "";
|
|
139
135
|
}
|
|
@@ -190,11 +186,7 @@ export function localeWeekStart(locale: string | undefined): 0 | 1 | 2 | 3 | 4 |
|
|
|
190
186
|
|
|
191
187
|
/** Whether two Dates fall on the same local calendar day. */
|
|
192
188
|
export function sameYmd(a: Date, b: Date): boolean {
|
|
193
|
-
return (
|
|
194
|
-
a.getFullYear() === b.getFullYear() &&
|
|
195
|
-
a.getMonth() === b.getMonth() &&
|
|
196
|
-
a.getDate() === b.getDate()
|
|
197
|
-
);
|
|
189
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
198
190
|
}
|
|
199
191
|
|
|
200
192
|
export interface DateRangePreset {
|
package/src/lib/decimal-marks.ts
CHANGED
|
@@ -56,9 +56,7 @@ export function normalizeTypedMarks(raw: string, mark: "," | "."): string {
|
|
|
56
56
|
const hasMark = operand.includes(mark);
|
|
57
57
|
const count = operand.split(other).length - 1;
|
|
58
58
|
if (count === 0) return operand;
|
|
59
|
-
const grouping = hasMark
|
|
60
|
-
? true
|
|
61
|
-
: count > 1 || (mark === "," && /^[1-9]\d{0,2}(\.\d{3})+$/.test(operand));
|
|
59
|
+
const grouping = hasMark ? true : count > 1 || (mark === "," && /^[1-9]\d{0,2}(\.\d{3})+$/.test(operand));
|
|
62
60
|
return grouping ? operand.split(other).join("") : operand;
|
|
63
61
|
});
|
|
64
62
|
}
|
|
@@ -137,7 +137,8 @@ export function resetDeviceSettings(): string[] {
|
|
|
137
137
|
entry.reset();
|
|
138
138
|
keys.push(...covered);
|
|
139
139
|
} catch (error) {
|
|
140
|
-
if (devBuild())
|
|
140
|
+
if (devBuild())
|
|
141
|
+
console.error(`resetDeviceSettings: the reset of "${entry.key}" threw; its key is removed instead.`, error);
|
|
141
142
|
remove.push(entry);
|
|
142
143
|
}
|
|
143
144
|
}
|