@justanarthur/modo-ui 0.6.0-canary.8 → 0.6.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 (490) hide show
  1. package/README.md +66 -164
  2. package/dist/base.css +4 -141
  3. package/dist/blocks/sidebar-app/index.js +26 -40
  4. package/dist/components/AI/input-message/index.js +16 -23
  5. package/dist/components/AI/thinking-indicator/index.js +6 -9
  6. package/dist/components/accordion/index.d.ts +11 -39
  7. package/dist/components/accordion/index.js +13 -18
  8. package/dist/components/badge/index.d.ts +11 -18
  9. package/dist/components/badge/index.js +7 -12
  10. package/dist/components/button/index.d.ts +17 -53
  11. package/dist/components/button/index.js +6 -11
  12. package/dist/components/card/index.d.ts +9 -32
  13. package/dist/components/card/index.js +11 -17
  14. package/dist/components/copy/index.d.ts +8 -41
  15. package/dist/components/copy/index.js +9 -15
  16. package/dist/components/inputs/checkbox/index.d.ts +9 -28
  17. package/dist/components/inputs/checkbox/index.js +13 -18
  18. package/dist/components/inputs/color-picker/index.d.ts +14 -22
  19. package/dist/components/inputs/color-picker/index.js +18 -26
  20. package/dist/components/inputs/combobox/index.d.ts +20 -85
  21. package/dist/components/inputs/combobox/index.js +18 -27
  22. package/dist/components/inputs/date-time/calendar/index.d.ts +18 -24
  23. package/dist/components/inputs/date-time/calendar/index.js +11 -15
  24. package/dist/components/inputs/date-time/date-picker/index.d.ts +16 -105
  25. package/dist/components/inputs/date-time/date-picker/index.js +25 -35
  26. package/dist/components/inputs/date-time/date-range-picker/index.d.ts +12 -106
  27. package/dist/components/inputs/date-time/date-range-picker/index.js +24 -35
  28. package/dist/components/inputs/date-time/duration-picker/index.d.ts +13 -66
  29. package/dist/components/inputs/date-time/duration-picker/index.js +24 -33
  30. package/dist/components/inputs/date-time/month-picker/index.d.ts +10 -60
  31. package/dist/components/inputs/date-time/month-picker/index.js +23 -32
  32. package/dist/components/inputs/date-time/time-picker/index.d.ts +10 -58
  33. package/dist/components/inputs/date-time/time-picker/index.js +24 -33
  34. package/dist/components/inputs/input/index.d.ts +13 -95
  35. package/dist/components/inputs/input/index.js +9 -18
  36. package/dist/components/inputs/radio/index.d.ts +5 -20
  37. package/dist/components/inputs/radio/index.js +12 -16
  38. package/dist/components/inputs/search/index.d.ts +3 -3
  39. package/dist/components/inputs/search/index.js +18 -26
  40. package/dist/components/inputs/select/index.d.ts +23 -99
  41. package/dist/components/inputs/select/index.js +14 -29
  42. package/dist/components/inputs/slider/index.d.ts +0 -9
  43. package/dist/components/inputs/slider/index.js +5 -8
  44. package/dist/components/inputs/switch/index.d.ts +2 -8
  45. package/dist/components/inputs/switch/index.js +12 -15
  46. package/dist/components/inputs/textarea/index.d.ts +1 -20
  47. package/dist/components/inputs/textarea/index.js +6 -9
  48. package/dist/components/navigation/sidebar/index.d.ts +21 -44
  49. package/dist/components/navigation/sidebar/index.js +31 -42
  50. package/dist/components/navigation/tabs/index.d.ts +2 -8
  51. package/dist/components/navigation/tabs/index.js +10 -15
  52. package/dist/components/navigation/tabs-subtle/index.js +10 -13
  53. package/dist/components/overlays/alert-dialog/index.d.ts +16 -135
  54. package/dist/components/overlays/alert-dialog/index.js +13 -23
  55. package/dist/components/overlays/command/index.d.ts +20 -25
  56. package/dist/components/overlays/command/index.js +17 -25
  57. package/dist/components/overlays/context-menu/index.d.ts +17 -39
  58. package/dist/components/overlays/context-menu/index.js +18 -29
  59. package/dist/components/overlays/dialog/index.d.ts +16 -42
  60. package/dist/components/overlays/dialog/index.js +12 -20
  61. package/dist/components/overlays/dropdown/index.d.ts +34 -304
  62. package/dist/components/overlays/dropdown/index.js +17 -44
  63. package/dist/components/overlays/popover/index.d.ts +12 -38
  64. package/dist/components/overlays/popover/index.js +9 -13
  65. package/dist/components/overlays/preview-card/index.js +8 -12
  66. package/dist/components/overlays/sheet/index.d.ts +8 -25
  67. package/dist/components/overlays/sheet/index.js +13 -19
  68. package/dist/components/overlays/toast/index.d.ts +50 -209
  69. package/dist/components/overlays/toast/index.js +10 -23
  70. package/dist/components/overlays/tooltip/index.d.ts +21 -123
  71. package/dist/components/overlays/tooltip/index.js +6 -16
  72. package/dist/components/table/index.d.ts +8 -63
  73. package/dist/components/table/index.js +9 -20
  74. package/dist/index.d.ts +1048 -2999
  75. package/dist/index.js +82 -231
  76. package/dist/preset.d.ts +0 -22
  77. package/dist/preset.js +2 -24
  78. package/dist/primitives/code/index.js +5 -8
  79. package/dist/primitives/craft/index.js +6 -10
  80. package/dist/primitives/fluid-hover/index.js +8 -10
  81. package/dist/primitives/morph/index.js +10 -16
  82. package/dist/primitives/motion/index.js +8 -11
  83. package/dist/primitives/scroll-area/index.js +3 -5
  84. package/dist/primitives/sizes/index.js +4 -6
  85. package/dist/primitives/surface/index.js +4 -6
  86. package/dist/shared/{components-4y816hwp.js → components-0q0sqfh4.js} +49 -27
  87. package/dist/shared/components-0sn7ypjw.js +61 -0
  88. package/dist/shared/{components-vc864c51.js → components-11da9ajg.js} +5 -8
  89. package/dist/shared/components-1434p1mh.js +123 -0
  90. package/dist/shared/{components-t2a3qmy9.js → components-1z6tdadk.js} +24 -40
  91. package/dist/shared/{components-qs4rkqsj.js → components-27nnvrwe.js} +14 -15
  92. package/dist/shared/{components-av5t26rc.js → components-2dxkv6zm.js} +7 -8
  93. package/dist/shared/{components-wqrvqq5p.js → components-2ecg8svx.js} +152 -234
  94. package/dist/shared/{components-3ydr2fqe.js → components-2ph6t61s.js} +34 -37
  95. package/dist/shared/{components-6gk118w3.js → components-39jq9va1.js} +24 -29
  96. package/dist/shared/components-3ky44908.js +9 -0
  97. package/dist/shared/{components-y1qvbawa.js → components-3mkepka5.js} +25 -28
  98. package/dist/shared/{components-xqszvkj4.js → components-4700p9kz.js} +22 -24
  99. package/dist/shared/{components-yhgq0qxx.js → components-59efxjd9.js} +12 -13
  100. package/dist/shared/{components-9j9abkct.js → components-5vgpnxgy.js} +27 -51
  101. package/dist/shared/{components-8tt3xbb5.js → components-5xc2j8jz.js} +18 -19
  102. package/dist/shared/{components-jymmaevv.js → components-6p8tfcd6.js} +29 -57
  103. package/dist/shared/{components-4nck8acq.js → components-7r3etddy.js} +54 -19
  104. package/dist/shared/{components-skfd7kff.js → components-8snj490h.js} +32 -78
  105. package/dist/shared/{components-ctqmge8t.js → components-b0eac83j.js} +30 -9
  106. package/dist/shared/{components-9sttq78t.js → components-b2wyq2cq.js} +59 -41
  107. package/dist/shared/{components-vkwq2k96.js → components-b3c5et5b.js} +38 -49
  108. package/dist/shared/{components-rrbpmfx4.js → components-c6s6b43g.js} +2 -3
  109. package/dist/shared/{components-pw06rbxq.js → components-chacnk61.js} +19 -19
  110. package/dist/shared/{components-71nbt03m.js → components-cv16mryv.js} +7 -26
  111. package/dist/shared/{components-eqze3y30.js → components-d6xtjht3.js} +30 -35
  112. package/dist/shared/{components-5y5shqfd.js → components-dk0gjr5a.js} +18 -19
  113. package/dist/shared/{components-khspp26b.js → components-fzrq6tr3.js} +34 -37
  114. package/dist/shared/{components-km7fhgbk.js → components-gc5vtq2f.js} +30 -66
  115. package/dist/shared/components-gf5s6ap9.js +42 -0
  116. package/dist/shared/{components-qqcmtrbv.js → components-gz8zf3ec.js} +55 -56
  117. package/dist/shared/{components-mattt5jp.js → components-h2ajmhwn.js} +35 -107
  118. package/dist/shared/{components-awra5sff.js → components-hqeq3w9q.js} +16 -24
  119. package/dist/shared/{components-5tzhqbcw.js → components-hw9yk32z.js} +24 -36
  120. package/dist/shared/components-hyq23phv.js +310 -0
  121. package/dist/shared/{components-8mt5bsv6.js → components-jbbmdr74.js} +22 -41
  122. package/dist/shared/{components-dcc02hs2.js → components-jjw69c4c.js} +4 -7
  123. package/dist/shared/{components-2syq4mwc.js → components-jthe1pwb.js} +420 -139
  124. package/dist/shared/{components-r7q1zm7r.js → components-jwst3vtj.js} +76 -224
  125. package/dist/shared/{components-qdm3yh26.js → components-kvr7f9hy.js} +10 -19
  126. package/dist/shared/{components-s8yqk2dc.js → components-kwa6mrf9.js} +11 -46
  127. package/dist/shared/{components-de99ykt7.js → components-men63rwj.js} +2 -3
  128. package/dist/shared/{components-6b0zb8z3.js → components-mjthm1kf.js} +9 -13
  129. package/dist/shared/{components-2c64r8c9.js → components-n42c79bz.js} +22 -23
  130. package/dist/shared/{components-tz1fv35x.js → components-n7mjr357.js} +2 -3
  131. package/dist/shared/components-ng72k97e.js +128 -0
  132. package/dist/shared/{components-dyae0y7h.js → components-pbmqctfa.js} +65 -169
  133. package/dist/shared/{components-px2zm7dc.js → components-q5xj5c16.js} +8 -9
  134. package/dist/shared/components-raknhppb.js +64 -0
  135. package/dist/shared/{components-8rb25gbe.js → components-rr7a6ja9.js} +27 -59
  136. package/dist/shared/{components-5012r6gr.js → components-s083f38z.js} +34 -164
  137. package/dist/shared/components-s5ngg32c.js +267 -0
  138. package/dist/shared/components-sn1rxx1d.js +143 -0
  139. package/dist/shared/{components-r8eqs7gz.js → components-ta7shw28.js} +4 -4
  140. package/dist/shared/{components-9as3rf68.js → components-vc7vq5nz.js} +3 -6
  141. package/dist/shared/{components-ft3zdc79.js → components-vfbhxf5r.js} +5 -6
  142. package/dist/shared/components-vynjtrk6.js +19 -0
  143. package/dist/shared/{components-w0xq6q9k.js → components-w1r67ag9.js} +149 -294
  144. package/dist/shared/{components-z0bqtvcp.js → components-w90endve.js} +72 -71
  145. package/dist/shared/{components-t5pk5nmc.js → components-wvp1m52g.js} +102 -149
  146. package/dist/shared/components-wy9jpqny.js +146 -0
  147. package/dist/shared/{components-5sxjeh6h.js → components-y9y0g8er.js} +28 -52
  148. package/dist/shared/components-ypp01w3p.js +986 -0
  149. package/dist/shared/{components-t50hrswb.js → components-zfnmn5d4.js} +36 -82
  150. package/dist/shared/{components-jqpefjsn.js → components-zrkzcayz.js} +6 -54
  151. package/dist/shared/{components-vf45j12c.js → components-zx6b6yby.js} +18 -4
  152. package/dist/styles.css +32 -320
  153. package/dist/tailwind.css +0 -16
  154. package/dist/tokens.css +0 -67
  155. package/package.json +4 -227
  156. package/DESIGN.md +0 -623
  157. package/blocks/sidebar-app/examples.mdx +0 -33
  158. package/blocks/sidebar-app/index.tsx +0 -218
  159. package/blocks/sidebar-app/inset-topbar.tsx +0 -25
  160. package/blocks/sidebar-app/menu-grid.ts +0 -26
  161. package/blocks/sidebar-app/nav-data.ts +0 -36
  162. package/blocks/sidebar-app/search-field.tsx +0 -48
  163. package/blocks/sidebar-app/user-footer.tsx +0 -67
  164. package/blocks/sidebar-app/workspace-header.tsx +0 -129
  165. package/components/AI/input-message/examples.mdx +0 -130
  166. package/components/AI/input-message/file-thumbnail.tsx +0 -173
  167. package/components/AI/input-message/index.tsx +0 -1385
  168. package/components/AI/thinking-indicator/examples.mdx +0 -27
  169. package/components/AI/thinking-indicator/index.tsx +0 -210
  170. package/components/accordion/examples.mdx +0 -233
  171. package/components/accordion/index.tsx +0 -1071
  172. package/components/avatar/examples.mdx +0 -95
  173. package/components/avatar/index.tsx +0 -129
  174. package/components/badge/change-demo.tsx +0 -29
  175. package/components/badge/examples.mdx +0 -124
  176. package/components/badge/index.tsx +0 -225
  177. package/components/badge/variants.ts +0 -73
  178. package/components/button/examples.mdx +0 -168
  179. package/components/button/index.tsx +0 -424
  180. package/components/button/loading-demo.tsx +0 -25
  181. package/components/button/variants.ts +0 -168
  182. package/components/card/examples.mdx +0 -251
  183. package/components/card/index.tsx +0 -1070
  184. package/components/copy/examples.mdx +0 -125
  185. package/components/copy/index.tsx +0 -662
  186. package/components/inputs/checkbox/examples.mdx +0 -87
  187. package/components/inputs/checkbox/index.tsx +0 -611
  188. package/components/inputs/checkbox/select-all-demo.tsx +0 -48
  189. package/components/inputs/color-picker/examples.mdx +0 -111
  190. package/components/inputs/color-picker/index.tsx +0 -1981
  191. package/components/inputs/color-picker/variants.ts +0 -401
  192. package/components/inputs/combobox/examples.mdx +0 -366
  193. package/components/inputs/combobox/index.tsx +0 -1527
  194. package/components/inputs/combobox/remote-demo.tsx +0 -105
  195. package/components/inputs/date-time/calendar/examples.mdx +0 -45
  196. package/components/inputs/date-time/calendar/index.tsx +0 -370
  197. package/components/inputs/date-time/calendar/use-month-window.ts +0 -173
  198. package/components/inputs/date-time/date-picker/examples.mdx +0 -243
  199. package/components/inputs/date-time/date-picker/index.tsx +0 -476
  200. package/components/inputs/date-time/date-picker/masked-date-input.tsx +0 -348
  201. package/components/inputs/date-time/date-range-picker/examples.mdx +0 -93
  202. package/components/inputs/date-time/date-range-picker/index.tsx +0 -525
  203. package/components/inputs/date-time/duration-picker/examples.mdx +0 -40
  204. package/components/inputs/date-time/duration-picker/index.tsx +0 -253
  205. package/components/inputs/date-time/month-picker/examples.mdx +0 -45
  206. package/components/inputs/date-time/month-picker/index.tsx +0 -254
  207. package/components/inputs/date-time/picker-shell.tsx +0 -581
  208. package/components/inputs/date-time/time-columns.tsx +0 -94
  209. package/components/inputs/date-time/time-picker/examples.mdx +0 -57
  210. package/components/inputs/date-time/time-picker/index.tsx +0 -227
  211. package/components/inputs/field/examples.mdx +0 -117
  212. package/components/inputs/field/index.tsx +0 -268
  213. package/components/inputs/file-dropzone/examples.mdx +0 -83
  214. package/components/inputs/file-dropzone/file-row.tsx +0 -201
  215. package/components/inputs/file-dropzone/index.tsx +0 -316
  216. package/components/inputs/file-dropzone/upload-demo.tsx +0 -67
  217. package/components/inputs/file-dropzone/variants.ts +0 -94
  218. package/components/inputs/input/examples.mdx +0 -166
  219. package/components/inputs/input/index.tsx +0 -494
  220. package/components/inputs/input/password-demo.tsx +0 -30
  221. package/components/inputs/label/examples.mdx +0 -67
  222. package/components/inputs/label/index.tsx +0 -85
  223. package/components/inputs/number-input/examples.mdx +0 -69
  224. package/components/inputs/number-input/index.tsx +0 -221
  225. package/components/inputs/radio/examples.mdx +0 -77
  226. package/components/inputs/radio/index.tsx +0 -636
  227. package/components/inputs/search/examples.mdx +0 -74
  228. package/components/inputs/search/index.tsx +0 -333
  229. package/components/inputs/select/examples.mdx +0 -296
  230. package/components/inputs/select/index.tsx +0 -1044
  231. package/components/inputs/select/variants.ts +0 -32
  232. package/components/inputs/slider/examples.mdx +0 -153
  233. package/components/inputs/slider/index.tsx +0 -1867
  234. package/components/inputs/switch/examples.mdx +0 -96
  235. package/components/inputs/switch/index.tsx +0 -504
  236. package/components/inputs/textarea/examples.mdx +0 -126
  237. package/components/inputs/textarea/index.tsx +0 -207
  238. package/components/navigation/navigation-menu/examples.mdx +0 -136
  239. package/components/navigation/navigation-menu/index.tsx +0 -704
  240. package/components/navigation/pagination/examples.mdx +0 -74
  241. package/components/navigation/pagination/index.tsx +0 -401
  242. package/components/navigation/sidebar/examples.mdx +0 -325
  243. package/components/navigation/sidebar/index.tsx +0 -453
  244. package/components/navigation/sidebar/sidebar-core.tsx +0 -1408
  245. package/components/navigation/sidebar/sidebar-menu.tsx +0 -1495
  246. package/components/navigation/sidebar/sidebar.css +0 -74
  247. package/components/navigation/sidebar/variants.ts +0 -55
  248. package/components/navigation/tabs/examples.mdx +0 -89
  249. package/components/navigation/tabs/index.tsx +0 -494
  250. package/components/navigation/tabs-subtle/examples.mdx +0 -49
  251. package/components/navigation/tabs-subtle/index.tsx +0 -512
  252. package/components/overlays/alert-dialog/examples.mdx +0 -123
  253. package/components/overlays/alert-dialog/index.tsx +0 -276
  254. package/components/overlays/alert-dialog/pending-demo.tsx +0 -36
  255. package/components/overlays/command/examples.mdx +0 -113
  256. package/components/overlays/command/index.tsx +0 -425
  257. package/components/overlays/context-menu/examples.mdx +0 -56
  258. package/components/overlays/context-menu/index.tsx +0 -279
  259. package/components/overlays/dialog/examples.mdx +0 -165
  260. package/components/overlays/dialog/index.tsx +0 -451
  261. package/components/overlays/dropdown/dropdown-search.tsx +0 -395
  262. package/components/overlays/dropdown/examples.mdx +0 -444
  263. package/components/overlays/dropdown/index.tsx +0 -1241
  264. package/components/overlays/dropdown/menu-item.tsx +0 -510
  265. package/components/overlays/dropdown/menu-parts.tsx +0 -725
  266. package/components/overlays/popover/anchored-demo.tsx +0 -59
  267. package/components/overlays/popover/examples.mdx +0 -203
  268. package/components/overlays/popover/index.tsx +0 -317
  269. package/components/overlays/preview-card/examples.mdx +0 -61
  270. package/components/overlays/preview-card/index.tsx +0 -204
  271. package/components/overlays/sheet/examples.mdx +0 -101
  272. package/components/overlays/sheet/index.tsx +0 -307
  273. package/components/overlays/toast/examples.mdx +0 -85
  274. package/components/overlays/toast/global-demo.tsx +0 -72
  275. package/components/overlays/toast/index.tsx +0 -544
  276. package/components/overlays/toast/manager.ts +0 -193
  277. package/components/overlays/tooltip/examples.mdx +0 -106
  278. package/components/overlays/tooltip/index.tsx +0 -539
  279. package/components/progress/examples.mdx +0 -59
  280. package/components/progress/index.tsx +0 -174
  281. package/components/progress/progress.css +0 -49
  282. package/components/progress/step-demo.tsx +0 -27
  283. package/components/table/examples.mdx +0 -188
  284. package/components/table/index.tsx +0 -535
  285. package/components/table/sort-demo.tsx +0 -61
  286. package/dist/components/avatar/index.d.ts +0 -46
  287. package/dist/components/avatar/index.js +0 -19
  288. package/dist/components/badge/variants.d.ts +0 -33
  289. package/dist/components/badge/variants.js +0 -10
  290. package/dist/components/button/variants.d.ts +0 -39
  291. package/dist/components/button/variants.js +0 -8
  292. package/dist/components/inputs/color-picker/variants.d.ts +0 -61
  293. package/dist/components/inputs/color-picker/variants.js +0 -28
  294. package/dist/components/inputs/field/index.d.ts +0 -116
  295. package/dist/components/inputs/field/index.js +0 -29
  296. package/dist/components/inputs/file-dropzone/index.d.ts +0 -167
  297. package/dist/components/inputs/file-dropzone/index.js +0 -33
  298. package/dist/components/inputs/file-dropzone/variants.d.ts +0 -35
  299. package/dist/components/inputs/file-dropzone/variants.js +0 -12
  300. package/dist/components/inputs/label/index.d.ts +0 -32
  301. package/dist/components/inputs/label/index.js +0 -11
  302. package/dist/components/inputs/number-input/index.d.ts +0 -87
  303. package/dist/components/inputs/number-input/index.js +0 -21
  304. package/dist/components/inputs/select/variants.d.ts +0 -5
  305. package/dist/components/inputs/select/variants.js +0 -6
  306. package/dist/components/navigation/navigation-menu/index.d.ts +0 -126
  307. package/dist/components/navigation/navigation-menu/index.js +0 -41
  308. package/dist/components/navigation/pagination/index.d.ts +0 -75
  309. package/dist/components/navigation/pagination/index.js +0 -41
  310. package/dist/components/navigation/sidebar/variants.d.ts +0 -25
  311. package/dist/components/navigation/sidebar/variants.js +0 -28
  312. package/dist/components/progress/index.d.ts +0 -56
  313. package/dist/components/progress/index.js +0 -15
  314. package/dist/docs/index.d.ts +0 -83
  315. package/dist/docs/index.js +0 -288
  316. package/dist/docs/vite.d.ts +0 -31
  317. package/dist/docs/vite.js +0 -45
  318. package/dist/lib/date-locale.d.ts +0 -26
  319. package/dist/lib/date-locale.js +0 -24
  320. package/dist/lib/field-classes.d.ts +0 -149
  321. package/dist/lib/field-classes.js +0 -41
  322. package/dist/lib/field-variants.d.ts +0 -47
  323. package/dist/lib/field-variants.js +0 -26
  324. package/dist/lib/fluid-hover-highlight.d.ts +0 -112
  325. package/dist/lib/fluid-hover-highlight.js +0 -17
  326. package/dist/lib/focus-ring.d.ts +0 -18
  327. package/dist/lib/focus-ring.js +0 -11
  328. package/dist/lib/goo-indicator.d.ts +0 -46
  329. package/dist/lib/goo-indicator.js +0 -14
  330. package/dist/lib/icon-context.d.ts +0 -30
  331. package/dist/lib/icon-context.js +0 -12
  332. package/dist/lib/inert.d.ts +0 -9
  333. package/dist/lib/inert.js +0 -8
  334. package/dist/lib/morph-layers.d.ts +0 -93
  335. package/dist/lib/morph-layers.js +0 -13
  336. package/dist/lib/morph-part.d.ts +0 -21
  337. package/dist/lib/morph-part.js +0 -12
  338. package/dist/lib/popup.d.ts +0 -20
  339. package/dist/lib/popup.js +0 -12
  340. package/dist/lib/reduced-motion.d.ts +0 -9
  341. package/dist/lib/reduced-motion.js +0 -6
  342. package/dist/lib/row-index.d.ts +0 -10
  343. package/dist/lib/row-index.js +0 -8
  344. package/dist/lib/row-order.d.ts +0 -28
  345. package/dist/lib/row-order.js +0 -10
  346. package/dist/lib/scroll-column.d.ts +0 -31
  347. package/dist/lib/scroll-column.js +0 -19
  348. package/dist/lib/shape-context.d.ts +0 -30
  349. package/dist/lib/shape-context.js +0 -13
  350. package/dist/lib/shape-radius.d.ts +0 -19
  351. package/dist/lib/shape-radius.js +0 -6
  352. package/dist/lib/size-context.d.ts +0 -94
  353. package/dist/lib/size-context.js +0 -20
  354. package/dist/lib/size-scale.d.ts +0 -79
  355. package/dist/lib/size-scale.js +0 -8
  356. package/dist/lib/slot.d.ts +0 -39
  357. package/dist/lib/slot.js +0 -14
  358. package/dist/lib/springs.d.ts +0 -44
  359. package/dist/lib/springs.js +0 -8
  360. package/dist/lib/surface-classes.d.ts +0 -19
  361. package/dist/lib/surface-classes.js +0 -10
  362. package/dist/lib/surface-context.d.ts +0 -9
  363. package/dist/lib/surface-context.js +0 -8
  364. package/dist/lib/use-controllable-state.d.ts +0 -2
  365. package/dist/lib/use-controllable-state.js +0 -6
  366. package/dist/lib/use-fluid-hover.d.ts +0 -138
  367. package/dist/lib/use-fluid-hover.js +0 -14
  368. package/dist/lib/use-is-mobile.d.ts +0 -2
  369. package/dist/lib/use-is-mobile.js +0 -6
  370. package/dist/lib/use-keyboard-nav-gate.d.ts +0 -20
  371. package/dist/lib/use-keyboard-nav-gate.js +0 -7
  372. package/dist/lib/use-merge-split.d.ts +0 -47
  373. package/dist/lib/use-merge-split.js +0 -15
  374. package/dist/lib/use-morph.d.ts +0 -101
  375. package/dist/lib/use-morph.js +0 -20
  376. package/dist/lib/use-touch-primary.d.ts +0 -2
  377. package/dist/lib/use-touch-primary.js +0 -6
  378. package/dist/lib/utils.d.ts +0 -3
  379. package/dist/lib/utils.js +0 -6
  380. package/dist/primitives/separator/index.d.ts +0 -25
  381. package/dist/primitives/separator/index.js +0 -9
  382. package/dist/primitives/skeleton/index.d.ts +0 -35
  383. package/dist/primitives/skeleton/index.js +0 -13
  384. package/dist/shared/components-124epb7f.js +0 -53
  385. package/dist/shared/components-1kab3j44.js +0 -337
  386. package/dist/shared/components-26snnbs9.js +0 -322
  387. package/dist/shared/components-34txk9rj.js +0 -35
  388. package/dist/shared/components-3h92d94m.js +0 -23
  389. package/dist/shared/components-4vfm04wq.js +0 -82
  390. package/dist/shared/components-54nq988h.js +0 -123
  391. package/dist/shared/components-7s7pykk5.js +0 -281
  392. package/dist/shared/components-7zkhz3r8.js +0 -399
  393. package/dist/shared/components-8v644a0s.js +0 -298
  394. package/dist/shared/components-a4evvq8h.js +0 -271
  395. package/dist/shared/components-adkarj8n.js +0 -35
  396. package/dist/shared/components-b1e239g3.js +0 -28
  397. package/dist/shared/components-b94t6qtj.js +0 -143
  398. package/dist/shared/components-c9yr4ed1.js +0 -44
  399. package/dist/shared/components-cwg1d0w6.js +0 -254
  400. package/dist/shared/components-d3shbwqq.js +0 -95
  401. package/dist/shared/components-dhgk6mbt.js +0 -16
  402. package/dist/shared/components-drxrtnp2.js +0 -25
  403. package/dist/shared/components-ej4r7wmj.js +0 -482
  404. package/dist/shared/components-f7h57m6t.js +0 -59
  405. package/dist/shared/components-fejdzvqc.js +0 -448
  406. package/dist/shared/components-gx4h5rbb.js +0 -40
  407. package/dist/shared/components-gyt7my41.js +0 -328
  408. package/dist/shared/components-h6p86be3.js +0 -19
  409. package/dist/shared/components-h83az0bz.js +0 -33
  410. package/dist/shared/components-hdzrqqpx.js +0 -55
  411. package/dist/shared/components-krtx3m5b.js +0 -84
  412. package/dist/shared/components-kswxnm3h.js +0 -24
  413. package/dist/shared/components-mpa2y6x8.js +0 -277
  414. package/dist/shared/components-mrbaxt8q.js +0 -62
  415. package/dist/shared/components-pt5ftm4p.js +0 -38
  416. package/dist/shared/components-rpw4md2b.js +0 -179
  417. package/dist/shared/components-rtadhd9j.js +0 -64
  418. package/dist/shared/components-tz4gaf1v.js +0 -23
  419. package/dist/shared/components-wbbckbw8.js +0 -34
  420. package/dist/shared/components-xdqmt6ed.js +0 -20
  421. package/dist/shared/components-xjkdvnbg.js +0 -107
  422. package/dist/shared/components-z3v0n0de.js +0 -11
  423. package/dist/shared/components-z6dfqtyt.js +0 -1545
  424. package/dist/tokens/colors.css +0 -230
  425. package/dist/tokens/motion.css +0 -40
  426. package/dist/tokens/radius.css +0 -10
  427. package/dist/tokens/spacing.css +0 -9
  428. package/dist/tokens/typography.css +0 -119
  429. package/docs/chrome.css +0 -120
  430. package/docs/chrome.tsx +0 -283
  431. package/docs/index.ts +0 -9
  432. package/docs/vite.ts +0 -85
  433. package/index.ts +0 -60
  434. package/lib/date-locale.ts +0 -195
  435. package/lib/field-classes.ts +0 -121
  436. package/lib/field-variants.ts +0 -117
  437. package/lib/fluid-hover-highlight.tsx +0 -139
  438. package/lib/focus-ring.tsx +0 -46
  439. package/lib/goo-indicator.tsx +0 -261
  440. package/lib/icon-context.tsx +0 -310
  441. package/lib/inert.ts +0 -22
  442. package/lib/morph-layers.tsx +0 -102
  443. package/lib/morph-part.tsx +0 -49
  444. package/lib/popup.ts +0 -52
  445. package/lib/reduced-motion.ts +0 -19
  446. package/lib/row-index.tsx +0 -29
  447. package/lib/row-order.tsx +0 -126
  448. package/lib/scroll-column.tsx +0 -273
  449. package/lib/shape-context.tsx +0 -138
  450. package/lib/shape-radius.ts +0 -67
  451. package/lib/size-context.tsx +0 -66
  452. package/lib/size-scale.ts +0 -115
  453. package/lib/slot.ts +0 -115
  454. package/lib/springs.ts +0 -62
  455. package/lib/surface-classes.ts +0 -58
  456. package/lib/surface-context.tsx +0 -21
  457. package/lib/use-controllable-state.ts +0 -44
  458. package/lib/use-fluid-hover.ts +0 -541
  459. package/lib/use-is-mobile.ts +0 -25
  460. package/lib/use-keyboard-nav-gate.ts +0 -45
  461. package/lib/use-merge-split.tsx +0 -209
  462. package/lib/use-morph.ts +0 -557
  463. package/lib/use-touch-primary.tsx +0 -43
  464. package/lib/utils.ts +0 -37
  465. package/preset.ts +0 -199
  466. package/primitives/code/examples.mdx +0 -27
  467. package/primitives/code/index.tsx +0 -80
  468. package/primitives/craft/demos.tsx +0 -173
  469. package/primitives/craft/examples.mdx +0 -142
  470. package/primitives/craft/index.tsx +0 -76
  471. package/primitives/fluid-hover/examples.mdx +0 -84
  472. package/primitives/fluid-hover/index.tsx +0 -316
  473. package/primitives/morph/examples.mdx +0 -139
  474. package/primitives/morph/index.tsx +0 -192
  475. package/primitives/motion/examples.mdx +0 -100
  476. package/primitives/motion/index.tsx +0 -160
  477. package/primitives/scroll-area/examples.mdx +0 -58
  478. package/primitives/scroll-area/index.tsx +0 -204
  479. package/primitives/separator/examples.mdx +0 -30
  480. package/primitives/separator/index.tsx +0 -53
  481. package/primitives/sizes/examples.mdx +0 -167
  482. package/primitives/sizes/index.tsx +0 -89
  483. package/primitives/skeleton/examples.mdx +0 -51
  484. package/primitives/skeleton/index.tsx +0 -72
  485. package/primitives/skeleton/skeleton.css +0 -15
  486. package/primitives/surface/examples.mdx +0 -173
  487. package/primitives/surface/index.tsx +0 -109
  488. package/primitives/surface/surface.css +0 -176
  489. /package/dist/shared/{components-3ey0hzpb.js → components-1v7rxytx.js} +0 -0
  490. /package/dist/shared/{components-jcnjay5g.js → components-ezxhrmer.js} +0 -0
@@ -1,399 +0,0 @@
1
- "use client";
2
- import {
3
- useReduceMotion2
4
- } from "./components-de99ykt7.js";
5
- import {
6
- spring2
7
- } from "./components-3ey0hzpb.js";
8
- import {
9
- cn2
10
- } from "./components-jcnjay5g.js";
11
- import {
12
- FluidHoverHighlight2
13
- } from "./components-qdm3yh26.js";
14
- import {
15
- useIcon2
16
- } from "./components-jqpefjsn.js";
17
- import {
18
- isDisabledRow2
19
- } from "./components-h6p86be3.js";
20
- import {
21
- IndexedRows2,
22
- useRowIndex2
23
- } from "./components-r8eqs7gz.js";
24
- import {
25
- useShape2
26
- } from "./components-71nbt03m.js";
27
- import {
28
- useSize2
29
- } from "./components-h83az0bz.js";
30
- import {
31
- useControllableState2
32
- } from "./components-tz1fv35x.js";
33
- import {
34
- useFluidHover2,
35
- useRegisterFluidHoverItem2
36
- } from "./components-yhgq0qxx.js";
37
- import {
38
- useSelectionRuns2,
39
- useMergeSplitBlocks2,
40
- SelectionBackgrounds2
41
- } from "./components-8tt3xbb5.js";
42
- import {
43
- SizeProvider2
44
- } from "./components-dcc02hs2.js";
45
-
46
- // components/inputs/checkbox/index.tsx
47
- import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
48
- import { AnimatePresence, motion } from "motion/react";
49
- import {
50
- createContext,
51
- forwardRef,
52
- useCallback,
53
- useContext,
54
- useEffect,
55
- useId,
56
- useRef,
57
- useState
58
- } from "react";
59
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
60
- var CheckboxGroupContext = createContext(null);
61
- var CheckboxGroup2 = forwardRef(({
62
- children,
63
- checkedIndices: checkedIndicesProp,
64
- defaultCheckedIndices,
65
- onCheckedIndicesChange,
66
- size,
67
- className,
68
- ...props
69
- }, ref) => {
70
- const containerRef = useRef(null);
71
- const [checkedIndices, setCheckedIndices] = useControllableState2(checkedIndicesProp, new Set(defaultCheckedIndices), onCheckedIndicesChange);
72
- const setItemChecked = useCallback((index, checked) => {
73
- setCheckedIndices((prev) => {
74
- if (prev.has(index) === checked)
75
- return prev;
76
- const next = new Set(prev);
77
- if (checked)
78
- next.add(index);
79
- else
80
- next.delete(index);
81
- return next;
82
- });
83
- }, [setCheckedIndices]);
84
- const hover = useFluidHover2(containerRef, { isItemDisabled: isDisabledRow2 });
85
- const { activeIndex, setActiveIndex, itemRects, handlers, registerItem } = hover;
86
- const checkedGroups = useSelectionRuns2([...checkedIndices]);
87
- const [focusedIndex, setFocusedIndex] = useState(null);
88
- const focusRect = focusedIndex !== null ? itemRects[focusedIndex] : null;
89
- const shape = useShape2();
90
- const blocks = useMergeSplitBlocks2(checkedGroups, itemRects, shape.mergedRadius);
91
- const group = /* @__PURE__ */ jsx(CheckboxGroupContext.Provider, {
92
- value: { registerItem, activeIndex, checkedIndices, setItemChecked },
93
- children: /* @__PURE__ */ jsxs("div", {
94
- ref: (node) => {
95
- containerRef.current = node;
96
- if (typeof ref === "function")
97
- ref(node);
98
- else if (ref)
99
- ref.current = node;
100
- },
101
- onMouseEnter: handlers.onMouseEnter,
102
- onMouseMove: handlers.onMouseMove,
103
- onMouseLeave: handlers.onMouseLeave,
104
- onClick: handlers.onClick,
105
- onFocus: (e) => {
106
- const indexAttr = e.target.closest("[data-fluid-hover-index]")?.getAttribute("data-fluid-hover-index");
107
- if (indexAttr != null) {
108
- const idx = Number(indexAttr);
109
- setActiveIndex(idx);
110
- setFocusedIndex(e.target.matches(":focus-visible") ? idx : null);
111
- }
112
- },
113
- onBlur: (e) => {
114
- if (containerRef.current?.contains(e.relatedTarget))
115
- return;
116
- setFocusedIndex(null);
117
- setActiveIndex(null);
118
- },
119
- onKeyDown: (e) => {
120
- const items = Array.from(containerRef.current?.querySelectorAll('[data-fluid-hover-index]:not([aria-disabled="true"])') ?? []);
121
- const currentIdx = items.indexOf(e.target);
122
- if (currentIdx === -1)
123
- return;
124
- if (["ArrowDown", "ArrowUp"].includes(e.key)) {
125
- e.preventDefault();
126
- const next = e.key === "ArrowDown" ? (currentIdx + 1) % items.length : (currentIdx - 1 + items.length) % items.length;
127
- items[next]?.focus();
128
- } else if (e.key === "Home") {
129
- e.preventDefault();
130
- items[0]?.focus();
131
- } else if (e.key === "End") {
132
- e.preventDefault();
133
- items[items.length - 1]?.focus();
134
- }
135
- },
136
- role: "group",
137
- className: cn2("relative flex flex-col w-72 max-w-full select-none", className),
138
- ...props,
139
- children: [
140
- /* @__PURE__ */ jsx(SelectionBackgrounds2, {
141
- blocks
142
- }),
143
- /* @__PURE__ */ jsx(FluidHoverHighlight2, {
144
- hover,
145
- className: shape.bg
146
- }),
147
- /* @__PURE__ */ jsx(AnimatePresence, {
148
- children: focusRect && /* @__PURE__ */ jsx(motion.div, {
149
- className: `absolute ${shape.focusRing} pointer-events-none z-20 border border-focus-ring`,
150
- initial: false,
151
- animate: {
152
- left: focusRect.left - 2,
153
- top: focusRect.top - 2,
154
- width: focusRect.width + 4,
155
- height: focusRect.height + 4
156
- },
157
- exit: { opacity: 0, transition: spring2.fast.exit },
158
- transition: {
159
- ...spring2.fast,
160
- opacity: { duration: spring2.fast.duration }
161
- }
162
- })
163
- }),
164
- /* @__PURE__ */ jsx(IndexedRows2, {
165
- children
166
- })
167
- ]
168
- })
169
- });
170
- return size ? /* @__PURE__ */ jsx(SizeProvider2, {
171
- size,
172
- children: group
173
- }) : group;
174
- });
175
- CheckboxGroup2.displayName = "CheckboxGroup";
176
- var SHOWN = { opacity: 1, scale: 1, filter: "blur(0px)" };
177
- var HIDDEN = { opacity: 0, scale: 0.6, filter: "blur(4px)" };
178
- var SHOWN_REDUCED = { opacity: 1 };
179
- var HIDDEN_REDUCED = { opacity: 0 };
180
- var swapEnter = { type: "tween", duration: spring2.fast.duration, ease: "easeOut" };
181
- var swapLeave = { type: "tween", ...spring2.fast.exit, ease: "easeIn" };
182
- function CheckboxBox({ checked, indeterminate, active, compact, skipAnimation, bare }) {
183
- const Minus = useIcon2("minus");
184
- const reduced = useReduceMotion2();
185
- const marked = checked || indeterminate;
186
- return /* @__PURE__ */ jsxs(Fragment, {
187
- children: [
188
- /* @__PURE__ */ jsx("div", {
189
- className: cn2("absolute inset-0 border-solid transition-all duration-fast", compact ? "rounded-sm" : "rounded-box", marked ? bare ? "border-[1.5px] border-control" : "border-[1.5px] border-transparent" : active ? "border-[1.5px] border-control" : "border-[1.5px] border-border")
190
- }),
191
- /* @__PURE__ */ jsx(AnimatePresence, {
192
- children: checked && !indeterminate && /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
193
- keepMounted: true,
194
- render: (indicatorProps) => {
195
- const {
196
- style: _s,
197
- onDrag: _onDrag,
198
- onDragStart: _onDragStart,
199
- onDragEnd: _onDragEnd,
200
- onAnimationStart: _onAnimationStart,
201
- onAnimationEnd: _onAnimationEnd,
202
- onAnimationIteration: _onAnimationIteration,
203
- ...rest
204
- } = indicatorProps;
205
- return /* @__PURE__ */ jsx(motion.svg, {
206
- ...rest,
207
- width: compact ? 16 : 18,
208
- height: compact ? 16 : 18,
209
- viewBox: "0 0 24 24",
210
- fill: "none",
211
- stroke: "currentColor",
212
- strokeWidth: 2,
213
- strokeLinecap: "round",
214
- strokeLinejoin: "round",
215
- className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-foreground",
216
- initial: { opacity: 1 },
217
- animate: { opacity: 1 },
218
- exit: { opacity: 1 },
219
- children: /* @__PURE__ */ jsx(motion.path, {
220
- d: "M6 12L10 16L18 8",
221
- initial: { pathLength: skipAnimation ? 1 : 0 },
222
- animate: {
223
- pathLength: 1,
224
- transition: { duration: spring2.fast.duration, ease: "easeOut" }
225
- },
226
- exit: {
227
- pathLength: 0,
228
- transition: { duration: 0.04, ease: "easeIn" }
229
- }
230
- })
231
- });
232
- }
233
- })
234
- }),
235
- /* @__PURE__ */ jsx(motion.span, {
236
- "aria-hidden": true,
237
- className: "pointer-events-none absolute inset-0 flex items-center justify-center text-foreground",
238
- initial: false,
239
- animate: indeterminate ? reduced ? SHOWN_REDUCED : SHOWN : reduced ? HIDDEN_REDUCED : HIDDEN,
240
- transition: indeterminate ? swapEnter : swapLeave,
241
- children: /* @__PURE__ */ jsx(Minus, {
242
- size: compact ? 14 : 16,
243
- strokeWidth: 2
244
- })
245
- })
246
- ]
247
- });
248
- }
249
- var Checkbox2 = forwardRef(({
250
- label,
251
- checked: checkedProp,
252
- defaultChecked = false,
253
- indeterminate: indeterminateProp = false,
254
- onCheckedChange,
255
- onToggle: onToggleProp,
256
- disabled = false,
257
- name,
258
- value,
259
- required = false,
260
- index: indexProp,
261
- size,
262
- className,
263
- ...props
264
- }, ref) => {
265
- const internalRef = useRef(null);
266
- const hasMounted = useRef(false);
267
- const group = useContext(CheckboxGroupContext);
268
- const index = useRowIndex2(indexProp);
269
- const labelId = useId();
270
- const explicit = checkedProp === "indeterminate" ? false : checkedProp;
271
- const [ownChecked, setOwnChecked] = useControllableState2(explicit, defaultChecked, onCheckedChange);
272
- const [hovered, setHovered] = useState(false);
273
- const checked = explicit ?? (group ? group.checkedIndices.has(index) : ownChecked);
274
- const indeterminate = indeterminateProp || checkedProp === "indeterminate";
275
- const onToggle = () => {
276
- if (disabled)
277
- return;
278
- const next = indeterminate || !checked;
279
- onToggleProp?.();
280
- group?.setItemChecked(index, next);
281
- if (next === checked)
282
- onCheckedChange?.(next);
283
- else
284
- setOwnChecked(next);
285
- };
286
- useRegisterFluidHoverItem2(group?.registerItem, index, internalRef);
287
- useEffect(() => {
288
- hasMounted.current = true;
289
- }, []);
290
- const isActive = group ? group.activeIndex === index : hovered;
291
- const skipAnimation = !hasMounted.current;
292
- const shape = useShape2();
293
- const sizeClasses = useSize2(size);
294
- const compact = sizeClasses.variant === "compact";
295
- const setRef = (node) => {
296
- internalRef.current = node;
297
- if (typeof ref === "function")
298
- ref(node);
299
- else if (ref)
300
- ref.current = node;
301
- };
302
- const box = /* @__PURE__ */ jsx(CheckboxBox, {
303
- checked,
304
- indeterminate,
305
- active: isActive,
306
- compact,
307
- skipAnimation,
308
- bare: label === undefined && !group
309
- });
310
- if (label === undefined && !group) {
311
- return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
312
- ref: setRef,
313
- render: /* @__PURE__ */ jsx("div", {}),
314
- checked,
315
- indeterminate,
316
- onCheckedChange: () => onToggle(),
317
- disabled,
318
- name,
319
- value,
320
- required,
321
- onPointerEnter: (e) => {
322
- if (e.pointerType === "mouse")
323
- setHovered(true);
324
- },
325
- onPointerLeave: () => setHovered(false),
326
- className: cn2("relative inline-flex shrink-0 cursor-pointer outline-none transition-[opacity] duration-fast", "focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background", compact ? "size-3.5 rounded-sm" : "size-4 rounded-box", disabled && "opacity-50 pointer-events-none", className),
327
- ...props,
328
- children: box
329
- });
330
- }
331
- return /* @__PURE__ */ jsxs("div", {
332
- ref: setRef,
333
- "data-fluid-hover-index": index,
334
- "data-disabled": disabled || undefined,
335
- tabIndex: disabled ? -1 : 0,
336
- role: "checkbox",
337
- "aria-checked": indeterminate ? "mixed" : checked,
338
- "aria-disabled": disabled || undefined,
339
- "aria-label": typeof label === "string" ? label : undefined,
340
- "aria-labelledby": label !== undefined && typeof label !== "string" ? labelId : undefined,
341
- onClick: onToggle,
342
- onPointerEnter: (e) => {
343
- if (e.pointerType === "mouse")
344
- setHovered(true);
345
- },
346
- onPointerLeave: () => setHovered(false),
347
- onMouseDown: (e) => {
348
- const interactive = e.target.closest('button:not([tabindex="-1"]), a[href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
349
- if (interactive && interactive !== e.currentTarget)
350
- return;
351
- e.preventDefault();
352
- e.currentTarget.focus();
353
- },
354
- onKeyDown: (e) => {
355
- if (e.key === " " || e.key === "Enter") {
356
- e.preventDefault();
357
- onToggle();
358
- }
359
- },
360
- className: cn2(`relative z-10 flex ${sizeClasses.control} items-center ${sizeClasses.gap} ${shape.item} ${sizeClasses.px} cursor-pointer outline-none transition-[opacity] duration-fast`, !group && "focus-visible:ring-1 focus-visible:ring-focus-ring", disabled && "opacity-50 pointer-events-none", className),
361
- ...props,
362
- children: [
363
- /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
364
- checked,
365
- indeterminate,
366
- onCheckedChange: () => onToggle(),
367
- disabled,
368
- name,
369
- value,
370
- required,
371
- tabIndex: -1,
372
- "aria-hidden": true,
373
- className: cn2("relative shrink-0 appearance-none bg-transparent p-0 border-0 outline-none cursor-pointer", compact ? "w-[14px] h-[14px]" : "w-[16px] h-[16px]"),
374
- onClick: (e) => e.stopPropagation(),
375
- children: box
376
- }),
377
- label !== undefined && /* @__PURE__ */ jsxs("span", {
378
- className: cn2("inline-grid", sizeClasses.text),
379
- children: [
380
- /* @__PURE__ */ jsx("span", {
381
- className: "col-start-1 row-start-1 invisible [text-box:trim-both_cap_alphabetic] weight-semibold",
382
- "aria-hidden": "true",
383
- children: label
384
- }),
385
- /* @__PURE__ */ jsx("span", {
386
- id: labelId,
387
- className: cn2("col-start-1 row-start-1 transition-[color,font-variation-settings] duration-fast [text-box:trim-both_cap_alphabetic]", checked || indeterminate || isActive ? "text-foreground" : "text-muted-foreground", checked ? "weight-semibold" : "weight-normal"),
388
- children: label
389
- })
390
- ]
391
- })
392
- ]
393
- });
394
- });
395
- Checkbox2.displayName = "Checkbox";
396
- Object.assign(Checkbox2, { Group: CheckboxGroup2 });
397
- var checkbox_default = Checkbox2;
398
-
399
- export { CheckboxGroup2, Checkbox2, checkbox_default };
@@ -1,298 +0,0 @@
1
- "use client";
2
- import {
3
- cn2
4
- } from "./components-jcnjay5g.js";
5
- import {
6
- GooIndicator2
7
- } from "./components-pw06rbxq.js";
8
- import {
9
- FluidHoverHighlight2
10
- } from "./components-qdm3yh26.js";
11
- import {
12
- useIcon2
13
- } from "./components-jqpefjsn.js";
14
- import {
15
- useShape2
16
- } from "./components-71nbt03m.js";
17
- import {
18
- useSize2
19
- } from "./components-h83az0bz.js";
20
- import {
21
- useControllableState2
22
- } from "./components-tz1fv35x.js";
23
- import {
24
- useFluidHover2,
25
- useRegisterFluidHoverItem2
26
- } from "./components-yhgq0qxx.js";
27
- import {
28
- SizeProvider2
29
- } from "./components-dcc02hs2.js";
30
- import {
31
- button_default
32
- } from "./components-9sttq78t.js";
33
- import {
34
- Input2
35
- } from "./components-mattt5jp.js";
36
- import {
37
- select_default
38
- } from "./components-wqrvqq5p.js";
39
-
40
- // components/navigation/pagination/index.tsx
41
- import { useEffect, useRef, useState } from "react";
42
- import { jsx, jsxs } from "react/jsx-runtime";
43
- var SQUARE = { default: "min-w-9", compact: "min-w-7" };
44
- var FIELD = { default: "w-14", compact: "w-12" };
45
- function slots(page, total, siblings) {
46
- const shown = new Set([1, total]);
47
- for (let p = page - siblings;p <= page + siblings; p++)
48
- if (p >= 1 && p <= total)
49
- shown.add(p);
50
- const result = [];
51
- let previous = 0;
52
- for (const p of [...shown].sort((a, b) => a - b)) {
53
- if (p - previous === 2)
54
- result.push(p - 1);
55
- else if (p - previous > 2)
56
- result.push("gap");
57
- result.push(p);
58
- previous = p;
59
- }
60
- return result;
61
- }
62
- function PageButton({ page, index, current, lit, disabled, register, onSelect }) {
63
- const ref = useRef(null);
64
- const size = useSize2();
65
- const shape = useShape2();
66
- useRegisterFluidHoverItem2(register, index, ref);
67
- return /* @__PURE__ */ jsx("button", {
68
- ref,
69
- type: "button",
70
- "aria-current": current ? "page" : undefined,
71
- disabled,
72
- onClick: () => onSelect(page),
73
- className: cn2("relative z-10 flex cursor-pointer items-center justify-center px-2 tabular-nums outline-none transition-[opacity] duration-fast focus-visible:ring-1 focus-visible:ring-focus-ring disabled:pointer-events-none disabled:opacity-50", size.control, SQUARE[size.variant], shape.button),
74
- children: /* @__PURE__ */ jsxs("span", {
75
- className: cn2("inline-grid", size.text),
76
- children: [
77
- /* @__PURE__ */ jsx("span", {
78
- "aria-hidden": "true",
79
- className: "invisible col-start-1 row-start-1 weight-semibold",
80
- children: page
81
- }),
82
- /* @__PURE__ */ jsx("span", {
83
- className: cn2("col-start-1 row-start-1 transition-[color,font-variation-settings] duration-fast", current || lit ? "text-foreground" : "text-muted-foreground", current ? "weight-semibold" : "weight-normal"),
84
- children: page
85
- })
86
- ]
87
- })
88
- });
89
- }
90
- function PageStrip({ current, total, siblings, disabled, onSelect }) {
91
- const size = useSize2();
92
- const shape = useShape2();
93
- const containerRef = useRef(null);
94
- const hover = useFluidHover2(containerRef, { axis: "x" });
95
- const list = slots(current, total, siblings);
96
- const pages = list.filter((slot) => slot !== "gap");
97
- const measured = hover.isMeasured ? hover.itemRects[pages.indexOf(current)] : undefined;
98
- const lastRect = useRef(measured);
99
- if (measured)
100
- lastRect.current = measured;
101
- return /* @__PURE__ */ jsxs("div", {
102
- ref: containerRef,
103
- ...hover.handlers,
104
- className: "relative flex items-center gap-1",
105
- children: [
106
- lastRect.current && /* @__PURE__ */ jsx(GooIndicator2, {
107
- rect: lastRect.current,
108
- className: cn2("bg-accent", shape.bg),
109
- opacity: disabled ? 0.5 : 1
110
- }),
111
- /* @__PURE__ */ jsx(FluidHoverHighlight2, {
112
- hover,
113
- hidden: disabled,
114
- className: shape.bg
115
- }),
116
- list.map((slot, i) => slot === "gap" ? /* @__PURE__ */ jsx("span", {
117
- "aria-hidden": "true",
118
- className: cn2("flex items-center justify-center text-muted-foreground", size.control, SQUARE[size.variant], size.text),
119
- children: "…"
120
- }, `gap-${i}`) : /* @__PURE__ */ jsx(PageButton, {
121
- page: slot,
122
- index: pages.indexOf(slot),
123
- current: slot === current,
124
- lit: hover.activeIndex === pages.indexOf(slot),
125
- disabled,
126
- register: hover.registerItem,
127
- onSelect
128
- }, slot))
129
- ]
130
- });
131
- }
132
- function PageField({ current, total, disabled, label, onSelect }) {
133
- const size = useSize2();
134
- const [draft, setDraft] = useState(String(current));
135
- useEffect(() => setDraft(String(current)), [current]);
136
- const commit = () => {
137
- const page = Number(draft);
138
- if (Number.isInteger(page) && page >= 1 && page <= total)
139
- onSelect(page);
140
- else
141
- setDraft(String(current));
142
- };
143
- const onKeyDown = (event) => {
144
- if (event.key === "Enter")
145
- commit();
146
- if (event.key === "Escape")
147
- setDraft(String(current));
148
- };
149
- return /* @__PURE__ */ jsxs("div", {
150
- className: cn2("flex items-center", size.gap),
151
- children: [
152
- /* @__PURE__ */ jsx(Input2, {
153
- variant: "bordered",
154
- inputMode: "numeric",
155
- "aria-label": label,
156
- value: draft,
157
- onChange: (value) => setDraft(value.replace(/\D/g, "")),
158
- onKeyDown,
159
- onBlur: commit,
160
- disabled: disabled || total <= 1,
161
- className: cn2("tabular-nums", FIELD[size.variant])
162
- }),
163
- /* @__PURE__ */ jsxs("span", {
164
- className: cn2("whitespace-nowrap tabular-nums text-muted-foreground", size.text),
165
- children: [
166
- "/ ",
167
- total
168
- ]
169
- })
170
- ]
171
- });
172
- }
173
- function Step({ icon, label, disabled, onClick }) {
174
- const size = useSize2();
175
- const Icon = useIcon2(icon);
176
- return /* @__PURE__ */ jsx(button_default, {
177
- variant: "ghost",
178
- size: size.variant === "compact" ? "icon-compact" : "icon",
179
- "aria-label": label,
180
- disabled,
181
- onClick,
182
- children: /* @__PURE__ */ jsx(Icon, {})
183
- });
184
- }
185
- function Pagination2({
186
- pageCount,
187
- page,
188
- defaultPage = 1,
189
- onPageChange,
190
- variant = "pages",
191
- siblings = 1,
192
- edges: edgesProp,
193
- pageSize,
194
- defaultPageSize,
195
- pageSizes = [10, 20, 30, 40, 50],
196
- onPageSizeChange,
197
- disabled = false,
198
- label = "Pagination",
199
- firstLabel = "First page",
200
- previousLabel = "Previous page",
201
- nextLabel = "Next page",
202
- lastLabel = "Last page",
203
- pageLabel = "Page",
204
- pageSizeLabel = "Rows per page",
205
- pageSizeAriaLabel,
206
- size: sizeProp,
207
- className
208
- }) {
209
- const [requested, setCurrent] = useControllableState2(page, defaultPage, onPageChange);
210
- const [rows, setRows] = useControllableState2(pageSize, defaultPageSize ?? pageSizes[0] ?? 10, onPageSizeChange);
211
- const size = useSize2(sizeProp);
212
- const total = Math.max(1, pageCount);
213
- const current = Math.min(Math.max(1, requested), total);
214
- const edges = edgesProp ?? variant === "input";
215
- const withPageSize = pageSize !== undefined || defaultPageSize !== undefined;
216
- const nav = /* @__PURE__ */ jsxs("nav", {
217
- "aria-label": label,
218
- className: cn2("flex flex-wrap items-center", size.gap, className),
219
- children: [
220
- /* @__PURE__ */ jsxs("div", {
221
- className: cn2("flex items-center", size.gap),
222
- children: [
223
- edges && /* @__PURE__ */ jsx(Step, {
224
- icon: "chevrons-left",
225
- label: firstLabel,
226
- disabled: disabled || current <= 1,
227
- onClick: () => setCurrent(1)
228
- }),
229
- /* @__PURE__ */ jsx(Step, {
230
- icon: "chevron-left",
231
- label: previousLabel,
232
- disabled: disabled || current <= 1,
233
- onClick: () => setCurrent(current - 1)
234
- }),
235
- variant === "input" ? /* @__PURE__ */ jsx(PageField, {
236
- current,
237
- total,
238
- disabled,
239
- label: pageLabel,
240
- onSelect: setCurrent
241
- }) : /* @__PURE__ */ jsx(PageStrip, {
242
- current,
243
- total,
244
- siblings,
245
- disabled,
246
- onSelect: setCurrent
247
- }),
248
- /* @__PURE__ */ jsx(Step, {
249
- icon: "chevron-right",
250
- label: nextLabel,
251
- disabled: disabled || current >= total,
252
- onClick: () => setCurrent(current + 1)
253
- }),
254
- edges && /* @__PURE__ */ jsx(Step, {
255
- icon: "chevrons-right",
256
- label: lastLabel,
257
- disabled: disabled || current >= total,
258
- onClick: () => setCurrent(total)
259
- })
260
- ]
261
- }),
262
- withPageSize && /* @__PURE__ */ jsxs("div", {
263
- className: cn2("flex items-center", size.gap),
264
- children: [
265
- pageSizeLabel && /* @__PURE__ */ jsx("span", {
266
- className: cn2("whitespace-nowrap text-muted-foreground", size.text),
267
- children: pageSizeLabel
268
- }),
269
- /* @__PURE__ */ jsxs(select_default, {
270
- value: String(rows),
271
- onValueChange: (value) => setRows(Number(value)),
272
- disabled,
273
- children: [
274
- /* @__PURE__ */ jsx(select_default.Trigger, {
275
- "aria-label": pageSizeAriaLabel || pageSizeLabel || "Rows per page",
276
- className: "min-w-0 tabular-nums"
277
- }),
278
- /* @__PURE__ */ jsx(select_default.Content, {
279
- children: pageSizes.map((option, i) => /* @__PURE__ */ jsx(select_default.Item, {
280
- index: i,
281
- value: String(option),
282
- children: option
283
- }, option))
284
- })
285
- ]
286
- })
287
- ]
288
- })
289
- ]
290
- });
291
- return sizeProp ? /* @__PURE__ */ jsx(SizeProvider2, {
292
- size: sizeProp,
293
- children: nav
294
- }) : nav;
295
- }
296
- var pagination_default = Pagination2;
297
-
298
- export { Pagination2, pagination_default };