@powerhousedao/design-system 6.2.3-dev.4 → 6.2.3-dev.41

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":"id-autocomplete-list-option.js","names":["Icon","twMerge","React","IconRenderer","customIcon","asPlaceholder","isValidElement","ReloadButton","isLoadingSelectedOption","handleFetchSelectedOption","isFetchSelectedOptionSync","value","IdAutocompleteListOption","variant","icon","title","path","description","showValue","className","placeholderIcon","extraProps","renderWithValue","renderWithValueTitleAndDescription","showDescription","url","text","agentType"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list-option.tsx"],"sourcesContent":["import type { IconName } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport React from \"react\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\nconst IconRenderer: React.FC<{\n customIcon?: IconName | React.ReactElement;\n asPlaceholder?: boolean;\n}> = ({ customIcon, asPlaceholder }) => {\n if (typeof customIcon === \"string\") {\n return (\n <Icon\n name={customIcon}\n size={24}\n className={twMerge(\n \"shrink-0\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n />\n );\n }\n if (React.isValidElement(customIcon)) {\n return <div className=\"size-6 shrink-0 overflow-hidden\">{customIcon}</div>;\n }\n return null;\n};\n\nconst ReloadButton: React.FC<{\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n value: string;\n}> = ({\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n value,\n}) => (\n <div>\n <button\n type=\"button\"\n disabled={isLoadingSelectedOption || isFetchSelectedOptionSync}\n onClick={() => {\n if (!isLoadingSelectedOption && !isFetchSelectedOptionSync) {\n handleFetchSelectedOption(value);\n }\n }}\n className={twMerge(\n \"mt-0.5 focus-visible:outline-none\",\n \"disabled:disabled-effect [&_svg]:pointer-events-none\",\n )}\n aria-label={\n isLoadingSelectedOption\n ? \"Loading\"\n : isFetchSelectedOptionSync\n ? \"Success\"\n : \"Reload\"\n }\n >\n <Icon\n name={isFetchSelectedOptionSync ? \"Checkmark\" : \"Reload\"}\n size={16}\n className={twMerge(\n \"text-muted-foreground\",\n isLoadingSelectedOption && \"animate-spin\",\n isFetchSelectedOptionSync && \"animate-fade-in duration-500\",\n )}\n />\n </button>\n </div>\n);\n\ntype IdAutocompleteListOptionProps = {\n variant: IdAutocompleteProps[\"variant\"];\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n className?: string;\n placeholderIcon?: IconName | React.ReactElement;\n} & IdAutocompleteOption<Record<string, unknown>>;\n\nconst IdAutocompleteListOption: React.FC<IdAutocompleteListOptionProps> = ({\n variant = \"withValue\",\n icon,\n title = \"Title not available\",\n path = \"Path not available\",\n value,\n description = \"Description not available\",\n asPlaceholder,\n showValue = true,\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n className,\n placeholderIcon = \"PowerhouseLogoSmall\",\n ...extraProps\n}) => {\n const renderWithValue = () => (\n <div className={twMerge(\"flex w-full items-center\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-muted-foreground\",\n )}\n >\n {value}\n </span>\n </div>\n );\n\n const renderWithValueTitleAndDescription = (showDescription = true) => (\n <div className={twMerge(\"flex w-full flex-col gap-1\")}>\n <div className={twMerge(\"flex gap-2\")}>\n <IconRenderer\n customIcon={asPlaceholder ? placeholderIcon : icon}\n asPlaceholder={asPlaceholder}\n />\n <div className={twMerge(\"flex min-w-0 grow flex-col gap-[-2px]\")}>\n <span\n className={twMerge(\n \"truncate text-sm/5 font-bold\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {title}\n </span>\n {!showValue && typeof path === \"object\" ? (\n <a\n href={path.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={twMerge(\n \"truncate text-xs/5 text-info hover:underline focus-visible:outline-none\",\n )}\n >\n {path.text}\n </a>\n ) : (\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder\n ? \"text-muted-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {typeof path === \"object\" ? path.text : path}\n </span>\n )}\n </div>\n {asPlaceholder === false && handleFetchSelectedOption && (\n <ReloadButton\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={handleFetchSelectedOption}\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n value={value}\n />\n )}\n </div>\n {showValue && (\n <div className={twMerge(\"flex max-w-full items-center\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-muted-foreground\",\n )}\n >\n {value}\n </span>\n </div>\n )}\n {showDescription && (\n <div className={twMerge(\"flex flex-col\")}>\n <p\n className={twMerge(\n \"line-clamp-2 text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {description}\n </p>\n </div>\n )}\n {showDescription &&\n \"agentType\" in extraProps &&\n typeof extraProps.agentType === \"string\" && (\n <div className={twMerge(\"flex max-w-full items-center justify-end\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder\n ? \"text-muted-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {extraProps.agentType}\n </span>\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={twMerge(\n \"w-full max-w-full rounded-md bg-transparent px-3 pb-2\",\n variant === \"withValue\" ? \"pt-2\" : \"pt-3\",\n className,\n )}\n >\n {variant === \"withValue\" && renderWithValue()}\n {variant === \"withValueAndTitle\" &&\n renderWithValueTitleAndDescription(false)}\n {variant === \"withValueTitleAndDescription\" &&\n renderWithValueTitleAndDescription()}\n </div>\n );\n};\n\nexport { IdAutocompleteListOption, type IdAutocompleteListOptionProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"id-autocomplete-list-option.js","names":["Icon","twMerge","React","IconRenderer","customIcon","asPlaceholder","isValidElement","ReloadButton","isLoadingSelectedOption","handleFetchSelectedOption","isFetchSelectedOptionSync","value","IdAutocompleteListOption","variant","icon","title","path","description","showValue","className","placeholderIcon","extraProps","renderWithValue","renderWithValueTitleAndDescription","showDescription","url","text","agentType"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list-option.tsx"],"sourcesContent":["import type { IconName } from \"#design-system\";\nimport { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport React from \"react\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\nconst IconRenderer: React.FC<{\n customIcon?: IconName | React.ReactElement;\n asPlaceholder?: boolean;\n}> = ({ customIcon, asPlaceholder }) => {\n if (typeof customIcon === \"string\") {\n return (\n <Icon\n name={customIcon}\n size={24}\n className={twMerge(\n \"shrink-0\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n />\n );\n }\n if (React.isValidElement(customIcon)) {\n return <div className=\"size-6 shrink-0 overflow-hidden\">{customIcon}</div>;\n }\n return null;\n};\n\nconst ReloadButton: React.FC<{\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n value: string;\n}> = ({\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n value,\n}) => (\n <div>\n <button\n type=\"button\"\n disabled={isLoadingSelectedOption || isFetchSelectedOptionSync}\n onClick={() => {\n if (!isLoadingSelectedOption && !isFetchSelectedOptionSync) {\n handleFetchSelectedOption(value);\n }\n }}\n className={twMerge(\n \"mt-0.5 focus-visible:outline-none\",\n \"disabled:disabled-effect [&_svg]:pointer-events-none\",\n )}\n aria-label={\n isLoadingSelectedOption\n ? \"Loading\"\n : isFetchSelectedOptionSync\n ? \"Success\"\n : \"Reload\"\n }\n >\n <Icon\n name={isFetchSelectedOptionSync ? \"Checkmark\" : \"Reload\"}\n size={16}\n className={twMerge(\n \"text-muted-foreground\",\n isLoadingSelectedOption && \"animate-spin\",\n isFetchSelectedOptionSync && \"animate-fade-in duration-500\",\n )}\n />\n </button>\n </div>\n);\n\ntype IdAutocompleteListOptionProps = {\n variant: IdAutocompleteProps[\"variant\"];\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n isFetchSelectedOptionSync?: boolean;\n className?: string;\n placeholderIcon?: IconName | React.ReactElement;\n} & IdAutocompleteOption<Record<string, unknown>>;\n\nconst IdAutocompleteListOption: React.FC<IdAutocompleteListOptionProps> = ({\n variant = \"withValue\",\n icon,\n title = \"Title not available\",\n path = \"Path not available\",\n value,\n description = \"Description not available\",\n asPlaceholder,\n showValue = true,\n isLoadingSelectedOption,\n handleFetchSelectedOption,\n isFetchSelectedOptionSync,\n className,\n placeholderIcon = \"PowerhouseLogoSmall\",\n ...extraProps\n}) => {\n const renderWithValue = () => (\n <div className={twMerge(\"flex w-full items-center\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-muted-foreground\",\n )}\n >\n {value}\n </span>\n </div>\n );\n\n const renderWithValueTitleAndDescription = (showDescription = true) => (\n <div className={twMerge(\"flex w-full flex-col gap-1\")}>\n <div className={twMerge(\"flex gap-2\")}>\n <IconRenderer\n customIcon={asPlaceholder ? placeholderIcon : icon}\n asPlaceholder={asPlaceholder}\n />\n <div className={twMerge(\"flex min-w-0 grow flex-col gap-[-2px]\")}>\n <span\n className={twMerge(\n \"truncate text-sm/5 font-bold\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {title}\n </span>\n {!showValue && typeof path === \"object\" ? (\n <a\n href={path.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={twMerge(\n \"truncate text-xs/5 text-info hover:underline focus-visible:outline-none\",\n )}\n >\n {path.text}\n </a>\n ) : (\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder\n ? \"text-muted-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {typeof path === \"object\" ? path.text : path}\n </span>\n )}\n </div>\n {asPlaceholder === false && handleFetchSelectedOption && (\n <ReloadButton\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={handleFetchSelectedOption}\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n value={value}\n />\n )}\n </div>\n {showValue && (\n <div className={twMerge(\"flex max-w-full items-center\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-muted-foreground\",\n )}\n >\n {value}\n </span>\n </div>\n )}\n {showDescription && (\n <div className={twMerge(\"flex flex-col\")}>\n <p\n className={twMerge(\n \"line-clamp-2 text-xs/5\",\n asPlaceholder ? \"text-muted-foreground\" : \"text-foreground\",\n )}\n >\n {description}\n </p>\n </div>\n )}\n {showDescription &&\n \"agentType\" in extraProps &&\n typeof extraProps.agentType === \"string\" && (\n <div className={twMerge(\"flex max-w-full items-center justify-end\")}>\n <span\n className={twMerge(\n \"truncate text-xs/5\",\n asPlaceholder\n ? \"text-muted-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {extraProps.agentType}\n </span>\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={twMerge(\n \"w-full max-w-full rounded-md bg-transparent px-3 pb-2\",\n variant === \"withValue\" ? \"pt-2\" : \"pt-3\",\n className,\n )}\n >\n {variant === \"withValue\" && renderWithValue()}\n {variant === \"withValueAndTitle\" &&\n renderWithValueTitleAndDescription(false)}\n {variant === \"withValueTitleAndDescription\" &&\n renderWithValueTitleAndDescription()}\n </div>\n );\n};\n\nexport { IdAutocompleteListOption, type IdAutocompleteListOptionProps };\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../../id-autocomplete-list-EzLpF23C.js";
2
- export { IdAutocompleteList, IdAutocompleteListProps };
1
+ import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../../id-autocomplete-list-ChQsiJDg.js";
2
+ export { IdAutocompleteList, type IdAutocompleteListProps };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"id-autocomplete-list.js","names":["twMerge","useCommandState","React","useEffect","CommandEmpty","CommandGroup","CommandItem","CommandList","IdAutocompleteListOption","IdAutocompleteList","variant","commandListRef","selectedValue","options","toggleOption","renderOption","previewPlaceholder","cmdkSearch","state","search","defaultOption","value","title","path","description","current","scrollTo","top","behavior","asPlaceholder","showValue","className","icon","map","opt","isSelected"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { useCommandState } from \"cmdk\";\nimport React, { useEffect } from \"react\";\nimport {\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"../command/command.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface IdAutocompleteListProps {\n variant: IdAutocompleteProps[\"variant\"];\n commandListRef?: React.RefObject<HTMLDivElement | null>;\n selectedValue?: string;\n options?: IdAutocompleteOption[];\n toggleOption?: (value: string) => void;\n renderOption?: (\n option: IdAutocompleteOption,\n displayProps?: {\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n className?: string;\n },\n ) => React.ReactNode;\n previewPlaceholder?: IdAutocompleteOption;\n}\n\nconst IdAutocompleteList: React.FC<IdAutocompleteListProps> = ({\n variant,\n commandListRef,\n selectedValue,\n options = [],\n toggleOption,\n renderOption,\n previewPlaceholder,\n}) => {\n const cmdkSearch = useCommandState((state) => state.search);\n const defaultOption: IdAutocompleteOption = previewPlaceholder || {\n value: \"value not available\",\n title: \"Title not available\",\n path: \"Path not available\",\n description: \"Description not available\",\n };\n\n useEffect(() => {\n commandListRef?.current?.scrollTo({ top: 0, behavior: \"instant\" });\n }, [commandListRef, cmdkSearch]);\n\n return (\n <CommandList ref={commandListRef}>\n <CommandEmpty className={twMerge(\"h-full p-1\")}>\n {renderOption ? (\n renderOption(defaultOption, {\n asPlaceholder: true,\n showValue: true,\n className: twMerge(\"pb-0\"),\n })\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={defaultOption.icon}\n title={defaultOption.title}\n path={defaultOption.path}\n value={defaultOption.value}\n description={defaultOption.description}\n asPlaceholder\n className={twMerge(\"pb-0\")}\n />\n )}\n </CommandEmpty>\n <CommandGroup className={twMerge(\"px-1\")}>\n {options.map((opt) => {\n const isSelected = selectedValue === opt.value;\n\n return (\n <CommandItem\n key={opt.value}\n value={opt.value}\n onSelect={() => toggleOption?.(opt.value)}\n className={twMerge(\n \"h-full cursor-pointer border-y-0 p-0\",\n \"data-[selected=true]:bg-accent\",\n )}\n role=\"option\"\n aria-selected={isSelected}\n >\n {renderOption ? (\n renderOption(opt, {\n asPlaceholder: false,\n showValue: true,\n })\n ) : (\n <IdAutocompleteListOption variant={variant} {...opt} />\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n );\n};\n\nexport { IdAutocompleteList, type IdAutocompleteListProps };\n"],"mappings":";;;;;;;AA+BA,MAAMS,sBAAyD,EAC7DC,SACAC,gBACAC,eACAC,UAAU,EAAE,EACZC,cACAC,cACAC,yBACI;CACJ,MAAMC,aAAahB,iBAAiBiB,UAAUA,MAAMC,OAAO;CAC3D,MAAMC,gBAAsCJ,sBAAsB;EAChEK,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,aAAa;EACd;AAEDrB,iBAAgB;AACdQ,kBAAgBc,SAASC,SAAS;GAAEC,KAAK;GAAGC,UAAU;GAAW,CAAC;IACjE,CAACjB,gBAAgBM,WAAW,CAAC;AAEhC,QACE,qBAAC,aAAD;EAAa,KAAKN;YAAlB,CACE,oBAAC,cAAD;GAAc,WAAWX,QAAQ,aAAa;aAC3Ce,eACCA,aAAaK,eAAe;IAC1BS,eAAe;IACfC,WAAW;IACXC,WAAW/B,QAAQ,OAAM;IAC1B,CAAC,GAEF,oBAAC,0BAAD;IACWU;IACT,MAAMU,cAAcY;IACpB,OAAOZ,cAAcE;IACrB,MAAMF,cAAcG;IACpB,OAAOH,cAAcC;IACrB,aAAaD,cAAcI;IAC3B,eAAA;IACA,WAAWxB,QAAQ,OAAO;IAE7B,CAAA;GACW,CAAA,EACd,oBAAC,cAAD;GAAc,WAAWA,QAAQ,OAAO;aACrCa,QAAQoB,KAAKC,QAAQ;IACpB,MAAMC,aAAavB,kBAAkBsB,IAAIb;AAEzC,WACE,oBAAC,aAAD;KAEE,OAAOa,IAAIb;KACX,gBAAgBP,eAAeoB,IAAIb,MAAM;KACzC,WAAWrB,QACT,wCACA,iCACD;KACD,MAAK;KACL,iBAAemC;eAEdpB,eACCA,aAAamB,KAAK;MAChBL,eAAe;MACfC,WAAW;MACZ,CAAC,GAEF,oBAAC,0BAAD;MAAmCpB;MAAS,GAAIwB;MACjD,CAAA;KACW,EAlBPA,IAAIb,MAkBG;KAEhB;GACU,CAAA,CACF"}
1
+ {"version":3,"file":"id-autocomplete-list.js","names":["twMerge","useCommandState","React","useEffect","CommandEmpty","CommandGroup","CommandItem","CommandList","IdAutocompleteListOption","IdAutocompleteList","variant","commandListRef","selectedValue","options","toggleOption","renderOption","previewPlaceholder","cmdkSearch","state","search","defaultOption","value","title","path","description","current","scrollTo","top","behavior","asPlaceholder","showValue","className","icon","map","opt","isSelected"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete-list.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { useCommandState } from \"cmdk\";\nimport React, { useEffect } from \"react\";\nimport {\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandList,\n} from \"../command/command.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface IdAutocompleteListProps {\n variant: IdAutocompleteProps[\"variant\"];\n commandListRef?: React.RefObject<HTMLDivElement | null>;\n selectedValue?: string;\n options?: IdAutocompleteOption[];\n toggleOption?: (value: string) => void;\n renderOption?: (\n option: IdAutocompleteOption,\n displayProps?: {\n asPlaceholder?: boolean;\n showValue?: boolean;\n isLoadingSelectedOption?: boolean;\n handleFetchSelectedOption?: (value: string) => void;\n className?: string;\n },\n ) => React.ReactNode;\n previewPlaceholder?: IdAutocompleteOption;\n}\n\nconst IdAutocompleteList: React.FC<IdAutocompleteListProps> = ({\n variant,\n commandListRef,\n selectedValue,\n options = [],\n toggleOption,\n renderOption,\n previewPlaceholder,\n}) => {\n const cmdkSearch = useCommandState((state) => state.search);\n const defaultOption: IdAutocompleteOption = previewPlaceholder || {\n value: \"value not available\",\n title: \"Title not available\",\n path: \"Path not available\",\n description: \"Description not available\",\n };\n\n useEffect(() => {\n commandListRef?.current?.scrollTo({ top: 0, behavior: \"instant\" });\n }, [commandListRef, cmdkSearch]);\n\n return (\n <CommandList ref={commandListRef}>\n <CommandEmpty className={twMerge(\"h-full p-1\")}>\n {renderOption ? (\n renderOption(defaultOption, {\n asPlaceholder: true,\n showValue: true,\n className: twMerge(\"pb-0\"),\n })\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={defaultOption.icon}\n title={defaultOption.title}\n path={defaultOption.path}\n value={defaultOption.value}\n description={defaultOption.description}\n asPlaceholder\n className={twMerge(\"pb-0\")}\n />\n )}\n </CommandEmpty>\n <CommandGroup className={twMerge(\"px-1\")}>\n {options.map((opt) => {\n const isSelected = selectedValue === opt.value;\n\n return (\n <CommandItem\n key={opt.value}\n value={opt.value}\n onSelect={() => toggleOption?.(opt.value)}\n className={twMerge(\n \"h-full cursor-pointer border-y-0 p-0\",\n \"data-[selected=true]:bg-accent\",\n )}\n role=\"option\"\n aria-selected={isSelected}\n >\n {renderOption ? (\n renderOption(opt, {\n asPlaceholder: false,\n showValue: true,\n })\n ) : (\n <IdAutocompleteListOption variant={variant} {...opt} />\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n );\n};\n\nexport { IdAutocompleteList, type IdAutocompleteListProps };\n"],"mappings":";;;;;;;AA+BA,MAAMS,sBAAyD,EAC7DC,SACAC,gBACAC,eACAC,UAAU,CAAA,GACVC,cACAC,cACAC,yBACI;CACJ,MAAMC,aAAahB,iBAAiBiB,UAAUA,MAAMC,MAAM;CAC1D,MAAMC,gBAAsCJ,sBAAsB;EAChEK,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,aAAa;CACf;CAEArB,gBAAgB;EACdQ,gBAAgBc,SAASC,SAAS;GAAEC,KAAK;GAAGC,UAAU;EAAU,CAAC;CACnE,GAAG,CAACjB,gBAAgBM,UAAU,CAAC;CAE/B,OACE,qBAAC,aAAD;EAAa,KAAKN;EAAlB,UAAA,CACE,oBAAC,cAAD;GAAc,WAAWX,QAAQ,YAAY;GAC1Ce,UAAAA,eACCA,aAAaK,eAAe;IAC1BS,eAAe;IACfC,WAAW;IACXC,WAAW/B,QAAQ,MAAM;GAC3B,CAAC,IAED,oBAAC,0BAAD;IACWU;IACT,MAAMU,cAAcY;IACpB,OAAOZ,cAAcE;IACrB,MAAMF,cAAcG;IACpB,OAAOH,cAAcC;IACrB,aAAaD,cAAcI;IAC3B,eAAA;IACA,WAAWxB,QAAQ,MAAM;GAAE,CAAA;EAGnB,CAAA,GACd,oBAAC,cAAD;GAAc,WAAWA,QAAQ,MAAM;GACpCa,UAAAA,QAAQoB,KAAKC,QAAQ;IACpB,MAAMC,aAAavB,kBAAkBsB,IAAIb;IAEzC,OACE,oBAAC,aAAD;KAEE,OAAOa,IAAIb;KACX,gBAAgBP,eAAeoB,IAAIb,KAAK;KACxC,WAAWrB,QACT,wCACA,gCACF;KACA,MAAK;KACL,iBAAemC;KAEdpB,UAAAA,eACCA,aAAamB,KAAK;MAChBL,eAAe;MACfC,WAAW;KACb,CAAC,IAED,oBAAC,0BAAD;MAAmCpB;MAAS,GAAIwB;KAAI,CAAA;IAE3C,GAlBNA,IAAIb,KAkBE;GAEjB,CAAC;EACW,CAAA,CACH;;AAEjB"}
@@ -1,2 +1,3 @@
1
- import { t as IdAutocomplete } from "../../../id-autocomplete-C-hwriS5.js";
2
- export { IdAutocomplete };
1
+ import { t as IdAutocomplete } from "../../../id-autocomplete-CHvGhffo.js";
2
+ export { IdAutocomplete };
3
+ export {};
@@ -15,7 +15,7 @@ import { twMerge } from "tailwind-merge";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  import { Command } from "cmdk";
17
17
  //#region src/ui/components/id-autocomplete/id-autocomplete.tsx
18
- const IdAutocomplete = /* @__PURE__ */ React.forwardRef(({ id: idProp, name, className, label, description, value, defaultValue, disabled, placeholder, required, errors, warnings, onChange, onBlur, onClick, onKeyDown, onMouseDown, autoComplete = true, variant = "withValue", maxLength, fetchOptionsCallback, fetchSelectedOptionCallback, isOpenByDefault, initialOptions, renderOption, previewPlaceholder, ...props }, ref) => {
18
+ const IdAutocomplete = /*#__PURE__*/ React.forwardRef(({ id: idProp, name, className, label, description, value, defaultValue, disabled, placeholder, required, errors, warnings, onChange, onBlur, onClick, onKeyDown, onMouseDown, autoComplete = true, variant = "withValue", maxLength, fetchOptionsCallback, fetchSelectedOptionCallback, isOpenByDefault, initialOptions, renderOption, previewPlaceholder, ...props }, ref) => {
19
19
  const prefix = useId();
20
20
  const id = idProp ?? `${prefix}-id-autocomplete`;
21
21
  const inputRef = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"id-autocomplete.js","names":["twMerge","sharedValueTransformers","Command","React","useId","useMemo","useRef","FormDescription","FormGroup","FormLabel","FormMessageList","Input","Popover","PopoverAnchor","PopoverContent","ValueTransformer","IdAutocompleteInputContainer","IdAutocompleteListOption","IdAutocompleteList","useIdAutocomplete","IdAutocomplete","forwardRef","id","idProp","name","className","label","description","value","defaultValue","disabled","placeholder","required","errors","warnings","onChange","onBlur","onClick","onKeyDown","onMouseDown","autoComplete","variant","maxLength","fetchOptionsCallback","fetchSelectedOptionCallback","isOpenByDefault","initialOptions","renderOption","previewPlaceholder","props","ref","prefix","inputRef","mergedRef","node","current","hasWarning","Array","isArray","length","hasError","selectedValue","selectedOption","isPopoverOpen","commandListRef","options","isLoading","isLoadingSelectedOption","haveFetchError","commandValue","isFetchSelectedOptionSync","toggleOption","handleOpenChange","onTriggerBlur","handleChange","handleCommandValue","handleFetchSelectedOption","handlePaste","fetchOptions","fetchSelectedOption","handleOptionSelection","optionValue","focus","asCard","transformers","trimOnBlur","trimOnEnter","e","preventDefault","target","control","undefined","asPlaceholder","showValue","icon","title","path","Element","displayName"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command } from \"cmdk\";\nimport React, { useId, useMemo, useRef } from \"react\";\nimport { FormDescription } from \"../form-description/form-description.js\";\nimport { FormGroup } from \"../form-group/form-group.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport { IdAutocompleteInputContainer } from \"./id-autocomplete-input-container.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport { IdAutocompleteList } from \"./id-autocomplete-list.js\";\nimport type { IdAutocompleteProps } from \"./types.js\";\nimport { useIdAutocomplete } from \"./use-id-autocomplete.js\";\n\nconst IdAutocomplete = React.forwardRef<HTMLInputElement, IdAutocompleteProps>(\n (\n {\n id: idProp,\n name,\n className,\n label,\n description,\n value,\n defaultValue,\n disabled,\n placeholder,\n required,\n errors,\n warnings,\n onChange,\n onBlur,\n onClick,\n onKeyDown,\n onMouseDown,\n autoComplete = true,\n variant = \"withValue\",\n maxLength,\n fetchOptionsCallback,\n fetchSelectedOptionCallback,\n isOpenByDefault, // to be used only in stories\n initialOptions,\n renderOption,\n previewPlaceholder,\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = idProp ?? `${prefix}-id-autocomplete`;\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const mergedRef = (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const hasWarning = Array.isArray(warnings) && warnings.length > 0;\n const hasError = Array.isArray(errors) && errors.length > 0;\n\n const {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n } = useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions: fetchOptionsCallback,\n fetchSelectedOption: fetchSelectedOptionCallback,\n });\n\n const handleOptionSelection = (optionValue: string) => {\n toggleOption(optionValue);\n inputRef.current?.focus();\n };\n\n const asCard =\n variant === \"withValueAndTitle\" ||\n variant === \"withValueTitleAndDescription\";\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <FormGroup>\n {!!label && (\n <FormLabel\n htmlFor={id}\n disabled={disabled}\n hasError={hasError}\n required={required}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n {autoComplete && fetchOptionsCallback ? (\n <Popover open={isPopoverOpen} onOpenChange={handleOpenChange}>\n <Command\n shouldFilter={false}\n value={commandValue}\n onValueChange={handleCommandValue}\n className={twMerge(\"bg-muted\")}\n >\n <PopoverAnchor asChild={true}>\n <IdAutocompleteInputContainer\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n isLoading={isLoading}\n haveFetchError={haveFetchError}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onTriggerBlur}\n onClick={onClick}\n selectedOption={selectedOption}\n optionsLength={options.length}\n handleOpenChange={handleOpenChange}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n hasError={hasError}\n label={label}\n required={required}\n isPopoverOpen={isPopoverOpen}\n maxLength={maxLength}\n handlePaste={handlePaste}\n {...props}\n ref={mergedRef}\n />\n </PopoverAnchor>\n {asCard &&\n (renderOption ? (\n renderOption(\n selectedOption === undefined && previewPlaceholder\n ? {\n ...previewPlaceholder,\n }\n : {\n ...selectedOption,\n value: selectedOption?.value ?? \"\",\n },\n {\n asPlaceholder: selectedOption === undefined,\n showValue: false,\n isLoadingSelectedOption,\n handleFetchSelectedOption: fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined,\n isFetchSelectedOptionSync,\n className: twMerge(\"rounded-t-none pt-2\"),\n },\n )\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={selectedOption?.icon ?? previewPlaceholder?.icon}\n title={selectedOption?.title ?? previewPlaceholder?.title}\n path={selectedOption?.path ?? previewPlaceholder?.path}\n value={\n selectedOption?.value ?? previewPlaceholder?.value ?? \"\"\n }\n description={\n selectedOption?.description ??\n previewPlaceholder?.description\n }\n asPlaceholder={selectedOption === undefined}\n showValue={false}\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={\n fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined\n }\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n className={twMerge(\"rounded-t-none pt-2\")}\n />\n ))}\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (e.target instanceof Element && e.target.id === id) {\n e.preventDefault();\n }\n }}\n >\n <IdAutocompleteList\n variant={variant}\n commandListRef={commandListRef}\n selectedValue={selectedValue}\n options={options}\n toggleOption={handleOptionSelection}\n renderOption={renderOption}\n previewPlaceholder={previewPlaceholder}\n />\n </PopoverContent>\n </Command>\n </Popover>\n ) : (\n <ValueTransformer transformers={transformers}>\n <Input\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onClick={onClick}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n maxLength={maxLength}\n {...props}\n ref={mergedRef}\n />\n </ValueTransformer>\n )}\n {!!description && <FormDescription>{description}</FormDescription>}\n {hasWarning && <FormMessageList messages={warnings} type=\"warning\" />}\n {hasError && <FormMessageList messages={errors} type=\"error\" />}\n </FormGroup>\n );\n },\n);\n\nIdAutocomplete.displayName = \"IdAutocomplete\";\n\nexport { IdAutocomplete };\n"],"mappings":"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"}
1
+ {"version":3,"file":"id-autocomplete.js","names":["twMerge","sharedValueTransformers","Command","React","useId","useMemo","useRef","FormDescription","FormGroup","FormLabel","FormMessageList","Input","Popover","PopoverAnchor","PopoverContent","ValueTransformer","IdAutocompleteInputContainer","IdAutocompleteListOption","IdAutocompleteList","useIdAutocomplete","IdAutocomplete","forwardRef","id","idProp","name","className","label","description","value","defaultValue","disabled","placeholder","required","errors","warnings","onChange","onBlur","onClick","onKeyDown","onMouseDown","autoComplete","variant","maxLength","fetchOptionsCallback","fetchSelectedOptionCallback","isOpenByDefault","initialOptions","renderOption","previewPlaceholder","props","ref","prefix","inputRef","mergedRef","node","current","hasWarning","Array","isArray","length","hasError","selectedValue","selectedOption","isPopoverOpen","commandListRef","options","isLoading","isLoadingSelectedOption","haveFetchError","commandValue","isFetchSelectedOptionSync","toggleOption","handleOpenChange","onTriggerBlur","handleChange","handleCommandValue","handleFetchSelectedOption","handlePaste","fetchOptions","fetchSelectedOption","handleOptionSelection","optionValue","focus","asCard","transformers","trimOnBlur","trimOnEnter","e","preventDefault","target","control","undefined","asPlaceholder","showValue","icon","title","path","Element","displayName"],"sources":["../../../../src/ui/components/id-autocomplete/id-autocomplete.tsx"],"sourcesContent":["import type { TransformerType } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { sharedValueTransformers } from \"#design-system/ui/lib\";\nimport { Command } from \"cmdk\";\nimport React, { useId, useMemo, useRef } from \"react\";\nimport { FormDescription } from \"../form-description/form-description.js\";\nimport { FormGroup } from \"../form-group/form-group.js\";\nimport { FormLabel } from \"../form-label/form-label.js\";\nimport { FormMessageList } from \"../form-message/message-list.js\";\nimport { Input } from \"../input/input.js\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"../popover/popover.js\";\nimport { ValueTransformer } from \"../value-transformer/value-transformer.js\";\nimport { IdAutocompleteInputContainer } from \"./id-autocomplete-input-container.js\";\nimport { IdAutocompleteListOption } from \"./id-autocomplete-list-option.js\";\nimport { IdAutocompleteList } from \"./id-autocomplete-list.js\";\nimport type { IdAutocompleteProps } from \"./types.js\";\nimport { useIdAutocomplete } from \"./use-id-autocomplete.js\";\n\nconst IdAutocomplete = React.forwardRef<HTMLInputElement, IdAutocompleteProps>(\n (\n {\n id: idProp,\n name,\n className,\n label,\n description,\n value,\n defaultValue,\n disabled,\n placeholder,\n required,\n errors,\n warnings,\n onChange,\n onBlur,\n onClick,\n onKeyDown,\n onMouseDown,\n autoComplete = true,\n variant = \"withValue\",\n maxLength,\n fetchOptionsCallback,\n fetchSelectedOptionCallback,\n isOpenByDefault, // to be used only in stories\n initialOptions,\n renderOption,\n previewPlaceholder,\n ...props\n },\n ref,\n ) => {\n const prefix = useId();\n const id = idProp ?? `${prefix}-id-autocomplete`;\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const mergedRef = (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const hasWarning = Array.isArray(warnings) && warnings.length > 0;\n const hasError = Array.isArray(errors) && errors.length > 0;\n\n const {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n } = useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions: fetchOptionsCallback,\n fetchSelectedOption: fetchSelectedOptionCallback,\n });\n\n const handleOptionSelection = (optionValue: string) => {\n toggleOption(optionValue);\n inputRef.current?.focus();\n };\n\n const asCard =\n variant === \"withValueAndTitle\" ||\n variant === \"withValueTitleAndDescription\";\n\n const transformers: TransformerType = useMemo(\n () => [\n sharedValueTransformers.trimOnBlur(),\n sharedValueTransformers.trimOnEnter(),\n ],\n [],\n );\n\n return (\n <FormGroup>\n {!!label && (\n <FormLabel\n htmlFor={id}\n disabled={disabled}\n hasError={hasError}\n required={required}\n onClick={(e) => {\n e.preventDefault();\n (e.target as HTMLLabelElement).control?.focus();\n }}\n >\n {label}\n </FormLabel>\n )}\n {autoComplete && fetchOptionsCallback ? (\n <Popover open={isPopoverOpen} onOpenChange={handleOpenChange}>\n <Command\n shouldFilter={false}\n value={commandValue}\n onValueChange={handleCommandValue}\n className={twMerge(\"bg-muted\")}\n >\n <PopoverAnchor asChild={true}>\n <IdAutocompleteInputContainer\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n isLoading={isLoading}\n haveFetchError={haveFetchError}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onTriggerBlur}\n onClick={onClick}\n selectedOption={selectedOption}\n optionsLength={options.length}\n handleOpenChange={handleOpenChange}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n hasError={hasError}\n label={label}\n required={required}\n isPopoverOpen={isPopoverOpen}\n maxLength={maxLength}\n handlePaste={handlePaste}\n {...props}\n ref={mergedRef}\n />\n </PopoverAnchor>\n {asCard &&\n (renderOption ? (\n renderOption(\n selectedOption === undefined && previewPlaceholder\n ? {\n ...previewPlaceholder,\n }\n : {\n ...selectedOption,\n value: selectedOption?.value ?? \"\",\n },\n {\n asPlaceholder: selectedOption === undefined,\n showValue: false,\n isLoadingSelectedOption,\n handleFetchSelectedOption: fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined,\n isFetchSelectedOptionSync,\n className: twMerge(\"rounded-t-none pt-2\"),\n },\n )\n ) : (\n <IdAutocompleteListOption\n variant={variant}\n icon={selectedOption?.icon ?? previewPlaceholder?.icon}\n title={selectedOption?.title ?? previewPlaceholder?.title}\n path={selectedOption?.path ?? previewPlaceholder?.path}\n value={\n selectedOption?.value ?? previewPlaceholder?.value ?? \"\"\n }\n description={\n selectedOption?.description ??\n previewPlaceholder?.description\n }\n asPlaceholder={selectedOption === undefined}\n showValue={false}\n isLoadingSelectedOption={isLoadingSelectedOption}\n handleFetchSelectedOption={\n fetchSelectedOptionCallback\n ? handleFetchSelectedOption\n : undefined\n }\n isFetchSelectedOptionSync={isFetchSelectedOptionSync}\n className={twMerge(\"rounded-t-none pt-2\")}\n />\n ))}\n <PopoverContent\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n if (e.target instanceof Element && e.target.id === id) {\n e.preventDefault();\n }\n }}\n >\n <IdAutocompleteList\n variant={variant}\n commandListRef={commandListRef}\n selectedValue={selectedValue}\n options={options}\n toggleOption={handleOptionSelection}\n renderOption={renderOption}\n previewPlaceholder={previewPlaceholder}\n />\n </PopoverContent>\n </Command>\n </Popover>\n ) : (\n <ValueTransformer transformers={transformers}>\n <Input\n id={id}\n name={name}\n value={selectedValue}\n className={className}\n disabled={disabled}\n onChange={handleChange}\n onBlur={onBlur}\n onClick={onClick}\n onMouseDown={onMouseDown}\n placeholder={placeholder}\n aria-invalid={hasError}\n aria-label={!label ? \"Id Autocomplete\" : undefined}\n aria-required={required}\n maxLength={maxLength}\n {...props}\n ref={mergedRef}\n />\n </ValueTransformer>\n )}\n {!!description && <FormDescription>{description}</FormDescription>}\n {hasWarning && <FormMessageList messages={warnings} type=\"warning\" />}\n {hasError && <FormMessageList messages={errors} type=\"error\" />}\n </FormGroup>\n );\n },\n);\n\nIdAutocomplete.displayName = \"IdAutocomplete\";\n\nexport { IdAutocomplete };\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { v as IdAutocompleteOption, y as IdAutocompleteProps } from "../../../index--hDSfvJT.js";
2
- export { IdAutocompleteOption, IdAutocompleteProps };
1
+ import { v as IdAutocompleteOption, y as IdAutocompleteProps } from "../../../index-C05uhexJ.js";
2
+ export type { IdAutocompleteOption, IdAutocompleteProps };
3
+ export {};
@@ -1,2 +1,3 @@
1
- import { t as useIdAutocomplete } from "../../../use-id-autocomplete-By7YSChC.js";
2
- export { useIdAutocomplete };
1
+ import { t as useIdAutocomplete } from "../../../use-id-autocomplete-wdw3CfYc.js";
2
+ export { useIdAutocomplete };
3
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use-id-autocomplete.js","names":["useCallback","useEffect","useRef","useState","useDebounceCallback","useIdAutocompleteContext","useIdAutocomplete","autoComplete","defaultValue","value","isOpenByDefault","initialOptions","onChange","onBlur","fetchOptions","fetchSelectedOption","context","shouldFetchOptions","isInternalChange","commandListRef","isPopoverOpen","setIsPopoverOpen","options","setOptions","isLoading","setIsLoading","isLoadingSelectedOption","setIsLoadingSelectedOption","haveFetchError","setHaveFetchError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","undefined","commandValue","setCommandValue","isFetchSelectedOptionSync","setIsFetchSelectedOptionSync","clear","debouncedFetchOptions","newValue","result","Promise","resolve","then","newOptions","matchingOption","find","opt","catch","handleFetchSelectedOption","isPromise","option","prevOptions","optionIndex","findIndex","setTimeout","handleOpenChange","open","toggleOption","optionValue","current","handleChange","e","target","handleCommandValue","onTriggerBlur","handlePaste","clipboardData","getData","trimmedValue","trim","preventDefault","input","currentTarget","start","selectionStart","end","selectionEnd","currentValue","substring","requestAnimationFrame","newPosition","length","setSelectionRange"],"sources":["../../../../src/ui/components/id-autocomplete/use-id-autocomplete.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useIdAutocompleteContext } from \"./id-autocomplete-context.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface UseIdAutocompleteParams {\n autoComplete: IdAutocompleteProps[\"autoComplete\"];\n defaultValue?: string;\n value?: string;\n isOpenByDefault: IdAutocompleteProps[\"isOpenByDefault\"];\n initialOptions: IdAutocompleteProps[\"initialOptions\"];\n onChange?: IdAutocompleteProps[\"onChange\"];\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n fetchOptions: IdAutocompleteProps[\"fetchOptionsCallback\"];\n fetchSelectedOption: IdAutocompleteProps[\"fetchSelectedOptionCallback\"];\n}\n\nexport function useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions,\n fetchSelectedOption,\n}: UseIdAutocompleteParams) {\n const context = useIdAutocompleteContext();\n const shouldFetchOptions = useRef(false);\n const isInternalChange = useRef(false);\n const commandListRef = useRef<HTMLDivElement>(null);\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(isOpenByDefault ?? false);\n const [options, setOptions] = useState<IdAutocompleteOption[]>(\n initialOptions ?? [],\n );\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingSelectedOption, setIsLoadingSelectedOption] = useState(false);\n const [haveFetchError, setHaveFetchError] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\n value ?? defaultValue ?? \"\",\n );\n const [selectedOption, setSelectedOption] = useState<\n IdAutocompleteOption | undefined\n >(undefined);\n const [commandValue, setCommandValue] = useState(\"\");\n const [isFetchSelectedOptionSync, setIsFetchSelectedOptionSync] =\n useState(false);\n\n const clear = useCallback(() => {\n setHaveFetchError(false);\n setIsLoading(false);\n setIsLoadingSelectedOption(false);\n setIsPopoverOpen(false);\n }, []);\n\n const debouncedFetchOptions = useDebounceCallback(\n useCallback(\n (newValue: string) => {\n if (!autoComplete || !fetchOptions) return;\n if (newValue === \"\") {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n return;\n }\n\n setHaveFetchError(false);\n setIsLoading(true);\n\n try {\n const result = fetchOptions(newValue, context);\n Promise.resolve(result)\n .then((newOptions) => {\n setOptions(newOptions);\n const matchingOption = newOptions.find(\n (opt) => opt.value === newValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n setIsPopoverOpen(false);\n } else {\n setSelectedOption(undefined);\n setIsPopoverOpen(true);\n }\n setIsLoading(false);\n })\n .catch(() => {\n setHaveFetchError(true);\n setIsLoading(false);\n });\n } catch {\n setHaveFetchError(true);\n setIsLoading(false);\n }\n },\n [clear, autoComplete, fetchOptions, context],\n ),\n );\n\n const handleFetchSelectedOption = useCallback(\n (value: string) => {\n if (!autoComplete || !fetchSelectedOption) return;\n\n setIsLoadingSelectedOption(true);\n\n try {\n const result = fetchSelectedOption(value);\n const isPromise = result instanceof Promise;\n\n Promise.resolve(result)\n .then((option) => {\n if (option) {\n setSelectedOption(option);\n setOptions((prevOptions) => {\n const optionIndex = prevOptions.findIndex(\n (opt) => opt.value === value,\n );\n if (optionIndex !== -1) {\n const newOptions = [...prevOptions];\n newOptions[optionIndex] = option;\n return newOptions;\n }\n return prevOptions;\n });\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n setIsLoadingSelectedOption(false);\n if (!isPromise) {\n setIsFetchSelectedOptionSync(true);\n setTimeout(() => {\n setIsFetchSelectedOptionSync(false);\n }, 1500);\n }\n })\n .catch(() => {\n setIsLoadingSelectedOption(false);\n });\n } catch {\n setIsLoadingSelectedOption(false);\n }\n },\n [clear, autoComplete, fetchSelectedOption],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n setCommandValue(options[0]?.value ?? \"\");\n }\n setIsPopoverOpen(open);\n },\n [options],\n );\n\n const toggleOption = useCallback(\n (optionValue: string) => {\n shouldFetchOptions.current = false;\n isInternalChange.current = true;\n setSelectedValue(optionValue);\n setSelectedOption(options.find((opt) => opt.value === optionValue));\n clear();\n onChange?.(optionValue);\n },\n [onChange, clear, options],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n shouldFetchOptions.current = true;\n setSelectedValue(newValue);\n setSelectedOption(undefined);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n const handleCommandValue = useCallback((value: string) => {\n setCommandValue(value);\n }, []);\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (!isPopoverOpen) {\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n // Get clipboard data and trim it\n const clipboardData = e.clipboardData.getData(\"text\");\n const trimmedValue = clipboardData.trim();\n\n // If trimming changed the value, handle paste manually\n if (clipboardData !== trimmedValue) {\n e.preventDefault();\n\n // Get current input element and selection positions\n const input = e.currentTarget;\n const start = input.selectionStart || 0;\n const end = input.selectionEnd || 0;\n\n // Create new value by inserting trimmed text at cursor position\n const currentValue = input.value;\n const newValue =\n currentValue.substring(0, start) +\n trimmedValue +\n currentValue.substring(end);\n\n // Update input value via onChange\n onChange?.(newValue);\n\n // Set cursor position after pasted text and fetch options\n requestAnimationFrame(() => {\n const newPosition = start + trimmedValue.length;\n input.setSelectionRange(newPosition, newPosition);\n debouncedFetchOptions(newValue);\n });\n } else if (clipboardData === selectedValue) {\n debouncedFetchOptions(selectedValue);\n }\n },\n [selectedValue, debouncedFetchOptions, onChange],\n );\n\n useEffect(() => {\n if (autoComplete) {\n if (shouldFetchOptions.current) {\n debouncedFetchOptions(selectedValue);\n }\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n }, [autoComplete, selectedValue, debouncedFetchOptions, clear]);\n\n useEffect(() => {\n if (!isInternalChange.current) {\n shouldFetchOptions.current = false;\n setSelectedValue(value ?? defaultValue ?? \"\");\n setSelectedOption(undefined);\n }\n isInternalChange.current = false;\n }, [value]);\n\n useEffect(() => {\n if (initialOptions?.length && selectedValue) {\n const matchingOption = initialOptions.find(\n (opt) => opt.value === selectedValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n }\n }\n }, []);\n\n return {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-id-autocomplete.js","names":["useCallback","useEffect","useRef","useState","useDebounceCallback","useIdAutocompleteContext","useIdAutocomplete","autoComplete","defaultValue","value","isOpenByDefault","initialOptions","onChange","onBlur","fetchOptions","fetchSelectedOption","context","shouldFetchOptions","isInternalChange","commandListRef","isPopoverOpen","setIsPopoverOpen","options","setOptions","isLoading","setIsLoading","isLoadingSelectedOption","setIsLoadingSelectedOption","haveFetchError","setHaveFetchError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","undefined","commandValue","setCommandValue","isFetchSelectedOptionSync","setIsFetchSelectedOptionSync","clear","debouncedFetchOptions","newValue","result","Promise","resolve","then","newOptions","matchingOption","find","opt","catch","handleFetchSelectedOption","isPromise","option","prevOptions","optionIndex","findIndex","setTimeout","handleOpenChange","open","toggleOption","optionValue","current","handleChange","e","target","handleCommandValue","onTriggerBlur","handlePaste","clipboardData","getData","trimmedValue","trim","preventDefault","input","currentTarget","start","selectionStart","end","selectionEnd","currentValue","substring","requestAnimationFrame","newPosition","length","setSelectionRange"],"sources":["../../../../src/ui/components/id-autocomplete/use-id-autocomplete.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useIdAutocompleteContext } from \"./id-autocomplete-context.js\";\nimport type { IdAutocompleteOption, IdAutocompleteProps } from \"./types.js\";\n\ninterface UseIdAutocompleteParams {\n autoComplete: IdAutocompleteProps[\"autoComplete\"];\n defaultValue?: string;\n value?: string;\n isOpenByDefault: IdAutocompleteProps[\"isOpenByDefault\"];\n initialOptions: IdAutocompleteProps[\"initialOptions\"];\n onChange?: IdAutocompleteProps[\"onChange\"];\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n fetchOptions: IdAutocompleteProps[\"fetchOptionsCallback\"];\n fetchSelectedOption: IdAutocompleteProps[\"fetchSelectedOptionCallback\"];\n}\n\nexport function useIdAutocomplete({\n autoComplete,\n defaultValue,\n value,\n isOpenByDefault,\n initialOptions,\n onChange,\n onBlur,\n fetchOptions,\n fetchSelectedOption,\n}: UseIdAutocompleteParams) {\n const context = useIdAutocompleteContext();\n const shouldFetchOptions = useRef(false);\n const isInternalChange = useRef(false);\n const commandListRef = useRef<HTMLDivElement>(null);\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(isOpenByDefault ?? false);\n const [options, setOptions] = useState<IdAutocompleteOption[]>(\n initialOptions ?? [],\n );\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingSelectedOption, setIsLoadingSelectedOption] = useState(false);\n const [haveFetchError, setHaveFetchError] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\n value ?? defaultValue ?? \"\",\n );\n const [selectedOption, setSelectedOption] = useState<\n IdAutocompleteOption | undefined\n >(undefined);\n const [commandValue, setCommandValue] = useState(\"\");\n const [isFetchSelectedOptionSync, setIsFetchSelectedOptionSync] =\n useState(false);\n\n const clear = useCallback(() => {\n setHaveFetchError(false);\n setIsLoading(false);\n setIsLoadingSelectedOption(false);\n setIsPopoverOpen(false);\n }, []);\n\n const debouncedFetchOptions = useDebounceCallback(\n useCallback(\n (newValue: string) => {\n if (!autoComplete || !fetchOptions) return;\n if (newValue === \"\") {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n return;\n }\n\n setHaveFetchError(false);\n setIsLoading(true);\n\n try {\n const result = fetchOptions(newValue, context);\n Promise.resolve(result)\n .then((newOptions) => {\n setOptions(newOptions);\n const matchingOption = newOptions.find(\n (opt) => opt.value === newValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n setIsPopoverOpen(false);\n } else {\n setSelectedOption(undefined);\n setIsPopoverOpen(true);\n }\n setIsLoading(false);\n })\n .catch(() => {\n setHaveFetchError(true);\n setIsLoading(false);\n });\n } catch {\n setHaveFetchError(true);\n setIsLoading(false);\n }\n },\n [clear, autoComplete, fetchOptions, context],\n ),\n );\n\n const handleFetchSelectedOption = useCallback(\n (value: string) => {\n if (!autoComplete || !fetchSelectedOption) return;\n\n setIsLoadingSelectedOption(true);\n\n try {\n const result = fetchSelectedOption(value);\n const isPromise = result instanceof Promise;\n\n Promise.resolve(result)\n .then((option) => {\n if (option) {\n setSelectedOption(option);\n setOptions((prevOptions) => {\n const optionIndex = prevOptions.findIndex(\n (opt) => opt.value === value,\n );\n if (optionIndex !== -1) {\n const newOptions = [...prevOptions];\n newOptions[optionIndex] = option;\n return newOptions;\n }\n return prevOptions;\n });\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n setIsLoadingSelectedOption(false);\n if (!isPromise) {\n setIsFetchSelectedOptionSync(true);\n setTimeout(() => {\n setIsFetchSelectedOptionSync(false);\n }, 1500);\n }\n })\n .catch(() => {\n setIsLoadingSelectedOption(false);\n });\n } catch {\n setIsLoadingSelectedOption(false);\n }\n },\n [clear, autoComplete, fetchSelectedOption],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n setCommandValue(options[0]?.value ?? \"\");\n }\n setIsPopoverOpen(open);\n },\n [options],\n );\n\n const toggleOption = useCallback(\n (optionValue: string) => {\n shouldFetchOptions.current = false;\n isInternalChange.current = true;\n setSelectedValue(optionValue);\n setSelectedOption(options.find((opt) => opt.value === optionValue));\n clear();\n onChange?.(optionValue);\n },\n [onChange, clear, options],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n shouldFetchOptions.current = true;\n setSelectedValue(newValue);\n setSelectedOption(undefined);\n onChange?.(newValue);\n },\n [onChange],\n );\n\n const handleCommandValue = useCallback((value: string) => {\n setCommandValue(value);\n }, []);\n\n const onTriggerBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n if (!isPopoverOpen) {\n onBlur?.(e);\n }\n },\n [onBlur, isPopoverOpen],\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n // Get clipboard data and trim it\n const clipboardData = e.clipboardData.getData(\"text\");\n const trimmedValue = clipboardData.trim();\n\n // If trimming changed the value, handle paste manually\n if (clipboardData !== trimmedValue) {\n e.preventDefault();\n\n // Get current input element and selection positions\n const input = e.currentTarget;\n const start = input.selectionStart || 0;\n const end = input.selectionEnd || 0;\n\n // Create new value by inserting trimmed text at cursor position\n const currentValue = input.value;\n const newValue =\n currentValue.substring(0, start) +\n trimmedValue +\n currentValue.substring(end);\n\n // Update input value via onChange\n onChange?.(newValue);\n\n // Set cursor position after pasted text and fetch options\n requestAnimationFrame(() => {\n const newPosition = start + trimmedValue.length;\n input.setSelectionRange(newPosition, newPosition);\n debouncedFetchOptions(newValue);\n });\n } else if (clipboardData === selectedValue) {\n debouncedFetchOptions(selectedValue);\n }\n },\n [selectedValue, debouncedFetchOptions, onChange],\n );\n\n useEffect(() => {\n if (autoComplete) {\n if (shouldFetchOptions.current) {\n debouncedFetchOptions(selectedValue);\n }\n } else {\n clear();\n setOptions([]);\n setSelectedValue(\"\");\n setSelectedOption(undefined);\n }\n }, [autoComplete, selectedValue, debouncedFetchOptions, clear]);\n\n useEffect(() => {\n if (!isInternalChange.current) {\n shouldFetchOptions.current = false;\n setSelectedValue(value ?? defaultValue ?? \"\");\n setSelectedOption(undefined);\n }\n isInternalChange.current = false;\n }, [value]);\n\n useEffect(() => {\n if (initialOptions?.length && selectedValue) {\n const matchingOption = initialOptions.find(\n (opt) => opt.value === selectedValue,\n );\n if (matchingOption) {\n setSelectedOption(matchingOption);\n }\n }\n }, []);\n\n return {\n selectedValue,\n selectedOption,\n isPopoverOpen,\n commandListRef,\n options,\n isLoading,\n isLoadingSelectedOption,\n haveFetchError,\n commandValue,\n isFetchSelectedOptionSync,\n toggleOption,\n handleOpenChange,\n onTriggerBlur,\n handleChange,\n handleCommandValue,\n handleFetchSelectedOption,\n handlePaste,\n };\n}\n"],"mappings":"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"}
@@ -1,40 +1,42 @@
1
- import { n as ButtonProps, r as buttonVariants, t as Button } from "../../button-C8doazjv.js";
2
- import { n as CharacterCounterProps, t as CharacterCounter } from "../../character-counter-BWoglM2P.js";
3
- import { n as CheckboxValue, t as CheckboxBase } from "../../checkbox-base-CZo-4eL0.js";
4
- import { n as CheckboxProps, t as Checkbox } from "../../checkbox-CGBtXQnI.js";
5
- 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";
6
- import { n as RadioGroupFieldProps, t as RadioGroupField } from "../../radio-group-field-wlqeiLN3.js";
7
- import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../select-field-C97QIhUL.js";
8
- import { n as EnumFieldProps, t as EnumField } from "../../enum-field-CwZVs3Ux.js";
9
- import { n as FormDescriptionProps, t as FormDescription } from "../../form-description-CYkcMEzm.js";
10
- import { t as FormGroup } from "../../form-group-C8kL6pdZ.js";
11
- import { n as FormLabelProps, t as FormLabel } from "../../form-label-b6nQi0XO.js";
12
- import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../form-message-Dq72nBXz.js";
13
- import { t as FormServerErrorMessage } from "../../form-server-error-message-DXbaiTfF.js";
14
- import { t as FormMessageList } from "../../message-list-C4mPpBBa.js";
15
- import { t as Form } from "../../form-CKRKn0TQ.js";
16
- import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../id-autocomplete-input-container-DFEyPh5p.js";
17
- import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../id-autocomplete-list-option-CB5B07Hi.js";
18
- import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../id-autocomplete-list-EzLpF23C.js";
19
- import { t as IdAutocomplete } from "../../id-autocomplete-C-hwriS5.js";
20
- import { t as useIdAutocomplete } from "../../use-id-autocomplete-By7YSChC.js";
21
- import { n as InputProps, t as Input } from "../../input-BpEQjaWV.js";
22
- import { t as SplittedInputDiff } from "../../splitted-input-diff-CwPedpov.js";
23
- import { t as JsonViewer } from "../../json-viewer-DaTgmzkS.js";
24
- import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "../../popover-XSBOuSih.js";
25
- import { n as RadioGroup, t as CustomizableRadioGroupProps } from "../../radio-group-Bkli6nUz.js";
26
- import { n as RadioProps, t as Radio } from "../../radio-eL0Oy86J.js";
27
- import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../types-C04Q_Fan.js";
28
- import { t as SearchAutocomplete } from "../../search-autocomplete-BJJkrZ1i.js";
29
- import { t as useSearchAutocomplete } from "../../use-search-autocomplete-IfcQ_gKh.js";
30
- import { t as Content } from "../../content-BHWIqmio.js";
31
- import { t as SelectedContent } from "../../selected-content-CGsK5PR4.js";
32
- import { n as TextInputProps, t as TextInput } from "../../text-input-8zXIWHLi.js";
33
- import { n as TextFieldProps, t as TextField } from "../../text-field-DSInH67J.js";
34
- import { a as NodeStatus, i as NodeSortType, n as NodeSortComparisonFn, o as SidebarIcon, r as NodeSortOrder, s as SidebarNode, t as FlattenedNode } from "../../types-CNbvfWjh.js";
35
- import { n as SidebarProps, t as Sidebar } from "../../sidebar-DOoE4krt.js";
36
- import { n as useSidebar, t as SidebarProvider } from "../../sidebar-provider-C2eyz9TL.js";
37
- import { a as TooltipProps, i as TooltipContent, n as Root, o as Trigger, r as Tooltip, t as Provider } from "../../tooltip-BxS9HpML.js";
38
- import { t as ValueTransformer } from "../../value-transformer-DQjqtNih.js";
39
- import { n as withFieldValidation, t as ValidationOptions } from "../../with-field-validation-Di5D8vU-.js";
40
- export { Button, ButtonProps, CharacterCounter, CharacterCounterProps, Checkbox, CheckboxBase, CheckboxProps, CheckboxValue, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, Content, CustomizableRadioGroupProps, EnumField, EnumFieldProps, FlattenedNode, Form, FormDescription, FormDescriptionProps, FormGroup, FormLabel, FormLabelProps, FormMessage, FormMessageList, FormMessageProps, FormMessageType, FormServerErrorMessage, IdAutocomplete, IdAutocompleteInputContainer, IdAutocompleteInputContainerProps, IdAutocompleteList, IdAutocompleteListOption, IdAutocompleteListOptionProps, IdAutocompleteListProps, Input, InputProps, JsonViewer, NodeSortComparisonFn, NodeSortOrder, NodeSortType, NodeStatus, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Radio, RadioGroup, RadioGroupField, RadioGroupFieldProps, RadioProps, SearchAutocomplete, SearchAutocompleteOption, SearchAutocompleteProps, SearchAutocompleteRowContext, SelectField, SelectFieldProps, SelectFieldRaw, SelectedContent, Sidebar, SidebarIcon, SidebarNode, SidebarProps, SidebarProvider, SplittedInputDiff, TextField, TextFieldProps, TextInput, TextInputProps, Tooltip, TooltipContent, TooltipProps, Provider as TooltipProvider, Root as TooltipRoot, Trigger as TooltipTrigger, ValidationOptions, ValueTransformer, buttonVariants, useIdAutocomplete, useSearchAutocomplete, useSidebar, withFieldValidation };
1
+ import { n as ButtonProps, r as buttonVariants, t as Button } from "../../button-BYcXvZXr.js";
2
+ import { n as CharacterCounterProps, t as CharacterCounter } from "../../character-counter-BZmZZCHN.js";
3
+ import { n as CheckboxValue, t as CheckboxBase } from "../../checkbox-base-Bm0GPWgm.js";
4
+ import { n as CheckboxProps, t as Checkbox } from "../../checkbox-BmTXBcCE.js";
5
+ 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";
6
+ import { n as RadioGroupFieldProps, t as RadioGroupField } from "../../radio-group-field-CjX_Zt0C.js";
7
+ import { n as SelectFieldProps, r as SelectFieldRaw, t as SelectField } from "../../select-field-BuXjM43L.js";
8
+ import { n as EnumFieldProps, t as EnumField } from "../../enum-field-qgV9wsyI.js";
9
+ import { n as FormDescriptionProps, t as FormDescription } from "../../form-description-DJrDJzJi.js";
10
+ import { t as FormGroup } from "../../form-group-Ckd28lpW.js";
11
+ import { n as FormLabelProps, t as FormLabel } from "../../form-label-C8ghd_lR.js";
12
+ import { n as FormMessageProps, r as FormMessageType, t as FormMessage } from "../../form-message-CnKUkvlj.js";
13
+ import { t as FormServerErrorMessage } from "../../form-server-error-message-D2tFtDZ0.js";
14
+ import { t as FormMessageList } from "../../message-list-D8d2ltLd.js";
15
+ import { t as Form } from "../../form-Brj5AQNr.js";
16
+ import { n as IdAutocompleteInputContainerProps, t as IdAutocompleteInputContainer } from "../../id-autocomplete-input-container-BqRQGpcs.js";
17
+ import { n as IdAutocompleteListOptionProps, t as IdAutocompleteListOption } from "../../id-autocomplete-list-option-MsqKeLXD.js";
18
+ import { n as IdAutocompleteListProps, t as IdAutocompleteList } from "../../id-autocomplete-list-ChQsiJDg.js";
19
+ import { t as IdAutocomplete } from "../../id-autocomplete-CHvGhffo.js";
20
+ import { t as useIdAutocomplete } from "../../use-id-autocomplete-wdw3CfYc.js";
21
+ import { n as InputProps, t as Input } from "../../input-WDvjJFqf.js";
22
+ import { t as SplittedInputDiff } from "../../splitted-input-diff-DBkgDh9Q.js";
23
+ import { t as JsonViewer } from "../../json-viewer-Kg0IBIt-.js";
24
+ import { i as PopoverTrigger, n as PopoverAnchor, r as PopoverContent, t as Popover } from "../../popover-TvQxa0RU.js";
25
+ import { n as RadioGroup, t as CustomizableRadioGroupProps } from "../../radio-group-CROIwgYz.js";
26
+ import { n as RadioProps, t as Radio } from "../../radio-CTS4WsNy.js";
27
+ import { n as SearchAutocompleteProps, r as SearchAutocompleteRowContext, t as SearchAutocompleteOption } from "../../types-D4CirgNk.js";
28
+ import { t as SearchAutocomplete } from "../../search-autocomplete-COvFRZIb.js";
29
+ import { t as useSearchAutocomplete } from "../../use-search-autocomplete-vSvcsvcB.js";
30
+ import { t as Content } from "../../content-BMXLcwWY.js";
31
+ import { t as SelectedContent } from "../../selected-content-C49jmTLU.js";
32
+ import { n as TextInputProps, t as TextInput } from "../../text-input-tkqggbWx.js";
33
+ import { n as TextFieldProps, t as TextField } from "../../text-field-3j4fLJ-7.js";
34
+ import { a as NodeStatus, i as NodeSortType, n as NodeSortComparisonFn, o as SidebarIcon, r as NodeSortOrder, s as SidebarNode, t as FlattenedNode } from "../../types-DDSmPhHp.js";
35
+ import { n as SidebarProps, t as Sidebar } from "../../sidebar-4juLhREX.js";
36
+ import { n as useSidebar, t as SidebarProvider } from "../../sidebar-provider-CMG6WQWo.js";
37
+ import { a as TooltipProps, i as TooltipContent, n as Root, o as Trigger, r as Tooltip, t as Provider } from "../../tooltip-B4uQJPUm.js";
38
+ import { t as ValueTransformer } from "../../value-transformer-BAD6r8Ol.js";
39
+ import { n as withFieldValidation, t as ValidationOptions } from "../../with-field-validation-Bt02MQn2.js";
40
+ import "../../index-DSknqh8u.js";
41
+ export { Button, ButtonProps, CharacterCounter, CharacterCounterProps, Checkbox, CheckboxBase, CheckboxProps, type CheckboxValue, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, Content, CustomizableRadioGroupProps, EnumField, EnumFieldProps, type FlattenedNode, Form, FormDescription, FormDescriptionProps, FormGroup, FormLabel, FormLabelProps, FormMessage, FormMessageList, FormMessageProps, FormMessageType, FormServerErrorMessage, IdAutocomplete, IdAutocompleteInputContainer, type IdAutocompleteInputContainerProps, IdAutocompleteList, IdAutocompleteListOption, type IdAutocompleteListOptionProps, type IdAutocompleteListProps, Input, InputProps, JsonViewer, type NodeSortComparisonFn, type NodeSortOrder, type NodeSortType, type NodeStatus, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Radio, RadioGroup, RadioGroupField, RadioGroupFieldProps, RadioProps, SearchAutocomplete, type SearchAutocompleteOption, type SearchAutocompleteProps, type SearchAutocompleteRowContext, SelectField, SelectFieldProps, SelectFieldRaw, SelectedContent, Sidebar, type SidebarIcon, type SidebarNode, SidebarProps, SidebarProvider, SplittedInputDiff, TextField, TextFieldProps, TextInput, type TextInputProps, Tooltip, TooltipContent, type TooltipProps, Provider as TooltipProvider, Root as TooltipRoot, Trigger as TooltipTrigger, ValidationOptions, ValueTransformer, buttonVariants, useIdAutocomplete, useSearchAutocomplete, useSidebar, withFieldValidation };
42
+ export {};
@@ -1,2 +1,3 @@
1
- import { n as InputProps, t as Input } from "../../../input-BpEQjaWV.js";
2
- export { Input, InputProps };
1
+ import { n as InputProps, t as Input } from "../../../input-WDvjJFqf.js";
2
+ export { Input, InputProps };
3
+ export {};
@@ -3,7 +3,7 @@ import { twMerge } from "tailwind-merge";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/ui/components/input/input.tsx
5
5
  const inputBaseStyles = twMerge("flex h-9 w-full rounded-md text-sm/5 font-normal text-foreground", "border border-border bg-background", "px-3 py-2", "font-sans placeholder:text-muted-foreground disabled:disabled-effect", "focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-0 focus-visible:ring-offset-white focus-visible:outline-none", "focus:bg-background focus-visible:ring-offset-background", "disabled:disabled-effect", "disabled:disabled-effect");
6
- const Input = /* @__PURE__ */ React$1.forwardRef(({ className, type, ...props }, ref) => {
6
+ const Input = /*#__PURE__*/ React$1.forwardRef(({ className, type, ...props }, ref) => {
7
7
  return /* @__PURE__ */ jsx("input", {
8
8
  type,
9
9
  className: twMerge(inputBaseStyles, className),
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":["React","twMerge","inputBaseStyles","Input","forwardRef","className","type","props","ref","displayName"],"sources":["../../../../src/ui/components/input/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst inputBaseStyles = twMerge(\n // Base styles\n \"flex h-9 w-full rounded-md text-sm/5 font-normal text-foreground\",\n // Border & Background\n \"border border-border bg-background\",\n // Padding\n \"px-3 py-2\",\n // Placeholder\n \"font-sans placeholder:text-muted-foreground disabled:disabled-effect\",\n // Focus styles\n \"focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-0 focus-visible:ring-offset-white focus-visible:outline-none\",\n \"focus:bg-background focus-visible:ring-offset-background\",\n // Disabled state\n \"disabled:disabled-effect\",\n \"disabled:disabled-effect\",\n);\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={twMerge(inputBaseStyles, className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"mappings":";;;;AAKA,MAAME,kBAAkBD,QAEtB,oEAEA,sCAEA,aAEA,wEAEA,uIACA,4DAEA,4BACA,2BACD;AAED,MAAME,QAAQH,wBAAMI,YACjB,EAAEC,WAAWC,MAAM,GAAGC,SAASC,QAAQ;AACtC,QACE,oBAAC,SAAD;EACQF;EACN,WAAWL,QAAQC,iBAAiBG,UAAU;EACzCG;EACL,GAAID;EACJ,CAAA;EAGP;AAEDJ,MAAMM,cAAc"}
1
+ {"version":3,"file":"input.js","names":["React","twMerge","inputBaseStyles","Input","forwardRef","className","type","props","ref","displayName"],"sources":["../../../../src/ui/components/input/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst inputBaseStyles = twMerge(\n // Base styles\n \"flex h-9 w-full rounded-md text-sm/5 font-normal text-foreground\",\n // Border & Background\n \"border border-border bg-background\",\n // Padding\n \"px-3 py-2\",\n // Placeholder\n \"font-sans placeholder:text-muted-foreground disabled:disabled-effect\",\n // Focus styles\n \"focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-0 focus-visible:ring-offset-white focus-visible:outline-none\",\n \"focus:bg-background focus-visible:ring-offset-background\",\n // Disabled state\n \"disabled:disabled-effect\",\n \"disabled:disabled-effect\",\n);\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={twMerge(inputBaseStyles, className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"mappings":";;;;AAKA,MAAME,kBAAkBD,QAEtB,oEAEA,sCAEA,aAEA,wEAEA,uIACA,4DAEA,4BACA,0BACF;AAEA,MAAME,QAAQH,sBAAMI,YACjB,EAAEC,WAAWC,MAAM,GAAGC,SAASC,QAAQ;CACtC,OACE,oBAAC,SAAD;EACQF;EACN,WAAWL,QAAQC,iBAAiBG,SAAS;EACxCG;EACL,GAAID;CAAM,CAAA;AAGhB,CACF;AAEAJ,MAAMM,cAAc"}
@@ -1,2 +1,3 @@
1
- import { t as SplittedInputDiff } from "../../../splitted-input-diff-CwPedpov.js";
2
- export { SplittedInputDiff };
1
+ import { t as SplittedInputDiff } from "../../../splitted-input-diff-DBkgDh9Q.js";
2
+ export { SplittedInputDiff };
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 { InputDiff } from "./subcomponent/input-diff.js";
4
4
  import { TextDiff } from "./subcomponent/text-diff.js";
@@ -8,20 +8,21 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useMediaQuery } from "usehooks-ts";
9
9
  //#region src/ui/components/input/splitted-input-diff.tsx
10
10
  const CopyIcon = ({ value, hasCopied, setHasCopied, hasHover }) => {
11
+ const copy = useCallback(() => {
12
+ navigator.clipboard.writeText(value).then(() => {
13
+ setHasCopied(true);
14
+ setTimeout(() => setHasCopied(false), 2e3);
15
+ }).catch((error) => {
16
+ console.error("Failed to copy value: ", error);
17
+ });
18
+ }, [value, setHasCopied]);
11
19
  return /* @__PURE__ */ jsx(Provider, { children: /* @__PURE__ */ jsx(Tooltip, {
12
20
  content: "Copied!",
13
21
  open: hasCopied,
14
22
  triggerAsChild: true,
15
23
  children: /* @__PURE__ */ jsx("button", {
16
24
  type: "button",
17
- onClick: useCallback(() => {
18
- navigator.clipboard.writeText(value).then(() => {
19
- setHasCopied(true);
20
- setTimeout(() => setHasCopied(false), 2e3);
21
- }).catch((error) => {
22
- console.error("Failed to copy value: ", error);
23
- });
24
- }, [value, setHasCopied]),
25
+ onClick: copy,
25
26
  className: twMerge("focus-visible:outline-none [&_svg]:pointer-events-none", hasHover && "opacity-0 transition-opacity duration-500 group-hover:opacity-100"),
26
27
  children: /* @__PURE__ */ jsx(Icon, {
27
28
  name: "Copy",
@@ -1 +1 @@
1
- {"version":3,"file":"splitted-input-diff.js","names":["Icon","twMerge","useCallback","useState","useMediaQuery","Tooltip","TooltipProvider","InputDiff","TextDiff","CopyIcon","value","hasCopied","setHasCopied","hasHover","copy","navigator","clipboard","writeText","then","setTimeout","catch","error","console","SplittedInputDiff","baseValue","viewMode","diffMode","showCopyIcon","hasCopiedLeft","setHasCopiedLeft","hasCopiedRight","setHasCopiedRight","undefined"],"sources":["../../../../src/ui/components/input/splitted-input-diff.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useCallback, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { WithDifference } from \"../../types.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { InputDiff } from \"./subcomponent/input-diff.js\";\nimport { TextDiff } from \"./subcomponent/text-diff.js\";\ninterface CopyIconProps {\n value: string;\n hasCopied: boolean;\n setHasCopied: (hasCopied: boolean) => void;\n hasHover: boolean;\n}\n\nconst CopyIcon = ({\n value,\n hasCopied,\n setHasCopied,\n hasHover,\n}: CopyIconProps) => {\n const copy = useCallback(() => {\n navigator.clipboard\n .writeText(value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error: unknown) => {\n console.error(\"Failed to copy value: \", error);\n });\n }, [value, setHasCopied]);\n\n return (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={copy}\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};\n\ninterface SplittedInputDiffProps extends WithDifference<string> {\n value: string;\n showCopyIcon?: boolean;\n}\n\nexport const SplittedInputDiff = ({\n baseValue,\n value,\n viewMode,\n diffMode,\n showCopyIcon = false,\n}: SplittedInputDiffProps) => {\n const [hasCopiedLeft, setHasCopiedLeft] = useState(false);\n const [hasCopiedRight, setHasCopiedRight] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n return (\n <InputDiff className={twMerge(\"group\")}>\n {viewMode === \"mixed\" ? (\n <>\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode=\"removal\"\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon && baseValue !== undefined && baseValue !== \"\" && (\n <CopyIcon\n value={baseValue}\n hasCopied={hasCopiedLeft}\n setHasCopied={setHasCopiedLeft}\n hasHover={hasHover}\n />\n )}\n </div>\n <div className={twMerge(\"mx-3 h-[34px] w-px bg-secondary\")} />\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode=\"addition\"\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon && value !== \"\" && (\n <CopyIcon\n value={value}\n hasCopied={hasCopiedRight}\n setHasCopied={setHasCopiedRight}\n hasHover={hasHover}\n />\n )}\n </div>\n </>\n ) : (\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode={viewMode}\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon &&\n ((viewMode === \"removal\" &&\n baseValue !== undefined &&\n baseValue !== \"\") ||\n (viewMode === \"addition\" && value !== \"\")) && (\n <CopyIcon\n value={viewMode === \"removal\" ? (baseValue ?? \"\") : value}\n hasCopied={hasCopiedLeft}\n setHasCopied={setHasCopiedLeft}\n hasHover={hasHover}\n />\n )}\n </div>\n )}\n </InputDiff>\n );\n};\n"],"mappings":";;;;;;;;;AAeA,MAAMS,YAAY,EAChBC,OACAC,WACAC,cACAC,eACmB;AAanB,QACE,oBAAC,UAAD,EAAA,UACE,oBAAC,SAAD;EAAS,SAAQ;EAAU,MAAMF;EAAW,gBAAA;YAC1C,oBAAC,UAAD;GACE,MAAK;GACL,SAjBKT,kBAAkB;AAC7Ba,cAAUC,UACPC,UAAUP,MAAM,CAChBQ,WAAW;AACVN,kBAAa,KAAK;AAClBO,sBAAiBP,aAAa,MAAM,EAAE,IAAK;MAC3C,CACDQ,OAAOC,UAAmB;AACzBC,aAAQD,MAAM,0BAA0BA,MAAM;MAC9C;MACH,CAACX,OAAOE,aAAa,CAAC;GAQjB,WAAWX,QACT,0DACAY,YACE,oEACH;aAED,oBAAC,MAAD;IACE,MAAK;IACL,MAAM;IACN,WAAWZ,QAAQ,wBAAwB;IAAC,CAAA;GAExC,CAAA;EACD,CAAA,EACO,CAAA;;AAStB,MAAasB,qBAAqB,EAChCC,WACAd,OACAe,UACAC,UACAC,eAAe,YACa;CAC5B,MAAM,CAACC,eAAeC,oBAAoB1B,SAAS,MAAM;CACzD,MAAM,CAAC2B,gBAAgBC,qBAAqB5B,SAAS,MAAM;CAC3D,MAAMU,WAAWT,cAAc,qCAAqC;AAEpE,QACE,oBAAC,WAAD;EAAW,WAAWH,QAAQ,QAAQ;YACnCwB,aAAa,UACZ,qBAAA,YAAA,EAAA,UAAA;GACE,qBAAC,OAAD;IACE,WAAWxB,QACT,4DACD;cAHH,CAKE,oBAAC,UAAD;KACauB;KACJd;KACP,UAAS;KACCgB;KACV,WAAWzB,QAAQ,SAAS;KAAC,CAAA,EAE9B0B,gBAAgBH,cAAcQ,KAAAA,KAAaR,cAAc,MACxD,oBAAC,UAAD;KACE,OAAOA;KACP,WAAWI;KACX,cAAcC;KACJhB;KAEb,CAAA,CACE;;GACL,oBAAC,OAAD,EAAK,WAAWZ,QAAQ,kCAAkC,EAAC,CAAA;GAC3D,qBAAC,OAAD;IACE,WAAWA,QACT,4DACD;cAHH,CAKE,oBAAC,UAAD;KACauB;KACJd;KACP,UAAS;KACCgB;KACV,WAAWzB,QAAQ,SAAS;KAAC,CAAA,EAE9B0B,gBAAgBjB,UAAU,MACzB,oBAAC,UAAD;KACSA;KACP,WAAWoB;KACX,cAAcC;KACJlB;KAEb,CAAA,CACE;;GACJ,EAAA,CAAA,GAEH,qBAAC,OAAD;GACE,WAAWZ,QACT,4DACD;aAHH,CAKE,oBAAC,UAAD;IACauB;IACJd;IACGe;IACAC;IACV,WAAWzB,QAAQ,SAAS;IAAC,CAAA,EAE9B0B,iBACGF,aAAa,aACbD,cAAcQ,KAAAA,KACdR,cAAc,MACbC,aAAa,cAAcf,UAAU,OACtC,oBAAC,UAAD;IACE,OAAOe,aAAa,YAAaD,aAAa,KAAMd;IACpD,WAAWkB;IACX,cAAcC;IACJhB;IAEb,CAAA,CAEN;;EACS,CAAA"}
1
+ {"version":3,"file":"splitted-input-diff.js","names":["Icon","twMerge","useCallback","useState","useMediaQuery","Tooltip","TooltipProvider","InputDiff","TextDiff","CopyIcon","value","hasCopied","setHasCopied","hasHover","copy","navigator","clipboard","writeText","then","setTimeout","catch","error","console","SplittedInputDiff","baseValue","viewMode","diffMode","showCopyIcon","hasCopiedLeft","setHasCopiedLeft","hasCopiedRight","setHasCopiedRight","undefined"],"sources":["../../../../src/ui/components/input/splitted-input-diff.tsx"],"sourcesContent":["import { Icon } from \"#design-system\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useCallback, useState } from \"react\";\nimport { useMediaQuery } from \"usehooks-ts\";\nimport type { WithDifference } from \"../../types.js\";\nimport { Tooltip, TooltipProvider } from \"../tooltip/tooltip.js\";\nimport { InputDiff } from \"./subcomponent/input-diff.js\";\nimport { TextDiff } from \"./subcomponent/text-diff.js\";\ninterface CopyIconProps {\n value: string;\n hasCopied: boolean;\n setHasCopied: (hasCopied: boolean) => void;\n hasHover: boolean;\n}\n\nconst CopyIcon = ({\n value,\n hasCopied,\n setHasCopied,\n hasHover,\n}: CopyIconProps) => {\n const copy = useCallback(() => {\n navigator.clipboard\n .writeText(value)\n .then(() => {\n setHasCopied(true);\n setTimeout(() => setHasCopied(false), 2000);\n })\n .catch((error: unknown) => {\n console.error(\"Failed to copy value: \", error);\n });\n }, [value, setHasCopied]);\n\n return (\n <TooltipProvider>\n <Tooltip content=\"Copied!\" open={hasCopied} triggerAsChild>\n <button\n type=\"button\"\n onClick={copy}\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};\n\ninterface SplittedInputDiffProps extends WithDifference<string> {\n value: string;\n showCopyIcon?: boolean;\n}\n\nexport const SplittedInputDiff = ({\n baseValue,\n value,\n viewMode,\n diffMode,\n showCopyIcon = false,\n}: SplittedInputDiffProps) => {\n const [hasCopiedLeft, setHasCopiedLeft] = useState(false);\n const [hasCopiedRight, setHasCopiedRight] = useState(false);\n const hasHover = useMediaQuery(\"(hover: hover) and (pointer: fine)\");\n\n return (\n <InputDiff className={twMerge(\"group\")}>\n {viewMode === \"mixed\" ? (\n <>\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode=\"removal\"\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon && baseValue !== undefined && baseValue !== \"\" && (\n <CopyIcon\n value={baseValue}\n hasCopied={hasCopiedLeft}\n setHasCopied={setHasCopiedLeft}\n hasHover={hasHover}\n />\n )}\n </div>\n <div className={twMerge(\"mx-3 h-[34px] w-px bg-secondary\")} />\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode=\"addition\"\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon && value !== \"\" && (\n <CopyIcon\n value={value}\n hasCopied={hasCopiedRight}\n setHasCopied={setHasCopiedRight}\n hasHover={hasHover}\n />\n )}\n </div>\n </>\n ) : (\n <div\n className={twMerge(\n \"flex flex-1 items-center gap-2 truncate [&>span]:truncate\",\n )}\n >\n <TextDiff\n baseValue={baseValue}\n value={value}\n viewMode={viewMode}\n diffMode={diffMode}\n className={twMerge(\"flex-1\")}\n />\n {showCopyIcon &&\n ((viewMode === \"removal\" &&\n baseValue !== undefined &&\n baseValue !== \"\") ||\n (viewMode === \"addition\" && value !== \"\")) && (\n <CopyIcon\n value={viewMode === \"removal\" ? (baseValue ?? \"\") : value}\n hasCopied={hasCopiedLeft}\n setHasCopied={setHasCopiedLeft}\n hasHover={hasHover}\n />\n )}\n </div>\n )}\n </InputDiff>\n );\n};\n"],"mappings":";;;;;;;;;AAeA,MAAMS,YAAY,EAChBC,OACAC,WACAC,cACAC,eACmB;CACnB,MAAMC,OAAOZ,kBAAkB;EAC7Ba,UAAUC,UACPC,UAAUP,KAAK,CAAC,CAChBQ,WAAW;GACVN,aAAa,IAAI;GACjBO,iBAAiBP,aAAa,KAAK,GAAG,GAAI;EAC5C,CAAC,CAAC,CACDQ,OAAOC,UAAmB;GACzBC,QAAQD,MAAM,0BAA0BA,KAAK;EAC/C,CAAC;CACL,GAAG,CAACX,OAAOE,YAAY,CAAC;CAExB,OACE,oBAAC,UAAD,EAAA,UACE,oBAAC,SAAD;EAAS,SAAQ;EAAU,MAAMD;EAAW,gBAAA;EAC1C,UAAA,oBAAC,UAAD;GACE,MAAK;GACL,SAASG;GACT,WAAWb,QACT,0DACAY,YACE,mEACJ;GAEA,UAAA,oBAAC,MAAD;IACE,MAAK;IACL,MAAM;IACN,WAAWZ,QAAQ,uBAAuB;GAAE,CAAA;EAExC,CAAA;CACD,CAAA,EACM,CAAA;AAErB;AAOA,MAAasB,qBAAqB,EAChCC,WACAd,OACAe,UACAC,UACAC,eAAe,YACa;CAC5B,MAAM,CAACC,eAAeC,oBAAoB1B,SAAS,KAAK;CACxD,MAAM,CAAC2B,gBAAgBC,qBAAqB5B,SAAS,KAAK;CAC1D,MAAMU,WAAWT,cAAc,oCAAoC;CAEnE,OACE,oBAAC,WAAD;EAAW,WAAWH,QAAQ,OAAO;EAClCwB,UAAAA,aAAa,UACZ,qBAAA,YAAA,EAAA,UAAA;GACE,qBAAC,OAAD;IACE,WAAWxB,QACT,2DACF;IAHF,UAAA,CAKE,oBAAC,UAAD;KACauB;KACJd;KACP,UAAS;KACCgB;KACV,WAAWzB,QAAQ,QAAQ;IAAE,CAAA,GAE9B0B,gBAAgBH,cAAcQ,KAAAA,KAAaR,cAAc,MACxD,oBAAC,UAAD;KACE,OAAOA;KACP,WAAWI;KACX,cAAcC;KACJhB;IAAS,CAAA,CAGpB;;GACL,oBAAC,OAAD,EAAK,WAAWZ,QAAQ,iCAAiC,EAAE,CAAA;GAC3D,qBAAC,OAAD;IACE,WAAWA,QACT,2DACF;IAHF,UAAA,CAKE,oBAAC,UAAD;KACauB;KACJd;KACP,UAAS;KACCgB;KACV,WAAWzB,QAAQ,QAAQ;IAAE,CAAA,GAE9B0B,gBAAgBjB,UAAU,MACzB,oBAAC,UAAD;KACSA;KACP,WAAWoB;KACX,cAAcC;KACJlB;IAAS,CAAA,CAGpB;;EACP,EAAA,CAAA,IAEA,qBAAC,OAAD;GACE,WAAWZ,QACT,2DACF;GAHF,UAAA,CAKE,oBAAC,UAAD;IACauB;IACJd;IACGe;IACAC;IACV,WAAWzB,QAAQ,QAAQ;GAAE,CAAA,GAE9B0B,iBACGF,aAAa,aACbD,cAAcQ,KAAAA,KACdR,cAAc,MACbC,aAAa,cAAcf,UAAU,OACtC,oBAAC,UAAD;IACE,OAAOe,aAAa,YAAaD,aAAa,KAAMd;IACpD,WAAWkB;IACX,cAAcC;IACJhB;GAAS,CAAA,CAGtB;;CAEE,CAAA;AAEf"}
@@ -1,5 +1,3 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/ui/components/input/subcomponent/input-diff.d.ts
4
2
  interface InputDiffProps {
5
3
  children: React.ReactNode;
@@ -9,14 +7,7 @@ interface InputDiffProps {
9
7
  rows?: number;
10
8
  hasPadding?: boolean;
11
9
  }
12
- declare const InputDiff: ({
13
- children,
14
- className,
15
- ellipsis,
16
- multiline,
17
- rows,
18
- hasPadding
19
- }: InputDiffProps) => react_jsx_runtime0.JSX.Element;
10
+ export declare const InputDiff: ({ children, className, ellipsis, multiline, rows, hasPadding }: InputDiffProps) => import("react/jsx-runtime").JSX.Element;
20
11
  //#endregion
21
- export { InputDiff };
12
+ export {};
22
13
  //# sourceMappingURL=input-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-diff.d.ts","names":[],"sources":["../../../../../src/ui/components/input/subcomponent/input-diff.tsx"],"mappings":";;;UAEU,cAAA;EACR,QAAA,EAAU,KAAA,CAAM,SAAA;EAChB,SAAA;EACA,QAAA;EACA,SAAA;EACA,IAAA;EACA,UAAA;AAAA;AAAA,cAGW,SAAA;EAAa,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,SAAA;EAAA,IAAA;EAAA;AAAA,GAOvB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"input-diff.d.ts","names":[],"sources":["../../../../../src/ui/components/input/subcomponent/input-diff.tsx"],"mappings":";UAEU;EACR,UAAU,MAAM;EAChB;EACA;EACA;EACA;EACA;;qBAGW,cAAS,UAAA,WAAA,UAAA,WAAA,MAAA,cAOnB,+CAAc,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"input-diff.js","names":["twMerge","InputDiff","children","className","ellipsis","multiline","rows","hasPadding","minHeight"],"sources":["../../../../../src/ui/components/input/subcomponent/input-diff.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\ninterface InputDiffProps {\n children: React.ReactNode;\n className?: string;\n ellipsis?: boolean;\n multiline?: boolean;\n rows?: number;\n hasPadding?: boolean;\n}\n\nexport const InputDiff = ({\n children,\n className,\n ellipsis = true,\n multiline = false,\n rows = 3,\n hasPadding = false,\n}: InputDiffProps) => {\n return (\n <div\n className={twMerge(\n \"flex w-full items-center rounded-md font-sans text-sm/5 font-normal text-foreground\",\n \"cursor-not-allowed border border-border bg-transparent px-3\",\n !multiline && ellipsis && \"truncate [&>span]:truncate\",\n hasPadding && \"items-start py-2\",\n className,\n )}\n style={{\n minHeight: multiline ? `${rows * 1.5}rem` : \"2.25rem\",\n }}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;AAWA,MAAaC,aAAa,EACxBC,UACAC,WACAC,WAAW,MACXC,YAAY,OACZC,OAAO,GACPC,aAAa,YACO;AACpB,QACE,oBAAC,OAAD;EACE,WAAWP,QACT,uFACA,+DACA,CAACK,aAAaD,YAAY,8BAC1BG,cAAc,oBACdJ,UACD;EACD,OAAO,EACLK,WAAWH,YAAY,GAAGC,OAAO,IAAG,OAAQ,WAC7C;EAEAJ;EACG,CAAA"}
1
+ {"version":3,"file":"input-diff.js","names":["twMerge","InputDiff","children","className","ellipsis","multiline","rows","hasPadding","minHeight"],"sources":["../../../../../src/ui/components/input/subcomponent/input-diff.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\n\ninterface InputDiffProps {\n children: React.ReactNode;\n className?: string;\n ellipsis?: boolean;\n multiline?: boolean;\n rows?: number;\n hasPadding?: boolean;\n}\n\nexport const InputDiff = ({\n children,\n className,\n ellipsis = true,\n multiline = false,\n rows = 3,\n hasPadding = false,\n}: InputDiffProps) => {\n return (\n <div\n className={twMerge(\n \"flex w-full items-center rounded-md font-sans text-sm/5 font-normal text-foreground\",\n \"cursor-not-allowed border border-border bg-transparent px-3\",\n !multiline && ellipsis && \"truncate [&>span]:truncate\",\n hasPadding && \"items-start py-2\",\n className,\n )}\n style={{\n minHeight: multiline ? `${rows * 1.5}rem` : \"2.25rem\",\n }}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;AAWA,MAAaC,aAAa,EACxBC,UACAC,WACAC,WAAW,MACXC,YAAY,OACZC,OAAO,GACPC,aAAa,YACO;CACpB,OACE,oBAAC,OAAD;EACE,WAAWP,QACT,uFACA,+DACA,CAACK,aAAaD,YAAY,8BAC1BG,cAAc,oBACdJ,SACF;EACA,OAAO,EACLK,WAAWH,YAAY,GAAGC,OAAO,IAAG,OAAQ,UAC9C;EAECJ;CACE,CAAA;AAET"}
@@ -1,20 +1,11 @@
1
- import { _ as WithDifference } from "../../../../index--hDSfvJT.js";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
3
-
1
+ import { _ as WithDifference } from "../../../../index-C05uhexJ.js";
4
2
  //#region src/ui/components/input/subcomponent/text-diff.d.ts
5
3
  interface TextDiffProps extends WithDifference<string> {
6
4
  value: string;
7
5
  className?: string;
8
6
  childrenClassName?: string;
9
7
  }
10
- declare const TextDiff: ({
11
- baseValue,
12
- value,
13
- viewMode,
14
- diffMode,
15
- className,
16
- childrenClassName
17
- }: TextDiffProps) => react_jsx_runtime0.JSX.Element;
8
+ export declare const TextDiff: ({ baseValue, value, viewMode, diffMode, className, childrenClassName }: TextDiffProps) => import("react/jsx-runtime").JSX.Element;
18
9
  //#endregion
19
- export { TextDiff };
10
+ export {};
20
11
  //# sourceMappingURL=text-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-diff.d.ts","names":[],"sources":["../../../../../src/ui/components/input/subcomponent/text-diff.tsx"],"mappings":";;;;UAKU,aAAA,SAAsB,cAAA;EAC9B,KAAA;EACA,SAAA;EACA,iBAAA;AAAA;AAAA,cAGW,QAAA;EAAY,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,SAAA;EAAA;AAAA,GAOtB,aAAA,KAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"text-diff.d.ts","names":[],"sources":["../../../../../src/ui/components/input/subcomponent/text-diff.tsx"],"mappings":";;UAKU,sBAAsB;EAC9B;EACA;EACA;;qBAGW,aAAQ,WAAA,OAAA,UAAA,UAAA,WAAA,qBAOlB,8CAAa,IAAA"}