@yamada-ui/react 2.2.1-dev-20260413015504 → 2.2.1-dev-20260421145002

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 (297) hide show
  1. package/dist/cjs/components/autocomplete/autocomplete.cjs +1 -1
  2. package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
  3. package/dist/cjs/components/calendar/use-calendar.cjs.map +1 -1
  4. package/dist/cjs/components/chart/chart.cjs.map +1 -1
  5. package/dist/cjs/components/date-picker/date-picker.cjs +1 -1
  6. package/dist/cjs/components/date-picker/date-picker.cjs.map +1 -1
  7. package/dist/cjs/components/drawer/use-drawer.cjs +1 -1
  8. package/dist/cjs/components/drawer/use-drawer.cjs.map +1 -1
  9. package/dist/cjs/components/format/namespace.cjs.map +1 -1
  10. package/dist/cjs/components/group/use-group.cjs +1 -1
  11. package/dist/cjs/components/group/use-group.cjs.map +1 -1
  12. package/dist/cjs/components/indicator/indicator.cjs +4 -3
  13. package/dist/cjs/components/indicator/indicator.cjs.map +1 -1
  14. package/dist/cjs/components/input/use-input-border.cjs +4 -2
  15. package/dist/cjs/components/input/use-input-border.cjs.map +1 -1
  16. package/dist/cjs/components/native-select/native-select.cjs +1 -1
  17. package/dist/cjs/components/native-select/native-select.cjs.map +1 -1
  18. package/dist/cjs/components/native-select/use-native-select.cjs +1 -1
  19. package/dist/cjs/components/native-select/use-native-select.cjs.map +1 -1
  20. package/dist/cjs/components/number-input/number-input.style.cjs +1 -1
  21. package/dist/cjs/components/number-input/number-input.style.cjs.map +1 -1
  22. package/dist/cjs/components/password-input/password-input.style.cjs +1 -1
  23. package/dist/cjs/components/password-input/password-input.style.cjs.map +1 -1
  24. package/dist/cjs/components/select/select.cjs +1 -1
  25. package/dist/cjs/components/select/select.cjs.map +1 -1
  26. package/dist/cjs/components/sidebar/sidebar.cjs +1 -1
  27. package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
  28. package/dist/cjs/components/table/table.cjs +0 -3
  29. package/dist/cjs/components/table/table.cjs.map +1 -1
  30. package/dist/cjs/core/css/at-rule.cjs.map +1 -1
  31. package/dist/cjs/core/css/color-mix.cjs +1 -1
  32. package/dist/cjs/core/css/color-mix.cjs.map +1 -1
  33. package/dist/cjs/core/css/color-scheme.cjs.map +1 -1
  34. package/dist/cjs/core/css/styles.cjs +92 -92
  35. package/dist/cjs/core/css/styles.cjs.map +1 -1
  36. package/dist/cjs/core/system/var.cjs.map +1 -1
  37. package/dist/cjs/hooks/use-combobox/index.cjs +1 -1
  38. package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
  39. package/dist/cjs/hooks/use-local-storage/index.cjs +1 -1
  40. package/dist/cjs/hooks/use-local-storage/index.cjs.map +1 -1
  41. package/dist/cjs/utils/ref.cjs +1 -1
  42. package/dist/cjs/utils/ref.cjs.map +1 -1
  43. package/dist/esm/components/autocomplete/autocomplete.js +1 -1
  44. package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
  45. package/dist/esm/components/calendar/use-calendar.js.map +1 -1
  46. package/dist/esm/components/chart/chart.js.map +1 -1
  47. package/dist/esm/components/date-picker/date-picker.js +1 -1
  48. package/dist/esm/components/date-picker/date-picker.js.map +1 -1
  49. package/dist/esm/components/drawer/use-drawer.js +1 -1
  50. package/dist/esm/components/drawer/use-drawer.js.map +1 -1
  51. package/dist/esm/components/format/namespace.js.map +1 -1
  52. package/dist/esm/components/group/use-group.js +1 -1
  53. package/dist/esm/components/group/use-group.js.map +1 -1
  54. package/dist/esm/components/indicator/indicator.js +4 -3
  55. package/dist/esm/components/indicator/indicator.js.map +1 -1
  56. package/dist/esm/components/input/use-input-border.js +4 -2
  57. package/dist/esm/components/input/use-input-border.js.map +1 -1
  58. package/dist/esm/components/native-select/native-select.js +1 -1
  59. package/dist/esm/components/native-select/native-select.js.map +1 -1
  60. package/dist/esm/components/native-select/use-native-select.js +1 -1
  61. package/dist/esm/components/native-select/use-native-select.js.map +1 -1
  62. package/dist/esm/components/number-input/number-input.style.js +1 -1
  63. package/dist/esm/components/number-input/number-input.style.js.map +1 -1
  64. package/dist/esm/components/password-input/password-input.style.js +1 -1
  65. package/dist/esm/components/password-input/password-input.style.js.map +1 -1
  66. package/dist/esm/components/select/select.js +1 -1
  67. package/dist/esm/components/select/select.js.map +1 -1
  68. package/dist/esm/components/sidebar/sidebar.js +1 -1
  69. package/dist/esm/components/sidebar/sidebar.js.map +1 -1
  70. package/dist/esm/components/table/table.js +0 -3
  71. package/dist/esm/components/table/table.js.map +1 -1
  72. package/dist/esm/core/css/at-rule.js.map +1 -1
  73. package/dist/esm/core/css/color-mix.js +1 -1
  74. package/dist/esm/core/css/color-mix.js.map +1 -1
  75. package/dist/esm/core/css/color-scheme.js.map +1 -1
  76. package/dist/esm/core/css/styles.js +92 -92
  77. package/dist/esm/core/css/styles.js.map +1 -1
  78. package/dist/esm/core/system/var.js.map +1 -1
  79. package/dist/esm/hooks/use-combobox/index.js +1 -1
  80. package/dist/esm/hooks/use-combobox/index.js.map +1 -1
  81. package/dist/esm/hooks/use-local-storage/index.js +1 -1
  82. package/dist/esm/hooks/use-local-storage/index.js.map +1 -1
  83. package/dist/esm/utils/ref.js +1 -1
  84. package/dist/esm/utils/ref.js.map +1 -1
  85. package/dist/types/components/accordion/accordion.d.ts +2 -2
  86. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  87. package/dist/types/components/action-bar/action-bar.d.ts +2 -2
  88. package/dist/types/components/airy/airy.d.ts +2 -2
  89. package/dist/types/components/alert/alert.d.ts +2 -2
  90. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  91. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  92. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  93. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  94. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  95. package/dist/types/components/avatar/avatar.d.ts +5 -5
  96. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  97. package/dist/types/components/badge/badge.d.ts +2 -2
  98. package/dist/types/components/bleed/bleed.d.ts +2 -2
  99. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  100. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  101. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  102. package/dist/types/components/button/button.d.ts +2 -2
  103. package/dist/types/components/button/icon-button.d.ts +2 -2
  104. package/dist/types/components/calendar/calendar.d.ts +2 -2
  105. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  106. package/dist/types/components/calendar/use-calendar.d.ts +9 -9
  107. package/dist/types/components/card/card.d.ts +2 -2
  108. package/dist/types/components/carousel/carousel.d.ts +2 -2
  109. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  110. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  111. package/dist/types/components/center/center.d.ts +2 -2
  112. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  113. package/dist/types/components/chart/chart.d.ts +11 -9
  114. package/dist/types/components/chart/composed-chart.d.ts +2 -2
  115. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  116. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  117. package/dist/types/components/chart/radial-chart.d.ts +2 -2
  118. package/dist/types/components/chart/use-chart.d.ts +2 -2
  119. package/dist/types/components/checkbox/checkbox.d.ts +5 -5
  120. package/dist/types/components/checkbox/checkbox.style.d.ts +1 -1
  121. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  122. package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -5
  123. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
  124. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  125. package/dist/types/components/close-button/close-button.d.ts +2 -2
  126. package/dist/types/components/code/code.d.ts +2 -2
  127. package/dist/types/components/collapse/collapse.d.ts +2 -2
  128. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  129. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  130. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  131. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  132. package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
  133. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  134. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  135. package/dist/types/components/container/container.d.ts +2 -2
  136. package/dist/types/components/data-list/data-list.d.ts +2 -2
  137. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  138. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  139. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  140. package/dist/types/components/drawer/drawer.d.ts +2 -2
  141. package/dist/types/components/drawer/drawer.style.d.ts +2 -2
  142. package/dist/types/components/dropzone/dropzone.d.ts +4 -4
  143. package/dist/types/components/editable/editable.d.ts +4 -4
  144. package/dist/types/components/editable/use-editable.d.ts +2 -2
  145. package/dist/types/components/em/em.d.ts +2 -2
  146. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  147. package/dist/types/components/empty-state/empty-state.style.d.ts +2 -2
  148. package/dist/types/components/fade/fade.d.ts +2 -2
  149. package/dist/types/components/field/field.d.ts +3 -3
  150. package/dist/types/components/field/use-field-props.d.ts +3 -3
  151. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  152. package/dist/types/components/file-button/file-button.d.ts +2 -2
  153. package/dist/types/components/file-button/use-file-button.d.ts +18 -18
  154. package/dist/types/components/file-input/file-input.d.ts +2 -2
  155. package/dist/types/components/file-input/file-input.style.d.ts +1 -1
  156. package/dist/types/components/file-input/use-file-input.d.ts +15 -15
  157. package/dist/types/components/flex/flex.d.ts +2 -2
  158. package/dist/types/components/flip/flip.d.ts +4 -4
  159. package/dist/types/components/float/float.d.ts +2 -2
  160. package/dist/types/components/form/form.d.ts +3 -3
  161. package/dist/types/components/format/format-byte.d.ts +4 -4
  162. package/dist/types/components/format/format-date-time.d.ts +4 -4
  163. package/dist/types/components/format/format-number.d.ts +2 -2
  164. package/dist/types/components/grid/grid-item.d.ts +2 -2
  165. package/dist/types/components/grid/grid.d.ts +2 -2
  166. package/dist/types/components/group/group.d.ts +2 -2
  167. package/dist/types/components/group/use-group.d.ts +2 -2
  168. package/dist/types/components/heading/heading.d.ts +2 -2
  169. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  170. package/dist/types/components/icon/icon.d.ts +5 -5
  171. package/dist/types/components/image/image.d.ts +2 -2
  172. package/dist/types/components/indicator/indicator.d.ts +4 -4
  173. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  174. package/dist/types/components/input/input-addon.d.ts +2 -2
  175. package/dist/types/components/input/input-element.d.ts +2 -2
  176. package/dist/types/components/input/input.d.ts +2 -2
  177. package/dist/types/components/input/use-input-border.d.ts +2 -5
  178. package/dist/types/components/kbd/kbd.d.ts +2 -2
  179. package/dist/types/components/link/link.d.ts +2 -2
  180. package/dist/types/components/link-box/link-box.d.ts +2 -2
  181. package/dist/types/components/list/list.d.ts +2 -2
  182. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  183. package/dist/types/components/loading/loading.d.ts +3 -3
  184. package/dist/types/components/mark/mark.d.ts +2 -2
  185. package/dist/types/components/menu/menu.d.ts +2 -2
  186. package/dist/types/components/menu/menu.style.d.ts +2 -2
  187. package/dist/types/components/menu/use-menu.d.ts +11 -11
  188. package/dist/types/components/modal/modal.d.ts +2 -2
  189. package/dist/types/components/modal/modal.style.d.ts +2 -2
  190. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  191. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  192. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  193. package/dist/types/components/native-select/native-select.d.ts +2 -2
  194. package/dist/types/components/native-table/native-table.d.ts +4 -4
  195. package/dist/types/components/notice/notice.style.d.ts +1 -1
  196. package/dist/types/components/number-input/number-input.d.ts +2 -2
  197. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  198. package/dist/types/components/pagination/pagination.d.ts +2 -2
  199. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  200. package/dist/types/components/password-input/password-input.d.ts +2 -2
  201. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  202. package/dist/types/components/password-input/strength-meter.style.d.ts +1 -1
  203. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  204. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  205. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  206. package/dist/types/components/popover/popover.d.ts +2 -2
  207. package/dist/types/components/progress/progress.d.ts +4 -4
  208. package/dist/types/components/progress/use-progress.d.ts +706 -706
  209. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  210. package/dist/types/components/radio/radio.d.ts +5 -5
  211. package/dist/types/components/radio/radio.style.d.ts +1 -1
  212. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  213. package/dist/types/components/radio-card/radio-card.d.ts +5 -5
  214. package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
  215. package/dist/types/components/rating/use-rating.d.ts +7 -7
  216. package/dist/types/components/reorder/reorder.d.ts +2 -2
  217. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  218. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  219. package/dist/types/components/resizable/resizable.d.ts +2 -2
  220. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  221. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  222. package/dist/types/components/ripple/ripple.d.ts +2 -2
  223. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  224. package/dist/types/components/rotate/rotate.d.ts +2 -2
  225. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  226. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  227. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  228. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  229. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  230. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  231. package/dist/types/components/select/select.d.ts +2 -2
  232. package/dist/types/components/select/select.style.d.ts +1 -1
  233. package/dist/types/components/select/use-select.d.ts +4 -4
  234. package/dist/types/components/separator/separator.d.ts +2 -2
  235. package/dist/types/components/sidebar/sidebar.d.ts +2 -2
  236. package/dist/types/components/sidebar/sidebar.style.d.ts +1 -1
  237. package/dist/types/components/sidebar/use-sidebar.d.ts +9 -9
  238. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  239. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  240. package/dist/types/components/slide/slide.d.ts +2 -2
  241. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  242. package/dist/types/components/slider/slider.d.ts +2 -2
  243. package/dist/types/components/slider/use-slider.d.ts +2 -2
  244. package/dist/types/components/stack/h-stack.d.ts +2 -2
  245. package/dist/types/components/stack/stack.d.ts +2 -2
  246. package/dist/types/components/stack/v-stack.d.ts +2 -2
  247. package/dist/types/components/stack/z-stack.d.ts +2 -2
  248. package/dist/types/components/stat/stat.d.ts +2 -2
  249. package/dist/types/components/status/status.d.ts +2 -2
  250. package/dist/types/components/status/status.style.d.ts +2 -2
  251. package/dist/types/components/steps/steps.d.ts +2 -2
  252. package/dist/types/components/steps/steps.style.d.ts +1 -1
  253. package/dist/types/components/steps/use-steps.d.ts +10 -10
  254. package/dist/types/components/switch/switch.d.ts +2 -2
  255. package/dist/types/components/table/table.d.ts +2 -2
  256. package/dist/types/components/tabs/tabs.d.ts +2 -2
  257. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  258. package/dist/types/components/tag/tag.d.ts +2 -2
  259. package/dist/types/components/tag/tag.style.d.ts +1 -1
  260. package/dist/types/components/text/text.d.ts +2 -2
  261. package/dist/types/components/textarea/textarea.d.ts +2 -2
  262. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  263. package/dist/types/components/timeline/timeline.d.ts +5 -5
  264. package/dist/types/components/timeline/timeline.style.d.ts +1 -1
  265. package/dist/types/components/toggle/toggle.d.ts +5 -5
  266. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  267. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  268. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  269. package/dist/types/components/tree/tree.d.ts +2 -2
  270. package/dist/types/components/tree/tree.style.d.ts +1 -1
  271. package/dist/types/components/tree/use-tree.d.ts +182 -182
  272. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  273. package/dist/types/components/wrap/wrap.d.ts +2 -2
  274. package/dist/types/core/components/create-component.d.ts +7 -7
  275. package/dist/types/core/css/index.d.ts +2 -2
  276. package/dist/types/core/css/index.types.d.ts +2 -1
  277. package/dist/types/core/css/styles.d.ts +44 -44
  278. package/dist/types/core/generated-theme-tokens.types.d.ts +17 -17
  279. package/dist/types/core/index.d.ts +2 -2
  280. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  281. package/dist/types/core/system/storage-script.d.ts +3 -3
  282. package/dist/types/core/system/styled.d.ts +2 -2
  283. package/dist/types/core/system/system-provider.d.ts +2 -2
  284. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  285. package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
  286. package/dist/types/hooks/use-combobox/index.d.ts +12 -12
  287. package/dist/types/hooks/use-counter/index.d.ts +2 -2
  288. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  289. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  290. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  291. package/dist/types/hooks/use-popper/index.d.ts +2 -2
  292. package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
  293. package/dist/types/index.d.ts +3 -3
  294. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +2 -2
  295. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  296. package/dist/types/utils/children.d.ts +2 -2
  297. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"var.js","names":["value","system: System","calc","computedValue: DefineThemeValue","resolvedValue: DefineThemeValue | Dict","cssMap: CSSMap","cssVars: Dict","objOrArray","result: [string, any][]"],"sources":["../../../../src/core/system/var.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { CSSProperties, StyleValueWithCondition } from \"../css\"\nimport type {\n CSSMap,\n DefineThemeValue,\n System,\n ThemeToken,\n UsageTheme,\n VariableTokens,\n VariableValue,\n} from \"../system\"\nimport type { Breakpoints } from \"./breakpoint\"\nimport {\n calc,\n escape,\n isArray,\n isNull,\n isObject,\n isString,\n isUndefined,\n merge,\n replaceObject,\n} from \"../../utils\"\nimport { DEFAULT_VAR_PREFIX } from \"../constant\"\nimport {\n animation,\n colorMix,\n conditions,\n css,\n getStyle,\n gradient,\n injectKeyframes,\n isCSSFunction,\n isCSSVar,\n} from \"../css\"\nimport { isInterpolation } from \"../css/utils\"\nimport { defaultSystem } from \"../system\"\n\ntype ParsedValue = number | string | undefined\n\ninterface Variable {\n reference: string\n variable: string\n}\n\nexport function transformInterpolation(\n value: any,\n callback: (value: string, fallbackValue?: string) => string,\n) {\n if (isString(value)) {\n return value.replace(/\\{(.*?)\\}/g, (_, value) => {\n const [token, fallbackValue] = value.split(/,(.+)/)\n\n return callback(token.trim(), fallbackValue?.trim())\n })\n } else {\n return value\n }\n}\n\nexport function getVar(token: string, fallback?: string) {\n if (!token.startsWith(\"--\")) token = `--${token}`\n\n token = token.replace(/[^-_a-zA-Z0-9]/g, \"\")\n\n return fallback ? `var(${token}, ${fallback})` : `var(${token})`\n}\n\nexport function getVarName(system: System) {\n return function (token: string) {\n const prefix = system.config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n\n return `--${prefix}-${token}`\n }\n}\n\nexport function getColorSchemeVar(system: System) {\n return function (value: any, fallback?: string) {\n if (!isString(value)) return value\n\n const prefix = system.config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n\n const [, token] = value.split(\".\")\n\n return getVar(`${prefix}-colorScheme-${token}`, fallback)\n }\n}\n\nconst isGradient = (token: string) => token.startsWith(\"gradients.\")\nconst isKeyframes = (token: string) => token.startsWith(\"keyframes.\")\nconst isAnimation = (token: string) => token.startsWith(\"animations.\")\nconst isSpace = (token: string) => token.startsWith(\"spaces.\")\nconst isColor = (token: string) => token.startsWith(\"colors.\")\nexport const isColorScheme = (token: any) =>\n isString(token) && token.startsWith(\"colorScheme.\") && !token.includes(\"/\")\n\nexport function createVars(\n prefix: string = DEFAULT_VAR_PREFIX,\n theme: UsageTheme,\n breakpoints: Breakpoints,\n) {\n return function (tokens: VariableTokens) {\n const { getQuery, isResponsive } = breakpoints\n\n function tokenToVar(token: string): Variable {\n token = token.replace(/\\./g, \"-\")\n token = token.replace(/\\//g, \"\\\\/\")\n\n const variable = `--${[prefix, escape(token, \"-\")].filter(Boolean).join(\"-\")}`\n const reference = `var(${variable})`\n\n return { reference, variable }\n }\n\n return function (\n cssMap: CSSMap = {},\n cssVars: Dict = {},\n prevTokens?: VariableTokens,\n ): { cssMap: CSSMap; cssVars: Dict } {\n const system: System = { ...defaultSystem, cssMap }\n const options = { css, system, theme }\n\n function getRelatedReference(\n token: string,\n value: ParsedValue = \"\",\n ): [ParsedValue, Exclude<ParsedValue, undefined>] {\n const relatedToken = [token.split(\".\")[0], value].join(\".\")\n\n if (token === relatedToken) return [undefined, value]\n\n const targetToken = tokens[relatedToken] ?? prevTokens?.[relatedToken]\n\n if (!targetToken) return [undefined, value]\n\n const { reference, variable } = tokenToVar(relatedToken)\n\n return [variable, reference]\n }\n\n function valueToVar(value: any) {\n return transformInterpolation(value, (value, fallbackValue) => {\n if (value.includes(\"colors.\") || value.includes(\"colorScheme.\")) {\n if (isColorScheme(value)) return getColorSchemeVar(system)(value)\n\n return colorMix(value, { fallback: fallbackValue, system })\n } else {\n const token = tokens[value] ?? prevTokens?.[value]\n\n if (token) {\n return tokenToVar(value).reference\n } else if (value in cssMap && cssMap[value]?.ref) {\n return cssMap[value].ref\n } else if (fallbackValue) {\n fallbackValue =\n fallbackValue in cssMap && cssMap[fallbackValue]?.ref\n ? cssMap[fallbackValue]?.ref\n : fallbackValue\n\n return `var(--${prefix}-${value}, ${fallbackValue})`\n } else {\n return `var(--${prefix}-${value})`\n }\n }\n })\n }\n\n function createNegativeVar(token: string, reference: string) {\n const paths = token.split(\".\")\n const [start, ...rest] = paths\n\n const negativeToken = `${start}.-${rest.join(\".\")}`\n\n const negativeReference = calc.negate(reference)\n\n return { negativeReference, negativeToken }\n }\n\n function createAnimationVar(value: VariableValue) {\n if (isArray(value)) {\n return value.map((value) => animation(value, options)).join(\",\")\n } else {\n return animation(value, options)\n }\n }\n\n function createGradientVar(token: string, value: DefineThemeValue) {\n return function (semantic: boolean) {\n if (!semantic) {\n return gradient(value, options)\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable ? reference : gradient(value, options)\n }\n }\n }\n\n function createKeyframesVar(token: string, value: any) {\n return function (semantic: boolean) {\n if (!semantic) {\n return injectKeyframes(css(system, theme)(value))\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable\n ? reference\n : injectKeyframes(css(system, theme)(value))\n }\n }\n }\n\n function createColorVar(\n token: string,\n properties: string[],\n value: DefineThemeValue,\n ) {\n return function (semantic: boolean) {\n if (!semantic) {\n return colorMix(value, { ...options, properties })\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable\n ? reference\n : colorMix(value, { ...options, properties })\n }\n }\n }\n\n function createVar(\n token: string,\n value: VariableValue,\n variable: string,\n ) {\n return function (semantic: boolean, queries: string[] = []) {\n if (isAnimation(token)) value = createAnimationVar(value)\n\n if (isArray(value)) {\n const [lightValue, darkValue] = value\n\n createVar(token, lightValue, variable)(semantic, queries)\n createVar(\n token,\n darkValue,\n variable,\n )(semantic, [...queries, conditions._dark])\n } else if (isResponsive(value, true)) {\n Object.entries(value).forEach(([key, value]) => {\n if (key === \"base\") {\n createVar(token, value, variable)(semantic, queries)\n } else {\n const query = getQuery(key)\n\n if (!query) return\n\n createVar(token, value, variable)(semantic, [...queries, query])\n }\n })\n } else {\n const computedValue: DefineThemeValue = valueToVar(value)\n\n let resolvedValue: DefineThemeValue | Dict = computedValue\n\n if (isKeyframes(token)) {\n resolvedValue = createKeyframesVar(token, computedValue)(semantic)\n } else if (isGradient(token)) {\n resolvedValue = createGradientVar(token, computedValue)(semantic)\n } else if (isColor(token)) {\n resolvedValue = createColorVar(\n token,\n [variable],\n computedValue,\n )(semantic)\n } else if (semantic) {\n const [, reference] = getRelatedReference(token, computedValue)\n\n resolvedValue = reference\n }\n\n if (!isObject(resolvedValue))\n resolvedValue = { [variable]: resolvedValue }\n\n const resolvedCssVars = queries.reduceRight<Dict>(\n (prev, key) => ({ [key]: prev }),\n resolvedValue,\n )\n\n cssVars = merge(cssVars, resolvedCssVars)\n }\n }\n }\n\n for (let [token, { semantic, value }] of Object.entries(tokens)) {\n const { reference, variable } = tokenToVar(token)\n\n createVar(token, value, variable)(semantic)\n\n if (isSpace(token)) {\n const { negativeReference, negativeToken } = createNegativeVar(\n token,\n reference,\n )\n\n cssMap[negativeToken] = { ref: negativeReference, var: variable }\n }\n\n cssMap[token] = { ref: reference, var: variable }\n }\n\n return { cssMap, cssVars }\n }\n }\n}\n\nexport type CreateVars = ReturnType<ReturnType<typeof createVars>>\n\nexport function mergeVars(...fns: CreateVars[]) {\n return function (prevTokens?: VariableTokens) {\n let cssMap: CSSMap = {}\n let cssVars: Dict = {}\n\n for (const fn of fns) {\n const result = fn(cssMap, cssVars, prevTokens)\n\n cssMap = { ...cssMap, ...result.cssMap }\n cssVars = { ...cssVars, ...result.cssVars }\n }\n\n return { cssMap, cssVars }\n }\n}\n\nexport function varAttr<Y = StyleValueWithCondition<number | string>>(\n value: undefined | Y,\n token?: ThemeToken,\n fallbackValue?: string,\n): undefined | Y {\n if (isUndefined(value) || isNull(value) || isCSSFunction(value)) return value\n\n if (isObject(value) || isArray(value)) {\n return replaceObject(value, (value) => varAttr(value, token, fallbackValue))\n } else {\n return token\n ? (`{${token}.${value}, ${fallbackValue ?? value}}` as Y)\n : value\n }\n}\n\nexport function injectVars<Y extends Dict | Dict[] | undefined>(\n objOrArray: Y,\n targets: { [key in CSSProperties]?: string },\n isInvalidProp?: (prop: string) => boolean,\n): Y {\n if (!objOrArray) return objOrArray\n\n function callback(objOrArray: Dict) {\n return Object.fromEntries(\n Object.entries(objOrArray).flatMap(function ([prop, value]) {\n if (isInvalidProp?.(prop)) return [[prop, value]]\n\n const target = targets[prop]\n const result: [string, any][] = []\n\n if (target) {\n const { token } = getStyle(prop) ?? {}\n\n if (isCSSVar(value) || isInterpolation(value)) {\n result.push([`--${target}`, value])\n } else {\n result.push([\n `--${target}`,\n token ? `{${token}.${value}, ${value}}` : value,\n ])\n }\n } else if (isObject(value)) {\n result.push([prop, injectVars(value, targets)])\n } else {\n result.push([prop, value])\n }\n\n return result\n }),\n )\n }\n\n if (isArray(objOrArray)) {\n return objOrArray.map(callback) as Y\n } else {\n return callback(objOrArray) as Y\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"var.js","names":["value","system: System","calc","computedValue: DefineThemeValue","resolvedValue: DefineThemeValue | Dict","cssMap: CSSMap","cssVars: Dict","objOrArray","result: [string, any][]"],"sources":["../../../../src/core/system/var.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { CSSProperties, StyleValueWithCondition } from \"../css\"\nimport type {\n CSSMap,\n DefineThemeValue,\n System,\n ThemeToken,\n UsageTheme,\n VariableTokens,\n VariableValue,\n} from \"../system\"\nimport type { Breakpoints } from \"./breakpoint\"\nimport {\n calc,\n escape,\n isArray,\n isNull,\n isObject,\n isString,\n isUndefined,\n merge,\n replaceObject,\n} from \"../../utils\"\nimport { DEFAULT_VAR_PREFIX } from \"../constant\"\nimport {\n animation,\n colorMix,\n conditions,\n css,\n getStyle,\n gradient,\n injectKeyframes,\n isCSSFunction,\n isCSSVar,\n} from \"../css\"\nimport { isInterpolation } from \"../css/utils\"\nimport { defaultSystem } from \"../system\"\n\ntype ParsedValue = number | string | undefined\n\ninterface Variable {\n reference: string\n variable: string\n}\n\nexport function transformInterpolation(\n value: any,\n callback: (value: string, fallbackValue?: string) => string,\n) {\n if (isString(value)) {\n return value.replace(/\\{(.*?)\\}/g, (_, value) => {\n const [token, fallbackValue] = value.split(/,(.+)/)\n\n return callback(token.trim(), fallbackValue?.trim())\n })\n } else {\n return value\n }\n}\n\nexport function getVar(token: string, fallback?: string) {\n if (!token.startsWith(\"--\")) token = `--${token}`\n\n token = token.replace(/[^-_a-zA-Z0-9]/g, \"\")\n\n return fallback ? `var(${token}, ${fallback})` : `var(${token})`\n}\n\nexport function getVarName(system: System) {\n return function (token: string) {\n const prefix = system.config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n\n return `--${prefix}-${token}`\n }\n}\n\nexport function getColorSchemeVar(system: System) {\n return function (value: any, fallback?: string) {\n if (!isString(value)) return value\n\n const prefix = system.config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n\n const [, token] = value.split(\".\")\n\n return getVar(`${prefix}-colorScheme-${token}`, fallback)\n }\n}\n\nconst isGradient = (token: string) => token.startsWith(\"gradients.\")\nconst isKeyframes = (token: string) => token.startsWith(\"keyframes.\")\nconst isAnimation = (token: string) => token.startsWith(\"animations.\")\nconst isSpace = (token: string) => token.startsWith(\"spaces.\")\nconst isColor = (token: string) => token.startsWith(\"colors.\")\nexport const isColorScheme = (token: any) =>\n isString(token) && token.startsWith(\"colorScheme.\") && !token.includes(\"/\")\n\nexport function createVars(\n prefix: string = DEFAULT_VAR_PREFIX,\n theme: UsageTheme,\n breakpoints: Breakpoints,\n) {\n return function (tokens: VariableTokens) {\n const { getQuery, isResponsive } = breakpoints\n\n function tokenToVar(token: string): Variable {\n token = token.replace(/\\./g, \"-\")\n token = token.replace(/\\//g, \"\\\\/\")\n\n const variable = `--${[prefix, escape(token, \"-\")].filter(Boolean).join(\"-\")}`\n const reference = `var(${variable})`\n\n return { reference, variable }\n }\n\n return function (\n cssMap: CSSMap = {},\n cssVars: Dict = {},\n prevTokens?: VariableTokens,\n ): { cssMap: CSSMap; cssVars: Dict } {\n const system: System = { ...defaultSystem, cssMap }\n const options = { css, system, theme }\n\n function getRelatedReference(\n token: string,\n value: ParsedValue = \"\",\n ): [ParsedValue, Exclude<ParsedValue, undefined>] {\n const relatedToken = [token.split(\".\")[0], value].join(\".\")\n\n if (token === relatedToken) return [undefined, value]\n\n const targetToken = tokens[relatedToken] ?? prevTokens?.[relatedToken]\n\n if (!targetToken) return [undefined, value]\n\n const { reference, variable } = tokenToVar(relatedToken)\n\n return [variable, reference]\n }\n\n function valueToVar(value: any) {\n return transformInterpolation(value, (value, fallbackValue) => {\n if (value.includes(\"colors.\") || value.includes(\"colorScheme.\")) {\n if (isColorScheme(value)) return getColorSchemeVar(system)(value)\n\n return colorMix(value, { fallback: fallbackValue, system })\n } else {\n const token = tokens[value] ?? prevTokens?.[value]\n\n if (token) {\n return tokenToVar(value).reference\n } else if (value in cssMap && cssMap[value]?.ref) {\n return cssMap[value].ref\n } else if (fallbackValue) {\n fallbackValue =\n fallbackValue in cssMap && cssMap[fallbackValue]?.ref\n ? cssMap[fallbackValue]?.ref\n : fallbackValue\n\n return `var(--${prefix}-${value}, ${fallbackValue})`\n } else {\n return `var(--${prefix}-${value})`\n }\n }\n })\n }\n\n function createNegativeVar(token: string, reference: string) {\n const paths = token.split(\".\")\n const [start, ...rest] = paths\n\n const negativeToken = `${start}.-${rest.join(\".\")}`\n\n const negativeReference = calc.negate(reference)\n\n return { negativeReference, negativeToken }\n }\n\n function createAnimationVar(value: VariableValue) {\n if (isArray(value)) {\n return value.map((value) => animation(value, options)).join(\",\")\n } else {\n return animation(value, options)\n }\n }\n\n function createGradientVar(token: string, value: DefineThemeValue) {\n return function (semantic: boolean) {\n if (!semantic) {\n return gradient(value, options)\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable ? reference : gradient(value, options)\n }\n }\n }\n\n function createKeyframesVar(token: string, value: any) {\n return function (semantic: boolean) {\n if (!semantic) {\n return injectKeyframes(css(system, theme)(value))\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable\n ? reference\n : injectKeyframes(css(system, theme)(value))\n }\n }\n }\n\n function createColorVar(\n token: string,\n properties: string[],\n value: DefineThemeValue,\n ) {\n return function (semantic: boolean) {\n if (!semantic) {\n return colorMix(value, { ...options, properties })\n } else {\n const [variable, reference] = getRelatedReference(token, value)\n\n return variable\n ? reference\n : colorMix(value, { ...options, properties })\n }\n }\n }\n\n function createVar(\n token: string,\n value: VariableValue,\n variable: string,\n ) {\n return function (semantic: boolean, queries: string[] = []) {\n if (isAnimation(token)) value = createAnimationVar(value)\n\n if (isArray(value)) {\n const [lightValue, darkValue] = value\n\n createVar(token, lightValue, variable)(semantic, queries)\n createVar(\n token,\n darkValue,\n variable,\n )(semantic, [...queries, conditions._dark])\n } else if (isResponsive(value, true)) {\n Object.entries(value).forEach(([key, value]) => {\n if (key === \"base\") {\n createVar(token, value, variable)(semantic, queries)\n } else {\n const query = getQuery(key)\n\n if (!query) return\n\n createVar(token, value, variable)(semantic, [...queries, query])\n }\n })\n } else {\n const computedValue: DefineThemeValue = valueToVar(value)\n\n let resolvedValue: DefineThemeValue | Dict = computedValue\n\n if (isKeyframes(token)) {\n resolvedValue = createKeyframesVar(token, computedValue)(semantic)\n } else if (isGradient(token)) {\n resolvedValue = createGradientVar(token, computedValue)(semantic)\n } else if (isColor(token)) {\n resolvedValue = createColorVar(\n token,\n [variable],\n computedValue,\n )(semantic)\n } else if (semantic) {\n const [, reference] = getRelatedReference(token, computedValue)\n\n resolvedValue = reference\n }\n\n if (!isObject(resolvedValue))\n resolvedValue = { [variable]: resolvedValue }\n\n const resolvedCssVars = queries.reduceRight<Dict>(\n (prev, key) => ({ [key]: prev }),\n resolvedValue,\n )\n\n cssVars = merge(cssVars, resolvedCssVars)\n }\n }\n }\n\n for (let [token, { semantic, value }] of Object.entries(tokens)) {\n const { reference, variable } = tokenToVar(token)\n\n createVar(token, value, variable)(semantic)\n\n if (isSpace(token)) {\n const { negativeReference, negativeToken } = createNegativeVar(\n token,\n reference,\n )\n\n cssMap[negativeToken] = { ref: negativeReference, var: variable }\n }\n\n cssMap[token] = { ref: reference, var: variable }\n }\n\n return { cssMap, cssVars }\n }\n }\n}\n\nexport type CreateVars = ReturnType<ReturnType<typeof createVars>>\n\nexport function mergeVars(...fns: CreateVars[]) {\n return function (prevTokens?: VariableTokens) {\n let cssMap: CSSMap = {}\n let cssVars: Dict = {}\n\n for (const fn of fns) {\n const result = fn(cssMap, cssVars, prevTokens)\n\n cssMap = { ...cssMap, ...result.cssMap }\n cssVars = { ...cssVars, ...result.cssVars }\n }\n\n return { cssMap, cssVars }\n }\n}\n\nexport function varAttr<Y = StyleValueWithCondition<number | string>>(\n value: undefined | Y,\n token?: ThemeToken,\n fallbackValue?: string,\n): undefined | Y {\n if (isUndefined(value) || isNull(value) || isCSSFunction(value)) return value\n\n if (isObject(value) || isArray(value)) {\n return replaceObject(value, (value) => varAttr(value, token, fallbackValue))\n } else {\n return token\n ? (`{${token}.${value as number | string}, ${fallbackValue ?? (value as number | string)}}` as Y)\n : value\n }\n}\n\nexport function injectVars<Y extends Dict | Dict[] | undefined>(\n objOrArray: Y,\n targets: { [key in CSSProperties]?: string },\n isInvalidProp?: (prop: string) => boolean,\n): Y {\n if (!objOrArray) return objOrArray\n\n function callback(objOrArray: Dict) {\n return Object.fromEntries(\n Object.entries(objOrArray).flatMap(function ([prop, value]) {\n if (isInvalidProp?.(prop)) return [[prop, value]]\n\n const target = targets[prop]\n const result: [string, any][] = []\n\n if (target) {\n const { token } = getStyle(prop) ?? {}\n\n if (isCSSVar(value) || isInterpolation(value)) {\n result.push([`--${target}`, value])\n } else {\n result.push([\n `--${target}`,\n token ? `{${token}.${value}, ${value}}` : value,\n ])\n }\n } else if (isObject(value)) {\n result.push([prop, injectVars(value, targets)])\n } else {\n result.push([prop, value])\n }\n\n return result\n }),\n )\n }\n\n if (isArray(objOrArray)) {\n return objOrArray.map(callback) as Y\n } else {\n return callback(objOrArray) as Y\n }\n}\n"],"mappings":"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"}
@@ -47,7 +47,7 @@ const createComboboxChildren = (items, { Empty, Group, Option }) => {
47
47
  children: label
48
48
  }, index);
49
49
  } else if ("items" in item) {
50
- const { items: items$1 = [], label, ...rest } = item;
50
+ const { items: items$1, label, ...rest } = item;
51
51
  return /* @__PURE__ */ jsx(Group, {
52
52
  label,
53
53
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["type","props","items","rest","label","index","createContext","getTriggerProps: PropGetter","getItemProps: PropGetter"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items = [], label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n { matchWidth = true, ...popoverProps },\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, matchWidth, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n ref,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, triggerRef),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n ...rest,\n ...props,\n }),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, itemRef, register),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n ({ style, ...props } = {}) => ({\n style: { opacity: selected ? 1 : 0, ...style },\n ...props,\n }),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["type","props","items","rest","label","index","createContext","getTriggerProps: PropGetter","getItemProps: PropGetter"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items, label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n { matchWidth = true, ...popoverProps },\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, matchWidth, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n ref,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, triggerRef),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n ...rest,\n ...props,\n }),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, itemRef, register),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n ({ style, ...props } = {}) => ({\n style: { opacity: selected ? 1 : 0, ...style },\n ...props,\n }),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
@@ -22,7 +22,7 @@ const deserializeJSON = (value) => {
22
22
  };
23
23
  const createStorage = (type, name) => {
24
24
  const eventName = type === "localStorage" ? "local-storage" : "session-storage";
25
- return ({ key, defaultValue = void 0, deserialize = deserializeJSON, getInitialValueInEffect = true, serialize = (value$1) => serializeJSON(value$1, name) }) => {
25
+ return ({ key, defaultValue, deserialize = deserializeJSON, getInitialValueInEffect = true, serialize = (value$1) => serializeJSON(value$1, name) }) => {
26
26
  const readStorageValue = useCallback((skipStorage) => {
27
27
  if (typeof window === "undefined" || !(type in window) || window[type] == null || skipStorage) return defaultValue ?? "";
28
28
  const storageValue = window[type].getItem(key);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["value"],"sources":["../../../../src/hooks/use-local-storage/index.ts"],"sourcesContent":["\"use client\"\n\nimport { useCallback, useEffect, useState } from \"react\"\nimport { isFunction } from \"../../utils\"\nimport { useWindowEvent } from \"../use-window-event\"\n\nexport type StorageType = \"localStorage\" | \"sessionStorage\"\n\nexport interface StorageProps<Y> {\n key: string\n defaultValue?: Y\n getInitialValueInEffect?: boolean\n deserialize?: (value: string | undefined) => Y\n serialize?: (value: Y) => string\n}\n\nconst serializeJSON = <Y>(value: Y, name: string) => {\n try {\n return JSON.stringify(value)\n } catch {\n throw new Error(`useLocalStorage ${name}: Failed to serialize the value`)\n }\n}\n\nconst deserializeJSON = (value: string | undefined) => {\n if (!value) return value\n\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n}\n\nexport const createStorage = <Y>(type: StorageType, name: string) => {\n const eventName =\n type === \"localStorage\" ? \"local-storage\" : \"session-storage\"\n\n return ({\n key,\n defaultValue = undefined,\n deserialize = deserializeJSON,\n getInitialValueInEffect = true,\n serialize = (value: Y) => serializeJSON(value, name),\n }: StorageProps<Y>) => {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): Y => {\n if (\n typeof window === \"undefined\" ||\n !(type in window) ||\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n window[type] == null ||\n skipStorage\n ) {\n return (defaultValue ?? \"\") as Y\n }\n\n const storageValue = window[type].getItem(key)\n\n return storageValue !== null\n ? deserialize(storageValue)\n : ((defaultValue ?? \"\") as Y)\n },\n [key, deserialize, defaultValue],\n )\n\n const [value, setValue] = useState<Y>(\n readStorageValue(getInitialValueInEffect),\n )\n\n const setStorageValue = useCallback(\n (valOrFn: ((prevState: Y) => Y) | Y) => {\n if (isFunction(valOrFn)) {\n setValue((current) => {\n const result = valOrFn(current)\n\n window[type].setItem(key, serialize(result))\n window.dispatchEvent(\n new CustomEvent(eventName, {\n detail: { key, value: valOrFn(current) },\n }),\n )\n\n return result\n })\n } else {\n window[type].setItem(key, serialize(valOrFn))\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: valOrFn } }),\n )\n\n setValue(valOrFn)\n }\n },\n [key, serialize],\n )\n\n const removeStorageValue = useCallback(() => {\n window[type].removeItem(key)\n setValue(defaultValue as Y)\n }, [defaultValue, key])\n\n useWindowEvent(\"storage\", (ev) => {\n if (ev.storageArea === window[type] && ev.key === key)\n setValue(deserialize(ev.newValue ?? undefined))\n })\n\n useWindowEvent(eventName, (ev) => {\n if (ev.detail.key === key) setValue(ev.detail.value)\n })\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined)\n setStorageValue(defaultValue)\n }, [defaultValue, value, setStorageValue])\n\n useEffect(() => {\n if (getInitialValueInEffect) setValue(readStorageValue())\n }, [getInitialValueInEffect, readStorageValue])\n\n return [\n value === undefined ? defaultValue : value,\n setStorageValue,\n removeStorageValue,\n ] as const\n }\n}\n\n/**\n * `useLocalStorage` is a custom hook for storing, updating, and retrieving values in local storage.\n *\n * @see https://yamada-ui.com/docs/hooks/use-local-storage\n */\nexport const useLocalStorage = <Y = string>(props: StorageProps<Y>) =>\n createStorage<Y>(\"localStorage\", \"use-local-storage\")(props)\n"],"mappings":";;;;;;;AAgBA,MAAM,iBAAoB,OAAU,SAAiB;AACnD,KAAI;AACF,SAAO,KAAK,UAAU,MAAM;SACtB;AACN,QAAM,IAAI,MAAM,mBAAmB,KAAK,iCAAiC;;;AAI7E,MAAM,mBAAmB,UAA8B;AACrD,KAAI,CAAC,MAAO,QAAO;AAEnB,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN,SAAO;;;AAIX,MAAa,iBAAoB,MAAmB,SAAiB;CACnE,MAAM,YACJ,SAAS,iBAAiB,kBAAkB;AAE9C,SAAQ,EACN,KACA,eAAe,QACf,cAAc,iBACd,0BAA0B,MAC1B,aAAa,YAAa,cAAcA,SAAO,KAAK,OAC/B;EACrB,MAAM,mBAAmB,aACtB,gBAA6B;AAC5B,OACE,OAAO,WAAW,eAClB,EAAE,QAAQ,WAEV,OAAO,SAAS,QAChB,YAEA,QAAQ,gBAAgB;GAG1B,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AAE9C,UAAO,iBAAiB,OACpB,YAAY,aAAa,GACvB,gBAAgB;KAExB;GAAC;GAAK;GAAa;GAAa,CACjC;EAED,MAAM,CAAC,OAAO,YAAY,SACxB,iBAAiB,wBAAwB,CAC1C;EAED,MAAM,kBAAkB,aACrB,YAAuC;AACtC,qCAAe,QAAQ,CACrB,WAAU,YAAY;IACpB,MAAM,SAAS,QAAQ,QAAQ;AAE/B,WAAO,MAAM,QAAQ,KAAK,UAAU,OAAO,CAAC;AAC5C,WAAO,cACL,IAAI,YAAY,WAAW,EACzB,QAAQ;KAAE;KAAK,OAAO,QAAQ,QAAQ;KAAE,EACzC,CAAC,CACH;AAED,WAAO;KACP;QACG;AACL,WAAO,MAAM,QAAQ,KAAK,UAAU,QAAQ,CAAC;AAC7C,WAAO,cACL,IAAI,YAAY,WAAW,EAAE,QAAQ;KAAE;KAAK,OAAO;KAAS,EAAE,CAAC,CAChE;AAED,aAAS,QAAQ;;KAGrB,CAAC,KAAK,UAAU,CACjB;EAED,MAAM,qBAAqB,kBAAkB;AAC3C,UAAO,MAAM,WAAW,IAAI;AAC5B,YAAS,aAAkB;KAC1B,CAAC,cAAc,IAAI,CAAC;AAEvB,iBAAe,YAAY,OAAO;AAChC,OAAI,GAAG,gBAAgB,OAAO,SAAS,GAAG,QAAQ,IAChD,UAAS,YAAY,GAAG,YAAY,OAAU,CAAC;IACjD;AAEF,iBAAe,YAAY,OAAO;AAChC,OAAI,GAAG,OAAO,QAAQ,IAAK,UAAS,GAAG,OAAO,MAAM;IACpD;AAEF,kBAAgB;AACd,OAAI,iBAAiB,UAAa,UAAU,OAC1C,iBAAgB,aAAa;KAC9B;GAAC;GAAc;GAAO;GAAgB,CAAC;AAE1C,kBAAgB;AACd,OAAI,wBAAyB,UAAS,kBAAkB,CAAC;KACxD,CAAC,yBAAyB,iBAAiB,CAAC;AAE/C,SAAO;GACL,UAAU,SAAY,eAAe;GACrC;GACA;GACD;;;;;;;;AASL,MAAa,mBAA+B,UAC1C,cAAiB,gBAAgB,oBAAoB,CAAC,MAAM"}
1
+ {"version":3,"file":"index.js","names":["value"],"sources":["../../../../src/hooks/use-local-storage/index.ts"],"sourcesContent":["\"use client\"\n\nimport { useCallback, useEffect, useState } from \"react\"\nimport { isFunction } from \"../../utils\"\nimport { useWindowEvent } from \"../use-window-event\"\n\nexport type StorageType = \"localStorage\" | \"sessionStorage\"\n\nexport interface StorageProps<Y> {\n key: string\n defaultValue?: Y\n getInitialValueInEffect?: boolean\n deserialize?: (value: string | undefined) => Y\n serialize?: (value: Y) => string\n}\n\nconst serializeJSON = <Y>(value: Y, name: string) => {\n try {\n return JSON.stringify(value)\n } catch {\n throw new Error(`useLocalStorage ${name}: Failed to serialize the value`)\n }\n}\n\nconst deserializeJSON = (value: string | undefined) => {\n if (!value) return value\n\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n}\n\nexport const createStorage = <Y>(type: StorageType, name: string) => {\n const eventName =\n type === \"localStorage\" ? \"local-storage\" : \"session-storage\"\n\n return ({\n key,\n defaultValue,\n deserialize = deserializeJSON,\n getInitialValueInEffect = true,\n serialize = (value: Y) => serializeJSON(value, name),\n }: StorageProps<Y>) => {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): Y => {\n if (\n typeof window === \"undefined\" ||\n !(type in window) ||\n (window[type] as null | Storage | undefined) == null ||\n skipStorage\n ) {\n return (defaultValue ?? \"\") as Y\n }\n\n const storageValue = window[type].getItem(key)\n\n return storageValue !== null\n ? deserialize(storageValue)\n : ((defaultValue ?? \"\") as Y)\n },\n [key, deserialize, defaultValue],\n )\n\n const [value, setValue] = useState<Y>(\n readStorageValue(getInitialValueInEffect),\n )\n\n const setStorageValue = useCallback(\n (valOrFn: ((prevState: Y) => Y) | Y) => {\n if (isFunction(valOrFn)) {\n setValue((current) => {\n const result = valOrFn(current)\n\n window[type].setItem(key, serialize(result))\n window.dispatchEvent(\n new CustomEvent(eventName, {\n detail: { key, value: valOrFn(current) },\n }),\n )\n\n return result\n })\n } else {\n window[type].setItem(key, serialize(valOrFn))\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: valOrFn } }),\n )\n\n setValue(valOrFn)\n }\n },\n [key, serialize],\n )\n\n const removeStorageValue = useCallback(() => {\n window[type].removeItem(key)\n setValue(defaultValue as Y)\n }, [defaultValue, key])\n\n useWindowEvent(\"storage\", (ev) => {\n if (ev.storageArea === window[type] && ev.key === key)\n setValue(deserialize(ev.newValue ?? undefined))\n })\n\n useWindowEvent(eventName, (ev) => {\n if (ev.detail.key === key) setValue(ev.detail.value)\n })\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined)\n setStorageValue(defaultValue)\n }, [defaultValue, value, setStorageValue])\n\n useEffect(() => {\n if (getInitialValueInEffect) setValue(readStorageValue())\n }, [getInitialValueInEffect, readStorageValue])\n\n return [\n value === undefined ? defaultValue : value,\n setStorageValue,\n removeStorageValue,\n ] as const\n }\n}\n\n/**\n * `useLocalStorage` is a custom hook for storing, updating, and retrieving values in local storage.\n *\n * @see https://yamada-ui.com/docs/hooks/use-local-storage\n */\nexport const useLocalStorage = <Y = string>(props: StorageProps<Y>) =>\n createStorage<Y>(\"localStorage\", \"use-local-storage\")(props)\n"],"mappings":";;;;;;;AAgBA,MAAM,iBAAoB,OAAU,SAAiB;AACnD,KAAI;AACF,SAAO,KAAK,UAAU,MAAM;SACtB;AACN,QAAM,IAAI,MAAM,mBAAmB,KAAK,iCAAiC;;;AAI7E,MAAM,mBAAmB,UAA8B;AACrD,KAAI,CAAC,MAAO,QAAO;AAEnB,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN,SAAO;;;AAIX,MAAa,iBAAoB,MAAmB,SAAiB;CACnE,MAAM,YACJ,SAAS,iBAAiB,kBAAkB;AAE9C,SAAQ,EACN,KACA,cACA,cAAc,iBACd,0BAA0B,MAC1B,aAAa,YAAa,cAAcA,SAAO,KAAK,OAC/B;EACrB,MAAM,mBAAmB,aACtB,gBAA6B;AAC5B,OACE,OAAO,WAAW,eAClB,EAAE,QAAQ,WACT,OAAO,SAAwC,QAChD,YAEA,QAAQ,gBAAgB;GAG1B,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AAE9C,UAAO,iBAAiB,OACpB,YAAY,aAAa,GACvB,gBAAgB;KAExB;GAAC;GAAK;GAAa;GAAa,CACjC;EAED,MAAM,CAAC,OAAO,YAAY,SACxB,iBAAiB,wBAAwB,CAC1C;EAED,MAAM,kBAAkB,aACrB,YAAuC;AACtC,qCAAe,QAAQ,CACrB,WAAU,YAAY;IACpB,MAAM,SAAS,QAAQ,QAAQ;AAE/B,WAAO,MAAM,QAAQ,KAAK,UAAU,OAAO,CAAC;AAC5C,WAAO,cACL,IAAI,YAAY,WAAW,EACzB,QAAQ;KAAE;KAAK,OAAO,QAAQ,QAAQ;KAAE,EACzC,CAAC,CACH;AAED,WAAO;KACP;QACG;AACL,WAAO,MAAM,QAAQ,KAAK,UAAU,QAAQ,CAAC;AAC7C,WAAO,cACL,IAAI,YAAY,WAAW,EAAE,QAAQ;KAAE;KAAK,OAAO;KAAS,EAAE,CAAC,CAChE;AAED,aAAS,QAAQ;;KAGrB,CAAC,KAAK,UAAU,CACjB;EAED,MAAM,qBAAqB,kBAAkB;AAC3C,UAAO,MAAM,WAAW,IAAI;AAC5B,YAAS,aAAkB;KAC1B,CAAC,cAAc,IAAI,CAAC;AAEvB,iBAAe,YAAY,OAAO;AAChC,OAAI,GAAG,gBAAgB,OAAO,SAAS,GAAG,QAAQ,IAChD,UAAS,YAAY,GAAG,YAAY,OAAU,CAAC;IACjD;AAEF,iBAAe,YAAY,OAAO;AAChC,OAAI,GAAG,OAAO,QAAQ,IAAK,UAAS,GAAG,OAAO,MAAM;IACpD;AAEF,kBAAgB;AACd,OAAI,iBAAiB,UAAa,UAAU,OAC1C,iBAAgB,aAAa;KAC9B;GAAC;GAAc;GAAO;GAAgB,CAAC;AAE1C,kBAAgB;AACd,OAAI,wBAAyB,UAAS,kBAAkB,CAAC;KACxD,CAAC,yBAAyB,iBAAiB,CAAC;AAE/C,SAAO;GACL,UAAU,SAAY,eAAe;GACrC;GACA;GACD;;;;;;;;AASL,MAAa,mBAA+B,UAC1C,cAAiB,gBAAgB,oBAAoB,CAAC,MAAM"}
@@ -14,7 +14,7 @@ function assignRef(ref, value) {
14
14
  try {
15
15
  ref.current = value;
16
16
  } catch {
17
- throw new Error(`Cannot assign value '${value}' to ref '${ref}'`);
17
+ throw new Error("Cannot assign value to ref");
18
18
  }
19
19
  }
20
20
  function mergeRefs(...refs) {
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","names":[],"sources":["../../../src/utils/ref.ts"],"sourcesContent":["import { isObject } from \"@yamada-ui/utils\"\nimport * as React from \"react\"\n\nexport function isRefObject(val: any): val is { current: any } {\n return isObject(val) && \"current\" in val\n}\n\nexport function assignRef<Y = any>(ref: React.Ref<Y> | undefined, value: Y) {\n if (ref == null) return\n\n if (typeof ref === \"function\") {\n ref(value)\n\n return\n }\n\n try {\n ref.current = value\n } catch {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nexport function mergeRefs<Y = any>(\n ...refs: (null | React.Ref<Y> | undefined)[]\n) {\n return function (node: null | Y) {\n return refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport function useMergeRefs<Y = any>(...refs: (React.Ref<Y> | undefined)[]) {\n return React.useMemo(() => mergeRefs(...refs), [refs])\n}\n\nexport function useCallbackRef<Y extends (...args: any[]) => any>(\n callback: undefined | Y,\n deps: React.DependencyList = [],\n) {\n const callbackRef = React.useRef(callback)\n\n React.useEffect(() => {\n callbackRef.current = callback\n })\n\n return React.useCallback(\n ((...args) => callbackRef.current?.(...args)) as Y,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps,\n )\n}\n"],"mappings":";;;;AAGA,SAAgB,YAAY,KAAmC;AAC7D,QAAO,SAAS,IAAI,IAAI,aAAa;;AAGvC,SAAgB,UAAmB,KAA+B,OAAU;AAC1E,KAAI,OAAO,KAAM;AAEjB,KAAI,OAAO,QAAQ,YAAY;AAC7B,MAAI,MAAM;AAEV;;AAGF,KAAI;AACF,MAAI,UAAU;SACR;AACN,QAAM,IAAI,MAAM,wBAAwB,MAAM,YAAY,IAAI,GAAG;;;AAIrE,SAAgB,UACd,GAAG,MACH;AACA,QAAO,SAAU,MAAgB;AAC/B,SAAO,KAAK,SAAS,QAAQ;AAC3B,aAAU,KAAK,KAAK;IACpB;;;AAIN,SAAgB,aAAsB,GAAG,MAAoC;AAC3E,QAAO,MAAM,cAAc,UAAU,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC;;AAGxD,SAAgB,eACd,UACA,OAA6B,EAAE,EAC/B;CACA,MAAM,cAAc,MAAM,OAAO,SAAS;AAE1C,OAAM,gBAAgB;AACpB,cAAY,UAAU;GACtB;AAEF,QAAO,MAAM,cACT,GAAG,SAAS,YAAY,UAAU,GAAG,KAAK,GAE5C,KACD"}
1
+ {"version":3,"file":"ref.js","names":[],"sources":["../../../src/utils/ref.ts"],"sourcesContent":["import { isObject } from \"@yamada-ui/utils\"\nimport * as React from \"react\"\n\nexport function isRefObject(val: any): val is { current: any } {\n return isObject(val) && \"current\" in val\n}\n\nexport function assignRef<Y = any>(ref: React.Ref<Y> | undefined, value: Y) {\n if (ref == null) return\n\n if (typeof ref === \"function\") {\n ref(value)\n\n return\n }\n\n try {\n ref.current = value\n } catch {\n throw new Error(\"Cannot assign value to ref\")\n }\n}\n\nexport function mergeRefs<Y = any>(\n ...refs: (null | React.Ref<Y> | undefined)[]\n) {\n return function (node: null | Y) {\n return refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport function useMergeRefs<Y = any>(...refs: (React.Ref<Y> | undefined)[]) {\n return React.useMemo(() => mergeRefs(...refs), [refs])\n}\n\nexport function useCallbackRef<Y extends (...args: any[]) => any>(\n callback: undefined | Y,\n deps: React.DependencyList = [],\n) {\n const callbackRef = React.useRef(callback)\n\n React.useEffect(() => {\n callbackRef.current = callback\n })\n\n return React.useCallback(\n ((...args) => callbackRef.current?.(...args)) as Y,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps,\n )\n}\n"],"mappings":";;;;AAGA,SAAgB,YAAY,KAAmC;AAC7D,QAAO,SAAS,IAAI,IAAI,aAAa;;AAGvC,SAAgB,UAAmB,KAA+B,OAAU;AAC1E,KAAI,OAAO,KAAM;AAEjB,KAAI,OAAO,QAAQ,YAAY;AAC7B,MAAI,MAAM;AAEV;;AAGF,KAAI;AACF,MAAI,UAAU;SACR;AACN,QAAM,IAAI,MAAM,6BAA6B;;;AAIjD,SAAgB,UACd,GAAG,MACH;AACA,QAAO,SAAU,MAAgB;AAC/B,SAAO,KAAK,SAAS,QAAQ;AAC3B,aAAU,KAAK,KAAK;IACpB;;;AAIN,SAAgB,aAAsB,GAAG,MAAoC;AAC3E,QAAO,MAAM,cAAc,UAAU,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC;;AAGxD,SAAgB,eACd,UACA,OAA6B,EAAE,EAC/B;CACA,MAAM,cAAc,MAAM,OAAO,SAAS;AAE1C,OAAM,gBAAgB;AACpB,cAAY,UAAU;GACtB;AAEF,QAAO,MAAM,cACT,GAAG,SAAS,YAAY,UAAU,GAAG,KAAK,GAE5C,KACD"}
@@ -9,7 +9,7 @@ import "../collapse/index.js";
9
9
  import "../../index.js";
10
10
  import { AccordionStyle } from "./accordion.style.js";
11
11
  import { UseAccordionItemProps, UseAccordionProps } from "./use-accordion.js";
12
- import * as react1217 from "react";
12
+ import * as react41 from "react";
13
13
 
14
14
  //#region src/components/accordion/accordion.d.ts
15
15
  interface AccordionCallBackProps {
@@ -33,7 +33,7 @@ interface AccordionRootProps extends Omit<HTMLStyledProps, "onChange">, ThemePro
33
33
  */
34
34
  items?: AccordionItem[];
35
35
  }
36
- declare const AccordionPropsContext: react1217.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
36
+ declare const AccordionPropsContext: react41.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
37
37
  /**
38
38
  * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.
39
39
  *
@@ -2,10 +2,10 @@ import { HTMLProps, PropGetter } from "../../core/components/index.types.js";
2
2
  import "../../core/index.js";
3
3
  import { Descendant } from "../../hooks/use-descendants/index.js";
4
4
  import "../../index.js";
5
- import * as react1199 from "react";
5
+ import * as react42 from "react";
6
6
 
7
7
  //#region src/components/accordion/use-accordion.d.ts
8
- declare const AccordionDescendantsContext: react1199.Context<{
8
+ declare const AccordionDescendantsContext: react42.Context<{
9
9
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
10
10
  count: (props?: Partial<{}> | undefined) => number;
11
11
  destroy: () => void;
@@ -24,7 +24,7 @@ declare const AccordionDescendantsContext: react1199.Context<{
24
24
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
25
25
  register: (props?: {
26
26
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
27
- } | undefined) => react1199.RefCallback<HTMLButtonElement>;
27
+ } | undefined) => react42.RefCallback<HTMLButtonElement>;
28
28
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
29
29
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
30
30
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
@@ -50,12 +50,12 @@ declare const AccordionDescendantsContext: react1199.Context<{
50
50
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
51
51
  register: (props?: {
52
52
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
53
- } | undefined) => react1199.RefCallback<HTMLButtonElement>;
53
+ } | undefined) => react42.RefCallback<HTMLButtonElement>;
54
54
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
55
55
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
56
56
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
57
57
  };
58
- register: react1199.RefCallback<HTMLButtonElement>;
58
+ register: react42.RefCallback<HTMLButtonElement>;
59
59
  }, useAccordionDescendants: () => {
60
60
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
61
61
  count: (props?: Partial<{}> | undefined) => number;
@@ -75,15 +75,15 @@ declare const AccordionDescendantsContext: react1199.Context<{
75
75
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
76
76
  register: (props?: {
77
77
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
78
- } | undefined) => react1199.RefCallback<HTMLButtonElement>;
78
+ } | undefined) => react42.RefCallback<HTMLButtonElement>;
79
79
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
80
80
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
81
81
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
82
82
  };
83
83
  interface AccordionContext extends Omit<UseAccordionReturn, "descendants" | "getRootProps"> {}
84
- declare const AccordionContext: react1199.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
84
+ declare const AccordionContext: react42.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
85
85
  interface AccordionItemContext extends Omit<UseAccordionItemReturn, "getItemProps"> {}
86
- declare const AccordionItemContext: react1199.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
86
+ declare const AccordionItemContext: react42.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
87
87
  interface UseAccordionProps extends Omit<HTMLProps, "onChange"> {
88
88
  /**
89
89
  * The initial index(es) of the accordion item to expand.
@@ -137,7 +137,7 @@ declare const useAccordion: ({
137
137
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
138
138
  register: (props?: {
139
139
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
140
- } | undefined) => react1199.RefCallback<HTMLButtonElement>;
140
+ } | undefined) => react42.RefCallback<HTMLButtonElement>;
141
141
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
142
142
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
143
143
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
@@ -145,8 +145,8 @@ declare const useAccordion: ({
145
145
  focusedIndex: number;
146
146
  index: number | number[];
147
147
  multiple: boolean | undefined;
148
- setFocusedIndex: react1199.Dispatch<react1199.SetStateAction<number>>;
149
- setIndex: react1199.Dispatch<react1199.SetStateAction<number | number[]>>;
148
+ setFocusedIndex: react42.Dispatch<react42.SetStateAction<number>>;
149
+ setIndex: react42.Dispatch<react42.SetStateAction<number | number[]>>;
150
150
  toggle: boolean | undefined;
151
151
  getRootProps: PropGetter<"div", undefined, undefined>;
152
152
  };
@@ -7,7 +7,7 @@ import { UsePopupAnimationProps } from "../popover/popover.js";
7
7
  import "../popover/index.js";
8
8
  import { UseActionBarProps } from "./use-action-bar.js";
9
9
  import "../../index.js";
10
- import * as react248 from "react";
10
+ import * as react40 from "react";
11
11
  import { PropsWithChildren, ReactNode } from "react";
12
12
 
13
13
  //#region src/components/action-bar/action-bar.d.ts
@@ -29,7 +29,7 @@ interface ActionBarRootProps extends Omit<HTMLStyledProps, "content">, ThemeProp
29
29
  */
30
30
  onCloseComplete?: () => void;
31
31
  }
32
- declare const ActionBarPropsContext: react248.Context<Partial<ActionBarRootProps> | undefined>, useActionBarPropsContext: () => Partial<ActionBarRootProps> | undefined;
32
+ declare const ActionBarPropsContext: react40.Context<Partial<ActionBarRootProps> | undefined>, useActionBarPropsContext: () => Partial<ActionBarRootProps> | undefined;
33
33
  /**
34
34
  * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.
35
35
  *
@@ -5,7 +5,7 @@ import { HTMLMotionProps } from "../motion/index.types.js";
5
5
  import "../motion/index.js";
6
6
  import { AiryStyle } from "./airy.style.js";
7
7
  import "../../index.js";
8
- import * as react249 from "react";
8
+ import * as react38 from "react";
9
9
  import { ReactNode } from "react";
10
10
 
11
11
  //#region src/components/airy/airy.d.ts
@@ -57,7 +57,7 @@ interface AiryProps extends Omit<HTMLMotionProps<"button">, "onChange">, ThemePr
57
57
  */
58
58
  onChange?: (value: KeyframeIdent) => void;
59
59
  }
60
- declare const AiryPropsContext: react249.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
60
+ declare const AiryPropsContext: react38.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
61
61
  /**
62
62
  * `Airy` is a component that creates an airy animation, switching between two elements when one is clicked.
63
63
  *
@@ -9,7 +9,7 @@ import "../loading/index.js";
9
9
  import { StatusScheme } from "../status/status.js";
10
10
  import "../status/index.js";
11
11
  import "../../index.js";
12
- import * as react1161 from "react";
12
+ import * as react36 from "react";
13
13
 
14
14
  //#region src/components/alert/alert.d.ts
15
15
  interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
@@ -20,7 +20,7 @@ interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
20
20
  */
21
21
  status?: StatusScheme;
22
22
  }
23
- declare const AlertPropsContext: react1161.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
23
+ declare const AlertPropsContext: react36.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
24
24
  /**
25
25
  * `Alert` is a component that conveys information to the user.
26
26
  *
@@ -5,7 +5,7 @@ import { AlphaSliderStyle } from "./alpha-slider.style.js";
5
5
  import { HueSliderOverlayProps, HueSliderRootProps, HueSliderThumbProps, HueSliderTrackProps } from "../hue-slider/hue-slider.js";
6
6
  import "../hue-slider/index.js";
7
7
  import "../../index.js";
8
- import * as react247 from "react";
8
+ import * as react63 from "react";
9
9
 
10
10
  //#region src/components/alpha-slider/alpha-slider.d.ts
11
11
  interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps, "color" | "max" | "step" | "thumbProps" | "trackProps">, AlphaSliderStyle> {
@@ -38,7 +38,7 @@ interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps
38
38
  */
39
39
  trackProps?: AlphaSliderTrackProps;
40
40
  }
41
- declare const AlphaSliderPropsContext: react247.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
41
+ declare const AlphaSliderPropsContext: react63.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
42
42
  /**
43
43
  * `AlphaSlider` is a component used to allow the user to select color transparency.
44
44
  *
@@ -2,7 +2,7 @@ import { StyleValue } from "../../core/css/index.types.js";
2
2
  import { Component, HTMLStyledProps } from "../../core/components/index.types.js";
3
3
  import "../../core/index.js";
4
4
  import "../../index.js";
5
- import * as react246 from "react";
5
+ import * as react35 from "react";
6
6
 
7
7
  //#region src/components/aspect-ratio/aspect-ratio.d.ts
8
8
  interface AspectRatioProps extends HTMLStyledProps {
@@ -13,7 +13,7 @@ interface AspectRatioProps extends HTMLStyledProps {
13
13
  */
14
14
  ratio?: StyleValue<number>;
15
15
  }
16
- declare const AspectRatioPropsContext: react246.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
16
+ declare const AspectRatioPropsContext: react35.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
17
17
  /**
18
18
  * `AspectRatio` is a component for embedding things like videos and maps while maintaining the aspect ratio.
19
19
  *
@@ -12,7 +12,7 @@ import { InputGroupRootProps } from "../input/input-group.js";
12
12
  import "../input/index.js";
13
13
  import { UseAutocompleteOptionProps, UseAutocompleteProps } from "./use-autocomplete.js";
14
14
  import "../../index.js";
15
- import * as react245 from "react";
15
+ import * as react922 from "react";
16
16
  import { ReactElement, ReactNode } from "react";
17
17
 
18
18
  //#region src/components/autocomplete/autocomplete.d.ts
@@ -68,7 +68,7 @@ interface AutocompleteRootProps<Multiple extends boolean = false> extends Omit<H
68
68
  */
69
69
  rootProps?: InputGroupRootProps;
70
70
  }
71
- declare const AutocompletePropsContext: react245.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
71
+ declare const AutocompletePropsContext: react922.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
72
72
  /**
73
73
  * `Autocomplete` is a component used to display suggestions in response to user text input.
74
74
  *
@@ -3,7 +3,7 @@ import { CSSPropObject, CSSSlotObject } from "../../core/css/index.types.js";
3
3
  import "../../index.js";
4
4
 
5
5
  //#region src/components/autocomplete/autocomplete.style.d.ts
6
- declare const autocompleteStyle: ComponentSlotStyle<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "empty" | "field" | "valueText", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "empty" | "field" | "valueText">>, {
6
+ declare const autocompleteStyle: ComponentSlotStyle<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "indicator" | "root" | "field" | "empty" | "valueText", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "indicator" | "root" | "field" | "empty" | "valueText">>, {
7
7
  xs: {
8
8
  empty: {
9
9
  gap: "1.5";
@@ -8,7 +8,7 @@ import "../field/index.js";
8
8
  import { Descendant, DescendantProps } from "../../hooks/use-descendants/index.js";
9
9
  import { ComboboxDescendant, ComboboxDescendantProps, ComboboxItem, ComboboxItemWithValue, UseComboboxItemProps, UseComboboxProps } from "../../hooks/use-combobox/index.js";
10
10
  import "../../index.js";
11
- import * as react239 from "react";
11
+ import * as react916 from "react";
12
12
  import { ChangeEvent, ReactNode } from "react";
13
13
 
14
14
  //#region src/components/autocomplete/use-autocomplete.d.ts
@@ -28,7 +28,7 @@ interface AutocompleteFilter {
28
28
  }
29
29
  type AutocompleteMatcher = typeof index_d_exports.match;
30
30
  interface AutocompleteContext extends Pick<UseAutocompleteReturn, "max" | "value"> {}
31
- declare const AutocompleteContext: react239.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
31
+ declare const AutocompleteContext: react916.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
32
32
  interface UseAutocompleteProps<Multiple extends boolean = false> extends Omit<HTMLProps, "defaultValue" | "onChange" | "ref" | "value">, Omit<UseComboboxProps, "defaultValue" | "initialFocusValue" | "onChange" | "ref" | "value">, HTMLRefAttributes<"input">, FieldProps {
33
33
  /**
34
34
  * If `true`, the autocomplete will allow custom value.
@@ -156,7 +156,7 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
156
156
  lastValue: (props?: Partial<ComboboxDescendantProps> | undefined) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
157
157
  nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean, props?: Partial<ComboboxDescendantProps> | undefined) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
158
158
  prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean, props?: Partial<ComboboxDescendantProps> | undefined) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
159
- register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react239.RefCallback<HTMLDivElement>;
159
+ register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react916.RefCallback<HTMLDivElement>;
160
160
  unregister: (node?: HTMLDivElement | null | undefined) => void;
161
161
  value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
162
162
  values: (props?: Partial<ComboboxDescendantProps> | undefined) => Descendant<HTMLDivElement, ComboboxDescendantProps>[];
@@ -166,8 +166,8 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
166
166
  items: ComboboxItem[];
167
167
  max: number | undefined;
168
168
  open: boolean;
169
- setInputValue: react239.Dispatch<react239.SetStateAction<string>>;
170
- setValue: react239.Dispatch<react239.SetStateAction<Multiple extends true ? string[] : string>>;
169
+ setInputValue: react916.Dispatch<react916.SetStateAction<string>>;
170
+ setValue: react916.Dispatch<react916.SetStateAction<Multiple extends true ? string[] : string>>;
171
171
  value: Multiple extends true ? string[] : string;
172
172
  valueMap: {
173
173
  [key: string]: ComboboxItemWithValue;
@@ -6,9 +6,9 @@ import "../../core/index.js";
6
6
  import { AvatarStyle } from "./avatar.style.js";
7
7
  import { UseAvatarProps } from "./use-avatar.js";
8
8
  import "../../index.js";
9
- import * as react236 from "react";
9
+ import * as react913 from "react";
10
10
  import { ReactElement } from "react";
11
- import * as _yamada_ui_utils4 from "@yamada-ui/utils";
11
+ import * as _yamada_ui_utils10 from "@yamada-ui/utils";
12
12
 
13
13
  //#region src/components/avatar/avatar.d.ts
14
14
  interface AvatarProps extends HTMLStyledProps, ThemeProps<AvatarStyle>, UseAvatarProps {
@@ -25,7 +25,7 @@ interface AvatarProps extends HTMLStyledProps, ThemeProps<AvatarStyle>, UseAvata
25
25
  */
26
26
  imageProps?: AvatarImageProps;
27
27
  }
28
- declare const component: <H extends "fragment" | As = "div", R extends _yamada_ui_utils4.Dict = _yamada_ui_utils4.Dict<any>>(el: H | react236.FC<R>, slot?: ComponentSlot<ComponentSlotName<ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
28
+ declare const component: <H extends "fragment" | As = "div", R extends _yamada_ui_utils10.Dict = _yamada_ui_utils10.Dict<any>>(el: H | react913.FC<R>, slot?: ComponentSlot<ComponentSlotName<ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
29
29
  shape: {
30
30
  circle: {
31
31
  root: {
@@ -148,7 +148,7 @@ declare const component: <H extends "fragment" | As = "div", R extends _yamada_u
148
148
  name,
149
149
  className,
150
150
  ...options
151
- }?: ComponentOptions) => (initialProps?: InitialProps<R>, ...superProps: SuperProps<R>[]) => H extends "fragment" ? react236.FunctionComponent<R> : Component<Exclude<H, "fragment">, R>, AvatarPropsContext: react236.Context<Partial<AvatarProps> | undefined>, useAvatarPropsContext: () => Partial<AvatarProps> | undefined, useRootComponentProps: <Y extends _yamada_ui_utils4.Dict = {}, R extends keyof Y = keyof Y>(props: Y, slot?: ComponentSlot<ComponentSlotName<ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
151
+ }?: ComponentOptions) => (initialProps?: InitialProps<R>, ...superProps: SuperProps<R>[]) => H extends "fragment" ? react913.FunctionComponent<R> : Component<Exclude<H, "fragment">, R>, AvatarPropsContext: react913.Context<Partial<AvatarProps> | undefined>, useAvatarPropsContext: () => Partial<AvatarProps> | undefined, useRootComponentProps: <Y extends _yamada_ui_utils10.Dict = {}, R extends keyof Y = keyof Y>(props: Y, slot?: ComponentSlot<ComponentSlotName<ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
152
152
  shape: {
153
153
  circle: {
154
154
  root: {
@@ -271,7 +271,7 @@ declare const component: <H extends "fragment" | As = "div", R extends _yamada_u
271
271
  className,
272
272
  withContext,
273
273
  transferProps
274
- }?: UseComponentPropsOptions<R>) => [CSSSlotObject, _yamada_ui_utils4.Merge<WithoutThemeProps<Y, ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
274
+ }?: UseComponentPropsOptions<R>) => [CSSSlotObject, _yamada_ui_utils10.Merge<WithoutThemeProps<Y, ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
275
275
  shape: {
276
276
  circle: {
277
277
  root: {