@charcoal-ui/react 6.0.0-rc.9 → 6.0.0

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 (265) hide show
  1. package/dist/_lib/compat.d.ts.map +1 -1
  2. package/dist/_lib/createDivComponent.cjs +0 -1
  3. package/dist/_lib/createDivComponent.cjs.map +1 -1
  4. package/dist/_lib/createDivComponent.d.ts +1 -1
  5. package/dist/_lib/createDivComponent.js.map +1 -1
  6. package/dist/_lib/index.cjs.map +1 -1
  7. package/dist/_lib/index.js.map +1 -1
  8. package/dist/_lib/useClassNames.cjs +0 -1
  9. package/dist/_lib/useClassNames.cjs.map +1 -1
  10. package/dist/_lib/useClassNames.js.map +1 -1
  11. package/dist/_lib/useForwardedRef.cjs +1 -1
  12. package/dist/_lib/useForwardedRef.cjs.map +1 -1
  13. package/dist/_lib/useForwardedRef.js.map +1 -1
  14. package/dist/_lib/useIsomorphicLayoutEffect.cjs +0 -1
  15. package/dist/_lib/useIsomorphicLayoutEffect.cjs.map +1 -1
  16. package/dist/_lib/useIsomorphicLayoutEffect.d.ts +2 -2
  17. package/dist/_lib/useIsomorphicLayoutEffect.d.ts.map +1 -1
  18. package/dist/_lib/useIsomorphicLayoutEffect.js.map +1 -1
  19. package/dist/components/Button/index.d.ts +1 -1
  20. package/dist/components/Button/index.d.ts.map +1 -1
  21. package/dist/components/Button/index2.cjs +1 -1
  22. package/dist/components/Button/index2.cjs.map +1 -1
  23. package/dist/components/Button/index2.js.map +1 -1
  24. package/dist/components/Carousel/CarouselItem.cjs +0 -1
  25. package/dist/components/Carousel/CarouselItem.cjs.map +1 -1
  26. package/dist/components/Carousel/CarouselItem.d.ts.map +1 -1
  27. package/dist/components/Carousel/CarouselItem.js.map +1 -1
  28. package/dist/components/Carousel/carouselStore.cjs.map +1 -1
  29. package/dist/components/Carousel/carouselStore.js.map +1 -1
  30. package/dist/components/Carousel/index.d.ts +1 -1
  31. package/dist/components/Carousel/index.d.ts.map +1 -1
  32. package/dist/components/Carousel/index2.cjs +0 -1
  33. package/dist/components/Carousel/index2.cjs.map +1 -1
  34. package/dist/components/Carousel/index2.js.map +1 -1
  35. package/dist/components/Carousel/intersectionObserver.cjs.map +1 -1
  36. package/dist/components/Carousel/intersectionObserver.js.map +1 -1
  37. package/dist/components/Carousel/resizeObserver.cjs.map +1 -1
  38. package/dist/components/Carousel/resizeObserver.js.map +1 -1
  39. package/dist/components/Carousel/store.cjs.map +1 -1
  40. package/dist/components/Carousel/store.js.map +1 -1
  41. package/dist/components/Carousel/useCarouselScroller.cjs +0 -1
  42. package/dist/components/Carousel/useCarouselScroller.cjs.map +1 -1
  43. package/dist/components/Carousel/useCarouselScroller.js.map +1 -1
  44. package/dist/components/Checkbox/CheckboxInput/index.d.ts.map +1 -1
  45. package/dist/components/Checkbox/CheckboxInput/index2.cjs +0 -1
  46. package/dist/components/Checkbox/CheckboxInput/index2.cjs.map +1 -1
  47. package/dist/components/Checkbox/CheckboxInput/index2.js.map +1 -1
  48. package/dist/components/Checkbox/CheckboxWithLabel.cjs +1 -1
  49. package/dist/components/Checkbox/CheckboxWithLabel.cjs.map +1 -1
  50. package/dist/components/Checkbox/CheckboxWithLabel.d.ts +2 -2
  51. package/dist/components/Checkbox/CheckboxWithLabel.d.ts.map +1 -1
  52. package/dist/components/Checkbox/CheckboxWithLabel.js.map +1 -1
  53. package/dist/components/Checkbox/index.d.ts.map +1 -1
  54. package/dist/components/Checkbox/index2.cjs +0 -1
  55. package/dist/components/Checkbox/index2.cjs.map +1 -1
  56. package/dist/components/Checkbox/index2.js.map +1 -1
  57. package/dist/components/Clickable/index.d.ts +1 -1
  58. package/dist/components/Clickable/index.d.ts.map +1 -1
  59. package/dist/components/Clickable/index2.cjs +1 -1
  60. package/dist/components/Clickable/index2.cjs.map +1 -1
  61. package/dist/components/Clickable/index2.js.map +1 -1
  62. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs +0 -1
  63. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs.map +1 -1
  64. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js.map +1 -1
  65. package/dist/components/DropdownSelector/DropdownPopover.cjs +0 -1
  66. package/dist/components/DropdownSelector/DropdownPopover.cjs.map +1 -1
  67. package/dist/components/DropdownSelector/DropdownPopover.js.map +1 -1
  68. package/dist/components/DropdownSelector/ListItem/index.d.ts +1 -1
  69. package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
  70. package/dist/components/DropdownSelector/ListItem/index2.cjs +0 -1
  71. package/dist/components/DropdownSelector/ListItem/index2.cjs.map +1 -1
  72. package/dist/components/DropdownSelector/ListItem/index2.js.map +1 -1
  73. package/dist/components/DropdownSelector/MenuItem/index.cjs +29 -2
  74. package/dist/components/DropdownSelector/MenuItem/index.cjs.map +1 -1
  75. package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -1
  76. package/dist/components/DropdownSelector/MenuItem/index.js +30 -2
  77. package/dist/components/DropdownSelector/MenuItem/index.js.map +1 -1
  78. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs.map +1 -1
  79. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js.map +1 -1
  80. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs +0 -1
  81. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs.map +1 -1
  82. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js.map +1 -1
  83. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs +0 -1
  84. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs.map +1 -1
  85. package/dist/components/DropdownSelector/MenuItemGroup/index2.js.map +1 -1
  86. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs +0 -1
  87. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs.map +1 -1
  88. package/dist/components/DropdownSelector/MenuList/MenuListContext.js.map +1 -1
  89. package/dist/components/DropdownSelector/MenuList/index2.cjs +0 -1
  90. package/dist/components/DropdownSelector/MenuList/index2.cjs.map +1 -1
  91. package/dist/components/DropdownSelector/MenuList/index2.js.map +1 -1
  92. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs +1 -1
  93. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs.map +1 -1
  94. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js.map +1 -1
  95. package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
  96. package/dist/components/DropdownSelector/Popover/index2.cjs +18 -1
  97. package/dist/components/DropdownSelector/Popover/index2.cjs.map +1 -1
  98. package/dist/components/DropdownSelector/Popover/index2.js +19 -1
  99. package/dist/components/DropdownSelector/Popover/index2.js.map +1 -1
  100. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs +0 -1
  101. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs.map +1 -1
  102. package/dist/components/DropdownSelector/Popover/usePreventScroll.js.map +1 -1
  103. package/dist/components/DropdownSelector/index.d.ts.map +1 -1
  104. package/dist/components/DropdownSelector/index2.cjs +27 -10
  105. package/dist/components/DropdownSelector/index2.cjs.map +1 -1
  106. package/dist/components/DropdownSelector/index2.js +26 -9
  107. package/dist/components/DropdownSelector/index2.js.map +1 -1
  108. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs +1 -1
  109. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs.map +1 -1
  110. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js.map +1 -1
  111. package/dist/components/FieldLabel/index.d.ts.map +1 -1
  112. package/dist/components/FieldLabel/index2.cjs +1 -1
  113. package/dist/components/FieldLabel/index2.cjs.map +1 -1
  114. package/dist/components/FieldLabel/index2.js.map +1 -1
  115. package/dist/components/HintText/index2.cjs +0 -1
  116. package/dist/components/HintText/index2.cjs.map +1 -1
  117. package/dist/components/HintText/index2.js.map +1 -1
  118. package/dist/components/Icon/index.cjs +1 -1
  119. package/dist/components/Icon/index.cjs.map +1 -1
  120. package/dist/components/Icon/index.d.ts.map +1 -1
  121. package/dist/components/Icon/index.js.map +1 -1
  122. package/dist/components/IconButton/index.d.ts +1 -1
  123. package/dist/components/IconButton/index.d.ts.map +1 -1
  124. package/dist/components/IconButton/index2.cjs +1 -1
  125. package/dist/components/IconButton/index2.cjs.map +1 -1
  126. package/dist/components/IconButton/index2.js.map +1 -1
  127. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  128. package/dist/components/LoadingSpinner/index2.cjs +0 -1
  129. package/dist/components/LoadingSpinner/index2.cjs.map +1 -1
  130. package/dist/components/LoadingSpinner/index2.js.map +1 -1
  131. package/dist/components/Modal/Dialog/index2.cjs +1 -1
  132. package/dist/components/Modal/Dialog/index2.cjs.map +1 -1
  133. package/dist/components/Modal/Dialog/index2.js.map +1 -1
  134. package/dist/components/Modal/ModalBackgroundContext.cjs +1 -1
  135. package/dist/components/Modal/ModalBackgroundContext.cjs.map +1 -1
  136. package/dist/components/Modal/ModalBackgroundContext.js.map +1 -1
  137. package/dist/components/Modal/ModalPlumbing.d.ts +3 -3
  138. package/dist/components/Modal/ModalPlumbing2.cjs +0 -1
  139. package/dist/components/Modal/ModalPlumbing2.cjs.map +1 -1
  140. package/dist/components/Modal/ModalPlumbing2.js.map +1 -1
  141. package/dist/components/Modal/index.d.ts.map +1 -1
  142. package/dist/components/Modal/index2.cjs +1 -1
  143. package/dist/components/Modal/index2.cjs.map +1 -1
  144. package/dist/components/Modal/index2.js.map +1 -1
  145. package/dist/components/Modal/useCustomModalOverlay.cjs +1 -1
  146. package/dist/components/Modal/useCustomModalOverlay.cjs.map +1 -1
  147. package/dist/components/Modal/useCustomModalOverlay.js.map +1 -1
  148. package/dist/components/Modal/useTransitionPresence.cjs +1 -3
  149. package/dist/components/Modal/useTransitionPresence.cjs.map +1 -1
  150. package/dist/components/Modal/useTransitionPresence.js +1 -2
  151. package/dist/components/Modal/useTransitionPresence.js.map +1 -1
  152. package/dist/components/MultiSelect/context.cjs +0 -1
  153. package/dist/components/MultiSelect/context.cjs.map +1 -1
  154. package/dist/components/MultiSelect/context.js.map +1 -1
  155. package/dist/components/MultiSelect/index.d.ts +1 -1
  156. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  157. package/dist/components/MultiSelect/index2.cjs +2 -2
  158. package/dist/components/MultiSelect/index2.cjs.map +1 -1
  159. package/dist/components/MultiSelect/index2.js.map +1 -1
  160. package/dist/components/Pagination/PaginationContext.cjs +0 -1
  161. package/dist/components/Pagination/PaginationContext.cjs.map +1 -1
  162. package/dist/components/Pagination/PaginationContext.js.map +1 -1
  163. package/dist/components/Pagination/helper.cjs.map +1 -1
  164. package/dist/components/Pagination/helper.js.map +1 -1
  165. package/dist/components/Pagination/index2.cjs +26 -135
  166. package/dist/components/Pagination/index2.cjs.map +1 -1
  167. package/dist/components/Pagination/index2.js +86 -182
  168. package/dist/components/Pagination/index2.js.map +1 -1
  169. package/dist/components/Radio/RadioGroup/index2.cjs +1 -1
  170. package/dist/components/Radio/RadioGroup/index2.cjs.map +1 -1
  171. package/dist/components/Radio/RadioGroup/index2.js.map +1 -1
  172. package/dist/components/Radio/RadioGroupContext.cjs.map +1 -1
  173. package/dist/components/Radio/RadioGroupContext.js.map +1 -1
  174. package/dist/components/Radio/RadioInput/index.d.ts.map +1 -1
  175. package/dist/components/Radio/RadioInput/index2.cjs +0 -1
  176. package/dist/components/Radio/RadioInput/index2.cjs.map +1 -1
  177. package/dist/components/Radio/RadioInput/index2.js.map +1 -1
  178. package/dist/components/Radio/index.d.ts.map +1 -1
  179. package/dist/components/Radio/index2.cjs +2 -2
  180. package/dist/components/Radio/index2.cjs.map +1 -1
  181. package/dist/components/Radio/index2.js.map +1 -1
  182. package/dist/components/SegmentedControl/RadioGroupContext.cjs +1 -1
  183. package/dist/components/SegmentedControl/RadioGroupContext.cjs.map +1 -1
  184. package/dist/components/SegmentedControl/RadioGroupContext.js.map +1 -1
  185. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  186. package/dist/components/SegmentedControl/index2.cjs +1 -1
  187. package/dist/components/SegmentedControl/index2.cjs.map +1 -1
  188. package/dist/components/SegmentedControl/index2.js.map +1 -1
  189. package/dist/components/Switch/SwitchInput/index.d.ts.map +1 -1
  190. package/dist/components/Switch/SwitchInput/index2.cjs +0 -1
  191. package/dist/components/Switch/SwitchInput/index2.cjs.map +1 -1
  192. package/dist/components/Switch/SwitchInput/index2.js.map +1 -1
  193. package/dist/components/Switch/SwitchWithLabel.cjs +1 -1
  194. package/dist/components/Switch/SwitchWithLabel.cjs.map +1 -1
  195. package/dist/components/Switch/SwitchWithLabel.d.ts +2 -2
  196. package/dist/components/Switch/SwitchWithLabel.d.ts.map +1 -1
  197. package/dist/components/Switch/SwitchWithLabel.js.map +1 -1
  198. package/dist/components/Switch/index.d.ts +1 -1
  199. package/dist/components/Switch/index.d.ts.map +1 -1
  200. package/dist/components/Switch/index2.cjs +0 -1
  201. package/dist/components/Switch/index2.cjs.map +1 -1
  202. package/dist/components/Switch/index2.js.map +1 -1
  203. package/dist/components/TagItem/index.d.ts +1 -1
  204. package/dist/components/TagItem/index.d.ts.map +1 -1
  205. package/dist/components/TagItem/index2.cjs +1 -1
  206. package/dist/components/TagItem/index2.cjs.map +1 -1
  207. package/dist/components/TagItem/index2.js.map +1 -1
  208. package/dist/components/TextArea/index.d.ts.map +1 -1
  209. package/dist/components/TextArea/index2.cjs +0 -1
  210. package/dist/components/TextArea/index2.cjs.map +1 -1
  211. package/dist/components/TextArea/index2.js.map +1 -1
  212. package/dist/components/TextEllipsis/helper.cjs +2 -1
  213. package/dist/components/TextEllipsis/helper.cjs.map +1 -1
  214. package/dist/components/TextEllipsis/helper.d.ts.map +1 -1
  215. package/dist/components/TextEllipsis/helper.js +1 -1
  216. package/dist/components/TextEllipsis/helper.js.map +1 -1
  217. package/dist/components/TextEllipsis/index2.cjs +14 -98
  218. package/dist/components/TextEllipsis/index2.cjs.map +1 -1
  219. package/dist/components/TextEllipsis/index2.js +14 -93
  220. package/dist/components/TextEllipsis/index2.js.map +1 -1
  221. package/dist/components/TextField/AssistiveText/index.d.ts +1 -1
  222. package/dist/components/TextField/AssistiveText/index2.cjs.map +1 -1
  223. package/dist/components/TextField/AssistiveText/index2.js.map +1 -1
  224. package/dist/components/TextField/index.d.ts +1 -1
  225. package/dist/components/TextField/index.d.ts.map +1 -1
  226. package/dist/components/TextField/index2.cjs +1 -1
  227. package/dist/components/TextField/index2.cjs.map +1 -1
  228. package/dist/components/TextField/index2.js.map +1 -1
  229. package/dist/components/TextField/useFocusWithClick.cjs +0 -1
  230. package/dist/components/TextField/useFocusWithClick.cjs.map +1 -1
  231. package/dist/components/TextField/useFocusWithClick.js.map +1 -1
  232. package/dist/core/CharcoalProvider.cjs +1 -1
  233. package/dist/core/CharcoalProvider.cjs.map +1 -1
  234. package/dist/core/CharcoalProvider.js.map +1 -1
  235. package/dist/core/SSRProvider.cjs +1 -1
  236. package/dist/core/SSRProvider.cjs.map +1 -1
  237. package/dist/core/SSRProvider.js +1 -1
  238. package/dist/core/SSRProvider.js.map +1 -1
  239. package/dist/core/SetThemeScript.cjs +0 -1
  240. package/dist/core/SetThemeScript.cjs.map +1 -1
  241. package/dist/core/SetThemeScript.js.map +1 -1
  242. package/dist/core/themeHelper.cjs +0 -1
  243. package/dist/core/themeHelper.cjs.map +1 -1
  244. package/dist/core/themeHelper.d.ts +2 -2
  245. package/dist/core/themeHelper.d.ts.map +1 -1
  246. package/dist/core/themeHelper.js.map +1 -1
  247. package/dist/index.cjs +22 -23
  248. package/dist/index.css +1000 -1000
  249. package/dist/layered.css +1000 -1000
  250. package/dist/layered.css.map +1 -1
  251. package/package.json +10 -10
  252. package/src/_lib/compat.ts +1 -7
  253. package/src/components/Carousel/index.browser.test.tsx +1 -1
  254. package/src/components/Carousel/intersectionObserver.test.ts +12 -12
  255. package/src/components/Carousel/resizeObserver.test.ts +1 -1
  256. package/src/components/DropdownSelector/MenuItem/index.tsx +40 -2
  257. package/src/components/DropdownSelector/Popover/index.tsx +20 -1
  258. package/src/components/DropdownSelector/index.browser.test.tsx +94 -0
  259. package/src/components/DropdownSelector/index.test.tsx +57 -2
  260. package/src/components/DropdownSelector/index.tsx +37 -12
  261. package/src/components/FieldLabel/index.tsx +1 -2
  262. package/src/components/Icon/index.tsx +2 -1
  263. package/src/components/Modal/__snapshots__/index.css.snap +1 -0
  264. package/src/components/TextEllipsis/TextEllipsis.story.tsx +1 -1
  265. package/src/css.d.ts +1 -0
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
2
  const require_useClassNames = require('../../_lib/useClassNames.cjs');
4
3
  const require_index = require('../IconButton/index2.cjs');
5
4
  require('./index.cjs');
@@ -150,150 +149,42 @@ function PageItem(t0) {
150
149
  } else t2 = $[19];
151
150
  return t2;
152
151
  }
153
- function Pagination(t0) {
152
+ function Pagination({ page, pageCount, pageRangeDisplayed, size = "M", onChange, makeUrl, component: LinkComponent = "a", linkProps, className, ariaLabelNext = "Next", ariaLabelPrev = "Previous", ...navProps }) {
154
153
  "use memo";
155
- const $ = (0, react_compiler_runtime.c)(41);
156
- if ($[0] !== "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794") {
157
- for (let $i = 0; $i < 41; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
158
- $[0] = "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794";
159
- }
160
- let className;
161
- let linkProps;
162
- let makeUrl;
163
- let navProps;
164
- let onChange;
165
- let page;
166
- let pageCount;
167
- let pageRangeDisplayed;
168
- let t1;
169
- let t2;
170
- let t3;
171
- let t4;
172
- if ($[1] !== t0) {
173
- ({page, pageCount, pageRangeDisplayed, size: t1, onChange, makeUrl, component: t2, linkProps, className, ariaLabelNext: t3, ariaLabelPrev: t4, ...navProps} = t0);
174
- $[1] = t0;
175
- $[2] = className;
176
- $[3] = linkProps;
177
- $[4] = makeUrl;
178
- $[5] = navProps;
179
- $[6] = onChange;
180
- $[7] = page;
181
- $[8] = pageCount;
182
- $[9] = pageRangeDisplayed;
183
- $[10] = t1;
184
- $[11] = t2;
185
- $[12] = t3;
186
- $[13] = t4;
187
- } else {
188
- className = $[2];
189
- linkProps = $[3];
190
- makeUrl = $[4];
191
- navProps = $[5];
192
- onChange = $[6];
193
- page = $[7];
194
- pageCount = $[8];
195
- pageRangeDisplayed = $[9];
196
- t1 = $[10];
197
- t2 = $[11];
198
- t3 = $[12];
199
- t4 = $[13];
200
- }
201
- const size = t1 === void 0 ? "M" : t1;
202
- const LinkComponent = t2 === void 0 ? "a" : t2;
203
- const ariaLabelNext = t3 === void 0 ? "Next" : t3;
204
- const ariaLabelPrev = t4 === void 0 ? "Previous" : t4;
205
154
  const window = require_helper.usePaginationWindow(page, pageCount, pageRangeDisplayed);
206
155
  const isLinkMode = makeUrl !== void 0;
207
- let t5;
208
- if ($[14] !== onChange) {
209
- t5 = (value) => () => onChange?.(value);
210
- $[14] = onChange;
211
- $[15] = t5;
212
- } else t5 = $[15];
213
- const makeClickHandler = t5;
156
+ const makeClickHandler = (value) => () => onChange?.(value);
214
157
  const classNames = require_useClassNames.useClassNames("charcoal-pagination", className);
215
- let t6;
216
- if ($[16] !== LinkComponent || $[17] !== isLinkMode || $[18] !== linkProps || $[19] !== makeClickHandler || $[20] !== makeUrl || $[21] !== page || $[22] !== pageCount || $[23] !== size) {
217
- t6 = {
218
- page,
219
- pageCount,
220
- size,
221
- isLinkMode,
222
- makeUrl,
223
- LinkComponent,
224
- makeClickHandler,
225
- linkProps
226
- };
227
- $[16] = LinkComponent;
228
- $[17] = isLinkMode;
229
- $[18] = linkProps;
230
- $[19] = makeClickHandler;
231
- $[20] = makeUrl;
232
- $[21] = page;
233
- $[22] = pageCount;
234
- $[23] = size;
235
- $[24] = t6;
236
- } else t6 = $[24];
237
- const t7 = t6;
238
- let t8;
239
- if ($[25] !== ariaLabelPrev) {
240
- t8 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavButton, {
241
- direction: "prev",
242
- ariaLabel: ariaLabelPrev
243
- });
244
- $[25] = ariaLabelPrev;
245
- $[26] = t8;
246
- } else t8 = $[26];
247
- let t9;
248
- if ($[27] !== window) {
249
- t9 = window.map(_temp);
250
- $[27] = window;
251
- $[28] = t9;
252
- } else t9 = $[28];
253
- let t10;
254
- if ($[29] !== ariaLabelNext) {
255
- t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavButton, {
256
- direction: "next",
257
- ariaLabel: ariaLabelNext
258
- });
259
- $[29] = ariaLabelNext;
260
- $[30] = t10;
261
- } else t10 = $[30];
262
- let t11;
263
- if ($[31] !== classNames || $[32] !== navProps || $[33] !== size || $[34] !== t10 || $[35] !== t8 || $[36] !== t9) {
264
- t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("nav", {
158
+ const contextValue = {
159
+ page,
160
+ pageCount,
161
+ size,
162
+ isLinkMode,
163
+ makeUrl,
164
+ LinkComponent,
165
+ makeClickHandler,
166
+ linkProps
167
+ };
168
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PaginationContext.PaginationContext.Provider, {
169
+ value: contextValue,
170
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("nav", {
265
171
  "data-size": size,
266
172
  "aria-label": "Pagination",
267
173
  ...navProps,
268
174
  className: classNames,
269
175
  children: [
270
- t8,
271
- t9,
272
- t10
176
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavButton, {
177
+ direction: "prev",
178
+ ariaLabel: ariaLabelPrev
179
+ }),
180
+ window.map((p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageItem, { value: p }, p)),
181
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavButton, {
182
+ direction: "next",
183
+ ariaLabel: ariaLabelNext
184
+ })
273
185
  ]
274
- });
275
- $[31] = classNames;
276
- $[32] = navProps;
277
- $[33] = size;
278
- $[34] = t10;
279
- $[35] = t8;
280
- $[36] = t9;
281
- $[37] = t11;
282
- } else t11 = $[37];
283
- let t12;
284
- if ($[38] !== t11 || $[39] !== t7) {
285
- t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PaginationContext.PaginationContext.Provider, {
286
- value: t7,
287
- children: t11
288
- });
289
- $[38] = t11;
290
- $[39] = t7;
291
- $[40] = t12;
292
- } else t12 = $[40];
293
- return t12;
294
- }
295
- function _temp(p) {
296
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageItem, { value: p }, p);
186
+ })
187
+ });
297
188
  }
298
189
 
299
190
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index2.cjs","names":["usePaginationWindow","useClassNames","IconButton","IconButtonProps","PaginationContext","usePaginationContext","LinkComponentProps","PaginationContextValue","PageRangeDisplayed","Size","NavButtonProps","direction","ariaLabel","NavButton","t0","$","_c","$i","Symbol","for","page","pageCount","size","isLinkMode","makeUrl","LinkComponent","makeClickHandler","linkProps","isPrev","targetPage","Math","max","min","disabled","navButtonClassName","className","t1","t2","undefined","t3","component","href","onClick","t4","PageItem","value","pageItemClassName","PaginationCommonProps","pageRangeDisplayed","ariaLabelPrev","ariaLabelNext","NavProps","Omit","React","ComponentPropsWithoutRef","PaginationProps","ElementType","onChange","newPage","T","Pagination","navProps","window","t5","classNames","t6","contextValue","t7","t8","t9","map","_temp","t10","t11","t12","p"],"sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { usePaginationWindow } from './helper'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport {\n PaginationContext,\n usePaginationContext,\n type LinkComponentProps,\n type PaginationContextValue,\n type PageRangeDisplayed,\n type Size,\n} from './PaginationContext'\n\ntype NavButtonProps = {\n direction: 'prev' | 'next'\n ariaLabel: IconButtonProps['aria-label']\n}\n\nfunction NavButton({ direction, ariaLabel }: NavButtonProps) {\n 'use memo'\n const {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n\n const isPrev = direction === 'prev'\n const targetPage = isPrev\n ? Math.max(1, page - 1)\n : Math.min(pageCount, page + 1)\n const disabled = isPrev ? page <= 1 : page >= pageCount\n const navButtonClassName = useClassNames(\n 'charcoal-pagination-nav-button',\n linkProps?.className,\n )\n\n return (\n <IconButton\n icon={isPrev ? '24/Prev' : '24/Next'}\n size={size}\n /* Use data-hidden, not [hidden]: Tailwind preflight's `[hidden] { display: none !important }` would clobber `visibility: hidden` and collapse the layout space. */\n data-hidden={disabled || undefined}\n aria-label={ariaLabel}\n {...(isLinkMode && makeUrl\n ? {\n component: LinkComponent as 'a',\n href: makeUrl(targetPage),\n 'aria-disabled': disabled,\n ...linkProps,\n className: navButtonClassName,\n }\n : {\n disabled,\n onClick: makeClickHandler(targetPage),\n className: navButtonClassName,\n })}\n />\n )\n}\n\nfunction PageItem({ value }: { value: number | string }) {\n 'use memo'\n const {\n page,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n const pageItemClassName = useClassNames(\n 'charcoal-pagination-button',\n linkProps?.className,\n )\n\n // 省略記号\n if (value === '...') {\n return (\n <IconButton\n icon=\"24/Dot\"\n size={size}\n disabled\n className=\"charcoal-pagination-spacer\"\n aria-hidden\n />\n )\n }\n // 現在ページ(クリック不可)\n if (value === page) {\n return (\n <span className=\"charcoal-pagination-button\" aria-current=\"page\">\n {value}\n </span>\n )\n }\n if (typeof value !== 'number') return null\n // リンクモード: ページへのリンク\n if (isLinkMode && makeUrl) {\n return (\n <LinkComponent\n href={makeUrl(value)}\n {...linkProps}\n className={pageItemClassName}\n >\n {value}\n </LinkComponent>\n )\n }\n // ボタンモード: クリックでページ遷移\n return (\n <button\n type=\"button\"\n className=\"charcoal-pagination-button\"\n onClick={makeClickHandler(value)}\n >\n {value}\n </button>\n )\n}\n\ninterface PaginationCommonProps {\n page: number\n pageCount: number\n pageRangeDisplayed?: PageRangeDisplayed\n size?: Size\n ariaLabelPrev?: string\n ariaLabelNext?: string\n}\n\ntype NavProps = Omit<React.ComponentPropsWithoutRef<'nav'>, 'onChange'>\n\n/**\n * Pagination component. Use either `onChange` (button mode) or `makeUrl` (link mode).\n *\n * @example\n * // Button mode - for client-side state\n * <Pagination page={1} pageCount={10} onChange={setPage} />\n *\n * @example\n * // Link mode - for server routing / static pages\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} />\n *\n * @example\n * // Link mode with custom component (e.g. Next.js Link)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} />\n *\n * @example\n * // Link mode with linkProps (e.g. Next.js scroll)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} linkProps={{ scroll: 'marker' }} />\n */\nexport type PaginationProps<T extends React.ElementType = 'a'> =\n PaginationCommonProps &\n NavProps &\n (\n | {\n onChange(newPage: number): void\n makeUrl?: never\n component?: never\n linkProps?: undefined\n }\n | {\n makeUrl(page: number): string\n onChange?: never\n /**\n * The component used for link elements. Receives `href`, `className`, and `children`.\n * @default 'a'\n */\n component?: T\n /**\n * Additional props passed to all link elements (e.g. Next.js Link's scroll, prefetch).\n */\n linkProps?: Omit<\n React.ComponentPropsWithoutRef<T>,\n 'href' | 'children'\n >\n }\n )\n\nexport default function Pagination<T extends React.ElementType = 'a'>({\n page,\n pageCount,\n pageRangeDisplayed,\n size = 'M',\n onChange,\n makeUrl,\n component: LinkComponent = 'a' as T,\n linkProps,\n className,\n ariaLabelNext = 'Next',\n ariaLabelPrev = 'Previous',\n ...navProps\n}: PaginationProps<T>) {\n 'use memo'\n const window = usePaginationWindow(page, pageCount, pageRangeDisplayed)\n const isLinkMode = makeUrl !== undefined\n const makeClickHandler = (value: number) => () => onChange?.(value)\n const classNames = useClassNames('charcoal-pagination', className)\n\n const contextValue = {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n }\n\n return (\n <PaginationContext.Provider\n value={\n contextValue as PaginationContextValue<\n React.ElementType<LinkComponentProps>\n >\n }\n >\n <nav\n data-size={size}\n aria-label=\"Pagination\"\n {...navProps}\n className={classNames}\n >\n <NavButton direction=\"prev\" ariaLabel={ariaLabelPrev} />\n {window.map((p) => (\n <PageItem key={p} value={p} />\n ))}\n <NavButton direction=\"next\" ariaLabel={ariaLabelNext} />\n </nav>\n </PaginationContext.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index2.cjs","names":["size","ariaLabel","value","pageItemClassName"],"sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { usePaginationWindow } from './helper'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport {\n PaginationContext,\n usePaginationContext,\n type LinkComponentProps,\n type PaginationContextValue,\n type PageRangeDisplayed,\n type Size,\n} from './PaginationContext'\n\ntype NavButtonProps = {\n direction: 'prev' | 'next'\n ariaLabel: IconButtonProps['aria-label']\n}\n\nfunction NavButton({ direction, ariaLabel }: NavButtonProps) {\n 'use memo'\n const {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n\n const isPrev = direction === 'prev'\n const targetPage = isPrev\n ? Math.max(1, page - 1)\n : Math.min(pageCount, page + 1)\n const disabled = isPrev ? page <= 1 : page >= pageCount\n const navButtonClassName = useClassNames(\n 'charcoal-pagination-nav-button',\n linkProps?.className,\n )\n\n return (\n <IconButton\n icon={isPrev ? '24/Prev' : '24/Next'}\n size={size}\n /* Use data-hidden, not [hidden]: Tailwind preflight's `[hidden] { display: none !important }` would clobber `visibility: hidden` and collapse the layout space. */\n data-hidden={disabled || undefined}\n aria-label={ariaLabel}\n {...(isLinkMode && makeUrl\n ? {\n component: LinkComponent as 'a',\n href: makeUrl(targetPage),\n 'aria-disabled': disabled,\n ...linkProps,\n className: navButtonClassName,\n }\n : {\n disabled,\n onClick: makeClickHandler(targetPage),\n className: navButtonClassName,\n })}\n />\n )\n}\n\nfunction PageItem({ value }: { value: number | string }) {\n 'use memo'\n const {\n page,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n const pageItemClassName = useClassNames(\n 'charcoal-pagination-button',\n linkProps?.className,\n )\n\n // 省略記号\n if (value === '...') {\n return (\n <IconButton\n icon=\"24/Dot\"\n size={size}\n disabled\n className=\"charcoal-pagination-spacer\"\n aria-hidden\n />\n )\n }\n // 現在ページ(クリック不可)\n if (value === page) {\n return (\n <span className=\"charcoal-pagination-button\" aria-current=\"page\">\n {value}\n </span>\n )\n }\n if (typeof value !== 'number') return null\n // リンクモード: ページへのリンク\n if (isLinkMode && makeUrl) {\n return (\n <LinkComponent\n href={makeUrl(value)}\n {...linkProps}\n className={pageItemClassName}\n >\n {value}\n </LinkComponent>\n )\n }\n // ボタンモード: クリックでページ遷移\n return (\n <button\n type=\"button\"\n className=\"charcoal-pagination-button\"\n onClick={makeClickHandler(value)}\n >\n {value}\n </button>\n )\n}\n\ninterface PaginationCommonProps {\n page: number\n pageCount: number\n pageRangeDisplayed?: PageRangeDisplayed\n size?: Size\n ariaLabelPrev?: string\n ariaLabelNext?: string\n}\n\ntype NavProps = Omit<React.ComponentPropsWithoutRef<'nav'>, 'onChange'>\n\n/**\n * Pagination component. Use either `onChange` (button mode) or `makeUrl` (link mode).\n *\n * @example\n * // Button mode - for client-side state\n * <Pagination page={1} pageCount={10} onChange={setPage} />\n *\n * @example\n * // Link mode - for server routing / static pages\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} />\n *\n * @example\n * // Link mode with custom component (e.g. Next.js Link)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} />\n *\n * @example\n * // Link mode with linkProps (e.g. Next.js scroll)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} linkProps={{ scroll: 'marker' }} />\n */\nexport type PaginationProps<T extends React.ElementType = 'a'> =\n PaginationCommonProps &\n NavProps &\n (\n | {\n onChange(newPage: number): void\n makeUrl?: never\n component?: never\n linkProps?: undefined\n }\n | {\n makeUrl(page: number): string\n onChange?: never\n /**\n * The component used for link elements. Receives `href`, `className`, and `children`.\n * @default 'a'\n */\n component?: T\n /**\n * Additional props passed to all link elements (e.g. Next.js Link's scroll, prefetch).\n */\n linkProps?: Omit<\n React.ComponentPropsWithoutRef<T>,\n 'href' | 'children'\n >\n }\n )\n\nexport default function Pagination<T extends React.ElementType = 'a'>({\n page,\n pageCount,\n pageRangeDisplayed,\n size = 'M',\n onChange,\n makeUrl,\n component: LinkComponent = 'a' as T,\n linkProps,\n className,\n ariaLabelNext = 'Next',\n ariaLabelPrev = 'Previous',\n ...navProps\n}: PaginationProps<T>) {\n 'use memo'\n const window = usePaginationWindow(page, pageCount, pageRangeDisplayed)\n const isLinkMode = makeUrl !== undefined\n const makeClickHandler = (value: number) => () => onChange?.(value)\n const classNames = useClassNames('charcoal-pagination', className)\n\n const contextValue = {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n }\n\n return (\n <PaginationContext.Provider\n value={\n contextValue as PaginationContextValue<\n React.ElementType<LinkComponentProps>\n >\n }\n >\n <nav\n data-size={size}\n aria-label=\"Pagination\"\n {...navProps}\n className={classNames}\n >\n <NavButton direction=\"prev\" ariaLabel={ariaLabelPrev} />\n {window.map((p) => (\n <PageItem key={p} value={p} />\n ))}\n <NavButton direction=\"next\" ariaLabel={ariaLabelNext} />\n </nav>\n </PaginationContext.Provider>\n )\n}\n"],"mappings":"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"}
@@ -10,7 +10,11 @@ import { c } from "react-compiler-runtime";
10
10
  //#region src/components/Pagination/index.tsx
11
11
  function NavButton(t0) {
12
12
  "use memo";
13
- const $ = c(15);
13
+ const $ = c(16);
14
+ if ($[0] !== "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794") {
15
+ for (let $i = 0; $i < 16; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
16
+ $[0] = "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794";
17
+ }
14
18
  const { direction, ariaLabel } = t0;
15
19
  const { page, pageCount, size, isLinkMode, makeUrl, LinkComponent, makeClickHandler, linkProps } = usePaginationContext();
16
20
  const isPrev = direction === "prev";
@@ -20,7 +24,7 @@ function NavButton(t0) {
20
24
  const t1 = isPrev ? "24/Prev" : "24/Next";
21
25
  const t2 = disabled || void 0;
22
26
  let t3;
23
- if ($[0] !== LinkComponent || $[1] !== disabled || $[2] !== isLinkMode || $[3] !== linkProps || $[4] !== makeClickHandler || $[5] !== makeUrl || $[6] !== navButtonClassName || $[7] !== targetPage) {
27
+ if ($[1] !== LinkComponent || $[2] !== disabled || $[3] !== isLinkMode || $[4] !== linkProps || $[5] !== makeClickHandler || $[6] !== makeUrl || $[7] !== navButtonClassName || $[8] !== targetPage) {
24
28
  t3 = isLinkMode && makeUrl ? {
25
29
  component: LinkComponent,
26
30
  href: makeUrl(targetPage),
@@ -32,18 +36,18 @@ function NavButton(t0) {
32
36
  onClick: makeClickHandler(targetPage),
33
37
  className: navButtonClassName
34
38
  };
35
- $[0] = LinkComponent;
36
- $[1] = disabled;
37
- $[2] = isLinkMode;
38
- $[3] = linkProps;
39
- $[4] = makeClickHandler;
40
- $[5] = makeUrl;
41
- $[6] = navButtonClassName;
42
- $[7] = targetPage;
43
- $[8] = t3;
44
- } else t3 = $[8];
39
+ $[1] = LinkComponent;
40
+ $[2] = disabled;
41
+ $[3] = isLinkMode;
42
+ $[4] = linkProps;
43
+ $[5] = makeClickHandler;
44
+ $[6] = makeUrl;
45
+ $[7] = navButtonClassName;
46
+ $[8] = targetPage;
47
+ $[9] = t3;
48
+ } else t3 = $[9];
45
49
  let t4;
46
- if ($[9] !== ariaLabel || $[10] !== size || $[11] !== t1 || $[12] !== t2 || $[13] !== t3) {
50
+ if ($[10] !== ariaLabel || $[11] !== size || $[12] !== t1 || $[13] !== t2 || $[14] !== t3) {
47
51
  t4 = /* @__PURE__ */ jsx(IconButton, {
48
52
  icon: t1,
49
53
  size,
@@ -51,24 +55,28 @@ function NavButton(t0) {
51
55
  "aria-label": ariaLabel,
52
56
  ...t3
53
57
  });
54
- $[9] = ariaLabel;
55
- $[10] = size;
56
- $[11] = t1;
57
- $[12] = t2;
58
- $[13] = t3;
59
- $[14] = t4;
60
- } else t4 = $[14];
58
+ $[10] = ariaLabel;
59
+ $[11] = size;
60
+ $[12] = t1;
61
+ $[13] = t2;
62
+ $[14] = t3;
63
+ $[15] = t4;
64
+ } else t4 = $[15];
61
65
  return t4;
62
66
  }
63
67
  function PageItem(t0) {
64
68
  "use memo";
65
- const $ = c(19);
69
+ const $ = c(20);
70
+ if ($[0] !== "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794") {
71
+ for (let $i = 0; $i < 20; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
72
+ $[0] = "6df9a461da70eeb5250dbca07b72d0ce43e952d7b7d08baba19bf889ba545794";
73
+ }
66
74
  const { value } = t0;
67
75
  const { page, size, isLinkMode, makeUrl, LinkComponent, makeClickHandler, linkProps } = usePaginationContext();
68
76
  const pageItemClassName = useClassNames("charcoal-pagination-button", linkProps?.className);
69
77
  if (value === "...") {
70
78
  let t1;
71
- if ($[0] !== size) {
79
+ if ($[1] !== size) {
72
80
  t1 = /* @__PURE__ */ jsx(IconButton, {
73
81
  icon: "24/Dot",
74
82
  size,
@@ -76,211 +84,107 @@ function PageItem(t0) {
76
84
  className: "charcoal-pagination-spacer",
77
85
  "aria-hidden": true
78
86
  });
79
- $[0] = size;
80
- $[1] = t1;
81
- } else t1 = $[1];
87
+ $[1] = size;
88
+ $[2] = t1;
89
+ } else t1 = $[2];
82
90
  return t1;
83
91
  }
84
92
  if (value === page) {
85
93
  let t1;
86
- if ($[2] !== value) {
94
+ if ($[3] !== value) {
87
95
  t1 = /* @__PURE__ */ jsx("span", {
88
96
  className: "charcoal-pagination-button",
89
97
  "aria-current": "page",
90
98
  children: value
91
99
  });
92
- $[2] = value;
93
- $[3] = t1;
94
- } else t1 = $[3];
100
+ $[3] = value;
101
+ $[4] = t1;
102
+ } else t1 = $[4];
95
103
  return t1;
96
104
  }
97
105
  if (typeof value !== "number") return null;
98
106
  if (isLinkMode && makeUrl) {
99
107
  let t1;
100
- if ($[4] !== makeUrl || $[5] !== value) {
108
+ if ($[5] !== makeUrl || $[6] !== value) {
101
109
  t1 = makeUrl(value);
102
- $[4] = makeUrl;
103
- $[5] = value;
104
- $[6] = t1;
105
- } else t1 = $[6];
110
+ $[5] = makeUrl;
111
+ $[6] = value;
112
+ $[7] = t1;
113
+ } else t1 = $[7];
106
114
  let t2;
107
- if ($[7] !== LinkComponent || $[8] !== linkProps || $[9] !== pageItemClassName || $[10] !== t1 || $[11] !== value) {
115
+ if ($[8] !== LinkComponent || $[9] !== linkProps || $[10] !== pageItemClassName || $[11] !== t1 || $[12] !== value) {
108
116
  t2 = /* @__PURE__ */ jsx(LinkComponent, {
109
117
  href: t1,
110
118
  ...linkProps,
111
119
  className: pageItemClassName,
112
120
  children: value
113
121
  });
114
- $[7] = LinkComponent;
115
- $[8] = linkProps;
116
- $[9] = pageItemClassName;
117
- $[10] = t1;
118
- $[11] = value;
119
- $[12] = t2;
120
- } else t2 = $[12];
122
+ $[8] = LinkComponent;
123
+ $[9] = linkProps;
124
+ $[10] = pageItemClassName;
125
+ $[11] = t1;
126
+ $[12] = value;
127
+ $[13] = t2;
128
+ } else t2 = $[13];
121
129
  return t2;
122
130
  }
123
131
  let t1;
124
- if ($[13] !== makeClickHandler || $[14] !== value) {
132
+ if ($[14] !== makeClickHandler || $[15] !== value) {
125
133
  t1 = makeClickHandler(value);
126
- $[13] = makeClickHandler;
127
- $[14] = value;
128
- $[15] = t1;
129
- } else t1 = $[15];
134
+ $[14] = makeClickHandler;
135
+ $[15] = value;
136
+ $[16] = t1;
137
+ } else t1 = $[16];
130
138
  let t2;
131
- if ($[16] !== t1 || $[17] !== value) {
139
+ if ($[17] !== t1 || $[18] !== value) {
132
140
  t2 = /* @__PURE__ */ jsx("button", {
133
141
  type: "button",
134
142
  className: "charcoal-pagination-button",
135
143
  onClick: t1,
136
144
  children: value
137
145
  });
138
- $[16] = t1;
139
- $[17] = value;
140
- $[18] = t2;
141
- } else t2 = $[18];
146
+ $[17] = t1;
147
+ $[18] = value;
148
+ $[19] = t2;
149
+ } else t2 = $[19];
142
150
  return t2;
143
151
  }
144
- function Pagination(t0) {
152
+ function Pagination({ page, pageCount, pageRangeDisplayed, size = "M", onChange, makeUrl, component: LinkComponent = "a", linkProps, className, ariaLabelNext = "Next", ariaLabelPrev = "Previous", ...navProps }) {
145
153
  "use memo";
146
- const $ = c(40);
147
- let className;
148
- let linkProps;
149
- let makeUrl;
150
- let navProps;
151
- let onChange;
152
- let page;
153
- let pageCount;
154
- let pageRangeDisplayed;
155
- let t1;
156
- let t2;
157
- let t3;
158
- let t4;
159
- if ($[0] !== t0) {
160
- ({page, pageCount, pageRangeDisplayed, size: t1, onChange, makeUrl, component: t2, linkProps, className, ariaLabelNext: t3, ariaLabelPrev: t4, ...navProps} = t0);
161
- $[0] = t0;
162
- $[1] = className;
163
- $[2] = linkProps;
164
- $[3] = makeUrl;
165
- $[4] = navProps;
166
- $[5] = onChange;
167
- $[6] = page;
168
- $[7] = pageCount;
169
- $[8] = pageRangeDisplayed;
170
- $[9] = t1;
171
- $[10] = t2;
172
- $[11] = t3;
173
- $[12] = t4;
174
- } else {
175
- className = $[1];
176
- linkProps = $[2];
177
- makeUrl = $[3];
178
- navProps = $[4];
179
- onChange = $[5];
180
- page = $[6];
181
- pageCount = $[7];
182
- pageRangeDisplayed = $[8];
183
- t1 = $[9];
184
- t2 = $[10];
185
- t3 = $[11];
186
- t4 = $[12];
187
- }
188
- const size = t1 === void 0 ? "M" : t1;
189
- const LinkComponent = t2 === void 0 ? "a" : t2;
190
- const ariaLabelNext = t3 === void 0 ? "Next" : t3;
191
- const ariaLabelPrev = t4 === void 0 ? "Previous" : t4;
192
154
  const window = usePaginationWindow(page, pageCount, pageRangeDisplayed);
193
155
  const isLinkMode = makeUrl !== void 0;
194
- let t5;
195
- if ($[13] !== onChange) {
196
- t5 = (value) => () => onChange?.(value);
197
- $[13] = onChange;
198
- $[14] = t5;
199
- } else t5 = $[14];
200
- const makeClickHandler = t5;
156
+ const makeClickHandler = (value) => () => onChange?.(value);
201
157
  const classNames = useClassNames("charcoal-pagination", className);
202
- let t6;
203
- if ($[15] !== LinkComponent || $[16] !== isLinkMode || $[17] !== linkProps || $[18] !== makeClickHandler || $[19] !== makeUrl || $[20] !== page || $[21] !== pageCount || $[22] !== size) {
204
- t6 = {
205
- page,
206
- pageCount,
207
- size,
208
- isLinkMode,
209
- makeUrl,
210
- LinkComponent,
211
- makeClickHandler,
212
- linkProps
213
- };
214
- $[15] = LinkComponent;
215
- $[16] = isLinkMode;
216
- $[17] = linkProps;
217
- $[18] = makeClickHandler;
218
- $[19] = makeUrl;
219
- $[20] = page;
220
- $[21] = pageCount;
221
- $[22] = size;
222
- $[23] = t6;
223
- } else t6 = $[23];
224
- const t7 = t6;
225
- let t8;
226
- if ($[24] !== ariaLabelPrev) {
227
- t8 = /* @__PURE__ */ jsx(NavButton, {
228
- direction: "prev",
229
- ariaLabel: ariaLabelPrev
230
- });
231
- $[24] = ariaLabelPrev;
232
- $[25] = t8;
233
- } else t8 = $[25];
234
- let t9;
235
- if ($[26] !== window) {
236
- t9 = window.map(_temp);
237
- $[26] = window;
238
- $[27] = t9;
239
- } else t9 = $[27];
240
- let t10;
241
- if ($[28] !== ariaLabelNext) {
242
- t10 = /* @__PURE__ */ jsx(NavButton, {
243
- direction: "next",
244
- ariaLabel: ariaLabelNext
245
- });
246
- $[28] = ariaLabelNext;
247
- $[29] = t10;
248
- } else t10 = $[29];
249
- let t11;
250
- if ($[30] !== classNames || $[31] !== navProps || $[32] !== size || $[33] !== t10 || $[34] !== t8 || $[35] !== t9) {
251
- t11 = /* @__PURE__ */ jsxs("nav", {
158
+ const contextValue = {
159
+ page,
160
+ pageCount,
161
+ size,
162
+ isLinkMode,
163
+ makeUrl,
164
+ LinkComponent,
165
+ makeClickHandler,
166
+ linkProps
167
+ };
168
+ return /* @__PURE__ */ jsx(PaginationContext.Provider, {
169
+ value: contextValue,
170
+ children: /* @__PURE__ */ jsxs("nav", {
252
171
  "data-size": size,
253
172
  "aria-label": "Pagination",
254
173
  ...navProps,
255
174
  className: classNames,
256
175
  children: [
257
- t8,
258
- t9,
259
- t10
176
+ /* @__PURE__ */ jsx(NavButton, {
177
+ direction: "prev",
178
+ ariaLabel: ariaLabelPrev
179
+ }),
180
+ window.map((p) => /* @__PURE__ */ jsx(PageItem, { value: p }, p)),
181
+ /* @__PURE__ */ jsx(NavButton, {
182
+ direction: "next",
183
+ ariaLabel: ariaLabelNext
184
+ })
260
185
  ]
261
- });
262
- $[30] = classNames;
263
- $[31] = navProps;
264
- $[32] = size;
265
- $[33] = t10;
266
- $[34] = t8;
267
- $[35] = t9;
268
- $[36] = t11;
269
- } else t11 = $[36];
270
- let t12;
271
- if ($[37] !== t11 || $[38] !== t7) {
272
- t12 = /* @__PURE__ */ jsx(PaginationContext.Provider, {
273
- value: t7,
274
- children: t11
275
- });
276
- $[37] = t11;
277
- $[38] = t7;
278
- $[39] = t12;
279
- } else t12 = $[39];
280
- return t12;
281
- }
282
- function _temp(p) {
283
- return /* @__PURE__ */ jsx(PageItem, { value: p }, p);
186
+ })
187
+ });
284
188
  }
285
189
 
286
190
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","names":["usePaginationWindow","useClassNames","IconButton","IconButtonProps","PaginationContext","usePaginationContext","LinkComponentProps","PaginationContextValue","PageRangeDisplayed","Size","NavButtonProps","direction","ariaLabel","NavButton","t0","$","_c","page","pageCount","size","isLinkMode","makeUrl","LinkComponent","makeClickHandler","linkProps","isPrev","targetPage","Math","max","min","disabled","navButtonClassName","className","t1","t2","undefined","t3","component","href","onClick","t4","PageItem","value","pageItemClassName","PaginationCommonProps","pageRangeDisplayed","ariaLabelPrev","ariaLabelNext","NavProps","Omit","React","ComponentPropsWithoutRef","PaginationProps","ElementType","onChange","newPage","T","Pagination","navProps","window","t5","classNames","t6","contextValue","t7","t8","t9","map","_temp","t10","t11","t12","p"],"sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { usePaginationWindow } from './helper'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport {\n PaginationContext,\n usePaginationContext,\n type LinkComponentProps,\n type PaginationContextValue,\n type PageRangeDisplayed,\n type Size,\n} from './PaginationContext'\n\ntype NavButtonProps = {\n direction: 'prev' | 'next'\n ariaLabel: IconButtonProps['aria-label']\n}\n\nfunction NavButton({ direction, ariaLabel }: NavButtonProps) {\n 'use memo'\n const {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n\n const isPrev = direction === 'prev'\n const targetPage = isPrev\n ? Math.max(1, page - 1)\n : Math.min(pageCount, page + 1)\n const disabled = isPrev ? page <= 1 : page >= pageCount\n const navButtonClassName = useClassNames(\n 'charcoal-pagination-nav-button',\n linkProps?.className,\n )\n\n return (\n <IconButton\n icon={isPrev ? '24/Prev' : '24/Next'}\n size={size}\n /* Use data-hidden, not [hidden]: Tailwind preflight's `[hidden] { display: none !important }` would clobber `visibility: hidden` and collapse the layout space. */\n data-hidden={disabled || undefined}\n aria-label={ariaLabel}\n {...(isLinkMode && makeUrl\n ? {\n component: LinkComponent as 'a',\n href: makeUrl(targetPage),\n 'aria-disabled': disabled,\n ...linkProps,\n className: navButtonClassName,\n }\n : {\n disabled,\n onClick: makeClickHandler(targetPage),\n className: navButtonClassName,\n })}\n />\n )\n}\n\nfunction PageItem({ value }: { value: number | string }) {\n 'use memo'\n const {\n page,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n const pageItemClassName = useClassNames(\n 'charcoal-pagination-button',\n linkProps?.className,\n )\n\n // 省略記号\n if (value === '...') {\n return (\n <IconButton\n icon=\"24/Dot\"\n size={size}\n disabled\n className=\"charcoal-pagination-spacer\"\n aria-hidden\n />\n )\n }\n // 現在ページ(クリック不可)\n if (value === page) {\n return (\n <span className=\"charcoal-pagination-button\" aria-current=\"page\">\n {value}\n </span>\n )\n }\n if (typeof value !== 'number') return null\n // リンクモード: ページへのリンク\n if (isLinkMode && makeUrl) {\n return (\n <LinkComponent\n href={makeUrl(value)}\n {...linkProps}\n className={pageItemClassName}\n >\n {value}\n </LinkComponent>\n )\n }\n // ボタンモード: クリックでページ遷移\n return (\n <button\n type=\"button\"\n className=\"charcoal-pagination-button\"\n onClick={makeClickHandler(value)}\n >\n {value}\n </button>\n )\n}\n\ninterface PaginationCommonProps {\n page: number\n pageCount: number\n pageRangeDisplayed?: PageRangeDisplayed\n size?: Size\n ariaLabelPrev?: string\n ariaLabelNext?: string\n}\n\ntype NavProps = Omit<React.ComponentPropsWithoutRef<'nav'>, 'onChange'>\n\n/**\n * Pagination component. Use either `onChange` (button mode) or `makeUrl` (link mode).\n *\n * @example\n * // Button mode - for client-side state\n * <Pagination page={1} pageCount={10} onChange={setPage} />\n *\n * @example\n * // Link mode - for server routing / static pages\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} />\n *\n * @example\n * // Link mode with custom component (e.g. Next.js Link)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} />\n *\n * @example\n * // Link mode with linkProps (e.g. Next.js scroll)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} linkProps={{ scroll: 'marker' }} />\n */\nexport type PaginationProps<T extends React.ElementType = 'a'> =\n PaginationCommonProps &\n NavProps &\n (\n | {\n onChange(newPage: number): void\n makeUrl?: never\n component?: never\n linkProps?: undefined\n }\n | {\n makeUrl(page: number): string\n onChange?: never\n /**\n * The component used for link elements. Receives `href`, `className`, and `children`.\n * @default 'a'\n */\n component?: T\n /**\n * Additional props passed to all link elements (e.g. Next.js Link's scroll, prefetch).\n */\n linkProps?: Omit<\n React.ComponentPropsWithoutRef<T>,\n 'href' | 'children'\n >\n }\n )\n\nexport default function Pagination<T extends React.ElementType = 'a'>({\n page,\n pageCount,\n pageRangeDisplayed,\n size = 'M',\n onChange,\n makeUrl,\n component: LinkComponent = 'a' as T,\n linkProps,\n className,\n ariaLabelNext = 'Next',\n ariaLabelPrev = 'Previous',\n ...navProps\n}: PaginationProps<T>) {\n 'use memo'\n const window = usePaginationWindow(page, pageCount, pageRangeDisplayed)\n const isLinkMode = makeUrl !== undefined\n const makeClickHandler = (value: number) => () => onChange?.(value)\n const classNames = useClassNames('charcoal-pagination', className)\n\n const contextValue = {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n }\n\n return (\n <PaginationContext.Provider\n value={\n contextValue as PaginationContextValue<\n React.ElementType<LinkComponentProps>\n >\n }\n >\n <nav\n data-size={size}\n aria-label=\"Pagination\"\n {...navProps}\n className={classNames}\n >\n <NavButton direction=\"prev\" ariaLabel={ariaLabelPrev} />\n {window.map((p) => (\n <PageItem key={p} value={p} />\n ))}\n <NavButton direction=\"next\" ariaLabel={ariaLabelNext} />\n </nav>\n </PaginationContext.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index2.js","names":["size","ariaLabel","value","pageItemClassName"],"sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { usePaginationWindow } from './helper'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport {\n PaginationContext,\n usePaginationContext,\n type LinkComponentProps,\n type PaginationContextValue,\n type PageRangeDisplayed,\n type Size,\n} from './PaginationContext'\n\ntype NavButtonProps = {\n direction: 'prev' | 'next'\n ariaLabel: IconButtonProps['aria-label']\n}\n\nfunction NavButton({ direction, ariaLabel }: NavButtonProps) {\n 'use memo'\n const {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n\n const isPrev = direction === 'prev'\n const targetPage = isPrev\n ? Math.max(1, page - 1)\n : Math.min(pageCount, page + 1)\n const disabled = isPrev ? page <= 1 : page >= pageCount\n const navButtonClassName = useClassNames(\n 'charcoal-pagination-nav-button',\n linkProps?.className,\n )\n\n return (\n <IconButton\n icon={isPrev ? '24/Prev' : '24/Next'}\n size={size}\n /* Use data-hidden, not [hidden]: Tailwind preflight's `[hidden] { display: none !important }` would clobber `visibility: hidden` and collapse the layout space. */\n data-hidden={disabled || undefined}\n aria-label={ariaLabel}\n {...(isLinkMode && makeUrl\n ? {\n component: LinkComponent as 'a',\n href: makeUrl(targetPage),\n 'aria-disabled': disabled,\n ...linkProps,\n className: navButtonClassName,\n }\n : {\n disabled,\n onClick: makeClickHandler(targetPage),\n className: navButtonClassName,\n })}\n />\n )\n}\n\nfunction PageItem({ value }: { value: number | string }) {\n 'use memo'\n const {\n page,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n } = usePaginationContext()\n const pageItemClassName = useClassNames(\n 'charcoal-pagination-button',\n linkProps?.className,\n )\n\n // 省略記号\n if (value === '...') {\n return (\n <IconButton\n icon=\"24/Dot\"\n size={size}\n disabled\n className=\"charcoal-pagination-spacer\"\n aria-hidden\n />\n )\n }\n // 現在ページ(クリック不可)\n if (value === page) {\n return (\n <span className=\"charcoal-pagination-button\" aria-current=\"page\">\n {value}\n </span>\n )\n }\n if (typeof value !== 'number') return null\n // リンクモード: ページへのリンク\n if (isLinkMode && makeUrl) {\n return (\n <LinkComponent\n href={makeUrl(value)}\n {...linkProps}\n className={pageItemClassName}\n >\n {value}\n </LinkComponent>\n )\n }\n // ボタンモード: クリックでページ遷移\n return (\n <button\n type=\"button\"\n className=\"charcoal-pagination-button\"\n onClick={makeClickHandler(value)}\n >\n {value}\n </button>\n )\n}\n\ninterface PaginationCommonProps {\n page: number\n pageCount: number\n pageRangeDisplayed?: PageRangeDisplayed\n size?: Size\n ariaLabelPrev?: string\n ariaLabelNext?: string\n}\n\ntype NavProps = Omit<React.ComponentPropsWithoutRef<'nav'>, 'onChange'>\n\n/**\n * Pagination component. Use either `onChange` (button mode) or `makeUrl` (link mode).\n *\n * @example\n * // Button mode - for client-side state\n * <Pagination page={1} pageCount={10} onChange={setPage} />\n *\n * @example\n * // Link mode - for server routing / static pages\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} />\n *\n * @example\n * // Link mode with custom component (e.g. Next.js Link)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} />\n *\n * @example\n * // Link mode with linkProps (e.g. Next.js scroll)\n * <Pagination page={1} pageCount={10} makeUrl={(p) => `?page=${p}`} component={Link} linkProps={{ scroll: 'marker' }} />\n */\nexport type PaginationProps<T extends React.ElementType = 'a'> =\n PaginationCommonProps &\n NavProps &\n (\n | {\n onChange(newPage: number): void\n makeUrl?: never\n component?: never\n linkProps?: undefined\n }\n | {\n makeUrl(page: number): string\n onChange?: never\n /**\n * The component used for link elements. Receives `href`, `className`, and `children`.\n * @default 'a'\n */\n component?: T\n /**\n * Additional props passed to all link elements (e.g. Next.js Link's scroll, prefetch).\n */\n linkProps?: Omit<\n React.ComponentPropsWithoutRef<T>,\n 'href' | 'children'\n >\n }\n )\n\nexport default function Pagination<T extends React.ElementType = 'a'>({\n page,\n pageCount,\n pageRangeDisplayed,\n size = 'M',\n onChange,\n makeUrl,\n component: LinkComponent = 'a' as T,\n linkProps,\n className,\n ariaLabelNext = 'Next',\n ariaLabelPrev = 'Previous',\n ...navProps\n}: PaginationProps<T>) {\n 'use memo'\n const window = usePaginationWindow(page, pageCount, pageRangeDisplayed)\n const isLinkMode = makeUrl !== undefined\n const makeClickHandler = (value: number) => () => onChange?.(value)\n const classNames = useClassNames('charcoal-pagination', className)\n\n const contextValue = {\n page,\n pageCount,\n size,\n isLinkMode,\n makeUrl,\n LinkComponent,\n makeClickHandler,\n linkProps,\n }\n\n return (\n <PaginationContext.Provider\n value={\n contextValue as PaginationContextValue<\n React.ElementType<LinkComponentProps>\n >\n }\n >\n <nav\n data-size={size}\n aria-label=\"Pagination\"\n {...navProps}\n className={classNames}\n >\n <NavButton direction=\"prev\" ariaLabel={ariaLabelPrev} />\n {window.map((p) => (\n <PageItem key={p} value={p} />\n ))}\n <NavButton direction=\"next\" ariaLabel={ariaLabelNext} />\n </nav>\n </PaginationContext.Provider>\n )\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ const require_useClassNames = require('../../../_lib/useClassNames.cjs');
4
4
  const require_RadioGroupContext = require('../RadioGroupContext.cjs');
5
5
  require('./index.cjs');
6
6
  let react = require("react");
7
- react = require_runtime.__toESM(react);
7
+ react = require_runtime.__toESM(react, 1);
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
 
10
10
  //#region src/components/Radio/RadioGroup/index.tsx