@yamada-ui/react 2.2.3 → 2.2.4-dev-20260706063021

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 (429) hide show
  1. package/dist/cjs/components/accordion/accordion.cjs +1 -0
  2. package/dist/cjs/components/accordion/namespace.cjs +13 -0
  3. package/dist/cjs/components/action-bar/namespace.cjs +7 -0
  4. package/dist/cjs/components/alert/namespace.cjs +7 -0
  5. package/dist/cjs/components/alpha-slider/alpha-slider.cjs +1 -0
  6. package/dist/cjs/components/alpha-slider/namespace.cjs +6 -0
  7. package/dist/cjs/components/autocomplete/namespace.cjs +6 -0
  8. package/dist/cjs/components/avatar/namespace.cjs +4 -0
  9. package/dist/cjs/components/blockquote/namespace.cjs +7 -0
  10. package/dist/cjs/components/breadcrumb/namespace.cjs +5 -0
  11. package/dist/cjs/components/button/namespace.cjs +7 -0
  12. package/dist/cjs/components/calendar/namespace.cjs +10 -0
  13. package/dist/cjs/components/card/namespace.cjs +6 -0
  14. package/dist/cjs/components/carousel/namespace.cjs +9 -0
  15. package/dist/cjs/components/chart/area-chart.namespace.cjs +14 -0
  16. package/dist/cjs/components/chart/bar-chart.namespace.cjs +13 -0
  17. package/dist/cjs/components/chart/composed-chart.namespace.cjs +15 -0
  18. package/dist/cjs/components/chart/donut-chart.namespace.cjs +10 -0
  19. package/dist/cjs/components/chart/line-chart.namespace.cjs +13 -0
  20. package/dist/cjs/components/chart/pie-chart.namespace.cjs +10 -0
  21. package/dist/cjs/components/chart/polar-chart.cjs.map +1 -1
  22. package/dist/cjs/components/chart/radar-chart.namespace.cjs +13 -0
  23. package/dist/cjs/components/chart/radial-chart.namespace.cjs +13 -0
  24. package/dist/cjs/components/chart/use-cartesian-chart.cjs +1 -3
  25. package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -1
  26. package/dist/cjs/components/checkbox/checkbox-group.cjs +1 -0
  27. package/dist/cjs/components/checkbox/namespace.cjs +4 -0
  28. package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs +1 -0
  29. package/dist/cjs/components/checkbox-card/checkbox-card-group.namespace.cjs +7 -0
  30. package/dist/cjs/components/checkbox-card/checkbox-card.namespace.cjs +6 -0
  31. package/dist/cjs/components/circle-progress/namespace.cjs +4 -0
  32. package/dist/cjs/components/color-selector/namespace.cjs +10 -0
  33. package/dist/cjs/components/color-swatch/color-swatch.cjs +1 -0
  34. package/dist/cjs/components/container/namespace.cjs +6 -0
  35. package/dist/cjs/components/data-list/namespace.cjs +6 -0
  36. package/dist/cjs/components/date-picker/use-date-picker.cjs +1 -1
  37. package/dist/cjs/components/drawer/drawer.cjs +1 -0
  38. package/dist/cjs/components/drawer/namespace.cjs +13 -0
  39. package/dist/cjs/components/dropzone/namespace.cjs +16 -0
  40. package/dist/cjs/components/editable/namespace.cjs +12 -0
  41. package/dist/cjs/components/empty-state/namespace.cjs +7 -0
  42. package/dist/cjs/components/field/field.cjs +1 -0
  43. package/dist/cjs/components/field/namespace.cjs +6 -0
  44. package/dist/cjs/components/fieldset/namespace.cjs +8 -0
  45. package/dist/cjs/components/focus-lock/focus-lock.cjs +1 -1
  46. package/dist/cjs/components/form/namespace.cjs +10 -0
  47. package/dist/cjs/components/format/namespace.cjs +17 -0
  48. package/dist/cjs/components/hue-slider/namespace.cjs +6 -0
  49. package/dist/cjs/components/icon/icons/ad-icon.cjs +14 -0
  50. package/dist/cjs/components/icon/icons/ad-icon.cjs.map +1 -0
  51. package/dist/cjs/components/icon/icons/banknote-check-icon.cjs +14 -0
  52. package/dist/cjs/components/icon/icons/banknote-check-icon.cjs.map +1 -0
  53. package/dist/cjs/components/icon/icons/bone-fracture-icon.cjs +14 -0
  54. package/dist/cjs/components/icon/icons/bone-fracture-icon.cjs.map +1 -0
  55. package/dist/cjs/components/icon/icons/clock-arrow-left-icon.cjs +14 -0
  56. package/dist/cjs/components/icon/icons/clock-arrow-left-icon.cjs.map +1 -0
  57. package/dist/cjs/components/icon/icons/clock-arrow-right-icon.cjs +14 -0
  58. package/dist/cjs/components/icon/icons/clock-arrow-right-icon.cjs.map +1 -0
  59. package/dist/cjs/components/icon/icons/database-arrow-down-icon.cjs +14 -0
  60. package/dist/cjs/components/icon/icons/database-arrow-down-icon.cjs.map +1 -0
  61. package/dist/cjs/components/icon/icons/database-arrow-up-icon.cjs +14 -0
  62. package/dist/cjs/components/icon/icons/database-arrow-up-icon.cjs.map +1 -0
  63. package/dist/cjs/components/icon/icons/database-check-icon.cjs +14 -0
  64. package/dist/cjs/components/icon/icons/database-check-icon.cjs.map +1 -0
  65. package/dist/cjs/components/icon/icons/database-minus-icon.cjs +14 -0
  66. package/dist/cjs/components/icon/icons/database-minus-icon.cjs.map +1 -0
  67. package/dist/cjs/components/icon/icons/database-plus-icon.cjs +14 -0
  68. package/dist/cjs/components/icon/icons/database-plus-icon.cjs.map +1 -0
  69. package/dist/cjs/components/icon/icons/database-x-icon.cjs +14 -0
  70. package/dist/cjs/components/icon/icons/database-x-icon.cjs.map +1 -0
  71. package/dist/cjs/components/icon/icons/eye-dashed-icon.cjs +14 -0
  72. package/dist/cjs/components/icon/icons/eye-dashed-icon.cjs.map +1 -0
  73. package/dist/cjs/components/icon/icons/index.cjs +87 -0
  74. package/dist/cjs/components/icon/icons/index.cjs.map +1 -1
  75. package/dist/cjs/components/icon/icons/list-sort-ascending-icon.cjs +14 -0
  76. package/dist/cjs/components/icon/icons/list-sort-ascending-icon.cjs.map +1 -0
  77. package/dist/cjs/components/icon/icons/list-sort-descending-icon.cjs +14 -0
  78. package/dist/cjs/components/icon/icons/list-sort-descending-icon.cjs.map +1 -0
  79. package/dist/cjs/components/icon/icons/pencil-sparkles-icon.cjs +14 -0
  80. package/dist/cjs/components/icon/icons/pencil-sparkles-icon.cjs.map +1 -0
  81. package/dist/cjs/components/icon/icons/phi-icon.cjs +14 -0
  82. package/dist/cjs/components/icon/icons/phi-icon.cjs.map +1 -0
  83. package/dist/cjs/components/icon/icons/podium-icon.cjs +14 -0
  84. package/dist/cjs/components/icon/icons/podium-icon.cjs.map +1 -0
  85. package/dist/cjs/components/icon/icons/save-check-icon.cjs +14 -0
  86. package/dist/cjs/components/icon/icons/save-check-icon.cjs.map +1 -0
  87. package/dist/cjs/components/icon/icons/save-pen-icon.cjs +14 -0
  88. package/dist/cjs/components/icon/icons/save-pen-icon.cjs.map +1 -0
  89. package/dist/cjs/components/icon/icons/save-plus-icon.cjs +14 -0
  90. package/dist/cjs/components/icon/icons/save-plus-icon.cjs.map +1 -0
  91. package/dist/cjs/components/icon/icons/star-check-icon.cjs +14 -0
  92. package/dist/cjs/components/icon/icons/star-check-icon.cjs.map +1 -0
  93. package/dist/cjs/components/icon/icons/star-minus-icon.cjs +14 -0
  94. package/dist/cjs/components/icon/icons/star-minus-icon.cjs.map +1 -0
  95. package/dist/cjs/components/icon/icons/star-plus-icon.cjs +14 -0
  96. package/dist/cjs/components/icon/icons/star-plus-icon.cjs.map +1 -0
  97. package/dist/cjs/components/icon/icons/star-x-icon.cjs +14 -0
  98. package/dist/cjs/components/icon/icons/star-x-icon.cjs.map +1 -0
  99. package/dist/cjs/components/icon/icons/summary-icon.cjs +14 -0
  100. package/dist/cjs/components/icon/icons/summary-icon.cjs.map +1 -0
  101. package/dist/cjs/components/icon/icons/tag-plus-icon.cjs +14 -0
  102. package/dist/cjs/components/icon/icons/tag-plus-icon.cjs.map +1 -0
  103. package/dist/cjs/components/icon/icons/tag-x-icon.cjs +14 -0
  104. package/dist/cjs/components/icon/icons/tag-x-icon.cjs.map +1 -0
  105. package/dist/cjs/components/icon/icons/user-round-arrow-left-icon.cjs +14 -0
  106. package/dist/cjs/components/icon/icons/user-round-arrow-left-icon.cjs.map +1 -0
  107. package/dist/cjs/components/icon/icons/wrench-off-icon.cjs +14 -0
  108. package/dist/cjs/components/icon/icons/wrench-off-icon.cjs.map +1 -0
  109. package/dist/cjs/components/icon/index.cjs +58 -0
  110. package/dist/cjs/components/input/namespace.cjs +7 -0
  111. package/dist/cjs/components/link-box/namespace.cjs +4 -0
  112. package/dist/cjs/components/list/namespace.cjs +5 -0
  113. package/dist/cjs/components/loading/namespace.cjs +8 -0
  114. package/dist/cjs/components/menu/namespace.cjs +17 -0
  115. package/dist/cjs/components/modal/modal.cjs +1 -0
  116. package/dist/cjs/components/modal/namespace.cjs +12 -0
  117. package/dist/cjs/components/native-accordion/namespace.cjs +7 -0
  118. package/dist/cjs/components/native-popover/namespace.cjs +10 -0
  119. package/dist/cjs/components/native-select/namespace.cjs +6 -0
  120. package/dist/cjs/components/native-table/namespace.cjs +12 -0
  121. package/dist/cjs/components/notice/notice.cjs +2 -0
  122. package/dist/cjs/components/pagination/namespace.cjs +10 -0
  123. package/dist/cjs/components/pin-input/namespace.cjs +7 -0
  124. package/dist/cjs/components/popover/namespace.cjs +10 -0
  125. package/dist/cjs/components/qr-code/namespace.cjs +6 -0
  126. package/dist/cjs/components/radio/namespace.cjs +4 -0
  127. package/dist/cjs/components/radio/radio-group.cjs +1 -0
  128. package/dist/cjs/components/radio-card/radio-card-group.cjs +1 -0
  129. package/dist/cjs/components/radio-card/radio-card-group.namespace.cjs +7 -0
  130. package/dist/cjs/components/radio-card/radio-card.namespace.cjs +6 -0
  131. package/dist/cjs/components/reorder/namespace.cjs +9 -0
  132. package/dist/cjs/components/resizable/namespace.cjs +8 -0
  133. package/dist/cjs/components/resizable/use-resizable.cjs +1 -0
  134. package/dist/cjs/components/saturation-slider/namespace.cjs +5 -0
  135. package/dist/cjs/components/segmented-control/namespace.cjs +9 -0
  136. package/dist/cjs/components/select/namespace.cjs +7 -0
  137. package/dist/cjs/components/sidebar/namespace.cjs +30 -0
  138. package/dist/cjs/components/slider/namespace.cjs +9 -0
  139. package/dist/cjs/components/stat/namespace.cjs +8 -0
  140. package/dist/cjs/components/steps/namespace.cjs +21 -0
  141. package/dist/cjs/components/tabs/namespace.cjs +15 -0
  142. package/dist/cjs/components/timeline/namespace.cjs +9 -0
  143. package/dist/cjs/components/toggle/namespace.cjs +4 -0
  144. package/dist/cjs/components/tree/namespace.cjs +10 -0
  145. package/dist/cjs/components/tree/use-tree.cjs +1 -1
  146. package/dist/cjs/components/tree/use-tree.cjs.map +1 -1
  147. package/dist/cjs/core/components/props.cjs +1 -1
  148. package/dist/cjs/core/components/props.cjs.map +1 -1
  149. package/dist/cjs/core/css/styles.cjs.map +1 -1
  150. package/dist/cjs/core/css/utils.cjs +1 -1
  151. package/dist/cjs/core/css/utils.cjs.map +1 -1
  152. package/dist/cjs/core/system/styled.cjs +1 -1
  153. package/dist/cjs/core/system/use-system-color-mode.cjs.map +1 -1
  154. package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs.map +1 -1
  155. package/dist/cjs/hooks/use-combobox/index.cjs +1 -1
  156. package/dist/cjs/index.cjs +87 -0
  157. package/dist/cjs/providers/i18n-provider/i18n-provider.cjs +1 -1
  158. package/dist/cjs/utils/children.cjs +1 -1
  159. package/dist/esm/components/accordion/accordion.js +1 -1
  160. package/dist/esm/components/accordion/namespace.js +1 -1
  161. package/dist/esm/components/action-bar/namespace.js +1 -1
  162. package/dist/esm/components/alert/namespace.js +1 -1
  163. package/dist/esm/components/alpha-slider/alpha-slider.js +1 -1
  164. package/dist/esm/components/alpha-slider/namespace.js +1 -1
  165. package/dist/esm/components/autocomplete/namespace.js +1 -1
  166. package/dist/esm/components/avatar/namespace.js +1 -1
  167. package/dist/esm/components/blockquote/namespace.js +1 -1
  168. package/dist/esm/components/breadcrumb/namespace.js +1 -1
  169. package/dist/esm/components/button/namespace.js +1 -1
  170. package/dist/esm/components/calendar/namespace.js +1 -1
  171. package/dist/esm/components/card/namespace.js +1 -1
  172. package/dist/esm/components/carousel/namespace.js +1 -1
  173. package/dist/esm/components/chart/area-chart.namespace.js +1 -1
  174. package/dist/esm/components/chart/bar-chart.namespace.js +1 -1
  175. package/dist/esm/components/chart/composed-chart.namespace.js +1 -1
  176. package/dist/esm/components/chart/donut-chart.namespace.js +1 -1
  177. package/dist/esm/components/chart/line-chart.namespace.js +1 -1
  178. package/dist/esm/components/chart/pie-chart.namespace.js +1 -1
  179. package/dist/esm/components/chart/polar-chart.js.map +1 -1
  180. package/dist/esm/components/chart/radar-chart.namespace.js +1 -1
  181. package/dist/esm/components/chart/radial-chart.namespace.js +1 -1
  182. package/dist/esm/components/chart/use-cartesian-chart.js +1 -3
  183. package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -1
  184. package/dist/esm/components/checkbox/checkbox-group.js +1 -1
  185. package/dist/esm/components/checkbox/namespace.js +1 -1
  186. package/dist/esm/components/checkbox-card/checkbox-card-group.js +1 -1
  187. package/dist/esm/components/checkbox-card/checkbox-card-group.namespace.js +1 -1
  188. package/dist/esm/components/checkbox-card/checkbox-card.namespace.js +1 -1
  189. package/dist/esm/components/circle-progress/namespace.js +1 -1
  190. package/dist/esm/components/color-selector/namespace.js +1 -1
  191. package/dist/esm/components/color-swatch/color-swatch.js +1 -1
  192. package/dist/esm/components/container/namespace.js +1 -1
  193. package/dist/esm/components/data-list/namespace.js +1 -1
  194. package/dist/esm/components/drawer/drawer.js +1 -1
  195. package/dist/esm/components/drawer/namespace.js +1 -1
  196. package/dist/esm/components/dropzone/namespace.js +1 -1
  197. package/dist/esm/components/editable/namespace.js +1 -1
  198. package/dist/esm/components/empty-state/namespace.js +1 -1
  199. package/dist/esm/components/field/field.js +1 -1
  200. package/dist/esm/components/field/namespace.js +1 -1
  201. package/dist/esm/components/fieldset/namespace.js +1 -1
  202. package/dist/esm/components/form/namespace.js +1 -1
  203. package/dist/esm/components/format/namespace.js +1 -1
  204. package/dist/esm/components/hue-slider/namespace.js +1 -1
  205. package/dist/esm/components/icon/icons/ad-icon.js +14 -0
  206. package/dist/esm/components/icon/icons/ad-icon.js.map +1 -0
  207. package/dist/esm/components/icon/icons/banknote-check-icon.js +14 -0
  208. package/dist/esm/components/icon/icons/banknote-check-icon.js.map +1 -0
  209. package/dist/esm/components/icon/icons/bone-fracture-icon.js +14 -0
  210. package/dist/esm/components/icon/icons/bone-fracture-icon.js.map +1 -0
  211. package/dist/esm/components/icon/icons/clock-arrow-left-icon.js +14 -0
  212. package/dist/esm/components/icon/icons/clock-arrow-left-icon.js.map +1 -0
  213. package/dist/esm/components/icon/icons/clock-arrow-right-icon.js +14 -0
  214. package/dist/esm/components/icon/icons/clock-arrow-right-icon.js.map +1 -0
  215. package/dist/esm/components/icon/icons/database-arrow-down-icon.js +14 -0
  216. package/dist/esm/components/icon/icons/database-arrow-down-icon.js.map +1 -0
  217. package/dist/esm/components/icon/icons/database-arrow-up-icon.js +14 -0
  218. package/dist/esm/components/icon/icons/database-arrow-up-icon.js.map +1 -0
  219. package/dist/esm/components/icon/icons/database-check-icon.js +14 -0
  220. package/dist/esm/components/icon/icons/database-check-icon.js.map +1 -0
  221. package/dist/esm/components/icon/icons/database-minus-icon.js +14 -0
  222. package/dist/esm/components/icon/icons/database-minus-icon.js.map +1 -0
  223. package/dist/esm/components/icon/icons/database-plus-icon.js +14 -0
  224. package/dist/esm/components/icon/icons/database-plus-icon.js.map +1 -0
  225. package/dist/esm/components/icon/icons/database-x-icon.js +14 -0
  226. package/dist/esm/components/icon/icons/database-x-icon.js.map +1 -0
  227. package/dist/esm/components/icon/icons/eye-dashed-icon.js +14 -0
  228. package/dist/esm/components/icon/icons/eye-dashed-icon.js.map +1 -0
  229. package/dist/esm/components/icon/icons/index.js +59 -1
  230. package/dist/esm/components/icon/icons/index.js.map +1 -1
  231. package/dist/esm/components/icon/icons/list-sort-ascending-icon.js +14 -0
  232. package/dist/esm/components/icon/icons/list-sort-ascending-icon.js.map +1 -0
  233. package/dist/esm/components/icon/icons/list-sort-descending-icon.js +14 -0
  234. package/dist/esm/components/icon/icons/list-sort-descending-icon.js.map +1 -0
  235. package/dist/esm/components/icon/icons/pencil-sparkles-icon.js +14 -0
  236. package/dist/esm/components/icon/icons/pencil-sparkles-icon.js.map +1 -0
  237. package/dist/esm/components/icon/icons/phi-icon.js +14 -0
  238. package/dist/esm/components/icon/icons/phi-icon.js.map +1 -0
  239. package/dist/esm/components/icon/icons/podium-icon.js +14 -0
  240. package/dist/esm/components/icon/icons/podium-icon.js.map +1 -0
  241. package/dist/esm/components/icon/icons/save-check-icon.js +14 -0
  242. package/dist/esm/components/icon/icons/save-check-icon.js.map +1 -0
  243. package/dist/esm/components/icon/icons/save-pen-icon.js +14 -0
  244. package/dist/esm/components/icon/icons/save-pen-icon.js.map +1 -0
  245. package/dist/esm/components/icon/icons/save-plus-icon.js +14 -0
  246. package/dist/esm/components/icon/icons/save-plus-icon.js.map +1 -0
  247. package/dist/esm/components/icon/icons/star-check-icon.js +14 -0
  248. package/dist/esm/components/icon/icons/star-check-icon.js.map +1 -0
  249. package/dist/esm/components/icon/icons/star-minus-icon.js +14 -0
  250. package/dist/esm/components/icon/icons/star-minus-icon.js.map +1 -0
  251. package/dist/esm/components/icon/icons/star-plus-icon.js +14 -0
  252. package/dist/esm/components/icon/icons/star-plus-icon.js.map +1 -0
  253. package/dist/esm/components/icon/icons/star-x-icon.js +14 -0
  254. package/dist/esm/components/icon/icons/star-x-icon.js.map +1 -0
  255. package/dist/esm/components/icon/icons/summary-icon.js +14 -0
  256. package/dist/esm/components/icon/icons/summary-icon.js.map +1 -0
  257. package/dist/esm/components/icon/icons/tag-plus-icon.js +14 -0
  258. package/dist/esm/components/icon/icons/tag-plus-icon.js.map +1 -0
  259. package/dist/esm/components/icon/icons/tag-x-icon.js +14 -0
  260. package/dist/esm/components/icon/icons/tag-x-icon.js.map +1 -0
  261. package/dist/esm/components/icon/icons/user-round-arrow-left-icon.js +14 -0
  262. package/dist/esm/components/icon/icons/user-round-arrow-left-icon.js.map +1 -0
  263. package/dist/esm/components/icon/icons/wrench-off-icon.js +14 -0
  264. package/dist/esm/components/icon/icons/wrench-off-icon.js.map +1 -0
  265. package/dist/esm/components/icon/index.js +30 -1
  266. package/dist/esm/components/input/namespace.js +1 -1
  267. package/dist/esm/components/link-box/namespace.js +1 -1
  268. package/dist/esm/components/list/namespace.js +1 -1
  269. package/dist/esm/components/loading/namespace.js +1 -1
  270. package/dist/esm/components/menu/namespace.js +1 -1
  271. package/dist/esm/components/modal/modal.js +1 -1
  272. package/dist/esm/components/modal/namespace.js +1 -1
  273. package/dist/esm/components/native-accordion/namespace.js +1 -1
  274. package/dist/esm/components/native-popover/namespace.js +1 -1
  275. package/dist/esm/components/native-select/namespace.js +1 -1
  276. package/dist/esm/components/native-table/namespace.js +1 -1
  277. package/dist/esm/components/notice/notice.js +1 -1
  278. package/dist/esm/components/pagination/namespace.js +1 -1
  279. package/dist/esm/components/pin-input/namespace.js +1 -1
  280. package/dist/esm/components/popover/namespace.js +1 -1
  281. package/dist/esm/components/qr-code/namespace.js +1 -1
  282. package/dist/esm/components/radio/namespace.js +1 -1
  283. package/dist/esm/components/radio/radio-group.js +1 -1
  284. package/dist/esm/components/radio-card/radio-card-group.js +1 -1
  285. package/dist/esm/components/radio-card/radio-card-group.namespace.js +1 -1
  286. package/dist/esm/components/radio-card/radio-card.namespace.js +1 -1
  287. package/dist/esm/components/reorder/namespace.js +1 -1
  288. package/dist/esm/components/resizable/namespace.js +1 -1
  289. package/dist/esm/components/saturation-slider/namespace.js +1 -1
  290. package/dist/esm/components/segmented-control/namespace.js +1 -1
  291. package/dist/esm/components/select/namespace.js +1 -1
  292. package/dist/esm/components/sidebar/namespace.js +1 -1
  293. package/dist/esm/components/slider/namespace.js +1 -1
  294. package/dist/esm/components/stat/namespace.js +1 -1
  295. package/dist/esm/components/steps/namespace.js +1 -1
  296. package/dist/esm/components/tabs/namespace.js +1 -1
  297. package/dist/esm/components/timeline/namespace.js +1 -1
  298. package/dist/esm/components/toggle/namespace.js +1 -1
  299. package/dist/esm/components/tree/namespace.js +1 -1
  300. package/dist/esm/components/tree/use-tree.js +1 -1
  301. package/dist/esm/components/tree/use-tree.js.map +1 -1
  302. package/dist/esm/core/components/props.js +1 -1
  303. package/dist/esm/core/components/props.js.map +1 -1
  304. package/dist/esm/core/css/styles.js.map +1 -1
  305. package/dist/esm/core/css/utils.js +1 -1
  306. package/dist/esm/core/css/utils.js.map +1 -1
  307. package/dist/esm/core/system/use-system-color-mode.js.map +1 -1
  308. package/dist/esm/hooks/use-breakpoint/use-breakpoint.js.map +1 -1
  309. package/dist/esm/index.js +59 -1
  310. package/dist/types/components/accordion/namespace.d.ts +1 -1
  311. package/dist/types/components/action-bar/namespace.d.ts +1 -1
  312. package/dist/types/components/alert/namespace.d.ts +1 -1
  313. package/dist/types/components/alpha-slider/namespace.d.ts +1 -1
  314. package/dist/types/components/autocomplete/namespace.d.ts +1 -1
  315. package/dist/types/components/avatar/namespace.d.ts +1 -1
  316. package/dist/types/components/blockquote/namespace.d.ts +1 -1
  317. package/dist/types/components/breadcrumb/namespace.d.ts +1 -1
  318. package/dist/types/components/button/namespace.d.ts +1 -1
  319. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  320. package/dist/types/components/calendar/namespace.d.ts +1 -1
  321. package/dist/types/components/card/namespace.d.ts +1 -1
  322. package/dist/types/components/carousel/namespace.d.ts +1 -1
  323. package/dist/types/components/chart/area-chart.namespace.d.ts +1 -1
  324. package/dist/types/components/chart/bar-chart.namespace.d.ts +1 -1
  325. package/dist/types/components/chart/cartesian-chart.d.ts +1 -1
  326. package/dist/types/components/chart/composed-chart.namespace.d.ts +1 -1
  327. package/dist/types/components/chart/donut-chart.namespace.d.ts +1 -1
  328. package/dist/types/components/chart/line-chart.namespace.d.ts +1 -1
  329. package/dist/types/components/chart/pie-chart.namespace.d.ts +1 -1
  330. package/dist/types/components/chart/polar-chart.d.ts +4 -4
  331. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  332. package/dist/types/components/chart/radar-chart.namespace.d.ts +1 -1
  333. package/dist/types/components/chart/radial-chart.namespace.d.ts +1 -1
  334. package/dist/types/components/chart/use-cartesian-chart.d.ts +1 -2
  335. package/dist/types/components/checkbox/checkbox-group.d.ts +1 -1
  336. package/dist/types/components/checkbox/namespace.d.ts +1 -1
  337. package/dist/types/components/checkbox-card/checkbox-card-group.d.ts +1 -1
  338. package/dist/types/components/checkbox-card/checkbox-card-group.namespace.d.ts +1 -1
  339. package/dist/types/components/checkbox-card/checkbox-card.namespace.d.ts +1 -1
  340. package/dist/types/components/circle-progress/namespace.d.ts +1 -1
  341. package/dist/types/components/color-selector/namespace.d.ts +1 -1
  342. package/dist/types/components/container/namespace.d.ts +1 -1
  343. package/dist/types/components/data-list/namespace.d.ts +1 -1
  344. package/dist/types/components/drawer/namespace.d.ts +1 -1
  345. package/dist/types/components/dropzone/namespace.d.ts +1 -1
  346. package/dist/types/components/editable/namespace.d.ts +1 -1
  347. package/dist/types/components/empty-state/namespace.d.ts +1 -1
  348. package/dist/types/components/field/namespace.d.ts +1 -1
  349. package/dist/types/components/fieldset/namespace.d.ts +1 -1
  350. package/dist/types/components/form/namespace.d.ts +1 -1
  351. package/dist/types/components/format/format-date-time.style.d.ts +1 -1
  352. package/dist/types/components/format/namespace.d.ts +1 -1
  353. package/dist/types/components/hue-slider/namespace.d.ts +1 -1
  354. package/dist/types/components/icon/icon.d.ts +1 -1
  355. package/dist/types/components/icon/icons/ad-icon.d.ts +13 -0
  356. package/dist/types/components/icon/icons/banknote-check-icon.d.ts +13 -0
  357. package/dist/types/components/icon/icons/bone-fracture-icon.d.ts +13 -0
  358. package/dist/types/components/icon/icons/clock-arrow-left-icon.d.ts +13 -0
  359. package/dist/types/components/icon/icons/clock-arrow-right-icon.d.ts +13 -0
  360. package/dist/types/components/icon/icons/database-arrow-down-icon.d.ts +13 -0
  361. package/dist/types/components/icon/icons/database-arrow-up-icon.d.ts +13 -0
  362. package/dist/types/components/icon/icons/database-check-icon.d.ts +13 -0
  363. package/dist/types/components/icon/icons/database-minus-icon.d.ts +13 -0
  364. package/dist/types/components/icon/icons/database-plus-icon.d.ts +13 -0
  365. package/dist/types/components/icon/icons/database-x-icon.d.ts +13 -0
  366. package/dist/types/components/icon/icons/eye-dashed-icon.d.ts +13 -0
  367. package/dist/types/components/icon/icons/index.d.ts +31 -2
  368. package/dist/types/components/icon/icons/index.types.d.ts +1 -1
  369. package/dist/types/components/icon/icons/list-sort-ascending-icon.d.ts +13 -0
  370. package/dist/types/components/icon/icons/list-sort-descending-icon.d.ts +13 -0
  371. package/dist/types/components/icon/icons/pencil-sparkles-icon.d.ts +13 -0
  372. package/dist/types/components/icon/icons/phi-icon.d.ts +13 -0
  373. package/dist/types/components/icon/icons/podium-icon.d.ts +13 -0
  374. package/dist/types/components/icon/icons/save-check-icon.d.ts +13 -0
  375. package/dist/types/components/icon/icons/save-pen-icon.d.ts +13 -0
  376. package/dist/types/components/icon/icons/save-plus-icon.d.ts +13 -0
  377. package/dist/types/components/icon/icons/star-check-icon.d.ts +13 -0
  378. package/dist/types/components/icon/icons/star-minus-icon.d.ts +13 -0
  379. package/dist/types/components/icon/icons/star-plus-icon.d.ts +13 -0
  380. package/dist/types/components/icon/icons/star-x-icon.d.ts +13 -0
  381. package/dist/types/components/icon/icons/summary-icon.d.ts +13 -0
  382. package/dist/types/components/icon/icons/tag-plus-icon.d.ts +13 -0
  383. package/dist/types/components/icon/icons/tag-x-icon.d.ts +13 -0
  384. package/dist/types/components/icon/icons/user-round-arrow-left-icon.d.ts +13 -0
  385. package/dist/types/components/icon/icons/wrench-off-icon.d.ts +13 -0
  386. package/dist/types/components/icon/index.d.ts +30 -1
  387. package/dist/types/components/input/namespace.d.ts +1 -1
  388. package/dist/types/components/link-box/namespace.d.ts +1 -1
  389. package/dist/types/components/list/namespace.d.ts +1 -1
  390. package/dist/types/components/loading/loading.d.ts +1 -1
  391. package/dist/types/components/loading/namespace.d.ts +1 -1
  392. package/dist/types/components/menu/namespace.d.ts +1 -1
  393. package/dist/types/components/modal/namespace.d.ts +1 -1
  394. package/dist/types/components/native-accordion/namespace.d.ts +1 -1
  395. package/dist/types/components/native-popover/namespace.d.ts +1 -1
  396. package/dist/types/components/native-select/namespace.d.ts +1 -1
  397. package/dist/types/components/native-table/namespace.d.ts +1 -1
  398. package/dist/types/components/notice/notice.style.d.ts +1 -1
  399. package/dist/types/components/pagination/namespace.d.ts +1 -1
  400. package/dist/types/components/pin-input/namespace.d.ts +1 -1
  401. package/dist/types/components/popover/namespace.d.ts +1 -1
  402. package/dist/types/components/qr-code/namespace.d.ts +1 -1
  403. package/dist/types/components/radio/namespace.d.ts +1 -1
  404. package/dist/types/components/radio/radio-group.d.ts +1 -1
  405. package/dist/types/components/radio-card/radio-card-group.d.ts +1 -1
  406. package/dist/types/components/radio-card/radio-card-group.namespace.d.ts +1 -1
  407. package/dist/types/components/radio-card/radio-card.namespace.d.ts +1 -1
  408. package/dist/types/components/reorder/namespace.d.ts +1 -1
  409. package/dist/types/components/resizable/namespace.d.ts +1 -1
  410. package/dist/types/components/ripple/ripple.style.d.ts +1 -1
  411. package/dist/types/components/saturation-slider/namespace.d.ts +1 -1
  412. package/dist/types/components/segmented-control/namespace.d.ts +1 -1
  413. package/dist/types/components/select/namespace.d.ts +1 -1
  414. package/dist/types/components/sidebar/namespace.d.ts +1 -1
  415. package/dist/types/components/sidebar/sidebar.d.ts +1 -1
  416. package/dist/types/components/slider/namespace.d.ts +1 -1
  417. package/dist/types/components/snacks/use-snacks.d.ts +1 -1
  418. package/dist/types/components/stat/namespace.d.ts +1 -1
  419. package/dist/types/components/steps/namespace.d.ts +1 -1
  420. package/dist/types/components/table/table.d.ts +1 -1
  421. package/dist/types/components/tabs/namespace.d.ts +1 -1
  422. package/dist/types/components/timeline/namespace.d.ts +1 -1
  423. package/dist/types/components/toggle/namespace.d.ts +1 -1
  424. package/dist/types/components/tree/namespace.d.ts +1 -1
  425. package/dist/types/core/css/styles.d.ts +136 -49
  426. package/dist/types/index.d.ts +31 -2
  427. package/dist/types/providers/i18n-provider/intl/en-US.d.ts +1 -1
  428. package/dist/types/providers/i18n-provider/intl/index.d.ts +1 -1
  429. package/package.json +8 -8
@@ -9,11 +9,15 @@ var namespace_exports = /* @__PURE__ */ require_runtime.__exportAll({
9
9
  usePropsContext: () => require_toggle.useTogglePropsContext
10
10
  });
11
11
  //#endregion
12
+ exports.Item = require_toggle.Toggle;
13
+ exports.PropsContext = require_toggle.TogglePropsContext;
14
+ exports.Root = require_toggle_group.ToggleGroupRoot;
12
15
  Object.defineProperty(exports, "namespace_exports", {
13
16
  enumerable: true,
14
17
  get: function() {
15
18
  return namespace_exports;
16
19
  }
17
20
  });
21
+ exports.usePropsContext = require_toggle.useTogglePropsContext;
18
22
 
19
23
  //# sourceMappingURL=namespace.cjs.map
@@ -15,11 +15,21 @@ var namespace_exports = /* @__PURE__ */ require_runtime.__exportAll({
15
15
  usePropsContext: () => require_tree.useTreePropsContext
16
16
  });
17
17
  //#endregion
18
+ exports.Context = require_use_tree.TreeContext;
19
+ exports.DescendantsContext = require_use_tree.TreeDescendantsContext;
20
+ exports.Item = require_tree.TreeItem;
21
+ exports.PropsContext = require_tree.TreePropsContext;
22
+ exports.Root = require_tree.TreeRoot;
18
23
  Object.defineProperty(exports, "namespace_exports", {
19
24
  enumerable: true,
20
25
  get: function() {
21
26
  return namespace_exports;
22
27
  }
23
28
  });
29
+ exports.useContext = require_use_tree.useTreeContext;
30
+ exports.useDescendant = require_use_tree.useTreeDescendant;
31
+ exports.useDescendants = require_use_tree.useTreeDescendants;
32
+ exports.useItemContext = require_use_tree.useTreeItemContext;
33
+ exports.usePropsContext = require_tree.useTreePropsContext;
24
34
 
25
35
  //# sourceMappingURL=namespace.cjs.map
@@ -378,7 +378,7 @@ const useTreeItem = ({ asyncChildren, children: childrenProp, defaultOpen, disab
378
378
  if (!ev.target.checked) parentTarget.push(...parentValues);
379
379
  target.push(...parentTarget);
380
380
  }
381
- if (ev.target.checked) return [...new Set([...prev, ...target])];
381
+ if (ev.target.checked) return [.../* @__PURE__ */ new Set([...prev, ...target])];
382
382
  else return prev.filter((prevValue) => !target.includes(prevValue));
383
383
  });
384
384
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree.cjs","names":["createDescendants","createContext","useControllableState","mergeProps","useIds","Children","useDisclosure","useAsyncCallback","mergeRefs"],"sources":["../../../../src/components/tree/use-tree.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n ChangeEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n SetStateAction,\n} from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { Descendant, Descendants } from \"../../hooks/use-descendants\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UseCheckboxProps } from \"../checkbox\"\nimport { Children, useCallback, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useAsyncCallback } from \"../../hooks/use-async-callback\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport {\n ariaAttr,\n assignRef,\n createContext,\n cx,\n dataAttr,\n filterEmpty,\n handlerAll,\n isArray,\n isInputElement,\n isUndefined,\n match,\n mergeRefs,\n runKeyAction,\n setAttribute,\n useIds,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nexport interface TreeControl {\n collapse: () => void\n expand: () => void\n}\n\ninterface TreeDescendantProps {\n expanded: boolean\n group: boolean\n id: string\n value: string\n query?: string\n}\n\nconst {\n DescendantsContext: TreeDescendantsContext,\n useDescendant: useTreeDescendant,\n useDescendants: useTreeDescendants,\n} = createDescendants<HTMLElement, TreeDescendantProps>()\n\nexport { TreeDescendantsContext, useTreeDescendant, useTreeDescendants }\n\ninterface TreeContext extends Omit<\n UseTreeReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [TreeContext, useTreeContext] = createContext<TreeContext>({\n name: \"TreeContext\",\n})\n\nexport { TreeContext, useTreeContext }\n\ninterface TreeItemContext extends Pick<\n UseTreeItemReturn,\n | \"branchOpen\"\n | \"groupOpen\"\n | \"level\"\n | \"onGroupClose\"\n | \"onGroupOpen\"\n | \"onGroupToggle\"\n | \"value\"\n> {}\n\nconst [TreeItemContext, useTreeItemContext] = createContext<TreeItemContext>({\n name: \"TreeItemContext\",\n strict: false,\n})\n\nexport { TreeItemContext, useTreeItemContext }\n\nexport interface UseTreeProps<\n Multiple extends boolean = false,\n> extends HTMLProps<\"ul\"> {\n /**\n * If `true`, the tree will allow checkable items.\n *\n * @default false\n */\n checkable?: boolean\n /**\n * The checked value of the tree.\n */\n checkedValue?: string[]\n /**\n * Ref of the tree callbacks.\n */\n controlRef?: RefObject<null | TreeControl>\n /**\n * The initial checked value of the tree.\n */\n defaultCheckedValue?: string[]\n /**\n * The initial expanded value of the tree.\n */\n defaultExpandedValue?: string[]\n /**\n * The initial selected value of the tree.\n */\n defaultSelectedValue?: Multiple extends true ? string[] : string\n /**\n * The expanded value of the tree.\n */\n expandedValue?: string[]\n /**\n * If `true`, the tree will allow multiple selection.\n *\n * @default false\n */\n multiple?: Multiple\n /**\n * The selected value of the tree.\n */\n selectedValue?: Multiple extends true ? string[] : string\n /**\n * The callback invoked when checked value changes.\n */\n onCheckedChange?: (value: string[]) => void\n /**\n * The callback invoked when expanded value changes.\n */\n onExpandedChange?: (value: string[]) => void\n /**\n * The callback invoked when selected value changes.\n */\n onSelectedChange?: (value: Multiple extends true ? string[] : string) => void\n}\n\nexport const useTree = <Multiple extends boolean = false>({\n checkable = false,\n checkedValue: checkedValueProp,\n children,\n controlRef,\n defaultCheckedValue = [],\n defaultExpandedValue = [],\n defaultSelectedValue,\n expandedValue: expandedValueProp,\n multiple,\n selectedValue: selectedValueProp,\n onCheckedChange: onCheckedChangeProp,\n onExpandedChange: onExpandedChangeProp,\n onSelectedChange: onSelectedChangeProp,\n ...rest\n}: UseTreeProps<Multiple> = {}) => {\n type MaybeSelectedValue = Multiple extends true ? string[] : string\n\n const [selectedValue, setSelectedValue] = useControllableState({\n defaultValue:\n defaultSelectedValue ?? ((multiple ? [] : \"\") as MaybeSelectedValue),\n value: selectedValueProp,\n onChange: onSelectedChangeProp,\n })\n const [checkedValue, onCheckedChange] = useControllableState({\n defaultValue: defaultCheckedValue,\n value: checkedValueProp,\n onChange: onCheckedChangeProp,\n })\n const [expandedValue, setExpandedValue] = useControllableState({\n defaultValue: defaultExpandedValue,\n value: expandedValueProp,\n onChange: onExpandedChangeProp,\n })\n const descendants = useTreeDescendants()\n const activeDescendant = useRef<Descendant<\n HTMLElement,\n TreeDescendantProps\n > | null>(null)\n const searchRef = useRef<{ value: string; omitValue?: string }>({\n omitValue: undefined,\n value: \"\",\n })\n const timeoutRef = useRef<any>(null)\n\n const onExpandAll = useCallback(() => {\n const values = descendants.enabledValues()\n const group = values.filter(({ group }) => group)\n const value = group.map(({ value }) => value)\n\n setExpandedValue(value)\n }, [descendants, setExpandedValue])\n\n const onCollapseAll = useCallback(() => {\n setExpandedValue([])\n }, [setExpandedValue])\n\n const onActiveDescendant = useCallback(\n (\n descendant?: Descendant<HTMLElement, TreeDescendantProps>,\n shouldFocus = true,\n ) => {\n if (!descendant) return\n\n descendants.values().forEach(({ node }) => {\n node.tabIndex = -1\n })\n\n activeDescendant.current = descendant\n descendant.node.tabIndex = 0\n\n if (shouldFocus) descendant.node.focus()\n },\n [descendants],\n )\n\n const onSearch = useCallback(\n (value: string, omitValue: string) => {\n clearTimeout(timeoutRef.current)\n\n searchRef.current.value += value\n\n if (!searchRef.current.omitValue) searchRef.current.omitValue = omitValue\n\n timeoutRef.current = setTimeout(() => {\n searchRef.current = { omitValue: undefined, value: \"\" }\n }, 400)\n\n const values = descendants\n .enabledValues({ expanded: true })\n .filter(\n (descendant) =>\n !isUndefined(descendant.value) &&\n descendant.value !== searchRef.current.omitValue,\n )\n const descendant = values.find(({ query, value }) =>\n match(query ?? value, searchRef.current.value, \"startsWith\"),\n )\n\n if (descendant) onActiveDescendant(descendant)\n },\n [descendants, onActiveDescendant],\n )\n\n const onSelectedChange = useCallback(\n (value: SetStateAction<string | string[]>) => {\n setSelectedValue(value as SetStateAction<MaybeSelectedValue>)\n },\n [setSelectedValue],\n )\n\n const onExpandedChange = useCallback(\n (value: string) => {\n setExpandedValue((prev) => {\n if (prev.includes(value))\n return prev.filter((prevValue) => prevValue !== value)\n else return [...prev, value]\n })\n },\n [setExpandedValue],\n )\n\n useSafeLayoutEffect(() => {\n const value = isArray(selectedValue) ? selectedValue.at(0) : selectedValue\n const expandedDescendants = descendants.enabledValues({ expanded: true })\n\n if (value) {\n const descendant = expandedDescendants.find(\n (descendant) => value === descendant.value,\n )\n\n if (descendant) onActiveDescendant(descendant, false)\n else onActiveDescendant(expandedDescendants.at(0), false)\n } else {\n onActiveDescendant(expandedDescendants.at(0), false)\n }\n }, [children])\n\n assignRef(controlRef, { collapse: onCollapseAll, expand: onExpandAll })\n\n const getRootProps: PropGetter<\"ul\"> = useCallback(\n (props) =>\n mergeProps(\n {\n \"aria-multiselectable\": ariaAttr(multiple || checkable),\n children,\n role: \"tree\",\n },\n rest,\n props,\n )(),\n [multiple, checkable, rest, children],\n )\n\n return {\n activeDescendant,\n checkable,\n checkedValue,\n descendants,\n expandedValue,\n multiple,\n selectedValue,\n getRootProps,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n }\n}\n\nexport type UseTreeReturn = ReturnType<typeof useTree>\n\nconst getRootDescendant =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const segments = value.split(\"/\")\n\n if (segments.length <= 1) return\n\n const rootValue = segments.at(0)\n\n return descendants.enabledValues().find(({ value }) => value === rootValue)\n }\n\nconst getParentDescendant =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const segments = value.split(\"/\")\n\n if (segments.length <= 1) return\n\n const parentValue = segments.slice(0, -1).join(\"/\")\n\n return descendants\n .enabledValues()\n .find(({ value }) => value === parentValue)\n }\n\nconst getChildDescendants =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const children = descendants\n .enabledValues()\n .filter((descendant) => descendant.value.startsWith(value + \"/\"))\n const values = children\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n\n return { children, values }\n }\n\nconst getParentValues = (value: string) => {\n const segments = value.split(\"/\")\n\n return segments\n .reduce<string[]>((prev, current) => {\n const prevValue = prev.at(-1)\n return prevValue ? [...prev, [prevValue, current].join(\"/\")] : [current]\n }, [])\n .toReversed()\n}\n\nconst getCheckbox = (node?: HTMLElement) => {\n const el = node?.querySelector(\"input[type='checkbox']\")\n\n return isInputElement(el) ? el : null\n}\n\nconst getAllChecked = (\n descendants: Descendant<HTMLElement, TreeDescendantProps>[],\n trulyValues?: string[],\n falsyValues?: string[],\n) => {\n const checked = descendants.map(({ node, value }) => {\n if (value && trulyValues?.includes(value)) return true\n if (value && falsyValues?.includes(value)) return false\n\n const checkbox = getCheckbox(node)\n\n return !!checkbox?.checked\n })\n\n const allChecked = !!checked.length && checked.every(Boolean)\n const indeterminate = checked.some(Boolean) && !allChecked\n\n return { allChecked, checked, indeterminate }\n}\n\nconst getRangeValues =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (start: string, end: string) => {\n const values = descendants.enabledValues()\n const [startIndex, endIndex] = [\n values.findIndex((descendant) => descendant.value === start),\n values.findIndex((descendant) => descendant.value === end),\n ].sort((a, b) => a - b)\n\n return values\n .slice(startIndex, endIndex! + 1)\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n .sort((a, b) => {\n if (a === start && b !== start) return -1\n if (a !== start && b === start) return 1\n\n return 0\n })\n }\n\nexport interface UseTreeItemProps\n extends HTMLProps<\"div\">, Omit<UseDisclosureProps, \"timing\"> {\n /**\n * If `true`, the tree item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The query to search for in the tree item.\n */\n query?: string\n /**\n * The value of the item.\n */\n value?: string\n /**\n * If provided, the tree item will be rendered as an async tree item.\n */\n asyncChildren?: () => Promise<ReactNode>\n}\n\nexport const useTreeItem = ({\n asyncChildren,\n children: childrenProp,\n defaultOpen,\n disabled = false,\n open: openProp,\n query,\n value: valueProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n}: UseTreeItemProps = {}) => {\n const context = useTreeItemContext()\n const {\n activeDescendant,\n checkable,\n checkedValue,\n expandedValue,\n multiple,\n selectedValue,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n } = useTreeContext()\n const [children, setChildren] = useState<ReactNode>(childrenProp)\n const [indeterminate, setIndeterminate] = useState(false)\n const [itemId, labelId, checkboxId] = useIds()\n const initialAsyncRef = useRef(false)\n const async = !!asyncChildren\n const group = async || Children.count(children) > 0\n const level: number = (context?.level ?? 0) + 1\n const value: string = filterEmpty([context?.value, valueProp]).join(\"/\")\n const nested = !!context?.value\n const selected = isArray(selectedValue)\n ? !!value && selectedValue.includes(value)\n : !!value && selectedValue === value\n const checked = !!value && checkedValue.includes(value)\n const defaultExpanded = !!value && expandedValue.includes(value)\n const {\n open: groupOpen,\n onClose,\n onOpen,\n } = useDisclosure({\n defaultOpen: defaultOpen ?? defaultExpanded,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const branchOpen: boolean[] = nested\n ? [...context.branchOpen, groupOpen]\n : [groupOpen]\n const { descendants, register } = useTreeDescendant({\n id: itemId!,\n disabled,\n expanded: branchOpen.slice(0, -1).every(Boolean),\n group,\n query,\n value,\n })\n\n const [groupLoading, onGroupChildren] = useAsyncCallback(async () => {\n const children = await asyncChildren?.()\n\n setChildren(children)\n }, [asyncChildren])\n\n const onSelect = useCallback(\n (\n ev: (\n | Partial<KeyboardEvent<HTMLElement>>\n | Partial<MouseEvent<HTMLElement>>\n ) & { value?: string } = {},\n ) => {\n const selectedValue = ev.value ?? value\n\n if (disabled || !selectedValue) return\n\n if (multiple)\n onSelectedChange((prev) => {\n if (!isArray(prev)) return prev\n\n if (ev.ctrlKey || ev.metaKey) {\n if (prev.includes(selectedValue))\n return prev.filter((prevValue) => prevValue !== selectedValue)\n else return [...prev, selectedValue]\n } else if (ev.shiftKey && prev[0]) {\n if (prev[0] === selectedValue) return prev\n\n return getRangeValues(descendants)(prev[0], selectedValue)\n } else {\n return [selectedValue]\n }\n })\n else onSelectedChange(selectedValue)\n },\n [descendants, disabled, multiple, onSelectedChange, value],\n )\n\n const onGroupOpen = useCallback(() => {\n if (disabled || !value) return\n\n if (async && !initialAsyncRef.current) {\n initialAsyncRef.current = true\n\n onGroupChildren()\n .then(() => {\n onOpen()\n onExpandedChange(value)\n })\n .catch(() => {\n initialAsyncRef.current = false\n })\n } else {\n onOpen()\n onExpandedChange(value)\n }\n }, [disabled, async, onGroupChildren, onOpen, onExpandedChange, value])\n\n const onGroupClose = useCallback(() => {\n if (disabled || !value) return\n\n onClose()\n onExpandedChange(value)\n }, [disabled, onClose, onExpandedChange, value])\n\n const onGroupToggle = useCallback(() => {\n if (groupOpen) onGroupClose()\n else onGroupOpen()\n }, [groupOpen, onGroupClose, onGroupOpen])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n if (disabled || !value) return\n\n runKeyAction(ev, {\n a: () => {\n if (!multiple || !(ev.ctrlKey || ev.metaKey)) return\n\n const values = descendants\n .enabledValues()\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n\n onSelectedChange(values)\n },\n ArrowDown: () => {\n if ((ev.ctrlKey || ev.metaKey) && ev.shiftKey) {\n onExpandAll()\n } else {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n\n if (descendant && ev.shiftKey && multiple)\n onSelect({ ctrlKey: true, value: descendant.value })\n }\n },\n ArrowLeft: () => {\n if (group && groupOpen) {\n onGroupClose()\n } else if (nested) {\n const descendant = getParentDescendant(descendants)(value)\n\n onActiveDescendant(descendant)\n }\n },\n ArrowRight: () => {\n if (!group) return\n\n if (groupOpen) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n } else {\n if (!groupLoading) onGroupOpen()\n }\n },\n ArrowUp: () => {\n if ((ev.ctrlKey || ev.metaKey) && ev.shiftKey) {\n onCollapseAll()\n\n if (!nested) return\n\n const descendant = getRootDescendant(descendants)(value)\n\n onActiveDescendant(descendant)\n } else {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n\n if (descendant && ev.shiftKey && multiple)\n onSelect({ ctrlKey: true, value: descendant.value })\n }\n },\n End: () => {\n const descendant = descendants\n .enabledValues({ expanded: true })\n .at(-1)\n\n onActiveDescendant(descendant)\n },\n Enter: () => {\n if (group) onGroupToggle()\n\n onSelect(ev)\n },\n Home: () => {\n const descendant = descendants.enabledValues({ expanded: true }).at(0)\n\n onActiveDescendant(descendant)\n },\n Space: () => {\n if (group) onGroupToggle()\n\n onSelect(ev)\n },\n })\n\n if (ev.key.length !== 1) return\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return\n\n ev.preventDefault()\n\n onSearch(ev.key, query ?? value)\n },\n [\n activeDescendant,\n descendants,\n disabled,\n group,\n groupLoading,\n groupOpen,\n multiple,\n nested,\n onActiveDescendant,\n onCollapseAll,\n onExpandAll,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n onSearch,\n onSelect,\n onSelectedChange,\n query,\n value,\n ],\n )\n\n const onItemClick = useCallback(\n (ev: MouseEvent<HTMLLIElement>) => {\n ev.stopPropagation()\n\n if (disabled || !value) return\n\n if (group && !groupLoading)\n if (!ev.ctrlKey && !ev.metaKey && !ev.shiftKey) onGroupToggle()\n\n onSelect(ev)\n },\n [disabled, group, groupLoading, onGroupToggle, onSelect, value],\n )\n\n const onCheckboxChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (disabled || !value) return\n\n ev.stopPropagation()\n\n if (group) setIndeterminate(false)\n\n onCheckedChange((prev) => {\n const target = [value]\n\n if (group) {\n const { values } = getChildDescendants(descendants)(value)\n\n target.push(...values)\n }\n\n if (nested) {\n const parentValues = getParentValues(context.value)\n const parentTarget: string[] = []\n\n parentValues.forEach((parentValue) => {\n const { children } = getChildDescendants(descendants)(parentValue)\n const { allChecked } = getAllChecked(\n children,\n [...parentTarget, ...(ev.target.checked ? target : [])],\n !ev.target.checked ? target : [],\n )\n\n if (allChecked) parentTarget.push(parentValue)\n })\n\n if (!ev.target.checked) parentTarget.push(...parentValues)\n\n target.push(...parentTarget)\n }\n\n if (ev.target.checked) return [...new Set([...prev, ...target])]\n else return prev.filter((prevValue) => !target.includes(prevValue))\n })\n },\n [disabled, group, onCheckedChange, value, nested, descendants, context],\n )\n\n useSafeLayoutEffect(() => {\n if (defaultExpanded)\n if (async && !initialAsyncRef.current) {\n initialAsyncRef.current = true\n\n onGroupChildren()\n .then(() => {\n onOpen()\n })\n .catch(() => {\n initialAsyncRef.current = false\n })\n } else {\n onOpen()\n }\n else onClose()\n }, [async, defaultExpanded, onClose, onGroupChildren, onOpen])\n\n useSafeLayoutEffect(() => {\n if (!group || !checkable) return\n\n const { children } = getChildDescendants(descendants)(value)\n const { indeterminate } = getAllChecked(children)\n\n setIndeterminate(indeterminate)\n }, [checkedValue])\n\n useSafeLayoutEffect(() => {\n if (!checkable) return\n\n const { node } = getParentDescendant(descendants)(value) ?? {}\n const checkbox = getCheckbox(node)\n\n if (!checkbox) return\n\n const cleanup = setAttribute(checkbox, \"aria-controls\", checkboxId)\n\n return cleanup\n }, [checkable, descendants])\n\n const getItemProps: PropGetter<\"li\"> = useCallback(\n ({ ref, \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n id: itemId,\n ref: mergeRefs(ref, register),\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"aria-level\": level,\n \"aria-selected\": ariaAttr(selected),\n \"data-disabled\": dataAttr(disabled),\n role: \"treeitem\",\n tabIndex: -1,\n ...props,\n onClick: handlerAll(props.onClick, onItemClick),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [\n itemId,\n register,\n disabled,\n labelId,\n level,\n selected,\n onItemClick,\n onKeyDown,\n ],\n )\n\n const getGroupItemProps: PropGetter<\"li\"> = useCallback(\n (props = {}) => getItemProps({ \"aria-expanded\": groupOpen, ...props }),\n [getItemProps, groupOpen],\n )\n\n const getIndicatorProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-expanded\": groupOpen,\n \"aria-hidden\": true,\n \"data-disabled\": dataAttr(disabled),\n \"data-loading\": dataAttr(groupLoading),\n \"data-selected\": dataAttr(selected),\n role: \"presentation\",\n ...props,\n }),\n [disabled, groupOpen, selected, groupLoading],\n )\n\n const getCheckboxProps: PropGetter<UseCheckboxProps> = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n id: checkboxId,\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"data-selected\": dataAttr(selected),\n checked,\n disabled,\n indeterminate,\n tabIndex: -1,\n ...props,\n onChange: handlerAll(props.onChange, onCheckboxChange),\n }),\n [\n checkboxId,\n labelId,\n selected,\n checked,\n disabled,\n indeterminate,\n onCheckboxChange,\n ],\n )\n\n const getGroupProps: PropGetter<\"ul\"> = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-busy\": ariaAttr(groupLoading),\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"data-disabled\": dataAttr(disabled),\n role: \"group\",\n ...props,\n }),\n [labelId, disabled, groupLoading],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props = {}) => ({ id: labelId, ...props }),\n [labelId],\n )\n\n return {\n branchOpen,\n checked,\n children,\n disabled,\n group,\n groupLoading,\n groupOpen,\n indeterminate,\n level,\n props: rest,\n selected,\n value,\n getCheckboxProps,\n getGroupItemProps,\n getGroupProps,\n getIndicatorProps,\n getItemProps,\n getLabelProps,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n }\n}\n\nexport type UseTreeItemReturn = ReturnType<typeof useTreeItem>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tree.cjs","names":["createDescendants","createContext","useControllableState","mergeProps","useIds","Children","useDisclosure","useAsyncCallback","mergeRefs"],"sources":["../../../../src/components/tree/use-tree.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n ChangeEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n SetStateAction,\n} from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { Descendant, Descendants } from \"../../hooks/use-descendants\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UseCheckboxProps } from \"../checkbox\"\nimport { Children, useCallback, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useAsyncCallback } from \"../../hooks/use-async-callback\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport {\n ariaAttr,\n assignRef,\n createContext,\n cx,\n dataAttr,\n filterEmpty,\n handlerAll,\n isArray,\n isInputElement,\n isUndefined,\n match,\n mergeRefs,\n runKeyAction,\n setAttribute,\n useIds,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nexport interface TreeControl {\n collapse: () => void\n expand: () => void\n}\n\ninterface TreeDescendantProps {\n expanded: boolean\n group: boolean\n id: string\n value: string\n query?: string\n}\n\nconst {\n DescendantsContext: TreeDescendantsContext,\n useDescendant: useTreeDescendant,\n useDescendants: useTreeDescendants,\n} = createDescendants<HTMLElement, TreeDescendantProps>()\n\nexport { TreeDescendantsContext, useTreeDescendant, useTreeDescendants }\n\ninterface TreeContext extends Omit<\n UseTreeReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [TreeContext, useTreeContext] = createContext<TreeContext>({\n name: \"TreeContext\",\n})\n\nexport { TreeContext, useTreeContext }\n\ninterface TreeItemContext extends Pick<\n UseTreeItemReturn,\n | \"branchOpen\"\n | \"groupOpen\"\n | \"level\"\n | \"onGroupClose\"\n | \"onGroupOpen\"\n | \"onGroupToggle\"\n | \"value\"\n> {}\n\nconst [TreeItemContext, useTreeItemContext] = createContext<TreeItemContext>({\n name: \"TreeItemContext\",\n strict: false,\n})\n\nexport { TreeItemContext, useTreeItemContext }\n\nexport interface UseTreeProps<\n Multiple extends boolean = false,\n> extends HTMLProps<\"ul\"> {\n /**\n * If `true`, the tree will allow checkable items.\n *\n * @default false\n */\n checkable?: boolean\n /**\n * The checked value of the tree.\n */\n checkedValue?: string[]\n /**\n * Ref of the tree callbacks.\n */\n controlRef?: RefObject<null | TreeControl>\n /**\n * The initial checked value of the tree.\n */\n defaultCheckedValue?: string[]\n /**\n * The initial expanded value of the tree.\n */\n defaultExpandedValue?: string[]\n /**\n * The initial selected value of the tree.\n */\n defaultSelectedValue?: Multiple extends true ? string[] : string\n /**\n * The expanded value of the tree.\n */\n expandedValue?: string[]\n /**\n * If `true`, the tree will allow multiple selection.\n *\n * @default false\n */\n multiple?: Multiple\n /**\n * The selected value of the tree.\n */\n selectedValue?: Multiple extends true ? string[] : string\n /**\n * The callback invoked when checked value changes.\n */\n onCheckedChange?: (value: string[]) => void\n /**\n * The callback invoked when expanded value changes.\n */\n onExpandedChange?: (value: string[]) => void\n /**\n * The callback invoked when selected value changes.\n */\n onSelectedChange?: (value: Multiple extends true ? string[] : string) => void\n}\n\nexport const useTree = <Multiple extends boolean = false>({\n checkable = false,\n checkedValue: checkedValueProp,\n children,\n controlRef,\n defaultCheckedValue = [],\n defaultExpandedValue = [],\n defaultSelectedValue,\n expandedValue: expandedValueProp,\n multiple,\n selectedValue: selectedValueProp,\n onCheckedChange: onCheckedChangeProp,\n onExpandedChange: onExpandedChangeProp,\n onSelectedChange: onSelectedChangeProp,\n ...rest\n}: UseTreeProps<Multiple> = {}) => {\n type MaybeSelectedValue = Multiple extends true ? string[] : string\n\n const [selectedValue, setSelectedValue] = useControllableState({\n defaultValue:\n defaultSelectedValue ?? ((multiple ? [] : \"\") as MaybeSelectedValue),\n value: selectedValueProp,\n onChange: onSelectedChangeProp,\n })\n const [checkedValue, onCheckedChange] = useControllableState({\n defaultValue: defaultCheckedValue,\n value: checkedValueProp,\n onChange: onCheckedChangeProp,\n })\n const [expandedValue, setExpandedValue] = useControllableState({\n defaultValue: defaultExpandedValue,\n value: expandedValueProp,\n onChange: onExpandedChangeProp,\n })\n const descendants = useTreeDescendants()\n const activeDescendant = useRef<Descendant<\n HTMLElement,\n TreeDescendantProps\n > | null>(null)\n const searchRef = useRef<{ value: string; omitValue?: string }>({\n omitValue: undefined,\n value: \"\",\n })\n const timeoutRef = useRef<any>(null)\n\n const onExpandAll = useCallback(() => {\n const values = descendants.enabledValues()\n const group = values.filter(({ group }) => group)\n const value = group.map(({ value }) => value)\n\n setExpandedValue(value)\n }, [descendants, setExpandedValue])\n\n const onCollapseAll = useCallback(() => {\n setExpandedValue([])\n }, [setExpandedValue])\n\n const onActiveDescendant = useCallback(\n (\n descendant?: Descendant<HTMLElement, TreeDescendantProps>,\n shouldFocus = true,\n ) => {\n if (!descendant) return\n\n descendants.values().forEach(({ node }) => {\n node.tabIndex = -1\n })\n\n activeDescendant.current = descendant\n descendant.node.tabIndex = 0\n\n if (shouldFocus) descendant.node.focus()\n },\n [descendants],\n )\n\n const onSearch = useCallback(\n (value: string, omitValue: string) => {\n clearTimeout(timeoutRef.current)\n\n searchRef.current.value += value\n\n if (!searchRef.current.omitValue) searchRef.current.omitValue = omitValue\n\n timeoutRef.current = setTimeout(() => {\n searchRef.current = { omitValue: undefined, value: \"\" }\n }, 400)\n\n const values = descendants\n .enabledValues({ expanded: true })\n .filter(\n (descendant) =>\n !isUndefined(descendant.value) &&\n descendant.value !== searchRef.current.omitValue,\n )\n const descendant = values.find(({ query, value }) =>\n match(query ?? value, searchRef.current.value, \"startsWith\"),\n )\n\n if (descendant) onActiveDescendant(descendant)\n },\n [descendants, onActiveDescendant],\n )\n\n const onSelectedChange = useCallback(\n (value: SetStateAction<string | string[]>) => {\n setSelectedValue(value as SetStateAction<MaybeSelectedValue>)\n },\n [setSelectedValue],\n )\n\n const onExpandedChange = useCallback(\n (value: string) => {\n setExpandedValue((prev) => {\n if (prev.includes(value))\n return prev.filter((prevValue) => prevValue !== value)\n else return [...prev, value]\n })\n },\n [setExpandedValue],\n )\n\n useSafeLayoutEffect(() => {\n const value = isArray(selectedValue) ? selectedValue.at(0) : selectedValue\n const expandedDescendants = descendants.enabledValues({ expanded: true })\n\n if (value) {\n const descendant = expandedDescendants.find(\n (descendant) => value === descendant.value,\n )\n\n if (descendant) onActiveDescendant(descendant, false)\n else onActiveDescendant(expandedDescendants.at(0), false)\n } else {\n onActiveDescendant(expandedDescendants.at(0), false)\n }\n }, [children])\n\n assignRef(controlRef, { collapse: onCollapseAll, expand: onExpandAll })\n\n const getRootProps: PropGetter<\"ul\"> = useCallback(\n (props) =>\n mergeProps(\n {\n \"aria-multiselectable\": ariaAttr(multiple || checkable),\n children,\n role: \"tree\",\n },\n rest,\n props,\n )(),\n [multiple, checkable, rest, children],\n )\n\n return {\n activeDescendant,\n checkable,\n checkedValue,\n descendants,\n expandedValue,\n multiple,\n selectedValue,\n getRootProps,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n }\n}\n\nexport type UseTreeReturn = ReturnType<typeof useTree>\n\nconst getRootDescendant =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const segments = value.split(\"/\")\n\n if (segments.length <= 1) return\n\n const rootValue = segments.at(0)\n\n return descendants.enabledValues().find(({ value }) => value === rootValue)\n }\n\nconst getParentDescendant =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const segments = value.split(\"/\")\n\n if (segments.length <= 1) return\n\n const parentValue = segments.slice(0, -1).join(\"/\")\n\n return descendants\n .enabledValues()\n .find(({ value }) => value === parentValue)\n }\n\nconst getChildDescendants =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (value: string) => {\n const children = descendants\n .enabledValues()\n .filter((descendant) => descendant.value.startsWith(value + \"/\"))\n const values = children\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n\n return { children, values }\n }\n\nconst getParentValues = (value: string) => {\n const segments = value.split(\"/\")\n\n return segments\n .reduce<string[]>((prev, current) => {\n const prevValue = prev.at(-1)\n return prevValue ? [...prev, [prevValue, current].join(\"/\")] : [current]\n }, [])\n .toReversed()\n}\n\nconst getCheckbox = (node?: HTMLElement) => {\n const el = node?.querySelector(\"input[type='checkbox']\")\n\n return isInputElement(el) ? el : null\n}\n\nconst getAllChecked = (\n descendants: Descendant<HTMLElement, TreeDescendantProps>[],\n trulyValues?: string[],\n falsyValues?: string[],\n) => {\n const checked = descendants.map(({ node, value }) => {\n if (value && trulyValues?.includes(value)) return true\n if (value && falsyValues?.includes(value)) return false\n\n const checkbox = getCheckbox(node)\n\n return !!checkbox?.checked\n })\n\n const allChecked = !!checked.length && checked.every(Boolean)\n const indeterminate = checked.some(Boolean) && !allChecked\n\n return { allChecked, checked, indeterminate }\n}\n\nconst getRangeValues =\n (descendants: Descendants<HTMLElement, TreeDescendantProps>) =>\n (start: string, end: string) => {\n const values = descendants.enabledValues()\n const [startIndex, endIndex] = [\n values.findIndex((descendant) => descendant.value === start),\n values.findIndex((descendant) => descendant.value === end),\n ].sort((a, b) => a - b)\n\n return values\n .slice(startIndex, endIndex! + 1)\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n .sort((a, b) => {\n if (a === start && b !== start) return -1\n if (a !== start && b === start) return 1\n\n return 0\n })\n }\n\nexport interface UseTreeItemProps\n extends HTMLProps<\"div\">, Omit<UseDisclosureProps, \"timing\"> {\n /**\n * If `true`, the tree item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The query to search for in the tree item.\n */\n query?: string\n /**\n * The value of the item.\n */\n value?: string\n /**\n * If provided, the tree item will be rendered as an async tree item.\n */\n asyncChildren?: () => Promise<ReactNode>\n}\n\nexport const useTreeItem = ({\n asyncChildren,\n children: childrenProp,\n defaultOpen,\n disabled = false,\n open: openProp,\n query,\n value: valueProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n}: UseTreeItemProps = {}) => {\n const context = useTreeItemContext()\n const {\n activeDescendant,\n checkable,\n checkedValue,\n expandedValue,\n multiple,\n selectedValue,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n } = useTreeContext()\n const [children, setChildren] = useState<ReactNode>(childrenProp)\n const [indeterminate, setIndeterminate] = useState(false)\n const [itemId, labelId, checkboxId] = useIds()\n const initialAsyncRef = useRef(false)\n const async = !!asyncChildren\n const group = async || Children.count(children) > 0\n const level: number = (context?.level ?? 0) + 1\n const value: string = filterEmpty([context?.value, valueProp]).join(\"/\")\n const nested = !!context?.value\n const selected = isArray(selectedValue)\n ? !!value && selectedValue.includes(value)\n : !!value && selectedValue === value\n const checked = !!value && checkedValue.includes(value)\n const defaultExpanded = !!value && expandedValue.includes(value)\n const {\n open: groupOpen,\n onClose,\n onOpen,\n } = useDisclosure({\n defaultOpen: defaultOpen ?? defaultExpanded,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const branchOpen: boolean[] = nested\n ? [...context.branchOpen, groupOpen]\n : [groupOpen]\n const { descendants, register } = useTreeDescendant({\n id: itemId!,\n disabled,\n expanded: branchOpen.slice(0, -1).every(Boolean),\n group,\n query,\n value,\n })\n\n const [groupLoading, onGroupChildren] = useAsyncCallback(async () => {\n const children = await asyncChildren?.()\n\n setChildren(children)\n }, [asyncChildren])\n\n const onSelect = useCallback(\n (\n ev: (\n | Partial<KeyboardEvent<HTMLElement>>\n | Partial<MouseEvent<HTMLElement>>\n ) & { value?: string } = {},\n ) => {\n const selectedValue = ev.value ?? value\n\n if (disabled || !selectedValue) return\n\n if (multiple)\n onSelectedChange((prev) => {\n if (!isArray(prev)) return prev\n\n if (ev.ctrlKey || ev.metaKey) {\n if (prev.includes(selectedValue))\n return prev.filter((prevValue) => prevValue !== selectedValue)\n else return [...prev, selectedValue]\n } else if (ev.shiftKey && prev[0]) {\n if (prev[0] === selectedValue) return prev\n\n return getRangeValues(descendants)(prev[0], selectedValue)\n } else {\n return [selectedValue]\n }\n })\n else onSelectedChange(selectedValue)\n },\n [descendants, disabled, multiple, onSelectedChange, value],\n )\n\n const onGroupOpen = useCallback(() => {\n if (disabled || !value) return\n\n if (async && !initialAsyncRef.current) {\n initialAsyncRef.current = true\n\n onGroupChildren()\n .then(() => {\n onOpen()\n onExpandedChange(value)\n })\n .catch(() => {\n initialAsyncRef.current = false\n })\n } else {\n onOpen()\n onExpandedChange(value)\n }\n }, [disabled, async, onGroupChildren, onOpen, onExpandedChange, value])\n\n const onGroupClose = useCallback(() => {\n if (disabled || !value) return\n\n onClose()\n onExpandedChange(value)\n }, [disabled, onClose, onExpandedChange, value])\n\n const onGroupToggle = useCallback(() => {\n if (groupOpen) onGroupClose()\n else onGroupOpen()\n }, [groupOpen, onGroupClose, onGroupOpen])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n if (disabled || !value) return\n\n runKeyAction(ev, {\n a: () => {\n if (!multiple || !(ev.ctrlKey || ev.metaKey)) return\n\n const values = descendants\n .enabledValues()\n .map(({ value }) => value)\n .filter((value) => !isUndefined(value))\n\n onSelectedChange(values)\n },\n ArrowDown: () => {\n if ((ev.ctrlKey || ev.metaKey) && ev.shiftKey) {\n onExpandAll()\n } else {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n\n if (descendant && ev.shiftKey && multiple)\n onSelect({ ctrlKey: true, value: descendant.value })\n }\n },\n ArrowLeft: () => {\n if (group && groupOpen) {\n onGroupClose()\n } else if (nested) {\n const descendant = getParentDescendant(descendants)(value)\n\n onActiveDescendant(descendant)\n }\n },\n ArrowRight: () => {\n if (!group) return\n\n if (groupOpen) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n } else {\n if (!groupLoading) onGroupOpen()\n }\n },\n ArrowUp: () => {\n if ((ev.ctrlKey || ev.metaKey) && ev.shiftKey) {\n onCollapseAll()\n\n if (!nested) return\n\n const descendant = getRootDescendant(descendants)(value)\n\n onActiveDescendant(descendant)\n } else {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n false,\n { expanded: true },\n )\n\n onActiveDescendant(descendant)\n\n if (descendant && ev.shiftKey && multiple)\n onSelect({ ctrlKey: true, value: descendant.value })\n }\n },\n End: () => {\n const descendant = descendants\n .enabledValues({ expanded: true })\n .at(-1)\n\n onActiveDescendant(descendant)\n },\n Enter: () => {\n if (group) onGroupToggle()\n\n onSelect(ev)\n },\n Home: () => {\n const descendant = descendants.enabledValues({ expanded: true }).at(0)\n\n onActiveDescendant(descendant)\n },\n Space: () => {\n if (group) onGroupToggle()\n\n onSelect(ev)\n },\n })\n\n if (ev.key.length !== 1) return\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return\n\n ev.preventDefault()\n\n onSearch(ev.key, query ?? value)\n },\n [\n activeDescendant,\n descendants,\n disabled,\n group,\n groupLoading,\n groupOpen,\n multiple,\n nested,\n onActiveDescendant,\n onCollapseAll,\n onExpandAll,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n onSearch,\n onSelect,\n onSelectedChange,\n query,\n value,\n ],\n )\n\n const onItemClick = useCallback(\n (ev: MouseEvent<HTMLLIElement>) => {\n ev.stopPropagation()\n\n if (disabled || !value) return\n\n if (group && !groupLoading)\n if (!ev.ctrlKey && !ev.metaKey && !ev.shiftKey) onGroupToggle()\n\n onSelect(ev)\n },\n [disabled, group, groupLoading, onGroupToggle, onSelect, value],\n )\n\n const onCheckboxChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (disabled || !value) return\n\n ev.stopPropagation()\n\n if (group) setIndeterminate(false)\n\n onCheckedChange((prev) => {\n const target = [value]\n\n if (group) {\n const { values } = getChildDescendants(descendants)(value)\n\n target.push(...values)\n }\n\n if (nested) {\n const parentValues = getParentValues(context.value)\n const parentTarget: string[] = []\n\n parentValues.forEach((parentValue) => {\n const { children } = getChildDescendants(descendants)(parentValue)\n const { allChecked } = getAllChecked(\n children,\n [...parentTarget, ...(ev.target.checked ? target : [])],\n !ev.target.checked ? target : [],\n )\n\n if (allChecked) parentTarget.push(parentValue)\n })\n\n if (!ev.target.checked) parentTarget.push(...parentValues)\n\n target.push(...parentTarget)\n }\n\n if (ev.target.checked) return [...new Set([...prev, ...target])]\n else return prev.filter((prevValue) => !target.includes(prevValue))\n })\n },\n [disabled, group, onCheckedChange, value, nested, descendants, context],\n )\n\n useSafeLayoutEffect(() => {\n if (defaultExpanded)\n if (async && !initialAsyncRef.current) {\n initialAsyncRef.current = true\n\n onGroupChildren()\n .then(() => {\n onOpen()\n })\n .catch(() => {\n initialAsyncRef.current = false\n })\n } else {\n onOpen()\n }\n else onClose()\n }, [async, defaultExpanded, onClose, onGroupChildren, onOpen])\n\n useSafeLayoutEffect(() => {\n if (!group || !checkable) return\n\n const { children } = getChildDescendants(descendants)(value)\n const { indeterminate } = getAllChecked(children)\n\n setIndeterminate(indeterminate)\n }, [checkedValue])\n\n useSafeLayoutEffect(() => {\n if (!checkable) return\n\n const { node } = getParentDescendant(descendants)(value) ?? {}\n const checkbox = getCheckbox(node)\n\n if (!checkbox) return\n\n const cleanup = setAttribute(checkbox, \"aria-controls\", checkboxId)\n\n return cleanup\n }, [checkable, descendants])\n\n const getItemProps: PropGetter<\"li\"> = useCallback(\n ({ ref, \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n id: itemId,\n ref: mergeRefs(ref, register),\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"aria-level\": level,\n \"aria-selected\": ariaAttr(selected),\n \"data-disabled\": dataAttr(disabled),\n role: \"treeitem\",\n tabIndex: -1,\n ...props,\n onClick: handlerAll(props.onClick, onItemClick),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [\n itemId,\n register,\n disabled,\n labelId,\n level,\n selected,\n onItemClick,\n onKeyDown,\n ],\n )\n\n const getGroupItemProps: PropGetter<\"li\"> = useCallback(\n (props = {}) => getItemProps({ \"aria-expanded\": groupOpen, ...props }),\n [getItemProps, groupOpen],\n )\n\n const getIndicatorProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-expanded\": groupOpen,\n \"aria-hidden\": true,\n \"data-disabled\": dataAttr(disabled),\n \"data-loading\": dataAttr(groupLoading),\n \"data-selected\": dataAttr(selected),\n role: \"presentation\",\n ...props,\n }),\n [disabled, groupOpen, selected, groupLoading],\n )\n\n const getCheckboxProps: PropGetter<UseCheckboxProps> = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n id: checkboxId,\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"data-selected\": dataAttr(selected),\n checked,\n disabled,\n indeterminate,\n tabIndex: -1,\n ...props,\n onChange: handlerAll(props.onChange, onCheckboxChange),\n }),\n [\n checkboxId,\n labelId,\n selected,\n checked,\n disabled,\n indeterminate,\n onCheckboxChange,\n ],\n )\n\n const getGroupProps: PropGetter<\"ul\"> = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-busy\": ariaAttr(groupLoading),\n \"aria-labelledby\": cx(ariaLabelledby, labelId),\n \"data-disabled\": dataAttr(disabled),\n role: \"group\",\n ...props,\n }),\n [labelId, disabled, groupLoading],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props = {}) => ({ id: labelId, ...props }),\n [labelId],\n )\n\n return {\n branchOpen,\n checked,\n children,\n disabled,\n group,\n groupLoading,\n groupOpen,\n indeterminate,\n level,\n props: rest,\n selected,\n value,\n getCheckboxProps,\n getGroupItemProps,\n getGroupProps,\n getIndicatorProps,\n getItemProps,\n getLabelProps,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n }\n}\n\nexport type UseTreeItemReturn = ReturnType<typeof useTreeItem>\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ react_fast_compare = require_runtime.__toESM(react_fast_compare, 1);
10
10
  function isEvent(key) {
11
11
  return /^on[A-Z]/.test(key);
12
12
  }
13
- const cssProps = new Set([
13
+ const cssProps = /* @__PURE__ */ new Set([
14
14
  ...require_conditions.conditionProperties,
15
15
  ...require_styles.styleProperties,
16
16
  ...require_styles.vendorProperties
@@ -1 +1 @@
1
- {"version":3,"file":"props.cjs","names":["conditionProperties","styleProperties","vendorProperties","mergeRefs"],"sources":["../../../../src/core/components/props.ts"],"sourcesContent":["import type { Dict, Merge } from \"../../utils\"\nimport { useMemo } from \"react\"\nimport isEqual from \"react-fast-compare\"\nimport {\n cx,\n handlerAll,\n isArray,\n isEmptyObject,\n isFunction,\n isObject,\n isUndefined,\n merge,\n mergeRefs,\n omitObject,\n splitObject,\n} from \"../../utils\"\nimport { conditionProperties, styleProperties, vendorProperties } from \"../css\"\n\ntype Optionalize<Y> = [Extract<Y, undefined>] extends [never]\n ? Y\n : Partial<Exclude<Y, undefined>>\n\ntype MergeAll<Y extends (Dict | undefined)[]> = Y extends [infer M]\n ? Optionalize<M>\n : Y extends [infer D, ...infer H]\n ? H extends (Dict | undefined)[]\n ? Merge<Optionalize<D>, MergeAll<H>>\n : Optionalize<D>\n : never\n\nfunction isEvent(key: string) {\n return /^on[A-Z]/.test(key)\n}\n\nexport const cssProps = new Set<string>([\n ...conditionProperties,\n ...styleProperties,\n ...vendorProperties,\n])\n\nexport type ShouldForwardProp = (prop: string) => boolean\n\nexport function createShouldForwardProp(\n forwardProps: string[] = [],\n): ShouldForwardProp {\n return function (prop: string): boolean {\n if (forwardProps.includes(prop)) return true\n\n if (prop.startsWith(\"--\")) return false\n\n return !cssProps.has(prop)\n }\n}\n\ninterface MergePropsOptions {\n mergeClassName?: boolean\n mergeCSS?: boolean\n mergeEvent?: boolean\n mergeRef?: boolean\n mergeStyle?: boolean\n}\n\nexport function mergeProps<Y extends Dict>(\n ...args: Y[]\n): (options?: MergePropsOptions) => Y\nexport function mergeProps<Y extends (Dict | undefined)[]>(\n ...args: Y\n): (options?: MergePropsOptions) => MergeAll<Y>\nexport function mergeProps(...args: (Dict | undefined)[]) {\n return function ({\n mergeClassName = true,\n mergeCSS = true,\n mergeEvent = true,\n mergeRef = true,\n mergeStyle = true,\n }: MergePropsOptions = {}) {\n let result: Dict = {}\n\n for (const props of args) {\n if (isUndefined(props)) continue\n\n for (const key in result) {\n if (mergeRef && key === \"ref\") {\n result[key] = mergeRefs(result[key], props[key])\n\n continue\n }\n\n if (\n mergeEvent &&\n isEvent(key) &&\n isFunction(result[key]) &&\n isFunction(props[key])\n ) {\n result[key] = handlerAll(result[key], props[key])\n\n continue\n }\n\n if (mergeClassName && (key === \"className\" || key === \"class\")) {\n result[key] = cx(result[key], props[key])\n\n continue\n }\n\n if (mergeStyle && key === \"style\") {\n result[key] = merge(result[key] ?? {}, props[key] ?? {})\n\n continue\n }\n\n if (mergeCSS && key === \"css\") {\n if (isArray(result[key])) {\n result[key].push(props[key])\n } else {\n result[key] ??= []\n\n result[key] = [result[key], props[key]]\n }\n\n continue\n }\n\n result[key] = !isUndefined(props[key]) ? props[key] : result[key]\n }\n\n for (const key in props)\n if (isUndefined(result[key])) result[key] = props[key]\n }\n\n return result as any\n }\n}\n\ntype CallbackProps<Y extends Dict = Dict> = (props: Y) => Y\n\ntype PropsOrCallback<Y extends Dict = Dict> = CallbackProps<Y> | Y\n\nexport function chainProps<Y extends Dict = Dict>(\n ...props: PropsOrCallback<Y>[]\n) {\n return function (options: MergePropsOptions = {}) {\n if (!props.length) return (a: Y) => a\n\n if (props.length === 1)\n return function (b: Y) {\n const a = props[0] ?? {}\n const c = isFunction(a) ? a(b) : mergeProps(a, b)(options)\n\n return c\n } as CallbackProps<Y>\n\n return props.reduce(function (a, b) {\n return function (c: Y = {} as Y) {\n const d = isFunction(a) ? a(c) : mergeProps(a, c)(options)\n const f = isFunction(b) ? b(d) : mergeProps(b, d)(options)\n\n return f\n }\n }) as CallbackProps<Y>\n }\n}\n\nexport function isEqualProps<\n Y extends Dict,\n M extends Dict,\n D extends keyof M | keyof Y,\n>(a: Y, b: M, omitKeys: D[] = []) {\n return isEqual(\n omitObject(a, omitKeys as (keyof Y)[]),\n omitObject(b, omitKeys as (keyof M)[]),\n )\n}\n\nexport function useSplitProps<Y extends Dict, M extends keyof Y>(\n props: Y,\n keys: M[] | readonly M[],\n) {\n return useMemo(() => splitObject<Y, M>(props, keys), [props, keys])\n}\n\nexport function extractProps(props: Dict, keys: readonly string[] | string[]) {\n let result: Dict = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (!cssProps.has(key)) return\n\n if (keys.includes(key)) {\n result = merge(result, { [key]: value })\n } else if (isObject(value)) {\n value = extractProps(value, keys)\n\n if (isEmptyObject(value)) return\n\n result = merge(result, { [key]: value })\n }\n })\n\n return result\n}\n\nexport function useExtractProps(\n props: Dict,\n keys: readonly string[] | string[],\n) {\n return useMemo(() => extractProps(props, keys), [props, keys])\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"props.cjs","names":["conditionProperties","styleProperties","vendorProperties","mergeRefs"],"sources":["../../../../src/core/components/props.ts"],"sourcesContent":["import type { Dict, Merge } from \"../../utils\"\nimport { useMemo } from \"react\"\nimport isEqual from \"react-fast-compare\"\nimport {\n cx,\n handlerAll,\n isArray,\n isEmptyObject,\n isFunction,\n isObject,\n isUndefined,\n merge,\n mergeRefs,\n omitObject,\n splitObject,\n} from \"../../utils\"\nimport { conditionProperties, styleProperties, vendorProperties } from \"../css\"\n\ntype Optionalize<Y> = [Extract<Y, undefined>] extends [never]\n ? Y\n : Partial<Exclude<Y, undefined>>\n\ntype MergeAll<Y extends (Dict | undefined)[]> = Y extends [infer M]\n ? Optionalize<M>\n : Y extends [infer D, ...infer H]\n ? H extends (Dict | undefined)[]\n ? Merge<Optionalize<D>, MergeAll<H>>\n : Optionalize<D>\n : never\n\nfunction isEvent(key: string) {\n return /^on[A-Z]/.test(key)\n}\n\nexport const cssProps = new Set<string>([\n ...conditionProperties,\n ...styleProperties,\n ...vendorProperties,\n])\n\nexport type ShouldForwardProp = (prop: string) => boolean\n\nexport function createShouldForwardProp(\n forwardProps: string[] = [],\n): ShouldForwardProp {\n return function (prop: string): boolean {\n if (forwardProps.includes(prop)) return true\n\n if (prop.startsWith(\"--\")) return false\n\n return !cssProps.has(prop)\n }\n}\n\ninterface MergePropsOptions {\n mergeClassName?: boolean\n mergeCSS?: boolean\n mergeEvent?: boolean\n mergeRef?: boolean\n mergeStyle?: boolean\n}\n\nexport function mergeProps<Y extends Dict>(\n ...args: Y[]\n): (options?: MergePropsOptions) => Y\nexport function mergeProps<Y extends (Dict | undefined)[]>(\n ...args: Y\n): (options?: MergePropsOptions) => MergeAll<Y>\nexport function mergeProps(...args: (Dict | undefined)[]) {\n return function ({\n mergeClassName = true,\n mergeCSS = true,\n mergeEvent = true,\n mergeRef = true,\n mergeStyle = true,\n }: MergePropsOptions = {}) {\n let result: Dict = {}\n\n for (const props of args) {\n if (isUndefined(props)) continue\n\n for (const key in result) {\n if (mergeRef && key === \"ref\") {\n result[key] = mergeRefs(result[key], props[key])\n\n continue\n }\n\n if (\n mergeEvent &&\n isEvent(key) &&\n isFunction(result[key]) &&\n isFunction(props[key])\n ) {\n result[key] = handlerAll(result[key], props[key])\n\n continue\n }\n\n if (mergeClassName && (key === \"className\" || key === \"class\")) {\n result[key] = cx(result[key], props[key])\n\n continue\n }\n\n if (mergeStyle && key === \"style\") {\n result[key] = merge(result[key] ?? {}, props[key] ?? {})\n\n continue\n }\n\n if (mergeCSS && key === \"css\") {\n if (isArray(result[key])) {\n result[key].push(props[key])\n } else {\n result[key] ??= []\n\n result[key] = [result[key], props[key]]\n }\n\n continue\n }\n\n result[key] = !isUndefined(props[key]) ? props[key] : result[key]\n }\n\n for (const key in props)\n if (isUndefined(result[key])) result[key] = props[key]\n }\n\n return result as any\n }\n}\n\ntype CallbackProps<Y extends Dict = Dict> = (props: Y) => Y\n\ntype PropsOrCallback<Y extends Dict = Dict> = CallbackProps<Y> | Y\n\nexport function chainProps<Y extends Dict = Dict>(\n ...props: PropsOrCallback<Y>[]\n) {\n return function (options: MergePropsOptions = {}) {\n if (!props.length) return (a: Y) => a\n\n if (props.length === 1)\n return function (b: Y) {\n const a = props[0] ?? {}\n const c = isFunction(a) ? a(b) : mergeProps(a, b)(options)\n\n return c\n } as CallbackProps<Y>\n\n return props.reduce(function (a, b) {\n return function (c: Y = {} as Y) {\n const d = isFunction(a) ? a(c) : mergeProps(a, c)(options)\n const f = isFunction(b) ? b(d) : mergeProps(b, d)(options)\n\n return f\n }\n }) as CallbackProps<Y>\n }\n}\n\nexport function isEqualProps<\n Y extends Dict,\n M extends Dict,\n D extends keyof M | keyof Y,\n>(a: Y, b: M, omitKeys: D[] = []) {\n return isEqual(\n omitObject(a, omitKeys as (keyof Y)[]),\n omitObject(b, omitKeys as (keyof M)[]),\n )\n}\n\nexport function useSplitProps<Y extends Dict, M extends keyof Y>(\n props: Y,\n keys: M[] | readonly M[],\n) {\n return useMemo(() => splitObject<Y, M>(props, keys), [props, keys])\n}\n\nexport function extractProps(props: Dict, keys: readonly string[] | string[]) {\n let result: Dict = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (!cssProps.has(key)) return\n\n if (keys.includes(key)) {\n result = merge(result, { [key]: value })\n } else if (isObject(value)) {\n value = extractProps(value, keys)\n\n if (isEmptyObject(value)) return\n\n result = merge(result, { [key]: value })\n }\n })\n\n return result\n}\n\nexport function useExtractProps(\n props: Dict,\n keys: readonly string[] | string[],\n) {\n return useMemo(() => extractProps(props, keys), [props, keys])\n}\n"],"mappings":"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"}