@eifi1/ui-kit 0.11.0 → 0.13.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 +59 -34
- package/dist/chart.d.ts +3 -1
- package/dist/chart.js +2 -0
- package/dist/chart.js.map +1 -1
- package/dist/components/account-settings-labels.d.ts +105 -0
- package/dist/components/account-settings-labels.js +81 -0
- package/dist/components/account-settings-labels.js.map +1 -0
- package/dist/components/account-settings.d.ts +36 -52
- package/dist/components/account-settings.js +44 -8
- package/dist/components/account-settings.js.map +1 -1
- package/dist/components/amount-input.d.ts +40 -4
- package/dist/components/amount-input.js +50 -12
- package/dist/components/amount-input.js.map +1 -1
- package/dist/components/authed-image.d.ts +68 -0
- package/dist/components/authed-image.js +117 -0
- package/dist/components/authed-image.js.map +1 -0
- package/dist/components/breadcrumbs.d.ts +2 -1
- package/dist/components/breadcrumbs.js +5 -2
- package/dist/components/breadcrumbs.js.map +1 -1
- package/dist/components/bulk-action-bar.d.ts +10 -2
- package/dist/components/bulk-action-bar.js.map +1 -1
- package/dist/components/button-group.d.ts +51 -2
- package/dist/components/button-group.js +5 -1
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/calculator.d.ts +15 -4
- package/dist/components/calendar-heatmap.d.ts +41 -3
- package/dist/components/calendar-heatmap.js +48 -7
- package/dist/components/calendar-heatmap.js.map +1 -1
- package/dist/components/chart.js +14 -8
- package/dist/components/chart.js.map +1 -1
- package/dist/components/chip.d.ts +2 -1
- package/dist/components/chip.js +26 -18
- package/dist/components/chip.js.map +1 -1
- package/dist/components/choice-card.d.ts +35 -3
- package/dist/components/choice-card.js +83 -25
- package/dist/components/choice-card.js.map +1 -1
- package/dist/components/combobox-core.d.ts +3 -1
- package/dist/components/combobox-core.js +18 -5
- package/dist/components/combobox-core.js.map +1 -1
- package/dist/components/combobox.d.ts +2 -2
- package/dist/components/combobox.js +31 -9
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/copy-button.d.ts +51 -70
- package/dist/components/copy-button.js +1 -1
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/data-table-cells.d.ts +63 -0
- package/dist/components/data-table-cells.js +64 -0
- package/dist/components/data-table-cells.js.map +1 -0
- package/dist/components/data-table-filter-popover.d.ts +1 -1
- package/dist/components/data-table-filter-popover.js +8 -1
- package/dist/components/data-table-filter-popover.js.map +1 -1
- package/dist/components/data-table-filters.d.ts +1 -1
- package/dist/components/data-table-filters.js +31 -1
- package/dist/components/data-table-filters.js.map +1 -1
- package/dist/components/data-table-labels.d.ts +13 -0
- package/dist/components/data-table-labels.js +8 -1
- package/dist/components/data-table-labels.js.map +1 -1
- package/dist/components/data-table.d.ts +1 -1
- package/dist/components/data-table.js +125 -27
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.d.ts +3 -1
- package/dist/components/date-picker.js +15 -2
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/description-list.d.ts +23 -3
- package/dist/components/description-list.js +23 -3
- package/dist/components/description-list.js.map +1 -1
- package/dist/components/dialog-frame.d.ts +1 -0
- package/dist/components/entity-combobox.d.ts +1 -1
- package/dist/components/entity-combobox.js +40 -20
- package/dist/components/entity-combobox.js.map +1 -1
- package/dist/components/error-boundary.d.ts +281 -0
- package/dist/components/error-boundary.js +302 -0
- package/dist/components/error-boundary.js.map +1 -0
- package/dist/components/field-sync.js +90 -83
- package/dist/components/field-sync.js.map +1 -1
- package/dist/components/field.d.ts +30 -4
- package/dist/components/field.js +40 -17
- package/dist/components/field.js.map +1 -1
- package/dist/components/file-button.d.ts +50 -208
- package/dist/components/file-dropzone.d.ts +49 -2
- package/dist/components/floating-panel.d.ts +13 -4
- package/dist/components/floating-panel.js +7 -3
- package/dist/components/floating-panel.js.map +1 -1
- package/dist/components/form-actions.d.ts +53 -0
- package/dist/components/form-actions.js +98 -0
- package/dist/components/form-actions.js.map +1 -0
- package/dist/components/full-bleed-dialog.js +4 -0
- package/dist/components/full-bleed-dialog.js.map +1 -1
- package/dist/components/hover-menu.js +64 -56
- package/dist/components/hover-menu.js.map +1 -1
- package/dist/components/image-grid.d.ts +67 -0
- package/dist/components/image-grid.js +112 -0
- package/dist/components/image-grid.js.map +1 -0
- package/dist/components/lightbox.d.ts +104 -0
- package/dist/components/lightbox.js +229 -0
- package/dist/components/lightbox.js.map +1 -0
- package/dist/components/line-items.d.ts +114 -0
- package/dist/components/line-items.js +238 -0
- package/dist/components/line-items.js.map +1 -0
- package/dist/components/list.d.ts +37 -4
- package/dist/components/list.js +35 -14
- package/dist/components/list.js.map +1 -1
- package/dist/components/loading-state.d.ts +24 -0
- package/dist/components/loading-state.js +32 -0
- package/dist/components/loading-state.js.map +1 -0
- package/dist/components/menu-item.d.ts +2 -1
- package/dist/components/menu-item.js +5 -1
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/mini-calendar.d.ts +13 -1
- package/dist/components/mini-calendar.js +46 -2
- package/dist/components/mini-calendar.js.map +1 -1
- package/dist/components/modal.d.ts +20 -1
- package/dist/components/modal.js +26 -2
- package/dist/components/modal.js.map +1 -1
- package/dist/components/month-picker.d.ts +21 -1
- package/dist/components/month-picker.js +139 -26
- package/dist/components/month-picker.js.map +1 -1
- package/dist/components/multi-entity-combobox.d.ts +1 -1
- package/dist/components/multi-entity-combobox.js +42 -20
- package/dist/components/multi-entity-combobox.js.map +1 -1
- package/dist/components/nav-pills.d.ts +2 -1
- package/dist/components/nav-pills.js +5 -1
- package/dist/components/nav-pills.js.map +1 -1
- package/dist/components/number-field.d.ts +24 -5
- package/dist/components/number-field.js +5 -7
- package/dist/components/number-field.js.map +1 -1
- package/dist/components/number-input.d.ts +25 -5
- package/dist/components/number-input.js +7 -1
- package/dist/components/number-input.js.map +1 -1
- package/dist/components/numpad-sheet.d.ts +20 -5
- package/dist/components/numpad-sheet.js +3 -2
- package/dist/components/numpad-sheet.js.map +1 -1
- package/dist/components/page-header.d.ts +35 -6
- package/dist/components/page-header.js +7 -1
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/passkeys-setting.d.ts +67 -0
- package/dist/components/passkeys-setting.js +214 -0
- package/dist/components/passkeys-setting.js.map +1 -0
- package/dist/components/picker-sheet.js +5 -1
- package/dist/components/picker-sheet.js.map +1 -1
- package/dist/components/pie-chart-labels.d.ts +20 -0
- package/dist/components/pie-chart-labels.js +12 -0
- package/dist/components/pie-chart-labels.js.map +1 -0
- package/dist/components/pie-chart.d.ts +101 -0
- package/dist/components/pie-chart.js +283 -0
- package/dist/components/pie-chart.js.map +1 -0
- package/dist/components/popover.js +3 -0
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress-bar.d.ts +44 -3
- package/dist/components/progress-bar.js +58 -22
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/qr-code.d.ts +34 -0
- package/dist/components/qr-code.js +57 -0
- package/dist/components/qr-code.js.map +1 -0
- package/dist/components/search-field.d.ts +15 -3
- package/dist/components/search-field.js +5 -1
- package/dist/components/search-field.js.map +1 -1
- package/dist/components/settings-fields.d.ts +49 -1
- package/dist/components/signed-amount.d.ts +122 -0
- package/dist/components/signed-amount.js +152 -0
- package/dist/components/signed-amount.js.map +1 -0
- package/dist/components/skeleton.d.ts +10 -3
- package/dist/components/skeleton.js +12 -2
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/stat-tile.d.ts +2 -1
- package/dist/components/stat-tile.js +6 -3
- package/dist/components/stat-tile.js.map +1 -1
- package/dist/components/swipeable-row.js +4 -3
- package/dist/components/swipeable-row.js.map +1 -1
- package/dist/components/table.d.ts +39 -5
- package/dist/components/table.js +45 -11
- package/dist/components/table.js.map +1 -1
- package/dist/components/text-link.d.ts +238 -0
- package/dist/components/text-link.js +144 -0
- package/dist/components/text-link.js.map +1 -0
- package/dist/components/text.d.ts +26 -2
- package/dist/components/text.js +16 -2
- package/dist/components/text.js.map +1 -1
- package/dist/components/time-input.d.ts +49 -1
- package/dist/components/toggle-group.d.ts +35 -0
- package/dist/components/toggle-group.js +43 -14
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle-legend.d.ts +53 -3
- package/dist/components/toggle-legend.js +54 -1
- package/dist/components/toggle-legend.js.map +1 -1
- package/dist/components/tooltip.d.ts +51 -1
- package/dist/components/tooltip.js +59 -35
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/ui.d.ts +51 -779
- package/dist/components/ui.js +364 -34
- package/dist/components/ui.js.map +1 -1
- package/dist/components/use-table-state.d.ts +3 -52
- package/dist/components/use-table-state.js +128 -30
- package/dist/components/use-table-state.js.map +1 -1
- package/dist/{data-table-filters-Dh9uF_S-.d.ts → data-table-Drun8Fk9.d.ts} +305 -61
- package/dist/data-table.d.ts +2 -1
- package/dist/data-table.js +5 -1
- package/dist/data-table.js.map +1 -1
- package/dist/feedback/feedback-attachment.js +4 -6
- package/dist/feedback/feedback-attachment.js.map +1 -1
- package/dist/feedback/feedback-dialog.d.ts +26 -3
- package/dist/feedback/feedback-dialog.js +21 -5
- package/dist/feedback/feedback-dialog.js.map +1 -1
- package/dist/feedback/feedback-inbox.js +86 -75
- package/dist/feedback/feedback-inbox.js.map +1 -1
- package/dist/feedback/feedback-thread.d.ts +173 -0
- package/dist/feedback/feedback-thread.js +264 -0
- package/dist/feedback/feedback-thread.js.map +1 -0
- package/dist/feedback.d.ts +2 -1
- package/dist/feedback.js +1 -0
- package/dist/feedback.js.map +1 -1
- package/dist/hooks/use-authed-src.d.ts +71 -0
- package/dist/hooks/use-authed-src.js +63 -0
- package/dist/hooks/use-authed-src.js.map +1 -0
- package/dist/hooks/use-file-drop.d.ts +49 -2
- package/dist/hooks/use-hotkey.d.ts +59 -0
- package/dist/hooks/use-hotkey.js +105 -0
- package/dist/hooks/use-hotkey.js.map +1 -0
- package/dist/hooks/use-search-param-state.d.ts +83 -0
- package/dist/hooks/use-search-param-state.js +94 -0
- package/dist/hooks/use-search-param-state.js.map +1 -0
- package/dist/i18n/defaults.d.ts +15 -4
- package/dist/i18n/defaults.js +31 -1
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +46 -312
- package/dist/i18n/kit-labels.js +20 -5
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/locales/de-CH-informal.d.ts +15 -4
- package/dist/i18n/locales/de-CH.d.ts +15 -4
- package/dist/i18n/locales/de-informal.d.ts +15 -4
- package/dist/i18n/locales/de.d.ts +15 -4
- package/dist/i18n/locales/de.js +164 -3
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +15 -4
- package/dist/i18n/locales/es.js +161 -3
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +15 -4
- package/dist/i18n/locales/fr.js +161 -3
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +15 -4
- package/dist/i18n/locales/hu.js +161 -3
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +15 -4
- package/dist/i18n/locales/it.js +161 -3
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +15 -4
- package/dist/i18n/locales/zh.js +161 -3
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.d.ts +39 -19
- package/dist/index.js +40 -1
- package/dist/index.js.map +1 -1
- package/dist/kit-labels-Mz8zZHIF.d.ts +1744 -0
- package/dist/lib/format.d.ts +162 -0
- package/dist/lib/format.js +151 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/qr-encode.d.ts +44 -0
- package/dist/lib/qr-encode.js +338 -0
- package/dist/lib/qr-encode.js.map +1 -0
- package/dist/rhf/fields.d.ts +283 -0
- package/dist/rhf/fields.js +631 -0
- package/dist/rhf/fields.js.map +1 -0
- package/dist/rhf/form.d.ts +49 -1
- package/dist/rhf/line-items.d.ts +31 -0
- package/dist/rhf/line-items.js +59 -0
- package/dist/rhf/line-items.js.map +1 -0
- package/dist/rhf.d.ts +61 -1
- package/dist/rhf.js +2 -0
- package/dist/rhf.js.map +1 -1
- package/dist/search/command-palette.js +20 -14
- package/dist/search/command-palette.js.map +1 -1
- package/dist/shell/app-shell.d.ts +99 -2
- package/dist/shell/app-shell.js +120 -57
- package/dist/shell/app-shell.js.map +1 -1
- package/dist/shell/auth-layout.d.ts +74 -0
- package/dist/shell/auth-layout.js +97 -0
- package/dist/shell/auth-layout.js.map +1 -0
- package/dist/shell/top-bar-brand.d.ts +81 -0
- package/dist/shell/top-bar-brand.js +47 -0
- package/dist/shell/top-bar-brand.js.map +1 -0
- package/dist/shell/topbar-action-menu.d.ts +21 -4
- package/dist/shell/topbar-action-menu.js +18 -2
- package/dist/shell/topbar-action-menu.js.map +1 -1
- package/dist/shell.d.ts +56 -1
- package/dist/shell.js +2 -0
- package/dist/shell.js.map +1 -1
- package/dist/tour/tour.js +10 -4
- package/dist/tour/tour.js.map +1 -1
- package/dist/wizard/stepper-nav.d.ts +48 -1
- package/dist/wizard/use-wizard.js +4 -2
- package/dist/wizard/use-wizard.js.map +1 -1
- package/dist/wizard/wizard-context.d.ts +24 -1
- package/dist/wizard/wizard-context.js +19 -2
- package/dist/wizard/wizard-context.js.map +1 -1
- package/dist/wizard/wizard-step.d.ts +30 -5
- package/dist/wizard/wizard-step.js +34 -3
- package/dist/wizard/wizard-step.js.map +1 -1
- package/dist/wizard.d.ts +50 -3
- package/package.json +6 -6
- package/src/chart.ts +4 -0
- package/src/components/account-settings-labels.ts +190 -0
- package/src/components/account-settings.tsx +110 -63
- package/src/components/amount-input.tsx +109 -10
- package/src/components/authed-image.tsx +190 -0
- package/src/components/breadcrumbs.tsx +8 -2
- package/src/components/bulk-action-bar.tsx +16 -3
- package/src/components/button-group.tsx +7 -2
- package/src/components/calendar-heatmap.tsx +105 -10
- package/src/components/chart.tsx +19 -8
- package/src/components/chip.tsx +14 -4
- package/src/components/choice-card.tsx +136 -25
- package/src/components/combobox-core.tsx +33 -9
- package/src/components/combobox.tsx +33 -9
- package/src/components/copy-button.tsx +3 -2
- package/src/components/data-table-cells.tsx +119 -0
- package/src/components/data-table-filter-popover.tsx +13 -5
- package/src/components/data-table-filters.ts +77 -0
- package/src/components/data-table-labels.ts +23 -0
- package/src/components/data-table.tsx +230 -13
- package/src/components/date-picker.tsx +19 -3
- package/src/components/description-list.tsx +52 -3
- package/src/components/entity-combobox.tsx +25 -7
- package/src/components/error-boundary.tsx +640 -0
- package/src/components/field-sync.tsx +48 -40
- package/src/components/field.tsx +56 -5
- package/src/components/floating-panel.tsx +20 -7
- package/src/components/form-actions.tsx +191 -0
- package/src/components/full-bleed-dialog.tsx +4 -0
- package/src/components/hover-menu.tsx +26 -17
- package/src/components/image-grid.tsx +181 -0
- package/src/components/lightbox.tsx +374 -0
- package/src/components/line-items.tsx +385 -0
- package/src/components/list.tsx +82 -19
- package/src/components/loading-state.tsx +47 -0
- package/src/components/menu-item.tsx +7 -2
- package/src/components/mini-calendar.tsx +72 -3
- package/src/components/modal.tsx +65 -3
- package/src/components/month-picker.tsx +181 -26
- package/src/components/multi-entity-combobox.tsx +27 -7
- package/src/components/nav-pills.tsx +8 -1
- package/src/components/number-field.tsx +15 -10
- package/src/components/number-input.tsx +17 -1
- package/src/components/numpad-sheet.tsx +6 -1
- package/src/components/page-header.tsx +42 -5
- package/src/components/passkeys-setting.tsx +331 -0
- package/src/components/picker-sheet.tsx +10 -1
- package/src/components/pie-chart-labels.ts +32 -0
- package/src/components/pie-chart.tsx +479 -0
- package/src/components/popover.tsx +3 -0
- package/src/components/progress-bar.tsx +129 -19
- package/src/components/qr-code.tsx +83 -0
- package/src/components/search-field.tsx +20 -4
- package/src/components/signed-amount.tsx +295 -0
- package/src/components/skeleton.tsx +21 -3
- package/src/components/stat-tile.tsx +11 -3
- package/src/components/swipeable-row.tsx +7 -7
- package/src/components/table.tsx +102 -13
- package/src/components/text-link.tsx +356 -0
- package/src/components/text.tsx +46 -2
- package/src/components/toggle-group.tsx +93 -20
- package/src/components/toggle-legend.tsx +108 -2
- package/src/components/tooltip.tsx +79 -8
- package/src/components/ui.tsx +707 -49
- package/src/components/use-table-state.ts +265 -33
- package/src/data-table.ts +10 -0
- package/src/feedback/feedback-attachment.tsx +10 -7
- package/src/feedback/feedback-dialog.tsx +49 -7
- package/src/feedback/feedback-inbox.tsx +7 -0
- package/src/feedback/feedback-thread.tsx +510 -0
- package/src/feedback.ts +1 -0
- package/src/hooks/use-authed-src.ts +161 -0
- package/src/hooks/use-hotkey.ts +172 -0
- package/src/hooks/use-search-param-state.ts +187 -0
- package/src/i18n/defaults.ts +30 -0
- package/src/i18n/kit-labels.tsx +118 -8
- package/src/i18n/locales/de.ts +161 -0
- package/src/i18n/locales/es.ts +158 -0
- package/src/i18n/locales/fr.ts +161 -0
- package/src/i18n/locales/hu.ts +159 -0
- package/src/i18n/locales/it.ts +159 -0
- package/src/i18n/locales/zh.ts +158 -0
- package/src/index.ts +59 -0
- package/src/lib/format.ts +348 -0
- package/src/lib/qr-encode.ts +420 -0
- package/src/rhf/fields.tsx +1135 -0
- package/src/rhf/line-items.tsx +130 -0
- package/src/rhf.ts +6 -0
- package/src/search/command-palette.tsx +29 -19
- package/src/shell/app-shell.tsx +153 -3
- package/src/shell/auth-layout.tsx +190 -0
- package/src/shell/top-bar-brand.tsx +76 -0
- package/src/shell/topbar-action-menu.tsx +32 -4
- package/src/shell.ts +2 -0
- package/src/tour/tour.tsx +16 -5
- package/src/wizard/use-wizard.ts +8 -4
- package/src/wizard/wizard-context.tsx +41 -1
- package/src/wizard/wizard-step.tsx +75 -6
- package/tokens.css +12 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode, ReactElement } from 'react';
|
|
3
|
+
import { FieldValues, FieldPath, ControllerProps, ControllerRenderProps, ControllerFieldState } from 'react-hook-form';
|
|
4
|
+
import { aJ as SelectProps, ay as InputProps, aS as TextareaProps } from '../kit-labels-Mz8zZHIF.js';
|
|
5
|
+
import { NumberFieldProps } from '../components/number-field.js';
|
|
6
|
+
import { DatePickerProps } from '../components/date-picker.js';
|
|
7
|
+
import { CheckboxProps } from '../components/checkbox.js';
|
|
8
|
+
import { EntityComboboxProps } from '../components/entity-combobox.js';
|
|
9
|
+
import { ComboboxProps } from '../components/combobox.js';
|
|
10
|
+
import { ComboClearValue } from '../components/combobox-core.js';
|
|
11
|
+
import '../components/data-table-labels.js';
|
|
12
|
+
import '../components/mini-calendar.js';
|
|
13
|
+
import '../components/calendar-heatmap.js';
|
|
14
|
+
import '../components/popover.js';
|
|
15
|
+
import '../components/chip.js';
|
|
16
|
+
import 'lucide-react';
|
|
17
|
+
import '../components/field-sync.js';
|
|
18
|
+
import '../components/tooltip.js';
|
|
19
|
+
import '../hooks/use-anchored-rect.js';
|
|
20
|
+
import '../lib/clipping.js';
|
|
21
|
+
import '../wizard/types.js';
|
|
22
|
+
import '../tour/tour.js';
|
|
23
|
+
import '../search/command-palette.js';
|
|
24
|
+
import '../search/global-search.js';
|
|
25
|
+
import '../search/search-index.js';
|
|
26
|
+
import '../components/month-picker.js';
|
|
27
|
+
import '../components/page-contents.js';
|
|
28
|
+
import '../components/series-chart-labels.js';
|
|
29
|
+
import '../components/pie-chart-labels.js';
|
|
30
|
+
import '../components/sparkline.js';
|
|
31
|
+
import '../components/stat-tile.js';
|
|
32
|
+
import '../components/signature-pad.js';
|
|
33
|
+
import '../components/password-strength.js';
|
|
34
|
+
import '../components/danger-confirm.js';
|
|
35
|
+
import '../components/swatch-picker.js';
|
|
36
|
+
import '../components/tile-radio.js';
|
|
37
|
+
import '../components/icon-picker.js';
|
|
38
|
+
import '../components/dialog-frame.js';
|
|
39
|
+
import '../components/modal.js';
|
|
40
|
+
import '../hooks/use-search-param-state.js';
|
|
41
|
+
import '../components/measured-grid.js';
|
|
42
|
+
import '../feedback/feedback-attachment.js';
|
|
43
|
+
import '../feedback/feedback-dialog.js';
|
|
44
|
+
import '../feedback/feedback-thread.js';
|
|
45
|
+
import '../feedback/feedback-inbox.js';
|
|
46
|
+
import '../components/account-settings-labels.js';
|
|
47
|
+
import '../components/confirm-dialog.js';
|
|
48
|
+
import '../components/floating-panel.js';
|
|
49
|
+
import '../components/bulk-action-bar.js';
|
|
50
|
+
import '../components/list.js';
|
|
51
|
+
import '../components/breadcrumbs.js';
|
|
52
|
+
import '../components/toast.js';
|
|
53
|
+
import '../components/description-list.js';
|
|
54
|
+
import '../components/line-items.js';
|
|
55
|
+
import '../components/progress-bar.js';
|
|
56
|
+
import '../components/signed-amount.js';
|
|
57
|
+
import '../components/error-boundary.js';
|
|
58
|
+
import '../components/authed-image.js';
|
|
59
|
+
import '../hooks/use-authed-src.js';
|
|
60
|
+
import '../components/image-grid.js';
|
|
61
|
+
import '../components/lightbox.js';
|
|
62
|
+
import '../components/number-input.js';
|
|
63
|
+
import '../components/calculator.js';
|
|
64
|
+
import '../components/numpad-sheet.js';
|
|
65
|
+
import '../hooks/use-anchored-panel.js';
|
|
66
|
+
|
|
67
|
+
/** What every bound field takes. */
|
|
68
|
+
interface RhfFieldBaseProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> {
|
|
69
|
+
name: TName;
|
|
70
|
+
/** `form.control`. Optional under `<Form {...form}>`; pass it to type-check `name`. */
|
|
71
|
+
control?: ControllerProps<TFieldValues, TName, TTransformed>["control"];
|
|
72
|
+
/** react-hook-form's `rules` (`required`, `min`, `validate` …). */
|
|
73
|
+
rules?: ControllerProps<TFieldValues, TName, TTransformed>["rules"];
|
|
74
|
+
/** A {@link FormLabel} above the field. Omitted: no label — name the control with
|
|
75
|
+
* an `aria-label` instead. */
|
|
76
|
+
label?: ReactNode;
|
|
77
|
+
/** Standing advice under the field ("As printed on the card"), attached to the
|
|
78
|
+
* control with `aria-describedby`. */
|
|
79
|
+
hint?: ReactNode;
|
|
80
|
+
/** Draws the label's required mark and sets `aria-required` where the control
|
|
81
|
+
* takes it. Whether the field IS required is `rules`' or the resolver's to say. */
|
|
82
|
+
required?: boolean;
|
|
83
|
+
/** Disables the control and KEEPS the value: a field locked to a preset (a lease's
|
|
84
|
+
* preselected unit, a fixed period) still submits it, and `rules` still run.
|
|
85
|
+
* react-hook-form's own Controller `disabled` drops the value from `handleSubmit`'s
|
|
86
|
+
* data instead, which a locked preset must never do (kastlan, 0.12). To get that,
|
|
87
|
+
* add `excludeWhenDisabled`. A form-wide `useForm({ disabled })` still disables
|
|
88
|
+
* every field the RHF way. */
|
|
89
|
+
disabled?: boolean;
|
|
90
|
+
/** With `disabled`: disable through react-hook-form, so the value is left out of
|
|
91
|
+
* the submitted data and validation skips it, like a disabled native input in a
|
|
92
|
+
* plain form post. Default `false`. */
|
|
93
|
+
excludeWhenDisabled?: boolean;
|
|
94
|
+
/** Classes for the item's box (a `grid gap-1`). */
|
|
95
|
+
className?: string;
|
|
96
|
+
}
|
|
97
|
+
/** What {@link RhfField}'s `render` receives. */
|
|
98
|
+
interface RhfFieldRenderContext<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
|
|
99
|
+
field: ControllerRenderProps<TFieldValues, TName>;
|
|
100
|
+
fieldState: ControllerFieldState;
|
|
101
|
+
/** The field has an error: pass it to the control's `invalid` so it paints. */
|
|
102
|
+
invalid: boolean;
|
|
103
|
+
/** The error's message, if any. */
|
|
104
|
+
error: string | undefined;
|
|
105
|
+
/** The control's id, which the label points at. `FormControl` sets it on the
|
|
106
|
+
* rendered element already; this is for a control that routes it elsewhere. */
|
|
107
|
+
id: string;
|
|
108
|
+
/** The label's id, for a control that is named with `aria-labelledby`. */
|
|
109
|
+
labelId: string;
|
|
110
|
+
/** The ids of the rendered hint and message, if any. */
|
|
111
|
+
describedBy: string | undefined;
|
|
112
|
+
}
|
|
113
|
+
interface RhfFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> extends RhfFieldBaseProps<TFieldValues, TName, TTransformed> {
|
|
114
|
+
/** The control. Wrapped in {@link FormControl} (its `id`, `aria-describedby` and
|
|
115
|
+
* `aria-invalid`) unless `asControl` is false. */
|
|
116
|
+
render: (ctx: RhfFieldRenderContext<TFieldValues, TName>) => ReactElement;
|
|
117
|
+
/** `false`: render the control as is, for one that wires its own ids from the
|
|
118
|
+
* context. Default `true`. */
|
|
119
|
+
asControl?: boolean;
|
|
120
|
+
/** `false`: no {@link FormMessage}, for a control that renders its own error (its
|
|
121
|
+
* `error` prop). Default `true`. */
|
|
122
|
+
message?: boolean;
|
|
123
|
+
/** `false`: no {@link FormLabel}, for a control that carries its label itself (a
|
|
124
|
+
* checkbox). Default `true`. */
|
|
125
|
+
showLabel?: boolean;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The shell every bound field is built on: label, control, hint and message around
|
|
129
|
+
* a `render` of your own.
|
|
130
|
+
*
|
|
131
|
+
* ```tsx
|
|
132
|
+
* <RhfField name="address" label="Address" render={({ field, invalid }) => (
|
|
133
|
+
* <AddressAutocomplete value={field.value ?? ""} onChange={field.onChange} invalid={invalid} />
|
|
134
|
+
* )} />
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
declare function RhfField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, render, asControl, message, showLabel, }: RhfFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
138
|
+
type OwnInputProps = Omit<InputProps, "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required" | "inputClassName"> & {
|
|
139
|
+
/**
|
|
140
|
+
* Classes for the `<input>` — `className` is the item's box (kastlan 42: a
|
|
141
|
+
* `font-mono` IBAN, a `tabular-nums` reference number). {@link RhfTextarea} and
|
|
142
|
+
* {@link RhfNumberField} had it; this one only reached `Input`'s prop of the same
|
|
143
|
+
* name by accident of the rest-spread, undocumented and one refactor from being
|
|
144
|
+
* dropped. Declared, it is part of the contract the three share.
|
|
145
|
+
*/
|
|
146
|
+
inputClassName?: string;
|
|
147
|
+
};
|
|
148
|
+
type RhfTextFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnInputProps;
|
|
149
|
+
/** A text {@link Input} — `type` for email, tel, password, url. Stores the string. */
|
|
150
|
+
declare function RhfTextField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...inputProps }: RhfTextFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
151
|
+
type OwnTextareaProps = Omit<TextareaProps, "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required"> & {
|
|
152
|
+
/** Classes for the `<textarea>`. */
|
|
153
|
+
inputClassName?: string;
|
|
154
|
+
};
|
|
155
|
+
type RhfTextareaProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextareaProps;
|
|
156
|
+
/** A multi-line {@link Textarea}; takes `rows`. Stores the string. */
|
|
157
|
+
declare function RhfTextarea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, ...areaProps }: RhfTextareaProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
158
|
+
type RhfNumberFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<NumberFieldProps, "digits" | "min" | "max" | "step" | "calculator" | "unit" | "unitPlacement" | "placeholder" | "inputClassName" | "locale" | "ariaLabel" | "autoFocus"> & {
|
|
159
|
+
/** What an emptied field stores. Default `null`; `""` for a schema written
|
|
160
|
+
* against a native number input (`z.coerce.number()` over `""`). */
|
|
161
|
+
emptyValue?: null | "";
|
|
162
|
+
/** `false`: an emptied field snaps back to its last number instead of storing
|
|
163
|
+
* `emptyValue`. Default `true`. */
|
|
164
|
+
nullable?: boolean;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* The kit's {@link NumberField}: a parsed, rounded (`digits`) and clamped (`min` /
|
|
168
|
+
* `max`) number, committed on blur or Enter in the locale's decimal mark. Stores a
|
|
169
|
+
* number, or `emptyValue` when emptied.
|
|
170
|
+
*/
|
|
171
|
+
declare function RhfNumberField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, emptyValue, nullable, ...numberProps }: RhfNumberFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
172
|
+
type RhfIntegerFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfNumberFieldProps<TFieldValues, TName, TTransformed>;
|
|
173
|
+
/**
|
|
174
|
+
* {@link RhfNumberField} for a whole number — a floor, a room count, a year, a
|
|
175
|
+
* notice period in months. Every such call site in kastlan (item 41) spelled out the
|
|
176
|
+
* same three props, `digits={0} calculator={false} emptyValue=""`, and a preset
|
|
177
|
+
* written thirty times is one that is eventually written wrong once:
|
|
178
|
+
*
|
|
179
|
+
* - `digits={0}`: rounds on commit, so "2.5" rooms settles to 3 instead of reaching
|
|
180
|
+
* an `Integer` column and failing server-side;
|
|
181
|
+
* - `calculator={false}`: a count is typed, not worked out — the trigger is noise
|
|
182
|
+
* beside a two-digit field;
|
|
183
|
+
* - `emptyValue=""`: kastlan's integer schemas are `z.coerce.number()` over `""`,
|
|
184
|
+
* written against the native number inputs these fields replaced.
|
|
185
|
+
*
|
|
186
|
+
* Each is only a default: pass the prop to override it (`emptyValue={null}` for a
|
|
187
|
+
* nullable column). Everything else is {@link RhfNumberField}'s.
|
|
188
|
+
*/
|
|
189
|
+
declare function RhfIntegerField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>(props: RhfIntegerFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
190
|
+
type RhfMoneyFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & {
|
|
191
|
+
placeholder?: string;
|
|
192
|
+
/** The currency chip's code ("CHF"). */
|
|
193
|
+
currency?: string;
|
|
194
|
+
/** Makes the chip a currency picker. Bind it to another field with
|
|
195
|
+
* `useController`, or to state. */
|
|
196
|
+
onCurrencyChange?: (code: string) => void;
|
|
197
|
+
/** Colours the figure for the direction of money. */
|
|
198
|
+
tone?: "neutral" | "outflow" | "inflow";
|
|
199
|
+
align?: "start" | "center";
|
|
200
|
+
ariaLabel?: string;
|
|
201
|
+
autoFocus?: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* What the form stores: `"number"` (default) — `12.5`, or `emptyValue` while the
|
|
204
|
+
* field is empty — or `"string"`, the field's own text ("12.50") for a schema that
|
|
205
|
+
* parses it itself. A half-typed sum ("12+") leaves the stored number as it was
|
|
206
|
+
* until it resolves.
|
|
207
|
+
*/
|
|
208
|
+
valueAs?: "number" | "string";
|
|
209
|
+
/** What an emptied field stores when `valueAs` is `"number"`. Default `null`. */
|
|
210
|
+
emptyValue?: null | "";
|
|
211
|
+
/** Decimals the amount settles to on blur, Enter or a calculator result. Default:
|
|
212
|
+
* the currency's minor unit (CHF 2, JPY 0). See {@link AmountInput}'s `digits`. */
|
|
213
|
+
digits?: number;
|
|
214
|
+
/** Clamp the settled amount (a release capped at the deposit's balance). Validate
|
|
215
|
+
* with `rules` as well if a clamp needs explaining. */
|
|
216
|
+
min?: number;
|
|
217
|
+
max?: number;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* The kit's {@link AmountInput}: a money figure with its currency chip and the
|
|
221
|
+
* calculator ("1200+80" resolves on blur or Enter). Stores a number by default — see
|
|
222
|
+
* `valueAs`.
|
|
223
|
+
*/
|
|
224
|
+
declare function RhfMoneyField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...amountProps }: RhfMoneyFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
225
|
+
type RhfDateFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<DatePickerProps, "value" | "onChange" | "label" | "invalid" | "disabled" | "className" | "id"> & {
|
|
226
|
+
/** Classes for the picker. Default `w-full`. */
|
|
227
|
+
inputClassName?: string;
|
|
228
|
+
/** What a cleared date stores. Default `""`, the empty ISO string; `null` for a
|
|
229
|
+
* nullable schema. */
|
|
230
|
+
emptyValue?: "" | null;
|
|
231
|
+
};
|
|
232
|
+
/** The kit's {@link DatePicker}, holding an ISO `"YYYY-MM-DD"` string. */
|
|
233
|
+
declare function RhfDateField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, emptyValue, ...pickerProps }: RhfDateFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
234
|
+
interface RhfSelectOption {
|
|
235
|
+
value: string | number;
|
|
236
|
+
label: ReactNode;
|
|
237
|
+
disabled?: boolean;
|
|
238
|
+
}
|
|
239
|
+
type RhfSelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<SelectProps, "size" | "autoFocus" | "aria-label"> & {
|
|
240
|
+
/** The options, as data. Or pass `<option>` children. */
|
|
241
|
+
options?: readonly RhfSelectOption[];
|
|
242
|
+
children?: ReactNode;
|
|
243
|
+
/** A first, empty option ("Choose…"), selected while the value is empty. */
|
|
244
|
+
placeholder?: string;
|
|
245
|
+
/** Store `Number(value)` rather than the option's string. An empty choice still
|
|
246
|
+
* stores `""`. */
|
|
247
|
+
valueAsNumber?: boolean;
|
|
248
|
+
/** Classes for the select. Default `w-full`. */
|
|
249
|
+
selectClassName?: string;
|
|
250
|
+
};
|
|
251
|
+
/** A native {@link Select}, from `options` or `<option>` children. */
|
|
252
|
+
declare function RhfSelect<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, options, children, placeholder, valueAsNumber, selectClassName, ...selectProps }: RhfSelectProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
253
|
+
type RhfCheckboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<CheckboxProps, "inputClassName" | "autoFocus" | "aria-label">;
|
|
254
|
+
/**
|
|
255
|
+
* The kit's {@link Checkbox}, label beside the box and `hint` under it (the
|
|
256
|
+
* checkbox's own `description`). Stores a boolean. `required` is the native one here
|
|
257
|
+
* — see Checkbox — so a `<form>` refuses to submit it unticked.
|
|
258
|
+
*/
|
|
259
|
+
declare function RhfCheckbox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...boxProps }: RhfCheckboxProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
260
|
+
type RhfComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<EntityComboboxProps<V>, "options" | "loadOptions" | "loading" | "placeholder" | "searchPlaceholder" | "emptyLabel" | "clearable" | "clearLabel" | "onCreate" | "createLabel" | "filter" | "minChars" | "debounceMs"> & {
|
|
261
|
+
/** What a clear stores — the picker's `clearValue`. Default `null`; `""` for a
|
|
262
|
+
* schema that spells "no choice" as an empty string. */
|
|
263
|
+
clearValue?: ComboClearValue;
|
|
264
|
+
/** Classes for the picker. */
|
|
265
|
+
comboClassName?: string;
|
|
266
|
+
};
|
|
267
|
+
/**
|
|
268
|
+
* The kit's {@link EntityCombobox}: an id-keyed pick from `options` or `loadOptions`.
|
|
269
|
+
* Stores the option's `value`, or `clearValue` on a clear (only offered with
|
|
270
|
+
* `clearable`).
|
|
271
|
+
*/
|
|
272
|
+
declare function RhfCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, clearValue, comboClassName, ...comboProps }: RhfComboboxProps<TFieldValues, TName, V, TTransformed>): react.JSX.Element;
|
|
273
|
+
type RhfTextComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<ComboboxProps, "options" | "placeholder" | "groupBy" | "maxSuggestions" | "searchPlaceholder" | "createLabel" | "optionAdornment" | "autoFocus" | "aria-label"> & {
|
|
274
|
+
/** Classes for the combobox. */
|
|
275
|
+
comboClassName?: string;
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* The kit's free-text {@link Combobox}: type anything, or pick one of `options`.
|
|
279
|
+
* Stores the string.
|
|
280
|
+
*/
|
|
281
|
+
declare function RhfTextCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, comboClassName, ...comboProps }: RhfTextComboboxProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
|
|
282
|
+
|
|
283
|
+
export { RhfCheckbox, type RhfCheckboxProps, RhfCombobox, type RhfComboboxProps, RhfDateField, type RhfDateFieldProps, RhfField, type RhfFieldBaseProps, type RhfFieldProps, type RhfFieldRenderContext, RhfIntegerField, type RhfIntegerFieldProps, RhfMoneyField, type RhfMoneyFieldProps, RhfNumberField, type RhfNumberFieldProps, RhfSelect, type RhfSelectOption, type RhfSelectProps, RhfTextCombobox, type RhfTextComboboxProps, RhfTextField, type RhfTextFieldProps, RhfTextarea, type RhfTextareaProps };
|