@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,89 +1,87 @@
1
- "use client";
2
1
  import {
3
- spring2
4
- } from "./components-3ey0hzpb.js";
5
- import {
6
- opensInPlace2,
7
- inPlaceOffset2,
8
- useMorphOrigin2,
9
- useMorph2
10
- } from "./components-awra5sff.js";
2
+ opensInPlace,
3
+ inPlaceOffset,
4
+ useMorphOrigin,
5
+ useMorph
6
+ } from "./components-hqeq3w9q.js";
11
7
  import {
12
8
  cn2
13
- } from "./components-jcnjay5g.js";
9
+ } from "./components-ezxhrmer.js";
14
10
  import {
15
11
  FluidHoverHighlight2
16
- } from "./components-qdm3yh26.js";
17
- import {
18
- shapeMap2,
19
- useShape2
20
- } from "./components-71nbt03m.js";
12
+ } from "./components-kvr7f9hy.js";
21
13
  import {
22
- FocusRing2
23
- } from "./components-wbbckbw8.js";
14
+ MorphSurface
15
+ } from "./components-0q0sqfh4.js";
24
16
  import {
25
- MorphSurface2
26
- } from "./components-4y816hwp.js";
27
- import {
28
- popupScrollAreaClass2,
29
- popupViewportClass2,
30
- isDisabledRow2
31
- } from "./components-h6p86be3.js";
32
- import {
33
- RowOrderContext2,
34
- useRowOrder2,
35
- useRowSlot2
36
- } from "./components-krtx3m5b.js";
17
+ shapeMap,
18
+ useShape
19
+ } from "./components-cv16mryv.js";
37
20
  import {
38
21
  useSize2
39
- } from "./components-h83az0bz.js";
40
- import {
41
- slotRender2,
42
- slotId2
43
- } from "./components-mrbaxt8q.js";
44
- import {
45
- SURFACE_BG2,
46
- SURFACE_SHADOW2
47
- } from "./components-vf45j12c.js";
22
+ } from "./components-0sn7ypjw.js";
48
23
  import {
24
+ SURFACE_BG,
25
+ SURFACE_SHADOW,
49
26
  useSurface2,
50
27
  SurfaceProvider2
51
- } from "./components-dhgk6mbt.js";
28
+ } from "./components-zx6b6yby.js";
52
29
  import {
53
30
  useFluidHover2,
54
31
  useRegisterFluidHoverItem2
55
- } from "./components-yhgq0qxx.js";
56
- import {
57
- useKeyboardNavGate2
58
- } from "./components-tz4gaf1v.js";
32
+ } from "./components-59efxjd9.js";
59
33
  import {
60
34
  ScrollArea2
61
- } from "./components-ctqmge8t.js";
35
+ } from "./components-b0eac83j.js";
62
36
  import {
63
37
  SizeProvider2
64
- } from "./components-dcc02hs2.js";
38
+ } from "./components-jjw69c4c.js";
39
+ import {
40
+ popupScrollAreaClass,
41
+ popupViewportClass,
42
+ POPUP_NAV_KEYS,
43
+ isDisabledRow
44
+ } from "./components-vynjtrk6.js";
65
45
  import {
66
- triggerVariants2
67
- } from "./components-xdqmt6ed.js";
46
+ spring2
47
+ } from "./components-1v7rxytx.js";
68
48
 
69
49
  // components/inputs/select/index.tsx
70
50
  import { Select as SelectPrimitive } from "@base-ui/react/select";
51
+ import { cva } from "class-variance-authority";
71
52
  import { AnimatePresence, motion } from "motion/react";
72
53
  import {
73
54
  Children,
74
- cloneElement,
75
55
  createContext,
76
56
  forwardRef,
77
57
  isValidElement,
78
- useCallback,
58
+ useCallback as useCallback2,
79
59
  useContext,
80
- useEffect,
60
+ useEffect as useEffect2,
81
61
  useImperativeHandle,
82
62
  useMemo,
83
- useRef,
84
- useState,
85
- version
63
+ useRef as useRef2,
64
+ useState
86
65
  } from "react";
66
+
67
+ // lib/use-keyboard-nav-gate.ts
68
+ import { useCallback, useEffect, useRef } from "react";
69
+ function useKeyboardNavGate(open) {
70
+ const keyboardNavRef = useRef(false);
71
+ useEffect(() => {
72
+ if (!open)
73
+ return;
74
+ const active = document.activeElement;
75
+ keyboardNavRef.current = active instanceof HTMLElement && active.matches(":focus-visible");
76
+ }, [open]);
77
+ const trackKeyboardNav = useCallback((e) => {
78
+ if (POPUP_NAV_KEYS.includes(e.key))
79
+ keyboardNavRef.current = true;
80
+ }, []);
81
+ return { keyboardNavRef, trackKeyboardNav };
82
+ }
83
+
84
+ // components/inputs/select/index.tsx
87
85
  import { jsx, jsxs } from "react/jsx-runtime";
88
86
  var selectionAckMs = 300;
89
87
  var SelectContext = createContext(null);
@@ -94,20 +92,7 @@ function useSelectContext() {
94
92
  return ctx;
95
93
  }
96
94
  var SelectContentContext = createContext(null);
97
- var popupShape = shapeMap2.rounded;
98
- function elementRef(el) {
99
- if (!el)
100
- return;
101
- if (parseInt(version, 10) >= 19)
102
- return el.props.ref;
103
- return el.ref;
104
- }
105
- var ownChildren = (el) => el.props.children;
106
- function itemLabel(asChild, render, children) {
107
- if (asChild && isValidElement(children))
108
- return ownChildren(children);
109
- return children === undefined && render ? ownChildren(render) : children;
110
- }
95
+ var popupShape = shapeMap.rounded;
111
96
  function collectSelectItems(node, out = []) {
112
97
  Children.forEach(node, (child) => {
113
98
  if (!isValidElement(child))
@@ -116,7 +101,7 @@ function collectSelectItems(node, out = []) {
116
101
  if (typeof props.value === "string") {
117
102
  out.push({
118
103
  value: props.value,
119
- label: itemLabel(props.asChild, props.render, props.children) ?? props.value
104
+ label: typeof props.children === "string" ? props.children : props.value
120
105
  });
121
106
  } else if (props.children) {
122
107
  collectSelectItems(props.children, out);
@@ -124,63 +109,41 @@ function collectSelectItems(node, out = []) {
124
109
  });
125
110
  return out;
126
111
  }
127
- function Select2({
128
- children,
129
- value,
130
- defaultValue,
131
- onValueChange,
132
- open: openProp,
133
- defaultOpen = false,
134
- onOpenChange,
135
- disabled = false,
136
- name,
137
- required,
138
- size
139
- }) {
112
+ function Select2({ children, value, defaultValue, onValueChange, disabled = false, name, required, size }) {
140
113
  const [internalValue, setInternalValue] = useState(defaultValue ?? "");
141
- const [internalOpen, setInternalOpen] = useState(defaultOpen);
142
- const { origin, capture } = useMorphOrigin2();
114
+ const [open, setOpen] = useState(false);
115
+ const { origin, capture } = useMorphOrigin();
143
116
  const currentValue = value !== undefined ? value : internalValue;
144
- const controlledOpen = openProp !== undefined;
145
- const open = controlledOpen ? openProp : internalOpen;
146
117
  const items = useMemo(() => collectSelectItems(children), [children]);
147
- const handleValueChange = useCallback((next) => {
118
+ const handleValueChange = useCallback2((next) => {
148
119
  const v = next ?? "";
149
120
  if (value === undefined)
150
121
  setInternalValue(v);
151
122
  onValueChange?.(v);
152
123
  }, [value, onValueChange]);
153
- const ackTimeoutRef = useRef(null);
154
- const cancelAckClose = useCallback(() => {
124
+ const ackTimeoutRef = useRef2(null);
125
+ const cancelAckClose = useCallback2(() => {
155
126
  if (ackTimeoutRef.current !== null) {
156
127
  clearTimeout(ackTimeoutRef.current);
157
128
  ackTimeoutRef.current = null;
158
129
  }
159
130
  }, []);
160
- useEffect(() => cancelAckClose, [cancelAckClose]);
161
- const onOpenChangeRef = useRef(onOpenChange);
162
- onOpenChangeRef.current = onOpenChange;
163
- const controlledOpenRef = useRef(controlledOpen);
164
- controlledOpenRef.current = controlledOpen;
165
- const handleOpenChange = useCallback((nextOpen, eventDetails) => {
131
+ useEffect2(() => cancelAckClose, [cancelAckClose]);
132
+ const handleOpenChange = useCallback2((nextOpen, eventDetails) => {
166
133
  if (nextOpen)
167
134
  capture(eventDetails);
168
- cancelAckClose();
169
- if (!nextOpen && eventDetails.reason === "item-press" && !controlledOpenRef.current) {
135
+ if (!nextOpen && eventDetails.reason === "item-press") {
136
+ cancelAckClose();
170
137
  ackTimeoutRef.current = window.setTimeout(() => {
171
138
  ackTimeoutRef.current = null;
172
- setInternalOpen(false);
173
- onOpenChangeRef.current?.(false, eventDetails);
139
+ setOpen(false);
174
140
  }, selectionAckMs);
175
141
  return;
176
142
  }
177
- if (!controlledOpenRef.current)
178
- setInternalOpen(nextOpen);
179
- onOpenChangeRef.current?.(nextOpen, eventDetails);
143
+ cancelAckClose();
144
+ setOpen(nextOpen);
180
145
  }, [cancelAckClose, capture]);
181
- const picked = items.find((item) => item.value === currentValue)?.label;
182
- const textLabel = picked === undefined || typeof picked === "string" || typeof picked === "number";
183
- const ctx = useMemo(() => ({ value: currentValue, open, origin, textLabel }), [currentValue, open, origin, textLabel]);
146
+ const ctx = useMemo(() => ({ value: currentValue, open, origin }), [currentValue, open, origin]);
184
147
  const root = /* @__PURE__ */ jsx(SelectContext.Provider, {
185
148
  value: ctx,
186
149
  children: /* @__PURE__ */ jsx(SelectPrimitive.Root, {
@@ -202,44 +165,34 @@ function Select2({
202
165
  }) : root;
203
166
  }
204
167
  Select2.displayName = "Select";
205
- var SelectValue2 = forwardRef(({ placeholder = "Select…", className, ...props }, ref) => {
206
- const { textLabel } = useSelectContext();
207
- return /* @__PURE__ */ jsx(SelectPrimitive.Value, {
208
- ref,
209
- placeholder,
210
- className: cn2("min-w-0 flex-1 text-left data-[placeholder]:text-muted-foreground", textLabel ? "truncate [text-box:trim-both_cap_alphabetic] py-1 -my-1" : "flex items-center", className),
211
- ...props
212
- });
168
+ var triggerVariants2 = cva([
169
+ "group inline-flex items-center justify-between outline-none cursor-pointer",
170
+ "transition-all duration-fast",
171
+ "disabled:opacity-50 disabled:pointer-events-none",
172
+ "focus-visible:ring-1 focus-visible:ring-focus-ring"
173
+ ], {
174
+ variants: {
175
+ variant: {
176
+ bordered: "border border-border bg-transparent text-foreground hover:bg-hover",
177
+ borderless: "border border-transparent bg-transparent text-foreground hover:bg-hover"
178
+ }
179
+ },
180
+ defaultVariants: {
181
+ variant: "bordered"
182
+ }
213
183
  });
214
- SelectValue2.displayName = "SelectValue";
215
- var SelectTrigger2 = forwardRef(({
216
- className,
217
- wrapperClassName,
218
- variant,
219
- icon: Icon,
220
- placeholder = "Select…",
221
- error,
222
- size,
223
- render,
224
- asChild,
225
- children,
226
- ...props
227
- }, ref) => {
228
- const shape = useShape2();
184
+ var SelectTrigger2 = forwardRef(({ className, variant, icon: Icon, placeholder = "Select…", error, size, ...props }, ref) => {
185
+ const shape = useShape();
229
186
  const sizeClasses = useSize2(size);
230
187
  const compact = sizeClasses.variant === "compact";
231
- const el = slotRender2(render, asChild, asChild ? children : undefined);
232
- const content = el ? itemLabel(asChild, render, children) : children;
233
188
  return /* @__PURE__ */ jsxs("div", {
234
- className: cn2("flex flex-col gap-1", wrapperClassName),
189
+ className: "flex flex-col gap-1",
235
190
  children: [
236
191
  /* @__PURE__ */ jsxs(SelectPrimitive.Trigger, {
237
192
  ref,
238
- render: el,
239
193
  "aria-invalid": !!error || undefined,
240
- className: el ? cn2("group", className) : cn2(triggerVariants2({ variant }), sizeClasses.control, sizeClasses.text, sizeClasses.px, sizeClasses.gap, compact ? "min-w-[128px]" : "min-w-[160px]", shape.input, error && "border-destructive/50 hover:border-destructive/50", className),
194
+ className: cn2(triggerVariants2({ variant }), sizeClasses.control, sizeClasses.text, sizeClasses.px, sizeClasses.gap, compact ? "min-w-[128px]" : "min-w-[160px]", shape.input, error && "border-destructive/50 hover:border-destructive/50", className),
241
195
  ...props,
242
- id: slotId2(el, props.id),
243
196
  children: [
244
197
  /* @__PURE__ */ jsxs("span", {
245
198
  className: cn2("flex items-center min-w-0 flex-1", sizeClasses.gap),
@@ -249,8 +202,9 @@ var SelectTrigger2 = forwardRef(({
249
202
  strokeWidth: 1.5,
250
203
  className: "shrink-0 text-muted-foreground transition-[color,stroke-width] duration-fast group-hover:text-foreground group-hover:stroke-[2]"
251
204
  }),
252
- content ?? /* @__PURE__ */ jsx(SelectValue2, {
253
- placeholder
205
+ /* @__PURE__ */ jsx(SelectPrimitive.Value, {
206
+ placeholder,
207
+ className: "min-w-0 flex-1 text-left truncate [text-box:trim-both_cap_alphabetic] py-1 -my-1 data-[placeholder]:text-muted-foreground"
254
208
  })
255
209
  ]
256
210
  }),
@@ -278,45 +232,24 @@ var SelectTrigger2 = forwardRef(({
278
232
  });
279
233
  });
280
234
  SelectTrigger2.displayName = "SelectTrigger";
281
- var SelectContent2 = forwardRef(({
282
- from,
283
- effect,
284
- hideSource,
285
- tier = "moderate",
286
- side = "bottom",
287
- align = "start",
288
- sideOffset = 6,
289
- alignOffset,
290
- collisionPadding,
291
- finalFocus,
292
- className,
293
- children,
294
- ...props
295
- }, ref) => {
235
+ var SelectContent2 = forwardRef(({ from, effect, hideSource, tier = "moderate", className, children }, ref) => {
296
236
  const { open, value, origin } = useSelectContext();
297
- const rowOrder = useRowOrder2();
298
- const morph = useMorph2(open, origin, {
299
- from,
300
- effect,
301
- hideSource,
302
- tier,
303
- returnFocus: typeof finalFocus === "boolean" ? finalFocus : finalFocus === undefined
304
- });
237
+ const morph = useMorph(open, origin, { from, effect, hideSource, tier });
305
238
  useImperativeHandle(ref, () => morph.popup, [morph.popup]);
306
239
  const level = Math.min(useSurface2() + 2, 8);
307
240
  const shape = popupShape;
308
- const containerRef = useRef(null);
309
- const hover = useFluidHover2(containerRef, { isItemDisabled: isDisabledRow2 });
241
+ const containerRef = useRef2(null);
242
+ const hover = useFluidHover2(containerRef, { isItemDisabled: isDisabledRow });
310
243
  const { activeIndex, setActiveIndex, itemRects, isMeasured, handlers, registerItem, remeasure } = hover;
311
244
  const [focusedIndex, setFocusedIndex] = useState(null);
312
- const { keyboardNavRef, trackKeyboardNav } = useKeyboardNavGate2(open);
245
+ const { keyboardNavRef, trackKeyboardNav } = useKeyboardNavGate(open);
313
246
  const [checkedIndex, setCheckedIndex] = useState(undefined);
314
- useEffect(() => {
247
+ useEffect2(() => {
315
248
  if (!open)
316
249
  return;
317
250
  remeasure();
318
251
  }, [open, remeasure]);
319
- useEffect(() => {
252
+ useEffect2(() => {
320
253
  if (!open)
321
254
  return;
322
255
  let inner;
@@ -324,8 +257,9 @@ var SelectContent2 = forwardRef(({
324
257
  inner = requestAnimationFrame(() => {
325
258
  const container = containerRef.current;
326
259
  if (container) {
327
- const row = Array.from(container.querySelectorAll("[data-fluid-hover-index]")).find((el) => el.getAttribute("data-value") === value);
328
- setCheckedIndex(row ? Number(row.getAttribute("data-fluid-hover-index")) : undefined);
260
+ const items = Array.from(container.querySelectorAll("[data-fluid-hover-index]"));
261
+ const idx = items.findIndex((el) => el.getAttribute("data-value") === value);
262
+ setCheckedIndex(idx !== -1 ? idx : undefined);
329
263
  }
330
264
  });
331
265
  });
@@ -334,7 +268,7 @@ var SelectContent2 = forwardRef(({
334
268
  cancelAnimationFrame(inner);
335
269
  };
336
270
  }, [open, value]);
337
- useEffect(() => {
271
+ useEffect2(() => {
338
272
  if (open)
339
273
  return;
340
274
  setCheckedIndex(undefined);
@@ -346,19 +280,15 @@ var SelectContent2 = forwardRef(({
346
280
  const contentCtx = useMemo(() => ({ registerItem, activeIndex, checkedIndex }), [registerItem, activeIndex, checkedIndex]);
347
281
  return /* @__PURE__ */ jsx(SelectPrimitive.Portal, {
348
282
  children: /* @__PURE__ */ jsx(SelectPrimitive.Positioner, {
349
- side,
350
- align,
351
- sideOffset: opensInPlace2({ effect, hideSource }) ? inPlaceOffset2 : sideOffset,
352
- alignOffset,
353
- collisionPadding,
283
+ side: "bottom",
284
+ align: "start",
285
+ sideOffset: opensInPlace({ effect, hideSource }) ? inPlaceOffset : 6,
354
286
  alignItemWithTrigger: false,
355
287
  className: "z-50 outline-none",
356
288
  children: /* @__PURE__ */ jsx(SelectContentContext.Provider, {
357
289
  value: contentCtx,
358
290
  children: /* @__PURE__ */ jsx(SelectPrimitive.Popup, {
359
291
  ref: morph.popupRef,
360
- finalFocus,
361
- ...props,
362
292
  onKeyDownCapture: trackKeyboardNav,
363
293
  onMouseEnter: () => {
364
294
  handlers.onMouseEnter();
@@ -384,15 +314,15 @@ var SelectContent2 = forwardRef(({
384
314
  className: "relative select-none outline-none",
385
315
  children: /* @__PURE__ */ jsx(SurfaceProvider2, {
386
316
  value: level,
387
- children: /* @__PURE__ */ jsx(MorphSurface2, {
317
+ children: /* @__PURE__ */ jsx(MorphSurface, {
388
318
  morph,
389
- bg: SURFACE_BG2[level],
390
- shadow: SURFACE_SHADOW2[3],
319
+ bg: SURFACE_BG[level],
320
+ shadow: SURFACE_SHADOW[3],
391
321
  radius: shape.container,
392
322
  className: cn2(`flex flex-col min-w-[var(--anchor-width)] max-h-[min(300px,var(--available-height))] overflow-hidden ${shape.container}`, className),
393
323
  children: /* @__PURE__ */ jsx(ScrollArea2, {
394
- className: popupScrollAreaClass2,
395
- viewportClassName: cn2(popupViewportClass2, "scroll-fade"),
324
+ className: popupScrollAreaClass,
325
+ viewportClassName: cn2(popupViewportClass, "scroll-fade"),
396
326
  children: /* @__PURE__ */ jsxs("div", {
397
327
  ref: containerRef,
398
328
  className: "relative flex flex-col p-1",
@@ -420,14 +350,24 @@ var SelectContent2 = forwardRef(({
420
350
  hidden: !open,
421
351
  className: shape.bg
422
352
  }),
423
- open && /* @__PURE__ */ jsx(FocusRing2, {
424
- rect: focusRect,
425
- shape: "rounded"
353
+ open && /* @__PURE__ */ jsx(AnimatePresence, {
354
+ children: focusRect && /* @__PURE__ */ jsx(motion.div, {
355
+ className: `absolute ${shape.focusRing} pointer-events-none z-20 border border-focus-ring`,
356
+ initial: false,
357
+ animate: {
358
+ left: focusRect.left - 2,
359
+ top: focusRect.top - 2,
360
+ width: focusRect.width + 4,
361
+ height: focusRect.height + 4
362
+ },
363
+ exit: { opacity: 0, transition: spring2.fast.exit },
364
+ transition: {
365
+ ...spring2.fast,
366
+ opacity: { duration: spring2.fast.duration }
367
+ }
368
+ })
426
369
  }),
427
- /* @__PURE__ */ jsx(RowOrderContext2.Provider, {
428
- value: rowOrder,
429
- children
430
- })
370
+ children
431
371
  ]
432
372
  })
433
373
  })
@@ -439,60 +379,38 @@ var SelectContent2 = forwardRef(({
439
379
  });
440
380
  });
441
381
  SelectContent2.displayName = "SelectContent";
442
- var SelectItem2 = forwardRef(({
443
- className,
444
- children: childrenProp,
445
- render,
446
- asChild,
447
- icon: Icon,
448
- value,
449
- index: indexProp,
450
- textValue,
451
- disabled = false,
452
- ...props
453
- }, ref) => {
454
- const el = slotRender2(render, asChild, asChild ? childrenProp : undefined);
455
- const children = itemLabel(asChild, render, childrenProp);
382
+ var SelectItem2 = forwardRef(({ className, children, icon: Icon, value, index, disabled = false, ...props }, ref) => {
456
383
  const selectCtx = useSelectContext();
457
384
  const contentCtx = useContext(SelectContentContext);
458
- const internalRef = useRef(null);
385
+ const internalRef = useRef2(null);
459
386
  const shape = popupShape;
460
387
  const sizeClasses = useSize2();
461
388
  const compact = sizeClasses.variant === "compact";
462
- const hasMounted = useRef(false);
463
- useEffect(() => {
389
+ const hasMounted = useRef2(false);
390
+ useEffect2(() => {
464
391
  hasMounted.current = true;
465
392
  }, []);
466
393
  const registerItem = contentCtx?.registerItem;
467
- const { index } = useRowSlot2(internalRef, indexProp);
468
394
  useRegisterFluidHoverItem2(registerItem, index, internalRef);
469
395
  const isActive = contentCtx?.activeIndex === index;
470
396
  const isChecked = selectCtx.value === value;
471
397
  const skipAnimation = !hasMounted.current;
472
- const rowProps = {
473
- ref: (node) => {
474
- internalRef.current = node;
475
- for (const r of [ref, elementRef(el)]) {
476
- if (typeof r === "function")
477
- r(node);
478
- else if (r)
479
- r.current = node;
480
- }
481
- },
482
- "data-fluid-hover-index": index,
483
- "data-value": value,
484
- className: cn2(`relative z-10 flex ${sizeClasses.control} shrink-0 items-center ${sizeClasses.gap} ${shape.item} ${sizeClasses.itemPx} ${sizeClasses.text} cursor-pointer outline-none select-none`, "transition-[color] duration-fast", isActive || isChecked ? "text-foreground" : "text-muted-foreground", disabled && "opacity-50 pointer-events-none", className),
485
- ...props
486
- };
487
398
  return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
488
399
  value,
489
400
  disabled,
490
- label: textValue ?? (typeof children === "string" ? children : undefined),
491
- render: el ? cloneElement(el, {
492
- ...rowProps,
493
- className: cn2(rowProps.className, el.props.className)
494
- }) : /* @__PURE__ */ jsx("div", {
495
- ...rowProps
401
+ label: typeof children === "string" ? children : undefined,
402
+ render: /* @__PURE__ */ jsx("div", {
403
+ ref: (node) => {
404
+ internalRef.current = node;
405
+ if (typeof ref === "function")
406
+ ref(node);
407
+ else if (ref)
408
+ ref.current = node;
409
+ },
410
+ "data-fluid-hover-index": index,
411
+ "data-value": value,
412
+ className: cn2(`relative z-10 flex ${sizeClasses.control} shrink-0 items-center ${sizeClasses.gap} ${shape.item} ${sizeClasses.itemPx} ${sizeClasses.text} cursor-pointer outline-none select-none`, "transition-[color] duration-fast", isActive || isChecked ? "text-foreground" : "text-muted-foreground", disabled && "opacity-50 pointer-events-none", className),
413
+ ...props
496
414
  }),
497
415
  children: [
498
416
  Icon && /* @__PURE__ */ jsx(Icon, {
@@ -502,7 +420,7 @@ var SelectItem2 = forwardRef(({
502
420
  }),
503
421
  /* @__PURE__ */ jsx(SelectPrimitive.ItemText, {
504
422
  render: /* @__PURE__ */ jsx("span", {
505
- className: cn2("flex-1 min-w-0", typeof children === "string" || typeof children === "number" ? "truncate [text-box:trim-both_cap_alphabetic] py-1 -my-1" : "flex items-center")
423
+ className: "flex-1 min-w-0 truncate [text-box:trim-both_cap_alphabetic] py-1 -my-1"
506
424
  }),
507
425
  children
508
426
  }),
@@ -542,13 +460,14 @@ var SelectItem2 = forwardRef(({
542
460
  });
543
461
  });
544
462
  SelectItem2.displayName = "SelectItem";
545
- var SelectGroup2 = forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
546
- ref,
547
- role: "group",
548
- className,
549
- ...props,
550
- children
551
- }));
463
+ function SelectGroup2({ children, className, ...props }) {
464
+ return /* @__PURE__ */ jsx("div", {
465
+ role: "group",
466
+ className,
467
+ ...props,
468
+ children
469
+ });
470
+ }
552
471
  SelectGroup2.displayName = "SelectGroup";
553
472
  var SelectLabel2 = forwardRef(({ className, ...props }, ref) => {
554
473
  const compact = useSize2().variant === "compact";
@@ -567,7 +486,6 @@ var SelectSeparator2 = forwardRef(({ className, ...props }, ref) => /* @__PURE__
567
486
  }));
568
487
  SelectSeparator2.displayName = "SelectSeparator";
569
488
  Select2.Trigger = SelectTrigger2;
570
- Select2.Value = SelectValue2;
571
489
  Select2.Content = SelectContent2;
572
490
  Select2.Item = SelectItem2;
573
491
  Select2.Group = SelectGroup2;
@@ -575,4 +493,4 @@ Select2.Label = SelectLabel2;
575
493
  Select2.Separator = SelectSeparator2;
576
494
  var select_default = Select2;
577
495
 
578
- export { Select2, SelectValue2, SelectTrigger2, SelectContent2, SelectItem2, SelectGroup2, SelectLabel2, SelectSeparator2, select_default };
496
+ export { Select2, triggerVariants2, SelectTrigger2, SelectContent2, SelectItem2, SelectGroup2, SelectLabel2, SelectSeparator2, select_default };