@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,6 +9,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
9
9
  usePropsContext: () => useListPropsContext
10
10
  });
11
11
  //#endregion
12
- export { namespace_exports };
12
+ export { ListItemIcon as Icon, ListItem as Item, ListPropsContext as PropsContext, ListRoot as Root, namespace_exports, useListPropsContext as usePropsContext };
13
13
 
14
14
  //# sourceMappingURL=namespace.js.map
@@ -19,6 +19,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
19
19
  Suspense: () => Suspense
20
20
  });
21
21
  //#endregion
22
- export { namespace_exports };
22
+ export { Audio, Circles, Dots, Grid, Oval, Puff, Rings, Suspense, namespace_exports };
23
23
 
24
24
  //# sourceMappingURL=namespace.js.map
@@ -21,6 +21,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
21
21
  usePropsContext: () => useMenuPropsContext
22
22
  });
23
23
  //#endregion
24
- export { namespace_exports };
24
+ export { MenuAnchor as Anchor, MenuCommand as Command, MenuContent as Content, MenuContextTrigger as ContextTrigger, MenuFooter as Footer, MenuGroup as Group, MenuHeader as Header, MenuIndicator as Indicator, MenuItem as Item, MenuLabel as Label, MenuOptionGroup as OptionGroup, MenuOptionItem as OptionItem, MenuPropsContext as PropsContext, MenuRoot as Root, MenuSeparator as Separator, MenuTrigger as Trigger, namespace_exports, useMenuPropsContext as usePropsContext };
25
25
 
26
26
  //# sourceMappingURL=namespace.js.map
@@ -175,6 +175,6 @@ const ModalFooter = withContext("footer", "footer")(void 0, (props) => {
175
175
  return { ...getFooterProps(props) };
176
176
  });
177
177
  //#endregion
178
- export { ModalBody, ModalCloseButton, ModalCloseTrigger, ModalContent, ModalFooter, ModalHeader, ModalOpenTrigger, ModalOverlay, ModalPropsContext, ModalRoot, ModalTitle, useModalPropsContext };
178
+ export { ModalBody, ModalCloseButton, ModalCloseTrigger, ModalContent, ModalFooter, ModalHeader, ModalOpenTrigger, ModalOverlay, ModalPropsContext, ModalRoot, ModalTitle, ShorthandModalContent, useModalPropsContext };
179
179
 
180
180
  //# sourceMappingURL=modal.js.map
@@ -16,6 +16,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
16
16
  usePropsContext: () => useModalPropsContext
17
17
  });
18
18
  //#endregion
19
- export { namespace_exports };
19
+ export { ModalBody as Body, ModalCloseButton as CloseButton, ModalCloseTrigger as CloseTrigger, ModalContent as Content, ModalFooter as Footer, ModalHeader as Header, ModalOpenTrigger as OpenTrigger, ModalOverlay as Overlay, ModalPropsContext as PropsContext, ModalRoot as Root, ModalTitle as Title, namespace_exports, useModalPropsContext as usePropsContext };
20
20
 
21
21
  //# sourceMappingURL=namespace.js.map
@@ -11,6 +11,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
11
11
  usePropsContext: () => useNativeAccordionPropsContext
12
12
  });
13
13
  //#endregion
14
- export { namespace_exports };
14
+ export { NativeAccordionButton as Button, NativeAccordionIcon as Icon, NativeAccordionItem as Item, NativeAccordionPanel as Panel, NativeAccordionPropsContext as PropsContext, NativeAccordionRoot as Root, namespace_exports, useNativeAccordionPropsContext as usePropsContext };
15
15
 
16
16
  //# sourceMappingURL=namespace.js.map
@@ -14,6 +14,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
14
14
  usePropsContext: () => useNativePopoverPropsContext
15
15
  });
16
16
  //#endregion
17
- export { namespace_exports };
17
+ export { NativePopoverAnchor as Anchor, NativePopoverBody as Body, NativePopoverCloseTrigger as CloseTrigger, NativePopoverContent as Content, NativePopoverFooter as Footer, NativePopoverHeader as Header, NativePopoverPropsContext as PropsContext, NativePopoverRoot as Root, NativePopoverTrigger as Trigger, namespace_exports, useNativePopoverPropsContext as usePropsContext };
18
18
 
19
19
  //# sourceMappingURL=namespace.js.map
@@ -10,6 +10,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
10
10
  usePropsContext: () => useNativeSelectPropsContext
11
11
  });
12
12
  //#endregion
13
- export { namespace_exports };
13
+ export { NativeSelectGroup as Group, NativeSelectOption as Option, NativeSelectPropsContext as PropsContext, NativeSelectRoot as Root, NativeSelectSeparator as Separator, namespace_exports, useNativeSelectPropsContext as usePropsContext };
14
14
 
15
15
  //# sourceMappingURL=namespace.js.map
@@ -16,6 +16,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
16
16
  usePropsContext: () => useNativeTablePropsContext
17
17
  });
18
18
  //#endregion
19
- export { namespace_exports };
19
+ export { Caption, Col, Colgroup, NativeTablePropsContext as PropsContext, NativeTableRoot as Root, Tbody, Td, Tfoot, Th, Thead, Tr, namespace_exports, useNativeTablePropsContext as usePropsContext };
20
20
 
21
21
  //# sourceMappingURL=namespace.js.map
@@ -90,6 +90,6 @@ const NoticeItem = withContext(({ id, variant = "plain", closable, closeStrategi
90
90
  const NoticeContent = withContext("div", "content")();
91
91
  const NoticeCloseButton = withContext(CloseButton, "closeButton")();
92
92
  //#endregion
93
- export { NoticeItem, NoticeRoot, PLACEMENT_MAP };
93
+ export { NoticeCloseButton, NoticeContent, NoticeItem, NoticeRoot, PLACEMENT_MAP };
94
94
 
95
95
  //# sourceMappingURL=notice.js.map
@@ -14,6 +14,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
14
14
  usePropsContext: () => usePaginationPropsContext
15
15
  });
16
16
  //#endregion
17
- export { namespace_exports };
17
+ export { PaginationEndTrigger as EndTrigger, PaginationItem as Item, PaginationItems as Items, PaginationNextTrigger as NextTrigger, PaginationPrevTrigger as PrevTrigger, PaginationPropsContext as PropsContext, PaginationRoot as Root, PaginationStartTrigger as StartTrigger, PaginationText as Text, namespace_exports, usePaginationPropsContext as usePropsContext };
18
18
 
19
19
  //# sourceMappingURL=namespace.js.map
@@ -12,6 +12,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
12
12
  usePropsContext: () => usePinInputPropsContext
13
13
  });
14
14
  //#endregion
15
- export { namespace_exports };
15
+ export { PinInputDescendantsContext as DescendantsContext, PinInputField as Field, PinInputPropsContext as PropsContext, PinInputRoot as Root, namespace_exports, usePinInputDescendant as useDescendant, usePinInputDescendants as useDescendants, usePinInputPropsContext as usePropsContext };
16
16
 
17
17
  //# sourceMappingURL=namespace.js.map
@@ -14,6 +14,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
14
14
  usePropsContext: () => usePopoverPropsContext
15
15
  });
16
16
  //#endregion
17
- export { namespace_exports };
17
+ export { PopoverAnchor as Anchor, PopoverBody as Body, PopoverCloseTrigger as CloseTrigger, PopoverContent as Content, PopoverFooter as Footer, PopoverHeader as Header, PopoverPropsContext as PropsContext, PopoverRoot as Root, PopoverTrigger as Trigger, namespace_exports, usePopoverPropsContext as usePropsContext };
18
18
 
19
19
  //# sourceMappingURL=namespace.js.map
@@ -10,6 +10,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
10
10
  usePropsContext: () => useQrCodePropsContext
11
11
  });
12
12
  //#endregion
13
- export { namespace_exports };
13
+ export { QrCodeFrame as Frame, QrCodeOverlay as Overlay, QrCodePattern as Pattern, QrCodePropsContext as PropsContext, QrCodeRoot as Root, namespace_exports, useQrCodePropsContext as usePropsContext };
14
14
 
15
15
  //# sourceMappingURL=namespace.js.map
@@ -9,6 +9,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
9
9
  usePropsContext: () => useRadioPropsContext
10
10
  });
11
11
  //#endregion
12
- export { namespace_exports };
12
+ export { Radio as Item, RadioPropsContext as PropsContext, RadioGroupRoot as Root, namespace_exports, useRadioPropsContext as usePropsContext };
13
13
 
14
14
  //# sourceMappingURL=namespace.js.map
@@ -71,6 +71,6 @@ const RadioGroupRoot = component((props) => {
71
71
  });
72
72
  }, "group")();
73
73
  //#endregion
74
- export { RadioGroupRoot };
74
+ export { Radio as RadioGroupItem, RadioGroupRoot };
75
75
 
76
76
  //# sourceMappingURL=radio-group.js.map
@@ -75,6 +75,6 @@ const RadioCardGroupRoot = component((props) => {
75
75
  });
76
76
  }, "group")();
77
77
  //#endregion
78
- export { RadioCardGroupRoot };
78
+ export { RadioCardRoot as RadioCardGroupItem, RadioCardGroupRoot };
79
79
 
80
80
  //# sourceMappingURL=radio-card-group.js.map
@@ -7,6 +7,6 @@ var radio_card_group_namespace_exports = /* @__PURE__ */ __exportAll({
7
7
  Root: () => RadioCardGroupRoot
8
8
  });
9
9
  //#endregion
10
- export { radio_card_group_namespace_exports };
10
+ export { radio_card_namespace_exports as Item, RadioCardGroupRoot as Root, radio_card_group_namespace_exports };
11
11
 
12
12
  //# sourceMappingURL=radio-card-group.namespace.js.map
@@ -10,6 +10,6 @@ var radio_card_namespace_exports = /* @__PURE__ */ __exportAll({
10
10
  usePropsContext: () => useRadioCardPropsContext
11
11
  });
12
12
  //#endregion
13
- export { radio_card_namespace_exports };
13
+ export { RadioCardAddon as Addon, RadioCardDescription as Description, RadioCardLabel as Label, RadioCardPropsContext as PropsContext, RadioCardRoot as Root, radio_card_namespace_exports, useRadioCardPropsContext as usePropsContext };
14
14
 
15
15
  //# sourceMappingURL=radio-card.namespace.js.map
@@ -14,6 +14,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
14
14
  usePropsContext: () => useReorderPropsContext
15
15
  });
16
16
  //#endregion
17
- export { namespace_exports };
17
+ export { ReorderContext as Context, ReorderItem as Item, ReorderItemContext as ItemContext, ReorderPropsContext as PropsContext, ReorderRoot as Root, ReorderTrigger as Trigger, namespace_exports, useReorderContext as useContext, useReorderItemContext as useItemContext, useReorderPropsContext as usePropsContext };
18
18
 
19
19
  //# sourceMappingURL=namespace.js.map
@@ -13,6 +13,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
13
13
  usePropsContext: () => useResizablePropsContext
14
14
  });
15
15
  //#endregion
16
- export { namespace_exports };
16
+ export { ResizableContext as Context, ResizableItem as Item, ResizablePropsContext as PropsContext, ResizableRoot as Root, ResizableTrigger as Trigger, namespace_exports, useResizableContext as useContext, useResizableLayout as useLayout, useResizablePropsContext as usePropsContext };
17
17
 
18
18
  //# sourceMappingURL=namespace.js.map
@@ -9,6 +9,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
9
9
  usePropsContext: () => useSaturationSliderPropsContext
10
10
  });
11
11
  //#endregion
12
- export { namespace_exports };
12
+ export { SaturationSliderPropsContext as PropsContext, SaturationSliderRoot as Root, SaturationSliderThumb as Thumb, SaturationSliderTrack as Track, namespace_exports, useSaturationSliderPropsContext as usePropsContext };
13
13
 
14
14
  //# sourceMappingURL=namespace.js.map
@@ -14,6 +14,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
14
14
  usePropsContext: () => useSegmentedControlPropsContext
15
15
  });
16
16
  //#endregion
17
- export { namespace_exports };
17
+ export { SegmentedControlContext as Context, SegmentedControlDescendantsContext as DescendantsContext, SegmentedControlItem as Item, SegmentedControlPropsContext as PropsContext, SegmentedControlRoot as Root, namespace_exports, useSegmentedControlContext as useContext, useSegmentedControlDescendant as useDescendant, useSegmentedControlDescendants as useDescendants, useSegmentedControlPropsContext as usePropsContext };
18
18
 
19
19
  //# sourceMappingURL=namespace.js.map
@@ -11,6 +11,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
11
11
  usePropsContext: () => useSelectPropsContext
12
12
  });
13
13
  //#endregion
14
- export { namespace_exports };
14
+ export { SelectGroup as Group, SelectLabel as Label, SelectOption as Option, SelectPropsContext as PropsContext, SelectRoot as Root, SelectSeparator as Separator, namespace_exports, useSelectPropsContext as usePropsContext };
15
15
 
16
16
  //# sourceMappingURL=namespace.js.map
@@ -35,6 +35,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
35
35
  usePropsContext: () => useSidebarPropsContext
36
36
  });
37
37
  //#endregion
38
- export { namespace_exports };
38
+ export { SidebarContent as Content, SidebarContext as Context, SidebarDescendantsContext as DescendantsContext, SidebarFooter as Footer, SidebarGroup as Group, SidebarGroupContent as GroupContent, SidebarGroupLabel as GroupLabel, SidebarHandle as Handle, SidebarHeader as Header, SidebarItem as Item, SidebarItemContent as ItemContent, SidebarItemContext as ItemContext, SidebarItemEndElement as ItemEndElement, SidebarItemIndicator as ItemIndicator, SidebarItemLabel as ItemLabel, SidebarItemLink as ItemLink, SidebarItemStartElement as ItemStartElement, SidebarItemTrigger as ItemTrigger, SidebarMainPanel as MainPanel, SidebarMenu as Menu, SidebarMenuButton as MenuButton, SidebarPropsContext as PropsContext, SidebarRoot as Root, SidebarSidePanel as SidePanel, SidebarTrigger as Trigger, namespace_exports, useSidebarContext as useContext, useSidebarDescendant as useDescendant, useSidebarDescendants as useDescendants, useSidebarItemContext as useItemContext, useSidebarPropsContext as usePropsContext };
39
39
 
40
40
  //# sourceMappingURL=namespace.js.map
@@ -13,6 +13,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
13
13
  usePropsContext: () => useSliderPropsContext
14
14
  });
15
15
  //#endregion
16
- export { namespace_exports };
16
+ export { SliderMark as Mark, SliderMarks as Marks, SliderPropsContext as PropsContext, SliderRange as Range, SliderRoot as Root, SliderThumb as Thumb, SliderThumbs as Thumbs, SliderTrack as Track, namespace_exports, useSliderPropsContext as usePropsContext };
17
17
 
18
18
  //# sourceMappingURL=namespace.js.map
@@ -12,6 +12,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
12
12
  usePropsContext: () => useStatPropsContext
13
13
  });
14
14
  //#endregion
15
- export { namespace_exports };
15
+ export { StatHelperMessage as HelperMessage, StatIcon as Icon, StatLabel as Label, StatPropsContext as PropsContext, StatRoot as Root, StatUnit as Unit, StatValue as Value, namespace_exports, useStatPropsContext as usePropsContext };
16
16
 
17
17
  //# sourceMappingURL=namespace.js.map
@@ -26,6 +26,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
26
26
  usePropsContext: () => useStepsPropsContext
27
27
  });
28
28
  //#endregion
29
- export { namespace_exports };
29
+ export { StepsCompletedContent as CompletedContent, StepsContent as Content, StepsContents as Contents, StepsContext as Context, StepsDescendantsContext as DescendantsContext, StepsDescription as Description, StepsIndicator as Indicator, StepsItem as Item, StepsList as List, StepsNextTrigger as NextTrigger, StepsNumber as Number, StepsPrevTrigger as PrevTrigger, StepsPropsContext as PropsContext, StepsRoot as Root, StepsSeparator as Separator, StepsTitle as Title, namespace_exports, useStepsContext as useContext, useStepsDescendant as useDescendant, useStepsDescendants as useDescendants, useStepsItemContext as useItemContext, useStepsPropsContext as usePropsContext };
30
30
 
31
31
  //# sourceMappingURL=namespace.js.map
@@ -20,6 +20,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
20
20
  usePropsContext: () => useTabsPropsContext
21
21
  });
22
22
  //#endregion
23
- export { namespace_exports };
23
+ export { TabsContext as Context, TabDescendantsContext as DescendantsContext, TabsList as List, TabsPanel as Panel, TabPanelDescendantsContext as PanelDescendantsContext, TabsPanels as Panels, TabsPropsContext as PropsContext, TabsRoot as Root, TabsTab as Tab, namespace_exports, useTabsContext as useContext, useTabDescendant as useDescendant, useTabDescendants as useDescendants, useTabPanelDescendant as usePanelDescendant, useTabPanelDescendants as usePanelDescendants, useTabsPropsContext as usePropsContext };
24
24
 
25
25
  //# sourceMappingURL=namespace.js.map
@@ -13,6 +13,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
13
13
  usePropsContext: () => useTimelinePropsContext
14
14
  });
15
15
  //#endregion
16
- export { namespace_exports };
16
+ export { TimelineConnector as Connector, TimelineContent as Content, TimelineDescription as Description, TimelineIndicator as Indicator, TimelineItem as Item, TimelinePropsContext as PropsContext, TimelineRoot as Root, TimelineTitle as Title, namespace_exports, useTimelinePropsContext as usePropsContext };
17
17
 
18
18
  //# sourceMappingURL=namespace.js.map
@@ -9,6 +9,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
9
9
  usePropsContext: () => useTogglePropsContext
10
10
  });
11
11
  //#endregion
12
- export { namespace_exports };
12
+ export { Toggle as Item, TogglePropsContext as PropsContext, ToggleGroupRoot as Root, namespace_exports, useTogglePropsContext as usePropsContext };
13
13
 
14
14
  //# sourceMappingURL=namespace.js.map
@@ -15,6 +15,6 @@ var namespace_exports = /* @__PURE__ */ __exportAll({
15
15
  usePropsContext: () => useTreePropsContext
16
16
  });
17
17
  //#endregion
18
- export { namespace_exports };
18
+ export { TreeContext as Context, TreeDescendantsContext as DescendantsContext, TreeItem as Item, TreePropsContext as PropsContext, TreeRoot as Root, namespace_exports, useTreeContext as useContext, useTreeDescendant as useDescendant, useTreeDescendants as useDescendants, useTreeItemContext as useItemContext, useTreePropsContext as usePropsContext };
19
19
 
20
20
  //# sourceMappingURL=namespace.js.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.js","names":["createContext"],"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.js","names":["createContext"],"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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"}
@@ -8,7 +8,7 @@ import isEqual from "react-fast-compare";
8
8
  function isEvent(key) {
9
9
  return /^on[A-Z]/.test(key);
10
10
  }
11
- const cssProps = new Set([
11
+ const cssProps = /* @__PURE__ */ new Set([
12
12
  ...conditionProperties,
13
13
  ...styleProperties,
14
14
  ...vendorProperties
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","names":[],"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":";;;;;;;AA8BA,SAAS,QAAQ,KAAa;CAC5B,OAAO,WAAW,KAAK,GAAG;AAC5B;AAEA,MAAa,WAAW,IAAI,IAAY;CACtC,GAAG;CACH,GAAG;CACH,GAAG;AACL,CAAC;AAID,SAAgB,wBACd,eAAyB,CAAC,GACP;CACnB,OAAO,SAAU,MAAuB;EACtC,IAAI,aAAa,SAAS,IAAI,GAAG,OAAO;EAExC,IAAI,KAAK,WAAW,IAAI,GAAG,OAAO;EAElC,OAAO,CAAC,SAAS,IAAI,IAAI;CAC3B;AACF;AAgBA,SAAgB,WAAW,GAAG,MAA4B;CACxD,OAAO,SAAU,EACf,iBAAiB,MACjB,WAAW,MACX,aAAa,MACb,WAAW,MACX,aAAa,SACQ,CAAC,GAAG;EACzB,IAAI,SAAe,CAAC;EAEpB,KAAK,MAAM,SAAS,MAAM;GACxB,KAAA,GAAA,cAAA,YAAA,CAAgB,KAAK,GAAG;GAExB,KAAK,MAAM,OAAO,QAAQ;IACxB,IAAI,YAAY,QAAQ,OAAO;KAC7B,OAAO,OAAO,UAAU,OAAO,MAAM,MAAM,IAAI;KAE/C;IACF;IAEA,IACE,cACA,QAAQ,GAAG,MAAA,GAAA,cAAA,WAAA,CACA,OAAO,IAAI,MAAA,GAAA,cAAA,WAAA,CACX,MAAM,IAAI,GACrB;KACA,OAAO,QAAA,GAAA,cAAA,WAAA,CAAkB,OAAO,MAAM,MAAM,IAAI;KAEhD;IACF;IAEA,IAAI,mBAAmB,QAAQ,eAAe,QAAQ,UAAU;KAC9D,OAAO,QAAA,GAAA,cAAA,GAAA,CAAU,OAAO,MAAM,MAAM,IAAI;KAExC;IACF;IAEA,IAAI,cAAc,QAAQ,SAAS;KACjC,OAAO,QAAA,GAAA,cAAA,MAAA,CAAa,OAAO,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;KAEvD;IACF;IAEA,IAAI,YAAY,QAAQ,OAAO;KAC7B,KAAA,GAAA,cAAA,QAAA,CAAY,OAAO,IAAI,GACrB,OAAO,IAAI,CAAC,KAAK,MAAM,IAAI;UACtB;MACL,OAAO,SAAS,CAAC;MAEjB,OAAO,OAAO,CAAC,OAAO,MAAM,MAAM,IAAI;KACxC;KAEA;IACF;IAEA,OAAO,OAAO,EAAA,GAAA,cAAA,YAAA,CAAa,MAAM,IAAI,IAAI,MAAM,OAAO,OAAO;GAC/D;GAEA,KAAK,MAAM,OAAO,OAChB,KAAA,GAAA,cAAA,YAAA,CAAgB,OAAO,IAAI,GAAG,OAAO,OAAO,MAAM;EACtD;EAEA,OAAO;CACT;AACF;AAMA,SAAgB,WACd,GAAG,OACH;CACA,OAAO,SAAU,UAA6B,CAAC,GAAG;EAChD,IAAI,CAAC,MAAM,QAAQ,QAAQ,MAAS;EAEpC,IAAI,MAAM,WAAW,GACnB,OAAO,SAAU,GAAM;GACrB,MAAM,IAAI,MAAM,MAAM,CAAC;GAGvB,QAAA,GAAA,cAAA,WAAA,CAFqB,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;EAG3D;EAEF,OAAO,MAAM,OAAO,SAAU,GAAG,GAAG;GAClC,OAAO,SAAU,IAAO,CAAC,GAAQ;IAC/B,MAAM,KAAA,GAAA,cAAA,WAAA,CAAe,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;IAGzD,QAAA,GAAA,cAAA,WAAA,CAFqB,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;GAG3D;EACF,CAAC;CACH;AACF;AAEA,SAAgB,aAId,GAAM,GAAM,WAAgB,CAAC,GAAG;CAChC,OAAO,SAAA,GAAA,cAAA,WAAA,CACM,GAAG,QAAuB,IAAA,GAAA,cAAA,WAAA,CAC1B,GAAG,QAAuB,CACvC;AACF;AAEA,SAAgB,cACd,OACA,MACA;CACA,OAAO,eAAA,GAAA,cAAA,YAAA,CAAgC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC;AACpE;AAEA,SAAgB,aAAa,OAAa,MAAoC;CAC5E,IAAI,SAAe,CAAC;CAEpB,OAAO,QAAQ,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAC9C,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG;EAExB,IAAI,KAAK,SAAS,GAAG,GACnB,UAAA,GAAA,cAAA,MAAA,CAAe,QAAQ,GAAG,MAAM,MAAM,CAAC;OAClC,KAAA,GAAA,cAAA,SAAA,CAAa,KAAK,GAAG;GAC1B,QAAQ,aAAa,OAAO,IAAI;GAEhC,KAAA,GAAA,cAAA,cAAA,CAAkB,KAAK,GAAG;GAE1B,UAAA,GAAA,cAAA,MAAA,CAAe,QAAQ,GAAG,MAAM,MAAM,CAAC;EACzC;CACF,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,gBACd,OACA,MACA;CACA,OAAO,cAAc,aAAa,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC;AAC/D"}
1
+ {"version":3,"file":"props.js","names":[],"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":";;;;;;;AA8BA,SAAS,QAAQ,KAAa;CAC5B,OAAO,WAAW,KAAK,GAAG;AAC5B;AAEA,MAAa,2BAAW,IAAI,IAAY;CACtC,GAAG;CACH,GAAG;CACH,GAAG;AACL,CAAC;AAID,SAAgB,wBACd,eAAyB,CAAC,GACP;CACnB,OAAO,SAAU,MAAuB;EACtC,IAAI,aAAa,SAAS,IAAI,GAAG,OAAO;EAExC,IAAI,KAAK,WAAW,IAAI,GAAG,OAAO;EAElC,OAAO,CAAC,SAAS,IAAI,IAAI;CAC3B;AACF;AAgBA,SAAgB,WAAW,GAAG,MAA4B;CACxD,OAAO,SAAU,EACf,iBAAiB,MACjB,WAAW,MACX,aAAa,MACb,WAAW,MACX,aAAa,SACQ,CAAC,GAAG;EACzB,IAAI,SAAe,CAAC;EAEpB,KAAK,MAAM,SAAS,MAAM;GACxB,KAAA,GAAA,cAAA,YAAA,CAAgB,KAAK,GAAG;GAExB,KAAK,MAAM,OAAO,QAAQ;IACxB,IAAI,YAAY,QAAQ,OAAO;KAC7B,OAAO,OAAO,UAAU,OAAO,MAAM,MAAM,IAAI;KAE/C;IACF;IAEA,IACE,cACA,QAAQ,GAAG,MAAA,GAAA,cAAA,WAAA,CACA,OAAO,IAAI,MAAA,GAAA,cAAA,WAAA,CACX,MAAM,IAAI,GACrB;KACA,OAAO,QAAA,GAAA,cAAA,WAAA,CAAkB,OAAO,MAAM,MAAM,IAAI;KAEhD;IACF;IAEA,IAAI,mBAAmB,QAAQ,eAAe,QAAQ,UAAU;KAC9D,OAAO,QAAA,GAAA,cAAA,GAAA,CAAU,OAAO,MAAM,MAAM,IAAI;KAExC;IACF;IAEA,IAAI,cAAc,QAAQ,SAAS;KACjC,OAAO,QAAA,GAAA,cAAA,MAAA,CAAa,OAAO,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;KAEvD;IACF;IAEA,IAAI,YAAY,QAAQ,OAAO;KAC7B,KAAA,GAAA,cAAA,QAAA,CAAY,OAAO,IAAI,GACrB,OAAO,IAAI,CAAC,KAAK,MAAM,IAAI;UACtB;MACL,OAAO,SAAS,CAAC;MAEjB,OAAO,OAAO,CAAC,OAAO,MAAM,MAAM,IAAI;KACxC;KAEA;IACF;IAEA,OAAO,OAAO,EAAA,GAAA,cAAA,YAAA,CAAa,MAAM,IAAI,IAAI,MAAM,OAAO,OAAO;GAC/D;GAEA,KAAK,MAAM,OAAO,OAChB,KAAA,GAAA,cAAA,YAAA,CAAgB,OAAO,IAAI,GAAG,OAAO,OAAO,MAAM;EACtD;EAEA,OAAO;CACT;AACF;AAMA,SAAgB,WACd,GAAG,OACH;CACA,OAAO,SAAU,UAA6B,CAAC,GAAG;EAChD,IAAI,CAAC,MAAM,QAAQ,QAAQ,MAAS;EAEpC,IAAI,MAAM,WAAW,GACnB,OAAO,SAAU,GAAM;GACrB,MAAM,IAAI,MAAM,MAAM,CAAC;GAGvB,QAAA,GAAA,cAAA,WAAA,CAFqB,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;EAG3D;EAEF,OAAO,MAAM,OAAO,SAAU,GAAG,GAAG;GAClC,OAAO,SAAU,IAAO,CAAC,GAAQ;IAC/B,MAAM,KAAA,GAAA,cAAA,WAAA,CAAe,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;IAGzD,QAAA,GAAA,cAAA,WAAA,CAFqB,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO;GAG3D;EACF,CAAC;CACH;AACF;AAEA,SAAgB,aAId,GAAM,GAAM,WAAgB,CAAC,GAAG;CAChC,OAAO,SAAA,GAAA,cAAA,WAAA,CACM,GAAG,QAAuB,IAAA,GAAA,cAAA,WAAA,CAC1B,GAAG,QAAuB,CACvC;AACF;AAEA,SAAgB,cACd,OACA,MACA;CACA,OAAO,eAAA,GAAA,cAAA,YAAA,CAAgC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC;AACpE;AAEA,SAAgB,aAAa,OAAa,MAAoC;CAC5E,IAAI,SAAe,CAAC;CAEpB,OAAO,QAAQ,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAC9C,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG;EAExB,IAAI,KAAK,SAAS,GAAG,GACnB,UAAA,GAAA,cAAA,MAAA,CAAe,QAAQ,GAAG,MAAM,MAAM,CAAC;OAClC,KAAA,GAAA,cAAA,SAAA,CAAa,KAAK,GAAG;GAC1B,QAAQ,aAAa,OAAO,IAAI;GAEhC,KAAA,GAAA,cAAA,cAAA,CAAkB,KAAK,GAAG;GAE1B,UAAA,GAAA,cAAA,MAAA,CAAe,QAAQ,GAAG,MAAM,MAAM,CAAC;EACzC;CACF,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,gBACd,OACA,MACA;CACA,OAAO,cAAc,aAAa,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC;AAC/D"}