@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.
Files changed (377) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/COMPONENTS.md +113 -15
  3. package/README.md +13 -6
  4. package/catalog.json +3031 -0
  5. package/dist/components/Buttons/Button.d.ts +39 -9
  6. package/dist/components/Buttons/Button.d.ts.map +1 -1
  7. package/dist/components/Buttons/Button.js +21 -13
  8. package/dist/components/Buttons/Button.js.map +1 -1
  9. package/dist/components/Forms/AutoCompleteField.d.ts +60 -0
  10. package/dist/components/Forms/AutoCompleteField.d.ts.map +1 -0
  11. package/dist/components/Forms/AutoCompleteField.js +125 -0
  12. package/dist/components/Forms/AutoCompleteField.js.map +1 -0
  13. package/dist/components/Forms/CKEditorInput.d.ts +5 -2
  14. package/dist/components/Forms/CKEditorInput.d.ts.map +1 -1
  15. package/dist/components/Forms/CKEditorInput.js +5 -2
  16. package/dist/components/Forms/CKEditorInput.js.map +1 -1
  17. package/dist/components/Forms/CheckboxField.d.ts +14 -0
  18. package/dist/components/Forms/CheckboxField.d.ts.map +1 -0
  19. package/dist/components/Forms/CheckboxField.js +26 -0
  20. package/dist/components/Forms/CheckboxField.js.map +1 -0
  21. package/dist/components/Forms/ColorPickerInput.d.ts +27 -8
  22. package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -1
  23. package/dist/components/Forms/ColorPickerInput.js +57 -11
  24. package/dist/components/Forms/ColorPickerInput.js.map +1 -1
  25. package/dist/components/Forms/DateField.d.ts +68 -0
  26. package/dist/components/Forms/DateField.d.ts.map +1 -0
  27. package/dist/components/Forms/DateField.js +108 -0
  28. package/dist/components/Forms/DateField.js.map +1 -0
  29. package/dist/components/Forms/DatePresets.d.ts.map +1 -1
  30. package/dist/components/Forms/DatePresets.js +6 -3
  31. package/dist/components/Forms/DatePresets.js.map +1 -1
  32. package/dist/components/Forms/FieldShell.d.ts +24 -0
  33. package/dist/components/Forms/FieldShell.d.ts.map +1 -0
  34. package/dist/components/Forms/FieldShell.js +39 -0
  35. package/dist/components/Forms/FieldShell.js.map +1 -0
  36. package/dist/components/Forms/FileDropzone.d.ts +4 -2
  37. package/dist/components/Forms/FileDropzone.d.ts.map +1 -1
  38. package/dist/components/Forms/FileDropzone.js.map +1 -1
  39. package/dist/components/Forms/FormActionsBar.js +2 -2
  40. package/dist/components/Forms/FormActionsBar.js.map +1 -1
  41. package/dist/components/Forms/FormWizard.d.ts +1 -1
  42. package/dist/components/Forms/FormWizard.d.ts.map +1 -1
  43. package/dist/components/Forms/FormWizard.js +4 -5
  44. package/dist/components/Forms/FormWizard.js.map +1 -1
  45. package/dist/components/Forms/HiddenField.d.ts +12 -6
  46. package/dist/components/Forms/HiddenField.d.ts.map +1 -1
  47. package/dist/components/Forms/HiddenField.js +14 -5
  48. package/dist/components/Forms/HiddenField.js.map +1 -1
  49. package/dist/components/Forms/MaskField.d.ts +28 -0
  50. package/dist/components/Forms/MaskField.d.ts.map +1 -0
  51. package/dist/components/Forms/MaskField.js +74 -0
  52. package/dist/components/Forms/MaskField.js.map +1 -0
  53. package/dist/components/Forms/NumberField.d.ts +14 -0
  54. package/dist/components/Forms/NumberField.d.ts.map +1 -0
  55. package/dist/components/Forms/NumberField.js +51 -0
  56. package/dist/components/Forms/NumberField.js.map +1 -0
  57. package/dist/components/Forms/OtpInput.d.ts +23 -8
  58. package/dist/components/Forms/OtpInput.d.ts.map +1 -1
  59. package/dist/components/Forms/OtpInput.js +37 -8
  60. package/dist/components/Forms/OtpInput.js.map +1 -1
  61. package/dist/components/Forms/PasswordInput.d.ts +22 -9
  62. package/dist/components/Forms/PasswordInput.d.ts.map +1 -1
  63. package/dist/components/Forms/PasswordInput.js +63 -28
  64. package/dist/components/Forms/PasswordInput.js.map +1 -1
  65. package/dist/components/Forms/PhoneInput.d.ts +16 -8
  66. package/dist/components/Forms/PhoneInput.d.ts.map +1 -1
  67. package/dist/components/Forms/PhoneInput.js +13 -6
  68. package/dist/components/Forms/PhoneInput.js.map +1 -1
  69. package/dist/components/Forms/RadioGroup.d.ts +34 -13
  70. package/dist/components/Forms/RadioGroup.d.ts.map +1 -1
  71. package/dist/components/Forms/RadioGroup.js +49 -6
  72. package/dist/components/Forms/RadioGroup.js.map +1 -1
  73. package/dist/components/Forms/RangeSlider.d.ts +26 -11
  74. package/dist/components/Forms/RangeSlider.d.ts.map +1 -1
  75. package/dist/components/Forms/RangeSlider.js +40 -7
  76. package/dist/components/Forms/RangeSlider.js.map +1 -1
  77. package/dist/components/Forms/RatingInput.d.ts +24 -8
  78. package/dist/components/Forms/RatingInput.d.ts.map +1 -1
  79. package/dist/components/Forms/RatingInput.js +41 -9
  80. package/dist/components/Forms/RatingInput.js.map +1 -1
  81. package/dist/components/Forms/SearchInput.d.ts +18 -10
  82. package/dist/components/Forms/SearchInput.d.ts.map +1 -1
  83. package/dist/components/Forms/SearchInput.js +44 -23
  84. package/dist/components/Forms/SearchInput.js.map +1 -1
  85. package/dist/components/Forms/SelectField.d.ts +41 -0
  86. package/dist/components/Forms/SelectField.d.ts.map +1 -0
  87. package/dist/components/Forms/SelectField.js +110 -0
  88. package/dist/components/Forms/SelectField.js.map +1 -0
  89. package/dist/components/Forms/SwitchField.d.ts +14 -0
  90. package/dist/components/Forms/SwitchField.d.ts.map +1 -0
  91. package/dist/components/Forms/SwitchField.js +26 -0
  92. package/dist/components/Forms/SwitchField.js.map +1 -0
  93. package/dist/components/Forms/TagsInput.d.ts +29 -8
  94. package/dist/components/Forms/TagsInput.d.ts.map +1 -1
  95. package/dist/components/Forms/TagsInput.js +53 -9
  96. package/dist/components/Forms/TagsInput.js.map +1 -1
  97. package/dist/components/Forms/TextArea.d.ts +13 -10
  98. package/dist/components/Forms/TextArea.d.ts.map +1 -1
  99. package/dist/components/Forms/TextArea.js +27 -9
  100. package/dist/components/Forms/TextArea.js.map +1 -1
  101. package/dist/components/Forms/TextField.d.ts +14 -0
  102. package/dist/components/Forms/TextField.d.ts.map +1 -0
  103. package/dist/components/Forms/TextField.js +29 -0
  104. package/dist/components/Forms/TextField.js.map +1 -0
  105. package/dist/components/Forms/ToggleInlineButton.d.ts +33 -12
  106. package/dist/components/Forms/ToggleInlineButton.d.ts.map +1 -1
  107. package/dist/components/Forms/ToggleInlineButton.js +56 -6
  108. package/dist/components/Forms/ToggleInlineButton.js.map +1 -1
  109. package/dist/components/Forms/UploadFilesPreview.js +3 -3
  110. package/dist/components/Forms/UploadFilesPreview.js.map +1 -1
  111. package/dist/components/Forms/field-typing.test-d.d.ts +2 -0
  112. package/dist/components/Forms/field-typing.test-d.d.ts.map +1 -0
  113. package/dist/components/Forms/field-typing.test-d.js +24 -0
  114. package/dist/components/Forms/field-typing.test-d.js.map +1 -0
  115. package/dist/components/Forms/useFieldController.d.ts +85 -0
  116. package/dist/components/Forms/useFieldController.d.ts.map +1 -0
  117. package/dist/components/Forms/useFieldController.js +54 -0
  118. package/dist/components/Forms/useFieldController.js.map +1 -0
  119. package/dist/components/Loaders/Loading.d.ts.map +1 -1
  120. package/dist/components/Loaders/Loading.js +3 -2
  121. package/dist/components/Loaders/Loading.js.map +1 -1
  122. package/dist/components/Tables/ActionColumn.d.ts +20 -4
  123. package/dist/components/Tables/ActionColumn.d.ts.map +1 -1
  124. package/dist/components/Tables/ActionColumn.js +24 -5
  125. package/dist/components/Tables/ActionColumn.js.map +1 -1
  126. package/dist/components/Tables/FilterPannel.d.ts +9 -2
  127. package/dist/components/Tables/FilterPannel.d.ts.map +1 -1
  128. package/dist/components/Tables/FilterPannel.js +15 -11
  129. package/dist/components/Tables/FilterPannel.js.map +1 -1
  130. package/dist/components/Tables/IndexColumn.d.ts +12 -3
  131. package/dist/components/Tables/IndexColumn.d.ts.map +1 -1
  132. package/dist/components/Tables/IndexColumn.js +21 -5
  133. package/dist/components/Tables/IndexColumn.js.map +1 -1
  134. package/dist/components/Tables/MantisDataTable.d.ts +45 -0
  135. package/dist/components/Tables/MantisDataTable.d.ts.map +1 -0
  136. package/dist/components/Tables/MantisDataTable.js +63 -0
  137. package/dist/components/Tables/MantisDataTable.js.map +1 -0
  138. package/dist/components/Tables/MenuButton.d.ts +28 -7
  139. package/dist/components/Tables/MenuButton.d.ts.map +1 -1
  140. package/dist/components/Tables/MenuButton.js +20 -10
  141. package/dist/components/Tables/MenuButton.js.map +1 -1
  142. package/dist/components/Tables/PaginatedTable.d.ts +26 -17
  143. package/dist/components/Tables/PaginatedTable.d.ts.map +1 -1
  144. package/dist/components/Tables/PaginatedTable.js +24 -22
  145. package/dist/components/Tables/PaginatedTable.js.map +1 -1
  146. package/dist/components/Tables/cell-presets.d.ts +35 -0
  147. package/dist/components/Tables/cell-presets.d.ts.map +1 -0
  148. package/dist/components/Tables/cell-presets.js +40 -0
  149. package/dist/components/Tables/cell-presets.js.map +1 -0
  150. package/dist/components/Tables/columns.d.ts +40 -0
  151. package/dist/components/Tables/columns.d.ts.map +1 -0
  152. package/dist/components/Tables/columns.js +2 -0
  153. package/dist/components/Tables/columns.js.map +1 -0
  154. package/dist/components/Tables/filters/MultiSelectFilter.d.ts +24 -6
  155. package/dist/components/Tables/filters/MultiSelectFilter.d.ts.map +1 -1
  156. package/dist/components/Tables/filters/MultiSelectFilter.js +19 -6
  157. package/dist/components/Tables/filters/MultiSelectFilter.js.map +1 -1
  158. package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -1
  159. package/dist/components/auth/ChangePasswordForm.js +12 -12
  160. package/dist/components/auth/ChangePasswordForm.js.map +1 -1
  161. package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -1
  162. package/dist/components/auth/ForgotPasswordForm.js +7 -5
  163. package/dist/components/auth/ForgotPasswordForm.js.map +1 -1
  164. package/dist/components/auth/LoginForm.d.ts +2 -2
  165. package/dist/components/auth/LoginForm.d.ts.map +1 -1
  166. package/dist/components/auth/LoginForm.js +15 -15
  167. package/dist/components/auth/LoginForm.js.map +1 -1
  168. package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -1
  169. package/dist/components/auth/ResetPasswordForm.js +11 -12
  170. package/dist/components/auth/ResetPasswordForm.js.map +1 -1
  171. package/dist/components/auth/UserMenu.d.ts +11 -1
  172. package/dist/components/auth/UserMenu.d.ts.map +1 -1
  173. package/dist/components/auth/UserMenu.js +30 -87
  174. package/dist/components/auth/UserMenu.js.map +1 -1
  175. package/dist/components/data/Timeline.d.ts +2 -2
  176. package/dist/components/data/Timeline.d.ts.map +1 -1
  177. package/dist/components/data/Timeline.js +17 -17
  178. package/dist/components/data/Timeline.js.map +1 -1
  179. package/dist/components/feedback/Avatar.d.ts +4 -2
  180. package/dist/components/feedback/Avatar.d.ts.map +1 -1
  181. package/dist/components/feedback/Avatar.js +4 -4
  182. package/dist/components/feedback/Avatar.js.map +1 -1
  183. package/dist/components/feedback/CardSkeleton.d.ts.map +1 -1
  184. package/dist/components/feedback/CardSkeleton.js +3 -3
  185. package/dist/components/feedback/CardSkeleton.js.map +1 -1
  186. package/dist/components/feedback/TableSkeleton.d.ts.map +1 -1
  187. package/dist/components/feedback/TableSkeleton.js +3 -3
  188. package/dist/components/feedback/TableSkeleton.js.map +1 -1
  189. package/dist/components/feedback/Tag.d.ts +4 -2
  190. package/dist/components/feedback/Tag.d.ts.map +1 -1
  191. package/dist/components/feedback/Tag.js +4 -4
  192. package/dist/components/feedback/Tag.js.map +1 -1
  193. package/dist/components/navigation/CommandPalette.d.ts.map +1 -1
  194. package/dist/components/navigation/CommandPalette.js +5 -2
  195. package/dist/components/navigation/CommandPalette.js.map +1 -1
  196. package/dist/components/navigation/PageTabs.d.ts +10 -8
  197. package/dist/components/navigation/PageTabs.d.ts.map +1 -1
  198. package/dist/components/navigation/PageTabs.js +17 -13
  199. package/dist/components/navigation/PageTabs.js.map +1 -1
  200. package/dist/components/overlays/Drawer.d.ts +16 -3
  201. package/dist/components/overlays/Drawer.d.ts.map +1 -1
  202. package/dist/components/overlays/Drawer.js +9 -5
  203. package/dist/components/overlays/Drawer.js.map +1 -1
  204. package/dist/components/overlays/Modal.d.ts +18 -3
  205. package/dist/components/overlays/Modal.d.ts.map +1 -1
  206. package/dist/components/overlays/Modal.js +13 -5
  207. package/dist/components/overlays/Modal.js.map +1 -1
  208. package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -1
  209. package/dist/components/pages/app-shell/AppShell.js +6 -6
  210. package/dist/components/pages/app-shell/AppShell.js.map +1 -1
  211. package/dist/components/ui/ConfirmDialog.d.ts +1 -2
  212. package/dist/components/ui/ConfirmDialog.d.ts.map +1 -1
  213. package/dist/components/ui/ConfirmDialog.js +10 -4
  214. package/dist/components/ui/ConfirmDialog.js.map +1 -1
  215. package/dist/components/ui/DataState.js +2 -2
  216. package/dist/components/ui/DataState.js.map +1 -1
  217. package/dist/index.d.ts +71 -42
  218. package/dist/index.d.ts.map +1 -1
  219. package/dist/index.js +114 -22
  220. package/dist/index.js.map +1 -1
  221. package/docs/README.md +1 -1
  222. package/docs/components/action-column.md +39 -12
  223. package/docs/components/admin-page-configurator.md +42 -0
  224. package/docs/components/admin-page-header.md +32 -16
  225. package/docs/components/admin-page-layout-shell.md +36 -0
  226. package/docs/components/admin-page-layout.md +41 -21
  227. package/docs/components/app-shell.md +45 -0
  228. package/docs/components/auto-complete-field.md +60 -0
  229. package/docs/components/avatar.md +29 -0
  230. package/docs/components/bar-chart.md +39 -0
  231. package/docs/components/breadcrumbs.md +28 -0
  232. package/docs/components/button.md +41 -17
  233. package/docs/components/card-skeleton.md +21 -0
  234. package/docs/components/change-password-form.md +36 -0
  235. package/docs/components/checkbox-field.md +38 -0
  236. package/docs/components/ckeditor-input.md +47 -16
  237. package/docs/components/color-picker-input.md +30 -0
  238. package/docs/components/command-palette.md +38 -0
  239. package/docs/components/confirm-dialog.md +45 -16
  240. package/docs/components/data-state.md +39 -14
  241. package/docs/components/date-field.md +39 -0
  242. package/docs/components/date-presets.md +32 -0
  243. package/docs/components/description-list.md +34 -0
  244. package/docs/components/dirty-form-guard.md +28 -24
  245. package/docs/components/donut-chart.md +38 -0
  246. package/docs/components/drawer.md +38 -0
  247. package/docs/components/empty-state.md +28 -0
  248. package/docs/components/error-boundary.md +31 -0
  249. package/docs/components/error-message.md +29 -8
  250. package/docs/components/field-shell.md +47 -0
  251. package/docs/components/file-dropzone.md +45 -17
  252. package/docs/components/filter-pannel.md +40 -15
  253. package/docs/components/forgot-password-form.md +36 -0
  254. package/docs/components/form-actions-bar.md +47 -17
  255. package/docs/components/form-field-render.md +43 -15
  256. package/docs/components/form-section.md +26 -10
  257. package/docs/components/form-wizard.md +47 -0
  258. package/docs/components/hidden-field.md +27 -14
  259. package/docs/components/index-column.md +31 -8
  260. package/docs/components/line-chart.md +39 -0
  261. package/docs/components/loading.md +23 -12
  262. package/docs/components/login-form.md +47 -0
  263. package/docs/components/mantis-data-table.md +61 -0
  264. package/docs/components/map-picker-client.md +35 -14
  265. package/docs/components/map-picker-osm.md +33 -13
  266. package/docs/components/map-picker.md +34 -16
  267. package/docs/components/mask-field.md +31 -0
  268. package/docs/components/menu-button.md +28 -17
  269. package/docs/components/modal.md +45 -0
  270. package/docs/components/multi-select-filter.md +31 -15
  271. package/docs/components/number-field.md +40 -0
  272. package/docs/components/otp-input.md +31 -0
  273. package/docs/components/page-tabs.md +35 -0
  274. package/docs/components/page-title.md +15 -8
  275. package/docs/components/paginated-table.md +42 -26
  276. package/docs/components/pagination.md +28 -18
  277. package/docs/components/password-input.md +31 -0
  278. package/docs/components/phone-input.md +28 -0
  279. package/docs/components/radio-group.md +50 -0
  280. package/docs/components/range-slider.md +32 -0
  281. package/docs/components/rating-input.md +30 -0
  282. package/docs/components/render-field.md +41 -18
  283. package/docs/components/reset-password-form.md +37 -0
  284. package/docs/components/rich-text-preview.md +26 -13
  285. package/docs/components/search-input.md +30 -0
  286. package/docs/components/select-field.md +55 -0
  287. package/docs/components/stat-card.md +30 -0
  288. package/docs/components/status-badge.md +25 -9
  289. package/docs/components/switch-field.md +32 -0
  290. package/docs/components/table-filter-field.md +30 -16
  291. package/docs/components/table-skeleton.md +22 -0
  292. package/docs/components/table-toolbar.md +28 -14
  293. package/docs/components/tag.md +27 -0
  294. package/docs/components/tags-input.md +32 -0
  295. package/docs/components/text-area.md +25 -15
  296. package/docs/components/text-field.md +32 -0
  297. package/docs/components/timeline.md +31 -0
  298. package/docs/components/toggle-inline-button.md +48 -17
  299. package/docs/components/upload-files-preview.md +39 -20
  300. package/docs/components/use-field-controller.md +58 -0
  301. package/docs/components/user-menu.md +39 -0
  302. package/docs/contracts/STORYBOOK_IMPLEMENTATION_AND_VOBO.md +92 -0
  303. package/docs/contracts/STORYBOOK_VOBO_LEDGER.md +195 -0
  304. package/docs/contracts/component-doc-schema.md +120 -0
  305. package/docs/contracts/dependency-map.md +76 -39
  306. package/docs/contracts/field-controller.md +138 -0
  307. package/docs/contracts/style-imports.md +21 -14
  308. package/llms.txt +104 -0
  309. package/package.json +39 -10
  310. package/PRIMEREACT_MAPPING.md +0 -6
  311. package/dist/components/Forms/AsyncSelect.d.ts +0 -20
  312. package/dist/components/Forms/AsyncSelect.d.ts.map +0 -1
  313. package/dist/components/Forms/AsyncSelect.js +0 -77
  314. package/dist/components/Forms/AsyncSelect.js.map +0 -1
  315. package/dist/components/Forms/Combobox.d.ts +0 -10
  316. package/dist/components/Forms/Combobox.d.ts.map +0 -1
  317. package/dist/components/Forms/Combobox.js +0 -11
  318. package/dist/components/Forms/Combobox.js.map +0 -1
  319. package/dist/components/Forms/CurrencyInput.d.ts +0 -12
  320. package/dist/components/Forms/CurrencyInput.d.ts.map +0 -1
  321. package/dist/components/Forms/CurrencyInput.js +0 -9
  322. package/dist/components/Forms/CurrencyInput.js.map +0 -1
  323. package/dist/components/Forms/DateInput.d.ts +0 -10
  324. package/dist/components/Forms/DateInput.d.ts.map +0 -1
  325. package/dist/components/Forms/DateInput.js +0 -11
  326. package/dist/components/Forms/DateInput.js.map +0 -1
  327. package/dist/components/Forms/DateRangeInput.d.ts +0 -10
  328. package/dist/components/Forms/DateRangeInput.d.ts.map +0 -1
  329. package/dist/components/Forms/DateRangeInput.js +0 -13
  330. package/dist/components/Forms/DateRangeInput.js.map +0 -1
  331. package/dist/components/Forms/DropDown.d.ts +0 -10
  332. package/dist/components/Forms/DropDown.d.ts.map +0 -1
  333. package/dist/components/Forms/DropDown.js +0 -11
  334. package/dist/components/Forms/DropDown.js.map +0 -1
  335. package/dist/components/Forms/MultiSelect.d.ts +0 -10
  336. package/dist/components/Forms/MultiSelect.d.ts.map +0 -1
  337. package/dist/components/Forms/MultiSelect.js +0 -13
  338. package/dist/components/Forms/MultiSelect.js.map +0 -1
  339. package/dist/components/Forms/NumberInput.d.ts +0 -10
  340. package/dist/components/Forms/NumberInput.d.ts.map +0 -1
  341. package/dist/components/Forms/NumberInput.js +0 -16
  342. package/dist/components/Forms/NumberInput.js.map +0 -1
  343. package/dist/components/Forms/Select.d.ts +0 -15
  344. package/dist/components/Forms/Select.d.ts.map +0 -1
  345. package/dist/components/Forms/Select.js +0 -48
  346. package/dist/components/Forms/Select.js.map +0 -1
  347. package/dist/components/Forms/Switch.d.ts +0 -18
  348. package/dist/components/Forms/Switch.d.ts.map +0 -1
  349. package/dist/components/Forms/Switch.js +0 -30
  350. package/dist/components/Forms/Switch.js.map +0 -1
  351. package/dist/components/Forms/TextInput.d.ts +0 -11
  352. package/dist/components/Forms/TextInput.d.ts.map +0 -1
  353. package/dist/components/Forms/TextInput.js +0 -12
  354. package/dist/components/Forms/TextInput.js.map +0 -1
  355. package/dist/components/Forms/TimePicker.d.ts +0 -13
  356. package/dist/components/Forms/TimePicker.d.ts.map +0 -1
  357. package/dist/components/Forms/TimePicker.js +0 -19
  358. package/dist/components/Forms/TimePicker.js.map +0 -1
  359. package/dist/components/Forms/Toggle.d.ts +0 -14
  360. package/dist/components/Forms/Toggle.d.ts.map +0 -1
  361. package/dist/components/Forms/Toggle.js +0 -10
  362. package/dist/components/Forms/Toggle.js.map +0 -1
  363. package/dist/components/Forms/types.d.ts +0 -9
  364. package/dist/components/Forms/types.d.ts.map +0 -1
  365. package/dist/components/Forms/types.js +0 -2
  366. package/dist/components/Forms/types.js.map +0 -1
  367. package/docs/components/async-select.md +0 -26
  368. package/docs/components/date-input.md +0 -22
  369. package/docs/components/drop-down.md +0 -28
  370. package/docs/components/multi-select.md +0 -23
  371. package/docs/components/number-input.md +0 -20
  372. package/docs/components/select.md +0 -28
  373. package/docs/components/switch.md +0 -27
  374. package/docs/components/text-input.md +0 -23
  375. package/docs/components/time-picker.md +0 -22
  376. package/docs/components/toggle.md +0 -21
  377. package/docs/contracts/controller-props.md +0 -28
@@ -1,15 +1,36 @@
1
- import React from 'react';
2
- import { ControllerProps } from './types';
3
- export interface RadioGroupProps {
4
- controller: ControllerProps;
5
- options: {
6
- label: string;
7
- value: any;
8
- }[];
9
- block?: boolean;
10
- disabled?: boolean;
11
- className?: string;
12
- }
13
- declare const RadioGroup: React.FC<RadioGroupProps>;
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":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyBzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
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 classNames from 'classnames';
3
- import { RadioButton } from 'primereact/radiobutton';
4
- import { Controller } from 'react-hook-form';
5
- const RadioGroup = ({ controller, options, block, disabled, className }) => {
6
- return (_jsx(Controller, { ...controller, render: ({ field, formState }) => (_jsx("div", { className: classNames('flex flex-column gap-2', { 'w-full': block }, className), children: options.map((opt) => (_jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(RadioButton, { inputId: `${field.name}_${opt.value}`, name: field.name, value: opt.value, checked: field.value === opt.value, onChange: () => field.onChange(opt.value), onBlur: field.onBlur, disabled: formState.isSubmitting || disabled, ref: field.ref }), _jsx("label", { htmlFor: `${field.name}_${opt.value}`, children: opt.label })] }, String(opt.value)))) })) }));
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":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C,MAAM,UAAU,GAA8B,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IACpG,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAChC,cAAK,SAAS,EAAE,UAAU,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,YACjF,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,eAA6B,SAAS,EAAC,+BAA+B,aACpE,KAAC,WAAW,IACV,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,EACrC,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAClC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,SAAS,CAAC,YAAY,IAAI,QAAQ,EAC5C,GAAG,EAAE,KAAK,CAAC,GAAG,GACd,EACF,gBAAO,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,YAAG,GAAG,CAAC,KAAK,GAAS,KAXzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAYrB,CACP,CAAC,GACE,CACP,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
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 { SliderProps } from 'primereact/slider';
2
- import React from 'react';
3
- import { ControllerProps } from './types';
4
- export interface RangeSliderProps extends Omit<SliderProps, 'name' | 'range' | 'value' | 'onChange'> {
5
- controller: ControllerProps;
6
- block?: boolean;
7
- min?: number;
8
- max?: number;
9
- step?: number;
10
- }
11
- declare const RangeSlider: React.FC<RangeSliderProps>;
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":"AACA,OAAO,EAAU,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAClG,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
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 classNames from 'classnames';
3
- import { Slider } from 'primereact/slider';
4
- import { Controller } from 'react-hook-form';
5
- const RangeSlider = ({ controller, block, min, max, step, ...rest }) => {
6
- return (_jsx(Controller, { ...controller, render: ({ field, formState }) => (_jsx(Slider, { ...rest, range: true, min: min, max: max, step: step, disabled: formState.isSubmitting || rest.disabled, className: classNames(rest.className, { 'w-full': block }), value: field.value ?? [min ?? 0, max ?? 100], onChange: (e) => field.onChange(e.value) })) }));
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":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C,MAAM,WAAW,GAA+B,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACjG,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAChC,KAAC,MAAM,OACD,IAAI,EACR,KAAK,QACL,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACjD,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC1D,KAAK,EAAG,KAAK,CAAC,KAA0B,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,EAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GACxC,CACH,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
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 { RatingProps } from "primereact/rating";
2
- import React from "react";
3
- import { ControllerProps } from "./types";
4
- export interface RatingInputProps extends Omit<RatingProps, "name" | "defaultValue" | "value" | "onChange"> {
5
- controller: ControllerProps;
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
- block?: boolean;
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,EAAU,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IACzE,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
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
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import classNames from "classnames";
4
- import { Rating } from "primereact/rating";
5
- import { Controller } from "react-hook-form";
6
- const RatingInput = (props) => {
7
- const { controller, stars = 5, block, ...rest } = props;
8
- return (_jsx(Controller, { ...controller, render: ({ field, formState }) => (_jsx(Rating, { id: field.name, ...rest, stars: stars, value: field.value ?? undefined, onChange: (e) => field.onChange(e.value), onBlur: field.onBlur, disabled: formState.isSubmitting || rest.disabled, className: classNames(rest.className, { "w-full": block }) })) }));
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,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,MAAM,WAAW,GAA+B,CAAC,KAAK,EAAE,EAAE;IACxD,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACxD,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAChC,KAAC,MAAM,IACL,EAAE,EAAE,KAAK,CAAC,IAAI,KACV,IAAI,EACR,KAAK,EAAE,KAAK,EACZ,KAAK,EAAG,KAAK,CAAC,KAAgB,IAAI,SAAS,EAC3C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EACxC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACjD,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAC1D,CACH,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
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 'primereact/inputtext';
2
- import React from 'react';
3
- import { ControllerProps } from './types';
4
- export interface SearchInputProps extends Omit<InputTextProps, 'name' | 'defaultValue' | 'value' | 'onChange'> {
5
- controller?: ControllerProps;
6
- block?: boolean;
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
- value?: string;
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,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAW1C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5G,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsD3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
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 classNames from 'classnames';
4
- import { InputText } from 'primereact/inputtext';
5
- import { useRef, useState } from 'react';
6
- import { Controller } from 'react-hook-form';
7
- // ponytail: inline debounce — 5 lines, no library needed
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
- const SearchInput = ({ controller, block, onSearch, debounceMs = 300, value: valueProp, onChange: onChangeProp, ...rest }) => {
16
- const [localValue, setLocalValue] = useState(valueProp ?? '');
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
- if (controller) {
19
- return (_jsx(Controller, { ...controller, render: ({ field, fieldState, formState }) => (_jsxs("span", { className: classNames('p-input-icon-left', { 'w-full': block }), children: [_jsx("i", { className: "pi pi-search" }), _jsx(InputText, { id: rest.id || field.name, ...rest, ...field, disabled: formState.isSubmitting || rest.disabled, invalid: fieldState.invalid, className: classNames(rest.className, { 'w-full': block }), onChange: (e) => {
20
- field.onChange(e);
21
- fireSearch(e.target.value);
22
- } })] })) }));
23
- }
24
- // Uncontrolled plain search box (no react-hook-form)
25
- return (_jsxs("span", { className: classNames('p-input-icon-left', { 'w-full': block }), children: [_jsx("i", { className: "pi pi-search" }), _jsx(InputText, { ...rest, value: valueProp !== undefined ? valueProp : localValue, className: classNames(rest.className, { 'w-full': block }), onChange: (e) => {
26
- const v = e.target.value;
27
- if (valueProp === undefined)
28
- setLocalValue(v);
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":"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"}
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"}