@eifi1/ui-kit 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +445 -283
- package/dist/account/account-parts.d.ts +6 -8
- package/dist/account/account-parts.js +1 -2
- package/dist/account/account-parts.js.map +1 -1
- package/dist/{components → account}/account-settings-labels.d.ts +16 -10
- package/dist/{components → account}/account-settings-labels.js +3 -1
- package/dist/account/account-settings-labels.js.map +1 -0
- package/dist/{components → account}/account-settings.d.ts +53 -23
- package/dist/{components → account}/account-settings.js +97 -26
- package/dist/account/account-settings.js.map +1 -0
- package/dist/account/data-export-setting-labels.d.ts +2 -0
- package/dist/account/data-export-setting-labels.js +15 -0
- package/dist/account/data-export-setting-labels.js.map +1 -0
- package/dist/account/data-export-setting.d.ts +9 -11
- package/dist/account/data-export-setting.js +11 -27
- package/dist/account/data-export-setting.js.map +1 -1
- package/dist/account/delete-account-setting-labels.d.ts +2 -0
- package/dist/account/delete-account-setting-labels.js +23 -0
- package/dist/account/delete-account-setting-labels.js.map +1 -0
- package/dist/account/delete-account-setting.d.ts +132 -100
- package/dist/account/delete-account-setting.js +7 -23
- package/dist/account/delete-account-setting.js.map +1 -1
- package/dist/account/email-change-setting-labels.d.ts +2 -0
- package/dist/account/email-change-setting-labels.js +28 -0
- package/dist/account/email-change-setting-labels.js.map +1 -0
- package/dist/account/email-change-setting.d.ts +10 -12
- package/dist/account/email-change-setting.js +11 -30
- package/dist/account/email-change-setting.js.map +1 -1
- package/dist/{components → account}/passkeys-setting.d.ts +9 -12
- package/dist/{components → account}/passkeys-setting.js +10 -7
- package/dist/account/passkeys-setting.js.map +1 -0
- package/dist/account/sessions-setting-labels.d.ts +2 -0
- package/dist/account/sessions-setting-labels.js +22 -0
- package/dist/account/sessions-setting-labels.js.map +1 -0
- package/dist/account/sessions-setting.d.ts +12 -14
- package/dist/account/sessions-setting.js +8 -23
- package/dist/account/sessions-setting.js.map +1 -1
- package/dist/admin/admin-action-confirm-labels.d.ts +2 -0
- package/dist/admin/admin-action-confirm-labels.js +16 -0
- package/dist/admin/admin-action-confirm-labels.js.map +1 -0
- package/dist/admin/admin-action-confirm.d.ts +156 -100
- package/dist/admin/admin-action-confirm.js +17 -22
- package/dist/admin/admin-action-confirm.js.map +1 -1
- package/dist/admin/admin-action-log-labels.d.ts +2 -0
- package/dist/admin/admin-action-log-labels.js +73 -0
- package/dist/admin/admin-action-log-labels.js.map +1 -0
- package/dist/admin/admin-action-log.d.ts +98 -22
- package/dist/admin/admin-action-log.js +48 -45
- package/dist/admin/admin-action-log.js.map +1 -1
- package/dist/admin/admin-parts.d.ts +7 -14
- package/dist/admin/admin-parts.js +0 -4
- package/dist/admin/admin-parts.js.map +1 -1
- package/dist/admin/invitations-panel-labels.d.ts +2 -0
- package/dist/admin/invitations-panel-labels.js +29 -0
- package/dist/admin/invitations-panel-labels.js.map +1 -0
- package/dist/admin/invitations-panel.d.ts +167 -100
- package/dist/admin/invitations-panel.js +12 -31
- package/dist/admin/invitations-panel.js.map +1 -1
- package/dist/admin/plan-change-labels.d.ts +2 -0
- package/dist/admin/plan-change-labels.js +22 -0
- package/dist/admin/plan-change-labels.js.map +1 -0
- package/dist/admin/plan-change.d.ts +244 -100
- package/dist/admin/plan-change.js +17 -23
- package/dist/admin/plan-change.js.map +1 -1
- package/dist/admin/reviewer-scope-editor-labels.d.ts +2 -0
- package/dist/admin/reviewer-scope-editor-labels.js +14 -0
- package/dist/admin/reviewer-scope-editor-labels.js.map +1 -0
- package/dist/admin/reviewer-scope-editor.d.ts +95 -100
- package/dist/admin/reviewer-scope-editor.js +5 -13
- package/dist/admin/reviewer-scope-editor.js.map +1 -1
- package/dist/admin/role-select-labels.d.ts +2 -0
- package/dist/admin/role-select-labels.js +15 -0
- package/dist/admin/role-select-labels.js.map +1 -0
- package/dist/admin/role-select.d.ts +136 -100
- package/dist/admin/role-select.js +7 -18
- package/dist/admin/role-select.js.map +1 -1
- package/dist/admin/transfer-ownership-dialog-labels.d.ts +2 -0
- package/dist/admin/transfer-ownership-dialog-labels.js +18 -0
- package/dist/admin/transfer-ownership-dialog-labels.js.map +1 -0
- package/dist/admin/transfer-ownership-dialog.d.ts +81 -100
- package/dist/admin/transfer-ownership-dialog.js +3 -15
- package/dist/admin/transfer-ownership-dialog.js.map +1 -1
- package/dist/admin/user-roster-labels.d.ts +2 -0
- package/dist/admin/user-roster-labels.js +16 -0
- package/dist/admin/user-roster-labels.js.map +1 -0
- package/dist/admin/user-roster.d.ts +225 -100
- package/dist/admin/user-roster.js +4 -14
- package/dist/admin/user-roster.js.map +1 -1
- package/dist/auth/accept-invitation-labels.d.ts +2 -0
- package/dist/auth/accept-invitation-labels.js +20 -0
- package/dist/auth/accept-invitation-labels.js.map +1 -0
- package/dist/auth/accept-invitation.d.ts +11 -13
- package/dist/auth/accept-invitation.js +3 -16
- package/dist/auth/accept-invitation.js.map +1 -1
- package/dist/auth/auth-errors.d.ts +34 -23
- package/dist/auth/auth-errors.js +8 -4
- package/dist/auth/auth-errors.js.map +1 -1
- package/dist/auth/complete-name-dialog-labels.d.ts +2 -0
- package/dist/auth/complete-name-dialog-labels.js +14 -0
- package/dist/auth/complete-name-dialog-labels.js.map +1 -0
- package/dist/auth/complete-name-dialog.d.ts +9 -11
- package/dist/auth/complete-name-dialog.js +4 -11
- package/dist/auth/complete-name-dialog.js.map +1 -1
- package/dist/auth/email-tag.d.ts +2 -4
- package/dist/auth/forgot-password-form-labels.d.ts +3 -0
- package/dist/auth/forgot-password-form-labels.js +17 -0
- package/dist/auth/forgot-password-form-labels.js.map +1 -0
- package/dist/auth/forgot-password-form.d.ts +9 -12
- package/dist/auth/forgot-password-form.js +6 -15
- package/dist/auth/forgot-password-form.js.map +1 -1
- package/dist/auth/form-rules.d.ts +5 -7
- package/dist/auth/new-password-fields.d.ts +4 -8
- package/dist/auth/new-password-fields.js +1 -1
- package/dist/auth/new-password-fields.js.map +1 -1
- package/dist/auth/not-found-page-labels.d.ts +2 -0
- package/dist/auth/not-found-page-labels.js +11 -0
- package/dist/auth/not-found-page-labels.js.map +1 -0
- package/dist/auth/not-found-page.d.ts +9 -11
- package/dist/auth/not-found-page.js +5 -10
- package/dist/auth/not-found-page.js.map +1 -1
- package/dist/auth/register-form-labels.d.ts +3 -0
- package/dist/auth/register-form-labels.js +28 -0
- package/dist/auth/register-form-labels.js.map +1 -0
- package/dist/auth/register-form.d.ts +174 -100
- package/dist/auth/register-form.js +11 -31
- package/dist/auth/register-form.js.map +1 -1
- package/dist/auth/reset-password-form-labels.d.ts +3 -0
- package/dist/auth/reset-password-form-labels.js +24 -0
- package/dist/auth/reset-password-form-labels.js.map +1 -0
- package/dist/auth/reset-password-form.d.ts +12 -15
- package/dist/auth/reset-password-form.js +6 -22
- package/dist/auth/reset-password-form.js.map +1 -1
- package/dist/auth/sign-in-form-labels.d.ts +3 -0
- package/dist/auth/sign-in-form-labels.js +42 -0
- package/dist/auth/sign-in-form-labels.js.map +1 -0
- package/dist/auth/sign-in-form.d.ts +15 -19
- package/dist/auth/sign-in-form.js +12 -46
- package/dist/auth/sign-in-form.js.map +1 -1
- package/dist/auth/status-parts.d.ts +13 -17
- package/dist/auth/status-parts.js +3 -3
- package/dist/auth/status-parts.js.map +1 -1
- package/dist/auth/verify-email-labels.d.ts +2 -0
- package/dist/auth/verify-email-labels.js +25 -0
- package/dist/auth/verify-email-labels.js.map +1 -0
- package/dist/auth/verify-email.d.ts +15 -17
- package/dist/auth/verify-email.js +4 -21
- package/dist/auth/verify-email.js.map +1 -1
- package/dist/billing/billing-banner.d.ts +8 -108
- package/dist/billing/billing-banner.js +2 -1
- package/dist/billing/billing-banner.js.map +1 -1
- package/dist/billing/billing-labels.d.ts +168 -100
- package/dist/billing/billing-labels.js.map +1 -1
- package/dist/billing/billing-lock.d.ts +10 -109
- package/dist/billing/billing-overview.d.ts +7 -108
- package/dist/billing/billing-standing.d.ts +6 -107
- package/dist/billing/checkout-processing.d.ts +8 -110
- package/dist/billing/checkout-processing.js +2 -9
- package/dist/billing/checkout-processing.js.map +1 -1
- package/dist/billing/checkout-return.d.ts +5 -7
- package/dist/billing/pay-page.d.ts +22 -119
- package/dist/billing/pay-page.js.map +1 -1
- package/dist/billing/plan-card.d.ts +14 -114
- package/dist/billing/plan-card.js +15 -13
- package/dist/billing/plan-card.js.map +1 -1
- package/dist/billing/plan-limit-notice.d.ts +8 -108
- package/dist/billing/plan-limit-notice.js +1 -1
- package/dist/billing/plan-limit-notice.js.map +1 -1
- package/dist/billing/plan-limit-toast.d.ts +6 -106
- package/dist/billing/plan-limit.d.ts +2 -4
- package/dist/billing/plan-price.d.ts +10 -12
- package/dist/billing/subscription-actions.d.ts +6 -108
- package/dist/billing/subscription-actions.js +2 -2
- package/dist/billing/subscription-actions.js.map +1 -1
- package/dist/billing/subscription-status-chip.d.ts +7 -107
- package/dist/chart.d.ts +12 -112
- package/dist/chart.js +4 -0
- package/dist/chart.js.map +1 -1
- package/dist/components/account-chips-labels.d.ts +10 -0
- package/dist/components/account-chips-labels.js +15 -0
- package/dist/components/account-chips-labels.js.map +1 -0
- package/dist/components/account-chips.d.ts +22 -44
- package/dist/components/account-chips.js +9 -14
- package/dist/components/account-chips.js.map +1 -1
- package/dist/components/alert-banner.d.ts +15 -11
- package/dist/components/alert-banner.js +28 -18
- package/dist/components/alert-banner.js.map +1 -1
- package/dist/components/amount-input.d.ts +66 -109
- package/dist/components/amount-input.js +259 -283
- package/dist/components/amount-input.js.map +1 -1
- package/dist/components/appearance-labels.d.ts +6 -10
- package/dist/components/appearance-labels.js.map +1 -1
- package/dist/components/authed-image-labels.d.ts +2 -0
- package/dist/components/authed-image-labels.js +10 -0
- package/dist/components/authed-image-labels.js.map +1 -0
- package/dist/components/authed-image.d.ts +11 -13
- package/dist/components/authed-image.js +2 -6
- package/dist/components/authed-image.js.map +1 -1
- package/dist/components/autocomplete.d.ts +13 -11
- package/dist/components/autocomplete.js +35 -30
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/breadcrumbs-labels.d.ts +2 -0
- package/dist/components/breadcrumbs-labels.js +9 -0
- package/dist/components/breadcrumbs-labels.js.map +1 -0
- package/dist/components/breadcrumbs.d.ts +10 -12
- package/dist/components/breadcrumbs.js +7 -10
- package/dist/components/breadcrumbs.js.map +1 -1
- package/dist/components/bulk-action-bar-labels.d.ts +2 -0
- package/dist/components/bulk-action-bar-labels.js +10 -0
- package/dist/components/bulk-action-bar-labels.js.map +1 -0
- package/dist/components/bulk-action-bar.d.ts +10 -12
- package/dist/components/bulk-action-bar.js +9 -12
- package/dist/components/bulk-action-bar.js.map +1 -1
- package/dist/components/button-group.d.ts +7 -109
- package/dist/components/button-group.js +5 -5
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button-look.d.ts +88 -0
- package/dist/components/button-look.js +91 -0
- package/dist/components/button-look.js.map +1 -0
- package/dist/components/button.d.ts +153 -0
- package/dist/components/button.js +165 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calculator.d.ts +8 -106
- package/dist/components/calculator.js +10 -7
- package/dist/components/calculator.js.map +1 -1
- package/dist/components/calendar-heatmap-labels.d.ts +3 -0
- package/dist/components/calendar-heatmap-labels.js +12 -0
- package/dist/components/calendar-heatmap-labels.js.map +1 -0
- package/dist/components/calendar-heatmap.d.ts +13 -16
- package/dist/components/calendar-heatmap.js +7 -13
- package/dist/components/calendar-heatmap.js.map +1 -1
- package/dist/components/card.d.ts +145 -0
- package/dist/components/card.js +186 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/chart-height.d.ts +4 -7
- package/dist/components/chart-zoom-core.d.ts +202 -0
- package/dist/components/chart-zoom-core.js +334 -0
- package/dist/components/chart-zoom-core.js.map +1 -0
- package/dist/components/chart-zoom.d.ts +39 -205
- package/dist/components/chart-zoom.js +15 -316
- package/dist/components/chart-zoom.js.map +1 -1
- package/dist/components/chart.d.ts +11 -15
- package/dist/components/chart.js +11 -11
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox-group.d.ts +6 -10
- package/dist/components/checkbox-group.js +10 -9
- package/dist/components/checkbox-group.js.map +1 -1
- package/dist/components/checkbox.d.ts +8 -12
- package/dist/components/checkbox.js +20 -18
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/chip-input.d.ts +73 -0
- package/dist/components/chip-input.js +224 -0
- package/dist/components/chip-input.js.map +1 -0
- package/dist/components/chip-labels.d.ts +2 -0
- package/dist/components/chip-labels.js +12 -0
- package/dist/components/chip-labels.js.map +1 -0
- package/dist/components/chip.d.ts +18 -93
- package/dist/components/chip.js +74 -426
- package/dist/components/chip.js.map +1 -1
- package/dist/components/choice-card.d.ts +21 -18
- package/dist/components/choice-card.js +45 -45
- package/dist/components/choice-card.js.map +1 -1
- package/dist/components/column-mapper-labels.d.ts +5 -0
- package/dist/components/column-mapper-labels.js +34 -0
- package/dist/components/column-mapper-labels.js.map +1 -0
- package/dist/components/column-mapper.d.ts +15 -17
- package/dist/components/column-mapper.js +11 -37
- package/dist/components/column-mapper.js.map +1 -1
- package/dist/components/combobox-core.d.ts +79 -40
- package/dist/components/combobox-core.js +189 -122
- package/dist/components/combobox-core.js.map +1 -1
- package/dist/components/combobox-suggestions.d.ts +76 -0
- package/dist/components/combobox-suggestions.js +56 -0
- package/dist/components/combobox-suggestions.js.map +1 -0
- package/dist/components/combobox.d.ts +14 -159
- package/dist/components/combobox.js +40 -507
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/confirm-dialog-labels.d.ts +7 -0
- package/dist/components/confirm-dialog-labels.js +10 -0
- package/dist/components/confirm-dialog-labels.js.map +1 -0
- package/dist/components/confirm-dialog.d.ts +165 -100
- package/dist/components/confirm-dialog.js +2 -6
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/copy-button-labels.d.ts +2 -0
- package/dist/components/copy-button-labels.js +12 -0
- package/dist/components/copy-button-labels.js.map +1 -0
- package/dist/components/copy-button.d.ts +70 -100
- package/dist/components/copy-button.js +4 -9
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/country-select-labels.d.ts +2 -0
- package/dist/components/country-select-labels.js +10 -0
- package/dist/components/country-select-labels.js.map +1 -0
- package/dist/components/country-select.d.ts +18 -15
- package/dist/components/country-select.js +49 -64
- package/dist/components/country-select.js.map +1 -1
- package/dist/components/currency-option-list.d.ts +63 -0
- package/dist/components/currency-option-list.js +135 -0
- package/dist/components/currency-option-list.js.map +1 -0
- package/dist/components/currency-select.d.ts +10 -30
- package/dist/components/currency-select.js +50 -133
- package/dist/components/currency-select.js.map +1 -1
- package/dist/components/danger-confirm-labels.d.ts +14 -0
- package/dist/components/danger-confirm-labels.js +17 -0
- package/dist/components/danger-confirm-labels.js.map +1 -0
- package/dist/components/danger-confirm.d.ts +448 -100
- package/dist/components/danger-confirm.js +40 -46
- package/dist/components/danger-confirm.js.map +1 -1
- package/dist/components/data-table-cells.d.ts +9 -24
- package/dist/components/data-table-cells.js +1 -1
- package/dist/components/data-table-cells.js.map +1 -1
- package/dist/components/data-table-column-settings.d.ts +16 -0
- package/dist/components/data-table-column-settings.js +119 -0
- package/dist/components/data-table-column-settings.js.map +1 -0
- package/dist/components/data-table-filter-popover.d.ts +5 -19
- package/dist/components/data-table-filter-popover.js +39 -22
- package/dist/components/data-table-filter-popover.js.map +1 -1
- package/dist/components/data-table-filters.d.ts +93 -15
- package/dist/components/data-table-filters.js +22 -7
- package/dist/components/data-table-filters.js.map +1 -1
- package/dist/components/data-table-head.d.ts +36 -0
- package/dist/components/data-table-head.js +190 -0
- package/dist/components/data-table-head.js.map +1 -0
- package/dist/components/data-table-labels.d.ts +124 -15
- package/dist/components/data-table-labels.js +9 -5
- package/dist/components/data-table-labels.js.map +1 -1
- package/dist/components/data-table-mobile.d.ts +106 -0
- package/dist/components/data-table-mobile.js +412 -0
- package/dist/components/data-table-mobile.js.map +1 -0
- package/dist/components/data-table-pagination.d.ts +6 -21
- package/dist/components/data-table-pagination.js +7 -7
- package/dist/components/data-table-pagination.js.map +1 -1
- package/dist/components/data-table-resize.d.ts +37 -0
- package/dist/components/data-table-resize.js +103 -0
- package/dist/components/data-table-resize.js.map +1 -0
- package/dist/components/data-table-row-actions.d.ts +24 -0
- package/dist/components/data-table-row-actions.js +95 -0
- package/dist/components/data-table-row-actions.js.map +1 -0
- package/dist/components/data-table-selection.d.ts +21 -0
- package/dist/components/data-table-selection.js +30 -0
- package/dist/components/data-table-selection.js.map +1 -0
- package/dist/components/data-table-shared.d.ts +77 -0
- package/dist/components/data-table-shared.js +77 -0
- package/dist/components/data-table-shared.js.map +1 -0
- package/dist/components/data-table-sort.d.ts +8 -10
- package/dist/components/data-table.d.ts +603 -15
- package/dist/components/data-table.js +134 -927
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-field.d.ts +203 -0
- package/dist/components/date-field.js +270 -0
- package/dist/components/date-field.js.map +1 -0
- package/dist/components/date-picker.d.ts +6 -261
- package/dist/components/date-picker.js +24 -760
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/date-range-picker.d.ts +125 -0
- package/dist/components/date-range-picker.js +261 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/description-list-labels.d.ts +2 -0
- package/dist/components/description-list-labels.js +8 -0
- package/dist/components/description-list-labels.js.map +1 -0
- package/dist/components/description-list.d.ts +13 -15
- package/dist/components/description-list.js +17 -11
- package/dist/components/description-list.js.map +1 -1
- package/dist/components/dialog-frame-labels.d.ts +2 -0
- package/dist/components/dialog-frame-labels.js +6 -0
- package/dist/components/dialog-frame-labels.js.map +1 -0
- package/dist/components/dialog-frame.d.ts +7 -11
- package/dist/components/dialog-frame.js +6 -6
- package/dist/components/dialog-frame.js.map +1 -1
- package/dist/components/disclosure.d.ts +6 -10
- package/dist/components/disclosure.js +11 -11
- package/dist/components/disclosure.js.map +1 -1
- package/dist/components/dropdown.d.ts +55 -27
- package/dist/components/dropdown.js +62 -31
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/empty-state.d.ts +64 -0
- package/dist/components/empty-state.js +70 -0
- package/dist/components/empty-state.js.map +1 -0
- package/dist/components/entity-combobox.d.ts +10 -11
- package/dist/components/entity-combobox.js +14 -13
- package/dist/components/entity-combobox.js.map +1 -1
- package/dist/components/error-boundary-labels.d.ts +2 -0
- package/dist/components/error-boundary-labels.js +19 -0
- package/dist/components/error-boundary-labels.js.map +1 -0
- package/dist/components/error-boundary.d.ts +17 -17
- package/dist/components/error-boundary.js +5 -17
- package/dist/components/error-boundary.js.map +1 -1
- package/dist/components/facing-pair.d.ts +7 -115
- package/dist/components/facing-pair.js +1 -1
- package/dist/components/facing-pair.js.map +1 -1
- package/dist/components/field-base.d.ts +260 -0
- package/dist/components/field-base.js +228 -0
- package/dist/components/field-base.js.map +1 -0
- package/dist/components/field-parts.d.ts +188 -87
- package/dist/components/field-parts.js +60 -33
- package/dist/components/field-parts.js.map +1 -1
- package/dist/components/field-strip.d.ts +19 -28
- package/dist/components/field-strip.js +2 -2
- package/dist/components/field-strip.js.map +1 -1
- package/dist/components/field-sync-labels.d.ts +2 -0
- package/dist/components/field-sync-labels.js +12 -0
- package/dist/components/field-sync-labels.js.map +1 -0
- package/dist/components/field-sync.d.ts +20 -19
- package/dist/components/field-sync.js +4 -10
- package/dist/components/field-sync.js.map +1 -1
- package/dist/components/field.d.ts +45 -10
- package/dist/components/field.js +10 -8
- package/dist/components/field.js.map +1 -1
- package/dist/components/file-button.d.ts +85 -100
- package/dist/components/file-button.js +23 -169
- package/dist/components/file-button.js.map +1 -1
- package/dist/components/file-dropzone.d.ts +9 -109
- package/dist/components/file-dropzone.js +22 -22
- package/dist/components/file-dropzone.js.map +1 -1
- package/dist/components/floating-panel-labels.d.ts +2 -0
- package/dist/components/floating-panel-labels.js +9 -0
- package/dist/components/floating-panel-labels.js.map +1 -0
- package/dist/components/floating-panel.d.ts +17 -21
- package/dist/components/floating-panel.js +19 -18
- package/dist/components/floating-panel.js.map +1 -1
- package/dist/components/focus-ring.d.ts +9 -6
- package/dist/components/focus-ring.js +2 -2
- package/dist/components/focus-ring.js.map +1 -1
- package/dist/components/form-actions-labels.d.ts +2 -0
- package/dist/components/form-actions-labels.js +10 -0
- package/dist/components/form-actions-labels.js.map +1 -0
- package/dist/components/form-actions.d.ts +280 -100
- package/dist/components/form-actions.js +10 -20
- package/dist/components/form-actions.js.map +1 -1
- package/dist/components/full-bleed-dialog.d.ts +7 -8
- package/dist/components/full-bleed-dialog.js +14 -13
- package/dist/components/full-bleed-dialog.js.map +1 -1
- package/dist/components/grouped-picker.d.ts +21 -16
- package/dist/components/grouped-picker.js +76 -62
- package/dist/components/grouped-picker.js.map +1 -1
- package/dist/components/help-popover.d.ts +60 -0
- package/dist/components/help-popover.js +48 -0
- package/dist/components/help-popover.js.map +1 -0
- package/dist/components/hover-menu.d.ts +17 -16
- package/dist/components/hover-menu.js +18 -17
- package/dist/components/hover-menu.js.map +1 -1
- package/dist/components/iban-input-labels.d.ts +2 -0
- package/dist/components/iban-input-labels.js +13 -0
- package/dist/components/iban-input-labels.js.map +1 -0
- package/dist/components/iban-input.d.ts +73 -100
- package/dist/components/iban-input.js +22 -15
- package/dist/components/iban-input.js.map +1 -1
- package/dist/components/icon-button.d.ts +300 -0
- package/dist/components/icon-button.js +465 -0
- package/dist/components/icon-button.js.map +1 -0
- package/dist/components/icon-picker-labels.d.ts +2 -0
- package/dist/components/icon-picker-labels.js +12 -0
- package/dist/components/icon-picker-labels.js.map +1 -0
- package/dist/components/icon-picker.d.ts +13 -13
- package/dist/components/icon-picker.js +18 -17
- package/dist/components/icon-picker.js.map +1 -1
- package/dist/components/image-grid-labels.d.ts +2 -0
- package/dist/components/image-grid-labels.js +10 -0
- package/dist/components/image-grid-labels.js.map +1 -0
- package/dist/components/image-grid.d.ts +12 -14
- package/dist/components/image-grid.js +6 -10
- package/dist/components/image-grid.js.map +1 -1
- package/dist/components/inline-edit-field-labels.d.ts +2 -0
- package/dist/components/inline-edit-field-labels.js +10 -0
- package/dist/components/inline-edit-field-labels.js.map +1 -0
- package/dist/components/inline-edit-field.d.ts +11 -13
- package/dist/components/inline-edit-field.js +11 -13
- package/dist/components/inline-edit-field.js.map +1 -1
- package/dist/components/inline-entity-combobox.d.ts +155 -0
- package/dist/components/inline-entity-combobox.js +467 -0
- package/dist/components/inline-entity-combobox.js.map +1 -0
- package/dist/components/input.d.ts +98 -0
- package/dist/components/input.js +219 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/jump-calendar.d.ts +8 -0
- package/dist/components/jump-calendar.js +274 -0
- package/dist/components/jump-calendar.js.map +1 -0
- package/dist/components/language-select.d.ts +20 -110
- package/dist/components/language-select.js +12 -7
- package/dist/components/language-select.js.map +1 -1
- package/dist/components/legal-labels.d.ts +2 -0
- package/dist/components/legal-labels.js +100 -0
- package/dist/components/legal-labels.js.map +1 -0
- package/dist/components/legal-page.d.ts +17 -117
- package/dist/components/legal-page.js +2 -2
- package/dist/components/legal-page.js.map +1 -1
- package/dist/components/legal.d.ts +353 -100
- package/dist/components/legal.js +7 -101
- package/dist/components/legal.js.map +1 -1
- package/dist/components/lightbox-labels.d.ts +2 -0
- package/dist/components/lightbox-labels.js +17 -0
- package/dist/components/lightbox-labels.js.map +1 -0
- package/dist/components/lightbox.d.ts +12 -14
- package/dist/components/lightbox.js +9 -19
- package/dist/components/lightbox.js.map +1 -1
- package/dist/components/line-items-labels.d.ts +2 -0
- package/dist/components/line-items-labels.js +13 -0
- package/dist/components/line-items-labels.js.map +1 -0
- package/dist/components/line-items.d.ts +16 -18
- package/dist/components/line-items.js +18 -26
- package/dist/components/line-items.js.map +1 -1
- package/dist/components/list-labels.d.ts +2 -0
- package/dist/components/list-labels.js +9 -0
- package/dist/components/list-labels.js.map +1 -0
- package/dist/components/list.d.ts +32 -21
- package/dist/components/list.js +41 -25
- package/dist/components/list.js.map +1 -1
- package/dist/components/loading-state.d.ts +5 -9
- package/dist/components/loading-state.js +2 -2
- package/dist/components/loading-state.js.map +1 -1
- package/dist/components/measured-grid-labels.d.ts +4 -0
- package/dist/components/measured-grid-labels.js +21 -0
- package/dist/components/measured-grid-labels.js.map +1 -0
- package/dist/components/measured-grid.d.ts +13 -17
- package/dist/components/measured-grid.js +31 -50
- package/dist/components/measured-grid.js.map +1 -1
- package/dist/components/menu-item.d.ts +10 -10
- package/dist/components/menu-item.js +9 -9
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/mini-calendar-labels.d.ts +4 -0
- package/dist/components/mini-calendar-labels.js +14 -0
- package/dist/components/mini-calendar-labels.js.map +1 -0
- package/dist/components/mini-calendar.d.ts +10 -14
- package/dist/components/mini-calendar.js +22 -29
- package/dist/components/mini-calendar.js.map +1 -1
- package/dist/components/modal.d.ts +26 -18
- package/dist/components/modal.js +8 -11
- package/dist/components/modal.js.map +1 -1
- package/dist/components/money-draft.d.ts +34 -0
- package/dist/components/money-draft.js +39 -0
- package/dist/components/money-draft.js.map +1 -0
- package/dist/components/money-field.d.ts +13 -110
- package/dist/components/money-field.js +6 -22
- package/dist/components/money-field.js.map +1 -1
- package/dist/components/month-picker-labels.d.ts +5 -0
- package/dist/components/month-picker-labels.js +18 -0
- package/dist/components/month-picker-labels.js.map +1 -0
- package/dist/components/month-picker.d.ts +15 -13
- package/dist/components/month-picker.js +34 -32
- package/dist/components/month-picker.js.map +1 -1
- package/dist/components/multi-entity-combobox.d.ts +9 -11
- package/dist/components/multi-entity-combobox.js +14 -13
- package/dist/components/multi-entity-combobox.js.map +1 -1
- package/dist/components/multi-select.d.ts +81 -21
- package/dist/components/multi-select.js +171 -197
- package/dist/components/multi-select.js.map +1 -1
- package/dist/components/nav-pills.d.ts +9 -10
- package/dist/components/nav-pills.js +53 -42
- package/dist/components/nav-pills.js.map +1 -1
- package/dist/components/number-field.d.ts +13 -110
- package/dist/components/number-field.js +2 -3
- package/dist/components/number-field.js.map +1 -1
- package/dist/components/number-input.d.ts +55 -109
- package/dist/components/number-input.js +50 -67
- package/dist/components/number-input.js.map +1 -1
- package/dist/components/numeric-field.d.ts +85 -0
- package/dist/components/numeric-field.js +71 -0
- package/dist/components/numeric-field.js.map +1 -0
- package/dist/components/numpad-sheet.d.ts +5 -107
- package/dist/components/numpad-sheet.js +7 -7
- package/dist/components/numpad-sheet.js.map +1 -1
- package/dist/components/one-time-code-input.d.ts +6 -7
- package/dist/components/one-time-code-input.js +119 -124
- package/dist/components/one-time-code-input.js.map +1 -1
- package/dist/components/page-contents-labels.d.ts +2 -0
- package/dist/components/page-contents-labels.js +8 -0
- package/dist/components/page-contents-labels.js.map +1 -0
- package/dist/components/page-contents.d.ts +13 -15
- package/dist/components/page-contents.js +7 -9
- package/dist/components/page-contents.js.map +1 -1
- package/dist/components/page-header.d.ts +10 -10
- package/dist/components/page-header.js +3 -3
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/password-strength-labels.d.ts +2 -0
- package/dist/components/password-strength-labels.js +21 -0
- package/dist/components/password-strength-labels.js.map +1 -0
- package/dist/components/password-strength.d.ts +15 -17
- package/dist/components/password-strength.js +7 -22
- package/dist/components/password-strength.js.map +1 -1
- package/dist/components/phone-input-labels.d.ts +2 -0
- package/dist/components/phone-input-labels.js +9 -0
- package/dist/components/phone-input-labels.js.map +1 -0
- package/dist/components/phone-input.d.ts +75 -100
- package/dist/components/phone-input.js +20 -23
- package/dist/components/phone-input.js.map +1 -1
- package/dist/components/picker-sheet.d.ts +20 -8
- package/dist/components/picker-sheet.js +22 -11
- package/dist/components/picker-sheet.js.map +1 -1
- package/dist/components/pie-chart-labels.d.ts +2 -4
- package/dist/components/pie-chart.d.ts +8 -11
- package/dist/components/pie-chart.js +5 -5
- package/dist/components/pie-chart.js.map +1 -1
- package/dist/components/popover-labels.d.ts +2 -0
- package/dist/components/popover-labels.js +11 -0
- package/dist/components/popover-labels.js.map +1 -0
- package/dist/components/popover.d.ts +13 -11
- package/dist/components/popover.js +21 -23
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress-bar-labels.d.ts +2 -0
- package/dist/components/progress-bar-labels.js +9 -0
- package/dist/components/progress-bar-labels.js.map +1 -0
- package/dist/components/progress-bar.d.ts +16 -15
- package/dist/components/progress-bar.js +22 -20
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/qr-code.d.ts +4 -8
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/reauth-dialog-labels.d.ts +2 -0
- package/dist/components/reauth-dialog-labels.js +12 -0
- package/dist/components/reauth-dialog-labels.js.map +1 -0
- package/dist/components/reauth-dialog.d.ts +8 -10
- package/dist/components/reauth-dialog.js +3 -8
- package/dist/components/reauth-dialog.js.map +1 -1
- package/dist/components/row-actions-labels.d.ts +2 -0
- package/dist/components/row-actions-labels.js +9 -0
- package/dist/components/row-actions-labels.js.map +1 -0
- package/dist/components/row-actions.d.ts +224 -100
- package/dist/components/row-actions.js +4 -5
- package/dist/components/row-actions.js.map +1 -1
- package/dist/components/scroll-area.d.ts +6 -9
- package/dist/components/scroll-area.js +4 -10
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/search-field.d.ts +12 -27
- package/dist/components/search-field.js +13 -16
- package/dist/components/search-field.js.map +1 -1
- package/dist/components/select.d.ts +69 -0
- package/dist/components/select.js +164 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +3 -7
- package/dist/components/separator.js.map +1 -1
- package/dist/components/series-chart-axes.d.ts +120 -0
- package/dist/components/series-chart-axes.js +164 -0
- package/dist/components/series-chart-axes.js.map +1 -0
- package/dist/components/series-chart-budget.d.ts +8 -9
- package/dist/components/series-chart-labels.d.ts +2 -4
- package/dist/components/series-chart-thin.d.ts +34 -0
- package/dist/components/series-chart-thin.js +103 -0
- package/dist/components/series-chart-thin.js.map +1 -0
- package/dist/components/series-chart-ticks.d.ts +9 -11
- package/dist/components/series-chart.d.ts +64 -213
- package/dist/components/series-chart.js +69 -160
- package/dist/components/series-chart.js.map +1 -1
- package/dist/components/server-wake-labels.d.ts +2 -0
- package/dist/components/server-wake-labels.js +9 -0
- package/dist/components/server-wake-labels.js.map +1 -0
- package/dist/components/server-wake.d.ts +32 -23
- package/dist/components/server-wake.js +15 -35
- package/dist/components/server-wake.js.map +1 -1
- package/dist/components/settings-fields.d.ts +46 -117
- package/dist/components/settings-fields.js +13 -3
- package/dist/components/settings-fields.js.map +1 -1
- package/dist/components/share-card-labels.d.ts +2 -0
- package/dist/components/share-card-labels.js +29 -0
- package/dist/components/share-card-labels.js.map +1 -0
- package/dist/components/share-card.d.ts +188 -100
- package/dist/components/share-card.js +16 -34
- package/dist/components/share-card.js.map +1 -1
- package/dist/components/sign-chip-labels.d.ts +2 -0
- package/dist/components/sign-chip-labels.js +11 -0
- package/dist/components/sign-chip-labels.js.map +1 -0
- package/dist/components/sign-chip.d.ts +7 -9
- package/dist/components/sign-chip.js +2 -7
- package/dist/components/sign-chip.js.map +1 -1
- package/dist/components/signature-pad-labels.d.ts +2 -0
- package/dist/components/signature-pad-labels.js +23 -0
- package/dist/components/signature-pad-labels.js.map +1 -0
- package/dist/components/signature-pad.d.ts +16 -15
- package/dist/components/signature-pad.js +22 -35
- package/dist/components/signature-pad.js.map +1 -1
- package/dist/components/signed-amount-labels.d.ts +2 -0
- package/dist/components/signed-amount-labels.js +9 -0
- package/dist/components/signed-amount-labels.js.map +1 -0
- package/dist/components/signed-amount.d.ts +19 -21
- package/dist/components/signed-amount.js +12 -15
- package/dist/components/signed-amount.js.map +1 -1
- package/dist/components/skeleton.d.ts +13 -9
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.d.ts +16 -11
- package/dist/components/slider.js +23 -18
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sparkline-labels.d.ts +2 -0
- package/dist/components/sparkline-labels.js +13 -0
- package/dist/components/sparkline-labels.js.map +1 -0
- package/dist/components/sparkline.d.ts +10 -12
- package/dist/components/sparkline.js +10 -17
- package/dist/components/sparkline.js.map +1 -1
- package/dist/components/spinner.d.ts +45 -0
- package/dist/components/spinner.js +39 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stat-tile-labels.d.ts +2 -0
- package/dist/components/stat-tile-labels.js +14 -0
- package/dist/components/stat-tile-labels.js.map +1 -0
- package/dist/components/stat-tile.d.ts +15 -17
- package/dist/components/stat-tile.js +25 -32
- package/dist/components/stat-tile.js.map +1 -1
- package/dist/components/status-dot.d.ts +8 -20
- package/dist/components/status-dot.js +13 -12
- package/dist/components/status-dot.js.map +1 -1
- package/dist/components/swatch-picker-labels.d.ts +2 -0
- package/dist/components/swatch-picker-labels.js +9 -0
- package/dist/components/swatch-picker-labels.js.map +1 -0
- package/dist/components/swatch-picker.d.ts +14 -14
- package/dist/components/swatch-picker.js +14 -8
- package/dist/components/swatch-picker.js.map +1 -1
- package/dist/components/swipeable-row.d.ts +14 -27
- package/dist/components/swipeable-row.js +2 -2
- package/dist/components/swipeable-row.js.map +1 -1
- package/dist/components/switch.d.ts +10 -13
- package/dist/components/switch.js +13 -12
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.d.ts +28 -31
- package/dist/components/table.js +15 -15
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +182 -0
- package/dist/components/tabs.js +312 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text-link.d.ts +17 -118
- package/dist/components/text-link.js +7 -7
- package/dist/components/text-link.js.map +1 -1
- package/dist/components/text.d.ts +14 -13
- package/dist/components/text.js +5 -5
- package/dist/components/text.js.map +1 -1
- package/dist/components/textarea.d.ts +20 -0
- package/dist/components/textarea.js +161 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/tile-radio.d.ts +6 -10
- package/dist/components/tile-radio.js +6 -6
- package/dist/components/tile-radio.js.map +1 -1
- package/dist/components/time-input.d.ts +5 -107
- package/dist/components/time-input.js +14 -5
- package/dist/components/time-input.js.map +1 -1
- package/dist/components/toast-labels.d.ts +2 -0
- package/dist/components/toast-labels.js +11 -0
- package/dist/components/toast-labels.js.map +1 -0
- package/dist/components/toast.d.ts +21 -23
- package/dist/components/toast.js +1 -6
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.d.ts +26 -26
- package/dist/components/toggle-group.js +43 -19
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle-legend.d.ts +18 -21
- package/dist/components/toggle-legend.js +3 -3
- package/dist/components/toggle-legend.js.map +1 -1
- package/dist/components/tooltip.d.ts +16 -15
- package/dist/components/tooltip.js +4 -9
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/translation-review-editor.d.ts +8 -10
- package/dist/components/translation-review-editor.js +6 -5
- package/dist/components/translation-review-editor.js.map +1 -1
- package/dist/components/translation-review-labels.d.ts +4 -7
- package/dist/components/translation-review-parts.d.ts +19 -28
- package/dist/components/translation-review-parts.js +4 -7
- package/dist/components/translation-review-parts.js.map +1 -1
- package/dist/components/translation-review.d.ts +26 -24
- package/dist/components/translation-review.js +13 -10
- package/dist/components/translation-review.js.map +1 -1
- package/dist/components/tree-view.d.ts +7 -11
- package/dist/components/tree-view.js +8 -8
- package/dist/components/tree-view.js.map +1 -1
- package/dist/components/treemap.d.ts +9 -13
- package/dist/components/trigger-aria.d.ts +2 -4
- package/dist/components/ui-labels.d.ts +5 -0
- package/dist/components/ui-labels.js +20 -0
- package/dist/components/ui-labels.js.map +1 -0
- package/dist/components/use-anchor-dir.d.ts +3 -6
- package/dist/components/use-mobile-reveal.d.ts +2 -6
- package/dist/components/use-table-state.d.ts +154 -15
- package/dist/components/user-avatar.d.ts +8 -21
- package/dist/components/user-avatar.js +1 -1
- package/dist/components/user-avatar.js.map +1 -1
- package/dist/components/wizard-stepper.d.ts +6 -6
- package/dist/components/wizard-stepper.js +4 -3
- package/dist/components/wizard-stepper.js.map +1 -1
- package/dist/components/write-lock-labels.d.ts +2 -0
- package/dist/components/write-lock-labels.js +8 -0
- package/dist/components/write-lock-labels.js.map +1 -0
- package/dist/components/write-lock.d.ts +16 -18
- package/dist/components/write-lock.js +4 -8
- package/dist/components/write-lock.js.map +1 -1
- package/dist/data-table.d.ts +10 -18
- package/dist/data-table.js.map +1 -1
- package/dist/demo/demo-banner.d.ts +10 -13
- package/dist/demo/demo-banner.js +5 -19
- package/dist/demo/demo-banner.js.map +1 -1
- package/dist/demo/demo-countdown.d.ts +7 -9
- package/dist/demo/demo-ended.d.ts +10 -13
- package/dist/demo/demo-ended.js +4 -4
- package/dist/demo/demo-ended.js.map +1 -1
- package/dist/demo/demo-labels.d.ts +4 -5
- package/dist/demo/demo-labels.js.map +1 -1
- package/dist/demo/demo-session.d.ts +3 -5
- package/dist/demo/demo-start.d.ts +8 -11
- package/dist/demo/demo-start.js +3 -2
- package/dist/demo/demo-start.js.map +1 -1
- package/dist/feedback/feedback-attachment-labels.d.ts +16 -0
- package/dist/feedback/feedback-attachment-labels.js +17 -0
- package/dist/feedback/feedback-attachment-labels.js.map +1 -0
- package/dist/feedback/feedback-attachment.d.ts +312 -100
- package/dist/feedback/feedback-attachment.js +31 -42
- package/dist/feedback/feedback-attachment.js.map +1 -1
- package/dist/feedback/feedback-capture.d.ts +2 -4
- package/dist/feedback/feedback-context-labels.d.ts +2 -0
- package/dist/feedback/feedback-context-labels.js +9 -0
- package/dist/feedback/feedback-context-labels.js.map +1 -0
- package/dist/feedback/feedback-context.d.ts +110 -100
- package/dist/feedback/feedback-context.js +4 -7
- package/dist/feedback/feedback-context.js.map +1 -1
- package/dist/feedback/feedback-crash.d.ts +8 -109
- package/dist/feedback/feedback-dialog-labels.d.ts +12 -0
- package/dist/feedback/feedback-dialog-labels.js +17 -0
- package/dist/feedback/feedback-dialog-labels.js.map +1 -0
- package/dist/feedback/feedback-dialog.d.ts +186 -100
- package/dist/feedback/feedback-dialog.js +8 -18
- package/dist/feedback/feedback-dialog.js.map +1 -1
- package/dist/feedback/feedback-inbox.d.ts +236 -100
- package/dist/feedback/feedback-inbox.js +31 -141
- package/dist/feedback/feedback-inbox.js.map +1 -1
- package/dist/feedback/feedback-labels.d.ts +83 -100
- package/dist/feedback/feedback-labels.js.map +1 -1
- package/dist/feedback/feedback-menu-labels.d.ts +2 -0
- package/dist/feedback/feedback-menu-labels.js +10 -0
- package/dist/feedback/feedback-menu-labels.js.map +1 -0
- package/dist/feedback/feedback-menu.d.ts +83 -100
- package/dist/feedback/feedback-menu.js +3 -7
- package/dist/feedback/feedback-menu.js.map +1 -1
- package/dist/feedback/feedback-record.d.ts +239 -100
- package/dist/feedback/feedback-record.js +7 -2
- package/dist/feedback/feedback-record.js.map +1 -1
- package/dist/feedback/feedback-row-detail-labels.d.ts +2 -0
- package/dist/feedback/feedback-row-detail-labels.js +31 -0
- package/dist/feedback/feedback-row-detail-labels.js.map +1 -0
- package/dist/feedback/feedback-row-detail.d.ts +315 -100
- package/dist/feedback/feedback-row-detail.js +11 -37
- package/dist/feedback/feedback-row-detail.js.map +1 -1
- package/dist/feedback/feedback-status-undo.d.ts +66 -100
- package/dist/feedback/feedback-status-undo.js.map +1 -1
- package/dist/feedback/feedback-submit-dialog.d.ts +39 -0
- package/dist/feedback/feedback-submit-dialog.js +66 -0
- package/dist/feedback/feedback-submit-dialog.js.map +1 -0
- package/dist/feedback/feedback-submit.d.ts +13 -108
- package/dist/feedback/feedback-submit.js +19 -40
- package/dist/feedback/feedback-submit.js.map +1 -1
- package/dist/feedback/feedback-swipe.d.ts +9 -109
- package/dist/feedback/feedback-swipe.js +1 -1
- package/dist/feedback/feedback-swipe.js.map +1 -1
- package/dist/feedback/feedback-table-labels.d.ts +2 -0
- package/dist/feedback/feedback-table-labels.js +26 -0
- package/dist/feedback/feedback-table-labels.js.map +1 -0
- package/dist/feedback/feedback-table.d.ts +314 -100
- package/dist/feedback/feedback-table.js +11 -31
- package/dist/feedback/feedback-table.js.map +1 -1
- package/dist/feedback/feedback-thread-labels.d.ts +3 -0
- package/dist/feedback/feedback-thread-labels.js +21 -0
- package/dist/feedback/feedback-thread-labels.js.map +1 -0
- package/dist/feedback/feedback-thread.d.ts +378 -100
- package/dist/feedback/feedback-thread.js +32 -35
- package/dist/feedback/feedback-thread.js.map +1 -1
- package/dist/feedback/feedback-vocabulary.d.ts +98 -0
- package/dist/feedback/feedback-vocabulary.js +143 -0
- package/dist/feedback/feedback-vocabulary.js.map +1 -0
- package/dist/feedback.d.ts +15 -104
- package/dist/hooks/use-anchored-panel.d.ts +109 -17
- package/dist/hooks/use-anchored-panel.js +38 -6
- package/dist/hooks/use-anchored-panel.js.map +1 -1
- package/dist/hooks/use-anchored-rect.d.ts +15 -6
- package/dist/hooks/use-anchored-rect.js +2 -1
- package/dist/hooks/use-anchored-rect.js.map +1 -1
- package/dist/hooks/use-announce.d.ts +4 -6
- package/dist/hooks/use-authed-src.d.ts +5 -7
- package/dist/hooks/use-authed-src.js +3 -7
- package/dist/hooks/use-authed-src.js.map +1 -1
- package/dist/hooks/use-body-scroll-lock.d.ts +1 -3
- package/dist/hooks/use-breakpoint.d.ts +16 -17
- package/dist/hooks/use-breakpoint.js.map +1 -1
- package/dist/hooks/use-close-transition.d.ts +8 -8
- package/dist/hooks/use-close-transition.js +5 -4
- package/dist/hooks/use-close-transition.js.map +1 -1
- package/dist/hooks/use-copy-to-clipboard.d.ts +5 -7
- package/dist/hooks/use-debounce.d.ts +13 -6
- package/dist/hooks/use-debounce.js.map +1 -1
- package/dist/hooks/use-dismiss.d.ts +37 -11
- package/dist/hooks/use-dismiss.js +69 -10
- package/dist/hooks/use-dismiss.js.map +1 -1
- package/dist/hooks/use-file-drop.d.ts +8 -109
- package/dist/hooks/use-file-drop.js +1 -1
- package/dist/hooks/use-file-drop.js.map +1 -1
- package/dist/hooks/use-file-picker-labels.d.ts +2 -0
- package/dist/hooks/use-file-picker-labels.js +25 -0
- package/dist/hooks/use-file-picker-labels.js.map +1 -0
- package/dist/hooks/use-file-picker.d.ts +164 -0
- package/dist/hooks/use-file-picker.js +149 -0
- package/dist/hooks/use-file-picker.js.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +10 -4
- package/dist/hooks/use-focus-trap.js +19 -12
- package/dist/hooks/use-focus-trap.js.map +1 -1
- package/dist/hooks/use-hotkey.d.ts +7 -9
- package/dist/hooks/use-large-text.d.ts +3 -5
- package/dist/hooks/use-media-query.d.ts +1 -3
- package/dist/hooks/use-noindex.d.ts +1 -3
- package/dist/hooks/use-overlay-history.d.ts +1 -3
- package/dist/hooks/use-row-swipe.d.ts +5 -8
- package/dist/hooks/use-search-param-state.d.ts +10 -11
- package/dist/hooks/use-windowed-rows.d.ts +4 -7
- package/dist/i18n/defaults.d.ts +11 -104
- package/dist/i18n/defaults.js +82 -82
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.d.ts +2 -104
- package/dist/i18n/german.js +56 -9
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +609 -100
- package/dist/i18n/kit-labels.js +22 -97
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/languages.d.ts +197 -100
- package/dist/i18n/locales/de-CH.d.ts +3 -105
- package/dist/i18n/locales/en.d.ts +4 -104
- package/dist/i18n/locales/en.js +1834 -4
- package/dist/i18n/locales/en.js.map +7 -1
- package/dist/i18n/locales/es.d.ts +3 -105
- package/dist/i18n/locales/es.js +54 -9
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +3 -105
- package/dist/i18n/locales/fr.js +56 -9
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +3 -105
- package/dist/i18n/locales/hu.js +56 -10
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +3 -105
- package/dist/i18n/locales/it.js +55 -9
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +3 -105
- package/dist/i18n/locales/zh.js +52 -8
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/plurals.d.ts +20 -3
- package/dist/i18n/plurals.js +11 -0
- package/dist/i18n/plurals.js.map +1 -1
- package/dist/i18n/review.d.ts +5 -106
- package/dist/i18n/review.js +4 -0
- package/dist/i18n/review.js.map +1 -1
- package/dist/i18n/shared-labels.d.ts +17 -0
- package/dist/i18n/shared-labels.js +111 -0
- package/dist/i18n/shared-labels.js.map +1 -0
- package/dist/i18n/swiss.d.ts +1 -3
- package/dist/index.d.ts +329 -249
- package/dist/index.js +188 -215
- package/dist/index.js.map +1 -1
- package/dist/landing/access.d.ts +7 -9
- package/dist/landing/access.js.map +1 -1
- package/dist/landing/landing-actions.d.ts +9 -108
- package/dist/landing/landing-actions.js +1 -1
- package/dist/landing/landing-actions.js.map +1 -1
- package/dist/landing/landing-labels.d.ts +4 -5
- package/dist/landing/landing-labels.js.map +1 -1
- package/dist/landing/landing-sections.d.ts +21 -120
- package/dist/landing/landing-sections.js +15 -15
- package/dist/landing/landing-sections.js.map +1 -1
- package/dist/landing/page-seo.d.ts +7 -9
- package/dist/landing/public-header.d.ts +10 -110
- package/dist/landing/public-header.js +1 -1
- package/dist/landing/public-header.js.map +1 -1
- package/dist/landing/routing.d.ts +16 -119
- package/dist/landing/routing.js +2 -6
- package/dist/landing/routing.js.map +1 -1
- package/dist/lib/calc.d.ts +7 -9
- package/dist/lib/chip-edge-snap.d.ts +10 -0
- package/dist/lib/chip-edge-snap.js +131 -0
- package/dist/lib/chip-edge-snap.js.map +1 -0
- package/dist/lib/clipping.d.ts +2 -4
- package/dist/lib/cn.d.ts +2 -5
- package/dist/lib/cn.js +6 -1
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/column-mapping.d.ts +10 -13
- package/dist/lib/countries.d.ts +3 -5
- package/dist/lib/dates.d.ts +25 -25
- package/dist/lib/dates.js.map +1 -1
- package/dist/lib/decimal-marks.d.ts +8 -8
- package/dist/lib/decimal-marks.js +1 -1
- package/dist/lib/decimal-marks.js.map +1 -1
- package/dist/lib/direction.d.ts +4 -6
- package/dist/lib/document-navigation.d.ts +1 -3
- package/dist/lib/download.d.ts +67 -0
- package/dist/lib/download.js +89 -0
- package/dist/lib/download.js.map +1 -0
- package/dist/lib/floating-stack.d.ts +8 -6
- package/dist/lib/floating-stack.js.map +1 -1
- package/dist/lib/format.d.ts +24 -23
- package/dist/lib/format.js +3 -3
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/iban.d.ts +9 -11
- package/dist/lib/ime.d.ts +17 -0
- package/dist/lib/ime.js +13 -0
- package/dist/lib/ime.js.map +1 -0
- package/dist/lib/isin.d.ts +3 -5
- package/dist/lib/logger.d.ts +4 -6
- package/dist/lib/person-name.d.ts +3 -5
- package/dist/lib/phone.d.ts +9 -11
- package/dist/lib/presence.d.ts +15 -0
- package/dist/lib/presence.js +8 -0
- package/dist/lib/presence.js.map +1 -0
- package/dist/lib/qr-encode.d.ts +4 -6
- package/dist/lib/reduced-motion.d.ts +18 -0
- package/dist/lib/reduced-motion.js +9 -0
- package/dist/lib/reduced-motion.js.map +1 -0
- package/dist/lib/round.d.ts +22 -0
- package/dist/lib/round.js +15 -0
- package/dist/lib/round.js.map +1 -0
- package/dist/lib/safe-storage.d.ts +14 -4
- package/dist/lib/safe-storage.js +24 -9
- package/dist/lib/safe-storage.js.map +1 -1
- package/dist/lib/server-wake.d.ts +13 -14
- package/dist/lib/session-refresh.d.ts +200 -0
- package/dist/lib/session-refresh.js +187 -0
- package/dist/lib/session-refresh.js.map +1 -0
- package/dist/lib/strip-fade.d.ts +10 -13
- package/dist/lib/table-text.d.ts +14 -16
- package/dist/lib/text-match.d.ts +41 -0
- package/dist/lib/text-match.js +23 -0
- package/dist/lib/text-match.js.map +1 -0
- package/dist/lib/translation-review.d.ts +44 -45
- package/dist/lib/translation-review.js +3 -2
- package/dist/lib/translation-review.js.map +1 -1
- package/dist/rhf/fields.d.ts +123 -188
- package/dist/rhf/fields.js +46 -54
- package/dist/rhf/fields.js.map +1 -1
- package/dist/rhf/form-core.d.ts +153 -0
- package/dist/rhf/form-core.js +143 -0
- package/dist/rhf/form-core.js.map +1 -0
- package/dist/rhf/form.d.ts +38 -174
- package/dist/rhf/form.js +9 -131
- package/dist/rhf/form.js.map +1 -1
- package/dist/rhf/line-items.d.ts +40 -11
- package/dist/rhf/line-items.js.map +1 -1
- package/dist/rhf/use-rhf-wizard-step.d.ts +3 -6
- package/dist/rhf.d.ts +4 -117
- package/dist/rhf.js.map +1 -1
- package/dist/search/command-palette-labels.d.ts +2 -0
- package/dist/search/command-palette-labels.js +15 -0
- package/dist/search/command-palette-labels.js.map +1 -0
- package/dist/search/command-palette.d.ts +10 -13
- package/dist/search/command-palette.js +25 -44
- package/dist/search/command-palette.js.map +1 -1
- package/dist/search/global-search-labels.d.ts +2 -0
- package/dist/search/global-search-labels.js +12 -0
- package/dist/search/global-search-labels.js.map +1 -0
- package/dist/search/global-search.d.ts +17 -16
- package/dist/search/global-search.js +12 -12
- package/dist/search/global-search.js.map +1 -1
- package/dist/search/search-index.d.ts +13 -14
- package/dist/search/search-index.js +2 -1
- package/dist/search/search-index.js.map +1 -1
- package/dist/search/use-command-key.d.ts +9 -0
- package/dist/search/use-command-key.js +18 -0
- package/dist/search/use-command-key.js.map +1 -0
- package/dist/search.d.ts +3 -4
- package/dist/settings/settings-card-classes.d.ts +11 -0
- package/dist/settings/settings-card-classes.js +8 -0
- package/dist/settings/settings-card-classes.js.map +1 -0
- package/dist/settings/settings-catalogue.d.ts +11 -14
- package/dist/settings/settings-context.d.ts +4 -8
- package/dist/settings/settings-heading.d.ts +8 -12
- package/dist/settings/settings-heading.js +1 -1
- package/dist/settings/settings-heading.js.map +1 -1
- package/dist/settings/settings-labels.d.ts +6 -7
- package/dist/settings/settings-labels.js.map +1 -1
- package/dist/settings/settings-layout.d.ts +36 -13
- package/dist/settings/settings-layout.js +25 -4
- package/dist/settings/settings-layout.js.map +1 -1
- package/dist/settings/settings-section.d.ts +4 -106
- package/dist/settings/settings-section.js +2 -2
- package/dist/settings/settings-section.js.map +1 -1
- package/dist/settings/use-account-appearance.d.ts +11 -16
- package/dist/settings/use-account-language.d.ts +8 -10
- package/dist/settings/use-settings-focus.d.ts +3 -5
- package/dist/settings/use-settings-focus.js +2 -4
- package/dist/settings/use-settings-focus.js.map +1 -1
- package/dist/settings/use-settings-route.d.ts +11 -16
- package/dist/shell/app-shell-labels.d.ts +2 -0
- package/dist/shell/app-shell-labels.js +9 -0
- package/dist/shell/app-shell-labels.js.map +1 -0
- package/dist/shell/app-shell.d.ts +216 -100
- package/dist/shell/app-shell.js +51 -35
- package/dist/shell/app-shell.js.map +1 -1
- package/dist/shell/auth-layout.d.ts +6 -9
- package/dist/shell/auth-layout.js +6 -6
- package/dist/shell/auth-layout.js.map +1 -1
- package/dist/shell/company-switcher-labels.d.ts +2 -0
- package/dist/shell/company-switcher-labels.js +12 -0
- package/dist/shell/company-switcher-labels.js.map +1 -0
- package/dist/shell/company-switcher.d.ts +9 -11
- package/dist/shell/company-switcher.js +3 -9
- package/dist/shell/company-switcher.js.map +1 -1
- package/dist/shell/option-switcher-menu.d.ts +19 -9
- package/dist/shell/option-switcher-menu.js +6 -4
- package/dist/shell/option-switcher-menu.js.map +1 -1
- package/dist/shell/role-switcher.d.ts +5 -6
- package/dist/shell/role-switcher.js +4 -3
- package/dist/shell/role-switcher.js.map +1 -1
- package/dist/shell/top-bar-brand.d.ts +4 -106
- package/dist/shell/top-bar-brand.js +1 -1
- package/dist/shell/top-bar-brand.js.map +1 -1
- package/dist/shell/top-bar.d.ts +6 -9
- package/dist/shell/top-bar.js +1 -1
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/shell/topbar-action-menu.d.ts +30 -31
- package/dist/shell/topbar-action-menu.js +12 -10
- package/dist/shell/topbar-action-menu.js.map +1 -1
- package/dist/shell/topbar-controls.d.ts +20 -18
- package/dist/shell/topbar-controls.js +14 -11
- package/dist/shell/topbar-controls.js.map +1 -1
- package/dist/shell.d.ts +25 -115
- package/dist/shell.js.map +1 -1
- package/dist/table-text.d.ts +1 -1
- package/dist/testing/css-variables.d.ts +4 -6
- package/dist/testing/css-variables.generated.d.ts +2 -4
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.js +9 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/viewport.d.ts +93 -0
- package/dist/testing/viewport.js +152 -0
- package/dist/testing/viewport.js.map +1 -0
- package/dist/theme/chart-palette.d.ts +7 -9
- package/dist/theme/color.d.ts +14 -16
- package/dist/theme/color.js +2 -1
- package/dist/theme/color.js.map +1 -1
- package/dist/theme/contrast-tokens.d.ts +13 -17
- package/dist/theme/contrast.d.ts +22 -27
- package/dist/theme/palette-derive.d.ts +16 -22
- package/dist/theme/palette-derive.js +15 -7
- package/dist/theme/palette-derive.js.map +1 -1
- package/dist/theme/palette-presets.d.ts +25 -15
- package/dist/theme/palette-presets.js +66 -66
- package/dist/theme/palette-presets.js.map +1 -1
- package/dist/theme/palette-store.d.ts +10 -13
- package/dist/theme/text-size.d.ts +21 -26
- package/dist/theme/theme-store.d.ts +9 -14
- package/dist/tour/tour-labels.d.ts +2 -0
- package/dist/tour/tour-labels.js +13 -0
- package/dist/tour/tour-labels.js.map +1 -0
- package/dist/tour/tour.d.ts +12 -14
- package/dist/tour/tour.js +9 -20
- package/dist/tour/tour.js.map +1 -1
- package/dist/tour.d.ts +1 -2
- package/dist/wizard/stepper-nav.d.ts +8 -107
- package/dist/wizard/stepper-nav.js +15 -14
- package/dist/wizard/stepper-nav.js.map +1 -1
- package/dist/wizard/types.d.ts +18 -18
- package/dist/wizard/types.js +1 -19
- package/dist/wizard/types.js.map +1 -1
- package/dist/wizard/use-wizard.d.ts +2 -6
- package/dist/wizard/validation.d.ts +3 -7
- package/dist/wizard/wizard-context.d.ts +7 -11
- package/dist/wizard/wizard-labels.d.ts +4 -0
- package/dist/wizard/wizard-labels.js +24 -0
- package/dist/wizard/wizard-labels.js.map +1 -0
- package/dist/wizard/wizard-step.d.ts +3 -7
- package/dist/wizard/wizard-step.js +2 -2
- package/dist/wizard/wizard-step.js.map +1 -1
- package/dist/wizard/wizard-summary.d.ts +5 -8
- package/dist/wizard/wizard-summary.js +6 -5
- package/dist/wizard/wizard-summary.js.map +1 -1
- package/dist/wizard.d.ts +7 -106
- package/package.json +9 -6
- package/src/account/account-parts.ts +3 -3
- package/src/{components → account}/account-settings-labels.ts +11 -1
- package/src/{components → account}/account-settings.tsx +145 -34
- package/src/account/data-export-setting-labels.ts +20 -0
- package/src/account/data-export-setting.tsx +19 -38
- package/src/account/delete-account-setting-labels.ts +33 -0
- package/src/account/delete-account-setting.tsx +13 -35
- package/src/account/email-change-setting-labels.ts +32 -0
- package/src/account/email-change-setting.tsx +17 -36
- package/src/{components → account}/passkeys-setting.tsx +14 -9
- package/src/account/sessions-setting-labels.ts +24 -0
- package/src/account/sessions-setting.tsx +14 -28
- package/src/admin/admin-action-confirm-labels.ts +19 -0
- package/src/admin/admin-action-confirm.tsx +59 -38
- package/src/admin/admin-action-log-labels.ts +74 -0
- package/src/admin/admin-action-log.tsx +180 -54
- package/src/admin/admin-parts.ts +0 -7
- package/src/admin/invitations-panel-labels.ts +31 -0
- package/src/admin/invitations-panel.tsx +16 -34
- package/src/admin/plan-change-labels.ts +23 -0
- package/src/admin/plan-change.tsx +89 -37
- package/src/admin/reviewer-scope-editor-labels.ts +16 -0
- package/src/admin/reviewer-scope-editor.tsx +9 -15
- package/src/admin/role-select-labels.ts +16 -0
- package/src/admin/role-select.tsx +13 -23
- package/src/admin/transfer-ownership-dialog-labels.ts +20 -0
- package/src/admin/transfer-ownership-dialog.tsx +7 -17
- package/src/admin/user-roster-labels.ts +17 -0
- package/src/admin/user-roster.tsx +9 -17
- package/src/auth/accept-invitation-labels.ts +21 -0
- package/src/auth/accept-invitation.tsx +9 -20
- package/src/auth/auth-errors.ts +29 -13
- package/src/auth/complete-name-dialog-labels.ts +16 -0
- package/src/auth/complete-name-dialog.tsx +8 -13
- package/src/auth/forgot-password-form-labels.ts +20 -0
- package/src/auth/forgot-password-form.tsx +12 -20
- package/src/auth/new-password-fields.tsx +1 -1
- package/src/auth/not-found-page-labels.ts +12 -0
- package/src/auth/not-found-page.tsx +11 -14
- package/src/auth/register-form-labels.ts +31 -0
- package/src/auth/register-form.tsx +18 -38
- package/src/auth/reset-password-form-labels.ts +27 -0
- package/src/auth/reset-password-form.tsx +12 -27
- package/src/auth/sign-in-form-labels.ts +44 -0
- package/src/auth/sign-in-form.tsx +18 -51
- package/src/auth/status-parts.tsx +3 -3
- package/src/auth/verify-email-labels.ts +26 -0
- package/src/auth/verify-email.tsx +15 -30
- package/src/billing/billing-banner.tsx +2 -1
- package/src/billing/billing-labels.ts +1 -1
- package/src/billing/checkout-processing.ts +2 -12
- package/src/billing/pay-page.ts +9 -5
- package/src/billing/plan-card.tsx +26 -27
- package/src/billing/plan-limit-notice.tsx +1 -1
- package/src/billing/subscription-actions.tsx +4 -4
- package/src/chart.ts +7 -1
- package/src/components/account-chips-labels.ts +16 -0
- package/src/components/account-chips.tsx +13 -16
- package/src/components/alert-banner.tsx +39 -19
- package/src/components/amount-input.tsx +461 -405
- package/src/components/appearance-labels.ts +2 -2
- package/src/components/authed-image-labels.ts +11 -0
- package/src/components/authed-image.tsx +6 -8
- package/src/components/autocomplete.tsx +84 -80
- package/src/components/breadcrumbs-labels.ts +10 -0
- package/src/components/breadcrumbs.tsx +17 -14
- package/src/components/bulk-action-bar-labels.ts +11 -0
- package/src/components/bulk-action-bar.tsx +15 -16
- package/src/components/button-group.tsx +7 -7
- package/src/components/button-look.ts +230 -0
- package/src/components/button.tsx +339 -0
- package/src/components/calculator.tsx +18 -11
- package/src/components/calendar-heatmap-labels.ts +15 -0
- package/src/components/calendar-heatmap.tsx +13 -19
- package/src/components/card.tsx +381 -0
- package/src/components/chart-zoom-core.tsx +653 -0
- package/src/components/chart-zoom.tsx +64 -648
- package/src/components/chart.tsx +11 -11
- package/src/components/checkbox-group.tsx +13 -10
- package/src/components/checkbox.tsx +43 -42
- package/src/components/chip-input.tsx +377 -0
- package/src/components/chip-labels.ts +13 -0
- package/src/components/chip.tsx +115 -711
- package/src/components/choice-card.tsx +83 -85
- package/src/components/column-mapper-labels.ts +45 -0
- package/src/components/column-mapper.tsx +16 -51
- package/src/components/combobox-core.tsx +351 -196
- package/src/components/combobox-suggestions.tsx +129 -0
- package/src/components/combobox.tsx +69 -893
- package/src/components/confirm-dialog-labels.ts +13 -0
- package/src/components/confirm-dialog.tsx +4 -8
- package/src/components/copy-button-labels.ts +13 -0
- package/src/components/copy-button.tsx +10 -12
- package/src/components/country-select-labels.ts +11 -0
- package/src/components/country-select.tsx +74 -89
- package/src/components/currency-option-list.tsx +216 -0
- package/src/components/currency-select.tsx +85 -196
- package/src/components/danger-confirm-labels.ts +20 -0
- package/src/components/danger-confirm.tsx +69 -77
- package/src/components/data-table-cells.tsx +5 -5
- package/src/components/data-table-column-settings.tsx +137 -0
- package/src/components/data-table-filter-popover.tsx +49 -24
- package/src/components/data-table-filters.ts +48 -11
- package/src/components/data-table-head.tsx +258 -0
- package/src/components/data-table-labels.ts +43 -11
- package/src/components/data-table-mobile.tsx +594 -0
- package/src/components/data-table-pagination.tsx +11 -10
- package/src/components/data-table-resize.ts +187 -0
- package/src/components/data-table-row-actions.tsx +152 -0
- package/src/components/data-table-selection.ts +55 -0
- package/src/components/data-table-shared.tsx +172 -0
- package/src/components/data-table.tsx +178 -1300
- package/src/components/date-field.tsx +627 -0
- package/src/components/date-picker.tsx +58 -1446
- package/src/components/date-range-picker.tsx +490 -0
- package/src/components/description-list-labels.ts +9 -0
- package/src/components/description-list.tsx +31 -15
- package/src/components/dialog-frame-labels.ts +7 -0
- package/src/components/dialog-frame.tsx +8 -6
- package/src/components/disclosure.tsx +14 -14
- package/src/components/dropdown.tsx +114 -42
- package/src/components/empty-state.tsx +137 -0
- package/src/components/entity-combobox.tsx +17 -12
- package/src/components/error-boundary-labels.ts +20 -0
- package/src/components/error-boundary.tsx +10 -20
- package/src/components/facing-pair.ts +1 -1
- package/src/components/field-base.tsx +615 -0
- package/src/components/field-parts.tsx +206 -77
- package/src/components/field-strip.tsx +16 -21
- package/src/components/field-sync-labels.ts +13 -0
- package/src/components/field-sync.tsx +11 -12
- package/src/components/field.tsx +13 -11
- package/src/components/file-button.tsx +64 -412
- package/src/components/file-dropzone.tsx +36 -33
- package/src/components/floating-panel-labels.ts +10 -0
- package/src/components/floating-panel.tsx +32 -21
- package/src/components/focus-ring.ts +9 -4
- package/src/components/form-actions-labels.ts +11 -0
- package/src/components/form-actions.tsx +17 -21
- package/src/components/full-bleed-dialog.tsx +33 -25
- package/src/components/grouped-picker.tsx +118 -96
- package/src/components/help-popover.tsx +115 -0
- package/src/components/hover-menu.tsx +46 -35
- package/src/components/iban-input-labels.ts +15 -0
- package/src/components/iban-input.tsx +25 -20
- package/src/components/icon-button.tsx +945 -0
- package/src/components/icon-picker-labels.ts +13 -0
- package/src/components/icon-picker.tsx +27 -24
- package/src/components/image-grid-labels.ts +11 -0
- package/src/components/image-grid.tsx +13 -15
- package/src/components/inline-edit-field-labels.ts +11 -0
- package/src/components/inline-edit-field.tsx +20 -19
- package/src/components/inline-entity-combobox.tsx +789 -0
- package/src/components/input.tsx +380 -0
- package/src/components/jump-calendar.tsx +385 -0
- package/src/components/language-select.tsx +31 -16
- package/src/components/legal-labels.ts +99 -0
- package/src/components/legal-page.tsx +2 -2
- package/src/components/legal.tsx +11 -101
- package/src/components/lightbox-labels.ts +18 -0
- package/src/components/lightbox.tsx +13 -21
- package/src/components/line-items-labels.ts +14 -0
- package/src/components/line-items.tsx +24 -31
- package/src/components/list-labels.ts +10 -0
- package/src/components/list.tsx +98 -75
- package/src/components/loading-state.tsx +4 -4
- package/src/components/measured-grid-labels.ts +25 -0
- package/src/components/measured-grid.tsx +39 -62
- package/src/components/menu-item.tsx +29 -26
- package/src/components/mini-calendar-labels.ts +17 -0
- package/src/components/mini-calendar.tsx +38 -45
- package/src/components/modal.tsx +36 -18
- package/src/components/money-draft.ts +72 -0
- package/src/components/money-field.tsx +16 -30
- package/src/components/month-picker-labels.ts +22 -0
- package/src/components/month-picker.tsx +59 -45
- package/src/components/multi-entity-combobox.tsx +17 -12
- package/src/components/multi-select.tsx +313 -288
- package/src/components/nav-pills.tsx +19 -8
- package/src/components/number-field.tsx +14 -5
- package/src/components/number-input.tsx +125 -90
- package/src/components/numeric-field.ts +161 -0
- package/src/components/numpad-sheet.tsx +16 -16
- package/src/components/one-time-code-input.tsx +154 -169
- package/src/components/page-contents-labels.ts +9 -0
- package/src/components/page-contents.tsx +15 -15
- package/src/components/page-header.tsx +9 -5
- package/src/components/password-strength-labels.ts +23 -0
- package/src/components/password-strength.tsx +13 -27
- package/src/components/phone-input-labels.ts +10 -0
- package/src/components/phone-input.tsx +42 -57
- package/src/components/picker-sheet.tsx +47 -18
- package/src/components/pie-chart.tsx +11 -9
- package/src/components/popover-labels.ts +14 -0
- package/src/components/popover.tsx +40 -39
- package/src/components/progress-bar-labels.ts +10 -0
- package/src/components/progress-bar.tsx +32 -23
- package/src/components/qr-code.tsx +2 -2
- package/src/components/reauth-dialog-labels.ts +13 -0
- package/src/components/reauth-dialog.tsx +7 -10
- package/src/components/row-actions-labels.ts +10 -0
- package/src/components/row-actions.tsx +11 -10
- package/src/components/scroll-area.tsx +4 -10
- package/src/components/search-field.tsx +35 -49
- package/src/components/select.tsx +302 -0
- package/src/components/separator.tsx +2 -2
- package/src/components/series-chart-axes.ts +329 -0
- package/src/components/series-chart-thin.ts +180 -0
- package/src/components/series-chart.tsx +124 -325
- package/src/components/server-wake-labels.ts +11 -0
- package/src/components/server-wake.tsx +42 -63
- package/src/components/settings-fields.tsx +46 -17
- package/src/components/share-card-labels.ts +30 -0
- package/src/components/share-card.tsx +22 -37
- package/src/components/sign-chip-labels.ts +12 -0
- package/src/components/sign-chip.tsx +6 -9
- package/src/components/signature-pad-labels.ts +24 -0
- package/src/components/signature-pad.tsx +48 -57
- package/src/components/signed-amount-labels.ts +10 -0
- package/src/components/signed-amount.tsx +21 -22
- package/src/components/skeleton.tsx +11 -3
- package/src/components/slider.tsx +51 -39
- package/src/components/sparkline-labels.ts +14 -0
- package/src/components/sparkline.tsx +16 -21
- package/src/components/spinner.tsx +81 -0
- package/src/components/stat-tile-labels.ts +15 -0
- package/src/components/stat-tile.tsx +32 -37
- package/src/components/status-dot.tsx +17 -14
- package/src/components/swatch-picker-labels.ts +10 -0
- package/src/components/swatch-picker.tsx +23 -16
- package/src/components/swipeable-row.tsx +7 -7
- package/src/components/switch.tsx +33 -32
- package/src/components/table.tsx +15 -15
- package/src/components/tabs.tsx +660 -0
- package/src/components/text-link.tsx +7 -7
- package/src/components/text.tsx +10 -6
- package/src/components/textarea.tsx +323 -0
- package/src/components/tile-radio.tsx +6 -6
- package/src/components/time-input.tsx +15 -7
- package/src/components/toast-labels.ts +12 -0
- package/src/components/toast.tsx +5 -8
- package/src/components/toggle-group.tsx +105 -42
- package/src/components/toggle-legend.tsx +6 -6
- package/src/components/tooltip.tsx +10 -21
- package/src/components/translation-review-editor.tsx +8 -7
- package/src/components/translation-review-parts.tsx +9 -13
- package/src/components/translation-review.tsx +26 -14
- package/src/components/tree-view.tsx +14 -12
- package/src/components/ui-labels.ts +22 -0
- package/src/components/user-avatar.tsx +3 -3
- package/src/components/wizard-stepper.tsx +10 -5
- package/src/components/write-lock-labels.ts +9 -0
- package/src/components/write-lock.tsx +10 -12
- package/src/data-table.ts +4 -0
- package/src/demo/demo-banner.tsx +9 -25
- package/src/demo/demo-ended.tsx +8 -7
- package/src/demo/demo-labels.ts +2 -2
- package/src/demo/demo-start.tsx +7 -5
- package/src/feedback/feedback-attachment-labels.ts +36 -0
- package/src/feedback/feedback-attachment.tsx +42 -66
- package/src/feedback/feedback-context-labels.ts +10 -0
- package/src/feedback/feedback-context.tsx +8 -9
- package/src/feedback/feedback-dialog-labels.ts +28 -0
- package/src/feedback/feedback-dialog.tsx +14 -44
- package/src/feedback/feedback-inbox.tsx +49 -252
- package/src/feedback/feedback-labels.ts +5 -5
- package/src/feedback/feedback-menu-labels.ts +11 -0
- package/src/feedback/feedback-menu.tsx +13 -11
- package/src/feedback/feedback-record.ts +21 -7
- package/src/feedback/feedback-row-detail-labels.ts +33 -0
- package/src/feedback/feedback-row-detail.tsx +30 -43
- package/src/feedback/feedback-status-undo.ts +3 -2
- package/src/feedback/feedback-submit-dialog.tsx +109 -0
- package/src/feedback/feedback-submit.tsx +45 -55
- package/src/feedback/feedback-swipe.tsx +1 -1
- package/src/feedback/feedback-table-labels.ts +27 -0
- package/src/feedback/feedback-table.tsx +24 -40
- package/src/feedback/feedback-thread-labels.ts +22 -0
- package/src/feedback/feedback-thread.tsx +68 -48
- package/src/feedback/feedback-vocabulary.ts +252 -0
- package/src/hooks/use-anchored-panel.ts +155 -9
- package/src/hooks/use-anchored-rect.ts +11 -9
- package/src/hooks/use-authed-src.ts +13 -7
- package/src/hooks/use-breakpoint.ts +5 -4
- package/src/hooks/use-close-transition.ts +9 -10
- package/src/hooks/use-debounce.ts +9 -0
- package/src/hooks/use-dismiss.ts +176 -19
- package/src/hooks/use-file-drop.ts +2 -2
- package/src/hooks/use-file-picker-labels.ts +29 -0
- package/src/hooks/use-file-picker.tsx +363 -0
- package/src/hooks/use-focus-trap.ts +74 -18
- package/src/i18n/defaults.ts +91 -82
- package/src/i18n/german.ts +54 -7
- package/src/i18n/kit-labels.tsx +70 -119
- package/src/i18n/locales/en.ts +46 -0
- package/src/i18n/locales/es.ts +52 -7
- package/src/i18n/locales/fr.ts +55 -8
- package/src/i18n/locales/hu.ts +54 -8
- package/src/i18n/locales/it.ts +53 -7
- package/src/i18n/locales/zh.ts +50 -6
- package/src/i18n/plurals.ts +29 -0
- package/src/i18n/review.ts +4 -0
- package/src/i18n/shared-labels.ts +135 -0
- package/src/index.ts +412 -402
- package/src/landing/access.ts +2 -1
- package/src/landing/landing-actions.tsx +6 -5
- package/src/landing/landing-labels.ts +2 -2
- package/src/landing/landing-sections.tsx +24 -23
- package/src/landing/public-header.tsx +3 -2
- package/src/landing/routing.tsx +2 -7
- package/src/lib/chip-edge-snap.ts +212 -0
- package/src/lib/cn.ts +13 -1
- package/src/lib/dates.ts +4 -2
- package/src/lib/decimal-marks.ts +4 -2
- package/src/lib/download.ts +172 -0
- package/src/lib/floating-stack.ts +5 -1
- package/src/lib/format.ts +5 -3
- package/src/lib/ime.ts +24 -0
- package/src/lib/presence.ts +18 -0
- package/src/lib/reduced-motion.ts +21 -0
- package/src/lib/round.ts +38 -0
- package/src/lib/safe-storage.ts +35 -11
- package/src/lib/session-refresh.ts +473 -0
- package/src/lib/text-match.ts +60 -0
- package/src/lib/translation-review.ts +7 -6
- package/src/rhf/fields.tsx +131 -179
- package/src/rhf/form-core.tsx +327 -0
- package/src/rhf/form.tsx +46 -321
- package/src/rhf/line-items.tsx +1 -1
- package/src/rhf.ts +3 -2
- package/src/search/command-palette-labels.ts +16 -0
- package/src/search/command-palette.tsx +37 -50
- package/src/search/global-search-labels.ts +13 -0
- package/src/search/global-search.tsx +50 -24
- package/src/search/search-index.ts +5 -6
- package/src/search/use-command-key.ts +22 -0
- package/src/settings/settings-card-classes.ts +11 -0
- package/src/settings/settings-heading.tsx +1 -1
- package/src/settings/settings-labels.ts +2 -2
- package/src/settings/settings-layout.tsx +65 -6
- package/src/settings/settings-section.tsx +5 -5
- package/src/settings/use-settings-focus.ts +2 -5
- package/src/shell/app-shell-labels.ts +10 -0
- package/src/shell/app-shell.tsx +79 -53
- package/src/shell/auth-layout.tsx +11 -10
- package/src/shell/company-switcher-labels.ts +13 -0
- package/src/shell/company-switcher.tsx +7 -11
- package/src/shell/option-switcher-menu.tsx +25 -6
- package/src/shell/role-switcher.tsx +7 -3
- package/src/shell/top-bar-brand.tsx +1 -1
- package/src/shell/top-bar.tsx +6 -5
- package/src/shell/topbar-action-menu.tsx +39 -20
- package/src/shell/topbar-controls.tsx +24 -12
- package/src/shell.ts +1 -1
- package/src/testing/index.ts +11 -0
- package/src/testing/viewport.ts +251 -0
- package/src/theme/color.ts +7 -1
- package/src/theme/palette-derive.ts +29 -7
- package/src/theme/palette-presets.ts +81 -68
- package/src/tour/tour-labels.ts +14 -0
- package/src/tour/tour.tsx +13 -23
- package/src/wizard/stepper-nav.tsx +19 -18
- package/src/wizard/types.ts +7 -22
- package/src/wizard/wizard-labels.ts +29 -0
- package/src/wizard/wizard-step.tsx +2 -2
- package/src/wizard/wizard-summary.tsx +8 -7
- package/tokens.css +63 -14
- package/dist/components/account-settings-labels.js.map +0 -1
- package/dist/components/account-settings.js.map +0 -1
- package/dist/components/choice-parts.d.ts +0 -24
- package/dist/components/choice-parts.js +0 -18
- package/dist/components/choice-parts.js.map +0 -1
- package/dist/components/passkeys-setting.js.map +0 -1
- package/dist/components/ui.d.ts +0 -100
- package/dist/components/ui.js +0 -1955
- package/dist/components/ui.js.map +0 -1
- package/dist/data-table-labels-BJ5JE_X2.d.ts +0 -923
- package/dist/delete-account-setting-DiPX4Vue.d.ts +0 -8130
- package/src/components/choice-parts.ts +0 -33
- package/src/components/ui.tsx +0 -4233
|
@@ -1,113 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { LandingSession } from './landing-actions.js';
|
|
4
|
-
import '../delete-account-setting-DiPX4Vue.js';
|
|
5
|
-
import '../components/tooltip.js';
|
|
6
|
-
import '../hooks/use-anchored-rect.js';
|
|
7
|
-
import '../lib/clipping.js';
|
|
8
|
-
import '../data-table-labels-BJ5JE_X2.js';
|
|
9
|
-
import '../components/data-table-sort.js';
|
|
10
|
-
import '../components/swipeable-row.js';
|
|
11
|
-
import '../components/status-dot.js';
|
|
12
|
-
import '../components/progress-bar.js';
|
|
13
|
-
import '../components/signed-amount.js';
|
|
14
|
-
import '../components/stat-tile.js';
|
|
15
|
-
import '../components/chip.js';
|
|
16
|
-
import 'lucide-react';
|
|
17
|
-
import '../components/field-parts.js';
|
|
18
|
-
import '../components/write-lock.js';
|
|
19
|
-
import '../components/mini-calendar.js';
|
|
20
|
-
import '../components/calendar-heatmap.js';
|
|
21
|
-
import '../components/popover.js';
|
|
22
|
-
import '../hooks/use-breakpoint.js';
|
|
23
|
-
import '../components/field-sync.js';
|
|
24
|
-
import '../wizard/types.js';
|
|
25
|
-
import '../tour/tour.js';
|
|
26
|
-
import '../search/command-palette.js';
|
|
27
|
-
import '../search/global-search.js';
|
|
28
|
-
import '../search/search-index.js';
|
|
29
|
-
import '../components/month-picker.js';
|
|
30
|
-
import '../components/page-contents.js';
|
|
31
|
-
import '../components/series-chart-labels.js';
|
|
32
|
-
import '../components/pie-chart-labels.js';
|
|
33
|
-
import '../components/sparkline.js';
|
|
34
|
-
import '../components/signature-pad.js';
|
|
35
|
-
import '../components/password-strength.js';
|
|
36
|
-
import '../components/swatch-picker.js';
|
|
37
|
-
import '../components/tile-radio.js';
|
|
38
|
-
import '../components/icon-picker.js';
|
|
39
|
-
import '../components/dialog-frame.js';
|
|
40
|
-
import '../components/modal.js';
|
|
41
|
-
import '../hooks/use-search-param-state.js';
|
|
42
|
-
import '../components/measured-grid.js';
|
|
43
|
-
import '../components/user-avatar.js';
|
|
44
|
-
import '../lib/person-name.js';
|
|
45
|
-
import '../shell/topbar-action-menu.js';
|
|
46
|
-
import '../components/menu-item.js';
|
|
47
|
-
import '../components/floating-panel.js';
|
|
48
|
-
import '../hooks/use-authed-src.js';
|
|
49
|
-
import '../components/account-settings-labels.js';
|
|
50
|
-
import '../components/bulk-action-bar.js';
|
|
51
|
-
import '../components/list.js';
|
|
52
|
-
import '../components/breadcrumbs.js';
|
|
53
|
-
import '../components/toast.js';
|
|
54
|
-
import '../components/description-list.js';
|
|
55
|
-
import '../components/line-items.js';
|
|
56
|
-
import '../components/error-boundary.js';
|
|
57
|
-
import '../components/authed-image.js';
|
|
58
|
-
import '../components/image-grid.js';
|
|
59
|
-
import '../components/lightbox.js';
|
|
60
|
-
import '../auth/sign-in-form.js';
|
|
61
|
-
import './access.js';
|
|
62
|
-
import './landing-labels.js';
|
|
63
|
-
import '../shell/topbar-controls.js';
|
|
64
|
-
import '../theme/palette-presets.js';
|
|
65
|
-
import '../theme/chart-palette.js';
|
|
66
|
-
import '../theme/theme-store.js';
|
|
67
|
-
import 'zustand/middleware';
|
|
68
|
-
import 'zustand';
|
|
69
|
-
import '../auth/complete-name-dialog.js';
|
|
70
|
-
import '../auth/forgot-password-form.js';
|
|
71
|
-
import '../auth/status-parts.js';
|
|
72
|
-
import '../auth/reset-password-form.js';
|
|
73
|
-
import '../auth/verify-email.js';
|
|
74
|
-
import '../auth/not-found-page.js';
|
|
75
|
-
import '../auth/accept-invitation.js';
|
|
76
|
-
import '../shell/company-switcher.js';
|
|
77
|
-
import '../account/email-change-setting.js';
|
|
78
|
-
import '../account/sessions-setting.js';
|
|
79
|
-
import '../lib/format.js';
|
|
80
|
-
import '../account/data-export-setting.js';
|
|
81
|
-
import '../components/account-chips.js';
|
|
82
|
-
import '../admin/admin-parts.js';
|
|
83
|
-
import '../admin/admin-action-log.js';
|
|
84
|
-
import '../settings/settings-labels.js';
|
|
85
|
-
import '../demo/demo-labels.js';
|
|
86
|
-
import '../components/appearance-labels.js';
|
|
87
|
-
import '../theme/contrast.js';
|
|
88
|
-
import '../theme/text-size.js';
|
|
89
|
-
import '../components/reauth-dialog.js';
|
|
90
|
-
import '../components/server-wake.js';
|
|
91
|
-
import '../lib/server-wake.js';
|
|
92
|
-
import '../components/translation-review-labels.js';
|
|
93
|
-
import '../lib/translation-review.js';
|
|
94
|
-
import '../components/country-select.js';
|
|
95
|
-
import '../components/inline-edit-field.js';
|
|
96
|
-
import '../lib/iban.js';
|
|
97
|
-
import '../lib/phone.js';
|
|
98
|
-
import '../components/sign-chip.js';
|
|
99
|
-
import '../components/column-mapper.js';
|
|
100
|
-
import '../lib/column-mapping.js';
|
|
101
|
-
import '../lib/table-text.js';
|
|
102
|
-
import '../components/focus-ring.js';
|
|
103
|
-
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { LandingSession } from "./landing-actions.js";
|
|
104
3
|
/**
|
|
105
4
|
* 0.31.1: a session that is still being restored — an app whose access token lives in
|
|
106
5
|
* memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until
|
|
107
6
|
* then `/` neither shows the landing nor resumes, and a public page neither shows nor
|
|
108
7
|
* redirects: both render `loading` instead.
|
|
109
8
|
*/
|
|
110
|
-
type RoutingSession = LandingSession | "loading";
|
|
9
|
+
export type RoutingSession = LandingSession | "loading";
|
|
111
10
|
/**
|
|
112
11
|
* The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,
|
|
113
12
|
* which pages a session skips, and the page a session resumes on — keksdose's
|
|
@@ -116,7 +15,7 @@ type RoutingSession = LandingSession | "loading";
|
|
|
116
15
|
*/
|
|
117
16
|
/** The query parameter that carries "where I was actually trying to go" through the
|
|
118
17
|
* sign-in bounce (keksdose's `NEXT_PARAM`). */
|
|
119
|
-
declare const NEXT_PARAM = "next";
|
|
18
|
+
export declare const NEXT_PARAM = "next";
|
|
120
19
|
/**
|
|
121
20
|
* A `?next=` value that is safe to navigate to, or null.
|
|
122
21
|
*
|
|
@@ -136,10 +35,10 @@ declare const NEXT_PARAM = "next";
|
|
|
136
35
|
* keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback
|
|
137
36
|
* origin.
|
|
138
37
|
*/
|
|
139
|
-
declare function safeNextPath(raw: string | null | undefined): string | null;
|
|
38
|
+
export declare function safeNextPath(raw: string | null | undefined): string | null;
|
|
140
39
|
/** A path to leave out: a string is the path and everything under it (`/demo` is
|
|
141
40
|
* `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */
|
|
142
|
-
type PathPattern = string | RegExp;
|
|
41
|
+
export type PathPattern = string | RegExp;
|
|
143
42
|
/**
|
|
144
43
|
* The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the
|
|
145
44
|
* auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its
|
|
@@ -147,8 +46,8 @@ type PathPattern = string | RegExp;
|
|
|
147
46
|
* and it never sees one. The app adds its own one-shot routes (keksdose:
|
|
148
47
|
* `/banks/callback`, `/join`, `/share-target`) through `exclude`.
|
|
149
48
|
*/
|
|
150
|
-
declare const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[];
|
|
151
|
-
interface LastVisitedPageOptions {
|
|
49
|
+
export declare const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[];
|
|
50
|
+
export interface LastVisitedPageOptions {
|
|
152
51
|
/** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */
|
|
153
52
|
key: string;
|
|
154
53
|
/** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */
|
|
@@ -166,19 +65,19 @@ interface LastVisitedPageOptions {
|
|
|
166
65
|
* one-shot page (a bank callback, an invitation link) never becomes the place the next
|
|
167
66
|
* launch opens on.
|
|
168
67
|
*/
|
|
169
|
-
declare function useLastVisitedPage({ key, exclude, enabled }: LastVisitedPageOptions): void;
|
|
68
|
+
export declare function useLastVisitedPage({ key, exclude, enabled }: LastVisitedPageOptions): void;
|
|
170
69
|
/**
|
|
171
70
|
* The page {@link useLastVisitedPage} remembered under `key` — checked by
|
|
172
71
|
* {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —
|
|
173
72
|
* or `fallback` (default `null`) when there is none or storage is blocked. A string
|
|
174
73
|
* fallback narrows the answer to a string, for react-router's `to`.
|
|
175
74
|
*/
|
|
176
|
-
declare function readLastVisitedPage(key: string, fallback: string): string;
|
|
177
|
-
declare function readLastVisitedPage(key: string, fallback?: null): string | null;
|
|
75
|
+
export declare function readLastVisitedPage(key: string, fallback: string): string;
|
|
76
|
+
export declare function readLastVisitedPage(key: string, fallback?: null): string | null;
|
|
178
77
|
/** Forget the remembered page — on an explicit sign-out, so the next account does not
|
|
179
78
|
* resume on the previous one's page. */
|
|
180
|
-
declare function clearLastVisitedPage(key: string): void;
|
|
181
|
-
interface RootEntryProps {
|
|
79
|
+
export declare function clearLastVisitedPage(key: string): void;
|
|
80
|
+
export interface RootEntryProps {
|
|
182
81
|
/** Without a session `/` is the landing; with one (real or demo) it resumes;
|
|
183
82
|
* `"loading"` while the app restores one. */
|
|
184
83
|
session: RoutingSession;
|
|
@@ -201,8 +100,8 @@ interface RootEntryProps {
|
|
|
201
100
|
* home instead, because a session at `/` came to use the app. The landing stays one tap
|
|
202
101
|
* away at `/welcome`, where the signed-in brand link points.
|
|
203
102
|
*/
|
|
204
|
-
declare function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps): react.JSX.Element;
|
|
205
|
-
interface RedirectIfAuthedProps {
|
|
103
|
+
export declare function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps): import("react").JSX.Element;
|
|
104
|
+
export interface RedirectIfAuthedProps {
|
|
206
105
|
/** `"loading"` while the app restores a session: neither the page nor a redirect. */
|
|
207
106
|
session: RoutingSession;
|
|
208
107
|
/** What shows while `session` is `"loading"`. Default: the kit's `LoadingState`. */
|
|
@@ -231,6 +130,4 @@ interface RedirectIfAuthedProps {
|
|
|
231
130
|
* `allowDemo` around `/login`, `/register` and the invitation pages, and one without
|
|
232
131
|
* around `/demo` (and `/forgot-password`).
|
|
233
132
|
*/
|
|
234
|
-
declare function RedirectIfAuthed({ session, allowDemo, fallback, children, loading }: RedirectIfAuthedProps): react.JSX.Element;
|
|
235
|
-
|
|
236
|
-
export { DEFAULT_LAST_VISITED_EXCLUDES, type LastVisitedPageOptions, NEXT_PARAM, type PathPattern, RedirectIfAuthed, type RedirectIfAuthedProps, RootEntry, type RootEntryProps, type RoutingSession, clearLastVisitedPage, readLastVisitedPage, safeNextPath, useLastVisitedPage };
|
|
133
|
+
export declare function RedirectIfAuthed({ session, allowDemo, fallback, children, loading }: RedirectIfAuthedProps): import("react").JSX.Element;
|
package/dist/landing/routing.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect } from "react";
|
|
4
4
|
import { Navigate, Outlet, useLocation } from "react-router";
|
|
5
|
-
import { readStored, writeStored } from "../lib/safe-storage.js";
|
|
5
|
+
import { readStored, removeStored, writeStored } from "../lib/safe-storage.js";
|
|
6
6
|
import { LoadingState } from "../components/loading-state.js";
|
|
7
7
|
const NEXT_PARAM = "next";
|
|
8
8
|
function safeNextPath(raw) {
|
|
@@ -50,11 +50,7 @@ function readLastVisitedPage(key, fallback = null) {
|
|
|
50
50
|
return safeNextPath(readStored(key)) ?? fallback;
|
|
51
51
|
}
|
|
52
52
|
function clearLastVisitedPage(key) {
|
|
53
|
-
|
|
54
|
-
try {
|
|
55
|
-
window.localStorage.removeItem(key);
|
|
56
|
-
} catch {
|
|
57
|
-
}
|
|
53
|
+
removeStored(key);
|
|
58
54
|
}
|
|
59
55
|
function RootEntry({ session, resumePath, landing, home, loading }) {
|
|
60
56
|
if (session === "loading") return /* @__PURE__ */ jsx(Fragment, { children: loading ?? /* @__PURE__ */ jsx(LoadingState, {}) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/landing/routing.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Navigate, Outlet, useLocation } from \"react-router\";\n\nimport { readStored, writeStored } from \"../lib/safe-storage\";\nimport type { LandingSession } from \"./landing-actions\";\nimport { LoadingState } from \"../components/loading-state\";\n\n/**\n * 0.31.1: a session that is still being restored — an app whose access token lives in\n * memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until\n * then `/` neither shows the landing nor resumes, and a public page neither shows nor\n * redirects: both render `loading` instead.\n */\nexport type RoutingSession = LandingSession | \"loading\";\n\n/**\n * The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,\n * which pages a session skips, and the page a session resumes on — keksdose's\n * `RootEntry`, `RedirectIfAuthed` and use-last-visited-page.ts, for every app.\n * Router-aware (react-router), so they belong to the `./shell` entry.\n */\n\n/* ── ?next= ──────────────────────────────────────────────────────────────── */\n\n/** The query parameter that carries \"where I was actually trying to go\" through the\n * sign-in bounce (keksdose's `NEXT_PARAM`). */\nexport const NEXT_PARAM = \"next\";\n\n/**\n * A `?next=` value that is safe to navigate to, or null.\n *\n * Same-origin PATHS only, decided by the URL PARSER rather than by string prefix —\n * this is the open-redirect check, and it is the reason this lives in one place\n * instead of at each call site.\n *\n * The prefix version (\"starts with `/`, does not start with `//`\") let two shapes\n * through that the browser resolves cross-origin, because the WHATWG parser does not\n * read them as text: a backslash after the leading slash counts as a second slash for\n * a special scheme, so `/\\evil.example` resolves to `https://evil.example/`; and tab,\n * LF and CR are STRIPPED anywhere in the input before parsing, so `/<TAB>/evil.example`\n * becomes `//evil.example`. Asking the same parser the browser will use closes every\n * such shape at once, including ones nobody has thought of yet, and it normalises what\n * comes back instead of echoing the caller's spelling.\n *\n * keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback\n * origin.\n */\nexport function safeNextPath(raw: string | null | undefined): string | null {\n if (!raw) return null;\n const base = typeof window !== \"undefined\" ? window.location.origin : \"https://kit.invalid\";\n try {\n const url = new URL(raw, base);\n if (url.origin !== base) return null;\n return `${url.pathname}${url.search}${url.hash}`;\n } catch {\n return null;\n }\n}\n\n/* ── The last visited page (§3.2) ────────────────────────────────────────── */\n\n/** A path to leave out: a string is the path and everything under it (`/demo` is\n * `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */\nexport type PathPattern = string | RegExp;\n\n/**\n * The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the\n * auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its\n * own — call {@link useLastVisitedPage} inside the signed-in layout, as keksdose does,\n * and it never sees one. The app adds its own one-shot routes (keksdose:\n * `/banks/callback`, `/join`, `/share-target`) through `exclude`.\n */\nexport const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[] = Object.freeze([\n \"/\",\n \"/welcome\",\n \"/login\",\n \"/register\",\n \"/forgot-password\",\n \"/reset-password\",\n \"/verify-email\",\n \"/demo\",\n \"/impressum\",\n \"/privacy\",\n \"/terms\",\n]);\n\nfunction matchesPath(pathname: string, pattern: PathPattern): boolean {\n if (typeof pattern !== \"string\") return new RegExp(pattern.source, pattern.flags.replace(\"g\", \"\")).test(pathname);\n if (pattern === \"/\") return pathname === \"/\";\n const base = pattern.endsWith(\"/\") ? pattern.slice(0, -1) : pattern;\n return pathname === base || pathname.startsWith(`${base}/`);\n}\n\n/** Whether `pathname` is one of the defaults or the app's `exclude`. */\nfunction isExcluded(pathname: string, exclude: readonly PathPattern[]): boolean {\n return [...DEFAULT_LAST_VISITED_EXCLUDES, ...exclude].some((pattern) => matchesPath(pathname, pattern));\n}\n\nexport interface LastVisitedPageOptions {\n /** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */\n key: string;\n /** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */\n exclude?: readonly PathPattern[];\n /** `false` records nothing — while the session is still being restored, say. */\n enabled?: boolean;\n}\n\n/**\n * Remember the page a session is on (path and query), on every navigation, so `/` — a\n * revisit, a fresh sign-in, the installed PWA, whose `start_url` is `/` — resumes there\n * (§3.2, keksdose feedback #59). Device-local, in `localStorage` under `key`; a blocked\n * storage records nothing.\n *\n * Call it once in the signed-in layout. The excluded paths are never written, so a\n * one-shot page (a bank callback, an invitation link) never becomes the place the next\n * launch opens on.\n */\nexport function useLastVisitedPage({ key, exclude = [], enabled = true }: LastVisitedPageOptions): void {\n const { pathname, search } = useLocation();\n // Decided here, so the effect depends on the answer and not on an `exclude` array the\n // caller likely builds inline.\n const skip = !enabled || isExcluded(pathname, exclude);\n useEffect(() => {\n if (skip) return;\n writeStored(key, pathname + search);\n }, [key, pathname, search, skip]);\n}\n\n/**\n * The page {@link useLastVisitedPage} remembered under `key` — checked by\n * {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —\n * or `fallback` (default `null`) when there is none or storage is blocked. A string\n * fallback narrows the answer to a string, for react-router's `to`.\n */\nexport function readLastVisitedPage(key: string, fallback: string): string;\nexport function readLastVisitedPage(key: string, fallback?: null): string | null;\nexport function readLastVisitedPage(key: string, fallback: string | null = null): string | null {\n return safeNextPath(readStored(key)) ?? fallback;\n}\n\n/** Forget the remembered page — on an explicit sign-out, so the next account does not\n * resume on the previous one's page. */\nexport function clearLastVisitedPage(key: string): void {\n if (typeof window === \"undefined\") return;\n try {\n window.localStorage.removeItem(key);\n } catch {\n // storage blocked: there is nothing to forget\n }\n}\n\n/* ── RootEntry ───────────────────────────────────────────────────────────── */\n\nexport interface RootEntryProps {\n /** Without a session `/` is the landing; with one (real or demo) it resumes;\n * `\"loading\"` while the app restores one. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /** The remembered page — `readLastVisitedPage(key)`. */\n resumePath?: string | null;\n /** The landing page element. */\n landing: ReactNode;\n /** The app's home: where a session goes with nothing to resume (keksdose `/budget`,\n * kastlan and Kurvenschmiede `/dashboard`). */\n home: string;\n}\n\n/**\n * The `/` route (§3.1): the landing for a visitor, and for a session — real or demo —\n * the last visited page, else the app's home. Indexed and canonical `/` for the visitor;\n * a crawler never has a session, so for it `/` is stable.\n *\n * keksdose showed a session with nothing remembered the landing; the contract sends it\n * home instead, because a session at `/` came to use the app. The landing stays one tap\n * away at `/welcome`, where the signed-in brand link points.\n */\nexport function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps) {\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\") return <>{landing}</>;\n const resume = safeNextPath(resumePath);\n return <Navigate to={resume && resume !== \"/\" ? resume : home} replace />;\n}\n\n/* ── RedirectIfAuthed ────────────────────────────────────────────────────── */\n\nexport interface RedirectIfAuthedProps {\n /** `\"loading\"` while the app restores a session: neither the page nor a redirect. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /**\n * Let a DEMO session through (§5.6): on `/login`, `/register` and the app's invitation\n * pages, so a demo visitor can sign in or accept an invitation — a successful one\n * replaces the demo session. Default `false`: on `/demo` a live demo continues instead\n * of starting a second one (§5.2), and on `/forgot-password` a demo has no password.\n */\n allowDemo?: boolean;\n /** Where a redirected session goes: the resume target —\n * `readLastVisitedPage(key, home)`. A safe `?next=` goes first. */\n fallback: string;\n /** The page. Left out, an `<Outlet />`: the component is a layout route around the\n * public pages, as in keksdose. */\n children?: ReactNode;\n}\n\n/**\n * Public pages a session skips (§3.1): a signed-in visitor at `/login` goes back into\n * the app, to a safe `?next=` when the URL carries one (a share invitation or a push\n * deep link opened with a live session in another tab — keksdose) and else to\n * `fallback`.\n *\n * A demo session passes where `allowDemo` says so (§5.6). Mount one wrapper with\n * `allowDemo` around `/login`, `/register` and the invitation pages, and one without\n * around `/demo` (and `/forgot-password`).\n */\nexport function RedirectIfAuthed({ session, allowDemo = false, fallback, children, loading }: RedirectIfAuthedProps) {\n const { search } = useLocation();\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\" || (session === \"demo\" && allowDemo)) {\n return children === undefined ? <Outlet /> : <>{children}</>;\n }\n const next = safeNextPath(new URLSearchParams(search).get(NEXT_PARAM));\n return <Navigate to={next ?? fallback} replace />;\n}\n"],"mappings":";AAmLoC,mBAAc,WAAd;AAnLpC,SAAS,iBAAiB;AAE1B,SAAS,UAAU,QAAQ,mBAAmB;AAE9C,SAAS,YAAY,mBAAmB;AAExC,SAAS,oBAAoB;AAqBtB,MAAM,aAAa;AAqBnB,SAAS,aAAa,KAA+C;AAC1E,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,OAAO,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AACtE,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,KAAK,IAAI;AAC7B,QAAI,IAAI,WAAW,KAAM,QAAO;AAChC,WAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAeO,MAAM,gCAAwD,OAAO,OAAO;AAAA,EACjF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,YAAY,UAAkB,SAA+B;AACpE,MAAI,OAAO,YAAY,SAAU,QAAO,IAAI,OAAO,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ;AAChH,MAAI,YAAY,IAAK,QAAO,aAAa;AACzC,QAAM,OAAO,QAAQ,SAAS,GAAG,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC5D,SAAO,aAAa,QAAQ,SAAS,WAAW,GAAG,IAAI,GAAG;AAC5D;AAGA,SAAS,WAAW,UAAkB,SAA0C;AAC9E,SAAO,CAAC,GAAG,+BAA+B,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,YAAY,UAAU,OAAO,CAAC;AACxG;AAqBO,SAAS,mBAAmB,EAAE,KAAK,UAAU,CAAC,GAAG,UAAU,KAAK,GAAiC;AACtG,QAAM,EAAE,UAAU,OAAO,IAAI,YAAY;AAGzC,QAAM,OAAO,CAAC,WAAW,WAAW,UAAU,OAAO;AACrD,YAAU,MAAM;AACd,QAAI,KAAM;AACV,gBAAY,KAAK,WAAW,MAAM;AAAA,EACpC,GAAG,CAAC,KAAK,UAAU,QAAQ,IAAI,CAAC;AAClC;AAUO,SAAS,oBAAoB,KAAa,WAA0B,MAAqB;AAC9F,SAAO,aAAa,WAAW,GAAG,CAAC,KAAK;AAC1C;AAIO,SAAS,qBAAqB,KAAmB;AACtD,MAAI,OAAO,WAAW,YAAa;AACnC,MAAI;AACF,WAAO,aAAa,WAAW,GAAG;AAAA,EACpC,QAAQ;AAAA,EAER;AACF;AA4BO,SAAS,UAAU,EAAE,SAAS,YAAY,SAAS,MAAM,QAAQ,GAAmB;AACzF,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,OAAQ,QAAO,gCAAG,mBAAQ;AAC1C,QAAM,SAAS,aAAa,UAAU;AACtC,SAAO,oBAAC,YAAS,IAAI,UAAU,WAAW,MAAM,SAAS,MAAM,SAAO,MAAC;AACzE;AAkCO,SAAS,iBAAiB,EAAE,SAAS,YAAY,OAAO,UAAU,UAAU,QAAQ,GAA0B;AACnH,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,UAAW,YAAY,UAAU,WAAY;AAC3D,WAAO,aAAa,SAAY,oBAAC,UAAO,IAAK,gCAAG,UAAS;AAAA,EAC3D;AACA,QAAM,OAAO,aAAa,IAAI,gBAAgB,MAAM,EAAE,IAAI,UAAU,CAAC;AACrE,SAAO,oBAAC,YAAS,IAAI,QAAQ,UAAU,SAAO,MAAC;AACjD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/landing/routing.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Navigate, Outlet, useLocation } from \"react-router\";\n\nimport { readStored, removeStored, writeStored } from \"../lib/safe-storage\";\nimport type { LandingSession } from \"./landing-actions\";\nimport { LoadingState } from \"../components/loading-state\";\n\n/**\n * 0.31.1: a session that is still being restored — an app whose access token lives in\n * memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until\n * then `/` neither shows the landing nor resumes, and a public page neither shows nor\n * redirects: both render `loading` instead.\n */\nexport type RoutingSession = LandingSession | \"loading\";\n\n/**\n * The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,\n * which pages a session skips, and the page a session resumes on — keksdose's\n * `RootEntry`, `RedirectIfAuthed` and use-last-visited-page.ts, for every app.\n * Router-aware (react-router), so they belong to the `./shell` entry.\n */\n\n/* ── ?next= ──────────────────────────────────────────────────────────────── */\n\n/** The query parameter that carries \"where I was actually trying to go\" through the\n * sign-in bounce (keksdose's `NEXT_PARAM`). */\nexport const NEXT_PARAM = \"next\";\n\n/**\n * A `?next=` value that is safe to navigate to, or null.\n *\n * Same-origin PATHS only, decided by the URL PARSER rather than by string prefix —\n * this is the open-redirect check, and it is the reason this lives in one place\n * instead of at each call site.\n *\n * The prefix version (\"starts with `/`, does not start with `//`\") let two shapes\n * through that the browser resolves cross-origin, because the WHATWG parser does not\n * read them as text: a backslash after the leading slash counts as a second slash for\n * a special scheme, so `/\\evil.example` resolves to `https://evil.example/`; and tab,\n * LF and CR are STRIPPED anywhere in the input before parsing, so `/<TAB>/evil.example`\n * becomes `//evil.example`. Asking the same parser the browser will use closes every\n * such shape at once, including ones nobody has thought of yet, and it normalises what\n * comes back instead of echoing the caller's spelling.\n *\n * keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback\n * origin.\n */\nexport function safeNextPath(raw: string | null | undefined): string | null {\n if (!raw) return null;\n const base = typeof window !== \"undefined\" ? window.location.origin : \"https://kit.invalid\";\n try {\n const url = new URL(raw, base);\n if (url.origin !== base) return null;\n return `${url.pathname}${url.search}${url.hash}`;\n } catch {\n return null;\n }\n}\n\n/* ── The last visited page (§3.2) ────────────────────────────────────────── */\n\n/** A path to leave out: a string is the path and everything under it (`/demo` is\n * `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */\nexport type PathPattern = string | RegExp;\n\n/**\n * The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the\n * auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its\n * own — call {@link useLastVisitedPage} inside the signed-in layout, as keksdose does,\n * and it never sees one. The app adds its own one-shot routes (keksdose:\n * `/banks/callback`, `/join`, `/share-target`) through `exclude`.\n */\nexport const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[] = Object.freeze([\n \"/\",\n \"/welcome\",\n \"/login\",\n \"/register\",\n \"/forgot-password\",\n \"/reset-password\",\n \"/verify-email\",\n \"/demo\",\n \"/impressum\",\n \"/privacy\",\n \"/terms\",\n]);\n\nfunction matchesPath(pathname: string, pattern: PathPattern): boolean {\n if (typeof pattern !== \"string\") return new RegExp(pattern.source, pattern.flags.replace(\"g\", \"\")).test(pathname);\n if (pattern === \"/\") return pathname === \"/\";\n const base = pattern.endsWith(\"/\") ? pattern.slice(0, -1) : pattern;\n return pathname === base || pathname.startsWith(`${base}/`);\n}\n\n/** Whether `pathname` is one of the defaults or the app's `exclude`. */\nfunction isExcluded(pathname: string, exclude: readonly PathPattern[]): boolean {\n return [...DEFAULT_LAST_VISITED_EXCLUDES, ...exclude].some((pattern) => matchesPath(pathname, pattern));\n}\n\nexport interface LastVisitedPageOptions {\n /** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */\n key: string;\n /** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */\n exclude?: readonly PathPattern[];\n /** `false` records nothing — while the session is still being restored, say. */\n enabled?: boolean;\n}\n\n/**\n * Remember the page a session is on (path and query), on every navigation, so `/` — a\n * revisit, a fresh sign-in, the installed PWA, whose `start_url` is `/` — resumes there\n * (§3.2, keksdose feedback #59). Device-local, in `localStorage` under `key`; a blocked\n * storage records nothing.\n *\n * Call it once in the signed-in layout. The excluded paths are never written, so a\n * one-shot page (a bank callback, an invitation link) never becomes the place the next\n * launch opens on.\n */\nexport function useLastVisitedPage({ key, exclude = [], enabled = true }: LastVisitedPageOptions): void {\n const { pathname, search } = useLocation();\n // Decided here, so the effect depends on the answer and not on an `exclude` array the\n // caller likely builds inline.\n const skip = !enabled || isExcluded(pathname, exclude);\n useEffect(() => {\n if (skip) return;\n writeStored(key, pathname + search);\n }, [key, pathname, search, skip]);\n}\n\n/**\n * The page {@link useLastVisitedPage} remembered under `key` — checked by\n * {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —\n * or `fallback` (default `null`) when there is none or storage is blocked. A string\n * fallback narrows the answer to a string, for react-router's `to`.\n */\nexport function readLastVisitedPage(key: string, fallback: string): string;\nexport function readLastVisitedPage(key: string, fallback?: null): string | null;\nexport function readLastVisitedPage(key: string, fallback: string | null = null): string | null {\n return safeNextPath(readStored(key)) ?? fallback;\n}\n\n/** Forget the remembered page — on an explicit sign-out, so the next account does not\n * resume on the previous one's page. */\nexport function clearLastVisitedPage(key: string): void {\n removeStored(key);\n}\n\n/* ── RootEntry ───────────────────────────────────────────────────────────── */\n\nexport interface RootEntryProps {\n /** Without a session `/` is the landing; with one (real or demo) it resumes;\n * `\"loading\"` while the app restores one. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /** The remembered page — `readLastVisitedPage(key)`. */\n resumePath?: string | null;\n /** The landing page element. */\n landing: ReactNode;\n /** The app's home: where a session goes with nothing to resume (keksdose `/budget`,\n * kastlan and Kurvenschmiede `/dashboard`). */\n home: string;\n}\n\n/**\n * The `/` route (§3.1): the landing for a visitor, and for a session — real or demo —\n * the last visited page, else the app's home. Indexed and canonical `/` for the visitor;\n * a crawler never has a session, so for it `/` is stable.\n *\n * keksdose showed a session with nothing remembered the landing; the contract sends it\n * home instead, because a session at `/` came to use the app. The landing stays one tap\n * away at `/welcome`, where the signed-in brand link points.\n */\nexport function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps) {\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\") return <>{landing}</>;\n const resume = safeNextPath(resumePath);\n return <Navigate to={resume && resume !== \"/\" ? resume : home} replace />;\n}\n\n/* ── RedirectIfAuthed ────────────────────────────────────────────────────── */\n\nexport interface RedirectIfAuthedProps {\n /** `\"loading\"` while the app restores a session: neither the page nor a redirect. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /**\n * Let a DEMO session through (§5.6): on `/login`, `/register` and the app's invitation\n * pages, so a demo visitor can sign in or accept an invitation — a successful one\n * replaces the demo session. Default `false`: on `/demo` a live demo continues instead\n * of starting a second one (§5.2), and on `/forgot-password` a demo has no password.\n */\n allowDemo?: boolean;\n /** Where a redirected session goes: the resume target —\n * `readLastVisitedPage(key, home)`. A safe `?next=` goes first. */\n fallback: string;\n /** The page. Left out, an `<Outlet />`: the component is a layout route around the\n * public pages, as in keksdose. */\n children?: ReactNode;\n}\n\n/**\n * Public pages a session skips (§3.1): a signed-in visitor at `/login` goes back into\n * the app, to a safe `?next=` when the URL carries one (a share invitation or a push\n * deep link opened with a live session in another tab — keksdose) and else to\n * `fallback`.\n *\n * A demo session passes where `allowDemo` says so (§5.6). Mount one wrapper with\n * `allowDemo` around `/login`, `/register` and the invitation pages, and one without\n * around `/demo` (and `/forgot-password`).\n */\nexport function RedirectIfAuthed({ session, allowDemo = false, fallback, children, loading }: RedirectIfAuthedProps) {\n const { search } = useLocation();\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\" || (session === \"demo\" && allowDemo)) {\n return children === undefined ? <Outlet /> : <>{children}</>;\n }\n const next = safeNextPath(new URLSearchParams(search).get(NEXT_PARAM));\n return <Navigate to={next ?? fallback} replace />;\n}\n"],"mappings":";AA8KoC,mBAAc,WAAd;AA9KpC,SAAS,iBAAiB;AAE1B,SAAS,UAAU,QAAQ,mBAAmB;AAE9C,SAAS,YAAY,cAAc,mBAAmB;AAEtD,SAAS,oBAAoB;AAqBtB,MAAM,aAAa;AAqBnB,SAAS,aAAa,KAA+C;AAC1E,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,OAAO,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AACtE,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,KAAK,IAAI;AAC7B,QAAI,IAAI,WAAW,KAAM,QAAO;AAChC,WAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAeO,MAAM,gCAAwD,OAAO,OAAO;AAAA,EACjF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,YAAY,UAAkB,SAA+B;AACpE,MAAI,OAAO,YAAY,SAAU,QAAO,IAAI,OAAO,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ;AAChH,MAAI,YAAY,IAAK,QAAO,aAAa;AACzC,QAAM,OAAO,QAAQ,SAAS,GAAG,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC5D,SAAO,aAAa,QAAQ,SAAS,WAAW,GAAG,IAAI,GAAG;AAC5D;AAGA,SAAS,WAAW,UAAkB,SAA0C;AAC9E,SAAO,CAAC,GAAG,+BAA+B,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,YAAY,UAAU,OAAO,CAAC;AACxG;AAqBO,SAAS,mBAAmB,EAAE,KAAK,UAAU,CAAC,GAAG,UAAU,KAAK,GAAiC;AACtG,QAAM,EAAE,UAAU,OAAO,IAAI,YAAY;AAGzC,QAAM,OAAO,CAAC,WAAW,WAAW,UAAU,OAAO;AACrD,YAAU,MAAM;AACd,QAAI,KAAM;AACV,gBAAY,KAAK,WAAW,MAAM;AAAA,EACpC,GAAG,CAAC,KAAK,UAAU,QAAQ,IAAI,CAAC;AAClC;AAUO,SAAS,oBAAoB,KAAa,WAA0B,MAAqB;AAC9F,SAAO,aAAa,WAAW,GAAG,CAAC,KAAK;AAC1C;AAIO,SAAS,qBAAqB,KAAmB;AACtD,eAAa,GAAG;AAClB;AA4BO,SAAS,UAAU,EAAE,SAAS,YAAY,SAAS,MAAM,QAAQ,GAAmB;AACzF,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,OAAQ,QAAO,gCAAG,mBAAQ;AAC1C,QAAM,SAAS,aAAa,UAAU;AACtC,SAAO,oBAAC,YAAS,IAAI,UAAU,WAAW,MAAM,SAAS,MAAM,SAAO,MAAC;AACzE;AAkCO,SAAS,iBAAiB,EAAE,SAAS,YAAY,OAAO,UAAU,UAAU,QAAQ,GAA0B;AACnH,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,UAAW,YAAY,UAAU,WAAY;AAC3D,WAAO,aAAa,SAAY,oBAAC,UAAO,IAAK,gCAAG,UAAS;AAAA,EAC3D;AACA,QAAM,OAAO,aAAa,IAAI,gBAAgB,MAAM,EAAE,IAAI,UAAU,CAAC;AACrE,SAAO,oBAAC,YAAS,IAAI,QAAQ,UAAU,SAAO,MAAC;AACjD;","names":[]}
|
package/dist/lib/calc.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
/** Evaluate an arithmetic string, returning `null` if it isn't a valid sum.
|
|
10
10
|
* Accepts the on-screen operator glyphs (`× ÷ −`) and comma decimals too. */
|
|
11
|
-
declare function evaluateExpression(expr: string): number | null;
|
|
11
|
+
export declare function evaluateExpression(expr: string): number | null;
|
|
12
12
|
/** True when `s` carries arithmetic beyond a single leading minus — i.e. a plain
|
|
13
13
|
* number (or a lone negative like "-5") is NOT an expression, but "12+5" is.
|
|
14
14
|
* Used to decide whether a field's text should be evaluated on commit.
|
|
@@ -18,7 +18,7 @@ declare function evaluateExpression(expr: string): number | null;
|
|
|
18
18
|
* arithmetic went on to be read as a plain number — where the digits-only fallback
|
|
19
19
|
* in {@link commitExpression} silently ate it, turning "-42−−50" (= 8) into a bare
|
|
20
20
|
* 8 with no record that a sum had happened at all. */
|
|
21
|
-
declare function looksLikeExpression(s: string): boolean;
|
|
21
|
+
export declare function looksLikeExpression(s: string): boolean;
|
|
22
22
|
/** Render an evaluated number back to a field-friendly string, trimming binary
|
|
23
23
|
* float noise (so 0.1 + 0.2 reads "0.3", not "0.30000000000000004").
|
|
24
24
|
*
|
|
@@ -40,7 +40,7 @@ declare function looksLikeExpression(s: string): boolean;
|
|
|
40
40
|
* The invariant, which the test asserts directly rather than by example:
|
|
41
41
|
* **`commitExpression(formatResult(n))` equals `formatResult(n)` for every finite
|
|
42
42
|
* `n`.** Anything rendered here has to survive being read back. */
|
|
43
|
-
declare function formatResult(n: number): string;
|
|
43
|
+
export declare function formatResult(n: number): string;
|
|
44
44
|
/** The single "on blur / Enter" transform a numeric field applies: evaluate the
|
|
45
45
|
* text if it's an expression, otherwise normalise it to a bare number string
|
|
46
46
|
* (comma → dot, dropping stray characters, non-leading minuses and anything after
|
|
@@ -54,7 +54,7 @@ declare function formatResult(n: number): string;
|
|
|
54
54
|
* at the second dot ("1.2") rather than joined ("1.23"): with no keystroke to
|
|
55
55
|
* ignore there is nothing to say which reading was meant, and the shorter one
|
|
56
56
|
* cannot silently invent a bigger number. */
|
|
57
|
-
declare function commitExpression(raw: string): string;
|
|
57
|
+
export declare function commitExpression(raw: string): string;
|
|
58
58
|
/** The live, per-keystroke transform a numeric field applies: comma → dot and
|
|
59
59
|
* drop anything that isn't a digit, decimal point, arithmetic operator (incl.
|
|
60
60
|
* the on-screen `× ÷` glyphs) or paren — so a typed calculation survives
|
|
@@ -62,13 +62,13 @@ declare function commitExpression(raw: string): string;
|
|
|
62
62
|
* `-` is kept — in a plain field it is simply a negative amount; in a field whose
|
|
63
63
|
* caller owns the sign it is read off again by {@link splitLeadingSign}. The text
|
|
64
64
|
* is resolved to a plain number on blur/Enter via {@link commitExpression}. */
|
|
65
|
-
declare function sanitizeLive(raw: string): string;
|
|
65
|
+
export declare function sanitizeLive(raw: string): string;
|
|
66
66
|
/** A bare, unsigned amount: digits with at most one decimal separator and nothing
|
|
67
67
|
* else — "42", "42.", ".5", "0,5". NOT "" (an empty field has no figure to put a
|
|
68
68
|
* sign in front of), not "-42", not "12+5". It is the only shape a DISPLAYED sign
|
|
69
69
|
* prefix makes sense in front of; an expression carries its own arithmetic and has
|
|
70
70
|
* to survive keystroke-for-keystroke. */
|
|
71
|
-
declare function isBareAmount(s: string): boolean;
|
|
71
|
+
export declare function isBareAmount(s: string): boolean;
|
|
72
72
|
/**
|
|
73
73
|
* Split a LEADING sign off a plain signed number (Keksdose live #201 rework):
|
|
74
74
|
* `"-42"` → `{ sign: "-", rest: "42" }`, everything else → `{ sign: "", rest: text }`.
|
|
@@ -81,9 +81,7 @@ declare function isBareAmount(s: string): boolean;
|
|
|
81
81
|
* A lone "-" splits (rest ""): the sign is a statement about the direction the
|
|
82
82
|
* moment it is typed, before any digit exists.
|
|
83
83
|
*/
|
|
84
|
-
declare function splitLeadingSign(text: string): {
|
|
84
|
+
export declare function splitLeadingSign(text: string): {
|
|
85
85
|
sign: "" | "-" | "+";
|
|
86
86
|
rest: string;
|
|
87
87
|
};
|
|
88
|
-
|
|
89
|
-
export { commitExpression, evaluateExpression, formatResult, isBareAmount, looksLikeExpression, sanitizeLive, splitLeadingSign };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-snap every chip rendered with `snapEdges`, now. The kit already re-snaps when a
|
|
3
|
+
* chip renders, resizes, or the window or the ratio changes; call this after moving
|
|
4
|
+
* chips some other way (a side panel sliding in beside a table of status chips),
|
|
5
|
+
* since a move is not something an observer can see.
|
|
6
|
+
*/
|
|
7
|
+
export declare function refreshChipEdges(): void;
|
|
8
|
+
/** The ref a chip hangs on its visible pill, plus a re-snap after every render (its
|
|
9
|
+
* label or its neighbours may have changed). */
|
|
10
|
+
export declare function useSnapEdges(on: boolean): (el: HTMLElement | null) => void;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useLayoutEffect, useRef } from "react";
|
|
3
|
+
function chipEdgeGrid(dpr) {
|
|
4
|
+
for (let n = 1; n <= 4; n++) if (Math.abs(n * dpr - Math.round(n * dpr)) < 1e-3) return n;
|
|
5
|
+
return 0;
|
|
6
|
+
}
|
|
7
|
+
function snappedChipEdgeWidth(natural, left, dpr) {
|
|
8
|
+
const n = chipEdgeGrid(dpr);
|
|
9
|
+
if (n <= 2) return natural;
|
|
10
|
+
const l = Math.round(left);
|
|
11
|
+
let w = Math.ceil(natural - 0.01);
|
|
12
|
+
while (((2 * l + w) % n + n) % n !== 0) w++;
|
|
13
|
+
return w;
|
|
14
|
+
}
|
|
15
|
+
const snapped = /* @__PURE__ */ new Set();
|
|
16
|
+
const written = /* @__PURE__ */ new WeakMap();
|
|
17
|
+
let snapFrame = 0;
|
|
18
|
+
let snapObserver = null;
|
|
19
|
+
let ratioQuery = null;
|
|
20
|
+
function clearOwn(el) {
|
|
21
|
+
const own = written.get(el);
|
|
22
|
+
if (own !== void 0 && el.style.minWidth === own) el.style.minWidth = "";
|
|
23
|
+
written.delete(el);
|
|
24
|
+
}
|
|
25
|
+
function refreshChipEdges() {
|
|
26
|
+
if (snapFrame) {
|
|
27
|
+
cancelAnimationFrame(snapFrame);
|
|
28
|
+
snapFrame = 0;
|
|
29
|
+
}
|
|
30
|
+
if (typeof window === "undefined" || !snapped.size) return;
|
|
31
|
+
const dpr = window.devicePixelRatio || 1;
|
|
32
|
+
const els = [...snapped];
|
|
33
|
+
for (const el of els) clearOwn(el);
|
|
34
|
+
const n = chipEdgeGrid(dpr);
|
|
35
|
+
if (n <= 2) return;
|
|
36
|
+
let pending = els;
|
|
37
|
+
for (let pass = 0; pass <= n && pending.length; pass++) {
|
|
38
|
+
const reads = pending.map((el) => {
|
|
39
|
+
const r = el.getBoundingClientRect();
|
|
40
|
+
const label = el.querySelector(".truncate-until-large");
|
|
41
|
+
if (!r.width || label && (label.scrollWidth > label.clientWidth || labelWraps(label))) return null;
|
|
42
|
+
const width = Math.round(r.width * 64) / 64;
|
|
43
|
+
const target = snappedChipEdgeWidth(width, r.left + window.scrollX, dpr);
|
|
44
|
+
return target === width ? null : target;
|
|
45
|
+
});
|
|
46
|
+
const next = [];
|
|
47
|
+
pending.forEach((el, i) => {
|
|
48
|
+
const target = reads[i];
|
|
49
|
+
if (target == null) return;
|
|
50
|
+
if (pass === n) {
|
|
51
|
+
clearOwn(el);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const own = written.get(el);
|
|
55
|
+
const value = `${pass > 0 && own !== void 0 ? parseFloat(own) + 1 : target}px`;
|
|
56
|
+
el.style.minWidth = value;
|
|
57
|
+
written.set(el, value);
|
|
58
|
+
next.push(el);
|
|
59
|
+
});
|
|
60
|
+
pending = next;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function labelWraps(label) {
|
|
64
|
+
const line = Number.parseFloat(getComputedStyle(label).lineHeight);
|
|
65
|
+
return line > 0 && label.clientHeight > 1.5 * line;
|
|
66
|
+
}
|
|
67
|
+
function scheduleChipEdges() {
|
|
68
|
+
if (snapFrame || typeof requestAnimationFrame === "undefined") return;
|
|
69
|
+
snapFrame = requestAnimationFrame(() => {
|
|
70
|
+
snapFrame = 0;
|
|
71
|
+
refreshChipEdges();
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function watchRatio() {
|
|
75
|
+
ratioQuery?.removeEventListener("change", onRatioChange);
|
|
76
|
+
ratioQuery = typeof window.matchMedia === "function" ? window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`) : null;
|
|
77
|
+
ratioQuery?.addEventListener("change", onRatioChange);
|
|
78
|
+
}
|
|
79
|
+
function onRatioChange() {
|
|
80
|
+
watchRatio();
|
|
81
|
+
scheduleChipEdges();
|
|
82
|
+
}
|
|
83
|
+
function registerSnap(el) {
|
|
84
|
+
if (snapped.has(el)) return;
|
|
85
|
+
if (!snapped.size) {
|
|
86
|
+
if (typeof ResizeObserver !== "undefined") snapObserver = new ResizeObserver(scheduleChipEdges);
|
|
87
|
+
window.addEventListener("resize", scheduleChipEdges);
|
|
88
|
+
watchRatio();
|
|
89
|
+
}
|
|
90
|
+
snapped.add(el);
|
|
91
|
+
snapObserver?.observe(el);
|
|
92
|
+
scheduleChipEdges();
|
|
93
|
+
}
|
|
94
|
+
function unregisterSnap(el) {
|
|
95
|
+
if (!snapped.delete(el)) return;
|
|
96
|
+
snapObserver?.unobserve(el);
|
|
97
|
+
clearOwn(el);
|
|
98
|
+
if (snapped.size) return;
|
|
99
|
+
snapObserver?.disconnect();
|
|
100
|
+
snapObserver = null;
|
|
101
|
+
window.removeEventListener("resize", scheduleChipEdges);
|
|
102
|
+
ratioQuery?.removeEventListener("change", onRatioChange);
|
|
103
|
+
ratioQuery = null;
|
|
104
|
+
}
|
|
105
|
+
function useSnapEdges(on) {
|
|
106
|
+
const node = useRef(null);
|
|
107
|
+
const ref = useCallback(
|
|
108
|
+
(el) => {
|
|
109
|
+
if (el === node.current) return;
|
|
110
|
+
const prev = node.current;
|
|
111
|
+
node.current = el;
|
|
112
|
+
if (prev) queueMicrotask(() => node.current !== prev && unregisterSnap(prev));
|
|
113
|
+
if (el && on) registerSnap(el);
|
|
114
|
+
},
|
|
115
|
+
[on]
|
|
116
|
+
);
|
|
117
|
+
useLayoutEffect(() => {
|
|
118
|
+
const el = node.current;
|
|
119
|
+
if (!el) return;
|
|
120
|
+
if (on) {
|
|
121
|
+
registerSnap(el);
|
|
122
|
+
scheduleChipEdges();
|
|
123
|
+
} else unregisterSnap(el);
|
|
124
|
+
});
|
|
125
|
+
return ref;
|
|
126
|
+
}
|
|
127
|
+
export {
|
|
128
|
+
refreshChipEdges,
|
|
129
|
+
useSnapEdges
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=chip-edge-snap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/chip-edge-snap.ts"],"sourcesContent":["// Chip's edge snapping: the module-level engine (one ResizeObserver, one `resize`\n// listener and one resolution query for every snapped chip on the page, and the state\n// they share) and the hook a chip hangs it on. Moved out of components/chip.tsx as it\n// was (MOD-9, refactor audit 2026-10); chip.tsx still exports `refreshChipEdges`.\nimport { useCallback, useLayoutEffect, useRef } from \"react\";\n\n/* ── Edge snapping (fractional device-pixel ratios) ──────────────────────────\n *\n * WHY. At a device-pixel ratio of 1.25 (a 125 % Windows display, or 125 % browser\n * zoom) Chrome snaps a box to whole CSS pixels and only then scales it, so a 1px\n * border is 1.25 device pixels wide and starts at a quarter-pixel phase that depends\n * on where the edge lands. A chip's left edge follows whatever stands before it, its\n * right edge follows its own text, so the two land on unrelated phases: one rasterises\n * as a crisp pixel, the other as a two-pixel smear at half strength — and a 60 %-alpha\n * border (`--danger-border`) makes the smeared side read as a THINNER line (keksdose\n * dev #576).\n *\n * WHAT FIXES IT. The two edges rasterise as mirror images exactly when their device\n * positions sum to a whole number: `(2·left + width) · dpr` integral, `left` being the\n * edge's snapped CSS x. Rounding the WIDTH alone to the ratio's grid (4px at 1.25)\n * makes the phases EQUAL, which is not the same thing: measured with keksdose's\n * playwright harness across every left phase at 1.25, width-only rounding mirrored the\n * edges at two of the four phases and left the other two as lopsided as before (mean\n * peak asymmetry 16.5, worse than the unsnapped 10.9 a random width gets by luck); the\n * position-aware width below took it to 0 at every phase. Inset rings, whole-pixel\n * starts, compositing hints and fractional border widths were measured by keksdose\n * and do not help — Chrome rounds a sub-pixel border back up to 1px.\n *\n * So the fix needs the chip's position, which is why it is opt-in (`snapEdges`): it\n * reads layout. Cheaply — every snapped chip on the page shares one ResizeObserver,\n * one `resize` listener and one resolution media query, and a pass is batched into a\n * frame as read-all / write-all, not a forced layout per chip. At an integer ratio,\n * and at a half one (1.5, 2.5: grid 2 — measured symmetric already, both edges a\n * pixel and a half on the same pattern), there is nothing to fix and a pass\n * writes nothing.\n */\n\n/** The smallest whole CSS-pixel count `n` with `n × dpr` whole — 4 at 1.25, 2 at 1.5,\n * 1 at an integer ratio. 0 for a ratio no step up to 4px fits (110 % zoom wants 10px;\n * a chip growing by up to 9px is a layout change, not a hairline fix). */\nfunction chipEdgeGrid(dpr: number): number {\n for (let n = 1; n <= 4; n++) if (Math.abs(n * dpr - Math.round(n * dpr)) < 1e-3) return n;\n return 0;\n}\n\n/**\n * The width (whole CSS px, at least `natural`) that mirrors a box's two edges at\n * `dpr`, for a box whose left edge sits at CSS x `left`. `natural` back when the ratio\n * needs nothing.\n */\nfunction snappedChipEdgeWidth(natural: number, left: number, dpr: number): number {\n const n = chipEdgeGrid(dpr);\n if (n <= 2) return natural;\n const l = Math.round(left);\n // A hair under a whole pixel is that pixel: 59.999 is a 60px chip, not a 61px one.\n let w = Math.ceil(natural - 0.01);\n while ((((2 * l + w) % n) + n) % n !== 0) w++;\n return w;\n}\n\nconst snapped = new Set<HTMLElement>();\n/** The min-width each chip was given by a pass — so a pass only ever clears its own. */\nconst written = new WeakMap<HTMLElement, string>();\nlet snapFrame = 0;\nlet snapObserver: ResizeObserver | null = null;\nlet ratioQuery: MediaQueryList | null = null;\n\nfunction clearOwn(el: HTMLElement) {\n const own = written.get(el);\n if (own !== undefined && el.style.minWidth === own) el.style.minWidth = \"\";\n written.delete(el);\n}\n\n/**\n * Re-snap every chip rendered with `snapEdges`, now. The kit already re-snaps when a\n * chip renders, resizes, or the window or the ratio changes; call this after moving\n * chips some other way (a side panel sliding in beside a table of status chips),\n * since a move is not something an observer can see.\n */\nexport function refreshChipEdges(): void {\n if (snapFrame) {\n cancelAnimationFrame(snapFrame);\n snapFrame = 0;\n }\n if (typeof window === \"undefined\" || !snapped.size) return;\n const dpr = window.devicePixelRatio || 1;\n const els = [...snapped];\n // Write: back to the natural width, so what is read below is the chip, not our pin.\n for (const el of els) clearOwn(el);\n const n = chipEdgeGrid(dpr);\n if (n <= 2) return;\n // A chip whose own end decides where it starts (RTL, `justify-end`) moves when it\n // grows, so a pass re-reads what it wrote and steps on by a pixel until the edges\n // agree — `n` steps cover every residue. Each pass is ONE layout for every chip\n // together. A chip that never agrees (a centred one moves both edges at once) is\n // given its natural width back rather than kept wider for nothing.\n let pending = els;\n for (let pass = 0; pass <= n && pending.length; pass++) {\n const reads = pending.map((el) => {\n const r = el.getBoundingClientRect();\n // The text label (chip.tsx's CHIP_LABEL_TRUNCATE; `.truncate` before 0.33).\n const label = el.querySelector<HTMLElement>(\".truncate-until-large\");\n // Not laid out (a hidden ancestor, jsdom), or truncated at its container's edge,\n // where a wider chip would overflow: leave it alone. So too a label wrapped onto\n // a second line at Large (0.32.1): the chip is already as wide as its row lets it\n // be, and a min-width past that would push it over the edge just the same.\n if (!r.width || (label && (label.scrollWidth > label.clientWidth || labelWraps(label)))) return null;\n const width = Math.round(r.width * 64) / 64;\n const target = snappedChipEdgeWidth(width, r.left + window.scrollX, dpr);\n return target === width ? null : target;\n });\n const next: HTMLElement[] = [];\n pending.forEach((el, i) => {\n const target = reads[i];\n if (target == null) return;\n if (pass === n) {\n clearOwn(el);\n return;\n }\n const own = written.get(el);\n const value = `${pass > 0 && own !== undefined ? parseFloat(own) + 1 : target}px`;\n el.style.minWidth = value;\n written.set(el, value);\n next.push(el);\n });\n pending = next;\n }\n}\n\n/** Whether a chip's label runs to more than one line — taller than one and a half of\n * its line height. A line height of `normal` (no number to compare) counts as one line. */\nfunction labelWraps(label: HTMLElement): boolean {\n const line = Number.parseFloat(getComputedStyle(label).lineHeight);\n return line > 0 && label.clientHeight > 1.5 * line;\n}\n\nfunction scheduleChipEdges() {\n if (snapFrame || typeof requestAnimationFrame === \"undefined\") return;\n snapFrame = requestAnimationFrame(() => {\n snapFrame = 0;\n refreshChipEdges();\n });\n}\n\n/** The resolution query for the CURRENT ratio: it stops matching when the ratio\n * changes (a window dragged to another display), which a `resize` need not fire. */\nfunction watchRatio() {\n ratioQuery?.removeEventListener(\"change\", onRatioChange);\n ratioQuery =\n typeof window.matchMedia === \"function\"\n ? window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`)\n : null;\n ratioQuery?.addEventListener(\"change\", onRatioChange);\n}\n\nfunction onRatioChange() {\n watchRatio();\n scheduleChipEdges();\n}\n\nfunction registerSnap(el: HTMLElement) {\n if (snapped.has(el)) return;\n if (!snapped.size) {\n if (typeof ResizeObserver !== \"undefined\") snapObserver = new ResizeObserver(scheduleChipEdges);\n window.addEventListener(\"resize\", scheduleChipEdges);\n watchRatio();\n }\n snapped.add(el);\n snapObserver?.observe(el);\n scheduleChipEdges();\n}\n\nfunction unregisterSnap(el: HTMLElement) {\n if (!snapped.delete(el)) return;\n snapObserver?.unobserve(el);\n clearOwn(el);\n if (snapped.size) return;\n snapObserver?.disconnect();\n snapObserver = null;\n window.removeEventListener(\"resize\", scheduleChipEdges);\n ratioQuery?.removeEventListener(\"change\", onRatioChange);\n ratioQuery = null;\n}\n\n/** The ref a chip hangs on its visible pill, plus a re-snap after every render (its\n * label or its neighbours may have changed). */\nexport function useSnapEdges(on: boolean) {\n const node = useRef<HTMLElement | null>(null);\n const ref = useCallback(\n (el: HTMLElement | null) => {\n if (el === node.current) return;\n const prev = node.current;\n node.current = el;\n // React detaches and re-attaches a ref whose callback changed identity (a\n // consumer's inline ref) — the same element, a moment apart. Unregistering on\n // the detach would clear the pin and paint one frame unsnapped, so the drop\n // waits a microtask and is skipped if the element came straight back.\n if (prev) queueMicrotask(() => node.current !== prev && unregisterSnap(prev));\n if (el && on) registerSnap(el);\n },\n [on],\n );\n useLayoutEffect(() => {\n const el = node.current;\n if (!el) return;\n if (on) {\n registerSnap(el);\n scheduleChipEdges();\n } else unregisterSnap(el);\n });\n return ref;\n}\n"],"mappings":";AAIA,SAAS,aAAa,iBAAiB,cAAc;AAoCrD,SAAS,aAAa,KAAqB;AACzC,WAAS,IAAI,GAAG,KAAK,GAAG,IAAK,KAAI,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAM,QAAO;AACxF,SAAO;AACT;AAOA,SAAS,qBAAqB,SAAiB,MAAc,KAAqB;AAChF,QAAM,IAAI,aAAa,GAAG;AAC1B,MAAI,KAAK,EAAG,QAAO;AACnB,QAAM,IAAI,KAAK,MAAM,IAAI;AAEzB,MAAI,IAAI,KAAK,KAAK,UAAU,IAAI;AAChC,WAAU,IAAI,IAAI,KAAK,IAAK,KAAK,MAAM,EAAG;AAC1C,SAAO;AACT;AAEA,MAAM,UAAU,oBAAI,IAAiB;AAErC,MAAM,UAAU,oBAAI,QAA6B;AACjD,IAAI,YAAY;AAChB,IAAI,eAAsC;AAC1C,IAAI,aAAoC;AAExC,SAAS,SAAS,IAAiB;AACjC,QAAM,MAAM,QAAQ,IAAI,EAAE;AAC1B,MAAI,QAAQ,UAAa,GAAG,MAAM,aAAa,IAAK,IAAG,MAAM,WAAW;AACxE,UAAQ,OAAO,EAAE;AACnB;AAQO,SAAS,mBAAyB;AACvC,MAAI,WAAW;AACb,yBAAqB,SAAS;AAC9B,gBAAY;AAAA,EACd;AACA,MAAI,OAAO,WAAW,eAAe,CAAC,QAAQ,KAAM;AACpD,QAAM,MAAM,OAAO,oBAAoB;AACvC,QAAM,MAAM,CAAC,GAAG,OAAO;AAEvB,aAAW,MAAM,IAAK,UAAS,EAAE;AACjC,QAAM,IAAI,aAAa,GAAG;AAC1B,MAAI,KAAK,EAAG;AAMZ,MAAI,UAAU;AACd,WAAS,OAAO,GAAG,QAAQ,KAAK,QAAQ,QAAQ,QAAQ;AACtD,UAAM,QAAQ,QAAQ,IAAI,CAAC,OAAO;AAChC,YAAM,IAAI,GAAG,sBAAsB;AAEnC,YAAM,QAAQ,GAAG,cAA2B,uBAAuB;AAKnE,UAAI,CAAC,EAAE,SAAU,UAAU,MAAM,cAAc,MAAM,eAAe,WAAW,KAAK,GAAK,QAAO;AAChG,YAAM,QAAQ,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI;AACzC,YAAM,SAAS,qBAAqB,OAAO,EAAE,OAAO,OAAO,SAAS,GAAG;AACvE,aAAO,WAAW,QAAQ,OAAO;AAAA,IACnC,CAAC;AACD,UAAM,OAAsB,CAAC;AAC7B,YAAQ,QAAQ,CAAC,IAAI,MAAM;AACzB,YAAM,SAAS,MAAM,CAAC;AACtB,UAAI,UAAU,KAAM;AACpB,UAAI,SAAS,GAAG;AACd,iBAAS,EAAE;AACX;AAAA,MACF;AACA,YAAM,MAAM,QAAQ,IAAI,EAAE;AAC1B,YAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,SAAY,WAAW,GAAG,IAAI,IAAI,MAAM;AAC7E,SAAG,MAAM,WAAW;AACpB,cAAQ,IAAI,IAAI,KAAK;AACrB,WAAK,KAAK,EAAE;AAAA,IACd,CAAC;AACD,cAAU;AAAA,EACZ;AACF;AAIA,SAAS,WAAW,OAA6B;AAC/C,QAAM,OAAO,OAAO,WAAW,iBAAiB,KAAK,EAAE,UAAU;AACjE,SAAO,OAAO,KAAK,MAAM,eAAe,MAAM;AAChD;AAEA,SAAS,oBAAoB;AAC3B,MAAI,aAAa,OAAO,0BAA0B,YAAa;AAC/D,cAAY,sBAAsB,MAAM;AACtC,gBAAY;AACZ,qBAAiB;AAAA,EACnB,CAAC;AACH;AAIA,SAAS,aAAa;AACpB,cAAY,oBAAoB,UAAU,aAAa;AACvD,eACE,OAAO,OAAO,eAAe,aACzB,OAAO,WAAW,gBAAgB,OAAO,oBAAoB,CAAC,OAAO,IACrE;AACN,cAAY,iBAAiB,UAAU,aAAa;AACtD;AAEA,SAAS,gBAAgB;AACvB,aAAW;AACX,oBAAkB;AACpB;AAEA,SAAS,aAAa,IAAiB;AACrC,MAAI,QAAQ,IAAI,EAAE,EAAG;AACrB,MAAI,CAAC,QAAQ,MAAM;AACjB,QAAI,OAAO,mBAAmB,YAAa,gBAAe,IAAI,eAAe,iBAAiB;AAC9F,WAAO,iBAAiB,UAAU,iBAAiB;AACnD,eAAW;AAAA,EACb;AACA,UAAQ,IAAI,EAAE;AACd,gBAAc,QAAQ,EAAE;AACxB,oBAAkB;AACpB;AAEA,SAAS,eAAe,IAAiB;AACvC,MAAI,CAAC,QAAQ,OAAO,EAAE,EAAG;AACzB,gBAAc,UAAU,EAAE;AAC1B,WAAS,EAAE;AACX,MAAI,QAAQ,KAAM;AAClB,gBAAc,WAAW;AACzB,iBAAe;AACf,SAAO,oBAAoB,UAAU,iBAAiB;AACtD,cAAY,oBAAoB,UAAU,aAAa;AACvD,eAAa;AACf;AAIO,SAAS,aAAa,IAAa;AACxC,QAAM,OAAO,OAA2B,IAAI;AAC5C,QAAM,MAAM;AAAA,IACV,CAAC,OAA2B;AAC1B,UAAI,OAAO,KAAK,QAAS;AACzB,YAAM,OAAO,KAAK;AAClB,WAAK,UAAU;AAKf,UAAI,KAAM,gBAAe,MAAM,KAAK,YAAY,QAAQ,eAAe,IAAI,CAAC;AAC5E,UAAI,MAAM,GAAI,cAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,EAAE;AAAA,EACL;AACA,kBAAgB,MAAM;AACpB,UAAM,KAAK,KAAK;AAChB,QAAI,CAAC,GAAI;AACT,QAAI,IAAI;AACN,mBAAa,EAAE;AACf,wBAAkB;AAAA,IACpB,MAAO,gBAAe,EAAE;AAAA,EAC1B,CAAC;AACD,SAAO;AACT;","names":[]}
|
package/dist/lib/clipping.d.ts
CHANGED
|
@@ -13,13 +13,11 @@
|
|
|
13
13
|
* (DataTable's body, Table's wrapper) carry the marker, so the answer is the same in
|
|
14
14
|
* both; an app marks its own with `{ [CLIPS_ATTRIBUTE]: "" }` or a literal `data-clips`.
|
|
15
15
|
*/
|
|
16
|
-
declare const CLIPS_ATTRIBUTE = "data-clips";
|
|
16
|
+
export declare const CLIPS_ATTRIBUTE = "data-clips";
|
|
17
17
|
/** Whether anything between `el` and `<body>` clips or scrolls its content — the
|
|
18
18
|
* containers an absolutely positioned bubble would be cut off by, or would widen.
|
|
19
19
|
* Either the computed `overflow` says so or the element carries
|
|
20
20
|
* {@link CLIPS_ATTRIBUTE}. `<body>` and `<html>` are not counted: their `overflow`
|
|
21
21
|
* belongs to the viewport (a dialog's scroll lock sets it), and the viewport clips a
|
|
22
22
|
* portalled bubble just the same. */
|
|
23
|
-
declare function hasClippingAncestor(el: Element | null): boolean;
|
|
24
|
-
|
|
25
|
-
export { CLIPS_ATTRIBUTE, hasClippingAncestor };
|
|
23
|
+
export declare function hasClippingAncestor(el: Element | null): boolean;
|
package/dist/lib/cn.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { clsx } from
|
|
2
|
-
|
|
1
|
+
import { clsx } from "clsx";
|
|
3
2
|
/** Merge class lists with Tailwind conflict resolution (later wins). */
|
|
4
|
-
declare const cn: (...inputs: Parameters<typeof clsx>) => string;
|
|
5
|
-
|
|
6
|
-
export { cn };
|
|
3
|
+
export declare const cn: (...inputs: Parameters<typeof clsx>) => string;
|
package/dist/lib/cn.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
3
|
import { extendTailwindMerge } from "tailwind-merge";
|
|
4
|
-
const merge = extendTailwindMerge({
|
|
4
|
+
const merge = extendTailwindMerge({
|
|
5
|
+
extend: {
|
|
6
|
+
theme: { text: ["micro", "caption"] },
|
|
7
|
+
classGroups: { "ring-w": [{ ring: ["focus"] }], "outline-w": [{ outline: ["focus"] }] }
|
|
8
|
+
}
|
|
9
|
+
});
|
|
5
10
|
const cn = (...inputs) => merge(clsx(inputs));
|
|
6
11
|
export {
|
|
7
12
|
cn
|
package/dist/lib/cn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/cn.ts"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * tailwind-merge, told about the kit's own font sizes (docs/text-size-harmonization.md\n * §3.2): `text-micro` and `text-caption` are `@theme` sizes in tokens.css, which\n * tailwind-merge cannot see. Unknown, a `text-<word>` is taken for a COLOUR, so\n * `cn(\"text-caption text-[var(--text-muted)]\")` dropped the size — the later colour\n * \"won\" over it — and `cn(\"text-xs\", \"text-caption\")` kept both sizes. Registered as\n * sizes, they merge like `text-xs`: a later size replaces an earlier one, a colour sits\n * beside them.\n */\nconst merge = extendTailwindMerge({
|
|
1
|
+
{"version":3,"sources":["../../src/lib/cn.ts"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * tailwind-merge, told about the kit's own font sizes (docs/text-size-harmonization.md\n * §3.2): `text-micro` and `text-caption` are `@theme` sizes in tokens.css, which\n * tailwind-merge cannot see. Unknown, a `text-<word>` is taken for a COLOUR, so\n * `cn(\"text-caption text-[var(--text-muted)]\")` dropped the size — the later colour\n * \"won\" over it — and `cn(\"text-xs\", \"text-caption\")` kept both sizes. Registered as\n * sizes, they merge like `text-xs`: a later size replaces an earlier one, a colour sits\n * beside them.\n *\n * The same for the focus frame's width (0.34, refactor audit DOC-7): `ring-focus` and\n * `outline-focus` are `@theme inline` WIDTHS, and unknown, a `ring-<word>` is taken for a\n * colour — so `cn(FOCUS_RING, \"focus-visible:ring-strong\")` dropped the width and the\n * ring was gone. Registered as widths, they merge like `ring-2` / `outline-2`, as the\n * arbitrary `length:` widths they replaced did. (No class is spelt out here: an app's\n * Tailwind scans the built source maps too, and would generate it.)\n */\nconst merge = extendTailwindMerge({\n extend: {\n theme: { text: [\"micro\", \"caption\"] },\n classGroups: { \"ring-w\": [{ ring: [\"focus\"] }], \"outline-w\": [{ outline: [\"focus\"] }] },\n },\n});\n\n/** Merge class lists with Tailwind conflict resolution (later wins). */\nexport const cn = (...inputs: Parameters<typeof clsx>) => merge(clsx(inputs));\n"],"mappings":";AAAA,SAAS,YAAY;AACrB,SAAS,2BAA2B;AAkBpC,MAAM,QAAQ,oBAAoB;AAAA,EAChC,QAAQ;AAAA,IACN,OAAO,EAAE,MAAM,CAAC,SAAS,SAAS,EAAE;AAAA,IACpC,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;AAAA,EACxF;AACF,CAAC;AAGM,MAAM,KAAK,IAAI,WAAoC,MAAM,KAAK,MAAM,CAAC;","names":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { TextTable } from
|
|
2
|
-
|
|
1
|
+
import type { TextTable } from "./table-text.js";
|
|
3
2
|
/** One part a column can play, defined by the caller. */
|
|
4
|
-
interface ColumnRole<R extends string = string> {
|
|
3
|
+
export interface ColumnRole<R extends string = string> {
|
|
5
4
|
/** The key the mapping is stored under. */
|
|
6
5
|
value: R;
|
|
7
6
|
/** What the role select shows — translated by the caller. */
|
|
@@ -23,9 +22,9 @@ interface ColumnRole<R extends string = string> {
|
|
|
23
22
|
}
|
|
24
23
|
/** Role → column index. A role that is absent or `null` sits on no column — so a
|
|
25
24
|
* mapping with nullable fields (keksdose's `CsvMapping`) is one as it stands. */
|
|
26
|
-
type ColumnMapping<R extends string = string> = Partial<Record<R, number | null>>;
|
|
25
|
+
export type ColumnMapping<R extends string = string> = Partial<Record<R, number | null>>;
|
|
27
26
|
/** What the table is, read through a mapping. */
|
|
28
|
-
interface ColumnMapperResult<R extends string = string> extends TextTable {
|
|
27
|
+
export interface ColumnMapperResult<R extends string = string> extends TextTable {
|
|
29
28
|
mapping: ColumnMapping<R>;
|
|
30
29
|
/** What the table still needs before it can be used: one entry per gap, each the
|
|
31
30
|
* roles any of which would fill it (one role, or a required group). */
|
|
@@ -34,7 +33,7 @@ interface ColumnMapperResult<R extends string = string> extends TextTable {
|
|
|
34
33
|
complete: boolean;
|
|
35
34
|
}
|
|
36
35
|
/** The role on this column, or `null` for an ignored one. */
|
|
37
|
-
declare function roleOfColumn<R extends string>(roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>, column: number): R | null;
|
|
36
|
+
export declare function roleOfColumn<R extends string>(roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>, column: number): R | null;
|
|
38
37
|
/**
|
|
39
38
|
* Put `role` on `column` — or, with `null`, take the column's role off it.
|
|
40
39
|
*
|
|
@@ -42,12 +41,12 @@ declare function roleOfColumn<R extends string>(roles: readonly ColumnRole<R>[],
|
|
|
42
41
|
* column, in one new mapping (keksdose's `assignColumn`: "both halves are patches to
|
|
43
42
|
* the same object"). Other fields of the mapping are kept as they are.
|
|
44
43
|
*/
|
|
45
|
-
declare function assignColumnRole<R extends string, M extends ColumnMapping<R>>(roles: readonly ColumnRole<R>[], mapping: M, column: number, role: R | null): M;
|
|
44
|
+
export declare function assignColumnRole<R extends string, M extends ColumnMapping<R>>(roles: readonly ColumnRole<R>[], mapping: M, column: number, role: R | null): M;
|
|
46
45
|
/**
|
|
47
46
|
* The gaps: each required role with no column, and each required group none of whose
|
|
48
47
|
* roles has one. In the order of `roles`. A column index past `width` is no column.
|
|
49
48
|
*/
|
|
50
|
-
declare function missingRoles<R extends string>(roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>, width?: number): R[][];
|
|
49
|
+
export declare function missingRoles<R extends string>(roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>, width?: number): R[][];
|
|
51
50
|
/**
|
|
52
51
|
* A first mapping for a table nobody has mapped yet.
|
|
53
52
|
*
|
|
@@ -58,14 +57,14 @@ declare function missingRoles<R extends string>(roles: readonly ColumnRole<R>[],
|
|
|
58
57
|
* export of twelve columns, "the fourth role is the fourth column" is a wrong answer
|
|
59
58
|
* presented as a suggestion, and an "ignore" is the honest one.
|
|
60
59
|
*/
|
|
61
|
-
declare function guessMapping<R extends string>(roles: readonly ColumnRole<R>[], header: readonly string[] | null, width: number): ColumnMapping<R>;
|
|
60
|
+
export declare function guessMapping<R extends string>(roles: readonly ColumnRole<R>[], header: readonly string[] | null, width: number): ColumnMapping<R>;
|
|
62
61
|
/**
|
|
63
62
|
* The table read through the mapping: the rows every `numeric` role can read, the
|
|
64
63
|
* others moved to `unread` (in line order, with the parse's own), what is missing,
|
|
65
64
|
* and whether the table can be used. Column indexes past the table's width count as
|
|
66
65
|
* unplaced.
|
|
67
66
|
*/
|
|
68
|
-
declare function readMappedTable<R extends string>(table: TextTable, roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>): ColumnMapperResult<R>;
|
|
67
|
+
export declare function readMappedTable<R extends string>(table: TextTable, roles: readonly ColumnRole<R>[], mapping: ColumnMapping<R>): ColumnMapperResult<R>;
|
|
69
68
|
/**
|
|
70
69
|
* A dropped or chosen file's text — UTF-8 when it is UTF-8, else Windows-1252.
|
|
71
70
|
*
|
|
@@ -76,6 +75,4 @@ declare function readMappedTable<R extends string>(table: TextTable, roles: read
|
|
|
76
75
|
* read in the browser had nothing doing it). Falls back to `FileReader` where a `File`
|
|
77
76
|
* has no `arrayBuffer` (Kurvenschmiede's `readText`).
|
|
78
77
|
*/
|
|
79
|
-
declare function readTextFile(file: Blob): Promise<string>;
|
|
80
|
-
|
|
81
|
-
export { type ColumnMapperResult, type ColumnMapping, type ColumnRole, assignColumnRole, guessMapping, missingRoles, readMappedTable, readTextFile, roleOfColumn };
|
|
78
|
+
export declare function readTextFile(file: Blob): Promise<string>;
|