@povio/ui 5.0.0-rc.1 → 5.0.0-rc.3

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 (419) hide show
  1. package/.rulesync/rules/ui-buttons-and-content.md +56 -0
  2. package/.rulesync/rules/ui-inputs-and-forms.md +62 -0
  3. package/.rulesync/rules/ui-overlays-navigation-and-styling.md +49 -0
  4. package/.rulesync/rules/ui-overview.md +33 -0
  5. package/README.md +49 -16
  6. package/dist/{Accordion-CzFKi8Bp.js → Accordion-BzwO4_ml.js} +20 -136
  7. package/dist/{Alert-T25LY8ZL.js → Alert-CnvEb1D_.js} +16 -12
  8. package/dist/{Alert-f1dG-4Uy.d.ts → Alert-DfiJbKH0.d.ts} +2 -1
  9. package/dist/{AlertDialog-B6R2MbNg.d.ts → AlertDialog-OWTbR4km.d.ts} +3 -3
  10. package/dist/{Autocomplete-CQ63Cynd.d.ts → Autocomplete-BwNHp8fy.d.ts} +1 -1
  11. package/dist/{Badge-YKlKz-Jy.d.ts → Badge-CBNpj823.d.ts} +8 -5
  12. package/dist/BadgeButton-Ccgt3oGO.d.ts +15 -0
  13. package/dist/{BottomSheet-DvqBvth_.js → BottomSheet-BXLE3161.js} +7 -6
  14. package/dist/{BottomSheet-xaymO7aQ.d.ts → BottomSheet-DbQuzfAB.d.ts} +1 -1
  15. package/dist/{BottomSheet.lazy-CGBRPve_.d.ts → BottomSheet.lazy-D9LCEo7s.d.ts} +1 -1
  16. package/dist/{Breadcrumbs-DyriI-Bi.d.ts → Breadcrumbs-CUV6CU8Q.d.ts} +1 -1
  17. package/dist/{Breadcrumbs-DiIYJAWf.js → Breadcrumbs-CbKzAq1v.js} +24 -38
  18. package/dist/Button-C5rv4Cr2.js +506 -0
  19. package/dist/{Button-BZ3is6IU.d.ts → Button-D-4qb0IR.d.ts} +3 -3
  20. package/dist/{ButtonContent-B2_dZ6vA.js → ButtonContent-c7lJayVQ.js} +10 -8
  21. package/dist/{Calendar-DzQApBCy.js → Calendar-CVSQH-rC.js} +22 -15
  22. package/dist/{CheckContent-DZ7Gk8GS.js → CheckContent-D7sZPmzx.js} +2 -2
  23. package/dist/{Checkbox-BepzfVfK.js → Checkbox-BU0d702K.js} +6 -6
  24. package/dist/{Checkbox-CHpgW3fI.d.ts → Checkbox-DVTWaMKa.d.ts} +1 -1
  25. package/dist/{CheckboxCheckmark-B3lnOjsU.js → CheckboxCheckmark-usHsolNj.js} +10 -10
  26. package/dist/{CheckboxGroup-CXrR3A-c.d.ts → CheckboxGroup-DGF12cmB.d.ts} +3 -3
  27. package/dist/ComponentGallery-DIFeJqGx.js +2528 -0
  28. package/dist/{DatePicker-B3l9TEjW.d.ts → DatePicker-8xSs_jNd.d.ts} +3 -3
  29. package/dist/{DatePicker-CI87jC4_.js → DatePicker-D95gDPhg.js} +12 -11
  30. package/dist/{DatePickerInput-UBZcTmdv.js → DatePickerInput-CX6NYim4.js} +12 -23
  31. package/dist/{DatePickerInput-CZTEsrS0.d.ts → DatePickerInput-D81ZJ3fT.d.ts} +3 -3
  32. package/dist/{DateRangePicker-DKkc2B3n.d.ts → DateRangePicker-Bfq-yDm7.d.ts} +3 -3
  33. package/dist/{DateRangePicker-BX2O5zA8.js → DateRangePicker-_uTQk_ae.js} +16 -15
  34. package/dist/{DateTimePicker-CVfkp45w.js → DateTimePicker-BB058Z34.js} +11 -10
  35. package/dist/{DateTimePicker-IHr-wPq8.d.ts → DateTimePicker-D4lHyf6P.d.ts} +3 -3
  36. package/dist/{Dialog-DdRP4YFC.js → Dialog-9manOgMA.js} +4 -4
  37. package/dist/{Dialog-CXoVeIkU.js → Dialog-CKLkS00H.js} +10 -2
  38. package/dist/{Dialog-DEbI_9S-.d.ts → Dialog-CW93T9X1.d.ts} +3 -2
  39. package/dist/{DropdownMenu-zrodtd44.js → DropdownMenu-5jmtgLXd.js} +8 -6
  40. package/dist/{DropdownMenu-CWDhk3XA.d.ts → DropdownMenu-JNpYT4-3.d.ts} +3 -2
  41. package/dist/{DropdownMenuDesktop-CGYxsavQ.js → DropdownMenuDesktop-Cl9gZVq0.js} +9 -38
  42. package/dist/{FileInput-Dz1eESr_.js → FileInput-C0-6bw4w.js} +8 -8
  43. package/dist/{FileInput-BQbn77bE.d.ts → FileInput-C4CE5kuP.d.ts} +5 -4
  44. package/dist/{FileUpload-qySCMcLn.d.ts → FileUpload-CR7bZxV1.d.ts} +1 -1
  45. package/dist/{FileUpload-D3Io7Is5.js → FileUpload-DDpYMn8f.js} +51 -139
  46. package/dist/{FileUploadContainer-qOyGvb5J.d.ts → FileUploadContainer-042ztsaL.d.ts} +1 -1
  47. package/dist/{Form-u_N_6mwo.d.ts → Form-BJ12MjE-.d.ts} +1 -1
  48. package/dist/{FormField-B0miX3gu.d.ts → FormField-Byiehm9y.d.ts} +1 -1
  49. package/dist/{FormField-CHD4OJOt.js → FormField-U_-d4V_g.js} +9 -9
  50. package/dist/{FormFieldError-QRAFHUTt.js → FormFieldError-DeOHHLo2.js} +1 -1
  51. package/dist/FormFieldHeaderTooltip-DXbuu88v.js +17 -0
  52. package/dist/{IconButton-KXecZgYX.d.ts → IconButton-D4thBurp.d.ts} +2 -2
  53. package/dist/IconSlot-DSK7qNxc.js +79 -0
  54. package/dist/{InlineIconButton-CbKZ2U_a.d.ts → InlineIconButton-BeJCjl-q.d.ts} +2 -2
  55. package/dist/{InlineTooltipWrapper-g5yoeH1B.js → InlineTooltipWrapper-Bpmd--e7.js} +3 -3
  56. package/dist/{Input-efmPwk8f.d.ts → Input-DOanwj3l.d.ts} +3 -3
  57. package/dist/{InputContent-DuBa9FuI.d.ts → InputContent-CXuP1ghQ.d.ts} +3 -3
  58. package/dist/{InputItem-2zf6QI5L.js → InputItem-D-KuiNSc.js} +11 -11
  59. package/dist/{Inputs-C-w03Q_F.d.ts → Inputs-DA73LmLc.d.ts} +1 -1
  60. package/dist/{Inputs-BceDTmdT.js → Inputs-j3JmcLWR.js} +1 -1
  61. package/dist/{Link-QYpprkN1.d.ts → Link-Ow9H7kNv.d.ts} +3 -2
  62. package/dist/{ListBox-B7DW1S7n.js → ListBox-CL8Ar4Q_.js} +5 -4
  63. package/dist/{MenuItem--Mjd_yK8.d.ts → MenuItem-DHyqOqln.d.ts} +1 -1
  64. package/dist/{Modal-CoFt5PGP.js → Modal-w60dVQcb.js} +1 -1
  65. package/dist/{NumberField-z2JatYK0.d.ts → NumberField-Cb9Gf6QJ.d.ts} +3 -3
  66. package/dist/{NumberRangeInput-Chai3iEi.d.ts → NumberRangeInput-BfbJQqzn.d.ts} +2 -2
  67. package/dist/{NumberRangeInput-BxVrHq8R.js → NumberRangeInput-C-8U05wF.js} +6 -6
  68. package/dist/{Pagination-CXtIDclf.d.ts → Pagination-CwQu5Py8.d.ts} +1 -1
  69. package/dist/{PaginationList-CXG4jWFD.d.ts → PaginationList-DMRUGtf8.d.ts} +1 -1
  70. package/dist/{PaginationList-0bAmvXC0.js → PaginationList-DtvuP63b.js} +2 -2
  71. package/dist/{PasswordInput-ub2TQxef.d.ts → PasswordInput-CLwFUgl0.d.ts} +1 -1
  72. package/dist/{Popover-DUKH0q9u.d.ts → Popover-BTHPteIh.d.ts} +2 -2
  73. package/dist/{Progress-DQWiFP0L.js → Progress-B3mY9rIP.js} +2 -2
  74. package/dist/{Progress-Dho39FDs.d.ts → Progress-CjWOR38H.d.ts} +2 -1
  75. package/dist/{QuerySelect-Bo1K6gi_.d.ts → QuerySelect-BGxb6Y0K.d.ts} +2 -2
  76. package/dist/{RadioGroup-SSZYch-J.js → RadioGroup-B7_pNwn9.js} +13 -13
  77. package/dist/{RadioGroup-B_zJdn4y.d.ts → RadioGroup-CZg2kIMk.d.ts} +3 -3
  78. package/dist/{RichTextEditor-D6RewmRj.js → RichTextEditor-D9-B1Cze.js} +52 -133
  79. package/dist/{RichTextEditor-B_JX3nor.d.ts → RichTextEditor-YxuRUlI7.d.ts} +1 -1
  80. package/dist/{Select-CuZDkeQs.js → Select-CkujlTjm.js} +5 -4
  81. package/dist/{Select-DeapZMYx.d.ts → Select-pHbyJdZJ.d.ts} +1 -1
  82. package/dist/{SelectBase-7SE9Za2r.d.ts → SelectBase-Omiq2D3M.d.ts} +3 -3
  83. package/dist/{Slider-DJ9K_a-x.js → Slider-BHPl0OPy.js} +11 -11
  84. package/dist/{Slider-BFViQmM3.d.ts → Slider-EYlGCLWe.d.ts} +1 -1
  85. package/dist/{Spinner-BEYBu85B.js → Spinner-BeVTUzzx.js} +1 -1
  86. package/dist/{Spinner-BbcI6IOb.d.ts → Spinner-DbXeDOa2.d.ts} +2 -1
  87. package/dist/{SplitButton-lL87EcBL.d.ts → SplitButton-D9ngY1rJ.d.ts} +3 -3
  88. package/dist/{Stepper-C1YPgTBG.js → Stepper-Cp5vbL5g.js} +4 -117
  89. package/dist/{Stepper-hlhViuaK.d.ts → Stepper-TATlHZhQ.d.ts} +9 -8
  90. package/dist/{Switch-JxRmH1dX.js → Switch-CqnGEdeD.js} +11 -11
  91. package/dist/{Switch-DPftmB1b.d.ts → Switch-s_EPn0Jz.d.ts} +1 -1
  92. package/dist/Table-BDNSuEWc.js +689 -0
  93. package/dist/Tag-AHfV_XSf.d.ts +44 -0
  94. package/dist/{Tag-HiDH438e.js → Tag-DPg5sL1Z.js} +22 -21
  95. package/dist/{TextArea-gikUKKDl.js → TextArea-DqHDiRGJ.js} +6 -6
  96. package/dist/{TextArea-BhrCBGbq.d.ts → TextArea-l_keyLK7.d.ts} +2 -2
  97. package/dist/{TextButton-DnXRykhF.d.ts → TextButton-XUhV_1s0.d.ts} +4 -4
  98. package/dist/{TimePicker-CmT89X7v.d.ts → TimePicker-B1POvGWs.d.ts} +2 -2
  99. package/dist/{TimePicker-DtNTOOGr.js → TimePicker-DQ6JCkGB.js} +10 -10
  100. package/dist/Toast-DtG3pA61.js +53 -0
  101. package/dist/{Toast-B4cXs2rj.d.ts → Toast-ruXqONDA.d.ts} +1 -1
  102. package/dist/{ToastContainer-BbsMIwtC.js → ToastContainer-qgpzMFD4.js} +4 -3
  103. package/dist/{ToggleButton-BGuzPJDO.d.ts → ToggleButton-7aP8Jb11.d.ts} +2 -2
  104. package/dist/{ToggleGroup-D9CFdM5-.d.ts → ToggleGroup-CRFDIPGZ.d.ts} +1 -1
  105. package/dist/{ToggleGroup-Cl0NS3fe.js → ToggleGroup-DX0VYXwP.js} +25 -58
  106. package/dist/{Tooltip-aE1Vswxz.js → Tooltip-B9DKcYvr.js} +6 -47
  107. package/dist/{Tooltip-D7dNwGy9.d.ts → Tooltip-DHv6vAqW.d.ts} +6 -5
  108. package/dist/{TooltipWrapper-CRf-JFeo.js → TooltipWrapper-DznDgVJB.js} +4 -4
  109. package/dist/{Typography-B0Gp1lpc.js → Typography-LU4z2pR1.js} +2 -2
  110. package/dist/{Typography-BiuidzDC.d.ts → Typography-XljT9s02.d.ts} +1 -1
  111. package/dist/accordion.cva-CL1bVscW.js +129 -0
  112. package/dist/{autocomplete-BJ7rqWa4.d.ts → autocomplete-DeERHN8W.d.ts} +2 -2
  113. package/dist/badgeButton.cva-B2bgCQP6.d.ts +41 -0
  114. package/dist/badgeButton.cva-CvN4CTx5.js +300 -0
  115. package/dist/breadcrumbs.cva-7zzdDhVR.js +27 -0
  116. package/dist/{button.cva-BvRI-3Gn.d.ts → button.cva-C7kEhgoA.d.ts} +7 -6
  117. package/dist/{buttonContent.cva-BDT_CReI.d.ts → buttonContent.cva-DPIlROA9.d.ts} +2 -2
  118. package/dist/{checkbox-BfcE8J5P.d.ts → checkbox-DxIPDTK5.d.ts} +1 -1
  119. package/dist/{checkbox-group-CHs2wFHS.d.ts → checkbox-group-B3BOVshI.d.ts} +1 -1
  120. package/dist/{checkbox.cva-gv87kr1W.d.ts → checkbox.cva-t1Ox50hy.d.ts} +4 -3
  121. package/dist/components/accordion.js +1 -1
  122. package/dist/components/alert-dialog.d.ts +1 -1
  123. package/dist/components/alert-dialog.js +4 -4
  124. package/dist/components/alert.d.ts +1 -1
  125. package/dist/components/alert.js +1 -1
  126. package/dist/components/autocomplete.d.ts +1 -1
  127. package/dist/components/autocomplete.js +5 -4
  128. package/dist/components/badge-button.d.ts +2 -0
  129. package/dist/components/{pill-button.js → badge-button.js} +13 -12
  130. package/dist/components/badge.d.ts +1 -1
  131. package/dist/components/badge.js +56 -37
  132. package/dist/components/bottom-sheet.d.ts +2 -2
  133. package/dist/components/bottom-sheet.js +2 -2
  134. package/dist/components/breadcrumbs.d.ts +1 -1
  135. package/dist/components/breadcrumbs.js +1 -1
  136. package/dist/components/button.d.ts +2 -2
  137. package/dist/components/button.js +1 -1
  138. package/dist/components/checkbox-group.d.ts +1 -1
  139. package/dist/components/checkbox-group.js +6 -6
  140. package/dist/components/checkbox.d.ts +1 -1
  141. package/dist/components/checkbox.js +1 -1
  142. package/dist/components/date-picker.d.ts +1 -1
  143. package/dist/components/date-picker.js +1 -1
  144. package/dist/components/date-range-picker.d.ts +1 -1
  145. package/dist/components/date-range-picker.js +1 -1
  146. package/dist/components/date-time-picker.d.ts +1 -1
  147. package/dist/components/date-time-picker.js +1 -1
  148. package/dist/components/dialog.d.ts +1 -1
  149. package/dist/components/dialog.js +1 -1
  150. package/dist/components/drawer.js +3 -3
  151. package/dist/components/dropdown-menu.d.ts +2 -2
  152. package/dist/components/dropdown-menu.js +2 -2
  153. package/dist/components/file-input.d.ts +1 -1
  154. package/dist/components/file-input.js +1 -1
  155. package/dist/components/file-upload-container.d.ts +2 -2
  156. package/dist/components/file-upload-container.js +1 -1
  157. package/dist/components/file-upload.d.ts +2 -2
  158. package/dist/components/file-upload.js +1 -1
  159. package/dist/components/form-field.d.ts +1 -1
  160. package/dist/components/form-field.js +1 -1
  161. package/dist/components/icon-button.d.ts +1 -1
  162. package/dist/components/icon-button.js +2 -2
  163. package/dist/components/icon-slot.d.ts +2 -0
  164. package/dist/components/icon-slot.js +2 -0
  165. package/dist/components/inline-icon-button.d.ts +1 -1
  166. package/dist/components/inline-icon-button.js +1 -1
  167. package/dist/components/input.d.ts +1 -1
  168. package/dist/components/input.js +7 -7
  169. package/dist/components/link.d.ts +1 -1
  170. package/dist/components/link.js +32 -1
  171. package/dist/components/number-field.d.ts +1 -1
  172. package/dist/components/number-field.js +7 -7
  173. package/dist/components/number-range-input.d.ts +1 -1
  174. package/dist/components/number-range-input.js +1 -1
  175. package/dist/components/pagination-list.d.ts +1 -1
  176. package/dist/components/pagination-list.js +1 -1
  177. package/dist/components/pagination.d.ts +1 -1
  178. package/dist/components/pagination.js +2 -2
  179. package/dist/components/password-input.d.ts +1 -1
  180. package/dist/components/popover.d.ts +1 -1
  181. package/dist/components/popover.js +6 -5
  182. package/dist/components/progress.d.ts +1 -1
  183. package/dist/components/progress.js +1 -1
  184. package/dist/components/query-autocomplete.d.ts +2 -2
  185. package/dist/components/query-autocomplete.js +2 -2
  186. package/dist/components/query-select.d.ts +1 -1
  187. package/dist/components/query-select.js +3 -3
  188. package/dist/components/radio-group.d.ts +1 -1
  189. package/dist/components/radio-group.js +1 -1
  190. package/dist/components/select.d.ts +2 -2
  191. package/dist/components/select.js +1 -1
  192. package/dist/components/slider.d.ts +1 -1
  193. package/dist/components/slider.js +1 -1
  194. package/dist/components/spinner.d.ts +1 -1
  195. package/dist/components/spinner.js +1 -1
  196. package/dist/components/split-button.d.ts +1 -1
  197. package/dist/components/split-button.js +3 -3
  198. package/dist/components/stepper.d.ts +1 -1
  199. package/dist/components/stepper.js +1 -1
  200. package/dist/components/switch.d.ts +1 -1
  201. package/dist/components/switch.js +1 -1
  202. package/dist/components/tag.d.ts +1 -1
  203. package/dist/components/tag.js +1 -1
  204. package/dist/components/text-area.d.ts +1 -1
  205. package/dist/components/text-area.js +1 -1
  206. package/dist/components/text-button.d.ts +1 -1
  207. package/dist/components/text-button.js +1 -1
  208. package/dist/components/time-picker.d.ts +1 -1
  209. package/dist/components/time-picker.js +1 -1
  210. package/dist/components/toast.d.ts +2 -2
  211. package/dist/components/toast.js +2 -2
  212. package/dist/components/toggle-button.d.ts +1 -1
  213. package/dist/components/toggle-button.js +1 -1
  214. package/dist/components/toggle-group.d.ts +2 -2
  215. package/dist/components/toggle-group.js +1 -1
  216. package/dist/components/tooltip-ellipsis.js +1 -1
  217. package/dist/components/tooltip.d.ts +1 -1
  218. package/dist/components/tooltip.js +1 -1
  219. package/dist/components/typography.d.ts +2 -2
  220. package/dist/components/typography.js +1 -1
  221. package/dist/components/use-toast.d.ts +1 -1
  222. package/dist/components/use-toast.js +2 -2
  223. package/dist/config/confirmation.d.ts +1 -1
  224. package/dist/config/link-context.d.ts +2 -2
  225. package/dist/config/ui-config.d.ts +2 -2
  226. package/dist/config/ui-config.js +1 -1
  227. package/dist/config/ui-configurator-theme.d.ts +2 -0
  228. package/dist/config/ui-configurator-theme.js +2 -0
  229. package/dist/config/ui-configurator-vite.d.ts +10 -0
  230. package/dist/config/ui-configurator-vite.js +174 -0
  231. package/dist/config/ui-configurator.d.ts +934 -0
  232. package/dist/config/ui-configurator.js +3731 -0
  233. package/dist/config/ui-overrides.d.ts +1 -1
  234. package/dist/config/ui-overrides.js +1 -1
  235. package/dist/{confirmation.context-DPAKsLYl.d.ts → confirmation.context-BOeEVczb.d.ts} +1 -1
  236. package/dist/{date-picker-BYFWSbN8.d.ts → date-picker-DnxDmlOW.d.ts} +1 -1
  237. package/dist/{date-range-picker-BaaXOObm.d.ts → date-range-picker-DHDOSvHN.d.ts} +1 -1
  238. package/dist/{date-time-picker-D42cTCgx.d.ts → date-time-picker-UkTa0OJ8.d.ts} +1 -1
  239. package/dist/datePickerInput.cva-Cd7UUN61.js +14 -0
  240. package/dist/{datePickerValue.utils-CFCY-fRJ.js → datePickerValue.utils-CUzkWie8.js} +5 -5
  241. package/dist/{dialog.cva---xiOXMQ.js → dialog.cva-COhDZaVl.js} +4 -4
  242. package/dist/{dist-B8h0VT0E.js → dist-CAdwxJbe.js} +1 -208
  243. package/dist/{dom.utils-DjuRTR6U.js → dom.utils-D1AopHx9.js} +1 -1
  244. package/dist/dropdownMenu.cva-DvEmX0bs.js +34 -0
  245. package/dist/{dynamicInputs-wEEikYeg.d.ts → dynamicInputs-iP39lVKf.d.ts} +102 -100
  246. package/dist/{fieldAdapter-C0lCFmf0.js → fieldAdapter-DjYls12j.js} +1 -1
  247. package/dist/{file-input-C56GXRwz.d.ts → file-input-DkbkdI7l.d.ts} +1 -1
  248. package/dist/{file-upload-Bx0X534g.d.ts → file-upload-CTsPhxJk.d.ts} +2 -2
  249. package/dist/fileUpload.cva-ujmStxB1.js +42 -0
  250. package/dist/{fileUpload.types-DWuQKA2l.d.ts → fileUpload.types-n5FxK_F-.d.ts} +2 -2
  251. package/dist/iconSlot.cva-CnpFzAOR.d.ts +21 -0
  252. package/dist/icons.d.ts +2 -1
  253. package/dist/icons.js +2 -1
  254. package/dist/index.d.ts +87 -86
  255. package/dist/index.js +55 -44
  256. package/dist/info-iUmX3uDk.js +32 -0
  257. package/dist/{input-D2kGX0hW.d.ts → input-CdQNCPgH.d.ts} +1 -1
  258. package/dist/{input.cva-BhDJxc7r.d.ts → input.cva-BsHgYa-L.d.ts} +3 -2
  259. package/dist/{input.cva-BcXyC1vZ.js → input.cva-DJA8ovm_.js} +9 -9
  260. package/dist/{link.context-CDZn6oL2.d.ts → link.context-D5qyz9Rf.d.ts} +1 -1
  261. package/dist/link.cva-DMTHZiJG.js +12 -0
  262. package/dist/{number-field-Bw2GKr0s.d.ts → number-field-CUDbenNV.d.ts} +1 -1
  263. package/dist/{number-range-input-Dqe6x2dR.d.ts → number-range-input-DZGrcvjL.d.ts} +1 -1
  264. package/dist/{password-input-DepKyhh3.d.ts → password-input-fYN20cQO.d.ts} +1 -1
  265. package/dist/{popover.cva-BJSkLndY.js → popover.cva-Bhud1wnp.js} +1 -1
  266. package/dist/popoverAnimation-DEZSvKP8.js +4 -0
  267. package/dist/{query-autocomplete-BSpHin_R.d.ts → query-autocomplete-CfuQeiYG.d.ts} +2 -2
  268. package/dist/{query-select-m1DCp4UF.d.ts → query-select-CuT_sE6a.d.ts} +2 -2
  269. package/dist/{queryAutocomplete.types-CrbVUmvl.d.ts → queryAutocomplete.types-tl3r6iaY.d.ts} +2 -2
  270. package/dist/{radio-group-Civ3Fb70.d.ts → radio-group-B3ccPf0p.d.ts} +1 -1
  271. package/dist/{radio.cva-BlOrmxzf.d.ts → radio.cva-DN9VQ3Kb.d.ts} +4 -3
  272. package/dist/rhf/autocomplete.d.ts +2 -2
  273. package/dist/rhf/autocomplete.js +1 -1
  274. package/dist/rhf/checkbox-group.d.ts +2 -2
  275. package/dist/rhf/checkbox-group.js +1 -1
  276. package/dist/rhf/checkbox.d.ts +2 -2
  277. package/dist/rhf/checkbox.js +2 -2
  278. package/dist/rhf/date-picker.d.ts +2 -2
  279. package/dist/rhf/date-picker.js +2 -2
  280. package/dist/rhf/date-range-picker.d.ts +2 -2
  281. package/dist/rhf/date-range-picker.js +2 -2
  282. package/dist/rhf/date-time-picker.d.ts +2 -2
  283. package/dist/rhf/date-time-picker.js +2 -2
  284. package/dist/rhf/file-input.d.ts +2 -2
  285. package/dist/rhf/file-input.js +2 -2
  286. package/dist/rhf/file-upload.d.ts +2 -2
  287. package/dist/rhf/file-upload.js +2 -2
  288. package/dist/rhf/input.d.ts +2 -2
  289. package/dist/rhf/input.js +1 -1
  290. package/dist/rhf/inputs.d.ts +2 -2
  291. package/dist/rhf/number-field.d.ts +2 -2
  292. package/dist/rhf/number-field.js +1 -1
  293. package/dist/rhf/number-range-input.d.ts +2 -2
  294. package/dist/rhf/number-range-input.js +2 -2
  295. package/dist/rhf/password-input.d.ts +2 -2
  296. package/dist/rhf/password-input.js +1 -1
  297. package/dist/rhf/query-autocomplete.d.ts +1 -1
  298. package/dist/rhf/query-autocomplete.js +1 -1
  299. package/dist/rhf/query-select.d.ts +1 -1
  300. package/dist/rhf/query-select.js +1 -1
  301. package/dist/rhf/radio-group.d.ts +2 -2
  302. package/dist/rhf/radio-group.js +2 -2
  303. package/dist/rhf/rich-text-editor.d.ts +2 -2
  304. package/dist/rhf/rich-text-editor.js +2 -2
  305. package/dist/rhf/select.d.ts +2 -2
  306. package/dist/rhf/select.js +2 -2
  307. package/dist/rhf/slider.d.ts +2 -2
  308. package/dist/rhf/slider.js +2 -2
  309. package/dist/rhf/switch.d.ts +2 -2
  310. package/dist/rhf/switch.js +2 -2
  311. package/dist/rhf/text-area.d.ts +2 -2
  312. package/dist/rhf/text-area.js +2 -2
  313. package/dist/rhf/time-picker.d.ts +2 -2
  314. package/dist/rhf/time-picker.js +2 -2
  315. package/dist/rhf/toggle-group.d.ts +2 -2
  316. package/dist/rhf/toggle-group.js +2 -2
  317. package/dist/{rhf-D8B7mLO1.js → rhf-t348TCCL.js} +1 -1
  318. package/dist/rhf.d.ts +87 -86
  319. package/dist/rhf.js +55 -44
  320. package/dist/{rich-text-editor-DvNEOIux.d.ts → rich-text-editor-B-Onl7T8.d.ts} +1 -1
  321. package/dist/rich-text-editor.d.ts +1 -1
  322. package/dist/rich-text-editor.js +1 -1
  323. package/dist/{select-DY5QtwqI.d.ts → select-B4a52eWW.d.ts} +2 -2
  324. package/dist/selectDesktop.cva-CHAMxhfO.js +69 -0
  325. package/dist/{slider-CrB-Gkcv.d.ts → slider-dNj9jruO.d.ts} +1 -1
  326. package/dist/{staticDateTimeSegments-DR8bJw-F.js → staticDateTimeSegments-CsCE9Buo.js} +26 -27
  327. package/dist/{staticSelect.utils-Cm7MoDVG.js → staticSelect.utils-BemUyaaA.js} +31 -90
  328. package/dist/stepper.cva-CZ0Kj-s7.js +116 -0
  329. package/dist/style-merge.util-zLimKwt6.d.ts +40 -0
  330. package/dist/styles/color-utilities.css +13 -25
  331. package/dist/styles/configurator.css +1852 -0
  332. package/dist/styles/input.d.ts +1 -1
  333. package/dist/{switch-8WzXfTS8.d.ts → switch-C--iWnY8.d.ts} +1 -1
  334. package/dist/switch.cva-CWNzmdRc.d.ts +16 -0
  335. package/dist/table.cva-BikE8qJH.js +49 -0
  336. package/dist/tanstack/autocomplete.d.ts +1 -1
  337. package/dist/tanstack/checkbox-group.d.ts +1 -1
  338. package/dist/tanstack/checkbox.d.ts +1 -1
  339. package/dist/tanstack/checkbox.js +1 -1
  340. package/dist/tanstack/date-picker.d.ts +1 -1
  341. package/dist/tanstack/date-picker.js +1 -1
  342. package/dist/tanstack/date-range-picker.d.ts +1 -1
  343. package/dist/tanstack/date-range-picker.js +1 -1
  344. package/dist/tanstack/date-time-picker.d.ts +1 -1
  345. package/dist/tanstack/date-time-picker.js +1 -1
  346. package/dist/tanstack/file-input.d.ts +1 -1
  347. package/dist/tanstack/file-input.js +1 -1
  348. package/dist/tanstack/file-upload.d.ts +2 -2
  349. package/dist/tanstack/file-upload.js +1 -1
  350. package/dist/tanstack/form.d.ts +1 -1
  351. package/dist/tanstack/form.js +1 -1
  352. package/dist/tanstack/input.d.ts +1 -1
  353. package/dist/tanstack/inputs.d.ts +3 -3
  354. package/dist/tanstack/inputs.js +1 -1
  355. package/dist/tanstack/number-field.d.ts +1 -1
  356. package/dist/tanstack/number-range-input.d.ts +1 -1
  357. package/dist/tanstack/number-range-input.js +1 -1
  358. package/dist/tanstack/password-input.d.ts +1 -1
  359. package/dist/tanstack/query-select.d.ts +1 -1
  360. package/dist/tanstack/radio-group.d.ts +1 -1
  361. package/dist/tanstack/radio-group.js +1 -1
  362. package/dist/tanstack/rich-text-editor.d.ts +1 -1
  363. package/dist/tanstack/rich-text-editor.js +1 -1
  364. package/dist/tanstack/select.d.ts +1 -1
  365. package/dist/tanstack/select.js +1 -1
  366. package/dist/tanstack/slider.d.ts +1 -1
  367. package/dist/tanstack/slider.js +1 -1
  368. package/dist/tanstack/switch.d.ts +1 -1
  369. package/dist/tanstack/switch.js +1 -1
  370. package/dist/tanstack/table.d.ts +1 -1
  371. package/dist/tanstack/table.js +2 -1
  372. package/dist/tanstack/text-area.d.ts +1 -1
  373. package/dist/tanstack/text-area.js +1 -1
  374. package/dist/tanstack/time-picker.d.ts +1 -1
  375. package/dist/tanstack/time-picker.js +1 -1
  376. package/dist/tanstack/toggle-group.d.ts +2 -2
  377. package/dist/tanstack/toggle-group.js +1 -1
  378. package/dist/tanstack.d.ts +71 -70
  379. package/dist/tanstack.js +66 -53
  380. package/dist/{text-area-CqnKRWKq.d.ts → text-area-DQAtpOQp.d.ts} +1 -1
  381. package/dist/theme-model-C-QMCksE.js +136 -0
  382. package/dist/theme-model-T1zIdBg8.d.ts +12 -0
  383. package/dist/{time-picker-Cz1GIzpF.d.ts → time-picker-DoGfbil6.d.ts} +1 -1
  384. package/dist/{toast.cva-Cj6o2Rmu.d.ts → toast.cva-By5lvAfr.d.ts} +3 -2
  385. package/dist/toast.cva-C_L_RffH.js +163 -0
  386. package/dist/{toast.runtime-CIKvmkjo.js → toast.runtime-cxex9e4E.js} +2 -1
  387. package/dist/{toggle-group-CPkKHm1t.d.ts → toggle-group-C1nMDOwz.d.ts} +1 -1
  388. package/dist/toggleGroup.cva-MbpaEBg1.js +35 -0
  389. package/dist/{toggleGroup.types-DD6uRI5G.d.ts → toggleGroup.types-Bp43zbSQ.d.ts} +2 -1
  390. package/dist/tooltip.cva-BIzlOXHH.js +48 -0
  391. package/dist/{tooltipWrapper.cva-CUu8pI-a.js → tooltipWrapper.cva-BBQ4ic3D.js} +1 -1
  392. package/dist/{typography.cva-jtp6WWUH.d.ts → typography.cva-D1JOEYl-.d.ts} +2 -1
  393. package/dist/{typography.cva-CJZZSGXW.js → typography.cva-iD15k56p.js} +1 -1
  394. package/dist/{uiConfig.context-D2eUIPHn.js → uiConfig.context-BS3r_kTS.js} +1 -1
  395. package/dist/{uiConfig.context-aoarCLYX.d.ts → uiConfig.context-DeBX2beU.d.ts} +8 -8
  396. package/dist/{uiOverrides.context-Bfm2n-n8.js → uiOverrides.context-BTCH9y5a.js} +2 -2
  397. package/dist/{uiOverrides.context-C3xb4Ttq.d.ts → uiOverrides.context-DEp139He.d.ts} +11 -44
  398. package/dist/underline-66hmELxa.js +81 -0
  399. package/dist/{useBreakpoint-BOA-MyoT.js → useBreakpoint-DQoMN-BG.js} +1 -1
  400. package/dist/{useFieldAccessibility-D2_Qm26-.js → useFieldAccessibility-B4MVL6fz.js} +15 -8
  401. package/dist/{useFormAutosave-BYFn3LH8.js → useFormAutosave-Mg-tdwMh.js} +2 -2
  402. package/dist/{useStaticInputHandoff-DB9PgioW.js → useStaticInputHandoff-CvSBPUB3.js} +13 -10
  403. package/dist/useTableColumnConfig-gfVame8v.js +892 -0
  404. package/dist/{useTableNav-D9mICzNW.d.ts → useTableNav-Ckj5PBRk.d.ts} +3 -2
  405. package/dist/{useToast-DMSm59Y6.d.ts → useToast-yreVCUer.d.ts} +1 -1
  406. package/package.json +38 -6
  407. package/rulesync.jsonc +11 -0
  408. package/scripts/generate-rules.mjs +34 -0
  409. package/src/configurator/README.md +71 -0
  410. package/dist/Button-sn52l1Yv.js +0 -506
  411. package/dist/FormFieldHeaderTooltip-Dl24v4_j.js +0 -45
  412. package/dist/Link-Btxj2gzg.js +0 -42
  413. package/dist/PillButton-DASBXLFB.d.ts +0 -15
  414. package/dist/Tag-Cch_68QO.d.ts +0 -43
  415. package/dist/components/pill-button.d.ts +0 -2
  416. package/dist/pillButton.cva-BEWuu0qm.d.ts +0 -34
  417. package/dist/pillButton.cva-DlP5tOT5.js +0 -197
  418. package/dist/switch.cva-8T0fw31t.d.ts +0 -15
  419. package/dist/useTableColumnConfig-CcJxu14U.js +0 -1625
@@ -0,0 +1,56 @@
1
+ ---
2
+ targets: ["*"]
3
+ description: "@povio/ui buttons, labels, status feedback, and text-content APIs"
4
+ globs:
5
+ - "packages/ui/src/components/buttons/**/*"
6
+ - "packages/ui/src/components/text/**/*"
7
+ - "packages/ui/src/components/status/**/*"
8
+ - "packages/ui/src/components/shared/pagination/**/*"
9
+ ---
10
+
11
+ # Buttons, text, and status components
12
+
13
+ ## Button
14
+
15
+ Use `Button` for an action. Its content is `children`; use `link` only when it navigates through the configured `LinkContext`.
16
+
17
+ - Visual variants: `contained`, `solid`, `outlined`, `outline`, `subtle`, `text`, `ghost`. The default CVA styles `solid` like `contained` and `outline` like `outlined`, but passes every value through unchanged so UI overrides can redefine either value.
18
+ - Colors: `primary`, `secondary`, `error` (destructive theme tokens), and Atlas-specific `dual`. Text buttons with `dual` use primary text and secondary icons. Only primary text buttons support `inverted`, using the primary foreground token.
19
+ - Sizes: `sm` (alias `s`), `default`, and `none` (zero padding); omit the size prop for `default`. Legacy sizes (`xs`, `small`, `m`, `md`, `l`, `lg`) are not supported.
20
+ - Use `fullWidth`; `width="fill"` and `width="hug"` remain valid.
21
+ - Use `loading` or `isLoading`; loading disables the button by default. `disableWhileLoading={false}` opts out; `noDisableWhenLoading` is the legacy inverse.
22
+ - Use `startIcon` and `endIcon`. `icon` plus `iconPosition="left" | "right"` remains supported.
23
+ - Use `IconButton` for icon-only actions and supply `ariaLabel` or `label`. `InlineIconButton` is the text-style icon-only variant.
24
+ - Use `ToggleButton` for one independently toggled state (`isSelected`, `defaultSelected`, `onChange`). It defaults to outlined primary but honors supplied `variant` and `color`.
25
+ - Use `SplitButton` only for a primary action with menu alternatives; use `ButtonGroup` for peer actions.
26
+ - `variant`, `size`, and other CVA props belong to the active override. Never normalize their values inside a component; define default compatibility aliases as CVA entries instead.
27
+ - Use `BadgeButton` from `@povio/ui/badge-button` for a compact, badge-styled action. It has its own CVA but follows the same variant contract: `solid` and `outline` are default aliases and are passed unchanged to `badgeButton.cva` overrides.
28
+
29
+ ## Tags, links, typography
30
+
31
+ Typography sizes are `headline-l`, `h1`–`h4`, `lead`, `body`, `large`, and `small`; There is no typography `variant`; use `className="font-bold"` or `className="italic"` for emphasis. `large` and `small` do not add font weight; use explicit emphasis when needed. Use the same size on mobile and desktop unless explicitly overridden.
32
+
33
+ - `Badge` and `Tag` are display components, not generic buttons. Use `dismissible` and `onRemove` for removal; `dismissable` and `onDismiss` are legacy forms.
34
+ - `Badge` and `BadgeButton` support primary, secondary, success, warning, and error colors with contained, outlined, and subtle variants. Their padding is 2px vertically and 8px horizontally, or 6px horizontally when an icon/dismiss control is present. `Badge isSelected` displays the toggled state; use `BadgeButton toggle` for an interactive toggle. Toggled colors use the same state modifiers as buttons.
35
+ - Pass remove-button behavior through `dismissButtonProps`; arbitrary button props do not belong on the display container.
36
+ - Use `Link` for navigation and `Button` for actions.
37
+ - Use `Typography` with semantic `as` elements (`h1`, `h2`, `p`, `span`) and library typography variants/sizes. Token changes belong in UI overrides, not consumers.
38
+
39
+ ## Feedback
40
+
41
+ - Use `Alert` for persistent inline status, `Toast`/`useToast` for transient notifications, `Spinner` for indeterminate progress, and `Progress` for numeric progress.
42
+ - For alerts and toasts, keep `variant` (`contained`/`outlined`) separate from semantic `color` (`neutral`, `success`, `warning`, `error`).
43
+ - Alert and Toast message text uses `large` typography. Outlined messages use `surface-default-card-foreground` text and primary text-button actions. Contained messages use `surface-inverted-card-foreground` for neutral, `surface-success-inverted-base` for success, `surface-warning-inverted-base` for warning, and `surface-destructive-inverted-base` for error; actions use inverted primary text buttons. Actions use `size="none"`, with `toast-gap-action` spacing between them. Alert's `rightContent` is caller supplied, so configure its actions with `TextButton size="none" color="primary" inverted={variant === "contained"}`.
44
+ - Toast actions are `{ text, onPress }`; keep them short and non-destructive.
45
+
46
+ ## Reference
47
+
48
+ - `packages/ui/src/components/buttons/Button/Button.tsx` — Button behavior and compatibility.
49
+ - `packages/ui/src/components/text/Tag/Tag.tsx` — dismissible tag contract.
50
+ - `packages/ui/src/components/status/Toast/Toast.tsx` — toast content and actions.
51
+
52
+ ## When refactoring
53
+
54
+ - `Button` uses `icon` only for a conventional start/end icon → use `startIcon` or `endIcon`.
55
+ - An icon-only action has no accessible name → use `IconButton` with `ariaLabel` or `label`.
56
+ - A tag/pill receives `onPress` to represent selection → use `ToggleButton` or `ToggleGroup`.
@@ -0,0 +1,62 @@
1
+ ---
2
+ targets: ["*"]
3
+ description: "@povio/ui form fields, selection controls, pickers, uploads, and React Hook Form integration"
4
+ globs:
5
+ - "packages/ui/src/components/inputs/**/*"
6
+ - "packages/ui/src/hooks/useForm*.ts"
7
+ ---
8
+
9
+ # Inputs and forms
10
+
11
+ ## Shared field contract
12
+
13
+ - Sizes: `small` and `default` only. Omit `size` for the default; `extra-small` and `large` are not supported. This shared input API has no `sm` or `s` aliases.
14
+ - Use `label`, `helperText`, `error`, `isRequired`, and `isDisabled` as the base field contract.
15
+ - `Input`, `TextArea`, and `NumberField` also accept `errorMessage`, `required`, and `disabled`. Their visual layout is `layout="default" | "floating" | "filter" | "inline"`; `as` remains the legacy layout prop and is not polymorphic element selection.
16
+ - Use `variant="outlined" | "filled"` for text-like inputs. Keep layout separate from variant.
17
+ - Use `isClearable`, `leadingIcon`, `trailingIcon`, `action`, `unit`, `placeholder`, and `inputClassName` only where exposed; do not recreate input chrome in consumers.
18
+ - Controlled fields use `value` and `onChange`; uncontrolled fields use `defaultValue`. Preserve callback value types: strings for text, `number | null` for number fields, and component-specific date values for pickers.
19
+
20
+ ## Selection controls
21
+
22
+ - `Checkbox` uses `isSelected`, `defaultSelected`, and `onChange(boolean)`; `children` may be any `ReactNode`.
23
+ - `Switch` uses the same boolean selection contract.
24
+ - `RadioGroup` takes `options: { label, value }[]` and scalar `value`/`defaultValue`/`onChange`.
25
+ - `CheckboxGroup` takes the same options shape and array values. `allValue` is an Atlas extension for all-selected representation.
26
+ - `ToggleGroup`, `Select`, and `Autocomplete` use `selectionMode="single" | "multiple"`. Single values are `Key | null`; multiple values are `Key[]`.
27
+ - `Select` is a closed selection field. `Autocomplete` is the searchable/combobox form of the same item API. Both take `items: { id, label, content?, isDisabled? }[]`.
28
+ - Preserve Select capabilities: `isSearchable`, `isClearable`, `showSelectAllOption`, `showSelectionBar`, `showNewItemOption`, `onNewItemOption`, async `isLoading`/`hasLoadMore`/`onLoadMore`, and `virtualizerOptions`.
29
+ - Use `QuerySelect` and `QueryAutocomplete` only with the package TanStack Query adapter; they are not generic async-select replacements.
30
+
31
+ ## Dates, ranges, files, rich text
32
+
33
+ - Use `DatePicker`, `DateRangePicker`, `TimePicker`, and `DateTimePicker` for React Aria date values. Preserve `minValue`, `maxValue`, `granularity`, `isClearable`, and date-input options rather than replacing them with native inputs.
34
+ - Use `Slider` with numeric `value`/`defaultValue`; set `isRange` for two-thumb values.
35
+ - Use `FileInput` for controlled form file values and `FileUpload` for upload lifecycle, progress, cancellation, and uploaded-file display. Both accept `multiple` or `allowsMultiple`.
36
+ - Import `RichTextEditor` from `@povio/ui/rich-text-editor`, not the main package entry point.
37
+
38
+ ## Forms
39
+
40
+ ```tsx
41
+ // TanStack Form (native binding, e.g. import from "@povio/ui/tanstack/input")
42
+ <Input label="Name" field={{ form, name: "name" }} />
43
+
44
+ // React Hook Form (adapter, e.g. import from "@povio/ui/rhf/input")
45
+ <Input label="Name" formControl={{ control: form.control, name: "name" }} />
46
+ ```
47
+
48
+ - `field` (TanStack) and `formControl` (React Hook Form) each own `value`, `onChange`, and `onBlur`; do not supply competing controlled props alongside either.
49
+ - `Form` and `Inputs` are Zod schema helpers, available in both the TanStack-native and React Hook Form flavors. Use a regular HTML `<form>` with individual fields when schema-generated rendering is not needed.
50
+
51
+ ## Reference
52
+
53
+ - `packages/ui/src/components/inputs/Input/Input.tsx` — core text-field API.
54
+ - `packages/ui/src/components/inputs/Selection/shared/SelectBase.tsx` — selection and async capabilities.
55
+ - `packages/ui/src/components/inputs/shared/form.types.ts` — typed `field` (TanStack) contract.
56
+ - `packages/ui/src/rhf/form.types.ts` — typed `formControl` (React Hook Form) contract.
57
+
58
+ ## When refactoring
59
+
60
+ - A consumer uses `as` to select a DOM element → use `layout`; `as` controls legacy input presentation.
61
+ - App code checks `allowsMultiple` → prefer `multiple` in new code.
62
+ - A select hand-rolls filtering or virtualized results → use the exposed Select/Autocomplete props before adding consumer-side overlay logic.
@@ -0,0 +1,49 @@
1
+ ---
2
+ targets: ["*"]
3
+ description: "@povio/ui overlays, navigation, tables, accessibility, and styling conventions"
4
+ globs:
5
+ - "packages/ui/src/components/overlays/**/*"
6
+ - "packages/ui/src/components/navigation/**/*"
7
+ - "packages/ui/src/components/DropdownMenu/**/*"
8
+ - "packages/ui/src/components/Breadcrumbs/**/*"
9
+ - "packages/ui/src/components/table/**/*"
10
+ - "packages/ui/src/components/**/*.cva.ts"
11
+ ---
12
+
13
+ # Overlays, navigation, tables, and styling
14
+
15
+ ## Overlays and navigation
16
+
17
+ - Use `Dialog` with controlled `isOpen`; handle transitions with `onOpenChange`. `onClose` remains available for close-only behavior.
18
+ - Use `AlertDialog` for confirmations with a primary action and optional secondary action.
19
+ - Use `Drawer` for a side panel and `BottomSheet` for a mobile bottom sheet. Both own focus trapping and dismissal; do not mount parallel ad-hoc overlays.
20
+ - `Popover` renders a desktop popover and mobile bottom sheet. It requires a trigger, controlled state, and accessible `sheetLabel`.
21
+ - Use `Tooltip` for supplemental text only; it must not be the sole accessible label for an icon action.
22
+ - Use `DropdownMenu` with `trigger`, `items`, and `onAction`. Menu items are `{ id, label, content?, link?, children? }`; nested `children` create submenus.
23
+ - Use `Accordion` for expandable content, `Stepper` for step progress, `Breadcrumbs` for hierarchy, and `Pagination`/`PaginationList` for page navigation.
24
+
25
+ ## Tables
26
+
27
+ - `Table` is the base TanStack wrapper. Use `PaginatedTable` or `InfiniteTable` only when their data-loading contracts match the view.
28
+ - Keep table columns in the consumer domain. Use `CellText` and `HeaderText` for consistent text treatment; use `ColumnConfigModal` for persisted visibility/configuration behavior.
29
+
30
+ ## Styling and accessibility
31
+
32
+ - Components use class-variance-authority, `UIOverrides`, and tokenized Tailwind classes. Add visual variants through the relevant `*.cva.ts` definition and expose a typed variant prop; do not add hard-coded color values in consumers.
33
+ - Use `UIConfig` for package-wide defaults and `UIOverrides` for recipe overrides. Do not duplicate component markup to bypass them.
34
+ - Preserve React Aria state props/data attributes (`isDisabled`, `isSelected`, `isInvalid`, `data-selected`) when wrapping controls.
35
+ - Root styling uses `className`. Prefer existing slot props (`inputClassName`, `dialogClassName`, `overlayClassName`, `containerClassName`) over selectors reaching into library internals.
36
+ - Keep button-like controls keyboard accessible. Icon-only actions need an accessible name; labels remain associated with fields.
37
+ - Avoid nested runtime ternaries in rendering or prop normalization. Use a named helper, map, or explicit branch.
38
+
39
+ ## Reference
40
+
41
+ - `packages/ui/src/components/overlays/Dialog/Dialog.tsx` — controlled dialog behavior.
42
+ - `packages/ui/src/components/DropdownMenu/DropdownMenu.tsx` — responsive menu boundary.
43
+ - `packages/ui/src/config/uiOverrides.context.tsx` — recipe override system.
44
+
45
+ ## When refactoring
46
+
47
+ - A component hard-codes a visual token already represented by a CVA recipe → add or reuse a typed recipe variant.
48
+ - An icon-only trigger relies only on a tooltip → add an `aria-label`/`ariaLabel` or visible label.
49
+ - Overlay state is duplicated in an app wrapper and a UI component → make controlled `isOpen`/`onOpenChange` the source of truth.
@@ -0,0 +1,33 @@
1
+ ---
2
+ root: true
3
+ targets: ["*"]
4
+ description: "@povio/ui public API and component-selection guidance"
5
+ globs: ["packages/ui/**/*"]
6
+ ---
7
+
8
+ # @povio/ui component-library overview
9
+
10
+ `@povio/ui` is a React 19, TypeScript, Tailwind 4 component library built on React Aria Components. Import components and hooks from component-scoped subpaths (e.g. `@povio/ui/dialog`, `@povio/ui/rich-text-editor`), or from the broader `@povio/ui/rhf` (React Hook Form) or `@povio/ui/tanstack` (TanStack Form) entries; internal `src/components/**` paths are not consumer APIs.
11
+
12
+ ## Public API and naming
13
+
14
+ - `src/rhf.ts` and `src/tanstack.ts` are the authoritative barrels for the two form-integration flavors; `src/entries/*.ts` (plus `src/entries/rhf/*.ts` and `src/entries/tanstack/*.ts` for form-capable components) back the individual `package.json#exports` subpaths. Add or change a public component in all three places together with its prop type.
15
+ - Component names are canonical and final: `Input`, `NumberField`, `FileInput`, `Switch`, `ToggleGroup`, `DropdownMenu`, `Dialog`, `AlertDialog`, `Popover`, `Spinner`, `Progress`, `Badge`, `RichTextEditor` (exported from `@povio/ui/rich-text-editor`).
16
+ - Use `ButtonGroup` for grouped independent actions. Use `ToggleGroup` only when the group represents selected value(s).
17
+
18
+ ## Common conventions
19
+
20
+ - Components use React Aria event names (`onPress`, `onChange`, `isDisabled`, `isSelected`) as their base API.
21
+ - Form-capable components speak a native `field: { form, name }` TanStack Form binding. Consumers on `@povio/ui/rhf/*` get the same components wrapped with a `formControl: { control, name }` React Hook Form adapter instead. Do not pass `value`, `onChange`, or `onBlur` together with `field`/`formControl`.
22
+ - Keep public props semantic and domain-independent. Use `className` for root styling and component-specific `*ClassName` props only for independently styled internal slots.
23
+ - Prefer `ReactNode` for display content and preserve `aria-*` props through to the interactive element.
24
+
25
+ ## Reference
26
+
27
+ - `packages/ui/src/rhf.ts` / `packages/ui/src/tanstack.ts` — public exports per form-integration flavor.
28
+ - `packages/ui/src/config/uiConfig.context.tsx` — runtime component defaults.
29
+
30
+ ## When refactoring
31
+
32
+ - A consumer imports from `src/components/...` → switch it to a package subpath export.
33
+ - A stateful segmented control is used as an action toolbar → use `ButtonGroup` and `Button`s instead.
package/README.md CHANGED
@@ -12,6 +12,7 @@ Use component and feature subpaths in application code. Each subpath resolves to
12
12
 
13
13
  ```tsx
14
14
  import { Button } from "@povio/ui/button";
15
+ import { BadgeButton } from "@povio/ui/badge-button";
15
16
  import { Dialog } from "@povio/ui/dialog";
16
17
  import { Select } from "@povio/ui/tanstack/select";
17
18
  import { useForm } from "@povio/ui/tanstack/form";
@@ -40,6 +41,23 @@ The React Aria hooks used by Povio are similarly isolated under `use-text-field`
40
41
 
41
42
  Each emitted entry is independently bundled and tree-shaken; it does not forward React Aria's aggregate barrel or share a generated aggregate chunk with unrelated controls. Ordinary Povio component imports do not include the escape-hatch entries.
42
43
 
44
+ Use `Badge` for display content, `BadgeButton` for a compact, badge-styled action, and `ToggleButton` or `ToggleGroup` for selection. `BadgeButton` uses the theme's `badge-*` spacing and radius tokens; customize its recipe through `UIOverrides.badgeButton`.
45
+
46
+ ## Theme configurator
47
+
48
+ The live theme editor ships separately as `@povio/ui/ui-configurator`, with its stylesheet at `@povio/ui/ui-configurator/styles`. It is independent of Storybook and is excluded from ordinary component imports. For only the `parseThemeCss` / `exportCss` helpers and token types, use the lightweight `@povio/ui/ui-configurator/theme` entry.
49
+
50
+ To save its Tailwind CSS export directly to your app's theme during development, add the bundled Vite plugin:
51
+
52
+ ```ts
53
+ import { uiConfigurator } from "@povio/ui/ui-configurator/vite";
54
+
55
+ // In your Vite plugins array:
56
+ uiConfigurator({ themeFile: "src/styles/theme.css" });
57
+ ```
58
+
59
+ The path defaults to `src/styles/theme.css` relative to this app's Vite root. **Export → Tailwind CSS → Save theme** updates that file's token declarations and lets Vite reload the CSS. Each app writes only its own configured theme. Apply remains session-only; Cancel does not undo a file save. The plugin and save action are absent from builds and preview servers. See [the configurator guide](./src/configurator/README.md) for provider setup, preview behavior, and supported theme blocks.
60
+
43
61
  ## Button sizes
44
62
 
45
63
  `Button` supports `sm` (with `s` as an equivalent alias), `default`, and `none` (zero padding). Omitting `size` uses `default`. The same sizes apply to `IconButton`, `InlineIconButton`, `TextButton`, `ToggleButton`, and `SplitButton`.
@@ -62,21 +80,15 @@ Replace `size="extra-small"` with `size="small"`, and remove `size="large"` or `
62
80
 
63
81
  The package ships RuleSync source rules in `.rulesync/` and `rulesync.jsonc`. They document the public component API, standard aliases, form contracts, accessibility expectations, and styling conventions for AI coding tools. Generated tool files are deliberately excluded from the published npm package.
64
82
 
65
- To generate the UI rules into a consuming project's repository root, run the executable bundled with `@povio/ui`:
83
+ To generate the UI rules into a consuming project's repository root, install [`rulesync`](https://github.com/dyoshikawa/rulesync) (`^8.15.0`) in that project, then run the executable bundled with `@povio/ui`:
66
84
 
67
85
  ```bash
68
- pnpm exec povio-ui-rules
86
+ bunx --package @povio/ui povio-ui-rules
69
87
  ```
70
88
 
71
- With npm, use:
89
+ This generates the relevant Cursor, Claude Code, and Codex CLI files in the consuming repository. Add generated files to that repository's `.gitignore` unless they are intentionally versioned. Re-run the command after upgrading `@povio/ui`; verify without writing files by adding `--check` (for example, `bunx --package @povio/ui povio-ui-rules --check`).
72
90
 
73
- ```bash
74
- npx povio-ui-rules
75
- ```
76
-
77
- This generates the relevant Cursor, Claude Code, and Codex CLI files in the consuming repository. Add generated files to that repository's `.gitignore` unless they are intentionally versioned. Re-run the command after upgrading `@povio/ui`; verify without writing files by adding `--check` (for example, `pnpm exec povio-ui-rules --check`).
78
-
79
- Within this monorepo, the equivalent package-local commands are `pnpm --filter @povio/ui rules:gen` and `pnpm --filter @povio/ui rules:check`.
91
+ Within this monorepo, the equivalent package-local commands are `bun run --filter @povio/ui rules:gen` and `bun run --filter @povio/ui rules:check`.
80
92
 
81
93
  ## Publishing
82
94
 
@@ -130,9 +142,9 @@ We also use a custom tailwind plugin to shorten some selectors inside the @povio
130
142
  @plugin "@povio/ui/tw-ui-plugin";
131
143
  ```
132
144
 
133
- ### Background tint utility
145
+ ### State color utilities
134
146
 
135
- Import the color utilities in your application's Tailwind stylesheet. This import is required because `@povio/ui` button styles use these utilities:
147
+ Import the color utilities in your application's Tailwind stylesheet. This import is required because `@povio/ui` components use these utilities:
136
148
 
137
149
  ```css
138
150
  @import "tailwindcss";
@@ -140,18 +152,39 @@ Import the color utilities in your application's Tailwind stylesheet. This impor
140
152
  @import "@povio/ui/color-utilities";
141
153
  ```
142
154
 
143
- Use `bg-tint-<color>/<percentage>` to mix a theme color with white in sRGB. The color name resolves to your theme's `--color-<color>` token. The required modifier is an integer from `0` to `100`: `/80` keeps 80% of the original color and adds 20% white, `/100` keeps the original color, and `/0` produces white. Lower numbers produce lighter tints.
155
+ Use `bg-state-<color>/<state>`, `border-state-<color>/<state>`, `border-b-state-<color>/<state>`, or `text-state-<color>/<state>` to mix a theme color with a named state color in sRGB. The color resolves to `--color-<color>`. For each state, define `--states-<state>-color` and `--states-<state>-opacity` in the light and dark themes, then expose them as `--state-color-<state>` and `--state-opacity-<state>` in `@theme inline`. The theme export supplies these aliases, so additional state names require no change to the utilities.
144
156
 
145
157
  ```tsx
146
158
  <button
147
159
  type="button"
148
- className="bg-interactive-primary-background text-interactive-primary-foreground hover:bg-tint-interactive-primary-background/80"
160
+ className="bg-interactive-primary-background border-interactive-primary-background text-interactive-primary-foreground hover:bg-state-interactive-primary-background/hover hover:border-state-interactive-primary-background/hover"
149
161
  >
150
- Hover to lighten
162
+ Hover to change state color
151
163
  </button>
152
164
  ```
153
165
 
154
- The utility supports standard Tailwind variants such as `hover:`, `focus-visible:`, and `dark:`. With an opaque starting color, the result remains fully opaque and does not depend on the background behind the element. This differs from the standard `bg-<color>/80` opacity modifier. It mixes with white rather than adjusting OKLCH lightness, and only changes the background color; text and children are unaffected.
166
+ The utilities support standard Tailwind variants such as `hover:`, `focus-visible:`, and `dark:`. With an opaque starting color and state mix color, the result remains opaque. Using the same base color and state for background and border gives them exactly the same result. The state mix color can be white, black, or another color supplied by the theme.
167
+
168
+ ### Icon slots
169
+
170
+ `IconSlot` reserves the Figma `icons-size` spacing token (`--spacing-icons-size`, exposed as `size-icons-size`) and centers an SVG at 80% of that size. Buttons and input icon props use it automatically, whether you pass a component reference or an element. Export this token in your Tailwind theme alongside the other Figma spacing tokens.
171
+
172
+ ```tsx
173
+ import { Plus } from "lucide-react";
174
+ import { IconSlot } from "@povio/ui/icon-slot";
175
+
176
+ <IconSlot icon={Plus} />;
177
+ <IconSlot
178
+ icon={<Plus strokeWidth={1.5} />}
179
+ scale={0.8}
180
+ />;
181
+ ```
182
+
183
+ `IconSlot` is also exported from `@povio/ui`, `@povio/ui/rhf`, `@povio/ui/tanstack`, and `@povio/ui/icons`. `className` styles the outer slot; `iconClassName` styles the SVG. The slot controls SVG dimensions, including supplied SVGs with their own size classes. Use the inherited CSS variable `--icons-scale` to change the default ratio throughout a theme, or `scale` to override one slot. A 20px token at `0.8` produces a 16px SVG; a 24px token produces a 19.2px SVG. Stroke width continues to follow the icon's own configuration.
184
+
185
+ Override the shared recipe through `UIOverrides` at `iconSlot.cva`. Component-specific icon recipes, such as `button.iconSize`, now style the outer slot. An explicitly configured slot passed to a button or input keeps its configuration without nesting another slot.
186
+
187
+ Storybook's **UI / Components / Icons / IconSlot** page includes a playground, raw-versus-slotted comparisons, and button/input examples. Adjust `tokenSize` and `scale` in Controls and enable slot outlines to compare against the Figma frame at 100% browser zoom.
155
188
 
156
189
  ### Z-Index
157
190
 
@@ -1,12 +1,15 @@
1
1
  import { t as ChevronDown } from "./chevron-down-B4Pr8bD3.js";
2
2
  import { t as clsx } from "./clsx-CnD0nOiA.js";
3
+ import { t as UIOverrides } from "./uiOverrides.context-BTCH9y5a.js";
4
+ import { t as IconSlot } from "./IconSlot-DSK7qNxc.js";
3
5
  import { n as $7230ffa83bc0c2cf$export$29f1550f4b0d4415, o as $7230ffa83bc0c2cf$export$c62b8e45d58ddad9, r as $7230ffa83bc0c2cf$export$4d86445c2cf5e3, s as $7230ffa83bc0c2cf$export$df3a06d6289f983e, t as $7230ffa83bc0c2cf$export$2881499e37b75b9a } from "./utils-Czcqspm7.js";
4
6
  import { n as $7705c033048f6da7$export$353f5b6fc5456de1, t as $7705c033048f6da7$export$24d547caef80ccd1 } from "./Button-D6KlWSFL.js";
5
7
  import { t as $2ec61d1d4f780267$export$a8a3e93435678ff9 } from "./Heading-nI1_VOaE.js";
6
- import { t as UIOverrides } from "./uiOverrides.context-Bfm2n-n8.js";
7
- import { t as Typography } from "./Typography-B0Gp1lpc.js";
8
+ import { t as Typography } from "./Typography-LU4z2pR1.js";
9
+ import { a as accordionHeadingTitleDefinition, c as accordionPanelContentDefinition, i as accordionHeadingSubtitleDefinition, l as accordionPanelDefinition, n as accordionDefinition, o as accordionIconDefinition, r as accordionHeadingDefinition, s as accordionItemDefinition, t as accordionChevronDefinition, u as accordionTriggerDefinition } from "./accordion.cva-CL1bVscW.js";
8
10
  import $ahdqC$react, { createContext, forwardRef, useContext } from "react";
9
11
  import { c } from "react/compiler-runtime";
12
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
13
  import { mergeProps } from "react-aria/mergeProps";
11
14
  import { mergeRefs } from "react-aria/mergeRefs";
12
15
  import { filterDOMProps } from "react-aria/filterDOMProps";
@@ -15,7 +18,6 @@ import { useId as useId$1 } from "react-aria/useId";
15
18
  import { useDisclosure } from "react-aria/useDisclosure";
16
19
  import { useDisclosureGroupState } from "react-stately/useDisclosureGroupState";
17
20
  import { useDisclosureState } from "react-stately/useDisclosureState";
18
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
21
  //#region ../../node_modules/.bun/react-aria-components@1.21.1+67f6792bdf102c28/node_modules/react-aria-components/dist/private/Disclosure.mjs
20
22
  const $a3e16eab0ea4036c$export$1d40e3e0cc4d5de = /*#__PURE__*/ createContext(null);
21
23
  const $a3e16eab0ea4036c$export$944aceb4f8c89f10 = /*#__PURE__*/ forwardRef(function DisclosureGroup(props, ref) {
@@ -113,133 +115,6 @@ const $a3e16eab0ea4036c$export$feabaa331e1d464c = /*#__PURE__*/ forwardRef(funct
113
115
  }, /*#__PURE__*/ $ahdqC$react.createElement($7230ffa83bc0c2cf$export$2881499e37b75b9a, { values: [[$7705c033048f6da7$export$24d547caef80ccd1, null]] }, props.children));
114
116
  });
115
117
  //#endregion
116
- //#region src/components/navigation/Accordion/accordion.cva.ts
117
- const accordionDefinition = UIOverrides.defineConfig({
118
- base: ["flex w-full flex-col"],
119
- config: {
120
- variants: {
121
- variant: {
122
- filled: "gap-1",
123
- outlined: ""
124
- },
125
- singleItem: {
126
- true: "",
127
- false: ""
128
- }
129
- },
130
- defaultVariants: {
131
- variant: "filled",
132
- singleItem: false
133
- },
134
- compoundVariants: [{
135
- variant: "outlined",
136
- singleItem: false,
137
- className: "rounded-global-rounding-s border border-border-default-subtle"
138
- }]
139
- }
140
- });
141
- const accordionItemDefinition = UIOverrides.defineConfig({
142
- base: ["flex w-full flex-col"],
143
- config: {
144
- variants: {
145
- variant: {
146
- filled: "rounded-accordion-rounding-filled bg-surface-default-background",
147
- outlined: ""
148
- },
149
- singleItem: {
150
- true: "",
151
- false: ""
152
- }
153
- },
154
- defaultVariants: {
155
- variant: "filled",
156
- singleItem: false
157
- },
158
- compoundVariants: [{
159
- singleItem: true,
160
- variant: "outlined",
161
- className: "border-border-default-subtle border-b"
162
- }, {
163
- singleItem: false,
164
- variant: "outlined",
165
- className: "not-last:border-border-default-subtle not-last:border-b"
166
- }]
167
- }
168
- });
169
- const accordionTriggerDefinition = UIOverrides.defineConfig({
170
- base: [
171
- "group flex w-full items-center gap-accordion-gap-content-to-arrow",
172
- "px-accordion-side-accordion py-accordion-height-accordion",
173
- "outline-none focus-visible:ring-2 focus-visible:ring-interactive-ring"
174
- ],
175
- config: {
176
- variants: {
177
- variant: {
178
- outlined: "rounded-accordion-rounding-outlined hover:bg-tint-surface-default-popover/80",
179
- filled: "rounded-accordion-rounding-filled bg-surface-default-background hover:bg-tint-surface-default-popover/80"
180
- },
181
- actionPosition: {
182
- left: "flex-row-reverse",
183
- right: "flex-row"
184
- },
185
- disabled: { true: "opacity-50" }
186
- },
187
- defaultVariants: {
188
- variant: "filled",
189
- actionPosition: "right"
190
- }
191
- }
192
- });
193
- const accordionHeadingDefinition = UIOverrides.defineConfig({
194
- base: ["flex flex-1 items-center justify-between gap-accordion-gap-content-to-arrow"],
195
- config: {
196
- variants: {},
197
- defaultVariants: {}
198
- }
199
- });
200
- const accordionHeadingTitleDefinition = UIOverrides.defineConfig({
201
- base: ["flex-1 text-left text-surface-default-card-foreground"],
202
- config: {
203
- variants: {},
204
- defaultVariants: {}
205
- }
206
- });
207
- const accordionHeadingSubtitleDefinition = UIOverrides.defineConfig({
208
- base: ["flex-1 text-left text-surface-default-foreground"],
209
- config: {
210
- variants: {},
211
- defaultVariants: {}
212
- }
213
- });
214
- const accordionChevronDefinition = UIOverrides.defineConfig({
215
- base: ["size-6 shrink-0 text-surface-default-popover-foreground transition-transform duration-200"],
216
- config: {
217
- variants: { isExpanded: {
218
- true: "rotate-180",
219
- false: "rotate-0"
220
- } },
221
- defaultVariants: { isExpanded: false }
222
- }
223
- });
224
- const accordionIconDefinition = UIOverrides.defineConfig({
225
- base: ["size-6 shrink-0 text-surface-default-popover-foreground"],
226
- config: {
227
- variants: {},
228
- defaultVariants: {}
229
- }
230
- });
231
- const accordionPanelDefinition = UIOverrides.defineConfig({
232
- base: [""],
233
- config: { variants: { isExpanded: { true: "px-accordion-side-accordion pt-0 pb-accordion-height-accordion" } } }
234
- });
235
- const accordionPanelContentDefinition = UIOverrides.defineConfig({
236
- base: ["py-accordion-height-content"],
237
- config: {
238
- variants: {},
239
- defaultVariants: {}
240
- }
241
- });
242
- //#endregion
243
118
  //#region src/components/navigation/Accordion/AccordionItem.tsx
244
119
  const AccordionItem = (t0) => {
245
120
  const $ = c(25);
@@ -282,7 +157,10 @@ const AccordionItem = (t0) => {
282
157
  children: /* @__PURE__ */ jsxs("div", {
283
158
  className: "flex flex-1 items-center gap-accordion-gap-icon-to-text",
284
159
  children: [
285
- Icon && /* @__PURE__ */ jsx(Icon, { className: iconCva({}) }),
160
+ Icon && /* @__PURE__ */ jsx(IconSlot, {
161
+ icon: Icon,
162
+ className: iconCva({})
163
+ }),
286
164
  /* @__PURE__ */ jsx(Typography, {
287
165
  size: "small",
288
166
  className: headingTitleCva({}),
@@ -295,12 +173,18 @@ const AccordionItem = (t0) => {
295
173
  })
296
174
  ]
297
175
  })
298
- }), /* @__PURE__ */ jsx(ChevronDown, { className: chevronCva({ isExpanded }) })]
176
+ }), /* @__PURE__ */ jsx(IconSlot, {
177
+ icon: ChevronDown,
178
+ className: chevronCva({ isExpanded })
179
+ })]
299
180
  }) }), /* @__PURE__ */ jsx($a3e16eab0ea4036c$export$feabaa331e1d464c, {
300
- className: panelCva({ isExpanded }),
181
+ className: clsx("h-(--disclosure-panel-height) overflow-clip transition-[height,opacity] duration-200 ease-out motion-reduce:transition-none", isExpanded ? "opacity-100" : "opacity-0"),
301
182
  children: /* @__PURE__ */ jsx("div", {
302
- className: panelContentCva({}),
303
- children
183
+ className: panelCva({ isExpanded }),
184
+ children: /* @__PURE__ */ jsx("div", {
185
+ className: panelContentCva({}),
186
+ children
187
+ })
304
188
  })
305
189
  })] });
306
190
  };
@@ -411,4 +295,4 @@ const Accordion = (t0) => {
411
295
  return t7;
412
296
  };
413
297
  //#endregion
414
- export { accordionHeadingSubtitleDefinition as a, accordionItemDefinition as c, accordionTriggerDefinition as d, accordionHeadingDefinition as i, accordionPanelContentDefinition as l, accordionChevronDefinition as n, accordionHeadingTitleDefinition as o, accordionDefinition as r, accordionIconDefinition as s, Accordion as t, accordionPanelDefinition as u };
298
+ export { Accordion as t };
@@ -1,11 +1,12 @@
1
- import { t as UIOverrides } from "./uiOverrides.context-Bfm2n-n8.js";
2
- import { t as Typography } from "./Typography-B0Gp1lpc.js";
3
- import { t as Spinner } from "./Spinner-BEYBu85B.js";
1
+ import { t as UIOverrides } from "./uiOverrides.context-BTCH9y5a.js";
2
+ import { t as IconSlot } from "./IconSlot-DSK7qNxc.js";
3
+ import { t as Typography } from "./Typography-LU4z2pR1.js";
4
+ import { t as Spinner } from "./Spinner-BeVTUzzx.js";
4
5
  import { c } from "react/compiler-runtime";
5
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  //#region src/components/status/Alert/alert.cva.ts
7
8
  const alertDefinition = UIOverrides.defineConfig({
8
- base: ["min-h-0 overflow-hidden rounded-alert-rounding-default p-0"],
9
+ base: ["min-h-0 overflow-hidden rounded-alert-rounding-default p-0 shadow-4"],
9
10
  config: {
10
11
  variants: {
11
12
  variant: {
@@ -38,7 +39,7 @@ const alertDefinition = UIOverrides.defineConfig({
38
39
  {
39
40
  variant: "outlined",
40
41
  color: "error",
41
- className: "border-surface-destructive-base"
42
+ className: "border-border-destructive-base"
42
43
  },
43
44
  {
44
45
  variant: "contained",
@@ -70,7 +71,7 @@ const alertDefinition = UIOverrides.defineConfig({
70
71
  //#endregion
71
72
  //#region src/components/status/shared/status.cva.ts
72
73
  const statusIconDefinition = UIOverrides.defineConfig({
73
- base: ["size-6 shrink-0"],
74
+ base: ["size-icons-size shrink-0"],
74
75
  config: {
75
76
  variants: {
76
77
  variant: {
@@ -163,10 +164,13 @@ const Alert = (t0) => {
163
164
  } else t3 = $[6];
164
165
  let t4;
165
166
  if ($[7] !== Icon || $[8] !== color || $[9] !== iconCva || $[10] !== isLoading || $[11] !== variant) {
166
- t4 = !isLoading && Icon && /* @__PURE__ */ jsx(Icon, { className: iconCva({
167
- variant,
168
- color
169
- }) });
167
+ t4 = !isLoading && Icon && /* @__PURE__ */ jsx(IconSlot, {
168
+ icon: Icon,
169
+ className: iconCva({
170
+ variant,
171
+ color
172
+ })
173
+ });
170
174
  $[7] = Icon;
171
175
  $[8] = color;
172
176
  $[9] = iconCva;
@@ -177,7 +181,7 @@ const Alert = (t0) => {
177
181
  let t5;
178
182
  if ($[13] !== text) {
179
183
  t5 = /* @__PURE__ */ jsx(Typography, {
180
- size: "small",
184
+ size: "large",
181
185
  children: text
182
186
  });
183
187
  $[13] = text;
@@ -204,7 +208,7 @@ const Alert = (t0) => {
204
208
  variant,
205
209
  color
206
210
  }) }), /* @__PURE__ */ jsx("div", {
207
- className: "flex w-full shrink-0 flex-wrap items-center justify-end gap-alert-gap-action px-alert-side-default py-alert-height-actions-mobile md:w-auto md:justify-center md:py-alert-height-actions-desktop",
211
+ className: "flex w-full shrink-0 flex-wrap items-center justify-end gap-toast-gap-action px-alert-side-default py-alert-height-actions-mobile md:w-auto md:justify-center md:py-alert-height-actions-desktop",
208
212
  children: rightContent
209
213
  })] });
210
214
  $[19] = color;
@@ -1,4 +1,5 @@
1
- import { n as StyleMergeUtils, t as UIOverrides } from "./uiOverrides.context-C3xb4Ttq.js";
1
+ import { t as StyleMergeUtils } from "./style-merge.util-zLimKwt6.js";
2
+ import { t as UIOverrides } from "./uiOverrides.context-DEp139He.js";
2
3
  import { FC, ReactNode, SVGProps } from "react";
3
4
  //#region src/components/status/Alert/alert.cva.d.ts
4
5
  declare const alertDefinition: {
@@ -1,6 +1,6 @@
1
- import { n as ButtonVariantProps } from "./button.cva-BvRI-3Gn.js";
2
- import { n as DialogProps } from "./Dialog-DEbI_9S-.js";
3
- import { r as TypographyPropsCva } from "./Typography-BiuidzDC.js";
1
+ import { n as ButtonVariantProps } from "./button.cva-C7kEhgoA.js";
2
+ import { n as DialogProps } from "./Dialog-CW93T9X1.js";
3
+ import { r as TypographyPropsCva } from "./Typography-XljT9s02.js";
4
4
  //#region src/components/overlays/AlertDialog/AlertDialog.d.ts
5
5
  interface AlertDialogAction {
6
6
  label: string;
@@ -1,5 +1,5 @@
1
1
  import { n as FieldValues } from "./form.binding-DVJ5F0JE.js";
2
- import { n as GroupedSelectControlProps, o as SelectBaseProps, r as GroupedSelectProps, t as DefaultInitialSelectItem } from "./SelectBase-7SE9Za2r.js";
2
+ import { n as GroupedSelectControlProps, o as SelectBaseProps, r as GroupedSelectProps, t as DefaultInitialSelectItem } from "./SelectBase-Omiq2D3M.js";
3
3
  import { s as OmitDiscriminatedUnion } from "./common-UBFya8WY.js";
4
4
  import { ReactElement } from "react";
5
5
  import { Key } from "react-aria-components";