@yamada-ui/react 2.2.6 → 2.2.7-dev-20260804111744

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 (811) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/dist/cjs/components/accordion/accordion.cjs +4 -2
  3. package/dist/cjs/components/accordion/accordion.cjs.map +1 -1
  4. package/dist/cjs/components/accordion/use-accordion.cjs +1 -0
  5. package/dist/cjs/components/accordion/use-accordion.cjs.map +1 -1
  6. package/dist/cjs/components/action-bar/action-bar.cjs +1 -0
  7. package/dist/cjs/components/action-bar/action-bar.cjs.map +1 -1
  8. package/dist/cjs/components/action-bar/use-action-bar.cjs +1 -0
  9. package/dist/cjs/components/action-bar/use-action-bar.cjs.map +1 -1
  10. package/dist/cjs/components/airy/airy.cjs +1 -0
  11. package/dist/cjs/components/airy/airy.cjs.map +1 -1
  12. package/dist/cjs/components/alert/alert.cjs +5 -2
  13. package/dist/cjs/components/alert/alert.cjs.map +1 -1
  14. package/dist/cjs/components/alpha-slider/alpha-slider.cjs +1 -0
  15. package/dist/cjs/components/alpha-slider/alpha-slider.cjs.map +1 -1
  16. package/dist/cjs/components/aspect-ratio/aspect-ratio.cjs +1 -0
  17. package/dist/cjs/components/aspect-ratio/aspect-ratio.cjs.map +1 -1
  18. package/dist/cjs/components/autocomplete/autocomplete.cjs +14 -10
  19. package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
  20. package/dist/cjs/components/autocomplete/use-autocomplete.cjs +1 -0
  21. package/dist/cjs/components/autocomplete/use-autocomplete.cjs.map +1 -1
  22. package/dist/cjs/components/avatar/avatar-group.cjs +13 -11
  23. package/dist/cjs/components/avatar/avatar-group.cjs.map +1 -1
  24. package/dist/cjs/components/avatar/use-avatar-group.cjs +1 -0
  25. package/dist/cjs/components/avatar/use-avatar-group.cjs.map +1 -1
  26. package/dist/cjs/components/avatar/use-avatar.cjs +1 -0
  27. package/dist/cjs/components/avatar/use-avatar.cjs.map +1 -1
  28. package/dist/cjs/components/blockquote/blockquote.cjs +1 -0
  29. package/dist/cjs/components/blockquote/blockquote.cjs.map +1 -1
  30. package/dist/cjs/components/breadcrumb/breadcrumb.cjs +1 -0
  31. package/dist/cjs/components/breadcrumb/breadcrumb.cjs.map +1 -1
  32. package/dist/cjs/components/breadcrumb/use-breadcrumb.cjs +1 -0
  33. package/dist/cjs/components/breadcrumb/use-breadcrumb.cjs.map +1 -1
  34. package/dist/cjs/components/button/button-group.cjs +1 -0
  35. package/dist/cjs/components/button/button-group.cjs.map +1 -1
  36. package/dist/cjs/components/button/button.cjs +9 -5
  37. package/dist/cjs/components/button/button.cjs.map +1 -1
  38. package/dist/cjs/components/calendar/calendar.cjs +1 -0
  39. package/dist/cjs/components/calendar/calendar.cjs.map +1 -1
  40. package/dist/cjs/components/calendar/use-calendar.cjs.map +1 -1
  41. package/dist/cjs/components/carousel/carousel.cjs +27 -25
  42. package/dist/cjs/components/carousel/carousel.cjs.map +1 -1
  43. package/dist/cjs/components/carousel/use-carousel.cjs.map +1 -1
  44. package/dist/cjs/components/chart/area-chart.cjs +6 -4
  45. package/dist/cjs/components/chart/area-chart.cjs.map +1 -1
  46. package/dist/cjs/components/chart/bar-chart.cjs +6 -4
  47. package/dist/cjs/components/chart/bar-chart.cjs.map +1 -1
  48. package/dist/cjs/components/chart/cartesian-chart.cjs +146 -139
  49. package/dist/cjs/components/chart/cartesian-chart.cjs.map +1 -1
  50. package/dist/cjs/components/chart/chart.cjs +3 -1
  51. package/dist/cjs/components/chart/chart.cjs.map +1 -1
  52. package/dist/cjs/components/chart/composed-chart.cjs +16 -14
  53. package/dist/cjs/components/chart/composed-chart.cjs.map +1 -1
  54. package/dist/cjs/components/chart/donut-chart.cjs +8 -5
  55. package/dist/cjs/components/chart/donut-chart.cjs.map +1 -1
  56. package/dist/cjs/components/chart/line-chart.cjs +6 -4
  57. package/dist/cjs/components/chart/line-chart.cjs.map +1 -1
  58. package/dist/cjs/components/chart/pie-chart.cjs +8 -5
  59. package/dist/cjs/components/chart/pie-chart.cjs.map +1 -1
  60. package/dist/cjs/components/chart/polar-chart.cjs +119 -111
  61. package/dist/cjs/components/chart/polar-chart.cjs.map +1 -1
  62. package/dist/cjs/components/chart/radar-chart.cjs +6 -4
  63. package/dist/cjs/components/chart/radar-chart.cjs.map +1 -1
  64. package/dist/cjs/components/chart/radial-chart.cjs +1 -0
  65. package/dist/cjs/components/chart/radial-chart.cjs.map +1 -1
  66. package/dist/cjs/components/chart/use-cartesian-chart.cjs +1 -0
  67. package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -1
  68. package/dist/cjs/components/chart/use-chart.cjs +1 -0
  69. package/dist/cjs/components/chart/use-chart.cjs.map +1 -1
  70. package/dist/cjs/components/chart/use-polar-chart.cjs +1 -0
  71. package/dist/cjs/components/chart/use-polar-chart.cjs.map +1 -1
  72. package/dist/cjs/components/checkbox/checkbox-group.cjs +39 -36
  73. package/dist/cjs/components/checkbox/checkbox-group.cjs.map +1 -1
  74. package/dist/cjs/components/checkbox/checkbox.cjs +1 -0
  75. package/dist/cjs/components/checkbox/checkbox.cjs.map +1 -1
  76. package/dist/cjs/components/checkbox/use-checkbox-group.cjs +1 -0
  77. package/dist/cjs/components/checkbox/use-checkbox-group.cjs.map +1 -1
  78. package/dist/cjs/components/checkbox/use-checkbox.cjs +3 -1
  79. package/dist/cjs/components/checkbox/use-checkbox.cjs.map +1 -1
  80. package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs +43 -40
  81. package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs.map +1 -1
  82. package/dist/cjs/components/checkbox-card/checkbox-card.cjs +1 -0
  83. package/dist/cjs/components/checkbox-card/checkbox-card.cjs.map +1 -1
  84. package/dist/cjs/components/circle-progress/circle-progress.cjs.map +1 -1
  85. package/dist/cjs/components/client-only/client-only.cjs +2 -1
  86. package/dist/cjs/components/client-only/client-only.cjs.map +1 -1
  87. package/dist/cjs/components/collapse/collapse.cjs +1 -0
  88. package/dist/cjs/components/collapse/collapse.cjs.map +1 -1
  89. package/dist/cjs/components/color-picker/color-picker.cjs +3 -1
  90. package/dist/cjs/components/color-picker/color-picker.cjs.map +1 -1
  91. package/dist/cjs/components/color-picker/use-color-picker.cjs +1 -0
  92. package/dist/cjs/components/color-picker/use-color-picker.cjs.map +1 -1
  93. package/dist/cjs/components/color-selector/color-selector.cjs +3 -1
  94. package/dist/cjs/components/color-selector/color-selector.cjs.map +1 -1
  95. package/dist/cjs/components/color-selector/use-color-selector.cjs +1 -0
  96. package/dist/cjs/components/color-selector/use-color-selector.cjs.map +1 -1
  97. package/dist/cjs/components/color-swatch/color-swatch.cjs.map +1 -1
  98. package/dist/cjs/components/data-list/data-list.cjs +9 -5
  99. package/dist/cjs/components/data-list/data-list.cjs.map +1 -1
  100. package/dist/cjs/components/date-picker/date-picker.cjs +3 -1
  101. package/dist/cjs/components/date-picker/date-picker.cjs.map +1 -1
  102. package/dist/cjs/components/date-picker/use-date-picker.cjs.map +1 -1
  103. package/dist/cjs/components/drawer/drawer.cjs +1 -0
  104. package/dist/cjs/components/drawer/drawer.cjs.map +1 -1
  105. package/dist/cjs/components/drawer/use-drawer.cjs +2 -3
  106. package/dist/cjs/components/drawer/use-drawer.cjs.map +1 -1
  107. package/dist/cjs/components/dropzone/dropzone.cjs +3 -1
  108. package/dist/cjs/components/dropzone/dropzone.cjs.map +1 -1
  109. package/dist/cjs/components/dropzone/use-dropzone.cjs +1 -0
  110. package/dist/cjs/components/dropzone/use-dropzone.cjs.map +1 -1
  111. package/dist/cjs/components/editable/editable.cjs.map +1 -1
  112. package/dist/cjs/components/editable/use-editable.cjs +1 -0
  113. package/dist/cjs/components/editable/use-editable.cjs.map +1 -1
  114. package/dist/cjs/components/fade/fade.cjs +1 -0
  115. package/dist/cjs/components/fade/fade.cjs.map +1 -1
  116. package/dist/cjs/components/fade-scale/fade-scale.cjs +1 -0
  117. package/dist/cjs/components/fade-scale/fade-scale.cjs.map +1 -1
  118. package/dist/cjs/components/field/field.cjs +1 -0
  119. package/dist/cjs/components/field/field.cjs.map +1 -1
  120. package/dist/cjs/components/field/use-field-props.cjs +1 -0
  121. package/dist/cjs/components/field/use-field-props.cjs.map +1 -1
  122. package/dist/cjs/components/fieldset/fieldset.cjs +1 -0
  123. package/dist/cjs/components/fieldset/fieldset.cjs.map +1 -1
  124. package/dist/cjs/components/file-button/use-file-button.cjs +1 -0
  125. package/dist/cjs/components/file-button/use-file-button.cjs.map +1 -1
  126. package/dist/cjs/components/file-input/file-input.cjs +3 -1
  127. package/dist/cjs/components/file-input/file-input.cjs.map +1 -1
  128. package/dist/cjs/components/file-input/use-file-input.cjs +1 -0
  129. package/dist/cjs/components/file-input/use-file-input.cjs.map +1 -1
  130. package/dist/cjs/components/flip/flip.cjs +1 -0
  131. package/dist/cjs/components/flip/flip.cjs.map +1 -1
  132. package/dist/cjs/components/float/float.cjs.map +1 -1
  133. package/dist/cjs/components/focus-lock/focus-lock.cjs.map +1 -1
  134. package/dist/cjs/components/for/for.cjs.map +1 -1
  135. package/dist/cjs/components/form/form.cjs +1 -0
  136. package/dist/cjs/components/form/form.cjs.map +1 -1
  137. package/dist/cjs/components/format/use-format-byte.cjs +1 -0
  138. package/dist/cjs/components/format/use-format-byte.cjs.map +1 -1
  139. package/dist/cjs/components/format/use-format-date-time.cjs +1 -0
  140. package/dist/cjs/components/format/use-format-date-time.cjs.map +1 -1
  141. package/dist/cjs/components/format/use-format-number.cjs +1 -0
  142. package/dist/cjs/components/format/use-format-number.cjs.map +1 -1
  143. package/dist/cjs/components/grid/grid-item.cjs.map +1 -1
  144. package/dist/cjs/components/group/group.cjs.map +1 -1
  145. package/dist/cjs/components/group/use-group.cjs +1 -0
  146. package/dist/cjs/components/group/use-group.cjs.map +1 -1
  147. package/dist/cjs/components/highlight/highlight.cjs +1 -0
  148. package/dist/cjs/components/highlight/highlight.cjs.map +1 -1
  149. package/dist/cjs/components/highlight/use-highlight.cjs +1 -0
  150. package/dist/cjs/components/highlight/use-highlight.cjs.map +1 -1
  151. package/dist/cjs/components/hue-slider/hue-slider.cjs +1 -0
  152. package/dist/cjs/components/hue-slider/hue-slider.cjs.map +1 -1
  153. package/dist/cjs/components/icon/icons/index.cjs +30 -6
  154. package/dist/cjs/components/icon/icons/index.cjs.map +1 -1
  155. package/dist/cjs/components/icon/icons/layout-freeform-icon.cjs +14 -0
  156. package/dist/cjs/components/icon/icons/layout-freeform-icon.cjs.map +1 -0
  157. package/dist/cjs/components/icon/icons/mic-audio-lines-icon.cjs +14 -0
  158. package/dist/cjs/components/icon/icons/mic-audio-lines-icon.cjs.map +1 -0
  159. package/dist/cjs/components/icon/icons/mic-signal-icon.cjs +14 -0
  160. package/dist/cjs/components/icon/icons/mic-signal-icon.cjs.map +1 -0
  161. package/dist/cjs/components/icon/icons/mosque-icon.cjs +14 -0
  162. package/dist/cjs/components/icon/icons/mosque-icon.cjs.map +1 -0
  163. package/dist/cjs/components/icon/icons/rotate-ccw-clock-icon.cjs +14 -0
  164. package/dist/cjs/components/icon/icons/rotate-ccw-clock-icon.cjs.map +1 -0
  165. package/dist/cjs/components/icon/icons/rotate-cw-fading-clock-icon.cjs +14 -0
  166. package/dist/cjs/components/icon/icons/rotate-cw-fading-clock-icon.cjs.map +1 -0
  167. package/dist/cjs/components/icon/icons/scan-square-icon.cjs +14 -0
  168. package/dist/cjs/components/icon/icons/scan-square-icon.cjs.map +1 -0
  169. package/dist/cjs/components/icon/icons/shield-keyhole-icon.cjs +14 -0
  170. package/dist/cjs/components/icon/icons/shield-keyhole-icon.cjs.map +1 -0
  171. package/dist/cjs/components/icon/icons/square-off-icon.cjs +14 -0
  172. package/dist/cjs/components/icon/icons/square-off-icon.cjs.map +1 -0
  173. package/dist/cjs/components/icon/icons/user-shield-icon.cjs +14 -0
  174. package/dist/cjs/components/icon/icons/user-shield-icon.cjs.map +1 -0
  175. package/dist/cjs/components/icon/index.cjs +20 -4
  176. package/dist/cjs/components/indicator/indicator.cjs +1 -0
  177. package/dist/cjs/components/indicator/indicator.cjs.map +1 -1
  178. package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs +3 -1
  179. package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs.map +1 -1
  180. package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs +1 -0
  181. package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs.map +1 -1
  182. package/dist/cjs/components/input/input-group.cjs +14 -12
  183. package/dist/cjs/components/input/input-group.cjs.map +1 -1
  184. package/dist/cjs/components/input/input.style.cjs.map +1 -1
  185. package/dist/cjs/components/input/use-input-border.cjs +1 -0
  186. package/dist/cjs/components/input/use-input-border.cjs.map +1 -1
  187. package/dist/cjs/components/link-box/link-box.cjs.map +1 -1
  188. package/dist/cjs/components/list/list.cjs +1 -0
  189. package/dist/cjs/components/list/list.cjs.map +1 -1
  190. package/dist/cjs/components/loading/audio.cjs.map +1 -1
  191. package/dist/cjs/components/loading/background.cjs +1 -0
  192. package/dist/cjs/components/loading/background.cjs.map +1 -1
  193. package/dist/cjs/components/loading/circles.cjs.map +1 -1
  194. package/dist/cjs/components/loading/dots.cjs.map +1 -1
  195. package/dist/cjs/components/loading/grid.cjs.map +1 -1
  196. package/dist/cjs/components/loading/loading-provider.cjs +1 -0
  197. package/dist/cjs/components/loading/loading-provider.cjs.map +1 -1
  198. package/dist/cjs/components/loading/oval.cjs.map +1 -1
  199. package/dist/cjs/components/loading/page.cjs +1 -0
  200. package/dist/cjs/components/loading/page.cjs.map +1 -1
  201. package/dist/cjs/components/loading/puff.cjs.map +1 -1
  202. package/dist/cjs/components/loading/rings.cjs.map +1 -1
  203. package/dist/cjs/components/loading/screen.cjs +1 -0
  204. package/dist/cjs/components/loading/screen.cjs.map +1 -1
  205. package/dist/cjs/components/loading/suspense.cjs +1 -0
  206. package/dist/cjs/components/loading/suspense.cjs.map +1 -1
  207. package/dist/cjs/components/loading/use-loading-component.cjs +1 -0
  208. package/dist/cjs/components/loading/use-loading-component.cjs.map +1 -1
  209. package/dist/cjs/components/menu/menu.cjs +13 -10
  210. package/dist/cjs/components/menu/menu.cjs.map +1 -1
  211. package/dist/cjs/components/menu/use-menu.cjs +1 -0
  212. package/dist/cjs/components/menu/use-menu.cjs.map +1 -1
  213. package/dist/cjs/components/modal/modal.cjs +1 -0
  214. package/dist/cjs/components/modal/modal.cjs.map +1 -1
  215. package/dist/cjs/components/modal/use-modal.cjs +1 -0
  216. package/dist/cjs/components/modal/use-modal.cjs.map +1 -1
  217. package/dist/cjs/components/motion/motion.cjs +1 -0
  218. package/dist/cjs/components/motion/motion.cjs.map +1 -1
  219. package/dist/cjs/components/motion/transition.cjs.map +1 -1
  220. package/dist/cjs/components/native-accordion/native-accordion.cjs +1 -0
  221. package/dist/cjs/components/native-accordion/native-accordion.cjs.map +1 -1
  222. package/dist/cjs/components/native-accordion/use-native-accordion.cjs +1 -0
  223. package/dist/cjs/components/native-accordion/use-native-accordion.cjs.map +1 -1
  224. package/dist/cjs/components/native-popover/native-popover.cjs +1 -0
  225. package/dist/cjs/components/native-popover/native-popover.cjs.map +1 -1
  226. package/dist/cjs/components/native-popover/use-native-popover.cjs +1 -0
  227. package/dist/cjs/components/native-popover/use-native-popover.cjs.map +1 -1
  228. package/dist/cjs/components/native-select/native-select.cjs +2 -1
  229. package/dist/cjs/components/native-select/native-select.cjs.map +1 -1
  230. package/dist/cjs/components/native-select/use-native-select.cjs +1 -0
  231. package/dist/cjs/components/native-select/use-native-select.cjs.map +1 -1
  232. package/dist/cjs/components/notice/notice-provider.cjs +1 -0
  233. package/dist/cjs/components/notice/notice-provider.cjs.map +1 -1
  234. package/dist/cjs/components/notice/notice.cjs +1 -0
  235. package/dist/cjs/components/notice/notice.cjs.map +1 -1
  236. package/dist/cjs/components/notice/use-notice.cjs +1 -0
  237. package/dist/cjs/components/notice/use-notice.cjs.map +1 -1
  238. package/dist/cjs/components/number-input/number-input.cjs +2 -1
  239. package/dist/cjs/components/number-input/number-input.cjs.map +1 -1
  240. package/dist/cjs/components/number-input/use-number-counter.cjs +1 -0
  241. package/dist/cjs/components/number-input/use-number-counter.cjs.map +1 -1
  242. package/dist/cjs/components/number-input/use-number-input.cjs +1 -0
  243. package/dist/cjs/components/number-input/use-number-input.cjs.map +1 -1
  244. package/dist/cjs/components/number-input/use-spinner.cjs +1 -0
  245. package/dist/cjs/components/number-input/use-spinner.cjs.map +1 -1
  246. package/dist/cjs/components/pagination/pagination.cjs +1 -0
  247. package/dist/cjs/components/pagination/pagination.cjs.map +1 -1
  248. package/dist/cjs/components/pagination/use-pagination.cjs +1 -0
  249. package/dist/cjs/components/pagination/use-pagination.cjs.map +1 -1
  250. package/dist/cjs/components/password-input/password-input.cjs +2 -1
  251. package/dist/cjs/components/password-input/password-input.cjs.map +1 -1
  252. package/dist/cjs/components/password-input/use-password-input.cjs +1 -0
  253. package/dist/cjs/components/password-input/use-password-input.cjs.map +1 -1
  254. package/dist/cjs/components/password-input/use-strength-meter.cjs +1 -0
  255. package/dist/cjs/components/password-input/use-strength-meter.cjs.map +1 -1
  256. package/dist/cjs/components/picture/picture.cjs +1 -0
  257. package/dist/cjs/components/picture/picture.cjs.map +1 -1
  258. package/dist/cjs/components/pin-input/pin-input.cjs +1 -0
  259. package/dist/cjs/components/pin-input/pin-input.cjs.map +1 -1
  260. package/dist/cjs/components/pin-input/use-pin-input.cjs +1 -0
  261. package/dist/cjs/components/pin-input/use-pin-input.cjs.map +1 -1
  262. package/dist/cjs/components/popover/popover.cjs +1 -0
  263. package/dist/cjs/components/popover/popover.cjs.map +1 -1
  264. package/dist/cjs/components/popover/use-popover.cjs +1 -0
  265. package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
  266. package/dist/cjs/components/portal/portal.cjs +1 -0
  267. package/dist/cjs/components/portal/portal.cjs.map +1 -1
  268. package/dist/cjs/components/progress/progress.cjs.map +1 -1
  269. package/dist/cjs/components/progress/use-progress.cjs +1 -0
  270. package/dist/cjs/components/progress/use-progress.cjs.map +1 -1
  271. package/dist/cjs/components/qr-code/qr-code.cjs +1 -0
  272. package/dist/cjs/components/qr-code/qr-code.cjs.map +1 -1
  273. package/dist/cjs/components/qr-code/use-qr-code.cjs +1 -0
  274. package/dist/cjs/components/qr-code/use-qr-code.cjs.map +1 -1
  275. package/dist/cjs/components/radio/radio-group.cjs +37 -34
  276. package/dist/cjs/components/radio/radio-group.cjs.map +1 -1
  277. package/dist/cjs/components/radio/radio.cjs +1 -0
  278. package/dist/cjs/components/radio/radio.cjs.map +1 -1
  279. package/dist/cjs/components/radio/use-radio-group.cjs +1 -0
  280. package/dist/cjs/components/radio/use-radio-group.cjs.map +1 -1
  281. package/dist/cjs/components/radio/use-radio.cjs +3 -1
  282. package/dist/cjs/components/radio/use-radio.cjs.map +1 -1
  283. package/dist/cjs/components/radio-card/radio-card-group.cjs +41 -38
  284. package/dist/cjs/components/radio-card/radio-card-group.cjs.map +1 -1
  285. package/dist/cjs/components/radio-card/radio-card.cjs +1 -0
  286. package/dist/cjs/components/radio-card/radio-card.cjs.map +1 -1
  287. package/dist/cjs/components/rating/rating.cjs +1 -0
  288. package/dist/cjs/components/rating/rating.cjs.map +1 -1
  289. package/dist/cjs/components/rating/use-rating.cjs +1 -0
  290. package/dist/cjs/components/rating/use-rating.cjs.map +1 -1
  291. package/dist/cjs/components/reorder/use-reorder.cjs +1 -0
  292. package/dist/cjs/components/reorder/use-reorder.cjs.map +1 -1
  293. package/dist/cjs/components/resizable/resizable.cjs +13 -10
  294. package/dist/cjs/components/resizable/resizable.cjs.map +1 -1
  295. package/dist/cjs/components/resizable/use-resizable.cjs +1 -0
  296. package/dist/cjs/components/resizable/use-resizable.cjs.map +1 -1
  297. package/dist/cjs/components/ripple/ripple.cjs.map +1 -1
  298. package/dist/cjs/components/ripple/use-ripple.cjs +1 -0
  299. package/dist/cjs/components/ripple/use-ripple.cjs.map +1 -1
  300. package/dist/cjs/components/rotate/rotate.cjs +1 -0
  301. package/dist/cjs/components/rotate/rotate.cjs.map +1 -1
  302. package/dist/cjs/components/saturation-slider/saturation-slider.cjs +1 -0
  303. package/dist/cjs/components/saturation-slider/saturation-slider.cjs.map +1 -1
  304. package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs +1 -0
  305. package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs.map +1 -1
  306. package/dist/cjs/components/scroll-area/use-scroll-area.cjs +1 -0
  307. package/dist/cjs/components/scroll-area/use-scroll-area.cjs.map +1 -1
  308. package/dist/cjs/components/segmented-control/segmented-control.cjs +3 -1
  309. package/dist/cjs/components/segmented-control/segmented-control.cjs.map +1 -1
  310. package/dist/cjs/components/segmented-control/use-segmented-control.cjs +1 -0
  311. package/dist/cjs/components/segmented-control/use-segmented-control.cjs.map +1 -1
  312. package/dist/cjs/components/select/select.cjs +14 -10
  313. package/dist/cjs/components/select/select.cjs.map +1 -1
  314. package/dist/cjs/components/select/use-select.cjs +1 -0
  315. package/dist/cjs/components/select/use-select.cjs.map +1 -1
  316. package/dist/cjs/components/show/show.cjs +1 -0
  317. package/dist/cjs/components/show/show.cjs.map +1 -1
  318. package/dist/cjs/components/sidebar/sidebar.cjs +6 -3
  319. package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
  320. package/dist/cjs/components/sidebar/use-sidebar.cjs +1 -0
  321. package/dist/cjs/components/sidebar/use-sidebar.cjs.map +1 -1
  322. package/dist/cjs/components/simple-grid/simple-grid.cjs +1 -0
  323. package/dist/cjs/components/simple-grid/simple-grid.cjs.map +1 -1
  324. package/dist/cjs/components/skeleton/skeleton.cjs.map +1 -1
  325. package/dist/cjs/components/slide/slide.cjs +1 -0
  326. package/dist/cjs/components/slide/slide.cjs.map +1 -1
  327. package/dist/cjs/components/slide-fade/slide-fade.cjs +1 -0
  328. package/dist/cjs/components/slide-fade/slide-fade.cjs.map +1 -1
  329. package/dist/cjs/components/slider/slider.cjs +3 -1
  330. package/dist/cjs/components/slider/slider.cjs.map +1 -1
  331. package/dist/cjs/components/slider/use-slider.cjs +3 -1
  332. package/dist/cjs/components/slider/use-slider.cjs.map +1 -1
  333. package/dist/cjs/components/slot/slot.cjs +1 -0
  334. package/dist/cjs/components/slot/slot.cjs.map +1 -1
  335. package/dist/cjs/components/snacks/snacks.cjs +1 -0
  336. package/dist/cjs/components/snacks/snacks.cjs.map +1 -1
  337. package/dist/cjs/components/snacks/use-snacks.cjs +1 -0
  338. package/dist/cjs/components/snacks/use-snacks.cjs.map +1 -1
  339. package/dist/cjs/components/stack/stack.cjs +1 -0
  340. package/dist/cjs/components/stack/stack.cjs.map +1 -1
  341. package/dist/cjs/components/stack/z-stack.cjs +5 -2
  342. package/dist/cjs/components/stack/z-stack.cjs.map +1 -1
  343. package/dist/cjs/components/steps/steps.cjs +51 -47
  344. package/dist/cjs/components/steps/steps.cjs.map +1 -1
  345. package/dist/cjs/components/steps/use-steps.cjs +1 -0
  346. package/dist/cjs/components/steps/use-steps.cjs.map +1 -1
  347. package/dist/cjs/components/switch/switch.cjs.map +1 -1
  348. package/dist/cjs/components/switch/use-switch.cjs +1 -0
  349. package/dist/cjs/components/switch/use-switch.cjs.map +1 -1
  350. package/dist/cjs/components/table/table.cjs +51 -49
  351. package/dist/cjs/components/table/table.cjs.map +1 -1
  352. package/dist/cjs/components/tabs/tabs.cjs +23 -20
  353. package/dist/cjs/components/tabs/tabs.cjs.map +1 -1
  354. package/dist/cjs/components/tabs/use-tabs.cjs +1 -0
  355. package/dist/cjs/components/tabs/use-tabs.cjs.map +1 -1
  356. package/dist/cjs/components/tag/tag.cjs +1 -0
  357. package/dist/cjs/components/tag/tag.cjs.map +1 -1
  358. package/dist/cjs/components/textarea/use-autosize.cjs +1 -0
  359. package/dist/cjs/components/textarea/use-autosize.cjs.map +1 -1
  360. package/dist/cjs/components/textarea/use-textarea.cjs +1 -0
  361. package/dist/cjs/components/textarea/use-textarea.cjs.map +1 -1
  362. package/dist/cjs/components/timeline/timeline.cjs +1 -0
  363. package/dist/cjs/components/timeline/timeline.cjs.map +1 -1
  364. package/dist/cjs/components/tip/tip.cjs.map +1 -1
  365. package/dist/cjs/components/toggle/toggle-group.cjs +27 -24
  366. package/dist/cjs/components/toggle/toggle-group.cjs.map +1 -1
  367. package/dist/cjs/components/toggle/use-toggle-group.cjs +1 -0
  368. package/dist/cjs/components/toggle/use-toggle-group.cjs.map +1 -1
  369. package/dist/cjs/components/toggle/use-toggle.cjs +1 -0
  370. package/dist/cjs/components/toggle/use-toggle.cjs.map +1 -1
  371. package/dist/cjs/components/tooltip/tooltip.cjs.map +1 -1
  372. package/dist/cjs/components/tooltip/use-tooltip.cjs +1 -0
  373. package/dist/cjs/components/tooltip/use-tooltip.cjs.map +1 -1
  374. package/dist/cjs/components/tree/tree.cjs +1 -0
  375. package/dist/cjs/components/tree/tree.cjs.map +1 -1
  376. package/dist/cjs/components/tree/use-tree.cjs +1 -0
  377. package/dist/cjs/components/tree/use-tree.cjs.map +1 -1
  378. package/dist/cjs/core/components/create-component.cjs +5 -2
  379. package/dist/cjs/core/components/create-component.cjs.map +1 -1
  380. package/dist/cjs/core/components/props.cjs.map +1 -1
  381. package/dist/cjs/core/components/use-component-style.cjs +11 -6
  382. package/dist/cjs/core/components/use-component-style.cjs.map +1 -1
  383. package/dist/cjs/core/components/utils.cjs.map +1 -1
  384. package/dist/cjs/core/css/animation.cjs.map +1 -1
  385. package/dist/cjs/core/css/at-rule.cjs.map +1 -1
  386. package/dist/cjs/core/css/calc.cjs.map +1 -1
  387. package/dist/cjs/core/css/color-mix.cjs.map +1 -1
  388. package/dist/cjs/core/css/color-scheme.cjs.map +1 -1
  389. package/dist/cjs/core/css/config.cjs.map +1 -1
  390. package/dist/cjs/core/css/css.cjs +5 -3
  391. package/dist/cjs/core/css/css.cjs.map +1 -1
  392. package/dist/cjs/core/css/gradient.cjs.map +1 -1
  393. package/dist/cjs/core/css/merge-css.cjs.map +1 -1
  394. package/dist/cjs/core/css/style.cjs.map +1 -1
  395. package/dist/cjs/core/css/use-css.cjs +1 -0
  396. package/dist/cjs/core/css/use-css.cjs.map +1 -1
  397. package/dist/cjs/core/css/use-inject-vars.cjs +1 -0
  398. package/dist/cjs/core/css/use-inject-vars.cjs.map +1 -1
  399. package/dist/cjs/core/css/utils.cjs.map +1 -1
  400. package/dist/cjs/core/system/breakpoint.cjs.map +1 -1
  401. package/dist/cjs/core/system/color-mode-provider.cjs +1 -0
  402. package/dist/cjs/core/system/color-mode-provider.cjs.map +1 -1
  403. package/dist/cjs/core/system/create-system.cjs.map +1 -1
  404. package/dist/cjs/core/system/environment-provider.cjs +1 -0
  405. package/dist/cjs/core/system/environment-provider.cjs.map +1 -1
  406. package/dist/cjs/core/system/layer.cjs.map +1 -1
  407. package/dist/cjs/core/system/storage-script.cjs.map +1 -1
  408. package/dist/cjs/core/system/styled.cjs.map +1 -1
  409. package/dist/cjs/core/system/system-provider.cjs +1 -0
  410. package/dist/cjs/core/system/system-provider.cjs.map +1 -1
  411. package/dist/cjs/core/system/theme-provider.cjs +5 -3
  412. package/dist/cjs/core/system/theme-provider.cjs.map +1 -1
  413. package/dist/cjs/core/system/use-system-color-mode.cjs +1 -0
  414. package/dist/cjs/core/system/use-system-color-mode.cjs.map +1 -1
  415. package/dist/cjs/core/system/var.cjs +2 -1
  416. package/dist/cjs/core/system/var.cjs.map +1 -1
  417. package/dist/cjs/hooks/use-animation/index.cjs +4 -2
  418. package/dist/cjs/hooks/use-animation/index.cjs.map +1 -1
  419. package/dist/cjs/hooks/use-async/index.cjs +1 -0
  420. package/dist/cjs/hooks/use-async/index.cjs.map +1 -1
  421. package/dist/cjs/hooks/use-async-callback/index.cjs +1 -0
  422. package/dist/cjs/hooks/use-async-callback/index.cjs.map +1 -1
  423. package/dist/cjs/hooks/use-boolean/index.cjs +1 -0
  424. package/dist/cjs/hooks/use-boolean/index.cjs.map +1 -1
  425. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-effect.cjs +1 -0
  426. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-effect.cjs.map +1 -1
  427. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-state.cjs +3 -1
  428. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-state.cjs.map +1 -1
  429. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-value.cjs +1 -0
  430. package/dist/cjs/hooks/use-breakpoint/use-breakpoint-value.cjs.map +1 -1
  431. package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs +1 -0
  432. package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs.map +1 -1
  433. package/dist/cjs/hooks/use-clickable/index.cjs +1 -0
  434. package/dist/cjs/hooks/use-clickable/index.cjs.map +1 -1
  435. package/dist/cjs/hooks/use-clipboard/index.cjs.map +1 -1
  436. package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
  437. package/dist/cjs/hooks/use-controllable-state/index.cjs +1 -0
  438. package/dist/cjs/hooks/use-controllable-state/index.cjs.map +1 -1
  439. package/dist/cjs/hooks/use-counter/index.cjs +1 -0
  440. package/dist/cjs/hooks/use-counter/index.cjs.map +1 -1
  441. package/dist/cjs/hooks/use-descendants/index.cjs +1 -0
  442. package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
  443. package/dist/cjs/hooks/use-disclosure/use-disclosure.cjs +1 -0
  444. package/dist/cjs/hooks/use-disclosure/use-disclosure.cjs.map +1 -1
  445. package/dist/cjs/hooks/use-disclosure/use-promise-disclosure.cjs +1 -0
  446. package/dist/cjs/hooks/use-disclosure/use-promise-disclosure.cjs.map +1 -1
  447. package/dist/cjs/hooks/use-event-listener/index.cjs +1 -0
  448. package/dist/cjs/hooks/use-event-listener/index.cjs.map +1 -1
  449. package/dist/cjs/hooks/use-eye-dropper/index.cjs +1 -0
  450. package/dist/cjs/hooks/use-eye-dropper/index.cjs.map +1 -1
  451. package/dist/cjs/hooks/use-field-sizing/index.cjs +1 -0
  452. package/dist/cjs/hooks/use-field-sizing/index.cjs.map +1 -1
  453. package/dist/cjs/hooks/use-focus/index.cjs +3 -1
  454. package/dist/cjs/hooks/use-focus/index.cjs.map +1 -1
  455. package/dist/cjs/hooks/use-hover/index.cjs +1 -0
  456. package/dist/cjs/hooks/use-hover/index.cjs.map +1 -1
  457. package/dist/cjs/hooks/use-idle/index.cjs +1 -0
  458. package/dist/cjs/hooks/use-idle/index.cjs.map +1 -1
  459. package/dist/cjs/hooks/use-interval/index.cjs +1 -0
  460. package/dist/cjs/hooks/use-interval/index.cjs.map +1 -1
  461. package/dist/cjs/hooks/use-lazy-mount/index.cjs +1 -0
  462. package/dist/cjs/hooks/use-lazy-mount/index.cjs.map +1 -1
  463. package/dist/cjs/hooks/use-local-storage/index.cjs +1 -0
  464. package/dist/cjs/hooks/use-local-storage/index.cjs.map +1 -1
  465. package/dist/cjs/hooks/use-media-query/index.cjs +1 -0
  466. package/dist/cjs/hooks/use-media-query/index.cjs.map +1 -1
  467. package/dist/cjs/hooks/use-mounted/index.cjs +1 -0
  468. package/dist/cjs/hooks/use-mounted/index.cjs.map +1 -1
  469. package/dist/cjs/hooks/use-online/index.cjs +1 -0
  470. package/dist/cjs/hooks/use-online/index.cjs.map +1 -1
  471. package/dist/cjs/hooks/use-os/index.cjs.map +1 -1
  472. package/dist/cjs/hooks/use-outside-click/index.cjs +1 -0
  473. package/dist/cjs/hooks/use-outside-click/index.cjs.map +1 -1
  474. package/dist/cjs/hooks/use-pan-event/index.cjs +1 -0
  475. package/dist/cjs/hooks/use-pan-event/index.cjs.map +1 -1
  476. package/dist/cjs/hooks/use-popper/index.cjs +1 -0
  477. package/dist/cjs/hooks/use-popper/index.cjs.map +1 -1
  478. package/dist/cjs/hooks/use-previous/index.cjs +1 -0
  479. package/dist/cjs/hooks/use-previous/index.cjs.map +1 -1
  480. package/dist/cjs/hooks/use-processing/index.cjs +1 -0
  481. package/dist/cjs/hooks/use-processing/index.cjs.map +1 -1
  482. package/dist/cjs/hooks/use-resize-observer/index.cjs +1 -0
  483. package/dist/cjs/hooks/use-resize-observer/index.cjs.map +1 -1
  484. package/dist/cjs/hooks/use-timeout/index.cjs +1 -0
  485. package/dist/cjs/hooks/use-timeout/index.cjs.map +1 -1
  486. package/dist/cjs/hooks/use-value/index.cjs +1 -0
  487. package/dist/cjs/hooks/use-value/index.cjs.map +1 -1
  488. package/dist/cjs/hooks/use-window-event/index.cjs +1 -0
  489. package/dist/cjs/hooks/use-window-event/index.cjs.map +1 -1
  490. package/dist/cjs/index.cjs +30 -6
  491. package/dist/cjs/providers/i18n-provider/i18n-provider.cjs.map +1 -1
  492. package/dist/cjs/providers/ui-provider/ui-provider.cjs.map +1 -1
  493. package/dist/cjs/utils/children.cjs.map +1 -1
  494. package/dist/cjs/utils/context.cjs.map +1 -1
  495. package/dist/cjs/utils/dom.cjs.map +1 -1
  496. package/dist/cjs/utils/ref.cjs.map +1 -1
  497. package/dist/cjs/utils/ssr.cjs +1 -0
  498. package/dist/cjs/utils/ssr.cjs.map +1 -1
  499. package/dist/cjs/utils/store.cjs +1 -0
  500. package/dist/cjs/utils/store.cjs.map +1 -1
  501. package/dist/esm/components/accordion/accordion.js +3 -2
  502. package/dist/esm/components/accordion/accordion.js.map +1 -1
  503. package/dist/esm/components/accordion/use-accordion.js.map +1 -1
  504. package/dist/esm/components/action-bar/action-bar.js.map +1 -1
  505. package/dist/esm/components/action-bar/use-action-bar.js.map +1 -1
  506. package/dist/esm/components/airy/airy.js.map +1 -1
  507. package/dist/esm/components/alert/alert.js +4 -2
  508. package/dist/esm/components/alert/alert.js.map +1 -1
  509. package/dist/esm/components/alpha-slider/alpha-slider.js.map +1 -1
  510. package/dist/esm/components/aspect-ratio/aspect-ratio.js.map +1 -1
  511. package/dist/esm/components/autocomplete/autocomplete.js +13 -10
  512. package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
  513. package/dist/esm/components/autocomplete/use-autocomplete.js.map +1 -1
  514. package/dist/esm/components/avatar/avatar-group.js +12 -11
  515. package/dist/esm/components/avatar/avatar-group.js.map +1 -1
  516. package/dist/esm/components/avatar/use-avatar-group.js.map +1 -1
  517. package/dist/esm/components/avatar/use-avatar.js.map +1 -1
  518. package/dist/esm/components/breadcrumb/use-breadcrumb.js.map +1 -1
  519. package/dist/esm/components/button/button.js +8 -5
  520. package/dist/esm/components/button/button.js.map +1 -1
  521. package/dist/esm/components/calendar/calendar.js.map +1 -1
  522. package/dist/esm/components/calendar/use-calendar.js.map +1 -1
  523. package/dist/esm/components/carousel/carousel.js +26 -25
  524. package/dist/esm/components/carousel/carousel.js.map +1 -1
  525. package/dist/esm/components/carousel/use-carousel.js.map +1 -1
  526. package/dist/esm/components/chart/area-chart.js +5 -4
  527. package/dist/esm/components/chart/area-chart.js.map +1 -1
  528. package/dist/esm/components/chart/bar-chart.js +5 -4
  529. package/dist/esm/components/chart/bar-chart.js.map +1 -1
  530. package/dist/esm/components/chart/cartesian-chart.js +145 -139
  531. package/dist/esm/components/chart/cartesian-chart.js.map +1 -1
  532. package/dist/esm/components/chart/chart.js +2 -1
  533. package/dist/esm/components/chart/chart.js.map +1 -1
  534. package/dist/esm/components/chart/composed-chart.js +15 -14
  535. package/dist/esm/components/chart/composed-chart.js.map +1 -1
  536. package/dist/esm/components/chart/donut-chart.js +7 -5
  537. package/dist/esm/components/chart/donut-chart.js.map +1 -1
  538. package/dist/esm/components/chart/line-chart.js +5 -4
  539. package/dist/esm/components/chart/line-chart.js.map +1 -1
  540. package/dist/esm/components/chart/pie-chart.js +7 -5
  541. package/dist/esm/components/chart/pie-chart.js.map +1 -1
  542. package/dist/esm/components/chart/polar-chart.js +118 -111
  543. package/dist/esm/components/chart/polar-chart.js.map +1 -1
  544. package/dist/esm/components/chart/radar-chart.js +5 -4
  545. package/dist/esm/components/chart/radar-chart.js.map +1 -1
  546. package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -1
  547. package/dist/esm/components/chart/use-chart.js.map +1 -1
  548. package/dist/esm/components/chart/use-polar-chart.js.map +1 -1
  549. package/dist/esm/components/checkbox/checkbox-group.js +38 -36
  550. package/dist/esm/components/checkbox/checkbox-group.js.map +1 -1
  551. package/dist/esm/components/checkbox/use-checkbox-group.js.map +1 -1
  552. package/dist/esm/components/checkbox/use-checkbox.js +2 -1
  553. package/dist/esm/components/checkbox/use-checkbox.js.map +1 -1
  554. package/dist/esm/components/checkbox-card/checkbox-card-group.js +42 -40
  555. package/dist/esm/components/checkbox-card/checkbox-card-group.js.map +1 -1
  556. package/dist/esm/components/circle-progress/circle-progress.js.map +1 -1
  557. package/dist/esm/components/client-only/client-only.js +2 -1
  558. package/dist/esm/components/client-only/client-only.js.map +1 -1
  559. package/dist/esm/components/collapse/collapse.js.map +1 -1
  560. package/dist/esm/components/color-picker/color-picker.js +2 -1
  561. package/dist/esm/components/color-picker/color-picker.js.map +1 -1
  562. package/dist/esm/components/color-picker/use-color-picker.js.map +1 -1
  563. package/dist/esm/components/color-selector/color-selector.js +2 -1
  564. package/dist/esm/components/color-selector/color-selector.js.map +1 -1
  565. package/dist/esm/components/color-selector/use-color-selector.js.map +1 -1
  566. package/dist/esm/components/color-swatch/color-swatch.js.map +1 -1
  567. package/dist/esm/components/data-list/data-list.js +8 -5
  568. package/dist/esm/components/data-list/data-list.js.map +1 -1
  569. package/dist/esm/components/date-picker/date-picker.js +2 -1
  570. package/dist/esm/components/date-picker/date-picker.js.map +1 -1
  571. package/dist/esm/components/date-picker/use-date-picker.js.map +1 -1
  572. package/dist/esm/components/drawer/drawer.js.map +1 -1
  573. package/dist/esm/components/drawer/use-drawer.js +1 -3
  574. package/dist/esm/components/drawer/use-drawer.js.map +1 -1
  575. package/dist/esm/components/dropzone/dropzone.js +2 -1
  576. package/dist/esm/components/dropzone/dropzone.js.map +1 -1
  577. package/dist/esm/components/dropzone/use-dropzone.js.map +1 -1
  578. package/dist/esm/components/editable/editable.js.map +1 -1
  579. package/dist/esm/components/editable/use-editable.js.map +1 -1
  580. package/dist/esm/components/field/field.js.map +1 -1
  581. package/dist/esm/components/field/use-field-props.js.map +1 -1
  582. package/dist/esm/components/fieldset/fieldset.js.map +1 -1
  583. package/dist/esm/components/file-input/file-input.js +2 -1
  584. package/dist/esm/components/file-input/file-input.js.map +1 -1
  585. package/dist/esm/components/file-input/use-file-input.js.map +1 -1
  586. package/dist/esm/components/flip/flip.js.map +1 -1
  587. package/dist/esm/components/float/float.js.map +1 -1
  588. package/dist/esm/components/focus-lock/focus-lock.js.map +1 -1
  589. package/dist/esm/components/for/for.js.map +1 -1
  590. package/dist/esm/components/form/form.js.map +1 -1
  591. package/dist/esm/components/grid/grid-item.js.map +1 -1
  592. package/dist/esm/components/group/group.js.map +1 -1
  593. package/dist/esm/components/group/use-group.js.map +1 -1
  594. package/dist/esm/components/highlight/use-highlight.js.map +1 -1
  595. package/dist/esm/components/icon/icons/index.js +21 -5
  596. package/dist/esm/components/icon/icons/index.js.map +1 -1
  597. package/dist/esm/components/icon/icons/layout-freeform-icon.js +14 -0
  598. package/dist/esm/components/icon/icons/layout-freeform-icon.js.map +1 -0
  599. package/dist/esm/components/icon/icons/mic-audio-lines-icon.js +14 -0
  600. package/dist/esm/components/icon/icons/mic-audio-lines-icon.js.map +1 -0
  601. package/dist/esm/components/icon/icons/mic-signal-icon.js +14 -0
  602. package/dist/esm/components/icon/icons/mic-signal-icon.js.map +1 -0
  603. package/dist/esm/components/icon/icons/mosque-icon.js +14 -0
  604. package/dist/esm/components/icon/icons/mosque-icon.js.map +1 -0
  605. package/dist/esm/components/icon/icons/rotate-ccw-clock-icon.js +14 -0
  606. package/dist/esm/components/icon/icons/rotate-ccw-clock-icon.js.map +1 -0
  607. package/dist/esm/components/icon/icons/rotate-cw-fading-clock-icon.js +14 -0
  608. package/dist/esm/components/icon/icons/rotate-cw-fading-clock-icon.js.map +1 -0
  609. package/dist/esm/components/icon/icons/scan-square-icon.js +14 -0
  610. package/dist/esm/components/icon/icons/scan-square-icon.js.map +1 -0
  611. package/dist/esm/components/icon/icons/shield-keyhole-icon.js +14 -0
  612. package/dist/esm/components/icon/icons/shield-keyhole-icon.js.map +1 -0
  613. package/dist/esm/components/icon/icons/square-off-icon.js +14 -0
  614. package/dist/esm/components/icon/icons/square-off-icon.js.map +1 -0
  615. package/dist/esm/components/icon/icons/user-shield-icon.js +14 -0
  616. package/dist/esm/components/icon/icons/user-shield-icon.js.map +1 -0
  617. package/dist/esm/components/icon/index.js +11 -3
  618. package/dist/esm/components/indicator/indicator.js.map +1 -1
  619. package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js +2 -1
  620. package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js.map +1 -1
  621. package/dist/esm/components/input/input-group.js +13 -12
  622. package/dist/esm/components/input/input-group.js.map +1 -1
  623. package/dist/esm/components/input/input.style.js.map +1 -1
  624. package/dist/esm/components/link-box/link-box.js.map +1 -1
  625. package/dist/esm/components/loading/audio.js.map +1 -1
  626. package/dist/esm/components/loading/circles.js.map +1 -1
  627. package/dist/esm/components/loading/dots.js.map +1 -1
  628. package/dist/esm/components/loading/grid.js.map +1 -1
  629. package/dist/esm/components/loading/loading-provider.js.map +1 -1
  630. package/dist/esm/components/loading/oval.js.map +1 -1
  631. package/dist/esm/components/loading/puff.js.map +1 -1
  632. package/dist/esm/components/loading/rings.js.map +1 -1
  633. package/dist/esm/components/loading/use-loading-component.js.map +1 -1
  634. package/dist/esm/components/menu/menu.js +12 -10
  635. package/dist/esm/components/menu/menu.js.map +1 -1
  636. package/dist/esm/components/menu/use-menu.js.map +1 -1
  637. package/dist/esm/components/modal/modal.js.map +1 -1
  638. package/dist/esm/components/modal/use-modal.js.map +1 -1
  639. package/dist/esm/components/motion/motion.js.map +1 -1
  640. package/dist/esm/components/motion/transition.js.map +1 -1
  641. package/dist/esm/components/native-accordion/use-native-accordion.js.map +1 -1
  642. package/dist/esm/components/native-popover/native-popover.js.map +1 -1
  643. package/dist/esm/components/native-popover/use-native-popover.js.map +1 -1
  644. package/dist/esm/components/native-select/native-select.js +2 -1
  645. package/dist/esm/components/native-select/native-select.js.map +1 -1
  646. package/dist/esm/components/native-select/use-native-select.js.map +1 -1
  647. package/dist/esm/components/notice/notice.js.map +1 -1
  648. package/dist/esm/components/notice/use-notice.js.map +1 -1
  649. package/dist/esm/components/number-input/number-input.js +2 -1
  650. package/dist/esm/components/number-input/number-input.js.map +1 -1
  651. package/dist/esm/components/number-input/use-number-counter.js.map +1 -1
  652. package/dist/esm/components/number-input/use-number-input.js.map +1 -1
  653. package/dist/esm/components/pagination/pagination.js.map +1 -1
  654. package/dist/esm/components/pagination/use-pagination.js.map +1 -1
  655. package/dist/esm/components/password-input/password-input.js +2 -1
  656. package/dist/esm/components/password-input/password-input.js.map +1 -1
  657. package/dist/esm/components/password-input/use-password-input.js.map +1 -1
  658. package/dist/esm/components/password-input/use-strength-meter.js.map +1 -1
  659. package/dist/esm/components/picture/picture.js.map +1 -1
  660. package/dist/esm/components/pin-input/use-pin-input.js.map +1 -1
  661. package/dist/esm/components/popover/popover.js.map +1 -1
  662. package/dist/esm/components/popover/use-popover.js.map +1 -1
  663. package/dist/esm/components/portal/portal.js.map +1 -1
  664. package/dist/esm/components/progress/progress.js.map +1 -1
  665. package/dist/esm/components/progress/use-progress.js.map +1 -1
  666. package/dist/esm/components/radio/radio-group.js +36 -34
  667. package/dist/esm/components/radio/radio-group.js.map +1 -1
  668. package/dist/esm/components/radio/use-radio-group.js.map +1 -1
  669. package/dist/esm/components/radio/use-radio.js +2 -1
  670. package/dist/esm/components/radio/use-radio.js.map +1 -1
  671. package/dist/esm/components/radio-card/radio-card-group.js +40 -38
  672. package/dist/esm/components/radio-card/radio-card-group.js.map +1 -1
  673. package/dist/esm/components/rating/rating.js.map +1 -1
  674. package/dist/esm/components/rating/use-rating.js.map +1 -1
  675. package/dist/esm/components/reorder/use-reorder.js.map +1 -1
  676. package/dist/esm/components/resizable/resizable.js +12 -10
  677. package/dist/esm/components/resizable/resizable.js.map +1 -1
  678. package/dist/esm/components/resizable/use-resizable.js.map +1 -1
  679. package/dist/esm/components/ripple/ripple.js.map +1 -1
  680. package/dist/esm/components/ripple/use-ripple.js.map +1 -1
  681. package/dist/esm/components/rotate/rotate.js.map +1 -1
  682. package/dist/esm/components/saturation-slider/use-saturation-slider.js.map +1 -1
  683. package/dist/esm/components/scroll-area/use-scroll-area.js.map +1 -1
  684. package/dist/esm/components/segmented-control/segmented-control.js +2 -1
  685. package/dist/esm/components/segmented-control/segmented-control.js.map +1 -1
  686. package/dist/esm/components/segmented-control/use-segmented-control.js.map +1 -1
  687. package/dist/esm/components/select/select.js +13 -10
  688. package/dist/esm/components/select/select.js.map +1 -1
  689. package/dist/esm/components/select/use-select.js.map +1 -1
  690. package/dist/esm/components/show/show.js.map +1 -1
  691. package/dist/esm/components/sidebar/sidebar.js +5 -3
  692. package/dist/esm/components/sidebar/sidebar.js.map +1 -1
  693. package/dist/esm/components/sidebar/use-sidebar.js.map +1 -1
  694. package/dist/esm/components/simple-grid/simple-grid.js.map +1 -1
  695. package/dist/esm/components/skeleton/skeleton.js.map +1 -1
  696. package/dist/esm/components/slider/slider.js +2 -1
  697. package/dist/esm/components/slider/slider.js.map +1 -1
  698. package/dist/esm/components/slider/use-slider.js +2 -1
  699. package/dist/esm/components/slider/use-slider.js.map +1 -1
  700. package/dist/esm/components/snacks/snacks.js.map +1 -1
  701. package/dist/esm/components/stack/stack.js.map +1 -1
  702. package/dist/esm/components/stack/z-stack.js +4 -2
  703. package/dist/esm/components/stack/z-stack.js.map +1 -1
  704. package/dist/esm/components/steps/steps.js +50 -47
  705. package/dist/esm/components/steps/steps.js.map +1 -1
  706. package/dist/esm/components/steps/use-steps.js.map +1 -1
  707. package/dist/esm/components/switch/switch.js.map +1 -1
  708. package/dist/esm/components/switch/use-switch.js.map +1 -1
  709. package/dist/esm/components/table/table.js +50 -49
  710. package/dist/esm/components/table/table.js.map +1 -1
  711. package/dist/esm/components/tabs/tabs.js +22 -20
  712. package/dist/esm/components/tabs/tabs.js.map +1 -1
  713. package/dist/esm/components/tabs/use-tabs.js.map +1 -1
  714. package/dist/esm/components/tag/tag.js.map +1 -1
  715. package/dist/esm/components/textarea/use-autosize.js.map +1 -1
  716. package/dist/esm/components/timeline/timeline.js.map +1 -1
  717. package/dist/esm/components/tip/tip.js.map +1 -1
  718. package/dist/esm/components/toggle/toggle-group.js +26 -24
  719. package/dist/esm/components/toggle/toggle-group.js.map +1 -1
  720. package/dist/esm/components/toggle/use-toggle-group.js.map +1 -1
  721. package/dist/esm/components/toggle/use-toggle.js.map +1 -1
  722. package/dist/esm/components/tooltip/tooltip.js.map +1 -1
  723. package/dist/esm/components/tooltip/use-tooltip.js.map +1 -1
  724. package/dist/esm/components/tree/tree.js.map +1 -1
  725. package/dist/esm/components/tree/use-tree.js.map +1 -1
  726. package/dist/esm/core/components/create-component.js +4 -2
  727. package/dist/esm/core/components/create-component.js.map +1 -1
  728. package/dist/esm/core/components/props.js.map +1 -1
  729. package/dist/esm/core/components/use-component-style.js +10 -6
  730. package/dist/esm/core/components/use-component-style.js.map +1 -1
  731. package/dist/esm/core/components/utils.js.map +1 -1
  732. package/dist/esm/core/css/animation.js.map +1 -1
  733. package/dist/esm/core/css/at-rule.js.map +1 -1
  734. package/dist/esm/core/css/calc.js.map +1 -1
  735. package/dist/esm/core/css/color-mix.js.map +1 -1
  736. package/dist/esm/core/css/color-scheme.js.map +1 -1
  737. package/dist/esm/core/css/config.js.map +1 -1
  738. package/dist/esm/core/css/css.js +5 -3
  739. package/dist/esm/core/css/css.js.map +1 -1
  740. package/dist/esm/core/css/gradient.js.map +1 -1
  741. package/dist/esm/core/css/merge-css.js.map +1 -1
  742. package/dist/esm/core/css/style.js.map +1 -1
  743. package/dist/esm/core/css/use-css.js.map +1 -1
  744. package/dist/esm/core/css/utils.js.map +1 -1
  745. package/dist/esm/core/system/breakpoint.js.map +1 -1
  746. package/dist/esm/core/system/color-mode-provider.js.map +1 -1
  747. package/dist/esm/core/system/create-system.js.map +1 -1
  748. package/dist/esm/core/system/environment-provider.js.map +1 -1
  749. package/dist/esm/core/system/layer.js.map +1 -1
  750. package/dist/esm/core/system/storage-script.js.map +1 -1
  751. package/dist/esm/core/system/styled.js.map +1 -1
  752. package/dist/esm/core/system/theme-provider.js +4 -3
  753. package/dist/esm/core/system/theme-provider.js.map +1 -1
  754. package/dist/esm/core/system/use-system-color-mode.js.map +1 -1
  755. package/dist/esm/core/system/var.js +2 -1
  756. package/dist/esm/core/system/var.js.map +1 -1
  757. package/dist/esm/hooks/use-animation/index.js +3 -2
  758. package/dist/esm/hooks/use-animation/index.js.map +1 -1
  759. package/dist/esm/hooks/use-breakpoint/use-breakpoint-state.js +2 -1
  760. package/dist/esm/hooks/use-breakpoint/use-breakpoint-state.js.map +1 -1
  761. package/dist/esm/hooks/use-breakpoint/use-breakpoint.js.map +1 -1
  762. package/dist/esm/hooks/use-clickable/index.js.map +1 -1
  763. package/dist/esm/hooks/use-clipboard/index.js.map +1 -1
  764. package/dist/esm/hooks/use-combobox/index.js.map +1 -1
  765. package/dist/esm/hooks/use-controllable-state/index.js.map +1 -1
  766. package/dist/esm/hooks/use-counter/index.js.map +1 -1
  767. package/dist/esm/hooks/use-descendants/index.js.map +1 -1
  768. package/dist/esm/hooks/use-event-listener/index.js.map +1 -1
  769. package/dist/esm/hooks/use-focus/index.js +2 -1
  770. package/dist/esm/hooks/use-focus/index.js.map +1 -1
  771. package/dist/esm/hooks/use-local-storage/index.js.map +1 -1
  772. package/dist/esm/hooks/use-os/index.js.map +1 -1
  773. package/dist/esm/hooks/use-outside-click/index.js.map +1 -1
  774. package/dist/esm/hooks/use-pan-event/index.js.map +1 -1
  775. package/dist/esm/hooks/use-resize-observer/index.js.map +1 -1
  776. package/dist/esm/hooks/use-value/index.js.map +1 -1
  777. package/dist/esm/index.js +21 -5
  778. package/dist/esm/providers/i18n-provider/i18n-provider.js.map +1 -1
  779. package/dist/esm/providers/ui-provider/ui-provider.js.map +1 -1
  780. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  781. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  782. package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
  783. package/dist/types/components/drawer/drawer.style.d.ts +2 -2
  784. package/dist/types/components/file-input/file-input.style.d.ts +1 -1
  785. package/dist/types/components/icon/icons/index.d.ts +12 -4
  786. package/dist/types/components/icon/icons/index.types.d.ts +1 -1
  787. package/dist/types/components/icon/icons/layout-freeform-icon.d.ts +13 -0
  788. package/dist/types/components/icon/icons/mic-audio-lines-icon.d.ts +13 -0
  789. package/dist/types/components/icon/icons/mic-signal-icon.d.ts +13 -0
  790. package/dist/types/components/icon/icons/mosque-icon.d.ts +13 -0
  791. package/dist/types/components/icon/icons/rotate-ccw-clock-icon.d.ts +13 -0
  792. package/dist/types/components/icon/icons/rotate-cw-fading-clock-icon.d.ts +13 -0
  793. package/dist/types/components/icon/icons/scan-square-icon.d.ts +13 -0
  794. package/dist/types/components/icon/icons/shield-keyhole-icon.d.ts +13 -0
  795. package/dist/types/components/icon/icons/{history-icon.d.ts → square-off-icon.d.ts} +5 -5
  796. package/dist/types/components/icon/icons/user-shield-icon.d.ts +13 -0
  797. package/dist/types/components/icon/index.d.ts +11 -3
  798. package/dist/types/components/modal/modal.style.d.ts +2 -2
  799. package/dist/types/components/notice/notice.style.d.ts +1 -1
  800. package/dist/types/components/tag/tag.style.d.ts +1 -1
  801. package/dist/types/index.d.ts +12 -4
  802. package/package.json +9 -9
  803. package/dist/cjs/components/icon/icons/history-icon.cjs +0 -14
  804. package/dist/cjs/components/icon/icons/history-icon.cjs.map +0 -1
  805. package/dist/cjs/components/icon/icons/podcast-icon.cjs +0 -14
  806. package/dist/cjs/components/icon/icons/podcast-icon.cjs.map +0 -1
  807. package/dist/esm/components/icon/icons/history-icon.js +0 -14
  808. package/dist/esm/components/icon/icons/history-icon.js.map +0 -1
  809. package/dist/esm/components/icon/icons/podcast-icon.js +0 -14
  810. package/dist/esm/components/icon/icons/podcast-icon.js.map +0 -1
  811. package/dist/types/components/icon/icons/podcast-icon.d.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"use-autocomplete.cjs","names":["createContext","useI18n","useFieldProps","useControllableState","useCombobox","isComposing","mergeRefs","visuallyHiddenAttributes","runKeyAction","useComboboxItem"],"sources":["../../../../src/components/autocomplete/use-autocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from \"react\"\nimport type { HTMLProps, HTMLRefAttributes, PropGetter } from \"../../core\"\nimport type {\n ComboboxItem,\n ComboboxItemWithValue,\n UseComboboxItemProps,\n UseComboboxProps,\n} from \"../../hooks/use-combobox\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"../field\"\nimport {\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { useCombobox, useComboboxItem } from \"../../hooks/use-combobox\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n cast,\n contains,\n createContext,\n dataAttr,\n handlerAll,\n isArray,\n isComposing,\n isNumber,\n isString,\n isUndefined,\n match,\n mergeRefs,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n visuallyHiddenAttributes,\n} from \"../../utils\"\nimport { useFieldProps } from \"../field\"\n\ninterface AutocompleteRenderProps extends ComboboxItemWithValue {\n count: number\n focused: boolean\n index: number\n separator: string\n onClear: () => void\n max?: number\n}\n\nexport interface AutocompleteItemRender {\n (props: AutocompleteRenderProps): ReactNode\n}\n\nconst defaultRender: AutocompleteItemRender = ({\n count,\n focused,\n index,\n label,\n max,\n separator,\n}) => {\n const last = count - 1 === index\n\n return (\n <span style={{ marginInlineEnd: \"var(--gap)\" }}>\n {label}\n {((!isNumber(max) || count < max) && focused) || !last ? separator : null}\n </span>\n )\n}\n\nconst getInputValue = (item?: ComboboxItemWithValue) =>\n isString(item?.label) ? item.label : (item?.query ?? \"\")\n\nexport interface AutocompleteFilter {\n (\n inputValue: string,\n items: ComboboxItem[],\n matcher: AutocompleteMatcher,\n ): ComboboxItem[]\n}\n\nconst defaultFilter: AutocompleteFilter = (inputValue, items, match) => {\n if (!inputValue.length) return items\n\n return items\n .map((item) => {\n if (\"items\" in item) {\n const items = item.items.filter((item) => {\n if (\"query\" in item)\n return isString(item.query) && match(item.query, inputValue)\n else if (isString(item.label))\n return isString(item.label) && match(item.label, inputValue)\n })\n\n if (items.length) return { ...item, items }\n } else if (\"query\" in item) {\n if (isString(item.query) && match(item.query, inputValue)) return item\n } else if (isString(item.label)) {\n if (isString(item.label) && match(item.label, inputValue)) return item\n }\n })\n .filter(Boolean) as ComboboxItem[]\n}\n\nexport type AutocompleteMatcher = typeof match\n\ninterface AutocompleteContext extends Pick<\n UseAutocompleteReturn,\n \"max\" | \"value\"\n> {}\n\nconst [AutocompleteContext, useAutocompleteContext] =\n createContext<AutocompleteContext>({\n name: \"AutocompleteContext\",\n })\n\nexport { AutocompleteContext, useAutocompleteContext }\n\nexport interface UseAutocompleteProps<Multiple extends boolean = false>\n extends\n Omit<HTMLProps, \"defaultValue\" | \"onChange\" | \"ref\" | \"value\">,\n Omit<\n UseComboboxProps,\n \"defaultValue\" | \"initialFocusValue\" | \"onChange\" | \"ref\" | \"value\"\n >,\n HTMLRefAttributes<\"input\">,\n FieldProps {\n /**\n * If `true`, the autocomplete will allow custom value.\n *\n * @default false\n */\n allowCustomValue?: boolean\n /**\n * If `true`, the autocomplete will be closed when the input value changes.\n *\n * @default false\n */\n closeOnChange?: ((ev: ChangeEvent<HTMLInputElement>) => boolean) | boolean\n /**\n * The initial value of the input.\n */\n defaultInputValue?: string\n /**\n * The initial value of the autocomplete.\n */\n defaultValue?: Multiple extends true ? string[] : string\n /**\n * The message displayed when the search yields no hits.\n *\n * @default 'No results found'\n */\n emptyMessage?: ReactNode\n /**\n * The function to filter the items.\n */\n filter?: AutocompleteFilter\n /**\n * If `true`, the input will be focused when the clear icon is clicked.\n *\n * @default true\n */\n focusOnClear?: boolean\n /**\n * The `id` attribute of the input element.\n */\n id?: string\n /**\n * The value of the input.\n */\n inputValue?: string\n /**\n * If provided, generate options based on items.\n *\n * @default []\n */\n items?: ComboboxItem[]\n /**\n * The function to match the items.\n */\n matcher?: AutocompleteMatcher\n /**\n * The maximum selectable value.\n */\n max?: number\n /**\n * If `true`, the autocomplete will be multiple.\n *\n * @default false\n */\n multiple?: Multiple\n /**\n * The `name` attribute of the input element.\n */\n name?: string\n /**\n * If `true`, the autocomplete will be opened when the input value changes.\n *\n * @default true\n */\n openOnChange?: ((ev: ChangeEvent<HTMLInputElement>) => boolean) | boolean\n /**\n * If `true`, the autocomplete will be opened when the input is focused.\n *\n * @default true\n */\n openOnFocus?: boolean\n /**\n * The placeholder for autocomplete.\n */\n placeholder?: string\n /**\n * The visual separator between each value.\n *\n * @default ','\n */\n separator?: string\n /**\n * The value of the autocomplete.\n */\n value?: Multiple extends true ? string[] : string\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: Multiple extends true ? string[] : string) => void\n /**\n * The callback invoked when input value state changes.\n */\n onInputChange?: (value: string) => void\n /**\n * The function to render the selected items.\n */\n render?: (props: AutocompleteRenderProps) => ReactNode\n}\n\nexport const useAutocomplete = <Multiple extends boolean = false>(\n props: UseAutocompleteProps<Multiple> = {},\n) => {\n type MaybeValue = Multiple extends true ? string[] : string\n\n const { t } = useI18n(\"autocomplete\")\n const {\n props: {\n id,\n ref,\n name,\n allowCustomValue = false,\n closeOnChange = false,\n multiple = false,\n closeOnSelect = !multiple,\n defaultInputValue,\n defaultValue = (multiple ? [] : \"\") as MaybeValue,\n disabled,\n emptyMessage = t(\"No results found\"),\n filter = defaultFilter,\n focusOnClear = true,\n inputValue: inputValueProp,\n items = [],\n matcher = match,\n max,\n openOnChange = true,\n openOnClick = true,\n openOnFocus = true,\n placeholder,\n readOnly,\n render = defaultRender,\n required,\n separator = \",\",\n value: valueProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n ...rest\n },\n ariaProps,\n dataProps,\n eventProps,\n } = useFieldProps(props)\n const fieldRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const focusByClickRef = useRef<boolean>(false)\n const valueMap = useMemo<{ [key: string]: ComboboxItemWithValue }>(() => {\n const valueMap: { [key: string]: ComboboxItemWithValue } = {}\n\n items.forEach((item) => {\n if (\"items\" in item) {\n item.items.forEach((item) => {\n item.value ??= isString(item.label) ? item.label : undefined\n\n if (!isUndefined(item.value)) valueMap[item.value] = item\n })\n } else {\n item.value ??= isString(item.label) ? item.label : undefined\n\n if (!isUndefined(item.value)) valueMap[item.value] = item\n }\n })\n\n return valueMap\n }, [items])\n const [focused, setFocused] = useState(false)\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [inputValue, setInputValue] = useControllableState({\n defaultValue:\n defaultInputValue ??\n getInputValue(isString(value) ? valueMap[value] : undefined),\n value: inputValueProp,\n onChange: onInputChangeProp,\n })\n const onChange = useCallback(\n (selectedValue: string) => {\n setValue((prev) => {\n if (isArray(prev))\n if (prev.includes(selectedValue))\n return prev.filter(\n (prevValue) => prevValue !== selectedValue,\n ) as MaybeValue\n else if (!isNumber(max) || prev.length < max)\n return [...prev, selectedValue] as MaybeValue\n else return prev\n else return selectedValue as MaybeValue\n })\n\n if (isArray(value)) {\n setInputValue(\"\")\n } else {\n const item = valueMap[selectedValue]\n\n setInputValue(getInputValue(item))\n }\n },\n [max, setInputValue, setValue, value, valueMap],\n )\n const {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps: getComboboxContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onSelect,\n } = useCombobox({\n closeOnSelect,\n disabled,\n initialFocusValue: isArray(value) ? value[0] : value,\n openOnClick: false,\n openOnEnter: false,\n openOnSpace: false,\n readOnly,\n selectFocusRef: inputRef,\n selectOnSpace: false,\n onChange,\n ...ariaProps,\n ...dataProps,\n ...eventProps,\n ...rest,\n })\n const filteredItems = useMemo<ComboboxItem[]>(() => {\n if (!items.length) return []\n\n return filter(inputValue, items, matcher)\n }, [filter, inputValue, items, matcher])\n const resolvedItems = useMemo<ComboboxItem[]>(() => {\n return filteredItems.length\n ? filteredItems\n : [{ \"data-empty\": \"\", label: emptyMessage }]\n }, [filteredItems, emptyMessage])\n const empty = useMemo(\n () => !resolvedItems.filter(({ hidden }) => !hidden).length,\n [resolvedItems],\n )\n const children = useMemo<ReactNode>(() => {\n if (!isArray(value)) return null\n\n const count = value.length\n\n return value.map((value, index) => {\n const item = valueMap[value] ?? { label: value, value }\n\n const onClear = (ev?: MouseEvent<HTMLElement>) => {\n ev?.preventDefault()\n ev?.stopPropagation()\n\n if (item.value) onChange(item.value)\n }\n\n const component = render({\n count,\n focused,\n index,\n max,\n separator,\n onClear,\n ...item,\n })\n\n if (isValidElement<Dict>(component))\n return cloneElement(component, { ...component.props, key: index })\n else return component\n })\n }, [focused, max, onChange, render, separator, value, valueMap])\n const hasValues = isArray(value) && !!value.length\n\n const onInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (isArray(value) && value.length === max) return\n\n if (runIfFn(closeOnChange, ev)) onClose()\n else if (runIfFn(openOnChange, ev)) onOpen()\n\n activeDescendant.current = null\n\n const inputValue = ev.target.value\n\n setInputValue(inputValue)\n\n if (inputValue.length || isArray(value)) return\n\n setValue(\"\" as MaybeValue)\n },\n [\n activeDescendant,\n closeOnChange,\n max,\n onClose,\n onOpen,\n openOnChange,\n setInputValue,\n setValue,\n value,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLInputElement>) => {\n if (disabled || isComposing(ev)) return\n\n const inputValue = cast<HTMLInputElement>(ev.target).value\n\n runKeyAction(\n ev,\n {\n Backspace: (ev) => {\n if (!isArray(value)) return\n if (inputValue.length) return\n\n ev.preventDefault()\n\n setValue((prev) => prev.slice(0, -1) as MaybeValue)\n },\n Enter: (ev) => {\n if (!open || !inputValue.length || activeDescendant.current) return\n\n const item = filteredItems[0]\n\n if (!item) {\n if (!allowCustomValue || !isArray(value)) return\n\n ev.preventDefault()\n\n onSelect(inputValue)\n } else {\n ev.preventDefault()\n\n if (\"items\" in item) onSelect(item.items[0]?.value)\n else onSelect(item.value)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n activeDescendant,\n allowCustomValue,\n disabled,\n filteredItems,\n onSelect,\n open,\n setValue,\n value,\n ],\n )\n\n const onClick = useCallback(() => {\n if (!interactive) return\n\n focusByClickRef.current = true\n\n inputRef.current?.focus()\n\n if (openOnClick) onOpenWithActiveDescendant(descendants.enabledFirstValue)\n }, [descendants, interactive, onOpenWithActiveDescendant, openOnClick])\n\n const onMouseDown = useCallback(\n (ev: MouseEvent<HTMLInputElement>) => {\n if (!openOnFocus) return\n\n ev.preventDefault()\n ev.stopPropagation()\n },\n [openOnFocus],\n )\n\n const onFocus = useCallback(\n (ev: FocusEvent<HTMLInputElement>) => {\n ev.preventDefault()\n ev.stopPropagation()\n\n setFocused(true)\n\n if (openOnFocus && !focusByClickRef.current)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n\n focusByClickRef.current = false\n },\n [openOnFocus, onOpenWithActiveDescendant, descendants.enabledFirstValue],\n )\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLInputElement>) => {\n if (\n contains(fieldRef.current, ev.relatedTarget) ||\n contains(contentRef.current, ev.relatedTarget)\n ) {\n ev.preventDefault()\n } else {\n setFocused(false)\n\n if (isArray(value)) {\n setInputValue(\"\")\n } else if (allowCustomValue) {\n if (inputValue) setValue(inputValue as MaybeValue)\n } else {\n const item = isString(value) ? valueMap[value] : undefined\n\n setInputValue(getInputValue(item))\n }\n }\n },\n [allowCustomValue, inputValue, setInputValue, setValue, value, valueMap],\n )\n\n const onClear = useCallback(() => {\n if (!interactive) return\n\n setValue((prev) => (isArray(prev) ? [] : \"\") as MaybeValue)\n setInputValue(\"\")\n\n if (focusOnClear) inputRef.current?.focus()\n }, [focusOnClear, interactive, setInputValue, setValue])\n\n useUpdateEffect(() => {\n if (isArray(valueProp)) return\n\n setInputValue(\n getInputValue(isString(valueProp) ? valueMap[valueProp] : undefined),\n )\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...dataProps,\n ...props,\n }),\n [dataProps],\n )\n\n const getFieldProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n getTriggerProps({\n ref: mergeRefs(ref, fieldRef),\n tabIndex: -1,\n ...props,\n onClick: handlerAll(props.onClick, onClick),\n }),\n\n [getTriggerProps, onClick],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}) => ({\n id,\n ref: mergeRefs(props.ref, ref, inputRef),\n name,\n style: {\n ...(!focused && isArray(value) && !!value.length\n ? visuallyHiddenAttributes.style\n : {}),\n ...props.style,\n },\n \"data-max\": dataAttr(\n isArray(value) && isNumber(max) && value.length >= max,\n ),\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n disabled,\n placeholder: hasValues ? undefined : placeholder,\n readOnly,\n required,\n spellCheck: false,\n value: inputValue,\n ...dataProps,\n ...props,\n onBlur: handlerAll(props.onBlur, onBlur),\n onChange: handlerAll(props.onChange, onInputChange),\n onFocus: handlerAll(props.onFocus, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onMouseDown: handlerAll(props.onMouseDown, onMouseDown),\n }),\n [\n dataProps,\n disabled,\n focused,\n hasValues,\n id,\n inputValue,\n max,\n name,\n onBlur,\n onFocus,\n onInputChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n readOnly,\n ref,\n required,\n value,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n getComboboxContentProps({\n ref: mergeRefs(ref, contentRef),\n hidden: empty,\n ...props,\n }),\n [empty, getComboboxContentProps],\n )\n\n const getIconProps: PropGetter = useCallback(\n (props) => ({ ...dataProps, ...props }),\n [dataProps],\n )\n\n const getClearIconProps: PropGetter = useCallback(\n (props = {}) =>\n getIconProps({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Clear value\"),\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onClear),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, { Enter: onClear, Space: onClear }),\n ),\n }),\n [getIconProps, interactive, onClear, t],\n )\n\n return {\n children,\n descendants,\n inputValue,\n interactive,\n items: resolvedItems,\n max,\n open,\n setInputValue,\n setValue,\n value,\n valueMap,\n getClearIconProps,\n getContentProps,\n getFieldProps,\n getIconProps,\n getInputProps,\n getRootProps,\n getSeparatorProps,\n popoverProps,\n onActiveDescendant,\n onChange,\n onClose,\n onInputChange,\n onOpen,\n onSelect,\n }\n}\n\nexport type UseAutocompleteReturn = ReturnType<typeof useAutocomplete>\n\nexport interface UseAutocompleteOptionProps extends UseComboboxItemProps {}\n\nexport const useAutocompleteOption = ({\n children,\n closeOnSelect,\n disabled,\n hidden,\n value,\n ...rest\n}: UseAutocompleteOptionProps = {}) => {\n const { max, value: selectedValue } = useAutocompleteContext()\n\n value ??= isString(children) ? children : undefined\n\n const selected = isArray(selectedValue)\n ? !isUndefined(value) && selectedValue.includes(value)\n : selectedValue === value\n const completed =\n isNumber(max) && isArray(selectedValue) && selectedValue.length >= max\n const { getIndicatorProps, getItemProps } = useComboboxItem({\n children,\n closeOnSelect,\n disabled: disabled || hidden || (completed && !selected),\n hidden,\n selected,\n value,\n ...rest,\n })\n\n const getOptionProps: PropGetter = useCallback(\n (props = {}) => getItemProps(props),\n [getItemProps],\n )\n\n return { getIndicatorProps, getOptionProps }\n}\n\nexport type UseAutocompleteOptionReturn = ReturnType<\n typeof useAutocompleteOption\n>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-autocomplete.cjs","names":["createContext","useI18n","useFieldProps","useRef","useMemo","useState","useControllableState","useCallback","useCombobox","isValidElement","cloneElement","isComposing","mergeRefs","visuallyHiddenAttributes","runKeyAction","useComboboxItem"],"sources":["../../../../src/components/autocomplete/use-autocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from \"react\"\nimport type { HTMLProps, HTMLRefAttributes, PropGetter } from \"../../core\"\nimport type {\n ComboboxItem,\n ComboboxItemWithValue,\n UseComboboxItemProps,\n UseComboboxProps,\n} from \"../../hooks/use-combobox\"\nimport type { Dict } from \"../../utils\"\nimport type { FieldProps } from \"../field\"\nimport {\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { useCombobox, useComboboxItem } from \"../../hooks/use-combobox\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n cast,\n contains,\n createContext,\n dataAttr,\n handlerAll,\n isArray,\n isComposing,\n isNumber,\n isString,\n isUndefined,\n match,\n mergeRefs,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n visuallyHiddenAttributes,\n} from \"../../utils\"\nimport { useFieldProps } from \"../field\"\n\ninterface AutocompleteRenderProps extends ComboboxItemWithValue {\n count: number\n focused: boolean\n index: number\n separator: string\n onClear: () => void\n max?: number\n}\n\nexport interface AutocompleteItemRender {\n (props: AutocompleteRenderProps): ReactNode\n}\n\nconst defaultRender: AutocompleteItemRender = ({\n count,\n focused,\n index,\n label,\n max,\n separator,\n}) => {\n const last = count - 1 === index\n\n return (\n <span style={{ marginInlineEnd: \"var(--gap)\" }}>\n {label}\n {((!isNumber(max) || count < max) && focused) || !last ? separator : null}\n </span>\n )\n}\n\nconst getInputValue = (item?: ComboboxItemWithValue) =>\n isString(item?.label) ? item.label : (item?.query ?? \"\")\n\nexport interface AutocompleteFilter {\n (\n inputValue: string,\n items: ComboboxItem[],\n matcher: AutocompleteMatcher,\n ): ComboboxItem[]\n}\n\nconst defaultFilter: AutocompleteFilter = (inputValue, items, match) => {\n if (!inputValue.length) return items\n\n return items\n .map((item) => {\n if (\"items\" in item) {\n const items = item.items.filter((item) => {\n if (\"query\" in item)\n return isString(item.query) && match(item.query, inputValue)\n else if (isString(item.label))\n return isString(item.label) && match(item.label, inputValue)\n })\n\n if (items.length) return { ...item, items }\n } else if (\"query\" in item) {\n if (isString(item.query) && match(item.query, inputValue)) return item\n } else if (isString(item.label)) {\n if (isString(item.label) && match(item.label, inputValue)) return item\n }\n })\n .filter(Boolean) as ComboboxItem[]\n}\n\nexport type AutocompleteMatcher = typeof match\n\ninterface AutocompleteContext extends Pick<\n UseAutocompleteReturn,\n \"max\" | \"value\"\n> {}\n\nconst [AutocompleteContext, useAutocompleteContext] =\n createContext<AutocompleteContext>({\n name: \"AutocompleteContext\",\n })\n\nexport { AutocompleteContext, useAutocompleteContext }\n\nexport interface UseAutocompleteProps<Multiple extends boolean = false>\n extends\n Omit<HTMLProps, \"defaultValue\" | \"onChange\" | \"ref\" | \"value\">,\n Omit<\n UseComboboxProps,\n \"defaultValue\" | \"initialFocusValue\" | \"onChange\" | \"ref\" | \"value\"\n >,\n HTMLRefAttributes<\"input\">,\n FieldProps {\n /**\n * If `true`, the autocomplete will allow custom value.\n *\n * @default false\n */\n allowCustomValue?: boolean\n /**\n * If `true`, the autocomplete will be closed when the input value changes.\n *\n * @default false\n */\n closeOnChange?: ((ev: ChangeEvent<HTMLInputElement>) => boolean) | boolean\n /**\n * The initial value of the input.\n */\n defaultInputValue?: string\n /**\n * The initial value of the autocomplete.\n */\n defaultValue?: Multiple extends true ? string[] : string\n /**\n * The message displayed when the search yields no hits.\n *\n * @default 'No results found'\n */\n emptyMessage?: ReactNode\n /**\n * The function to filter the items.\n */\n filter?: AutocompleteFilter\n /**\n * If `true`, the input will be focused when the clear icon is clicked.\n *\n * @default true\n */\n focusOnClear?: boolean\n /**\n * The `id` attribute of the input element.\n */\n id?: string\n /**\n * The value of the input.\n */\n inputValue?: string\n /**\n * If provided, generate options based on items.\n *\n * @default []\n */\n items?: ComboboxItem[]\n /**\n * The function to match the items.\n */\n matcher?: AutocompleteMatcher\n /**\n * The maximum selectable value.\n */\n max?: number\n /**\n * If `true`, the autocomplete will be multiple.\n *\n * @default false\n */\n multiple?: Multiple\n /**\n * The `name` attribute of the input element.\n */\n name?: string\n /**\n * If `true`, the autocomplete will be opened when the input value changes.\n *\n * @default true\n */\n openOnChange?: ((ev: ChangeEvent<HTMLInputElement>) => boolean) | boolean\n /**\n * If `true`, the autocomplete will be opened when the input is focused.\n *\n * @default true\n */\n openOnFocus?: boolean\n /**\n * The placeholder for autocomplete.\n */\n placeholder?: string\n /**\n * The visual separator between each value.\n *\n * @default ','\n */\n separator?: string\n /**\n * The value of the autocomplete.\n */\n value?: Multiple extends true ? string[] : string\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: Multiple extends true ? string[] : string) => void\n /**\n * The callback invoked when input value state changes.\n */\n onInputChange?: (value: string) => void\n /**\n * The function to render the selected items.\n */\n render?: (props: AutocompleteRenderProps) => ReactNode\n}\n\nexport const useAutocomplete = <Multiple extends boolean = false>(\n props: UseAutocompleteProps<Multiple> = {},\n) => {\n type MaybeValue = Multiple extends true ? string[] : string\n\n const { t } = useI18n(\"autocomplete\")\n const {\n props: {\n id,\n ref,\n name,\n allowCustomValue = false,\n closeOnChange = false,\n multiple = false,\n closeOnSelect = !multiple,\n defaultInputValue,\n defaultValue = (multiple ? [] : \"\") as MaybeValue,\n disabled,\n emptyMessage = t(\"No results found\"),\n filter = defaultFilter,\n focusOnClear = true,\n inputValue: inputValueProp,\n items = [],\n matcher = match,\n max,\n openOnChange = true,\n openOnClick = true,\n openOnFocus = true,\n placeholder,\n readOnly,\n render = defaultRender,\n required,\n separator = \",\",\n value: valueProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n ...rest\n },\n ariaProps,\n dataProps,\n eventProps,\n } = useFieldProps(props)\n const fieldRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const focusByClickRef = useRef<boolean>(false)\n const valueMap = useMemo<{ [key: string]: ComboboxItemWithValue }>(() => {\n const valueMap: { [key: string]: ComboboxItemWithValue } = {}\n\n items.forEach((item) => {\n if (\"items\" in item) {\n item.items.forEach((item) => {\n item.value ??= isString(item.label) ? item.label : undefined\n\n if (!isUndefined(item.value)) valueMap[item.value] = item\n })\n } else {\n item.value ??= isString(item.label) ? item.label : undefined\n\n if (!isUndefined(item.value)) valueMap[item.value] = item\n }\n })\n\n return valueMap\n }, [items])\n const [focused, setFocused] = useState(false)\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [inputValue, setInputValue] = useControllableState({\n defaultValue:\n defaultInputValue ??\n getInputValue(isString(value) ? valueMap[value] : undefined),\n value: inputValueProp,\n onChange: onInputChangeProp,\n })\n const onChange = useCallback(\n (selectedValue: string) => {\n setValue((prev) => {\n if (isArray(prev))\n if (prev.includes(selectedValue))\n return prev.filter(\n (prevValue) => prevValue !== selectedValue,\n ) as MaybeValue\n else if (!isNumber(max) || prev.length < max)\n return [...prev, selectedValue] as MaybeValue\n else return prev\n else return selectedValue as MaybeValue\n })\n\n if (isArray(value)) {\n setInputValue(\"\")\n } else {\n const item = valueMap[selectedValue]\n\n setInputValue(getInputValue(item))\n }\n },\n [max, setInputValue, setValue, value, valueMap],\n )\n const {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps: getComboboxContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onSelect,\n } = useCombobox({\n closeOnSelect,\n disabled,\n initialFocusValue: isArray(value) ? value[0] : value,\n openOnClick: false,\n openOnEnter: false,\n openOnSpace: false,\n readOnly,\n selectFocusRef: inputRef,\n selectOnSpace: false,\n onChange,\n ...ariaProps,\n ...dataProps,\n ...eventProps,\n ...rest,\n })\n const filteredItems = useMemo<ComboboxItem[]>(() => {\n if (!items.length) return []\n\n return filter(inputValue, items, matcher)\n }, [filter, inputValue, items, matcher])\n const resolvedItems = useMemo<ComboboxItem[]>(() => {\n return filteredItems.length\n ? filteredItems\n : [{ \"data-empty\": \"\", label: emptyMessage }]\n }, [filteredItems, emptyMessage])\n const empty = useMemo(\n () => !resolvedItems.filter(({ hidden }) => !hidden).length,\n [resolvedItems],\n )\n const children = useMemo<ReactNode>(() => {\n if (!isArray(value)) return null\n\n const count = value.length\n\n return value.map((value, index) => {\n const item = valueMap[value] ?? { label: value, value }\n\n const onClear = (ev?: MouseEvent<HTMLElement>) => {\n ev?.preventDefault()\n ev?.stopPropagation()\n\n if (item.value) onChange(item.value)\n }\n\n const component = render({\n count,\n focused,\n index,\n max,\n separator,\n onClear,\n ...item,\n })\n\n if (isValidElement<Dict>(component))\n return cloneElement(component, { ...component.props, key: index })\n else return component\n })\n }, [focused, max, onChange, render, separator, value, valueMap])\n const hasValues = isArray(value) && !!value.length\n\n const onInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (isArray(value) && value.length === max) return\n\n if (runIfFn(closeOnChange, ev)) onClose()\n else if (runIfFn(openOnChange, ev)) onOpen()\n\n activeDescendant.current = null\n\n const inputValue = ev.target.value\n\n setInputValue(inputValue)\n\n if (inputValue.length || isArray(value)) return\n\n setValue(\"\" as MaybeValue)\n },\n [\n activeDescendant,\n closeOnChange,\n max,\n onClose,\n onOpen,\n openOnChange,\n setInputValue,\n setValue,\n value,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLInputElement>) => {\n if (disabled || isComposing(ev)) return\n\n const inputValue = cast<HTMLInputElement>(ev.target).value\n\n runKeyAction(\n ev,\n {\n Backspace: (ev) => {\n if (!isArray(value)) return\n if (inputValue.length) return\n\n ev.preventDefault()\n\n setValue((prev) => prev.slice(0, -1) as MaybeValue)\n },\n Enter: (ev) => {\n if (!open || !inputValue.length || activeDescendant.current) return\n\n const item = filteredItems[0]\n\n if (!item) {\n if (!allowCustomValue || !isArray(value)) return\n\n ev.preventDefault()\n\n onSelect(inputValue)\n } else {\n ev.preventDefault()\n\n if (\"items\" in item) onSelect(item.items[0]?.value)\n else onSelect(item.value)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n activeDescendant,\n allowCustomValue,\n disabled,\n filteredItems,\n onSelect,\n open,\n setValue,\n value,\n ],\n )\n\n const onClick = useCallback(() => {\n if (!interactive) return\n\n focusByClickRef.current = true\n\n inputRef.current?.focus()\n\n if (openOnClick) onOpenWithActiveDescendant(descendants.enabledFirstValue)\n }, [descendants, interactive, onOpenWithActiveDescendant, openOnClick])\n\n const onMouseDown = useCallback(\n (ev: MouseEvent<HTMLInputElement>) => {\n if (!openOnFocus) return\n\n ev.preventDefault()\n ev.stopPropagation()\n },\n [openOnFocus],\n )\n\n const onFocus = useCallback(\n (ev: FocusEvent<HTMLInputElement>) => {\n ev.preventDefault()\n ev.stopPropagation()\n\n setFocused(true)\n\n if (openOnFocus && !focusByClickRef.current)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n\n focusByClickRef.current = false\n },\n [openOnFocus, onOpenWithActiveDescendant, descendants.enabledFirstValue],\n )\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLInputElement>) => {\n if (\n contains(fieldRef.current, ev.relatedTarget) ||\n contains(contentRef.current, ev.relatedTarget)\n ) {\n ev.preventDefault()\n } else {\n setFocused(false)\n\n if (isArray(value)) {\n setInputValue(\"\")\n } else if (allowCustomValue) {\n if (inputValue) setValue(inputValue as MaybeValue)\n } else {\n const item = isString(value) ? valueMap[value] : undefined\n\n setInputValue(getInputValue(item))\n }\n }\n },\n [allowCustomValue, inputValue, setInputValue, setValue, value, valueMap],\n )\n\n const onClear = useCallback(() => {\n if (!interactive) return\n\n setValue((prev) => (isArray(prev) ? [] : \"\") as MaybeValue)\n setInputValue(\"\")\n\n if (focusOnClear) inputRef.current?.focus()\n }, [focusOnClear, interactive, setInputValue, setValue])\n\n useUpdateEffect(() => {\n if (isArray(valueProp)) return\n\n setInputValue(\n getInputValue(isString(valueProp) ? valueMap[valueProp] : undefined),\n )\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...dataProps,\n ...props,\n }),\n [dataProps],\n )\n\n const getFieldProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n getTriggerProps({\n ref: mergeRefs(ref, fieldRef),\n tabIndex: -1,\n ...props,\n onClick: handlerAll(props.onClick, onClick),\n }),\n\n [getTriggerProps, onClick],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}) => ({\n id,\n ref: mergeRefs(props.ref, ref, inputRef),\n name,\n style: {\n ...(!focused && isArray(value) && !!value.length\n ? visuallyHiddenAttributes.style\n : {}),\n ...props.style,\n },\n \"data-max\": dataAttr(\n isArray(value) && isNumber(max) && value.length >= max,\n ),\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n disabled,\n placeholder: hasValues ? undefined : placeholder,\n readOnly,\n required,\n spellCheck: false,\n value: inputValue,\n ...dataProps,\n ...props,\n onBlur: handlerAll(props.onBlur, onBlur),\n onChange: handlerAll(props.onChange, onInputChange),\n onFocus: handlerAll(props.onFocus, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onMouseDown: handlerAll(props.onMouseDown, onMouseDown),\n }),\n [\n dataProps,\n disabled,\n focused,\n hasValues,\n id,\n inputValue,\n max,\n name,\n onBlur,\n onFocus,\n onInputChange,\n onKeyDown,\n onMouseDown,\n placeholder,\n readOnly,\n ref,\n required,\n value,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n getComboboxContentProps({\n ref: mergeRefs(ref, contentRef),\n hidden: empty,\n ...props,\n }),\n [empty, getComboboxContentProps],\n )\n\n const getIconProps: PropGetter = useCallback(\n (props) => ({ ...dataProps, ...props }),\n [dataProps],\n )\n\n const getClearIconProps: PropGetter = useCallback(\n (props = {}) =>\n getIconProps({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Clear value\"),\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onClear),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, { Enter: onClear, Space: onClear }),\n ),\n }),\n [getIconProps, interactive, onClear, t],\n )\n\n return {\n children,\n descendants,\n inputValue,\n interactive,\n items: resolvedItems,\n max,\n open,\n setInputValue,\n setValue,\n value,\n valueMap,\n getClearIconProps,\n getContentProps,\n getFieldProps,\n getIconProps,\n getInputProps,\n getRootProps,\n getSeparatorProps,\n popoverProps,\n onActiveDescendant,\n onChange,\n onClose,\n onInputChange,\n onOpen,\n onSelect,\n }\n}\n\nexport type UseAutocompleteReturn = ReturnType<typeof useAutocomplete>\n\nexport interface UseAutocompleteOptionProps extends UseComboboxItemProps {}\n\nexport const useAutocompleteOption = ({\n children,\n closeOnSelect,\n disabled,\n hidden,\n value,\n ...rest\n}: UseAutocompleteOptionProps = {}) => {\n const { max, value: selectedValue } = useAutocompleteContext()\n\n value ??= isString(children) ? children : undefined\n\n const selected = isArray(selectedValue)\n ? !isUndefined(value) && selectedValue.includes(value)\n : selectedValue === value\n const completed =\n isNumber(max) && isArray(selectedValue) && selectedValue.length >= max\n const { getIndicatorProps, getItemProps } = useComboboxItem({\n children,\n closeOnSelect,\n disabled: disabled || hidden || (completed && !selected),\n hidden,\n selected,\n value,\n ...rest,\n })\n\n const getOptionProps: PropGetter = useCallback(\n (props = {}) => getItemProps(props),\n [getItemProps],\n )\n\n return { getIndicatorProps, getOptionProps }\n}\n\nexport type UseAutocompleteOptionReturn = ReturnType<\n typeof useAutocompleteOption\n>\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_factory = require("../../core/system/factory.cjs");
3
4
  const require_avatar = require("./avatar.cjs");
4
5
  const require_use_avatar_group = require("./use-avatar-group.cjs");
@@ -18,18 +19,19 @@ const AvatarGroupRoot = require_avatar.component((props) => {
18
19
  "shape"
19
20
  ] });
20
21
  const { children, excess, getRootProps } = require_use_avatar_group.useAvatarGroup(rest);
22
+ const context = (0, react.useMemo)(() => ({
23
+ colorScheme,
24
+ size,
25
+ variant,
26
+ shape
27
+ }), [
28
+ variant,
29
+ size,
30
+ colorScheme,
31
+ shape
32
+ ]);
21
33
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_avatar.AvatarPropsContext, {
22
- value: (0, react.useMemo)(() => ({
23
- colorScheme,
24
- size,
25
- variant,
26
- shape
27
- }), [
28
- variant,
29
- size,
30
- colorScheme,
31
- shape
32
- ]),
34
+ value: context,
33
35
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_factory.styled.div, {
34
36
  ...getRootProps(),
35
37
  children: [excess > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_avatar.Avatar, { fallback: `+${excess}` }) : null, children]
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-group.cjs","names":["component","useRootComponentProps","useAvatarGroup","AvatarPropsContext","styled","Avatar"],"sources":["../../../../src/components/avatar/avatar-group.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { AvatarStyle } from \"./avatar.style\"\nimport type { UseAvatarGroupProps } from \"./use-avatar-group\"\nimport { useMemo } from \"react\"\nimport { styled } from \"../../core\"\nimport {\n Avatar,\n AvatarPropsContext,\n component,\n useRootComponentProps,\n} from \"./avatar\"\nimport { useAvatarGroup } from \"./use-avatar-group\"\n\nexport interface AvatarGroupRootProps\n extends HTMLStyledProps, ThemeProps<AvatarStyle>, UseAvatarGroupProps {}\n\n/**\n * `Avatar` is a component that displays a profile picture or an icon with initials representing a user.\n *\n * @see https://yamada-ui.com/docs/components/avatar\n */\nexport const AvatarGroupRoot = component<\"div\", AvatarGroupRootProps>(\n (props) => {\n const [, { colorScheme, size, variant, shape, ...rest }] =\n useRootComponentProps(props, \"group\", {\n transferProps: [\"variant\", \"colorScheme\", \"size\", \"shape\"],\n })\n const { children, excess, getRootProps } = useAvatarGroup(rest)\n const context = useMemo(\n () => ({ colorScheme, size, variant, shape }),\n [variant, size, colorScheme, shape],\n )\n\n return (\n <AvatarPropsContext value={context}>\n <styled.div {...getRootProps()}>\n {excess > 0 ? <Avatar fallback={`+${excess}`} /> : null}\n {children}\n </styled.div>\n </AvatarPropsContext>\n )\n },\n \"group\",\n)()\n"],"mappings":";;;;;;;;;;;;AAuBA,MAAa,kBAAkBA,eAAAA,WAC5B,UAAU;CACT,MAAM,GAAG,EAAE,aAAa,MAAM,SAAS,OAAO,GAAG,UAC/CC,eAAAA,sBAAsB,OAAO,SAAS,EACpC,eAAe;EAAC;EAAW;EAAe;EAAQ;CAAO,EAC3D,CAAC;CACH,MAAM,EAAE,UAAU,QAAQ,iBAAiBC,yBAAAA,eAAe,IAAI;CAM9D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,oBAAD;EAAoB,QAAA,GAAA,MAAA,QAAA,QALb;GAAE;GAAa;GAAM;GAAS;EAAM,IAC3C;GAAC;GAAS;GAAM;GAAa;EAAK,CAID;EAC/B,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,gBAAAA,OAAO,KAAR;GAAY,GAAI,aAAa;GAA7B,UAAA,CACG,SAAS,IAAI,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD,EAAQ,UAAU,IAAI,SAAW,CAAA,IAAI,MAClD,QACS;;CACM,CAAA;AAExB,GACA,OACF,CAAC,CAAC"}
1
+ {"version":3,"file":"avatar-group.cjs","names":["component","useRootComponentProps","useAvatarGroup","useMemo","AvatarPropsContext","styled","Avatar"],"sources":["../../../../src/components/avatar/avatar-group.tsx"],"sourcesContent":["\"use client\"\n\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { AvatarStyle } from \"./avatar.style\"\nimport type { UseAvatarGroupProps } from \"./use-avatar-group\"\nimport { useMemo } from \"react\"\nimport { styled } from \"../../core\"\nimport {\n Avatar,\n AvatarPropsContext,\n component,\n useRootComponentProps,\n} from \"./avatar\"\nimport { useAvatarGroup } from \"./use-avatar-group\"\n\nexport interface AvatarGroupRootProps\n extends HTMLStyledProps, ThemeProps<AvatarStyle>, UseAvatarGroupProps {}\n\n/**\n * `Avatar` is a component that displays a profile picture or an icon with initials representing a user.\n *\n * @see https://yamada-ui.com/docs/components/avatar\n */\nexport const AvatarGroupRoot = component<\"div\", AvatarGroupRootProps>(\n (props) => {\n const [, { colorScheme, size, variant, shape, ...rest }] =\n useRootComponentProps(props, \"group\", {\n transferProps: [\"variant\", \"colorScheme\", \"size\", \"shape\"],\n })\n const { children, excess, getRootProps } = useAvatarGroup(rest)\n const context = useMemo(\n () => ({ colorScheme, size, variant, shape }),\n [variant, size, colorScheme, shape],\n )\n\n return (\n <AvatarPropsContext value={context}>\n <styled.div {...getRootProps()}>\n {excess > 0 ? <Avatar fallback={`+${excess}`} /> : null}\n {children}\n </styled.div>\n </AvatarPropsContext>\n )\n },\n \"group\",\n)()\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAa,kBAAkBA,eAAAA,WAC5B,UAAU;CACT,MAAM,GAAG,EAAE,aAAa,MAAM,SAAS,OAAO,GAAG,UAC/CC,eAAAA,sBAAsB,OAAO,SAAS,EACpC,eAAe;EAAC;EAAW;EAAe;EAAQ;CAAO,EAC3D,CAAC;CACH,MAAM,EAAE,UAAU,QAAQ,iBAAiBC,yBAAAA,eAAe,IAAI;CAC9D,MAAM,WAAA,GAAUC,MAAAA,QAAAA,QACP;EAAE;EAAa;EAAM;EAAS;CAAM,IAC3C;EAAC;EAAS;EAAM;EAAa;CAAK,CACpC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,oBAAD;EAAoB,OAAO;EACzB,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,gBAAAA,OAAO,KAAR;GAAY,GAAI,aAAa;GAA7B,UAAA,CACG,SAAS,IAAI,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD,EAAQ,UAAU,IAAI,SAAW,CAAA,IAAI,MAClD,QACS;;CACM,CAAA;AAExB,GACA,OACF,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
1
2
  const require_children = require("../../utils/children.cjs");
2
3
  const require_utils_index = require("../../utils/index.cjs");
3
4
  const require_props = require("../../core/components/props.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"use-avatar-group.cjs","names":["useValidChildren","mergeProps"],"sources":["../../../../src/components/avatar/use-avatar-group.ts"],"sourcesContent":["import type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { isUndefined, useValidChildren } from \"../../utils\"\n\nexport interface UseAvatarGroupProps extends HTMLProps {\n /**\n * The maximum number of visible avatars.\n */\n max?: number\n /**\n * Whether to reverse the order of the avatars.\n */\n reverse?: boolean\n}\n\nexport const useAvatarGroup = ({\n children,\n max,\n reverse,\n ...rest\n}: UseAvatarGroupProps = {}) => {\n const validChildren = useValidChildren(children)\n const excess = !isUndefined(max) ? validChildren.length - max : 0\n\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props, { role: \"group\" })(),\n [rest],\n )\n\n const cloneChildren = useMemo(() => {\n const omittedChildren = !isUndefined(max)\n ? validChildren.slice(0, max)\n : [...validChildren]\n\n return reverse ? omittedChildren.reverse() : omittedChildren\n }, [max, validChildren, reverse])\n\n return {\n children: cloneChildren,\n excess,\n getRootProps,\n }\n}\n\nexport type UseAvatarGroupReturn = ReturnType<typeof useAvatarGroup>\n"],"mappings":";;;;;AAgBA,MAAa,kBAAkB,EAC7B,UACA,KACA,SACA,GAAG,SACoB,CAAC,MAAM;CAC9B,MAAM,gBAAgBA,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,SAAS,EAAA,GAAA,oBAAA,cAAA,YAAA,CAAa,GAAG,IAAI,cAAc,SAAS,MAAM;CAEhE,MAAM,gBAAA,GAAA,MAAA,YAAA,EACH,UAAUC,cAAAA,WAAW,MAAM,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,GACtD,CAAC,IAAI,CACP;CAUA,OAAO;EACL,WAAA,GAAA,MAAA,QAAA,OATkC;GAClC,MAAM,kBAAkB,EAAA,GAAA,oBAAA,cAAA,YAAA,CAAa,GAAG,IACpC,cAAc,MAAM,GAAG,GAAG,IAC1B,CAAC,GAAG,aAAa;GAErB,OAAO,UAAU,gBAAgB,QAAQ,IAAI;EAC/C,GAAG;GAAC;GAAK;GAAe;EAAO,CAGP;EACtB;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-avatar-group.cjs","names":["useValidChildren","useCallback","mergeProps","useMemo"],"sources":["../../../../src/components/avatar/use-avatar-group.ts"],"sourcesContent":["import type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { isUndefined, useValidChildren } from \"../../utils\"\n\nexport interface UseAvatarGroupProps extends HTMLProps {\n /**\n * The maximum number of visible avatars.\n */\n max?: number\n /**\n * Whether to reverse the order of the avatars.\n */\n reverse?: boolean\n}\n\nexport const useAvatarGroup = ({\n children,\n max,\n reverse,\n ...rest\n}: UseAvatarGroupProps = {}) => {\n const validChildren = useValidChildren(children)\n const excess = !isUndefined(max) ? validChildren.length - max : 0\n\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props, { role: \"group\" })(),\n [rest],\n )\n\n const cloneChildren = useMemo(() => {\n const omittedChildren = !isUndefined(max)\n ? validChildren.slice(0, max)\n : [...validChildren]\n\n return reverse ? omittedChildren.reverse() : omittedChildren\n }, [max, validChildren, reverse])\n\n return {\n children: cloneChildren,\n excess,\n getRootProps,\n }\n}\n\nexport type UseAvatarGroupReturn = ReturnType<typeof useAvatarGroup>\n"],"mappings":";;;;;;AAgBA,MAAa,kBAAkB,EAC7B,UACA,KACA,SACA,GAAG,SACoB,CAAC,MAAM;CAC9B,MAAM,gBAAgBA,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,SAAS,EAAA,GAAA,oBAAA,cAAC,YAAA,CAAY,GAAG,IAAI,cAAc,SAAS,MAAM;CAEhE,MAAM,gBAAA,GAA2BC,MAAAA,YAAAA,EAC9B,UAAUC,cAAAA,WAAW,MAAM,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,GACtD,CAAC,IAAI,CACP;CAUA,OAAO;EACL,WAAA,GAToBC,MAAAA,QAAAA,OAAc;GAClC,MAAM,kBAAkB,EAAA,GAAA,oBAAA,cAAC,YAAA,CAAY,GAAG,IACpC,cAAc,MAAM,GAAG,GAAG,IAC1B,CAAC,GAAG,aAAa;GAErB,OAAO,UAAU,gBAAgB,QAAQ,IAAI;EAC/C,GAAG;GAAC;GAAK;GAAe;EAAO,CAGP;EACtB;EACA;CACF;AACF"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_ref = require("../../utils/ref.cjs");
3
4
  const require_utils_index = require("../../utils/index.cjs");
4
5
  const require_props = require("../../core/components/props.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"use-avatar.cjs","names":["useI18n","mergeProps","mergeRefs"],"sources":["../../../../src/components/avatar/use-avatar.ts"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { type HTMLProps, mergeProps, type PropGetter } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr, handlerAll, mergeRefs } from \"../../utils\"\n\nconst defaultFormat = (name: string) => {\n const names = name.trim().split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\nexport interface UseAvatarProps extends HTMLProps {\n /**\n * The `HTMLImageElement` property `alt`.\n */\n alt?: HTMLProps<\"img\">[\"alt\"]\n /**\n * The `HTMLImageElement` property `crossOrigin`.\n */\n crossOrigin?: HTMLProps<\"img\">[\"crossOrigin\"]\n /**\n * The fallback text to display if the image is not provided.\n */\n fallback?: ReactNode\n /**\n * The avatar icon to use.\n */\n icon?: ReactElement\n /**\n * Defines loading strategy.\n */\n loading?: HTMLProps<\"img\">[\"loading\"]\n /**\n * The name of the person in the avatar.\n *\n * - If `src` has loaded, the name will be used as the `alt` attribute of the `img`\n * - If `src` is not loaded, the name will be used to create the initials\n */\n name?: string\n /**\n * Defining which referrer is sent when fetching the resource.\n *\n * @default 'no-referrer'\n */\n referrerPolicy?: HTMLProps<\"img\">[\"referrerPolicy\"]\n /**\n * The image url of the avatar.\n */\n src?: HTMLProps<\"img\">[\"src\"]\n /**\n * List of sources to use for different screen resolutions.\n */\n srcSet?: HTMLProps<\"img\">[\"srcSet\"]\n /**\n * Function to get the initials to display.\n */\n format?: (name: string) => string\n}\n\nexport const useAvatar = ({\n name,\n src,\n srcSet,\n alt,\n crossOrigin,\n fallback: fallbackMessage,\n format = defaultFormat,\n icon,\n loading,\n referrerPolicy = \"no-referrer\",\n ...rest\n}: UseAvatarProps = {}) => {\n const imageRef = useRef<HTMLImageElement>(null)\n const initials = name ? format(name) : undefined\n const [loaded, setLoaded] = useState<boolean>(false)\n const fallback = !src || !loaded\n const { t } = useI18n(\"avatar\")\n\n useEffect(() => {\n if (!imageRef.current) return\n\n if (!!imageRef.current.src && imageRef.current.complete) setLoaded(true)\n }, [])\n\n const getGroupProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...mergeProps(rest, props)(),\n \"data-fallback\": dataAttr(!!fallbackMessage),\n \"data-loaded\": dataAttr(loaded),\n }),\n [loaded, fallbackMessage, rest],\n )\n\n const getImageProps: PropGetter<\"img\"> = useCallback(\n ({ ref, onLoad, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, imageRef),\n src,\n srcSet,\n alt: name || alt,\n crossOrigin,\n draggable: false,\n hidden: fallback,\n loading,\n referrerPolicy,\n onLoad: handlerAll(onLoad, () => setLoaded(true)),\n }),\n [src, srcSet, alt, crossOrigin, loading, referrerPolicy, fallback, name],\n )\n\n const getFallbackProps: PropGetter = useCallback(\n (props) => ({\n ...props,\n \"aria-label\": !fallbackMessage\n ? name || alt || t(\"Avatar Icon\")\n : undefined,\n children: fallbackMessage || initials || icon,\n hidden: !fallback,\n role: !fallbackMessage ? \"img\" : undefined,\n }),\n [name, initials, fallback, icon, fallbackMessage, alt, t],\n )\n\n return {\n name,\n loaded,\n getFallbackProps,\n getGroupProps,\n getImageProps,\n getRootProps,\n }\n}\n\nexport type UseAvatarReturn = ReturnType<typeof useAvatar>\n"],"mappings":";;;;;;;AAQA,MAAM,iBAAiB,SAAiB;CACtC,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG;CACnC,MAAM,YAAY,MAAM,MAAM;CAC9B,MAAM,WAAW,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,KAAK;CAE9D,OAAO,aAAa,WAChB,GAAG,UAAU,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,MAC1C,UAAU,OAAO,CAAC;AACxB;AAkDA,MAAa,aAAa,EACxB,MACA,KACA,QACA,KACA,aACA,UAAU,iBACV,SAAS,eACT,MACA,SACA,iBAAiB,eACjB,GAAG,SACe,CAAC,MAAM;CACzB,MAAM,YAAA,GAAA,MAAA,OAAA,CAAoC,IAAI;CAC9C,MAAM,WAAW,OAAO,OAAO,IAAI,IAAI,KAAA;CACvC,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,SAAA,CAA+B,KAAK;CACnD,MAAM,WAAW,CAAC,OAAO,CAAC;CAC1B,MAAM,EAAE,MAAMA,sBAAAA,QAAQ,QAAQ;CAE9B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAEvB,IAAI,CAAC,CAAC,SAAS,QAAQ,OAAO,SAAS,QAAQ,UAAU,UAAU,IAAI;CACzE,GAAG,CAAC,CAAC;CAEL,MAAM,iBAAA,GAAA,MAAA,YAAA,EAAyC,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;CAE3E,MAAM,gBAAA,GAAA,MAAA,YAAA,EACH,WAAW;EACV,GAAGC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC;EAC3B,kBAAA,GAAA,oBAAA,cAAA,SAAA,CAA0B,CAAC,CAAC,eAAe;EAC3C,gBAAA,GAAA,oBAAA,cAAA,SAAA,CAAwB,MAAM;CAChC,IACA;EAAC;EAAQ;EAAiB;CAAI,CAChC;CAEA,MAAM,iBAAA,GAAA,MAAA,YAAA,EACH,EAAE,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO;EACnC,GAAG;EACH,KAAKC,YAAAA,UAAU,KAAK,QAAQ;EAC5B;EACA;EACA,KAAK,QAAQ;EACb;EACA,WAAW;EACX,QAAQ;EACR;EACA;EACA,SAAA,GAAA,oBAAA,cAAA,WAAA,CAAmB,cAAc,UAAU,IAAI,CAAC;CAClD,IACA;EAAC;EAAK;EAAQ;EAAK;EAAa;EAAS;EAAgB;EAAU;CAAI,CACzE;CAeA,OAAO;EACL;EACA;EACA,mBAAA,GAAA,MAAA,YAAA,EAfC,WAAW;GACV,GAAG;GACH,cAAc,CAAC,kBACX,QAAQ,OAAO,EAAE,aAAa,IAC9B,KAAA;GACJ,UAAU,mBAAmB,YAAY;GACzC,QAAQ,CAAC;GACT,MAAM,CAAC,kBAAkB,QAAQ,KAAA;EACnC,IACA;GAAC;GAAM;GAAU;GAAU;GAAM;GAAiB;GAAK;EAAC,CAMzC;EACf;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-avatar.cjs","names":["useRef","useState","useI18n","useCallback","mergeProps","mergeRefs"],"sources":["../../../../src/components/avatar/use-avatar.ts"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { type HTMLProps, mergeProps, type PropGetter } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr, handlerAll, mergeRefs } from \"../../utils\"\n\nconst defaultFormat = (name: string) => {\n const names = name.trim().split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\nexport interface UseAvatarProps extends HTMLProps {\n /**\n * The `HTMLImageElement` property `alt`.\n */\n alt?: HTMLProps<\"img\">[\"alt\"]\n /**\n * The `HTMLImageElement` property `crossOrigin`.\n */\n crossOrigin?: HTMLProps<\"img\">[\"crossOrigin\"]\n /**\n * The fallback text to display if the image is not provided.\n */\n fallback?: ReactNode\n /**\n * The avatar icon to use.\n */\n icon?: ReactElement\n /**\n * Defines loading strategy.\n */\n loading?: HTMLProps<\"img\">[\"loading\"]\n /**\n * The name of the person in the avatar.\n *\n * - If `src` has loaded, the name will be used as the `alt` attribute of the `img`\n * - If `src` is not loaded, the name will be used to create the initials\n */\n name?: string\n /**\n * Defining which referrer is sent when fetching the resource.\n *\n * @default 'no-referrer'\n */\n referrerPolicy?: HTMLProps<\"img\">[\"referrerPolicy\"]\n /**\n * The image url of the avatar.\n */\n src?: HTMLProps<\"img\">[\"src\"]\n /**\n * List of sources to use for different screen resolutions.\n */\n srcSet?: HTMLProps<\"img\">[\"srcSet\"]\n /**\n * Function to get the initials to display.\n */\n format?: (name: string) => string\n}\n\nexport const useAvatar = ({\n name,\n src,\n srcSet,\n alt,\n crossOrigin,\n fallback: fallbackMessage,\n format = defaultFormat,\n icon,\n loading,\n referrerPolicy = \"no-referrer\",\n ...rest\n}: UseAvatarProps = {}) => {\n const imageRef = useRef<HTMLImageElement>(null)\n const initials = name ? format(name) : undefined\n const [loaded, setLoaded] = useState<boolean>(false)\n const fallback = !src || !loaded\n const { t } = useI18n(\"avatar\")\n\n useEffect(() => {\n if (!imageRef.current) return\n\n if (!!imageRef.current.src && imageRef.current.complete) setLoaded(true)\n }, [])\n\n const getGroupProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...mergeProps(rest, props)(),\n \"data-fallback\": dataAttr(!!fallbackMessage),\n \"data-loaded\": dataAttr(loaded),\n }),\n [loaded, fallbackMessage, rest],\n )\n\n const getImageProps: PropGetter<\"img\"> = useCallback(\n ({ ref, onLoad, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, imageRef),\n src,\n srcSet,\n alt: name || alt,\n crossOrigin,\n draggable: false,\n hidden: fallback,\n loading,\n referrerPolicy,\n onLoad: handlerAll(onLoad, () => setLoaded(true)),\n }),\n [src, srcSet, alt, crossOrigin, loading, referrerPolicy, fallback, name],\n )\n\n const getFallbackProps: PropGetter = useCallback(\n (props) => ({\n ...props,\n \"aria-label\": !fallbackMessage\n ? name || alt || t(\"Avatar Icon\")\n : undefined,\n children: fallbackMessage || initials || icon,\n hidden: !fallback,\n role: !fallbackMessage ? \"img\" : undefined,\n }),\n [name, initials, fallback, icon, fallbackMessage, alt, t],\n )\n\n return {\n name,\n loaded,\n getFallbackProps,\n getGroupProps,\n getImageProps,\n getRootProps,\n }\n}\n\nexport type UseAvatarReturn = ReturnType<typeof useAvatar>\n"],"mappings":";;;;;;;;AAQA,MAAM,iBAAiB,SAAiB;CACtC,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG;CACnC,MAAM,YAAY,MAAM,MAAM;CAC9B,MAAM,WAAW,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,KAAK;CAE9D,OAAO,aAAa,WAChB,GAAG,UAAU,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,MAC1C,UAAU,OAAO,CAAC;AACxB;AAkDA,MAAa,aAAa,EACxB,MACA,KACA,QACA,KACA,aACA,UAAU,iBACV,SAAS,eACT,MACA,SACA,iBAAiB,eACjB,GAAG,SACe,CAAC,MAAM;CACzB,MAAM,YAAA,GAAWA,MAAAA,OAAAA,CAAyB,IAAI;CAC9C,MAAM,WAAW,OAAO,OAAO,IAAI,IAAI,KAAA;CACvC,MAAM,CAAC,QAAQ,cAAA,GAAaC,MAAAA,SAAAA,CAAkB,KAAK;CACnD,MAAM,WAAW,CAAC,OAAO,CAAC;CAC1B,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,QAAQ;CAE9B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAEvB,IAAI,CAAC,CAAC,SAAS,QAAQ,OAAO,SAAS,QAAQ,UAAU,UAAU,IAAI;CACzE,GAAG,CAAC,CAAC;CAEL,MAAM,iBAAA,GAA4BC,MAAAA,YAAAA,EAAa,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;CAE3E,MAAM,gBAAA,GAA2BA,MAAAA,YAAAA,EAC9B,WAAW;EACV,GAAGC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC;EAC3B,kBAAA,GAAA,oBAAA,cAAiB,SAAA,CAAS,CAAC,CAAC,eAAe;EAC3C,gBAAA,GAAA,oBAAA,cAAe,SAAA,CAAS,MAAM;CAChC,IACA;EAAC;EAAQ;EAAiB;CAAI,CAChC;CAEA,MAAM,iBAAA,GAAmCD,MAAAA,YAAAA,EACtC,EAAE,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO;EACnC,GAAG;EACH,KAAKE,YAAAA,UAAU,KAAK,QAAQ;EAC5B;EACA;EACA,KAAK,QAAQ;EACb;EACA,WAAW;EACX,QAAQ;EACR;EACA;EACA,SAAA,GAAA,oBAAA,cAAQ,WAAA,CAAW,cAAc,UAAU,IAAI,CAAC;CAClD,IACA;EAAC;EAAK;EAAQ;EAAK;EAAa;EAAS;EAAgB;EAAU;CAAI,CACzE;CAeA,OAAO;EACL;EACA;EACA,mBAAA,GAhBmCF,MAAAA,YAAAA,EAClC,WAAW;GACV,GAAG;GACH,cAAc,CAAC,kBACX,QAAQ,OAAO,EAAE,aAAa,IAC9B,KAAA;GACJ,UAAU,mBAAmB,YAAY;GACzC,QAAQ,CAAC;GACT,MAAM,CAAC,kBAAkB,QAAQ,KAAA;EACnC,IACA;GAAC;GAAM;GAAU;GAAU;GAAM;GAAiB;GAAK;EAAC,CAMzC;EACf;EACA;EACA;CACF;AACF"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_children = require("../../utils/children.cjs");
3
4
  const require_factory = require("../../core/system/factory.cjs");
4
5
  const require_create_component = require("../../core/components/create-component.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"blockquote.cjs","names":["createSlotComponent","blockquoteStyle","useValidChildren","useFindChild","styled","QuoteIcon"],"sources":["../../../../src/components/blockquote/blockquote.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { BlockquoteStyle } from \"./blockquote.style\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useFindChild, useValidChildren } from \"../../utils\"\nimport { QuoteIcon } from \"../icon\"\nimport { blockquoteStyle } from \"./blockquote.style\"\n\ninterface ComponentContext\n extends\n Pick<BlockquoteContentProps, \"citeUrl\">,\n Pick<BlockquoteCaptionProps, \"withDash\"> {}\n\nexport interface BlockquoteRootProps\n extends\n Omit<HTMLStyledProps<\"figure\">, \"cite\">,\n ThemeProps<BlockquoteStyle>,\n Pick<BlockquoteContentProps, \"citeUrl\">,\n Pick<BlockquoteCaptionProps, \"withDash\"> {\n /**\n * The citation of the blockquote.\n */\n cite?: ReactNode\n /**\n * The icon of the blockquote.\n */\n icon?: ReactNode\n /**\n * The props for the `BlockquoteCaption` component.\n */\n captionProps?: HTMLStyledProps<\"figcaption\">\n /**\n * The props for the `BlockquoteCite` component.\n */\n citeProps?: HTMLStyledProps<\"cite\">\n /**\n * The props for the `BlockquoteContent` component.\n */\n contentProps?: HTMLStyledProps<\"blockquote\">\n}\n\nconst {\n ComponentContext,\n PropsContext: BlockquotePropsContext,\n useComponentContext,\n usePropsContext: useBlockquotePropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<BlockquoteRootProps, BlockquoteStyle, ComponentContext>(\n \"blockquote\",\n blockquoteStyle,\n)\n\nexport { BlockquotePropsContext, useBlockquotePropsContext }\n\n/**\n * `Blockquote` is a component that represents a blockquote. By default, it renders a `blockquote` element.\n *\n * @see https://yamada-ui.com/docs/components/blockquote\n */\nexport const BlockquoteRoot = withProvider<\"figure\", BlockquoteRootProps>(\n ({\n children,\n cite,\n citeUrl,\n icon,\n withDash,\n captionProps,\n citeProps,\n contentProps,\n ...rest\n }) => {\n const validChildren = useValidChildren(children)\n const customBlockquoteContent = useFindChild(\n validChildren,\n BlockquoteContent,\n )\n const customBlockquoteCaption = useFindChild(\n validChildren,\n BlockquoteCaption,\n )\n\n const context = useMemo(() => ({ citeUrl, withDash }), [citeUrl, withDash])\n\n return (\n <ComponentContext value={context}>\n <styled.figure {...rest}>\n {icon}\n\n {customBlockquoteContent ?? (\n <BlockquoteContent {...contentProps}>{children}</BlockquoteContent>\n )}\n\n {customBlockquoteCaption ??\n (cite ? (\n <BlockquoteCaption {...captionProps}>\n <BlockquoteCite {...citeProps}>{cite}</BlockquoteCite>\n </BlockquoteCaption>\n ) : null)}\n </styled.figure>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\nexport interface BlockquoteContentProps extends HTMLStyledProps<\"blockquote\"> {\n /**\n * The URL of the citation of the blockquote.\n */\n citeUrl?: string\n}\n\nexport const BlockquoteContent = withContext<\n \"blockquote\",\n BlockquoteContentProps\n>(\"blockquote\", \"content\")(\n undefined,\n ({ cite, citeUrl: citeUrlProp, ...rest }) => {\n const { citeUrl } = useComponentContext()\n\n return { ...rest, citeurl: cite ?? citeUrlProp ?? citeUrl }\n },\n)\n\nexport interface BlockquoteCaptionProps extends HTMLStyledProps<\"figcaption\"> {\n /**\n * If `true`, the dash will be shown.\n *\n * @default false\n */\n withDash?: boolean\n}\n\nexport const BlockquoteCaption = withContext<\n \"figcaption\",\n BlockquoteCaptionProps\n>(\"figcaption\", \"caption\")(\n undefined,\n ({ children, withDash: withDashProp, ...rest }) => {\n const { withDash } = useComponentContext()\n\n withDashProp ??= withDash\n\n return {\n ...rest,\n children: (\n <>\n {withDashProp ? <>&mdash;</> : null} {children}\n </>\n ),\n }\n },\n)\n\nexport interface BlockquoteCiteProps extends HTMLStyledProps<\"cite\"> {}\n\nexport const BlockquoteCite = withContext<\"cite\", BlockquoteCiteProps>(\n \"cite\",\n \"cite\",\n)()\n\nexport interface BlockquoteIconProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const BlockquoteIcon = withContext<\"svg\", BlockquoteIconProps>(\n QuoteIcon,\n \"icon\",\n)()\n"],"mappings":";;;;;;;;;AA4CA,MAAM,EACJ,kBACA,cAAc,wBACd,qBACA,iBAAiB,2BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,eACF;;;;;;AASA,MAAa,iBAAiB,cAC3B,EACC,UACA,MACA,SACA,MACA,UACA,cACA,WACA,cACA,GAAG,WACC;CACJ,MAAM,gBAAgBC,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,0BAA0BC,iBAAAA,aAC9B,eACA,iBACF;CACA,MAAM,0BAA0BA,iBAAAA,aAC9B,eACA,iBACF;CAEA,MAAM,WAAA,GAAA,MAAA,QAAA,QAAyB;EAAE;EAAS;CAAS,IAAI,CAAC,SAAS,QAAQ,CAAC;CAE1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,gBAAAA,OAAO,QAAR;GAAe,GAAI;GAAnB,UAAA;IACG;IAEA,2BACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAD;KAAmB,GAAI;KAAe;IAA4B,CAAA;IAGnE,4BACE,OACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAD;KAAmB,GAAI;KACrB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;MAAgB,GAAI;MAAY,UAAA;KAAqB,CAAA;IACpC,CAAA,IACjB;GACO;;CACC,CAAA;AAEtB,GACA,MACF,CAAC,CAAC;AASF,MAAa,oBAAoB,YAG/B,cAAc,SAAS,CAAC,CACxB,KAAA,IACC,EAAE,MAAM,SAAS,aAAa,GAAG,WAAW;CAC3C,MAAM,EAAE,YAAY,oBAAoB;CAExC,OAAO;EAAE,GAAG;EAAM,SAAS,QAAQ,eAAe;CAAQ;AAC5D,CACF;AAWA,MAAa,oBAAoB,YAG/B,cAAc,SAAS,CAAC,CACxB,KAAA,IACC,EAAE,UAAU,UAAU,cAAc,GAAG,WAAW;CACjD,MAAM,EAAE,aAAa,oBAAoB;CAEzC,iBAAiB;CAEjB,OAAO;EACL,GAAG;EACH,UACE,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA;GACG,eAAe,iBAAA,GAAA,kBAAA,IAAA,CAAA,kBAAA,UAAA,EAAA,UAAE,IAAS,CAAA,IAAI;GAAK;GAAE;EACtC,EAAA,CAAA;CAEN;AACF,CACF;AAIA,MAAa,iBAAiB,YAC5B,QACA,MACF,CAAC,CAAC;AAIF,MAAa,iBAAiB,YAC5BC,mBAAAA,WACA,MACF,CAAC,CAAC"}
1
+ {"version":3,"file":"blockquote.cjs","names":["createSlotComponent","blockquoteStyle","useValidChildren","useFindChild","useMemo","styled","QuoteIcon"],"sources":["../../../../src/components/blockquote/blockquote.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { BlockquoteStyle } from \"./blockquote.style\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useFindChild, useValidChildren } from \"../../utils\"\nimport { QuoteIcon } from \"../icon\"\nimport { blockquoteStyle } from \"./blockquote.style\"\n\ninterface ComponentContext\n extends\n Pick<BlockquoteContentProps, \"citeUrl\">,\n Pick<BlockquoteCaptionProps, \"withDash\"> {}\n\nexport interface BlockquoteRootProps\n extends\n Omit<HTMLStyledProps<\"figure\">, \"cite\">,\n ThemeProps<BlockquoteStyle>,\n Pick<BlockquoteContentProps, \"citeUrl\">,\n Pick<BlockquoteCaptionProps, \"withDash\"> {\n /**\n * The citation of the blockquote.\n */\n cite?: ReactNode\n /**\n * The icon of the blockquote.\n */\n icon?: ReactNode\n /**\n * The props for the `BlockquoteCaption` component.\n */\n captionProps?: HTMLStyledProps<\"figcaption\">\n /**\n * The props for the `BlockquoteCite` component.\n */\n citeProps?: HTMLStyledProps<\"cite\">\n /**\n * The props for the `BlockquoteContent` component.\n */\n contentProps?: HTMLStyledProps<\"blockquote\">\n}\n\nconst {\n ComponentContext,\n PropsContext: BlockquotePropsContext,\n useComponentContext,\n usePropsContext: useBlockquotePropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<BlockquoteRootProps, BlockquoteStyle, ComponentContext>(\n \"blockquote\",\n blockquoteStyle,\n)\n\nexport { BlockquotePropsContext, useBlockquotePropsContext }\n\n/**\n * `Blockquote` is a component that represents a blockquote. By default, it renders a `blockquote` element.\n *\n * @see https://yamada-ui.com/docs/components/blockquote\n */\nexport const BlockquoteRoot = withProvider<\"figure\", BlockquoteRootProps>(\n ({\n children,\n cite,\n citeUrl,\n icon,\n withDash,\n captionProps,\n citeProps,\n contentProps,\n ...rest\n }) => {\n const validChildren = useValidChildren(children)\n const customBlockquoteContent = useFindChild(\n validChildren,\n BlockquoteContent,\n )\n const customBlockquoteCaption = useFindChild(\n validChildren,\n BlockquoteCaption,\n )\n\n const context = useMemo(() => ({ citeUrl, withDash }), [citeUrl, withDash])\n\n return (\n <ComponentContext value={context}>\n <styled.figure {...rest}>\n {icon}\n\n {customBlockquoteContent ?? (\n <BlockquoteContent {...contentProps}>{children}</BlockquoteContent>\n )}\n\n {customBlockquoteCaption ??\n (cite ? (\n <BlockquoteCaption {...captionProps}>\n <BlockquoteCite {...citeProps}>{cite}</BlockquoteCite>\n </BlockquoteCaption>\n ) : null)}\n </styled.figure>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\nexport interface BlockquoteContentProps extends HTMLStyledProps<\"blockquote\"> {\n /**\n * The URL of the citation of the blockquote.\n */\n citeUrl?: string\n}\n\nexport const BlockquoteContent = withContext<\n \"blockquote\",\n BlockquoteContentProps\n>(\"blockquote\", \"content\")(\n undefined,\n ({ cite, citeUrl: citeUrlProp, ...rest }) => {\n const { citeUrl } = useComponentContext()\n\n return { ...rest, citeurl: cite ?? citeUrlProp ?? citeUrl }\n },\n)\n\nexport interface BlockquoteCaptionProps extends HTMLStyledProps<\"figcaption\"> {\n /**\n * If `true`, the dash will be shown.\n *\n * @default false\n */\n withDash?: boolean\n}\n\nexport const BlockquoteCaption = withContext<\n \"figcaption\",\n BlockquoteCaptionProps\n>(\"figcaption\", \"caption\")(\n undefined,\n ({ children, withDash: withDashProp, ...rest }) => {\n const { withDash } = useComponentContext()\n\n withDashProp ??= withDash\n\n return {\n ...rest,\n children: (\n <>\n {withDashProp ? <>&mdash;</> : null} {children}\n </>\n ),\n }\n },\n)\n\nexport interface BlockquoteCiteProps extends HTMLStyledProps<\"cite\"> {}\n\nexport const BlockquoteCite = withContext<\"cite\", BlockquoteCiteProps>(\n \"cite\",\n \"cite\",\n)()\n\nexport interface BlockquoteIconProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const BlockquoteIcon = withContext<\"svg\", BlockquoteIconProps>(\n QuoteIcon,\n \"icon\",\n)()\n"],"mappings":";;;;;;;;;;AA4CA,MAAM,EACJ,kBACA,cAAc,wBACd,qBACA,iBAAiB,2BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,eACF;;;;;;AASA,MAAa,iBAAiB,cAC3B,EACC,UACA,MACA,SACA,MACA,UACA,cACA,WACA,cACA,GAAG,WACC;CACJ,MAAM,gBAAgBC,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,0BAA0BC,iBAAAA,aAC9B,eACA,iBACF;CACA,MAAM,0BAA0BA,iBAAAA,aAC9B,eACA,iBACF;CAEA,MAAM,WAAA,GAAUC,MAAAA,QAAAA,QAAe;EAAE;EAAS;CAAS,IAAI,CAAC,SAAS,QAAQ,CAAC;CAE1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,gBAAAA,OAAO,QAAR;GAAe,GAAI;GAAnB,UAAA;IACG;IAEA,2BACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAD;KAAmB,GAAI;KAAe;IAA4B,CAAA;IAGnE,4BACE,OACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAD;KAAmB,GAAI;KACrB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;MAAgB,GAAI;MAAY,UAAA;KAAqB,CAAA;IACpC,CAAA,IACjB;GACO;;CACC,CAAA;AAEtB,GACA,MACF,CAAC,CAAC;AASF,MAAa,oBAAoB,YAG/B,cAAc,SAAS,CAAC,CACxB,KAAA,IACC,EAAE,MAAM,SAAS,aAAa,GAAG,WAAW;CAC3C,MAAM,EAAE,YAAY,oBAAoB;CAExC,OAAO;EAAE,GAAG;EAAM,SAAS,QAAQ,eAAe;CAAQ;AAC5D,CACF;AAWA,MAAa,oBAAoB,YAG/B,cAAc,SAAS,CAAC,CACxB,KAAA,IACC,EAAE,UAAU,UAAU,cAAc,GAAG,WAAW;CACjD,MAAM,EAAE,aAAa,oBAAoB;CAEzC,iBAAiB;CAEjB,OAAO;EACL,GAAG;EACH,UACE,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA;GACG,eAAe,iBAAA,GAAA,kBAAA,IAAA,CAAA,kBAAA,UAAA,EAAA,UAAE,IAAS,CAAA,IAAI;GAAK;GAAE;EACtC,EAAA,CAAA;CAEN;AACF,CACF;AAIA,MAAa,iBAAiB,YAC5B,QACA,MACF,CAAC,CAAC;AAIF,MAAa,iBAAiB,YAC5BC,mBAAAA,WACA,MACF,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_factory = require("../../core/system/factory.cjs");
3
4
  const require_create_component = require("../../core/components/create-component.cjs");
4
5
  const require_chevron_right_icon = require("../icon/icons/chevron-right-icon.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.cjs","names":["createSlotComponent","breadcrumbStyle","useBreadcrumb","styled","Fragment","ChevronRightIcon","EllipsisIcon"],"sources":["../../../../src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement } from \"react\"\nimport type { HTMLStyledProps, PropGetter, ThemeProps } from \"../../core\"\nimport type { BreadcrumbStyle } from \"./breadcrumb.style\"\nimport type { UseBreadcrumbProps } from \"./use-breadcrumb\"\nimport { Fragment, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { ChevronRightIcon, EllipsisIcon } from \"../icon\"\nimport { breadcrumbStyle } from \"./breadcrumb.style\"\nimport { useBreadcrumb } from \"./use-breadcrumb\"\n\ninterface ComponentContext {\n getEllipsisProps: PropGetter<\"svg\">\n getLinkProps: PropGetter<\"a\", { currentPage?: boolean }>\n}\n\nexport interface BreadcrumbRootProps\n extends\n HTMLStyledProps<\"nav\">,\n ThemeProps<BreadcrumbStyle>,\n Omit<UseBreadcrumbProps, \"endBoundaries\" | \"startBoundaries\"> {\n /**\n * Number of elements visible on the end(right) edges.\n *\n * @default 0\n */\n endBoundaries?: number\n /**\n * The visual separator between each breadcrumb item.\n *\n * @default '/'\n */\n separator?: ReactElement | string\n /**\n * Number of elements visible on the start(left) edges.\n *\n * @default 0\n */\n startBoundaries?: number\n /**\n * Props for item element.\n */\n itemProps?: BreadcrumbItemProps\n /**\n * Props for ol element.\n */\n listProps?: HTMLStyledProps<\"ol\">\n /**\n * Props for separator element.\n */\n separatorProps?: BreadcrumbSeparatorProps\n}\n\nconst {\n ComponentContext,\n PropsContext: BreadcrumbPropsContext,\n useComponentContext,\n usePropsContext: useBreadcrumbPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<BreadcrumbRootProps, BreadcrumbStyle, ComponentContext>(\n \"breadcrumb\",\n breadcrumbStyle,\n)\n\nexport { BreadcrumbPropsContext, useBreadcrumbPropsContext }\n\n/**\n * `Breadcrumb` is a component that helps users understand the hierarchy of a website.\n *\n * @see https://yamada-ui.com/docs/components/breadcrumb\n */\nexport const BreadcrumbRoot = withProvider<\"nav\", BreadcrumbRootProps>(\n ({\n endBoundaries,\n gap,\n separator,\n startBoundaries,\n itemProps,\n listProps,\n separatorProps,\n ...rest\n }) => {\n const {\n children,\n getEllipsisProps,\n getLinkProps,\n getListProps,\n getRootProps,\n } = useBreadcrumb({\n ellipsis: <BreadcrumbEllipsis />,\n endBoundaries,\n link: <BreadcrumbLink />,\n startBoundaries,\n ...rest,\n })\n\n const context = useMemo(\n () => ({ getEllipsisProps, getLinkProps }),\n [getEllipsisProps, getLinkProps],\n )\n\n return (\n <ComponentContext value={context}>\n <styled.nav {...getRootProps()}>\n <BreadcrumbList {...getListProps({ gap, ...listProps })}>\n {children.map((child, index) => {\n const last = index === children.length - 1\n\n return (\n <Fragment key={index}>\n <BreadcrumbItem {...itemProps}>{child}</BreadcrumbItem>\n\n {!last ? (\n <BreadcrumbSeparator {...separatorProps}>\n {separator}\n </BreadcrumbSeparator>\n ) : null}\n </Fragment>\n )\n })}\n </BreadcrumbList>\n </styled.nav>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\ninterface BreadcrumbListProps extends HTMLStyledProps<\"ol\"> {}\n\nconst BreadcrumbList = withContext<\"ol\", BreadcrumbListProps>(\"ol\", \"list\")()\n\ninterface BreadcrumbItemProps extends HTMLStyledProps<\"li\"> {}\n\nconst BreadcrumbItem = withContext<\"li\", BreadcrumbItemProps>(\"li\", \"item\")()\n\ninterface BreadcrumbSeparatorProps extends HTMLStyledProps<\"li\"> {}\n\nconst BreadcrumbSeparator = withContext<\"li\", BreadcrumbSeparatorProps>(\n BreadcrumbItem,\n \"separator\",\n)(({ children, ...rest }) => ({\n children: children ?? <ChevronRightIcon />,\n ...rest,\n}))\n\nexport interface BreadcrumbLinkProps extends HTMLStyledProps<\"a\"> {\n /**\n * If `true`, change to span element.\n *\n * @default false\n */\n currentPage?: boolean\n}\n\nexport const BreadcrumbLink = withContext<\"a\", BreadcrumbLinkProps>(\n \"a\",\n \"link\",\n)(undefined, ({ currentPage, ...rest }) => {\n const { getLinkProps } = useComponentContext()\n\n return {\n as: !currentPage ? \"a\" : \"span\",\n ...getLinkProps({ currentPage, ...rest }),\n }\n})\n\nexport interface BreadcrumbEllipsisProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const BreadcrumbEllipsis = withContext<\"svg\", BreadcrumbEllipsisProps>(\n EllipsisIcon,\n \"ellipsis\",\n)(undefined, (props) => {\n const { getEllipsisProps } = useComponentContext()\n\n return { ...getEllipsisProps(props) }\n})\n"],"mappings":";;;;;;;;;;AAsDA,MAAM,EACJ,kBACA,cAAc,wBACd,qBACA,iBAAiB,2BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,eACF;;;;;;AASA,MAAa,iBAAiB,cAC3B,EACC,eACA,KACA,WACA,iBACA,WACA,WACA,gBACA,GAAG,WACC;CACJ,MAAM,EACJ,UACA,kBACA,cACA,cACA,iBACEC,uBAAAA,cAAc;EAChB,UAAU,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAD,CAAqB,CAAA;EAC/B;EACA,MAAM,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD,CAAiB,CAAA;EACvB;EACA,GAAG;CACL,CAAC;CAED,MAAM,WAAA,GAAA,MAAA,QAAA,QACG;EAAE;EAAkB;CAAa,IACxC,CAAC,kBAAkB,YAAY,CACjC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,OAAO,KAAR;GAAY,GAAI,aAAa;GAC3B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;IAAgB,GAAI,aAAa;KAAE;KAAK,GAAG;IAAU,CAAC;IACnD,UAAA,SAAS,KAAK,OAAO,UAAU;KAC9B,MAAM,OAAO,UAAU,SAAS,SAAS;KAEzC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,MAAAA,UAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;MAAgB,GAAI;MAAY,UAAA;KAAsB,CAAA,GAErD,CAAC,OACA,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAD;MAAqB,GAAI;MACtB,UAAA;KACkB,CAAA,IACnB,IACI,EAAA,GARK,KAQL;IAEd,CAAC;GACa,CAAA;EACN,CAAA;CACI,CAAA;AAEtB,GACA,MACF,CAAC,CAAC;AAIF,MAAM,iBAAiB,YAAuC,MAAM,MAAM,CAAC,CAAC;AAI5E,MAAM,iBAAiB,YAAuC,MAAM,MAAM,CAAC,CAAC;AAI5E,MAAM,sBAAsB,YAC1B,gBACA,WACF,CAAC,EAAE,EAAE,UAAU,GAAG,YAAY;CAC5B,UAAU,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,kBAAD,CAAmB,CAAA;CACzC,GAAG;AACL,EAAE;AAWF,MAAa,iBAAiB,YAC5B,KACA,MACF,CAAC,CAAC,KAAA,IAAY,EAAE,aAAa,GAAG,WAAW;CACzC,MAAM,EAAE,iBAAiB,oBAAoB;CAE7C,OAAO;EACL,IAAI,CAAC,cAAc,MAAM;EACzB,GAAG,aAAa;GAAE;GAAa,GAAG;EAAK,CAAC;CAC1C;AACF,CAAC;AAID,MAAa,qBAAqB,YAChCC,sBAAAA,cACA,UACF,CAAC,CAAC,KAAA,IAAY,UAAU;CACtB,MAAM,EAAE,qBAAqB,oBAAoB;CAEjD,OAAO,EAAE,GAAG,iBAAiB,KAAK,EAAE;AACtC,CAAC"}
1
+ {"version":3,"file":"breadcrumb.cjs","names":["createSlotComponent","breadcrumbStyle","useBreadcrumb","useMemo","styled","Fragment","ChevronRightIcon","EllipsisIcon"],"sources":["../../../../src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement } from \"react\"\nimport type { HTMLStyledProps, PropGetter, ThemeProps } from \"../../core\"\nimport type { BreadcrumbStyle } from \"./breadcrumb.style\"\nimport type { UseBreadcrumbProps } from \"./use-breadcrumb\"\nimport { Fragment, useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { ChevronRightIcon, EllipsisIcon } from \"../icon\"\nimport { breadcrumbStyle } from \"./breadcrumb.style\"\nimport { useBreadcrumb } from \"./use-breadcrumb\"\n\ninterface ComponentContext {\n getEllipsisProps: PropGetter<\"svg\">\n getLinkProps: PropGetter<\"a\", { currentPage?: boolean }>\n}\n\nexport interface BreadcrumbRootProps\n extends\n HTMLStyledProps<\"nav\">,\n ThemeProps<BreadcrumbStyle>,\n Omit<UseBreadcrumbProps, \"endBoundaries\" | \"startBoundaries\"> {\n /**\n * Number of elements visible on the end(right) edges.\n *\n * @default 0\n */\n endBoundaries?: number\n /**\n * The visual separator between each breadcrumb item.\n *\n * @default '/'\n */\n separator?: ReactElement | string\n /**\n * Number of elements visible on the start(left) edges.\n *\n * @default 0\n */\n startBoundaries?: number\n /**\n * Props for item element.\n */\n itemProps?: BreadcrumbItemProps\n /**\n * Props for ol element.\n */\n listProps?: HTMLStyledProps<\"ol\">\n /**\n * Props for separator element.\n */\n separatorProps?: BreadcrumbSeparatorProps\n}\n\nconst {\n ComponentContext,\n PropsContext: BreadcrumbPropsContext,\n useComponentContext,\n usePropsContext: useBreadcrumbPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<BreadcrumbRootProps, BreadcrumbStyle, ComponentContext>(\n \"breadcrumb\",\n breadcrumbStyle,\n)\n\nexport { BreadcrumbPropsContext, useBreadcrumbPropsContext }\n\n/**\n * `Breadcrumb` is a component that helps users understand the hierarchy of a website.\n *\n * @see https://yamada-ui.com/docs/components/breadcrumb\n */\nexport const BreadcrumbRoot = withProvider<\"nav\", BreadcrumbRootProps>(\n ({\n endBoundaries,\n gap,\n separator,\n startBoundaries,\n itemProps,\n listProps,\n separatorProps,\n ...rest\n }) => {\n const {\n children,\n getEllipsisProps,\n getLinkProps,\n getListProps,\n getRootProps,\n } = useBreadcrumb({\n ellipsis: <BreadcrumbEllipsis />,\n endBoundaries,\n link: <BreadcrumbLink />,\n startBoundaries,\n ...rest,\n })\n\n const context = useMemo(\n () => ({ getEllipsisProps, getLinkProps }),\n [getEllipsisProps, getLinkProps],\n )\n\n return (\n <ComponentContext value={context}>\n <styled.nav {...getRootProps()}>\n <BreadcrumbList {...getListProps({ gap, ...listProps })}>\n {children.map((child, index) => {\n const last = index === children.length - 1\n\n return (\n <Fragment key={index}>\n <BreadcrumbItem {...itemProps}>{child}</BreadcrumbItem>\n\n {!last ? (\n <BreadcrumbSeparator {...separatorProps}>\n {separator}\n </BreadcrumbSeparator>\n ) : null}\n </Fragment>\n )\n })}\n </BreadcrumbList>\n </styled.nav>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\ninterface BreadcrumbListProps extends HTMLStyledProps<\"ol\"> {}\n\nconst BreadcrumbList = withContext<\"ol\", BreadcrumbListProps>(\"ol\", \"list\")()\n\ninterface BreadcrumbItemProps extends HTMLStyledProps<\"li\"> {}\n\nconst BreadcrumbItem = withContext<\"li\", BreadcrumbItemProps>(\"li\", \"item\")()\n\ninterface BreadcrumbSeparatorProps extends HTMLStyledProps<\"li\"> {}\n\nconst BreadcrumbSeparator = withContext<\"li\", BreadcrumbSeparatorProps>(\n BreadcrumbItem,\n \"separator\",\n)(({ children, ...rest }) => ({\n children: children ?? <ChevronRightIcon />,\n ...rest,\n}))\n\nexport interface BreadcrumbLinkProps extends HTMLStyledProps<\"a\"> {\n /**\n * If `true`, change to span element.\n *\n * @default false\n */\n currentPage?: boolean\n}\n\nexport const BreadcrumbLink = withContext<\"a\", BreadcrumbLinkProps>(\n \"a\",\n \"link\",\n)(undefined, ({ currentPage, ...rest }) => {\n const { getLinkProps } = useComponentContext()\n\n return {\n as: !currentPage ? \"a\" : \"span\",\n ...getLinkProps({ currentPage, ...rest }),\n }\n})\n\nexport interface BreadcrumbEllipsisProps extends HTMLStyledProps<\"svg\"> {}\n\nexport const BreadcrumbEllipsis = withContext<\"svg\", BreadcrumbEllipsisProps>(\n EllipsisIcon,\n \"ellipsis\",\n)(undefined, (props) => {\n const { getEllipsisProps } = useComponentContext()\n\n return { ...getEllipsisProps(props) }\n})\n"],"mappings":";;;;;;;;;;;AAsDA,MAAM,EACJ,kBACA,cAAc,wBACd,qBACA,iBAAiB,2BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,eACF;;;;;;AASA,MAAa,iBAAiB,cAC3B,EACC,eACA,KACA,WACA,iBACA,WACA,WACA,gBACA,GAAG,WACC;CACJ,MAAM,EACJ,UACA,kBACA,cACA,cACA,iBACEC,uBAAAA,cAAc;EAChB,UAAU,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAD,CAAqB,CAAA;EAC/B;EACA,MAAM,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD,CAAiB,CAAA;EACvB;EACA,GAAG;CACL,CAAC;CAED,MAAM,WAAA,GAAUC,MAAAA,QAAAA,QACP;EAAE;EAAkB;CAAa,IACxC,CAAC,kBAAkB,YAAY,CACjC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,OAAO,KAAR;GAAY,GAAI,aAAa;GAC3B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;IAAgB,GAAI,aAAa;KAAE;KAAK,GAAG;IAAU,CAAC;IACnD,UAAA,SAAS,KAAK,OAAO,UAAU;KAC9B,MAAM,OAAO,UAAU,SAAS,SAAS;KAEzC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,MAAAA,UAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAD;MAAgB,GAAI;MAAY,UAAA;KAAsB,CAAA,GAErD,CAAC,OACA,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAD;MAAqB,GAAI;MACtB,UAAA;KACkB,CAAA,IACnB,IACI,EAAA,GARK,KAQL;IAEd,CAAC;GACa,CAAA;EACN,CAAA;CACI,CAAA;AAEtB,GACA,MACF,CAAC,CAAC;AAIF,MAAM,iBAAiB,YAAuC,MAAM,MAAM,CAAC,CAAC;AAI5E,MAAM,iBAAiB,YAAuC,MAAM,MAAM,CAAC,CAAC;AAI5E,MAAM,sBAAsB,YAC1B,gBACA,WACF,CAAC,EAAE,EAAE,UAAU,GAAG,YAAY;CAC5B,UAAU,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,kBAAD,CAAmB,CAAA;CACzC,GAAG;AACL,EAAE;AAWF,MAAa,iBAAiB,YAC5B,KACA,MACF,CAAC,CAAC,KAAA,IAAY,EAAE,aAAa,GAAG,WAAW;CACzC,MAAM,EAAE,iBAAiB,oBAAoB;CAE7C,OAAO;EACL,IAAI,CAAC,cAAc,MAAM;EACzB,GAAG,aAAa;GAAE;GAAa,GAAG;EAAK,CAAC;CAC1C;AACF,CAAC;AAID,MAAa,qBAAqB,YAChCC,sBAAAA,cACA,UACF,CAAC,CAAC,KAAA,IAAY,UAAU;CACtB,MAAM,EAAE,qBAAqB,oBAAoB;CAEjD,OAAO,EAAE,GAAG,iBAAiB,KAAK,EAAE;AACtC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_children = require("../../utils/children.cjs");
3
4
  const require_utils_index = require("../../utils/index.cjs");
4
5
  const require_props = require("../../core/components/props.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"use-breadcrumb.cjs","names":["useValidChildren","useI18n","mergeProps"],"sources":["../../../../src/components/breadcrumb/use-breadcrumb.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { ReactNodeOrFunction } from \"../../utils\"\nimport { cloneElement, useCallback, useMemo } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { runIfFn, useValidChildren } from \"../../utils\"\n\nexport interface BreadcrumbItem extends HTMLProps<\"a\"> {\n currentPage?: boolean\n label?: ReactNode\n}\n\nexport interface UseBreadcrumbProps extends HTMLProps<\"nav\"> {\n /**\n * The icon to be used in the ellipsis.\n */\n ellipsis?: ReactNodeOrFunction<{ items: BreadcrumbItem[] }>\n /**\n * Number of elements visible on the end(right) edges.\n *\n * @default 0\n */\n endBoundaries?: number\n /**\n * If provided, generate breadcrumb items based on items.\n */\n items?: BreadcrumbItem[]\n /**\n * The component to be used for the link.\n */\n link?: ReactElement<any>\n /**\n * Number of elements visible on the start(left) edges.\n *\n * @default 0\n */\n startBoundaries?: number\n}\n\nexport const useBreadcrumb = ({\n children,\n ellipsis,\n endBoundaries = 0,\n items = [],\n link,\n startBoundaries = 0,\n ...rest\n}: UseBreadcrumbProps = {}) => {\n const validChildren = useValidChildren(children)\n const length = validChildren.length || items.length\n const { t } = useI18n(\"breadcrumb\")\n\n const hasBoundaries =\n startBoundaries + endBoundaries > 0 &&\n length > startBoundaries + endBoundaries\n\n const renderLink = useCallback(\n (items: BreadcrumbItem[]) => {\n if (!link) return []\n\n return items.map(({ label, ...rest }) =>\n cloneElement<any>(link, { ...link.props, children: label, ...rest }),\n )\n },\n [link],\n )\n\n const renderEllipsis = useCallback(\n (items: BreadcrumbItem[]) => {\n if (!ellipsis) return null\n\n return runIfFn(ellipsis, { items })\n },\n [ellipsis],\n )\n\n const splitItems = useCallback(\n (items: BreadcrumbItem[]) => {\n const length = items.length\n const firstItems = items.slice(0, startBoundaries)\n const ellipsisItems = items.slice(startBoundaries, length - endBoundaries)\n const lastItems = items.slice(length - endBoundaries)\n\n return [firstItems, ellipsisItems, lastItems] as const\n },\n [startBoundaries, endBoundaries],\n )\n\n const cloneChildren = useMemo(() => {\n const hasChildren = !!validChildren.length\n\n if (hasChildren) {\n return validChildren\n } else if (hasBoundaries) {\n const [firstItems, ellipsisItems, lastItems] = splitItems(items)\n\n return [\n ...renderLink(firstItems),\n renderEllipsis(ellipsisItems),\n ...renderLink(lastItems),\n ]\n } else {\n return renderLink(items)\n }\n }, [\n validChildren,\n items,\n hasBoundaries,\n renderEllipsis,\n renderLink,\n splitItems,\n ])\n\n const getRootProps: PropGetter<\"nav\"> = useCallback(\n (props) => mergeProps({ \"aria-label\": t(\"Breadcrumb\") }, rest, props)(),\n [rest, t],\n )\n\n const getListProps: PropGetter<\"ol\"> = useCallback(\n (props) => ({ ...props }),\n [],\n )\n\n const getLinkProps: PropGetter<\"a\", { currentPage?: boolean }> = useCallback(\n ({ href, currentPage, ...props } = {}) => ({\n href: !currentPage ? href : undefined,\n \"aria-current\": currentPage ? \"page\" : undefined,\n ...props,\n }),\n [],\n )\n\n const getEllipsisProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({\n \"aria-label\": t(\"Ellipsis\"),\n role: \"presentation\",\n ...props,\n }),\n [t],\n )\n\n return {\n children: cloneChildren,\n getEllipsisProps,\n getLinkProps,\n getListProps,\n getRootProps,\n }\n}\n\nexport type UseBreadcrumbReturn = ReturnType<typeof useBreadcrumb>\n"],"mappings":";;;;;;;AA0CA,MAAa,iBAAiB,EAC5B,UACA,UACA,gBAAgB,GAChB,QAAQ,CAAC,GACT,MACA,kBAAkB,GAClB,GAAG,SACmB,CAAC,MAAM;CAC7B,MAAM,gBAAgBA,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,SAAS,cAAc,UAAU,MAAM;CAC7C,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,YAAY;CAElC,MAAM,gBACJ,kBAAkB,gBAAgB,KAClC,SAAS,kBAAkB;CAE7B,MAAM,cAAA,GAAA,MAAA,YAAA,EACH,UAA4B;EAC3B,IAAI,CAAC,MAAM,OAAO,CAAC;EAEnB,OAAO,MAAM,KAAK,EAAE,OAAO,GAAG,YAAA,GAAA,MAAA,aAAA,CACV,MAAM;GAAE,GAAG,KAAK;GAAO,UAAU;GAAO,GAAG;EAAK,CAAC,CACrE;CACF,GACA,CAAC,IAAI,CACP;CAEA,MAAM,kBAAA,GAAA,MAAA,YAAA,EACH,UAA4B;EAC3B,IAAI,CAAC,UAAU,OAAO;EAEtB,QAAA,GAAA,oBAAA,cAAA,QAAA,CAAe,UAAU,EAAE,MAAM,CAAC;CACpC,GACA,CAAC,QAAQ,CACX;CAEA,MAAM,cAAA,GAAA,MAAA,YAAA,EACH,UAA4B;EAC3B,MAAM,SAAS,MAAM;EAKrB,OAAO;GAJY,MAAM,MAAM,GAAG,eAIjB;GAHK,MAAM,MAAM,iBAAiB,SAAS,aAG5B;GAFd,MAAM,MAAM,SAAS,aAEI;EAAC;CAC9C,GACA,CAAC,iBAAiB,aAAa,CACjC;CAEA,MAAM,iBAAA,GAAA,MAAA,QAAA,OAA8B;EAGlC,IAAI,CAFiB,CAAC,cAAc,QAGlC,OAAO;OACF,IAAI,eAAe;GACxB,MAAM,CAAC,YAAY,eAAe,aAAa,WAAW,KAAK;GAE/D,OAAO;IACL,GAAG,WAAW,UAAU;IACxB,eAAe,aAAa;IAC5B,GAAG,WAAW,SAAS;GACzB;EACF,OACE,OAAO,WAAW,KAAK;CAE3B,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,gBAAA,GAAA,MAAA,YAAA,EACH,UAAUC,cAAAA,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,GACtE,CAAC,MAAM,CAAC,CACV;CAEA,MAAM,gBAAA,GAAA,MAAA,YAAA,EACH,WAAW,EAAE,GAAG,MAAM,IACvB,CAAC,CACH;CAEA,MAAM,gBAAA,GAAA,MAAA,YAAA,EACH,EAAE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO;EACzC,MAAM,CAAC,cAAc,OAAO,KAAA;EAC5B,gBAAgB,cAAc,SAAS,KAAA;EACvC,GAAG;CACL,IACA,CAAC,CACH;CAWA,OAAO;EACL,UAAU;EACV,mBAAA,GAAA,MAAA,YAAA,EAVC,WAAW;GACV,cAAc,EAAE,UAAU;GAC1B,MAAM;GACN,GAAG;EACL,IACA,CAAC,CAAC,CAKa;EACf;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-breadcrumb.cjs","names":["useValidChildren","useI18n","useCallback","cloneElement","useMemo","mergeProps"],"sources":["../../../../src/components/breadcrumb/use-breadcrumb.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { ReactNodeOrFunction } from \"../../utils\"\nimport { cloneElement, useCallback, useMemo } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { runIfFn, useValidChildren } from \"../../utils\"\n\nexport interface BreadcrumbItem extends HTMLProps<\"a\"> {\n currentPage?: boolean\n label?: ReactNode\n}\n\nexport interface UseBreadcrumbProps extends HTMLProps<\"nav\"> {\n /**\n * The icon to be used in the ellipsis.\n */\n ellipsis?: ReactNodeOrFunction<{ items: BreadcrumbItem[] }>\n /**\n * Number of elements visible on the end(right) edges.\n *\n * @default 0\n */\n endBoundaries?: number\n /**\n * If provided, generate breadcrumb items based on items.\n */\n items?: BreadcrumbItem[]\n /**\n * The component to be used for the link.\n */\n link?: ReactElement<any>\n /**\n * Number of elements visible on the start(left) edges.\n *\n * @default 0\n */\n startBoundaries?: number\n}\n\nexport const useBreadcrumb = ({\n children,\n ellipsis,\n endBoundaries = 0,\n items = [],\n link,\n startBoundaries = 0,\n ...rest\n}: UseBreadcrumbProps = {}) => {\n const validChildren = useValidChildren(children)\n const length = validChildren.length || items.length\n const { t } = useI18n(\"breadcrumb\")\n\n const hasBoundaries =\n startBoundaries + endBoundaries > 0 &&\n length > startBoundaries + endBoundaries\n\n const renderLink = useCallback(\n (items: BreadcrumbItem[]) => {\n if (!link) return []\n\n return items.map(({ label, ...rest }) =>\n cloneElement<any>(link, { ...link.props, children: label, ...rest }),\n )\n },\n [link],\n )\n\n const renderEllipsis = useCallback(\n (items: BreadcrumbItem[]) => {\n if (!ellipsis) return null\n\n return runIfFn(ellipsis, { items })\n },\n [ellipsis],\n )\n\n const splitItems = useCallback(\n (items: BreadcrumbItem[]) => {\n const length = items.length\n const firstItems = items.slice(0, startBoundaries)\n const ellipsisItems = items.slice(startBoundaries, length - endBoundaries)\n const lastItems = items.slice(length - endBoundaries)\n\n return [firstItems, ellipsisItems, lastItems] as const\n },\n [startBoundaries, endBoundaries],\n )\n\n const cloneChildren = useMemo(() => {\n const hasChildren = !!validChildren.length\n\n if (hasChildren) {\n return validChildren\n } else if (hasBoundaries) {\n const [firstItems, ellipsisItems, lastItems] = splitItems(items)\n\n return [\n ...renderLink(firstItems),\n renderEllipsis(ellipsisItems),\n ...renderLink(lastItems),\n ]\n } else {\n return renderLink(items)\n }\n }, [\n validChildren,\n items,\n hasBoundaries,\n renderEllipsis,\n renderLink,\n splitItems,\n ])\n\n const getRootProps: PropGetter<\"nav\"> = useCallback(\n (props) => mergeProps({ \"aria-label\": t(\"Breadcrumb\") }, rest, props)(),\n [rest, t],\n )\n\n const getListProps: PropGetter<\"ol\"> = useCallback(\n (props) => ({ ...props }),\n [],\n )\n\n const getLinkProps: PropGetter<\"a\", { currentPage?: boolean }> = useCallback(\n ({ href, currentPage, ...props } = {}) => ({\n href: !currentPage ? href : undefined,\n \"aria-current\": currentPage ? \"page\" : undefined,\n ...props,\n }),\n [],\n )\n\n const getEllipsisProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({\n \"aria-label\": t(\"Ellipsis\"),\n role: \"presentation\",\n ...props,\n }),\n [t],\n )\n\n return {\n children: cloneChildren,\n getEllipsisProps,\n getLinkProps,\n getListProps,\n getRootProps,\n }\n}\n\nexport type UseBreadcrumbReturn = ReturnType<typeof useBreadcrumb>\n"],"mappings":";;;;;;;;AA0CA,MAAa,iBAAiB,EAC5B,UACA,UACA,gBAAgB,GAChB,QAAQ,CAAC,GACT,MACA,kBAAkB,GAClB,GAAG,SACmB,CAAC,MAAM;CAC7B,MAAM,gBAAgBA,iBAAAA,iBAAiB,QAAQ;CAC/C,MAAM,SAAS,cAAc,UAAU,MAAM;CAC7C,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,YAAY;CAElC,MAAM,gBACJ,kBAAkB,gBAAgB,KAClC,SAAS,kBAAkB;CAE7B,MAAM,cAAA,GAAaC,MAAAA,YAAAA,EAChB,UAA4B;EAC3B,IAAI,CAAC,MAAM,OAAO,CAAC;EAEnB,OAAO,MAAM,KAAK,EAAE,OAAO,GAAG,YAAA,GAC5BC,MAAAA,aAAAA,CAAkB,MAAM;GAAE,GAAG,KAAK;GAAO,UAAU;GAAO,GAAG;EAAK,CAAC,CACrE;CACF,GACA,CAAC,IAAI,CACP;CAEA,MAAM,kBAAA,GAAiBD,MAAAA,YAAAA,EACpB,UAA4B;EAC3B,IAAI,CAAC,UAAU,OAAO;EAEtB,QAAA,GAAA,oBAAA,cAAO,QAAA,CAAQ,UAAU,EAAE,MAAM,CAAC;CACpC,GACA,CAAC,QAAQ,CACX;CAEA,MAAM,cAAA,GAAaA,MAAAA,YAAAA,EAChB,UAA4B;EAC3B,MAAM,SAAS,MAAM;EAKrB,OAAO;GAJY,MAAM,MAAM,GAAG,eAIjB;GAHK,MAAM,MAAM,iBAAiB,SAAS,aAG5B;GAFd,MAAM,MAAM,SAAS,aAEI;EAAC;CAC9C,GACA,CAAC,iBAAiB,aAAa,CACjC;CAEA,MAAM,iBAAA,GAAgBE,MAAAA,QAAAA,OAAc;EAGlC,IAAI,CAFiB,CAAC,cAAc,QAGlC,OAAO;OACF,IAAI,eAAe;GACxB,MAAM,CAAC,YAAY,eAAe,aAAa,WAAW,KAAK;GAE/D,OAAO;IACL,GAAG,WAAW,UAAU;IACxB,eAAe,aAAa;IAC5B,GAAG,WAAW,SAAS;GACzB;EACF,OACE,OAAO,WAAW,KAAK;CAE3B,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,gBAAA,GAAkCF,MAAAA,YAAAA,EACrC,UAAUG,cAAAA,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,GACtE,CAAC,MAAM,CAAC,CACV;CAEA,MAAM,gBAAA,GAAiCH,MAAAA,YAAAA,EACpC,WAAW,EAAE,GAAG,MAAM,IACvB,CAAC,CACH;CAEA,MAAM,gBAAA,GAA2DA,MAAAA,YAAAA,EAC9D,EAAE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO;EACzC,MAAM,CAAC,cAAc,OAAO,KAAA;EAC5B,gBAAgB,cAAc,SAAS,KAAA;EACvC,GAAG;CACL,IACA,CAAC,CACH;CAWA,OAAO;EACL,UAAU;EACV,mBAAA,GAX0CA,MAAAA,YAAAA,EACzC,WAAW;GACV,cAAc,EAAE,UAAU;GAC1B,MAAM;GACN,GAAG;EACL,IACA,CAAC,CAAC,CAKa;EACf;EACA;EACA;CACF;AACF"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_button = require("./button.cjs");
3
4
  const require_group = require("../group/group.cjs");
4
5
  const require_icon_button = require("./icon-button.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.cjs","names":["ButtonPropsContext","IconButtonPropsContext","Group"],"sources":["../../../../src/components/button/button-group.tsx"],"sourcesContent":["\"use client\"\n\nimport type { Component, ThemeProps, WithoutThemeProps } from \"../../core\"\nimport type { GroupProps } from \"../group\"\nimport type { ButtonProps } from \"./button\"\nimport type { ButtonStyle } from \"./button.style\"\nimport { useMemo } from \"react\"\nimport { Group } from \"../group\"\nimport { ButtonPropsContext } from \"./button\"\nimport { IconButtonPropsContext } from \"./icon-button\"\n\nexport interface ButtonGroupRootProps\n extends WithoutThemeProps<GroupProps, ButtonStyle>, ThemeProps<ButtonStyle> {\n /**\n * If `true`, all wrapped button will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n}\n\n/**\n * `Button` is an interactive component that allows users to perform actions such as submitting forms and toggling modals.\n *\n * @see https://yamada-ui.com/docs/components/button\n */\nexport const ButtonGroupRoot = (({\n size,\n variant,\n attached,\n disabled,\n ...rest\n}: ButtonGroupRootProps) => {\n const context = useMemo<ButtonProps>(\n () => ({\n size,\n variant,\n disabled,\n focusVisibleRing: attached ? \"inside\" : undefined,\n }),\n [size, variant, disabled, attached],\n )\n\n return (\n <ButtonPropsContext value={context}>\n <IconButtonPropsContext value={context}>\n <Group attached={attached} {...rest} />\n </IconButtonPropsContext>\n </ButtonPropsContext>\n )\n}) as Component<\"div\", ButtonGroupRootProps>\n"],"mappings":";;;;;;;;;;;;AA0BA,MAAa,oBAAoB,EAC/B,MACA,SACA,UACA,UACA,GAAG,WACuB;CAC1B,MAAM,WAAA,GAAA,MAAA,QAAA,QACG;EACL;EACA;EACA;EACA,kBAAkB,WAAW,WAAW,KAAA;CAC1C,IACA;EAAC;EAAM;EAAS;EAAU;CAAQ,CACpC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,eAAAA,oBAAD;EAAoB,OAAO;EACzB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,wBAAD;GAAwB,OAAO;GAC7B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,OAAD;IAAiB;IAAU,GAAI;GAAO,CAAA;EAChB,CAAA;CACN,CAAA;AAExB"}
1
+ {"version":3,"file":"button-group.cjs","names":["useMemo","ButtonPropsContext","IconButtonPropsContext","Group"],"sources":["../../../../src/components/button/button-group.tsx"],"sourcesContent":["\"use client\"\n\nimport type { Component, ThemeProps, WithoutThemeProps } from \"../../core\"\nimport type { GroupProps } from \"../group\"\nimport type { ButtonProps } from \"./button\"\nimport type { ButtonStyle } from \"./button.style\"\nimport { useMemo } from \"react\"\nimport { Group } from \"../group\"\nimport { ButtonPropsContext } from \"./button\"\nimport { IconButtonPropsContext } from \"./icon-button\"\n\nexport interface ButtonGroupRootProps\n extends WithoutThemeProps<GroupProps, ButtonStyle>, ThemeProps<ButtonStyle> {\n /**\n * If `true`, all wrapped button will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n}\n\n/**\n * `Button` is an interactive component that allows users to perform actions such as submitting forms and toggling modals.\n *\n * @see https://yamada-ui.com/docs/components/button\n */\nexport const ButtonGroupRoot = (({\n size,\n variant,\n attached,\n disabled,\n ...rest\n}: ButtonGroupRootProps) => {\n const context = useMemo<ButtonProps>(\n () => ({\n size,\n variant,\n disabled,\n focusVisibleRing: attached ? \"inside\" : undefined,\n }),\n [size, variant, disabled, attached],\n )\n\n return (\n <ButtonPropsContext value={context}>\n <IconButtonPropsContext value={context}>\n <Group attached={attached} {...rest} />\n </IconButtonPropsContext>\n </ButtonPropsContext>\n )\n}) as Component<\"div\", ButtonGroupRootProps>\n"],"mappings":";;;;;;;;;;;;;AA0BA,MAAa,oBAAoB,EAC/B,MACA,SACA,UACA,UACA,GAAG,WACuB;CAC1B,MAAM,WAAA,GAAUA,MAAAA,QAAAA,QACP;EACL;EACA;EACA;EACA,kBAAkB,WAAW,WAAW,KAAA;CAC1C,IACA;EAAC;EAAM;EAAS;EAAU;CAAQ,CACpC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,oBAAD;EAAoB,OAAO;EACzB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,wBAAD;GAAwB,OAAO;GAC7B,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,OAAD;IAAiB;IAAU,GAAI;GAAO,CAAA;EAChB,CAAA;CACN,CAAA;AAExB"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_ref = require("../../utils/ref.cjs");
3
4
  const require_utils_index = require("../../utils/index.cjs");
4
5
  const require_factory = require("../../core/system/factory.cjs");
@@ -92,11 +93,14 @@ const ButtonContent = component(({ children }) => {
92
93
  const ButtonLoading = component((props) => {
93
94
  const { loadingIcon, loadingMessage } = useComponentContext();
94
95
  const css = (0, react.useMemo)(() => ({ position: loadingMessage ? "relative" : "absolute" }), [loadingMessage]);
95
- if (require_use_loading_component.isLoadingScheme(loadingIcon)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_loading_component.getLoadingComponent(loadingIcon), {
96
- color: "currentColor",
97
- ...props,
98
- css: require_merge_css.mergeCSS(css, props.css)
99
- });
96
+ if (require_use_loading_component.isLoadingScheme(loadingIcon)) {
97
+ const Component = require_use_loading_component.getLoadingComponent(loadingIcon);
98
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
99
+ color: "currentColor",
100
+ ...props,
101
+ css: require_merge_css.mergeCSS(css, props.css)
102
+ });
103
+ }
100
104
  if ((0, react.isValidElement)(loadingIcon)) return (0, react.cloneElement)(loadingIcon, {
101
105
  ...props,
102
106
  ...loadingIcon.props,
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","names":["createComponent","buttonStyle","useRipple","styled","mergeRefs","Ripple","getClassName","isLoadingScheme","getLoadingComponent","mergeCSS","Children"],"sources":["../../../../src/components/button/button.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ElementType, PropsWithChildren, ReactNode } from \"react\"\nimport type {\n CSSObject,\n HTMLProps,\n HTMLStyledProps,\n ThemeProps,\n} from \"../../core\"\nimport type { Loading } from \"../loading\"\nimport type { ButtonStyle } from \"./button.style\"\nimport {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n} from \"react\"\nimport { createComponent, getClassName, mergeCSS, styled } from \"../../core\"\nimport { bem, dataAttr, mergeRefs } from \"../../utils\"\nimport { getLoadingComponent, isLoadingScheme } from \"../loading\"\nimport { Ripple, useRipple } from \"../ripple\"\nimport { buttonStyle } from \"./button.style\"\n\ninterface ComponentContext extends Pick<\n ButtonProps,\n \"endIcon\" | \"iconProps\" | \"loadingIcon\" | \"loadingMessage\" | \"startIcon\"\n> {}\n\nconst useButtonType = (value?: ElementType) => {\n const buttonRef = useRef(!value)\n\n const ref = useCallback((node: HTMLElement | null) => {\n if (node) buttonRef.current = node.tagName === \"BUTTON\"\n }, [])\n\n const type = buttonRef.current ? \"button\" : undefined\n\n return { ref, type } as const\n}\n\nexport interface ButtonProps\n extends HTMLStyledProps<\"button\">, ThemeProps<ButtonStyle> {\n /**\n * If `true`, the button is represented as active.\n *\n * @default false\n */\n active?: boolean\n /**\n * If `true`, the button is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, disable ripple effects when pressing a element.\n *\n * @default false\n */\n disableRipple?: boolean\n /**\n * The icon to display at the end side of the button.\n */\n endIcon?: ReactNode\n /**\n * If `true`, the loading state of the button is represented.\n *\n * @default false\n */\n loading?: boolean\n /**\n * The icon to display when the button is loading.\n *\n * @default 'oval'\n */\n loadingIcon?: Loading.Scheme | ReactNode\n /**\n * The message to display when the button is loading.\n */\n loadingMessage?: ReactNode\n /**\n * The placement of the loading indicator. Accepts `start` or `end`.\n *\n * @default 'start'\n */\n loadingPlacement?: \"end\" | \"start\"\n /**\n * The icon to display at the start side of the button.\n */\n startIcon?: ReactNode\n /**\n * The type of button. Accepts `button`, `reset`, or `submit`.\n *\n * @default 'button'\n */\n type?: HTMLProps<\"button\">[\"type\"]\n /**\n * The props of the icon element.\n */\n iconProps?: ButtonIconProps\n /**\n * The props of the loading icon element.\n */\n loadingProps?: ButtonLoadingProps\n}\n\nconst {\n component,\n ComponentContext,\n PropsContext: ButtonPropsContext,\n useComponentContext,\n usePropsContext: useButtonPropsContext,\n withContext,\n} = createComponent<ButtonProps, ButtonStyle, ComponentContext>(\n \"button\",\n buttonStyle,\n)\n\nexport { ButtonPropsContext, useButtonPropsContext }\n\n/**\n * `Button` is an interactive component that allows users to perform actions such as submitting forms and toggling modals.\n *\n * @see https://yamada-ui.com/docs/components/button\n */\nexport const Button = withContext<\"button\", ButtonProps>(\n ({\n ref,\n as,\n active,\n children,\n disabled,\n disableRipple,\n endIcon = null,\n loading,\n loadingIcon = \"oval\",\n loadingMessage,\n loadingPlacement = \"start\",\n startIcon = null,\n iconProps,\n loadingProps,\n ...rest\n }) => {\n const trulyDisabled = disabled || loading\n const { ref: buttonRef, type } = useButtonType(as)\n const { onClick, ...rippleProps } = useRipple({\n ...rest,\n disabled: disableRipple || trulyDisabled,\n })\n const startLoading = loading && loadingPlacement === \"start\"\n const endLoading = loading && loadingPlacement === \"end\"\n\n const context = useMemo(\n () => ({ endIcon, loadingIcon, loadingMessage, startIcon, iconProps }),\n [loadingIcon, loadingMessage, startIcon, endIcon, iconProps],\n )\n\n return (\n <ComponentContext value={context}>\n <styled.button\n ref={mergeRefs(ref, buttonRef)}\n as={as}\n type={type}\n data-active={dataAttr(active)}\n data-loading={dataAttr(loading)}\n disabled={trulyDisabled}\n {...rest}\n onClick={onClick}\n >\n {startLoading ? <ButtonStartLoading {...loadingProps} /> : null}\n\n {loading ? (\n loadingMessage || (\n <styled.span opacity={0}>\n <ButtonContent>{children}</ButtonContent>\n </styled.span>\n )\n ) : (\n <ButtonContent>{children}</ButtonContent>\n )}\n\n {endLoading ? <ButtonEndLoading {...loadingProps} /> : null}\n\n <Ripple {...rippleProps} />\n </styled.button>\n </ComponentContext>\n )\n },\n)()\n\nconst ButtonContent = component<\"fragment\", PropsWithChildren>(\n ({ children }) => {\n const { endIcon, startIcon, iconProps } = useComponentContext()\n\n return (\n <>\n {startIcon ? (\n <ButtonStartIcon {...iconProps}>{startIcon}</ButtonStartIcon>\n ) : null}\n {children}\n {endIcon ? (\n <ButtonEndIcon {...iconProps}>{endIcon}</ButtonEndIcon>\n ) : null}\n </>\n )\n },\n { name: \"ButtonContent\", className: getClassName(bem(\"button\", \"content\")) },\n)()\n\ninterface ButtonLoadingProps extends HTMLStyledProps<\"svg\"> {}\n\nconst ButtonLoading = component<\"svg\", ButtonLoadingProps>(\n (props) => {\n const { loadingIcon, loadingMessage } = useComponentContext()\n\n const css = useMemo<CSSObject>(\n () => ({\n position: loadingMessage ? \"relative\" : \"absolute\",\n }),\n [loadingMessage],\n )\n\n if (isLoadingScheme(loadingIcon)) {\n const Component = getLoadingComponent(loadingIcon)\n\n return (\n <Component\n color=\"currentColor\"\n {...props}\n css={mergeCSS(css, props.css)}\n />\n )\n }\n\n if (isValidElement<HTMLStyledProps<\"svg\">>(loadingIcon))\n return cloneElement(loadingIcon, {\n ...props,\n ...loadingIcon.props,\n css: mergeCSS(css, props.css, loadingIcon.props.css),\n })\n\n return null\n },\n { name: \"ButtonLoading\", className: getClassName(bem(\"button\", \"loading\")) },\n)()\n\nconst ButtonStartLoading = component<\"svg\", ButtonLoadingProps>(ButtonLoading, {\n name: \"ButtonStartLoading\",\n className: getClassName(bem(\"button\", \"loading\", \"start\")),\n})()\n\nconst ButtonEndLoading = component<\"svg\", ButtonLoadingProps>(ButtonLoading, {\n name: \"ButtonEndLoading\",\n className: getClassName(bem(\"button\", \"loading\", \"end\")),\n})()\n\ninterface ButtonIconProps extends HTMLStyledProps<\"svg\"> {}\n\nconst ButtonIcon = component<\"svg\", ButtonIconProps>(\n ({ children, ...rest }) => {\n if (isValidElement<HTMLProps<\"svg\">>(children))\n return cloneElement(children, {\n \"aria-hidden\": true,\n role: \"img\",\n ...rest,\n ...children.props,\n })\n\n return Children.count(children) > 1 ? Children.only(null) : null\n },\n { name: \"ButtonIcon\", className: getClassName(bem(\"button\", \"icon\")) },\n)()\n\nconst ButtonStartIcon = component<\"svg\", ButtonIconProps>(ButtonIcon, {\n name: \"ButtonStartIcon\",\n className: getClassName(bem(\"button\", \"icon\", \"start\")),\n})()\n\nconst ButtonEndIcon = component<\"svg\", ButtonIconProps>(ButtonIcon, {\n name: \"ButtonEndIcon\",\n className: getClassName(bem(\"button\", \"icon\", \"end\")),\n})()\n"],"mappings":"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"}
1
+ {"version":3,"file":"button.cjs","names":["useRef","useCallback","createComponent","buttonStyle","useRipple","useMemo","styled","mergeRefs","Ripple","getClassName","isLoadingScheme","getLoadingComponent","mergeCSS","isValidElement","cloneElement","Children"],"sources":["../../../../src/components/button/button.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ElementType, PropsWithChildren, ReactNode } from \"react\"\nimport type {\n CSSObject,\n HTMLProps,\n HTMLStyledProps,\n ThemeProps,\n} from \"../../core\"\nimport type { Loading } from \"../loading\"\nimport type { ButtonStyle } from \"./button.style\"\nimport {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n} from \"react\"\nimport { createComponent, getClassName, mergeCSS, styled } from \"../../core\"\nimport { bem, dataAttr, mergeRefs } from \"../../utils\"\nimport { getLoadingComponent, isLoadingScheme } from \"../loading\"\nimport { Ripple, useRipple } from \"../ripple\"\nimport { buttonStyle } from \"./button.style\"\n\ninterface ComponentContext extends Pick<\n ButtonProps,\n \"endIcon\" | \"iconProps\" | \"loadingIcon\" | \"loadingMessage\" | \"startIcon\"\n> {}\n\nconst useButtonType = (value?: ElementType) => {\n const buttonRef = useRef(!value)\n\n const ref = useCallback((node: HTMLElement | null) => {\n if (node) buttonRef.current = node.tagName === \"BUTTON\"\n }, [])\n\n const type = buttonRef.current ? \"button\" : undefined\n\n return { ref, type } as const\n}\n\nexport interface ButtonProps\n extends HTMLStyledProps<\"button\">, ThemeProps<ButtonStyle> {\n /**\n * If `true`, the button is represented as active.\n *\n * @default false\n */\n active?: boolean\n /**\n * If `true`, the button is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, disable ripple effects when pressing a element.\n *\n * @default false\n */\n disableRipple?: boolean\n /**\n * The icon to display at the end side of the button.\n */\n endIcon?: ReactNode\n /**\n * If `true`, the loading state of the button is represented.\n *\n * @default false\n */\n loading?: boolean\n /**\n * The icon to display when the button is loading.\n *\n * @default 'oval'\n */\n loadingIcon?: Loading.Scheme | ReactNode\n /**\n * The message to display when the button is loading.\n */\n loadingMessage?: ReactNode\n /**\n * The placement of the loading indicator. Accepts `start` or `end`.\n *\n * @default 'start'\n */\n loadingPlacement?: \"end\" | \"start\"\n /**\n * The icon to display at the start side of the button.\n */\n startIcon?: ReactNode\n /**\n * The type of button. Accepts `button`, `reset`, or `submit`.\n *\n * @default 'button'\n */\n type?: HTMLProps<\"button\">[\"type\"]\n /**\n * The props of the icon element.\n */\n iconProps?: ButtonIconProps\n /**\n * The props of the loading icon element.\n */\n loadingProps?: ButtonLoadingProps\n}\n\nconst {\n component,\n ComponentContext,\n PropsContext: ButtonPropsContext,\n useComponentContext,\n usePropsContext: useButtonPropsContext,\n withContext,\n} = createComponent<ButtonProps, ButtonStyle, ComponentContext>(\n \"button\",\n buttonStyle,\n)\n\nexport { ButtonPropsContext, useButtonPropsContext }\n\n/**\n * `Button` is an interactive component that allows users to perform actions such as submitting forms and toggling modals.\n *\n * @see https://yamada-ui.com/docs/components/button\n */\nexport const Button = withContext<\"button\", ButtonProps>(\n ({\n ref,\n as,\n active,\n children,\n disabled,\n disableRipple,\n endIcon = null,\n loading,\n loadingIcon = \"oval\",\n loadingMessage,\n loadingPlacement = \"start\",\n startIcon = null,\n iconProps,\n loadingProps,\n ...rest\n }) => {\n const trulyDisabled = disabled || loading\n const { ref: buttonRef, type } = useButtonType(as)\n const { onClick, ...rippleProps } = useRipple({\n ...rest,\n disabled: disableRipple || trulyDisabled,\n })\n const startLoading = loading && loadingPlacement === \"start\"\n const endLoading = loading && loadingPlacement === \"end\"\n\n const context = useMemo(\n () => ({ endIcon, loadingIcon, loadingMessage, startIcon, iconProps }),\n [loadingIcon, loadingMessage, startIcon, endIcon, iconProps],\n )\n\n return (\n <ComponentContext value={context}>\n <styled.button\n ref={mergeRefs(ref, buttonRef)}\n as={as}\n type={type}\n data-active={dataAttr(active)}\n data-loading={dataAttr(loading)}\n disabled={trulyDisabled}\n {...rest}\n onClick={onClick}\n >\n {startLoading ? <ButtonStartLoading {...loadingProps} /> : null}\n\n {loading ? (\n loadingMessage || (\n <styled.span opacity={0}>\n <ButtonContent>{children}</ButtonContent>\n </styled.span>\n )\n ) : (\n <ButtonContent>{children}</ButtonContent>\n )}\n\n {endLoading ? <ButtonEndLoading {...loadingProps} /> : null}\n\n <Ripple {...rippleProps} />\n </styled.button>\n </ComponentContext>\n )\n },\n)()\n\nconst ButtonContent = component<\"fragment\", PropsWithChildren>(\n ({ children }) => {\n const { endIcon, startIcon, iconProps } = useComponentContext()\n\n return (\n <>\n {startIcon ? (\n <ButtonStartIcon {...iconProps}>{startIcon}</ButtonStartIcon>\n ) : null}\n {children}\n {endIcon ? (\n <ButtonEndIcon {...iconProps}>{endIcon}</ButtonEndIcon>\n ) : null}\n </>\n )\n },\n { name: \"ButtonContent\", className: getClassName(bem(\"button\", \"content\")) },\n)()\n\ninterface ButtonLoadingProps extends HTMLStyledProps<\"svg\"> {}\n\nconst ButtonLoading = component<\"svg\", ButtonLoadingProps>(\n (props) => {\n const { loadingIcon, loadingMessage } = useComponentContext()\n\n const css = useMemo<CSSObject>(\n () => ({\n position: loadingMessage ? \"relative\" : \"absolute\",\n }),\n [loadingMessage],\n )\n\n if (isLoadingScheme(loadingIcon)) {\n const Component = getLoadingComponent(loadingIcon)\n\n return (\n <Component\n color=\"currentColor\"\n {...props}\n css={mergeCSS(css, props.css)}\n />\n )\n }\n\n if (isValidElement<HTMLStyledProps<\"svg\">>(loadingIcon))\n return cloneElement(loadingIcon, {\n ...props,\n ...loadingIcon.props,\n css: mergeCSS(css, props.css, loadingIcon.props.css),\n })\n\n return null\n },\n { name: \"ButtonLoading\", className: getClassName(bem(\"button\", \"loading\")) },\n)()\n\nconst ButtonStartLoading = component<\"svg\", ButtonLoadingProps>(ButtonLoading, {\n name: \"ButtonStartLoading\",\n className: getClassName(bem(\"button\", \"loading\", \"start\")),\n})()\n\nconst ButtonEndLoading = component<\"svg\", ButtonLoadingProps>(ButtonLoading, {\n name: \"ButtonEndLoading\",\n className: getClassName(bem(\"button\", \"loading\", \"end\")),\n})()\n\ninterface ButtonIconProps extends HTMLStyledProps<\"svg\"> {}\n\nconst ButtonIcon = component<\"svg\", ButtonIconProps>(\n ({ children, ...rest }) => {\n if (isValidElement<HTMLProps<\"svg\">>(children))\n return cloneElement(children, {\n \"aria-hidden\": true,\n role: \"img\",\n ...rest,\n ...children.props,\n })\n\n return Children.count(children) > 1 ? Children.only(null) : null\n },\n { name: \"ButtonIcon\", className: getClassName(bem(\"button\", \"icon\")) },\n)()\n\nconst ButtonStartIcon = component<\"svg\", ButtonIconProps>(ButtonIcon, {\n name: \"ButtonStartIcon\",\n className: getClassName(bem(\"button\", \"icon\", \"start\")),\n})()\n\nconst ButtonEndIcon = component<\"svg\", ButtonIconProps>(ButtonIcon, {\n name: \"ButtonEndIcon\",\n className: getClassName(bem(\"button\", \"icon\", \"end\")),\n})()\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ require("../../_virtual/_rolldown/runtime.cjs");
2
3
  const require_utils_index = require("../../utils/index.cjs");
3
4
  const require_factory = require("../../core/system/factory.cjs");
4
5
  const require_props = require("../../core/components/props.cjs");