@yamada-ui/react 2.1.2 → 2.1.3-dev-20260312041045

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 (223) hide show
  1. package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs +2 -2
  2. package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs.map +1 -1
  3. package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs +12 -17
  4. package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs.map +1 -1
  5. package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js +2 -2
  6. package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js.map +1 -1
  7. package/dist/esm/components/infinite-scroll-area/use-infinite-scroll.js +13 -18
  8. package/dist/esm/components/infinite-scroll-area/use-infinite-scroll.js.map +1 -1
  9. package/dist/types/components/accordion/accordion.d.ts +2 -2
  10. package/dist/types/components/accordion/accordion.style.d.ts +1 -1
  11. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  12. package/dist/types/components/airy/airy.d.ts +2 -2
  13. package/dist/types/components/alert/alert.d.ts +2 -2
  14. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  15. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  16. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  17. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  18. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  19. package/dist/types/components/avatar/avatar.d.ts +5 -5
  20. package/dist/types/components/avatar/avatar.style.d.ts +1 -1
  21. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  22. package/dist/types/components/badge/badge.d.ts +2 -2
  23. package/dist/types/components/bleed/bleed.d.ts +2 -2
  24. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  25. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  26. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  27. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  28. package/dist/types/components/button/button.d.ts +2 -2
  29. package/dist/types/components/button/icon-button.d.ts +2 -2
  30. package/dist/types/components/calendar/calendar.d.ts +2 -2
  31. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  32. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  33. package/dist/types/components/card/card.d.ts +2 -2
  34. package/dist/types/components/carousel/carousel.d.ts +2 -2
  35. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  36. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  37. package/dist/types/components/center/center.d.ts +2 -2
  38. package/dist/types/components/chart/area-chart.d.ts +2 -2
  39. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  40. package/dist/types/components/chart/chart.d.ts +5 -5
  41. package/dist/types/components/chart/donut-chart.d.ts +2 -2
  42. package/dist/types/components/chart/line-chart.d.ts +2 -2
  43. package/dist/types/components/chart/pie-chart.d.ts +2 -2
  44. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  45. package/dist/types/components/chart/use-chart.d.ts +2 -2
  46. package/dist/types/components/checkbox/checkbox.d.ts +4 -4
  47. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  48. package/dist/types/components/checkbox-card/checkbox-card.d.ts +4 -4
  49. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  50. package/dist/types/components/close-button/close-button.d.ts +2 -2
  51. package/dist/types/components/code/code.d.ts +2 -2
  52. package/dist/types/components/collapse/collapse.d.ts +2 -2
  53. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  54. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  55. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  56. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  57. package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
  58. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  59. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  60. package/dist/types/components/container/container.d.ts +2 -2
  61. package/dist/types/components/data-list/data-list.d.ts +2 -2
  62. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  63. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  64. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  65. package/dist/types/components/drawer/drawer.d.ts +2 -2
  66. package/dist/types/components/dropzone/dropzone.d.ts +4 -4
  67. package/dist/types/components/editable/editable.d.ts +4 -4
  68. package/dist/types/components/editable/use-editable.d.ts +2 -2
  69. package/dist/types/components/em/em.d.ts +2 -2
  70. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  71. package/dist/types/components/fade/fade.d.ts +2 -2
  72. package/dist/types/components/field/field.d.ts +3 -3
  73. package/dist/types/components/field/field.style.d.ts +2 -2
  74. package/dist/types/components/field/use-field-props.d.ts +3 -3
  75. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  76. package/dist/types/components/fieldset/fieldset.style.d.ts +1 -1
  77. package/dist/types/components/file-button/file-button.d.ts +2 -2
  78. package/dist/types/components/file-button/use-file-button.d.ts +18 -18
  79. package/dist/types/components/file-input/file-input.d.ts +2 -2
  80. package/dist/types/components/file-input/file-input.style.d.ts +1 -1
  81. package/dist/types/components/file-input/use-file-input.d.ts +15 -15
  82. package/dist/types/components/flex/flex.d.ts +2 -2
  83. package/dist/types/components/flip/flip.d.ts +4 -4
  84. package/dist/types/components/flip/flip.style.d.ts +1 -1
  85. package/dist/types/components/float/float.d.ts +2 -2
  86. package/dist/types/components/form/form.d.ts +3 -3
  87. package/dist/types/components/format/format-byte.d.ts +4 -4
  88. package/dist/types/components/format/format-date-time.d.ts +4 -4
  89. package/dist/types/components/format/format-number.d.ts +2 -2
  90. package/dist/types/components/grid/grid-item.d.ts +2 -2
  91. package/dist/types/components/grid/grid.d.ts +2 -2
  92. package/dist/types/components/group/group.d.ts +2 -2
  93. package/dist/types/components/group/use-group.d.ts +2 -2
  94. package/dist/types/components/heading/heading.d.ts +2 -2
  95. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  96. package/dist/types/components/icon/icon.d.ts +5 -5
  97. package/dist/types/components/image/image.d.ts +2 -2
  98. package/dist/types/components/indicator/indicator.d.ts +4 -4
  99. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  100. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.style.d.ts +2 -2
  101. package/dist/types/components/infinite-scroll-area/use-infinite-scroll.d.ts +1 -1
  102. package/dist/types/components/input/input-addon.d.ts +2 -2
  103. package/dist/types/components/input/input-element.d.ts +2 -2
  104. package/dist/types/components/input/input.d.ts +2 -2
  105. package/dist/types/components/kbd/kbd.d.ts +2 -2
  106. package/dist/types/components/link/link.d.ts +2 -2
  107. package/dist/types/components/link-box/link-box.d.ts +2 -2
  108. package/dist/types/components/list/list.d.ts +2 -2
  109. package/dist/types/components/list/list.style.d.ts +2 -2
  110. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  111. package/dist/types/components/loading/loading.d.ts +3 -3
  112. package/dist/types/components/mark/mark.d.ts +2 -2
  113. package/dist/types/components/menu/menu.d.ts +2 -2
  114. package/dist/types/components/menu/menu.style.d.ts +2 -2
  115. package/dist/types/components/menu/use-menu.d.ts +11 -11
  116. package/dist/types/components/modal/modal.d.ts +2 -2
  117. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  118. package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
  119. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  120. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  121. package/dist/types/components/native-select/native-select.d.ts +2 -2
  122. package/dist/types/components/native-table/native-table.d.ts +4 -4
  123. package/dist/types/components/notice/notice.style.d.ts +1 -1
  124. package/dist/types/components/number-input/number-input.d.ts +2 -2
  125. package/dist/types/components/pagination/pagination.d.ts +2 -2
  126. package/dist/types/components/pagination/pagination.style.d.ts +1 -1
  127. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  128. package/dist/types/components/password-input/password-input.d.ts +2 -2
  129. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  130. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  131. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  132. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  133. package/dist/types/components/popover/popover.d.ts +2 -2
  134. package/dist/types/components/progress/progress.d.ts +4 -4
  135. package/dist/types/components/progress/use-progress.d.ts +706 -706
  136. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  137. package/dist/types/components/radio/radio.d.ts +4 -4
  138. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  139. package/dist/types/components/radio-card/radio-card.d.ts +4 -4
  140. package/dist/types/components/rating/rating.style.d.ts +2 -2
  141. package/dist/types/components/rating/use-rating.d.ts +7 -7
  142. package/dist/types/components/reorder/reorder.d.ts +2 -2
  143. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  144. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  145. package/dist/types/components/resizable/resizable.d.ts +2 -2
  146. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  147. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  148. package/dist/types/components/ripple/ripple.d.ts +2 -2
  149. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  150. package/dist/types/components/rotate/rotate.d.ts +2 -2
  151. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  152. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  153. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  154. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  155. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  156. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  157. package/dist/types/components/select/select.d.ts +2 -2
  158. package/dist/types/components/select/use-select.d.ts +4 -4
  159. package/dist/types/components/separator/separator.d.ts +2 -2
  160. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  161. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  162. package/dist/types/components/slide/slide.d.ts +2 -2
  163. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  164. package/dist/types/components/slider/slider.d.ts +2 -2
  165. package/dist/types/components/slider/use-slider.d.ts +2 -2
  166. package/dist/types/components/stack/h-stack.d.ts +2 -2
  167. package/dist/types/components/stack/stack.d.ts +2 -2
  168. package/dist/types/components/stack/v-stack.d.ts +2 -2
  169. package/dist/types/components/stack/z-stack.d.ts +2 -2
  170. package/dist/types/components/stat/stat.d.ts +2 -2
  171. package/dist/types/components/status/status.d.ts +2 -2
  172. package/dist/types/components/steps/steps.d.ts +2 -2
  173. package/dist/types/components/steps/steps.style.d.ts +1 -1
  174. package/dist/types/components/steps/use-steps.d.ts +10 -10
  175. package/dist/types/components/switch/switch.d.ts +2 -2
  176. package/dist/types/components/table/table.d.ts +2 -2
  177. package/dist/types/components/tabs/tabs.d.ts +2 -2
  178. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  179. package/dist/types/components/tag/tag.d.ts +2 -2
  180. package/dist/types/components/text/text.d.ts +2 -2
  181. package/dist/types/components/textarea/textarea.d.ts +2 -2
  182. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  183. package/dist/types/components/timeline/timeline.d.ts +5 -5
  184. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  185. package/dist/types/components/toggle/toggle.d.ts +5 -5
  186. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  187. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  188. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  189. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  190. package/dist/types/components/wrap/wrap.d.ts +2 -2
  191. package/dist/types/core/components/create-component.d.ts +7 -9
  192. package/dist/types/core/components/index.types.d.ts +0 -1
  193. package/dist/types/core/components/use-component-style.d.ts +0 -2
  194. package/dist/types/core/components/utils.d.ts +0 -1
  195. package/dist/types/core/constant.d.ts +0 -1
  196. package/dist/types/core/css/calc.d.ts +0 -1
  197. package/dist/types/core/css/config.d.ts +0 -1
  198. package/dist/types/core/css/css.d.ts +0 -1
  199. package/dist/types/core/css/index.types.d.ts +0 -1
  200. package/dist/types/core/css/styles.d.ts +0 -1
  201. package/dist/types/core/css/token.d.ts +0 -1
  202. package/dist/types/core/css/use-css.d.ts +0 -1
  203. package/dist/types/core/css/utils.d.ts +0 -2
  204. package/dist/types/core/generated-theme-tokens.types.d.ts +0 -1
  205. package/dist/types/core/index.d.ts +0 -2
  206. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  207. package/dist/types/core/system/config.d.ts +0 -1
  208. package/dist/types/core/system/create-system.d.ts +0 -1
  209. package/dist/types/core/system/factory.d.ts +0 -1
  210. package/dist/types/core/system/index.types.d.ts +0 -1
  211. package/dist/types/core/system/storage-script.d.ts +3 -3
  212. package/dist/types/core/system/styled.d.ts +2 -3
  213. package/dist/types/core/system/system-provider.d.ts +2 -2
  214. package/dist/types/core/system/var.d.ts +0 -2
  215. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  216. package/dist/types/hooks/use-clickable/index.d.ts +7 -7
  217. package/dist/types/hooks/use-combobox/index.d.ts +12 -12
  218. package/dist/types/hooks/use-counter/index.d.ts +2 -2
  219. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  220. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  221. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  222. package/dist/types/utils/children.d.ts +2 -2
  223. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
4
4
  const require_ref = require('../../utils/ref.cjs');
5
- require('../../utils/index.cjs');
5
+ const require_utils_index = require('../../utils/index.cjs');
6
6
  const require_factory = require('../../core/system/factory.cjs');
7
7
  const require_create_component = require('../../core/components/create-component.cjs');
8
8
  require('../../core/index.cjs');
@@ -30,7 +30,7 @@ const InfiniteScrollArea = withProvider(({ ref, children, disabled, finish: fini
30
30
  resetRef,
31
31
  reverse,
32
32
  rootMargin,
33
- rootRef: rootRefProp ?? rootRef,
33
+ rootRef: (0, require_utils_index.utils_exports.isNull)(rootRefProp) ? null : rootRefProp ?? rootRef,
34
34
  startIndex,
35
35
  threshold,
36
36
  onLoad
@@ -1 +1 @@
1
- {"version":3,"file":"infinite-scroll-area.cjs","names":["createSlotComponent","infiniteScrollAreaStyle","useInfiniteScroll","useValue","styled","mergeRefs"],"sources":["../../../../src/components/infinite-scroll-area/infinite-scroll-area.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { InfiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport type { UseInfiniteScrollProps } from \"./use-infinite-scroll\"\nimport { useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { mergeRefs } from \"../../utils\"\nimport { infiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport { useInfiniteScroll } from \"./use-infinite-scroll\"\n\nexport interface InfiniteScrollAreaProps\n extends\n Omit<HTMLStyledProps, keyof UseInfiniteScrollProps>,\n Omit<UseInfiniteScrollProps, \"orientation\">,\n ThemeProps<InfiniteScrollAreaStyle> {\n /**\n * The infinite scroll area finish to use.\n */\n finish?: ReactNode\n /**\n * The infinite scroll area loading to use.\n */\n loading?: ReactNode\n /**\n * Props for infinite scroll area trigger component.\n */\n triggerProps?: HTMLStyledProps\n}\n\nconst {\n PropsContext: InfiniteScrollAreaPropsContext,\n usePropsContext: useInfiniteScrollAreaPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<InfiniteScrollAreaProps, InfiniteScrollAreaStyle>(\n \"infinite-scroll-area\",\n infiniteScrollAreaStyle,\n)\n\nexport { InfiniteScrollAreaPropsContext, useInfiniteScrollAreaPropsContext }\n\n/**\n * `InfiniteScrollArea` is for providing infinite scroll functionality.\n * This feature provides a smooth scrolling experience by automatically loading and displaying the next dataset when the user reaches the end of the page.\n *\n * @see https://yamada-ui.com/docs/components/infinite-scroll-area\n */\nexport const InfiniteScrollArea = withProvider<\n \"div\",\n InfiniteScrollAreaProps,\n \"orientation\"\n>(\n ({\n ref,\n children,\n disabled,\n finish: finishProp,\n indexRef,\n initialLoad,\n loading,\n orientation: orientationProp,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp,\n startIndex,\n threshold,\n triggerProps,\n onLoad,\n ...rest\n }) => {\n const rootRef = useRef<HTMLDivElement>(null)\n const orientation = useValue(orientationProp)\n const { ref: triggerRef, finish } = useInfiniteScroll({\n disabled,\n indexRef,\n initialLoad,\n orientation,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp ?? rootRef,\n startIndex,\n threshold,\n onLoad,\n })\n const hasFinish = !!finishProp\n const showTrigger = !disabled && (hasFinish || !finish)\n\n return (\n <styled.div\n ref={mergeRefs(rootRef, ref)}\n aria-busy=\"false\"\n role=\"feed\"\n {...rest}\n >\n {reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n\n {children}\n\n {!reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n </styled.div>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\ninterface InfiniteScrollTriggerProps extends HTMLStyledProps {}\n\nconst InfiniteScrollTrigger = withContext<\"div\", InfiniteScrollTriggerProps>(\n \"div\",\n \"trigger\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;AAgCA,MAAM,EACJ,cAAc,gCACd,iBAAiB,mCACjB,aACA,iBACEA,6CACF,wBACAC,2DACD;;;;;;;AAUD,MAAa,qBAAqB,cAK/B,EACC,KACA,UACA,UACA,QAAQ,YACR,UACA,aACA,SACA,aAAa,iBACb,UACA,SACA,YACA,SAAS,aACT,YACA,WACA,cACA,QACA,GAAG,WACC;CACJ,MAAM,4BAAiC,KAAK;CAE5C,MAAM,EAAE,KAAK,YAAY,WAAWC,8CAAkB;EACpD;EACA;EACA;EACA,aALkBC,uCAAS,gBAAgB;EAM3C;EACA;EACA;EACA,SAAS,eAAe;EACxB;EACA;EACA;EACD,CAAC;CAEF,MAAM,cAAc,CAAC,aADH,CAAC,CAAC,cAC2B,CAAC;AAEhD,QACE,4CAACC,uBAAO;EACN,KAAKC,sBAAU,SAAS,IAAI;EAC5B,aAAU;EACV,MAAK;EACL,GAAI;;GAEH,WAAW,cACV,2CAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;GAEH;GAEA,CAAC,WAAW,cACX,2CAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;;GACO;GAGjB,QACA,EAAE,eAAe,CAAC,cAAc,EAAE,CACnC,EAAE;AAIH,MAAM,wBAAwB,YAC5B,OACA,UACD,EAAE"}
1
+ {"version":3,"file":"infinite-scroll-area.cjs","names":["createSlotComponent","infiniteScrollAreaStyle","useInfiniteScroll","useValue","styled","mergeRefs"],"sources":["../../../../src/components/infinite-scroll-area/infinite-scroll-area.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { InfiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport type { UseInfiniteScrollProps } from \"./use-infinite-scroll\"\nimport { useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { isNull, mergeRefs } from \"../../utils\"\nimport { infiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport { useInfiniteScroll } from \"./use-infinite-scroll\"\n\nexport interface InfiniteScrollAreaProps\n extends\n Omit<HTMLStyledProps, keyof UseInfiniteScrollProps>,\n Omit<UseInfiniteScrollProps, \"orientation\">,\n ThemeProps<InfiniteScrollAreaStyle> {\n /**\n * The infinite scroll area finish to use.\n */\n finish?: ReactNode\n /**\n * The infinite scroll area loading to use.\n */\n loading?: ReactNode\n /**\n * Props for infinite scroll area trigger component.\n */\n triggerProps?: HTMLStyledProps\n}\n\nconst {\n PropsContext: InfiniteScrollAreaPropsContext,\n usePropsContext: useInfiniteScrollAreaPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<InfiniteScrollAreaProps, InfiniteScrollAreaStyle>(\n \"infinite-scroll-area\",\n infiniteScrollAreaStyle,\n)\n\nexport { InfiniteScrollAreaPropsContext, useInfiniteScrollAreaPropsContext }\n\n/**\n * `InfiniteScrollArea` is for providing infinite scroll functionality.\n * This feature provides a smooth scrolling experience by automatically loading and displaying the next dataset when the user reaches the end of the page.\n *\n * @see https://yamada-ui.com/docs/components/infinite-scroll-area\n */\nexport const InfiniteScrollArea = withProvider<\n \"div\",\n InfiniteScrollAreaProps,\n \"orientation\"\n>(\n ({\n ref,\n children,\n disabled,\n finish: finishProp,\n indexRef,\n initialLoad,\n loading,\n orientation: orientationProp,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp,\n startIndex,\n threshold,\n triggerProps,\n onLoad,\n ...rest\n }) => {\n const rootRef = useRef<HTMLDivElement>(null)\n const orientation = useValue(orientationProp)\n const { ref: triggerRef, finish } = useInfiniteScroll({\n disabled,\n indexRef,\n initialLoad,\n orientation,\n resetRef,\n reverse,\n rootMargin,\n rootRef: isNull(rootRefProp) ? null : (rootRefProp ?? rootRef),\n startIndex,\n threshold,\n onLoad,\n })\n const hasFinish = !!finishProp\n const showTrigger = !disabled && (hasFinish || !finish)\n\n return (\n <styled.div\n ref={mergeRefs(rootRef, ref)}\n aria-busy=\"false\"\n role=\"feed\"\n {...rest}\n >\n {reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n\n {children}\n\n {!reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n </styled.div>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\ninterface InfiniteScrollTriggerProps extends HTMLStyledProps {}\n\nconst InfiniteScrollTrigger = withContext<\"div\", InfiniteScrollTriggerProps>(\n \"div\",\n \"trigger\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;AAgCA,MAAM,EACJ,cAAc,gCACd,iBAAiB,mCACjB,aACA,iBACEA,6CACF,wBACAC,2DACD;;;;;;;AAUD,MAAa,qBAAqB,cAK/B,EACC,KACA,UACA,UACA,QAAQ,YACR,UACA,aACA,SACA,aAAa,iBACb,UACA,SACA,YACA,SAAS,aACT,YACA,WACA,cACA,QACA,GAAG,WACC;CACJ,MAAM,4BAAiC,KAAK;CAE5C,MAAM,EAAE,KAAK,YAAY,WAAWC,8CAAkB;EACpD;EACA;EACA;EACA,aALkBC,uCAAS,gBAAgB;EAM3C;EACA;EACA;EACA,uDAAgB,YAAY,GAAG,OAAQ,eAAe;EACtD;EACA;EACA;EACD,CAAC;CAEF,MAAM,cAAc,CAAC,aADH,CAAC,CAAC,cAC2B,CAAC;AAEhD,QACE,4CAACC,uBAAO;EACN,KAAKC,sBAAU,SAAS,IAAI;EAC5B,aAAU;EACV,MAAK;EACL,GAAI;;GAEH,WAAW,cACV,2CAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;GAEH;GAEA,CAAC,WAAW,cACX,2CAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;;GACO;GAGjB,QACA,EAAE,eAAe,CAAC,cAAc,EAAE,CACnC,EAAE;AAIH,MAAM,wBAAwB,YAC5B,OACA,UACD,EAAE"}
@@ -41,17 +41,6 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
41
41
  const onLoad = require_ref.useCallbackRef(onLoadProp);
42
42
  const vertical = orientation === "vertical";
43
43
  const direction = vertical ? "top" : "left";
44
- const options = (0, react.useMemo)(() => {
45
- return {
46
- root: rootRef?.current,
47
- rootMargin,
48
- threshold
49
- };
50
- }, [
51
- rootMargin,
52
- rootRef,
53
- threshold
54
- ]);
55
44
  const onReset = (0, react.useCallback)((index = 1, runScroll = true) => {
56
45
  indexRef.current = index;
57
46
  setFinish(false);
@@ -91,10 +80,11 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
91
80
  setFinish(true);
92
81
  }, []);
93
82
  const createObserver = (0, react.useCallback)(() => {
83
+ const root = rootRef?.current ?? null;
94
84
  return new IntersectionObserver(async ([entry]) => {
95
- const root = rootRef?.current;
85
+ const root$1 = rootRef?.current;
96
86
  const body = getDocument()?.body;
97
- const el = root && isScrollable(root, vertical) ? root : body;
87
+ const el = root$1 && isScrollable(root$1, vertical) ? root$1 : body;
98
88
  if (!entry?.isIntersecting || processingRef.current || !el) return;
99
89
  const props = {
100
90
  entry,
@@ -102,7 +92,7 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
102
92
  index: indexRef.current
103
93
  };
104
94
  processingRef.current = true;
105
- if (root) root.ariaBusy = "true";
95
+ if (root$1) root$1.ariaBusy = "true";
106
96
  let prevScrollPosition = 0;
107
97
  if (reverse) prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth;
108
98
  await onLoad(props);
@@ -113,11 +103,16 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
113
103
  });
114
104
  indexRef.current += 1;
115
105
  processingRef.current = false;
116
- if (root) root.ariaBusy = "false";
117
- }, options);
106
+ if (root$1) root$1.ariaBusy = "false";
107
+ }, {
108
+ root,
109
+ rootMargin,
110
+ threshold
111
+ });
118
112
  }, [
119
- options,
120
113
  rootRef,
114
+ rootMargin,
115
+ threshold,
121
116
  getDocument,
122
117
  vertical,
123
118
  onFinish,
@@ -1 +1 @@
1
- {"version":3,"file":"use-infinite-scroll.cjs","names":["useEnvironment","useCallbackRef","options: IntersectionObserverInit","root","el"],"sources":["../../../../src/components/infinite-scroll-area/use-infinite-scroll.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { Orientation } from \"../../core\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport { assignRef, useCallbackRef } from \"../../utils\"\n\nconst isScrollable = (el: HTMLElement, vertical: boolean) => {\n const style = getComputedStyle(el)\n\n if ([\"auto\", \"overlay\", \"scroll\"].includes(style.overflow)) return true\n\n if (vertical) {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowY)\n } else {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowX)\n }\n}\n\nexport interface UseInfiniteScrollProps extends Omit<\n IntersectionObserverInit,\n \"root\"\n> {\n /**\n * Determines whether scrolling is instant or animates smoothly.\n */\n behavior?: ScrollBehavior\n /**\n * If `true`, the infinite scroll is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Ref to a reset index function.\n */\n indexRef?: RefObject<(index: number) => void>\n /**\n * If `true`, invoke `onLoad` function for the first time.\n *\n * @default false\n */\n initialLoad?: boolean\n /**\n * The orientation of the infinite scroll.\n *\n * @default 'vertical'\n */\n orientation?: Orientation\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(index?: number, runScroll?: boolean) => void>\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n reverse?: boolean\n /**\n * Margin around the root. Can have values similar to the CSS margin property,\n * e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n */\n rootMargin?: string\n /**\n * The element that is used as the viewport for checking visibility of the target.\n * Defaults to the browser viewport if not specified or if `null`.\n */\n rootRef?: RefObject<HTMLElement | null>\n /**\n * If set the `onLoad` function will start from the given index.\n * If `initialLoad` is `true`, index starts from `0`.\n *\n * @default 1\n */\n startIndex?: number\n /**\n * Either a single number or an array of numbers which indicate at what percentage of the target's visibility the observer's callback should be executed.\n */\n threshold?: number | number[]\n /**\n * The callback invoked when trigger is intersect.\n */\n onLoad?: ({\n entry,\n finish,\n index,\n }: {\n index: number\n finish: () => void\n entry?: IntersectionObserverEntry\n }) => Promise<void> | void\n}\n\n/**\n * `useInfiniteScroll` is a custom hook for providing infinite scroll functionality.\n *\n * @see https://yamada-ui.com/docs/hooks/use-infinite-scroll\n */\nexport const useInfiniteScroll = <Y extends HTMLElement = HTMLDivElement>({\n behavior,\n disabled = false,\n indexRef: indexRefProp,\n initialLoad = false,\n orientation = \"vertical\",\n resetRef,\n reverse = false,\n rootMargin,\n rootRef,\n startIndex = initialLoad ? 0 : 1,\n threshold,\n onLoad: onLoadProp,\n}: UseInfiniteScrollProps = {}) => {\n const ref = useRef<Y>(null)\n const { getDocument, getWindow } = useEnvironment()\n const indexRef = useRef<number>(startIndex)\n const processingRef = useRef<boolean>(false)\n const observerRef = useRef<IntersectionObserver | undefined>(undefined)\n const [finish, setFinish] = useState<boolean>(false)\n const onLoad = useCallbackRef(onLoadProp)\n const vertical = orientation === \"vertical\"\n const direction = vertical ? \"top\" : \"left\"\n const options: IntersectionObserverInit = useMemo(() => {\n const root = rootRef?.current\n\n return { root, rootMargin, threshold }\n }, [rootMargin, rootRef, threshold])\n\n const onReset = useCallback(\n (index = 1, runScroll = true) => {\n indexRef.current = index\n\n setFinish(false)\n\n if (runScroll) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = reverse\n ? vertical\n ? el.scrollHeight\n : el.scrollWidth\n : 0\n\n target?.scrollTo({ behavior, [direction]: position })\n }\n }\n\n if (disabled) return\n\n setTimeout(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.observe(el)\n })\n },\n [\n disabled,\n rootRef,\n getDocument,\n vertical,\n getWindow,\n reverse,\n behavior,\n direction,\n ],\n )\n\n const onFinish = useCallback(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.unobserve(el)\n\n setFinish(true)\n }, [])\n\n const createObserver = useCallback(() => {\n const observer = new IntersectionObserver(async ([entry]) => {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (!entry?.isIntersecting || processingRef.current || !el) return\n\n const props = { entry, finish: onFinish, index: indexRef.current }\n\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n let prevScrollPosition = 0\n\n if (reverse)\n prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth\n\n await onLoad(props)\n\n if (reverse)\n setTimeout(() => {\n const target = el === body ? getWindow() : el\n const position =\n (vertical ? el.scrollHeight : el.scrollWidth) - prevScrollPosition\n\n target?.scrollTo({ [direction]: position })\n })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }, options)\n\n return observer\n }, [\n options,\n rootRef,\n getDocument,\n vertical,\n onFinish,\n reverse,\n onLoad,\n getWindow,\n direction,\n ])\n\n useEffect(() => {\n const setTabIndexAttribute = () => {\n const root = rootRef?.current\n if (\n root &&\n isScrollable(root, vertical) &&\n !root.hasAttribute(\"tabindex\")\n ) {\n root.setAttribute(\"tabindex\", \"0\")\n }\n }\n\n const setupObserver = async () => {\n const el = ref.current\n const index = indexRef.current\n const root = rootRef?.current\n\n if (initialLoad) {\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n await onLoad({ finish: onFinish, index })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }\n\n if (disabled) return\n\n observerRef.current = createObserver()\n\n const observer = observerRef.current\n\n if (reverse) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = vertical ? el.scrollHeight : el.scrollWidth\n\n target?.scrollTo({ [direction]: position })\n }\n }\n\n setTimeout(() => {\n if (el) observer.observe(el)\n })\n\n return () => {\n if (el) observer.unobserve(el)\n }\n }\n\n setTabIndexAttribute()\n setupObserver()\n }, [\n createObserver,\n initialLoad,\n disabled,\n reverse,\n vertical,\n onFinish,\n onLoad,\n rootRef,\n getDocument,\n getWindow,\n direction,\n ])\n\n assignRef(resetRef, onReset)\n assignRef(indexRefProp, (index) => (indexRef.current = index))\n\n return { ref, finish }\n}\n"],"mappings":";;;;;;;;;;AAQA,MAAM,gBAAgB,IAAiB,aAAsB;CAC3D,MAAM,QAAQ,iBAAiB,GAAG;AAElC,KAAI;EAAC;EAAQ;EAAW;EAAS,CAAC,SAAS,MAAM,SAAS,CAAE,QAAO;AAEnE,KAAI,SACF,QAAO;EAAC;EAAQ;EAAW;EAAS,CAAC,SAAS,MAAM,UAAU;KAE9D,QAAO;EAAC;EAAQ;EAAW;EAAS,CAAC,SAAS,MAAM,UAAU;;;;;;;AAoFlE,MAAa,qBAA6D,EACxE,UACA,WAAW,OACX,UAAU,cACV,cAAc,OACd,cAAc,YACd,UACA,UAAU,OACV,YACA,SACA,aAAa,cAAc,IAAI,GAC/B,WACA,QAAQ,eACkB,EAAE,KAAK;CACjC,MAAM,wBAAgB,KAAK;CAC3B,MAAM,EAAE,aAAa,cAAcA,6CAAgB;CACnD,MAAM,6BAA0B,WAAW;CAC3C,MAAM,kCAAgC,MAAM;CAC5C,MAAM,gCAAuD,OAAU;CACvE,MAAM,CAAC,QAAQ,iCAA+B,MAAM;CACpD,MAAM,SAASC,2BAAe,WAAW;CACzC,MAAM,WAAW,gBAAgB;CACjC,MAAM,YAAY,WAAW,QAAQ;CACrC,MAAMC,mCAAkD;AAGtD,SAAO;GAAE,MAFI,SAAS;GAEP;GAAY;GAAW;IACrC;EAAC;EAAY;EAAS;EAAU,CAAC;CAEpC,MAAM,kCACH,QAAQ,GAAG,YAAY,SAAS;AAC/B,WAAS,UAAU;AAEnB,YAAU,MAAM;AAEhB,MAAI,WAAW;GACb,MAAM,OAAO,SAAS;GACtB,MAAM,OAAO,aAAa,EAAE;GAC5B,MAAM,KAAK,QAAQ,aAAa,MAAM,SAAS,GAAG,OAAO;AAEzD,OAAI,IAAI;IACN,MAAM,SAAS,OAAO,OAAO,WAAW,GAAG;IAC3C,MAAM,WAAW,UACb,WACE,GAAG,eACH,GAAG,cACL;AAEJ,YAAQ,SAAS;KAAE;MAAW,YAAY;KAAU,CAAC;;;AAIzD,MAAI,SAAU;AAEd,mBAAiB;GACf,MAAM,WAAW,YAAY;GAC7B,MAAM,KAAK,IAAI;AAEf,OAAI,GAAI,WAAU,QAAQ,GAAG;IAC7B;IAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAM,wCAA6B;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,KAAK,IAAI;AAEf,MAAI,GAAI,WAAU,UAAU,GAAG;AAE/B,YAAU,KAAK;IACd,EAAE,CAAC;CAEN,MAAM,8CAAmC;AAoCvC,SAnCiB,IAAI,qBAAqB,OAAO,CAAC,WAAW;GAC3D,MAAM,OAAO,SAAS;GACtB,MAAM,OAAO,aAAa,EAAE;GAC5B,MAAM,KAAK,QAAQ,aAAa,MAAM,SAAS,GAAG,OAAO;AAEzD,OAAI,CAAC,OAAO,kBAAkB,cAAc,WAAW,CAAC,GAAI;GAE5D,MAAM,QAAQ;IAAE;IAAO,QAAQ;IAAU,OAAO,SAAS;IAAS;AAElE,iBAAc,UAAU;AAExB,OAAI,KAAM,MAAK,WAAW;GAE1B,IAAI,qBAAqB;AAEzB,OAAI,QACF,sBAAqB,WAAW,GAAG,eAAe,GAAG;AAEvD,SAAM,OAAO,MAAM;AAEnB,OAAI,QACF,kBAAiB;IACf,MAAM,SAAS,OAAO,OAAO,WAAW,GAAG;IAC3C,MAAM,YACH,WAAW,GAAG,eAAe,GAAG,eAAe;AAElD,YAAQ,SAAS,GAAG,YAAY,UAAU,CAAC;KAC3C;AAEJ,YAAS,WAAW;AACpB,iBAAc,UAAU;AAExB,OAAI,KAAM,MAAK,WAAW;KACzB,QAAQ;IAGV;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,4BAAgB;EACd,MAAM,6BAA6B;GACjC,MAAM,OAAO,SAAS;AACtB,OACE,QACA,aAAa,MAAM,SAAS,IAC5B,CAAC,KAAK,aAAa,WAAW,CAE9B,MAAK,aAAa,YAAY,IAAI;;EAItC,MAAM,gBAAgB,YAAY;GAChC,MAAM,KAAK,IAAI;GACf,MAAM,QAAQ,SAAS;GACvB,MAAM,OAAO,SAAS;AAEtB,OAAI,aAAa;AACf,kBAAc,UAAU;AAExB,QAAI,KAAM,MAAK,WAAW;AAE1B,UAAM,OAAO;KAAE,QAAQ;KAAU;KAAO,CAAC;AAEzC,aAAS,WAAW;AACpB,kBAAc,UAAU;AAExB,QAAI,KAAM,MAAK,WAAW;;AAG5B,OAAI,SAAU;AAEd,eAAY,UAAU,gBAAgB;GAEtC,MAAM,WAAW,YAAY;AAE7B,OAAI,SAAS;IACX,MAAMC,SAAO,SAAS;IACtB,MAAM,OAAO,aAAa,EAAE;IAC5B,MAAMC,OAAKD,UAAQ,aAAaA,QAAM,SAAS,GAAGA,SAAO;AAEzD,QAAIC,MAAI;KACN,MAAM,SAASA,SAAO,OAAO,WAAW,GAAGA;KAC3C,MAAM,WAAW,WAAWA,KAAG,eAAeA,KAAG;AAEjD,aAAQ,SAAS,GAAG,YAAY,UAAU,CAAC;;;AAI/C,oBAAiB;AACf,QAAI,GAAI,UAAS,QAAQ,GAAG;KAC5B;AAEF,gBAAa;AACX,QAAI,GAAI,UAAS,UAAU,GAAG;;;AAIlC,wBAAsB;AACtB,iBAAe;IACd;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,uBAAU,UAAU,QAAQ;AAC5B,uBAAU,eAAe,UAAW,SAAS,UAAU,MAAO;AAE9D,QAAO;EAAE;EAAK;EAAQ"}
1
+ {"version":3,"file":"use-infinite-scroll.cjs","names":["useEnvironment","useCallbackRef","root","el"],"sources":["../../../../src/components/infinite-scroll-area/use-infinite-scroll.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { Orientation } from \"../../core\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport { assignRef, useCallbackRef } from \"../../utils\"\n\nconst isScrollable = (el: HTMLElement, vertical: boolean) => {\n const style = getComputedStyle(el)\n\n if ([\"auto\", \"overlay\", \"scroll\"].includes(style.overflow)) return true\n\n if (vertical) {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowY)\n } else {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowX)\n }\n}\n\nexport interface UseInfiniteScrollProps extends Omit<\n IntersectionObserverInit,\n \"root\"\n> {\n /**\n * Determines whether scrolling is instant or animates smoothly.\n */\n behavior?: ScrollBehavior\n /**\n * If `true`, the infinite scroll is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Ref to a reset index function.\n */\n indexRef?: RefObject<(index: number) => void>\n /**\n * If `true`, invoke `onLoad` function for the first time.\n *\n * @default false\n */\n initialLoad?: boolean\n /**\n * The orientation of the infinite scroll.\n *\n * @default 'vertical'\n */\n orientation?: Orientation\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(index?: number, runScroll?: boolean) => void>\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n reverse?: boolean\n /**\n * Margin around the root. Can have values similar to the CSS margin property,\n * e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n */\n rootMargin?: string\n /**\n * The element that is used as the viewport for checking visibility of the target.\n * Defaults to the browser viewport if not specified or if `null`.\n */\n rootRef?: null | RefObject<HTMLElement | null>\n /**\n * If set the `onLoad` function will start from the given index.\n * If `initialLoad` is `true`, index starts from `0`.\n *\n * @default 1\n */\n startIndex?: number\n /**\n * Either a single number or an array of numbers which indicate at what percentage of the target's visibility the observer's callback should be executed.\n */\n threshold?: number | number[]\n /**\n * The callback invoked when trigger is intersect.\n */\n onLoad?: ({\n entry,\n finish,\n index,\n }: {\n index: number\n finish: () => void\n entry?: IntersectionObserverEntry\n }) => Promise<void> | void\n}\n\n/**\n * `useInfiniteScroll` is a custom hook for providing infinite scroll functionality.\n *\n * @see https://yamada-ui.com/docs/hooks/use-infinite-scroll\n */\nexport const useInfiniteScroll = <Y extends HTMLElement = HTMLDivElement>({\n behavior,\n disabled = false,\n indexRef: indexRefProp,\n initialLoad = false,\n orientation = \"vertical\",\n resetRef,\n reverse = false,\n rootMargin,\n rootRef,\n startIndex = initialLoad ? 0 : 1,\n threshold,\n onLoad: onLoadProp,\n}: UseInfiniteScrollProps = {}) => {\n const ref = useRef<Y>(null)\n const { getDocument, getWindow } = useEnvironment()\n const indexRef = useRef<number>(startIndex)\n const processingRef = useRef<boolean>(false)\n const observerRef = useRef<IntersectionObserver | undefined>(undefined)\n const [finish, setFinish] = useState<boolean>(false)\n const onLoad = useCallbackRef(onLoadProp)\n const vertical = orientation === \"vertical\"\n const direction = vertical ? \"top\" : \"left\"\n\n const onReset = useCallback(\n (index = 1, runScroll = true) => {\n indexRef.current = index\n\n setFinish(false)\n\n if (runScroll) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = reverse\n ? vertical\n ? el.scrollHeight\n : el.scrollWidth\n : 0\n\n target?.scrollTo({ behavior, [direction]: position })\n }\n }\n\n if (disabled) return\n\n setTimeout(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.observe(el)\n })\n },\n [\n disabled,\n rootRef,\n getDocument,\n vertical,\n getWindow,\n reverse,\n behavior,\n direction,\n ],\n )\n\n const onFinish = useCallback(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.unobserve(el)\n\n setFinish(true)\n }, [])\n\n const createObserver = useCallback(() => {\n const root = rootRef?.current ?? null\n\n const observer = new IntersectionObserver(\n async ([entry]) => {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (!entry?.isIntersecting || processingRef.current || !el) return\n\n const props = { entry, finish: onFinish, index: indexRef.current }\n\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n let prevScrollPosition = 0\n\n if (reverse)\n prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth\n\n await onLoad(props)\n\n if (reverse)\n setTimeout(() => {\n const target = el === body ? getWindow() : el\n const position =\n (vertical ? el.scrollHeight : el.scrollWidth) - prevScrollPosition\n\n target?.scrollTo({ [direction]: position })\n })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n },\n { root, rootMargin, threshold },\n )\n\n return observer\n }, [\n rootRef,\n rootMargin,\n threshold,\n getDocument,\n vertical,\n onFinish,\n reverse,\n onLoad,\n getWindow,\n direction,\n ])\n\n useEffect(() => {\n const setTabIndexAttribute = () => {\n const root = rootRef?.current\n if (\n root &&\n isScrollable(root, vertical) &&\n !root.hasAttribute(\"tabindex\")\n ) {\n root.setAttribute(\"tabindex\", \"0\")\n }\n }\n\n const setupObserver = async () => {\n const el = ref.current\n const index = indexRef.current\n const root = rootRef?.current\n\n if (initialLoad) {\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n await onLoad({ finish: onFinish, index })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }\n\n if (disabled) return\n\n observerRef.current = createObserver()\n\n const observer = observerRef.current\n\n if (reverse) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = vertical ? el.scrollHeight : el.scrollWidth\n\n target?.scrollTo({ [direction]: position })\n }\n }\n\n setTimeout(() => {\n if (el) observer.observe(el)\n })\n\n return () => {\n if (el) observer.unobserve(el)\n }\n }\n\n setTabIndexAttribute()\n setupObserver()\n }, [\n createObserver,\n initialLoad,\n disabled,\n reverse,\n vertical,\n onFinish,\n onLoad,\n rootRef,\n getDocument,\n getWindow,\n direction,\n ])\n\n assignRef(resetRef, onReset)\n assignRef(indexRefProp, (index) => (indexRef.current = index))\n\n return { ref, finish }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { mergeRefs } from "../../utils/ref.js";
4
- import "../../utils/index.js";
4
+ import { utils_exports } from "../../utils/index.js";
5
5
  import { styled } from "../../core/system/factory.js";
6
6
  import { createSlotComponent } from "../../core/components/create-component.js";
7
7
  import "../../core/index.js";
@@ -29,7 +29,7 @@ const InfiniteScrollArea = withProvider(({ ref, children, disabled, finish: fini
29
29
  resetRef,
30
30
  reverse,
31
31
  rootMargin,
32
- rootRef: rootRefProp ?? rootRef,
32
+ rootRef: (0, utils_exports.isNull)(rootRefProp) ? null : rootRefProp ?? rootRef,
33
33
  startIndex,
34
34
  threshold,
35
35
  onLoad
@@ -1 +1 @@
1
- {"version":3,"file":"infinite-scroll-area.js","names":[],"sources":["../../../../src/components/infinite-scroll-area/infinite-scroll-area.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { InfiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport type { UseInfiniteScrollProps } from \"./use-infinite-scroll\"\nimport { useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { mergeRefs } from \"../../utils\"\nimport { infiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport { useInfiniteScroll } from \"./use-infinite-scroll\"\n\nexport interface InfiniteScrollAreaProps\n extends\n Omit<HTMLStyledProps, keyof UseInfiniteScrollProps>,\n Omit<UseInfiniteScrollProps, \"orientation\">,\n ThemeProps<InfiniteScrollAreaStyle> {\n /**\n * The infinite scroll area finish to use.\n */\n finish?: ReactNode\n /**\n * The infinite scroll area loading to use.\n */\n loading?: ReactNode\n /**\n * Props for infinite scroll area trigger component.\n */\n triggerProps?: HTMLStyledProps\n}\n\nconst {\n PropsContext: InfiniteScrollAreaPropsContext,\n usePropsContext: useInfiniteScrollAreaPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<InfiniteScrollAreaProps, InfiniteScrollAreaStyle>(\n \"infinite-scroll-area\",\n infiniteScrollAreaStyle,\n)\n\nexport { InfiniteScrollAreaPropsContext, useInfiniteScrollAreaPropsContext }\n\n/**\n * `InfiniteScrollArea` is for providing infinite scroll functionality.\n * This feature provides a smooth scrolling experience by automatically loading and displaying the next dataset when the user reaches the end of the page.\n *\n * @see https://yamada-ui.com/docs/components/infinite-scroll-area\n */\nexport const InfiniteScrollArea = withProvider<\n \"div\",\n InfiniteScrollAreaProps,\n \"orientation\"\n>(\n ({\n ref,\n children,\n disabled,\n finish: finishProp,\n indexRef,\n initialLoad,\n loading,\n orientation: orientationProp,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp,\n startIndex,\n threshold,\n triggerProps,\n onLoad,\n ...rest\n }) => {\n const rootRef = useRef<HTMLDivElement>(null)\n const orientation = useValue(orientationProp)\n const { ref: triggerRef, finish } = useInfiniteScroll({\n disabled,\n indexRef,\n initialLoad,\n orientation,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp ?? rootRef,\n startIndex,\n threshold,\n onLoad,\n })\n const hasFinish = !!finishProp\n const showTrigger = !disabled && (hasFinish || !finish)\n\n return (\n <styled.div\n ref={mergeRefs(rootRef, ref)}\n aria-busy=\"false\"\n role=\"feed\"\n {...rest}\n >\n {reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n\n {children}\n\n {!reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n </styled.div>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\ninterface InfiniteScrollTriggerProps extends HTMLStyledProps {}\n\nconst InfiniteScrollTrigger = withContext<\"div\", InfiniteScrollTriggerProps>(\n \"div\",\n \"trigger\",\n)()\n"],"mappings":";;;;;;;;;;;;;;AAgCA,MAAM,EACJ,cAAc,gCACd,iBAAiB,mCACjB,aACA,iBACE,oBACF,wBACA,wBACD;;;;;;;AAUD,MAAa,qBAAqB,cAK/B,EACC,KACA,UACA,UACA,QAAQ,YACR,UACA,aACA,SACA,aAAa,iBACb,UACA,SACA,YACA,SAAS,aACT,YACA,WACA,cACA,QACA,GAAG,WACC;CACJ,MAAM,UAAU,OAAuB,KAAK;CAE5C,MAAM,EAAE,KAAK,YAAY,WAAW,kBAAkB;EACpD;EACA;EACA;EACA,aALkB,SAAS,gBAAgB;EAM3C;EACA;EACA;EACA,SAAS,eAAe;EACxB;EACA;EACA;EACD,CAAC;CAEF,MAAM,cAAc,CAAC,aADH,CAAC,CAAC,cAC2B,CAAC;AAEhD,QACE,qBAAC,OAAO;EACN,KAAK,UAAU,SAAS,IAAI;EAC5B,aAAU;EACV,MAAK;EACL,GAAI;;GAEH,WAAW,cACV,oBAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;GAEH;GAEA,CAAC,WAAW,cACX,oBAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;;GACO;GAGjB,QACA,EAAE,eAAe,CAAC,cAAc,EAAE,CACnC,EAAE;AAIH,MAAM,wBAAwB,YAC5B,OACA,UACD,EAAE"}
1
+ {"version":3,"file":"infinite-scroll-area.js","names":[],"sources":["../../../../src/components/infinite-scroll-area/infinite-scroll-area.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { InfiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport type { UseInfiniteScrollProps } from \"./use-infinite-scroll\"\nimport { useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { isNull, mergeRefs } from \"../../utils\"\nimport { infiniteScrollAreaStyle } from \"./infinite-scroll-area.style\"\nimport { useInfiniteScroll } from \"./use-infinite-scroll\"\n\nexport interface InfiniteScrollAreaProps\n extends\n Omit<HTMLStyledProps, keyof UseInfiniteScrollProps>,\n Omit<UseInfiniteScrollProps, \"orientation\">,\n ThemeProps<InfiniteScrollAreaStyle> {\n /**\n * The infinite scroll area finish to use.\n */\n finish?: ReactNode\n /**\n * The infinite scroll area loading to use.\n */\n loading?: ReactNode\n /**\n * Props for infinite scroll area trigger component.\n */\n triggerProps?: HTMLStyledProps\n}\n\nconst {\n PropsContext: InfiniteScrollAreaPropsContext,\n usePropsContext: useInfiniteScrollAreaPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<InfiniteScrollAreaProps, InfiniteScrollAreaStyle>(\n \"infinite-scroll-area\",\n infiniteScrollAreaStyle,\n)\n\nexport { InfiniteScrollAreaPropsContext, useInfiniteScrollAreaPropsContext }\n\n/**\n * `InfiniteScrollArea` is for providing infinite scroll functionality.\n * This feature provides a smooth scrolling experience by automatically loading and displaying the next dataset when the user reaches the end of the page.\n *\n * @see https://yamada-ui.com/docs/components/infinite-scroll-area\n */\nexport const InfiniteScrollArea = withProvider<\n \"div\",\n InfiniteScrollAreaProps,\n \"orientation\"\n>(\n ({\n ref,\n children,\n disabled,\n finish: finishProp,\n indexRef,\n initialLoad,\n loading,\n orientation: orientationProp,\n resetRef,\n reverse,\n rootMargin,\n rootRef: rootRefProp,\n startIndex,\n threshold,\n triggerProps,\n onLoad,\n ...rest\n }) => {\n const rootRef = useRef<HTMLDivElement>(null)\n const orientation = useValue(orientationProp)\n const { ref: triggerRef, finish } = useInfiniteScroll({\n disabled,\n indexRef,\n initialLoad,\n orientation,\n resetRef,\n reverse,\n rootMargin,\n rootRef: isNull(rootRefProp) ? null : (rootRefProp ?? rootRef),\n startIndex,\n threshold,\n onLoad,\n })\n const hasFinish = !!finishProp\n const showTrigger = !disabled && (hasFinish || !finish)\n\n return (\n <styled.div\n ref={mergeRefs(rootRef, ref)}\n aria-busy=\"false\"\n role=\"feed\"\n {...rest}\n >\n {reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n\n {children}\n\n {!reverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {finish ? finishProp : loading}\n </InfiniteScrollTrigger>\n ) : null}\n </styled.div>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\ninterface InfiniteScrollTriggerProps extends HTMLStyledProps {}\n\nconst InfiniteScrollTrigger = withContext<\"div\", InfiniteScrollTriggerProps>(\n \"div\",\n \"trigger\",\n)()\n"],"mappings":";;;;;;;;;;;;;;AAgCA,MAAM,EACJ,cAAc,gCACd,iBAAiB,mCACjB,aACA,iBACE,oBACF,wBACA,wBACD;;;;;;;AAUD,MAAa,qBAAqB,cAK/B,EACC,KACA,UACA,UACA,QAAQ,YACR,UACA,aACA,SACA,aAAa,iBACb,UACA,SACA,YACA,SAAS,aACT,YACA,WACA,cACA,QACA,GAAG,WACC;CACJ,MAAM,UAAU,OAAuB,KAAK;CAE5C,MAAM,EAAE,KAAK,YAAY,WAAW,kBAAkB;EACpD;EACA;EACA;EACA,aALkB,SAAS,gBAAgB;EAM3C;EACA;EACA;EACA,mCAAgB,YAAY,GAAG,OAAQ,eAAe;EACtD;EACA;EACA;EACD,CAAC;CAEF,MAAM,cAAc,CAAC,aADH,CAAC,CAAC,cAC2B,CAAC;AAEhD,QACE,qBAAC,OAAO;EACN,KAAK,UAAU,SAAS,IAAI;EAC5B,aAAU;EACV,MAAK;EACL,GAAI;;GAEH,WAAW,cACV,oBAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;GAEH;GAEA,CAAC,WAAW,cACX,oBAAC;IAAsB,KAAK;IAAY,GAAI;cACzC,SAAS,aAAa;KACD,GACtB;;GACO;GAGjB,QACA,EAAE,eAAe,CAAC,cAAc,EAAE,CACnC,EAAE;AAIH,MAAM,wBAAwB,YAC5B,OACA,UACD,EAAE"}
@@ -4,7 +4,7 @@ import { assignRef, useCallbackRef } from "../../utils/ref.js";
4
4
  import "../../utils/index.js";
5
5
  import { useEnvironment } from "../../core/system/environment-provider.js";
6
6
  import "../../core/index.js";
7
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
7
+ import { useCallback, useEffect, useRef, useState } from "react";
8
8
 
9
9
  //#region src/components/infinite-scroll-area/use-infinite-scroll.ts
10
10
  const isScrollable = (el, vertical) => {
@@ -40,17 +40,6 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
40
40
  const onLoad = useCallbackRef(onLoadProp);
41
41
  const vertical = orientation === "vertical";
42
42
  const direction = vertical ? "top" : "left";
43
- const options = useMemo(() => {
44
- return {
45
- root: rootRef?.current,
46
- rootMargin,
47
- threshold
48
- };
49
- }, [
50
- rootMargin,
51
- rootRef,
52
- threshold
53
- ]);
54
43
  const onReset = useCallback((index = 1, runScroll = true) => {
55
44
  indexRef.current = index;
56
45
  setFinish(false);
@@ -90,10 +79,11 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
90
79
  setFinish(true);
91
80
  }, []);
92
81
  const createObserver = useCallback(() => {
82
+ const root = rootRef?.current ?? null;
93
83
  return new IntersectionObserver(async ([entry]) => {
94
- const root = rootRef?.current;
84
+ const root$1 = rootRef?.current;
95
85
  const body = getDocument()?.body;
96
- const el = root && isScrollable(root, vertical) ? root : body;
86
+ const el = root$1 && isScrollable(root$1, vertical) ? root$1 : body;
97
87
  if (!entry?.isIntersecting || processingRef.current || !el) return;
98
88
  const props = {
99
89
  entry,
@@ -101,7 +91,7 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
101
91
  index: indexRef.current
102
92
  };
103
93
  processingRef.current = true;
104
- if (root) root.ariaBusy = "true";
94
+ if (root$1) root$1.ariaBusy = "true";
105
95
  let prevScrollPosition = 0;
106
96
  if (reverse) prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth;
107
97
  await onLoad(props);
@@ -112,11 +102,16 @@ const useInfiniteScroll = ({ behavior, disabled = false, indexRef: indexRefProp,
112
102
  });
113
103
  indexRef.current += 1;
114
104
  processingRef.current = false;
115
- if (root) root.ariaBusy = "false";
116
- }, options);
105
+ if (root$1) root$1.ariaBusy = "false";
106
+ }, {
107
+ root,
108
+ rootMargin,
109
+ threshold
110
+ });
117
111
  }, [
118
- options,
119
112
  rootRef,
113
+ rootMargin,
114
+ threshold,
120
115
  getDocument,
121
116
  vertical,
122
117
  onFinish,
@@ -1 +1 @@
1
- {"version":3,"file":"use-infinite-scroll.js","names":["options: IntersectionObserverInit","root","el"],"sources":["../../../../src/components/infinite-scroll-area/use-infinite-scroll.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { Orientation } from \"../../core\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport { assignRef, useCallbackRef } from \"../../utils\"\n\nconst isScrollable = (el: HTMLElement, vertical: boolean) => {\n const style = getComputedStyle(el)\n\n if ([\"auto\", \"overlay\", \"scroll\"].includes(style.overflow)) return true\n\n if (vertical) {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowY)\n } else {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowX)\n }\n}\n\nexport interface UseInfiniteScrollProps extends Omit<\n IntersectionObserverInit,\n \"root\"\n> {\n /**\n * Determines whether scrolling is instant or animates smoothly.\n */\n behavior?: ScrollBehavior\n /**\n * If `true`, the infinite scroll is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Ref to a reset index function.\n */\n indexRef?: RefObject<(index: number) => void>\n /**\n * If `true`, invoke `onLoad` function for the first time.\n *\n * @default false\n */\n initialLoad?: boolean\n /**\n * The orientation of the infinite scroll.\n *\n * @default 'vertical'\n */\n orientation?: Orientation\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(index?: number, runScroll?: boolean) => void>\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n reverse?: boolean\n /**\n * Margin around the root. Can have values similar to the CSS margin property,\n * e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n */\n rootMargin?: string\n /**\n * The element that is used as the viewport for checking visibility of the target.\n * Defaults to the browser viewport if not specified or if `null`.\n */\n rootRef?: RefObject<HTMLElement | null>\n /**\n * If set the `onLoad` function will start from the given index.\n * If `initialLoad` is `true`, index starts from `0`.\n *\n * @default 1\n */\n startIndex?: number\n /**\n * Either a single number or an array of numbers which indicate at what percentage of the target's visibility the observer's callback should be executed.\n */\n threshold?: number | number[]\n /**\n * The callback invoked when trigger is intersect.\n */\n onLoad?: ({\n entry,\n finish,\n index,\n }: {\n index: number\n finish: () => void\n entry?: IntersectionObserverEntry\n }) => Promise<void> | void\n}\n\n/**\n * `useInfiniteScroll` is a custom hook for providing infinite scroll functionality.\n *\n * @see https://yamada-ui.com/docs/hooks/use-infinite-scroll\n */\nexport const useInfiniteScroll = <Y extends HTMLElement = HTMLDivElement>({\n behavior,\n disabled = false,\n indexRef: indexRefProp,\n initialLoad = false,\n orientation = \"vertical\",\n resetRef,\n reverse = false,\n rootMargin,\n rootRef,\n startIndex = initialLoad ? 0 : 1,\n threshold,\n onLoad: onLoadProp,\n}: UseInfiniteScrollProps = {}) => {\n const ref = useRef<Y>(null)\n const { getDocument, getWindow } = useEnvironment()\n const indexRef = useRef<number>(startIndex)\n const processingRef = useRef<boolean>(false)\n const observerRef = useRef<IntersectionObserver | undefined>(undefined)\n const [finish, setFinish] = useState<boolean>(false)\n const onLoad = useCallbackRef(onLoadProp)\n const vertical = orientation === \"vertical\"\n const direction = vertical ? \"top\" : \"left\"\n const options: IntersectionObserverInit = useMemo(() => {\n const root = rootRef?.current\n\n return { root, rootMargin, threshold }\n }, [rootMargin, rootRef, threshold])\n\n const onReset = useCallback(\n (index = 1, runScroll = true) => {\n indexRef.current = index\n\n setFinish(false)\n\n if (runScroll) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = reverse\n ? vertical\n ? el.scrollHeight\n : el.scrollWidth\n : 0\n\n target?.scrollTo({ behavior, [direction]: position })\n }\n }\n\n if (disabled) return\n\n setTimeout(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.observe(el)\n })\n },\n [\n disabled,\n rootRef,\n getDocument,\n vertical,\n getWindow,\n reverse,\n behavior,\n direction,\n ],\n )\n\n const onFinish = useCallback(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.unobserve(el)\n\n setFinish(true)\n }, [])\n\n const createObserver = useCallback(() => {\n const observer = new IntersectionObserver(async ([entry]) => {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (!entry?.isIntersecting || processingRef.current || !el) return\n\n const props = { entry, finish: onFinish, index: indexRef.current }\n\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n let prevScrollPosition = 0\n\n if (reverse)\n prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth\n\n await onLoad(props)\n\n if (reverse)\n setTimeout(() => {\n const target = el === body ? getWindow() : el\n const position =\n (vertical ? el.scrollHeight : el.scrollWidth) - prevScrollPosition\n\n target?.scrollTo({ [direction]: position })\n })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }, options)\n\n return observer\n }, [\n options,\n rootRef,\n getDocument,\n vertical,\n onFinish,\n reverse,\n onLoad,\n getWindow,\n direction,\n ])\n\n useEffect(() => {\n const setTabIndexAttribute = () => {\n const root = rootRef?.current\n if (\n root &&\n isScrollable(root, vertical) &&\n !root.hasAttribute(\"tabindex\")\n ) {\n root.setAttribute(\"tabindex\", \"0\")\n }\n }\n\n const setupObserver = async () => {\n const el = ref.current\n const index = indexRef.current\n const root = rootRef?.current\n\n if (initialLoad) {\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n await onLoad({ finish: onFinish, index })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }\n\n if (disabled) return\n\n observerRef.current = createObserver()\n\n const observer = observerRef.current\n\n if (reverse) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = vertical ? el.scrollHeight : el.scrollWidth\n\n target?.scrollTo({ [direction]: position })\n }\n }\n\n setTimeout(() => {\n if (el) observer.observe(el)\n })\n\n return () => {\n if (el) observer.unobserve(el)\n }\n }\n\n setTabIndexAttribute()\n setupObserver()\n }, [\n createObserver,\n initialLoad,\n disabled,\n reverse,\n vertical,\n onFinish,\n onLoad,\n rootRef,\n getDocument,\n getWindow,\n direction,\n ])\n\n assignRef(resetRef, onReset)\n assignRef(indexRefProp, (index) => (indexRef.current = index))\n\n return { ref, finish }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-infinite-scroll.js","names":["root","el"],"sources":["../../../../src/components/infinite-scroll-area/use-infinite-scroll.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { Orientation } from \"../../core\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useEnvironment } from \"../../core\"\nimport { assignRef, useCallbackRef } from \"../../utils\"\n\nconst isScrollable = (el: HTMLElement, vertical: boolean) => {\n const style = getComputedStyle(el)\n\n if ([\"auto\", \"overlay\", \"scroll\"].includes(style.overflow)) return true\n\n if (vertical) {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowY)\n } else {\n return [\"auto\", \"overlay\", \"scroll\"].includes(style.overflowX)\n }\n}\n\nexport interface UseInfiniteScrollProps extends Omit<\n IntersectionObserverInit,\n \"root\"\n> {\n /**\n * Determines whether scrolling is instant or animates smoothly.\n */\n behavior?: ScrollBehavior\n /**\n * If `true`, the infinite scroll is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Ref to a reset index function.\n */\n indexRef?: RefObject<(index: number) => void>\n /**\n * If `true`, invoke `onLoad` function for the first time.\n *\n * @default false\n */\n initialLoad?: boolean\n /**\n * The orientation of the infinite scroll.\n *\n * @default 'vertical'\n */\n orientation?: Orientation\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(index?: number, runScroll?: boolean) => void>\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n reverse?: boolean\n /**\n * Margin around the root. Can have values similar to the CSS margin property,\n * e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n */\n rootMargin?: string\n /**\n * The element that is used as the viewport for checking visibility of the target.\n * Defaults to the browser viewport if not specified or if `null`.\n */\n rootRef?: null | RefObject<HTMLElement | null>\n /**\n * If set the `onLoad` function will start from the given index.\n * If `initialLoad` is `true`, index starts from `0`.\n *\n * @default 1\n */\n startIndex?: number\n /**\n * Either a single number or an array of numbers which indicate at what percentage of the target's visibility the observer's callback should be executed.\n */\n threshold?: number | number[]\n /**\n * The callback invoked when trigger is intersect.\n */\n onLoad?: ({\n entry,\n finish,\n index,\n }: {\n index: number\n finish: () => void\n entry?: IntersectionObserverEntry\n }) => Promise<void> | void\n}\n\n/**\n * `useInfiniteScroll` is a custom hook for providing infinite scroll functionality.\n *\n * @see https://yamada-ui.com/docs/hooks/use-infinite-scroll\n */\nexport const useInfiniteScroll = <Y extends HTMLElement = HTMLDivElement>({\n behavior,\n disabled = false,\n indexRef: indexRefProp,\n initialLoad = false,\n orientation = \"vertical\",\n resetRef,\n reverse = false,\n rootMargin,\n rootRef,\n startIndex = initialLoad ? 0 : 1,\n threshold,\n onLoad: onLoadProp,\n}: UseInfiniteScrollProps = {}) => {\n const ref = useRef<Y>(null)\n const { getDocument, getWindow } = useEnvironment()\n const indexRef = useRef<number>(startIndex)\n const processingRef = useRef<boolean>(false)\n const observerRef = useRef<IntersectionObserver | undefined>(undefined)\n const [finish, setFinish] = useState<boolean>(false)\n const onLoad = useCallbackRef(onLoadProp)\n const vertical = orientation === \"vertical\"\n const direction = vertical ? \"top\" : \"left\"\n\n const onReset = useCallback(\n (index = 1, runScroll = true) => {\n indexRef.current = index\n\n setFinish(false)\n\n if (runScroll) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = reverse\n ? vertical\n ? el.scrollHeight\n : el.scrollWidth\n : 0\n\n target?.scrollTo({ behavior, [direction]: position })\n }\n }\n\n if (disabled) return\n\n setTimeout(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.observe(el)\n })\n },\n [\n disabled,\n rootRef,\n getDocument,\n vertical,\n getWindow,\n reverse,\n behavior,\n direction,\n ],\n )\n\n const onFinish = useCallback(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.unobserve(el)\n\n setFinish(true)\n }, [])\n\n const createObserver = useCallback(() => {\n const root = rootRef?.current ?? null\n\n const observer = new IntersectionObserver(\n async ([entry]) => {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (!entry?.isIntersecting || processingRef.current || !el) return\n\n const props = { entry, finish: onFinish, index: indexRef.current }\n\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n let prevScrollPosition = 0\n\n if (reverse)\n prevScrollPosition = vertical ? el.scrollHeight : el.scrollWidth\n\n await onLoad(props)\n\n if (reverse)\n setTimeout(() => {\n const target = el === body ? getWindow() : el\n const position =\n (vertical ? el.scrollHeight : el.scrollWidth) - prevScrollPosition\n\n target?.scrollTo({ [direction]: position })\n })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n },\n { root, rootMargin, threshold },\n )\n\n return observer\n }, [\n rootRef,\n rootMargin,\n threshold,\n getDocument,\n vertical,\n onFinish,\n reverse,\n onLoad,\n getWindow,\n direction,\n ])\n\n useEffect(() => {\n const setTabIndexAttribute = () => {\n const root = rootRef?.current\n if (\n root &&\n isScrollable(root, vertical) &&\n !root.hasAttribute(\"tabindex\")\n ) {\n root.setAttribute(\"tabindex\", \"0\")\n }\n }\n\n const setupObserver = async () => {\n const el = ref.current\n const index = indexRef.current\n const root = rootRef?.current\n\n if (initialLoad) {\n processingRef.current = true\n\n if (root) root.ariaBusy = \"true\"\n\n await onLoad({ finish: onFinish, index })\n\n indexRef.current += 1\n processingRef.current = false\n\n if (root) root.ariaBusy = \"false\"\n }\n\n if (disabled) return\n\n observerRef.current = createObserver()\n\n const observer = observerRef.current\n\n if (reverse) {\n const root = rootRef?.current\n const body = getDocument()?.body\n const el = root && isScrollable(root, vertical) ? root : body\n\n if (el) {\n const target = el === body ? getWindow() : el\n const position = vertical ? el.scrollHeight : el.scrollWidth\n\n target?.scrollTo({ [direction]: position })\n }\n }\n\n setTimeout(() => {\n if (el) observer.observe(el)\n })\n\n return () => {\n if (el) observer.unobserve(el)\n }\n }\n\n setTabIndexAttribute()\n setupObserver()\n }, [\n createObserver,\n initialLoad,\n disabled,\n reverse,\n vertical,\n onFinish,\n onLoad,\n rootRef,\n getDocument,\n getWindow,\n direction,\n ])\n\n assignRef(resetRef, onReset)\n assignRef(indexRefProp, (index) => (indexRef.current = index))\n\n return { ref, finish }\n}\n"],"mappings":"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"}
@@ -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 react885 from "react";
12
+ import * as react225 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: react885.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
36
+ declare const AccordionPropsContext: react225.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
  *
@@ -3,7 +3,7 @@ import { CSSModifierObject, CSSPropObject, CSSSlotObject } from "../../core/css/
3
3
  import "../../index.js";
4
4
 
5
5
  //#region src/components/accordion/accordion.style.d.ts
6
- declare const accordionStyle: ComponentSlotStyle<"button" | "panel" | "icon" | "root" | "item", CSSPropObject<CSSSlotObject<"button" | "panel" | "icon" | "root" | "item">>, CSSModifierObject<CSSSlotObject<"button" | "panel" | "icon" | "root" | "item">>, {
6
+ declare const accordionStyle: ComponentSlotStyle<"button" | "panel" | "icon" | "item" | "root", CSSPropObject<CSSSlotObject<"button" | "panel" | "icon" | "item" | "root">>, CSSModifierObject<CSSSlotObject<"button" | "panel" | "icon" | "item" | "root">>, {
7
7
  panel: {
8
8
  button: {
9
9
  rounded: "l2";
@@ -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 react886 from "react";
5
+ import * as react213 from "react";
6
6
 
7
7
  //#region src/components/accordion/use-accordion.d.ts
8
- declare const AccordionDescendantsContext: react886.Context<{
8
+ declare const AccordionDescendantsContext: react213.Context<{
9
9
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
10
10
  count: () => number;
11
11
  destroy: () => void;
@@ -24,7 +24,7 @@ declare const AccordionDescendantsContext: react886.Context<{
24
24
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean) => Descendant<HTMLButtonElement, {}> | undefined;
25
25
  register: (props?: {
26
26
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
27
- } | undefined) => react886.RefCallback<HTMLButtonElement>;
27
+ } | undefined) => react213.RefCallback<HTMLButtonElement>;
28
28
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
29
29
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
30
30
  values: () => Descendant<HTMLButtonElement, {}>[];
@@ -50,12 +50,12 @@ declare const AccordionDescendantsContext: react886.Context<{
50
50
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean) => Descendant<HTMLButtonElement, {}> | undefined;
51
51
  register: (props?: {
52
52
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
53
- } | undefined) => react886.RefCallback<HTMLButtonElement>;
53
+ } | undefined) => react213.RefCallback<HTMLButtonElement>;
54
54
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
55
55
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
56
56
  values: () => Descendant<HTMLButtonElement, {}>[];
57
57
  };
58
- register: react886.RefCallback<HTMLButtonElement>;
58
+ register: react213.RefCallback<HTMLButtonElement>;
59
59
  }, useAccordionDescendants: () => {
60
60
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
61
61
  count: () => number;
@@ -75,15 +75,15 @@ declare const AccordionDescendantsContext: react886.Context<{
75
75
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean) => Descendant<HTMLButtonElement, {}> | undefined;
76
76
  register: (props?: {
77
77
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
78
- } | undefined) => react886.RefCallback<HTMLButtonElement>;
78
+ } | undefined) => react213.RefCallback<HTMLButtonElement>;
79
79
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
80
80
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
81
81
  values: () => Descendant<HTMLButtonElement, {}>[];
82
82
  };
83
83
  interface AccordionContext extends Omit<UseAccordionReturn, "descendants" | "getRootProps"> {}
84
- declare const AccordionContext: react886.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
84
+ declare const AccordionContext: react213.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
85
85
  interface AccordionItemContext extends Omit<UseAccordionItemReturn, "getItemProps"> {}
86
- declare const AccordionItemContext: react886.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
86
+ declare const AccordionItemContext: react213.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) => Descendant<HTMLButtonElement, {}> | undefined;
138
138
  register: (props?: {
139
139
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
140
- } | undefined) => react886.RefCallback<HTMLButtonElement>;
140
+ } | undefined) => react213.RefCallback<HTMLButtonElement>;
141
141
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
142
142
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
143
143
  values: () => 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: react886.Dispatch<react886.SetStateAction<number>>;
149
- setIndex: react886.Dispatch<react886.SetStateAction<number | number[]>>;
148
+ setFocusedIndex: react213.Dispatch<react213.SetStateAction<number>>;
149
+ setIndex: react213.Dispatch<react213.SetStateAction<number | number[]>>;
150
150
  toggle: boolean | undefined;
151
151
  getRootProps: PropGetter<"div", undefined, undefined>;
152
152
  };
@@ -5,7 +5,7 @@ import { AiryStyle } from "./airy.style.js";
5
5
  import { HTMLMotionProps } from "../motion/index.types.js";
6
6
  import "../motion/index.js";
7
7
  import "../../index.js";
8
- import * as react884 from "react";
8
+ import * as react212 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: react884.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
60
+ declare const AiryPropsContext: react212.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 react1043 from "react";
12
+ import * as react194 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: react1043.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
23
+ declare const AlertPropsContext: react194.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 react883 from "react";
8
+ import * as react193 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: react883.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
41
+ declare const AlphaSliderPropsContext: react193.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 react882 from "react";
5
+ import * as react192 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: react882.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
16
+ declare const AspectRatioPropsContext: react192.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
  *
@@ -11,7 +11,7 @@ import { InputGroupRootProps } from "../input/input-group.js";
11
11
  import "../input/index.js";
12
12
  import { UseAutocompleteOptionProps, UseAutocompleteProps } from "./use-autocomplete.js";
13
13
  import "../../index.js";
14
- import * as react881 from "react";
14
+ import * as react190 from "react";
15
15
  import { ReactElement, ReactNode } from "react";
16
16
 
17
17
  //#region src/components/autocomplete/autocomplete.d.ts
@@ -67,7 +67,7 @@ interface AutocompleteRootProps<Multiple extends boolean = false> extends Omit<H
67
67
  */
68
68
  rootProps?: InputGroupRootProps;
69
69
  }
70
- declare const AutocompletePropsContext: react881.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
70
+ declare const AutocompletePropsContext: react190.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
71
71
  /**
72
72
  * `Autocomplete` is a component used to display suggestions in response to user text input.
73
73
  *
@@ -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" | "field" | "valueText" | "empty", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "field" | "valueText" | "empty">>, {
6
+ declare const autocompleteStyle: ComponentSlotStyle<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "field" | "empty" | "valueText", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "field" | "empty" | "valueText">>, {
7
7
  xs: {
8
8
  empty: {
9
9
  gap: "1.5";
@@ -7,7 +7,7 @@ import { UsePopoverProps } from "../popover/use-popover.js";
7
7
  import "../popover/index.js";
8
8
  import { ComboboxDescendant, ComboboxDescendantProps, ComboboxItem, ComboboxItemWithValue, UseComboboxItemProps, UseComboboxProps } from "../../hooks/use-combobox/index.js";
9
9
  import "../../index.js";
10
- import * as react875 from "react";
10
+ import * as react184 from "react";
11
11
  import { ChangeEvent, ReactNode } from "react";
12
12
 
13
13
  //#region src/components/autocomplete/use-autocomplete.d.ts
@@ -29,7 +29,7 @@ interface AutocompleteMatcher {
29
29
  (input: string, target?: string): boolean;
30
30
  }
31
31
  interface AutocompleteContext extends Pick<UseAutocompleteReturn, "max" | "value"> {}
32
- declare const AutocompleteContext: react875.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
32
+ declare const AutocompleteContext: react184.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
33
33
  interface UseAutocompleteProps<Multiple extends boolean = false> extends Omit<HTMLProps, "defaultValue" | "onChange" | "ref" | "value">, Omit<UseComboboxProps, "defaultValue" | "initialFocusValue" | "onChange" | "ref" | "value">, HTMLRefAttributes<"input">, FieldProps {
34
34
  /**
35
35
  * If `true`, the autocomplete will allow custom value.
@@ -157,7 +157,7 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
157
157
  lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
158
158
  nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
159
159
  prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
160
- register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react875.RefCallback<HTMLDivElement>;
160
+ register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react184.RefCallback<HTMLDivElement>;
161
161
  unregister: (node?: HTMLDivElement | null | undefined) => void;
162
162
  value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
163
163
  values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[];
@@ -167,8 +167,8 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
167
167
  items: ComboboxItem[];
168
168
  max: number | undefined;
169
169
  open: boolean;
170
- setInputValue: react875.Dispatch<react875.SetStateAction<string>>;
171
- setValue: react875.Dispatch<react875.SetStateAction<Multiple extends true ? string[] : string>>;
170
+ setInputValue: react184.Dispatch<react184.SetStateAction<string>>;
171
+ setValue: react184.Dispatch<react184.SetStateAction<Multiple extends true ? string[] : string>>;
172
172
  value: Multiple extends true ? string[] : string;
173
173
  valueMap: {
174
174
  [key: string]: ComboboxItemWithValue;