@eifi1/ui-kit 0.33.1 → 0.35.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 +512 -306
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- package/dist/admin/plan-change.js +16 -24
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 +12 -110
- 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 -101
- package/dist/billing/billing-labels.js.map +1 -1
- package/dist/billing/billing-lock.d.ts +10 -110
- package/dist/billing/billing-overview.d.ts +7 -109
- package/dist/billing/billing-standing.d.ts +6 -108
- package/dist/billing/checkout-processing.d.ts +8 -111
- 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 +15 -117
- package/dist/billing/plan-card.d.ts +14 -115
- 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 +12 -110
- 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 -107
- 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 -109
- 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 -108
- package/dist/chart.d.ts +12 -113
- 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 +64 -111
- 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 +33 -28
- 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 -110
- 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 +6 -108
- package/dist/components/calculator.js +8 -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 +2 -205
- package/dist/components/chart-zoom.js +2 -330
- 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 +69 -0
- package/dist/components/chip-input.js +220 -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 +187 -121
- 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 +15 -160
- 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 -101
- 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 +74 -101
- 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 +58 -0
- package/dist/components/currency-option-list.js +107 -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 -101
- 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 +40 -23
- 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 +83 -15
- package/dist/components/data-table-labels.js +4 -29
- 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 +93 -0
- package/dist/components/data-table-shared.js +99 -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 +613 -15
- package/dist/components/data-table.js +150 -939
- 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 +10 -12
- 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 +61 -30
- package/dist/components/dropdown.js +61 -30
- 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 +11 -12
- 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 -116
- package/dist/components/facing-pair.js +1 -1
- package/dist/components/facing-pair.js.map +1 -1
- package/dist/components/field-base.d.ts +255 -0
- package/dist/components/field-base.js +223 -0
- package/dist/components/field-base.js.map +1 -0
- package/dist/components/field-parts.d.ts +180 -87
- package/dist/components/field-parts.js +52 -33
- package/dist/components/field-parts.js.map +1 -1
- package/dist/components/field-strip.d.ts +12 -36
- package/dist/components/field-strip.js +24 -22
- 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 +16 -19
- package/dist/components/field-sync.js +4 -14
- 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 -101
- 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 -110
- 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 -101
- 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 +12 -18
- package/dist/components/hover-menu.js +19 -18
- 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 -101
- 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 -111
- 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 -118
- package/dist/components/legal-page.js +2 -2
- package/dist/components/legal-page.js.map +1 -1
- package/dist/components/legal.d.ts +353 -101
- 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 +34 -18
- package/dist/components/modal.js +13 -13
- 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 -111
- 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 +74 -25
- package/dist/components/multi-select.js +166 -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 +6 -111
- package/dist/components/number-field.js +2 -3
- package/dist/components/number-field.js.map +1 -1
- package/dist/components/number-input.d.ts +28 -112
- package/dist/components/number-input.js +33 -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 -108
- 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 -101
- 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 +15 -21
- 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 -101
- 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 -214
- 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 +29 -26
- package/dist/components/server-wake.js +15 -35
- package/dist/components/server-wake.js.map +1 -1
- package/dist/components/settings-fields.d.ts +50 -120
- 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 -101
- 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 +5 -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 +21 -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 +11 -39
- package/dist/components/swipeable-row.js +13 -18
- 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 -119
- 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 -108
- 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 +24 -15
- package/dist/components/tooltip.js +24 -14
- 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 +35 -25
- package/dist/components/translation-review.js +24 -13
- 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 +182 -15
- package/dist/components/use-table-state.js +53 -8
- package/dist/components/use-table-state.js.map +1 -1
- package/dist/components/user-avatar.d.ts +10 -23
- package/dist/components/user-avatar.js +1 -1
- package/dist/components/user-avatar.js.map +1 -1
- package/dist/components/wizard-stepper.d.ts +4 -7
- package/dist/components/wizard-stepper.js +3 -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/currencies.d.ts +23 -0
- package/dist/currencies.js +38 -0
- package/dist/currencies.js.map +1 -0
- package/dist/data-table.d.ts +10 -18
- package/dist/data-table.js.map +1 -1
- package/dist/demo/demo-banner.d.ts +15 -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/eslint/index.d.ts +83 -0
- package/dist/eslint/index.js +69 -0
- package/dist/eslint/index.js.map +1 -0
- package/dist/eslint/role-utilities.d.ts +48 -0
- package/dist/eslint/role-utilities.generated.d.ts +2 -0
- package/dist/eslint/role-utilities.generated.js +143 -0
- package/dist/eslint/role-utilities.generated.js.map +1 -0
- package/dist/eslint/role-utilities.js +43 -0
- package/dist/eslint/role-utilities.js.map +1 -0
- 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 -101
- 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 -101
- 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 -110
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 -101
- 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 -109
- 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 -110
- 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 -101
- 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 +373 -101
- package/dist/feedback/feedback-thread.js +26 -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 -105
- package/dist/hooks/use-anchored-panel.d.ts +77 -15
- package/dist/hooks/use-anchored-panel.js +34 -1
- 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 +50 -11
- package/dist/hooks/use-dismiss.js +80 -9
- package/dist/hooks/use-dismiss.js.map +1 -1
- package/dist/hooks/use-file-drop.d.ts +8 -110
- 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 +2 -4
- package/dist/hooks/use-focus-trap.js +2 -1
- 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 -105
- package/dist/i18n/defaults.js +82 -82
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.d.ts +2 -105
- package/dist/i18n/german.js +52 -8
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +619 -101
- package/dist/i18n/kit-labels.js +22 -97
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/languages.d.ts +197 -101
- package/dist/i18n/locales/de-CH.d.ts +3 -106
- package/dist/i18n/locales/en.d.ts +4 -105
- 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 -106
- package/dist/i18n/locales/es.js +52 -8
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +3 -106
- package/dist/i18n/locales/fr.js +56 -10
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +3 -106
- package/dist/i18n/locales/hu.js +52 -8
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +3 -106
- package/dist/i18n/locales/it.js +56 -10
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +3 -106
- package/dist/i18n/locales/zh.js +51 -8
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/plurals.d.ts +3 -5
- package/dist/i18n/review.d.ts +5 -107
- 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 +330 -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 -109
- 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 -121
- 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 -111
- package/dist/landing/public-header.js +1 -1
- package/dist/landing/public-header.js.map +1 -1
- package/dist/landing/routing.d.ts +16 -120
- 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/refs.d.ts +13 -0
- package/dist/lib/refs.js +15 -0
- package/dist/lib/refs.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 +131 -197
- package/dist/rhf/fields.js +46 -54
- package/dist/rhf/fields.js.map +1 -1
- package/dist/rhf/form-core.d.ts +154 -0
- package/dist/rhf/form-core.js +143 -0
- package/dist/rhf/form-core.js.map +1 -0
- package/dist/rhf/form.d.ts +9 -175
- package/dist/rhf/form.js +2 -139
- 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/use-rhf-wizard-step.js.map +1 -1
- package/dist/rhf.d.ts +4 -118
- 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 -107
- 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 -101
- 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 +7 -9
- package/dist/shell/option-switcher-menu.js +4 -4
- package/dist/shell/option-switcher-menu.js.map +1 -1
- package/dist/shell/role-switcher.d.ts +3 -7
- package/dist/shell/role-switcher.js +3 -3
- package/dist/shell/role-switcher.js.map +1 -1
- package/dist/shell/top-bar-brand.d.ts +4 -107
- 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 +18 -31
- package/dist/shell/topbar-action-menu.js +10 -10
- package/dist/shell/topbar-action-menu.js.map +1 -1
- package/dist/shell/topbar-controls.d.ts +14 -21
- package/dist/shell/topbar-controls.js +11 -11
- package/dist/shell/topbar-controls.js.map +1 -1
- package/dist/shell.d.ts +25 -116
- 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 +11 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/viewport.d.ts +116 -0
- package/dist/testing/viewport.js +203 -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 +18 -15
- package/dist/theme/palette-presets.js +66 -345
- 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 -108
- package/dist/wizard/stepper-nav.js +15 -14
- package/dist/wizard/stepper-nav.js.map +1 -1
- package/dist/wizard/types.d.ts +13 -18
- package/dist/wizard/types.js +2 -24
- 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 -107
- package/package.json +17 -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 +58 -34
- 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 +7 -3
- package/src/billing/billing-labels.ts +1 -1
- package/src/billing/checkout-processing.ts +2 -12
- package/src/billing/plan-card.tsx +26 -27
- package/src/billing/plan-limit-notice.tsx +6 -3
- package/src/billing/subscription-actions.tsx +4 -4
- package/src/chart.ts +9 -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 +458 -406
- 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 +79 -78
- 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 +14 -12
- 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 +21 -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 +370 -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 +346 -194
- package/src/components/combobox-suggestions.tsx +129 -0
- package/src/components/combobox.tsx +70 -896
- 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 +15 -13
- package/src/components/country-select-labels.ts +11 -0
- package/src/components/country-select.tsx +74 -89
- package/src/components/currency-option-list.tsx +182 -0
- package/src/components/currency-select.tsx +85 -196
- package/src/components/danger-confirm-labels.ts +20 -0
- package/src/components/danger-confirm.tsx +72 -80
- 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 +51 -25
- 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 +21 -71
- 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 +225 -0
- package/src/components/data-table.tsx +205 -1315
- 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 +11 -7
- package/src/components/disclosure.tsx +14 -14
- package/src/components/dropdown.tsx +129 -43
- package/src/components/empty-state.tsx +137 -0
- package/src/components/entity-combobox.tsx +18 -13
- 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 +604 -0
- package/src/components/field-parts.tsx +192 -77
- package/src/components/field-strip.tsx +12 -33
- package/src/components/field-sync-labels.ts +13 -0
- package/src/components/field-sync.tsx +8 -16
- package/src/components/field.tsx +17 -15
- 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 +28 -25
- package/src/components/grouped-picker.tsx +118 -96
- package/src/components/help-popover.tsx +115 -0
- package/src/components/hover-menu.tsx +45 -38
- 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 +49 -20
- 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 +300 -292
- package/src/components/nav-pills.tsx +19 -8
- package/src/components/number-field.tsx +7 -5
- package/src/components/number-input.tsx +69 -99
- 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 +36 -37
- 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 +125 -326
- package/src/components/server-wake-labels.ts +11 -0
- package/src/components/server-wake.tsx +39 -66
- package/src/components/settings-fields.tsx +50 -19
- 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 +1 -1
- 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 +39 -38
- 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 +17 -39
- 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 +47 -27
- package/src/components/translation-review-editor.tsx +8 -7
- package/src/components/translation-review-parts.tsx +9 -13
- package/src/components/translation-review.tsx +50 -20
- package/src/components/tree-view.tsx +14 -12
- package/src/components/ui-labels.ts +22 -0
- package/src/components/use-table-state.ts +91 -10
- package/src/components/user-avatar.tsx +5 -5
- package/src/components/wizard-stepper.tsx +7 -6
- package/src/components/write-lock-labels.ts +9 -0
- package/src/components/write-lock.tsx +10 -12
- package/src/currencies.ts +70 -0
- package/src/data-table.ts +4 -0
- package/src/demo/demo-banner.tsx +16 -27
- 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/eslint/index.ts +161 -0
- package/src/eslint/role-utilities.generated.ts +146 -0
- package/src/eslint/role-utilities.ts +99 -0
- 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 +46 -50
- package/src/feedback/feedback-vocabulary.ts +252 -0
- package/src/hooks/use-anchored-panel.ts +102 -2
- 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 +210 -18
- 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 +19 -6
- package/src/i18n/defaults.ts +91 -82
- package/src/i18n/german.ts +50 -6
- package/src/i18n/kit-labels.tsx +85 -124
- package/src/i18n/locales/en.ts +46 -0
- package/src/i18n/locales/es.ts +50 -6
- package/src/i18n/locales/fr.ts +55 -9
- package/src/i18n/locales/hu.ts +50 -6
- package/src/i18n/locales/it.ts +54 -8
- package/src/i18n/locales/zh.ts +49 -6
- package/src/i18n/review.ts +4 -0
- package/src/i18n/shared-labels.ts +135 -0
- package/src/index.ts +414 -404
- 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/refs.ts +22 -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 +141 -189
- package/src/rhf/form-core.tsx +328 -0
- package/src/rhf/form.tsx +9 -320
- package/src/rhf/line-items.tsx +2 -2
- package/src/rhf/use-rhf-wizard-step.ts +4 -4
- package/src/rhf.ts +4 -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 +7 -5
- package/src/shell/role-switcher.tsx +4 -4
- package/src/shell/top-bar-brand.tsx +1 -1
- package/src/shell/top-bar.tsx +6 -5
- package/src/shell/topbar-action-menu.tsx +21 -19
- package/src/shell/topbar-controls.tsx +15 -15
- package/src/shell.ts +1 -1
- package/src/testing/index.ts +13 -0
- package/src/testing/viewport.ts +357 -0
- package/src/theme/color.ts +7 -1
- package/src/theme/palette-derive.ts +29 -7
- package/src/theme/palette-presets.ts +82 -355
- 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 +3 -26
- 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 +45 -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 -101
- 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-DAgGBrbn.d.ts +0 -8167
- package/src/components/choice-parts.ts +0 -33
- package/src/components/ui.tsx +0 -4233
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import type { Dispatch, SetStateAction } from "react";
|
|
3
|
+
import { isRtl } from "../lib/direction";
|
|
4
|
+
import type { DataTableColumn } from "./data-table";
|
|
5
|
+
|
|
6
|
+
// DataTable's column resize and auto-size. Moved out of data-table.tsx whole (refactor
|
|
7
|
+
// audit 2026-10, MOD-3 step 2): what it needs from the table is the header cells, the
|
|
8
|
+
// widths and their setter, and which columns are shown — nothing else.
|
|
9
|
+
|
|
10
|
+
/** A column resize in flight. Held in a ref rather than in state: the live width is
|
|
11
|
+
* written straight onto the column's cells, so a drag costs zero renders and the
|
|
12
|
+
* one `setWidths` happens when the pointer comes up. */
|
|
13
|
+
interface Resize {
|
|
14
|
+
key: string;
|
|
15
|
+
pointerId: number;
|
|
16
|
+
startX: number;
|
|
17
|
+
startWidth: number;
|
|
18
|
+
/** +1 when a drag to the right widens the column, -1 in a right-to-left table,
|
|
19
|
+
* where the handle sits on the column's LEFT edge and widening is a drag left. */
|
|
20
|
+
sign: 1 | -1;
|
|
21
|
+
/** What React last rendered this column at, so a CANCELLED drag can put the header
|
|
22
|
+
* back — React cannot, it never saw the inline width the drag wrote. */
|
|
23
|
+
hadWidth: number | undefined;
|
|
24
|
+
/** The header and the body cells under it, collected ONCE when the drag starts.
|
|
25
|
+
* A `<th>` alone cannot shrink a column whose `<td>`s already carry a pinned
|
|
26
|
+
* width — and nothing re-renders during a drag, so the list cannot go stale. */
|
|
27
|
+
cells: HTMLElement[];
|
|
28
|
+
width: number;
|
|
29
|
+
/** A press with no drag in it is not a resize — the handle is also the
|
|
30
|
+
* double-click target that CLEARS a width, and committing the header's current
|
|
31
|
+
* size on the way past would pin every column the user ever brushed. */
|
|
32
|
+
moved: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The resize handles' pointer handlers, and the column panel's "Auto-size".
|
|
37
|
+
*
|
|
38
|
+
* Pointer events with capture, rather than a `mousemove`/`mouseup` pair on `window`.
|
|
39
|
+
* Three defects in one eleven-line handler (audit 2026-09-22):
|
|
40
|
+
*
|
|
41
|
+
* * a `setWidths` per `mousemove` re-rendered every row of the table on every pixel
|
|
42
|
+
* of the drag — on a 500-row table that is the whole body, sixty times a second;
|
|
43
|
+
* * the two `window` listeners were added from inside an event handler, so nothing
|
|
44
|
+
* removed them if the table unmounted mid-drag (the row beneath opens a route),
|
|
45
|
+
* and `document.body.style` stayed at `user-select: none; cursor: col-resize` for
|
|
46
|
+
* the rest of the session — the whole page unselectable, with the wrong cursor;
|
|
47
|
+
* * `mousedown` is a mouse. Under a finger the handle did nothing at all.
|
|
48
|
+
*
|
|
49
|
+
* `setPointerCapture` answers all three: the handle itself receives every move and
|
|
50
|
+
* the terminating `pointerup`/`pointercancel` wherever the pointer travels, so there
|
|
51
|
+
* is nothing global to leak, and a touch drag works because a finger is a pointer.
|
|
52
|
+
* The live width is written straight onto the column's own cells — the same three
|
|
53
|
+
* properties the render sets, so the drag and the commit cannot disagree — and
|
|
54
|
+
* `setWidths` is called once, when the drag ends.
|
|
55
|
+
*/
|
|
56
|
+
export function useColumnResize<T>({
|
|
57
|
+
headRefs,
|
|
58
|
+
widths,
|
|
59
|
+
setWidths,
|
|
60
|
+
columns,
|
|
61
|
+
hiddenCols,
|
|
62
|
+
}: {
|
|
63
|
+
/** The header cells by column key, as the `<th>`s' ref callbacks fill it. */
|
|
64
|
+
headRefs: Map<string, HTMLTableCellElement>;
|
|
65
|
+
/** The widths React renders the columns at. */
|
|
66
|
+
widths: Record<string, number>;
|
|
67
|
+
setWidths: Dispatch<SetStateAction<Record<string, number>>>;
|
|
68
|
+
columns: DataTableColumn<T>[];
|
|
69
|
+
hiddenCols: Set<string>;
|
|
70
|
+
}) {
|
|
71
|
+
const resizing = useRef<Resize | null>(null);
|
|
72
|
+
|
|
73
|
+
/** Every cell in one column, header first, totals row included. `data-col` rather than a cell index:
|
|
74
|
+
* an expanded row holds a single `colSpan` cell, so the nth `<td>` of a row is
|
|
75
|
+
* not reliably the nth column. */
|
|
76
|
+
const columnCells = (key: string): HTMLElement[] => {
|
|
77
|
+
const th = headRefs.get(key);
|
|
78
|
+
if (!th) return [];
|
|
79
|
+
const table = th.closest("table");
|
|
80
|
+
if (!table) return [th];
|
|
81
|
+
return [
|
|
82
|
+
th,
|
|
83
|
+
...Array.from(table.querySelectorAll<HTMLElement>("tbody [data-col], tfoot [data-col]")).filter(
|
|
84
|
+
(el) => el.dataset.col === key,
|
|
85
|
+
),
|
|
86
|
+
];
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const applyLiveWidth = (cells: HTMLElement[], width: number | undefined) => {
|
|
90
|
+
const px = width == null ? "" : `${width}px`;
|
|
91
|
+
for (const el of cells) {
|
|
92
|
+
el.style.width = px;
|
|
93
|
+
el.style.minWidth = px;
|
|
94
|
+
el.style.maxWidth = px;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const releaseResizeChrome = (handle: Element, pointerId: number) => {
|
|
99
|
+
document.body.style.userSelect = "";
|
|
100
|
+
document.body.style.cursor = "";
|
|
101
|
+
// Optional calls: jsdom implements neither, and the handlers sit on the handle
|
|
102
|
+
// itself, so a run without capture behaves the same for anything that stays
|
|
103
|
+
// inside the element.
|
|
104
|
+
if (handle.hasPointerCapture?.(pointerId)) handle.releasePointerCapture?.(pointerId);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const startResize = (e: React.PointerEvent<HTMLElement>, key: string) => {
|
|
108
|
+
// Secondary buttons open menus; only a primary press starts a drag.
|
|
109
|
+
if (e.button !== 0) return;
|
|
110
|
+
e.preventDefault();
|
|
111
|
+
e.stopPropagation();
|
|
112
|
+
const th = headRefs.get(key);
|
|
113
|
+
const startWidth = th?.getBoundingClientRect().width ?? 100;
|
|
114
|
+
resizing.current = {
|
|
115
|
+
key,
|
|
116
|
+
pointerId: e.pointerId,
|
|
117
|
+
startX: e.clientX,
|
|
118
|
+
startWidth,
|
|
119
|
+
sign: isRtl(e.currentTarget) ? -1 : 1,
|
|
120
|
+
hadWidth: widths[key],
|
|
121
|
+
cells: columnCells(key),
|
|
122
|
+
width: startWidth,
|
|
123
|
+
moved: false,
|
|
124
|
+
};
|
|
125
|
+
e.currentTarget.setPointerCapture?.(e.pointerId);
|
|
126
|
+
document.body.style.userSelect = "none";
|
|
127
|
+
document.body.style.cursor = "col-resize";
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
const moveResize = (e: React.PointerEvent<HTMLElement>) => {
|
|
131
|
+
const drag = resizing.current;
|
|
132
|
+
if (!drag || drag.pointerId !== e.pointerId) return;
|
|
133
|
+
drag.width = Math.max(40, Math.round(drag.startWidth + drag.sign * (e.clientX - drag.startX)));
|
|
134
|
+
drag.moved = true;
|
|
135
|
+
applyLiveWidth(drag.cells, drag.width);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const finishResize = (e: React.PointerEvent<HTMLElement>, commit: boolean) => {
|
|
139
|
+
const drag = resizing.current;
|
|
140
|
+
// Before the early return: the page gets its selection and its cursor back even
|
|
141
|
+
// for a pointer we were not tracking.
|
|
142
|
+
releaseResizeChrome(e.currentTarget, e.pointerId);
|
|
143
|
+
if (!drag || drag.pointerId !== e.pointerId) return;
|
|
144
|
+
resizing.current = null;
|
|
145
|
+
if (commit && drag.moved) {
|
|
146
|
+
setWidths((w) => ({ ...w, [drag.key]: drag.width }));
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Cancelled — the browser took the pointer for a system gesture — or the press
|
|
150
|
+
// never became a drag. Either way the column goes back to the width React last
|
|
151
|
+
// rendered it at, which nothing else can do: the inline width the drag wrote is
|
|
152
|
+
// invisible to React, so a re-render with an unchanged `widths` would keep it.
|
|
153
|
+
applyLiveWidth(drag.cells, drag.hadWidth);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
// The last exit path. A table that unmounts mid-drag takes the handle, and with it
|
|
157
|
+
// every handler above, out of the document — this is the only place left to hand the
|
|
158
|
+
// page back its text selection and its cursor.
|
|
159
|
+
useEffect(
|
|
160
|
+
() => () => {
|
|
161
|
+
if (!resizing.current) return;
|
|
162
|
+
resizing.current = null;
|
|
163
|
+
document.body.style.userSelect = "";
|
|
164
|
+
document.body.style.cursor = "";
|
|
165
|
+
},
|
|
166
|
+
[],
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
const autoSizeAll = () => {
|
|
170
|
+
// Clear widths so the table reflows to natural sizes, then snapshot each
|
|
171
|
+
// column's width and write it back — except for the last visible column,
|
|
172
|
+
// which is left unconstrained so it absorbs any remaining horizontal space.
|
|
173
|
+
setWidths({});
|
|
174
|
+
requestAnimationFrame(() => {
|
|
175
|
+
const next: Record<string, number> = {};
|
|
176
|
+
const cols = columns.filter((c) => !hiddenCols.has(c.key));
|
|
177
|
+
cols.forEach((col, idx) => {
|
|
178
|
+
if (idx === cols.length - 1) return;
|
|
179
|
+
const th = headRefs.get(col.key);
|
|
180
|
+
if (th) next[col.key] = Math.ceil(th.getBoundingClientRect().width);
|
|
181
|
+
});
|
|
182
|
+
setWidths(next);
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
return { startResize, moveResize, finishResize, autoSizeAll };
|
|
187
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { isValidElement, useCallback, useMemo } from "react";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { Pencil, Trash2 } from "lucide-react";
|
|
4
|
+
import { RowActions, type RowAction } from "./row-actions";
|
|
5
|
+
import type { SwipeAction } from "./swipeable-row";
|
|
6
|
+
import type { DataTableLabels } from "./data-table-labels";
|
|
7
|
+
import type {
|
|
8
|
+
DataTableColumn,
|
|
9
|
+
DataTableDensity,
|
|
10
|
+
DataTableProps,
|
|
11
|
+
DataTableRowAction,
|
|
12
|
+
MobileSwipeActions,
|
|
13
|
+
} from "./data-table";
|
|
14
|
+
|
|
15
|
+
// DataTable's per-row actions (`rowActions`): the actions column on a wide screen and
|
|
16
|
+
// the swipes on a phone card. Moved out of data-table.tsx whole (refactor audit
|
|
17
|
+
// 2026-10, MOD-3 step 1); internal — the public types stay in data-table.tsx.
|
|
18
|
+
|
|
19
|
+
/** The actions column's key. Not a column a caller declares, so it is kept out of the
|
|
20
|
+
* column-settings panel. */
|
|
21
|
+
export const ROW_ACTIONS_KEY = "__rowActions";
|
|
22
|
+
|
|
23
|
+
interface ResolvedRowAction<T> {
|
|
24
|
+
key: string;
|
|
25
|
+
label: string;
|
|
26
|
+
icon: ReactNode;
|
|
27
|
+
tone: "default" | "danger";
|
|
28
|
+
swipe: "start" | "end" | false;
|
|
29
|
+
action: DataTableRowAction<T>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function resolveRowAction<T>(
|
|
33
|
+
action: DataTableRowAction<T>,
|
|
34
|
+
index: number,
|
|
35
|
+
labels: DataTableLabels,
|
|
36
|
+
): ResolvedRowAction<T> {
|
|
37
|
+
const tone = action.tone ?? (action.kind === "delete" ? "danger" : "default");
|
|
38
|
+
return {
|
|
39
|
+
key: action.kind ?? `${index}:${action.label ?? ""}`,
|
|
40
|
+
label: action.label ?? (action.kind === "edit" ? labels.edit : action.kind === "delete" ? labels.delete : ""),
|
|
41
|
+
icon:
|
|
42
|
+
action.icon ??
|
|
43
|
+
(action.kind === "edit" ? <Pencil /> : action.kind === "delete" ? <Trash2 /> : null),
|
|
44
|
+
tone,
|
|
45
|
+
swipe: action.swipe ?? (tone === "danger" ? "start" : "end"),
|
|
46
|
+
action,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Ask, then act. */
|
|
51
|
+
async function runRowAction<T>(action: DataTableRowAction<T>, row: T): Promise<void> {
|
|
52
|
+
if (action.confirm && !(await action.confirm(row))) return;
|
|
53
|
+
action.onAction(row);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** A resolved row action as {@link RowActions} takes it. Its `icon` is any node; a
|
|
57
|
+
* non-element one (a string glyph) is wrapped, since RowAction wants an element. */
|
|
58
|
+
function toRowAction<T>(a: ResolvedRowAction<T>, row: T): RowAction {
|
|
59
|
+
return {
|
|
60
|
+
key: a.key,
|
|
61
|
+
label: a.label,
|
|
62
|
+
icon: isValidElement(a.icon) ? a.icon : a.icon != null && a.icon !== false ? <>{a.icon}</> : undefined,
|
|
63
|
+
tone: a.tone,
|
|
64
|
+
disabledReason: a.action.disabledReason?.(row),
|
|
65
|
+
onSelect: () => void runRowAction(a.action, row),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The caller's columns with the actions column appended, and the same actions as a
|
|
71
|
+
* phone card's swipes (`swipesFromActions`; DataTable uses it unless the caller passes
|
|
72
|
+
* `mobileSwipeActions`). Without `rowActions` the columns come back as given.
|
|
73
|
+
*
|
|
74
|
+
* The actions column is appended to the caller's columns rather than drawn as a
|
|
75
|
+
* second special case beside the selection column: it then gets the cell padding,
|
|
76
|
+
* the widths and the phone rules (`mobileHidden`) every other column gets.
|
|
77
|
+
*/
|
|
78
|
+
export function useRowActionColumn<T>({
|
|
79
|
+
columns: columnsProp,
|
|
80
|
+
rowActions,
|
|
81
|
+
rowName,
|
|
82
|
+
labels,
|
|
83
|
+
density,
|
|
84
|
+
}: {
|
|
85
|
+
columns: DataTableColumn<T>[];
|
|
86
|
+
rowActions: DataTableProps<T>["rowActions"];
|
|
87
|
+
rowName: DataTableProps<T>["rowName"];
|
|
88
|
+
labels: DataTableLabels;
|
|
89
|
+
density: DataTableDensity;
|
|
90
|
+
}): {
|
|
91
|
+
columns: DataTableColumn<T>[];
|
|
92
|
+
swipesFromActions: (row: T) => MobileSwipeActions | null;
|
|
93
|
+
} {
|
|
94
|
+
const rowActionsFor = useCallback(
|
|
95
|
+
(row: T): ResolvedRowAction<T>[] =>
|
|
96
|
+
rowActions
|
|
97
|
+
? (typeof rowActions === "function" ? rowActions(row) : rowActions)
|
|
98
|
+
.filter((a) => !a.hidden?.(row))
|
|
99
|
+
.map((a, i) => resolveRowAction(a, i, labels))
|
|
100
|
+
: [],
|
|
101
|
+
[rowActions, labels],
|
|
102
|
+
);
|
|
103
|
+
const columns = useMemo<DataTableColumn<T>[]>(
|
|
104
|
+
() =>
|
|
105
|
+
rowActions
|
|
106
|
+
? [
|
|
107
|
+
...columnsProp,
|
|
108
|
+
{
|
|
109
|
+
key: ROW_ACTIONS_KEY,
|
|
110
|
+
header: <span className="sr-only">{labels.actions}</span>,
|
|
111
|
+
// Through RowActions (0.32, §10.8): the icons inline at Normal, one "⋯"
|
|
112
|
+
// menu at Large once there are two — every label at once does not fit a
|
|
113
|
+
// row. Each control stops its own click: the row's handler already skips
|
|
114
|
+
// its controls, and this is for the caller who wraps the table in a
|
|
115
|
+
// clickable element of their own.
|
|
116
|
+
cell: (row) => (
|
|
117
|
+
<RowActions
|
|
118
|
+
actions={rowActionsFor(row).map((a) => toRowAction(a, row))}
|
|
119
|
+
name={rowName?.(row)}
|
|
120
|
+
size={density === "compact" ? "2xs" : "xs"}
|
|
121
|
+
labels={{ actions: labels.actions }}
|
|
122
|
+
className="justify-end"
|
|
123
|
+
/>
|
|
124
|
+
),
|
|
125
|
+
className: "w-px whitespace-nowrap text-end",
|
|
126
|
+
headClassName: "w-px",
|
|
127
|
+
// On a phone the same actions are the card's swipes.
|
|
128
|
+
mobileHidden: true,
|
|
129
|
+
noRowLink: true,
|
|
130
|
+
},
|
|
131
|
+
]
|
|
132
|
+
: columnsProp,
|
|
133
|
+
[columnsProp, rowActions, rowActionsFor, rowName, labels.actions, density],
|
|
134
|
+
);
|
|
135
|
+
const swipesFromActions = (row: T): MobileSwipeActions | null => {
|
|
136
|
+
const swipes = rowActionsFor(row).filter((a) => a.swipe && !a.action.disabledReason?.(row));
|
|
137
|
+
if (!swipes.length) return null;
|
|
138
|
+
const toSwipe = (a: ResolvedRowAction<T>): SwipeAction => ({
|
|
139
|
+
label: a.label,
|
|
140
|
+
icon: a.icon,
|
|
141
|
+
onCommit: () => void runRowAction(a.action, row),
|
|
142
|
+
// The row action's tone, painted by SwipeableRow: its soft wash idle, its fill
|
|
143
|
+
// and that fill's foreground armed (0.33).
|
|
144
|
+
tone: a.tone === "danger" ? "danger" : "brand",
|
|
145
|
+
});
|
|
146
|
+
return {
|
|
147
|
+
start: swipes.filter((a) => a.swipe === "start").map(toSwipe),
|
|
148
|
+
end: swipes.filter((a) => a.swipe === "end").map(toSwipe),
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
return { columns, swipesFromActions };
|
|
152
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import type { DataTableProps } from "./data-table";
|
|
3
|
+
|
|
4
|
+
// DataTable's Shift+click range selection (feedback #289). Moved out of data-table.tsx
|
|
5
|
+
// whole (refactor audit 2026-10, MOD-3 step 3).
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The anchor a Shift+click draws its range from, and the range itself.
|
|
9
|
+
*
|
|
10
|
+
* `selectionAnchor` is set by every single-row toggle (the checkbox, a Ctrl/⌘-click or
|
|
11
|
+
* a first Shift-click on a row); `selectRange(i)` then selects from the anchor to the
|
|
12
|
+
* `i`th row of `slice`, and answers false when there is no range on screen to draw.
|
|
13
|
+
* `rangeClick` remembers the checkbox click that drew one, so that click's own
|
|
14
|
+
* `onChange` can be told apart and dropped.
|
|
15
|
+
*/
|
|
16
|
+
export function useRangeSelection<T>({
|
|
17
|
+
selection,
|
|
18
|
+
slice,
|
|
19
|
+
rowKey,
|
|
20
|
+
}: {
|
|
21
|
+
selection: DataTableProps<T>["selection"];
|
|
22
|
+
/** The rows on screen, in the order shown. */
|
|
23
|
+
slice: T[];
|
|
24
|
+
rowKey: (row: T) => string | number;
|
|
25
|
+
}) {
|
|
26
|
+
// The row whose selection was last toggled, so Shift+click can select the range up
|
|
27
|
+
// to it (feedback #289). Held as its KEY, not as an index into `slice`: the slice is
|
|
28
|
+
// re-derived from the current sort, filter and page, so an index taken before a
|
|
29
|
+
// header was clicked addresses a different row afterwards — and the range then ran
|
|
30
|
+
// from a row the user had never touched.
|
|
31
|
+
const selectionAnchor = useRef<string | number | null>(null);
|
|
32
|
+
/** The checkbox click that drew a range, so its `onChange` can be told apart. */
|
|
33
|
+
const rangeClick = useRef<Event | null>(null);
|
|
34
|
+
const canSelect = (row: T) => !!selection && (selection.isSelectable?.(row) ?? true);
|
|
35
|
+
const selectRange = (toIndex: number) => {
|
|
36
|
+
if (!selection || selectionAnchor.current === null) return false;
|
|
37
|
+
const fromIndex = slice.findIndex((r) => rowKey(r) === selectionAnchor.current);
|
|
38
|
+
// The anchor has been filtered, sorted or paged off the screen: there is no range
|
|
39
|
+
// on display to draw, so the click falls through to the plain single-row toggle.
|
|
40
|
+
if (fromIndex < 0) return false;
|
|
41
|
+
const [lo, hi] = [fromIndex, toIndex].sort((a, b) => a - b);
|
|
42
|
+
const range: T[] = [];
|
|
43
|
+
for (let i = lo; i <= hi; i++) {
|
|
44
|
+
const r = slice[i];
|
|
45
|
+
if (r && canSelect(r)) range.push(r);
|
|
46
|
+
}
|
|
47
|
+
// One call where the owner can take one. See `selection.onToggleMany`: the row-by-
|
|
48
|
+
// row loop below is the fallback for an owner that has not adopted it, not the
|
|
49
|
+
// shape this should be in.
|
|
50
|
+
if (selection.onToggleMany) selection.onToggleMany(range, true);
|
|
51
|
+
else for (const r of range) selection.onToggle(r, true);
|
|
52
|
+
return true;
|
|
53
|
+
};
|
|
54
|
+
return { selectionAnchor, rangeClick, canSelect, selectRange };
|
|
55
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from "react";
|
|
2
|
+
import { ROW_ACTIONS_KEY } from "./data-table-row-actions";
|
|
3
|
+
import { DEFAULT_DATA_TABLE_LABELS, type DataTableLabels } from "./data-table-labels";
|
|
4
|
+
import type { DataTableCellProps, DataTableColumn, DataTableHeadProps } from "./data-table";
|
|
5
|
+
import type { LabelOverride } from "../i18n/kit-labels";
|
|
6
|
+
|
|
7
|
+
// What DataTable shares with its header (data-table-head.tsx), its column panel and its
|
|
8
|
+
// phone layout (data-table-mobile.tsx): the cell-attribute and alignment rules, a
|
|
9
|
+
// column's plain-text name, and the row link. Moved out of data-table.tsx unchanged
|
|
10
|
+
// (refactor audit 2026-10, MOD-3), into a module of their own so none of those has to
|
|
11
|
+
// import data-table.tsx at run time — which imports them. Since 0.35 also the table's
|
|
12
|
+
// label resolver, which DataTable and its FilterPopover share and the barrel no longer
|
|
13
|
+
// exports (round 0.35 R1).
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Split a caller's cell attributes into what may reach the element and what the kit
|
|
17
|
+
* owns. `role` and `data-col` are dropped outright (see `cellProps`); `className` and
|
|
18
|
+
* `style` come back separately so the kit can merge rather than replace them.
|
|
19
|
+
*/
|
|
20
|
+
export function splitCellProps(
|
|
21
|
+
props: DataTableCellProps | DataTableHeadProps | undefined,
|
|
22
|
+
): { attrs: Record<string, unknown>; className?: string; style?: CSSProperties } {
|
|
23
|
+
if (!props) return { attrs: {} };
|
|
24
|
+
const {
|
|
25
|
+
className,
|
|
26
|
+
style,
|
|
27
|
+
role: _role,
|
|
28
|
+
"data-col": _col,
|
|
29
|
+
...attrs
|
|
30
|
+
} = props as DataTableCellProps & { "data-col"?: unknown };
|
|
31
|
+
return { attrs, className, style };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// A bare `text-right` / `text-left` token, with or without variant prefixes
|
|
35
|
+
// (`md:text-right`). Deliberately NOT `text-right-…` or an arbitrary value.
|
|
36
|
+
const PHYSICAL_ALIGN = /(^|\s)((?:[\w-]+:)*)text-(left|right)(?=\s|$)/g;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A column's `className`/`headClassName` with physical text alignment rewritten to
|
|
40
|
+
* logical: `text-right` → `text-end`, `text-left` → `text-start`.
|
|
41
|
+
*
|
|
42
|
+
* Every numeric column written before 0.7.0 says `text-right`, and that is what it
|
|
43
|
+
* MEANT: the end of the line, where digits line up. Rendered as written, a
|
|
44
|
+
* right-to-left table puts those numbers on the far side from their own header's
|
|
45
|
+
* sort button. Rewriting keeps each existing call site correct in both directions
|
|
46
|
+
* with no change on its side; a caller who genuinely wants the physical side in RTL
|
|
47
|
+
* too can say `ltr:text-right rtl:text-right`, which this leaves alone.
|
|
48
|
+
*/
|
|
49
|
+
export function logicalAlign(className: string | undefined): string | undefined {
|
|
50
|
+
return className?.replace(
|
|
51
|
+
PHYSICAL_ALIGN,
|
|
52
|
+
(token: string, lead: string, variants: string, side: string) =>
|
|
53
|
+
// Already scoped to one direction: that is a caller choosing the physical side.
|
|
54
|
+
/(^|:)(ltr|rtl):/.test(variants)
|
|
55
|
+
? token
|
|
56
|
+
: `${lead}${variants}text-${side === "right" ? "end" : "start"}`,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Drop the undefined entries of a {@link DataTableProps.rowAttributes} map, so a
|
|
61
|
+
* caller can write `{ "data-x": cond ? "y" : undefined }` and get no attribute
|
|
62
|
+
* at all rather than the string "undefined" in the DOM. */
|
|
63
|
+
export function cleanAttrs(
|
|
64
|
+
attrs: Record<string, string | undefined> | undefined,
|
|
65
|
+
): Record<string, string> | undefined {
|
|
66
|
+
if (!attrs) return undefined;
|
|
67
|
+
const out: Record<string, string> = {};
|
|
68
|
+
for (const [k, v] of Object.entries(attrs)) if (v !== undefined) out[k] = v;
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A column's name as a plain string.
|
|
74
|
+
*
|
|
75
|
+
* `header` is a ReactNode — an icon, a unit suffix, a tooltip-wrapped span — and
|
|
76
|
+
* neither a live region nor the column-settings checklist can speak a React element.
|
|
77
|
+
* The `key` fallback is the one the settings panel has always used; a column whose
|
|
78
|
+
* header is not a string and whose key is not human-readable is a call site that
|
|
79
|
+
* should pass a string header, and that is visible in what gets announced.
|
|
80
|
+
*/
|
|
81
|
+
export function columnLabel<T>(col: DataTableColumn<T>, labels?: DataTableLabels): string {
|
|
82
|
+
if (col.key === ROW_ACTIONS_KEY && labels) return labels.actions;
|
|
83
|
+
return col.headerText ?? (typeof col.header === "string" ? col.header : col.key);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The table's labels: caller overrides merged onto the English defaults (presets merged
|
|
88
|
+
* too, key by key, as the provider merges them — so the parameter is a
|
|
89
|
+
* {@link LabelOverride}).
|
|
90
|
+
*
|
|
91
|
+
* DataTable's own, and FilterPopover's: public until 0.35, when it left the barrel for
|
|
92
|
+
* DataTable's `labels` and the provider's `dataTable`, which it serves (round 0.35 R1,
|
|
93
|
+
* refactor audit 2026-10 API-6a). It stays a resolver rather than `useKitLabels` for the
|
|
94
|
+
* two keys it derives (`columnsCount`, `filterColumn`), which a plain merge would not.
|
|
95
|
+
*
|
|
96
|
+
* Lenient on purpose — a table with no labels at all still renders — so a translated app
|
|
97
|
+
* finds out what fell back to English from `missingKitLabels(labels,
|
|
98
|
+
* DEFAULT_UI_KIT_LABELS)` in its own test, where the answer is actionable.
|
|
99
|
+
*/
|
|
100
|
+
export function resolveDataTableLabels(
|
|
101
|
+
...layers: (LabelOverride<DataTableLabels> | undefined)[]
|
|
102
|
+
): DataTableLabels {
|
|
103
|
+
if (!layers.some(Boolean)) return DEFAULT_DATA_TABLE_LABELS;
|
|
104
|
+
// The layers in order, the provider's then the prop's, later winning key by key. An
|
|
105
|
+
// `undefined` key is skipped, as `useKitLabels` skips it, rather than blanking the word
|
|
106
|
+
// under it: DataTable spread `{ ...provider, ...prop }`, so `labels={{ autoSize:
|
|
107
|
+
// undefined }}` blanked the provider's word and the English one (round 0.35). `presets`
|
|
108
|
+
// is a record and is merged the same way, so renaming one keeps the other ten.
|
|
109
|
+
const partial: Partial<Omit<DataTableLabels, "presets">> = {};
|
|
110
|
+
const presets = { ...DEFAULT_DATA_TABLE_LABELS.presets };
|
|
111
|
+
for (const layer of layers) {
|
|
112
|
+
for (const [key, value] of Object.entries(layer ?? {})) {
|
|
113
|
+
if (value === undefined) continue;
|
|
114
|
+
if (key !== "presets") Object.assign(partial, { [key]: value });
|
|
115
|
+
else for (const [preset, text] of Object.entries(value)) if (text !== undefined) presets[preset] = text;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const merged: DataTableLabels = { ...DEFAULT_DATA_TABLE_LABELS, ...partial, presets };
|
|
119
|
+
// `columnsCount` was split out of `columns` + a template literal. Consumers have
|
|
120
|
+
// been translating `columns` since 0.1, and backfilling the English default over
|
|
121
|
+
// that would hand them "Columns (4/9)" back for having translated the key that
|
|
122
|
+
// existed at the time. So the count is derived from the RESOLVED `columns` unless the
|
|
123
|
+
// caller states the whole sentence, which is the escape hatch for a language where
|
|
124
|
+
// the parenthetical does not fit.
|
|
125
|
+
if (partial.columns !== undefined && partial.columnsCount === undefined) {
|
|
126
|
+
merged.columnsCount = (visible, total) => `${merged.columns} (${visible}/${total})`;
|
|
127
|
+
}
|
|
128
|
+
// The same for `filterColumn` (0.34), from a translated `filter`: the app's own word
|
|
129
|
+
// with the column, rather than English for having translated the key that existed.
|
|
130
|
+
if (partial.filter !== undefined && partial.filterColumn === undefined) {
|
|
131
|
+
merged.filterColumn = (column) => `${merged.filter}: ${column}`;
|
|
132
|
+
}
|
|
133
|
+
return merged;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Whether a click that reached `row`'s handler did not start in the row's own DOM.
|
|
138
|
+
*
|
|
139
|
+
* React bubbles an event through the COMPONENT tree, portals included: a popover, a
|
|
140
|
+
* menu or a dialog a cell (or the expansion under it) opens renders at `<body>` but
|
|
141
|
+
* still reports its clicks to every React ancestor — the row among them. So a click
|
|
142
|
+
* in a cell's portalled date picker opened the row it came from, and a page wrapped
|
|
143
|
+
* such content in `<div onClick={(e) => e.stopPropagation()}>` to stop it (kastlan's
|
|
144
|
+
* feedback page did, round its comments). The row owns the clicks on the row.
|
|
145
|
+
*/
|
|
146
|
+
export function fromOutside(target: EventTarget | null, row: HTMLElement): boolean {
|
|
147
|
+
return !(target instanceof Node) || !row.contains(target);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** A click the APP owns. Anything else — middle, ⌘/Ctrl, Shift, Alt — belongs to
|
|
151
|
+
* the browser, and the whole feature is not touching it. */
|
|
152
|
+
const isPlainLeftClick = (e: React.MouseEvent) =>
|
|
153
|
+
e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* The anchor a linkable row is opened through (Keksdose feedback #451).
|
|
157
|
+
*
|
|
158
|
+
* The plain left click is OURS: cancelled, then handed to the row's own handler, so
|
|
159
|
+
* clicking a row still expands it in place instead of reloading the page. Every
|
|
160
|
+
* other click — middle, ⌘/Ctrl, Shift, Alt — is left completely untouched, which is
|
|
161
|
+
* the entire point of using an anchor rather than an `onAuxClick` + `window.open`:
|
|
162
|
+
* that imitation buys back the middle click and still loses ⌘/Ctrl-click, "copy link
|
|
163
|
+
* address", the status-bar preview and the phone's long-press menu.
|
|
164
|
+
*
|
|
165
|
+
* Modified clicks DO stop propagating: on a table with `selection`, ⌘/Ctrl-click and
|
|
166
|
+
* Shift-click on a row mean "select" (feedback #289), and a row must not change its
|
|
167
|
+
* selection while the browser is opening a tab. The rest of the row still selects —
|
|
168
|
+
* the link is one cell, not the row.
|
|
169
|
+
*
|
|
170
|
+
* `draggable={false}` because an anchor otherwise hijacks a horizontal mouse drag as
|
|
171
|
+
* a link-drag: that is both drag-to-select-text on the desktop table and the mouse
|
|
172
|
+
* path through SwipeableRow's gesture on the mobile card.
|
|
173
|
+
*/
|
|
174
|
+
export function RowLink({
|
|
175
|
+
href,
|
|
176
|
+
onActivate,
|
|
177
|
+
className,
|
|
178
|
+
children,
|
|
179
|
+
...rest
|
|
180
|
+
}: {
|
|
181
|
+
href: string;
|
|
182
|
+
/** Runs on a plain left click. Omit it where an ANCESTOR already handles the
|
|
183
|
+
* click (the desktop `<tr>`), or the row would toggle twice. */
|
|
184
|
+
onActivate?: () => void;
|
|
185
|
+
className?: string;
|
|
186
|
+
children: ReactNode;
|
|
187
|
+
} & Omit<
|
|
188
|
+
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
189
|
+
"href" | "className" | "children" | "onClick" | "onClickCapture"
|
|
190
|
+
>) {
|
|
191
|
+
return (
|
|
192
|
+
<a
|
|
193
|
+
{...rest}
|
|
194
|
+
href={href}
|
|
195
|
+
draggable={false}
|
|
196
|
+
className={className}
|
|
197
|
+
// CAPTURE phase, and it has to be: on the mobile card the whole card is the
|
|
198
|
+
// anchor, so a nested control sits INSIDE it — and the ones that matter
|
|
199
|
+
// (the feedback row's status toggles) stop the click propagating so the row
|
|
200
|
+
// won't also expand. A bubble-phase handler would never run for those, and
|
|
201
|
+
// the browser would follow the link out from under the button press. Cancelling
|
|
202
|
+
// here happens before any descendant can silence the event; `stopPropagation`
|
|
203
|
+
// does not undo a `preventDefault`.
|
|
204
|
+
onClickCapture={(e) => {
|
|
205
|
+
// A click in a portal a descendant opened is not a click on the link: leave
|
|
206
|
+
// it (and a link inside it) alone. See `fromOutside`.
|
|
207
|
+
if (fromOutside(e.target, e.currentTarget)) return;
|
|
208
|
+
if (isPlainLeftClick(e)) e.preventDefault();
|
|
209
|
+
}}
|
|
210
|
+
onClick={(e) => {
|
|
211
|
+
if (fromOutside(e.target, e.currentTarget)) return;
|
|
212
|
+
if (!isPlainLeftClick(e)) {
|
|
213
|
+
e.stopPropagation();
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// Already cancelled above; this phase only decides what opens. A nested
|
|
217
|
+
// control that stopped propagation deliberately never reaches it, which is
|
|
218
|
+
// exactly how the row behaved before it became a link.
|
|
219
|
+
onActivate?.();
|
|
220
|
+
}}
|
|
221
|
+
>
|
|
222
|
+
{children}
|
|
223
|
+
</a>
|
|
224
|
+
);
|
|
225
|
+
}
|