@mantis-core/ui 0.5.0 → 0.6.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/CHANGELOG.md +144 -0
- package/COMPONENTS.md +71 -73
- package/README.md +13 -6
- package/catalog.json +3031 -0
- package/dist/components/Buttons/Button.d.ts +39 -9
- package/dist/components/Buttons/Button.d.ts.map +1 -1
- package/dist/components/Buttons/Button.js +21 -13
- package/dist/components/Buttons/Button.js.map +1 -1
- package/dist/components/Forms/AutoCompleteField.d.ts +60 -0
- package/dist/components/Forms/AutoCompleteField.d.ts.map +1 -0
- package/dist/components/Forms/AutoCompleteField.js +125 -0
- package/dist/components/Forms/AutoCompleteField.js.map +1 -0
- package/dist/components/Forms/CKEditorInput.d.ts +5 -2
- package/dist/components/Forms/CKEditorInput.d.ts.map +1 -1
- package/dist/components/Forms/CKEditorInput.js +5 -2
- package/dist/components/Forms/CKEditorInput.js.map +1 -1
- package/dist/components/Forms/CheckboxField.d.ts +14 -0
- package/dist/components/Forms/CheckboxField.d.ts.map +1 -0
- package/dist/components/Forms/CheckboxField.js +26 -0
- package/dist/components/Forms/CheckboxField.js.map +1 -0
- package/dist/components/Forms/ColorPickerInput.d.ts +27 -8
- package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -1
- package/dist/components/Forms/ColorPickerInput.js +57 -11
- package/dist/components/Forms/ColorPickerInput.js.map +1 -1
- package/dist/components/Forms/DateField.d.ts +68 -0
- package/dist/components/Forms/DateField.d.ts.map +1 -0
- package/dist/components/Forms/DateField.js +108 -0
- package/dist/components/Forms/DateField.js.map +1 -0
- package/dist/components/Forms/DatePresets.d.ts.map +1 -1
- package/dist/components/Forms/DatePresets.js +6 -3
- package/dist/components/Forms/DatePresets.js.map +1 -1
- package/dist/components/Forms/FieldShell.d.ts +24 -0
- package/dist/components/Forms/FieldShell.d.ts.map +1 -0
- package/dist/components/Forms/FieldShell.js +39 -0
- package/dist/components/Forms/FieldShell.js.map +1 -0
- package/dist/components/Forms/FileDropzone.d.ts +4 -2
- package/dist/components/Forms/FileDropzone.d.ts.map +1 -1
- package/dist/components/Forms/FileDropzone.js.map +1 -1
- package/dist/components/Forms/FormActionsBar.js +2 -2
- package/dist/components/Forms/FormActionsBar.js.map +1 -1
- package/dist/components/Forms/FormWizard.d.ts +1 -1
- package/dist/components/Forms/FormWizard.d.ts.map +1 -1
- package/dist/components/Forms/FormWizard.js +4 -5
- package/dist/components/Forms/FormWizard.js.map +1 -1
- package/dist/components/Forms/HiddenField.d.ts +12 -6
- package/dist/components/Forms/HiddenField.d.ts.map +1 -1
- package/dist/components/Forms/HiddenField.js +14 -5
- package/dist/components/Forms/HiddenField.js.map +1 -1
- package/dist/components/Forms/MaskField.d.ts +28 -0
- package/dist/components/Forms/MaskField.d.ts.map +1 -0
- package/dist/components/Forms/MaskField.js +74 -0
- package/dist/components/Forms/MaskField.js.map +1 -0
- package/dist/components/Forms/NumberField.d.ts +14 -0
- package/dist/components/Forms/NumberField.d.ts.map +1 -0
- package/dist/components/Forms/NumberField.js +51 -0
- package/dist/components/Forms/NumberField.js.map +1 -0
- package/dist/components/Forms/OtpInput.d.ts +23 -8
- package/dist/components/Forms/OtpInput.d.ts.map +1 -1
- package/dist/components/Forms/OtpInput.js +37 -8
- package/dist/components/Forms/OtpInput.js.map +1 -1
- package/dist/components/Forms/PasswordInput.d.ts +22 -9
- package/dist/components/Forms/PasswordInput.d.ts.map +1 -1
- package/dist/components/Forms/PasswordInput.js +63 -28
- package/dist/components/Forms/PasswordInput.js.map +1 -1
- package/dist/components/Forms/PhoneInput.d.ts +16 -8
- package/dist/components/Forms/PhoneInput.d.ts.map +1 -1
- package/dist/components/Forms/PhoneInput.js +13 -6
- package/dist/components/Forms/PhoneInput.js.map +1 -1
- package/dist/components/Forms/RadioGroup.d.ts +34 -13
- package/dist/components/Forms/RadioGroup.d.ts.map +1 -1
- package/dist/components/Forms/RadioGroup.js +49 -6
- package/dist/components/Forms/RadioGroup.js.map +1 -1
- package/dist/components/Forms/RangeSlider.d.ts +26 -11
- package/dist/components/Forms/RangeSlider.d.ts.map +1 -1
- package/dist/components/Forms/RangeSlider.js +40 -7
- package/dist/components/Forms/RangeSlider.js.map +1 -1
- package/dist/components/Forms/RatingInput.d.ts +24 -8
- package/dist/components/Forms/RatingInput.d.ts.map +1 -1
- package/dist/components/Forms/RatingInput.js +41 -9
- package/dist/components/Forms/RatingInput.js.map +1 -1
- package/dist/components/Forms/SearchInput.d.ts +18 -10
- package/dist/components/Forms/SearchInput.d.ts.map +1 -1
- package/dist/components/Forms/SearchInput.js +44 -23
- package/dist/components/Forms/SearchInput.js.map +1 -1
- package/dist/components/Forms/SelectField.d.ts +41 -0
- package/dist/components/Forms/SelectField.d.ts.map +1 -0
- package/dist/components/Forms/SelectField.js +110 -0
- package/dist/components/Forms/SelectField.js.map +1 -0
- package/dist/components/Forms/SwitchField.d.ts +14 -0
- package/dist/components/Forms/SwitchField.d.ts.map +1 -0
- package/dist/components/Forms/SwitchField.js +26 -0
- package/dist/components/Forms/SwitchField.js.map +1 -0
- package/dist/components/Forms/TagsInput.d.ts +29 -8
- package/dist/components/Forms/TagsInput.d.ts.map +1 -1
- package/dist/components/Forms/TagsInput.js +53 -9
- package/dist/components/Forms/TagsInput.js.map +1 -1
- package/dist/components/Forms/TextArea.d.ts +13 -10
- package/dist/components/Forms/TextArea.d.ts.map +1 -1
- package/dist/components/Forms/TextArea.js +27 -9
- package/dist/components/Forms/TextArea.js.map +1 -1
- package/dist/components/Forms/TextField.d.ts +14 -0
- package/dist/components/Forms/TextField.d.ts.map +1 -0
- package/dist/components/Forms/TextField.js +29 -0
- package/dist/components/Forms/TextField.js.map +1 -0
- package/dist/components/Forms/ToggleInlineButton.d.ts +33 -12
- package/dist/components/Forms/ToggleInlineButton.d.ts.map +1 -1
- package/dist/components/Forms/ToggleInlineButton.js +56 -6
- package/dist/components/Forms/ToggleInlineButton.js.map +1 -1
- package/dist/components/Forms/UploadFilesPreview.js +3 -3
- package/dist/components/Forms/UploadFilesPreview.js.map +1 -1
- package/dist/components/Forms/field-typing.test-d.d.ts +2 -0
- package/dist/components/Forms/field-typing.test-d.d.ts.map +1 -0
- package/dist/components/Forms/field-typing.test-d.js +24 -0
- package/dist/components/Forms/field-typing.test-d.js.map +1 -0
- package/dist/components/Forms/useFieldController.d.ts +85 -0
- package/dist/components/Forms/useFieldController.d.ts.map +1 -0
- package/dist/components/Forms/useFieldController.js +54 -0
- package/dist/components/Forms/useFieldController.js.map +1 -0
- package/dist/components/Loaders/Loading.d.ts.map +1 -1
- package/dist/components/Loaders/Loading.js +3 -2
- package/dist/components/Loaders/Loading.js.map +1 -1
- package/dist/components/Tables/ActionColumn.d.ts +20 -4
- package/dist/components/Tables/ActionColumn.d.ts.map +1 -1
- package/dist/components/Tables/ActionColumn.js +24 -5
- package/dist/components/Tables/ActionColumn.js.map +1 -1
- package/dist/components/Tables/FilterPannel.d.ts +9 -2
- package/dist/components/Tables/FilterPannel.d.ts.map +1 -1
- package/dist/components/Tables/FilterPannel.js +15 -11
- package/dist/components/Tables/FilterPannel.js.map +1 -1
- package/dist/components/Tables/IndexColumn.d.ts +12 -3
- package/dist/components/Tables/IndexColumn.d.ts.map +1 -1
- package/dist/components/Tables/IndexColumn.js +21 -5
- package/dist/components/Tables/IndexColumn.js.map +1 -1
- package/dist/components/Tables/MantisDataTable.d.ts +45 -0
- package/dist/components/Tables/MantisDataTable.d.ts.map +1 -0
- package/dist/components/Tables/MantisDataTable.js +63 -0
- package/dist/components/Tables/MantisDataTable.js.map +1 -0
- package/dist/components/Tables/MenuButton.d.ts +28 -7
- package/dist/components/Tables/MenuButton.d.ts.map +1 -1
- package/dist/components/Tables/MenuButton.js +20 -10
- package/dist/components/Tables/MenuButton.js.map +1 -1
- package/dist/components/Tables/PaginatedTable.d.ts +26 -17
- package/dist/components/Tables/PaginatedTable.d.ts.map +1 -1
- package/dist/components/Tables/PaginatedTable.js +24 -22
- package/dist/components/Tables/PaginatedTable.js.map +1 -1
- package/dist/components/Tables/cell-presets.d.ts +35 -0
- package/dist/components/Tables/cell-presets.d.ts.map +1 -0
- package/dist/components/Tables/cell-presets.js +40 -0
- package/dist/components/Tables/cell-presets.js.map +1 -0
- package/dist/components/Tables/columns.d.ts +40 -0
- package/dist/components/Tables/columns.d.ts.map +1 -0
- package/dist/components/Tables/columns.js +2 -0
- package/dist/components/Tables/columns.js.map +1 -0
- package/dist/components/Tables/filters/MultiSelectFilter.d.ts +24 -6
- package/dist/components/Tables/filters/MultiSelectFilter.d.ts.map +1 -1
- package/dist/components/Tables/filters/MultiSelectFilter.js +19 -6
- package/dist/components/Tables/filters/MultiSelectFilter.js.map +1 -1
- package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -1
- package/dist/components/auth/ChangePasswordForm.js +12 -12
- package/dist/components/auth/ChangePasswordForm.js.map +1 -1
- package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -1
- package/dist/components/auth/ForgotPasswordForm.js +7 -5
- package/dist/components/auth/ForgotPasswordForm.js.map +1 -1
- package/dist/components/auth/LoginForm.d.ts +2 -2
- package/dist/components/auth/LoginForm.d.ts.map +1 -1
- package/dist/components/auth/LoginForm.js +15 -15
- package/dist/components/auth/LoginForm.js.map +1 -1
- package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -1
- package/dist/components/auth/ResetPasswordForm.js +11 -12
- package/dist/components/auth/ResetPasswordForm.js.map +1 -1
- package/dist/components/auth/UserMenu.d.ts +11 -1
- package/dist/components/auth/UserMenu.d.ts.map +1 -1
- package/dist/components/auth/UserMenu.js +30 -87
- package/dist/components/auth/UserMenu.js.map +1 -1
- package/dist/components/data/Timeline.d.ts +2 -2
- package/dist/components/data/Timeline.d.ts.map +1 -1
- package/dist/components/data/Timeline.js +17 -17
- package/dist/components/data/Timeline.js.map +1 -1
- package/dist/components/feedback/Avatar.d.ts +4 -2
- package/dist/components/feedback/Avatar.d.ts.map +1 -1
- package/dist/components/feedback/Avatar.js +4 -4
- package/dist/components/feedback/Avatar.js.map +1 -1
- package/dist/components/feedback/CardSkeleton.d.ts.map +1 -1
- package/dist/components/feedback/CardSkeleton.js +3 -3
- package/dist/components/feedback/CardSkeleton.js.map +1 -1
- package/dist/components/feedback/TableSkeleton.d.ts.map +1 -1
- package/dist/components/feedback/TableSkeleton.js +3 -3
- package/dist/components/feedback/TableSkeleton.js.map +1 -1
- package/dist/components/feedback/Tag.d.ts +4 -2
- package/dist/components/feedback/Tag.d.ts.map +1 -1
- package/dist/components/feedback/Tag.js +4 -4
- package/dist/components/feedback/Tag.js.map +1 -1
- package/dist/components/navigation/CommandPalette.d.ts.map +1 -1
- package/dist/components/navigation/CommandPalette.js +5 -2
- package/dist/components/navigation/CommandPalette.js.map +1 -1
- package/dist/components/navigation/PageTabs.d.ts +10 -8
- package/dist/components/navigation/PageTabs.d.ts.map +1 -1
- package/dist/components/navigation/PageTabs.js +17 -13
- package/dist/components/navigation/PageTabs.js.map +1 -1
- package/dist/components/overlays/Drawer.d.ts +16 -3
- package/dist/components/overlays/Drawer.d.ts.map +1 -1
- package/dist/components/overlays/Drawer.js +9 -5
- package/dist/components/overlays/Drawer.js.map +1 -1
- package/dist/components/overlays/Modal.d.ts +18 -3
- package/dist/components/overlays/Modal.d.ts.map +1 -1
- package/dist/components/overlays/Modal.js +13 -5
- package/dist/components/overlays/Modal.js.map +1 -1
- package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -1
- package/dist/components/pages/app-shell/AppShell.js +6 -6
- package/dist/components/pages/app-shell/AppShell.js.map +1 -1
- package/dist/components/ui/ConfirmDialog.d.ts +1 -2
- package/dist/components/ui/ConfirmDialog.d.ts.map +1 -1
- package/dist/components/ui/ConfirmDialog.js +10 -4
- package/dist/components/ui/ConfirmDialog.js.map +1 -1
- package/dist/components/ui/DataState.js +2 -2
- package/dist/components/ui/DataState.js.map +1 -1
- package/dist/index.d.ts +71 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +114 -22
- package/dist/index.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/components/action-column.md +33 -7
- package/docs/components/admin-page-configurator.md +24 -5
- package/docs/components/admin-page-header.md +21 -3
- package/docs/components/admin-page-layout-shell.md +18 -4
- package/docs/components/admin-page-layout.md +34 -5
- package/docs/components/app-shell.md +31 -6
- package/docs/components/auto-complete-field.md +60 -0
- package/docs/components/avatar.md +18 -8
- package/docs/components/bar-chart.md +25 -7
- package/docs/components/breadcrumbs.md +15 -2
- package/docs/components/button.md +34 -15
- package/docs/components/card-skeleton.md +9 -3
- package/docs/components/change-password-form.md +23 -4
- package/docs/components/checkbox-field.md +38 -0
- package/docs/components/ckeditor-input.md +40 -8
- package/docs/components/color-picker-input.md +19 -8
- package/docs/components/command-palette.md +23 -2
- package/docs/components/confirm-dialog.md +36 -9
- package/docs/components/data-state.md +31 -6
- package/docs/components/date-field.md +39 -0
- package/docs/components/date-presets.md +19 -5
- package/docs/components/description-list.md +20 -2
- package/docs/components/dirty-form-guard.md +16 -4
- package/docs/components/donut-chart.md +24 -7
- package/docs/components/drawer.md +27 -8
- package/docs/components/empty-state.md +12 -2
- package/docs/components/error-boundary.md +16 -2
- package/docs/components/error-message.md +22 -3
- package/docs/components/field-shell.md +47 -0
- package/docs/components/file-dropzone.md +22 -6
- package/docs/components/filter-pannel.md +34 -7
- package/docs/components/forgot-password-form.md +23 -5
- package/docs/components/form-actions-bar.md +21 -2
- package/docs/components/form-field-render.md +36 -8
- package/docs/components/form-section.md +13 -1
- package/docs/components/form-wizard.md +34 -5
- package/docs/components/hidden-field.md +22 -6
- package/docs/components/index-column.md +25 -5
- package/docs/components/line-chart.md +25 -7
- package/docs/components/loading.md +14 -5
- package/docs/components/login-form.md +31 -6
- package/docs/components/mantis-data-table.md +61 -0
- package/docs/components/map-picker-client.md +29 -8
- package/docs/components/map-picker-osm.md +27 -9
- package/docs/components/map-picker.md +25 -4
- package/docs/components/mask-field.md +31 -0
- package/docs/components/menu-button.md +22 -7
- package/docs/components/modal.md +34 -9
- package/docs/components/multi-select-filter.md +25 -7
- package/docs/components/number-field.md +40 -0
- package/docs/components/otp-input.md +20 -7
- package/docs/components/page-tabs.md +23 -4
- package/docs/components/page-title.md +6 -1
- package/docs/components/paginated-table.md +36 -13
- package/docs/components/pagination.md +20 -7
- package/docs/components/password-input.md +20 -8
- package/docs/components/phone-input.md +17 -7
- package/docs/components/radio-group.md +39 -9
- package/docs/components/range-slider.md +18 -6
- package/docs/components/rating-input.md +19 -8
- package/docs/components/render-field.md +31 -3
- package/docs/components/reset-password-form.md +24 -4
- package/docs/components/rich-text-preview.md +17 -5
- package/docs/components/search-input.md +18 -7
- package/docs/components/select-field.md +55 -0
- package/docs/components/stat-card.md +14 -3
- package/docs/components/status-badge.md +17 -7
- package/docs/components/switch-field.md +32 -0
- package/docs/components/table-filter-field.md +22 -4
- package/docs/components/table-skeleton.md +9 -3
- package/docs/components/table-toolbar.md +18 -5
- package/docs/components/tag.md +16 -7
- package/docs/components/tags-input.md +21 -8
- package/docs/components/text-area.md +18 -8
- package/docs/components/text-field.md +32 -0
- package/docs/components/timeline.md +19 -3
- package/docs/components/toggle-inline-button.md +42 -10
- package/docs/components/upload-files-preview.md +23 -2
- package/docs/components/use-field-controller.md +58 -0
- package/docs/components/user-menu.md +26 -6
- package/docs/contracts/STORYBOOK_IMPLEMENTATION_AND_VOBO.md +92 -0
- package/docs/contracts/STORYBOOK_VOBO_LEDGER.md +195 -0
- package/docs/contracts/component-doc-schema.md +57 -15
- package/docs/contracts/dependency-map.md +50 -52
- package/docs/contracts/field-controller.md +138 -0
- package/docs/contracts/style-imports.md +1 -20
- package/llms.txt +70 -72
- package/package.json +39 -10
- package/dist/components/Forms/AsyncSelect.d.ts +0 -20
- package/dist/components/Forms/AsyncSelect.d.ts.map +0 -1
- package/dist/components/Forms/AsyncSelect.js +0 -77
- package/dist/components/Forms/AsyncSelect.js.map +0 -1
- package/dist/components/Forms/Combobox.d.ts +0 -10
- package/dist/components/Forms/Combobox.d.ts.map +0 -1
- package/dist/components/Forms/Combobox.js +0 -11
- package/dist/components/Forms/Combobox.js.map +0 -1
- package/dist/components/Forms/CurrencyInput.d.ts +0 -12
- package/dist/components/Forms/CurrencyInput.d.ts.map +0 -1
- package/dist/components/Forms/CurrencyInput.js +0 -9
- package/dist/components/Forms/CurrencyInput.js.map +0 -1
- package/dist/components/Forms/DateInput.d.ts +0 -10
- package/dist/components/Forms/DateInput.d.ts.map +0 -1
- package/dist/components/Forms/DateInput.js +0 -11
- package/dist/components/Forms/DateInput.js.map +0 -1
- package/dist/components/Forms/DateRangeInput.d.ts +0 -10
- package/dist/components/Forms/DateRangeInput.d.ts.map +0 -1
- package/dist/components/Forms/DateRangeInput.js +0 -13
- package/dist/components/Forms/DateRangeInput.js.map +0 -1
- package/dist/components/Forms/DropDown.d.ts +0 -10
- package/dist/components/Forms/DropDown.d.ts.map +0 -1
- package/dist/components/Forms/DropDown.js +0 -11
- package/dist/components/Forms/DropDown.js.map +0 -1
- package/dist/components/Forms/MultiSelect.d.ts +0 -10
- package/dist/components/Forms/MultiSelect.d.ts.map +0 -1
- package/dist/components/Forms/MultiSelect.js +0 -13
- package/dist/components/Forms/MultiSelect.js.map +0 -1
- package/dist/components/Forms/NumberInput.d.ts +0 -10
- package/dist/components/Forms/NumberInput.d.ts.map +0 -1
- package/dist/components/Forms/NumberInput.js +0 -16
- package/dist/components/Forms/NumberInput.js.map +0 -1
- package/dist/components/Forms/Select.d.ts +0 -15
- package/dist/components/Forms/Select.d.ts.map +0 -1
- package/dist/components/Forms/Select.js +0 -48
- package/dist/components/Forms/Select.js.map +0 -1
- package/dist/components/Forms/Switch.d.ts +0 -18
- package/dist/components/Forms/Switch.d.ts.map +0 -1
- package/dist/components/Forms/Switch.js +0 -30
- package/dist/components/Forms/Switch.js.map +0 -1
- package/dist/components/Forms/TextInput.d.ts +0 -11
- package/dist/components/Forms/TextInput.d.ts.map +0 -1
- package/dist/components/Forms/TextInput.js +0 -12
- package/dist/components/Forms/TextInput.js.map +0 -1
- package/dist/components/Forms/TimePicker.d.ts +0 -13
- package/dist/components/Forms/TimePicker.d.ts.map +0 -1
- package/dist/components/Forms/TimePicker.js +0 -19
- package/dist/components/Forms/TimePicker.js.map +0 -1
- package/dist/components/Forms/Toggle.d.ts +0 -14
- package/dist/components/Forms/Toggle.d.ts.map +0 -1
- package/dist/components/Forms/Toggle.js +0 -10
- package/dist/components/Forms/Toggle.js.map +0 -1
- package/dist/components/Forms/types.d.ts +0 -9
- package/dist/components/Forms/types.d.ts.map +0 -1
- package/dist/components/Forms/types.js +0 -2
- package/dist/components/Forms/types.js.map +0 -1
- package/docs/components/async-select.md +0 -27
- package/docs/components/combobox.md +0 -19
- package/docs/components/currency-input.md +0 -21
- package/docs/components/date-input.md +0 -21
- package/docs/components/date-range-input.md +0 -20
- package/docs/components/drop-down.md +0 -26
- package/docs/components/multi-select.md +0 -22
- package/docs/components/number-input.md +0 -21
- package/docs/components/select.md +0 -28
- package/docs/components/switch.md +0 -24
- package/docs/components/text-input.md +0 -24
- package/docs/components/time-picker.md +0 -25
- package/docs/components/toggle.md +0 -24
- package/docs/contracts/controller-props.md +0 -28
|
@@ -6,34 +6,56 @@ Which base library each component wraps.
|
|
|
6
6
|
|
|
7
7
|
## PrimeReact wrappers
|
|
8
8
|
|
|
9
|
-
- `ActionColumn`:
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
16
|
-
- `
|
|
17
|
-
- `
|
|
18
|
-
- `
|
|
19
|
-
- `
|
|
20
|
-
- `
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
- `
|
|
24
|
-
- `
|
|
9
|
+
- `ActionColumn`: `@primereact/ui/menu`
|
|
10
|
+
- `AutoCompleteField`: `@primereact/ui/autocomplete`
|
|
11
|
+
- `Avatar`: `@primereact/ui/avatar`
|
|
12
|
+
- `Button`: `@primereact/ui/button`
|
|
13
|
+
- `CardSkeleton`: `@primereact/ui/skeleton`
|
|
14
|
+
- `CheckboxField`: `@primereact/ui/checkbox`
|
|
15
|
+
- `ColorPickerInput`: `@primereact/ui/inputcolor`
|
|
16
|
+
- `DateField`: `@primereact/ui/datepicker`
|
|
17
|
+
- `DatePresets`: `@primereact/ui/button`
|
|
18
|
+
- `Drawer`: `@primereact/ui/drawer`
|
|
19
|
+
- `FormWizard`: `@primereact/ui/stepper`
|
|
20
|
+
- `IndexColumn`: `@primereact/ui/datatable`
|
|
21
|
+
- `Loading`: `@primereact/ui/progressspinner`
|
|
22
|
+
- `MantisDataTable`: `@primereact/ui/datatable`
|
|
23
|
+
- `MaskField`: `@primereact/ui/inputtext`
|
|
24
|
+
- `MenuButton`: `@primereact/ui/menu`
|
|
25
|
+
- `Modal`: `@primereact/ui/dialog`
|
|
26
|
+
- `MultiSelectFilter`: `@primereact/ui/select`
|
|
27
|
+
- `NumberField`: `@primereact/ui/inputnumber`
|
|
28
|
+
- `OtpInput`: `@primereact/ui/inputotp`
|
|
29
|
+
- `PageTabs`: `@primereact/ui/tabs`
|
|
30
|
+
- `PaginatedTable`: `@primereact/ui/datatable`
|
|
31
|
+
- `PasswordInput`: `@primereact/ui/inputpassword`
|
|
32
|
+
- `PhoneInput`: `@primereact/ui/inputtext`
|
|
33
|
+
- `RadioGroup`: `@primereact/ui/radiobutton`
|
|
34
|
+
- `RangeSlider`: `@primereact/ui/slider`
|
|
35
|
+
- `RatingInput`: `@primereact/ui/rating`
|
|
36
|
+
- `SearchInput`: `@primereact/ui/inputtext`
|
|
37
|
+
- `SelectField`: `@primereact/ui/select`
|
|
38
|
+
- `SwitchField`: `@primereact/ui/toggleswitch`
|
|
39
|
+
- `TableSkeleton`: `@primereact/ui/skeleton`
|
|
40
|
+
- `Tag`: `@primereact/ui/tag`
|
|
41
|
+
- `TagsInput`: `@primereact/ui/inputtags`
|
|
42
|
+
- `TextArea`: `@primereact/ui/textarea`
|
|
43
|
+
- `TextField`: `@primereact/ui/inputtext`
|
|
44
|
+
- `Timeline`: `@primereact/ui/timeline`
|
|
45
|
+
- `ToggleInlineButton`: `@primereact/ui/togglebutton`
|
|
46
|
+
- `UserMenu`: `@primereact/ui/menu`
|
|
25
47
|
|
|
26
48
|
## Non-PrimeReact wrappers
|
|
27
49
|
|
|
28
50
|
- `AdminPageLayout`: `React context + custom shell`
|
|
29
|
-
- `
|
|
30
|
-
- `CKEditorInput`:
|
|
51
|
+
- `BarChart`: `chart.js`
|
|
52
|
+
- `CKEditorInput`: `ckeditor`
|
|
53
|
+
- `DonutChart`: `chart.js`
|
|
31
54
|
- `ErrorMessage`: `@hookform/error-message`
|
|
32
|
-
- `
|
|
33
|
-
- `MapPicker`: `
|
|
34
|
-
- `MapPickerClient`: `
|
|
35
|
-
- `
|
|
36
|
-
- `TimePicker`: `react-datepicker`
|
|
55
|
+
- `LineChart`: `chart.js`
|
|
56
|
+
- `MapPicker`: `leaflet`
|
|
57
|
+
- `MapPickerClient`: `leaflet`
|
|
58
|
+
- `MapPickerOSM`: `leaflet`
|
|
37
59
|
|
|
38
60
|
## Custom components
|
|
39
61
|
|
|
@@ -41,56 +63,32 @@ Which base library each component wraps.
|
|
|
41
63
|
- `AdminPageHeader`
|
|
42
64
|
- `AdminPageLayoutShell`
|
|
43
65
|
- `AppShell`
|
|
44
|
-
- `Avatar`
|
|
45
|
-
- `BarChart`
|
|
46
66
|
- `Breadcrumbs`
|
|
47
|
-
- `CardSkeleton`
|
|
48
67
|
- `ChangePasswordForm`
|
|
49
|
-
- `ColorPickerInput`
|
|
50
|
-
- `Combobox`
|
|
51
68
|
- `CommandPalette`
|
|
52
|
-
- `
|
|
69
|
+
- `ConfirmDialog`
|
|
53
70
|
- `DataState`
|
|
54
|
-
- `DatePresets`
|
|
55
|
-
- `DateRangeInput`
|
|
56
71
|
- `DescriptionList`
|
|
57
72
|
- `DirtyFormGuard`
|
|
58
|
-
- `DonutChart`
|
|
59
|
-
- `Drawer`
|
|
60
73
|
- `EmptyState`
|
|
61
74
|
- `ErrorBoundary`
|
|
75
|
+
- `FieldShell`
|
|
62
76
|
- `FileDropzone`
|
|
77
|
+
- `FilterPannel`
|
|
63
78
|
- `ForgotPasswordForm`
|
|
64
79
|
- `FormActionsBar`
|
|
65
80
|
- `FormFieldRender`
|
|
66
81
|
- `FormSection`
|
|
67
|
-
- `
|
|
68
|
-
- `LineChart`
|
|
69
|
-
- `Loading`
|
|
82
|
+
- `HiddenField`
|
|
70
83
|
- `LoginForm`
|
|
71
|
-
- `MapPickerOSM`
|
|
72
|
-
- `Modal`
|
|
73
|
-
- `OtpInput`
|
|
74
|
-
- `PageTabs`
|
|
75
84
|
- `PageTitle`
|
|
76
85
|
- `Pagination`
|
|
77
|
-
- `PasswordInput`
|
|
78
|
-
- `PhoneInput`
|
|
79
|
-
- `RadioGroup`
|
|
80
|
-
- `RangeSlider`
|
|
81
|
-
- `RatingInput`
|
|
82
86
|
- `RenderField`
|
|
83
87
|
- `ResetPasswordForm`
|
|
84
88
|
- `RichTextPreview`
|
|
85
|
-
- `SearchInput`
|
|
86
89
|
- `StatCard`
|
|
87
90
|
- `StatusBadge`
|
|
88
|
-
- `Switch`
|
|
89
91
|
- `TableFilterField`
|
|
90
|
-
- `TableSkeleton`
|
|
91
92
|
- `TableToolbar`
|
|
92
|
-
- `Tag`
|
|
93
|
-
- `TagsInput`
|
|
94
|
-
- `Timeline`
|
|
95
93
|
- `UploadFilesPreview`
|
|
96
|
-
- `
|
|
94
|
+
- `useFieldController`
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Field Controller
|
|
2
|
+
|
|
3
|
+
Shared react-hook-form contract for every form wrapper in `@mantis-core/ui` (PR11). One hook —
|
|
4
|
+
`useFieldController` — wires RHF's `useController` and the field's presentation shell so each
|
|
5
|
+
wrapper only maps `field.value`/`field.onChange` into its own component's shape.
|
|
6
|
+
|
|
7
|
+
Source: `packages/mantis-core-ui/src/components/Forms/useFieldController.ts` and `FieldShell.tsx`.
|
|
8
|
+
|
|
9
|
+
## `FieldControllerProps`
|
|
10
|
+
|
|
11
|
+
Form wrappers extend this directly as their own props — there is **no** `controller={{ ... }}`
|
|
12
|
+
object prop. `TFieldValues`/`TName` are generic over the caller's form so `name` is
|
|
13
|
+
autocompleted/validated against real fields, and `defaultValue`/`rules` are typed by path.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
interface FieldControllerProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
|
|
17
|
+
name: TName;
|
|
18
|
+
control?: Control<TFieldValues>;
|
|
19
|
+
rules?: Omit<RegisterOptions<TFieldValues, TName>, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled'>;
|
|
20
|
+
defaultValue?: FieldPathValue<TFieldValues, TName>;
|
|
21
|
+
shouldUnregister?: boolean;
|
|
22
|
+
disabled?: boolean; // OR-ed with the form's isSubmitting state
|
|
23
|
+
label?: string;
|
|
24
|
+
labelMode?: LabelMode; // 'ifta' | 'float' | 'beside' | 'top' | 'none' — defaults to MantisThemeProvider (ifta)
|
|
25
|
+
floatVariant?: FloatVariant; // 'over' | 'in' | 'on' — only used when labelMode='float'
|
|
26
|
+
addonBefore?: ReactNode;
|
|
27
|
+
addonAfter?: ReactNode;
|
|
28
|
+
variant?: InputVariant; // 'outlined' | 'filled' — defaults to MantisThemeProvider
|
|
29
|
+
size?: FieldSize; // 'small' | 'large' — defaults to MantisThemeProvider
|
|
30
|
+
fluid?: boolean; // full-width override for this field
|
|
31
|
+
required?: boolean; // presentational only — validation is `rules`
|
|
32
|
+
helpText?: string;
|
|
33
|
+
id?: string; // override the generated id used to wire input <-> label <-> aria
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Usage — no `controller` wrapper, props are flat:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
<TextField name='email' control={control} label='Email' rules={{ required: 'Required' }} />
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### `ChoiceFieldControllerProps` (bucket B: toggles, groups, ranges)
|
|
44
|
+
|
|
45
|
+
For non-text-box controls (checkboxes, radio groups, rating, range), text-box-only affordances are
|
|
46
|
+
removed **at the type level** so passing them fails to compile, not just render wrong:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
type ChoiceFieldControllerProps<TFieldValues, TName> = Omit<
|
|
50
|
+
FieldControllerProps<TFieldValues, TName>,
|
|
51
|
+
'labelMode' | 'floatVariant' | 'addonBefore' | 'addonAfter' | 'variant'
|
|
52
|
+
> & {
|
|
53
|
+
labelMode?: 'beside' | 'top' | 'none'; // 'beside' default for toggles, 'top' for groups
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
A `<CheckboxField labelMode='float'>` or an addon on a `<RatingInput>` does not compile — `ifta` /
|
|
58
|
+
`float` / `InputGroup` / `variant` don't apply to these controls.
|
|
59
|
+
|
|
60
|
+
## `FieldShell` anatomy
|
|
61
|
+
|
|
62
|
+
`FieldShell` owns label + addon + help + error composition; every wrapper supplies only its input
|
|
63
|
+
node as `children`.
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
interface FieldShellProps {
|
|
67
|
+
id: string;
|
|
68
|
+
label?: string;
|
|
69
|
+
required?: boolean;
|
|
70
|
+
helpText?: string;
|
|
71
|
+
errorMessage?: string;
|
|
72
|
+
labelMode?: LabelMode;
|
|
73
|
+
floatVariant?: FloatVariant;
|
|
74
|
+
addonBefore?: ReactNode;
|
|
75
|
+
addonAfter?: ReactNode;
|
|
76
|
+
children: ReactNode;
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- **Label modes** (`LabelMode = 'ifta' | 'float' | 'beside' | 'top' | 'none'`):
|
|
81
|
+
- `ifta` — wraps input + label in PR11 `IftaLabel`.
|
|
82
|
+
- `float` — wraps input + label in PR11 `FloatLabel` (position per `floatVariant`: `over` / `in` / `on`).
|
|
83
|
+
- `beside` — label renders next to the control (row layout).
|
|
84
|
+
- `top` — label renders above the control.
|
|
85
|
+
- `none` — no label rendered even if `label` text is provided elsewhere.
|
|
86
|
+
- **Addons** — `addonBefore`/`addonAfter` wrap the (already labeled) control in PR11's
|
|
87
|
+
`InputGroup.Root`, addons outer, labeled control inner.
|
|
88
|
+
- **Fluid** — resolved from the `useFieldConfig()` context (not a per-shell prop); when on, wraps
|
|
89
|
+
the composed control in PR11's `<Fluid>`.
|
|
90
|
+
- **Help/error** — rendered below the control as `<small id="${id}-help">` /
|
|
91
|
+
`<small id="${id}-error">`. Both render independently — if `helpText` and `errorMessage` are both
|
|
92
|
+
truthy, both `<small>` elements show at once; there is no suppression. The only precedence is in
|
|
93
|
+
`aria-describedby`, which prefers the error (see Aria wiring below).
|
|
94
|
+
- **Required marker** — a presentational ` *` appended to the label, `aria-hidden`.
|
|
95
|
+
|
|
96
|
+
### Aria wiring
|
|
97
|
+
|
|
98
|
+
`useFieldController` owns aria, not `FieldShell`: PR11's `invalid` prop drives styling only, it does
|
|
99
|
+
**not** emit `aria-invalid`. The hook returns an `aria` object —
|
|
100
|
+
`{ 'aria-invalid': fieldState.invalid || undefined, 'aria-describedby': errorId | helpId | undefined }`
|
|
101
|
+
(error id wins over help id when both are present) — spread onto the actual input/trigger element.
|
|
102
|
+
|
|
103
|
+
## `useFieldController` return shape
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
const f = useFieldController({ name, control, rules, defaultValue, shouldUnregister, disabled, helpText, id, variant, size, fluid });
|
|
107
|
+
// f.field, f.fieldState, f.formState — raw RHF controller result
|
|
108
|
+
// f.id, f.errorId, f.helpId — stable ids for FieldShell + aria
|
|
109
|
+
// f.variant, f.size, f.fluid — resolved (prop ?? MantisThemeProvider config)
|
|
110
|
+
// f.invalid — fieldState.invalid
|
|
111
|
+
// f.disabled — disabled || formState.isSubmitting
|
|
112
|
+
// f.errorMessage — fieldState.error?.message
|
|
113
|
+
// f.aria — { 'aria-invalid', 'aria-describedby' }
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## How to build a new form wrapper
|
|
117
|
+
|
|
118
|
+
Canonical pattern (from `TextField.tsx`):
|
|
119
|
+
|
|
120
|
+
1. Accept `FieldControllerProps<TFieldValues, TName>` (or `ChoiceFieldControllerProps` for bucket B)
|
|
121
|
+
intersected with the underlying PR11 primitive's own extra props (Omit the primitive's
|
|
122
|
+
controlled/state props — `value`, `onChange`, `invalid`, `disabled`, etc. — since the hook owns
|
|
123
|
+
those).
|
|
124
|
+
2. Destructure the controller/presentation props out of `props`; call `useFieldController` with
|
|
125
|
+
`name, control, rules, defaultValue, shouldUnregister, disabled, helpText, id, variant, size, fluid`.
|
|
126
|
+
3. Render `<FieldShell id={f.id} label={label} labelMode={labelMode} floatVariant={floatVariant}
|
|
127
|
+
addonBefore={addonBefore} addonAfter={addonAfter} required={required} helpText={helpText}
|
|
128
|
+
errorMessage={f.errorMessage}>` around the actual PR11 input.
|
|
129
|
+
4. Wire the PR11 primitive to `f.field` (`name`, `value`, `onChange`/`onValueChange`, `onBlur`,
|
|
130
|
+
`ref`) and `f.id` (`id`), plus `invalid={f.invalid}`, `disabled={f.disabled}`,
|
|
131
|
+
`variant={f.variant}`, `size={f.size}`, `fluid={f.fluid}`, and spread `{...f.aria}` onto the
|
|
132
|
+
element that owns focus (native input, or the trigger button for portal-based compounds like
|
|
133
|
+
`Select`).
|
|
134
|
+
5. Spread any remaining `...rest` primitive props straight onto the PR11 element as an escape hatch.
|
|
135
|
+
|
|
136
|
+
Portal-based compounds (e.g. `Select`) have no native blur — call `f.field.onBlur()` from the
|
|
137
|
+
compound's `onOpenChange` (fired on close) instead, and put id/aria on the trigger element rather
|
|
138
|
+
than a bare `<input>`.
|
|
@@ -7,46 +7,27 @@
|
|
|
7
7
|
## All partials
|
|
8
8
|
|
|
9
9
|
```scss
|
|
10
|
-
@use "@mantis-core/styles/scss/buttons.scss";
|
|
11
10
|
@use "@mantis-core/styles/scss/ckeditor.scss";
|
|
12
11
|
@use "@mantis-core/styles/scss/confirm-dialog.scss";
|
|
13
12
|
@use "@mantis-core/styles/scss/data-state.scss";
|
|
14
13
|
@use "@mantis-core/styles/scss/file-dropzone.scss";
|
|
15
14
|
@use "@mantis-core/styles/scss/form-actions.scss";
|
|
16
|
-
@use "@mantis-core/styles/scss/inputs.scss";
|
|
17
15
|
@use "@mantis-core/styles/scss/rich-text-preview.scss";
|
|
18
|
-
@use "@mantis-core/styles/scss/select-button.scss";
|
|
19
|
-
@use "@mantis-core/styles/scss/select.scss";
|
|
20
16
|
@use "@mantis-core/styles/scss/status-badge.scss";
|
|
21
|
-
@use "@mantis-core/styles/scss/switch.scss";
|
|
22
17
|
@use "@mantis-core/styles/scss/table.scss";
|
|
23
18
|
```
|
|
24
19
|
|
|
25
20
|
## Per component
|
|
26
21
|
|
|
27
|
-
- `AsyncSelect`: `scss/select.scss`
|
|
28
|
-
- `Button`: `scss/buttons.scss`
|
|
29
22
|
- `CKEditorInput`: `scss/ckeditor.scss`
|
|
30
23
|
- `ConfirmDialog`: `scss/confirm-dialog.scss`
|
|
31
|
-
- `CurrencyInput`: `scss/inputs.scss`
|
|
32
24
|
- `DataState`: `scss/data-state.scss`
|
|
33
|
-
- `DateInput`: `scss/inputs.scss`
|
|
34
|
-
- `DateRangeInput`: `scss/inputs.scss`
|
|
35
|
-
- `DropDown`: `scss/inputs.scss`
|
|
36
25
|
- `FileDropzone`: `scss/file-dropzone.scss`
|
|
37
26
|
- `FormActionsBar`: `scss/form-actions.scss`
|
|
38
|
-
- `
|
|
39
|
-
- `NumberInput`: `scss/inputs.scss`
|
|
27
|
+
- `MantisDataTable`: `scss/table.scss`
|
|
40
28
|
- `PaginatedTable`: `scss/table.scss`
|
|
41
|
-
- `PasswordInput`: `scss/inputs.scss`
|
|
42
29
|
- `RichTextPreview`: `scss/rich-text-preview.scss`
|
|
43
|
-
- `Select`: `scss/select.scss`
|
|
44
30
|
- `StatusBadge`: `scss/status-badge.scss`
|
|
45
|
-
- `Switch`: `scss/switch.scss`
|
|
46
|
-
- `TextArea`: `scss/inputs.scss`
|
|
47
|
-
- `TextInput`: `scss/inputs.scss`
|
|
48
|
-
- `TimePicker`: `scss/inputs.scss`
|
|
49
|
-
- `ToggleInlineButton`: `scss/select-button.scss`
|
|
50
31
|
|
|
51
32
|
## Notes
|
|
52
33
|
|
package/llms.txt
CHANGED
|
@@ -3,104 +3,102 @@
|
|
|
3
3
|
# Each line: Name — whenToUse — import — doc
|
|
4
4
|
|
|
5
5
|
## forms
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- ErrorMessage — Displays a validation error string; use standalone when not using FormFieldRender. — `@mantis-core/ui/components/Forms/ErrorMessage` — docs/components/error-message.md
|
|
17
|
-
- FileDropzone — Drag-and-drop file input with validation (type, size, count); supports react-hook-form mode and plain controlled mode. — `@mantis-core/ui/components/Forms/FileDropzone` — docs/components/file-dropzone.md
|
|
6
|
+
- AutoCompleteField — Async (or sync) autocomplete text field wired to react-hook-form via `loadOptions`, with optional free-text `creatable` mode. Absorbs the former AsyncSelect + Combobox. — `@mantis-core/ui/components/Forms/AutoCompleteField` — docs/components/auto-complete-field.md
|
|
7
|
+
- CheckboxField — Single boolean checkbox wired to react-hook-form. — `@mantis-core/ui/components/Forms/CheckboxField` — docs/components/checkbox-field.md
|
|
8
|
+
- CKEditorInput — Rich-text WYSIWYG editor (CKEditor 5) wired to react-hook-form; emits an HTML string. — `@mantis-core/ui/components/Forms/CKEditorInput` — docs/components/ckeditor-input.md
|
|
9
|
+
- ColorPickerInput — RHF-bound color picker over PR11's compound InputColor (area + sliders + swatch + eyedropper + hex input); value is a hex string. — `@mantis-core/ui/components/Forms/ColorPickerInput` — docs/components/color-picker-input.md
|
|
10
|
+
- DateField — Single date, date-range, or time-only picker wired to react-hook-form; one wrapper covers all three via `selectionMode`/`timeOnly`/`showTime`. — `@mantis-core/ui/components/Forms/DateField` — docs/components/date-field.md
|
|
11
|
+
- DatePresets — Row of quick-range preset buttons (Today, 7 days, 30 days, This month) that fire onChange with a [Date, Date] tuple. Not RHF-bound — pair with a `DateField` in `selectionMode="range"`. — `@mantis-core/ui/components/Forms/DatePresets` — docs/components/date-presets.md
|
|
12
|
+
- DirtyFormGuard — Blocks tab-close/reload when a react-hook-form has unsaved changes; render it declaratively, or use the underlying useDirtyFormGuard hook to also guard programmatic navigation. — `@mantis-core/ui/components/Forms/DirtyFormGuard` — docs/components/dirty-form-guard.md
|
|
13
|
+
- ErrorMessage — Standalone validation-error text for one named react-hook-form field, read from form context; use when composing a custom layout instead of FormFieldRender. — `@mantis-core/ui/components/Forms/ErrorMessage` — docs/components/error-message.md
|
|
14
|
+
- FieldShell — Presentation primitive for label + addon + help/error composition around one input; every FieldControllerProps-based field wrapper renders it internally — reach for it directly only when hand-building a new wrapper (see field-controller.md). — `@mantis-core/ui/components/Forms/FieldShell` — docs/components/field-shell.md
|
|
15
|
+
- FileDropzone — Drag-and-drop file input with validation (type, size, count); supports a react-hook-form binding or plain controlled value/onChange. — `@mantis-core/ui/components/Forms/FileDropzone` — docs/components/file-dropzone.md
|
|
18
16
|
- FormActionsBar — Sticky-capable action bar with primary/secondary buttons and optional left/right slots for form pages. — `@mantis-core/ui/components/Forms/FormActionsBar` — docs/components/form-actions-bar.md
|
|
19
|
-
- FormFieldRender —
|
|
20
|
-
- FormWizard — Multi-step form navigator with step indicator and per-step validation; must render inside a FormProvider, parent owns the <form onSubmit>. — `@mantis-core/ui/components/Forms/FormWizard` — docs/components/form-wizard.md
|
|
21
|
-
- HiddenField — Registers a
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
- OtpInput —
|
|
25
|
-
- PasswordInput —
|
|
26
|
-
- PhoneInput —
|
|
27
|
-
- RadioGroup —
|
|
28
|
-
- RangeSlider —
|
|
29
|
-
- RatingInput —
|
|
30
|
-
- RenderField — Low-level escape hatch
|
|
31
|
-
- SearchInput —
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
- TagsInput —
|
|
17
|
+
- FormFieldRender — Composes a label, a render-prop input slot, and an inline ErrorMessage for one field; use to wrap a custom/non-Mantis input with the same label+error layout as the field wrappers. — `@mantis-core/ui/components/Forms/FormFieldRender` — docs/components/form-field-render.md
|
|
18
|
+
- FormWizard — Multi-step form navigator with a PR11 Stepper step indicator and per-step field validation; must render inside a FormProvider, parent owns the <form onSubmit>. — `@mantis-core/ui/components/Forms/FormWizard` — docs/components/form-wizard.md
|
|
19
|
+
- HiddenField — Registers a react-hook-form value with no visible UI. — `@mantis-core/ui/components/Forms/HiddenField` — docs/components/hidden-field.md
|
|
20
|
+
- MaskField — Generic masked text input (digit/letter/alphanumeric tokens) wired to react-hook-form; value is the masked display string. — `@mantis-core/ui/components/Forms/MaskField` — docs/components/mask-field.md
|
|
21
|
+
- NumberField — Numeric input (integer, decimal, or currency) wired to react-hook-form. — `@mantis-core/ui/components/Forms/NumberField` — docs/components/number-field.md
|
|
22
|
+
- OtpInput — RHF-bound one-time-password input over PR11's compound InputOtp; renders `length` segmented boxes. — `@mantis-core/ui/components/Forms/OtpInput` — docs/components/otp-input.md
|
|
23
|
+
- PasswordInput — RHF-bound password field over PR11 InputPassword with a native show/hide toggle and a lightweight strength meter. — `@mantis-core/ui/components/Forms/PasswordInput` — docs/components/password-input.md
|
|
24
|
+
- PhoneInput — Phone-number preset of MaskField; defaults to a US-style (999) 999-9999 mask. — `@mantis-core/ui/components/Forms/PhoneInput` — docs/components/phone-input.md
|
|
25
|
+
- RadioGroup — Single-choice radio group over PR11's RadioButtonGroup; value is the selected option's value. — `@mantis-core/ui/components/Forms/RadioGroup` — docs/components/radio-group.md
|
|
26
|
+
- RangeSlider — RHF-bound slider over PR11's compound Slider; single-handle by default, dual-handle range when the field holds a [number, number] tuple. — `@mantis-core/ui/components/Forms/RangeSlider` — docs/components/range-slider.md
|
|
27
|
+
- RatingInput — RHF-bound star rating over PR11's compound Rating; stores a numeric value. — `@mantis-core/ui/components/Forms/RatingInput` — docs/components/rating-input.md
|
|
28
|
+
- RenderField — Low-level escape hatch wrapping react-hook-form's Controller via a render prop; use to wire any custom or third-party input without building a full FieldControllerProps wrapper. — `@mantis-core/ui/components/Forms/RenderField` — docs/components/render-field.md
|
|
29
|
+
- SearchInput — RHF-bound search box over PR11 InputText with a search icon and a debounced onSearch callback; ideal for live table/list filtering. — `@mantis-core/ui/components/Forms/SearchInput` — docs/components/search-input.md
|
|
30
|
+
- SelectField — Single- or multi-select dropdown wired to react-hook-form over PR11's portal-based Select; pass `multiple` for array-value mode. Absorbs the former Select/DropDown/MultiSelect. — `@mantis-core/ui/components/Forms/SelectField` — docs/components/select-field.md
|
|
31
|
+
- SwitchField — Boolean on/off toggle wired to react-hook-form. — `@mantis-core/ui/components/Forms/SwitchField` — docs/components/switch-field.md
|
|
32
|
+
- TagsInput — RHF-bound tag/chip input over PR11's compound InputTags; stores value as string[]. — `@mantis-core/ui/components/Forms/TagsInput` — docs/components/tags-input.md
|
|
35
33
|
- TextArea — Multi-line text field wired to react-hook-form. — `@mantis-core/ui/components/Forms/TextArea` — docs/components/text-area.md
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
- UploadFilesPreview — Drag-and-drop upload zone with live preview grid, drag-to-reorder, and async upload queue; designed for image galleries. — `@mantis-core/ui/components/Forms/UploadFilesPreview` — docs/components/upload-files-preview.md
|
|
34
|
+
- TextField — Single-line text field wired to react-hook-form. — `@mantis-core/ui/components/Forms/TextField` — docs/components/text-field.md
|
|
35
|
+
- ToggleInlineButton — Segmented single- or multi-choice control over PR11's ToggleButtonGroup; pass `multiple` for array-value mode. — `@mantis-core/ui/components/Forms/ToggleInlineButton` — docs/components/toggle-inline-button.md
|
|
36
|
+
- UploadFilesPreview — Drag-and-drop upload zone with live preview grid, drag-to-reorder, and async upload queue; designed for image galleries, not react-hook-form bound. — `@mantis-core/ui/components/Forms/UploadFilesPreview` — docs/components/upload-files-preview.md
|
|
37
|
+
- useFieldController — Hook every RHF field wrapper calls internally to wire useController + a stable id/aria/disabled/error-message resolution; call it directly only when hand-building a new field wrapper (see field-controller.md). — `@mantis-core/ui/components/Forms/useFieldController` — docs/components/use-field-controller.md
|
|
41
38
|
|
|
42
39
|
## tables
|
|
43
|
-
- ActionColumn — Factory
|
|
44
|
-
- FilterPannel — Slide-in
|
|
45
|
-
- IndexColumn —
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
40
|
+
- ActionColumn — Factory that returns a row-action `ColumnDef` for MantisDataTable/PaginatedTable's `columns` array; each row's `body` renders a `MenuButton` populated by `items(row)`. — `@mantis-core/ui/components/Tables/ActionColumn` — docs/components/action-column.md
|
|
41
|
+
- FilterPannel — Slide-in filter sidebar for tables; wraps RHF-bound filter fields in their own `FormProvider` and calls `onApplyFilter` with the cleaned form data. — `@mantis-core/ui/components/Tables/FilterPannel` — docs/components/filter-pannel.md
|
|
42
|
+
- IndexColumn — Factory that returns a 1-based row-number `ColumnDef` for MantisDataTable/PaginatedTable's `columns` array. — `@mantis-core/ui/components/Tables/IndexColumn` — docs/components/index-column.md
|
|
43
|
+
- MantisDataTable — The 90% shortcut over PR11's compound DataTable — one flat `columns: ColumnDef[]` array renders the whole TableContainer→Table→THead→TBody→EmptyTBody tree with striped rows + gridlines. Default table for any grid; drop to `PaginatedTable` for pagination + index/action columns baked in. — `@mantis-core/ui/components/Tables/MantisDataTable` — docs/components/mantis-data-table.md
|
|
44
|
+
- MenuButton — Row-action overlay menu — a trigger button that opens a popup list of actions; used inside `actionColumn`/table row cells, or standalone. — `@mantis-core/ui/components/Tables/MenuButton` — docs/components/menu-button.md
|
|
45
|
+
- MultiSelectFilter — Multi-value header filter over the themed PR11 `Select` (multiple mode) — drops into a `ColumnDef`'s `filterElement` escape hatch when a column needs array-valued filtering instead of the scalar `filters` map. — `@mantis-core/ui/components/Tables/filters/MultiSelectFilter` — docs/components/multi-select-filter.md
|
|
46
|
+
- PaginatedTable — Thin preset over MantisDataTable with `paginator` on by default plus optional index/action columns — the default table shell for admin list pages. — `@mantis-core/ui/components/Tables/PaginatedTable` — docs/components/paginated-table.md
|
|
47
|
+
- TableFilterField — Wraps a form control with a `<label>` inside a `FilterPannel`, providing consistent layout. — `@mantis-core/ui/components/table-filter-field` — docs/components/table-filter-field.md
|
|
48
|
+
- TableToolbar — Header bar above a table showing title, record-count meta, and an action buttons slot. — `@mantis-core/ui/components/table-toolbar` — docs/components/table-toolbar.md
|
|
51
49
|
|
|
52
50
|
## pages
|
|
53
|
-
- AdminPageConfigurator — Sets the page title, description, and
|
|
54
|
-
- AdminPageHeader — Gradient page header with title, optional description, breadcrumbs, and right-side actions slot; rendered by AdminPageLayoutShell — avoid rendering directly inside feature views. — `@mantis-core/ui/components/pages/AdminPageHeader` — docs/components/admin-page-header.md
|
|
55
|
-
- AdminPageLayoutShell — Root layout shell for admin pages; renders AdminPageHeader from context set by AdminPageConfigurator and provides the
|
|
51
|
+
- AdminPageConfigurator — Sets the page title, description, breadcrumbs, and actions in the admin layout shell via context; wrap each page's content with this. — `@mantis-core/ui/components/pages/admin-layout/AdminPageConfigurator` — docs/components/admin-page-configurator.md
|
|
52
|
+
- AdminPageHeader — Gradient page header with title, optional description, breadcrumbs, and a right-side actions slot; rendered by AdminPageLayoutShell — avoid rendering directly inside feature views. — `@mantis-core/ui/components/pages/AdminPageHeader` — docs/components/admin-page-header.md
|
|
53
|
+
- AdminPageLayoutShell — Root layout shell for admin pages; renders AdminPageHeader from context set by AdminPageConfigurator and provides the page grid/max-width. — `@mantis-core/ui/components/pages/admin-layout/AdminPageLayoutShell` — docs/components/admin-page-layout-shell.md
|
|
56
54
|
- AppShell — Full-page app shell with responsive sidebar nav, topbar, and mobile drawer; use as the root layout wrapper for authenticated pages. — `@mantis-core/ui/components/pages/app-shell/AppShell` — docs/components/app-shell.md
|
|
57
55
|
- Breadcrumbs — Standalone breadcrumb nav; renders nothing when items is empty. — `@mantis-core/ui/components/pages/app-shell/Breadcrumbs` — docs/components/breadcrumbs.md
|
|
58
56
|
- FormSection — Bordered card section with a header (title + description + icon) and a padded body; groups related form fields. — `@mantis-core/ui/components/pages/FormSection` — docs/components/form-section.md
|
|
59
57
|
- PageTitle — Centered display-font heading for public-facing pages. — `@mantis-core/ui/components/pages/PageTitle` — docs/components/page-title.md
|
|
60
58
|
|
|
61
59
|
## maps
|
|
62
|
-
- MapPicker —
|
|
63
|
-
- MapPickerClient — Client-only
|
|
64
|
-
- MapPickerOSM — Script-injected Leaflet map (no SSR bundle cost) with
|
|
60
|
+
- MapPicker — SSR-safe entry point for the Leaflet lat/lng picker; lazy-loads MapPickerClient via next/dynamic (ssr:false). — `@mantis-core/ui/components/Maps/MapPicker` — docs/components/map-picker.md
|
|
61
|
+
- MapPickerClient — Client-only react-leaflet map (click-to-pick marker); the piece MapPicker lazy-loads. Use directly only if you already own the ssr:false boundary. — `@mantis-core/ui/components/Maps/MapPickerClient` — docs/components/map-picker-client.md
|
|
62
|
+
- MapPickerOSM — Script-injected Leaflet map (no react-leaflet/SSR bundle cost) with a draggable marker and an explicit "save location" button. — `@mantis-core/ui/components/Maps/MapPickerOSM` — docs/components/map-picker-osm.md
|
|
65
63
|
|
|
66
64
|
## overlays
|
|
67
|
-
- Drawer —
|
|
68
|
-
- Modal —
|
|
65
|
+
- Drawer — Controlled slide-in side panel; composes PR11's headless Drawer compound (Root/Portal/Backdrop/Popup/Header/Content/Footer — no Positioner, unlike Dialog) behind a simple `open`/`side`/`title`/`footer` API. — `@mantis-core/ui/components/overlays/Drawer` — docs/components/drawer.md
|
|
66
|
+
- Modal — Controlled dialog/modal; composes PR11's headless Dialog compound (Root/Portal/Backdrop/Positioner/Popup/Header/Content/Footer) behind a simple `open`/`title`/`footer` API. — `@mantis-core/ui/components/overlays/Modal` — docs/components/modal.md
|
|
69
67
|
|
|
70
68
|
## navigation
|
|
71
|
-
- CommandPalette — Keyboard-driven command search overlay (Ctrl+K); pair with useCommandPalette hook to wire the shortcut. — `@mantis-core/ui/components/navigation/CommandPalette` — docs/components/command-palette.md
|
|
72
|
-
- PageTabs —
|
|
69
|
+
- CommandPalette — Keyboard-driven command search overlay (Ctrl/Cmd+K); pair with the `useCommandPalette` hook to wire the shortcut. — `@mantis-core/ui/components/navigation/CommandPalette` — docs/components/command-palette.md
|
|
70
|
+
- PageTabs — Page-level navigation tab bar (no panels) over PR11's Tabs compound; each tab navigates via `href` (Next.js router) or runs a `command`. Active tab is derived from the current pathname. — `@mantis-core/ui/components/navigation/PageTabs` — docs/components/page-tabs.md
|
|
73
71
|
|
|
74
72
|
## data
|
|
75
73
|
- DescriptionList — Grid-based label/value list for detail views; supports 1, 2, or 3 columns. — `@mantis-core/ui/components/data/DescriptionList` — docs/components/description-list.md
|
|
76
74
|
- StatCard — KPI card showing a metric label, large value, optional icon, trend indicator, and footer. — `@mantis-core/ui/components/data/StatCard` — docs/components/stat-card.md
|
|
77
|
-
- Timeline — Vertical event timeline backed by
|
|
75
|
+
- Timeline — Vertical event timeline backed by the PR11 Timeline compound; items render a title, description, date, and optional icon/color. — `@mantis-core/ui/components/data/Timeline` — docs/components/timeline.md
|
|
78
76
|
|
|
79
77
|
## feedback
|
|
80
|
-
- Avatar — User avatar that
|
|
81
|
-
- CardSkeleton — Animated skeleton for card
|
|
82
|
-
- ConfirmDialog —
|
|
83
|
-
- DataState —
|
|
78
|
+
- Avatar — User avatar that renders an image or auto-derived initials; composes the PR11 headless Avatar (Root/Image/Fallback). — `@mantis-core/ui/components/feedback/Avatar` — docs/components/avatar.md
|
|
79
|
+
- CardSkeleton — Animated skeleton for card-grid layouts while data loads; composes the PR11 Skeleton primitive. — `@mantis-core/ui/components/feedback/CardSkeleton` — docs/components/card-skeleton.md
|
|
80
|
+
- ConfirmDialog — Confirm/cancel dialog for destructive or non-trivial actions; composed from the migrated Modal + Button. — `@mantis-core/ui/components/ui/ConfirmDialog` — docs/components/confirm-dialog.md
|
|
81
|
+
- DataState — Loading/empty/error/ready placeholder for data-fetching views; renders `children` unchanged when `status="ready"`, otherwise a titled state panel. — `@mantis-core/ui/components/ui/DataState` — docs/components/data-state.md
|
|
84
82
|
- EmptyState — Centered empty-state placeholder with icon, title, optional description, and action button. — `@mantis-core/ui/components/feedback/EmptyState` — docs/components/empty-state.md
|
|
85
|
-
- ErrorBoundary — React error boundary; renders fallback UI on uncaught errors
|
|
86
|
-
- Loading — Full-screen loading overlay with
|
|
87
|
-
- Pagination — Standalone
|
|
88
|
-
- RichTextPreview — Safely renders a CKEditor HTML string with
|
|
89
|
-
- StatusBadge — Colored pill badge to communicate a status
|
|
90
|
-
- TableSkeleton — Animated skeleton placeholder that mimics a table grid while data loads. — `@mantis-core/ui/components/feedback/TableSkeleton` — docs/components/table-skeleton.md
|
|
91
|
-
- Tag — Styled label chip
|
|
83
|
+
- ErrorBoundary — React class error boundary; renders fallback UI on uncaught render errors in its children. — `@mantis-core/ui/components/feedback/ErrorBoundary` — docs/components/error-boundary.md
|
|
84
|
+
- Loading — Full-screen loading overlay with a themed spinner; renders children unchanged when not loading. — `@mantis-core/ui/components/Loaders/Loading` — docs/components/loading.md
|
|
85
|
+
- Pagination — Standalone page-number control (custom Tailwind markup, not PrimeReact Paginator); use when not relying on PaginatedTable's built-in paginator. — `@mantis-core/ui/components/ui/Pagination` — docs/components/pagination.md
|
|
86
|
+
- RichTextPreview — Safely renders a CKEditor HTML string (sanitized by default) with CKEditor content styles applied. — `@mantis-core/ui/components/ui/RichTextPreview` — docs/components/rich-text-preview.md
|
|
87
|
+
- StatusBadge — Colored pill badge to communicate a status with semantic tone (e.g. a lead or property status). — `@mantis-core/ui/components/ui/StatusBadge` — docs/components/status-badge.md
|
|
88
|
+
- TableSkeleton — Animated skeleton placeholder that mimics a table grid while data loads; composes the PR11 Skeleton primitive. — `@mantis-core/ui/components/feedback/TableSkeleton` — docs/components/table-skeleton.md
|
|
89
|
+
- Tag — Styled label chip for status labels, categories, or counts; wraps the PR11 Tag primitive. — `@mantis-core/ui/components/feedback/Tag` — docs/components/tag.md
|
|
92
90
|
|
|
93
91
|
## auth
|
|
94
|
-
- ChangePasswordForm — Current + new + confirm password form for authenticated
|
|
95
|
-
- ForgotPasswordForm — Email-only form to trigger password
|
|
96
|
-
- LoginForm — Self-contained login form
|
|
97
|
-
- ResetPasswordForm — New password + confirm form; caller owns token validation and API call. — `@mantis-core/ui/components/auth/ResetPasswordForm` — docs/components/reset-password-form.md
|
|
98
|
-
- UserMenu — Topbar
|
|
92
|
+
- ChangePasswordForm — Current + new + confirm password form for an authenticated user changing their own password. — `@mantis-core/ui/components/auth/ChangePasswordForm` — docs/components/change-password-form.md
|
|
93
|
+
- ForgotPasswordForm — Email-only form to trigger a password-reset email; caller owns the actual reset request. — `@mantis-core/ui/components/auth/ForgotPasswordForm` — docs/components/forgot-password-form.md
|
|
94
|
+
- LoginForm — Self-contained login form (identifier + password) built on migrated TextField/PasswordInput/Button; pass onSubmit to wire signIn/Supabase from the app layer. — `@mantis-core/ui/components/auth/LoginForm` — docs/components/login-form.md
|
|
95
|
+
- ResetPasswordForm — New password + confirm-password form for a reset-token flow; caller owns token validation and the API call. — `@mantis-core/ui/components/auth/ResetPasswordForm` — docs/components/reset-password-form.md
|
|
96
|
+
- UserMenu — Topbar avatar-triggered dropdown (custom nav items + sign-out); no auth-lib coupling. — `@mantis-core/ui/components/auth/UserMenu` — docs/components/user-menu.md
|
|
99
97
|
|
|
100
98
|
## buttons
|
|
101
|
-
- Button — Primary action button; wraps
|
|
99
|
+
- Button — Primary action button; wraps PR11's `@primereact/ui/button`, mapping the Mantis semantic `variant` to PR11 `severity` and restoring the `label`/`icon`/`loading` affordances PR11 dropped. Supports `href` for Next.js client navigation. — `@mantis-core/ui/components/Buttons/Button` — docs/components/button.md
|
|
102
100
|
|
|
103
101
|
## charts
|
|
104
|
-
- BarChart — Categorical comparisons rendered as a bar chart
|
|
105
|
-
- DonutChart — Part-to-whole breakdown rendered as a doughnut chart. — `@mantis-core/ui/components/charts/DonutChart` — docs/components/donut-chart.md
|
|
106
|
-
- LineChart — Time-series
|
|
102
|
+
- BarChart — Categorical comparisons rendered as a bar chart, zero-config over chart.js defaults. — `@mantis-core/ui/components/charts/BarChart` — docs/components/bar-chart.md
|
|
103
|
+
- DonutChart — Part-to-whole breakdown rendered as a doughnut chart, zero-config over chart.js defaults. — `@mantis-core/ui/components/charts/DonutChart` — docs/components/donut-chart.md
|
|
104
|
+
- LineChart — Time-series/trend data rendered as a line chart, zero-config over chart.js defaults. — `@mantis-core/ui/components/charts/LineChart` — docs/components/line-chart.md
|