@tipp/ui 0.1.13 → 0.1.15

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 (235) hide show
  1. package/dist/atoms/index.cjs +89 -0
  2. package/dist/atoms/index.cjs.map +1 -1
  3. package/dist/atoms/index.d.cts +1 -0
  4. package/dist/atoms/index.d.ts +1 -0
  5. package/dist/atoms/index.js +18 -13
  6. package/dist/atoms/pagination.cjs +171 -0
  7. package/dist/atoms/pagination.cjs.map +1 -0
  8. package/dist/atoms/pagination.d.cts +15 -0
  9. package/dist/atoms/pagination.d.ts +15 -0
  10. package/dist/atoms/pagination.js +12 -0
  11. package/dist/atoms/pagination.js.map +1 -0
  12. package/dist/chart/chart.cjs +141 -1
  13. package/dist/chart/chart.cjs.map +1 -1
  14. package/dist/chart/chart.js +141 -1
  15. package/dist/chart/chart.js.map +1 -1
  16. package/dist/chunk-25JUOQDB.js +99 -0
  17. package/dist/chunk-25JUOQDB.js.map +1 -0
  18. package/dist/chunk-34Z5BLSY.js +53 -0
  19. package/dist/chunk-34Z5BLSY.js.map +1 -0
  20. package/dist/chunk-43KEB75Z.js +48 -0
  21. package/dist/chunk-43KEB75Z.js.map +1 -0
  22. package/dist/chunk-4B35RDYG.js +105 -0
  23. package/dist/chunk-4B35RDYG.js.map +1 -0
  24. package/dist/chunk-4GG2MHU6.js +14 -0
  25. package/dist/chunk-4GG2MHU6.js.map +1 -0
  26. package/dist/chunk-4HT57VYU.js +53 -0
  27. package/dist/chunk-4HT57VYU.js.map +1 -0
  28. package/dist/chunk-4OO4WJ62.js +99 -0
  29. package/dist/chunk-4OO4WJ62.js.map +1 -0
  30. package/dist/chunk-4TLMDSTD.js +19 -0
  31. package/dist/chunk-4TLMDSTD.js.map +1 -0
  32. package/dist/chunk-4ULDIHVG.js +74 -0
  33. package/dist/chunk-4ULDIHVG.js.map +1 -0
  34. package/dist/chunk-5EZYZDTY.js +16 -0
  35. package/dist/chunk-5EZYZDTY.js.map +1 -0
  36. package/dist/chunk-5PWUXYGS.js +89 -0
  37. package/dist/chunk-5PWUXYGS.js.map +1 -0
  38. package/dist/chunk-5VZMAR5T.js +104 -0
  39. package/dist/chunk-5VZMAR5T.js.map +1 -0
  40. package/dist/chunk-5VZOJQTC.js +104 -0
  41. package/dist/chunk-5VZOJQTC.js.map +1 -0
  42. package/dist/chunk-63HUW3U7.js +33 -0
  43. package/dist/chunk-63HUW3U7.js.map +1 -0
  44. package/dist/chunk-6J5C2ZMY.js +34 -0
  45. package/dist/chunk-6J5C2ZMY.js.map +1 -0
  46. package/dist/chunk-6NRI5L3V.js +78 -0
  47. package/dist/chunk-6NRI5L3V.js.map +1 -0
  48. package/dist/chunk-73H7QYH7.js +53 -0
  49. package/dist/chunk-73H7QYH7.js.map +1 -0
  50. package/dist/chunk-73IX24MC.js +70 -0
  51. package/dist/chunk-73IX24MC.js.map +1 -0
  52. package/dist/chunk-765CE347.js +25 -0
  53. package/dist/chunk-765CE347.js.map +1 -0
  54. package/dist/chunk-7773FLHD.js +36 -0
  55. package/dist/chunk-7773FLHD.js.map +1 -0
  56. package/dist/chunk-7SNHWKKM.js +79 -0
  57. package/dist/chunk-7SNHWKKM.js.map +1 -0
  58. package/dist/chunk-7TQMGRSX.js +104 -0
  59. package/dist/chunk-7TQMGRSX.js.map +1 -0
  60. package/dist/chunk-7XSCZ3TZ.js +78 -0
  61. package/dist/chunk-7XSCZ3TZ.js.map +1 -0
  62. package/dist/chunk-7YRHC4CN.js +53 -0
  63. package/dist/chunk-7YRHC4CN.js.map +1 -0
  64. package/dist/chunk-AKL5NNKY.js +10 -0
  65. package/dist/chunk-AKL5NNKY.js.map +1 -0
  66. package/dist/chunk-ASNPQFBD.js +48 -0
  67. package/dist/chunk-ASNPQFBD.js.map +1 -0
  68. package/dist/chunk-AUOTMJHE.js +53 -0
  69. package/dist/chunk-AUOTMJHE.js.map +1 -0
  70. package/dist/chunk-BY4LHM4Q.js +104 -0
  71. package/dist/chunk-BY4LHM4Q.js.map +1 -0
  72. package/dist/chunk-COPG7557.js +74 -0
  73. package/dist/chunk-COPG7557.js.map +1 -0
  74. package/dist/chunk-DGVQ2ZWQ.js +78 -0
  75. package/dist/chunk-DGVQ2ZWQ.js.map +1 -0
  76. package/dist/chunk-DO3CRDO5.js +16 -0
  77. package/dist/chunk-DO3CRDO5.js.map +1 -0
  78. package/dist/chunk-DY4YGLT7.js +64 -0
  79. package/dist/chunk-DY4YGLT7.js.map +1 -0
  80. package/dist/chunk-EQSHWODZ.js +83 -0
  81. package/dist/chunk-EQSHWODZ.js.map +1 -0
  82. package/dist/chunk-EZLDVQTE.js +105 -0
  83. package/dist/chunk-EZLDVQTE.js.map +1 -0
  84. package/dist/chunk-F27JTAH5.js +104 -0
  85. package/dist/chunk-F27JTAH5.js.map +1 -0
  86. package/dist/chunk-F62XNZAQ.js +79 -0
  87. package/dist/chunk-F62XNZAQ.js.map +1 -0
  88. package/dist/chunk-FADYQNM5.js +105 -0
  89. package/dist/chunk-FADYQNM5.js.map +1 -0
  90. package/dist/chunk-FV6ODG33.js +99 -0
  91. package/dist/chunk-FV6ODG33.js.map +1 -0
  92. package/dist/chunk-GDD4WOSQ.js +79 -0
  93. package/dist/chunk-GDD4WOSQ.js.map +1 -0
  94. package/dist/chunk-GMVRXUA5.js +105 -0
  95. package/dist/chunk-GMVRXUA5.js.map +1 -0
  96. package/dist/chunk-GPSYMAEA.js +44 -0
  97. package/dist/chunk-GPSYMAEA.js.map +1 -0
  98. package/dist/chunk-H4VSM2HG.js +53 -0
  99. package/dist/chunk-H4VSM2HG.js.map +1 -0
  100. package/dist/chunk-ID3AYJWG.js +25 -0
  101. package/dist/chunk-ID3AYJWG.js.map +1 -0
  102. package/dist/chunk-IZTX3K2O.js +16 -0
  103. package/dist/chunk-IZTX3K2O.js.map +1 -0
  104. package/dist/chunk-J3H7Y7UC.js +63 -0
  105. package/dist/chunk-J3H7Y7UC.js.map +1 -0
  106. package/dist/chunk-JDO4EFW6.js +36 -0
  107. package/dist/chunk-JDO4EFW6.js.map +1 -0
  108. package/dist/chunk-JYGJQEUF.js +105 -0
  109. package/dist/chunk-JYGJQEUF.js.map +1 -0
  110. package/dist/chunk-KOJ5QZDP.js +70 -0
  111. package/dist/chunk-KOJ5QZDP.js.map +1 -0
  112. package/dist/chunk-L42A73MS.js +105 -0
  113. package/dist/chunk-L42A73MS.js.map +1 -0
  114. package/dist/chunk-LIB62T5J.js +47 -0
  115. package/dist/chunk-LIB62T5J.js.map +1 -0
  116. package/dist/chunk-LSFVLDB7.js +78 -0
  117. package/dist/chunk-LSFVLDB7.js.map +1 -0
  118. package/dist/chunk-M64QWCP6.js +33 -0
  119. package/dist/chunk-M64QWCP6.js.map +1 -0
  120. package/dist/chunk-MMAV5BRZ.js +31 -0
  121. package/dist/chunk-MMAV5BRZ.js.map +1 -0
  122. package/dist/chunk-MNARMSW4.js +34 -0
  123. package/dist/chunk-MNARMSW4.js.map +1 -0
  124. package/dist/chunk-MXPBICKP.js +64 -0
  125. package/dist/chunk-MXPBICKP.js.map +1 -0
  126. package/dist/chunk-N6CDD6IJ.js +19 -0
  127. package/dist/chunk-N6CDD6IJ.js.map +1 -0
  128. package/dist/chunk-NH7JN26K.js +102 -0
  129. package/dist/chunk-NH7JN26K.js.map +1 -0
  130. package/dist/chunk-NLXYFCKS.js +37 -0
  131. package/dist/chunk-NLXYFCKS.js.map +1 -0
  132. package/dist/chunk-O3QPGPOL.js +104 -0
  133. package/dist/chunk-O3QPGPOL.js.map +1 -0
  134. package/dist/chunk-OADJNXWE.js +84 -0
  135. package/dist/chunk-OADJNXWE.js.map +1 -0
  136. package/dist/chunk-OKL7V4TQ.js +105 -0
  137. package/dist/chunk-OKL7V4TQ.js.map +1 -0
  138. package/dist/chunk-OOQ77XH7.js +70 -0
  139. package/dist/chunk-OOQ77XH7.js.map +1 -0
  140. package/dist/chunk-P3DQHJ5L.js +104 -0
  141. package/dist/chunk-P3DQHJ5L.js.map +1 -0
  142. package/dist/chunk-P6MKKAXY.js +10 -0
  143. package/dist/chunk-P6MKKAXY.js.map +1 -0
  144. package/dist/chunk-PCRBWJP6.js +83 -0
  145. package/dist/chunk-PCRBWJP6.js.map +1 -0
  146. package/dist/chunk-PIYQL4UZ.js +10 -0
  147. package/dist/chunk-PIYQL4UZ.js.map +1 -0
  148. package/dist/chunk-PZEUMNOO.js +67 -0
  149. package/dist/chunk-PZEUMNOO.js.map +1 -0
  150. package/dist/chunk-QQ5HMU6N.js +105 -0
  151. package/dist/chunk-QQ5HMU6N.js.map +1 -0
  152. package/dist/chunk-R3XICZUT.js +47 -0
  153. package/dist/chunk-R3XICZUT.js.map +1 -0
  154. package/dist/chunk-RAE3NLOB.js +10 -0
  155. package/dist/chunk-RAE3NLOB.js.map +1 -0
  156. package/dist/chunk-RC6QQA2Z.js +67 -0
  157. package/dist/chunk-RC6QQA2Z.js.map +1 -0
  158. package/dist/chunk-RH4SDRZR.js +10 -0
  159. package/dist/chunk-RH4SDRZR.js.map +1 -0
  160. package/dist/chunk-RWTDXRZR.js +104 -0
  161. package/dist/chunk-RWTDXRZR.js.map +1 -0
  162. package/dist/chunk-RZB5BM7H.js +104 -0
  163. package/dist/chunk-RZB5BM7H.js.map +1 -0
  164. package/dist/chunk-SQ5HD7LD.js +1 -0
  165. package/dist/chunk-SQ5HD7LD.js.map +1 -0
  166. package/dist/chunk-TYMXQHTE.js +104 -0
  167. package/dist/chunk-TYMXQHTE.js.map +1 -0
  168. package/dist/chunk-U67DOL7M.js +78 -0
  169. package/dist/chunk-U67DOL7M.js.map +1 -0
  170. package/dist/chunk-U6VZQBO4.js +79 -0
  171. package/dist/chunk-U6VZQBO4.js.map +1 -0
  172. package/dist/chunk-UKHAZA3G.js +67 -0
  173. package/dist/chunk-UKHAZA3G.js.map +1 -0
  174. package/dist/chunk-UTRMWCBR.js +79 -0
  175. package/dist/chunk-UTRMWCBR.js.map +1 -0
  176. package/dist/chunk-UXIPLWKE.js +105 -0
  177. package/dist/chunk-UXIPLWKE.js.map +1 -0
  178. package/dist/chunk-VGDUXF6J.js +70 -0
  179. package/dist/chunk-VGDUXF6J.js.map +1 -0
  180. package/dist/chunk-VGTQYT4T.js +33 -0
  181. package/dist/chunk-VGTQYT4T.js.map +1 -0
  182. package/dist/chunk-VS6V7XPO.js +79 -0
  183. package/dist/chunk-VS6V7XPO.js.map +1 -0
  184. package/dist/chunk-VWOMABG2.js +119 -0
  185. package/dist/chunk-VWOMABG2.js.map +1 -0
  186. package/dist/chunk-WMNW2JCV.js +10 -0
  187. package/dist/chunk-WMNW2JCV.js.map +1 -0
  188. package/dist/chunk-X3QZU4BF.js +67 -0
  189. package/dist/chunk-X3QZU4BF.js.map +1 -0
  190. package/dist/chunk-Y3WJXHKK.js +70 -0
  191. package/dist/chunk-Y3WJXHKK.js.map +1 -0
  192. package/dist/chunk-Y4SUCU7P.js +70 -0
  193. package/dist/chunk-Y4SUCU7P.js.map +1 -0
  194. package/dist/chunk-YJZYXEDZ.js +37 -0
  195. package/dist/chunk-YJZYXEDZ.js.map +1 -0
  196. package/dist/chunk-YN2Q37JR.js +15 -0
  197. package/dist/chunk-YN2Q37JR.js.map +1 -0
  198. package/dist/chunk-YSIYF52H.js +104 -0
  199. package/dist/chunk-YSIYF52H.js.map +1 -0
  200. package/dist/chunk-Z52HTVUL.js +104 -0
  201. package/dist/chunk-Z52HTVUL.js.map +1 -0
  202. package/dist/chunk-ZFOBOYTS.js +70 -0
  203. package/dist/chunk-ZFOBOYTS.js.map +1 -0
  204. package/dist/hooks/use-pagination.cjs +41 -0
  205. package/dist/hooks/use-pagination.cjs.map +1 -0
  206. package/dist/hooks/use-pagination.d.cts +2 -0
  207. package/dist/hooks/use-pagination.d.ts +2 -0
  208. package/dist/hooks/use-pagination.js +8 -0
  209. package/dist/hooks/use-pagination.js.map +1 -0
  210. package/dist/icon.cjs +4 -0
  211. package/dist/icon.cjs.map +1 -1
  212. package/dist/icon.d.cts +1 -1
  213. package/dist/icon.d.ts +1 -1
  214. package/dist/icon.js +5 -1
  215. package/dist/index.cjs +128 -38
  216. package/dist/index.cjs.map +1 -1
  217. package/dist/index.css +15 -0
  218. package/dist/index.d.cts +2 -1
  219. package/dist/index.d.ts +2 -1
  220. package/dist/index.js +23 -15
  221. package/dist/molecules/expand-table/index.cjs +42 -33
  222. package/dist/molecules/expand-table/index.cjs.map +1 -1
  223. package/dist/molecules/expand-table/index.js +8 -6
  224. package/dist/molecules/expand-table/row.cjs +18 -9
  225. package/dist/molecules/expand-table/row.cjs.map +1 -1
  226. package/dist/molecules/expand-table/row.js +8 -6
  227. package/dist/molecules/index.cjs +42 -33
  228. package/dist/molecules/index.cjs.map +1 -1
  229. package/dist/molecules/index.js +8 -6
  230. package/package.json +1 -1
  231. package/src/atoms/index.ts +2 -0
  232. package/src/atoms/pagination.tsx +108 -0
  233. package/src/chart/chart-theme.json +136 -0
  234. package/src/chart/chart.tsx +2 -1
  235. package/src/icon.ts +2 -0
@@ -87,6 +87,7 @@ __export(atoms_exports, {
87
87
  Inset: () => import_themes25.Inset,
88
88
  Kbd: () => import_themes26.Kbd,
89
89
  Link: () => Link,
90
+ Pagination: () => Pagination,
90
91
  Popover: () => import_themes29.Popover,
91
92
  Progress: () => import_themes30.Progress,
92
93
  Quote: () => import_themes31.Quote,
@@ -466,6 +467,93 @@ function Collapse(props) {
466
467
 
467
468
  // src/atoms/spinner.tsx
468
469
  var import_themes49 = require("@radix-ui/themes");
470
+
471
+ // src/atoms/pagination.tsx
472
+ var import_react11 = require("react");
473
+
474
+ // src/icon.ts
475
+ var import_react_icons = require("@radix-ui/react-icons");
476
+
477
+ // src/atoms/pagination.tsx
478
+ var import_jsx_runtime11 = require("react/jsx-runtime");
479
+ function Pagination(props) {
480
+ const { onChange, count = 0 } = props;
481
+ const siblingCount = 2;
482
+ const [page, setPage] = (0, import_react11.useState)(() => props.page || props.defaultPage || 1);
483
+ const visibleItems = (0, import_react11.useMemo)(() => {
484
+ let start = Math.max(1, page - siblingCount);
485
+ let end = Math.min(count, page + siblingCount);
486
+ if (page - siblingCount <= 0 && end < count) {
487
+ end = Math.min(count, end + Math.abs(page - siblingCount) + 1);
488
+ } else if (page + siblingCount > count && start > 1) {
489
+ start = Math.max(1, start - (page + siblingCount - count));
490
+ }
491
+ return Array.from({ length: end - start + 1 }, (_, i) => i + start);
492
+ }, [count, page]);
493
+ (0, import_react11.useEffect)(() => {
494
+ onChange == null ? void 0 : onChange(page);
495
+ }, [onChange, page]);
496
+ (0, import_react11.useEffect)(() => {
497
+ if (props.page) {
498
+ setPage(props.page);
499
+ }
500
+ }, [props.page]);
501
+ const onClickPrev = (0, import_react11.useCallback)(() => {
502
+ setPage((prev) => Math.max(1, prev - 1));
503
+ }, []);
504
+ const onClickNext = (0, import_react11.useCallback)(() => {
505
+ setPage((prev) => Math.min(count, prev + 1));
506
+ }, [count]);
507
+ const moveButtonProps = {
508
+ variant: "ghost",
509
+ size: "3",
510
+ style: { borderRadius: "50%" }
511
+ };
512
+ const iconSize = {
513
+ height: 24,
514
+ width: 24
515
+ };
516
+ const prevDisabled = (0, import_react11.useMemo)(() => {
517
+ return page - siblingCount <= 1;
518
+ }, [page]);
519
+ const nextDisabled = (0, import_react11.useMemo)(() => {
520
+ return page + siblingCount >= count;
521
+ }, [count, page]);
522
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes19.Flex, { align: "center", className: "tipp-pagination", gap: "4", children: [
523
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
524
+ import_themes24.IconButton,
525
+ __spreadProps(__spreadValues({
526
+ disabled: prevDisabled,
527
+ onClick: onClickPrev
528
+ }, moveButtonProps), {
529
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_icons.ChevronLeftIcon, __spreadValues({}, iconSize))
530
+ })
531
+ ),
532
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes19.Flex, { gap: "1", children: visibleItems.map((item) => {
533
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
534
+ "button",
535
+ {
536
+ className: `page-button ${item === page ? "active" : ""}`,
537
+ onClick: () => {
538
+ setPage(item);
539
+ },
540
+ type: "button",
541
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typo, { variant: "body", children: item })
542
+ },
543
+ item
544
+ );
545
+ }) }),
546
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
547
+ import_themes24.IconButton,
548
+ __spreadProps(__spreadValues({
549
+ disabled: nextDisabled,
550
+ onClick: onClickNext
551
+ }, moveButtonProps), {
552
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_icons.ChevronRightIcon, __spreadValues({}, iconSize))
553
+ })
554
+ )
555
+ ] });
556
+ }
469
557
  // Annotate the CommonJS export names for ESM import in node:
470
558
  0 && (module.exports = {
471
559
  AlertDialog,
@@ -496,6 +584,7 @@ var import_themes49 = require("@radix-ui/themes");
496
584
  Inset,
497
585
  Kbd,
498
586
  Link,
587
+ Pagination,
499
588
  Popover,
500
589
  Progress,
501
590
  Quote,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/atoms/index.ts","../../src/atoms/alert-dialog.tsx","../../src/atoms/aspect-ratio.tsx","../../src/atoms/avatar.tsx","../../src/atoms/badge.tsx","../../src/atoms/blockquote.tsx","../../src/atoms/box.tsx","../../src/atoms/button.tsx","../../src/atoms/call-out.tsx","../../src/atoms/card.tsx","../../src/atoms/check-box.tsx","../../src/atoms/check-box-card.tsx","../../src/atoms/check-box-group.tsx","../../src/atoms/code.tsx","../../src/atoms/container.tsx","../../src/atoms/data-list.tsx","../../src/atoms/date-picker/index.tsx","../../src/atoms/dialog.tsx","../../src/atoms/dropdown-menu.tsx","../../src/atoms/em.tsx","../../src/atoms/flex.tsx","../../src/atoms/grid.tsx","../../src/atoms/heading.tsx","../../src/atoms/hover-card.tsx","../../src/atoms/icon-button.tsx","../../src/atoms/inset.tsx","../../src/atoms/kbd.tsx","../../src/atoms/link.tsx","../../src/atoms/popover.tsx","../../src/atoms/progress.tsx","../../src/atoms/quote.tsx","../../src/atoms/radio.tsx","../../src/atoms/radio-cards.tsx","../../src/atoms/radio-group.tsx","../../src/atoms/scroll-area.tsx","../../src/atoms/section.tsx","../../src/atoms/segmented-control.tsx","../../src/atoms/select.tsx","../../src/atoms/separator.tsx","../../src/atoms/skeleton.tsx","../../src/atoms/strong.tsx","../../src/atoms/switch.tsx","../../src/atoms/tab-nav.tsx","../../src/atoms/tabs.tsx","../../src/atoms/text-area.tsx","../../src/atoms/typo.tsx","../../src/atoms/text-field.tsx","../../src/atoms/tooltip.tsx","../../src/atoms/collapse.tsx","../../src/atoms/spinner.tsx"],"sourcesContent":["export * from './alert-dialog';\nexport * from './aspect-ratio';\nexport * from './avatar';\nexport * from './badge';\nexport * from './blockquote';\nexport * from './box';\nexport * from './button';\nexport * from './call-out';\nexport * from './card';\nexport * from './check-box';\nexport * from './check-box-card';\nexport * from './check-box-group';\nexport * from './code';\nexport * from './container';\nexport * from './data-list';\nexport * from './date-picker';\nexport * from './dialog';\nexport * from './dropdown-menu';\nexport * from './em';\nexport * from './flex';\nexport * from './grid';\nexport * from './heading';\nexport * from './hover-card';\nexport * from './icon-button';\nexport * from './inset';\nexport * from './kbd';\nexport * from './link';\nexport * from './popover';\nexport * from './progress';\nexport * from './quote';\nexport * from './radio';\nexport * from './radio-cards';\nexport * from './radio-group';\nexport * from './scroll-area';\nexport * from './section';\nexport * from './segmented-control';\nexport * from './select';\nexport * from './separator';\nexport * from './skeleton';\nexport * from './strong';\nexport * from './switch';\nexport * from './tab-nav';\nexport * from './tabs';\nexport * from './text-area';\nexport * from './typo';\nexport * from './text-field';\nexport * from './tooltip';\nexport * from './collapse';\nexport * from './spinner';\n","export { AlertDialog } from '@radix-ui/themes';\n","export { AspectRatio } from '@radix-ui/themes';\n","import {\n Avatar as RadixAvatar,\n type AvatarProps as RadixAvatarProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type AvatarProps = Omit<RadixAvatarProps, 'size'> & {\n size?: 'small' | 'medium' | 'large' | 'full';\n};\n\nexport const Avatar = forwardRef<HTMLImageElement, AvatarProps>(\n (props: AvatarProps, ref): React.ReactNode => {\n const { children, size, variant = 'soft', ...rest } = props;\n const radixSize = useMemo<RadixAvatarProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n case 'full':\n return '4';\n default:\n return size;\n }\n }, [size]);\n\n return (\n <RadixAvatar {...rest} ref={ref} size={radixSize} variant={variant}>\n {children}\n </RadixAvatar>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color'> & {\n size: 'small' | 'large';\n color: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactNode => {\n const { size, color, ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Blockquote, type BlockquoteProps } from '@radix-ui/themes';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import {\n Button as RadixButton,\n type ButtonProps as RadixButtonProps,\n} from '@radix-ui/themes';\nimport React, { forwardRef, useMemo } from 'react';\n\nexport type ButtonProps = Omit<RadixButtonProps, 'size'> & {\n size: 'small' | 'medium' | 'large';\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '2';\n case 'medium':\n return '3';\n case 'large':\n return '4';\n default:\n return '3';\n }\n }, [size]);\n\n return <RadixButton {...restProps} ref={ref} size={radixSize} />;\n }\n);\n\nButton.displayName = 'Button';\n","export { Callout } from '@radix-ui/themes';\n","export { Card, type CardProps } from '@radix-ui/themes';\n","import {\n Checkbox as RadixCheckbox,\n type CheckboxProps as RadixCheckboxProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type CheckboxProps = Omit<RadixCheckboxProps, 'size'> & {\n size?: 'small' | 'medium' | 'large';\n};\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (props, ref): React.ReactNode => {\n const { size = 'medium', ...rest } = props;\n\n const radixSize = useMemo<RadixCheckboxProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n }\n }, [size]);\n\n return <RadixCheckbox {...rest} ref={ref} size={radixSize} />;\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n","export { CheckboxCards } from '@radix-ui/themes';\n","import { CheckboxGroup as RadixCheckboxGroup } from '@radix-ui/themes';\nimport React, { forwardRef, useMemo } from 'react';\n\ntype RadixCheckboxGroupProps = React.ComponentPropsWithoutRef<\n typeof RadixCheckboxGroup.Root\n>;\ntype CheckboxGroupProps = Omit<RadixCheckboxGroupProps, 'size'> & {\n size: 'small' | 'medium' | 'large';\n};\n\nconst Root = forwardRef<HTMLDivElement, CheckboxGroupProps>((props, ref) => {\n const { children, size, ...rest } = props;\n\n const groupSize = useMemo<RadixCheckboxGroupProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'large':\n return '3';\n case 'medium':\n default:\n return '2';\n }\n }, [size]);\n\n return (\n <RadixCheckboxGroup.Root {...rest} ref={ref} size={groupSize}>\n {children}\n </RadixCheckboxGroup.Root>\n );\n});\n\nRoot.displayName = 'CheckboxGroup.Root';\n\nexport const CheckboxGroup = {\n Root,\n Item: RadixCheckboxGroup.Item,\n};\n","export { Code, type CodeProps } from '@radix-ui/themes';\n","export { Container, type ContainerProps } from '@radix-ui/themes';\n","export { DataList } from '@radix-ui/themes';\n","import type { ElementRef } from 'react';\nimport React, { forwardRef } from 'react';\nimport type { DatePickerProps as ReactDatePickerProps } from 'react-datepicker';\nimport ReactDatePicker from 'react-datepicker';\n\ntype DatePickerProps = ReactDatePickerProps;\ntype DatePickerRef = ElementRef<typeof ReactDatePicker>;\n\nconst DatePicker = forwardRef<DatePickerRef, DatePickerProps>(\n (props: DatePickerProps, ref): React.ReactNode => {\n return (\n <ReactDatePicker\n {...props}\n // calendarClassName=\"tipp_datepicker__calendar\"\n open\n ref={ref}\n wrapperClassName=\"tipp_datePicker\"\n />\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\nexport { DatePicker, type DatePickerProps };\n","export { Dialog } from '@radix-ui/themes';\n","export { DropdownMenu } from '@radix-ui/themes';\n","export { Em, type EmProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'subtitle1' | 'heading1' | 'heading2' | 'heading3';\n};\n\nexport function Heading(props: HeadingProps): React.ReactNode {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'subtitle1':\n return '4';\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { HoverCard } from '@radix-ui/themes';\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n","export { Inset, type InsetProps } from '@radix-ui/themes';\n","export { Kbd, type KbdProps } from '@radix-ui/themes';\n","import {\n Link as RadixLink,\n type LinkProps as RadixLinkProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type LinkProps = RadixLinkProps & {\n variant?: 'caption' | 'body' | 'subtitle';\n};\n\nexport function Link(props: LinkProps): React.ReactNode {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixLinkProps['size']>(() => {\n switch (variant) {\n case 'caption':\n return '1';\n case 'body':\n return '2';\n case 'subtitle':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixLink {...rest} size={radixSize}>\n {children}\n </RadixLink>\n );\n}\n","export { Popover } from '@radix-ui/themes';\n","export { Progress, type ProgressProps } from '@radix-ui/themes';\n","export { Quote, type QuoteProps } from '@radix-ui/themes';\n","export { Radio, type RadioProps } from '@radix-ui/themes';\n","export { RadioCards } from '@radix-ui/themes';\n","export { RadioGroup } from '@radix-ui/themes';\n","export { ScrollArea, type ScrollAreaProps } from '@radix-ui/themes';\n","export { Section, type SectionProps } from '@radix-ui/themes';\n","export { SegmentedControl } from '@radix-ui/themes';\n","export { Select } from '@radix-ui/themes';\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","export { Skeleton, type SkeletonProps } from '@radix-ui/themes';\n","export { Strong, type StrongProps } from '@radix-ui/themes';\n","export { Switch, type SwitchProps } from '@radix-ui/themes';\n","export { TabNav } from '@radix-ui/themes';\n","export { Tabs } from '@radix-ui/themes';\n","export { TextArea, type TextAreaProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport function Typo(props: TypoProps): React.ReactNode {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n return '2';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} size={radixSize}>\n {children}\n </RadixText>\n );\n}\n","export { TextField } from '@radix-ui/themes';\n","export { Tooltip, type TooltipProps } from '@radix-ui/themes';\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open ? `${ref.current.scrollHeight}px` : '0';\n }, [open]);\n\n return (\n <div className=\"collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n","export { Spinner, type SpinnerProps } from '@radix-ui/themes';\n"],"mappings":"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","names":["Heading","import_themes","import_themes","RadixAvatar","import_themes","import_react","import_jsx_runtime","RadixBadge","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixButton","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixCheckbox","import_themes","import_themes","import_react","import_jsx_runtime","RadixCheckboxGroup","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","ReactDatePicker","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixLink","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_themes","import_themes","import_react","import_jsx_runtime","import_themes"]}
1
+ {"version":3,"sources":["../../src/atoms/index.ts","../../src/atoms/alert-dialog.tsx","../../src/atoms/aspect-ratio.tsx","../../src/atoms/avatar.tsx","../../src/atoms/badge.tsx","../../src/atoms/blockquote.tsx","../../src/atoms/box.tsx","../../src/atoms/button.tsx","../../src/atoms/call-out.tsx","../../src/atoms/card.tsx","../../src/atoms/check-box.tsx","../../src/atoms/check-box-card.tsx","../../src/atoms/check-box-group.tsx","../../src/atoms/code.tsx","../../src/atoms/container.tsx","../../src/atoms/data-list.tsx","../../src/atoms/date-picker/index.tsx","../../src/atoms/dialog.tsx","../../src/atoms/dropdown-menu.tsx","../../src/atoms/em.tsx","../../src/atoms/flex.tsx","../../src/atoms/grid.tsx","../../src/atoms/heading.tsx","../../src/atoms/hover-card.tsx","../../src/atoms/icon-button.tsx","../../src/atoms/inset.tsx","../../src/atoms/kbd.tsx","../../src/atoms/link.tsx","../../src/atoms/popover.tsx","../../src/atoms/progress.tsx","../../src/atoms/quote.tsx","../../src/atoms/radio.tsx","../../src/atoms/radio-cards.tsx","../../src/atoms/radio-group.tsx","../../src/atoms/scroll-area.tsx","../../src/atoms/section.tsx","../../src/atoms/segmented-control.tsx","../../src/atoms/select.tsx","../../src/atoms/separator.tsx","../../src/atoms/skeleton.tsx","../../src/atoms/strong.tsx","../../src/atoms/switch.tsx","../../src/atoms/tab-nav.tsx","../../src/atoms/tabs.tsx","../../src/atoms/text-area.tsx","../../src/atoms/typo.tsx","../../src/atoms/text-field.tsx","../../src/atoms/tooltip.tsx","../../src/atoms/collapse.tsx","../../src/atoms/spinner.tsx","../../src/atoms/pagination.tsx","../../src/icon.ts"],"sourcesContent":["export * from './alert-dialog';\nexport * from './aspect-ratio';\nexport * from './avatar';\nexport * from './badge';\nexport * from './blockquote';\nexport * from './box';\nexport * from './button';\nexport * from './call-out';\nexport * from './card';\nexport * from './check-box';\nexport * from './check-box-card';\nexport * from './check-box-group';\nexport * from './code';\nexport * from './container';\nexport * from './data-list';\nexport * from './date-picker';\nexport * from './dialog';\nexport * from './dropdown-menu';\nexport * from './em';\nexport * from './flex';\nexport * from './grid';\nexport * from './heading';\nexport * from './hover-card';\nexport * from './icon-button';\nexport * from './inset';\nexport * from './kbd';\nexport * from './link';\nexport * from './popover';\nexport * from './progress';\nexport * from './quote';\nexport * from './radio';\nexport * from './radio-cards';\nexport * from './radio-group';\nexport * from './scroll-area';\nexport * from './section';\nexport * from './segmented-control';\nexport * from './select';\nexport * from './separator';\nexport * from './skeleton';\nexport * from './strong';\nexport * from './switch';\nexport * from './tab-nav';\nexport * from './tabs';\nexport * from './text-area';\nexport * from './typo';\nexport * from './text-field';\nexport * from './tooltip';\nexport * from './collapse';\nexport * from './spinner';\n\nexport * from './pagination';\n","export { AlertDialog } from '@radix-ui/themes';\n","export { AspectRatio } from '@radix-ui/themes';\n","import {\n Avatar as RadixAvatar,\n type AvatarProps as RadixAvatarProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type AvatarProps = Omit<RadixAvatarProps, 'size'> & {\n size?: 'small' | 'medium' | 'large' | 'full';\n};\n\nexport const Avatar = forwardRef<HTMLImageElement, AvatarProps>(\n (props: AvatarProps, ref): React.ReactNode => {\n const { children, size, variant = 'soft', ...rest } = props;\n const radixSize = useMemo<RadixAvatarProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n case 'full':\n return '4';\n default:\n return size;\n }\n }, [size]);\n\n return (\n <RadixAvatar {...rest} ref={ref} size={radixSize} variant={variant}>\n {children}\n </RadixAvatar>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color'> & {\n size: 'small' | 'large';\n color: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactNode => {\n const { size, color, ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Blockquote, type BlockquoteProps } from '@radix-ui/themes';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import {\n Button as RadixButton,\n type ButtonProps as RadixButtonProps,\n} from '@radix-ui/themes';\nimport React, { forwardRef, useMemo } from 'react';\n\nexport type ButtonProps = Omit<RadixButtonProps, 'size'> & {\n size: 'small' | 'medium' | 'large';\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '2';\n case 'medium':\n return '3';\n case 'large':\n return '4';\n default:\n return '3';\n }\n }, [size]);\n\n return <RadixButton {...restProps} ref={ref} size={radixSize} />;\n }\n);\n\nButton.displayName = 'Button';\n","export { Callout } from '@radix-ui/themes';\n","export { Card, type CardProps } from '@radix-ui/themes';\n","import {\n Checkbox as RadixCheckbox,\n type CheckboxProps as RadixCheckboxProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type CheckboxProps = Omit<RadixCheckboxProps, 'size'> & {\n size?: 'small' | 'medium' | 'large';\n};\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (props, ref): React.ReactNode => {\n const { size = 'medium', ...rest } = props;\n\n const radixSize = useMemo<RadixCheckboxProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n }\n }, [size]);\n\n return <RadixCheckbox {...rest} ref={ref} size={radixSize} />;\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n","export { CheckboxCards } from '@radix-ui/themes';\n","import { CheckboxGroup as RadixCheckboxGroup } from '@radix-ui/themes';\nimport React, { forwardRef, useMemo } from 'react';\n\ntype RadixCheckboxGroupProps = React.ComponentPropsWithoutRef<\n typeof RadixCheckboxGroup.Root\n>;\ntype CheckboxGroupProps = Omit<RadixCheckboxGroupProps, 'size'> & {\n size: 'small' | 'medium' | 'large';\n};\n\nconst Root = forwardRef<HTMLDivElement, CheckboxGroupProps>((props, ref) => {\n const { children, size, ...rest } = props;\n\n const groupSize = useMemo<RadixCheckboxGroupProps['size']>(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'large':\n return '3';\n case 'medium':\n default:\n return '2';\n }\n }, [size]);\n\n return (\n <RadixCheckboxGroup.Root {...rest} ref={ref} size={groupSize}>\n {children}\n </RadixCheckboxGroup.Root>\n );\n});\n\nRoot.displayName = 'CheckboxGroup.Root';\n\nexport const CheckboxGroup = {\n Root,\n Item: RadixCheckboxGroup.Item,\n};\n","export { Code, type CodeProps } from '@radix-ui/themes';\n","export { Container, type ContainerProps } from '@radix-ui/themes';\n","export { DataList } from '@radix-ui/themes';\n","import type { ElementRef } from 'react';\nimport React, { forwardRef } from 'react';\nimport type { DatePickerProps as ReactDatePickerProps } from 'react-datepicker';\nimport ReactDatePicker from 'react-datepicker';\n\ntype DatePickerProps = ReactDatePickerProps;\ntype DatePickerRef = ElementRef<typeof ReactDatePicker>;\n\nconst DatePicker = forwardRef<DatePickerRef, DatePickerProps>(\n (props: DatePickerProps, ref): React.ReactNode => {\n return (\n <ReactDatePicker\n {...props}\n // calendarClassName=\"tipp_datepicker__calendar\"\n open\n ref={ref}\n wrapperClassName=\"tipp_datePicker\"\n />\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\nexport { DatePicker, type DatePickerProps };\n","export { Dialog } from '@radix-ui/themes';\n","export { DropdownMenu } from '@radix-ui/themes';\n","export { Em, type EmProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'subtitle1' | 'heading1' | 'heading2' | 'heading3';\n};\n\nexport function Heading(props: HeadingProps): React.ReactNode {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'subtitle1':\n return '4';\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { HoverCard } from '@radix-ui/themes';\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n","export { Inset, type InsetProps } from '@radix-ui/themes';\n","export { Kbd, type KbdProps } from '@radix-ui/themes';\n","import {\n Link as RadixLink,\n type LinkProps as RadixLinkProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type LinkProps = RadixLinkProps & {\n variant?: 'caption' | 'body' | 'subtitle';\n};\n\nexport function Link(props: LinkProps): React.ReactNode {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixLinkProps['size']>(() => {\n switch (variant) {\n case 'caption':\n return '1';\n case 'body':\n return '2';\n case 'subtitle':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixLink {...rest} size={radixSize}>\n {children}\n </RadixLink>\n );\n}\n","export { Popover } from '@radix-ui/themes';\n","export { Progress, type ProgressProps } from '@radix-ui/themes';\n","export { Quote, type QuoteProps } from '@radix-ui/themes';\n","export { Radio, type RadioProps } from '@radix-ui/themes';\n","export { RadioCards } from '@radix-ui/themes';\n","export { RadioGroup } from '@radix-ui/themes';\n","export { ScrollArea, type ScrollAreaProps } from '@radix-ui/themes';\n","export { Section, type SectionProps } from '@radix-ui/themes';\n","export { SegmentedControl } from '@radix-ui/themes';\n","export { Select } from '@radix-ui/themes';\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","export { Skeleton, type SkeletonProps } from '@radix-ui/themes';\n","export { Strong, type StrongProps } from '@radix-ui/themes';\n","export { Switch, type SwitchProps } from '@radix-ui/themes';\n","export { TabNav } from '@radix-ui/themes';\n","export { Tabs } from '@radix-ui/themes';\n","export { TextArea, type TextAreaProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport function Typo(props: TypoProps): React.ReactNode {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n return '2';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} size={radixSize}>\n {children}\n </RadixText>\n );\n}\n","export { TextField } from '@radix-ui/themes';\n","export { Tooltip, type TooltipProps } from '@radix-ui/themes';\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n}\n\nexport function Collapse(props: CollapseProps): React.ReactNode {\n const { children } = props;\n const [open, setOpen] = useState(() => {\n return props.open || props.defaultOpen || false;\n });\n\n useEffect(() => {\n if (props.open === undefined) return;\n setOpen(props.open);\n }, [props.open]);\n\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n ref.current.style.maxHeight = open ? `${ref.current.scrollHeight}px` : '0';\n }, [open]);\n\n return (\n <div className=\"collapse\" ref={ref}>\n {children}\n </div>\n );\n}\n","export { Spinner, type SpinnerProps } from '@radix-ui/themes';\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../icon';\nimport type { IconButtonProps } from './icon-button';\nimport { IconButton } from './icon-button';\nimport { Flex } from './flex';\nimport { Typo } from './typo';\n\nexport interface PaginationProps {\n /** 현재 선택된 페이지 */\n page?: number;\n /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */\n defaultPage?: number;\n /** 선택한 페이지 변경 이벤트 cb */\n onChange?: (page: number) => void;\n /** 전체 페이지의 수 */\n count?: number;\n}\n\nexport function Pagination(props: PaginationProps): React.ReactNode {\n const { onChange, count = 0 } = props;\n const siblingCount = 2;\n\n const [page, setPage] = useState(() => props.page || props.defaultPage || 1);\n\n const visibleItems = useMemo(() => {\n let start = Math.max(1, page - siblingCount);\n let end = Math.min(count, page + siblingCount);\n if (page - siblingCount <= 0 && end < count) {\n end = Math.min(count, end + Math.abs(page - siblingCount) + 1);\n } else if (page + siblingCount > count && start > 1) {\n start = Math.max(1, start - (page + siblingCount - count));\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }, [count, page]);\n\n useEffect(() => {\n onChange?.(page);\n }, [onChange, page]);\n\n useEffect(() => {\n if (props.page) {\n setPage(props.page);\n }\n }, [props.page]);\n\n const onClickPrev = useCallback(() => {\n setPage((prev) => Math.max(1, prev - 1));\n }, []);\n\n const onClickNext = useCallback(() => {\n setPage((prev) => Math.min(count, prev + 1));\n }, [count]);\n\n const moveButtonProps: IconButtonProps = {\n variant: 'ghost',\n size: '3',\n style: { borderRadius: '50%' },\n };\n\n const iconSize = {\n height: 24,\n width: 24,\n };\n\n const prevDisabled = useMemo(() => {\n return page - siblingCount <= 1;\n }, [page]);\n\n const nextDisabled = useMemo(() => {\n return page + siblingCount >= count;\n }, [count, page]);\n\n return (\n <Flex align=\"center\" className=\"tipp-pagination\" gap=\"4\">\n <IconButton\n disabled={prevDisabled}\n onClick={onClickPrev}\n {...moveButtonProps}\n >\n <ChevronLeftIcon {...iconSize} />\n </IconButton>\n <Flex gap=\"1\">\n {visibleItems.map((item) => {\n return (\n <button\n className={`page-button ${item === page ? 'active' : ''}`}\n key={item}\n onClick={() => {\n setPage(item);\n }}\n type=\"button\"\n >\n <Typo variant=\"body\">{item}</Typo>\n </button>\n );\n })}\n </Flex>\n <IconButton\n disabled={nextDisabled}\n onClick={onClickNext}\n {...moveButtonProps}\n >\n <ChevronRightIcon {...iconSize} />\n </IconButton>\n </Flex>\n );\n}\n","export {\n BookmarkIcon,\n ExitIcon,\n InfoCircledIcon,\n ExclamationTriangleIcon,\n MagnifyingGlassIcon,\n DotsHorizontalIcon,\n ChatBubbleIcon,\n PlusIcon,\n BookmarkFilledIcon,\n MixerHorizontalIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from '@radix-ui/react-icons';\n"],"mappings":"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","names":["Heading","import_themes","import_themes","RadixAvatar","import_themes","import_react","import_jsx_runtime","RadixBadge","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixButton","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixCheckbox","import_themes","import_themes","import_react","import_jsx_runtime","RadixCheckboxGroup","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","ReactDatePicker","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixLink","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_themes","import_themes","import_react","import_jsx_runtime","import_themes","import_react","import_jsx_runtime"]}
@@ -9,5 +9,6 @@ export { Heading, HeadingProps } from './heading.cjs';
9
9
  export { Link, LinkProps } from './link.cjs';
10
10
  export { Typo, TypoProps } from './typo.cjs';
11
11
  export { Collapse, CollapseProps } from './collapse.cjs';
12
+ export { Pagination, PaginationProps } from './pagination.cjs';
12
13
  import 'react';
13
14
  import 'react-datepicker';
@@ -9,5 +9,6 @@ export { Heading, HeadingProps } from './heading.js';
9
9
  export { Link, LinkProps } from './link.js';
10
10
  export { Typo, TypoProps } from './typo.js';
11
11
  export { Collapse, CollapseProps } from './collapse.js';
12
+ export { Pagination, PaginationProps } from './pagination.js';
12
13
  import 'react';
13
14
  import 'react-datepicker';
@@ -1,7 +1,10 @@
1
- import "../chunk-UKJ64ZOX.js";
1
+ import "../chunk-SQ5HD7LD.js";
2
2
  import {
3
3
  DatePicker
4
4
  } from "../chunk-IIBITN2G.js";
5
+ import {
6
+ Tabs
7
+ } from "../chunk-5ZITU5L7.js";
5
8
  import {
6
9
  TextArea
7
10
  } from "../chunk-ILRUXI2E.js";
@@ -12,8 +15,8 @@ import {
12
15
  Tooltip
13
16
  } from "../chunk-ACVANQJ4.js";
14
17
  import {
15
- Typo
16
- } from "../chunk-5U2NU566.js";
18
+ SegmentedControl
19
+ } from "../chunk-TVDKGMBI.js";
17
20
  import {
18
21
  Select
19
22
  } from "../chunk-355MU6BH.js";
@@ -36,8 +39,8 @@ import {
36
39
  TabNav
37
40
  } from "../chunk-YJ7ZFOYL.js";
38
41
  import {
39
- Tabs
40
- } from "../chunk-5ZITU5L7.js";
42
+ Popover
43
+ } from "../chunk-5AVBYDPB.js";
41
44
  import {
42
45
  Progress
43
46
  } from "../chunk-365QMK4D.js";
@@ -59,18 +62,12 @@ import {
59
62
  import {
60
63
  Section
61
64
  } from "../chunk-MUNMDHRF.js";
62
- import {
63
- SegmentedControl
64
- } from "../chunk-TVDKGMBI.js";
65
65
  import {
66
66
  Heading
67
67
  } from "../chunk-HLOY6BIP.js";
68
68
  import {
69
69
  HoverCard
70
70
  } from "../chunk-O3T3TM3V.js";
71
- import {
72
- IconButton
73
- } from "../chunk-O3DNDMV3.js";
74
71
  import {
75
72
  Inset
76
73
  } from "../chunk-XQOL7UBI.js";
@@ -81,8 +78,14 @@ import {
81
78
  Link
82
79
  } from "../chunk-XQOZWYUA.js";
83
80
  import {
84
- Popover
85
- } from "../chunk-5AVBYDPB.js";
81
+ Pagination
82
+ } from "../chunk-P3DQHJ5L.js";
83
+ import {
84
+ Typo
85
+ } from "../chunk-5U2NU566.js";
86
+ import {
87
+ IconButton
88
+ } from "../chunk-O3DNDMV3.js";
86
89
  import {
87
90
  Collapse
88
91
  } from "../chunk-OCJNQGHN.js";
@@ -131,6 +134,7 @@ import {
131
134
  import {
132
135
  Code
133
136
  } from "../chunk-OHMOP5PV.js";
137
+ import "../chunk-MMAV5BRZ.js";
134
138
  import {
135
139
  AlertDialog
136
140
  } from "../chunk-J242TTFH.js";
@@ -176,6 +180,7 @@ export {
176
180
  Inset,
177
181
  Kbd,
178
182
  Link,
183
+ Pagination,
179
184
  Popover,
180
185
  Progress,
181
186
  Quote,
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ var __export = (target, all) => {
36
+ for (var name in all)
37
+ __defProp(target, name, { get: all[name], enumerable: true });
38
+ };
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
46
+ };
47
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
48
+
49
+ // src/atoms/pagination.tsx
50
+ var pagination_exports = {};
51
+ __export(pagination_exports, {
52
+ Pagination: () => Pagination
53
+ });
54
+ module.exports = __toCommonJS(pagination_exports);
55
+ var import_react2 = require("react");
56
+
57
+ // src/icon.ts
58
+ var import_react_icons = require("@radix-ui/react-icons");
59
+
60
+ // src/atoms/icon-button.tsx
61
+ var import_themes = require("@radix-ui/themes");
62
+
63
+ // src/atoms/flex.tsx
64
+ var import_themes2 = require("@radix-ui/themes");
65
+
66
+ // src/atoms/typo.tsx
67
+ var import_themes3 = require("@radix-ui/themes");
68
+ var import_react = require("react");
69
+ var import_jsx_runtime = require("react/jsx-runtime");
70
+ function Typo(props) {
71
+ const _a = props, { size, variant, children } = _a, rest = __objRest(_a, ["size", "variant", "children"]);
72
+ const radixSize = (0, import_react.useMemo)(() => {
73
+ switch (variant) {
74
+ case "caption":
75
+ return "1";
76
+ case "subtitle":
77
+ return "3";
78
+ case "body":
79
+ return "2";
80
+ default:
81
+ return size;
82
+ }
83
+ }, [size, variant]);
84
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes3.Text, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
85
+ }
86
+
87
+ // src/atoms/pagination.tsx
88
+ var import_jsx_runtime2 = require("react/jsx-runtime");
89
+ function Pagination(props) {
90
+ const { onChange, count = 0 } = props;
91
+ const siblingCount = 2;
92
+ const [page, setPage] = (0, import_react2.useState)(() => props.page || props.defaultPage || 1);
93
+ const visibleItems = (0, import_react2.useMemo)(() => {
94
+ let start = Math.max(1, page - siblingCount);
95
+ let end = Math.min(count, page + siblingCount);
96
+ if (page - siblingCount <= 0 && end < count) {
97
+ end = Math.min(count, end + Math.abs(page - siblingCount) + 1);
98
+ } else if (page + siblingCount > count && start > 1) {
99
+ start = Math.max(1, start - (page + siblingCount - count));
100
+ }
101
+ return Array.from({ length: end - start + 1 }, (_, i) => i + start);
102
+ }, [count, page]);
103
+ (0, import_react2.useEffect)(() => {
104
+ onChange == null ? void 0 : onChange(page);
105
+ }, [onChange, page]);
106
+ (0, import_react2.useEffect)(() => {
107
+ if (props.page) {
108
+ setPage(props.page);
109
+ }
110
+ }, [props.page]);
111
+ const onClickPrev = (0, import_react2.useCallback)(() => {
112
+ setPage((prev) => Math.max(1, prev - 1));
113
+ }, []);
114
+ const onClickNext = (0, import_react2.useCallback)(() => {
115
+ setPage((prev) => Math.min(count, prev + 1));
116
+ }, [count]);
117
+ const moveButtonProps = {
118
+ variant: "ghost",
119
+ size: "3",
120
+ style: { borderRadius: "50%" }
121
+ };
122
+ const iconSize = {
123
+ height: 24,
124
+ width: 24
125
+ };
126
+ const prevDisabled = (0, import_react2.useMemo)(() => {
127
+ return page - siblingCount <= 1;
128
+ }, [page]);
129
+ const nextDisabled = (0, import_react2.useMemo)(() => {
130
+ return page + siblingCount >= count;
131
+ }, [count, page]);
132
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_themes2.Flex, { align: "center", className: "tipp-pagination", gap: "4", children: [
133
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
134
+ import_themes.IconButton,
135
+ __spreadProps(__spreadValues({
136
+ disabled: prevDisabled,
137
+ onClick: onClickPrev
138
+ }, moveButtonProps), {
139
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_icons.ChevronLeftIcon, __spreadValues({}, iconSize))
140
+ })
141
+ ),
142
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes2.Flex, { gap: "1", children: visibleItems.map((item) => {
143
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
144
+ "button",
145
+ {
146
+ className: `page-button ${item === page ? "active" : ""}`,
147
+ onClick: () => {
148
+ setPage(item);
149
+ },
150
+ type: "button",
151
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Typo, { variant: "body", children: item })
152
+ },
153
+ item
154
+ );
155
+ }) }),
156
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
157
+ import_themes.IconButton,
158
+ __spreadProps(__spreadValues({
159
+ disabled: nextDisabled,
160
+ onClick: onClickNext
161
+ }, moveButtonProps), {
162
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_icons.ChevronRightIcon, __spreadValues({}, iconSize))
163
+ })
164
+ )
165
+ ] });
166
+ }
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ Pagination
170
+ });
171
+ //# sourceMappingURL=pagination.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/atoms/pagination.tsx","../../src/icon.ts","../../src/atoms/icon-button.tsx","../../src/atoms/flex.tsx","../../src/atoms/typo.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../icon';\nimport type { IconButtonProps } from './icon-button';\nimport { IconButton } from './icon-button';\nimport { Flex } from './flex';\nimport { Typo } from './typo';\n\nexport interface PaginationProps {\n /** 현재 선택된 페이지 */\n page?: number;\n /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */\n defaultPage?: number;\n /** 선택한 페이지 변경 이벤트 cb */\n onChange?: (page: number) => void;\n /** 전체 페이지의 수 */\n count?: number;\n}\n\nexport function Pagination(props: PaginationProps): React.ReactNode {\n const { onChange, count = 0 } = props;\n const siblingCount = 2;\n\n const [page, setPage] = useState(() => props.page || props.defaultPage || 1);\n\n const visibleItems = useMemo(() => {\n let start = Math.max(1, page - siblingCount);\n let end = Math.min(count, page + siblingCount);\n if (page - siblingCount <= 0 && end < count) {\n end = Math.min(count, end + Math.abs(page - siblingCount) + 1);\n } else if (page + siblingCount > count && start > 1) {\n start = Math.max(1, start - (page + siblingCount - count));\n }\n\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }, [count, page]);\n\n useEffect(() => {\n onChange?.(page);\n }, [onChange, page]);\n\n useEffect(() => {\n if (props.page) {\n setPage(props.page);\n }\n }, [props.page]);\n\n const onClickPrev = useCallback(() => {\n setPage((prev) => Math.max(1, prev - 1));\n }, []);\n\n const onClickNext = useCallback(() => {\n setPage((prev) => Math.min(count, prev + 1));\n }, [count]);\n\n const moveButtonProps: IconButtonProps = {\n variant: 'ghost',\n size: '3',\n style: { borderRadius: '50%' },\n };\n\n const iconSize = {\n height: 24,\n width: 24,\n };\n\n const prevDisabled = useMemo(() => {\n return page - siblingCount <= 1;\n }, [page]);\n\n const nextDisabled = useMemo(() => {\n return page + siblingCount >= count;\n }, [count, page]);\n\n return (\n <Flex align=\"center\" className=\"tipp-pagination\" gap=\"4\">\n <IconButton\n disabled={prevDisabled}\n onClick={onClickPrev}\n {...moveButtonProps}\n >\n <ChevronLeftIcon {...iconSize} />\n </IconButton>\n <Flex gap=\"1\">\n {visibleItems.map((item) => {\n return (\n <button\n className={`page-button ${item === page ? 'active' : ''}`}\n key={item}\n onClick={() => {\n setPage(item);\n }}\n type=\"button\"\n >\n <Typo variant=\"body\">{item}</Typo>\n </button>\n );\n })}\n </Flex>\n <IconButton\n disabled={nextDisabled}\n onClick={onClickNext}\n {...moveButtonProps}\n >\n <ChevronRightIcon {...iconSize} />\n </IconButton>\n </Flex>\n );\n}\n","export {\n BookmarkIcon,\n ExitIcon,\n InfoCircledIcon,\n ExclamationTriangleIcon,\n MagnifyingGlassIcon,\n DotsHorizontalIcon,\n ChatBubbleIcon,\n PlusIcon,\n BookmarkFilledIcon,\n MixerHorizontalIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from '@radix-ui/react-icons';\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport function Typo(props: TypoProps): React.ReactNode {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n return '2';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} size={radixSize}>\n {children}\n </RadixText>\n );\n}\n"],"mappings":"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","names":["import_react","import_themes","import_themes","RadixText","import_jsx_runtime"]}
@@ -0,0 +1,15 @@
1
+ import React__default from 'react';
2
+
3
+ interface PaginationProps {
4
+ /** 현재 선택된 페이지 */
5
+ page?: number;
6
+ /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */
7
+ defaultPage?: number;
8
+ /** 선택한 페이지 변경 이벤트 cb */
9
+ onChange?: (page: number) => void;
10
+ /** 전체 페이지의 수 */
11
+ count?: number;
12
+ }
13
+ declare function Pagination(props: PaginationProps): React__default.ReactNode;
14
+
15
+ export { Pagination, type PaginationProps };
@@ -0,0 +1,15 @@
1
+ import React__default from 'react';
2
+
3
+ interface PaginationProps {
4
+ /** 현재 선택된 페이지 */
5
+ page?: number;
6
+ /** 기본 선택 페이지, page보다 낮은 우선 순위를 갖는다 */
7
+ defaultPage?: number;
8
+ /** 선택한 페이지 변경 이벤트 cb */
9
+ onChange?: (page: number) => void;
10
+ /** 전체 페이지의 수 */
11
+ count?: number;
12
+ }
13
+ declare function Pagination(props: PaginationProps): React__default.ReactNode;
14
+
15
+ export { Pagination, type PaginationProps };
@@ -0,0 +1,12 @@
1
+ import {
2
+ Pagination
3
+ } from "../chunk-P3DQHJ5L.js";
4
+ import "../chunk-5U2NU566.js";
5
+ import "../chunk-O3DNDMV3.js";
6
+ import "../chunk-25HMMI7R.js";
7
+ import "../chunk-MMAV5BRZ.js";
8
+ import "../chunk-N552FDTV.js";
9
+ export {
10
+ Pagination
11
+ };
12
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}