@mantis-core/ui 0.4.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 +113 -15
- 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 +39 -12
- package/docs/components/admin-page-configurator.md +42 -0
- package/docs/components/admin-page-header.md +32 -16
- package/docs/components/admin-page-layout-shell.md +36 -0
- package/docs/components/admin-page-layout.md +41 -21
- package/docs/components/app-shell.md +45 -0
- package/docs/components/auto-complete-field.md +60 -0
- package/docs/components/avatar.md +29 -0
- package/docs/components/bar-chart.md +39 -0
- package/docs/components/breadcrumbs.md +28 -0
- package/docs/components/button.md +41 -17
- package/docs/components/card-skeleton.md +21 -0
- package/docs/components/change-password-form.md +36 -0
- package/docs/components/checkbox-field.md +38 -0
- package/docs/components/ckeditor-input.md +47 -16
- package/docs/components/color-picker-input.md +30 -0
- package/docs/components/command-palette.md +38 -0
- package/docs/components/confirm-dialog.md +45 -16
- package/docs/components/data-state.md +39 -14
- package/docs/components/date-field.md +39 -0
- package/docs/components/date-presets.md +32 -0
- package/docs/components/description-list.md +34 -0
- package/docs/components/dirty-form-guard.md +28 -24
- package/docs/components/donut-chart.md +38 -0
- package/docs/components/drawer.md +38 -0
- package/docs/components/empty-state.md +28 -0
- package/docs/components/error-boundary.md +31 -0
- package/docs/components/error-message.md +29 -8
- package/docs/components/field-shell.md +47 -0
- package/docs/components/file-dropzone.md +45 -17
- package/docs/components/filter-pannel.md +40 -15
- package/docs/components/forgot-password-form.md +36 -0
- package/docs/components/form-actions-bar.md +47 -17
- package/docs/components/form-field-render.md +43 -15
- package/docs/components/form-section.md +26 -10
- package/docs/components/form-wizard.md +47 -0
- package/docs/components/hidden-field.md +27 -14
- package/docs/components/index-column.md +31 -8
- package/docs/components/line-chart.md +39 -0
- package/docs/components/loading.md +23 -12
- package/docs/components/login-form.md +47 -0
- package/docs/components/mantis-data-table.md +61 -0
- package/docs/components/map-picker-client.md +35 -14
- package/docs/components/map-picker-osm.md +33 -13
- package/docs/components/map-picker.md +34 -16
- package/docs/components/mask-field.md +31 -0
- package/docs/components/menu-button.md +28 -17
- package/docs/components/modal.md +45 -0
- package/docs/components/multi-select-filter.md +31 -15
- package/docs/components/number-field.md +40 -0
- package/docs/components/otp-input.md +31 -0
- package/docs/components/page-tabs.md +35 -0
- package/docs/components/page-title.md +15 -8
- package/docs/components/paginated-table.md +42 -26
- package/docs/components/pagination.md +28 -18
- package/docs/components/password-input.md +31 -0
- package/docs/components/phone-input.md +28 -0
- package/docs/components/radio-group.md +50 -0
- package/docs/components/range-slider.md +32 -0
- package/docs/components/rating-input.md +30 -0
- package/docs/components/render-field.md +41 -18
- package/docs/components/reset-password-form.md +37 -0
- package/docs/components/rich-text-preview.md +26 -13
- package/docs/components/search-input.md +30 -0
- package/docs/components/select-field.md +55 -0
- package/docs/components/stat-card.md +30 -0
- package/docs/components/status-badge.md +25 -9
- package/docs/components/switch-field.md +32 -0
- package/docs/components/table-filter-field.md +30 -16
- package/docs/components/table-skeleton.md +22 -0
- package/docs/components/table-toolbar.md +28 -14
- package/docs/components/tag.md +27 -0
- package/docs/components/tags-input.md +32 -0
- package/docs/components/text-area.md +25 -15
- package/docs/components/text-field.md +32 -0
- package/docs/components/timeline.md +31 -0
- package/docs/components/toggle-inline-button.md +48 -17
- package/docs/components/upload-files-preview.md +39 -20
- package/docs/components/use-field-controller.md +58 -0
- package/docs/components/user-menu.md +39 -0
- 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 +120 -0
- package/docs/contracts/dependency-map.md +76 -39
- package/docs/contracts/field-controller.md +138 -0
- package/docs/contracts/style-imports.md +21 -14
- package/llms.txt +104 -0
- package/package.json +39 -10
- package/PRIMEREACT_MAPPING.md +0 -6
- 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 -26
- package/docs/components/date-input.md +0 -22
- package/docs/components/drop-down.md +0 -28
- package/docs/components/multi-select.md +0 -23
- package/docs/components/number-input.md +0 -20
- package/docs/components/select.md +0 -28
- package/docs/components/switch.md +0 -27
- package/docs/components/text-input.md +0 -23
- package/docs/components/time-picker.md +0 -22
- package/docs/components/toggle.md +0 -21
- package/docs/contracts/controller-props.md +0 -28
|
@@ -1,22 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
---
|
|
2
|
+
name: MapPickerClient
|
|
3
|
+
category: maps
|
|
4
|
+
import: '@mantis-core/ui/components/Maps/MapPickerClient'
|
|
5
|
+
whenToUse: 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.
|
|
6
|
+
baseLibrary: leaflet
|
|
7
|
+
requiredStyles: []
|
|
8
|
+
relatedComponents: [MapPicker, MapPickerOSM]
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: onLocationSelect, type: '(lat: number, lng: number) => void', required: true, description: 'Fired on map click with the picked coordinates.' }
|
|
12
|
+
- { name: initialLat, type: 'number | null', required: false, description: 'Initial marker/center latitude; defaults to a fixed Yunguilla-area center when omitted.' }
|
|
13
|
+
- { name: initialLng, type: 'number | null', required: false, description: 'Initial marker/center longitude; defaults to a fixed Yunguilla-area center when omitted.' }
|
|
14
|
+
---
|
|
9
15
|
|
|
10
16
|
## Example
|
|
11
17
|
|
|
12
18
|
```tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
'use client';
|
|
20
|
+
import { useState } from 'react';
|
|
21
|
+
import MapPickerClient from '@mantis-core/ui/components/Maps/MapPickerClient';
|
|
22
|
+
|
|
23
|
+
function Example() {
|
|
24
|
+
const [coords, setCoords] = useState<{ lat: number; lng: number } | null>(null);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<MapPickerClient
|
|
28
|
+
onLocationSelect={(lat, lng) => setCoords({ lat, lng })}
|
|
29
|
+
initialLat={-3.26}
|
|
30
|
+
initialLng={-79.28}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
18
34
|
```
|
|
19
35
|
|
|
20
36
|
## Notes
|
|
21
37
|
|
|
22
|
-
-
|
|
38
|
+
- `"use client"` component — imports `leaflet/dist/leaflet.css` and `react-leaflet` directly, so it
|
|
39
|
+
cannot render during SSR. Prefer `MapPicker` unless the caller already guarantees a client-only tree.
|
|
40
|
+
- Marker icon assets are expected at `/leaflet/marker-icon.png`, `/leaflet/marker-icon-2x.png`,
|
|
41
|
+
`/leaflet/marker-shadow.png` (served from the consuming app's `public/`).
|
|
42
|
+
- Internally handles container resize (`ResizeObserver` + `map.invalidateSize`) and recenters when
|
|
43
|
+
`initialLat`/`initialLng` change — no manual `invalidateSize` call needed from the caller.
|
|
@@ -1,18 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
---
|
|
2
|
+
name: MapPickerOSM
|
|
3
|
+
category: maps
|
|
4
|
+
import: '@mantis-core/ui/components/Maps/MapPickerOSM'
|
|
5
|
+
whenToUse: Script-injected Leaflet map (no react-leaflet/SSR bundle cost) with a draggable marker and an explicit "save location" button.
|
|
6
|
+
baseLibrary: leaflet
|
|
7
|
+
requiredStyles: []
|
|
8
|
+
relatedComponents: [MapPicker, MapPickerClient]
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: initialPosition, type: LatLng, required: false, default: '{ lat: -12.0464, lng: -77.0428 }', description: 'Initial marker/center position.' }
|
|
12
|
+
- { name: zoom, type: number, required: false, default: '12' }
|
|
13
|
+
- { name: height, type: string, required: false, default: '''400px''', description: 'CSS height of the map container.' }
|
|
14
|
+
- { name: onChange, type: '(pos: LatLng) => void', required: false, description: 'Fired on every click or marker drag.' }
|
|
15
|
+
- { name: onSave, type: '(pos: LatLng) => void', required: false, description: 'Fired only when the user clicks the "Guardar ubicación" button.' }
|
|
16
|
+
---
|
|
9
17
|
|
|
10
18
|
## Example
|
|
11
19
|
|
|
12
20
|
```tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
'use client';
|
|
22
|
+
import MapPickerOSM from '@mantis-core/ui/components/Maps/MapPickerOSM';
|
|
23
|
+
import type { LatLng } from '@mantis-core/ui/components/Maps/MapPickerOSM';
|
|
24
|
+
|
|
25
|
+
function Example() {
|
|
26
|
+
const handleSave = (pos: LatLng) => console.log('saved', pos);
|
|
27
|
+
|
|
28
|
+
return <MapPickerOSM initialPosition={{ lat: -3.26, lng: -79.28 }} onSave={handleSave} />;
|
|
29
|
+
}
|
|
18
30
|
```
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
- Loads Leaflet from the `unpkg.com` CDN at runtime (script + stylesheet injected into
|
|
35
|
+
`document.head`/`document.body`) instead of importing the `leaflet` package — no bundler cost, but
|
|
36
|
+
requires network access to `unpkg.com` and has no offline/self-hosted mode.
|
|
37
|
+
- Spanish-only UI strings are hardcoded ("Cargando mapa...", "Guardar ubicación", error text) — not
|
|
38
|
+
currently prop-configurable.
|
|
@@ -1,21 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
---
|
|
2
|
+
name: MapPicker
|
|
3
|
+
category: maps
|
|
4
|
+
import: '@mantis-core/ui/components/Maps/MapPicker'
|
|
5
|
+
whenToUse: SSR-safe entry point for the Leaflet lat/lng picker; lazy-loads MapPickerClient via next/dynamic (ssr:false).
|
|
6
|
+
baseLibrary: leaflet
|
|
7
|
+
requiredStyles: []
|
|
8
|
+
relatedComponents: [MapPickerClient, MapPickerOSM]
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: onLocationSelect, type: '(lat: number, lng: number) => void', required: true, description: 'Fired on map click with the picked coordinates.' }
|
|
12
|
+
- { name: initialLat, type: 'number | null', required: false }
|
|
13
|
+
- { name: initialLng, type: 'number | null', required: false }
|
|
14
|
+
---
|
|
9
15
|
|
|
10
16
|
## Example
|
|
11
17
|
|
|
12
18
|
```tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
import { useState } from 'react';
|
|
20
|
+
import MapPicker from '@mantis-core/ui/components/Maps/MapPicker';
|
|
21
|
+
|
|
22
|
+
function Example() {
|
|
23
|
+
const [coords, setCoords] = useState<{ lat: number; lng: number } | null>(null);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<MapPicker
|
|
27
|
+
onLocationSelect={(lat, lng) => setCoords({ lat, lng })}
|
|
28
|
+
initialLat={-3.26}
|
|
29
|
+
initialLng={-79.28}
|
|
30
|
+
/>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
21
33
|
```
|
|
34
|
+
|
|
35
|
+
## Notes
|
|
36
|
+
|
|
37
|
+
- Just a `next/dynamic(() => import('./MapPickerClient'), { ssr: false })` wrapper — use this
|
|
38
|
+
(not `MapPickerClient` directly) in App Router pages/layouts to avoid a `leaflet` SSR crash.
|
|
39
|
+
- Loading fallback is a plain `<p>Loading map...</p>` (not themed) while the client chunk loads.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: MaskField
|
|
3
|
+
category: forms
|
|
4
|
+
import: '@mantis-core/ui/components/Forms/MaskField'
|
|
5
|
+
whenToUse: Generic masked text input (digit/letter/alphanumeric tokens) wired to react-hook-form; value is the masked display string.
|
|
6
|
+
baseLibrary: '@primereact/ui/inputtext'
|
|
7
|
+
formContract: FieldControllerProps
|
|
8
|
+
relatedComponents: ['PhoneInput', 'TextField']
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: mask, type: string, required: true, description: "Pattern: '9'=digit, 'a'=letter, '*'=alphanumeric; any other character is a literal emitted automatically." }
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
import { MaskField } from '@mantis-core/ui/components/Forms/MaskField';
|
|
18
|
+
import { useForm } from 'react-hook-form';
|
|
19
|
+
|
|
20
|
+
function Example() {
|
|
21
|
+
const { control } = useForm({ defaultValues: { code: '' } });
|
|
22
|
+
return <MaskField name='code' control={control} mask='999-999' label='Code' />;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Notes
|
|
27
|
+
|
|
28
|
+
- PR11 dropped the `inputmask` primitive — this wrapper owns masking itself over plain `InputText`, no `react-imask` dependency.
|
|
29
|
+
- Value = the **masked** string as displayed (e.g. `"(555) 123-4567"`), not the raw digits — that's exactly what gets stored in the form.
|
|
30
|
+
- Also exports `applyMask(raw, mask)`, the pure formatter used internally, for previewing/testing a mask outside the field.
|
|
31
|
+
- `PhoneInput` is the phone preset built on top of this (`mask="(999) 999-9999"` by default).
|
|
@@ -1,22 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: MenuButton
|
|
3
|
+
category: tables
|
|
4
|
+
import: '@mantis-core/ui/components/Tables/MenuButton'
|
|
5
|
+
whenToUse: 'Row-action overlay menu — a trigger button that opens a popup list of actions; used inside `actionColumn`/table row cells, or standalone.'
|
|
6
|
+
baseLibrary: '@primereact/ui/menu'
|
|
7
|
+
relatedComponents: [ActionColumn, MantisDataTable]
|
|
8
|
+
relatedNextCore: []
|
|
9
|
+
props:
|
|
10
|
+
- { name: label, type: string, required: false, description: 'Trigger button label.' }
|
|
11
|
+
- { name: icon, type: string, required: false, default: "'pi pi-cog'", description: 'Trigger button icon (PrimeIcons class).' }
|
|
12
|
+
- { name: items, type: 'ActionMenuItem[]', required: false, default: '[]' }
|
|
13
|
+
---
|
|
11
14
|
|
|
12
15
|
## Example
|
|
13
16
|
|
|
14
17
|
```tsx
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{ label:
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
import MenuButton, { type ActionMenuItem } from '@mantis-core/ui/components/Tables/MenuButton';
|
|
19
|
+
|
|
20
|
+
function Example() {
|
|
21
|
+
const items: ActionMenuItem[] = [
|
|
22
|
+
{ label: 'Edit', icon: 'pi pi-pencil', route: '/properties/1/edit' },
|
|
23
|
+
{ label: 'Delete', icon: 'pi pi-trash', command: () => console.log('delete') },
|
|
24
|
+
];
|
|
25
|
+
return <MenuButton items={items} label='Actions' />;
|
|
26
|
+
}
|
|
22
27
|
```
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
- Not re-exported from the package root — import the deep path.
|
|
32
|
+
- `ActionMenuItem`: `label`, `icon?`, `route?` (navigates via `next/router`, wins over `command`), `command?` (ignored when `route` is set), `disabled?` (never fires `onSelect`).
|
|
33
|
+
- Migrated to PR11's compound `Menu`: `Menu.Root` owns its own open state; the trigger renders the migrated `Button` via `Menu.Trigger as={Button}` — PR11's `asChild` does NOT wire the trigger (no `aria-haspopup`, overlay never opens), so the `as` prop is required.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Modal
|
|
3
|
+
category: overlays
|
|
4
|
+
import: '@mantis-core/ui/components/overlays/Modal'
|
|
5
|
+
whenToUse: Controlled dialog/modal; composes PR11's headless Dialog compound (Root/Portal/Backdrop/Positioner/Popup/Header/Content/Footer) behind a simple `open`/`title`/`footer` API.
|
|
6
|
+
baseLibrary: '@primereact/ui/dialog'
|
|
7
|
+
relatedComponents: ['Drawer', 'ConfirmDialog', 'CommandPalette']
|
|
8
|
+
relatedNextCore: []
|
|
9
|
+
props:
|
|
10
|
+
- { name: open, type: boolean, required: true, description: 'Controlled visibility.' }
|
|
11
|
+
- { name: onOpenChange, type: '(open: boolean) => void', required: true, description: 'Fires with the next open value when the backdrop/close toggles it.' }
|
|
12
|
+
- { name: title, type: ReactNode, required: false, description: 'Header title. Omit to render no header.' }
|
|
13
|
+
- { name: footer, type: ReactNode, required: false, description: 'Footer content, usually action buttons. Omit to render no footer.' }
|
|
14
|
+
- { name: size, type: "'sm' | 'md' | 'lg' | 'xl'", required: false, default: "'md'", description: 'Popup width preset.' }
|
|
15
|
+
- { name: modal, type: boolean, required: false, default: 'true', description: 'Whether the dialog blocks pointer events behind it.' }
|
|
16
|
+
- { name: className, type: string, required: false, description: 'Extra class on the Popup element.' }
|
|
17
|
+
- { name: children, type: ReactNode, required: false }
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import Modal from '@mantis-core/ui/components/overlays/Modal';
|
|
24
|
+
import { useState } from 'react';
|
|
25
|
+
|
|
26
|
+
function Example() {
|
|
27
|
+
const [open, setOpen] = useState(false);
|
|
28
|
+
return (
|
|
29
|
+
<Modal
|
|
30
|
+
open={open}
|
|
31
|
+
onOpenChange={setOpen}
|
|
32
|
+
title='Edit property'
|
|
33
|
+
size='lg'
|
|
34
|
+
footer={<button onClick={() => setOpen(false)}>Close</button>}>
|
|
35
|
+
<p>Modal content</p>
|
|
36
|
+
</Modal>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Controlled-only: `open`/`onOpenChange`, not `visible`/`onHide` — matches PR11's Root controlled-state naming.
|
|
44
|
+
- Width is a class on the Popup (from the `size` preset), not a `style` prop; override via `className` for custom widths.
|
|
45
|
+
- No `requiredStyles` — preset-themed.
|
|
@@ -1,20 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
---
|
|
2
|
+
name: MultiSelectFilter
|
|
3
|
+
category: tables
|
|
4
|
+
import: '@mantis-core/ui/components/Tables/filters/MultiSelectFilter'
|
|
5
|
+
whenToUse: '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.'
|
|
6
|
+
baseLibrary: '@primereact/ui/select'
|
|
7
|
+
relatedComponents: [FilterPannel, MantisDataTable]
|
|
8
|
+
relatedNextCore: []
|
|
9
|
+
props:
|
|
10
|
+
- { name: options, type: 'FilterOption[]', required: true }
|
|
11
|
+
- { name: value, type: 'string[]', required: false, default: '[]' }
|
|
12
|
+
- { name: onChange, type: '(value: string[]) => void', required: true }
|
|
13
|
+
- { name: loading, type: boolean, required: false, default: 'false', description: 'Disables the control while the option list loads.' }
|
|
14
|
+
- { name: placeholder, type: string, required: false, default: "'Seleccione'" }
|
|
15
|
+
---
|
|
8
16
|
|
|
9
17
|
## Example
|
|
10
18
|
|
|
11
19
|
```tsx
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
import MultiSelectFilter from '@mantis-core/ui/components/Tables/filters/MultiSelectFilter';
|
|
21
|
+
import { useState } from 'react';
|
|
22
|
+
|
|
23
|
+
function Example() {
|
|
24
|
+
const [selected, setSelected] = useState<string[]>([]);
|
|
25
|
+
const options = [
|
|
26
|
+
{ label: 'Active', value: 'active' },
|
|
27
|
+
{ label: 'Draft', value: 'draft' },
|
|
28
|
+
];
|
|
29
|
+
return <MultiSelectFilter options={options} value={selected} onChange={setSelected} />;
|
|
30
|
+
}
|
|
20
31
|
```
|
|
32
|
+
|
|
33
|
+
## Notes
|
|
34
|
+
|
|
35
|
+
- Not re-exported from the package root — import the deep path.
|
|
36
|
+
- Migrated replacement for the PR10 `primereact/multiselect`; page-owned `value`/`onChange` (not RHF), so it fits `ColumnDef.filterElement` directly — it does not accept the scalar `{ value, onChange }` shape used by the built-in `text`/`dropdown` filter presets.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: NumberField
|
|
3
|
+
category: forms
|
|
4
|
+
import: '@mantis-core/ui/components/Forms/NumberField'
|
|
5
|
+
whenToUse: Numeric input (integer, decimal, or currency) wired to react-hook-form.
|
|
6
|
+
baseLibrary: '@primereact/ui/inputnumber'
|
|
7
|
+
formContract: FieldControllerProps
|
|
8
|
+
relatedComponents: ['TextField', 'SelectField']
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: mode, type: "'decimal' | 'currency'", required: false, description: 'PR11 InputNumber Root config. `currency` is the sole replacement for the removed CurrencyInput wrapper.' }
|
|
12
|
+
- { name: currency, type: string, required: false, description: 'ISO currency code, only used when mode="currency" (e.g. "USD").' }
|
|
13
|
+
- { name: locale, type: string, required: false, description: 'Intl locale for formatting.' }
|
|
14
|
+
- { name: min, type: number, required: false }
|
|
15
|
+
- { name: max, type: number, required: false }
|
|
16
|
+
- { name: step, type: number, required: false }
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { NumberField } from '@mantis-core/ui/components/Forms/NumberField';
|
|
23
|
+
import { useForm } from 'react-hook-form';
|
|
24
|
+
|
|
25
|
+
function Example() {
|
|
26
|
+
const { control } = useForm({ defaultValues: { price: null as number | null } });
|
|
27
|
+
return (
|
|
28
|
+
<NumberField name='price' control={control} label='Price' mode='currency' currency='USD' />
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Notes
|
|
34
|
+
|
|
35
|
+
- Value is `number | null` — an emptied input normalizes to `null` (not `NaN`), so `number | null`
|
|
36
|
+
RHF fields can actually be cleared.
|
|
37
|
+
- Compound primitive: emits `onValueChange` with a `{ value }` event, not native `onChange`. The
|
|
38
|
+
wrapper handles this internally; callers just get a plain controlled number value.
|
|
39
|
+
- Root config (`mode`, `currency`, `locale`, `min`, `max`, `step`, …) lives on `InputNumberRootProps`
|
|
40
|
+
and passes through via `...rest`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OtpInput
|
|
3
|
+
category: forms
|
|
4
|
+
import: '@mantis-core/ui/components/Forms/OtpInput'
|
|
5
|
+
whenToUse: RHF-bound one-time-password input over PR11's compound InputOtp; renders `length` segmented boxes.
|
|
6
|
+
baseLibrary: '@primereact/ui/inputotp'
|
|
7
|
+
formContract: ChoiceFieldControllerProps
|
|
8
|
+
relatedComponents: []
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: length, type: number, required: false, default: '6', description: 'How many segmented slots render.' }
|
|
12
|
+
- { name: integerOnly, type: boolean, required: false, description: 'Restrict input to digits.' }
|
|
13
|
+
- { name: mask, type: boolean, required: false, description: 'Obscure each slot like a password.' }
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
import { OtpInput } from '@mantis-core/ui/components/Forms/OtpInput';
|
|
20
|
+
import { useForm } from 'react-hook-form';
|
|
21
|
+
|
|
22
|
+
function Example() {
|
|
23
|
+
const { control } = useForm({ defaultValues: { code: '' } });
|
|
24
|
+
return <OtpInput name='code' control={control} label='Código' length={6} integerOnly />;
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- Value shape: the concatenated `string` code, `""` when unset. Typing advances focus, backspace retreats, paste distributes across slots.
|
|
31
|
+
- Uses `ChoiceFieldControllerProps` (bucket B) — no `labelMode="float"`/addons/`variant`, defaults `labelMode` to `top`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: PageTabs
|
|
3
|
+
category: navigation
|
|
4
|
+
import: '@mantis-core/ui/components/navigation/PageTabs'
|
|
5
|
+
whenToUse: 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.
|
|
6
|
+
baseLibrary: '@primereact/ui/tabs'
|
|
7
|
+
relatedComponents: ['AppShell']
|
|
8
|
+
relatedNextCore: []
|
|
9
|
+
props:
|
|
10
|
+
- { name: tabs, type: '{ label: string; icon?: ReactNode; href?: string; command?: () => void }[]', required: true }
|
|
11
|
+
- { name: activeIndex, type: number, required: false, description: 'Forces the active tab index; otherwise derived from the pathname (matched against the tab `href`).' }
|
|
12
|
+
- { name: className, type: string, required: false, default: "'mantis-core-page-tabs'" }
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import PageTabs from '@mantis-core/ui/components/navigation/PageTabs';
|
|
19
|
+
|
|
20
|
+
function Example() {
|
|
21
|
+
return (
|
|
22
|
+
<PageTabs
|
|
23
|
+
tabs={[
|
|
24
|
+
{ label: 'General', href: '/admin/settings' },
|
|
25
|
+
{ label: 'Security', href: '/admin/settings/security' },
|
|
26
|
+
]}
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
- This is a nav bar, not a tabbed content panel — selecting a tab pushes `href` or runs `command`, it does not toggle any `Tabs.Panel`.
|
|
35
|
+
- No `requiredStyles` — preset-themed.
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
---
|
|
2
|
+
name: PageTitle
|
|
3
|
+
category: pages
|
|
4
|
+
import: '@mantis-core/ui/components/pages/PageTitle'
|
|
5
|
+
whenToUse: Centered display-font heading for public-facing pages.
|
|
6
|
+
baseLibrary: custom
|
|
7
|
+
relatedNextCore: []
|
|
8
|
+
props:
|
|
9
|
+
- { name: children, type: ReactNode, required: true }
|
|
10
|
+
---
|
|
8
11
|
|
|
9
12
|
## Example
|
|
10
13
|
|
|
11
14
|
```tsx
|
|
12
|
-
|
|
15
|
+
import PageTitle from '@mantis-core/ui/components/pages/PageTitle';
|
|
16
|
+
|
|
17
|
+
function Example() {
|
|
18
|
+
return <PageTitle>Propiedades en Venta</PageTitle>;
|
|
19
|
+
}
|
|
13
20
|
```
|
|
@@ -1,35 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
---
|
|
2
|
+
name: PaginatedTable
|
|
3
|
+
category: tables
|
|
4
|
+
import: '@mantis-core/ui/components/Tables/PaginatedTable'
|
|
5
|
+
whenToUse: 'Thin preset over MantisDataTable with `paginator` on by default plus optional index/action columns — the default table shell for admin list pages.'
|
|
6
|
+
baseLibrary: '@primereact/ui/datatable'
|
|
7
|
+
requiredStyles: [scss/table.scss]
|
|
8
|
+
relatedComponents: [MantisDataTable, ActionColumn, IndexColumn, TableToolbar, FilterPannel]
|
|
9
|
+
relatedNextCore: []
|
|
10
|
+
props:
|
|
11
|
+
- { name: rows, type: 'T[]', required: true }
|
|
12
|
+
- { name: columns, type: 'ColumnDef<T>[]', required: true }
|
|
13
|
+
- { name: paginator, type: boolean, required: false, default: 'true', description: 'PR11 Root prop; PaginatedTable flips the MantisDataTable default on.' }
|
|
14
|
+
- { name: showIndexColumn, type: boolean, required: false, default: 'true', description: 'Prepend a 1-based row-number column.' }
|
|
15
|
+
- { name: indexColumnOptions, type: 'Partial<ColumnDef<T>>', required: false, description: 'Overrides for the prepended index column.' }
|
|
16
|
+
- { name: showActionColumn, type: boolean, required: false, default: 'false', description: 'Append a row-action menu column.' }
|
|
17
|
+
- { name: actionColumnItems, type: '(row: T) => ActionMenuItem[]', required: false, description: 'Per-row action items for the appended action column.' }
|
|
18
|
+
- { name: actionColumnOptions, type: 'ActionColumnOptions<T>', required: false, description: 'Overrides for the appended action column.' }
|
|
19
|
+
---
|
|
9
20
|
|
|
10
21
|
## Example
|
|
11
22
|
|
|
12
23
|
```tsx
|
|
13
|
-
import {
|
|
24
|
+
import { PaginatedTable } from '@mantis-core/ui/components/Tables/PaginatedTable';
|
|
25
|
+
import type { ColumnDef } from '@mantis-core/ui/components/Tables/columns';
|
|
26
|
+
|
|
27
|
+
interface Property {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const COLUMNS: ColumnDef<Property>[] = [{ field: 'name', header: 'Name' }];
|
|
14
33
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<Column field="name" header="Name" sortable />
|
|
28
|
-
<Column field="status" header="Status" />
|
|
29
|
-
</PaginatedTable>
|
|
34
|
+
function Example() {
|
|
35
|
+
const rows: Property[] = [{ id: '1', name: 'Casa Ceibos' }];
|
|
36
|
+
return (
|
|
37
|
+
<PaginatedTable
|
|
38
|
+
rows={rows}
|
|
39
|
+
columns={COLUMNS}
|
|
40
|
+
rowsPerPage={10}
|
|
41
|
+
showActionColumn
|
|
42
|
+
actionColumnItems={(p) => [{ label: 'Edit', route: `/properties/${p.id}/edit` }]}
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
30
46
|
```
|
|
31
47
|
|
|
32
48
|
## Notes
|
|
33
49
|
|
|
34
|
-
-
|
|
35
|
-
-
|
|
50
|
+
- Reshaped from the PR10 children-driven `PaginatedTable` to the descriptor-driven PR11 model: it assembles the final `columns` array (index column prepended, action column appended) and forwards everything else — including `rows`, `rowsPerPage`, and any other `MantisDataTableProps<T>`/PR11 root passthrough — straight to `MantisDataTable`.
|
|
51
|
+
- The old `value`/`totalRecords`/`lazy` prop shape is gone; use `rows`/`columns`/`rowsPerPage` and the PR11 root passthrough (`paginator`, `lazy`, `onLazyLoad`, …) documented on `MantisDataTable`.
|
|
@@ -1,27 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
---
|
|
2
|
+
name: Pagination
|
|
3
|
+
category: feedback
|
|
4
|
+
import: '@mantis-core/ui/components/ui/Pagination'
|
|
5
|
+
whenToUse: Standalone page-number control (custom Tailwind markup, not PrimeReact Paginator); use when not relying on PaginatedTable's built-in paginator.
|
|
6
|
+
baseLibrary: custom
|
|
7
|
+
relatedComponents: ['PaginatedTable']
|
|
8
|
+
relatedNextCore: []
|
|
9
|
+
props:
|
|
10
|
+
- { name: currentPage, type: number, required: true }
|
|
11
|
+
- { name: totalPages, type: number, required: true }
|
|
12
|
+
- { name: onPageChange, type: '(page: number) => void', required: true }
|
|
13
|
+
- { name: hasNextPage, type: boolean, required: false, default: 'currentPage < totalPages' }
|
|
14
|
+
- { name: hasPreviousPage, type: boolean, required: false, default: 'currentPage > 1' }
|
|
15
|
+
- { name: maxVisible, type: number, required: false, default: '7' }
|
|
16
|
+
- { name: showFirstLast, type: boolean, required: false, default: 'true' }
|
|
17
|
+
- { name: disabled, type: boolean, required: false, default: 'false' }
|
|
18
|
+
- { name: className, type: string, required: false }
|
|
19
|
+
---
|
|
8
20
|
|
|
9
21
|
## Example
|
|
10
22
|
|
|
11
23
|
```tsx
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
totalPages={totalPages}
|
|
15
|
-
onPageChange={setPage}
|
|
16
|
-
maxVisible={5}
|
|
17
|
-
/>
|
|
18
|
-
|
|
19
|
-
<PaginationInfo currentPage={page} pageSize={pageSize} totalCount={total} />
|
|
24
|
+
import { Pagination } from '@mantis-core/ui/components/ui/Pagination';
|
|
25
|
+
import { useState } from 'react';
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
function Example() {
|
|
28
|
+
const [page, setPage] = useState(1);
|
|
29
|
+
return <Pagination currentPage={page} totalPages={12} onPageChange={setPage} />;
|
|
30
|
+
}
|
|
22
31
|
```
|
|
23
32
|
|
|
24
33
|
## Notes
|
|
25
34
|
|
|
26
|
-
-
|
|
27
|
-
- `
|
|
35
|
+
- Renders `null` when `totalPages <= 1`.
|
|
36
|
+
- Same import path also exports `PaginationInfo` — `{ currentPage, pageSize, totalCount, className? }`, a "Showing X to Y of Z results" line — and `PageSizeSelector` — `{ pageSize, onPageSizeChange, options?: number[] (default `[10, 25, 50, 100]`), disabled?, className? }`, a page-size `<select>`.
|
|
37
|
+
- `paginator.scss` styles PrimeReact's own paginator markup (used e.g. by `PaginatedTable`), not this component — no `requiredStyles` here.
|