@eifi1/ui-kit 0.51.4 → 0.51.6
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 +5 -5
- 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 +1 -4
- 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 +10 -8
- 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.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 +44 -56
- 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.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 +6 -8
- 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 +2 -7
- 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 +2 -8
- 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.map +1 -1
- package/dist/components/legal-page.js +14 -2
- package/dist/components/legal-page.js.map +1 -1
- package/dist/components/legal.js +12 -2
- 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.js +22 -10
- 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.d.ts +24 -2
- package/dist/components/treemap.js +28 -4
- 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.js +4 -1
- 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 +4 -1
- 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 +4 -1
- package/dist/i18n/locales/en.js.map +2 -2
- package/dist/i18n/locales/es.js +4 -1
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.js +4 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.js +4 -1
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.js +4 -1
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/plurals.js.map +1 -1
- package/dist/i18n/review.js +13 -7
- package/dist/i18n/review.js.map +1 -1
- package/dist/i18n/shared-labels.js.map +1 -1
- package/dist/index.d.ts +16 -16
- 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 +4 -0
- 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-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.js +12 -6
- 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.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/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/contrast.d.ts +2 -2
- 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 +12 -42
- 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 +13 -14
- 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 +1 -3
- package/src/components/data-table-groups.tsx +3 -1
- package/src/components/data-table-head.tsx +27 -45
- 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 +489 -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 +6 -8
- 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 +4 -17
- package/src/components/image-grid.tsx +1 -6
- package/src/components/inline-edit-field.tsx +1 -5
- package/src/components/inline-entity-combobox.tsx +6 -21
- package/src/components/input.tsx +14 -2
- package/src/components/jump-calendar.tsx +2 -6
- package/src/components/legal-labels.ts +1 -2
- package/src/components/legal-page.tsx +18 -7
- package/src/components/legal.tsx +14 -5
- package/src/components/lightbox.tsx +1 -3
- package/src/components/line-items.tsx +7 -15
- package/src/components/list.tsx +29 -25
- 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 +59 -9
- 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 +12 -8
- 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 +33 -49
- package/src/i18n/kit-labels.tsx +5 -20
- package/src/i18n/languages.ts +2 -8
- package/src/i18n/locales/en.ts +11 -31
- package/src/i18n/locales/es.ts +35 -49
- package/src/i18n/locales/fr.ts +34 -51
- package/src/i18n/locales/hu.ts +26 -37
- package/src/i18n/locales/it.ts +35 -52
- package/src/i18n/locales/zh.ts +14 -32
- package/src/i18n/plurals.ts +4 -1
- package/src/i18n/review.ts +18 -7
- package/src/i18n/shared-labels.ts +1 -2
- package/src/index.ts +106 -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 +15 -3
- 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-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 +12 -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 +9 -8
- package/src/shell/topbar-controls.tsx +5 -19
- package/src/shell/tour-menu.tsx +9 -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/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);
|
|
@@ -407,7 +409,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
407
409
|
"billing.buyerHolds": [["{{buyer}}"], [undefined]],
|
|
408
410
|
"billing.paymentFailedAskBuyer": [["{{buyer}}"], [undefined]],
|
|
409
411
|
"billing.cancelConfirmBody": [["{{date}}"]],
|
|
410
|
-
"billing.portalOpensNewTab": [
|
|
412
|
+
"billing.portalOpensNewTab": [
|
|
413
|
+
["{{provider}}", "{{app}}"],
|
|
414
|
+
["{{provider}}", undefined],
|
|
415
|
+
],
|
|
411
416
|
"planChange.current": [["{{plan}}"]],
|
|
412
417
|
"planChange.changed": [["{{from}}", "{{to}}"]],
|
|
413
418
|
"planChange.set": [["{{to}}"]],
|
|
@@ -417,7 +422,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
417
422
|
// the users tile's new accounts.
|
|
418
423
|
"adminArea.waiting": one,
|
|
419
424
|
// 0.45.0 (admin §9.3.4): an IconButton's name with its waiting count.
|
|
420
|
-
"adminArea.waitingLabel": [
|
|
425
|
+
"adminArea.waitingLabel": [
|
|
426
|
+
["{{label}}", 1],
|
|
427
|
+
["{{label}}", 3],
|
|
428
|
+
],
|
|
421
429
|
// 0.45.0 (admin §9.2.4): the test mail's transport, masked address and limiter.
|
|
422
430
|
"mailTestCard.transport": [["{{backend}}"]],
|
|
423
431
|
"mailTestCard.sent": [["{{address}}"]],
|
|
@@ -437,7 +445,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
|
|
|
437
445
|
// 0.43.0 (docs/tours-harmonization.md §3, §8): the tours page's counts, its group
|
|
438
446
|
// option, the completion day and a reset's day and reason.
|
|
439
447
|
"tourCatalogue.groupAll": one,
|
|
440
|
-
"tourCatalogue.groupOption": [
|
|
448
|
+
"tourCatalogue.groupOption": [
|
|
449
|
+
["{{group}}", 1],
|
|
450
|
+
["{{group}}", 3],
|
|
451
|
+
],
|
|
441
452
|
"tourCatalogue.stateAll": one,
|
|
442
453
|
"tourCatalogue.stateTodo": one,
|
|
443
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.
|
|
@@ -742,7 +792,13 @@ export type {
|
|
|
742
792
|
EmailChangeAction,
|
|
743
793
|
} from "./account/email-change-setting";
|
|
744
794
|
export { SessionsSetting, DEFAULT_SESSIONS_LABELS } from "./account/sessions-setting";
|
|
745
|
-
export type {
|
|
795
|
+
export type {
|
|
796
|
+
SessionsSettingProps,
|
|
797
|
+
SessionsLabels,
|
|
798
|
+
SessionItem,
|
|
799
|
+
SessionId,
|
|
800
|
+
SessionsAction,
|
|
801
|
+
} from "./account/sessions-setting";
|
|
746
802
|
export { DeleteAccountSetting, DEFAULT_DELETE_ACCOUNT_LABELS } from "./account/delete-account-setting";
|
|
747
803
|
export type {
|
|
748
804
|
DeleteAccountSettingProps,
|
|
@@ -884,9 +940,22 @@ export type {
|
|
|
884
940
|
export { DEFAULT_BILLING_LABELS, useBillingLabels, SUBSCRIPTION_STATUSES } from "./billing/billing-labels";
|
|
885
941
|
export type { BillingLabels, SubscriptionStatus } from "./billing/billing-labels";
|
|
886
942
|
export { BILLING_INTERVALS, planPrice, minorToMajor, formatPlanPrice, billingCurrencyFor } from "./billing/plan-price";
|
|
887
|
-
export type {
|
|
943
|
+
export type {
|
|
944
|
+
BillingInterval,
|
|
945
|
+
BillingCurrency,
|
|
946
|
+
PlanIntervalPrices,
|
|
947
|
+
PlanPrices,
|
|
948
|
+
PlanPriceAnswer,
|
|
949
|
+
} from "./billing/plan-price";
|
|
888
950
|
export { PlanCard, PlanPicker, GrantWarningConfirm, planRelation } from "./billing/plan-card";
|
|
889
|
-
export type {
|
|
951
|
+
export type {
|
|
952
|
+
BillingPlan,
|
|
953
|
+
PlanRelation,
|
|
954
|
+
PlanCardProps,
|
|
955
|
+
PlanPickerProps,
|
|
956
|
+
PlanChoice,
|
|
957
|
+
GrantWarningConfirmProps,
|
|
958
|
+
} from "./billing/plan-card";
|
|
890
959
|
export { SubscriptionStatusChip, SUBSCRIPTION_STATUS_TONES } from "./billing/subscription-status-chip";
|
|
891
960
|
export type { SubscriptionStatusChipProps } from "./billing/subscription-status-chip";
|
|
892
961
|
export { BillingBanner } from "./billing/billing-banner";
|
|
@@ -912,7 +981,12 @@ export {
|
|
|
912
981
|
withoutCheckoutReturn,
|
|
913
982
|
checkoutReturnUrl,
|
|
914
983
|
} from "./billing/checkout-return";
|
|
915
|
-
export {
|
|
984
|
+
export {
|
|
985
|
+
checkoutFingerprint,
|
|
986
|
+
checkoutLanded,
|
|
987
|
+
noteCheckoutStarted,
|
|
988
|
+
useCheckoutProcessing,
|
|
989
|
+
} from "./billing/checkout-processing";
|
|
916
990
|
export type { CheckoutOverview, CheckoutProcessingOptions } from "./billing/checkout-processing";
|
|
917
991
|
// The link to the pay page and Paddle's locale (§14.4); the page itself ships as dist/pay/.
|
|
918
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
|
}
|
package/src/lib/direction.ts
CHANGED
|
@@ -16,9 +16,7 @@ export type Direction = "ltr" | "rtl";
|
|
|
16
16
|
/** The effective direction at `el`: its nearest `[dir]` ancestor (or itself), else the
|
|
17
17
|
* document's, else LTR. Attribute-based on purpose — jsdom computes no `direction`. */
|
|
18
18
|
export function dirOf(el: Element | null | undefined): Direction {
|
|
19
|
-
const source =
|
|
20
|
-
el?.closest("[dir]") ??
|
|
21
|
-
(typeof document !== "undefined" ? document.documentElement : null);
|
|
19
|
+
const source = el?.closest("[dir]") ?? (typeof document !== "undefined" ? document.documentElement : null);
|
|
22
20
|
return source?.getAttribute("dir") === "rtl" ? "rtl" : "ltr";
|
|
23
21
|
}
|
|
24
22
|
|
package/src/lib/iban.ts
CHANGED
|
@@ -30,15 +30,95 @@
|
|
|
30
30
|
* under FR) are covered by that code, as the registry lists them.
|
|
31
31
|
*/
|
|
32
32
|
export const IBAN_LENGTHS: Readonly<Record<string, number>> = Object.freeze({
|
|
33
|
-
AD: 24,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
AD: 24,
|
|
34
|
+
AE: 23,
|
|
35
|
+
AL: 28,
|
|
36
|
+
AT: 20,
|
|
37
|
+
AZ: 28,
|
|
38
|
+
BA: 20,
|
|
39
|
+
BE: 16,
|
|
40
|
+
BG: 22,
|
|
41
|
+
BH: 22,
|
|
42
|
+
BI: 27,
|
|
43
|
+
BR: 29,
|
|
44
|
+
BY: 28,
|
|
45
|
+
CH: 21,
|
|
46
|
+
CR: 22,
|
|
47
|
+
CY: 28,
|
|
48
|
+
CZ: 24,
|
|
49
|
+
DE: 22,
|
|
50
|
+
DJ: 27,
|
|
51
|
+
DK: 18,
|
|
52
|
+
DO: 28,
|
|
53
|
+
EE: 20,
|
|
54
|
+
EG: 29,
|
|
55
|
+
ES: 24,
|
|
56
|
+
FI: 18,
|
|
57
|
+
FK: 18,
|
|
58
|
+
FO: 18,
|
|
59
|
+
FR: 27,
|
|
60
|
+
GB: 22,
|
|
61
|
+
GE: 22,
|
|
62
|
+
GI: 23,
|
|
63
|
+
GL: 18,
|
|
64
|
+
GR: 27,
|
|
65
|
+
GT: 28,
|
|
66
|
+
HN: 28,
|
|
67
|
+
HR: 21,
|
|
68
|
+
HU: 28,
|
|
69
|
+
IE: 22,
|
|
70
|
+
IL: 23,
|
|
71
|
+
IQ: 23,
|
|
72
|
+
IS: 26,
|
|
73
|
+
IT: 27,
|
|
74
|
+
JO: 30,
|
|
75
|
+
KW: 30,
|
|
76
|
+
KZ: 20,
|
|
77
|
+
LB: 28,
|
|
78
|
+
LC: 32,
|
|
79
|
+
LI: 21,
|
|
80
|
+
LT: 20,
|
|
81
|
+
LU: 20,
|
|
82
|
+
LV: 21,
|
|
83
|
+
LY: 25,
|
|
84
|
+
MC: 27,
|
|
85
|
+
MD: 24,
|
|
86
|
+
ME: 22,
|
|
87
|
+
MK: 19,
|
|
88
|
+
MN: 20,
|
|
89
|
+
MR: 27,
|
|
90
|
+
MT: 31,
|
|
91
|
+
MU: 30,
|
|
92
|
+
NI: 28,
|
|
93
|
+
NL: 18,
|
|
94
|
+
NO: 15,
|
|
95
|
+
OM: 23,
|
|
96
|
+
PK: 24,
|
|
97
|
+
PL: 28,
|
|
98
|
+
PS: 29,
|
|
99
|
+
PT: 25,
|
|
100
|
+
QA: 29,
|
|
101
|
+
RO: 24,
|
|
102
|
+
RS: 22,
|
|
103
|
+
RU: 33,
|
|
104
|
+
SA: 24,
|
|
105
|
+
SC: 31,
|
|
106
|
+
SD: 18,
|
|
107
|
+
SE: 24,
|
|
108
|
+
SI: 19,
|
|
109
|
+
SK: 24,
|
|
110
|
+
SM: 27,
|
|
111
|
+
SO: 23,
|
|
112
|
+
ST: 25,
|
|
113
|
+
SV: 28,
|
|
114
|
+
TL: 23,
|
|
115
|
+
TN: 24,
|
|
116
|
+
TR: 26,
|
|
117
|
+
UA: 29,
|
|
118
|
+
VA: 22,
|
|
119
|
+
VG: 24,
|
|
120
|
+
XK: 20,
|
|
121
|
+
YE: 30,
|
|
42
122
|
});
|
|
43
123
|
|
|
44
124
|
/**
|
package/src/lib/logger.ts
CHANGED
|
@@ -60,11 +60,7 @@ const loggerImpl: LoggerImpl = (f, name) => (set, get, store) => {
|
|
|
60
60
|
const prev = get();
|
|
61
61
|
(set as (...a: unknown[]) => void)(...args);
|
|
62
62
|
if (storeLog) {
|
|
63
|
-
console.debug(
|
|
64
|
-
`%c[store${name ? `:${name}` : ""}]`,
|
|
65
|
-
"color:#0d9488",
|
|
66
|
-
{ prev, next: get() },
|
|
67
|
-
);
|
|
63
|
+
console.debug(`%c[store${name ? `:${name}` : ""}]`, "color:#0d9488", { prev, next: get() });
|
|
68
64
|
}
|
|
69
65
|
}) as typeof set;
|
|
70
66
|
return f(loggedSet, get, store);
|
package/src/lib/person-name.ts
CHANGED
|
@@ -147,9 +147,7 @@ export function personInitials(name: PersonName, locale?: string): string {
|
|
|
147
147
|
if (!first || !last) {
|
|
148
148
|
const words = (first || last).split(/\s+/);
|
|
149
149
|
const initials =
|
|
150
|
-
words.length >= 2
|
|
151
|
-
? firstGrapheme(words[0]!) + firstGrapheme(words[1]!)
|
|
152
|
-
: [...words[0]!].slice(0, 2).join("");
|
|
150
|
+
words.length >= 2 ? firstGrapheme(words[0]!) + firstGrapheme(words[1]!) : [...words[0]!].slice(0, 2).join("");
|
|
153
151
|
return upper(initials, locale);
|
|
154
152
|
}
|
|
155
153
|
const pair = order === "family-first" ? [last, first] : [first, last];
|
package/src/lib/phone.ts
CHANGED
|
@@ -82,13 +82,7 @@ const RULES: Record<PhoneCountryCode, CountryRule> = {
|
|
|
82
82
|
min: 6,
|
|
83
83
|
max: 13,
|
|
84
84
|
group: (n) =>
|
|
85
|
-
/^15/.test(n)
|
|
86
|
-
? cut(n, [4])
|
|
87
|
-
: /^1[67]/.test(n)
|
|
88
|
-
? cut(n, [3])
|
|
89
|
-
: /^(30|40|69|89)/.test(n)
|
|
90
|
-
? cut(n, [2])
|
|
91
|
-
: [n],
|
|
85
|
+
/^15/.test(n) ? cut(n, [4]) : /^1[67]/.test(n) ? cut(n, [3]) : /^(30|40|69|89)/.test(n) ? cut(n, [2]) : [n],
|
|
92
86
|
},
|
|
93
87
|
// Vienna is "1"; mobile numbers start 6xx; other area codes vary, so one block.
|
|
94
88
|
AT: {
|
|
@@ -169,7 +163,10 @@ export function parsePhone(input: string, country: PhoneCountry = "CH"): ParsedP
|
|
|
169
163
|
}
|
|
170
164
|
if (international) {
|
|
171
165
|
// "+41 (0)21 …": the bracketed trunk prefix written for callers inside the country.
|
|
172
|
-
digits = text
|
|
166
|
+
digits = text
|
|
167
|
+
.replace(/\(\s*0\s*\)/g, "")
|
|
168
|
+
.replace(/\D/g, "")
|
|
169
|
+
.replace(/^00/, "");
|
|
173
170
|
if (digits.startsWith("0")) return null;
|
|
174
171
|
const known = BY_DIAL.find((c) => digits.startsWith(RULES[c].dial));
|
|
175
172
|
if (known) {
|