@powerhousedao/design-system 6.2.3-dev.9 → 6.2.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 (372) hide show
  1. package/dist/{Removed-CO_5C1ce.js → Removed-OP4eTrAN.js} +1 -1
  2. package/dist/{Removed-CO_5C1ce.js.map → Removed-OP4eTrAN.js.map} +1 -1
  3. package/dist/{Tabler-FjvVqX5a.js → Tabler-rjLxlzUV.js} +1 -1
  4. package/dist/{Tabler-FjvVqX5a.js.map → Tabler-rjLxlzUV.js.map} +1 -1
  5. package/dist/button-BYcXvZXr.d.ts +13 -0
  6. package/dist/button-BYcXvZXr.d.ts.map +1 -0
  7. package/dist/{character-counter-BWoglM2P.d.ts → character-counter-BZmZZCHN.d.ts} +2 -1
  8. package/dist/character-counter-BZmZZCHN.d.ts.map +1 -0
  9. package/dist/{checkbox-CGBtXQnI.d.ts → checkbox-BmTXBcCE.d.ts} +4 -4
  10. package/dist/checkbox-BmTXBcCE.d.ts.map +1 -0
  11. package/dist/{checkbox-base-CZo-4eL0.d.ts → checkbox-base-Bm0GPWgm.d.ts} +2 -2
  12. package/dist/checkbox-base-Bm0GPWgm.d.ts.map +1 -0
  13. package/dist/{command-tFzjgzge.d.ts → command-DHHTsHfH.d.ts} +5 -5
  14. package/dist/command-DHHTsHfH.d.ts.map +1 -0
  15. package/dist/connect/components/toast/toast.d.ts +8 -10
  16. package/dist/connect/components/toast/toast.d.ts.map +1 -1
  17. package/dist/connect/components/toast/toast.js +4 -4
  18. package/dist/connect/components/toast/toast.js.map +1 -1
  19. package/dist/connect/index.d.ts +376 -355
  20. package/dist/connect/index.d.ts.map +1 -1
  21. package/dist/connect/index.js +779 -151
  22. package/dist/connect/index.js.map +1 -1
  23. package/dist/{content-BHWIqmio.d.ts → content-BMXLcwWY.d.ts} +3 -3
  24. package/dist/content-BMXLcwWY.d.ts.map +1 -0
  25. package/dist/{enum-field-CwZVs3Ux.d.ts → enum-field-qgV9wsyI.d.ts} +4 -4
  26. package/dist/enum-field-qgV9wsyI.d.ts.map +1 -0
  27. package/dist/{form-CKRKn0TQ.d.ts → form-Brj5AQNr.d.ts} +3 -4
  28. package/dist/form-Brj5AQNr.d.ts.map +1 -0
  29. package/dist/{form-description-CYkcMEzm.d.ts → form-description-DJrDJzJi.d.ts} +2 -1
  30. package/dist/form-description-DJrDJzJi.d.ts.map +1 -0
  31. package/dist/{form-group-C8kL6pdZ.d.ts → form-group-Ckd28lpW.d.ts} +2 -1
  32. package/dist/form-group-Ckd28lpW.d.ts.map +1 -0
  33. package/dist/{form-label-b6nQi0XO.d.ts → form-label-C8ghd_lR.d.ts} +2 -1
  34. package/dist/form-label-C8ghd_lR.d.ts.map +1 -0
  35. package/dist/{form-message-Dq72nBXz.d.ts → form-message-CnKUkvlj.d.ts} +2 -1
  36. package/dist/form-message-CnKUkvlj.d.ts.map +1 -0
  37. package/dist/form-server-error-message-D2tFtDZ0.d.ts +6 -0
  38. package/dist/form-server-error-message-D2tFtDZ0.d.ts.map +1 -0
  39. package/dist/{icon-C4QOpsdI.js → icon-01W_S_9A.js} +3 -3
  40. package/dist/{icon-C4QOpsdI.js.map → icon-01W_S_9A.js.map} +1 -1
  41. package/dist/{id-autocomplete-C-hwriS5.d.ts → id-autocomplete-CHvGhffo.d.ts} +3 -3
  42. package/dist/id-autocomplete-CHvGhffo.d.ts.map +1 -0
  43. package/dist/{id-autocomplete-input-container-DFEyPh5p.d.ts → id-autocomplete-input-container-BqRQGpcs.d.ts} +3 -3
  44. package/dist/id-autocomplete-input-container-BqRQGpcs.d.ts.map +1 -0
  45. package/dist/{id-autocomplete-list-EzLpF23C.d.ts → id-autocomplete-list-ChQsiJDg.d.ts} +3 -3
  46. package/dist/id-autocomplete-list-ChQsiJDg.d.ts.map +1 -0
  47. package/dist/{id-autocomplete-list-option-CB5B07Hi.d.ts → id-autocomplete-list-option-MsqKeLXD.d.ts} +3 -3
  48. package/dist/id-autocomplete-list-option-MsqKeLXD.d.ts.map +1 -0
  49. package/dist/{index--hDSfvJT.d.ts → index-C05uhexJ.d.ts} +14 -45
  50. package/dist/index-C05uhexJ.d.ts.map +1 -0
  51. package/dist/index-CpSqVZKp.d.ts +2 -0
  52. package/dist/index-D6Zk5OLV.d.ts +4 -0
  53. package/dist/index-DSknqh8u.d.ts +30 -0
  54. package/dist/index-DU-WgcAh.d.ts +4 -0
  55. package/dist/index-DaRBrjZI.d.ts +3 -0
  56. package/dist/index.d.ts +4 -3
  57. package/dist/index.js +2 -2
  58. package/dist/{input-BpEQjaWV.d.ts → input-WDvjJFqf.d.ts} +2 -2
  59. package/dist/input-WDvjJFqf.d.ts.map +1 -0
  60. package/dist/json-viewer-Kg0IBIt-.d.ts +7 -0
  61. package/dist/json-viewer-Kg0IBIt-.d.ts.map +1 -0
  62. package/dist/{message-list-C4mPpBBa.d.ts → message-list-D8d2ltLd.d.ts} +3 -3
  63. package/dist/message-list-D8d2ltLd.d.ts.map +1 -0
  64. package/dist/{popover-XSBOuSih.d.ts → popover-TvQxa0RU.d.ts} +2 -2
  65. package/dist/popover-TvQxa0RU.d.ts.map +1 -0
  66. package/dist/{radio-eL0Oy86J.d.ts → radio-CTS4WsNy.d.ts} +2 -2
  67. package/dist/radio-CTS4WsNy.d.ts.map +1 -0
  68. package/dist/{radio-group-Bkli6nUz.d.ts → radio-group-CROIwgYz.d.ts} +2 -2
  69. package/dist/radio-group-CROIwgYz.d.ts.map +1 -0
  70. package/dist/{radio-group-field-wlqeiLN3.d.ts → radio-group-field-CjX_Zt0C.d.ts} +5 -6
  71. package/dist/radio-group-field-CjX_Zt0C.d.ts.map +1 -0
  72. package/dist/{search-autocomplete-BJJkrZ1i.d.ts → search-autocomplete-COvFRZIb.d.ts} +3 -3
  73. package/dist/search-autocomplete-COvFRZIb.d.ts.map +1 -0
  74. package/dist/{select-field-C97QIhUL.d.ts → select-field-BuXjM43L.d.ts} +5 -5
  75. package/dist/select-field-BuXjM43L.d.ts.map +1 -0
  76. package/dist/{selected-content-CGsK5PR4.d.ts → selected-content-C49jmTLU.d.ts} +3 -3
  77. package/dist/selected-content-C49jmTLU.d.ts.map +1 -0
  78. package/dist/{sidebar-DOoE4krt.d.ts → sidebar-4juLhREX.d.ts} +3 -3
  79. package/dist/sidebar-4juLhREX.d.ts.map +1 -0
  80. package/dist/{sidebar-provider-C2eyz9TL.d.ts → sidebar-provider-CMG6WQWo.d.ts} +4 -8
  81. package/dist/sidebar-provider-CMG6WQWo.d.ts.map +1 -0
  82. package/dist/splitted-input-diff-DBkgDh9Q.d.ts +11 -0
  83. package/dist/splitted-input-diff-DBkgDh9Q.d.ts.map +1 -0
  84. package/dist/{src-CVV6HzQZ.js → src-CrUksCLW.js} +17 -14
  85. package/dist/{src-CVV6HzQZ.js.map → src-CrUksCLW.js.map} +1 -1
  86. package/dist/text-field-3j4fLJ-7.d.ts +9 -0
  87. package/dist/text-field-3j4fLJ-7.d.ts.map +1 -0
  88. package/dist/text-input-diff-B7iFyzTK.d.ts +12 -0
  89. package/dist/text-input-diff-B7iFyzTK.d.ts.map +1 -0
  90. package/dist/{text-input-8zXIWHLi.d.ts → text-input-tkqggbWx.d.ts} +5 -6
  91. package/dist/text-input-tkqggbWx.d.ts.map +1 -0
  92. package/dist/{tooltip-BxS9HpML.d.ts → tooltip-B4uQJPUm.d.ts} +3 -4
  93. package/dist/tooltip-B4uQJPUm.d.ts.map +1 -0
  94. package/dist/{types-Bsn62tJB.d.ts → types-BNTIrhb5.d.ts} +2 -1
  95. package/dist/types-BNTIrhb5.d.ts.map +1 -0
  96. package/dist/{types-BTq-St7H.d.ts → types-CpFPFB1a.d.ts} +2 -1
  97. package/dist/types-CpFPFB1a.d.ts.map +1 -0
  98. package/dist/{types-C04Q_Fan.d.ts → types-D4CirgNk.d.ts} +2 -2
  99. package/dist/types-D4CirgNk.d.ts.map +1 -0
  100. package/dist/{types-CNbvfWjh.d.ts → types-DDSmPhHp.d.ts} +3 -3
  101. package/dist/types-DDSmPhHp.d.ts.map +1 -0
  102. package/dist/ui/components/button/button.d.ts +3 -2
  103. package/dist/ui/components/button/button.js +1 -1
  104. package/dist/ui/components/button/button.js.map +1 -1
  105. package/dist/ui/components/character-counter/character-counter.d.ts +3 -2
  106. package/dist/ui/components/character-counter/character-counter.js.map +1 -1
  107. package/dist/ui/components/checkbox/checkbox-base.d.ts +3 -2
  108. package/dist/ui/components/checkbox/checkbox-base.js +1 -1
  109. package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
  110. package/dist/ui/components/checkbox/checkbox.d.ts +3 -2
  111. package/dist/ui/components/checkbox/checkbox.js +1 -1
  112. package/dist/ui/components/checkbox/checkbox.js.map +1 -1
  113. package/dist/ui/components/command/command.d.ts +3 -2
  114. package/dist/ui/components/command/command.js +8 -8
  115. package/dist/ui/components/command/command.js.map +1 -1
  116. package/dist/ui/components/enum-field/enum-field.d.ts +3 -2
  117. package/dist/ui/components/enum-field/enum-field.js +1 -1
  118. package/dist/ui/components/enum-field/enum-field.js.map +1 -1
  119. package/dist/ui/components/enum-field/types.d.ts +3 -2
  120. package/dist/ui/components/form/form.d.ts +3 -2
  121. package/dist/ui/components/form/form.js +1 -1
  122. package/dist/ui/components/form/form.js.map +1 -1
  123. package/dist/ui/components/form/utils.d.ts +4 -4
  124. package/dist/ui/components/form/utils.d.ts.map +1 -1
  125. package/dist/ui/components/form/utils.js.map +1 -1
  126. package/dist/ui/components/form-description/form-description.d.ts +3 -2
  127. package/dist/ui/components/form-description/form-description.js.map +1 -1
  128. package/dist/ui/components/form-group/form-group.d.ts +3 -2
  129. package/dist/ui/components/form-group/form-group.js.map +1 -1
  130. package/dist/ui/components/form-label/form-label.d.ts +3 -2
  131. package/dist/ui/components/form-label/form-label.js +3 -2
  132. package/dist/ui/components/form-label/form-label.js.map +1 -1
  133. package/dist/ui/components/form-message/form-message.d.ts +3 -2
  134. package/dist/ui/components/form-message/form-message.js.map +1 -1
  135. package/dist/ui/components/form-message/form-server-error-message.d.ts +3 -2
  136. package/dist/ui/components/form-message/form-server-error-message.js.map +1 -1
  137. package/dist/ui/components/form-message/message-list.d.ts +3 -2
  138. package/dist/ui/components/form-message/message-list.js.map +1 -1
  139. package/dist/ui/components/id-autocomplete/id-autocomplete-context.d.ts +3 -5
  140. package/dist/ui/components/id-autocomplete/id-autocomplete-context.d.ts.map +1 -1
  141. package/dist/ui/components/id-autocomplete/id-autocomplete-context.js +1 -1
  142. package/dist/ui/components/id-autocomplete/id-autocomplete-context.js.map +1 -1
  143. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.d.ts +3 -2
  144. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +2 -2
  145. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
  146. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.d.ts +3 -2
  147. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +2 -2
  148. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
  149. package/dist/ui/components/id-autocomplete/id-autocomplete-list.d.ts +3 -2
  150. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js.map +1 -1
  151. package/dist/ui/components/id-autocomplete/id-autocomplete.d.ts +3 -2
  152. package/dist/ui/components/id-autocomplete/id-autocomplete.js +1 -1
  153. package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
  154. package/dist/ui/components/id-autocomplete/types.d.ts +3 -2
  155. package/dist/ui/components/id-autocomplete/use-id-autocomplete.d.ts +3 -2
  156. package/dist/ui/components/id-autocomplete/use-id-autocomplete.js.map +1 -1
  157. package/dist/ui/components/index.d.ts +42 -40
  158. package/dist/ui/components/input/input.d.ts +3 -2
  159. package/dist/ui/components/input/input.js +1 -1
  160. package/dist/ui/components/input/input.js.map +1 -1
  161. package/dist/ui/components/input/splitted-input-diff.d.ts +3 -2
  162. package/dist/ui/components/input/splitted-input-diff.js +10 -9
  163. package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
  164. package/dist/ui/components/input/subcomponent/input-diff.d.ts +2 -11
  165. package/dist/ui/components/input/subcomponent/input-diff.d.ts.map +1 -1
  166. package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
  167. package/dist/ui/components/input/subcomponent/text-diff.d.ts +3 -12
  168. package/dist/ui/components/input/subcomponent/text-diff.d.ts.map +1 -1
  169. package/dist/ui/components/input/subcomponent/text-diff.js.map +1 -1
  170. package/dist/ui/components/json-viewer/json-viewer.d.ts +3 -2
  171. package/dist/ui/components/json-viewer/json-viewer.js +1 -1
  172. package/dist/ui/components/json-viewer/json-viewer.js.map +1 -1
  173. package/dist/ui/components/popover/popover.d.ts +3 -2
  174. package/dist/ui/components/popover/popover.js +1 -1
  175. package/dist/ui/components/popover/popover.js.map +1 -1
  176. package/dist/ui/components/radio-group-field/radio-group-field.d.ts +3 -2
  177. package/dist/ui/components/radio-group-field/radio-group-field.js +4 -3
  178. package/dist/ui/components/radio-group-field/radio-group-field.js.map +1 -1
  179. package/dist/ui/components/radio-group-field/radio-group.d.ts +3 -2
  180. package/dist/ui/components/radio-group-field/radio-group.js +1 -1
  181. package/dist/ui/components/radio-group-field/radio-group.js.map +1 -1
  182. package/dist/ui/components/radio-group-field/radio.d.ts +3 -2
  183. package/dist/ui/components/radio-group-field/radio.js +1 -1
  184. package/dist/ui/components/radio-group-field/radio.js.map +1 -1
  185. package/dist/ui/components/search-autocomplete/index.d.ts +6 -4
  186. package/dist/ui/components/search-autocomplete/search-autocomplete.d.ts +3 -2
  187. package/dist/ui/components/search-autocomplete/search-autocomplete.js.map +1 -1
  188. package/dist/ui/components/search-autocomplete/types.d.ts +3 -2
  189. package/dist/ui/components/search-autocomplete/use-search-autocomplete.d.ts +3 -2
  190. package/dist/ui/components/search-autocomplete/use-search-autocomplete.js.map +1 -1
  191. package/dist/ui/components/select-field/content.d.ts +3 -2
  192. package/dist/ui/components/select-field/content.js +1 -1
  193. package/dist/ui/components/select-field/content.js.map +1 -1
  194. package/dist/ui/components/select-field/select-field.d.ts +3 -2
  195. package/dist/ui/components/select-field/select-field.js +1 -1
  196. package/dist/ui/components/select-field/select-field.js.map +1 -1
  197. package/dist/ui/components/select-field/selected-content.d.ts +3 -2
  198. package/dist/ui/components/select-field/selected-content.js +1 -1
  199. package/dist/ui/components/select-field/selected-content.js.map +1 -1
  200. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts +3 -4
  201. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts.map +1 -1
  202. package/dist/ui/components/select-field/subcomponents/CommandItemList.js +1 -1
  203. package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
  204. package/dist/ui/components/select-field/use-select-field.d.ts +4 -12
  205. package/dist/ui/components/select-field/use-select-field.d.ts.map +1 -1
  206. package/dist/ui/components/select-field/use-select-field.js.map +1 -1
  207. package/dist/ui/components/sidebar/index.d.ts +6 -4
  208. package/dist/ui/components/sidebar/sidebar.d.ts +3 -2
  209. package/dist/ui/components/sidebar/sidebar.js +1 -1
  210. package/dist/ui/components/sidebar/sidebar.js.map +1 -1
  211. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts +2 -7
  212. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts.map +1 -1
  213. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js +1 -1
  214. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js.map +1 -1
  215. package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts +2 -2
  216. package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts.map +1 -1
  217. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js.map +1 -1
  218. package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts +3 -18
  219. package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts.map +1 -1
  220. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js +3 -3
  221. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js.map +1 -1
  222. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts +2 -4
  223. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts.map +1 -1
  224. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js.map +1 -1
  225. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/index.d.ts +4 -2
  226. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.d.ts +3 -2
  227. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js +2 -2
  228. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js.map +1 -1
  229. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts +7 -8
  230. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts.map +1 -1
  231. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js +1 -1
  232. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js.map +1 -1
  233. package/dist/ui/components/sidebar/subcomponents/sidebar-search/index.d.ts +2 -1
  234. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts +2 -2
  235. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts.map +1 -1
  236. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js.map +1 -1
  237. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts +2 -2
  238. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts.map +1 -1
  239. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js.map +1 -1
  240. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts +2 -2
  241. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts.map +1 -1
  242. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js +1 -1
  243. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js.map +1 -1
  244. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts +2 -8
  245. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts.map +1 -1
  246. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js +2 -1
  247. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js.map +1 -1
  248. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts +2 -4
  249. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts.map +1 -1
  250. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.js.map +1 -1
  251. package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts +3 -9
  252. package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts.map +1 -1
  253. package/dist/ui/components/sidebar/subcomponents/status-icon.js +1 -1
  254. package/dist/ui/components/sidebar/subcomponents/status-icon.js.map +1 -1
  255. package/dist/ui/components/sidebar/types.d.ts +3 -2
  256. package/dist/ui/components/sidebar/types.js +1 -1
  257. package/dist/ui/components/sidebar/types.js.map +1 -1
  258. package/dist/ui/components/sidebar/use-ellipsis.d.ts +2 -2
  259. package/dist/ui/components/sidebar/use-ellipsis.d.ts.map +1 -1
  260. package/dist/ui/components/sidebar/use-ellipsis.js.map +1 -1
  261. package/dist/ui/components/sidebar/use-sidebar-resize.d.ts +3 -9
  262. package/dist/ui/components/sidebar/use-sidebar-resize.d.ts.map +1 -1
  263. package/dist/ui/components/sidebar/use-sidebar-resize.js.map +1 -1
  264. package/dist/ui/components/sidebar/utils.d.ts +10 -11
  265. package/dist/ui/components/sidebar/utils.d.ts.map +1 -1
  266. package/dist/ui/components/sidebar/utils.js.map +1 -1
  267. package/dist/ui/components/text-field/text-field.d.ts +3 -2
  268. package/dist/ui/components/text-field/text-field.js +3 -2
  269. package/dist/ui/components/text-field/text-field.js.map +1 -1
  270. package/dist/ui/components/text-input/text-input-diff.d.ts +3 -2
  271. package/dist/ui/components/text-input/text-input-diff.js.map +1 -1
  272. package/dist/ui/components/text-input/text-input.d.ts +3 -2
  273. package/dist/ui/components/text-input/text-input.js +1 -1
  274. package/dist/ui/components/text-input/text-input.js.map +1 -1
  275. package/dist/ui/components/text-input/types.d.ts +3 -2
  276. package/dist/ui/components/tooltip/tooltip.d.ts +3 -2
  277. package/dist/ui/components/tooltip/tooltip.js +1 -1
  278. package/dist/ui/components/tooltip/tooltip.js.map +1 -1
  279. package/dist/ui/components/types.d.ts +3 -2
  280. package/dist/ui/components/value-transformer/value-transformer.d.ts +3 -2
  281. package/dist/ui/components/value-transformer/value-transformer.js +5 -3
  282. package/dist/ui/components/value-transformer/value-transformer.js.map +1 -1
  283. package/dist/ui/components/with-field-validation/with-field-validation.d.ts +3 -2
  284. package/dist/ui/components/with-field-validation/with-field-validation.js +1 -1
  285. package/dist/ui/components/with-field-validation/with-field-validation.js.map +1 -1
  286. package/dist/ui/index.d.ts +44 -42
  287. package/dist/ui/lib/date-picker.d.ts +4 -5
  288. package/dist/ui/lib/date-picker.d.ts.map +1 -1
  289. package/dist/ui/lib/date-picker.js +2 -1
  290. package/dist/ui/lib/date-picker.js.map +1 -1
  291. package/dist/ui/lib/date-time-picker.d.ts +6 -6
  292. package/dist/ui/lib/date-time-picker.d.ts.map +1 -1
  293. package/dist/ui/lib/date-time-picker.js.map +1 -1
  294. package/dist/ui/lib/deep-equal.d.ts +2 -2
  295. package/dist/ui/lib/deep-equal.d.ts.map +1 -1
  296. package/dist/ui/lib/deep-equal.js.map +1 -1
  297. package/dist/ui/lib/index.d.ts +2 -1
  298. package/dist/ui/lib/is-empty.d.ts +2 -2
  299. package/dist/ui/lib/is-empty.d.ts.map +1 -1
  300. package/dist/ui/lib/is-empty.js.map +1 -1
  301. package/dist/ui/lib/shared-value-transformers.d.ts +3 -4
  302. package/dist/ui/lib/shared-value-transformers.d.ts.map +1 -1
  303. package/dist/ui/lib/shared-value-transformers.js.map +1 -1
  304. package/dist/ui/lib/types.d.ts +3 -2
  305. package/dist/ui/lib/value-cast.d.ts +4 -4
  306. package/dist/ui/lib/value-cast.d.ts.map +1 -1
  307. package/dist/ui/lib/value-cast.js +10 -4
  308. package/dist/ui/lib/value-cast.js.map +1 -1
  309. package/dist/ui/types.d.ts +4 -3
  310. package/dist/{use-id-autocomplete-By7YSChC.d.ts → use-id-autocomplete-wdw3CfYc.d.ts} +5 -16
  311. package/dist/use-id-autocomplete-wdw3CfYc.d.ts.map +1 -0
  312. package/dist/{use-search-autocomplete-IfcQ_gKh.d.ts → use-search-autocomplete-vSvcsvcB.d.ts} +5 -6
  313. package/dist/use-search-autocomplete-vSvcsvcB.d.ts.map +1 -0
  314. package/dist/{value-transformer-DQjqtNih.d.ts → value-transformer-BAD6r8Ol.d.ts} +5 -7
  315. package/dist/value-transformer-BAD6r8Ol.d.ts.map +1 -0
  316. package/dist/{with-field-validation-Di5D8vU-.d.ts → with-field-validation-Bt02MQn2.d.ts} +3 -3
  317. package/dist/with-field-validation-Bt02MQn2.d.ts.map +1 -0
  318. package/package.json +8 -9
  319. package/dist/button-C8doazjv.d.ts +0 -15
  320. package/dist/button-C8doazjv.d.ts.map +0 -1
  321. package/dist/character-counter-BWoglM2P.d.ts.map +0 -1
  322. package/dist/checkbox-CGBtXQnI.d.ts.map +0 -1
  323. package/dist/checkbox-base-CZo-4eL0.d.ts.map +0 -1
  324. package/dist/command-tFzjgzge.d.ts.map +0 -1
  325. package/dist/content-BHWIqmio.d.ts.map +0 -1
  326. package/dist/enum-field-CwZVs3Ux.d.ts.map +0 -1
  327. package/dist/form-CKRKn0TQ.d.ts.map +0 -1
  328. package/dist/form-description-CYkcMEzm.d.ts.map +0 -1
  329. package/dist/form-group-C8kL6pdZ.d.ts.map +0 -1
  330. package/dist/form-label-b6nQi0XO.d.ts.map +0 -1
  331. package/dist/form-message-Dq72nBXz.d.ts.map +0 -1
  332. package/dist/form-server-error-message-DXbaiTfF.d.ts +0 -7
  333. package/dist/form-server-error-message-DXbaiTfF.d.ts.map +0 -1
  334. package/dist/id-autocomplete-C-hwriS5.d.ts.map +0 -1
  335. package/dist/id-autocomplete-input-container-DFEyPh5p.d.ts.map +0 -1
  336. package/dist/id-autocomplete-list-EzLpF23C.d.ts.map +0 -1
  337. package/dist/id-autocomplete-list-option-CB5B07Hi.d.ts.map +0 -1
  338. package/dist/index--hDSfvJT.d.ts.map +0 -1
  339. package/dist/index--okzibnx.d.ts +0 -1
  340. package/dist/index-BLwMeReG.d.ts +0 -1
  341. package/dist/index-Cw3C7_1f.d.ts +0 -1
  342. package/dist/index-E7Wvm5uX.d.ts +0 -1
  343. package/dist/index-J3R2mDFQ.d.ts +0 -1
  344. package/dist/input-BpEQjaWV.d.ts.map +0 -1
  345. package/dist/json-viewer-DaTgmzkS.d.ts +0 -8
  346. package/dist/json-viewer-DaTgmzkS.d.ts.map +0 -1
  347. package/dist/message-list-C4mPpBBa.d.ts.map +0 -1
  348. package/dist/popover-XSBOuSih.d.ts.map +0 -1
  349. package/dist/radio-eL0Oy86J.d.ts.map +0 -1
  350. package/dist/radio-group-Bkli6nUz.d.ts.map +0 -1
  351. package/dist/radio-group-field-wlqeiLN3.d.ts.map +0 -1
  352. package/dist/search-autocomplete-BJJkrZ1i.d.ts.map +0 -1
  353. package/dist/select-field-C97QIhUL.d.ts.map +0 -1
  354. package/dist/selected-content-CGsK5PR4.d.ts.map +0 -1
  355. package/dist/sidebar-DOoE4krt.d.ts.map +0 -1
  356. package/dist/sidebar-provider-C2eyz9TL.d.ts.map +0 -1
  357. package/dist/splitted-input-diff-CwPedpov.d.ts +0 -18
  358. package/dist/splitted-input-diff-CwPedpov.d.ts.map +0 -1
  359. package/dist/text-field-DSInH67J.d.ts +0 -10
  360. package/dist/text-field-DSInH67J.d.ts.map +0 -1
  361. package/dist/text-input-8zXIWHLi.d.ts.map +0 -1
  362. package/dist/text-input-diff-B0vLSKQm.d.ts +0 -20
  363. package/dist/text-input-diff-B0vLSKQm.d.ts.map +0 -1
  364. package/dist/tooltip-BxS9HpML.d.ts.map +0 -1
  365. package/dist/types-BTq-St7H.d.ts.map +0 -1
  366. package/dist/types-Bsn62tJB.d.ts.map +0 -1
  367. package/dist/types-C04Q_Fan.d.ts.map +0 -1
  368. package/dist/types-CNbvfWjh.d.ts.map +0 -1
  369. package/dist/use-id-autocomplete-By7YSChC.d.ts.map +0 -1
  370. package/dist/use-search-autocomplete-IfcQ_gKh.d.ts.map +0 -1
  371. package/dist/value-transformer-DQjqtNih.d.ts.map +0 -1
  372. package/dist/with-field-validation-Di5D8vU-.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":["twMerge","React","useId","FormLabel","FormMessageList","CheckboxBase","Checkbox","forwardRef","id","idProp","name","label","value","defaultValue","disabled","required","description","errors","warnings","onChange","className","props","ref","generatedId","hasError","length","castValue","displayName"],"sources":["../../../../src/ui/components/checkbox/checkbox.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport React, { useId } from \"react\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport type { CheckboxValue } from \"./checkbox-base.js\";\nimport { CheckboxBase } from \"./checkbox-base.js\";\n\ntype CheckboxBaseProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof InputBaseProps<CheckboxValue> | \"onChange\"\n>;\n\nexport interface CheckboxProps\n extends CheckboxBaseProps, InputBaseProps<CheckboxValue> {\n onChange?: ((checked: CheckboxValue) => void) | ((checked: boolean) => void);\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n id: idProp,\n name,\n label,\n value,\n defaultValue,\n disabled,\n required,\n description,\n errors,\n warnings,\n onChange,\n className,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const hasError = !!errors?.length;\n\n const castValue = (value: unknown) => {\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n return value;\n };\n\n return (\n <div className={twMerge(\"flex flex-col gap-2\")}>\n <div\n className={twMerge(\"group flex items-center space-x-2\", className)}\n >\n <CheckboxBase\n id={id}\n name={name}\n checked={castValue(value ?? defaultValue) as CheckboxValue}\n disabled={disabled}\n onCheckedChange={onChange}\n required={required}\n invalid={hasError}\n aria-invalid={hasError}\n ref={ref}\n {...props}\n />\n <FormLabel\n htmlFor={id}\n required={required}\n disabled={disabled}\n hasError={hasError}\n description={description}\n className={twMerge(!disabled && \"group-hover:hover-effect\")}\n inline\n >\n {label}\n </FormLabel>\n </div>\n {warnings && <FormMessageList type=\"warning\" messages={warnings} />}\n {errors && <FormMessageList type=\"error\" messages={errors} />}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"mappings":";;;;;;;AAkBA,MAAMM,WAAWL,sBAAMM,YAEnB,EACEC,IAAIC,QACJC,MACAC,OACAC,OACAC,cACAC,UACAC,UACAC,aACAC,QACAC,UACAC,UACAC,WACA,GAAGC,SAELC,QACG;CACH,MAAMC,cAAcrB,OAAO;CAC3B,MAAMM,KAAKC,UAAUc;CACrB,MAAMC,WAAW,CAAC,CAACP,QAAQQ;CAE3B,MAAMC,aAAad,UAAmB;AACpC,MAAIA,UAAU,OAAQ,QAAO;AAC7B,MAAIA,UAAU,QAAS,QAAO;AAC9B,SAAOA;;AAGT,QACE,qBAAC,OAAD;EAAK,WAAWZ,QAAQ,sBAAsB;YAA9C;GACE,qBAAC,OAAD;IACE,WAAWA,QAAQ,qCAAqCoB,UAAU;cADpE,CAGE,oBAAC,cAAD;KACMZ;KACEE;KACN,SAASgB,UAAUd,SAASC,aAA8B;KAChDC;KACV,iBAAiBK;KACPJ;KACV,SAASS;KACT,gBAAcA;KACTF;KACL,GAAID;KAAM,CAAA,EAEZ,oBAAC,WAAD;KACE,SAASb;KACCO;KACAD;KACAU;KACGR;KACb,WAAWhB,QAAQ,CAACc,YAAY,2BAA2B;KAC3D,QAAA;eAECH;KACQ,CAAA,CACR;;GACJO,YAAY,oBAAC,iBAAD;IAAiB,MAAK;IAAU,UAAUA;IAAY,CAAA;GAClED,UAAU,oBAAC,iBAAD;IAAiB,MAAK;IAAQ,UAAUA;IAAU,CAAA;GACzD;;EAGX;AAEDX,SAASqB,cAAc"}
1
+ {"version":3,"file":"checkbox.js","names":["twMerge","React","useId","FormLabel","FormMessageList","CheckboxBase","Checkbox","forwardRef","id","idProp","name","label","value","defaultValue","disabled","required","description","errors","warnings","onChange","className","props","ref","generatedId","hasError","length","castValue","displayName"],"sources":["../../../../src/ui/components/checkbox/checkbox.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport React, { useId } from \"react\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport type { CheckboxValue } from \"./checkbox-base.js\";\nimport { CheckboxBase } from \"./checkbox-base.js\";\n\ntype CheckboxBaseProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof InputBaseProps<CheckboxValue> | \"onChange\"\n>;\n\nexport interface CheckboxProps\n extends CheckboxBaseProps, InputBaseProps<CheckboxValue> {\n onChange?: ((checked: CheckboxValue) => void) | ((checked: boolean) => void);\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n id: idProp,\n name,\n label,\n value,\n defaultValue,\n disabled,\n required,\n description,\n errors,\n warnings,\n onChange,\n className,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const hasError = !!errors?.length;\n\n const castValue = (value: unknown) => {\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n return value;\n };\n\n return (\n <div className={twMerge(\"flex flex-col gap-2\")}>\n <div\n className={twMerge(\"group flex items-center space-x-2\", className)}\n >\n <CheckboxBase\n id={id}\n name={name}\n checked={castValue(value ?? defaultValue) as CheckboxValue}\n disabled={disabled}\n onCheckedChange={onChange}\n required={required}\n invalid={hasError}\n aria-invalid={hasError}\n ref={ref}\n {...props}\n />\n <FormLabel\n htmlFor={id}\n required={required}\n disabled={disabled}\n hasError={hasError}\n description={description}\n className={twMerge(!disabled && \"group-hover:hover-effect\")}\n inline\n >\n {label}\n </FormLabel>\n </div>\n {warnings && <FormMessageList type=\"warning\" messages={warnings} />}\n {errors && <FormMessageList type=\"error\" messages={errors} />}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"mappings":";;;;;;;AAkBA,MAAMM,WAAWL,oBAAMM,YAEnB,EACEC,IAAIC,QACJC,MACAC,OACAC,OACAC,cACAC,UACAC,UACAC,aACAC,QACAC,UACAC,UACAC,WACA,GAAGC,SAELC,QACG;CACH,MAAMC,cAAcrB,MAAM;CAC1B,MAAMM,KAAKC,UAAUc;CACrB,MAAMC,WAAW,CAAC,CAACP,QAAQQ;CAE3B,MAAMC,aAAad,UAAmB;EACpC,IAAIA,UAAU,QAAQ,OAAO;EAC7B,IAAIA,UAAU,SAAS,OAAO;EAC9B,OAAOA;CACT;CAEA,OACE,qBAAC,OAAD;EAAK,WAAWZ,QAAQ,qBAAqB;EAA7C,UAAA;GACE,qBAAC,OAAD;IACE,WAAWA,QAAQ,qCAAqCoB,SAAS;IADnE,UAAA,CAGE,oBAAC,cAAD;KACMZ;KACEE;KACN,SAASgB,UAAUd,SAASC,YAAY;KAC9BC;KACV,iBAAiBK;KACPJ;KACV,SAASS;KACT,gBAAcA;KACTF;KACL,GAAID;IAAM,CAAA,GAEZ,oBAAC,WAAD;KACE,SAASb;KACCO;KACAD;KACAU;KACGR;KACb,WAAWhB,QAAQ,CAACc,YAAY,0BAA0B;KAC1D,QAAA;KAECH,UAAAA;IACQ,CAAA,CACR;;GACJO,YAAY,oBAAC,iBAAD;IAAiB,MAAK;IAAU,UAAUA;GAAS,CAAA;GAC/DD,UAAU,oBAAC,iBAAD;IAAiB,MAAK;IAAQ,UAAUA;GAAO,CAAA;EACvD;;AAET,CACF;AAEAX,SAASqB,cAAc"}
@@ -1,2 +1,3 @@
1
- import { a as CommandItem, i as CommandInput, n as CommandEmpty, o as CommandList, r as CommandGroup, s as CommandLoading, t as Command } from "../../../command-tFzjgzge.js";
2
- export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading };
1
+ import { a as CommandItem, i as CommandInput, n as CommandEmpty, o as CommandList, r as CommandGroup, s as CommandLoading, t as Command } from "../../../command-DHHTsHfH.js";
2
+ export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading };
3
+ export {};
@@ -1,16 +1,16 @@
1
- import { t as Icon } from "../../../icon-C4QOpsdI.js";
1
+ import { t as Icon } from "../../../icon-01W_S_9A.js";
2
2
  import React from "react";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Command as Command$1 } from "cmdk";
6
6
  //#region src/ui/components/command/command.tsx
7
- const Command = /* @__PURE__ */ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1, {
7
+ const Command = /*#__PURE__*/ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1, {
8
8
  ref,
9
9
  className: twMerge("flex size-full flex-col rounded-md **:[[cmdk-label]]:hidden", className),
10
10
  ...props
11
11
  }));
12
12
  Command.displayName = Command$1.displayName;
13
- const CommandInput = /* @__PURE__ */ React.forwardRef(({ wrapperClassName, className, ...props }, ref) => /* @__PURE__ */ jsxs("div", {
13
+ const CommandInput = /*#__PURE__*/ React.forwardRef(({ wrapperClassName, className, ...props }, ref) => /* @__PURE__ */ jsxs("div", {
14
14
  className: twMerge("group relative flex items-center border-b", "border-b-border", "hover:hover-effect", "focus-within:border-b-border", "focus-within:bg-accent", wrapperClassName),
15
15
  "cmdk-input-wrapper": "",
16
16
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -24,29 +24,29 @@ const CommandInput = /* @__PURE__ */ React.forwardRef(({ wrapperClassName, class
24
24
  })]
25
25
  }));
26
26
  CommandInput.displayName = Command$1.Input.displayName;
27
- const CommandList = /* @__PURE__ */ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.List, {
27
+ const CommandList = /*#__PURE__*/ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.List, {
28
28
  ref,
29
29
  className: twMerge("max-h-75 overflow-x-hidden overflow-y-auto", "focus:outline-none", "scrollbar-thin", "scrollbar-track-transparent", "scrollbar-thumb-border hover:scrollbar-thumb-border", "scrollbar-thumb-rounded-md", className),
30
30
  ...props
31
31
  }));
32
32
  CommandList.displayName = Command$1.List.displayName;
33
- const CommandLoading = /* @__PURE__ */ React.forwardRef((props, ref) => /* @__PURE__ */ jsx(Command$1.Loading, {
33
+ const CommandLoading = /*#__PURE__*/ React.forwardRef((props, ref) => /* @__PURE__ */ jsx(Command$1.Loading, {
34
34
  ref,
35
35
  ...props
36
36
  }));
37
37
  CommandLoading.displayName = Command$1.Loading.displayName;
38
- const CommandEmpty = /* @__PURE__ */ React.forwardRef((props, ref) => /* @__PURE__ */ jsx(Command$1.Empty, {
38
+ const CommandEmpty = /*#__PURE__*/ React.forwardRef((props, ref) => /* @__PURE__ */ jsx(Command$1.Empty, {
39
39
  ref,
40
40
  ...props
41
41
  }));
42
42
  CommandEmpty.displayName = Command$1.Empty.displayName;
43
- const CommandGroup = /* @__PURE__ */ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.Group, {
43
+ const CommandGroup = /*#__PURE__*/ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.Group, {
44
44
  ref,
45
45
  className: twMerge("overflow-hidden px-0.5 py-1", "**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium", className),
46
46
  ...props
47
47
  }));
48
48
  CommandGroup.displayName = Command$1.Group.displayName;
49
- const CommandItem = /* @__PURE__ */ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.Item, {
49
+ const CommandItem = /*#__PURE__*/ React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Command$1.Item, {
50
50
  ref,
51
51
  className: twMerge("relative flex items-center justify-between select-none", "h-8 gap-2 rounded-md py-1.5 pr-2.5 pl-1.5", "text-sm/4 text-foreground outline-none", "border-y-2 border-border", "data-[disabled=true]:disabled-effect", "[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className),
52
52
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","names":["Icon","Command","CommandPrimitive","React","twMerge","forwardRef","className","props","ref","displayName","CommandInput","wrapperClassName","Input","CommandList","List","CommandLoading","Loading","CommandEmpty","Empty","CommandGroup","Group","CommandItem","Item"],"sources":["../../../../src/ui/components/command/command.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={twMerge(\n \"flex size-full flex-col rounded-md **:[[cmdk-label]]:hidden\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & {\n wrapperClassName?: string;\n }\n>(({ wrapperClassName, className, ...props }, ref) => (\n <div\n className={twMerge(\n \"group relative flex items-center border-b\",\n \"border-b-border\",\n \"hover:hover-effect\",\n \"focus-within:border-b-border\",\n \"focus-within:bg-accent\",\n wrapperClassName,\n )}\n cmdk-input-wrapper=\"\"\n >\n <Icon\n name=\"Search\"\n size={16}\n className={twMerge(\n \"pointer-events-none absolute top-3.5 left-2 text-muted-foreground\",\n \"group-hover:hover-effect\",\n \"group-focus-within:text-foreground!\",\n )}\n />\n <CommandPrimitive.Input\n ref={ref}\n className={twMerge(\n \"flex w-full bg-transparent pt-3 pr-3 pb-2 pl-8 text-sm/5 font-normal outline-none\",\n \"text-foreground placeholder:text-muted-foreground disabled:disabled-effect\",\n \"group-hover:hover-effect\",\n \"disabled:disabled-effect\",\n className,\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={twMerge(\n \"max-h-75 overflow-x-hidden overflow-y-auto\",\n \"focus:outline-none\",\n \"scrollbar-thin\",\n \"scrollbar-track-transparent\",\n \"scrollbar-thumb-border hover:scrollbar-thumb-border\",\n \"scrollbar-thumb-rounded-md\",\n className,\n )}\n {...props}\n />\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandLoading = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Loading>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Loading>\n>((props, ref) => <CommandPrimitive.Loading ref={ref} {...props} />);\nCommandLoading.displayName = CommandPrimitive.Loading.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} {...props} />);\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={twMerge(\n \"overflow-hidden px-0.5 py-1\",\n \"**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium\",\n className,\n )}\n {...props}\n />\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={twMerge(\n \"relative flex items-center justify-between select-none\",\n \"h-8 gap-2 rounded-md py-1.5 pr-2.5 pl-1.5\",\n \"text-sm/4 text-foreground outline-none\",\n \"border-y-2 border-border\",\n \"data-[disabled=true]:disabled-effect\",\n \"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n};\n"],"mappings":";;;;;;AAKA,MAAMC,UAAUE,sBAAME,YAGnB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,WAAD;CACOA;CACL,WAAWJ,QACT,+DACAE,UACD;CACD,GAAIC;CAEP,CAAA,CAAC;AACFN,QAAQQ,cAAcP,UAAiBO;AAEvC,MAAMC,eAAeP,sBAAME,YAKxB,EAAEM,kBAAkBL,WAAW,GAAGC,SAASC,QAC5C,qBAAC,OAAD;CACE,WAAWJ,QACT,6CACA,mBACA,sBACA,gCACA,0BACAO,iBACD;CACD,sBAAmB;WATrB,CAWE,oBAAC,MAAD;EACE,MAAK;EACL,MAAM;EACN,WAAWP,QACT,qEACA,4BACA,sCACD;EAAC,CAAA,EAEJ,oBAAC,UAAiB,OAAlB;EACOI;EACL,WAAWJ,QACT,qFACA,8EACA,4BACA,4BACAE,UACD;EACD,GAAIC;EAAM,CAAA,CAGf;GAAC;AACFG,aAAaD,cAAcP,UAAiBU,MAAMH;AAElD,MAAMI,cAAcV,sBAAME,YAGvB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,MAAlB;CACOA;CACL,WAAWJ,QACT,8CACA,sBACA,kBACA,+BACA,uDACA,8BACAE,UACD;CACD,GAAIC;CAEP,CAAA,CAAC;AACFM,YAAYJ,cAAcP,UAAiBY,KAAKL;AAEhD,MAAMM,iBAAiBZ,sBAAME,YAG1BE,OAAOC,QAAQ,oBAAC,UAAiB,SAAlB;CAA+BA;CAAK,GAAID;CAAS,CAAA,CAAC;AACpEQ,eAAeN,cAAcP,UAAiBc,QAAQP;AAEtD,MAAMQ,eAAed,sBAAME,YAGxBE,OAAOC,QAAQ,oBAAC,UAAiB,OAAlB;CAA6BA;CAAK,GAAID;CAAS,CAAA,CAAC;AAClEU,aAAaR,cAAcP,UAAiBgB,MAAMT;AAElD,MAAMU,eAAehB,sBAAME,YAGxB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,OAAlB;CACOA;CACL,WAAWJ,QACT,+BACA,2IACAE,UACD;CACD,GAAIC;CAEP,CAAA,CAAC;AACFY,aAAaV,cAAcP,UAAiBkB,MAAMX;AAElD,MAAMY,cAAclB,sBAAME,YAGvB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,MAAlB;CACOA;CACL,WAAWJ,QACT,0DACA,6CACA,0CACA,4BACA,wCACA,+DACAE,UACD;CACD,GAAIC;CAEP,CAAA,CAAC;AACFc,YAAYZ,cAAcP,UAAiBoB,KAAKb"}
1
+ {"version":3,"file":"command.js","names":["Icon","Command","CommandPrimitive","React","twMerge","forwardRef","className","props","ref","displayName","CommandInput","wrapperClassName","Input","CommandList","List","CommandLoading","Loading","CommandEmpty","Empty","CommandGroup","Group","CommandItem","Item"],"sources":["../../../../src/ui/components/command/command.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={twMerge(\n \"flex size-full flex-col rounded-md **:[[cmdk-label]]:hidden\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> & {\n wrapperClassName?: string;\n }\n>(({ wrapperClassName, className, ...props }, ref) => (\n <div\n className={twMerge(\n \"group relative flex items-center border-b\",\n \"border-b-border\",\n \"hover:hover-effect\",\n \"focus-within:border-b-border\",\n \"focus-within:bg-accent\",\n wrapperClassName,\n )}\n cmdk-input-wrapper=\"\"\n >\n <Icon\n name=\"Search\"\n size={16}\n className={twMerge(\n \"pointer-events-none absolute top-3.5 left-2 text-muted-foreground\",\n \"group-hover:hover-effect\",\n \"group-focus-within:text-foreground!\",\n )}\n />\n <CommandPrimitive.Input\n ref={ref}\n className={twMerge(\n \"flex w-full bg-transparent pt-3 pr-3 pb-2 pl-8 text-sm/5 font-normal outline-none\",\n \"text-foreground placeholder:text-muted-foreground disabled:disabled-effect\",\n \"group-hover:hover-effect\",\n \"disabled:disabled-effect\",\n className,\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={twMerge(\n \"max-h-75 overflow-x-hidden overflow-y-auto\",\n \"focus:outline-none\",\n \"scrollbar-thin\",\n \"scrollbar-track-transparent\",\n \"scrollbar-thumb-border hover:scrollbar-thumb-border\",\n \"scrollbar-thumb-rounded-md\",\n className,\n )}\n {...props}\n />\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandLoading = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Loading>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Loading>\n>((props, ref) => <CommandPrimitive.Loading ref={ref} {...props} />);\nCommandLoading.displayName = CommandPrimitive.Loading.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} {...props} />);\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={twMerge(\n \"overflow-hidden px-0.5 py-1\",\n \"**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium\",\n className,\n )}\n {...props}\n />\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={twMerge(\n \"relative flex items-center justify-between select-none\",\n \"h-8 gap-2 rounded-md py-1.5 pr-2.5 pl-1.5\",\n \"text-sm/4 text-foreground outline-none\",\n \"border-y-2 border-border\",\n \"data-[disabled=true]:disabled-effect\",\n \"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n};\n"],"mappings":";;;;;;AAKA,MAAMC,UAAUE,oBAAME,YAGnB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,WAAD;CACOA;CACL,WAAWJ,QACT,+DACAE,SACF;CACA,GAAIC;AAAM,CAAA,CAEb;AACDN,QAAQQ,cAAcP,UAAiBO;AAEvC,MAAMC,eAAeP,oBAAME,YAKxB,EAAEM,kBAAkBL,WAAW,GAAGC,SAASC,QAC5C,qBAAC,OAAD;CACE,WAAWJ,QACT,6CACA,mBACA,sBACA,gCACA,0BACAO,gBACF;CACA,sBAAmB;CATrB,UAAA,CAWE,oBAAC,MAAD;EACE,MAAK;EACL,MAAM;EACN,WAAWP,QACT,qEACA,4BACA,qCACF;CAAE,CAAA,GAEJ,oBAAC,UAAiB,OAAlB;EACOI;EACL,WAAWJ,QACT,qFACA,8EACA,4BACA,4BACAE,SACF;EACA,GAAIC;CAAM,CAAA,CAET;AACN,CAAA,CAAA;AACDG,aAAaD,cAAcP,UAAiBU,MAAMH;AAElD,MAAMI,cAAcV,oBAAME,YAGvB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,MAAlB;CACOA;CACL,WAAWJ,QACT,8CACA,sBACA,kBACA,+BACA,uDACA,8BACAE,SACF;CACA,GAAIC;AAAM,CAAA,CAEb;AACDM,YAAYJ,cAAcP,UAAiBY,KAAKL;AAEhD,MAAMM,iBAAiBZ,oBAAME,YAG1BE,OAAOC,QAAQ,oBAAC,UAAiB,SAAlB;CAA+BA;CAAK,GAAID;AAAM,CAAA,CAAG;AACnEQ,eAAeN,cAAcP,UAAiBc,QAAQP;AAEtD,MAAMQ,eAAed,oBAAME,YAGxBE,OAAOC,QAAQ,oBAAC,UAAiB,OAAlB;CAA6BA;CAAK,GAAID;AAAM,CAAA,CAAG;AACjEU,aAAaR,cAAcP,UAAiBgB,MAAMT;AAElD,MAAMU,eAAehB,oBAAME,YAGxB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,OAAlB;CACOA;CACL,WAAWJ,QACT,+BACA,2IACAE,SACF;CACA,GAAIC;AAAM,CAAA,CAEb;AACDY,aAAaV,cAAcP,UAAiBkB,MAAMX;AAElD,MAAMY,cAAclB,oBAAME,YAGvB,EAAEC,WAAW,GAAGC,SAASC,QAC1B,oBAAC,UAAiB,MAAlB;CACOA;CACL,WAAWJ,QACT,0DACA,6CACA,0CACA,4BACA,wCACA,+DACAE,SACF;CACA,GAAIC;AAAM,CAAA,CAEb;AACDc,YAAYZ,cAAcP,UAAiBoB,KAAKb"}
@@ -1,2 +1,3 @@
1
- import { n as EnumFieldProps, t as EnumField } from "../../../enum-field-CwZVs3Ux.js";
2
- export { EnumField, EnumFieldProps };
1
+ import { n as EnumFieldProps, t as EnumField } from "../../../enum-field-qgV9wsyI.js";
2
+ export { EnumField, EnumFieldProps };
3
+ export {};
@@ -3,7 +3,7 @@ import { SelectField } from "../select-field/select-field.js";
3
3
  import React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/ui/components/enum-field/enum-field.tsx
6
- const EnumField = /* @__PURE__ */ React.forwardRef(({ variant = "auto", options = [], ...props }, ref) => {
6
+ const EnumField = /*#__PURE__*/ React.forwardRef(({ variant = "auto", options = [], ...props }, ref) => {
7
7
  const radio = /* @__PURE__ */ jsx(RadioGroupField, {
8
8
  options,
9
9
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"enum-field.js","names":["React","RadioGroupField","SelectField","EnumField","forwardRef","variant","options","props","ref","radio","select","length","displayName"],"sources":["../../../../src/ui/components/enum-field/enum-field.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n RadioGroupField,\n type RadioGroupFieldProps,\n} from \"../radio-group-field/radio-group-field.js\";\nimport {\n SelectField,\n type SelectFieldProps,\n} from \"../select-field/select-field.js\";\n\nexport type EnumFieldProps =\n | ({\n variant?: \"auto\";\n } & (RadioGroupFieldProps | SelectFieldProps))\n | ({\n variant: \"RadioGroup\";\n } & RadioGroupFieldProps)\n | ({\n variant: \"Select\";\n } & SelectFieldProps);\n\nexport const EnumField = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n EnumFieldProps\n>(({ variant = \"auto\", options = [], ...props }, ref) => {\n const radio = (\n <RadioGroupField\n options={options}\n {...(props as RadioGroupFieldProps)}\n ref={ref as React.ForwardedRef<HTMLDivElement>}\n />\n );\n const select = (\n <SelectField\n options={options}\n {...(props as SelectFieldProps)}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n />\n );\n\n switch (variant) {\n case \"RadioGroup\":\n return radio;\n case \"Select\":\n return select;\n case \"auto\":\n return options.length < 6 ? radio : select;\n }\n});\n\nEnumField.displayName = \"EnumField\";\n"],"mappings":";;;;;AAqBA,MAAaG,YAAYH,sBAAMI,YAG5B,EAAEC,UAAU,QAAQC,UAAU,EAAE,EAAE,GAAGC,SAASC,QAAQ;CACvD,MAAMC,QACJ,oBAAC,iBAAD;EACWH;EACT,GAAKC;EACAC;EAER,CAAA;CACD,MAAME,SACJ,oBAAC,aAAD;EACWJ;EACT,GAAKC;EACAC;EAER,CAAA;AAED,SAAQH,SAAR;EACE,KAAK,aACH,QAAOI;EACT,KAAK,SACH,QAAOC;EACT,KAAK,OACH,QAAOJ,QAAQK,SAAS,IAAIF,QAAQC;;EAExC;AAEFP,UAAUS,cAAc"}
1
+ {"version":3,"file":"enum-field.js","names":["React","RadioGroupField","SelectField","EnumField","forwardRef","variant","options","props","ref","radio","select","length","displayName"],"sources":["../../../../src/ui/components/enum-field/enum-field.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n RadioGroupField,\n type RadioGroupFieldProps,\n} from \"../radio-group-field/radio-group-field.js\";\nimport {\n SelectField,\n type SelectFieldProps,\n} from \"../select-field/select-field.js\";\n\nexport type EnumFieldProps =\n | ({\n variant?: \"auto\";\n } & (RadioGroupFieldProps | SelectFieldProps))\n | ({\n variant: \"RadioGroup\";\n } & RadioGroupFieldProps)\n | ({\n variant: \"Select\";\n } & SelectFieldProps);\n\nexport const EnumField = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n EnumFieldProps\n>(({ variant = \"auto\", options = [], ...props }, ref) => {\n const radio = (\n <RadioGroupField\n options={options}\n {...(props as RadioGroupFieldProps)}\n ref={ref as React.ForwardedRef<HTMLDivElement>}\n />\n );\n const select = (\n <SelectField\n options={options}\n {...(props as SelectFieldProps)}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n />\n );\n\n switch (variant) {\n case \"RadioGroup\":\n return radio;\n case \"Select\":\n return select;\n case \"auto\":\n return options.length < 6 ? radio : select;\n }\n});\n\nEnumField.displayName = \"EnumField\";\n"],"mappings":";;;;;AAqBA,MAAaG,YAAYH,oBAAMI,YAG5B,EAAEC,UAAU,QAAQC,UAAU,CAAA,GAAI,GAAGC,SAASC,QAAQ;CACvD,MAAMC,QACJ,oBAAC,iBAAD;EACWH;EACT,GAAKC;EACAC;CAA0C,CAAA;CAGnD,MAAME,SACJ,oBAAC,aAAD;EACWJ;EACT,GAAKC;EACAC;CAA6C,CAAA;CAItD,QAAQH,SAAR;EACE,KAAK,cACH,OAAOI;EACT,KAAK,UACH,OAAOC;EACT,KAAK,QACH,OAAOJ,QAAQK,SAAS,IAAIF,QAAQC;CACxC;AACF,CAAC;AAEDP,UAAUS,cAAc"}
@@ -1,2 +1,3 @@
1
- import { C as SelectProps, S as SelectOption, b as RadioGroupProps, x as SelectBaseProps } from "../../../index--hDSfvJT.js";
2
- export { RadioGroupProps, SelectBaseProps, SelectOption, SelectProps };
1
+ import { C as SelectProps, S as SelectOption, b as RadioGroupProps, x as SelectBaseProps } from "../../../index-C05uhexJ.js";
2
+ export { RadioGroupProps, SelectBaseProps, SelectOption, SelectProps };
3
+ export {};
@@ -1,2 +1,3 @@
1
- import { t as Form } from "../../../form-CKRKn0TQ.js";
2
- export { Form };
1
+ import { t as Form } from "../../../form-Brj5AQNr.js";
2
+ export { Form };
3
+ export {};
@@ -41,7 +41,7 @@ import { FormProvider, useForm } from "react-hook-form";
41
41
  * </Form>
42
42
  * ```
43
43
  */
44
- const Form = /* @__PURE__ */ forwardRef(({ children, onSubmit, resetOnSuccessfulSubmit = false, submitChangesOnly = false, defaultValues, renderSubmitErrorsManually = false, submissionErrorMatcher = defaultOnError, className, extraFormProps }, ref) => {
44
+ const Form = /*#__PURE__*/ forwardRef(({ children, onSubmit, resetOnSuccessfulSubmit = false, submitChangesOnly = false, defaultValues, renderSubmitErrorsManually = false, submissionErrorMatcher = defaultOnError, className, extraFormProps }, ref) => {
45
45
  const formId = useId();
46
46
  const methods = useForm({
47
47
  defaultValues,
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","names":["castValue","deepEqual","isEmpty","forwardRef","useCallback","useEffect","useId","useImperativeHandle","FormProvider","useForm","FormServerErrorMessage","defaultOnError","Form","children","onSubmit","resetOnSuccessfulSubmit","submitChangesOnly","defaultValues","renderSubmitErrorsManually","submissionErrorMatcher","className","extraFormProps","ref","formId","methods","criteriaMode","formState","isSubmitSuccessful","reset","wrappedOnSubmit","rawData","data","Object","keys","control","_fields","forEach","fieldName","includes","fromEntries","entries","filter","value","map","form","document","getElementById","key","field","querySelector","dataCast","getAttribute","error","console","errors","setError","type","message","types","serverError","triggerSubmit","dispatchEvent","Event","bubbles","root","e","handleSubmit"],"sources":["../../../../src/ui/components/form/form.tsx"],"sourcesContent":["import type { ValueCast } from \"#design-system/ui/lib\";\nimport { castValue, deepEqual, isEmpty } from \"#design-system/ui/lib\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n} from \"react\";\nimport type { UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { FormServerErrorMessage } from \"../form-message/form-server-error-message.js\";\nimport { defaultOnError } from \"./utils.js\";\n\ntype FormMethods = UseFormReturn & {\n /**\n * Trigger the form submit event\n */\n triggerSubmit: () => void;\n\n /**\n * The id of the form in the DOM\n */\n formId: string;\n};\ninterface FormProps {\n /**\n * Content of the form. Can be either React nodes or a render function that receives form methods\n * and returns React nodes. The render function approach is useful when you need access to form state\n * or methods (e.g., to disable submit button while submitting).\n */\n children: React.ReactNode | ((methods: FormMethods) => React.ReactNode);\n\n /**\n * Handler called when the form is submitted. Receives the form data as an argument.\n * The data structure will match the names of your form fields.\n *\n * @param data - An object containing the form values, keyed by field names\n */\n onSubmit: (data: any) => void | Promise<void>;\n\n /**\n * Whether to reset the form after a successful submit.\n *\n * @default false\n */\n resetOnSuccessfulSubmit?: boolean;\n\n /**\n * Whether to submit only changed values.\n *\n * When enabled, the `onSubmit` callback will only receive fields whose values differ from their\n * corresponding `defaultValues`.\n *\n * @default false\n */\n submitChangesOnly?: boolean;\n\n /**\n * Initial values for the form fields. Keys should match the 'name' props of your form fields.\n * Useful for editing existing data or setting initial state.\n */\n defaultValues?: Record<string, any>;\n\n /**\n * Whether to handle errors that happen during the submit process manually instead of showing\n * them automatically.\n *\n * @default false The errors will be rendered automatically on top of the form.\n */\n renderSubmitErrorsManually?: boolean;\n\n /**\n * Additional props to pass to the form config from react-hook-form.\n *\n * Note: this could affect the form behavior, use with caution.\n */\n extraFormProps?: UseFormProps;\n\n /**\n * Callback to match a submission error with one or more form fields or form level errors.\n *\n * @default defaultOnError The form tries to match the error with a field name by default and if it\n * doesn't match any field name, then an generic error or the error message will be shown as a form\n * level error.\n *\n * @returns An object where each key should be a field name or \"root.serverError\" for form level errors.\n * If the keys doesn't match any field name, then the UI error should be handled manually using the form\n * error state to get the message.\n */\n submissionErrorMatcher?: (\n error: Error,\n fieldNames: string[],\n ) => Record<string, string>;\n\n /**\n * Additional CSS class name to apply to the form element.\n * Use this to customize the form's styling.\n */\n className?: string;\n}\n\n/**\n * A form component that integrates with react-hook-form for form state management and validation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Form onSubmit={handleSubmit}>\n * <StringField name=\"email\" label=\"Email\" />\n * <Button type=\"submit\">Submit</Button>\n * </Form>\n *\n * // With form methods access\n * <Form onSubmit={handleSubmit}>\n * {({ formState: { isSubmitting } }) => (\n * <>\n * <StringField name=\"email\" label=\"Email\" />\n * <Button type=\"submit\" disabled={isSubmitting}>\n * {isSubmitting ? 'Submitting...' : 'Submit'}\n * </Button>\n * </>\n * )}\n * </Form>\n *\n * // With default values\n * <Form\n * onSubmit={handleSubmit}\n * defaultValues={{\n * email: 'user@example.com'\n * }}\n * >\n * <StringField name=\"email\" label=\"Email\" />\n * </Form>\n * ```\n */\nexport const Form = forwardRef<UseFormReturn, FormProps>(\n (\n {\n children,\n onSubmit,\n resetOnSuccessfulSubmit = false,\n submitChangesOnly = false,\n defaultValues,\n renderSubmitErrorsManually = false,\n submissionErrorMatcher = defaultOnError,\n className,\n extraFormProps,\n },\n ref,\n ) => {\n const formId = useId();\n const methods = useForm({\n defaultValues,\n criteriaMode: \"all\", // display all errors at once\n ...extraFormProps,\n });\n useImperativeHandle(ref, () => methods, [methods]);\n\n useEffect(() => {\n if (resetOnSuccessfulSubmit && methods.formState.isSubmitSuccessful) {\n methods.reset({ ...(defaultValues ?? {}) });\n }\n }, [\n resetOnSuccessfulSubmit,\n methods,\n methods.formState.isSubmitSuccessful,\n defaultValues,\n ]);\n\n const wrappedOnSubmit = useCallback(\n async (rawData: Record<string, any>) => {\n try {\n let data = rawData;\n // we should make sure that empty fields are submitted as `null`\n // react-hook-form doesn't submit fields with `undefined` values\n // so we need to add them to the data as `null`\n Object.keys(methods.control._fields).forEach((fieldName) => {\n if (!Object.keys(data).includes(fieldName)) {\n data[fieldName] = null;\n }\n });\n\n if (submitChangesOnly && !!defaultValues) {\n // remove fields that didn't change it's value\n data = Object.fromEntries(\n Object.entries(rawData).filter(\n ([fieldName, value]) =>\n !deepEqual(value, defaultValues[fieldName]),\n ),\n );\n }\n\n // at this point all the fields that need to be submitted are in the data\n // we just need to make sure that \"empty\" values are submitted as `null`\n data = Object.fromEntries(\n Object.entries(data).map(([fieldName, value]) => [\n fieldName,\n isEmpty(value) ? null : value,\n ]),\n );\n\n // cast data if needed to prevent submitting wrong data type\n const form = document.getElementById(formId);\n Object.keys(data).map((key) => {\n try {\n const value: unknown = data[key];\n if (value !== null) {\n const field = form?.querySelector(`[name=\"${key}\"]`);\n const dataCast = field?.getAttribute(\"data-cast\");\n if (dataCast) {\n data[key] = castValue(\n value,\n dataCast as ValueCast,\n ) as unknown;\n }\n }\n } catch (error) {\n // print out the error but continue the execution\n console.error(error);\n }\n });\n\n // we need to return the promise from the onSubmit callback if there is one\n // so react-hook-form can wait for it to resolve and update the form state correctly\n return await onSubmit(data);\n } catch (error: any) {\n const errors = submissionErrorMatcher(\n error as Error,\n Object.keys(methods.control._fields),\n );\n\n Object.entries(errors).forEach(([key, value]) => {\n methods.setError(key, {\n type: \"serverError\",\n message: value,\n types: {\n serverError: value,\n },\n });\n });\n }\n },\n [\n methods,\n submitChangesOnly,\n defaultValues,\n formId,\n onSubmit,\n submissionErrorMatcher,\n ],\n );\n\n const triggerSubmit = useCallback(() => {\n // trigger form submit event\n const form = document.getElementById(formId);\n if (form) {\n form.dispatchEvent(new Event(\"submit\", { bubbles: true }));\n }\n }, [formId]);\n\n return (\n <FormProvider {...methods}>\n {!renderSubmitErrorsManually &&\n methods.formState.errors.root?.serverError.message && (\n <div className=\"mb-2\">\n <FormServerErrorMessage />\n </div>\n )}\n\n <form\n id={formId}\n onSubmit={(e) => void methods.handleSubmit(wrappedOnSubmit)(e)}\n className={className}\n noValidate\n >\n {typeof children === \"function\"\n ? children({\n ...methods,\n triggerSubmit,\n formId,\n })\n : children}\n </form>\n </FormProvider>\n );\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"form.js","names":["castValue","deepEqual","isEmpty","forwardRef","useCallback","useEffect","useId","useImperativeHandle","FormProvider","useForm","FormServerErrorMessage","defaultOnError","Form","children","onSubmit","resetOnSuccessfulSubmit","submitChangesOnly","defaultValues","renderSubmitErrorsManually","submissionErrorMatcher","className","extraFormProps","ref","formId","methods","criteriaMode","formState","isSubmitSuccessful","reset","wrappedOnSubmit","rawData","data","Object","keys","control","_fields","forEach","fieldName","includes","fromEntries","entries","filter","value","map","form","document","getElementById","key","field","querySelector","dataCast","getAttribute","error","console","errors","setError","type","message","types","serverError","triggerSubmit","dispatchEvent","Event","bubbles","root","e","handleSubmit"],"sources":["../../../../src/ui/components/form/form.tsx"],"sourcesContent":["import type { ValueCast } from \"#design-system/ui/lib\";\nimport { castValue, deepEqual, isEmpty } from \"#design-system/ui/lib\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n} from \"react\";\nimport type { UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { FormServerErrorMessage } from \"../form-message/form-server-error-message.js\";\nimport { defaultOnError } from \"./utils.js\";\n\ntype FormMethods = UseFormReturn & {\n /**\n * Trigger the form submit event\n */\n triggerSubmit: () => void;\n\n /**\n * The id of the form in the DOM\n */\n formId: string;\n};\ninterface FormProps {\n /**\n * Content of the form. Can be either React nodes or a render function that receives form methods\n * and returns React nodes. The render function approach is useful when you need access to form state\n * or methods (e.g., to disable submit button while submitting).\n */\n children: React.ReactNode | ((methods: FormMethods) => React.ReactNode);\n\n /**\n * Handler called when the form is submitted. Receives the form data as an argument.\n * The data structure will match the names of your form fields.\n *\n * @param data - An object containing the form values, keyed by field names\n */\n onSubmit: (data: any) => void | Promise<void>;\n\n /**\n * Whether to reset the form after a successful submit.\n *\n * @default false\n */\n resetOnSuccessfulSubmit?: boolean;\n\n /**\n * Whether to submit only changed values.\n *\n * When enabled, the `onSubmit` callback will only receive fields whose values differ from their\n * corresponding `defaultValues`.\n *\n * @default false\n */\n submitChangesOnly?: boolean;\n\n /**\n * Initial values for the form fields. Keys should match the 'name' props of your form fields.\n * Useful for editing existing data or setting initial state.\n */\n defaultValues?: Record<string, any>;\n\n /**\n * Whether to handle errors that happen during the submit process manually instead of showing\n * them automatically.\n *\n * @default false The errors will be rendered automatically on top of the form.\n */\n renderSubmitErrorsManually?: boolean;\n\n /**\n * Additional props to pass to the form config from react-hook-form.\n *\n * Note: this could affect the form behavior, use with caution.\n */\n extraFormProps?: UseFormProps;\n\n /**\n * Callback to match a submission error with one or more form fields or form level errors.\n *\n * @default defaultOnError The form tries to match the error with a field name by default and if it\n * doesn't match any field name, then an generic error or the error message will be shown as a form\n * level error.\n *\n * @returns An object where each key should be a field name or \"root.serverError\" for form level errors.\n * If the keys doesn't match any field name, then the UI error should be handled manually using the form\n * error state to get the message.\n */\n submissionErrorMatcher?: (\n error: Error,\n fieldNames: string[],\n ) => Record<string, string>;\n\n /**\n * Additional CSS class name to apply to the form element.\n * Use this to customize the form's styling.\n */\n className?: string;\n}\n\n/**\n * A form component that integrates with react-hook-form for form state management and validation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Form onSubmit={handleSubmit}>\n * <StringField name=\"email\" label=\"Email\" />\n * <Button type=\"submit\">Submit</Button>\n * </Form>\n *\n * // With form methods access\n * <Form onSubmit={handleSubmit}>\n * {({ formState: { isSubmitting } }) => (\n * <>\n * <StringField name=\"email\" label=\"Email\" />\n * <Button type=\"submit\" disabled={isSubmitting}>\n * {isSubmitting ? 'Submitting...' : 'Submit'}\n * </Button>\n * </>\n * )}\n * </Form>\n *\n * // With default values\n * <Form\n * onSubmit={handleSubmit}\n * defaultValues={{\n * email: 'user@example.com'\n * }}\n * >\n * <StringField name=\"email\" label=\"Email\" />\n * </Form>\n * ```\n */\nexport const Form = forwardRef<UseFormReturn, FormProps>(\n (\n {\n children,\n onSubmit,\n resetOnSuccessfulSubmit = false,\n submitChangesOnly = false,\n defaultValues,\n renderSubmitErrorsManually = false,\n submissionErrorMatcher = defaultOnError,\n className,\n extraFormProps,\n },\n ref,\n ) => {\n const formId = useId();\n const methods = useForm({\n defaultValues,\n criteriaMode: \"all\", // display all errors at once\n ...extraFormProps,\n });\n useImperativeHandle(ref, () => methods, [methods]);\n\n useEffect(() => {\n if (resetOnSuccessfulSubmit && methods.formState.isSubmitSuccessful) {\n methods.reset({ ...(defaultValues ?? {}) });\n }\n }, [\n resetOnSuccessfulSubmit,\n methods,\n methods.formState.isSubmitSuccessful,\n defaultValues,\n ]);\n\n const wrappedOnSubmit = useCallback(\n async (rawData: Record<string, any>) => {\n try {\n let data = rawData;\n // we should make sure that empty fields are submitted as `null`\n // react-hook-form doesn't submit fields with `undefined` values\n // so we need to add them to the data as `null`\n Object.keys(methods.control._fields).forEach((fieldName) => {\n if (!Object.keys(data).includes(fieldName)) {\n data[fieldName] = null;\n }\n });\n\n if (submitChangesOnly && !!defaultValues) {\n // remove fields that didn't change it's value\n data = Object.fromEntries(\n Object.entries(rawData).filter(\n ([fieldName, value]) =>\n !deepEqual(value, defaultValues[fieldName]),\n ),\n );\n }\n\n // at this point all the fields that need to be submitted are in the data\n // we just need to make sure that \"empty\" values are submitted as `null`\n data = Object.fromEntries(\n Object.entries(data).map(([fieldName, value]) => [\n fieldName,\n isEmpty(value) ? null : value,\n ]),\n );\n\n // cast data if needed to prevent submitting wrong data type\n const form = document.getElementById(formId);\n Object.keys(data).map((key) => {\n try {\n const value: unknown = data[key];\n if (value !== null) {\n const field = form?.querySelector(`[name=\"${key}\"]`);\n const dataCast = field?.getAttribute(\"data-cast\");\n if (dataCast) {\n data[key] = castValue(\n value,\n dataCast as ValueCast,\n ) as unknown;\n }\n }\n } catch (error) {\n // print out the error but continue the execution\n console.error(error);\n }\n });\n\n // we need to return the promise from the onSubmit callback if there is one\n // so react-hook-form can wait for it to resolve and update the form state correctly\n return await onSubmit(data);\n } catch (error: any) {\n const errors = submissionErrorMatcher(\n error as Error,\n Object.keys(methods.control._fields),\n );\n\n Object.entries(errors).forEach(([key, value]) => {\n methods.setError(key, {\n type: \"serverError\",\n message: value,\n types: {\n serverError: value,\n },\n });\n });\n }\n },\n [\n methods,\n submitChangesOnly,\n defaultValues,\n formId,\n onSubmit,\n submissionErrorMatcher,\n ],\n );\n\n const triggerSubmit = useCallback(() => {\n // trigger form submit event\n const form = document.getElementById(formId);\n if (form) {\n form.dispatchEvent(new Event(\"submit\", { bubbles: true }));\n }\n }, [formId]);\n\n return (\n <FormProvider {...methods}>\n {!renderSubmitErrorsManually &&\n methods.formState.errors.root?.serverError.message && (\n <div className=\"mb-2\">\n <FormServerErrorMessage />\n </div>\n )}\n\n <form\n id={formId}\n onSubmit={(e) => void methods.handleSubmit(wrappedOnSubmit)(e)}\n className={className}\n noValidate\n >\n {typeof children === \"function\"\n ? children({\n ...methods,\n triggerSubmit,\n formId,\n })\n : children}\n </form>\n </FormProvider>\n );\n },\n);\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  //#region src/ui/components/form/utils.d.ts
2
- interface SupportedErrorObject extends Error {
2
+ export interface SupportedErrorObject extends Error {
3
3
  data: {
4
4
  path?: string;
5
5
  message?: string;
6
6
  }[];
7
7
  }
8
- declare const isSupportedErrorObject: (error: object) => error is SupportedErrorObject;
9
- declare const defaultOnError: (error: Error, fieldNames: string[]) => Record<string, string>;
8
+ export declare const isSupportedErrorObject: (error: object) => error is SupportedErrorObject;
9
+ export declare const defaultOnError: (error: Error, fieldNames: string[]) => Record<string, string>;
10
10
  //#endregion
11
- export { SupportedErrorObject, defaultOnError, isSupportedErrorObject };
11
+ export {};
12
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../../src/ui/components/form/utils.ts"],"mappings":";UAAiB,oBAAA,SAA6B,KAAA;EAC5C,IAAA;IACE,IAAA;IACA,OAAA;EAAA;AAAA;AAAA,cAIS,sBAAA,GACX,KAAA,aACC,KAAA,IAAS,oBAAA;AAAA,cAQC,cAAA,GACX,KAAA,EAAO,KAAA,EACP,UAAA,eACC,MAAA"}
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../../src/ui/components/form/utils.ts"],"mappings":";iBAAiB,6BAA6B;EAC5C;IACE;IACA;;;qBAIS,yBAAsB,kBAEhC,SAAS;qBAQC,iBAAc,OAClB,OAAK,yBAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["isSupportedErrorObject","error","Object","hasOwn","Array","isArray","data","defaultOnError","fieldNames","message","formErrorPath","path","length","includes"],"sources":["../../../../src/ui/components/form/utils.ts"],"sourcesContent":["export interface SupportedErrorObject extends Error {\n data: {\n path?: string;\n message?: string;\n }[];\n}\n\nexport const isSupportedErrorObject = (\n error: object,\n): error is SupportedErrorObject => {\n return (\n typeof error === \"object\" &&\n Object.hasOwn(error, \"data\") &&\n Array.isArray((error as { data?: unknown }).data)\n );\n};\n\nexport const defaultOnError = (\n error: Error,\n fieldNames: string[],\n): Record<string, string> => {\n let message = \"An error occurred while submitting the data\";\n let formErrorPath = \"root.serverError\"; // form level error by default\n\n if (typeof error === \"object\" && isSupportedErrorObject(error)) {\n const path = error.data[0]?.path;\n if (error.data[0]?.message) {\n message = error.data[0].message;\n }\n if (Array.isArray(path)) {\n // maybe we can reconciliate this error with a form field\n if (path.length === 1 && fieldNames.includes(path[0] as string)) {\n formErrorPath = path[0] as string;\n }\n }\n }\n\n return {\n [formErrorPath]: message,\n };\n};\n"],"mappings":";AAOA,MAAaA,0BACXC,UACkC;AAClC,QACE,OAAOA,UAAU,YACjBC,OAAOC,OAAOF,OAAO,OAAO,IAC5BG,MAAMC,QAASJ,MAA6BK,KAAK;;AAIrD,MAAaC,kBACXN,OACAO,eAC2B;CAC3B,IAAIC,UAAU;CACd,IAAIC,gBAAgB;AAEpB,KAAI,OAAOT,UAAU,YAAYD,uBAAuBC,MAAM,EAAE;EAC9D,MAAMU,OAAOV,MAAMK,KAAK,IAAIK;AAC5B,MAAIV,MAAMK,KAAK,IAAIG,QACjBA,WAAUR,MAAMK,KAAK,GAAGG;AAE1B,MAAIL,MAAMC,QAAQM,KAAK;OAEjBA,KAAKC,WAAW,KAAKJ,WAAWK,SAASF,KAAK,GAAa,CAC7DD,iBAAgBC,KAAK;;;AAK3B,QAAO,GACJD,gBAAgBD,SAClB"}
1
+ {"version":3,"file":"utils.js","names":["isSupportedErrorObject","error","Object","hasOwn","Array","isArray","data","defaultOnError","fieldNames","message","formErrorPath","path","length","includes"],"sources":["../../../../src/ui/components/form/utils.ts"],"sourcesContent":["export interface SupportedErrorObject extends Error {\n data: {\n path?: string;\n message?: string;\n }[];\n}\n\nexport const isSupportedErrorObject = (\n error: object,\n): error is SupportedErrorObject => {\n return (\n typeof error === \"object\" &&\n Object.hasOwn(error, \"data\") &&\n Array.isArray((error as { data?: unknown }).data)\n );\n};\n\nexport const defaultOnError = (\n error: Error,\n fieldNames: string[],\n): Record<string, string> => {\n let message = \"An error occurred while submitting the data\";\n let formErrorPath = \"root.serverError\"; // form level error by default\n\n if (typeof error === \"object\" && isSupportedErrorObject(error)) {\n const path = error.data[0]?.path;\n if (error.data[0]?.message) {\n message = error.data[0].message;\n }\n if (Array.isArray(path)) {\n // maybe we can reconciliate this error with a form field\n if (path.length === 1 && fieldNames.includes(path[0] as string)) {\n formErrorPath = path[0] as string;\n }\n }\n }\n\n return {\n [formErrorPath]: message,\n };\n};\n"],"mappings":";AAOA,MAAaA,0BACXC,UACkC;CAClC,OACE,OAAOA,UAAU,YACjBC,OAAOC,OAAOF,OAAO,MAAM,KAC3BG,MAAMC,QAASJ,MAA6BK,IAAI;AAEpD;AAEA,MAAaC,kBACXN,OACAO,eAC2B;CAC3B,IAAIC,UAAU;CACd,IAAIC,gBAAgB;CAEpB,IAAI,OAAOT,UAAU,YAAYD,uBAAuBC,KAAK,GAAG;EAC9D,MAAMU,OAAOV,MAAMK,KAAK,EAAE,EAAEK;EAC5B,IAAIV,MAAMK,KAAK,EAAE,EAAEG,SACjBA,UAAUR,MAAMK,KAAK,EAAE,CAACG;EAE1B,IAAIL,MAAMC,QAAQM,IAAI,GAEhBA;OAAAA,KAAKC,WAAW,KAAKJ,WAAWK,SAASF,KAAK,EAAY,GAC5DD,gBAAgBC,KAAK;EAAA;CAG3B;CAEA,OAAO,GACJD,gBAAgBD,QACnB;AACF"}
@@ -1,2 +1,3 @@
1
- import { n as FormDescriptionProps, t as FormDescription } from "../../../form-description-CYkcMEzm.js";
2
- export { FormDescription, FormDescriptionProps };
1
+ import { n as FormDescriptionProps, t as FormDescription } from "../../../form-description-DJrDJzJi.js";
2
+ export { FormDescription, FormDescriptionProps };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"form-description.js","names":["twMerge","FormDescription","children","as","className","Component"],"sources":["../../../../src/ui/components/form-description/form-description.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\nexport interface FormDescriptionProps extends React.PropsWithChildren {\n as?: React.ElementType;\n className?: string;\n}\n\nconst FormDescription: React.FC<FormDescriptionProps> = ({\n children,\n as,\n className,\n}) => {\n const Component = as ?? \"p\";\n\n return (\n <Component\n className={twMerge(\n \"font-sans text-sm/5 font-normal text-foreground\",\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n\nexport { FormDescription };\n"],"mappings":";;;AAOA,MAAMC,mBAAmD,EACvDC,UACAC,IACAC,gBACI;AAGJ,QACE,oBAHgBD,MAAM,KAGtB;EACE,WAAWH,QACT,mDACAI,UACD;EAEAF;EACS,CAAA"}
1
+ {"version":3,"file":"form-description.js","names":["twMerge","FormDescription","children","as","className","Component"],"sources":["../../../../src/ui/components/form-description/form-description.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\nexport interface FormDescriptionProps extends React.PropsWithChildren {\n as?: React.ElementType;\n className?: string;\n}\n\nconst FormDescription: React.FC<FormDescriptionProps> = ({\n children,\n as,\n className,\n}) => {\n const Component = as ?? \"p\";\n\n return (\n <Component\n className={twMerge(\n \"font-sans text-sm/5 font-normal text-foreground\",\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n\nexport { FormDescription };\n"],"mappings":";;;AAOA,MAAMC,mBAAmD,EACvDC,UACAC,IACAC,gBACI;CAGJ,OACE,oBAHgBD,MAAM,KAGtB;EACE,WAAWH,QACT,mDACAI,SACF;EAECF;CACQ,CAAA;AAEf"}
@@ -1,2 +1,3 @@
1
- import { t as FormGroup } from "../../../form-group-C8kL6pdZ.js";
2
- export { FormGroup };
1
+ import { t as FormGroup } from "../../../form-group-Ckd28lpW.js";
2
+ export { FormGroup };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"form-group.js","names":["FormGroup","children"],"sources":["../../../../src/ui/components/form-group/form-group.tsx"],"sourcesContent":["export const FormGroup: React.FC<React.PropsWithChildren> = ({ children }) => {\n return <div className=\"flex flex-col gap-2\">{children}</div>;\n};\n"],"mappings":";;AAAA,MAAaA,aAAgD,EAAEC,eAAe;AAC5E,QAAO,oBAAC,OAAD;EAAK,WAAU;EAAuBA;EAAe,CAAA"}
1
+ {"version":3,"file":"form-group.js","names":["FormGroup","children"],"sources":["../../../../src/ui/components/form-group/form-group.tsx"],"sourcesContent":["export const FormGroup: React.FC<React.PropsWithChildren> = ({ children }) => {\n return <div className=\"flex flex-col gap-2\">{children}</div>;\n};\n"],"mappings":";;AAAA,MAAaA,aAAgD,EAAEC,eAAe;CAC5E,OAAO,oBAAC,OAAD;EAAK,WAAU;EAAuBA;CAAc,CAAA;AAC7D"}
@@ -1,2 +1,3 @@
1
- import { n as FormLabelProps, t as FormLabel } from "../../../form-label-b6nQi0XO.js";
2
- export { FormLabel, FormLabelProps };
1
+ import { n as FormLabelProps, t as FormLabel } from "../../../form-label-C8ghd_lR.js";
2
+ export { FormLabel, FormLabelProps };
3
+ export {};
@@ -1,4 +1,4 @@
1
- import { t as Icon } from "../../../icon-C4QOpsdI.js";
1
+ import { t as Icon } from "../../../icon-01W_S_9A.js";
2
2
  import { Tooltip, TooltipProvider as Provider } from "../tooltip/tooltip.js";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -6,9 +6,10 @@ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  const FormLabel = ({ children, required, disabled, description, hasError, inline, className, ...htmlLabelProps }) => {
7
7
  const classes = twMerge("inline-flex items-center text-sm font-medium", inline ? "leading-[22px]" : "leading-4", "text-foreground", hasError && "group-hover:hover-effect", hasError && inline && "text-destructive", hasError && !inline && "text-destructive", disabled && "cursor-not-allowed text-foreground", inline ? !disabled && "group-hover:hover-effect" : "mb-[3px]", className);
8
8
  if (!children) return null;
9
+ const extraProps = { ...htmlLabelProps };
9
10
  return /* @__PURE__ */ jsxs("label", {
10
11
  className: classes,
11
- ...htmlLabelProps,
12
+ ...extraProps,
12
13
  children: [
13
14
  children,
14
15
  required && /* @__PURE__ */ jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"form-label.js","names":["Icon","twMerge","Tooltip","TooltipProvider","FormLabel","children","required","disabled","description","hasError","inline","className","htmlLabelProps","classes","extraProps"],"sources":["../../../../src/ui/components/form-label/form-label.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\n\nexport interface FormLabelProps\n extends React.PropsWithChildren, React.LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean;\n disabled?: boolean;\n description?: string;\n hasError?: boolean;\n inline?: boolean;\n className?: string;\n}\n\nexport const FormLabel: React.FC<FormLabelProps> = ({\n children,\n required,\n disabled,\n description,\n hasError,\n inline,\n className,\n ...htmlLabelProps\n}) => {\n const classes = twMerge(\n \"inline-flex items-center text-sm font-medium\",\n inline ? \"leading-[22px]\" : \"leading-4\",\n \"text-foreground\",\n hasError && \"group-hover:hover-effect\",\n hasError && inline && \"text-destructive\",\n hasError && !inline && \"text-destructive\",\n disabled && \"cursor-not-allowed text-foreground\",\n inline ? !disabled && \"group-hover:hover-effect\" : \"mb-[3px]\",\n className,\n );\n\n if (!children) {\n // no label provided\n return null;\n }\n\n const extraProps = {\n ...htmlLabelProps,\n };\n\n return (\n <label className={classes} {...extraProps}>\n {children}\n {required && (\n <span\n className={twMerge(\n \"ml-1 text-foreground group-hover:hover-effect\",\n hasError && \"text-destructive group-hover:hover-effect\",\n )}\n >\n *\n </span>\n )}\n\n {description && (\n <TooltipProvider>\n <Tooltip content={description}>\n <Icon\n name=\"CircleInfo\"\n size={16}\n className={twMerge(\n \"ml-1 cursor-pointer text-foreground hover:hover-effect\",\n disabled && \"text-muted-foreground\",\n )}\n />\n </Tooltip>\n </TooltipProvider>\n )}\n </label>\n );\n};\n"],"mappings":";;;;;AAcA,MAAaI,aAAuC,EAClDC,UACAC,UACAC,UACAC,aACAC,UACAC,QACAC,WACA,GAAGC,qBACC;CACJ,MAAMC,UAAUZ,QACd,gDACAS,SAAS,mBAAmB,aAC5B,mBACAD,YAAY,4BACZA,YAAYC,UAAU,oBACtBD,YAAY,CAACC,UAAU,oBACvBH,YAAY,sCACZG,SAAS,CAACH,YAAY,6BAA6B,YACnDI,UACD;AAED,KAAI,CAACN,SAEH,QAAO;AAOT,QACE,qBAAC,SAAD;EAAO,WAAWQ;EAJlB,GAAGD;YAIH;GACGP;GACAC,YACC,oBAAC,QAAD;IACE,WAAWL,QACT,iDACAQ,YAAY,4CACb;cAAC;IAIL,CAAA;GAEAD,eACC,oBAAC,UAAD,EAAA,UACE,oBAAC,SAAD;IAAS,SAASA;cAChB,oBAAC,MAAD;KACE,MAAK;KACL,MAAM;KACN,WAAWP,QACT,0DACAM,YAAY,wBACb;KAAC,CAAA;IAEG,CAAA,EAEZ,CAAA;GACK"}
1
+ {"version":3,"file":"form-label.js","names":["Icon","twMerge","Tooltip","TooltipProvider","FormLabel","children","required","disabled","description","hasError","inline","className","htmlLabelProps","classes","extraProps"],"sources":["../../../../src/ui/components/form-label/form-label.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\n\nexport interface FormLabelProps\n extends React.PropsWithChildren, React.LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean;\n disabled?: boolean;\n description?: string;\n hasError?: boolean;\n inline?: boolean;\n className?: string;\n}\n\nexport const FormLabel: React.FC<FormLabelProps> = ({\n children,\n required,\n disabled,\n description,\n hasError,\n inline,\n className,\n ...htmlLabelProps\n}) => {\n const classes = twMerge(\n \"inline-flex items-center text-sm font-medium\",\n inline ? \"leading-[22px]\" : \"leading-4\",\n \"text-foreground\",\n hasError && \"group-hover:hover-effect\",\n hasError && inline && \"text-destructive\",\n hasError && !inline && \"text-destructive\",\n disabled && \"cursor-not-allowed text-foreground\",\n inline ? !disabled && \"group-hover:hover-effect\" : \"mb-[3px]\",\n className,\n );\n\n if (!children) {\n // no label provided\n return null;\n }\n\n const extraProps = {\n ...htmlLabelProps,\n };\n\n return (\n <label className={classes} {...extraProps}>\n {children}\n {required && (\n <span\n className={twMerge(\n \"ml-1 text-foreground group-hover:hover-effect\",\n hasError && \"text-destructive group-hover:hover-effect\",\n )}\n >\n *\n </span>\n )}\n\n {description && (\n <TooltipProvider>\n <Tooltip content={description}>\n <Icon\n name=\"CircleInfo\"\n size={16}\n className={twMerge(\n \"ml-1 cursor-pointer text-foreground hover:hover-effect\",\n disabled && \"text-muted-foreground\",\n )}\n />\n </Tooltip>\n </TooltipProvider>\n )}\n </label>\n );\n};\n"],"mappings":";;;;;AAcA,MAAaI,aAAuC,EAClDC,UACAC,UACAC,UACAC,aACAC,UACAC,QACAC,WACA,GAAGC,qBACC;CACJ,MAAMC,UAAUZ,QACd,gDACAS,SAAS,mBAAmB,aAC5B,mBACAD,YAAY,4BACZA,YAAYC,UAAU,oBACtBD,YAAY,CAACC,UAAU,oBACvBH,YAAY,sCACZG,SAAS,CAACH,YAAY,6BAA6B,YACnDI,SACF;CAEA,IAAI,CAACN,UAEH,OAAO;CAGT,MAAMS,aAAa,EACjB,GAAGF,eACL;CAEA,OACE,qBAAC,SAAD;EAAO,WAAWC;EAAS,GAAIC;EAA/B,UAAA;GACGT;GACAC,YACC,oBAAC,QAAD;IACE,WAAWL,QACT,iDACAQ,YAAY,2CACd;IAAE,UAAA;GAGE,CAAA;GAGPD,eACC,oBAAC,UAAD,EAAA,UACE,oBAAC,SAAD;IAAS,SAASA;IAChB,UAAA,oBAAC,MAAD;KACE,MAAK;KACL,MAAM;KACN,WAAWP,QACT,0DACAM,YAAY,uBACd;IAAE,CAAA;GAEG,CAAA,EACM,CAAA;EAEd;;AAEX"}
@@ -1,2 +1,3 @@
1
- import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../../form-message-Dq72nBXz.js";
2
- export { FormMessage, FormMessageProps, FormMessageType };
1
+ import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../../form-message-CnKUkvlj.js";
2
+ export { FormMessage, FormMessageProps, FormMessageType };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"form-message.js","names":["twMerge","defaultElement","FormMessage","children","type","as","className","props","Component","typeClasses","error","info","warning","classes"],"sources":["../../../../src/ui/components/form-message/form-message.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\nexport type FormMessageType = \"error\" | \"info\" | \"warning\";\n\ntype FormMessageOwnProps<E extends React.ElementType = React.ElementType> = {\n type?: FormMessageType;\n as?: E;\n className?: string;\n};\n\nexport type FormMessageProps<E extends React.ElementType> =\n FormMessageOwnProps<E> &\n Omit<React.ComponentPropsWithoutRef<E>, keyof FormMessageOwnProps>;\n\nconst defaultElement = \"p\";\n\nexport const FormMessage: <E extends React.ElementType = typeof defaultElement>(\n props: FormMessageProps<E>,\n) => React.ReactElement | null = ({\n children,\n type = \"info\",\n as,\n className,\n ...props\n}) => {\n const Component = as || defaultElement;\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"text-destructive\",\n info: \"text-info\",\n warning: \"text-warning\",\n };\n\n const classes = twMerge(\n \"mb-0 inline-flex items-center text-xs font-medium\",\n typeClasses[type],\n className,\n );\n\n // TODO: add icon\n return (\n <Component data-type={type} className={classes} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;AAcA,MAAMC,iBAAiB;AAEvB,MAAaC,eAEqB,EAChCC,UACAC,OAAO,QACPC,IACAC,WACA,GAAGC,YACC;CACJ,MAAMC,YAAYH,MAAMJ;CAQxB,MAAMY,UAAUb,QACd,qDAPmD;EACnDU,OAAO;EACPC,MAAM;EACNC,SAAS;EACV,CAIaR,OACZE,UACD;AAGD,QACE,oBAAC,WAAD;EAAW,aAAWF;EAAM,WAAWS;EAAS,GAAIN;EACjDJ;EACS,CAAA"}
1
+ {"version":3,"file":"form-message.js","names":["twMerge","defaultElement","FormMessage","children","type","as","className","props","Component","typeClasses","error","info","warning","classes"],"sources":["../../../../src/ui/components/form-message/form-message.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\nexport type FormMessageType = \"error\" | \"info\" | \"warning\";\n\ntype FormMessageOwnProps<E extends React.ElementType = React.ElementType> = {\n type?: FormMessageType;\n as?: E;\n className?: string;\n};\n\nexport type FormMessageProps<E extends React.ElementType> =\n FormMessageOwnProps<E> &\n Omit<React.ComponentPropsWithoutRef<E>, keyof FormMessageOwnProps>;\n\nconst defaultElement = \"p\";\n\nexport const FormMessage: <E extends React.ElementType = typeof defaultElement>(\n props: FormMessageProps<E>,\n) => React.ReactElement | null = ({\n children,\n type = \"info\",\n as,\n className,\n ...props\n}) => {\n const Component = as || defaultElement;\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"text-destructive\",\n info: \"text-info\",\n warning: \"text-warning\",\n };\n\n const classes = twMerge(\n \"mb-0 inline-flex items-center text-xs font-medium\",\n typeClasses[type],\n className,\n );\n\n // TODO: add icon\n return (\n <Component data-type={type} className={classes} {...props}>\n {children}\n </Component>\n );\n};\n"],"mappings":";;;AAcA,MAAMC,iBAAiB;AAEvB,MAAaC,eAEqB,EAChCC,UACAC,OAAO,QACPC,IACAC,WACA,GAAGC,YACC;CACJ,MAAMC,YAAYH,MAAMJ;CAQxB,MAAMY,UAAUb,QACd,qDACAS;EAPAC,OAAO;EACPC,MAAM;EACNC,SAAS;CAKTH,EAAYL,OACZE,SACF;CAGA,OACE,oBAAC,WAAD;EAAW,aAAWF;EAAM,WAAWS;EAAS,GAAIN;EACjDJ;CACQ,CAAA;AAEf"}
@@ -1,2 +1,3 @@
1
- import { t as FormServerErrorMessage } from "../../../form-server-error-message-DXbaiTfF.js";
2
- export { FormServerErrorMessage };
1
+ import { t as FormServerErrorMessage } from "../../../form-server-error-message-D2tFtDZ0.js";
2
+ export { FormServerErrorMessage };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"form-server-error-message.js","names":["useFormContext","FormMessageList","FormServerErrorMessage","formState","errors","root","serverError","message"],"sources":["../../../../src/ui/components/form-message/form-server-error-message.tsx"],"sourcesContent":["import { useFormContext } from \"react-hook-form\";\nimport { FormMessageList } from \"./message-list.js\";\n\nexport const FormServerErrorMessage = () => {\n const { formState } = useFormContext();\n\n if (!formState.errors.root?.serverError.message) {\n return null;\n }\n\n return (\n <FormMessageList\n messages={[formState.errors.root.serverError.message]}\n type=\"error\"\n />\n );\n};\n"],"mappings":";;;;AAGA,MAAaE,+BAA+B;CAC1C,MAAM,EAAEC,cAAcH,gBAAgB;AAEtC,KAAI,CAACG,UAAUC,OAAOC,MAAMC,YAAYC,QACtC,QAAO;AAGT,QACE,oBAAC,iBAAD;EACE,UAAU,CAACJ,UAAUC,OAAOC,KAAKC,YAAYC,QAAQ;EACrD,MAAK;EACL,CAAA"}
1
+ {"version":3,"file":"form-server-error-message.js","names":["useFormContext","FormMessageList","FormServerErrorMessage","formState","errors","root","serverError","message"],"sources":["../../../../src/ui/components/form-message/form-server-error-message.tsx"],"sourcesContent":["import { useFormContext } from \"react-hook-form\";\nimport { FormMessageList } from \"./message-list.js\";\n\nexport const FormServerErrorMessage = () => {\n const { formState } = useFormContext();\n\n if (!formState.errors.root?.serverError.message) {\n return null;\n }\n\n return (\n <FormMessageList\n messages={[formState.errors.root.serverError.message]}\n type=\"error\"\n />\n );\n};\n"],"mappings":";;;;AAGA,MAAaE,+BAA+B;CAC1C,MAAM,EAAEC,cAAcH,eAAe;CAErC,IAAI,CAACG,UAAUC,OAAOC,MAAMC,YAAYC,SACtC,OAAO;CAGT,OACE,oBAAC,iBAAD;EACE,UAAU,CAACJ,UAAUC,OAAOC,KAAKC,YAAYC,OAAO;EACpD,MAAK;CAAO,CAAA;AAGlB"}
@@ -1,2 +1,3 @@
1
- import { t as FormMessageList } from "../../../message-list-C4mPpBBa.js";
2
- export { FormMessageList };
1
+ import { t as FormMessageList } from "../../../message-list-D8d2ltLd.js";
2
+ export { FormMessageList };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"message-list.js","names":["twMerge","FormMessage","FormMessageList","messages","type","className","props","length","typeClasses","error","info","warning","map","message"],"sources":["../../../../src/ui/components/form-message/message-list.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport type { FormMessageType } from \"./form-message.js\";\nimport { FormMessage } from \"./form-message.js\";\n\ninterface FormMessageListProps {\n messages: string[];\n type?: FormMessageType;\n className?: string;\n}\n\nexport const FormMessageList: React.FC<FormMessageListProps> = ({\n messages,\n type = \"info\",\n className,\n ...props\n}) => {\n if (messages.length === 0) {\n return null;\n }\n\n if (messages.length === 1) {\n return (\n <FormMessage type={type} {...props}>\n {messages[0]}\n </FormMessage>\n );\n }\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"before:bg-destructive\",\n info: \"before:bg-info\",\n warning: \"before:bg-warning\",\n };\n\n return (\n <ul className={twMerge(\"flex flex-col gap-1\", className)} {...props}>\n {messages.map((message) => (\n <FormMessage\n key={message}\n as=\"li\"\n type={type}\n className={twMerge(\n // Layout\n \"relative pl-4\",\n // Visual styles\n \"before:absolute before:top-[0.4em] before:left-0 before:size-2 before:rounded-full\",\n typeClasses[type],\n )}\n >\n {message}\n </FormMessage>\n ))}\n </ul>\n );\n};\n"],"mappings":";;;;AAUA,MAAaE,mBAAmD,EAC9DC,UACAC,OAAO,QACPC,WACA,GAAGC,YACC;AACJ,KAAIH,SAASI,WAAW,EACtB,QAAO;AAGT,KAAIJ,SAASI,WAAW,EACtB,QACE,oBAAC,aAAD;EAAmBH;EAAM,GAAIE;YAC1BH,SAAS;EACE,CAAA;CAIlB,MAAMK,cAA+C;EACnDC,OAAO;EACPC,MAAM;EACNC,SAAS;EACV;AAED,QACE,oBAAC,MAAD;EAAI,WAAWX,QAAQ,uBAAuBK,UAAU;EAAE,GAAIC;YAC3DH,SAASS,KAAKC,YACb,oBAAC,aAAD;GAEE,IAAG;GACGT;GACN,WAAWJ,QAET,iBAEA,sFACAQ,YAAYJ,MACb;aAEAS;GAEJ,EAbQA,QAaR,CAAC;EACC,CAAA"}
1
+ {"version":3,"file":"message-list.js","names":["twMerge","FormMessage","FormMessageList","messages","type","className","props","length","typeClasses","error","info","warning","map","message"],"sources":["../../../../src/ui/components/form-message/message-list.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport type { FormMessageType } from \"./form-message.js\";\nimport { FormMessage } from \"./form-message.js\";\n\ninterface FormMessageListProps {\n messages: string[];\n type?: FormMessageType;\n className?: string;\n}\n\nexport const FormMessageList: React.FC<FormMessageListProps> = ({\n messages,\n type = \"info\",\n className,\n ...props\n}) => {\n if (messages.length === 0) {\n return null;\n }\n\n if (messages.length === 1) {\n return (\n <FormMessage type={type} {...props}>\n {messages[0]}\n </FormMessage>\n );\n }\n\n const typeClasses: Record<FormMessageType, string> = {\n error: \"before:bg-destructive\",\n info: \"before:bg-info\",\n warning: \"before:bg-warning\",\n };\n\n return (\n <ul className={twMerge(\"flex flex-col gap-1\", className)} {...props}>\n {messages.map((message) => (\n <FormMessage\n key={message}\n as=\"li\"\n type={type}\n className={twMerge(\n // Layout\n \"relative pl-4\",\n // Visual styles\n \"before:absolute before:top-[0.4em] before:left-0 before:size-2 before:rounded-full\",\n typeClasses[type],\n )}\n >\n {message}\n </FormMessage>\n ))}\n </ul>\n );\n};\n"],"mappings":";;;;AAUA,MAAaE,mBAAmD,EAC9DC,UACAC,OAAO,QACPC,WACA,GAAGC,YACC;CACJ,IAAIH,SAASI,WAAW,GACtB,OAAO;CAGT,IAAIJ,SAASI,WAAW,GACtB,OACE,oBAAC,aAAD;EAAmBH;EAAM,GAAIE;EAC1BH,UAAAA,SAAS;CACC,CAAA;CAIjB,MAAMK,cAA+C;EACnDC,OAAO;EACPC,MAAM;EACNC,SAAS;CACX;CAEA,OACE,oBAAC,MAAD;EAAI,WAAWX,QAAQ,uBAAuBK,SAAS;EAAG,GAAIC;EAC3DH,UAAAA,SAASS,KAAKC,YACb,oBAAC,aAAD;GAEE,IAAG;GACGT;GACN,WAAWJ,QAET,iBAEA,sFACAQ,YAAYJ,KACd;GAECS,UAAAA;EACU,GAZNA,OAYM,CACd;CACC,CAAA;AAER"}
@@ -1,8 +1,6 @@
1
- import * as react from "react";
2
-
3
1
  //#region src/ui/components/id-autocomplete/id-autocomplete-context.d.ts
4
- declare const IdAutocompleteContext: react.Context<Record<string, unknown>>;
5
- declare const useIdAutocompleteContext: () => Record<string, unknown>;
2
+ export declare const IdAutocompleteContext: import("react").Context<Record<string, unknown>>;
3
+ export declare const useIdAutocompleteContext: () => Record<string, unknown>;
6
4
  //#endregion
7
- export { IdAutocompleteContext, useIdAutocompleteContext };
5
+ export {};
8
6
  //# sourceMappingURL=id-autocomplete-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-autocomplete-context.d.ts","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"mappings":";;;cAEa,qBAAA,EAAqB,KAAA,CAAA,OAAA,CAAA,MAAA;AAAA,cAErB,wBAAA,QAAwB,MAAA"}
1
+ {"version":3,"file":"id-autocomplete-context.d.ts","names":[],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"mappings":";qBAEa,uCAAqB,QAAA;qBAErB,gCAAwB"}
@@ -1,6 +1,6 @@
1
1
  import { createContext, useContext } from "react";
2
2
  //#region src/ui/components/id-autocomplete/id-autocomplete-context.ts
3
- const IdAutocompleteContext = /* @__PURE__ */ createContext({});
3
+ const IdAutocompleteContext = /*#__PURE__*/ createContext({});
4
4
  const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);
5
5
  //#endregion
6
6
  export { IdAutocompleteContext, useIdAutocompleteContext };
@@ -1 +1 @@
1
- {"version":3,"file":"id-autocomplete-context.js","names":["createContext","useContext","IdAutocompleteContext","useIdAutocompleteContext"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport const IdAutocompleteContext = createContext<Record<string, unknown>>({});\n\nexport const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);\n"],"mappings":";;AAEA,MAAaE,wBAAwBF,8BAAuC,EAAE,CAAC;AAE/E,MAAaG,iCAAiCF,WAAWC,sBAAsB"}
1
+ {"version":3,"file":"id-autocomplete-context.js","names":["createContext","useContext","IdAutocompleteContext","useIdAutocompleteContext"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport const IdAutocompleteContext = createContext<Record<string, unknown>>({});\n\nexport const useIdAutocompleteContext = () => useContext(IdAutocompleteContext);\n"],"mappings":";;AAEA,MAAaE,wBAAwBF,4BAAuC,CAAC,CAAC;AAE9E,MAAaG,iCAAiCF,WAAWC,qBAAqB"}
@@ -1,2 +1,3 @@
1
- import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../../id-autocomplete-input-container-DFEyPh5p.js";
2
- export { IdAutocompleteInputContainer, IdAutocompleteInputContainerProps };
1
+ import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../../id-autocomplete-input-container-BqRQGpcs.js";
2
+ export { IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps };
3
+ export {};
@@ -1,4 +1,4 @@
1
- import { t as Icon } from "../../../icon-C4QOpsdI.js";
1
+ import { t as Icon } from "../../../icon-01W_S_9A.js";
2
2
  import { Tooltip, TooltipProvider as Provider } from "../tooltip/tooltip.js";
3
3
  import { sharedValueTransformers } from "../../lib/shared-value-transformers.js";
4
4
  import { Input } from "../input/input.js";
@@ -9,7 +9,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Command } from "cmdk";
10
10
  import { useMediaQuery } from "usehooks-ts";
11
11
  //#region src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx
12
- const IdAutocompleteInputContainer = /* @__PURE__ */ React.forwardRef(({ id, name, value, className, isLoading, haveFetchError, disabled, onChange, onBlur, onClick, selectedOption, optionsLength, handleOpenChange, onKeyDown, onMouseDown, placeholder, hasError, label, required, isPopoverOpen, maxLength, handlePaste, onPaste, ...props }, ref) => {
12
+ const IdAutocompleteInputContainer = /*#__PURE__*/ React.forwardRef(({ id, name, value, className, isLoading, haveFetchError, disabled, onChange, onBlur, onClick, selectedOption, optionsLength, handleOpenChange, onKeyDown, onMouseDown, placeholder, hasError, label, required, isPopoverOpen, maxLength, handlePaste, onPaste, ...props }, ref) => {
13
13
  const [hasCopied, setHasCopied] = useState(false);
14
14
  const hasHover = useMediaQuery("(hover: hover) and (pointer: fine)");
15
15
  const transformers = useMemo(() => [sharedValueTransformers.trimOnBlur(), sharedValueTransformers.trimOnEnter()], []);
@@ -1 +1 @@
1
- {"version":3,"file":"id-autocomplete-input-container.js","names":["Icon","twMerge","sharedValueTransformers","Command","CommandPrimitive","React","useMemo","useState","useMediaQuery","Input","Tooltip","TooltipProvider","ValueTransformer","IdAutocompleteInputContainer","forwardRef","id","name","value","className","isLoading","haveFetchError","disabled","onChange","onBlur","onClick","selectedOption","optionsLength","handleOpenChange","onKeyDown","onMouseDown","placeholder","hasError","label","required","isPopoverOpen","maxLength","handlePaste","onPaste","props","ref","hasCopied","setHasCopied","hasHover","transformers","trimOnBlur","trimOnEnter","e","input","target","isOptionsRelatedKey","includes","key","preventDefault","stopPropagation","contains","document","activeElement","requestAnimationFrame","select","undefined","navigator","clipboard","writeText","then","setTimeout","catch","error","console"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React, { useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { Input } from \"../input/input.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport type { IdAutocompleteOption } from \"./types.js\";\n\ninterface IdAutocompleteInputContainerProps extends Omit<\n InputBaseProps<string>,\n \"defaultValue\" | \"errors\" | \"warnings\"\n> {\n isLoading: boolean;\n haveFetchError: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;\n selectedOption?: IdAutocompleteOption;\n optionsLength: number;\n handleOpenChange?: (open: boolean) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onMouseDown?: (e: React.MouseEvent<HTMLInputElement>) => void;\n placeholder?: string;\n hasError: boolean;\n isPopoverOpen: boolean;\n maxLength?: number;\n handlePaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n onPaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n}\n\nconst IdAutocompleteInputContainer = React.forwardRef<\n HTMLInputElement,\n IdAutocompleteInputContainerProps\n>(\n (\n {\n id,\n name,\n value,\n className,\n isLoading,\n haveFetchError,\n disabled,\n onChange,\n onBlur,\n onClick,\n selectedOption,\n optionsLength,\n handleOpenChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n hasError,\n label,\n required,\n isPopoverOpen,\n maxLength,\n handlePaste,\n onPaste,\n ...props\n },\n ref,\n ) => {\n const [hasCopied, setHasCopied] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <div className={twMerge(\"group relative\")}>\n <ValueTransformer transformers={transformers}>\n <CommandPrimitive.Input asChild>\n <Input\n id={id}\n name={name}\n value={value}\n className={twMerge(\"pr-9\", className)}\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n onClick={(e) => {\n const input = e.target as HTMLInputElement;\n if (\n !(isLoading || haveFetchError) &&\n !selectedOption &&\n input.value !== \"\"\n ) {\n handleOpenChange?.(true);\n }\n onClick?.(e);\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n const isOptionsRelatedKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n ].includes(e.key);\n\n if (e.key === \"Enter\" && isPopoverOpen && optionsLength === 0) {\n handleOpenChange?.(false);\n e.preventDefault();\n return;\n }\n if (\n !(isOptionsRelatedKey && isPopoverOpen && optionsLength > 0)\n ) {\n e.stopPropagation();\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement;\n if (!input.contains(document.activeElement)) {\n // wait for the next tick to ensure the focus occurs first\n requestAnimationFrame(() => {\n input.select();\n });\n }\n onMouseDown?.(e);\n }}\n onPaste={(e) => {\n handlePaste?.(e);\n onPaste?.(e);\n }}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n aria-expanded={isPopoverOpen}\n maxLength={maxLength}\n {...props}\n ref={ref}\n />\n </CommandPrimitive.Input>\n </ValueTransformer>\n <div\n className={twMerge(\n \"absolute top-1/2 right-3 flex size-4 -translate-y-1/2 items-center\",\n !isLoading &&\n !haveFetchError &&\n !selectedOption &&\n \"pointer-events-none\",\n )}\n >\n {isLoading && (\n <Icon\n name=\"Reload\"\n size={16}\n className={twMerge(\"animate-spin text-muted-foreground\")}\n />\n )}\n {haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Network error!\">\n <Icon\n name=\"Error\"\n size={16}\n className={twMerge(\"text-destructive\")}\n />\n </Tooltip>\n </TooltipProvider>\n )}\n {selectedOption && !isLoading && !haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={() => {\n navigator.clipboard\n .writeText(selectedOption.value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error) => {\n console.error(\"Failed to copy value:\", error);\n });\n }}\n className={twMerge(\n \"focus-visible:outline-none [&_svg]:pointer-events-none\",\n hasHover &&\n \"opacity-0 transition-opacity duration-500 group-hover:opacity-100\",\n )}\n >\n <Icon\n name=\"Copy\"\n size={16}\n className={twMerge(\"text-muted-foreground\")}\n />\n </button>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n },\n);\n\nexport { IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"id-autocomplete-input-container.js","names":["Icon","twMerge","sharedValueTransformers","Command","CommandPrimitive","React","useMemo","useState","useMediaQuery","Input","Tooltip","TooltipProvider","ValueTransformer","IdAutocompleteInputContainer","forwardRef","id","name","value","className","isLoading","haveFetchError","disabled","onChange","onBlur","onClick","selectedOption","optionsLength","handleOpenChange","onKeyDown","onMouseDown","placeholder","hasError","label","required","isPopoverOpen","maxLength","handlePaste","onPaste","props","ref","hasCopied","setHasCopied","hasHover","transformers","trimOnBlur","trimOnEnter","e","input","target","isOptionsRelatedKey","includes","key","preventDefault","stopPropagation","contains","document","activeElement","requestAnimationFrame","select","undefined","navigator","clipboard","writeText","then","setTimeout","catch","error","console"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-input-container.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport React, { useMemo, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { InputBaseProps } from \"../../types.js\";\nimport { Input } from \"../input/input.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport type { IdAutocompleteOption } from \"./types.js\";\n\ninterface IdAutocompleteInputContainerProps extends Omit<\n InputBaseProps<string>,\n \"defaultValue\" | \"errors\" | \"warnings\"\n> {\n isLoading: boolean;\n haveFetchError: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;\n selectedOption?: IdAutocompleteOption;\n optionsLength: number;\n handleOpenChange?: (open: boolean) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onMouseDown?: (e: React.MouseEvent<HTMLInputElement>) => void;\n placeholder?: string;\n hasError: boolean;\n isPopoverOpen: boolean;\n maxLength?: number;\n handlePaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n onPaste?: (e: React.ClipboardEvent<HTMLInputElement>) => void;\n}\n\nconst IdAutocompleteInputContainer = React.forwardRef<\n HTMLInputElement,\n IdAutocompleteInputContainerProps\n>(\n (\n {\n id,\n name,\n value,\n className,\n isLoading,\n haveFetchError,\n disabled,\n onChange,\n onBlur,\n onClick,\n selectedOption,\n optionsLength,\n handleOpenChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n hasError,\n label,\n required,\n isPopoverOpen,\n maxLength,\n handlePaste,\n onPaste,\n ...props\n },\n ref,\n ) => {\n const [hasCopied, setHasCopied] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <div className={twMerge(\"group relative\")}>\n <ValueTransformer transformers={transformers}>\n <CommandPrimitive.Input asChild>\n <Input\n id={id}\n name={name}\n value={value}\n className={twMerge(\"pr-9\", className)}\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n onClick={(e) => {\n const input = e.target as HTMLInputElement;\n if (\n !(isLoading || haveFetchError) &&\n !selectedOption &&\n input.value !== \"\"\n ) {\n handleOpenChange?.(true);\n }\n onClick?.(e);\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n const isOptionsRelatedKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"Enter\",\n ].includes(e.key);\n\n if (e.key === \"Enter\" && isPopoverOpen && optionsLength === 0) {\n handleOpenChange?.(false);\n e.preventDefault();\n return;\n }\n if (\n !(isOptionsRelatedKey && isPopoverOpen && optionsLength > 0)\n ) {\n e.stopPropagation();\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement;\n if (!input.contains(document.activeElement)) {\n // wait for the next tick to ensure the focus occurs first\n requestAnimationFrame(() => {\n input.select();\n });\n }\n onMouseDown?.(e);\n }}\n onPaste={(e) => {\n handlePaste?.(e);\n onPaste?.(e);\n }}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n aria-expanded={isPopoverOpen}\n maxLength={maxLength}\n {...props}\n ref={ref}\n />\n </CommandPrimitive.Input>\n </ValueTransformer>\n <div\n className={twMerge(\n \"absolute top-1/2 right-3 flex size-4 -translate-y-1/2 items-center\",\n !isLoading &&\n !haveFetchError &&\n !selectedOption &&\n \"pointer-events-none\",\n )}\n >\n {isLoading && (\n <Icon\n name=\"Reload\"\n size={16}\n className={twMerge(\"animate-spin text-muted-foreground\")}\n />\n )}\n {haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Network error!\">\n <Icon\n name=\"Error\"\n size={16}\n className={twMerge(\"text-destructive\")}\n />\n </Tooltip>\n </TooltipProvider>\n )}\n {selectedOption && !isLoading && !haveFetchError && (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={() => {\n navigator.clipboard\n .writeText(selectedOption.value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error) => {\n console.error(\"Failed to copy value:\", error);\n });\n }}\n className={twMerge(\n \"focus-visible:outline-none [&_svg]:pointer-events-none\",\n hasHover &&\n \"opacity-0 transition-opacity duration-500 group-hover:opacity-100\",\n )}\n >\n <Icon\n name=\"Copy\"\n size={16}\n className={twMerge(\"text-muted-foreground\")}\n />\n </button>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n },\n);\n\nexport { IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps };\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../../id-autocomplete-list-option-CB5B07Hi.js";
2
- export { IdAutocompleteListOption, IdAutocompleteListOptionProps };
1
+ import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../../id-autocomplete-list-option-MsqKeLXD.js";
2
+ export { IdAutocompleteListOption, type IdAutocompleteListOptionProps };
3
+ export {};
@@ -1,4 +1,4 @@
1
- import { t as Icon } from "../../../icon-C4QOpsdI.js";
1
+ import { t as Icon } from "../../../icon-01W_S_9A.js";
2
2
  import React from "react";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -9,7 +9,7 @@ const IconRenderer = ({ customIcon, asPlaceholder }) => {
9
9
  size: 24,
10
10
  className: twMerge("shrink-0", asPlaceholder ? "text-muted-foreground" : "text-foreground")
11
11
  });
12
- if (/* @__PURE__ */ React.isValidElement(customIcon)) return /* @__PURE__ */ jsx("div", {
12
+ if (/*#__PURE__*/ React.isValidElement(customIcon)) return /* @__PURE__ */ jsx("div", {
13
13
  className: "size-6 shrink-0 overflow-hidden",
14
14
  children: customIcon
15
15
  });