@yamada-ui/react 2.1.2-dev-20260304211252 → 2.1.2-dev-20260304213915

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 (247) hide show
  1. package/dist/cjs/components/pagination/use-pagination.cjs +3 -3
  2. package/dist/cjs/components/pagination/use-pagination.cjs.map +1 -1
  3. package/dist/cjs/components/segmented-control/use-segmented-control.cjs +0 -2
  4. package/dist/cjs/components/segmented-control/use-segmented-control.cjs.map +1 -1
  5. package/dist/esm/components/pagination/use-pagination.js +3 -3
  6. package/dist/esm/components/pagination/use-pagination.js.map +1 -1
  7. package/dist/esm/components/segmented-control/use-segmented-control.js +0 -2
  8. package/dist/esm/components/segmented-control/use-segmented-control.js.map +1 -1
  9. package/dist/types/components/accordion/accordion.d.ts +2 -4
  10. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  11. package/dist/types/components/airy/airy.d.ts +2 -3
  12. package/dist/types/components/alert/alert.d.ts +2 -5
  13. package/dist/types/components/alert/alert.style.d.ts +1 -1
  14. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -3
  15. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  16. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -4
  17. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  18. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -7
  19. package/dist/types/components/avatar/avatar.d.ts +5 -5
  20. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  21. package/dist/types/components/badge/badge.d.ts +2 -2
  22. package/dist/types/components/bleed/bleed.d.ts +2 -2
  23. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  24. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  25. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  26. package/dist/types/components/button/button-group.d.ts +0 -1
  27. package/dist/types/components/button/button.d.ts +2 -3
  28. package/dist/types/components/button/icon-button.d.ts +2 -2
  29. package/dist/types/components/calendar/calendar.d.ts +2 -3
  30. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  31. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  32. package/dist/types/components/card/card.d.ts +2 -2
  33. package/dist/types/components/carousel/carousel.d.ts +2 -3
  34. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  35. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  36. package/dist/types/components/center/center.d.ts +2 -2
  37. package/dist/types/components/chart/area-chart.d.ts +2 -2
  38. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  39. package/dist/types/components/chart/chart.d.ts +5 -5
  40. package/dist/types/components/chart/composed-chart.d.ts +2 -2
  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/radial-chart.d.ts +2 -2
  46. package/dist/types/components/chart/use-chart.d.ts +2 -2
  47. package/dist/types/components/checkbox/checkbox-group.d.ts +0 -2
  48. package/dist/types/components/checkbox/checkbox.d.ts +5 -6
  49. package/dist/types/components/checkbox/checkbox.style.d.ts +1 -1
  50. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -3
  51. package/dist/types/components/checkbox/use-checkbox.d.ts +0 -1
  52. package/dist/types/components/checkbox-card/checkbox-card-group.d.ts +0 -3
  53. package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -7
  54. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
  55. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -3
  56. package/dist/types/components/close-button/close-button.d.ts +2 -3
  57. package/dist/types/components/code/code.d.ts +2 -2
  58. package/dist/types/components/collapse/collapse.d.ts +2 -3
  59. package/dist/types/components/color-picker/color-picker.d.ts +2 -6
  60. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -5
  61. package/dist/types/components/color-selector/color-selector.d.ts +2 -6
  62. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -5
  63. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  64. package/dist/types/components/container/container.d.ts +2 -2
  65. package/dist/types/components/data-list/data-list.d.ts +2 -2
  66. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  67. package/dist/types/components/date-picker/date-picker.d.ts +2 -5
  68. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -7
  69. package/dist/types/components/drawer/drawer.d.ts +2 -5
  70. package/dist/types/components/drawer/use-drawer.d.ts +0 -2
  71. package/dist/types/components/dropzone/dropzone.d.ts +5 -8
  72. package/dist/types/components/dropzone/dropzone.style.d.ts +1 -1
  73. package/dist/types/components/dropzone/use-dropzone.d.ts +0 -1
  74. package/dist/types/components/editable/editable.d.ts +4 -5
  75. package/dist/types/components/editable/use-editable.d.ts +2 -3
  76. package/dist/types/components/em/em.d.ts +2 -2
  77. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  78. package/dist/types/components/empty-state/empty-state.style.d.ts +2 -2
  79. package/dist/types/components/fade/fade.d.ts +2 -3
  80. package/dist/types/components/fade-scale/fade-scale.d.ts +0 -1
  81. package/dist/types/components/field/field.d.ts +3 -3
  82. package/dist/types/components/field/field.style.d.ts +2 -2
  83. package/dist/types/components/field/use-field-props.d.ts +3 -3
  84. package/dist/types/components/fieldset/fieldset.d.ts +3 -4
  85. package/dist/types/components/fieldset/fieldset.style.d.ts +1 -1
  86. package/dist/types/components/file-button/file-button.d.ts +2 -4
  87. package/dist/types/components/file-button/use-file-button.d.ts +18 -20
  88. package/dist/types/components/file-input/file-input.d.ts +2 -4
  89. package/dist/types/components/file-input/use-file-input.d.ts +15 -16
  90. package/dist/types/components/flex/flex.d.ts +2 -2
  91. package/dist/types/components/flip/flip.d.ts +4 -5
  92. package/dist/types/components/float/float.d.ts +2 -2
  93. package/dist/types/components/form/form.d.ts +3 -4
  94. package/dist/types/components/form/form.style.d.ts +1 -1
  95. package/dist/types/components/format/format-byte.d.ts +4 -4
  96. package/dist/types/components/format/format-date-time.d.ts +4 -4
  97. package/dist/types/components/format/format-number.d.ts +2 -2
  98. package/dist/types/components/grid/grid-item.d.ts +2 -2
  99. package/dist/types/components/grid/grid.d.ts +2 -2
  100. package/dist/types/components/group/group.d.ts +2 -3
  101. package/dist/types/components/group/use-group.d.ts +2 -2
  102. package/dist/types/components/heading/heading.d.ts +2 -2
  103. package/dist/types/components/highlight/highlight.d.ts +0 -2
  104. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -4
  105. package/dist/types/components/icon/icon.d.ts +5 -5
  106. package/dist/types/components/image/image.d.ts +2 -2
  107. package/dist/types/components/indicator/indicator.d.ts +4 -5
  108. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  109. package/dist/types/components/input/input-addon.d.ts +2 -2
  110. package/dist/types/components/input/input-element.d.ts +2 -2
  111. package/dist/types/components/input/input-group.d.ts +0 -2
  112. package/dist/types/components/input/input.d.ts +2 -3
  113. package/dist/types/components/kbd/kbd.d.ts +2 -2
  114. package/dist/types/components/link/link.d.ts +2 -2
  115. package/dist/types/components/link-box/link-box.d.ts +2 -2
  116. package/dist/types/components/list/list.d.ts +2 -2
  117. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  118. package/dist/types/components/loading/loading.d.ts +3 -4
  119. package/dist/types/components/loading/use-loading-component.d.ts +0 -1
  120. package/dist/types/components/mark/mark.d.ts +2 -2
  121. package/dist/types/components/menu/menu.d.ts +2 -3
  122. package/dist/types/components/menu/menu.style.d.ts +2 -2
  123. package/dist/types/components/menu/use-menu.d.ts +11 -11
  124. package/dist/types/components/modal/modal.d.ts +2 -6
  125. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  126. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  127. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  128. package/dist/types/components/native-select/native-select.d.ts +2 -4
  129. package/dist/types/components/native-select/use-native-select.d.ts +0 -1
  130. package/dist/types/components/native-table/native-table.d.ts +4 -4
  131. package/dist/types/components/notice/notice.style.d.ts +1 -1
  132. package/dist/types/components/notice/use-notice.d.ts +0 -3
  133. package/dist/types/components/number-input/number-input.d.ts +2 -3
  134. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  135. package/dist/types/components/number-input/use-number-input.d.ts +0 -1
  136. package/dist/types/components/pagination/pagination.d.ts +2 -3
  137. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  138. package/dist/types/components/password-input/password-input.d.ts +2 -3
  139. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  140. package/dist/types/components/password-input/strength-meter.style.d.ts +1 -1
  141. package/dist/types/components/password-input/use-password-input.d.ts +2 -3
  142. package/dist/types/components/picture/picture.d.ts +0 -1
  143. package/dist/types/components/pin-input/pin-input.d.ts +2 -4
  144. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -8
  145. package/dist/types/components/popover/popover.d.ts +2 -3
  146. package/dist/types/components/progress/progress.d.ts +4 -4
  147. package/dist/types/components/progress/use-progress.d.ts +706 -706
  148. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  149. package/dist/types/components/radio/radio-group.d.ts +0 -2
  150. package/dist/types/components/radio/radio.d.ts +5 -6
  151. package/dist/types/components/radio/radio.style.d.ts +1 -1
  152. package/dist/types/components/radio/use-radio-group.d.ts +2 -3
  153. package/dist/types/components/radio/use-radio.d.ts +0 -1
  154. package/dist/types/components/radio-card/radio-card-group.d.ts +0 -3
  155. package/dist/types/components/radio-card/radio-card.d.ts +5 -7
  156. package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
  157. package/dist/types/components/rating/use-rating.d.ts +7 -8
  158. package/dist/types/components/reorder/reorder.d.ts +2 -3
  159. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  160. package/dist/types/components/resizable/resizable.d.ts +2 -2
  161. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  162. package/dist/types/components/ripple/ripple.d.ts +2 -3
  163. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  164. package/dist/types/components/rotate/rotate.d.ts +2 -3
  165. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  166. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -3
  167. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  168. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -3
  169. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  170. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -10
  171. package/dist/types/components/select/select.d.ts +2 -4
  172. package/dist/types/components/select/select.style.d.ts +1 -1
  173. package/dist/types/components/select/use-select.d.ts +4 -6
  174. package/dist/types/components/separator/separator.d.ts +2 -2
  175. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -3
  176. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  177. package/dist/types/components/slide/slide.d.ts +2 -3
  178. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -3
  179. package/dist/types/components/slider/slider.d.ts +2 -2
  180. package/dist/types/components/slider/use-slider.d.ts +2 -3
  181. package/dist/types/components/snacks/snacks.d.ts +0 -2
  182. package/dist/types/components/snacks/use-snacks.d.ts +0 -1
  183. package/dist/types/components/stack/h-stack.d.ts +2 -2
  184. package/dist/types/components/stack/stack.d.ts +2 -2
  185. package/dist/types/components/stack/v-stack.d.ts +2 -2
  186. package/dist/types/components/stack/z-stack.d.ts +2 -2
  187. package/dist/types/components/stat/stat.d.ts +2 -2
  188. package/dist/types/components/stat/stat.style.d.ts +2 -2
  189. package/dist/types/components/status/status.d.ts +2 -2
  190. package/dist/types/components/status/status.style.d.ts +2 -2
  191. package/dist/types/components/steps/steps.d.ts +2 -2
  192. package/dist/types/components/steps/steps.style.d.ts +1 -1
  193. package/dist/types/components/steps/use-steps.d.ts +10 -10
  194. package/dist/types/components/switch/switch.d.ts +2 -2
  195. package/dist/types/components/switch/use-switch.d.ts +0 -1
  196. package/dist/types/components/table/table.d.ts +2 -4
  197. package/dist/types/components/tabs/tabs.d.ts +2 -2
  198. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  199. package/dist/types/components/tag/tag.d.ts +2 -2
  200. package/dist/types/components/text/text.d.ts +2 -2
  201. package/dist/types/components/textarea/textarea.d.ts +2 -4
  202. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  203. package/dist/types/components/timeline/timeline.d.ts +5 -5
  204. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  205. package/dist/types/components/tip/tip.d.ts +0 -2
  206. package/dist/types/components/toggle/toggle-group.d.ts +1 -1
  207. package/dist/types/components/toggle/toggle.d.ts +5 -7
  208. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  209. package/dist/types/components/toggle/use-toggle.d.ts +2 -3
  210. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  211. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  212. package/dist/types/components/wrap/wrap.d.ts +2 -3
  213. package/dist/types/core/components/create-component.d.ts +9 -7
  214. package/dist/types/core/components/index.types.d.ts +1 -0
  215. package/dist/types/core/components/use-component-style.d.ts +2 -0
  216. package/dist/types/core/components/utils.d.ts +1 -0
  217. package/dist/types/core/constant.d.ts +1 -0
  218. package/dist/types/core/css/calc.d.ts +1 -0
  219. package/dist/types/core/css/config.d.ts +1 -0
  220. package/dist/types/core/css/css.d.ts +1 -0
  221. package/dist/types/core/css/index.types.d.ts +1 -0
  222. package/dist/types/core/css/styles.d.ts +1 -0
  223. package/dist/types/core/css/token.d.ts +1 -0
  224. package/dist/types/core/css/use-css.d.ts +1 -0
  225. package/dist/types/core/css/utils.d.ts +2 -0
  226. package/dist/types/core/generated-theme-tokens.types.d.ts +1 -0
  227. package/dist/types/core/index.d.ts +2 -0
  228. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  229. package/dist/types/core/system/config.d.ts +1 -0
  230. package/dist/types/core/system/factory.d.ts +1 -0
  231. package/dist/types/core/system/index.types.d.ts +1 -0
  232. package/dist/types/core/system/storage-script.d.ts +3 -3
  233. package/dist/types/core/system/styled.d.ts +3 -2
  234. package/dist/types/core/system/system-provider.d.ts +2 -2
  235. package/dist/types/core/system/var.d.ts +2 -0
  236. package/dist/types/hooks/use-async-callback/index.d.ts +0 -1
  237. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  238. package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
  239. package/dist/types/hooks/use-combobox/index.d.ts +0 -1
  240. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  241. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  242. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  243. package/dist/types/index.d.ts +0 -102
  244. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  245. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  246. package/dist/types/utils/children.d.ts +2 -2
  247. package/package.json +1 -1
@@ -56,11 +56,11 @@ const usePagination = ({ boundaries = 1, defaultPage = 1, disabled = false, page
56
56
  const onChangePrev = (0, react.useCallback)(() => setCurrentPage((prev) => Math.max(1, prev - 1)), [setCurrentPage]);
57
57
  const onChangeNext = (0, react.useCallback)(() => setCurrentPage((prev) => Math.min(total, prev + 1)), [setCurrentPage, total]);
58
58
  const getRootProps = (0, react.useCallback)(({ ref, ...props } = {}) => ({
59
+ "aria-label": t("Pagination"),
60
+ role: "navigation",
59
61
  ...rest,
60
62
  ...props,
61
- ref: require_ref.mergeRefs(ref, rest.ref),
62
- "aria-label": t("Pagination"),
63
- role: "navigation"
63
+ ref: require_ref.mergeRefs(ref, rest.ref)
64
64
  }), [rest, t]);
65
65
  const getItemProps = (0, react.useCallback)(({ page: page$1, ...props } = {}) => {
66
66
  if ((0, require_utils_index.utils_exports.isNumber)(page$1)) return {
@@ -1 +1 @@
1
- {"version":3,"file":"use-pagination.cjs","names":["createContext","useControllableState","useI18n","page","getRootProps: PropGetter","mergeRefs","getItemProps: PropGetter<\"button\", { page?: Page }>","getStartTriggerProps: PropGetter<\"button\">","getEndTriggerProps: PropGetter<\"button\">","getPrevTriggerProps: PropGetter<\"button\">"],"sources":["../../../../src/components/pagination/use-pagination.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { createContext, handlerAll, isNumber, mergeRefs } from \"../../utils\"\n\nexport type Page = \"ellipsis\" | number\n\ninterface PaginationContext extends Omit<UsePaginationReturn, \"getRootProps\"> {}\n\nconst [PaginationContext, usePaginationContext] =\n createContext<PaginationContext>({\n name: \"PaginationContext\",\n })\n\nexport { PaginationContext, usePaginationContext }\n\nexport interface UsePaginationProps extends Omit<\n HTMLProps,\n \"onChange\" | \"page\"\n> {\n /**\n * The total number of pages in pagination.\n */\n total: number\n /**\n * Number of elements visible on the left/right edges.\n *\n * @default 1\n */\n boundaries?: number\n /**\n * The initial page of the pagination.\n * Should be less than `total` and greater than `1`.\n *\n * @default 1\n */\n defaultPage?: number\n /**\n * If `true`, the pagination all item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The page of the pagination.\n * Should be less than `total` and greater than `1`.\n */\n page?: number\n /** Number of siblings displayed on the left/right side of selected page.\n *\n * @default 1\n */\n siblings?: number\n /**\n * The callback invoked when the page changes.\n */\n onChange?: (page: number) => void\n}\n\nexport const usePagination = ({\n boundaries = 1,\n defaultPage = 1,\n disabled = false,\n page,\n siblings = 1,\n total,\n onChange: onChangeProp,\n ...rest\n}: UsePaginationProps) => {\n const [currentPage, setCurrentPage] = useControllableState({\n defaultValue: defaultPage,\n value: page,\n onChange: onChangeProp,\n })\n const { t } = useI18n(\"pagination\")\n const range = useMemo((): Page[] => {\n const minimumTotal = siblings * 2 + 3 + boundaries * 2\n\n if (minimumTotal >= total) return computedRange(1, total)\n\n const prevSiblings = Math.max(currentPage - siblings, boundaries)\n const nextSiblings = Math.min(currentPage + siblings, total - boundaries)\n const prevDots = prevSiblings > boundaries + 2\n const nextDots = nextSiblings < total - (boundaries + 1)\n\n if (!prevDots && nextDots) {\n const prevPages = siblings * 2 + boundaries + 2\n\n return [\n ...computedRange(1, prevPages),\n \"ellipsis\",\n ...computedRange(total - (boundaries - 1), total),\n ]\n }\n\n if (prevDots && !nextDots) {\n const nextPages = boundaries + 1 + 2 * siblings\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(total - nextPages, total),\n ]\n }\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(prevSiblings, nextSiblings),\n \"ellipsis\",\n ...computedRange(total - boundaries + 1, total),\n ]\n }, [boundaries, siblings, currentPage, total])\n\n const onChange = useCallback(\n (page: number) => setCurrentPage(Math.max(1, Math.min(total, page))),\n [setCurrentPage, total],\n )\n\n const onChangeStart = useCallback(() => setCurrentPage(1), [setCurrentPage])\n\n const onChangeEnd = useCallback(\n () => setCurrentPage(total),\n [setCurrentPage, total],\n )\n\n const onChangePrev = useCallback(\n () => setCurrentPage((prev) => Math.max(1, prev - 1)),\n [setCurrentPage],\n )\n\n const onChangeNext = useCallback(\n () => setCurrentPage((prev) => Math.min(total, prev + 1)),\n [setCurrentPage, total],\n )\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref),\n \"aria-label\": t(\"Pagination\"),\n role: \"navigation\",\n }),\n [rest, t],\n )\n\n const getItemProps: PropGetter<\"button\", { page?: Page }> = useCallback(\n ({ page, ...props } = {}) => {\n if (isNumber(page)) {\n return {\n type: \"button\",\n \"aria-current\": currentPage === page ? \"page\" : undefined,\n \"aria-label\": t(\"Go to page {value}\", { value: page }),\n disabled,\n ...props,\n onClick: handlerAll(props.onClick, () => onChange(page)),\n }\n } else {\n return { ...props, \"data-ellipsis\": \"\" }\n }\n },\n [currentPage, t, onChange, disabled],\n )\n\n const getStartTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to first page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangeStart),\n }),\n [onChangeStart, t, disabled, currentPage],\n )\n\n const getEndTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to last page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeEnd),\n }),\n [onChangeEnd, t, disabled, currentPage, total],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to previous page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangePrev),\n }),\n [onChangePrev, t, disabled, currentPage],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to next page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeNext),\n }),\n [onChangeNext, t, disabled, currentPage, total],\n )\n\n return {\n currentPage,\n disabled,\n range,\n total,\n getEndTriggerProps,\n getItemProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n getStartTriggerProps,\n onChange,\n onChangeEnd,\n onChangeNext,\n onChangePrev,\n onChangeStart,\n }\n}\n\nexport type UsePaginationReturn = ReturnType<typeof usePagination>\n\nconst computedRange = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, index) => index + start)\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-pagination.cjs","names":["createContext","useControllableState","useI18n","page","getRootProps: PropGetter","mergeRefs","getItemProps: PropGetter<\"button\", { page?: Page }>","getStartTriggerProps: PropGetter<\"button\">","getEndTriggerProps: PropGetter<\"button\">","getPrevTriggerProps: PropGetter<\"button\">"],"sources":["../../../../src/components/pagination/use-pagination.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { createContext, handlerAll, isNumber, mergeRefs } from \"../../utils\"\n\nexport type Page = \"ellipsis\" | number\n\ninterface PaginationContext extends Omit<UsePaginationReturn, \"getRootProps\"> {}\n\nconst [PaginationContext, usePaginationContext] =\n createContext<PaginationContext>({\n name: \"PaginationContext\",\n })\n\nexport { PaginationContext, usePaginationContext }\n\nexport interface UsePaginationProps extends Omit<\n HTMLProps,\n \"onChange\" | \"page\"\n> {\n /**\n * The total number of pages in pagination.\n */\n total: number\n /**\n * Number of elements visible on the left/right edges.\n *\n * @default 1\n */\n boundaries?: number\n /**\n * The initial page of the pagination.\n * Should be less than `total` and greater than `1`.\n *\n * @default 1\n */\n defaultPage?: number\n /**\n * If `true`, the pagination all item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The page of the pagination.\n * Should be less than `total` and greater than `1`.\n */\n page?: number\n /** Number of siblings displayed on the left/right side of selected page.\n *\n * @default 1\n */\n siblings?: number\n /**\n * The callback invoked when the page changes.\n */\n onChange?: (page: number) => void\n}\n\nexport const usePagination = ({\n boundaries = 1,\n defaultPage = 1,\n disabled = false,\n page,\n siblings = 1,\n total,\n onChange: onChangeProp,\n ...rest\n}: UsePaginationProps) => {\n const [currentPage, setCurrentPage] = useControllableState({\n defaultValue: defaultPage,\n value: page,\n onChange: onChangeProp,\n })\n const { t } = useI18n(\"pagination\")\n const range = useMemo((): Page[] => {\n const minimumTotal = siblings * 2 + 3 + boundaries * 2\n\n if (minimumTotal >= total) return computedRange(1, total)\n\n const prevSiblings = Math.max(currentPage - siblings, boundaries)\n const nextSiblings = Math.min(currentPage + siblings, total - boundaries)\n const prevDots = prevSiblings > boundaries + 2\n const nextDots = nextSiblings < total - (boundaries + 1)\n\n if (!prevDots && nextDots) {\n const prevPages = siblings * 2 + boundaries + 2\n\n return [\n ...computedRange(1, prevPages),\n \"ellipsis\",\n ...computedRange(total - (boundaries - 1), total),\n ]\n }\n\n if (prevDots && !nextDots) {\n const nextPages = boundaries + 1 + 2 * siblings\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(total - nextPages, total),\n ]\n }\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(prevSiblings, nextSiblings),\n \"ellipsis\",\n ...computedRange(total - boundaries + 1, total),\n ]\n }, [boundaries, siblings, currentPage, total])\n\n const onChange = useCallback(\n (page: number) => setCurrentPage(Math.max(1, Math.min(total, page))),\n [setCurrentPage, total],\n )\n\n const onChangeStart = useCallback(() => setCurrentPage(1), [setCurrentPage])\n\n const onChangeEnd = useCallback(\n () => setCurrentPage(total),\n [setCurrentPage, total],\n )\n\n const onChangePrev = useCallback(\n () => setCurrentPage((prev) => Math.max(1, prev - 1)),\n [setCurrentPage],\n )\n\n const onChangeNext = useCallback(\n () => setCurrentPage((prev) => Math.min(total, prev + 1)),\n [setCurrentPage, total],\n )\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n \"aria-label\": t(\"Pagination\"),\n role: \"navigation\",\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref),\n }),\n [rest, t],\n )\n\n const getItemProps: PropGetter<\"button\", { page?: Page }> = useCallback(\n ({ page, ...props } = {}) => {\n if (isNumber(page)) {\n return {\n type: \"button\",\n \"aria-current\": currentPage === page ? \"page\" : undefined,\n \"aria-label\": t(\"Go to page {value}\", { value: page }),\n disabled,\n ...props,\n onClick: handlerAll(props.onClick, () => onChange(page)),\n }\n } else {\n return { ...props, \"data-ellipsis\": \"\" }\n }\n },\n [currentPage, t, onChange, disabled],\n )\n\n const getStartTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to first page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangeStart),\n }),\n [onChangeStart, t, disabled, currentPage],\n )\n\n const getEndTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to last page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeEnd),\n }),\n [onChangeEnd, t, disabled, currentPage, total],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to previous page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangePrev),\n }),\n [onChangePrev, t, disabled, currentPage],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to next page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeNext),\n }),\n [onChangeNext, t, disabled, currentPage, total],\n )\n\n return {\n currentPage,\n disabled,\n range,\n total,\n getEndTriggerProps,\n getItemProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n getStartTriggerProps,\n onChange,\n onChangeEnd,\n onChangeNext,\n onChangePrev,\n onChangeStart,\n }\n}\n\nexport type UsePaginationReturn = ReturnType<typeof usePagination>\n\nconst computedRange = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, index) => index + start)\n"],"mappings":"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"}
@@ -63,7 +63,6 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
63
63
  }, [setValue]);
64
64
  const getLabelProps = (0, react.useCallback)((props) => ({
65
65
  "aria-disabled": (0, require_utils_index.utils_exports.ariaAttr)(trulyDisabled),
66
- "aria-readonly": (0, require_utils_index.utils_exports.ariaAttr)(trulyReadOnly),
67
66
  "data-checked": (0, require_utils_index.utils_exports.dataAttr)(checked),
68
67
  "data-disabled": (0, require_utils_index.utils_exports.dataAttr)(trulyDisabled),
69
68
  "data-orientation": orientation,
@@ -88,7 +87,6 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
88
87
  name,
89
88
  style: require_dom.visuallyHiddenAttributes.style,
90
89
  "aria-disabled": (0, require_utils_index.utils_exports.ariaAttr)(trulyDisabled),
91
- "aria-readonly": (0, require_utils_index.utils_exports.ariaAttr)(trulyReadOnly),
92
90
  "data-checked": (0, require_utils_index.utils_exports.dataAttr)(checked),
93
91
  "data-disabled": (0, require_utils_index.utils_exports.dataAttr)(trulyDisabled),
94
92
  "data-orientation": orientation,
@@ -1 +1 @@
1
- {"version":3,"file":"use-segmented-control.cjs","names":["createContext","createDescendants","useControllableState","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">","visuallyHiddenAttributes","mergeRefs"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(trulyReadOnly),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(trulyReadOnly),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,8BAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACdC,uDAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,yBAAc;CACpB,MAAM,CAAC,OAAO,YAAYC,gEAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,uCACH,WAAW;EACV;EACA,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,mCACH,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,wCACH,WAAW;EACV,iEAA0B,cAAc;EACxC,iEAA0B,cAAc;EACxC,gEAAyB,QAAQ;EACjC,iEAA0B,cAAc;EACxC,oBAAoB;EACpB,iEAA0B,cAAc;EACxC,sEAA+B,aAAa;EAC5C,sEAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAqCD,QAAO;EACL;EACA,uCApCC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAOC,qCAAyB;GAChC,iEAA0B,cAAc;GACxC,iEAA0B,cAAc;GACxC,gEAAyB,QAAQ;GACjC,iEAA0B,cAAc;GACxC,oBAAoB;GACpB,iEAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAKC,sBAAU,UAAU,IAAI;GAC7B,4DAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
1
+ {"version":3,"file":"use-segmented-control.cjs","names":["createContext","createDescendants","useControllableState","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">","visuallyHiddenAttributes","mergeRefs"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,8BAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACdC,uDAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,yBAAc;CACpB,MAAM,CAAC,OAAO,YAAYC,gEAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,uCACH,WAAW;EACV;EACA,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,mCACH,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,wCACH,WAAW;EACV,iEAA0B,cAAc;EACxC,gEAAyB,QAAQ;EACjC,iEAA0B,cAAc;EACxC,oBAAoB;EACpB,iEAA0B,cAAc;EACxC,sEAA+B,aAAa;EAC5C,sEAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,uCAnCC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAOC,qCAAyB;GAChC,iEAA0B,cAAc;GACxC,gEAAyB,QAAQ;GACjC,iEAA0B,cAAc;GACxC,oBAAoB;GACpB,iEAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAKC,sBAAU,UAAU,IAAI;GAC7B,4DAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
@@ -55,11 +55,11 @@ const usePagination = ({ boundaries = 1, defaultPage = 1, disabled = false, page
55
55
  const onChangePrev = useCallback(() => setCurrentPage((prev) => Math.max(1, prev - 1)), [setCurrentPage]);
56
56
  const onChangeNext = useCallback(() => setCurrentPage((prev) => Math.min(total, prev + 1)), [setCurrentPage, total]);
57
57
  const getRootProps = useCallback(({ ref, ...props } = {}) => ({
58
+ "aria-label": t("Pagination"),
59
+ role: "navigation",
58
60
  ...rest,
59
61
  ...props,
60
- ref: mergeRefs(ref, rest.ref),
61
- "aria-label": t("Pagination"),
62
- role: "navigation"
62
+ ref: mergeRefs(ref, rest.ref)
63
63
  }), [rest, t]);
64
64
  const getItemProps = useCallback(({ page: page$1, ...props } = {}) => {
65
65
  if ((0, utils_exports.isNumber)(page$1)) return {
@@ -1 +1 @@
1
- {"version":3,"file":"use-pagination.js","names":["createContext","page","getRootProps: PropGetter","getItemProps: PropGetter<\"button\", { page?: Page }>","getStartTriggerProps: PropGetter<\"button\">","getEndTriggerProps: PropGetter<\"button\">","getPrevTriggerProps: PropGetter<\"button\">"],"sources":["../../../../src/components/pagination/use-pagination.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { createContext, handlerAll, isNumber, mergeRefs } from \"../../utils\"\n\nexport type Page = \"ellipsis\" | number\n\ninterface PaginationContext extends Omit<UsePaginationReturn, \"getRootProps\"> {}\n\nconst [PaginationContext, usePaginationContext] =\n createContext<PaginationContext>({\n name: \"PaginationContext\",\n })\n\nexport { PaginationContext, usePaginationContext }\n\nexport interface UsePaginationProps extends Omit<\n HTMLProps,\n \"onChange\" | \"page\"\n> {\n /**\n * The total number of pages in pagination.\n */\n total: number\n /**\n * Number of elements visible on the left/right edges.\n *\n * @default 1\n */\n boundaries?: number\n /**\n * The initial page of the pagination.\n * Should be less than `total` and greater than `1`.\n *\n * @default 1\n */\n defaultPage?: number\n /**\n * If `true`, the pagination all item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The page of the pagination.\n * Should be less than `total` and greater than `1`.\n */\n page?: number\n /** Number of siblings displayed on the left/right side of selected page.\n *\n * @default 1\n */\n siblings?: number\n /**\n * The callback invoked when the page changes.\n */\n onChange?: (page: number) => void\n}\n\nexport const usePagination = ({\n boundaries = 1,\n defaultPage = 1,\n disabled = false,\n page,\n siblings = 1,\n total,\n onChange: onChangeProp,\n ...rest\n}: UsePaginationProps) => {\n const [currentPage, setCurrentPage] = useControllableState({\n defaultValue: defaultPage,\n value: page,\n onChange: onChangeProp,\n })\n const { t } = useI18n(\"pagination\")\n const range = useMemo((): Page[] => {\n const minimumTotal = siblings * 2 + 3 + boundaries * 2\n\n if (minimumTotal >= total) return computedRange(1, total)\n\n const prevSiblings = Math.max(currentPage - siblings, boundaries)\n const nextSiblings = Math.min(currentPage + siblings, total - boundaries)\n const prevDots = prevSiblings > boundaries + 2\n const nextDots = nextSiblings < total - (boundaries + 1)\n\n if (!prevDots && nextDots) {\n const prevPages = siblings * 2 + boundaries + 2\n\n return [\n ...computedRange(1, prevPages),\n \"ellipsis\",\n ...computedRange(total - (boundaries - 1), total),\n ]\n }\n\n if (prevDots && !nextDots) {\n const nextPages = boundaries + 1 + 2 * siblings\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(total - nextPages, total),\n ]\n }\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(prevSiblings, nextSiblings),\n \"ellipsis\",\n ...computedRange(total - boundaries + 1, total),\n ]\n }, [boundaries, siblings, currentPage, total])\n\n const onChange = useCallback(\n (page: number) => setCurrentPage(Math.max(1, Math.min(total, page))),\n [setCurrentPage, total],\n )\n\n const onChangeStart = useCallback(() => setCurrentPage(1), [setCurrentPage])\n\n const onChangeEnd = useCallback(\n () => setCurrentPage(total),\n [setCurrentPage, total],\n )\n\n const onChangePrev = useCallback(\n () => setCurrentPage((prev) => Math.max(1, prev - 1)),\n [setCurrentPage],\n )\n\n const onChangeNext = useCallback(\n () => setCurrentPage((prev) => Math.min(total, prev + 1)),\n [setCurrentPage, total],\n )\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref),\n \"aria-label\": t(\"Pagination\"),\n role: \"navigation\",\n }),\n [rest, t],\n )\n\n const getItemProps: PropGetter<\"button\", { page?: Page }> = useCallback(\n ({ page, ...props } = {}) => {\n if (isNumber(page)) {\n return {\n type: \"button\",\n \"aria-current\": currentPage === page ? \"page\" : undefined,\n \"aria-label\": t(\"Go to page {value}\", { value: page }),\n disabled,\n ...props,\n onClick: handlerAll(props.onClick, () => onChange(page)),\n }\n } else {\n return { ...props, \"data-ellipsis\": \"\" }\n }\n },\n [currentPage, t, onChange, disabled],\n )\n\n const getStartTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to first page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangeStart),\n }),\n [onChangeStart, t, disabled, currentPage],\n )\n\n const getEndTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to last page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeEnd),\n }),\n [onChangeEnd, t, disabled, currentPage, total],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to previous page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangePrev),\n }),\n [onChangePrev, t, disabled, currentPage],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to next page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeNext),\n }),\n [onChangeNext, t, disabled, currentPage, total],\n )\n\n return {\n currentPage,\n disabled,\n range,\n total,\n getEndTriggerProps,\n getItemProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n getStartTriggerProps,\n onChange,\n onChangeEnd,\n onChangeNext,\n onChangePrev,\n onChangeStart,\n }\n}\n\nexport type UsePaginationReturn = ReturnType<typeof usePagination>\n\nconst computedRange = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, index) => index + start)\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-pagination.js","names":["createContext","page","getRootProps: PropGetter","getItemProps: PropGetter<\"button\", { page?: Page }>","getStartTriggerProps: PropGetter<\"button\">","getEndTriggerProps: PropGetter<\"button\">","getPrevTriggerProps: PropGetter<\"button\">"],"sources":["../../../../src/components/pagination/use-pagination.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useMemo } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { createContext, handlerAll, isNumber, mergeRefs } from \"../../utils\"\n\nexport type Page = \"ellipsis\" | number\n\ninterface PaginationContext extends Omit<UsePaginationReturn, \"getRootProps\"> {}\n\nconst [PaginationContext, usePaginationContext] =\n createContext<PaginationContext>({\n name: \"PaginationContext\",\n })\n\nexport { PaginationContext, usePaginationContext }\n\nexport interface UsePaginationProps extends Omit<\n HTMLProps,\n \"onChange\" | \"page\"\n> {\n /**\n * The total number of pages in pagination.\n */\n total: number\n /**\n * Number of elements visible on the left/right edges.\n *\n * @default 1\n */\n boundaries?: number\n /**\n * The initial page of the pagination.\n * Should be less than `total` and greater than `1`.\n *\n * @default 1\n */\n defaultPage?: number\n /**\n * If `true`, the pagination all item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The page of the pagination.\n * Should be less than `total` and greater than `1`.\n */\n page?: number\n /** Number of siblings displayed on the left/right side of selected page.\n *\n * @default 1\n */\n siblings?: number\n /**\n * The callback invoked when the page changes.\n */\n onChange?: (page: number) => void\n}\n\nexport const usePagination = ({\n boundaries = 1,\n defaultPage = 1,\n disabled = false,\n page,\n siblings = 1,\n total,\n onChange: onChangeProp,\n ...rest\n}: UsePaginationProps) => {\n const [currentPage, setCurrentPage] = useControllableState({\n defaultValue: defaultPage,\n value: page,\n onChange: onChangeProp,\n })\n const { t } = useI18n(\"pagination\")\n const range = useMemo((): Page[] => {\n const minimumTotal = siblings * 2 + 3 + boundaries * 2\n\n if (minimumTotal >= total) return computedRange(1, total)\n\n const prevSiblings = Math.max(currentPage - siblings, boundaries)\n const nextSiblings = Math.min(currentPage + siblings, total - boundaries)\n const prevDots = prevSiblings > boundaries + 2\n const nextDots = nextSiblings < total - (boundaries + 1)\n\n if (!prevDots && nextDots) {\n const prevPages = siblings * 2 + boundaries + 2\n\n return [\n ...computedRange(1, prevPages),\n \"ellipsis\",\n ...computedRange(total - (boundaries - 1), total),\n ]\n }\n\n if (prevDots && !nextDots) {\n const nextPages = boundaries + 1 + 2 * siblings\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(total - nextPages, total),\n ]\n }\n\n return [\n ...computedRange(1, boundaries),\n \"ellipsis\",\n ...computedRange(prevSiblings, nextSiblings),\n \"ellipsis\",\n ...computedRange(total - boundaries + 1, total),\n ]\n }, [boundaries, siblings, currentPage, total])\n\n const onChange = useCallback(\n (page: number) => setCurrentPage(Math.max(1, Math.min(total, page))),\n [setCurrentPage, total],\n )\n\n const onChangeStart = useCallback(() => setCurrentPage(1), [setCurrentPage])\n\n const onChangeEnd = useCallback(\n () => setCurrentPage(total),\n [setCurrentPage, total],\n )\n\n const onChangePrev = useCallback(\n () => setCurrentPage((prev) => Math.max(1, prev - 1)),\n [setCurrentPage],\n )\n\n const onChangeNext = useCallback(\n () => setCurrentPage((prev) => Math.min(total, prev + 1)),\n [setCurrentPage, total],\n )\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n \"aria-label\": t(\"Pagination\"),\n role: \"navigation\",\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref),\n }),\n [rest, t],\n )\n\n const getItemProps: PropGetter<\"button\", { page?: Page }> = useCallback(\n ({ page, ...props } = {}) => {\n if (isNumber(page)) {\n return {\n type: \"button\",\n \"aria-current\": currentPage === page ? \"page\" : undefined,\n \"aria-label\": t(\"Go to page {value}\", { value: page }),\n disabled,\n ...props,\n onClick: handlerAll(props.onClick, () => onChange(page)),\n }\n } else {\n return { ...props, \"data-ellipsis\": \"\" }\n }\n },\n [currentPage, t, onChange, disabled],\n )\n\n const getStartTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to first page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangeStart),\n }),\n [onChangeStart, t, disabled, currentPage],\n )\n\n const getEndTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to last page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeEnd),\n }),\n [onChangeEnd, t, disabled, currentPage, total],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to previous page\"),\n disabled: disabled || currentPage === 1,\n ...props,\n onClick: handlerAll(props.onClick, onChangePrev),\n }),\n [onChangePrev, t, disabled, currentPage],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n type: \"button\",\n \"aria-label\": t(\"Go to next page\"),\n disabled: disabled || currentPage === total,\n ...props,\n onClick: handlerAll(props.onClick, onChangeNext),\n }),\n [onChangeNext, t, disabled, currentPage, total],\n )\n\n return {\n currentPage,\n disabled,\n range,\n total,\n getEndTriggerProps,\n getItemProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n getStartTriggerProps,\n onChange,\n onChangeEnd,\n onChangeNext,\n onChangePrev,\n onChangeStart,\n }\n}\n\nexport type UsePaginationReturn = ReturnType<typeof usePagination>\n\nconst computedRange = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, index) => index + start)\n"],"mappings":"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"}
@@ -62,7 +62,6 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
62
62
  }, [setValue]);
63
63
  const getLabelProps = useCallback((props) => ({
64
64
  "aria-disabled": (0, utils_exports.ariaAttr)(trulyDisabled),
65
- "aria-readonly": (0, utils_exports.ariaAttr)(trulyReadOnly),
66
65
  "data-checked": (0, utils_exports.dataAttr)(checked),
67
66
  "data-disabled": (0, utils_exports.dataAttr)(trulyDisabled),
68
67
  "data-orientation": orientation,
@@ -87,7 +86,6 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
87
86
  name,
88
87
  style: visuallyHiddenAttributes.style,
89
88
  "aria-disabled": (0, utils_exports.ariaAttr)(trulyDisabled),
90
- "aria-readonly": (0, utils_exports.ariaAttr)(trulyReadOnly),
91
89
  "data-checked": (0, utils_exports.dataAttr)(checked),
92
90
  "data-disabled": (0, utils_exports.dataAttr)(trulyDisabled),
93
91
  "data-orientation": orientation,
@@ -1 +1 @@
1
- {"version":3,"file":"use-segmented-control.js","names":["createContext","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(trulyReadOnly),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-readonly\": ariaAttr(trulyReadOnly),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,gBAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACd,mBAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,OAAO,OAAO;CACpB,MAAM,CAAC,OAAO,YAAY,qBAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,eAA2B,aAC9B,WAAW;EACV;EACA,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,WAAW,aACd,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,gBAAqC,aACxC,WAAW;EACV,6CAA0B,cAAc;EACxC,6CAA0B,cAAc;EACxC,4CAAyB,QAAQ;EACjC,6CAA0B,cAAc;EACxC,oBAAoB;EACpB,6CAA0B,cAAc;EACxC,kDAA+B,aAAa;EAC5C,kDAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAqCD,QAAO;EACL;EACA,eArCyC,aACxC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAO,yBAAyB;GAChC,6CAA0B,cAAc;GACxC,6CAA0B,cAAc;GACxC,4CAAyB,QAAQ;GACjC,6CAA0B,cAAc;GACxC,oBAAoB;GACpB,6CAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAK,UAAU,UAAU,IAAI;GAC7B,wCAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
1
+ {"version":3,"file":"use-segmented-control.js","names":["createContext","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,gBAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACd,mBAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,OAAO,OAAO;CACpB,MAAM,CAAC,OAAO,YAAY,qBAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,eAA2B,aAC9B,WAAW;EACV;EACA,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,WAAW,aACd,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,gBAAqC,aACxC,WAAW;EACV,6CAA0B,cAAc;EACxC,4CAAyB,QAAQ;EACjC,6CAA0B,cAAc;EACxC,oBAAoB;EACpB,6CAA0B,cAAc;EACxC,kDAA+B,aAAa;EAC5C,kDAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,eApCyC,aACxC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAO,yBAAyB;GAChC,6CAA0B,cAAc;GACxC,4CAAyB,QAAQ;GACjC,6CAA0B,cAAc;GACxC,oBAAoB;GACpB,6CAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAK,UAAU,UAAU,IAAI;GAC7B,wCAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
@@ -3,13 +3,11 @@ import { ThemeProps } from "../../core/system/index.types.js";
3
3
  import { Component, HTMLStyledProps } from "../../core/components/index.types.js";
4
4
  import "../../core/index.js";
5
5
  import { WithTransitionProps } from "../motion/index.types.js";
6
- import "../motion/index.js";
7
6
  import { CollapseProps } from "../collapse/collapse.js";
8
- import "../collapse/index.js";
9
7
  import "../../index.js";
10
8
  import { AccordionStyle } from "./accordion.style.js";
11
9
  import { UseAccordionItemProps, UseAccordionProps } from "./use-accordion.js";
12
- import * as react79 from "react";
10
+ import * as react858 from "react";
13
11
 
14
12
  //#region src/components/accordion/accordion.d.ts
15
13
  interface AccordionCallBackProps {
@@ -33,7 +31,7 @@ interface AccordionRootProps extends Omit<HTMLStyledProps, "onChange">, ThemePro
33
31
  */
34
32
  items?: AccordionItem[];
35
33
  }
36
- declare const AccordionPropsContext: react79.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
34
+ declare const AccordionPropsContext: react858.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
37
35
  /**
38
36
  * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.
39
37
  *
@@ -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 react67 from "react";
5
+ import * as react859 from "react";
6
6
 
7
7
  //#region src/components/accordion/use-accordion.d.ts
8
- declare const AccordionDescendantsContext: react67.Context<{
8
+ declare const AccordionDescendantsContext: react859.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: react67.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) => react67.RefCallback<HTMLButtonElement>;
27
+ } | undefined) => react859.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: react67.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) => react67.RefCallback<HTMLButtonElement>;
53
+ } | undefined) => react859.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: react67.RefCallback<HTMLButtonElement>;
58
+ register: react859.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: react67.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) => react67.RefCallback<HTMLButtonElement>;
78
+ } | undefined) => react859.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: react67.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
84
+ declare const AccordionContext: react859.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
85
85
  interface AccordionItemContext extends Omit<UseAccordionItemReturn, "getItemProps"> {}
86
- declare const AccordionItemContext: react67.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
86
+ declare const AccordionItemContext: react859.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) => react67.RefCallback<HTMLButtonElement>;
140
+ } | undefined) => react859.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: react67.Dispatch<react67.SetStateAction<number>>;
149
- setIndex: react67.Dispatch<react67.SetStateAction<number | number[]>>;
148
+ setFocusedIndex: react859.Dispatch<react859.SetStateAction<number>>;
149
+ setIndex: react859.Dispatch<react859.SetStateAction<number | number[]>>;
150
150
  toggle: boolean | undefined;
151
151
  getRootProps: PropGetter<"div", undefined, undefined>;
152
152
  };
@@ -3,9 +3,8 @@ import { Component } from "../../core/components/index.types.js";
3
3
  import "../../core/index.js";
4
4
  import { AiryStyle } from "./airy.style.js";
5
5
  import { HTMLMotionProps } from "../motion/index.types.js";
6
- import "../motion/index.js";
7
6
  import "../../index.js";
8
- import * as react81 from "react";
7
+ import * as react856 from "react";
9
8
  import { ReactNode } from "react";
10
9
 
11
10
  //#region src/components/airy/airy.d.ts
@@ -57,7 +56,7 @@ interface AiryProps extends Omit<HTMLMotionProps<"button">, "onChange">, ThemePr
57
56
  */
58
57
  onChange?: (value: KeyframeIdent) => void;
59
58
  }
60
- declare const AiryPropsContext: react81.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
59
+ declare const AiryPropsContext: react856.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
61
60
  /**
62
61
  * `Airy` is a component that creates an airy animation, switching between two elements when one is clicked.
63
62
  *
@@ -3,13 +3,10 @@ import { Component, HTMLStyledProps } from "../../core/components/index.types.js
3
3
  import "../../core/index.js";
4
4
  import { AlertStyle } from "./alert.style.js";
5
5
  import { IconProps } from "../icon/icon.js";
6
- import "../icon/index.js";
7
6
  import { LoadingProps } from "../loading/loading.js";
8
- import "../loading/index.js";
9
7
  import { StatusScheme } from "../status/status.js";
10
- import "../status/index.js";
11
8
  import "../../index.js";
12
- import * as react80 from "react";
9
+ import * as react857 from "react";
13
10
 
14
11
  //#region src/components/alert/alert.d.ts
15
12
  interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
@@ -20,7 +17,7 @@ interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
20
17
  */
21
18
  status?: StatusScheme;
22
19
  }
23
- declare const AlertPropsContext: react80.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
20
+ declare const AlertPropsContext: react857.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
24
21
  /**
25
22
  * `Alert` is a component that conveys information to the user.
26
23
  *
@@ -3,7 +3,7 @@ import { CSSModifierObject, CSSPropObject, CSSSlotObject } from "../../core/css/
3
3
  import "../../index.js";
4
4
 
5
5
  //#region src/components/alert/alert.style.d.ts
6
- declare const alertStyle: ComponentSlotStyle<"title" | "loading" | "icon" | "description" | "root", CSSPropObject<CSSSlotObject<"title" | "loading" | "icon" | "description" | "root">>, CSSModifierObject<CSSSlotObject<"title" | "loading" | "icon" | "description" | "root">>, {
6
+ declare const alertStyle: ComponentSlotStyle<"title" | "loading" | "icon" | "root" | "description", CSSPropObject<CSSSlotObject<"title" | "loading" | "icon" | "root" | "description">>, CSSModifierObject<CSSSlotObject<"title" | "loading" | "icon" | "root" | "description">>, {
7
7
  island: {
8
8
  description: {
9
9
  color: "fg.muted";
@@ -3,9 +3,8 @@ import { Component } from "../../core/components/index.types.js";
3
3
  import "../../core/index.js";
4
4
  import { AlphaSliderStyle } from "./alpha-slider.style.js";
5
5
  import { HueSliderOverlayProps, HueSliderRootProps, HueSliderThumbProps, HueSliderTrackProps } from "../hue-slider/hue-slider.js";
6
- import "../hue-slider/index.js";
7
6
  import "../../index.js";
8
- import * as react53 from "react";
7
+ import * as react855 from "react";
9
8
 
10
9
  //#region src/components/alpha-slider/alpha-slider.d.ts
11
10
  interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps, "color" | "max" | "step" | "thumbProps" | "trackProps">, AlphaSliderStyle> {
@@ -38,7 +37,7 @@ interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps
38
37
  */
39
38
  trackProps?: AlphaSliderTrackProps;
40
39
  }
41
- declare const AlphaSliderPropsContext: react53.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
40
+ declare const AlphaSliderPropsContext: react855.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
42
41
  /**
43
42
  * `AlphaSlider` is a component used to allow the user to select color transparency.
44
43
  *
@@ -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 react65 from "react";
5
+ import * as react854 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: react65.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
16
+ declare const AspectRatioPropsContext: react854.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
  *
@@ -3,15 +3,13 @@ import { Component, GenericsComponent, HTMLStyledProps } from "../../core/compon
3
3
  import "../../core/index.js";
4
4
  import { AutocompleteStyle } from "./autocomplete.style.js";
5
5
  import { PopoverContentProps, PopupAnimationProps } from "../popover/popover.js";
6
- import "../popover/index.js";
7
6
  import { UseComboboxGroupProps } from "../../hooks/use-combobox/index.js";
8
7
  import { UseInputBorderProps } from "../input/use-input-border.js";
9
8
  import { InputElementProps } from "../input/input-element.js";
10
9
  import { InputGroupRootProps } from "../input/input-group.js";
11
- import "../input/index.js";
12
10
  import { UseAutocompleteOptionProps, UseAutocompleteProps } from "./use-autocomplete.js";
13
11
  import "../../index.js";
14
- import * as react66 from "react";
12
+ import * as react916 from "react";
15
13
  import { ReactElement, ReactNode } from "react";
16
14
 
17
15
  //#region src/components/autocomplete/autocomplete.d.ts
@@ -67,7 +65,7 @@ interface AutocompleteRootProps<Multiple extends boolean = false> extends Omit<H
67
65
  */
68
66
  rootProps?: InputGroupRootProps;
69
67
  }
70
- declare const AutocompletePropsContext: react66.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
68
+ declare const AutocompletePropsContext: react916.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
71
69
  /**
72
70
  * `Autocomplete` is a component used to display suggestions in response to user text input.
73
71
  *
@@ -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" | "indicator" | "root" | "field" | "valueText" | "empty", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "indicator" | "root" | "field" | "valueText" | "empty">>, {
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">>, {
7
7
  xs: {
8
8
  empty: {
9
9
  gap: "1.5";
@@ -1,13 +1,11 @@
1
1
  import { HTMLProps, HTMLRefAttributes, PropGetter } from "../../core/components/index.types.js";
2
2
  import "../../core/index.js";
3
3
  import { FieldProps } from "../field/field.js";
4
- import "../field/index.js";
5
4
  import { Descendant, DescendantProps } from "../../hooks/use-descendants/index.js";
6
5
  import { UsePopoverProps } from "../popover/use-popover.js";
7
- import "../popover/index.js";
8
6
  import { ComboboxDescendant, ComboboxDescendantProps, ComboboxItem, ComboboxItemWithValue, UseComboboxItemProps, UseComboboxProps } from "../../hooks/use-combobox/index.js";
9
7
  import "../../index.js";
10
- import * as react59 from "react";
8
+ import * as react917 from "react";
11
9
  import { ChangeEvent, ReactNode } from "react";
12
10
 
13
11
  //#region src/components/autocomplete/use-autocomplete.d.ts
@@ -29,7 +27,7 @@ interface AutocompleteMatcher {
29
27
  (input: string, target?: string): boolean;
30
28
  }
31
29
  interface AutocompleteContext extends Pick<UseAutocompleteReturn, "max" | "value"> {}
32
- declare const AutocompleteContext: react59.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
30
+ declare const AutocompleteContext: react917.Context<AutocompleteContext>, useAutocompleteContext: () => AutocompleteContext;
33
31
  interface UseAutocompleteProps<Multiple extends boolean = false> extends Omit<HTMLProps, "defaultValue" | "onChange" | "ref" | "value">, Omit<UseComboboxProps, "defaultValue" | "initialFocusValue" | "onChange" | "ref" | "value">, HTMLRefAttributes<"input">, FieldProps {
34
32
  /**
35
33
  * If `true`, the autocomplete will allow custom value.
@@ -157,7 +155,7 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
157
155
  lastValue: () => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
158
156
  nextValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
159
157
  prevValue: (indexOrNode: number | HTMLDivElement | Descendant<HTMLDivElement, ComboboxDescendantProps> | null, loop?: boolean) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
160
- register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react59.RefCallback<HTMLDivElement>;
158
+ register: (props?: DescendantProps<HTMLDivElement, ComboboxDescendantProps> | undefined) => react917.RefCallback<HTMLDivElement>;
161
159
  unregister: (node?: HTMLDivElement | null | undefined) => void;
162
160
  value: (indexOrNode: number | HTMLDivElement | null) => Descendant<HTMLDivElement, ComboboxDescendantProps> | undefined;
163
161
  values: () => Descendant<HTMLDivElement, ComboboxDescendantProps>[];
@@ -167,8 +165,8 @@ declare const useAutocomplete: <Multiple extends boolean = false>(props?: UseAut
167
165
  items: ComboboxItem[];
168
166
  max: number | undefined;
169
167
  open: boolean;
170
- setInputValue: react59.Dispatch<react59.SetStateAction<string>>;
171
- setValue: react59.Dispatch<react59.SetStateAction<Multiple extends true ? string[] : string>>;
168
+ setInputValue: react917.Dispatch<react917.SetStateAction<string>>;
169
+ setValue: react917.Dispatch<react917.SetStateAction<Multiple extends true ? string[] : string>>;
172
170
  value: Multiple extends true ? string[] : string;
173
171
  valueMap: {
174
172
  [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 react56 from "react";
9
+ import * as react851 from "react";
10
10
  import { ReactElement } from "react";
11
- import * as _yamada_ui_utils7 from "@yamada-ui/utils";
11
+ import * as _yamada_ui_utils6 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_utils7.Dict = _yamada_ui_utils7.Dict<any>>(el: H | react56.FC<R>, slot?: ComponentSlot<ComponentSlotName<ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
28
+ declare const component: <H extends As | "fragment" = "div", R extends _yamada_ui_utils6.Dict = _yamada_ui_utils6.Dict<any>>(el: H | react851.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" ? react56.FunctionComponent<R> : Component<Exclude<H, "fragment">, R>, AvatarPropsContext: react56.Context<Partial<AvatarProps> | undefined>, useAvatarPropsContext: () => Partial<AvatarProps> | undefined, useRootComponentProps: <Y extends _yamada_ui_utils7.Dict = _yamada_ui_utils7.Dict<any>, 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" ? react851.FunctionComponent<R> : Component<Exclude<H, "fragment">, R>, AvatarPropsContext: react851.Context<Partial<AvatarProps> | undefined>, useAvatarPropsContext: () => Partial<AvatarProps> | undefined, useRootComponentProps: <Y extends _yamada_ui_utils6.Dict = _yamada_ui_utils6.Dict<any>, 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_utils7.Merge<WithoutThemeProps<Y, ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
274
+ }?: UseComponentPropsOptions<R>) => [CSSSlotObject, _yamada_ui_utils6.Merge<WithoutThemeProps<Y, ComponentSlotStyle<"image" | "group" | "root" | "fallback", {
275
275
  shape: {
276
276
  circle: {
277
277
  root: {
@@ -1,6 +1,6 @@
1
1
  import { HTMLProps, PropGetter } from "../../core/components/index.types.js";
2
2
  import "../../core/index.js";
3
- import * as react54 from "react";
3
+ import * as react849 from "react";
4
4
 
5
5
  //#region src/components/avatar/use-avatar-group.d.ts
6
6
  interface UseAvatarGroupProps extends HTMLProps {
@@ -19,7 +19,7 @@ declare const useAvatarGroup: ({
19
19
  reverse,
20
20
  ...rest
21
21
  }?: UseAvatarGroupProps) => {
22
- children: react54.ReactElement<any, string | react54.JSXElementConstructor<any>>[];
22
+ children: react849.ReactElement<any, string | react849.JSXElementConstructor<any>>[];
23
23
  excess: number;
24
24
  getRootProps: PropGetter<"div", undefined, undefined>;
25
25
  };