@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.
Files changed (378) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/COMPONENTS.md +71 -73
  3. package/README.md +19 -6
  4. package/bin/mantis-llm.mjs +242 -0
  5. package/catalog.json +3031 -0
  6. package/dist/components/Buttons/Button.d.ts +39 -9
  7. package/dist/components/Buttons/Button.d.ts.map +1 -1
  8. package/dist/components/Buttons/Button.js +21 -13
  9. package/dist/components/Buttons/Button.js.map +1 -1
  10. package/dist/components/Forms/AutoCompleteField.d.ts +60 -0
  11. package/dist/components/Forms/AutoCompleteField.d.ts.map +1 -0
  12. package/dist/components/Forms/AutoCompleteField.js +125 -0
  13. package/dist/components/Forms/AutoCompleteField.js.map +1 -0
  14. package/dist/components/Forms/CKEditorInput.d.ts +5 -2
  15. package/dist/components/Forms/CKEditorInput.d.ts.map +1 -1
  16. package/dist/components/Forms/CKEditorInput.js +5 -2
  17. package/dist/components/Forms/CKEditorInput.js.map +1 -1
  18. package/dist/components/Forms/CheckboxField.d.ts +14 -0
  19. package/dist/components/Forms/CheckboxField.d.ts.map +1 -0
  20. package/dist/components/Forms/CheckboxField.js +26 -0
  21. package/dist/components/Forms/CheckboxField.js.map +1 -0
  22. package/dist/components/Forms/ColorPickerInput.d.ts +27 -8
  23. package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -1
  24. package/dist/components/Forms/ColorPickerInput.js +57 -11
  25. package/dist/components/Forms/ColorPickerInput.js.map +1 -1
  26. package/dist/components/Forms/DateField.d.ts +68 -0
  27. package/dist/components/Forms/DateField.d.ts.map +1 -0
  28. package/dist/components/Forms/DateField.js +108 -0
  29. package/dist/components/Forms/DateField.js.map +1 -0
  30. package/dist/components/Forms/DatePresets.d.ts.map +1 -1
  31. package/dist/components/Forms/DatePresets.js +6 -3
  32. package/dist/components/Forms/DatePresets.js.map +1 -1
  33. package/dist/components/Forms/FieldShell.d.ts +24 -0
  34. package/dist/components/Forms/FieldShell.d.ts.map +1 -0
  35. package/dist/components/Forms/FieldShell.js +39 -0
  36. package/dist/components/Forms/FieldShell.js.map +1 -0
  37. package/dist/components/Forms/FileDropzone.d.ts +4 -2
  38. package/dist/components/Forms/FileDropzone.d.ts.map +1 -1
  39. package/dist/components/Forms/FileDropzone.js.map +1 -1
  40. package/dist/components/Forms/FormActionsBar.js +2 -2
  41. package/dist/components/Forms/FormActionsBar.js.map +1 -1
  42. package/dist/components/Forms/FormWizard.d.ts +1 -1
  43. package/dist/components/Forms/FormWizard.d.ts.map +1 -1
  44. package/dist/components/Forms/FormWizard.js +4 -5
  45. package/dist/components/Forms/FormWizard.js.map +1 -1
  46. package/dist/components/Forms/HiddenField.d.ts +12 -6
  47. package/dist/components/Forms/HiddenField.d.ts.map +1 -1
  48. package/dist/components/Forms/HiddenField.js +14 -5
  49. package/dist/components/Forms/HiddenField.js.map +1 -1
  50. package/dist/components/Forms/MaskField.d.ts +28 -0
  51. package/dist/components/Forms/MaskField.d.ts.map +1 -0
  52. package/dist/components/Forms/MaskField.js +74 -0
  53. package/dist/components/Forms/MaskField.js.map +1 -0
  54. package/dist/components/Forms/NumberField.d.ts +14 -0
  55. package/dist/components/Forms/NumberField.d.ts.map +1 -0
  56. package/dist/components/Forms/NumberField.js +51 -0
  57. package/dist/components/Forms/NumberField.js.map +1 -0
  58. package/dist/components/Forms/OtpInput.d.ts +23 -8
  59. package/dist/components/Forms/OtpInput.d.ts.map +1 -1
  60. package/dist/components/Forms/OtpInput.js +37 -8
  61. package/dist/components/Forms/OtpInput.js.map +1 -1
  62. package/dist/components/Forms/PasswordInput.d.ts +22 -9
  63. package/dist/components/Forms/PasswordInput.d.ts.map +1 -1
  64. package/dist/components/Forms/PasswordInput.js +63 -28
  65. package/dist/components/Forms/PasswordInput.js.map +1 -1
  66. package/dist/components/Forms/PhoneInput.d.ts +16 -8
  67. package/dist/components/Forms/PhoneInput.d.ts.map +1 -1
  68. package/dist/components/Forms/PhoneInput.js +13 -6
  69. package/dist/components/Forms/PhoneInput.js.map +1 -1
  70. package/dist/components/Forms/RadioGroup.d.ts +34 -13
  71. package/dist/components/Forms/RadioGroup.d.ts.map +1 -1
  72. package/dist/components/Forms/RadioGroup.js +49 -6
  73. package/dist/components/Forms/RadioGroup.js.map +1 -1
  74. package/dist/components/Forms/RangeSlider.d.ts +26 -11
  75. package/dist/components/Forms/RangeSlider.d.ts.map +1 -1
  76. package/dist/components/Forms/RangeSlider.js +40 -7
  77. package/dist/components/Forms/RangeSlider.js.map +1 -1
  78. package/dist/components/Forms/RatingInput.d.ts +24 -8
  79. package/dist/components/Forms/RatingInput.d.ts.map +1 -1
  80. package/dist/components/Forms/RatingInput.js +41 -9
  81. package/dist/components/Forms/RatingInput.js.map +1 -1
  82. package/dist/components/Forms/SearchInput.d.ts +18 -10
  83. package/dist/components/Forms/SearchInput.d.ts.map +1 -1
  84. package/dist/components/Forms/SearchInput.js +44 -23
  85. package/dist/components/Forms/SearchInput.js.map +1 -1
  86. package/dist/components/Forms/SelectField.d.ts +41 -0
  87. package/dist/components/Forms/SelectField.d.ts.map +1 -0
  88. package/dist/components/Forms/SelectField.js +110 -0
  89. package/dist/components/Forms/SelectField.js.map +1 -0
  90. package/dist/components/Forms/SwitchField.d.ts +14 -0
  91. package/dist/components/Forms/SwitchField.d.ts.map +1 -0
  92. package/dist/components/Forms/SwitchField.js +26 -0
  93. package/dist/components/Forms/SwitchField.js.map +1 -0
  94. package/dist/components/Forms/TagsInput.d.ts +29 -8
  95. package/dist/components/Forms/TagsInput.d.ts.map +1 -1
  96. package/dist/components/Forms/TagsInput.js +53 -9
  97. package/dist/components/Forms/TagsInput.js.map +1 -1
  98. package/dist/components/Forms/TextArea.d.ts +13 -10
  99. package/dist/components/Forms/TextArea.d.ts.map +1 -1
  100. package/dist/components/Forms/TextArea.js +27 -9
  101. package/dist/components/Forms/TextArea.js.map +1 -1
  102. package/dist/components/Forms/TextField.d.ts +14 -0
  103. package/dist/components/Forms/TextField.d.ts.map +1 -0
  104. package/dist/components/Forms/TextField.js +29 -0
  105. package/dist/components/Forms/TextField.js.map +1 -0
  106. package/dist/components/Forms/ToggleInlineButton.d.ts +33 -12
  107. package/dist/components/Forms/ToggleInlineButton.d.ts.map +1 -1
  108. package/dist/components/Forms/ToggleInlineButton.js +56 -6
  109. package/dist/components/Forms/ToggleInlineButton.js.map +1 -1
  110. package/dist/components/Forms/UploadFilesPreview.js +3 -3
  111. package/dist/components/Forms/UploadFilesPreview.js.map +1 -1
  112. package/dist/components/Forms/field-typing.test-d.d.ts +2 -0
  113. package/dist/components/Forms/field-typing.test-d.d.ts.map +1 -0
  114. package/dist/components/Forms/field-typing.test-d.js +24 -0
  115. package/dist/components/Forms/field-typing.test-d.js.map +1 -0
  116. package/dist/components/Forms/useFieldController.d.ts +85 -0
  117. package/dist/components/Forms/useFieldController.d.ts.map +1 -0
  118. package/dist/components/Forms/useFieldController.js +54 -0
  119. package/dist/components/Forms/useFieldController.js.map +1 -0
  120. package/dist/components/Loaders/Loading.d.ts.map +1 -1
  121. package/dist/components/Loaders/Loading.js +3 -2
  122. package/dist/components/Loaders/Loading.js.map +1 -1
  123. package/dist/components/Tables/ActionColumn.d.ts +20 -4
  124. package/dist/components/Tables/ActionColumn.d.ts.map +1 -1
  125. package/dist/components/Tables/ActionColumn.js +24 -5
  126. package/dist/components/Tables/ActionColumn.js.map +1 -1
  127. package/dist/components/Tables/FilterPannel.d.ts +9 -2
  128. package/dist/components/Tables/FilterPannel.d.ts.map +1 -1
  129. package/dist/components/Tables/FilterPannel.js +15 -11
  130. package/dist/components/Tables/FilterPannel.js.map +1 -1
  131. package/dist/components/Tables/IndexColumn.d.ts +12 -3
  132. package/dist/components/Tables/IndexColumn.d.ts.map +1 -1
  133. package/dist/components/Tables/IndexColumn.js +21 -5
  134. package/dist/components/Tables/IndexColumn.js.map +1 -1
  135. package/dist/components/Tables/MantisDataTable.d.ts +45 -0
  136. package/dist/components/Tables/MantisDataTable.d.ts.map +1 -0
  137. package/dist/components/Tables/MantisDataTable.js +63 -0
  138. package/dist/components/Tables/MantisDataTable.js.map +1 -0
  139. package/dist/components/Tables/MenuButton.d.ts +28 -7
  140. package/dist/components/Tables/MenuButton.d.ts.map +1 -1
  141. package/dist/components/Tables/MenuButton.js +20 -10
  142. package/dist/components/Tables/MenuButton.js.map +1 -1
  143. package/dist/components/Tables/PaginatedTable.d.ts +26 -17
  144. package/dist/components/Tables/PaginatedTable.d.ts.map +1 -1
  145. package/dist/components/Tables/PaginatedTable.js +24 -22
  146. package/dist/components/Tables/PaginatedTable.js.map +1 -1
  147. package/dist/components/Tables/cell-presets.d.ts +35 -0
  148. package/dist/components/Tables/cell-presets.d.ts.map +1 -0
  149. package/dist/components/Tables/cell-presets.js +40 -0
  150. package/dist/components/Tables/cell-presets.js.map +1 -0
  151. package/dist/components/Tables/columns.d.ts +40 -0
  152. package/dist/components/Tables/columns.d.ts.map +1 -0
  153. package/dist/components/Tables/columns.js +2 -0
  154. package/dist/components/Tables/columns.js.map +1 -0
  155. package/dist/components/Tables/filters/MultiSelectFilter.d.ts +24 -6
  156. package/dist/components/Tables/filters/MultiSelectFilter.d.ts.map +1 -1
  157. package/dist/components/Tables/filters/MultiSelectFilter.js +19 -6
  158. package/dist/components/Tables/filters/MultiSelectFilter.js.map +1 -1
  159. package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -1
  160. package/dist/components/auth/ChangePasswordForm.js +12 -12
  161. package/dist/components/auth/ChangePasswordForm.js.map +1 -1
  162. package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -1
  163. package/dist/components/auth/ForgotPasswordForm.js +7 -5
  164. package/dist/components/auth/ForgotPasswordForm.js.map +1 -1
  165. package/dist/components/auth/LoginForm.d.ts +2 -2
  166. package/dist/components/auth/LoginForm.d.ts.map +1 -1
  167. package/dist/components/auth/LoginForm.js +15 -15
  168. package/dist/components/auth/LoginForm.js.map +1 -1
  169. package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -1
  170. package/dist/components/auth/ResetPasswordForm.js +11 -12
  171. package/dist/components/auth/ResetPasswordForm.js.map +1 -1
  172. package/dist/components/auth/UserMenu.d.ts +11 -1
  173. package/dist/components/auth/UserMenu.d.ts.map +1 -1
  174. package/dist/components/auth/UserMenu.js +30 -87
  175. package/dist/components/auth/UserMenu.js.map +1 -1
  176. package/dist/components/data/Timeline.d.ts +2 -2
  177. package/dist/components/data/Timeline.d.ts.map +1 -1
  178. package/dist/components/data/Timeline.js +17 -17
  179. package/dist/components/data/Timeline.js.map +1 -1
  180. package/dist/components/feedback/Avatar.d.ts +4 -2
  181. package/dist/components/feedback/Avatar.d.ts.map +1 -1
  182. package/dist/components/feedback/Avatar.js +4 -4
  183. package/dist/components/feedback/Avatar.js.map +1 -1
  184. package/dist/components/feedback/CardSkeleton.d.ts.map +1 -1
  185. package/dist/components/feedback/CardSkeleton.js +3 -3
  186. package/dist/components/feedback/CardSkeleton.js.map +1 -1
  187. package/dist/components/feedback/TableSkeleton.d.ts.map +1 -1
  188. package/dist/components/feedback/TableSkeleton.js +3 -3
  189. package/dist/components/feedback/TableSkeleton.js.map +1 -1
  190. package/dist/components/feedback/Tag.d.ts +4 -2
  191. package/dist/components/feedback/Tag.d.ts.map +1 -1
  192. package/dist/components/feedback/Tag.js +4 -4
  193. package/dist/components/feedback/Tag.js.map +1 -1
  194. package/dist/components/navigation/CommandPalette.d.ts.map +1 -1
  195. package/dist/components/navigation/CommandPalette.js +5 -2
  196. package/dist/components/navigation/CommandPalette.js.map +1 -1
  197. package/dist/components/navigation/PageTabs.d.ts +10 -8
  198. package/dist/components/navigation/PageTabs.d.ts.map +1 -1
  199. package/dist/components/navigation/PageTabs.js +17 -13
  200. package/dist/components/navigation/PageTabs.js.map +1 -1
  201. package/dist/components/overlays/Drawer.d.ts +16 -3
  202. package/dist/components/overlays/Drawer.d.ts.map +1 -1
  203. package/dist/components/overlays/Drawer.js +9 -5
  204. package/dist/components/overlays/Drawer.js.map +1 -1
  205. package/dist/components/overlays/Modal.d.ts +18 -3
  206. package/dist/components/overlays/Modal.d.ts.map +1 -1
  207. package/dist/components/overlays/Modal.js +13 -5
  208. package/dist/components/overlays/Modal.js.map +1 -1
  209. package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -1
  210. package/dist/components/pages/app-shell/AppShell.js +6 -6
  211. package/dist/components/pages/app-shell/AppShell.js.map +1 -1
  212. package/dist/components/ui/ConfirmDialog.d.ts +1 -2
  213. package/dist/components/ui/ConfirmDialog.d.ts.map +1 -1
  214. package/dist/components/ui/ConfirmDialog.js +10 -4
  215. package/dist/components/ui/ConfirmDialog.js.map +1 -1
  216. package/dist/components/ui/DataState.js +2 -2
  217. package/dist/components/ui/DataState.js.map +1 -1
  218. package/dist/index.d.ts +71 -42
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +114 -22
  221. package/dist/index.js.map +1 -1
  222. package/docs/README.md +1 -1
  223. package/docs/components/action-column.md +33 -7
  224. package/docs/components/admin-page-configurator.md +24 -5
  225. package/docs/components/admin-page-header.md +21 -3
  226. package/docs/components/admin-page-layout-shell.md +18 -4
  227. package/docs/components/admin-page-layout.md +34 -5
  228. package/docs/components/app-shell.md +31 -6
  229. package/docs/components/auto-complete-field.md +60 -0
  230. package/docs/components/avatar.md +18 -8
  231. package/docs/components/bar-chart.md +25 -7
  232. package/docs/components/breadcrumbs.md +15 -2
  233. package/docs/components/button.md +34 -15
  234. package/docs/components/card-skeleton.md +9 -3
  235. package/docs/components/change-password-form.md +23 -4
  236. package/docs/components/checkbox-field.md +38 -0
  237. package/docs/components/ckeditor-input.md +40 -8
  238. package/docs/components/color-picker-input.md +19 -8
  239. package/docs/components/command-palette.md +23 -2
  240. package/docs/components/confirm-dialog.md +36 -9
  241. package/docs/components/data-state.md +31 -6
  242. package/docs/components/date-field.md +39 -0
  243. package/docs/components/date-presets.md +19 -5
  244. package/docs/components/description-list.md +20 -2
  245. package/docs/components/dirty-form-guard.md +16 -4
  246. package/docs/components/donut-chart.md +24 -7
  247. package/docs/components/drawer.md +27 -8
  248. package/docs/components/empty-state.md +12 -2
  249. package/docs/components/error-boundary.md +16 -2
  250. package/docs/components/error-message.md +22 -3
  251. package/docs/components/field-shell.md +47 -0
  252. package/docs/components/file-dropzone.md +22 -6
  253. package/docs/components/filter-pannel.md +34 -7
  254. package/docs/components/forgot-password-form.md +23 -5
  255. package/docs/components/form-actions-bar.md +21 -2
  256. package/docs/components/form-field-render.md +36 -8
  257. package/docs/components/form-section.md +13 -1
  258. package/docs/components/form-wizard.md +34 -5
  259. package/docs/components/hidden-field.md +22 -6
  260. package/docs/components/index-column.md +25 -5
  261. package/docs/components/line-chart.md +25 -7
  262. package/docs/components/loading.md +14 -5
  263. package/docs/components/login-form.md +31 -6
  264. package/docs/components/mantis-data-table.md +61 -0
  265. package/docs/components/map-picker-client.md +29 -8
  266. package/docs/components/map-picker-osm.md +27 -9
  267. package/docs/components/map-picker.md +25 -4
  268. package/docs/components/mask-field.md +31 -0
  269. package/docs/components/menu-button.md +22 -7
  270. package/docs/components/modal.md +34 -9
  271. package/docs/components/multi-select-filter.md +25 -7
  272. package/docs/components/number-field.md +40 -0
  273. package/docs/components/otp-input.md +20 -7
  274. package/docs/components/page-tabs.md +23 -4
  275. package/docs/components/page-title.md +6 -1
  276. package/docs/components/paginated-table.md +36 -13
  277. package/docs/components/pagination.md +20 -7
  278. package/docs/components/password-input.md +20 -8
  279. package/docs/components/phone-input.md +17 -7
  280. package/docs/components/radio-group.md +39 -9
  281. package/docs/components/range-slider.md +18 -6
  282. package/docs/components/rating-input.md +19 -8
  283. package/docs/components/render-field.md +31 -3
  284. package/docs/components/reset-password-form.md +24 -4
  285. package/docs/components/rich-text-preview.md +17 -5
  286. package/docs/components/search-input.md +18 -7
  287. package/docs/components/select-field.md +55 -0
  288. package/docs/components/stat-card.md +14 -3
  289. package/docs/components/status-badge.md +17 -7
  290. package/docs/components/switch-field.md +32 -0
  291. package/docs/components/table-filter-field.md +22 -4
  292. package/docs/components/table-skeleton.md +9 -3
  293. package/docs/components/table-toolbar.md +18 -5
  294. package/docs/components/tag.md +16 -7
  295. package/docs/components/tags-input.md +21 -8
  296. package/docs/components/text-area.md +18 -8
  297. package/docs/components/text-field.md +32 -0
  298. package/docs/components/timeline.md +19 -3
  299. package/docs/components/toggle-inline-button.md +42 -10
  300. package/docs/components/upload-files-preview.md +23 -2
  301. package/docs/components/use-field-controller.md +58 -0
  302. package/docs/components/user-menu.md +26 -6
  303. package/docs/contracts/dependency-map.md +50 -52
  304. package/docs/contracts/field-controller.md +138 -0
  305. package/docs/contracts/style-imports.md +1 -20
  306. package/llms.txt +70 -72
  307. package/package.json +48 -11
  308. package/dist/components/Forms/AsyncSelect.d.ts +0 -20
  309. package/dist/components/Forms/AsyncSelect.d.ts.map +0 -1
  310. package/dist/components/Forms/AsyncSelect.js +0 -77
  311. package/dist/components/Forms/AsyncSelect.js.map +0 -1
  312. package/dist/components/Forms/Combobox.d.ts +0 -10
  313. package/dist/components/Forms/Combobox.d.ts.map +0 -1
  314. package/dist/components/Forms/Combobox.js +0 -11
  315. package/dist/components/Forms/Combobox.js.map +0 -1
  316. package/dist/components/Forms/CurrencyInput.d.ts +0 -12
  317. package/dist/components/Forms/CurrencyInput.d.ts.map +0 -1
  318. package/dist/components/Forms/CurrencyInput.js +0 -9
  319. package/dist/components/Forms/CurrencyInput.js.map +0 -1
  320. package/dist/components/Forms/DateInput.d.ts +0 -10
  321. package/dist/components/Forms/DateInput.d.ts.map +0 -1
  322. package/dist/components/Forms/DateInput.js +0 -11
  323. package/dist/components/Forms/DateInput.js.map +0 -1
  324. package/dist/components/Forms/DateRangeInput.d.ts +0 -10
  325. package/dist/components/Forms/DateRangeInput.d.ts.map +0 -1
  326. package/dist/components/Forms/DateRangeInput.js +0 -13
  327. package/dist/components/Forms/DateRangeInput.js.map +0 -1
  328. package/dist/components/Forms/DropDown.d.ts +0 -10
  329. package/dist/components/Forms/DropDown.d.ts.map +0 -1
  330. package/dist/components/Forms/DropDown.js +0 -11
  331. package/dist/components/Forms/DropDown.js.map +0 -1
  332. package/dist/components/Forms/MultiSelect.d.ts +0 -10
  333. package/dist/components/Forms/MultiSelect.d.ts.map +0 -1
  334. package/dist/components/Forms/MultiSelect.js +0 -13
  335. package/dist/components/Forms/MultiSelect.js.map +0 -1
  336. package/dist/components/Forms/NumberInput.d.ts +0 -10
  337. package/dist/components/Forms/NumberInput.d.ts.map +0 -1
  338. package/dist/components/Forms/NumberInput.js +0 -16
  339. package/dist/components/Forms/NumberInput.js.map +0 -1
  340. package/dist/components/Forms/Select.d.ts +0 -15
  341. package/dist/components/Forms/Select.d.ts.map +0 -1
  342. package/dist/components/Forms/Select.js +0 -48
  343. package/dist/components/Forms/Select.js.map +0 -1
  344. package/dist/components/Forms/Switch.d.ts +0 -18
  345. package/dist/components/Forms/Switch.d.ts.map +0 -1
  346. package/dist/components/Forms/Switch.js +0 -30
  347. package/dist/components/Forms/Switch.js.map +0 -1
  348. package/dist/components/Forms/TextInput.d.ts +0 -11
  349. package/dist/components/Forms/TextInput.d.ts.map +0 -1
  350. package/dist/components/Forms/TextInput.js +0 -12
  351. package/dist/components/Forms/TextInput.js.map +0 -1
  352. package/dist/components/Forms/TimePicker.d.ts +0 -13
  353. package/dist/components/Forms/TimePicker.d.ts.map +0 -1
  354. package/dist/components/Forms/TimePicker.js +0 -19
  355. package/dist/components/Forms/TimePicker.js.map +0 -1
  356. package/dist/components/Forms/Toggle.d.ts +0 -14
  357. package/dist/components/Forms/Toggle.d.ts.map +0 -1
  358. package/dist/components/Forms/Toggle.js +0 -10
  359. package/dist/components/Forms/Toggle.js.map +0 -1
  360. package/dist/components/Forms/types.d.ts +0 -9
  361. package/dist/components/Forms/types.d.ts.map +0 -1
  362. package/dist/components/Forms/types.js +0 -2
  363. package/dist/components/Forms/types.js.map +0 -1
  364. package/docs/components/async-select.md +0 -27
  365. package/docs/components/combobox.md +0 -19
  366. package/docs/components/currency-input.md +0 -21
  367. package/docs/components/date-input.md +0 -21
  368. package/docs/components/date-range-input.md +0 -20
  369. package/docs/components/drop-down.md +0 -26
  370. package/docs/components/multi-select.md +0 -22
  371. package/docs/components/number-input.md +0 -21
  372. package/docs/components/select.md +0 -28
  373. package/docs/components/switch.md +0 -24
  374. package/docs/components/text-input.md +0 -24
  375. package/docs/components/time-picker.md +0 -25
  376. package/docs/components/toggle.md +0 -24
  377. package/docs/contracts/component-doc-schema.md +0 -78
  378. package/docs/contracts/controller-props.md +0 -28
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Check } from "@primeicons/react/check";
3
+ import { ChevronDown } from "@primeicons/react/chevron-down";
4
+ import { Search } from "@primeicons/react/search";
5
+ import { useFieldConfig } from "@mantis-core/utils/react";
6
+ import { IconField } from "@primereact/ui/iconfield";
7
+ import { InputText } from "@primereact/ui/inputtext";
8
+ import { Select } from "@primereact/ui/select";
9
+ import { useMemo, useState } from "react";
10
+ import { FieldShell } from "./FieldShell";
11
+ import { useFieldController } from "./useFieldController";
12
+ /**
13
+ * RHF-bound Select over PR11's portal-based compound Select. Single-select by
14
+ * default; pass `multiple` for array mode (absorbs the former MultiSelect).
15
+ *
16
+ * Value shape: the bound value is the selected option value (scalar) — or an
17
+ * ARRAY of them when `multiple`. PR11's `Select.Value` renders the selected
18
+ * label(s) in the trigger for both modes, so the wrapper stays presentation-thin.
19
+ *
20
+ * Portal-specific concerns: id + aria on Select.Trigger (a button, not <input>),
21
+ * and field.onBlur fired on overlay close (no native blur).
22
+ *
23
+ * Templating follows the library convention — named presets for the common case,
24
+ * a `renderOption` render-prop escape for anything custom:
25
+ * @example
26
+ * <SelectField name="city" control={control} label="Ciudad"
27
+ * options={CITIES} optionLabel="label" optionValue="value" /> // single
28
+ * <SelectField name="tags" control={control} label="Tags" multiple
29
+ * options={TAGS} optionLabel="label" optionValue="value" /> // array mode
30
+ * <SelectField ... optionTemplate="twoLine" descriptionField="region" /> // preset
31
+ * <SelectField ... renderOption={(o) => <Flag code={o.code} />} /> // escape
32
+ */
33
+ export function SelectField(props) {
34
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, floatVariant, addonBefore, addonAfter, required, helpText, id, variant, size, className, fluid, placeholder, options, optionLabel, optionValue, optionTemplate, descriptionField, renderOption, multiple, ...rest } = props;
35
+ const f = useFieldController({
36
+ name,
37
+ control,
38
+ rules,
39
+ defaultValue,
40
+ shouldUnregister,
41
+ disabled,
42
+ helpText,
43
+ id,
44
+ variant,
45
+ size,
46
+ fluid,
47
+ });
48
+ const rows = (options ?? []);
49
+ const labelKey = optionLabel ?? "label";
50
+ // Resolve labelMode the same way FieldShell does: prop wins, else the global
51
+ // config default. In floating modes ('ifta'/'float') the label doubles as the
52
+ // placeholder, so suppress Select.Value's placeholder to avoid overlap.
53
+ const config = useFieldConfig();
54
+ const resolvedLabelMode = labelMode ?? config.labelMode;
55
+ const isFloating = resolvedLabelMode === "ifta" || resolvedLabelMode === "float";
56
+ const showValuePlaceholder = !label || !isFloating;
57
+ // `multiple` gets an in-popup filter box (checkbox indicators per option).
58
+ // Client-side filtering lives here — the wrapper owns `options`, so the
59
+ // consumer never wires it. Single-select keeps zero-config auto-render.
60
+ const [filterValue, setFilterValue] = useState("");
61
+ const filteredRows = useMemo(() => {
62
+ const base = (options ?? []);
63
+ if (!multiple || !filterValue)
64
+ return base;
65
+ const q = filterValue.toLowerCase();
66
+ return base.filter((option) => String(option[labelKey] ?? "").toLowerCase().includes(q));
67
+ }, [options, multiple, filterValue, labelKey]);
68
+ // Empty-value policy: in `multiple` mode the field value is an ARRAY, so an
69
+ // empty/cleared selection must be `[]` (never `null`) — a consumer doing
70
+ // `.map()`/`.length` on it can't crash. Single-select stays scalar/`null`.
71
+ const boundValue = multiple
72
+ ? (f.field.value ?? [])
73
+ : (f.field.value ?? null);
74
+ // Effective per-option renderer: escape hatch wins, then preset, else null
75
+ // (null keeps the zero-config <Select.List/> auto-render).
76
+ const renderer = renderOption ??
77
+ (optionTemplate === "twoLine"
78
+ ? (option) => (_jsxs("div", { className: 'flex flex-col', children: [_jsx("span", { className: 'font-medium', children: String(option[labelKey] ?? "") }), descriptionField ? (_jsx("span", { className: 'text-xs text-surface-500', children: String(option[descriptionField] ?? "") })) : null] }))
79
+ : null);
80
+ const { ref: fieldRef } = f.field;
81
+ 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(Select.Root, { value: boundValue, onValueChange: (e) =>
82
+ // Clear in `multiple` mode stores `[]`, not `null`, keeping the array
83
+ // contract; single-select passes the scalar/`null` straight through.
84
+ f.field.onChange(multiple ? (e.value ?? []) : e.value), onOpenChange: (e) => {
85
+ // Portal has no native blur on the trigger — mark touched on close.
86
+ if (!e.value)
87
+ f.field.onBlur();
88
+ }, invalid: f.invalid, disabled: f.disabled, variant: f.variant, size: f.size,
89
+ // PR11's Select trigger does NOT stretch to the <Fluid> context (unlike
90
+ // InputText), so honor the fluid axis with the explicit `fluid` prop.
91
+ fluid: f.fluid, className: className, multiple: multiple, options: options, optionLabel: optionLabel, optionValue: optionValue, ...rest, children: [_jsxs(Select.Trigger, { id: f.id, ref: fieldRef, type: 'button', ...f.aria, children: [_jsx(Select.Value, { placeholder: showValuePlaceholder ? placeholder : undefined }), _jsx(Select.Clear, {}), _jsx(Select.Indicator, { children: _jsx(ChevronDown, {}) })] }), _jsx(Select.Portal, { children: _jsx(Select.Positioner, { children: _jsxs(Select.Popup, { children: [multiple ? (
92
+ // Multiple: in-popup filter + per-option checkmark indicator.
93
+ _jsxs(_Fragment, { children: [_jsx(Select.Header, { children: _jsxs(IconField.Root, { children: [_jsx(Select.Filter, { as: InputText, value: filterValue, onChange: (e) => setFilterValue(e.target.value), placeholder: 'Buscar\u2026' }), _jsx(IconField.Inset, { children: _jsx(Search, {}) })] }) }), _jsx(Select.List, { children: filteredRows.map((option, filteredIndex) => {
94
+ // `Select.Root` binds `options` to the FULL unfiltered array, so
95
+ // the explicit `index` passed to `Select.Option` must be the
96
+ // option's TRUE position there — not its position within the
97
+ // filtered subset — or a filtered click commits the wrong value
98
+ // (PR11 resolves the option as `options[index]` whenever an
99
+ // explicit index is given, skipping its uKey/findIndex fallback).
100
+ const trueIndex = rows.indexOf(option);
101
+ const key = optionValue ? String(option[optionValue]) : String(trueIndex);
102
+ return (_jsxs(Select.Option, { index: trueIndex, uKey: key, className: 'gap-2 justify-between', children: [renderer
103
+ ? renderer(option, filteredIndex)
104
+ : String(option[labelKey] ?? ""), _jsx(Select.OptionIndicator, { className: 'data-unselected:invisible', children: _jsx(Check, {}) })] }, key));
105
+ }) }), _jsx(Select.Empty, {})] })) : renderer ? (_jsx(Select.List, { children: rows.map((option, index) => {
106
+ const key = optionValue ? String(option[optionValue]) : String(index);
107
+ return (_jsx(Select.Option, { index: index, uKey: key, children: renderer(option, index) }, key));
108
+ }) })) : (_jsx(Select.List, {})), !multiple && _jsx(Select.Empty, {})] }) }) })] }) }));
109
+ }
110
+ //# sourceMappingURL=SelectField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.js","sourceRoot":"","sources":["../../../src/components/Forms/SelectField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ToggleSwitchRootProps } from "@primereact/types/primitive/toggleswitch";
2
+ import type { FieldPath, FieldValues } from "react-hook-form";
3
+ import { type ChoiceFieldControllerProps } from "./useFieldController";
4
+ type SwitchExtras = Omit<ToggleSwitchRootProps, "checked" | "onCheckedChange" | "invalid" | "disabled" | "children" | "inputId">;
5
+ /**
6
+ * RHF-bound boolean toggle over PR11 compound `ToggleSwitch` (checked /
7
+ * onCheckedChange). Label sits beside the control by default.
8
+ *
9
+ * @example
10
+ * <SwitchField name="featured" control={control} label="Destacada" />
11
+ */
12
+ export declare function SwitchField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ChoiceFieldControllerProps<TFieldValues, TName> & SwitchExtras): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=SwitchField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchField.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/SwitchField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEtF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,0BAA0B,EAAsB,MAAM,sBAAsB,CAAC;AAE3F,KAAK,YAAY,GAAG,IAAI,CACtB,qBAAqB,EACrB,SAAS,GAAG,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAChF,CAAC;AAEF;;;;;;GAMG;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,2CAiDtE"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ToggleSwitch } from "@primereact/ui/toggleswitch";
3
+ import { FieldShell } from "./FieldShell";
4
+ import { useFieldController } from "./useFieldController";
5
+ /**
6
+ * RHF-bound boolean toggle over PR11 compound `ToggleSwitch` (checked /
7
+ * onCheckedChange). Label sits beside the control by default.
8
+ *
9
+ * @example
10
+ * <SwitchField name="featured" control={control} label="Destacada" />
11
+ */
12
+ export function SwitchField(props) {
13
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, required, helpText, id, ...rest } = props;
14
+ const f = useFieldController({
15
+ name,
16
+ control,
17
+ rules,
18
+ defaultValue,
19
+ shouldUnregister,
20
+ disabled,
21
+ helpText,
22
+ id,
23
+ });
24
+ return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode ?? "beside", required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(ToggleSwitch.Root, { inputId: f.id, checked: Boolean(f.field.value), onCheckedChange: (e) => f.field.onChange(e.checked), invalid: f.invalid, disabled: f.disabled, ...rest, ...f.aria, children: _jsx(ToggleSwitch.Control, { children: _jsx(ToggleSwitch.Handle, {}) }) }) }));
25
+ }
26
+ //# sourceMappingURL=SwitchField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchField.js","sourceRoot":"","sources":["../../../src/components/Forms/SwitchField.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAoC,MAAM,6BAA6B,CAAC;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAmC,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAO3F;;;;;;GAMG;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,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,QAAQ,EAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,KAAC,YAAY,CAAC,IAAI,IAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EACb,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAC/B,eAAe,EAAE,CAAC,CAA8B,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAChF,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAChB,IAAI,KACJ,CAAC,CAAC,IAAI,YACV,KAAC,YAAY,CAAC,OAAO,cACnB,KAAC,YAAY,CAAC,MAAM,KAAG,GACF,GACL,GACT,CACd,CAAC;AACJ,CAAC"}
@@ -1,10 +1,31 @@
1
- import { ChipsProps } from "primereact/chips";
2
- import React from "react";
3
- import { ControllerProps } from "./types";
4
- export interface TagsInputProps extends Omit<ChipsProps, "name" | "defaultValue" | "value" | "onChange" | "onBlur"> {
5
- controller: ControllerProps;
6
- block?: boolean;
7
- }
8
- declare const TagsInput: React.FC<TagsInputProps>;
1
+ import type { InputTagsRootProps } from "@primereact/types/primitive/inputtags";
2
+ import type { FieldPath, FieldValues } from "react-hook-form";
3
+ import { type FieldControllerProps } from "./useFieldController";
4
+ type InputTagsExtras = Omit<InputTagsRootProps, "value" | "defaultValue" | "onValueChange" | "invalid" | "disabled" | "children">;
5
+ /**
6
+ * RHF-bound tag input over PR11's compound `InputTags`
7
+ * (Root → Items render-prop chips → Control render-prop entry input).
8
+ *
9
+ * The styled `Root` supplies the chip-field container; `Items` and `Control` are
10
+ * pure render-props, so the wrapper renders each chip as a themed `Chip.*` and the
11
+ * entry field as a themed `InputText` per the official Basic markup.
12
+ * Typing a value and pressing Enter (or `delimiter`) commits a tag; Backspace on
13
+ * an empty field removes the last one.
14
+ *
15
+ * Value shape: `string[]` (the tag list) or `[]` when unset. `onValueChange`
16
+ * writes the array into RHF.
17
+ *
18
+ * NOTE (PR11 11.0.0-rc.1): `InputTags.Root`'s `value`/`onValueChange` drive the
19
+ * whole control; the render-prop `Control` receives `controlProps` (which carry
20
+ * the Backspace/delimiter/blur handlers) and `Items` receives `{ item, remove }`
21
+ * — verified in-browser. No per-part value binding is needed.
22
+ *
23
+ * @example
24
+ * <TagsInput name="tags" control={control} label="Etiquetas" />
25
+ * <TagsInput name="tags" control={control} label="Etiquetas" max={5} />
26
+ */
27
+ export declare function TagsInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: FieldControllerProps<TFieldValues, TName> & InputTagsExtras & {
28
+ placeholder?: string;
29
+ }): import("react/jsx-runtime").JSX.Element;
9
30
  export default TagsInput;
10
31
  //# sourceMappingURL=TagsInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnF,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqBvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAiC,MAAM,uCAAuC,CAAC;AAG/G,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,sBAAsB,CAAC;AAKrF,KAAK,eAAe,GAAG,IAAI,CACzB,kBAAkB,EAClB,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CACjF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACvB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,eAAe,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,2CA8F9F;AAED,eAAe,SAAS,CAAC"}
@@ -1,11 +1,55 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import classNames from "classnames";
4
- import { Chips } from "primereact/chips";
5
- import { Controller } from "react-hook-form";
6
- const TagsInput = (props) => {
7
- const { controller, block, ...rest } = props;
8
- return (_jsx(Controller, { ...controller, render: ({ field, fieldState, formState }) => (_jsx(Chips, { id: field.name, ...rest, name: field.name, ref: field.ref, value: field.value ?? [], onChange: (e) => field.onChange(e.value), onBlur: field.onBlur, disabled: formState.isSubmitting || rest.disabled, invalid: fieldState.invalid, className: classNames(rest.className, { "w-full": block }) })) }));
9
- };
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Times } from "@primeicons/react/times";
3
+ import { Chip } from "@primereact/ui/chip";
4
+ import { InputTags } from "@primereact/ui/inputtags";
5
+ import { InputText } from "@primereact/ui/inputtext";
6
+ import { FieldShell } from "./FieldShell";
7
+ import { useFieldController } from "./useFieldController";
8
+ /**
9
+ * RHF-bound tag input over PR11's compound `InputTags`
10
+ * (Root → Items render-prop chips → Control render-prop entry input).
11
+ *
12
+ * The styled `Root` supplies the chip-field container; `Items` and `Control` are
13
+ * pure render-props, so the wrapper renders each chip as a themed `Chip.*` and the
14
+ * entry field as a themed `InputText` per the official Basic markup.
15
+ * Typing a value and pressing Enter (or `delimiter`) commits a tag; Backspace on
16
+ * an empty field removes the last one.
17
+ *
18
+ * Value shape: `string[]` (the tag list) or `[]` when unset. `onValueChange`
19
+ * writes the array into RHF.
20
+ *
21
+ * NOTE (PR11 11.0.0-rc.1): `InputTags.Root`'s `value`/`onValueChange` drive the
22
+ * whole control; the render-prop `Control` receives `controlProps` (which carry
23
+ * the Backspace/delimiter/blur handlers) and `Items` receives `{ item, remove }`
24
+ * — verified in-browser. No per-part value binding is needed.
25
+ *
26
+ * @example
27
+ * <TagsInput name="tags" control={control} label="Etiquetas" />
28
+ * <TagsInput name="tags" control={control} label="Etiquetas" max={5} />
29
+ */
30
+ export function TagsInput(props) {
31
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, floatVariant, addonBefore, addonAfter, required, helpText, id, variant, size, fluid, placeholder, ...rest } = props;
32
+ const f = useFieldController({
33
+ name,
34
+ control,
35
+ rules,
36
+ defaultValue,
37
+ shouldUnregister,
38
+ disabled,
39
+ helpText,
40
+ id,
41
+ variant,
42
+ size,
43
+ fluid,
44
+ });
45
+ const tags = f.field.value ?? [];
46
+ 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(InputTags.Root, { value: tags, onValueChange: (e) => f.field.onChange(e.value ?? []), invalid: f.invalid, disabled: f.disabled, variant: f.variant, fluid: f.fluid, ...rest, ...f.aria, children: [_jsx(InputTags.Items, { children: ({ item, remove, itemProps }) => (_jsxs(Chip.Root, { ...itemProps, children: [_jsx(Chip.Label, { children: item }), _jsx(Chip.Remove, { as: "button", type: "button", onClick: remove, "aria-label": `Remove ${item}`, children: _jsx(Times, {}) })] })) }), _jsx(InputTags.Control, { children: ({ controlProps }) => (_jsx(InputText, { ...controlProps, id: f.id, onBlur: f.field.onBlur, placeholder: tags.length === 0 ? placeholder : undefined, variant: f.variant, size: f.size, invalid: f.invalid, className: 'flex-[1_1_auto]',
47
+ // The InputTags container (.p-inputtags) IS the field — it owns the
48
+ // border + focus ring. The entry input must be chrome-less or it
49
+ // renders a second nested border/focus ring (official CSS sets the
50
+ // same on .p-inputtags .p-autocomplete-input). Inline style wins over
51
+ // PR11's non-!important :focus box-shadow/outline in every state.
52
+ style: { border: 0, background: "transparent", boxShadow: "none", outline: 0 } })) })] }) }));
53
+ }
10
54
  export default TagsInput;
11
55
  //# sourceMappingURL=TagsInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagsInput.js","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,KAAK,EAAc,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C,MAAM,SAAS,GAA6B,CAAC,KAAK,EAAE,EAAE;IACpD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC5C,KAAC,KAAK,IACJ,EAAE,EAAE,KAAK,CAAC,IAAI,KACV,IAAI,EACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAG,KAAK,CAAC,KAAkB,IAAI,EAAE,EACtC,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,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAC1D,CACH,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"TagsInput.js","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import { InputTextareaProps } from 'primereact/inputtextarea';
2
- import React from 'react';
3
- import { ControllerProps } from './types';
4
- export interface TextAreaProps extends Omit<InputTextareaProps, 'name' | 'defaultValue' | 'ref' | 'onChange'> {
5
- controller: ControllerProps;
6
- block?: boolean;
7
- loading?: boolean;
8
- }
9
- declare const TextArea: React.FC<TextAreaProps>;
10
- export default TextArea;
1
+ import type { TextareaProps } from "@primereact/types/primitive/textarea";
2
+ import type * as React from "react";
3
+ import type { FieldPath, FieldValues } from "react-hook-form";
4
+ import { type FieldControllerProps } from "./useFieldController";
5
+ type TextareaExtras = Omit<TextareaProps & React.TextareaHTMLAttributes<HTMLTextAreaElement>, "id" | "name" | "value" | "onChange" | "onBlur" | "defaultValue" | "invalid" | "disabled">;
6
+ /**
7
+ * RHF-bound multiline text over PR11 `Textarea` (native value/onChange).
8
+ *
9
+ * @example
10
+ * <TextArea name="notes" control={control} label="Notas" rows={4} />
11
+ */
12
+ export declare function TextArea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: FieldControllerProps<TFieldValues, TName> & TextareaExtras): import("react/jsx-runtime").JSX.Element;
13
+ export {};
11
14
  //# sourceMappingURL=TextArea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TextArea.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,cAAc,GAAG,KAAK,GAAG,UAAU,CAAC;IAC9E,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoBrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,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;AAErF,KAAK,cAAc,GAAG,IAAI,CACxB,aAAa,GAAG,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EACjE,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,CAC1F,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,cAAc,2CAkElE"}
@@ -1,11 +1,29 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import classNames from 'classnames';
3
- import { InputTextarea } from 'primereact/inputtextarea';
4
- import React from 'react';
5
- import { Controller } from 'react-hook-form';
6
- const TextArea = (props) => {
7
- const { controller, block, loading, ...rest } = props;
8
- return (_jsx(Controller, { ...controller, render: ({ field, fieldState, formState }) => (_jsx(React.Fragment, { children: _jsx(InputTextarea, { id: field.name, ...rest, className: classNames(rest.className, { 'w-full': block }), invalid: fieldState.invalid, disabled: loading || formState.isSubmitting, ...field }) })) }));
9
- };
10
- export default TextArea;
2
+ import { Textarea } from "@primereact/ui/textarea";
3
+ import { FieldShell } from "./FieldShell";
4
+ import { useFieldController } from "./useFieldController";
5
+ /**
6
+ * RHF-bound multiline text over PR11 `Textarea` (native value/onChange).
7
+ *
8
+ * @example
9
+ * <TextArea name="notes" control={control} label="Notas" rows={4} />
10
+ */
11
+ export function TextArea(props) {
12
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, floatVariant, addonBefore, addonAfter, required, helpText, id, variant, size, fluid, ...rest } = props;
13
+ const f = useFieldController({
14
+ name,
15
+ control,
16
+ rules,
17
+ defaultValue,
18
+ shouldUnregister,
19
+ disabled,
20
+ helpText,
21
+ id,
22
+ variant,
23
+ size,
24
+ fluid,
25
+ });
26
+ const { ref: fieldRef } = f.field;
27
+ return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode, floatVariant: floatVariant, addonBefore: addonBefore, addonAfter: addonAfter, required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(Textarea, { id: f.id, name: f.field.name, ref: fieldRef, value: f.field.value ?? "", onChange: (e) => f.field.onChange(e.target.value), onBlur: f.field.onBlur, invalid: f.invalid, disabled: f.disabled, variant: f.variant, size: f.size, fluid: f.fluid, ...rest, ...f.aria }) }));
28
+ }
11
29
  //# sourceMappingURL=TextArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../src/components/Forms/TextArea.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C,MAAM,QAAQ,GAA4B,CAAC,KAAK,EAAE,EAAE;IAClD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEtD,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC5C,KAAC,KAAK,CAAC,QAAQ,cACb,KAAC,aAAa,IACZ,EAAE,EAAE,KAAK,CAAC,IAAI,KACV,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC1D,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,OAAO,IAAI,SAAS,CAAC,YAAY,KACvC,KAAK,GACT,GACa,CAClB,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../../../src/components/Forms/TextArea.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAA6B,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAOrF;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAGtB,KAAiE;IACjE,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,OAAO,EACP,IAAI,EACJ,KAAK,EACL,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;QACF,OAAO;QACP,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;IAEH,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,EACpB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,KAAC,QAAQ,IACP,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAClB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAG,CAAC,CAAC,KAAK,CAAC,KAA4B,IAAI,EAAE,EAClD,QAAQ,EAAE,CAAC,CAAyC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,KAAK,EAAE,CAAC,CAAC,KAAK,KACV,IAAI,KACJ,CAAC,CAAC,IAAI,GACV,GACS,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
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 text input over PR11 `InputText` (native value/onChange shape).
8
+ *
9
+ * @example
10
+ * <TextField name="title" control={control} label="Título" rules={{ required: "…" }} />
11
+ */
12
+ export declare function TextField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: FieldControllerProps<TFieldValues, TName> & InputTextExtras): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=TextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,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;AAMrF,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;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,KAAK,EAAE,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,eAAe,2CAkEnE"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { InputText } from "@primereact/ui/inputtext";
3
+ import { FieldShell } from "./FieldShell";
4
+ import { useFieldController } from "./useFieldController";
5
+ /**
6
+ * RHF-bound text input over PR11 `InputText` (native value/onChange shape).
7
+ *
8
+ * @example
9
+ * <TextField name="title" control={control} label="Título" rules={{ required: "…" }} />
10
+ */
11
+ export function TextField(props) {
12
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, floatVariant, addonBefore, addonAfter, required, helpText, id, variant, size, fluid, ...rest } = props;
13
+ const f = useFieldController({
14
+ name,
15
+ control,
16
+ rules,
17
+ defaultValue,
18
+ shouldUnregister,
19
+ disabled,
20
+ helpText,
21
+ id,
22
+ variant,
23
+ size,
24
+ fluid,
25
+ });
26
+ const { ref: fieldRef } = f.field;
27
+ return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode, floatVariant: floatVariant, addonBefore: addonBefore, addonAfter: addonAfter, required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(InputText, { id: f.id, name: f.field.name, ref: fieldRef, value: f.field.value ?? "", onChange: (e) => f.field.onChange(e.target.value), onBlur: f.field.onBlur, invalid: f.invalid, disabled: f.disabled, variant: f.variant, size: f.size, fluid: f.fluid, ...rest, ...f.aria }) }));
28
+ }
29
+ //# sourceMappingURL=TextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../src/components/Forms/TextField.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAA6B,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAWrF;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAGvB,KAAkE;IAClE,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,OAAO,EACP,IAAI,EACJ,KAAK,EACL,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;QACF,OAAO;QACP,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;IAEH,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,EACpB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAC,YAAY,YAC5B,KAAC,SAAS,IACR,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAClB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAG,CAAC,CAAC,KAAK,CAAC,KAA4B,IAAI,EAAE,EAClD,QAAQ,EAAE,CAAC,CAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,KAAK,EAAE,CAAC,CAAC,KAAK,KACV,IAAI,KACJ,CAAC,CAAC,IAAI,GACV,GACS,CACd,CAAC;AACJ,CAAC"}
@@ -1,14 +1,35 @@
1
- import { FC } from "react";
2
- import { ButtonVariant } from "../Buttons/Button";
3
- import { ControllerProps } from "./types";
4
- export interface ToggleInlineButtonProps {
5
- controller: ControllerProps;
6
- options: any[];
7
- /** Variante de color del design system. Por defecto "primary". */
8
- variant?: ButtonVariant;
9
- /** Permite seleccionar múltiples opciones. */
10
- multiple?: boolean;
11
- }
12
- declare const ToggleInlineButton: FC<ToggleInlineButtonProps>;
1
+ import type { ToggleButtonGroupProps } from "@primereact/types/primitive/togglebuttongroup";
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 ToggleGroupExtras = Omit<ToggleButtonGroupProps, "value" | "onValueChange" | "invalid" | "disabled" | "children">;
7
+ /**
8
+ * RHF-bound segmented single-choice control over PR11's `ToggleButtonGroup`. Each
9
+ * segment is a `ToggleButton.Root` that renders themed with a distinct active
10
+ * (pressed) state from the theme's surface-emphasis tokens.
11
+ *
12
+ * Value shape: the selected segment's value (scalar) — or an ARRAY when `multiple`.
13
+ *
14
+ * NOTE (PR11 11.0.0-rc.1): like `RadioButtonGroup`, the styled `ToggleButtonGroup`
15
+ * and `ToggleButton.Root` are wired through two DIFFERENT React contexts in this
16
+ * rc — the group's `value`/`onValueChange` never reaches its children (verified
17
+ * in-browser). Until fixed upstream, binding is done per-segment via the documented
18
+ * `pressed`/`onPressedChange` props (no invented sub-parts); the group stays for
19
+ * layout/styling. `multiple` toggles scalar vs array value semantics here.
20
+ *
21
+ * @example
22
+ * <ToggleInlineButton name="view" control={control} label="Vista"
23
+ * options={VIEWS} optionLabel="label" optionValue="value" />
24
+ * <ToggleInlineButton ... multiple /> // array mode
25
+ * <ToggleInlineButton ... renderOption={(o) => <i className={o.icon} />} />
26
+ */
27
+ export declare function ToggleInlineButton<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: ChoiceFieldControllerProps<TFieldValues, TName> & ToggleGroupExtras & {
28
+ options: OptionRow[];
29
+ optionLabel?: string;
30
+ optionValue?: string;
31
+ /** Escape hatch: full custom per-segment render. */
32
+ renderOption?: (option: OptionRow, index: number) => ReactNode;
33
+ }): import("react/jsx-runtime").JSX.Element;
13
34
  export default ToggleInlineButton;
14
35
  //# sourceMappingURL=ToggleInlineButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleInlineButton.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/ToggleInlineButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,kEAAkE;IAClE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwBnD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ToggleInlineButton.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/ToggleInlineButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAG5F,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,iBAAiB,GAAG,IAAI,CAC3B,sBAAsB,EACtB,OAAO,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAChE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,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,iBAAiB,GAAG;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAChE,2CAmFJ;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,9 +1,59 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import classNames from "classnames";
3
- import { SelectButton } from "primereact/selectbutton";
4
- import RenderField from "./RenderField";
5
- const ToggleInlineButton = ({ controller, options, variant = "primary", multiple = false, }) => {
6
- return (_jsx(RenderField, { ...controller, render: ({ value, field, fieldState, formState }) => (_jsx(SelectButton, { id: field.name, name: field.name, onChange: field.onChange, value: value, invalid: fieldState.invalid, options: options, multiple: multiple, disabled: formState.isSubmitting, className: classNames(`p-selectbutton-${variant}`) })) }));
7
- };
2
+ import { ToggleButton } from "@primereact/ui/togglebutton";
3
+ import { ToggleButtonGroup } from "@primereact/ui/togglebuttongroup";
4
+ import { FieldShell } from "./FieldShell";
5
+ import { useFieldController } from "./useFieldController";
6
+ /**
7
+ * RHF-bound segmented single-choice control over PR11's `ToggleButtonGroup`. Each
8
+ * segment is a `ToggleButton.Root` that renders themed with a distinct active
9
+ * (pressed) state from the theme's surface-emphasis tokens.
10
+ *
11
+ * Value shape: the selected segment's value (scalar) — or an ARRAY when `multiple`.
12
+ *
13
+ * NOTE (PR11 11.0.0-rc.1): like `RadioButtonGroup`, the styled `ToggleButtonGroup`
14
+ * and `ToggleButton.Root` are wired through two DIFFERENT React contexts in this
15
+ * rc — the group's `value`/`onValueChange` never reaches its children (verified
16
+ * in-browser). Until fixed upstream, binding is done per-segment via the documented
17
+ * `pressed`/`onPressedChange` props (no invented sub-parts); the group stays for
18
+ * layout/styling. `multiple` toggles scalar vs array value semantics here.
19
+ *
20
+ * @example
21
+ * <ToggleInlineButton name="view" control={control} label="Vista"
22
+ * options={VIEWS} optionLabel="label" optionValue="value" />
23
+ * <ToggleInlineButton ... multiple /> // array mode
24
+ * <ToggleInlineButton ... renderOption={(o) => <i className={o.icon} />} />
25
+ */
26
+ export function ToggleInlineButton(props) {
27
+ const { name, control, rules, defaultValue, shouldUnregister, disabled, label, labelMode, required, helpText, id, options, optionLabel, optionValue, renderOption, multiple, ...rest } = props;
28
+ const f = useFieldController({
29
+ name,
30
+ control,
31
+ rules,
32
+ defaultValue,
33
+ shouldUnregister,
34
+ disabled,
35
+ helpText,
36
+ id,
37
+ });
38
+ const labelKey = optionLabel ?? "label";
39
+ const valueKey = optionValue ?? "value";
40
+ // Per-segment pressed derivation + write-back (scalar for single, array for multiple).
41
+ const selected = multiple ? (f.field.value ?? []) : f.field.value;
42
+ const isPressed = (optValue) => multiple ? selected.includes(optValue) : selected === optValue;
43
+ const toggle = (optValue, pressed) => {
44
+ if (multiple) {
45
+ const arr = selected;
46
+ f.field.onChange(pressed ? [...arr, optValue] : arr.filter((v) => v !== optValue));
47
+ }
48
+ else {
49
+ f.field.onChange(pressed ? optValue : null);
50
+ }
51
+ };
52
+ const { ref: fieldRef } = f.field;
53
+ return (_jsx(FieldShell, { id: f.id, label: label, labelMode: labelMode ?? "beside", required: required, helpText: helpText, errorMessage: f.errorMessage, children: _jsx(ToggleButtonGroup, { ref: fieldRef, multiple: multiple, invalid: f.invalid, disabled: f.disabled, ...rest, ...f.aria, children: options.map((option, index) => {
54
+ const optValue = option[valueKey];
55
+ return (_jsx(ToggleButton.Root, { value: optValue, pressed: isPressed(optValue), onPressedChange: (e) => toggle(optValue, e.pressed), children: _jsx(ToggleButton.Indicator, { children: renderOption ? renderOption(option, index) : String(option[labelKey] ?? "") }) }, `${f.id}_${String(optValue)}`));
56
+ }) }) }));
57
+ }
8
58
  export default ToggleInlineButton;
9
59
  //# sourceMappingURL=ToggleInlineButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleInlineButton.js","sourceRoot":"","sources":["../../../src/components/Forms/ToggleInlineButton.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,WAAW,MAAM,eAAe,CAAC;AAYxC,MAAM,kBAAkB,GAAgC,CAAC,EACvD,UAAU,EACV,OAAO,EACP,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,KAAK,GACjB,EAAE,EAAE;IACH,OAAO,CACL,KAAC,WAAW,OACN,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACnD,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,SAAS,CAAC,YAAY,EAChC,SAAS,EAAE,UAAU,CAAC,kBAAkB,OAAO,EAAE,CAAC,GAClD,CACH,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ToggleInlineButton.js","sourceRoot":"","sources":["../../../src/components/Forms/ToggleInlineButton.tsx"],"names":[],"mappings":"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"}