@mantis-core/ui 0.5.0 → 0.7.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 +155 -0
- package/COMPONENTS.md +71 -73
- package/README.md +19 -6
- package/bin/mantis-llm.mjs +242 -0
- 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/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 +48 -11
- 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/component-doc-schema.md +0 -78
- package/docs/contracts/controller-props.md +0 -28
|
@@ -1,15 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import type { RadioButtonGroupProps } from "@primereact/types/primitive/radiobuttongroup";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import type { FieldPath, FieldValues } from "react-hook-form";
|
|
4
|
+
import { type ChoiceFieldControllerProps } from "./useFieldController";
|
|
5
|
+
type OptionRow = Record<string, unknown>;
|
|
6
|
+
type RadioGroupExtras = Omit<RadioButtonGroupProps, "value" | "onValueChange" | "invalid" | "disabled" | "name" | "children">;
|
|
7
|
+
/**
|
|
8
|
+
* RHF-bound single-choice radio group over PR11's `RadioButtonGroup`. Each item
|
|
9
|
+
* is a compound `RadioButton.Root → Box → Indicator` so the radios render themed
|
|
10
|
+
* (the checked state uses the primary token, not a bare native radio).
|
|
11
|
+
*
|
|
12
|
+
* Value shape: the bound value is the selected option's value (scalar).
|
|
13
|
+
*
|
|
14
|
+
* NOTE (PR11 11.0.0-rc.1): the styled `RadioButtonGroup` (@primereact/ui) and
|
|
15
|
+
* `RadioButton.Root` are wired through two DIFFERENT React contexts in this rc —
|
|
16
|
+
* the group's `value`/`onValueChange` never reaches its children, so a controlled
|
|
17
|
+
* group can't drive selection (verified in-browser). Until that's fixed upstream,
|
|
18
|
+
* binding is done per-item via the documented `checked`/`onCheckedChange` props on
|
|
19
|
+
* `RadioButton.Root` (no invented sub-parts); the group stays for layout/styling.
|
|
20
|
+
*
|
|
21
|
+
* Templating follows the library convention — options array for the 90% case,
|
|
22
|
+
* a `renderOption` render-prop escape for custom per-item markup:
|
|
23
|
+
* @example
|
|
24
|
+
* <RadioGroup name="plan" control={control} label="Plan"
|
|
25
|
+
* options={PLANS} optionLabel="label" optionValue="value" />
|
|
26
|
+
* <RadioGroup ... renderOption={(o) => <Badge>{o.label}</Badge>} />
|
|
27
|
+
*/
|
|
28
|
+
export declare function RadioGroup<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ChoiceFieldControllerProps<TFieldValues, TName> & RadioGroupExtras & {
|
|
29
|
+
options: OptionRow[];
|
|
30
|
+
optionLabel?: string;
|
|
31
|
+
optionValue?: string;
|
|
32
|
+
/** Escape hatch: full custom per-option render (label side). */
|
|
33
|
+
renderOption?: (option: OptionRow, index: number) => ReactNode;
|
|
34
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
35
|
export default RadioGroup;
|
|
15
36
|
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RadioGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAG1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,0BAA0B,EAAsB,MAAM,sBAAsB,CAAC;AAE3F,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIzC,KAAK,gBAAgB,GAAG,IAAI,CAC1B,qBAAqB,EACrB,OAAO,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CACzE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,0BAA0B,CAAC,YAAY,EAAE,KAAK,CAAC,GACpD,gBAAgB,GAAG;IACjB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAChE,2CA8EJ;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,9 +1,52 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { RadioButton } from "@primereact/ui/radiobutton";
|
|
3
|
+
import { RadioButtonGroup } from "@primereact/ui/radiobuttongroup";
|
|
4
|
+
import { FieldShell } from "./FieldShell";
|
|
5
|
+
import { useFieldController } from "./useFieldController";
|
|
6
|
+
/**
|
|
7
|
+
* RHF-bound single-choice radio group over PR11's `RadioButtonGroup`. Each item
|
|
8
|
+
* is a compound `RadioButton.Root → Box → Indicator` so the radios render themed
|
|
9
|
+
* (the checked state uses the primary token, not a bare native radio).
|
|
10
|
+
*
|
|
11
|
+
* Value shape: the bound value is the selected option's value (scalar).
|
|
12
|
+
*
|
|
13
|
+
* NOTE (PR11 11.0.0-rc.1): the styled `RadioButtonGroup` (@primereact/ui) and
|
|
14
|
+
* `RadioButton.Root` are wired through two DIFFERENT React contexts in this rc —
|
|
15
|
+
* the group's `value`/`onValueChange` never reaches its children, so a controlled
|
|
16
|
+
* group can't drive selection (verified in-browser). Until that's fixed upstream,
|
|
17
|
+
* binding is done per-item via the documented `checked`/`onCheckedChange` props on
|
|
18
|
+
* `RadioButton.Root` (no invented sub-parts); the group stays for layout/styling.
|
|
19
|
+
*
|
|
20
|
+
* Templating follows the library convention — options array for the 90% case,
|
|
21
|
+
* a `renderOption` render-prop escape for custom per-item markup:
|
|
22
|
+
* @example
|
|
23
|
+
* <RadioGroup name="plan" control={control} label="Plan"
|
|
24
|
+
* options={PLANS} optionLabel="label" optionValue="value" />
|
|
25
|
+
* <RadioGroup ... renderOption={(o) => <Badge>{o.label}</Badge>} />
|
|
26
|
+
*/
|
|
27
|
+
export function RadioGroup(props) {
|
|
28
|
+
const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, required, helpText, id, options, optionLabel, optionValue, renderOption, ...rest } = props;
|
|
29
|
+
const f = useFieldController({
|
|
30
|
+
name,
|
|
31
|
+
control,
|
|
32
|
+
rules,
|
|
33
|
+
defaultValue,
|
|
34
|
+
shouldUnregister,
|
|
35
|
+
disabled,
|
|
36
|
+
helpText,
|
|
37
|
+
id,
|
|
38
|
+
});
|
|
39
|
+
const labelKey = optionLabel ?? "label";
|
|
40
|
+
const valueKey = optionValue ?? "value";
|
|
41
|
+
const { ref: fieldRef } = f.field;
|
|
42
|
+
return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode ?? "top", required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(RadioButtonGroup, { ref: fieldRef, name: f.field.name, invalid: f.invalid, disabled: f.disabled, ...rest, ...f.aria, children: options.map((option, index) => {
|
|
43
|
+
const optValue = option[valueKey];
|
|
44
|
+
const optionId = `${f.id}_${String(optValue)}`;
|
|
45
|
+
return (_jsxs("div", { className: 'flex items-center gap-2', children: [_jsx(RadioButton.Root, { inputId: optionId, value: optValue, checked: f.field.value === optValue, onCheckedChange: (e) => {
|
|
46
|
+
if (e.checked)
|
|
47
|
+
f.field.onChange(optValue);
|
|
48
|
+
}, onBlur: f.field.onBlur, children: _jsx(RadioButton.Box, { children: _jsx(RadioButton.Indicator, {}) }) }), _jsx("label", { htmlFor: optionId, children: renderOption ? renderOption(option, index) : String(option[labelKey] ?? "") })] }, optionId));
|
|
49
|
+
}) }) }));
|
|
50
|
+
}
|
|
8
51
|
export default RadioGroup;
|
|
9
52
|
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../../src/components/Forms/RadioGroup.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../../src/components/Forms/RadioGroup.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAmC,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW3F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CAIxB,KAOG;IAEH,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,GAAG,kBAAkB,CAAsB;QAChD,IAAI;QACJ,OAAO;QACP,KAAK;QACL,YAAY;QACZ,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,EAAE;KACH,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,IAAI,OAAO,CAAC;IACxC,MAAM,QAAQ,GAAG,WAAW,IAAI,OAAO,CAAC;IAExC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;IAElC,OAAO,CACL,KAAC,UAAU,IACT,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,KAAK,EAC7B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,KAAC,gBAAgB,IACf,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAChB,IAAI,KACJ,CAAC,CAAC,IAAI,YACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,OAAO,CACL,eAAoB,SAAS,EAAC,yBAAyB,aACrD,KAAC,WAAW,CAAC,IAAI,IACf,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EACnC,eAAe,EAAE,CAAC,CAA6B,EAAE,EAAE;gCACjD,IAAI,CAAC,CAAC,OAAO;oCAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BAC5C,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,YACtB,KAAC,WAAW,CAAC,GAAG,cACd,KAAC,WAAW,CAAC,SAAS,KAAG,GACT,GACD,EACnB,gBAAO,OAAO,EAAE,QAAQ,YACrB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GACtE,KAfA,QAAQ,CAgBZ,CACP,CAAC;YACJ,CAAC,CAAC,GACe,GACR,CACd,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import type { SliderRootProps } from "@primereact/types/primitive/slider";
|
|
2
|
+
import type { FieldPath, FieldValues } from "react-hook-form";
|
|
3
|
+
import { type ChoiceFieldControllerProps } from "./useFieldController";
|
|
4
|
+
type SliderExtras = Omit<SliderRootProps, "value" | "defaultValue" | "onValueChange" | "invalid" | "disabled" | "children">;
|
|
5
|
+
/**
|
|
6
|
+
* RHF-bound slider over PR11's compound `Slider` (Root → Track → Range, Handle).
|
|
7
|
+
* The rendered track/range/handle use the primary token, so it themes without
|
|
8
|
+
* any per-instance styling.
|
|
9
|
+
*
|
|
10
|
+
* Value shape mirrors PR11 Slider: a single `number` by default, or a
|
|
11
|
+
* `[number, number]` tuple when the form field holds an array (two handles).
|
|
12
|
+
* `onValueChange` writes the raw value straight into RHF. `min`/`max`/`step`
|
|
13
|
+
* pass through.
|
|
14
|
+
*
|
|
15
|
+
* NOTE (PR11 11.0.0-rc.1): unlike the group primitives, `Slider` is a single
|
|
16
|
+
* control — `value`/`onValueChange` on `Slider.Root` reach the composed parts
|
|
17
|
+
* directly (verified in-browser), so no per-part binding fallback is needed. The
|
|
18
|
+
* Slider has no intrinsic width, so the Root gets `w-full`; the label sits above
|
|
19
|
+
* (config default, like TextField) rather than beside — a squeezed inline slider
|
|
20
|
+
* is unusable.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <RangeSlider name="price" control={control} label="Precio" min={0} max={500} />
|
|
24
|
+
* <RangeSlider name="range" control={control} label="Rango" min={0} max={100} />
|
|
25
|
+
*/
|
|
26
|
+
export declare function RangeSlider<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ChoiceFieldControllerProps<TFieldValues, TName> & SliderExtras): import("react/jsx-runtime").JSX.Element;
|
|
12
27
|
export default RangeSlider;
|
|
13
28
|
//# sourceMappingURL=RangeSlider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RangeSlider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RangeSlider.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RangeSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,0BAA0B,EAAsB,MAAM,sBAAsB,CAAC;AAI3F,KAAK,YAAY,GAAG,IAAI,CACtB,eAAe,EACf,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CACjF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CACzB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,KAAK,EAAE,0BAA0B,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,YAAY,2CA4DtE;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,9 +1,42 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Slider } from "@primereact/ui/slider";
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { FieldShell } from "./FieldShell";
|
|
5
|
+
import { useFieldController } from "./useFieldController";
|
|
6
|
+
/**
|
|
7
|
+
* RHF-bound slider over PR11's compound `Slider` (Root → Track → Range, Handle).
|
|
8
|
+
* The rendered track/range/handle use the primary token, so it themes without
|
|
9
|
+
* any per-instance styling.
|
|
10
|
+
*
|
|
11
|
+
* Value shape mirrors PR11 Slider: a single `number` by default, or a
|
|
12
|
+
* `[number, number]` tuple when the form field holds an array (two handles).
|
|
13
|
+
* `onValueChange` writes the raw value straight into RHF. `min`/`max`/`step`
|
|
14
|
+
* pass through.
|
|
15
|
+
*
|
|
16
|
+
* NOTE (PR11 11.0.0-rc.1): unlike the group primitives, `Slider` is a single
|
|
17
|
+
* control — `value`/`onValueChange` on `Slider.Root` reach the composed parts
|
|
18
|
+
* directly (verified in-browser), so no per-part binding fallback is needed. The
|
|
19
|
+
* Slider has no intrinsic width, so the Root gets `w-full`; the label sits above
|
|
20
|
+
* (config default, like TextField) rather than beside — a squeezed inline slider
|
|
21
|
+
* is unusable.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <RangeSlider name="price" control={control} label="Precio" min={0} max={500} />
|
|
25
|
+
* <RangeSlider name="range" control={control} label="Rango" min={0} max={100} />
|
|
26
|
+
*/
|
|
27
|
+
export function RangeSlider(props) {
|
|
28
|
+
const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, required, helpText, id, className, ...rest } = props;
|
|
29
|
+
const f = useFieldController({
|
|
30
|
+
name,
|
|
31
|
+
control,
|
|
32
|
+
rules,
|
|
33
|
+
defaultValue,
|
|
34
|
+
shouldUnregister,
|
|
35
|
+
disabled,
|
|
36
|
+
helpText,
|
|
37
|
+
id,
|
|
38
|
+
});
|
|
39
|
+
return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode ?? "top", required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsxs(Slider.Root, { value: f.field.value, onValueChange: (e) => f.field.onChange(e.value), invalid: f.invalid, disabled: f.disabled, className: clsx("w-full", className), ...rest, ...f.aria, children: [_jsx(Slider.Track, { children: _jsx(Slider.Range, {}) }), Array.isArray(f.field.value) ? (_jsxs(_Fragment, { children: [_jsx(Slider.Handle, { index: 0 }), _jsx(Slider.Handle, { index: 1 })] })) : (_jsx(Slider.Handle, {}))] }) }));
|
|
40
|
+
}
|
|
8
41
|
export default RangeSlider;
|
|
9
42
|
//# sourceMappingURL=RangeSlider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.js","sourceRoot":"","sources":["../../../src/components/Forms/RangeSlider.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RangeSlider.js","sourceRoot":"","sources":["../../../src/components/Forms/RangeSlider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAA8B,MAAM,uBAAuB,CAAC;AAC3E,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAmC,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS3F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,WAAW,CAGzB,KAAqE;IACrE,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,GAAG,kBAAkB,CAAsB;QAChD,IAAI;QACJ,OAAO;QACP,KAAK;QACL,YAAY;QACZ,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,EAAE;KACH,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,UAAU,IACT,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,KAAK,EAC7B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,MAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAsC,EACrD,aAAa,EAAE,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EACtE,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,KAChC,IAAI,KACJ,CAAC,CAAC,IAAI,aACV,KAAC,MAAM,CAAC,KAAK,cACX,KAAC,MAAM,CAAC,KAAK,KAAG,GACH,EAGd,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,8BACE,KAAC,MAAM,CAAC,MAAM,IAAC,KAAK,EAAE,CAAC,GAAI,EAC3B,KAAC,MAAM,CAAC,MAAM,IAAC,KAAK,EAAE,CAAC,GAAI,IAC1B,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,CAAC,MAAM,KAAG,CAClB,IACW,GACH,CACd,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { RatingRootProps } from "@primereact/types/primitive/rating";
|
|
2
|
+
import type { FieldPath, FieldValues } from "react-hook-form";
|
|
3
|
+
import { type ChoiceFieldControllerProps } from "./useFieldController";
|
|
4
|
+
type RatingExtras = Omit<RatingRootProps, "value" | "defaultValue" | "onValueChange" | "invalid" | "disabled" | "children">;
|
|
5
|
+
/**
|
|
6
|
+
* RHF-bound star rating over PR11's compound `Rating` (Root → Option → On/Off).
|
|
7
|
+
* Each option renders a filled/empty star from `@primeicons/react`, so the
|
|
8
|
+
* control fills to the value using the primary token without per-instance styling.
|
|
9
|
+
*
|
|
10
|
+
* Value shape: `number` (stars selected) or `null` when unset. `onValueChange`
|
|
11
|
+
* writes the numeric value into RHF. `stars` sets how many options render (5).
|
|
12
|
+
* Whole-star by default (`allowHalf={false}`) so the bound value stays an integer
|
|
13
|
+
* score; pass `allowHalf` to opt back into PR11's half-star behavior.
|
|
14
|
+
*
|
|
15
|
+
* NOTE (PR11 11.0.0-rc.1): `Rating` is a single control — `value`/`onValueChange`
|
|
16
|
+
* on `Rating.Root` reach the `Option` children directly (verified in-browser), so
|
|
17
|
+
* no per-part binding fallback is needed.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* <RatingInput name="score" control={control} label="Puntaje" />
|
|
21
|
+
* <RatingInput name="score" control={control} label="Puntaje" stars={10} />
|
|
22
|
+
*/
|
|
23
|
+
export declare function RatingInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ChoiceFieldControllerProps<TFieldValues, TName> & RatingExtras & {
|
|
6
24
|
stars?: number;
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
declare const RatingInput: React.FC<RatingInputProps>;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
26
|
export default RatingInput;
|
|
11
27
|
//# sourceMappingURL=RatingInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RatingInput.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"RatingInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/RatingInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,oCAAoC,CAAC;AAEtG,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,0BAA0B,EAAsB,MAAM,sBAAsB,CAAC;AAI3F,KAAK,YAAY,GAAG,IAAI,CACtB,eAAe,EACf,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CACjF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CACzB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,KAAK,EAAE,0BAA0B,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CA2D3F;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,11 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { Rating } from "primereact/rating";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Star } from "@primeicons/react/star";
|
|
3
|
+
import { StarFill } from "@primeicons/react/star-fill";
|
|
4
|
+
import { Rating } from "@primereact/ui/rating";
|
|
5
|
+
import { FieldShell } from "./FieldShell";
|
|
6
|
+
import { useFieldController } from "./useFieldController";
|
|
7
|
+
/**
|
|
8
|
+
* RHF-bound star rating over PR11's compound `Rating` (Root → Option → On/Off).
|
|
9
|
+
* Each option renders a filled/empty star from `@primeicons/react`, so the
|
|
10
|
+
* control fills to the value using the primary token without per-instance styling.
|
|
11
|
+
*
|
|
12
|
+
* Value shape: `number` (stars selected) or `null` when unset. `onValueChange`
|
|
13
|
+
* writes the numeric value into RHF. `stars` sets how many options render (5).
|
|
14
|
+
* Whole-star by default (`allowHalf={false}`) so the bound value stays an integer
|
|
15
|
+
* score; pass `allowHalf` to opt back into PR11's half-star behavior.
|
|
16
|
+
*
|
|
17
|
+
* NOTE (PR11 11.0.0-rc.1): `Rating` is a single control — `value`/`onValueChange`
|
|
18
|
+
* on `Rating.Root` reach the `Option` children directly (verified in-browser), so
|
|
19
|
+
* no per-part binding fallback is needed.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <RatingInput name="score" control={control} label="Puntaje" />
|
|
23
|
+
* <RatingInput name="score" control={control} label="Puntaje" stars={10} />
|
|
24
|
+
*/
|
|
25
|
+
export function RatingInput(props) {
|
|
26
|
+
const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, required, helpText, id, stars = 5, ...rest } = props;
|
|
27
|
+
const f = useFieldController({
|
|
28
|
+
name,
|
|
29
|
+
control,
|
|
30
|
+
rules,
|
|
31
|
+
defaultValue,
|
|
32
|
+
shouldUnregister,
|
|
33
|
+
disabled,
|
|
34
|
+
helpText,
|
|
35
|
+
id,
|
|
36
|
+
});
|
|
37
|
+
return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode ?? "top", required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(Rating.Root, { value: f.field.value ?? undefined, onValueChange: (e) => f.field.onChange(e.value), allowHalf: false,
|
|
38
|
+
// Rating.Option renders hidden native <input type="radio">, so pass
|
|
39
|
+
// invalid only when truthy — invalid={false} warns on a native input.
|
|
40
|
+
invalid: f.invalid || undefined, disabled: f.disabled, ...rest, ...f.aria, children: Array.from({ length: stars }, (_, i) => (_jsxs(Rating.Option, { index: i, children: [_jsx(Rating.On, { children: _jsx(StarFill, {}) }), _jsx(Rating.Off, { children: _jsx(Star, {}) })] }, i))) }) }));
|
|
41
|
+
}
|
|
10
42
|
export default RatingInput;
|
|
11
43
|
//# sourceMappingURL=RatingInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingInput.js","sourceRoot":"","sources":["../../../src/components/Forms/RatingInput.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"RatingInput.js","sourceRoot":"","sources":["../../../src/components/Forms/RatingInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAmC,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS3F;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAGzB,KAA0F;IAC1F,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,KAAK,GAAG,CAAC,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,GAAG,kBAAkB,CAAsB;QAChD,IAAI;QACJ,OAAO;QACP,KAAK;QACL,YAAY;QACZ,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,EAAE;KACH,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,UAAU,IACT,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,KAAK,EAC7B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,KAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAG,CAAC,CAAC,KAAK,CAAC,KAAuB,IAAI,SAAS,EACpD,aAAa,EAAE,CAAC,CAA6B,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAC3E,SAAS,EAAE,KAAK;YAChB,oEAAoE;YACpE,sEAAsE;YACtE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS,EAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAChB,IAAI,KACJ,CAAC,CAAC,IAAI,YACT,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACvC,MAAC,MAAM,CAAC,MAAM,IAAS,KAAK,EAAE,CAAC,aAC7B,KAAC,MAAM,CAAC,EAAE,cACR,KAAC,QAAQ,KAAG,GACF,EACZ,KAAC,MAAM,CAAC,GAAG,cACT,KAAC,IAAI,KAAG,GACG,KANK,CAAC,CAOL,CACjB,CAAC,GACU,GACH,CACd,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
import { InputTextProps } from
|
|
2
|
-
import React from
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { InputTextProps } from "@primereact/types/primitive/inputtext";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
import type { FieldPath, FieldValues } from "react-hook-form";
|
|
4
|
+
import { type FieldControllerProps } from "./useFieldController";
|
|
5
|
+
type InputTextExtras = Omit<InputTextProps & React.InputHTMLAttributes<HTMLInputElement>, "id" | "name" | "value" | "onChange" | "onBlur" | "defaultValue" | "invalid" | "disabled">;
|
|
6
|
+
/**
|
|
7
|
+
* RHF-bound search input over PR11 `InputText` inside `IconField` (search icon
|
|
8
|
+
* on the left via `IconField.Inset`, a clear ✕ on the right when non-empty).
|
|
9
|
+
* `onSearch` fires debounced (default 300ms); the raw value binds to RHF.
|
|
10
|
+
* Value = `string`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <SearchInput name="q" control={control} label="Buscar" onSearch={run} />
|
|
14
|
+
*/
|
|
15
|
+
export declare function SearchInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: FieldControllerProps<TFieldValues, TName> & InputTextExtras & {
|
|
16
|
+
/** Fired (debounced) with the current value on each change. */
|
|
7
17
|
onSearch?: (value: string) => void;
|
|
18
|
+
/** Debounce delay for `onSearch`, ms. Default 300. */
|
|
8
19
|
debounceMs?: number;
|
|
9
|
-
|
|
10
|
-
onChange?: (value: string) => void;
|
|
11
|
-
}
|
|
12
|
-
declare const SearchInput: React.FC<SearchInputProps>;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
21
|
export default SearchInput;
|
|
14
22
|
//# sourceMappingURL=SearchInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/SearchInput.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/SearchInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAK5E,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,sBAAsB,CAAC;AAWrF,KAAK,eAAe,GAAG,IAAI,CACzB,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC5D,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,CAC1F,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,GAC9C,eAAe,GAAG;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAiGJ;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
2
|
+
import { Search } from "@primeicons/react/search";
|
|
3
|
+
import { Times } from "@primeicons/react/times";
|
|
4
|
+
import { IconField } from "@primereact/ui/iconfield";
|
|
5
|
+
import { InputText } from "@primereact/ui/inputtext";
|
|
6
|
+
import clsx from "clsx";
|
|
7
|
+
import { useRef } from "react";
|
|
8
|
+
import { FieldShell } from "./FieldShell";
|
|
9
|
+
import { useFieldController } from "./useFieldController";
|
|
10
|
+
// ponytail: inline debounce — 5 lines, no library needed.
|
|
8
11
|
function useDebouncedCallback(fn, delay) {
|
|
9
12
|
const timer = useRef(undefined);
|
|
10
13
|
return (value) => {
|
|
@@ -12,23 +15,41 @@ function useDebouncedCallback(fn, delay) {
|
|
|
12
15
|
timer.current = setTimeout(() => fn(value), delay);
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
/**
|
|
19
|
+
* RHF-bound search input over PR11 `InputText` inside `IconField` (search icon
|
|
20
|
+
* on the left via `IconField.Inset`, a clear ✕ on the right when non-empty).
|
|
21
|
+
* `onSearch` fires debounced (default 300ms); the raw value binds to RHF.
|
|
22
|
+
* Value = `string`.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <SearchInput name="q" control={control} label="Buscar" onSearch={run} />
|
|
26
|
+
*/
|
|
27
|
+
export function SearchInput(props) {
|
|
28
|
+
const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, floatVariant, addonBefore, addonAfter, required, helpText, id, variant, size, className, fluid, onSearch, debounceMs = 300, ...rest } = props;
|
|
29
|
+
const f = useFieldController({
|
|
30
|
+
name,
|
|
31
|
+
control,
|
|
32
|
+
rules,
|
|
33
|
+
defaultValue,
|
|
34
|
+
shouldUnregister,
|
|
35
|
+
disabled,
|
|
36
|
+
helpText,
|
|
37
|
+
id,
|
|
38
|
+
variant,
|
|
39
|
+
size,
|
|
40
|
+
fluid,
|
|
41
|
+
});
|
|
17
42
|
const fireSearch = useDebouncedCallback(onSearch ?? (() => { }), debounceMs);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
onChangeProp?.(v);
|
|
30
|
-
fireSearch(v);
|
|
31
|
-
} })] }));
|
|
32
|
-
};
|
|
43
|
+
const { ref: fieldRef } = f.field;
|
|
44
|
+
const value = f.field.value ?? "";
|
|
45
|
+
const clear = () => {
|
|
46
|
+
f.field.onChange("");
|
|
47
|
+
fireSearch("");
|
|
48
|
+
};
|
|
49
|
+
return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode, floatVariant: floatVariant, addonBefore: addonBefore, addonAfter: addonAfter, required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsxs(IconField.Root, { className: 'w-full', children: [_jsx(IconField.Inset, { children: _jsx(Search, {}) }), _jsx(InputText, { id: f.id, name: f.field.name, ref: fieldRef, value: value, onChange: (e) => {
|
|
50
|
+
f.field.onChange(e.target.value);
|
|
51
|
+
fireSearch(e.target.value);
|
|
52
|
+
}, onBlur: f.field.onBlur, invalid: f.invalid, disabled: f.disabled, variant: f.variant, size: f.size, fluid: f.fluid, className: clsx("w-full", className), ...rest, ...f.aria }), value ? (_jsx(IconField.Inset, { children: _jsx(Times, { role: 'button', tabIndex: 0, "aria-label": 'Limpiar b\u00FAsqueda', className: 'cursor-pointer', onClick: clear }) })) : null] }) }));
|
|
53
|
+
}
|
|
33
54
|
export default SearchInput;
|
|
34
55
|
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/Forms/SearchInput.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/Forms/SearchInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SelectRootProps } from "@primereact/types/primitive/select";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import type { FieldPath, FieldValues } from "react-hook-form";
|
|
4
|
+
import { type FieldControllerProps } from "./useFieldController";
|
|
5
|
+
type OptionRow = Record<string, unknown>;
|
|
6
|
+
type SelectExtras = Omit<SelectRootProps, "value" | "onValueChange" | "onOpenChange" | "invalid" | "disabled" | "variant" | "size" | "children">;
|
|
7
|
+
/** Option-rendering options: named presets (90%) + a render-prop escape (10%). */
|
|
8
|
+
interface SelectTemplateProps {
|
|
9
|
+
/** Named preset for per-option rendering. 'default' uses <Select.List/> auto-render. */
|
|
10
|
+
optionTemplate?: "default" | "twoLine";
|
|
11
|
+
/** Second line for the 'twoLine' preset. */
|
|
12
|
+
descriptionField?: string;
|
|
13
|
+
/** Escape hatch: full custom per-option render. Overrides optionTemplate. */
|
|
14
|
+
renderOption?: (option: OptionRow, index: number) => ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* RHF-bound Select over PR11's portal-based compound Select. Single-select by
|
|
18
|
+
* default; pass `multiple` for array mode (absorbs the former MultiSelect).
|
|
19
|
+
*
|
|
20
|
+
* Value shape: the bound value is the selected option value (scalar) — or an
|
|
21
|
+
* ARRAY of them when `multiple`. PR11's `Select.Value` renders the selected
|
|
22
|
+
* label(s) in the trigger for both modes, so the wrapper stays presentation-thin.
|
|
23
|
+
*
|
|
24
|
+
* Portal-specific concerns: id + aria on Select.Trigger (a button, not <input>),
|
|
25
|
+
* and field.onBlur fired on overlay close (no native blur).
|
|
26
|
+
*
|
|
27
|
+
* Templating follows the library convention — named presets for the common case,
|
|
28
|
+
* a `renderOption` render-prop escape for anything custom:
|
|
29
|
+
* @example
|
|
30
|
+
* <SelectField name="city" control={control} label="Ciudad"
|
|
31
|
+
* options={CITIES} optionLabel="label" optionValue="value" /> // single
|
|
32
|
+
* <SelectField name="tags" control={control} label="Tags" multiple
|
|
33
|
+
* options={TAGS} optionLabel="label" optionValue="value" /> // array mode
|
|
34
|
+
* <SelectField ... optionTemplate="twoLine" descriptionField="region" /> // preset
|
|
35
|
+
* <SelectField ... renderOption={(o) => <Flag code={o.code} />} /> // escape
|
|
36
|
+
*/
|
|
37
|
+
export declare function SelectField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: FieldControllerProps<TFieldValues, TName> & SelectExtras & SelectTemplateProps & {
|
|
38
|
+
placeholder?: string;
|
|
39
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=SelectField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/SelectField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,oCAAoC,CAAC;AAIlG,OAAO,EAAoB,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,sBAAsB,CAAC;AAErF,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAKzC,KAAK,YAAY,GAAG,IAAI,CACtB,eAAe,EACf,OAAO,GAAG,eAAe,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CACtG,CAAC;AAEF,kFAAkF;AAClF,UAAU,mBAAmB;IAC3B,wFAAwF;IACxF,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CACzB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAE/D,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,GAC9C,YAAY,GACZ,mBAAmB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,2CA8MjD"}
|