@yamada-ui/react 2.2.5-dev-20260727050304 → 2.2.5-dev-20260727072934

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 (312) hide show
  1. package/dist/cjs/components/accordion/accordion.cjs.map +1 -1
  2. package/dist/cjs/components/action-bar/action-bar.cjs.map +1 -1
  3. package/dist/cjs/components/airy/airy.cjs.map +1 -1
  4. package/dist/cjs/components/alert/alert.cjs.map +1 -1
  5. package/dist/cjs/components/alpha-slider/alpha-slider.cjs.map +1 -1
  6. package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
  7. package/dist/cjs/components/autocomplete/use-autocomplete.cjs.map +1 -1
  8. package/dist/cjs/components/avatar/avatar-group.cjs.map +1 -1
  9. package/dist/cjs/components/avatar/avatar.cjs.map +1 -1
  10. package/dist/cjs/components/blockquote/blockquote.cjs.map +1 -1
  11. package/dist/cjs/components/breadcrumb/breadcrumb.cjs.map +1 -1
  12. package/dist/cjs/components/button/button-group.cjs.map +1 -1
  13. package/dist/cjs/components/button/button.cjs.map +1 -1
  14. package/dist/cjs/components/calendar/calendar.cjs.map +1 -1
  15. package/dist/cjs/components/calendar/use-calendar.cjs.map +1 -1
  16. package/dist/cjs/components/carousel/carousel.cjs.map +1 -1
  17. package/dist/cjs/components/chart/cartesian-chart.cjs.map +1 -1
  18. package/dist/cjs/components/chart/chart.cjs.map +1 -1
  19. package/dist/cjs/components/chart/polar-chart.cjs.map +1 -1
  20. package/dist/cjs/components/checkbox/checkbox-group.cjs.map +1 -1
  21. package/dist/cjs/components/checkbox/checkbox.cjs.map +1 -1
  22. package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs.map +1 -1
  23. package/dist/cjs/components/checkbox-card/checkbox-card.cjs.map +1 -1
  24. package/dist/cjs/components/circle-progress/circle-progress.cjs.map +1 -1
  25. package/dist/cjs/components/collapse/collapse.cjs.map +1 -1
  26. package/dist/cjs/components/color-picker/color-picker.cjs.map +1 -1
  27. package/dist/cjs/components/color-selector/color-selector.cjs.map +1 -1
  28. package/dist/cjs/components/color-swatch/color-swatch-group.cjs.map +1 -1
  29. package/dist/cjs/components/color-swatch/color-swatch.cjs.map +1 -1
  30. package/dist/cjs/components/data-list/data-list.cjs.map +1 -1
  31. package/dist/cjs/components/date-picker/date-picker.cjs.map +1 -1
  32. package/dist/cjs/components/date-picker/use-date-picker.cjs.map +1 -1
  33. package/dist/cjs/components/drawer/drawer.cjs.map +1 -1
  34. package/dist/cjs/components/dropzone/dropzone.cjs.map +1 -1
  35. package/dist/cjs/components/editable/editable.cjs.map +1 -1
  36. package/dist/cjs/components/empty-state/empty-state.cjs.map +1 -1
  37. package/dist/cjs/components/fade/fade.cjs.map +1 -1
  38. package/dist/cjs/components/fade-scale/fade-scale.cjs.map +1 -1
  39. package/dist/cjs/components/field/field.cjs.map +1 -1
  40. package/dist/cjs/components/fieldset/fieldset.cjs.map +1 -1
  41. package/dist/cjs/components/file-input/file-input.cjs.map +1 -1
  42. package/dist/cjs/components/flip/flip.cjs.map +1 -1
  43. package/dist/cjs/components/focus-lock/focus-lock.cjs.map +1 -1
  44. package/dist/cjs/components/form/form.cjs.map +1 -1
  45. package/dist/cjs/components/format/format-byte.cjs.map +1 -1
  46. package/dist/cjs/components/format/format-date-time.cjs.map +1 -1
  47. package/dist/cjs/components/format/format-number.cjs.map +1 -1
  48. package/dist/cjs/components/highlight/highlight.cjs.map +1 -1
  49. package/dist/cjs/components/hue-slider/hue-slider.cjs.map +1 -1
  50. package/dist/cjs/components/icon/icons/circle-euro-icon.cjs +14 -0
  51. package/dist/cjs/components/icon/icons/circle-euro-icon.cjs.map +1 -0
  52. package/dist/cjs/components/icon/icons/index.cjs +9 -3
  53. package/dist/cjs/components/icon/icons/index.cjs.map +1 -1
  54. package/dist/cjs/components/icon/icons/scan-box-icon.cjs +14 -0
  55. package/dist/cjs/components/icon/icons/scan-box-icon.cjs.map +1 -0
  56. package/dist/cjs/components/icon/icons/server-plus-icon.cjs +14 -0
  57. package/dist/cjs/components/icon/icons/server-plus-icon.cjs.map +1 -0
  58. package/dist/cjs/components/icon/index.cjs +6 -2
  59. package/dist/cjs/components/indicator/indicator.cjs.map +1 -1
  60. package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs.map +1 -1
  61. package/dist/cjs/components/input/input-group.cjs.map +1 -1
  62. package/dist/cjs/components/link-box/link-box.cjs.map +1 -1
  63. package/dist/cjs/components/list/list.cjs.map +1 -1
  64. package/dist/cjs/components/loading/audio.cjs.map +1 -1
  65. package/dist/cjs/components/loading/background.cjs.map +1 -1
  66. package/dist/cjs/components/loading/circles.cjs.map +1 -1
  67. package/dist/cjs/components/loading/dots.cjs.map +1 -1
  68. package/dist/cjs/components/loading/grid.cjs.map +1 -1
  69. package/dist/cjs/components/loading/loading-provider.cjs.map +1 -1
  70. package/dist/cjs/components/loading/oval.cjs.map +1 -1
  71. package/dist/cjs/components/loading/page.cjs.map +1 -1
  72. package/dist/cjs/components/loading/puff.cjs.map +1 -1
  73. package/dist/cjs/components/loading/rings.cjs.map +1 -1
  74. package/dist/cjs/components/loading/screen.cjs.map +1 -1
  75. package/dist/cjs/components/loading/suspense.cjs.map +1 -1
  76. package/dist/cjs/components/menu/menu.cjs.map +1 -1
  77. package/dist/cjs/components/menu/use-menu.cjs.map +1 -1
  78. package/dist/cjs/components/modal/modal.cjs.map +1 -1
  79. package/dist/cjs/components/native-accordion/native-accordion.cjs.map +1 -1
  80. package/dist/cjs/components/native-popover/native-popover.cjs.map +1 -1
  81. package/dist/cjs/components/native-select/native-select.cjs.map +1 -1
  82. package/dist/cjs/components/native-select/use-native-select.cjs.map +1 -1
  83. package/dist/cjs/components/native-table/native-table.cjs.map +1 -1
  84. package/dist/cjs/components/notice/notice-provider.cjs.map +1 -1
  85. package/dist/cjs/components/notice/notice.cjs.map +1 -1
  86. package/dist/cjs/components/notice/use-notice.cjs.map +1 -1
  87. package/dist/cjs/components/number-input/number-input.cjs.map +1 -1
  88. package/dist/cjs/components/pagination/pagination.cjs.map +1 -1
  89. package/dist/cjs/components/password-input/password-input.cjs.map +1 -1
  90. package/dist/cjs/components/password-input/strength-meter.cjs.map +1 -1
  91. package/dist/cjs/components/picture/picture.cjs.map +1 -1
  92. package/dist/cjs/components/pin-input/pin-input.cjs.map +1 -1
  93. package/dist/cjs/components/popover/popover.cjs +8 -5
  94. package/dist/cjs/components/popover/popover.cjs.map +1 -1
  95. package/dist/cjs/components/progress/progress.cjs.map +1 -1
  96. package/dist/cjs/components/qr-code/qr-code.cjs.map +1 -1
  97. package/dist/cjs/components/radio/radio-group.cjs.map +1 -1
  98. package/dist/cjs/components/radio/radio.cjs.map +1 -1
  99. package/dist/cjs/components/radio-card/radio-card-group.cjs.map +1 -1
  100. package/dist/cjs/components/radio-card/radio-card.cjs.map +1 -1
  101. package/dist/cjs/components/rating/rating.cjs.map +1 -1
  102. package/dist/cjs/components/reorder/reorder.cjs.map +1 -1
  103. package/dist/cjs/components/resizable/resizable.cjs.map +1 -1
  104. package/dist/cjs/components/ripple/ripple.cjs.map +1 -1
  105. package/dist/cjs/components/rotate/rotate.cjs.map +1 -1
  106. package/dist/cjs/components/saturation-slider/saturation-slider.cjs.map +1 -1
  107. package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs.map +1 -1
  108. package/dist/cjs/components/segmented-control/segmented-control.cjs.map +1 -1
  109. package/dist/cjs/components/select/select.cjs.map +1 -1
  110. package/dist/cjs/components/select/use-select.cjs.map +1 -1
  111. package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
  112. package/dist/cjs/components/skeleton/skeleton-text.cjs.map +1 -1
  113. package/dist/cjs/components/slide/slide.cjs.map +1 -1
  114. package/dist/cjs/components/slide-fade/slide-fade.cjs.map +1 -1
  115. package/dist/cjs/components/slider/slider.cjs.map +1 -1
  116. package/dist/cjs/components/slot/slot.cjs.map +1 -1
  117. package/dist/cjs/components/snacks/snacks.cjs.map +1 -1
  118. package/dist/cjs/components/stack/stack.cjs.map +1 -1
  119. package/dist/cjs/components/stack/z-stack.cjs.map +1 -1
  120. package/dist/cjs/components/stat/stat.cjs.map +1 -1
  121. package/dist/cjs/components/status/status.cjs.map +1 -1
  122. package/dist/cjs/components/steps/steps.cjs.map +1 -1
  123. package/dist/cjs/components/switch/switch.cjs.map +1 -1
  124. package/dist/cjs/components/table/table.cjs.map +1 -1
  125. package/dist/cjs/components/tabs/tabs.cjs.map +1 -1
  126. package/dist/cjs/components/tag/tag.cjs.map +1 -1
  127. package/dist/cjs/components/timeline/timeline.cjs.map +1 -1
  128. package/dist/cjs/components/tip/tip.cjs.map +1 -1
  129. package/dist/cjs/components/toggle/toggle-group.cjs.map +1 -1
  130. package/dist/cjs/components/tooltip/tooltip.cjs.map +1 -1
  131. package/dist/cjs/components/tree/tree.cjs.map +1 -1
  132. package/dist/cjs/components/tree/use-tree.cjs.map +1 -1
  133. package/dist/cjs/core/components/create-component.cjs.map +1 -1
  134. package/dist/cjs/core/system/breakpoint.cjs.map +1 -1
  135. package/dist/cjs/core/system/environment-provider.cjs.map +1 -1
  136. package/dist/cjs/core/system/styled.cjs.map +1 -1
  137. package/dist/cjs/core/system/theme-provider.cjs.map +1 -1
  138. package/dist/cjs/hooks/use-async-callback/index.cjs.map +1 -1
  139. package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs.map +1 -1
  140. package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
  141. package/dist/cjs/hooks/use-field-sizing/index.cjs.map +1 -1
  142. package/dist/cjs/hooks/use-outside-click/index.cjs.map +1 -1
  143. package/dist/cjs/index.cjs +9 -3
  144. package/dist/cjs/providers/ui-provider/ui-provider.cjs.map +1 -1
  145. package/dist/cjs/utils/store.cjs.map +1 -1
  146. package/dist/esm/components/accordion/accordion.js.map +1 -1
  147. package/dist/esm/components/action-bar/action-bar.js.map +1 -1
  148. package/dist/esm/components/airy/airy.js.map +1 -1
  149. package/dist/esm/components/alert/alert.js.map +1 -1
  150. package/dist/esm/components/alpha-slider/alpha-slider.js.map +1 -1
  151. package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
  152. package/dist/esm/components/autocomplete/use-autocomplete.js.map +1 -1
  153. package/dist/esm/components/avatar/avatar-group.js.map +1 -1
  154. package/dist/esm/components/avatar/avatar.js.map +1 -1
  155. package/dist/esm/components/blockquote/blockquote.js.map +1 -1
  156. package/dist/esm/components/breadcrumb/breadcrumb.js.map +1 -1
  157. package/dist/esm/components/button/button-group.js.map +1 -1
  158. package/dist/esm/components/button/button.js.map +1 -1
  159. package/dist/esm/components/calendar/calendar.js.map +1 -1
  160. package/dist/esm/components/calendar/use-calendar.js.map +1 -1
  161. package/dist/esm/components/carousel/carousel.js.map +1 -1
  162. package/dist/esm/components/chart/cartesian-chart.js.map +1 -1
  163. package/dist/esm/components/chart/chart.js.map +1 -1
  164. package/dist/esm/components/chart/polar-chart.js.map +1 -1
  165. package/dist/esm/components/checkbox/checkbox-group.js.map +1 -1
  166. package/dist/esm/components/checkbox/checkbox.js.map +1 -1
  167. package/dist/esm/components/checkbox-card/checkbox-card-group.js.map +1 -1
  168. package/dist/esm/components/checkbox-card/checkbox-card.js.map +1 -1
  169. package/dist/esm/components/circle-progress/circle-progress.js.map +1 -1
  170. package/dist/esm/components/collapse/collapse.js.map +1 -1
  171. package/dist/esm/components/color-picker/color-picker.js.map +1 -1
  172. package/dist/esm/components/color-selector/color-selector.js.map +1 -1
  173. package/dist/esm/components/color-swatch/color-swatch-group.js.map +1 -1
  174. package/dist/esm/components/color-swatch/color-swatch.js.map +1 -1
  175. package/dist/esm/components/data-list/data-list.js.map +1 -1
  176. package/dist/esm/components/date-picker/date-picker.js.map +1 -1
  177. package/dist/esm/components/date-picker/use-date-picker.js.map +1 -1
  178. package/dist/esm/components/drawer/drawer.js.map +1 -1
  179. package/dist/esm/components/dropzone/dropzone.js.map +1 -1
  180. package/dist/esm/components/editable/editable.js.map +1 -1
  181. package/dist/esm/components/empty-state/empty-state.js.map +1 -1
  182. package/dist/esm/components/fade/fade.js.map +1 -1
  183. package/dist/esm/components/fade-scale/fade-scale.js.map +1 -1
  184. package/dist/esm/components/field/field.js.map +1 -1
  185. package/dist/esm/components/fieldset/fieldset.js.map +1 -1
  186. package/dist/esm/components/file-input/file-input.js.map +1 -1
  187. package/dist/esm/components/flip/flip.js.map +1 -1
  188. package/dist/esm/components/focus-lock/focus-lock.js.map +1 -1
  189. package/dist/esm/components/form/form.js.map +1 -1
  190. package/dist/esm/components/format/format-byte.js.map +1 -1
  191. package/dist/esm/components/format/format-date-time.js.map +1 -1
  192. package/dist/esm/components/format/format-number.js.map +1 -1
  193. package/dist/esm/components/highlight/highlight.js.map +1 -1
  194. package/dist/esm/components/hue-slider/hue-slider.js.map +1 -1
  195. package/dist/esm/components/icon/icons/circle-euro-icon.js +14 -0
  196. package/dist/esm/components/icon/icons/circle-euro-icon.js.map +1 -0
  197. package/dist/esm/components/icon/icons/index.js +7 -3
  198. package/dist/esm/components/icon/icons/index.js.map +1 -1
  199. package/dist/esm/components/icon/icons/scan-box-icon.js +14 -0
  200. package/dist/esm/components/icon/icons/scan-box-icon.js.map +1 -0
  201. package/dist/esm/components/icon/icons/server-plus-icon.js +14 -0
  202. package/dist/esm/components/icon/icons/server-plus-icon.js.map +1 -0
  203. package/dist/esm/components/icon/index.js +4 -2
  204. package/dist/esm/components/indicator/indicator.js.map +1 -1
  205. package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js.map +1 -1
  206. package/dist/esm/components/input/input-group.js.map +1 -1
  207. package/dist/esm/components/link-box/link-box.js.map +1 -1
  208. package/dist/esm/components/list/list.js.map +1 -1
  209. package/dist/esm/components/loading/audio.js.map +1 -1
  210. package/dist/esm/components/loading/background.js.map +1 -1
  211. package/dist/esm/components/loading/circles.js.map +1 -1
  212. package/dist/esm/components/loading/dots.js.map +1 -1
  213. package/dist/esm/components/loading/grid.js.map +1 -1
  214. package/dist/esm/components/loading/loading-provider.js.map +1 -1
  215. package/dist/esm/components/loading/oval.js.map +1 -1
  216. package/dist/esm/components/loading/page.js.map +1 -1
  217. package/dist/esm/components/loading/puff.js.map +1 -1
  218. package/dist/esm/components/loading/rings.js.map +1 -1
  219. package/dist/esm/components/loading/screen.js.map +1 -1
  220. package/dist/esm/components/loading/suspense.js.map +1 -1
  221. package/dist/esm/components/menu/menu.js.map +1 -1
  222. package/dist/esm/components/menu/use-menu.js.map +1 -1
  223. package/dist/esm/components/modal/modal.js.map +1 -1
  224. package/dist/esm/components/native-accordion/native-accordion.js.map +1 -1
  225. package/dist/esm/components/native-popover/native-popover.js.map +1 -1
  226. package/dist/esm/components/native-select/native-select.js.map +1 -1
  227. package/dist/esm/components/native-select/use-native-select.js.map +1 -1
  228. package/dist/esm/components/native-table/native-table.js.map +1 -1
  229. package/dist/esm/components/notice/notice-provider.js.map +1 -1
  230. package/dist/esm/components/notice/notice.js.map +1 -1
  231. package/dist/esm/components/notice/use-notice.js.map +1 -1
  232. package/dist/esm/components/number-input/number-input.js.map +1 -1
  233. package/dist/esm/components/pagination/pagination.js.map +1 -1
  234. package/dist/esm/components/password-input/password-input.js.map +1 -1
  235. package/dist/esm/components/password-input/strength-meter.js.map +1 -1
  236. package/dist/esm/components/picture/picture.js.map +1 -1
  237. package/dist/esm/components/pin-input/pin-input.js.map +1 -1
  238. package/dist/esm/components/popover/popover.js +8 -5
  239. package/dist/esm/components/popover/popover.js.map +1 -1
  240. package/dist/esm/components/progress/progress.js.map +1 -1
  241. package/dist/esm/components/qr-code/qr-code.js.map +1 -1
  242. package/dist/esm/components/radio/radio-group.js.map +1 -1
  243. package/dist/esm/components/radio/radio.js.map +1 -1
  244. package/dist/esm/components/radio-card/radio-card-group.js.map +1 -1
  245. package/dist/esm/components/radio-card/radio-card.js.map +1 -1
  246. package/dist/esm/components/rating/rating.js.map +1 -1
  247. package/dist/esm/components/reorder/reorder.js.map +1 -1
  248. package/dist/esm/components/resizable/resizable.js.map +1 -1
  249. package/dist/esm/components/ripple/ripple.js.map +1 -1
  250. package/dist/esm/components/rotate/rotate.js.map +1 -1
  251. package/dist/esm/components/saturation-slider/saturation-slider.js.map +1 -1
  252. package/dist/esm/components/saturation-slider/use-saturation-slider.js.map +1 -1
  253. package/dist/esm/components/segmented-control/segmented-control.js.map +1 -1
  254. package/dist/esm/components/select/select.js.map +1 -1
  255. package/dist/esm/components/select/use-select.js.map +1 -1
  256. package/dist/esm/components/sidebar/sidebar.js.map +1 -1
  257. package/dist/esm/components/skeleton/skeleton-text.js.map +1 -1
  258. package/dist/esm/components/slide/slide.js.map +1 -1
  259. package/dist/esm/components/slide-fade/slide-fade.js.map +1 -1
  260. package/dist/esm/components/slider/slider.js.map +1 -1
  261. package/dist/esm/components/slot/slot.js.map +1 -1
  262. package/dist/esm/components/snacks/snacks.js.map +1 -1
  263. package/dist/esm/components/stack/stack.js.map +1 -1
  264. package/dist/esm/components/stack/z-stack.js.map +1 -1
  265. package/dist/esm/components/stat/stat.js.map +1 -1
  266. package/dist/esm/components/status/status.js.map +1 -1
  267. package/dist/esm/components/steps/steps.js.map +1 -1
  268. package/dist/esm/components/switch/switch.js.map +1 -1
  269. package/dist/esm/components/table/table.js.map +1 -1
  270. package/dist/esm/components/tabs/tabs.js.map +1 -1
  271. package/dist/esm/components/tag/tag.js.map +1 -1
  272. package/dist/esm/components/timeline/timeline.js.map +1 -1
  273. package/dist/esm/components/tip/tip.js.map +1 -1
  274. package/dist/esm/components/toggle/toggle-group.js.map +1 -1
  275. package/dist/esm/components/tooltip/tooltip.js.map +1 -1
  276. package/dist/esm/components/tree/tree.js.map +1 -1
  277. package/dist/esm/components/tree/use-tree.js.map +1 -1
  278. package/dist/esm/core/components/create-component.js.map +1 -1
  279. package/dist/esm/core/system/breakpoint.js.map +1 -1
  280. package/dist/esm/core/system/environment-provider.js.map +1 -1
  281. package/dist/esm/core/system/styled.js.map +1 -1
  282. package/dist/esm/core/system/theme-provider.js.map +1 -1
  283. package/dist/esm/hooks/use-breakpoint/use-breakpoint.js.map +1 -1
  284. package/dist/esm/hooks/use-combobox/index.js.map +1 -1
  285. package/dist/esm/hooks/use-field-sizing/index.js.map +1 -1
  286. package/dist/esm/hooks/use-outside-click/index.js.map +1 -1
  287. package/dist/esm/index.js +7 -3
  288. package/dist/esm/providers/ui-provider/ui-provider.js.map +1 -1
  289. package/dist/esm/utils/store.js.map +1 -1
  290. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  291. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  292. package/dist/types/components/icon/icons/circle-euro-icon.d.ts +13 -0
  293. package/dist/types/components/icon/icons/index.d.ts +5 -3
  294. package/dist/types/components/icon/icons/index.types.d.ts +1 -1
  295. package/dist/types/components/icon/icons/scan-box-icon.d.ts +13 -0
  296. package/dist/types/components/icon/icons/server-plus-icon.d.ts +13 -0
  297. package/dist/types/components/icon/index.d.ts +4 -2
  298. package/dist/types/components/menu/menu.style.d.ts +2 -2
  299. package/dist/types/components/menu/use-menu.d.ts +1 -1
  300. package/dist/types/components/popover/popover.d.ts +5 -0
  301. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  302. package/dist/types/components/steps/steps.style.d.ts +1 -1
  303. package/dist/types/components/timeline/timeline.d.ts +1 -1
  304. package/dist/types/components/timeline/timeline.style.d.ts +1 -1
  305. package/dist/types/components/tree/tree.style.d.ts +1 -1
  306. package/dist/types/index.d.ts +5 -3
  307. package/package.json +5 -5
  308. package/dist/cjs/components/icon/icons/circle-euro-sign-icon.cjs +0 -14
  309. package/dist/cjs/components/icon/icons/circle-euro-sign-icon.cjs.map +0 -1
  310. package/dist/esm/components/icon/icons/circle-euro-sign-icon.js +0 -14
  311. package/dist/esm/components/icon/icons/circle-euro-sign-icon.js.map +0 -1
  312. package/dist/types/components/icon/icons/circle-euro-sign-icon.d.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"theme-provider.cjs","names":["THEME_SCHEME_STORAGE_KEY","createStorageManager","useEnvironment","EmotionThemeProvider","useSystem","css","Global","createVarRules","ThemeContext"],"sources":["../../../../src/core/system/theme-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ThemeProviderProps as EmotionThemeProviderProps } from \"@emotion/react\"\nimport type { FC, PropsWithChildren } from \"react\"\nimport type { Environment } from \"./environment-provider\"\nimport type {\n ChangeThemeScheme,\n StyledTheme,\n Theme,\n ThemeConfig,\n ThemeScheme,\n UsageTheme,\n} from \"./index.types\"\nimport type { Storage } from \"./storage-manager\"\nimport {\n ThemeProvider as EmotionThemeProvider,\n Global,\n ThemeContext,\n} from \"@emotion/react\"\nimport { use, useCallback, useEffect, useMemo, useState } from \"react\"\nimport {\n isEmptyObject,\n isObject,\n isShadowRoot,\n isUndefined,\n merge,\n} from \"../../utils\"\nimport { THEME_SCHEME_STORAGE_KEY } from \"../constant\"\nimport { css } from \"../css\"\nimport { useEnvironment } from \"./environment-provider\"\nimport { createStorageManager } from \"./storage-manager\"\nimport { useSystem } from \"./system-provider\"\nimport { createVarRules } from \"./var\"\n\nexport const getPreventTransition = (environment: Environment) => {\n const win = environment.getWindow()\n const doc = environment.getDocument()\n const root = environment.getRootElement()\n const rootNode = environment.getRootNode()\n\n if (!win || !doc || !root) return\n\n const css = doc.createElement(\"style\")\n const shadowRoot = isShadowRoot(rootNode)\n const selector = shadowRoot ? \":host, *\" : \"*\"\n const container = shadowRoot ? rootNode : doc.head\n\n const node = doc.createTextNode(\n `${selector}{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`,\n )\n\n css.appendChild(node)\n\n container.appendChild(css)\n\n return () => {\n const forceReflow = () => win.getComputedStyle(root)\n\n forceReflow()\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n container.removeChild(css)\n })\n })\n }\n}\n\nexport interface ThemeProviderProps\n extends\n PropsWithChildren,\n Omit<EmotionThemeProviderProps, \"children\" | \"theme\"> {\n /**\n * The config of the yamada ui.\n */\n config?: ThemeConfig\n /**\n * If `storage` is `cookie`, the cookie to use.\n * If not provided, the cookie will be set to `document.cookie`.\n */\n cookie?: string\n /**\n * The storage to use.\n * If you are using a server-side rendering library, you should use `cookie`.\n *\n * @default 'localStorage'\n */\n storage?: Storage\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n storageKey?: string\n /**\n * The theme of the yamada ui.\n */\n theme?: UsageTheme\n}\n\nexport const ThemeProvider: FC<ThemeProviderProps> = ({\n children,\n config,\n cookie,\n storage = cookie ? \"cookie\" : \"localStorage\",\n storageKey = THEME_SCHEME_STORAGE_KEY,\n theme = {},\n}) => {\n const { defaultThemeScheme = \"base\", disableTransitionOnChange } =\n config ?? {}\n const storageManager = useMemo(\n () => createStorageManager(storage, storageKey, defaultThemeScheme, cookie),\n [cookie, defaultThemeScheme, storage, storageKey],\n )\n const environment = useEnvironment()\n const [themeScheme, setThemeScheme] = useState<ThemeScheme>(\n storageManager.get(),\n )\n\n const changeThemeScheme: ChangeThemeScheme = useCallback(\n (themeScheme) => {\n const root = environment.getRootElement()\n\n const cleanup = disableTransitionOnChange\n ? getPreventTransition(environment)\n : undefined\n\n if (root) root.dataset.theme = themeScheme\n\n cleanup?.()\n\n setThemeScheme(themeScheme)\n\n storageManager.set(themeScheme)\n },\n [disableTransitionOnChange, environment, storageManager],\n )\n\n useEffect(() => {\n const themeScheme = storageManager.get()\n\n changeThemeScheme(themeScheme)\n }, [changeThemeScheme, storageManager])\n\n return (\n <EmotionThemeProvider theme={{ changeThemeScheme, themeScheme, ...theme }}>\n <GlobalStyles />\n\n {children}\n </EmotionThemeProvider>\n )\n}\n\nexport const GlobalStyles: FC = () => {\n const system = useSystem()\n const { theme } = useTheme<UsageTheme>()\n const { atRule, wrap } = system.layers\n\n const resetStyle = useMemo(() => {\n const style = theme.styles?.resetStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const globalStyle = useMemo(() => {\n const style = theme.styles?.globalStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const varRules = useMemo(() => {\n return createVarRules(\n system.config.css?.varRoot ?? \":host, :root\",\n system.cssVars,\n )\n }, [system])\n\n return (\n <Global\n styles={[\n atRule,\n wrap(\"tokens\", varRules),\n wrap(\"reset\", resetStyle),\n wrap(\"global\", globalStyle),\n ]}\n />\n )\n}\n\n/**\n * `useTheme` is a custom hook that returns a function for retrieving and switching themes.\n *\n * @see https://yamada-ui.com/docs/hooks/use-theme\n */\nexport const useTheme = <Y extends UsageTheme = Theme>() => {\n const internalTheme = use(ThemeContext) as StyledTheme<Y>\n\n const theme = useMemo(() => {\n const { themeScheme } = internalTheme\n\n if (isUndefined(themeScheme) || themeScheme === \"base\") return internalTheme\n\n const nestedTheme =\n \"themeSchemes\" in internalTheme && isObject(internalTheme.themeSchemes)\n ? internalTheme.themeSchemes[themeScheme as string]\n : undefined\n\n if (!nestedTheme) return internalTheme\n\n return merge<StyledTheme<Y>>(internalTheme, nestedTheme)\n }, [internalTheme])\n\n const value = useMemo(() => {\n const { changeThemeScheme, themeScheme } = internalTheme\n\n return {\n changeThemeScheme,\n internalTheme,\n theme,\n themeScheme,\n }\n }, [theme, internalTheme])\n\n return value\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"theme-provider.cjs","names":["THEME_SCHEME_STORAGE_KEY","createStorageManager","useEnvironment","EmotionThemeProvider","useSystem","css","Global","createVarRules","ThemeContext"],"sources":["../../../../src/core/system/theme-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ThemeProviderProps as EmotionThemeProviderProps } from \"@emotion/react\"\nimport type { FC, PropsWithChildren } from \"react\"\nimport type { Environment } from \"./environment-provider\"\nimport type {\n ChangeThemeScheme,\n StyledTheme,\n Theme,\n ThemeConfig,\n ThemeScheme,\n UsageTheme,\n} from \"./index.types\"\nimport type { Storage } from \"./storage-manager\"\nimport {\n ThemeProvider as EmotionThemeProvider,\n Global,\n ThemeContext,\n} from \"@emotion/react\"\nimport { use, useCallback, useEffect, useMemo, useState } from \"react\"\nimport {\n isEmptyObject,\n isObject,\n isShadowRoot,\n isUndefined,\n merge,\n} from \"../../utils\"\nimport { THEME_SCHEME_STORAGE_KEY } from \"../constant\"\nimport { css } from \"../css\"\nimport { useEnvironment } from \"./environment-provider\"\nimport { createStorageManager } from \"./storage-manager\"\nimport { useSystem } from \"./system-provider\"\nimport { createVarRules } from \"./var\"\n\nexport const getPreventTransition = (environment: Environment) => {\n const win = environment.getWindow()\n const doc = environment.getDocument()\n const root = environment.getRootElement()\n const rootNode = environment.getRootNode()\n\n if (!win || !doc || !root) return\n\n const css = doc.createElement(\"style\")\n const shadowRoot = isShadowRoot(rootNode)\n const selector = shadowRoot ? \":host, *\" : \"*\"\n const container = shadowRoot ? rootNode : doc.head\n\n const node = doc.createTextNode(\n `${selector}{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`,\n )\n\n css.appendChild(node)\n\n container.appendChild(css)\n\n return () => {\n const forceReflow = () => win.getComputedStyle(root)\n\n forceReflow()\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n container.removeChild(css)\n })\n })\n }\n}\n\nexport interface ThemeProviderProps\n extends\n PropsWithChildren,\n Omit<EmotionThemeProviderProps, \"children\" | \"theme\"> {\n /**\n * The config of the yamada ui.\n */\n config?: ThemeConfig\n /**\n * If `storage` is `cookie`, the cookie to use.\n * If not provided, the cookie will be set to `document.cookie`.\n */\n cookie?: string\n /**\n * The storage to use.\n * If you are using a server-side rendering library, you should use `cookie`.\n *\n * @default 'localStorage'\n */\n storage?: Storage\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n storageKey?: string\n /**\n * The theme of the yamada ui.\n */\n theme?: UsageTheme\n}\n\nexport const ThemeProvider: FC<ThemeProviderProps> = ({\n children,\n config,\n cookie,\n storage = cookie ? \"cookie\" : \"localStorage\",\n storageKey = THEME_SCHEME_STORAGE_KEY,\n theme = {},\n}) => {\n const { defaultThemeScheme = \"base\", disableTransitionOnChange } =\n config ?? {}\n const storageManager = useMemo(\n () => createStorageManager(storage, storageKey, defaultThemeScheme, cookie),\n [cookie, defaultThemeScheme, storage, storageKey],\n )\n const environment = useEnvironment()\n const [themeScheme, setThemeScheme] = useState<ThemeScheme>(\n storageManager.get(),\n )\n\n const changeThemeScheme: ChangeThemeScheme = useCallback(\n (themeScheme) => {\n const root = environment.getRootElement()\n\n const cleanup = disableTransitionOnChange\n ? getPreventTransition(environment)\n : undefined\n\n if (root) root.dataset.theme = themeScheme\n\n cleanup?.()\n\n setThemeScheme(themeScheme)\n\n storageManager.set(themeScheme)\n },\n [disableTransitionOnChange, environment, storageManager],\n )\n\n useEffect(() => {\n const themeScheme = storageManager.get()\n\n changeThemeScheme(themeScheme)\n }, [changeThemeScheme, storageManager])\n\n return (\n <EmotionThemeProvider theme={{ changeThemeScheme, themeScheme, ...theme }}>\n <GlobalStyles />\n\n {children}\n </EmotionThemeProvider>\n )\n}\n\nexport const GlobalStyles: FC = () => {\n const system = useSystem()\n const { theme } = useTheme<UsageTheme>()\n const { atRule, wrap } = system.layers\n\n const resetStyle = useMemo(() => {\n const style = theme.styles?.resetStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const globalStyle = useMemo(() => {\n const style = theme.styles?.globalStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const varRules = useMemo(() => {\n return createVarRules(\n system.config.css?.varRoot ?? \":host, :root\",\n system.cssVars,\n )\n }, [system])\n\n return (\n <Global\n styles={[\n atRule,\n wrap(\"tokens\", varRules),\n wrap(\"reset\", resetStyle),\n wrap(\"global\", globalStyle),\n ]}\n />\n )\n}\n\n/**\n * `useTheme` is a custom hook that returns a function for retrieving and switching themes.\n *\n * @see https://yamada-ui.com/docs/hooks/use-theme\n */\nexport const useTheme = <Y extends UsageTheme = Theme>() => {\n const internalTheme = use(ThemeContext) as StyledTheme<Y>\n\n const theme = useMemo(() => {\n const { themeScheme } = internalTheme\n\n if (isUndefined(themeScheme) || themeScheme === \"base\") return internalTheme\n\n const nestedTheme =\n \"themeSchemes\" in internalTheme && isObject(internalTheme.themeSchemes)\n ? internalTheme.themeSchemes[themeScheme as string]\n : undefined\n\n if (!nestedTheme) return internalTheme\n\n return merge<StyledTheme<Y>>(internalTheme, nestedTheme)\n }, [internalTheme])\n\n const value = useMemo(() => {\n const { changeThemeScheme, themeScheme } = internalTheme\n\n return {\n changeThemeScheme,\n internalTheme,\n theme,\n themeScheme,\n }\n }, [theme, internalTheme])\n\n return value\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["useLoading","useProcessing","useCallbackRef"],"sources":["../../../../src/hooks/use-async-callback/index.ts"],"sourcesContent":["import type { DependencyList } from \"react\"\nimport type { Loading } from \"../../components/loading\"\nimport { useCallback, useMemo } from \"react\"\nimport { useLoading } from \"../../components/loading\"\nimport { useCallbackRef } from \"../../utils/ref\"\nimport { useProcessing } from \"../use-processing\"\n\ntype Callback = (...args: any[]) => any\n\nexport interface UseAsyncCallbackOptions {\n /**\n * The method to use for loading.\n * If `false`, the loading will not be shown.\n */\n loading?: false | Loading.Method\n /**\n * The options to pass to the loading component.\n */\n loadingOptions?: Loading.Options\n /**\n * If `false`, the processing will not change.\n *\n * @default true\n */\n processing?: boolean\n}\n\n/**\n * `useAsyncCallback` is a custom hook used to manage async callbacks.\n *\n * @see https://yamada-ui.com/docs/hooks/use-async-callback\n */\nexport const useAsyncCallback = <Y extends Callback>(\n callback: Y,\n deps: DependencyList,\n {\n loading: method = false,\n loadingOptions,\n processing: shouldProcessing = true,\n }: UseAsyncCallbackOptions = {},\n): UseAsyncCallbackReturn<Y> => {\n const context = useLoading()\n const { finish, loading, start } = useProcessing()\n const shouldLoading = !!method\n const callbackRef = useCallbackRef(callback, deps)\n\n const asyncCallback = useCallback(\n async (...args: Parameters<Y>) => {\n try {\n if (shouldProcessing) start()\n if (shouldLoading) context[method].start(loadingOptions)\n\n return await callbackRef(...args)\n } finally {\n if (shouldProcessing) finish()\n if (shouldLoading) context[method].finish()\n }\n },\n [\n callbackRef,\n shouldProcessing,\n shouldLoading,\n context,\n method,\n loadingOptions,\n start,\n finish,\n ],\n )\n\n const control = useMemo(() => ({ finish, start }), [finish, start])\n\n return [loading, asyncCallback, control]\n}\n\nexport type UseAsyncCallbackReturn<Y extends Callback> = [\n loading: boolean,\n callback: (...args: Parameters<Y>) => Promise<Awaited<ReturnType<Y>>>,\n control: { finish: () => void; start: () => void },\n]\n"],"mappings":";;;;;;;;;;;AAgCA,MAAa,oBACX,UACA,MACA,EACE,SAAS,SAAS,OAClB,gBACA,YAAY,mBAAmB,SACJ,CAAC,MACA;CAC9B,MAAM,UAAUA,yBAAAA,WAAW;CAC3B,MAAM,EAAE,QAAQ,SAAS,UAAUC,mCAAAA,cAAc;CACjD,MAAM,gBAAgB,CAAC,CAAC;CACxB,MAAM,cAAcC,YAAAA,eAAe,UAAU,IAAI;CA4BjD,OAAO;EAAC;yBAzBN,OAAO,GAAG,SAAwB;GAChC,IAAI;IACF,IAAI,kBAAkB,MAAM;IAC5B,IAAI,eAAe,QAAQ,OAAO,CAAC,MAAM,cAAc;IAEvD,OAAO,MAAM,YAAY,GAAG,IAAI;GAClC,UAAU;IACR,IAAI,kBAAkB,OAAO;IAC7B,IAAI,eAAe,QAAQ,OAAO,CAAC,OAAO;GAC5C;EACF,GACA;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAK2B;4BAFE;GAAE;GAAQ;EAAM,IAAI,CAAC,QAAQ,KAAK,CAE3B;CAAC;AACzC"}
1
+ {"version":3,"file":"index.cjs","names":["useLoading","useProcessing","useCallbackRef"],"sources":["../../../../src/hooks/use-async-callback/index.ts"],"sourcesContent":["import type { DependencyList } from \"react\"\nimport type { Loading } from \"../../components/loading\"\nimport { useCallback, useMemo } from \"react\"\nimport { useLoading } from \"../../components/loading\"\nimport { useCallbackRef } from \"../../utils/ref\"\nimport { useProcessing } from \"../use-processing\"\n\ntype Callback = (...args: any[]) => any\n\nexport interface UseAsyncCallbackOptions {\n /**\n * The method to use for loading.\n * If `false`, the loading will not be shown.\n */\n loading?: false | Loading.Method\n /**\n * The options to pass to the loading component.\n */\n loadingOptions?: Loading.Options\n /**\n * If `false`, the processing will not change.\n *\n * @default true\n */\n processing?: boolean\n}\n\n/**\n * `useAsyncCallback` is a custom hook used to manage async callbacks.\n *\n * @see https://yamada-ui.com/docs/hooks/use-async-callback\n */\nexport const useAsyncCallback = <Y extends Callback>(\n callback: Y,\n deps: DependencyList,\n {\n loading: method = false,\n loadingOptions,\n processing: shouldProcessing = true,\n }: UseAsyncCallbackOptions = {},\n): UseAsyncCallbackReturn<Y> => {\n const context = useLoading()\n const { finish, loading, start } = useProcessing()\n const shouldLoading = !!method\n const callbackRef = useCallbackRef(callback, deps)\n\n const asyncCallback = useCallback(\n async (...args: Parameters<Y>) => {\n try {\n if (shouldProcessing) start()\n if (shouldLoading) context[method].start(loadingOptions)\n\n return await callbackRef(...args)\n } finally {\n if (shouldProcessing) finish()\n if (shouldLoading) context[method].finish()\n }\n },\n [\n callbackRef,\n shouldProcessing,\n shouldLoading,\n context,\n method,\n loadingOptions,\n start,\n finish,\n ],\n )\n\n const control = useMemo(() => ({ finish, start }), [finish, start])\n\n return [loading, asyncCallback, control]\n}\n\nexport type UseAsyncCallbackReturn<Y extends Callback> = [\n loading: boolean,\n callback: (...args: Parameters<Y>) => Promise<Awaited<ReturnType<Y>>>,\n control: { finish: () => void; start: () => void },\n]\n"],"mappings":";;;;;;;;;;;AAgCA,MAAa,oBACX,UACA,MACA,EACE,SAAS,SAAS,OAClB,gBACA,YAAY,mBAAmB,SACJ,CAAC,MACA;CAC9B,MAAM,UAAUA,yBAAAA,WAAW;CAC3B,MAAM,EAAE,QAAQ,SAAS,UAAUC,mCAAAA,cAAc;CACjD,MAAM,gBAAgB,CAAC,CAAC;CACxB,MAAM,cAAcC,YAAAA,eAAe,UAAU,IAAI;CA4BjD,OAAO;EAAC;GAzBN,GAAA,MAAA,YAAA,CAAA,OAAO,GAAG,SAAwB;GAChC,IAAI;IACF,IAAI,kBAAkB,MAAM;IAC5B,IAAI,eAAe,QAAQ,OAAO,CAAC,MAAM,cAAc;IAEvD,OAAO,MAAM,YAAY,GAAG,IAAI;GAClC,UAAU;IACR,IAAI,kBAAkB,OAAO;IAC7B,IAAI,eAAe,QAAQ,OAAO,CAAC,OAAO;GAC5C;EACF,GACA;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAK2B;GAFE,GAAA,MAAA,QAAA,QAAA;GAAE;GAAQ;EAAM,IAAI,CAAC,QAAQ,KAAK,CAE3B;CAAC;AACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-breakpoint.cjs","names":["useSystem","useEnvironment"],"sources":["../../../../src/hooks/use-breakpoint/use-breakpoint.ts"],"sourcesContent":["\"use client\"\n\nimport type { Breakpoint } from \"../../core\"\nimport { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\"\nimport { useEnvironment, useSystem } from \"../../core\"\nimport { createdDom, isUndefined, noop } from \"../../utils\"\n\n/**\n * `useBreakpoint` is a custom hook that returns the current breakpoint.\n * This hook monitors changes in the window size and returns the appropriate value.\n *\n * @see https://yamada-ui.com/docs/hooks/use-breakpoint\n */\nexport const useBreakpoint = () => {\n const animationFrameId = useRef(0)\n const { breakpoints, config } = useSystem()\n const { getWindow } = useEnvironment()\n const {\n containerRef,\n direction = \"down\",\n identifier = \"@media screen\",\n } = config.breakpoint ?? {}\n const hasContainer = !!containerRef\n\n const queries = useMemo(() => {\n return breakpoints.queries.map(\n ({ breakpoint, maxW, minMaxQuery, minW }) => {\n const searchValue =\n identifier === \"@media screen\"\n ? \"@media screen and \"\n : `${identifier} `\n const query = minMaxQuery?.replace(searchValue, \"\") ?? \"\"\n\n return {\n breakpoint,\n maxW,\n minW,\n query,\n }\n },\n )\n }, [breakpoints, identifier])\n\n const hasQueries = !!queries.length\n\n const getBreakpoint = useCallback(\n (width?: number) => {\n if (isUndefined(width)) {\n const win = getWindow()\n\n if (hasContainer || !hasQueries) return \"base\"\n\n for (const { breakpoint, query } of queries) {\n const mql = win?.matchMedia(query)\n\n if (mql?.matches) return breakpoint\n }\n } else {\n for (const { breakpoint, maxW, minW } of queries)\n if (direction !== \"up\") {\n if ((minW ?? 0) <= width) return breakpoint\n } else {\n if (width <= (maxW ?? Infinity)) return breakpoint\n }\n }\n\n return \"base\"\n },\n [direction, getWindow, hasContainer, hasQueries, queries],\n )\n\n const breakpointRef = useRef<Breakpoint>(getBreakpoint())\n\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!hasContainer || !hasQueries) {\n const observer = queries.map(({ breakpoint, query }): (() => void) => {\n const mql = getWindow()?.matchMedia(query)\n\n const onChange = (e: MediaQueryListEvent) => {\n if (e.matches) breakpointRef.current = breakpoint\n\n listener()\n }\n\n mql?.addEventListener(\"change\", onChange)\n\n return () => {\n mql?.removeEventListener(\"change\", onChange)\n }\n })\n\n return () => {\n observer.forEach((unobserve) => unobserve())\n }\n } else if (createdDom()) {\n const observer = new ResizeObserver(([entry]) => {\n if (!entry) return\n\n cancelAnimationFrame(animationFrameId.current)\n\n const { width } = entry.contentRect\n\n breakpointRef.current = getBreakpoint(width)\n\n animationFrameId.current = requestAnimationFrame(listener)\n })\n\n if (containerRef.current) observer.observe(containerRef.current)\n\n return () => {\n observer.disconnect()\n\n if (process.env.NODE_ENV !== \"test\")\n cancelAnimationFrame(animationFrameId.current)\n }\n } else {\n return noop\n }\n },\n [containerRef, getBreakpoint, getWindow, hasContainer, hasQueries, queries],\n )\n\n const getSnapshot = useCallback(() => {\n return breakpointRef.current\n }, [])\n\n const breakpoint = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n\n return breakpoint\n}\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,sBAAsB;CACjC,MAAM,oBAAA,GAAA,MAAA,OAAA,CAA0B,CAAC;CACjC,MAAM,EAAE,aAAa,WAAWA,wBAAAA,UAAU;CAC1C,MAAM,EAAE,cAAcC,6BAAAA,eAAe;CACrC,MAAM,EACJ,cACA,YAAY,QACZ,aAAa,oBACX,OAAO,cAAc,CAAC;CAC1B,MAAM,eAAe,CAAC,CAAC;CAEvB,MAAM,WAAA,GAAA,MAAA,QAAA,OAAwB;EAC5B,OAAO,YAAY,QAAQ,KACxB,EAAE,YAAY,MAAM,aAAa,WAAW;GAC3C,MAAM,cACJ,eAAe,kBACX,uBACA,GAAG,WAAW;GAGpB,OAAO;IACL;IACA;IACA;IACA,OANY,aAAa,QAAQ,aAAa,EAAE,KAAK;GAOvD;EACF,CACF;CACF,GAAG,CAAC,aAAa,UAAU,CAAC;CAE5B,MAAM,aAAa,CAAC,CAAC,QAAQ;CAE7B,MAAM,iBAAA,GAAA,MAAA,YAAA,EACH,UAAmB;EAClB,KAAA,GAAA,oBAAA,cAAA,YAAA,CAAgB,KAAK,GAAG;GACtB,MAAM,MAAM,UAAU;GAEtB,IAAI,gBAAgB,CAAC,YAAY,OAAO;GAExC,KAAK,MAAM,EAAE,YAAY,WAAW,SAGlC,KAFY,KAAK,WAAW,KAAK,EAAA,EAExB,SAAS,OAAO;EAE7B,OACE,KAAK,MAAM,EAAE,YAAY,MAAM,UAAU,SACvC,IAAI,cAAc;QACX,QAAQ,MAAM,OAAO,OAAO;EAAA,OAEjC,IAAI,UAAU,QAAQ,WAAW,OAAO;EAI9C,OAAO;CACT,GACA;EAAC;EAAW;EAAW;EAAc;EAAY;CAAO,CAC1D;CAEA,MAAM,iBAAA,GAAA,MAAA,OAAA,CAAmC,cAAc,CAAC;CAExD,MAAM,aAAA,GAAA,MAAA,YAAA,EACH,aAAyB;EACxB,IAAI,CAAC,gBAAgB,CAAC,YAAY;GAChC,MAAM,WAAW,QAAQ,KAAK,EAAE,YAAY,YAA0B;IACpE,MAAM,MAAM,UAAU,CAAC,EAAE,WAAW,KAAK;IAEzC,MAAM,YAAY,MAA2B;KAC3C,IAAI,EAAE,SAAS,cAAc,UAAU;KAEvC,SAAS;IACX;IAEA,KAAK,iBAAiB,UAAU,QAAQ;IAExC,aAAa;KACX,KAAK,oBAAoB,UAAU,QAAQ;IAC7C;GACF,CAAC;GAED,aAAa;IACX,SAAS,SAAS,cAAc,UAAU,CAAC;GAC7C;EACF,OAAO,KAAA,GAAA,oBAAA,cAAA,WAAA,CAAe,GAAG;GACvB,MAAM,WAAW,IAAI,gBAAgB,CAAC,WAAW;IAC/C,IAAI,CAAC,OAAO;IAEZ,qBAAqB,iBAAiB,OAAO;IAE7C,MAAM,EAAE,UAAU,MAAM;IAExB,cAAc,UAAU,cAAc,KAAK;IAE3C,iBAAiB,UAAU,sBAAsB,QAAQ;GAC3D,CAAC;GAED,IAAI,aAAa,SAAS,SAAS,QAAQ,aAAa,OAAO;GAE/D,aAAa;IACX,SAAS,WAAW;IAEpB,IAAI,QAAQ,IAAI,aAAa,QAC3B,qBAAqB,iBAAiB,OAAO;GACjD;EACF,OACE,OAAA,oBAAA,cAAO;CAEX,GACA;EAAC;EAAc;EAAe;EAAW;EAAc;EAAY;CAAO,CAC5E;CAEA,MAAM,eAAA,GAAA,MAAA,YAAA,OAAgC;EACpC,OAAO,cAAc;CACvB,GAAG,CAAC,CAAC;CAIL,QAAA,GAAA,MAAA,qBAAA,CAFwC,WAAW,aAAa,WAEhD;AAClB"}
1
+ {"version":3,"file":"use-breakpoint.cjs","names":["useSystem","useEnvironment"],"sources":["../../../../src/hooks/use-breakpoint/use-breakpoint.ts"],"sourcesContent":["\"use client\"\n\nimport type { Breakpoint } from \"../../core\"\nimport { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\"\nimport { useEnvironment, useSystem } from \"../../core\"\nimport { createdDom, isUndefined, noop } from \"../../utils\"\n\n/**\n * `useBreakpoint` is a custom hook that returns the current breakpoint.\n * This hook monitors changes in the window size and returns the appropriate value.\n *\n * @see https://yamada-ui.com/docs/hooks/use-breakpoint\n */\nexport const useBreakpoint = () => {\n const animationFrameId = useRef(0)\n const { breakpoints, config } = useSystem()\n const { getWindow } = useEnvironment()\n const {\n containerRef,\n direction = \"down\",\n identifier = \"@media screen\",\n } = config.breakpoint ?? {}\n const hasContainer = !!containerRef\n\n const queries = useMemo(() => {\n return breakpoints.queries.map(\n ({ breakpoint, maxW, minMaxQuery, minW }) => {\n const searchValue =\n identifier === \"@media screen\"\n ? \"@media screen and \"\n : `${identifier} `\n const query = minMaxQuery?.replace(searchValue, \"\") ?? \"\"\n\n return {\n breakpoint,\n maxW,\n minW,\n query,\n }\n },\n )\n }, [breakpoints, identifier])\n\n const hasQueries = !!queries.length\n\n const getBreakpoint = useCallback(\n (width?: number) => {\n if (isUndefined(width)) {\n const win = getWindow()\n\n if (hasContainer || !hasQueries) return \"base\"\n\n for (const { breakpoint, query } of queries) {\n const mql = win?.matchMedia(query)\n\n if (mql?.matches) return breakpoint\n }\n } else {\n for (const { breakpoint, maxW, minW } of queries)\n if (direction !== \"up\") {\n if ((minW ?? 0) <= width) return breakpoint\n } else {\n if (width <= (maxW ?? Infinity)) return breakpoint\n }\n }\n\n return \"base\"\n },\n [direction, getWindow, hasContainer, hasQueries, queries],\n )\n\n const breakpointRef = useRef<Breakpoint>(getBreakpoint())\n\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!hasContainer || !hasQueries) {\n const observer = queries.map(({ breakpoint, query }): (() => void) => {\n const mql = getWindow()?.matchMedia(query)\n\n const onChange = (e: MediaQueryListEvent) => {\n if (e.matches) breakpointRef.current = breakpoint\n\n listener()\n }\n\n mql?.addEventListener(\"change\", onChange)\n\n return () => {\n mql?.removeEventListener(\"change\", onChange)\n }\n })\n\n return () => {\n observer.forEach((unobserve) => unobserve())\n }\n } else if (createdDom()) {\n const observer = new ResizeObserver(([entry]) => {\n if (!entry) return\n\n cancelAnimationFrame(animationFrameId.current)\n\n const { width } = entry.contentRect\n\n breakpointRef.current = getBreakpoint(width)\n\n animationFrameId.current = requestAnimationFrame(listener)\n })\n\n if (containerRef.current) observer.observe(containerRef.current)\n\n return () => {\n observer.disconnect()\n\n if (process.env.NODE_ENV !== \"test\")\n cancelAnimationFrame(animationFrameId.current)\n }\n } else {\n return noop\n }\n },\n [containerRef, getBreakpoint, getWindow, hasContainer, hasQueries, queries],\n )\n\n const getSnapshot = useCallback(() => {\n return breakpointRef.current\n }, [])\n\n const breakpoint = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n\n return breakpoint\n}\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,sBAAsB;CACjC,MAAM,oBAAA,GAAA,MAAA,OAAA,CAA0B,CAAC;CACjC,MAAM,EAAE,aAAa,WAAWA,wBAAAA,UAAU;CAC1C,MAAM,EAAE,cAAcC,6BAAAA,eAAe;CACrC,MAAM,EACJ,cACA,YAAY,QACZ,aAAa,oBACX,OAAO,cAAc,CAAC;CAC1B,MAAM,eAAe,CAAC,CAAC;CAEvB,MAAM,WAAA,GAAA,MAAA,QAAA,OAAwB;EAC5B,OAAO,YAAY,QAAQ,KACxB,EAAE,YAAY,MAAM,aAAa,WAAW;GAC3C,MAAM,cACJ,eAAe,kBACX,uBACA,GAAG,WAAW;GAGpB,OAAO;IACL;IACA;IACA;IACA,OANY,aAAa,QAAQ,aAAa,EAAE,KAAK;GAOvD;EACF,CACF;CACF,GAAG,CAAC,aAAa,UAAU,CAAC;CAE5B,MAAM,aAAa,CAAC,CAAC,QAAQ;CAE7B,MAAM,iBAAA,GAAA,MAAA,YAAA,EACH,UAAmB;EAClB,KAAA,GAAA,oBAAA,cAAA,YAAA,CAAgB,KAAK,GAAG;GACtB,MAAM,MAAM,UAAU;GAEtB,IAAI,gBAAgB,CAAC,YAAY,OAAO;GAExC,KAAK,MAAM,EAAE,YAAY,WAAW,SAGlC,KAFY,KAAK,WAAW,KAAK,EAAA,EAExB,SAAS,OAAO;EAE7B,OACE,KAAK,MAAM,EAAE,YAAY,MAAM,UAAU,SACvC,IAAI,cAAc,MACX;QAAA,QAAQ,MAAM,OAAO,OAAO;EAAA,OAEjC,IAAI,UAAU,QAAQ,WAAW,OAAO;EAI9C,OAAO;CACT,GACA;EAAC;EAAW;EAAW;EAAc;EAAY;CAAO,CAC1D;CAEA,MAAM,iBAAA,GAAA,MAAA,OAAA,CAAmC,cAAc,CAAC;CAExD,MAAM,aAAA,GAAA,MAAA,YAAA,EACH,aAAyB;EACxB,IAAI,CAAC,gBAAgB,CAAC,YAAY;GAChC,MAAM,WAAW,QAAQ,KAAK,EAAE,YAAY,YAA0B;IACpE,MAAM,MAAM,UAAU,CAAC,EAAE,WAAW,KAAK;IAEzC,MAAM,YAAY,MAA2B;KAC3C,IAAI,EAAE,SAAS,cAAc,UAAU;KAEvC,SAAS;IACX;IAEA,KAAK,iBAAiB,UAAU,QAAQ;IAExC,aAAa;KACX,KAAK,oBAAoB,UAAU,QAAQ;IAC7C;GACF,CAAC;GAED,aAAa;IACX,SAAS,SAAS,cAAc,UAAU,CAAC;GAC7C;EACF,OAAO,KAAA,GAAA,oBAAA,cAAA,WAAA,CAAe,GAAG;GACvB,MAAM,WAAW,IAAI,gBAAgB,CAAC,WAAW;IAC/C,IAAI,CAAC,OAAO;IAEZ,qBAAqB,iBAAiB,OAAO;IAE7C,MAAM,EAAE,UAAU,MAAM;IAExB,cAAc,UAAU,cAAc,KAAK;IAE3C,iBAAiB,UAAU,sBAAsB,QAAQ;GAC3D,CAAC;GAED,IAAI,aAAa,SAAS,SAAS,QAAQ,aAAa,OAAO;GAE/D,aAAa;IACX,SAAS,WAAW;IAEpB,IAAI,QAAQ,IAAI,aAAa,QAC3B,qBAAqB,iBAAiB,OAAO;GACjD;EACF,OACE,OAAA,oBAAA,cAAO;CAEX,GACA;EAAC;EAAc;EAAe;EAAW;EAAc;EAAY;CAAO,CAC5E;CAEA,MAAM,eAAA,GAAA,MAAA,YAAA,OAAgC;EACpC,OAAO,cAAc;CACvB,GAAG,CAAC,CAAC;CAIL,QAAA,GAAA,MAAA,qBAAA,CAFwC,WAAW,aAAa,WAEhD;AAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["getValidChildren","isSomeElement","findChild","createDescendants","createContext","usePopoverProps","useEnvironment","useDisclosure","isComposing","mergeProps","mergeRefs"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items, label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n { matchWidth = true, ...popoverProps },\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, matchWidth, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n ...mergeProps(\n {\n ref: triggerRef,\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n },\n rest,\n props,\n )({ mergeEvent: false }),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) =>\n mergeProps(\n {\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n },\n rest,\n props,\n )(),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n (props = {}) => ({\n ...mergeProps(\n {\n id,\n ref: itemRef,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n },\n rest,\n props,\n { ref: register },\n )({ mergeEvent: false }),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n (props = {}) =>\n mergeProps({ style: { opacity: selected ? 1 : 0 } }, props)(),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["getValidChildren","isSomeElement","findChild","createDescendants","createContext","usePopoverProps","useEnvironment","useDisclosure","isComposing","mergeProps","mergeRefs"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items, label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n { matchWidth = true, ...popoverProps },\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, matchWidth, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n ...mergeProps(\n {\n ref: triggerRef,\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n },\n rest,\n props,\n )({ mergeEvent: false }),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) =>\n mergeProps(\n {\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n },\n rest,\n props,\n )(),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n (props = {}) => ({\n ...mergeProps(\n {\n id,\n ref: itemRef,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n },\n rest,\n props,\n { ref: register },\n )({ mergeEvent: false }),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n (props = {}) =>\n mergeProps({ style: { opacity: selected ? 1 : 0 } }, props)(),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/hooks/use-field-sizing/index.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect, useMemo, useRef } from \"react\"\n\nexport interface UseFieldSizingProps {\n value?: string\n}\n\nexport const useFieldSizing = <Y extends HTMLElement>({\n value = \"\",\n}: UseFieldSizingProps) => {\n const ref = useRef<Y>(null)\n const textRef = useRef<HTMLSpanElement>(null)\n const text = useMemo(\n () => (\n <span\n ref={textRef}\n style={{\n opacity: 0,\n overflow: \"hidden\",\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n zIndex: -1,\n }}\n aria-hidden\n >\n {value}\n </span>\n ),\n [value],\n )\n\n useEffect(() => {\n if (!textRef.current) return\n\n const { width } = textRef.current.getBoundingClientRect()\n\n if (ref.current) ref.current.style.width = `${width}px`\n }, [value])\n\n return { ref, text }\n}\n\nexport type UseFieldSizingReturn = ReturnType<typeof useFieldSizing>\n"],"mappings":";;;;;AAQA,MAAa,kBAAyC,EACpD,QAAQ,SACiB;CACzB,MAAM,OAAA,GAAA,MAAA,OAAA,CAAgB,IAAI;CAC1B,MAAM,WAAA,GAAA,MAAA,OAAA,CAAkC,IAAI;CAC5C,MAAM,QAAA,GAAA,MAAA,QAAA,OAEF,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,KAAK;EACL,OAAO;GACL,SAAS;GACT,UAAU;GACV,UAAU;GACV,YAAY;GACZ,QAAQ;EACV;EACA,eAAA;YAEC;CACG,CAAA,GAER,CAAC,KAAK,CACR;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,QAAQ,SAAS;EAEtB,MAAM,EAAE,UAAU,QAAQ,QAAQ,sBAAsB;EAExD,IAAI,IAAI,SAAS,IAAI,QAAQ,MAAM,QAAQ,GAAG,MAAM;CACtD,GAAG,CAAC,KAAK,CAAC;CAEV,OAAO;EAAE;EAAK;CAAK;AACrB"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/hooks/use-field-sizing/index.tsx"],"sourcesContent":["\"use client\"\n\nimport { useEffect, useMemo, useRef } from \"react\"\n\nexport interface UseFieldSizingProps {\n value?: string\n}\n\nexport const useFieldSizing = <Y extends HTMLElement>({\n value = \"\",\n}: UseFieldSizingProps) => {\n const ref = useRef<Y>(null)\n const textRef = useRef<HTMLSpanElement>(null)\n const text = useMemo(\n () => (\n <span\n ref={textRef}\n style={{\n opacity: 0,\n overflow: \"hidden\",\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n zIndex: -1,\n }}\n aria-hidden\n >\n {value}\n </span>\n ),\n [value],\n )\n\n useEffect(() => {\n if (!textRef.current) return\n\n const { width } = textRef.current.getBoundingClientRect()\n\n if (ref.current) ref.current.style.width = `${width}px`\n }, [value])\n\n return { ref, text }\n}\n\nexport type UseFieldSizingReturn = ReturnType<typeof useFieldSizing>\n"],"mappings":";;;;;AAQA,MAAa,kBAAyC,EACpD,QAAQ,SACiB;CACzB,MAAM,OAAA,GAAA,MAAA,OAAA,CAAgB,IAAI;CAC1B,MAAM,WAAA,GAAA,MAAA,OAAA,CAAkC,IAAI;CAC5C,MAAM,QAAA,GAAA,MAAA,QAAA,OAEF,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,KAAK;EACL,OAAO;GACL,SAAS;GACT,UAAU;GACV,UAAU;GACV,YAAY;GACZ,QAAQ;EACV;EACA,eAAA;EAEC,UAAA;CACG,CAAA,GAER,CAAC,KAAK,CACR;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,QAAQ,SAAS;EAEtB,MAAM,EAAE,UAAU,QAAQ,QAAQ,sBAAsB;EAExD,IAAI,IAAI,SAAS,IAAI,QAAQ,MAAM,QAAQ,GAAG,MAAM;CACtD,GAAG,CAAC,KAAK,CAAC;CAEV,OAAO;EAAE;EAAK;CAAK;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["useCallbackRef"],"sources":["../../../../src/hooks/use-outside-click/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport { getDocument, isArray, useCallbackRef } from \"../../utils\"\n\nexport interface UseOutsideClickProps {\n ref: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[]\n enabled?: boolean\n handler?: (ev: Event) => void\n}\n\n/**\n * `useOutsideClick` is a custom hook that detects click events outside of an element.\n *\n * @see https://yamada-ui.com/docs/hooks/use-outside-click\n */\nexport const useOutsideClick = ({\n ref,\n enabled = true,\n handler,\n}: UseOutsideClickProps) => {\n const handlerRef = useCallbackRef(handler)\n\n const state = useRef({\n ignoreEmulatedMouseEvents: false,\n isPointerDown: false,\n })\n\n const onPointerDown = useCallback(\n (ev: MouseEvent | TouchEvent) => {\n if (isValidEvent(ev, ref)) state.current.isPointerDown = true\n },\n [ref],\n )\n\n const onMouseUp = useCallback(\n (ev: MouseEvent) => {\n if (state.current.ignoreEmulatedMouseEvents) {\n state.current.ignoreEmulatedMouseEvents = false\n\n return\n }\n\n if (state.current.isPointerDown && handler && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n },\n [handler, handlerRef, ref],\n )\n\n const onTouchEnd = useCallback(\n (ev: TouchEvent) => {\n state.current.ignoreEmulatedMouseEvents = true\n\n if (state.current.isPointerDown && handler && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n },\n [handler, handlerRef, ref],\n )\n\n useEffect(() => {\n if (!enabled) return\n\n const doc = getDocument(isArray(ref) ? ref[0]?.current : ref.current)\n\n doc.addEventListener(\"mousedown\", onPointerDown, true)\n doc.addEventListener(\"mouseup\", onMouseUp, true)\n doc.addEventListener(\"touchstart\", onPointerDown, true)\n doc.addEventListener(\"touchend\", onTouchEnd, true)\n\n return () => {\n doc.removeEventListener(\"mousedown\", onPointerDown, true)\n doc.removeEventListener(\"mouseup\", onMouseUp, true)\n doc.removeEventListener(\"touchstart\", onPointerDown, true)\n doc.removeEventListener(\"touchend\", onTouchEnd, true)\n }\n }, [\n handler,\n ref,\n handlerRef,\n state,\n enabled,\n onPointerDown,\n onMouseUp,\n onTouchEnd,\n ])\n}\n\nconst isValidEvent = (\n ev: MouseEvent | TouchEvent,\n ref: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[],\n) => {\n const target = ev.target as HTMLElement | null\n\n if (\"button\" in ev && ev.button > 0) return false\n\n if (target) if (!getDocument(target).contains(target)) return false\n\n if (isArray(ref)) return !ref.some((ref) => ref.current?.contains(target))\n else return !ref.current?.contains(target)\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,mBAAmB,EAC9B,KACA,UAAU,MACV,cAC0B;CAC1B,MAAM,aAAaA,YAAAA,eAAe,OAAO;CAEzC,MAAM,SAAA,GAAA,MAAA,OAAA,CAAe;EACnB,2BAA2B;EAC3B,eAAe;CACjB,CAAC;CAED,MAAM,iBAAA,GAAA,MAAA,YAAA,EACH,OAAgC;EAC/B,IAAI,aAAa,IAAI,GAAG,GAAG,MAAM,QAAQ,gBAAgB;CAC3D,GACA,CAAC,GAAG,CACN;CAEA,MAAM,aAAA,GAAA,MAAA,YAAA,EACH,OAAmB;EAClB,IAAI,MAAM,QAAQ,2BAA2B;GAC3C,MAAM,QAAQ,4BAA4B;GAE1C;EACF;EAEA,IAAI,MAAM,QAAQ,iBAAiB,WAAW,aAAa,IAAI,GAAG,GAAG;GACnE,MAAM,QAAQ,gBAAgB;GAE9B,WAAW,EAAE;EACf;CACF,GACA;EAAC;EAAS;EAAY;CAAG,CAC3B;CAEA,MAAM,cAAA,GAAA,MAAA,YAAA,EACH,OAAmB;EAClB,MAAM,QAAQ,4BAA4B;EAE1C,IAAI,MAAM,QAAQ,iBAAiB,WAAW,aAAa,IAAI,GAAG,GAAG;GACnE,MAAM,QAAQ,gBAAgB;GAE9B,WAAW,EAAE;EACf;CACF,GACA;EAAC;EAAS;EAAY;CAAG,CAC3B;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS;EAEd,MAAM,OAAA,GAAA,oBAAA,cAAA,YAAA,EAAA,GAAA,oBAAA,cAAA,QAAA,CAA0B,GAAG,IAAI,IAAI,EAAE,EAAE,UAAU,IAAI,OAAO;EAEpE,IAAI,iBAAiB,aAAa,eAAe,IAAI;EACrD,IAAI,iBAAiB,WAAW,WAAW,IAAI;EAC/C,IAAI,iBAAiB,cAAc,eAAe,IAAI;EACtD,IAAI,iBAAiB,YAAY,YAAY,IAAI;EAEjD,aAAa;GACX,IAAI,oBAAoB,aAAa,eAAe,IAAI;GACxD,IAAI,oBAAoB,WAAW,WAAW,IAAI;GAClD,IAAI,oBAAoB,cAAc,eAAe,IAAI;GACzD,IAAI,oBAAoB,YAAY,YAAY,IAAI;EACtD;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH;AAEA,MAAM,gBACJ,IACA,QACG;CACH,MAAM,SAAS,GAAG;CAElB,IAAI,YAAY,MAAM,GAAG,SAAS,GAAG,OAAO;CAE5C,IAAI;MAAY,EAAA,GAAA,oBAAA,cAAA,YAAA,CAAa,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO;CAAA;CAE9D,KAAA,GAAA,oBAAA,cAAA,QAAA,CAAY,GAAG,GAAG,OAAO,CAAC,IAAI,MAAM,QAAQ,IAAI,SAAS,SAAS,MAAM,CAAC;MACpE,OAAO,CAAC,IAAI,SAAS,SAAS,MAAM;AAC3C"}
1
+ {"version":3,"file":"index.cjs","names":["useCallbackRef"],"sources":["../../../../src/hooks/use-outside-click/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\nimport { getDocument, isArray, useCallbackRef } from \"../../utils\"\n\nexport interface UseOutsideClickProps {\n ref: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[]\n enabled?: boolean\n handler?: (ev: Event) => void\n}\n\n/**\n * `useOutsideClick` is a custom hook that detects click events outside of an element.\n *\n * @see https://yamada-ui.com/docs/hooks/use-outside-click\n */\nexport const useOutsideClick = ({\n ref,\n enabled = true,\n handler,\n}: UseOutsideClickProps) => {\n const handlerRef = useCallbackRef(handler)\n\n const state = useRef({\n ignoreEmulatedMouseEvents: false,\n isPointerDown: false,\n })\n\n const onPointerDown = useCallback(\n (ev: MouseEvent | TouchEvent) => {\n if (isValidEvent(ev, ref)) state.current.isPointerDown = true\n },\n [ref],\n )\n\n const onMouseUp = useCallback(\n (ev: MouseEvent) => {\n if (state.current.ignoreEmulatedMouseEvents) {\n state.current.ignoreEmulatedMouseEvents = false\n\n return\n }\n\n if (state.current.isPointerDown && handler && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n },\n [handler, handlerRef, ref],\n )\n\n const onTouchEnd = useCallback(\n (ev: TouchEvent) => {\n state.current.ignoreEmulatedMouseEvents = true\n\n if (state.current.isPointerDown && handler && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n },\n [handler, handlerRef, ref],\n )\n\n useEffect(() => {\n if (!enabled) return\n\n const doc = getDocument(isArray(ref) ? ref[0]?.current : ref.current)\n\n doc.addEventListener(\"mousedown\", onPointerDown, true)\n doc.addEventListener(\"mouseup\", onMouseUp, true)\n doc.addEventListener(\"touchstart\", onPointerDown, true)\n doc.addEventListener(\"touchend\", onTouchEnd, true)\n\n return () => {\n doc.removeEventListener(\"mousedown\", onPointerDown, true)\n doc.removeEventListener(\"mouseup\", onMouseUp, true)\n doc.removeEventListener(\"touchstart\", onPointerDown, true)\n doc.removeEventListener(\"touchend\", onTouchEnd, true)\n }\n }, [\n handler,\n ref,\n handlerRef,\n state,\n enabled,\n onPointerDown,\n onMouseUp,\n onTouchEnd,\n ])\n}\n\nconst isValidEvent = (\n ev: MouseEvent | TouchEvent,\n ref: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[],\n) => {\n const target = ev.target as HTMLElement | null\n\n if (\"button\" in ev && ev.button > 0) return false\n\n if (target) if (!getDocument(target).contains(target)) return false\n\n if (isArray(ref)) return !ref.some((ref) => ref.current?.contains(target))\n else return !ref.current?.contains(target)\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,mBAAmB,EAC9B,KACA,UAAU,MACV,cAC0B;CAC1B,MAAM,aAAaA,YAAAA,eAAe,OAAO;CAEzC,MAAM,SAAA,GAAA,MAAA,OAAA,CAAe;EACnB,2BAA2B;EAC3B,eAAe;CACjB,CAAC;CAED,MAAM,iBAAA,GAAA,MAAA,YAAA,EACH,OAAgC;EAC/B,IAAI,aAAa,IAAI,GAAG,GAAG,MAAM,QAAQ,gBAAgB;CAC3D,GACA,CAAC,GAAG,CACN;CAEA,MAAM,aAAA,GAAA,MAAA,YAAA,EACH,OAAmB;EAClB,IAAI,MAAM,QAAQ,2BAA2B;GAC3C,MAAM,QAAQ,4BAA4B;GAE1C;EACF;EAEA,IAAI,MAAM,QAAQ,iBAAiB,WAAW,aAAa,IAAI,GAAG,GAAG;GACnE,MAAM,QAAQ,gBAAgB;GAE9B,WAAW,EAAE;EACf;CACF,GACA;EAAC;EAAS;EAAY;CAAG,CAC3B;CAEA,MAAM,cAAA,GAAA,MAAA,YAAA,EACH,OAAmB;EAClB,MAAM,QAAQ,4BAA4B;EAE1C,IAAI,MAAM,QAAQ,iBAAiB,WAAW,aAAa,IAAI,GAAG,GAAG;GACnE,MAAM,QAAQ,gBAAgB;GAE9B,WAAW,EAAE;EACf;CACF,GACA;EAAC;EAAS;EAAY;CAAG,CAC3B;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS;EAEd,MAAM,OAAA,GAAA,oBAAA,cAAA,YAAA,EAAA,GAAA,oBAAA,cAAA,QAAA,CAA0B,GAAG,IAAI,IAAI,EAAE,EAAE,UAAU,IAAI,OAAO;EAEpE,IAAI,iBAAiB,aAAa,eAAe,IAAI;EACrD,IAAI,iBAAiB,WAAW,WAAW,IAAI;EAC/C,IAAI,iBAAiB,cAAc,eAAe,IAAI;EACtD,IAAI,iBAAiB,YAAY,YAAY,IAAI;EAEjD,aAAa;GACX,IAAI,oBAAoB,aAAa,eAAe,IAAI;GACxD,IAAI,oBAAoB,WAAW,WAAW,IAAI;GAClD,IAAI,oBAAoB,cAAc,eAAe,IAAI;GACzD,IAAI,oBAAoB,YAAY,YAAY,IAAI;EACtD;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH;AAEA,MAAM,gBACJ,IACA,QACG;CACH,MAAM,SAAS,GAAG;CAElB,IAAI,YAAY,MAAM,GAAG,SAAS,GAAG,OAAO;CAE5C,IAAI,QAAY;MAAA,EAAA,GAAA,oBAAA,cAAA,YAAA,CAAa,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO;CAAA;CAE9D,KAAA,GAAA,oBAAA,cAAA,QAAA,CAAY,GAAG,GAAG,OAAO,CAAC,IAAI,MAAM,QAAQ,IAAI,SAAS,SAAS,MAAM,CAAC;MACpE,OAAO,CAAC,IAAI,SAAS,SAAS,MAAM;AAC3C"}
@@ -426,7 +426,7 @@ const require_circle_dot_dashed_icon = require("./components/icon/icons/circle-d
426
426
  const require_circle_dot_icon = require("./components/icon/icons/circle-dot-icon.cjs");
427
427
  const require_circle_ellipsis_icon = require("./components/icon/icons/circle-ellipsis-icon.cjs");
428
428
  const require_circle_equal_icon = require("./components/icon/icons/circle-equal-icon.cjs");
429
- const require_circle_euro_sign_icon = require("./components/icon/icons/circle-euro-sign-icon.cjs");
429
+ const require_circle_euro_icon = require("./components/icon/icons/circle-euro-icon.cjs");
430
430
  const require_circle_fading_arrow_up_icon = require("./components/icon/icons/circle-fading-arrow-up-icon.cjs");
431
431
  const require_circle_fading_plus_icon = require("./components/icon/icons/circle-fading-plus-icon.cjs");
432
432
  const require_circle_gauge_icon = require("./components/icon/icons/circle-gauge-icon.cjs");
@@ -1342,6 +1342,7 @@ const require_scale3d_icon = require("./components/icon/icons/scale3d-icon.cjs")
1342
1342
  const require_scale_icon = require("./components/icon/icons/scale-icon.cjs");
1343
1343
  const require_scaling_icon = require("./components/icon/icons/scaling-icon.cjs");
1344
1344
  const require_scan_barcode_icon = require("./components/icon/icons/scan-barcode-icon.cjs");
1345
+ const require_scan_box_icon = require("./components/icon/icons/scan-box-icon.cjs");
1345
1346
  const require_scan_eye_icon = require("./components/icon/icons/scan-eye-icon.cjs");
1346
1347
  const require_scan_face_icon = require("./components/icon/icons/scan-face-icon.cjs");
1347
1348
  const require_scan_heart_icon = require("./components/icon/icons/scan-heart-icon.cjs");
@@ -1374,6 +1375,7 @@ const require_server_cog_icon = require("./components/icon/icons/server-cog-icon
1374
1375
  const require_server_crash_icon = require("./components/icon/icons/server-crash-icon.cjs");
1375
1376
  const require_server_icon = require("./components/icon/icons/server-icon.cjs");
1376
1377
  const require_server_off_icon = require("./components/icon/icons/server-off-icon.cjs");
1378
+ const require_server_plus_icon = require("./components/icon/icons/server-plus-icon.cjs");
1377
1379
  const require_settings2_icon = require("./components/icon/icons/settings2-icon.cjs");
1378
1380
  const require_settings_icon = require("./components/icon/icons/settings-icon.cjs");
1379
1381
  const require_shapes_icon = require("./components/icon/icons/shapes-icon.cjs");
@@ -2757,7 +2759,7 @@ var src_exports = /* @__PURE__ */ require_runtime.__exportAll({
2757
2759
  CircleDotIcon: () => require_circle_dot_icon.CircleDotIcon,
2758
2760
  CircleEllipsisIcon: () => require_circle_ellipsis_icon.CircleEllipsisIcon,
2759
2761
  CircleEqualIcon: () => require_circle_equal_icon.CircleEqualIcon,
2760
- CircleEuroSignIcon: () => require_circle_euro_sign_icon.CircleEuroSignIcon,
2762
+ CircleEuroIcon: () => require_circle_euro_icon.CircleEuroIcon,
2761
2763
  CircleFadingArrowUpIcon: () => require_circle_fading_arrow_up_icon.CircleFadingArrowUpIcon,
2762
2764
  CircleFadingPlusIcon: () => require_circle_fading_plus_icon.CircleFadingPlusIcon,
2763
2765
  CircleGaugeIcon: () => require_circle_gauge_icon.CircleGaugeIcon,
@@ -4031,6 +4033,7 @@ var src_exports = /* @__PURE__ */ require_runtime.__exportAll({
4031
4033
  ScaleIcon: () => require_scale_icon.ScaleIcon,
4032
4034
  ScalingIcon: () => require_scaling_icon.ScalingIcon,
4033
4035
  ScanBarcodeIcon: () => require_scan_barcode_icon.ScanBarcodeIcon,
4036
+ ScanBoxIcon: () => require_scan_box_icon.ScanBoxIcon,
4034
4037
  ScanEyeIcon: () => require_scan_eye_icon.ScanEyeIcon,
4035
4038
  ScanFaceIcon: () => require_scan_face_icon.ScanFaceIcon,
4036
4039
  ScanHeartIcon: () => require_scan_heart_icon.ScanHeartIcon,
@@ -4081,6 +4084,7 @@ var src_exports = /* @__PURE__ */ require_runtime.__exportAll({
4081
4084
  ServerCrashIcon: () => require_server_crash_icon.ServerCrashIcon,
4082
4085
  ServerIcon: () => require_server_icon.ServerIcon,
4083
4086
  ServerOffIcon: () => require_server_off_icon.ServerOffIcon,
4087
+ ServerPlusIcon: () => require_server_plus_icon.ServerPlusIcon,
4084
4088
  Settings2Icon: () => require_settings2_icon.Settings2Icon,
4085
4089
  SettingsIcon: () => require_settings_icon.SettingsIcon,
4086
4090
  ShapesIcon: () => require_shapes_icon.ShapesIcon,
@@ -5921,7 +5925,7 @@ exports.CircleDotDashedIcon = require_circle_dot_dashed_icon.CircleDotDashedIcon
5921
5925
  exports.CircleDotIcon = require_circle_dot_icon.CircleDotIcon;
5922
5926
  exports.CircleEllipsisIcon = require_circle_ellipsis_icon.CircleEllipsisIcon;
5923
5927
  exports.CircleEqualIcon = require_circle_equal_icon.CircleEqualIcon;
5924
- exports.CircleEuroSignIcon = require_circle_euro_sign_icon.CircleEuroSignIcon;
5928
+ exports.CircleEuroIcon = require_circle_euro_icon.CircleEuroIcon;
5925
5929
  exports.CircleFadingArrowUpIcon = require_circle_fading_arrow_up_icon.CircleFadingArrowUpIcon;
5926
5930
  exports.CircleFadingPlusIcon = require_circle_fading_plus_icon.CircleFadingPlusIcon;
5927
5931
  exports.CircleGaugeIcon = require_circle_gauge_icon.CircleGaugeIcon;
@@ -7390,6 +7394,7 @@ exports.Scale3dIcon = require_scale3d_icon.Scale3dIcon;
7390
7394
  exports.ScaleIcon = require_scale_icon.ScaleIcon;
7391
7395
  exports.ScalingIcon = require_scaling_icon.ScalingIcon;
7392
7396
  exports.ScanBarcodeIcon = require_scan_barcode_icon.ScanBarcodeIcon;
7397
+ exports.ScanBoxIcon = require_scan_box_icon.ScanBoxIcon;
7393
7398
  exports.ScanEyeIcon = require_scan_eye_icon.ScanEyeIcon;
7394
7399
  exports.ScanFaceIcon = require_scan_face_icon.ScanFaceIcon;
7395
7400
  exports.ScanHeartIcon = require_scan_heart_icon.ScanHeartIcon;
@@ -7450,6 +7455,7 @@ exports.ServerCogIcon = require_server_cog_icon.ServerCogIcon;
7450
7455
  exports.ServerCrashIcon = require_server_crash_icon.ServerCrashIcon;
7451
7456
  exports.ServerIcon = require_server_icon.ServerIcon;
7452
7457
  exports.ServerOffIcon = require_server_off_icon.ServerOffIcon;
7458
+ exports.ServerPlusIcon = require_server_plus_icon.ServerPlusIcon;
7453
7459
  exports.Settings2Icon = require_settings2_icon.Settings2Icon;
7454
7460
  exports.SettingsIcon = require_settings_icon.SettingsIcon;
7455
7461
  exports.ShapesIcon = require_shapes_icon.ShapesIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-provider.cjs","names":["defaultConfig","defaultTheme","EnvironmentProvider","I18nProvider","SystemProvider","config","theme","ThemeProvider","ColorModeProvider","LoadingProvider","NoticeProvider"],"sources":["../../../../src/providers/ui-provider/ui-provider.tsx"],"sourcesContent":["import type { FC } from \"react\"\nimport type {\n ColorModeProviderProps,\n EnvironmentProviderProps,\n ThemeConfig,\n ThemeProviderProps,\n UsageTheme,\n} from \"../../core\"\nimport type { DeepMerge } from \"../../utils\"\nimport type { I18nProviderProps } from \"../i18n-provider\"\nimport { LoadingProvider } from \"../../components/loading\"\nimport { NoticeProvider } from \"../../components/notice\"\nimport {\n ColorModeProvider,\n EnvironmentProvider,\n SystemProvider,\n ThemeProvider,\n} from \"../../core\"\nimport { config as defaultConfig, theme as defaultTheme } from \"../../theme\"\nimport { merge } from \"../../utils\"\nimport { I18nProvider } from \"../i18n-provider\"\n\nexport interface UIProviderProps\n extends\n Omit<ThemeProviderProps, \"storageKey\">,\n Pick<ColorModeProviderProps, \"colorMode\">,\n I18nProviderProps {\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n colorModeStorageKey?: string\n /**\n * The root node to use.\n */\n rootNode?: EnvironmentProviderProps[\"value\"]\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n themeSchemeStorageKey?: string\n}\n\n/**\n * The global provider that must be added to make all Yamada UI components work correctly.\n */\nexport const UIProvider: FC<UIProviderProps> = ({\n children,\n colorMode,\n colorModeStorageKey,\n config = defaultConfig,\n cookie,\n dir,\n intl,\n locale,\n rootNode,\n storage,\n theme = defaultTheme,\n themeSchemeStorageKey,\n}) => {\n return (\n <EnvironmentProvider value={rootNode}>\n <I18nProvider dir={dir} intl={intl} locale={locale}>\n <SystemProvider config={config} theme={theme}>\n <ThemeProvider\n config={config}\n cookie={cookie}\n storage={storage}\n storageKey={themeSchemeStorageKey}\n theme={theme}\n >\n <ColorModeProvider\n colorMode={colorMode}\n config={config}\n cookie={cookie}\n storage={storage}\n storageKey={colorModeStorageKey}\n >\n <LoadingProvider {...config.loading}>\n <NoticeProvider {...config.notice}>{children}</NoticeProvider>\n </LoadingProvider>\n </ColorModeProvider>\n </ThemeProvider>\n </SystemProvider>\n </I18nProvider>\n </EnvironmentProvider>\n )\n}\n\ntype DefaultTheme = typeof defaultTheme\n\nexport const extendTheme = <Y extends UsageTheme>(theme: Y) => {\n return merge<DeepMerge<DefaultTheme, Y>>(defaultTheme, theme)\n}\n\nexport const extendConfig = (config: ThemeConfig) => {\n return merge(defaultConfig, config)\n}\n"],"mappings":";;;;;;;;;;;;;;;AA8CA,MAAa,cAAmC,EAC9C,UACA,WACA,qBACA,QAAA,WAASA,eAAAA,QACT,QACA,KACA,MACA,QACA,UACA,SACA,OAAA,UAAQC,oBAAAA,OACR,4BACI;CACJ,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,qBAAD;EAAqB,OAAO;YAC1B,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,cAAD;GAAmB;GAAW;GAAc;aAC1C,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,gBAAD;IAAgB,QAAQC;IAAQ,OAAOC;cACrC,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,eAAD;KACE,QAAQF;KACA;KACC;KACT,YAAY;KACZ,OAAOC;eAEP,iBAAA,GAAA,kBAAA,IAAA,CAACE,4BAAAA,mBAAD;MACa;MACX,QAAQH;MACA;MACC;MACT,YAAY;gBAEZ,iBAAA,GAAA,kBAAA,IAAA,CAACI,yBAAAA,iBAAD;OAAiB,GAAIJ,SAAO;iBAC1B,iBAAA,GAAA,kBAAA,IAAA,CAACK,wBAAAA,gBAAD;QAAgB,GAAIL,SAAO;QAAS;OAAyB,CAAA;MAC9C,CAAA;KACA,CAAA;IACN,CAAA;GACD,CAAA;EACJ,CAAA;CACK,CAAA;AAEzB;AAIA,MAAa,eAAqC,YAAa;CAC7D,QAAA,GAAA,oBAAA,cAAA,MAAA,CAAyCJ,oBAAAA,OAAcK,OAAK;AAC9D;AAEA,MAAa,gBAAgB,aAAwB;CACnD,QAAA,GAAA,oBAAA,cAAA,MAAA,CAAaN,eAAAA,QAAeK,QAAM;AACpC"}
1
+ {"version":3,"file":"ui-provider.cjs","names":["defaultConfig","defaultTheme","EnvironmentProvider","I18nProvider","SystemProvider","config","theme","ThemeProvider","ColorModeProvider","LoadingProvider","NoticeProvider"],"sources":["../../../../src/providers/ui-provider/ui-provider.tsx"],"sourcesContent":["import type { FC } from \"react\"\nimport type {\n ColorModeProviderProps,\n EnvironmentProviderProps,\n ThemeConfig,\n ThemeProviderProps,\n UsageTheme,\n} from \"../../core\"\nimport type { DeepMerge } from \"../../utils\"\nimport type { I18nProviderProps } from \"../i18n-provider\"\nimport { LoadingProvider } from \"../../components/loading\"\nimport { NoticeProvider } from \"../../components/notice\"\nimport {\n ColorModeProvider,\n EnvironmentProvider,\n SystemProvider,\n ThemeProvider,\n} from \"../../core\"\nimport { config as defaultConfig, theme as defaultTheme } from \"../../theme\"\nimport { merge } from \"../../utils\"\nimport { I18nProvider } from \"../i18n-provider\"\n\nexport interface UIProviderProps\n extends\n Omit<ThemeProviderProps, \"storageKey\">,\n Pick<ColorModeProviderProps, \"colorMode\">,\n I18nProviderProps {\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n colorModeStorageKey?: string\n /**\n * The root node to use.\n */\n rootNode?: EnvironmentProviderProps[\"value\"]\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n themeSchemeStorageKey?: string\n}\n\n/**\n * The global provider that must be added to make all Yamada UI components work correctly.\n */\nexport const UIProvider: FC<UIProviderProps> = ({\n children,\n colorMode,\n colorModeStorageKey,\n config = defaultConfig,\n cookie,\n dir,\n intl,\n locale,\n rootNode,\n storage,\n theme = defaultTheme,\n themeSchemeStorageKey,\n}) => {\n return (\n <EnvironmentProvider value={rootNode}>\n <I18nProvider dir={dir} intl={intl} locale={locale}>\n <SystemProvider config={config} theme={theme}>\n <ThemeProvider\n config={config}\n cookie={cookie}\n storage={storage}\n storageKey={themeSchemeStorageKey}\n theme={theme}\n >\n <ColorModeProvider\n colorMode={colorMode}\n config={config}\n cookie={cookie}\n storage={storage}\n storageKey={colorModeStorageKey}\n >\n <LoadingProvider {...config.loading}>\n <NoticeProvider {...config.notice}>{children}</NoticeProvider>\n </LoadingProvider>\n </ColorModeProvider>\n </ThemeProvider>\n </SystemProvider>\n </I18nProvider>\n </EnvironmentProvider>\n )\n}\n\ntype DefaultTheme = typeof defaultTheme\n\nexport const extendTheme = <Y extends UsageTheme>(theme: Y) => {\n return merge<DeepMerge<DefaultTheme, Y>>(defaultTheme, theme)\n}\n\nexport const extendConfig = (config: ThemeConfig) => {\n return merge(defaultConfig, config)\n}\n"],"mappings":";;;;;;;;;;;;;;;AA8CA,MAAa,cAAmC,EAC9C,UACA,WACA,qBACA,QAAA,WAASA,eAAAA,QACT,QACA,KACA,MACA,QACA,UACA,SACA,OAAA,UAAQC,oBAAAA,OACR,4BACI;CACJ,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,qBAAD;EAAqB,OAAO;EAC1B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,cAAD;GAAmB;GAAW;GAAc;GAC1C,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,gBAAD;IAAgB,QAAQC;IAAQ,OAAOC;IACrC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,eAAD;KACE,QAAQF;KACA;KACC;KACT,YAAY;KACZ,OAAOC;KAEP,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACE,4BAAAA,mBAAD;MACa;MACX,QAAQH;MACA;MACC;MACT,YAAY;MAEZ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACI,yBAAAA,iBAAD;OAAiB,GAAIJ,SAAO;OAC1B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACK,wBAAAA,gBAAD;QAAgB,GAAIL,SAAO;QAAS;OAAyB,CAAA;MAC9C,CAAA;KACA,CAAA;IACN,CAAA;GACD,CAAA;EACJ,CAAA;CACK,CAAA;AAEzB;AAIA,MAAa,eAAqC,YAAa;CAC7D,QAAA,GAAA,oBAAA,cAAA,MAAA,CAAyCJ,oBAAAA,OAAcK,OAAK;AAC9D;AAEA,MAAa,gBAAgB,aAAwB;CACnD,QAAA,GAAA,oBAAA,cAAA,MAAA,CAAaN,eAAAA,QAAeK,QAAM;AACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.cjs","names":[],"sources":["../../../src/utils/store.ts"],"sourcesContent":["\"use client\"\n\nimport type { Path, Value } from \"@yamada-ui/utils\"\nimport {\n getMemoizedObject,\n isArray,\n isObject,\n isUndefined,\n runIfFn,\n toArray,\n} from \"@yamada-ui/utils\"\nimport { useSyncExternalStore } from \"react\"\n\nconst DEFAULT_IDENTIFIER = \"default\"\n\nexport interface StoreSubscribe {\n (listener: () => void): () => void\n}\n\nexport interface Store<Y> {\n queue: Map<string, (() => void)[]>\n ref: { current: Y }\n get: () => Y\n set: (nextState: ((prevState: Y) => Y) | Y, key?: string | string[]) => void\n update: (key?: string | string[]) => void\n key?: string\n}\n\ntype IndexOrPath<Y> = Y extends any[]\n ? number\n : Y extends object\n ? Path<Y>\n : undefined\n\ntype ReturnArrayValue<Y extends any[], D> = D extends number\n ? undefined | Y[D]\n : Y\n\ntype ReturnObjectValue<Y extends object, D> = D extends string ? Value<Y, D> : Y\n\ntype ReturnValue<Y, D> = Y extends any[]\n ? ReturnArrayValue<Y, D>\n : Y extends object\n ? ReturnObjectValue<Y, D>\n : Y\n\nexport interface UseStore<Y> {\n <D extends IndexOrPath<Y>>(path?: D, key?: string): ReturnValue<Y, D>\n}\n\nexport interface CreateStoreMethod<Y, M extends Function> {\n (store: Store<Y>): M\n}\n\nexport type StoreMethods<Y, M extends CustomStoreMethods<Y>> = Omit<\n Store<Y>,\n \"key\" | \"update\"\n> & {\n [D in keyof M]: ReturnType<M[D]>\n} & { update: () => void }\n\nexport interface CustomStoreMethods<Y> {\n [key: string]: CreateStoreMethod<Y, (...args: any[]) => Promise<void> | void>\n}\n\nexport interface CreateStoreOptions<Y> {\n proxyHandler?: ProxyHandler<{ current: Y }>\n subscribe?: CreateStoreMethod<Y, StoreSubscribe>\n}\n\nexport function createStore<Y, M extends CustomStoreMethods<Y>>(\n initialState: (() => Y) | Y,\n additionalMethods?: M,\n options: CreateStoreOptions<Y> = {},\n): [UseStore<Y>, StoreMethods<Y, M>] {\n const queue = new Map<string, (() => void)[]>()\n const ref = new Proxy(\n { current: runIfFn(initialState) },\n { ...options.proxyHandler },\n )\n\n function get() {\n return ref.current\n }\n\n function executeQueue(key: string) {\n const listeners = queue.get(key) ?? []\n\n if (!listeners.length)\n console.warn(`createStore: ${key} is not subscribed.`)\n\n listeners.forEach((listener) => listener())\n }\n\n function update(key?: string | string[]) {\n if (!isUndefined(key)) toArray(key).forEach(executeQueue)\n\n executeQueue(DEFAULT_IDENTIFIER)\n }\n\n function set(nextState: ((prevState: Y) => Y) | Y, key?: string | string[]) {\n ref.current = runIfFn(nextState, ref.current)\n\n update(key)\n }\n\n const methods = { ref, get, queue, set, update }\n\n function useStore<D extends IndexOrPath<Y>>(path?: D, key?: string) {\n const customSubscribe = options.subscribe?.({\n key,\n ...methods,\n })\n\n const subscribe = function (listener: () => void) {\n if (key) {\n const listeners = queue.get(key) ?? []\n\n if (listeners.length)\n console.warn(`createStore: ${key} is already subscribed.`)\n\n queue.set(key, [listener])\n } else {\n const listeners = queue.get(DEFAULT_IDENTIFIER) ?? []\n\n queue.set(DEFAULT_IDENTIFIER, [...listeners, listener])\n }\n\n return function () {\n if (key) {\n queue.delete(key)\n } else {\n const listeners = queue.get(DEFAULT_IDENTIFIER) ?? []\n\n queue.set(\n DEFAULT_IDENTIFIER,\n listeners.filter((fn) => fn !== listener),\n )\n }\n }\n }\n\n function getSnapshot<H extends ReturnValue<Y, D>>(): H {\n if (!isUndefined(path))\n if (isObject(ref.current)) return getMemoizedObject(ref.current, path)\n else if (isArray(ref.current)) return ref.current[path as number]\n\n return ref.current as unknown as H\n }\n\n return useSyncExternalStore(\n customSubscribe ?? subscribe,\n getSnapshot,\n getSnapshot,\n )\n }\n\n const customMethods = Object.fromEntries(\n Object.entries(additionalMethods ?? {}).map(([key, value]) => [\n key,\n value(methods),\n ]),\n ) as { [D in keyof M]: ReturnType<M[D]> }\n\n return [useStore, { ...methods, ...customMethods }]\n}\n"],"mappings":";;;;AAaA,MAAM,qBAAqB;AAyD3B,SAAgB,YACd,cACA,mBACA,UAAiC,CAAC,GACC;CACnC,MAAM,wBAAQ,IAAI,IAA4B;CAC9C,MAAM,MAAM,IAAI,MACd,EAAE,UAAA,GAAA,iBAAA,QAAA,CAAiB,YAAY,EAAE,GACjC,EAAE,GAAG,QAAQ,aAAa,CAC5B;CAEA,SAAS,MAAM;EACb,OAAO,IAAI;CACb;CAEA,SAAS,aAAa,KAAa;EACjC,MAAM,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC;EAErC,IAAI,CAAC,UAAU,QACb,QAAQ,KAAK,gBAAgB,IAAI,oBAAoB;EAEvD,UAAU,SAAS,aAAa,SAAS,CAAC;CAC5C;CAEA,SAAS,OAAO,KAAyB;EACvC,IAAI,EAAA,GAAA,iBAAA,YAAA,CAAa,GAAG,GAAG,CAAA,GAAA,iBAAA,QAAA,CAAQ,GAAG,CAAC,CAAC,QAAQ,YAAY;EAExD,aAAa,kBAAkB;CACjC;CAEA,SAAS,IAAI,WAAsC,KAAyB;EAC1E,IAAI,WAAA,GAAA,iBAAA,QAAA,CAAkB,WAAW,IAAI,OAAO;EAE5C,OAAO,GAAG;CACZ;CAEA,MAAM,UAAU;EAAE;EAAK;EAAK;EAAO;EAAK;CAAO;CAE/C,SAAS,SAAmC,MAAU,KAAc;EAClE,MAAM,kBAAkB,QAAQ,YAAY;GAC1C;GACA,GAAG;EACL,CAAC;EAED,MAAM,YAAY,SAAU,UAAsB;GAChD,IAAI,KAAK;IAGP,KAFkB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAA,CAEvB,QACZ,QAAQ,KAAK,gBAAgB,IAAI,wBAAwB;IAE3D,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;GAC3B,OAAO;IACL,MAAM,YAAY,MAAM,IAAI,kBAAkB,KAAK,CAAC;IAEpD,MAAM,IAAI,oBAAoB,CAAC,GAAG,WAAW,QAAQ,CAAC;GACxD;GAEA,OAAO,WAAY;IACjB,IAAI,KACF,MAAM,OAAO,GAAG;SACX;KACL,MAAM,YAAY,MAAM,IAAI,kBAAkB,KAAK,CAAC;KAEpD,MAAM,IACJ,oBACA,UAAU,QAAQ,OAAO,OAAO,QAAQ,CAC1C;IACF;GACF;EACF;EAEA,SAAS,cAA8C;GACrD,IAAI,EAAA,GAAA,iBAAA,YAAA,CAAa,IAAI;uCACN,IAAI,OAAO,GAAG,QAAA,GAAA,iBAAA,kBAAA,CAAyB,IAAI,SAAS,IAAI;SAChE,KAAA,GAAA,iBAAA,QAAA,CAAY,IAAI,OAAO,GAAG,OAAO,IAAI,QAAQ;GAAA;GAEpD,OAAO,IAAI;EACb;EAEA,QAAA,GAAA,MAAA,qBAAA,CACE,mBAAmB,WACnB,aACA,WACF;CACF;CAEA,MAAM,gBAAgB,OAAO,YAC3B,OAAO,QAAQ,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAC5D,KACA,MAAM,OAAO,CACf,CAAC,CACH;CAEA,OAAO,CAAC,UAAU;EAAE,GAAG;EAAS,GAAG;CAAc,CAAC;AACpD"}
1
+ {"version":3,"file":"store.cjs","names":[],"sources":["../../../src/utils/store.ts"],"sourcesContent":["\"use client\"\n\nimport type { Path, Value } from \"@yamada-ui/utils\"\nimport {\n getMemoizedObject,\n isArray,\n isObject,\n isUndefined,\n runIfFn,\n toArray,\n} from \"@yamada-ui/utils\"\nimport { useSyncExternalStore } from \"react\"\n\nconst DEFAULT_IDENTIFIER = \"default\"\n\nexport interface StoreSubscribe {\n (listener: () => void): () => void\n}\n\nexport interface Store<Y> {\n queue: Map<string, (() => void)[]>\n ref: { current: Y }\n get: () => Y\n set: (nextState: ((prevState: Y) => Y) | Y, key?: string | string[]) => void\n update: (key?: string | string[]) => void\n key?: string\n}\n\ntype IndexOrPath<Y> = Y extends any[]\n ? number\n : Y extends object\n ? Path<Y>\n : undefined\n\ntype ReturnArrayValue<Y extends any[], D> = D extends number\n ? undefined | Y[D]\n : Y\n\ntype ReturnObjectValue<Y extends object, D> = D extends string ? Value<Y, D> : Y\n\ntype ReturnValue<Y, D> = Y extends any[]\n ? ReturnArrayValue<Y, D>\n : Y extends object\n ? ReturnObjectValue<Y, D>\n : Y\n\nexport interface UseStore<Y> {\n <D extends IndexOrPath<Y>>(path?: D, key?: string): ReturnValue<Y, D>\n}\n\nexport interface CreateStoreMethod<Y, M extends Function> {\n (store: Store<Y>): M\n}\n\nexport type StoreMethods<Y, M extends CustomStoreMethods<Y>> = Omit<\n Store<Y>,\n \"key\" | \"update\"\n> & {\n [D in keyof M]: ReturnType<M[D]>\n} & { update: () => void }\n\nexport interface CustomStoreMethods<Y> {\n [key: string]: CreateStoreMethod<Y, (...args: any[]) => Promise<void> | void>\n}\n\nexport interface CreateStoreOptions<Y> {\n proxyHandler?: ProxyHandler<{ current: Y }>\n subscribe?: CreateStoreMethod<Y, StoreSubscribe>\n}\n\nexport function createStore<Y, M extends CustomStoreMethods<Y>>(\n initialState: (() => Y) | Y,\n additionalMethods?: M,\n options: CreateStoreOptions<Y> = {},\n): [UseStore<Y>, StoreMethods<Y, M>] {\n const queue = new Map<string, (() => void)[]>()\n const ref = new Proxy(\n { current: runIfFn(initialState) },\n { ...options.proxyHandler },\n )\n\n function get() {\n return ref.current\n }\n\n function executeQueue(key: string) {\n const listeners = queue.get(key) ?? []\n\n if (!listeners.length)\n console.warn(`createStore: ${key} is not subscribed.`)\n\n listeners.forEach((listener) => listener())\n }\n\n function update(key?: string | string[]) {\n if (!isUndefined(key)) toArray(key).forEach(executeQueue)\n\n executeQueue(DEFAULT_IDENTIFIER)\n }\n\n function set(nextState: ((prevState: Y) => Y) | Y, key?: string | string[]) {\n ref.current = runIfFn(nextState, ref.current)\n\n update(key)\n }\n\n const methods = { ref, get, queue, set, update }\n\n function useStore<D extends IndexOrPath<Y>>(path?: D, key?: string) {\n const customSubscribe = options.subscribe?.({\n key,\n ...methods,\n })\n\n const subscribe = function (listener: () => void) {\n if (key) {\n const listeners = queue.get(key) ?? []\n\n if (listeners.length)\n console.warn(`createStore: ${key} is already subscribed.`)\n\n queue.set(key, [listener])\n } else {\n const listeners = queue.get(DEFAULT_IDENTIFIER) ?? []\n\n queue.set(DEFAULT_IDENTIFIER, [...listeners, listener])\n }\n\n return function () {\n if (key) {\n queue.delete(key)\n } else {\n const listeners = queue.get(DEFAULT_IDENTIFIER) ?? []\n\n queue.set(\n DEFAULT_IDENTIFIER,\n listeners.filter((fn) => fn !== listener),\n )\n }\n }\n }\n\n function getSnapshot<H extends ReturnValue<Y, D>>(): H {\n if (!isUndefined(path))\n if (isObject(ref.current)) return getMemoizedObject(ref.current, path)\n else if (isArray(ref.current)) return ref.current[path as number]\n\n return ref.current as unknown as H\n }\n\n return useSyncExternalStore(\n customSubscribe ?? subscribe,\n getSnapshot,\n getSnapshot,\n )\n }\n\n const customMethods = Object.fromEntries(\n Object.entries(additionalMethods ?? {}).map(([key, value]) => [\n key,\n value(methods),\n ]),\n ) as { [D in keyof M]: ReturnType<M[D]> }\n\n return [useStore, { ...methods, ...customMethods }]\n}\n"],"mappings":";;;;AAaA,MAAM,qBAAqB;AAyD3B,SAAgB,YACd,cACA,mBACA,UAAiC,CAAC,GACC;CACnC,MAAM,wBAAQ,IAAI,IAA4B;CAC9C,MAAM,MAAM,IAAI,MACd,EAAE,UAAA,GAAA,iBAAA,QAAA,CAAiB,YAAY,EAAE,GACjC,EAAE,GAAG,QAAQ,aAAa,CAC5B;CAEA,SAAS,MAAM;EACb,OAAO,IAAI;CACb;CAEA,SAAS,aAAa,KAAa;EACjC,MAAM,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC;EAErC,IAAI,CAAC,UAAU,QACb,QAAQ,KAAK,gBAAgB,IAAI,oBAAoB;EAEvD,UAAU,SAAS,aAAa,SAAS,CAAC;CAC5C;CAEA,SAAS,OAAO,KAAyB;EACvC,IAAI,EAAA,GAAA,iBAAA,YAAA,CAAa,GAAG,GAAG,CAAA,GAAA,iBAAA,QAAA,CAAQ,GAAG,CAAC,CAAC,QAAQ,YAAY;EAExD,aAAa,kBAAkB;CACjC;CAEA,SAAS,IAAI,WAAsC,KAAyB;EAC1E,IAAI,WAAA,GAAA,iBAAA,QAAA,CAAkB,WAAW,IAAI,OAAO;EAE5C,OAAO,GAAG;CACZ;CAEA,MAAM,UAAU;EAAE;EAAK;EAAK;EAAO;EAAK;CAAO;CAE/C,SAAS,SAAmC,MAAU,KAAc;EAClE,MAAM,kBAAkB,QAAQ,YAAY;GAC1C;GACA,GAAG;EACL,CAAC;EAED,MAAM,YAAY,SAAU,UAAsB;GAChD,IAAI,KAAK;IAGP,KAFkB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAA,CAEvB,QACZ,QAAQ,KAAK,gBAAgB,IAAI,wBAAwB;IAE3D,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;GAC3B,OAAO;IACL,MAAM,YAAY,MAAM,IAAI,kBAAkB,KAAK,CAAC;IAEpD,MAAM,IAAI,oBAAoB,CAAC,GAAG,WAAW,QAAQ,CAAC;GACxD;GAEA,OAAO,WAAY;IACjB,IAAI,KACF,MAAM,OAAO,GAAG;SACX;KACL,MAAM,YAAY,MAAM,IAAI,kBAAkB,KAAK,CAAC;KAEpD,MAAM,IACJ,oBACA,UAAU,QAAQ,OAAO,OAAO,QAAQ,CAC1C;IACF;GACF;EACF;EAEA,SAAS,cAA8C;GACrD,IAAI,EAAA,GAAA,iBAAA,YAAA,CAAa,IAAI,GACN;SAAA,GAAA,iBAAA,SAAA,CAAA,IAAI,OAAO,GAAG,QAAA,GAAA,iBAAA,kBAAA,CAAyB,IAAI,SAAS,IAAI;SAChE,KAAA,GAAA,iBAAA,QAAA,CAAY,IAAI,OAAO,GAAG,OAAO,IAAI,QAAQ;GAAA;GAEpD,OAAO,IAAI;EACb;EAEA,QAAA,GAAA,MAAA,qBAAA,CACE,mBAAmB,WACnB,aACA,WACF;CACF;CAEA,MAAM,gBAAgB,OAAO,YAC3B,OAAO,QAAQ,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAC5D,KACA,MAAM,OAAO,CACf,CAAC,CACH;CAEA,OAAO,CAAC,UAAU;EAAE,GAAG;EAAS,GAAG;CAAc,CAAC;AACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":["createContext"],"sources":["../../../../src/components/accordion/accordion.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ReactNodeOrFunction } from \"../../utils\"\nimport type { CollapseProps } from \"../collapse\"\nimport type { WithTransitionProps } from \"../motion\"\nimport type { AccordionStyle } from \"./accordion.style\"\nimport type { UseAccordionItemProps, UseAccordionProps } from \"./use-accordion\"\nimport { Children, cloneElement, isValidElement, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, isString, runIfFn, useSplitChildren } from \"../../utils\"\nimport { Collapse } from \"../collapse\"\nimport { ChevronDownIcon } from \"../icon\"\nimport { accordionStyle } from \"./accordion.style\"\nimport {\n AccordionContext,\n AccordionDescendantsContext,\n AccordionItemContext,\n useAccordion,\n useAccordionItem,\n useAccordionItemContext,\n} from \"./use-accordion\"\n\ninterface AccordionCallBackProps {\n disabled?: boolean\n expanded?: boolean\n}\n\nexport interface AccordionItem extends Omit<AccordionItemProps, \"index\"> {}\n\ninterface ComponentContext extends Pick<\n AccordionRootProps,\n \"icon\" | \"iconHidden\"\n> {}\n\nexport interface AccordionRootProps\n extends\n Omit<HTMLStyledProps, \"onChange\">,\n ThemeProps<AccordionStyle>,\n UseAccordionProps {\n /**\n * The accordion icon for all items to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * If `true`, hide the accordion icon for all items.\n *\n * @default false\n */\n iconHidden?: boolean\n /**\n * If provided, generate elements based on items.\n */\n items?: AccordionItem[]\n}\n\ninterface ItemComponentContext extends Pick<AccordionItemProps, \"icon\"> {}\n\nconst [ItemComponentContext, useItemComponentContext] =\n createContext<ItemComponentContext>({\n name: \"ItemComponentContext\",\n })\n\nconst {\n ComponentContext,\n PropsContext: AccordionPropsContext,\n useComponentContext,\n usePropsContext: useAccordionPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<AccordionRootProps, AccordionStyle, ComponentContext>(\n \"accordion\",\n accordionStyle,\n)\n\nexport { AccordionPropsContext, useAccordionPropsContext }\n\n/**\n * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.\n *\n * @see https://yamada-ui.com/docs/components/accordion\n */\nexport const AccordionRoot = withProvider<\"div\", AccordionRootProps>(\n ({ children, icon, iconHidden, items, ...props }) => {\n const {\n descendants,\n focusedIndex,\n index,\n multiple,\n setFocusedIndex,\n setIndex,\n toggle,\n getRootProps,\n } = useAccordion(props)\n const computedChildren = useMemo(() => {\n if (children) return children\n\n return items?.map((props, index) => (\n <AccordionItem key={index} index={index} {...props} />\n ))\n }, [children, items])\n const context = useMemo(\n () => ({\n focusedIndex,\n index,\n multiple,\n setFocusedIndex,\n setIndex,\n toggle,\n }),\n [focusedIndex, index, multiple, setFocusedIndex, setIndex, toggle],\n )\n const componentContext = useMemo(\n () => ({ icon, iconHidden }),\n [icon, iconHidden],\n )\n\n return (\n <AccordionDescendantsContext value={descendants}>\n <AccordionContext value={context}>\n <ComponentContext value={componentContext}>\n <styled.div {...getRootProps()}>{computedChildren}</styled.div>\n </ComponentContext>\n </AccordionContext>\n </AccordionDescendantsContext>\n )\n },\n \"root\",\n)()\n\nexport interface AccordionItemProps\n extends\n Omit<HTMLStyledProps, \"children\">,\n Omit<UseAccordionItemProps, \"children\"> {\n /**\n * The accordion button to use.\n */\n button?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * The accordion children to use.\n */\n children?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * The accordion icon to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n}\n\nexport const AccordionItem = withContext<\"div\", AccordionItemProps>(\n ({ button, children, icon, ...rest }) => {\n const {\n disabled,\n open,\n getButtonProps,\n getIconProps,\n getItemProps,\n getPanelProps,\n } = useAccordionItem(rest)\n const computedChildren = useMemo(\n () => runIfFn(children, { disabled, expanded: open }),\n [children, disabled, open],\n )\n const [omittedChildren, customAccordionButton, customAccordionPanel] =\n useSplitChildren(computedChildren, AccordionButton, AccordionPanel)\n const context = useMemo(\n () => ({\n disabled,\n icon,\n open,\n getButtonProps,\n getIconProps,\n getPanelProps,\n }),\n [disabled, getButtonProps, getPanelProps, getIconProps, icon, open],\n )\n const componentContext = useMemo(() => ({ icon }), [icon])\n\n return (\n <AccordionItemContext value={context}>\n <ItemComponentContext value={componentContext}>\n <styled.div {...getItemProps()}>\n {customAccordionButton ?? (\n <AccordionButton>\n {runIfFn(button, { disabled, expanded: open })}\n </AccordionButton>\n )}\n {customAccordionPanel ?? (\n <AccordionPanel>{omittedChildren}</AccordionPanel>\n )}\n </styled.div>\n </ItemComponentContext>\n </AccordionItemContext>\n )\n },\n \"item\",\n)()\n\nexport interface AccordionButtonProps extends HTMLStyledProps<\"button\"> {\n /**\n * The accordion icon to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * Props the container element.\n */\n containerProps?: HTMLStyledProps\n}\n\nexport const AccordionButton = withContext<\"button\", AccordionButtonProps>(\n ({ children, icon: customIcon, containerProps, ...rest }) => {\n const { icon: rootIcon } = useComponentContext()\n const { icon: itemIcon } = useItemComponentContext()\n const { disabled, open, getButtonProps } = useAccordionItemContext()\n const props = { disabled, expanded: open }\n\n return (\n <styled.h3 {...containerProps}>\n <styled.button {...getButtonProps(rest)}>\n {children}\n\n <AccordionIcon>\n {runIfFn(customIcon, props) ??\n runIfFn(itemIcon, props) ??\n runIfFn(rootIcon, props)}\n </AccordionIcon>\n </styled.button>\n </styled.h3>\n )\n },\n \"button\",\n)()\n\ninterface AccordionIconProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const AccordionIcon = withContext<\"svg\", AccordionIconProps>(\n ({ children = <ChevronDownIcon />, ...rest }) => {\n const { iconHidden } = useComponentContext()\n const { getIconProps } = useAccordionItemContext()\n\n if (iconHidden) return null\n\n if (isValidElement<HTMLProps<\"svg\">>(children))\n return cloneElement(\n children,\n getIconProps({\n ...rest,\n ...children.props,\n }),\n )\n\n return Children.count(children) > 1 ? Children.only(null) : null\n },\n \"icon\",\n)()\n\nexport interface AccordionPanelProps\n extends\n Omit<HTMLStyledProps, \"transition\">,\n Pick<\n CollapseProps,\n | \"animationOpacity\"\n | \"endingHeight\"\n | \"startingHeight\"\n | keyof WithTransitionProps\n > {}\n\nexport const AccordionPanel = withContext<\"div\", AccordionPanelProps>(\n ({\n animationOpacity,\n children,\n delay,\n duration,\n endingHeight,\n startingHeight,\n transition,\n transitionEnd,\n unmountOnExit,\n ...rest\n }) => {\n const { open, getPanelProps } = useAccordionItemContext()\n\n return (\n <Collapse\n {...{\n animationOpacity,\n delay,\n duration,\n endingHeight,\n open,\n startingHeight,\n transition,\n transitionEnd,\n unmountOnExit,\n }}\n >\n <styled.div {...getPanelProps(rest)}>\n {isString(children) ? <styled.p>{children}</styled.p> : children}\n </styled.div>\n </Collapse>\n )\n },\n \"panel\",\n)()\n"],"mappings":"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"}
1
+ {"version":3,"file":"accordion.js","names":["createContext"],"sources":["../../../../src/components/accordion/accordion.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ReactNodeOrFunction } from \"../../utils\"\nimport type { CollapseProps } from \"../collapse\"\nimport type { WithTransitionProps } from \"../motion\"\nimport type { AccordionStyle } from \"./accordion.style\"\nimport type { UseAccordionItemProps, UseAccordionProps } from \"./use-accordion\"\nimport { Children, cloneElement, isValidElement, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { createContext, isString, runIfFn, useSplitChildren } from \"../../utils\"\nimport { Collapse } from \"../collapse\"\nimport { ChevronDownIcon } from \"../icon\"\nimport { accordionStyle } from \"./accordion.style\"\nimport {\n AccordionContext,\n AccordionDescendantsContext,\n AccordionItemContext,\n useAccordion,\n useAccordionItem,\n useAccordionItemContext,\n} from \"./use-accordion\"\n\ninterface AccordionCallBackProps {\n disabled?: boolean\n expanded?: boolean\n}\n\nexport interface AccordionItem extends Omit<AccordionItemProps, \"index\"> {}\n\ninterface ComponentContext extends Pick<\n AccordionRootProps,\n \"icon\" | \"iconHidden\"\n> {}\n\nexport interface AccordionRootProps\n extends\n Omit<HTMLStyledProps, \"onChange\">,\n ThemeProps<AccordionStyle>,\n UseAccordionProps {\n /**\n * The accordion icon for all items to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * If `true`, hide the accordion icon for all items.\n *\n * @default false\n */\n iconHidden?: boolean\n /**\n * If provided, generate elements based on items.\n */\n items?: AccordionItem[]\n}\n\ninterface ItemComponentContext extends Pick<AccordionItemProps, \"icon\"> {}\n\nconst [ItemComponentContext, useItemComponentContext] =\n createContext<ItemComponentContext>({\n name: \"ItemComponentContext\",\n })\n\nconst {\n ComponentContext,\n PropsContext: AccordionPropsContext,\n useComponentContext,\n usePropsContext: useAccordionPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<AccordionRootProps, AccordionStyle, ComponentContext>(\n \"accordion\",\n accordionStyle,\n)\n\nexport { AccordionPropsContext, useAccordionPropsContext }\n\n/**\n * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.\n *\n * @see https://yamada-ui.com/docs/components/accordion\n */\nexport const AccordionRoot = withProvider<\"div\", AccordionRootProps>(\n ({ children, icon, iconHidden, items, ...props }) => {\n const {\n descendants,\n focusedIndex,\n index,\n multiple,\n setFocusedIndex,\n setIndex,\n toggle,\n getRootProps,\n } = useAccordion(props)\n const computedChildren = useMemo(() => {\n if (children) return children\n\n return items?.map((props, index) => (\n <AccordionItem key={index} index={index} {...props} />\n ))\n }, [children, items])\n const context = useMemo(\n () => ({\n focusedIndex,\n index,\n multiple,\n setFocusedIndex,\n setIndex,\n toggle,\n }),\n [focusedIndex, index, multiple, setFocusedIndex, setIndex, toggle],\n )\n const componentContext = useMemo(\n () => ({ icon, iconHidden }),\n [icon, iconHidden],\n )\n\n return (\n <AccordionDescendantsContext value={descendants}>\n <AccordionContext value={context}>\n <ComponentContext value={componentContext}>\n <styled.div {...getRootProps()}>{computedChildren}</styled.div>\n </ComponentContext>\n </AccordionContext>\n </AccordionDescendantsContext>\n )\n },\n \"root\",\n)()\n\nexport interface AccordionItemProps\n extends\n Omit<HTMLStyledProps, \"children\">,\n Omit<UseAccordionItemProps, \"children\"> {\n /**\n * The accordion button to use.\n */\n button?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * The accordion children to use.\n */\n children?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * The accordion icon to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n}\n\nexport const AccordionItem = withContext<\"div\", AccordionItemProps>(\n ({ button, children, icon, ...rest }) => {\n const {\n disabled,\n open,\n getButtonProps,\n getIconProps,\n getItemProps,\n getPanelProps,\n } = useAccordionItem(rest)\n const computedChildren = useMemo(\n () => runIfFn(children, { disabled, expanded: open }),\n [children, disabled, open],\n )\n const [omittedChildren, customAccordionButton, customAccordionPanel] =\n useSplitChildren(computedChildren, AccordionButton, AccordionPanel)\n const context = useMemo(\n () => ({\n disabled,\n icon,\n open,\n getButtonProps,\n getIconProps,\n getPanelProps,\n }),\n [disabled, getButtonProps, getPanelProps, getIconProps, icon, open],\n )\n const componentContext = useMemo(() => ({ icon }), [icon])\n\n return (\n <AccordionItemContext value={context}>\n <ItemComponentContext value={componentContext}>\n <styled.div {...getItemProps()}>\n {customAccordionButton ?? (\n <AccordionButton>\n {runIfFn(button, { disabled, expanded: open })}\n </AccordionButton>\n )}\n {customAccordionPanel ?? (\n <AccordionPanel>{omittedChildren}</AccordionPanel>\n )}\n </styled.div>\n </ItemComponentContext>\n </AccordionItemContext>\n )\n },\n \"item\",\n)()\n\nexport interface AccordionButtonProps extends HTMLStyledProps<\"button\"> {\n /**\n * The accordion icon to use.\n */\n icon?: ReactNodeOrFunction<AccordionCallBackProps>\n /**\n * Props the container element.\n */\n containerProps?: HTMLStyledProps\n}\n\nexport const AccordionButton = withContext<\"button\", AccordionButtonProps>(\n ({ children, icon: customIcon, containerProps, ...rest }) => {\n const { icon: rootIcon } = useComponentContext()\n const { icon: itemIcon } = useItemComponentContext()\n const { disabled, open, getButtonProps } = useAccordionItemContext()\n const props = { disabled, expanded: open }\n\n return (\n <styled.h3 {...containerProps}>\n <styled.button {...getButtonProps(rest)}>\n {children}\n\n <AccordionIcon>\n {runIfFn(customIcon, props) ??\n runIfFn(itemIcon, props) ??\n runIfFn(rootIcon, props)}\n </AccordionIcon>\n </styled.button>\n </styled.h3>\n )\n },\n \"button\",\n)()\n\ninterface AccordionIconProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const AccordionIcon = withContext<\"svg\", AccordionIconProps>(\n ({ children = <ChevronDownIcon />, ...rest }) => {\n const { iconHidden } = useComponentContext()\n const { getIconProps } = useAccordionItemContext()\n\n if (iconHidden) return null\n\n if (isValidElement<HTMLProps<\"svg\">>(children))\n return cloneElement(\n children,\n getIconProps({\n ...rest,\n ...children.props,\n }),\n )\n\n return Children.count(children) > 1 ? Children.only(null) : null\n },\n \"icon\",\n)()\n\nexport interface AccordionPanelProps\n extends\n Omit<HTMLStyledProps, \"transition\">,\n Pick<\n CollapseProps,\n | \"animationOpacity\"\n | \"endingHeight\"\n | \"startingHeight\"\n | keyof WithTransitionProps\n > {}\n\nexport const AccordionPanel = withContext<\"div\", AccordionPanelProps>(\n ({\n animationOpacity,\n children,\n delay,\n duration,\n endingHeight,\n startingHeight,\n transition,\n transitionEnd,\n unmountOnExit,\n ...rest\n }) => {\n const { open, getPanelProps } = useAccordionItemContext()\n\n return (\n <Collapse\n {...{\n animationOpacity,\n delay,\n duration,\n endingHeight,\n open,\n startingHeight,\n transition,\n transitionEnd,\n unmountOnExit,\n }}\n >\n <styled.div {...getPanelProps(rest)}>\n {isString(children) ? <styled.p>{children}</styled.p> : children}\n </styled.div>\n </Collapse>\n )\n },\n \"panel\",\n)()\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"action-bar.js","names":["motion"],"sources":["../../../../src/components/action-bar/action-bar.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { UsePopupAnimationProps } from \"../popover\"\nimport type { ActionBarStyle } from \"./action-bar.style\"\nimport type { UseActionBarProps, UseActionBarReturn } from \"./use-action-bar\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, useSplitChildren } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { usePopupAnimationProps } from \"../popover\"\nimport { Portal, type PortalProps } from \"../portal\"\nimport { actionBarStyle } from \"./action-bar.style\"\nimport { useActionBar } from \"./use-action-bar\"\n\ninterface ComponentContext\n extends\n Pick<\n UseActionBarReturn,\n \"getCloseTriggerProps\" | \"getContentProps\" | \"getOpenTriggerProps\"\n >,\n Pick<ActionBarRootProps, \"animationScheme\" | \"duration\"> {}\n\nexport interface ActionBarRootProps\n extends\n Omit<HTMLStyledProps, \"content\">,\n ThemeProps<ActionBarStyle>,\n UseActionBarProps,\n UsePopupAnimationProps {\n /**\n * The action bar content to use.\n */\n content?: ReactNode\n /**\n * The action bar trigger to use.\n */\n trigger?: ReactNode\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the action bar has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ActionBarPropsContext,\n useComponentContext,\n usePropsContext: useActionBarPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ActionBarRootProps, ActionBarStyle, ComponentContext>(\n \"action-bar\",\n actionBarStyle,\n)\n\nexport { ActionBarPropsContext, useActionBarPropsContext }\n\n/**\n * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.\n *\n * @see https://yamada-ui.com/docs/components/action-bar\n */\nexport const ActionBarRoot = withProvider<\n \"div\",\n ActionBarRootProps,\n \"placement\"\n>(\n ({\n animationScheme,\n children,\n content: contentProp,\n duration,\n placement: placementProp,\n trigger,\n portalProps,\n onCloseComplete,\n ...rest\n }) => {\n const placement = useValue(placementProp)\n\n animationScheme ??= placement?.startsWith(\"start\")\n ? \"block-start\"\n : \"block-end\"\n\n const [omittedChildren, openTrigger, content] = useSplitChildren(\n children,\n ActionBarOpenTrigger,\n ActionBarContent,\n )\n const {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n } = useActionBar(rest)\n const customOpenTrigger = trigger ? (\n <ActionBarOpenTrigger>{trigger}</ActionBarOpenTrigger>\n ) : null\n const customContent = contentProp ? (\n <ActionBarContent>{contentProp}</ActionBarContent>\n ) : null\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n }),\n [\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n ],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <styled.div {...getRootProps()}>\n {content ?? customContent ?? omittedChildren}\n </styled.div>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface ActionBarOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarOpenTrigger = withContext<\n \"button\",\n ActionBarOpenTriggerProps\n>(\"button\", { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] })(\n undefined,\n (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n },\n)\n\nexport interface ActionBarCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarCloseTrigger = withContext<\n \"button\",\n ActionBarCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface ActionBarContentProps\n extends Omit<HTMLStyledProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ActionBarContent = withContext<\"section\", ActionBarContentProps>(\n (props) => {\n const { animationScheme, duration, getContentProps } = useComponentContext()\n const popupAnimationProps = usePopupAnimationProps({\n animationScheme,\n duration,\n })\n\n return (\n <motion.section\n {...popupAnimationProps}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(props)),\n )}\n />\n )\n },\n \"content\",\n)()\n\nexport interface ActionBarSeparatorProps extends HTMLStyledProps {}\n\nexport const ActionBarSeparator = withContext<\"div\", ActionBarSeparatorProps>(\n \"div\",\n \"separator\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;AAmDA,MAAM,EACJ,kBACA,cAAc,uBACd,qBACA,iBAAiB,0BACjB,aACA,iBACE,oBACF,cACA,cACF;;;;;;AASA,MAAa,gBAAgB,cAK1B,EACC,iBACA,UACA,SAAS,aACT,UACA,WAAW,eACX,SACA,aACA,iBACA,GAAG,WACC;CACJ,MAAM,YAAY,SAAS,aAAa;CAExC,oBAAoB,WAAW,WAAW,OAAO,IAC7C,gBACA;CAEJ,MAAM,CAAC,iBAAiB,aAAa,WAAW,iBAC9C,UACA,sBACA,gBACF;CACA,MAAM,EACJ,MACA,sBACA,iBACA,qBACA,iBACE,aAAa,IAAI;CACrB,MAAM,oBAAoB,UACxB,oBAAC,sBAAD,EAAA,UAAuB,QAA8B,CAAA,IACnD;CACJ,MAAM,gBAAgB,cACpB,oBAAC,kBAAD,EAAA,UAAmB,YAA8B,CAAA,IAC/C;CACJ,MAAM,UAAU,eACP;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,qBAAC,kBAAD;EAAkB,OAAO;YAAzB,CACG,eAAe,mBAEhB,oBAAC,iBAAD;GAAiB,gBAAgB;aAC9B,OACC,oBAAC,QAAD;IAAQ,GAAI;cACV,oBAAC,OAAO,KAAR;KAAY,GAAI,aAAa;eAC1B,WAAW,iBAAiB;IACnB,CAAA;GACN,CAAA,IACN;EACW,CAAA,CACD;;AAEtB,GACA,QACA,EAAE,eAAe,CAAC,WAAW,EAAE,CACjC,CAAC,CAAC;AAIF,MAAa,uBAAuB,YAGlC,UAAU;CAAE,MAAM;CAAe,MAAM,CAAC,WAAW,MAAM;AAAE,CAAC,CAAC,CAC7D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,wBAAwB,oBAAoB;CAEpD,OAAO;EAAE,SAAS;EAAM,GAAG,oBAAoB,KAAK;CAAE;AACxD,CACF;AAIA,MAAa,wBAAwB,YAGnC,UAAU;CAAE,MAAM;CAAgB,MAAM,CAAC,WAAW,OAAO;AAAE,CAAC,CAAC,CAC/D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,yBAAyB,oBAAoB;CAErD,OAAO;EAAE,SAAS;EAAM,GAAG,qBAAqB,KAAK;CAAE;AACzD,CACF;AAKA,MAAa,mBAAmB,aAC7B,UAAU;CACT,MAAM,EAAE,iBAAiB,UAAU,oBAAoB,oBAAoB;CAC3E,MAAM,sBAAsB,uBAAuB;EACjD;EACA;CACF,CAAC;CAED,OACE,oBAACA,SAAO,SAAR;EACE,GAAI;EACJ,IAAA,GAAA,cAAA,KAAA,CACE,iBAAA,GAAA,cAAA,KAAA,CAA2C,KAAK,CAAC,CACnD;CACD,CAAA;AAEL,GACA,SACF,CAAC,CAAC;AAIF,MAAa,qBAAqB,YAChC,OACA,WACF,CAAC,CAAC"}
1
+ {"version":3,"file":"action-bar.js","names":["motion"],"sources":["../../../../src/components/action-bar/action-bar.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { UsePopupAnimationProps } from \"../popover\"\nimport type { ActionBarStyle } from \"./action-bar.style\"\nimport type { UseActionBarProps, UseActionBarReturn } from \"./use-action-bar\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, useSplitChildren } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { usePopupAnimationProps } from \"../popover\"\nimport { Portal, type PortalProps } from \"../portal\"\nimport { actionBarStyle } from \"./action-bar.style\"\nimport { useActionBar } from \"./use-action-bar\"\n\ninterface ComponentContext\n extends\n Pick<\n UseActionBarReturn,\n \"getCloseTriggerProps\" | \"getContentProps\" | \"getOpenTriggerProps\"\n >,\n Pick<ActionBarRootProps, \"animationScheme\" | \"duration\"> {}\n\nexport interface ActionBarRootProps\n extends\n Omit<HTMLStyledProps, \"content\">,\n ThemeProps<ActionBarStyle>,\n UseActionBarProps,\n UsePopupAnimationProps {\n /**\n * The action bar content to use.\n */\n content?: ReactNode\n /**\n * The action bar trigger to use.\n */\n trigger?: ReactNode\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the action bar has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ActionBarPropsContext,\n useComponentContext,\n usePropsContext: useActionBarPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ActionBarRootProps, ActionBarStyle, ComponentContext>(\n \"action-bar\",\n actionBarStyle,\n)\n\nexport { ActionBarPropsContext, useActionBarPropsContext }\n\n/**\n * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.\n *\n * @see https://yamada-ui.com/docs/components/action-bar\n */\nexport const ActionBarRoot = withProvider<\n \"div\",\n ActionBarRootProps,\n \"placement\"\n>(\n ({\n animationScheme,\n children,\n content: contentProp,\n duration,\n placement: placementProp,\n trigger,\n portalProps,\n onCloseComplete,\n ...rest\n }) => {\n const placement = useValue(placementProp)\n\n animationScheme ??= placement?.startsWith(\"start\")\n ? \"block-start\"\n : \"block-end\"\n\n const [omittedChildren, openTrigger, content] = useSplitChildren(\n children,\n ActionBarOpenTrigger,\n ActionBarContent,\n )\n const {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n } = useActionBar(rest)\n const customOpenTrigger = trigger ? (\n <ActionBarOpenTrigger>{trigger}</ActionBarOpenTrigger>\n ) : null\n const customContent = contentProp ? (\n <ActionBarContent>{contentProp}</ActionBarContent>\n ) : null\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n }),\n [\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n ],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <styled.div {...getRootProps()}>\n {content ?? customContent ?? omittedChildren}\n </styled.div>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface ActionBarOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarOpenTrigger = withContext<\n \"button\",\n ActionBarOpenTriggerProps\n>(\"button\", { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] })(\n undefined,\n (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n },\n)\n\nexport interface ActionBarCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarCloseTrigger = withContext<\n \"button\",\n ActionBarCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface ActionBarContentProps\n extends Omit<HTMLStyledProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ActionBarContent = withContext<\"section\", ActionBarContentProps>(\n (props) => {\n const { animationScheme, duration, getContentProps } = useComponentContext()\n const popupAnimationProps = usePopupAnimationProps({\n animationScheme,\n duration,\n })\n\n return (\n <motion.section\n {...popupAnimationProps}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(props)),\n )}\n />\n )\n },\n \"content\",\n)()\n\nexport interface ActionBarSeparatorProps extends HTMLStyledProps {}\n\nexport const ActionBarSeparator = withContext<\"div\", ActionBarSeparatorProps>(\n \"div\",\n \"separator\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;AAmDA,MAAM,EACJ,kBACA,cAAc,uBACd,qBACA,iBAAiB,0BACjB,aACA,iBACE,oBACF,cACA,cACF;;;;;;AASA,MAAa,gBAAgB,cAK1B,EACC,iBACA,UACA,SAAS,aACT,UACA,WAAW,eACX,SACA,aACA,iBACA,GAAG,WACC;CACJ,MAAM,YAAY,SAAS,aAAa;CAExC,oBAAoB,WAAW,WAAW,OAAO,IAC7C,gBACA;CAEJ,MAAM,CAAC,iBAAiB,aAAa,WAAW,iBAC9C,UACA,sBACA,gBACF;CACA,MAAM,EACJ,MACA,sBACA,iBACA,qBACA,iBACE,aAAa,IAAI;CACrB,MAAM,oBAAoB,UACxB,oBAAC,sBAAD,EAAA,UAAuB,QAA8B,CAAA,IACnD;CACJ,MAAM,gBAAgB,cACpB,oBAAC,kBAAD,EAAA,UAAmB,YAA8B,CAAA,IAC/C;CACJ,MAAM,UAAU,eACP;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,qBAAC,kBAAD;EAAkB,OAAO;EAAzB,UAAA,CACG,eAAe,mBAEhB,oBAAC,iBAAD;GAAiB,gBAAgB;GAC9B,UAAA,OACC,oBAAC,QAAD;IAAQ,GAAI;IACV,UAAA,oBAAC,OAAO,KAAR;KAAY,GAAI,aAAa;KAC1B,UAAA,WAAW,iBAAiB;IACnB,CAAA;GACN,CAAA,IACN;EACW,CAAA,CACD;;AAEtB,GACA,QACA,EAAE,eAAe,CAAC,WAAW,EAAE,CACjC,CAAC,CAAC;AAIF,MAAa,uBAAuB,YAGlC,UAAU;CAAE,MAAM;CAAe,MAAM,CAAC,WAAW,MAAM;AAAE,CAAC,CAAC,CAC7D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,wBAAwB,oBAAoB;CAEpD,OAAO;EAAE,SAAS;EAAM,GAAG,oBAAoB,KAAK;CAAE;AACxD,CACF;AAIA,MAAa,wBAAwB,YAGnC,UAAU;CAAE,MAAM;CAAgB,MAAM,CAAC,WAAW,OAAO;AAAE,CAAC,CAAC,CAC/D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,yBAAyB,oBAAoB;CAErD,OAAO;EAAE,SAAS;EAAM,GAAG,qBAAqB,KAAK;CAAE;AACzD,CACF;AAKA,MAAa,mBAAmB,aAC7B,UAAU;CACT,MAAM,EAAE,iBAAiB,UAAU,oBAAoB,oBAAoB;CAC3E,MAAM,sBAAsB,uBAAuB;EACjD;EACA;CACF,CAAC;CAED,OACE,oBAACA,SAAO,SAAR;EACE,GAAI;EACJ,IAAA,GAAA,cAAA,KAAA,CACE,iBAAA,GAAA,cAAA,KAAA,CAA2C,KAAK,CAAC,CACnD;CACD,CAAA;AAEL,GACA,SACF,CAAC,CAAC;AAIF,MAAa,qBAAqB,YAChC,OACA,WACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"airy.js","names":["motion"],"sources":["../../../../src/components/airy/airy.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { KeyframeIdent, ThemeProps } from \"../../core\"\nimport type { HTMLMotionProps } from \"../motion\"\nimport type { AiryStyle } from \"./airy.style\"\nimport { useAnimation } from \"motion/react\"\nimport { useCallback } from \"react\"\nimport {\n createComponent,\n useInjectVarsIntoCss,\n useInjectVarsIntoProps,\n} from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { dataAttr, handlerAll } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { airyStyle } from \"./airy.style\"\n\nexport interface AiryProps\n extends Omit<HTMLMotionProps<\"button\">, \"onChange\">, ThemeProps<AiryStyle> {\n /**\n * Passing React elements to \"from\" is required.\n */\n from: ReactNode\n /**\n * Passing React elements to \"to\" is required.\n */\n to: ReactNode\n /**\n * You can set the initial state.\n *\n * @default 'from'\n */\n defaultValue?: KeyframeIdent\n /**\n * The animation delay.\n *\n * @default 0\n */\n delay?: number\n /**\n * If `true`, the component is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The animation duration.\n *\n * @default 0.2\n */\n duration?: number\n /**\n * If `true`, the component is readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * Use this when you want to control the animation from outside the component.\n */\n value?: KeyframeIdent\n /**\n * This is a callback function that is called when the animation state changes.\n */\n onChange?: (value: KeyframeIdent) => void\n}\n\nconst {\n PropsContext: AiryPropsContext,\n usePropsContext: useAiryPropsContext,\n withContext,\n} = createComponent<AiryProps, AiryStyle>(\"airy\", airyStyle)\n\nexport { AiryPropsContext, useAiryPropsContext }\n\n/**\n * `Airy` is a component that creates an airy animation, switching between two elements when one is clicked.\n *\n * @see https://yamada-ui.com/docs/components/airy\n */\nexport const Airy = withContext<\"button\", AiryProps>(\n ({\n defaultValue = \"from\",\n delay = 0,\n disabled,\n duration = 0.2,\n from,\n readOnly,\n to,\n value: valueProp,\n onChange,\n onClick: onClickProp,\n ...rest\n }) => {\n const opacity = \"var(--opacity)\"\n const animate = useAnimation()\n const [value, setValue] = useControllableState<KeyframeIdent>({\n defaultValue,\n value: valueProp,\n onChange,\n })\n\n const onClick = useCallback(async () => {\n if (readOnly) return\n\n await animate.start({ opacity: 0, transition: { delay, duration } })\n\n setValue((prev) => (prev === \"from\" ? \"to\" : \"from\"))\n\n await animate.start({ opacity, transition: { duration } })\n }, [animate, setValue, readOnly, opacity, duration, delay])\n\n return (\n <motion.button\n type=\"button\"\n data-disabled={dataAttr(disabled)}\n data-readonly={dataAttr(readOnly)}\n data-value={value}\n animate={animate}\n disabled={disabled}\n initial={{ opacity }}\n onClick={handlerAll(onClickProp, onClick)}\n {...rest}\n >\n {value === \"from\" ? from : to}\n </motion.button>\n )\n },\n)(undefined, (props) => {\n const css = useInjectVarsIntoCss(props.css, { opacity: \"opacity\" })\n const rest = useInjectVarsIntoProps(props, { opacity: \"opacity\" })\n\n return { ...rest, css, opacity: \"{opacity}\" }\n})\n"],"mappings":";;;;;;;;;;;AAoEA,MAAM,EACJ,cAAc,kBACd,iBAAiB,qBACjB,gBACE,gBAAsC,QAAQ,SAAS;;;;;;AAS3D,MAAa,OAAO,aACjB,EACC,eAAe,QACf,QAAQ,GACR,UACA,WAAW,IACX,MACA,UACA,IACA,OAAO,WACP,UACA,SAAS,aACT,GAAG,WACC;CACJ,MAAM,UAAU;CAChB,MAAM,UAAU,aAAa;CAC7B,MAAM,CAAC,OAAO,YAAY,qBAAoC;EAC5D;EACA,OAAO;EACP;CACF,CAAC;CAED,MAAM,UAAU,YAAY,YAAY;EACtC,IAAI,UAAU;EAEd,MAAM,QAAQ,MAAM;GAAE,SAAS;GAAG,YAAY;IAAE;IAAO;GAAS;EAAE,CAAC;EAEnE,UAAU,SAAU,SAAS,SAAS,OAAO,MAAO;EAEpD,MAAM,QAAQ,MAAM;GAAE;GAAS,YAAY,EAAE,SAAS;EAAE,CAAC;CAC3D,GAAG;EAAC;EAAS;EAAU;EAAU;EAAS;EAAU;CAAK,CAAC;CAE1D,OACE,oBAACA,SAAO,QAAR;EACE,MAAK;EACL,kBAAA,GAAA,cAAA,SAAA,CAAwB,QAAQ;EAChC,kBAAA,GAAA,cAAA,SAAA,CAAwB,QAAQ;EAChC,cAAY;EACH;EACC;EACV,SAAS,EAAE,QAAQ;EACnB,UAAA,GAAA,cAAA,WAAA,CAAoB,aAAa,OAAO;EACxC,GAAI;YAEH,UAAU,SAAS,OAAO;CACd,CAAA;AAEnB,CACF,CAAC,CAAC,KAAA,IAAY,UAAU;CACtB,MAAM,MAAM,qBAAqB,MAAM,KAAK,EAAE,SAAS,UAAU,CAAC;CAGlE,OAAO;EAAE,GAFI,uBAAuB,OAAO,EAAE,SAAS,UAAU,CAEjD;EAAG;EAAK,SAAS;CAAY;AAC9C,CAAC"}
1
+ {"version":3,"file":"airy.js","names":["motion"],"sources":["../../../../src/components/airy/airy.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { KeyframeIdent, ThemeProps } from \"../../core\"\nimport type { HTMLMotionProps } from \"../motion\"\nimport type { AiryStyle } from \"./airy.style\"\nimport { useAnimation } from \"motion/react\"\nimport { useCallback } from \"react\"\nimport {\n createComponent,\n useInjectVarsIntoCss,\n useInjectVarsIntoProps,\n} from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { dataAttr, handlerAll } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { airyStyle } from \"./airy.style\"\n\nexport interface AiryProps\n extends Omit<HTMLMotionProps<\"button\">, \"onChange\">, ThemeProps<AiryStyle> {\n /**\n * Passing React elements to \"from\" is required.\n */\n from: ReactNode\n /**\n * Passing React elements to \"to\" is required.\n */\n to: ReactNode\n /**\n * You can set the initial state.\n *\n * @default 'from'\n */\n defaultValue?: KeyframeIdent\n /**\n * The animation delay.\n *\n * @default 0\n */\n delay?: number\n /**\n * If `true`, the component is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The animation duration.\n *\n * @default 0.2\n */\n duration?: number\n /**\n * If `true`, the component is readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * Use this when you want to control the animation from outside the component.\n */\n value?: KeyframeIdent\n /**\n * This is a callback function that is called when the animation state changes.\n */\n onChange?: (value: KeyframeIdent) => void\n}\n\nconst {\n PropsContext: AiryPropsContext,\n usePropsContext: useAiryPropsContext,\n withContext,\n} = createComponent<AiryProps, AiryStyle>(\"airy\", airyStyle)\n\nexport { AiryPropsContext, useAiryPropsContext }\n\n/**\n * `Airy` is a component that creates an airy animation, switching between two elements when one is clicked.\n *\n * @see https://yamada-ui.com/docs/components/airy\n */\nexport const Airy = withContext<\"button\", AiryProps>(\n ({\n defaultValue = \"from\",\n delay = 0,\n disabled,\n duration = 0.2,\n from,\n readOnly,\n to,\n value: valueProp,\n onChange,\n onClick: onClickProp,\n ...rest\n }) => {\n const opacity = \"var(--opacity)\"\n const animate = useAnimation()\n const [value, setValue] = useControllableState<KeyframeIdent>({\n defaultValue,\n value: valueProp,\n onChange,\n })\n\n const onClick = useCallback(async () => {\n if (readOnly) return\n\n await animate.start({ opacity: 0, transition: { delay, duration } })\n\n setValue((prev) => (prev === \"from\" ? \"to\" : \"from\"))\n\n await animate.start({ opacity, transition: { duration } })\n }, [animate, setValue, readOnly, opacity, duration, delay])\n\n return (\n <motion.button\n type=\"button\"\n data-disabled={dataAttr(disabled)}\n data-readonly={dataAttr(readOnly)}\n data-value={value}\n animate={animate}\n disabled={disabled}\n initial={{ opacity }}\n onClick={handlerAll(onClickProp, onClick)}\n {...rest}\n >\n {value === \"from\" ? from : to}\n </motion.button>\n )\n },\n)(undefined, (props) => {\n const css = useInjectVarsIntoCss(props.css, { opacity: \"opacity\" })\n const rest = useInjectVarsIntoProps(props, { opacity: \"opacity\" })\n\n return { ...rest, css, opacity: \"{opacity}\" }\n})\n"],"mappings":";;;;;;;;;;;AAoEA,MAAM,EACJ,cAAc,kBACd,iBAAiB,qBACjB,gBACE,gBAAsC,QAAQ,SAAS;;;;;;AAS3D,MAAa,OAAO,aACjB,EACC,eAAe,QACf,QAAQ,GACR,UACA,WAAW,IACX,MACA,UACA,IACA,OAAO,WACP,UACA,SAAS,aACT,GAAG,WACC;CACJ,MAAM,UAAU;CAChB,MAAM,UAAU,aAAa;CAC7B,MAAM,CAAC,OAAO,YAAY,qBAAoC;EAC5D;EACA,OAAO;EACP;CACF,CAAC;CAED,MAAM,UAAU,YAAY,YAAY;EACtC,IAAI,UAAU;EAEd,MAAM,QAAQ,MAAM;GAAE,SAAS;GAAG,YAAY;IAAE;IAAO;GAAS;EAAE,CAAC;EAEnE,UAAU,SAAU,SAAS,SAAS,OAAO,MAAO;EAEpD,MAAM,QAAQ,MAAM;GAAE;GAAS,YAAY,EAAE,SAAS;EAAE,CAAC;CAC3D,GAAG;EAAC;EAAS;EAAU;EAAU;EAAS;EAAU;CAAK,CAAC;CAE1D,OACE,oBAACA,SAAO,QAAR;EACE,MAAK;EACL,kBAAA,GAAA,cAAA,SAAA,CAAwB,QAAQ;EAChC,kBAAA,GAAA,cAAA,SAAA,CAAwB,QAAQ;EAChC,cAAY;EACH;EACC;EACV,SAAS,EAAE,QAAQ;EACnB,UAAA,GAAA,cAAA,WAAA,CAAoB,aAAa,OAAO;EACxC,GAAI;EAEH,UAAA,UAAU,SAAS,OAAO;CACd,CAAA;AAEnB,CACF,CAAC,CAAC,KAAA,IAAY,UAAU;CACtB,MAAM,MAAM,qBAAqB,MAAM,KAAK,EAAE,SAAS,UAAU,CAAC;CAGlE,OAAO;EAAE,GAFI,uBAAuB,OAAO,EAAE,SAAS,UAAU,CAEjD;EAAG;EAAK,SAAS;CAAY;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../../../../src/components/alert/alert.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { IconProps } from \"../icon\"\nimport type { Loading } from \"../loading\"\nimport type { StatusScheme } from \"../status\"\nimport type { AlertStyle } from \"./alert.style\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport {\n CircleCheckBigIcon,\n InfoIcon,\n OctagonAlertIcon,\n TriangleAlertIcon,\n} from \"../icon\"\nimport { useLoadingComponent } from \"../loading\"\nimport { alertStyle } from \"./alert.style\"\n\nconst icons = {\n error: OctagonAlertIcon,\n info: InfoIcon,\n success: CircleCheckBigIcon,\n warning: TriangleAlertIcon,\n} as const\n\ninterface ComponentContext {\n status: StatusScheme\n}\n\nexport interface AlertRootProps\n extends HTMLStyledProps, ThemeProps<AlertStyle> {\n /**\n * The status of the alert.\n *\n * @default 'info'\n */\n status?: StatusScheme\n}\n\nconst {\n ComponentContext,\n PropsContext: AlertPropsContext,\n useComponentContext,\n usePropsContext: useAlertPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<AlertRootProps, AlertStyle, ComponentContext>(\n \"alert\",\n alertStyle,\n)\n\nexport { AlertPropsContext, useAlertPropsContext }\n\n/**\n * `Alert` is a component that conveys information to the user.\n *\n * @see https://yamada-ui.com/docs/components/alert\n */\nexport const AlertRoot = withProvider<\"div\", AlertRootProps>(\n ({ status, colorScheme = status, ...props }) => {\n const context = useMemo(() => ({ status: status! }), [status])\n\n return (\n <ComponentContext value={context}>\n <styled.div colorScheme={colorScheme} role=\"alert\" {...props} />\n </ComponentContext>\n )\n },\n \"root\",\n)({ status: \"info\" })\n\nexport interface AlertIconProps extends IconProps {}\n\nexport const AlertIcon = withContext<\"svg\", AlertIconProps>(\n ({ as, ...rest }) => {\n const { status } = useComponentContext()\n const Icon = as || icons[status]\n\n return <Icon {...rest} />\n },\n \"icon\",\n)()\n\nexport interface AlertLoadingProps extends Loading.Props {\n /**\n * The loading scheme.\n *\n * @default 'oval'\n */\n loadingScheme?: Loading.Scheme\n}\n\nexport const AlertLoading = withContext<\"svg\", AlertLoadingProps>(\n ({ loadingScheme = \"oval\", ...rest }) => {\n const Component = useLoadingComponent(loadingScheme)\n\n return <Component {...rest} />\n },\n [\"icon\", \"loading\"],\n)()\n\nexport interface AlertTitleProps extends HTMLStyledProps<\"p\"> {}\n\nexport const AlertTitle = withContext<\"p\", AlertTitleProps>(\"p\", \"title\")()\n\nexport interface AlertDescriptionProps extends HTMLStyledProps<\"span\"> {}\n\nexport const AlertDescription = withContext<\"span\", AlertDescriptionProps>(\n \"span\",\n \"description\",\n)()\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAM,QAAQ;CACZ,OAAO;CACP,MAAM;CACN,SAAS;CACT,SAAS;AACX;AAgBA,MAAM,EACJ,kBACA,cAAc,mBACd,qBACA,iBAAiB,sBACjB,aACA,iBACE,oBACF,SACA,UACF;;;;;;AASA,MAAa,YAAY,cACtB,EAAE,QAAQ,cAAc,QAAQ,GAAG,YAAY;CAC9C,MAAM,UAAU,eAAe,EAAU,OAAQ,IAAI,CAAC,MAAM,CAAC;CAE7D,OACE,oBAAC,kBAAD;EAAkB,OAAO;YACvB,oBAAC,OAAO,KAAR;GAAyB;GAAa,MAAK;GAAQ,GAAI;EAAQ,CAAA;CAC/C,CAAA;AAEtB,GACA,MACF,CAAC,CAAC,EAAE,QAAQ,OAAO,CAAC;AAIpB,MAAa,YAAY,aACtB,EAAE,IAAI,GAAG,WAAW;CACnB,MAAM,EAAE,WAAW,oBAAoB;CAGvC,OAAO,oBAFM,MAAM,MAAM,SAElB,EAAM,GAAI,KAAO,CAAA;AAC1B,GACA,MACF,CAAC,CAAC;AAWF,MAAa,eAAe,aACzB,EAAE,gBAAgB,QAAQ,GAAG,WAAW;CAGvC,OAAO,oBAFW,oBAAoB,aAEtB,GAAT,EAAW,GAAI,KAAO,CAAA;AAC/B,GACA,CAAC,QAAQ,SAAS,CACpB,CAAC,CAAC;AAIF,MAAa,aAAa,YAAkC,KAAK,OAAO,CAAC,CAAC;AAI1E,MAAa,mBAAmB,YAC9B,QACA,aACF,CAAC,CAAC"}
1
+ {"version":3,"file":"alert.js","names":[],"sources":["../../../../src/components/alert/alert.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { IconProps } from \"../icon\"\nimport type { Loading } from \"../loading\"\nimport type { StatusScheme } from \"../status\"\nimport type { AlertStyle } from \"./alert.style\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport {\n CircleCheckBigIcon,\n InfoIcon,\n OctagonAlertIcon,\n TriangleAlertIcon,\n} from \"../icon\"\nimport { useLoadingComponent } from \"../loading\"\nimport { alertStyle } from \"./alert.style\"\n\nconst icons = {\n error: OctagonAlertIcon,\n info: InfoIcon,\n success: CircleCheckBigIcon,\n warning: TriangleAlertIcon,\n} as const\n\ninterface ComponentContext {\n status: StatusScheme\n}\n\nexport interface AlertRootProps\n extends HTMLStyledProps, ThemeProps<AlertStyle> {\n /**\n * The status of the alert.\n *\n * @default 'info'\n */\n status?: StatusScheme\n}\n\nconst {\n ComponentContext,\n PropsContext: AlertPropsContext,\n useComponentContext,\n usePropsContext: useAlertPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<AlertRootProps, AlertStyle, ComponentContext>(\n \"alert\",\n alertStyle,\n)\n\nexport { AlertPropsContext, useAlertPropsContext }\n\n/**\n * `Alert` is a component that conveys information to the user.\n *\n * @see https://yamada-ui.com/docs/components/alert\n */\nexport const AlertRoot = withProvider<\"div\", AlertRootProps>(\n ({ status, colorScheme = status, ...props }) => {\n const context = useMemo(() => ({ status: status! }), [status])\n\n return (\n <ComponentContext value={context}>\n <styled.div colorScheme={colorScheme} role=\"alert\" {...props} />\n </ComponentContext>\n )\n },\n \"root\",\n)({ status: \"info\" })\n\nexport interface AlertIconProps extends IconProps {}\n\nexport const AlertIcon = withContext<\"svg\", AlertIconProps>(\n ({ as, ...rest }) => {\n const { status } = useComponentContext()\n const Icon = as || icons[status]\n\n return <Icon {...rest} />\n },\n \"icon\",\n)()\n\nexport interface AlertLoadingProps extends Loading.Props {\n /**\n * The loading scheme.\n *\n * @default 'oval'\n */\n loadingScheme?: Loading.Scheme\n}\n\nexport const AlertLoading = withContext<\"svg\", AlertLoadingProps>(\n ({ loadingScheme = \"oval\", ...rest }) => {\n const Component = useLoadingComponent(loadingScheme)\n\n return <Component {...rest} />\n },\n [\"icon\", \"loading\"],\n)()\n\nexport interface AlertTitleProps extends HTMLStyledProps<\"p\"> {}\n\nexport const AlertTitle = withContext<\"p\", AlertTitleProps>(\"p\", \"title\")()\n\nexport interface AlertDescriptionProps extends HTMLStyledProps<\"span\"> {}\n\nexport const AlertDescription = withContext<\"span\", AlertDescriptionProps>(\n \"span\",\n \"description\",\n)()\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAM,QAAQ;CACZ,OAAO;CACP,MAAM;CACN,SAAS;CACT,SAAS;AACX;AAgBA,MAAM,EACJ,kBACA,cAAc,mBACd,qBACA,iBAAiB,sBACjB,aACA,iBACE,oBACF,SACA,UACF;;;;;;AASA,MAAa,YAAY,cACtB,EAAE,QAAQ,cAAc,QAAQ,GAAG,YAAY;CAC9C,MAAM,UAAU,eAAe,EAAU,OAAQ,IAAI,CAAC,MAAM,CAAC;CAE7D,OACE,oBAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,oBAAC,OAAO,KAAR;GAAyB;GAAa,MAAK;GAAQ,GAAI;EAAQ,CAAA;CAC/C,CAAA;AAEtB,GACA,MACF,CAAC,CAAC,EAAE,QAAQ,OAAO,CAAC;AAIpB,MAAa,YAAY,aACtB,EAAE,IAAI,GAAG,WAAW;CACnB,MAAM,EAAE,WAAW,oBAAoB;CAGvC,OAAO,oBAFM,MAAM,MAAM,SAElB,EAAM,GAAI,KAAO,CAAA;AAC1B,GACA,MACF,CAAC,CAAC;AAWF,MAAa,eAAe,aACzB,EAAE,gBAAgB,QAAQ,GAAG,WAAW;CAGvC,OAAO,oBAFW,oBAAoB,aAEtB,GAAT,EAAW,GAAI,KAAO,CAAA;AAC/B,GACA,CAAC,QAAQ,SAAS,CACpB,CAAC,CAAC;AAIF,MAAa,aAAa,YAAkC,KAAK,OAAO,CAAC,CAAC;AAI1E,MAAa,mBAAmB,YAC9B,QACA,aACF,CAAC,CAAC"}