@justanarthur/modo-ui 0.5.0 → 0.6.0-canary.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 (461) hide show
  1. package/DESIGN.md +608 -0
  2. package/README.md +61 -39
  3. package/blocks/sidebar-app/examples.mdx +33 -0
  4. package/blocks/sidebar-app/index.tsx +218 -0
  5. package/blocks/sidebar-app/inset-topbar.tsx +25 -0
  6. package/blocks/sidebar-app/menu-grid.ts +26 -0
  7. package/blocks/sidebar-app/nav-data.ts +36 -0
  8. package/blocks/sidebar-app/search-field.tsx +48 -0
  9. package/blocks/sidebar-app/user-footer.tsx +67 -0
  10. package/blocks/sidebar-app/workspace-header.tsx +129 -0
  11. package/components/AI/input-message/examples.mdx +124 -0
  12. package/components/AI/input-message/file-thumbnail.tsx +173 -0
  13. package/components/AI/input-message/index.tsx +1383 -0
  14. package/components/AI/thinking-indicator/examples.mdx +27 -0
  15. package/components/AI/thinking-indicator/index.tsx +210 -0
  16. package/components/accordion/examples.mdx +148 -0
  17. package/components/accordion/index.tsx +1034 -0
  18. package/components/avatar/examples.mdx +95 -0
  19. package/components/avatar/index.tsx +129 -0
  20. package/components/badge/change-demo.tsx +29 -0
  21. package/components/badge/examples.mdx +120 -0
  22. package/components/badge/index.tsx +225 -0
  23. package/components/badge/variants.ts +73 -0
  24. package/components/button/examples.mdx +164 -0
  25. package/components/button/index.tsx +416 -0
  26. package/components/button/loading-demo.tsx +25 -0
  27. package/components/button/variants.ts +166 -0
  28. package/components/card/examples.mdx +212 -0
  29. package/components/card/index.tsx +1037 -0
  30. package/components/copy/examples.mdx +87 -0
  31. package/components/copy/index.tsx +482 -0
  32. package/components/inputs/checkbox/examples.mdx +83 -0
  33. package/components/inputs/checkbox/index.tsx +611 -0
  34. package/components/inputs/checkbox/select-all-demo.tsx +48 -0
  35. package/components/inputs/color-picker/examples.mdx +72 -0
  36. package/components/inputs/color-picker/index.tsx +1955 -0
  37. package/components/inputs/color-picker/variants.ts +401 -0
  38. package/components/inputs/combobox/examples.mdx +273 -0
  39. package/components/inputs/combobox/index.tsx +1436 -0
  40. package/components/inputs/combobox/remote-demo.tsx +101 -0
  41. package/components/inputs/date-time/calendar/examples.mdx +34 -0
  42. package/components/inputs/date-time/calendar/index.tsx +351 -0
  43. package/components/inputs/date-time/calendar/use-month-window.ts +163 -0
  44. package/components/inputs/date-time/date-picker/examples.mdx +166 -0
  45. package/components/inputs/date-time/date-picker/index.tsx +385 -0
  46. package/components/inputs/date-time/date-picker/masked-date-input.tsx +336 -0
  47. package/components/inputs/date-time/date-range-picker/examples.mdx +29 -0
  48. package/components/inputs/date-time/date-range-picker/index.tsx +217 -0
  49. package/components/inputs/date-time/duration-picker/examples.mdx +16 -0
  50. package/components/inputs/date-time/duration-picker/index.tsx +189 -0
  51. package/components/inputs/date-time/month-picker/examples.mdx +16 -0
  52. package/components/inputs/date-time/month-picker/index.tsx +190 -0
  53. package/components/inputs/date-time/picker-shell.tsx +395 -0
  54. package/components/inputs/date-time/time-columns.tsx +91 -0
  55. package/components/inputs/date-time/time-picker/examples.mdx +26 -0
  56. package/components/inputs/date-time/time-picker/index.tsx +166 -0
  57. package/components/inputs/field/examples.mdx +113 -0
  58. package/components/inputs/field/index.tsx +267 -0
  59. package/components/inputs/file-dropzone/examples.mdx +73 -0
  60. package/components/inputs/file-dropzone/file-row.tsx +201 -0
  61. package/components/inputs/file-dropzone/index.tsx +296 -0
  62. package/components/inputs/file-dropzone/upload-demo.tsx +67 -0
  63. package/components/inputs/file-dropzone/variants.ts +94 -0
  64. package/components/inputs/input/examples.mdx +135 -0
  65. package/components/inputs/input/index.tsx +494 -0
  66. package/components/inputs/input/password-demo.tsx +30 -0
  67. package/components/inputs/label/examples.mdx +67 -0
  68. package/components/inputs/label/index.tsx +85 -0
  69. package/components/inputs/number-input/examples.mdx +56 -0
  70. package/components/inputs/number-input/index.tsx +214 -0
  71. package/components/inputs/radio/examples.mdx +77 -0
  72. package/components/inputs/radio/index.tsx +636 -0
  73. package/components/inputs/search/examples.mdx +74 -0
  74. package/components/inputs/search/index.tsx +333 -0
  75. package/components/inputs/select/examples.mdx +218 -0
  76. package/components/inputs/select/index.tsx +862 -0
  77. package/components/inputs/select/variants.ts +32 -0
  78. package/components/inputs/slider/examples.mdx +127 -0
  79. package/components/inputs/slider/index.tsx +1725 -0
  80. package/components/inputs/switch/examples.mdx +94 -0
  81. package/components/inputs/switch/index.tsx +504 -0
  82. package/components/inputs/textarea/examples.mdx +88 -0
  83. package/components/inputs/textarea/index.tsx +161 -0
  84. package/components/navigation/navigation-menu/examples.mdx +109 -0
  85. package/components/navigation/navigation-menu/index.tsx +613 -0
  86. package/components/navigation/pagination/examples.mdx +64 -0
  87. package/components/navigation/pagination/index.tsx +395 -0
  88. package/components/navigation/sidebar/examples.mdx +319 -0
  89. package/components/navigation/sidebar/index.tsx +453 -0
  90. package/components/navigation/sidebar/sidebar-core.tsx +1408 -0
  91. package/components/navigation/sidebar/sidebar-menu.tsx +1495 -0
  92. package/components/navigation/sidebar/sidebar.css +74 -0
  93. package/components/navigation/sidebar/variants.ts +55 -0
  94. package/components/navigation/tabs/examples.mdx +89 -0
  95. package/components/navigation/tabs/index.tsx +494 -0
  96. package/components/navigation/tabs-subtle/examples.mdx +49 -0
  97. package/components/navigation/tabs-subtle/index.tsx +512 -0
  98. package/components/overlays/alert-dialog/examples.mdx +123 -0
  99. package/components/overlays/alert-dialog/index.tsx +258 -0
  100. package/components/overlays/alert-dialog/pending-demo.tsx +36 -0
  101. package/components/overlays/command/examples.mdx +113 -0
  102. package/components/overlays/command/index.tsx +416 -0
  103. package/components/overlays/context-menu/examples.mdx +56 -0
  104. package/components/overlays/context-menu/index.tsx +279 -0
  105. package/components/overlays/dialog/examples.mdx +144 -0
  106. package/components/overlays/dialog/index.tsx +366 -0
  107. package/components/overlays/dropdown/dropdown-search.tsx +395 -0
  108. package/components/overlays/dropdown/examples.mdx +294 -0
  109. package/components/overlays/dropdown/index.tsx +1168 -0
  110. package/components/overlays/dropdown/menu-item.tsx +464 -0
  111. package/components/overlays/dropdown/menu-parts.tsx +660 -0
  112. package/components/overlays/popover/anchored-demo.tsx +59 -0
  113. package/components/overlays/popover/examples.mdx +180 -0
  114. package/components/overlays/popover/index.tsx +315 -0
  115. package/components/overlays/preview-card/examples.mdx +61 -0
  116. package/components/overlays/preview-card/index.tsx +204 -0
  117. package/components/overlays/sheet/examples.mdx +89 -0
  118. package/components/overlays/sheet/index.tsx +247 -0
  119. package/components/overlays/toast/examples.mdx +68 -0
  120. package/components/overlays/toast/global-demo.tsx +72 -0
  121. package/components/overlays/toast/index.tsx +474 -0
  122. package/components/overlays/toast/manager.ts +193 -0
  123. package/components/overlays/tooltip/examples.mdx +106 -0
  124. package/components/overlays/tooltip/index.tsx +519 -0
  125. package/components/progress/examples.mdx +59 -0
  126. package/components/progress/index.tsx +174 -0
  127. package/components/progress/progress.css +49 -0
  128. package/components/progress/step-demo.tsx +27 -0
  129. package/components/table/examples.mdx +184 -0
  130. package/components/table/index.tsx +510 -0
  131. package/components/table/sort-demo.tsx +61 -0
  132. package/dist/base.css +100 -0
  133. package/dist/blocks/sidebar-app/index.js +39 -26
  134. package/dist/components/AI/input-message/index.js +22 -16
  135. package/dist/components/AI/thinking-indicator/index.js +9 -6
  136. package/dist/components/accordion/index.js +16 -13
  137. package/dist/components/avatar/index.d.ts +46 -0
  138. package/dist/components/avatar/index.js +18 -0
  139. package/dist/components/badge/index.d.ts +18 -11
  140. package/dist/components/badge/index.js +11 -7
  141. package/dist/components/badge/variants.d.ts +33 -0
  142. package/dist/components/badge/variants.js +10 -0
  143. package/dist/components/button/index.d.ts +53 -17
  144. package/dist/components/button/index.js +10 -6
  145. package/dist/components/button/variants.d.ts +39 -0
  146. package/dist/components/button/variants.js +8 -0
  147. package/dist/components/card/index.d.ts +16 -3
  148. package/dist/components/card/index.js +16 -11
  149. package/dist/components/copy/index.js +13 -9
  150. package/dist/components/inputs/checkbox/index.d.ts +28 -9
  151. package/dist/components/inputs/checkbox/index.js +17 -13
  152. package/dist/components/inputs/color-picker/index.d.ts +13 -13
  153. package/dist/components/inputs/color-picker/index.js +25 -18
  154. package/dist/components/inputs/color-picker/variants.d.ts +61 -0
  155. package/dist/components/inputs/color-picker/variants.js +28 -0
  156. package/dist/components/inputs/combobox/index.d.ts +60 -17
  157. package/dist/components/inputs/combobox/index.js +26 -18
  158. package/dist/components/inputs/date-time/calendar/index.js +14 -11
  159. package/dist/components/inputs/date-time/date-picker/index.d.ts +53 -11
  160. package/dist/components/inputs/date-time/date-picker/index.js +33 -25
  161. package/dist/components/inputs/date-time/date-range-picker/index.d.ts +3 -3
  162. package/dist/components/inputs/date-time/date-range-picker/index.js +32 -24
  163. package/dist/components/inputs/date-time/duration-picker/index.d.ts +3 -3
  164. package/dist/components/inputs/date-time/duration-picker/index.js +32 -24
  165. package/dist/components/inputs/date-time/month-picker/index.d.ts +3 -3
  166. package/dist/components/inputs/date-time/month-picker/index.js +31 -23
  167. package/dist/components/inputs/date-time/time-picker/index.d.ts +3 -3
  168. package/dist/components/inputs/date-time/time-picker/index.js +32 -24
  169. package/dist/components/inputs/field/index.d.ts +116 -0
  170. package/dist/components/inputs/field/index.js +28 -0
  171. package/dist/components/inputs/file-dropzone/index.d.ts +165 -0
  172. package/dist/components/inputs/file-dropzone/index.js +32 -0
  173. package/dist/components/inputs/file-dropzone/variants.d.ts +35 -0
  174. package/dist/components/inputs/file-dropzone/variants.js +12 -0
  175. package/dist/components/inputs/input/index.d.ts +95 -13
  176. package/dist/components/inputs/input/index.js +17 -9
  177. package/dist/components/inputs/label/index.d.ts +32 -0
  178. package/dist/components/inputs/label/index.js +11 -0
  179. package/dist/components/inputs/number-input/index.d.ts +84 -0
  180. package/dist/components/inputs/number-input/index.js +20 -0
  181. package/dist/components/inputs/radio/index.d.ts +20 -5
  182. package/dist/components/inputs/radio/index.js +15 -12
  183. package/dist/components/inputs/search/index.js +25 -18
  184. package/dist/components/inputs/select/index.d.ts +41 -11
  185. package/dist/components/inputs/select/index.js +27 -14
  186. package/dist/components/inputs/select/variants.d.ts +5 -0
  187. package/dist/components/inputs/select/variants.js +6 -0
  188. package/dist/components/inputs/slider/index.js +7 -5
  189. package/dist/components/inputs/switch/index.d.ts +8 -2
  190. package/dist/components/inputs/switch/index.js +14 -12
  191. package/dist/components/inputs/textarea/index.d.ts +4 -0
  192. package/dist/components/inputs/textarea/index.js +8 -6
  193. package/dist/components/navigation/navigation-menu/index.d.ts +114 -0
  194. package/dist/components/navigation/navigation-menu/index.js +40 -0
  195. package/dist/components/navigation/pagination/index.d.ts +73 -0
  196. package/dist/components/navigation/pagination/index.js +39 -0
  197. package/dist/components/navigation/sidebar/index.d.ts +44 -21
  198. package/dist/components/navigation/sidebar/index.js +41 -31
  199. package/dist/components/navigation/sidebar/variants.d.ts +25 -0
  200. package/dist/components/navigation/sidebar/variants.js +28 -0
  201. package/dist/components/navigation/tabs/index.d.ts +8 -2
  202. package/dist/components/navigation/tabs/index.js +14 -10
  203. package/dist/components/navigation/tabs-subtle/index.js +12 -10
  204. package/dist/components/overlays/alert-dialog/index.d.ts +121 -15
  205. package/dist/components/overlays/alert-dialog/index.js +22 -13
  206. package/dist/components/overlays/command/index.js +24 -17
  207. package/dist/components/overlays/context-menu/index.d.ts +33 -17
  208. package/dist/components/overlays/context-menu/index.js +27 -18
  209. package/dist/components/overlays/dialog/index.js +17 -12
  210. package/dist/components/overlays/dropdown/index.d.ts +257 -31
  211. package/dist/components/overlays/dropdown/index.js +42 -17
  212. package/dist/components/overlays/popover/index.d.ts +31 -9
  213. package/dist/components/overlays/popover/index.js +12 -9
  214. package/dist/components/overlays/preview-card/index.js +11 -8
  215. package/dist/components/overlays/sheet/index.js +18 -13
  216. package/dist/components/overlays/toast/index.d.ts +123 -47
  217. package/dist/components/overlays/toast/index.js +18 -10
  218. package/dist/components/overlays/tooltip/index.d.ts +113 -21
  219. package/dist/components/overlays/tooltip/index.js +15 -6
  220. package/dist/components/progress/index.d.ts +56 -0
  221. package/dist/components/progress/index.js +15 -0
  222. package/dist/components/table/index.d.ts +63 -8
  223. package/dist/components/table/index.js +19 -9
  224. package/dist/index.d.ts +2201 -736
  225. package/dist/index.js +223 -82
  226. package/dist/lib/date-locale.d.ts +14 -0
  227. package/dist/lib/date-locale.js +16 -0
  228. package/dist/lib/field-classes.d.ts +144 -0
  229. package/dist/lib/field-classes.js +40 -0
  230. package/dist/lib/field-variants.d.ts +47 -0
  231. package/dist/lib/field-variants.js +26 -0
  232. package/dist/lib/fluid-hover-highlight.d.ts +112 -0
  233. package/dist/lib/fluid-hover-highlight.js +17 -0
  234. package/dist/lib/focus-ring.d.ts +18 -0
  235. package/dist/lib/focus-ring.js +10 -0
  236. package/dist/lib/goo-indicator.d.ts +46 -0
  237. package/dist/lib/goo-indicator.js +14 -0
  238. package/dist/lib/icon-context.d.ts +30 -0
  239. package/dist/lib/icon-context.js +12 -0
  240. package/dist/lib/inert.d.ts +9 -0
  241. package/dist/lib/inert.js +8 -0
  242. package/dist/lib/morph-layers.d.ts +93 -0
  243. package/dist/lib/morph-layers.js +13 -0
  244. package/dist/lib/morph-part.d.ts +21 -0
  245. package/dist/lib/morph-part.js +12 -0
  246. package/dist/lib/popup.d.ts +20 -0
  247. package/dist/lib/popup.js +12 -0
  248. package/dist/lib/reduced-motion.d.ts +9 -0
  249. package/dist/lib/reduced-motion.js +6 -0
  250. package/dist/lib/row-index.d.ts +10 -0
  251. package/dist/lib/row-index.js +8 -0
  252. package/dist/lib/row-order.d.ts +28 -0
  253. package/dist/lib/row-order.js +10 -0
  254. package/dist/lib/scroll-column.d.ts +27 -0
  255. package/dist/lib/scroll-column.js +18 -0
  256. package/dist/lib/shape-context.d.ts +30 -0
  257. package/dist/lib/shape-context.js +12 -0
  258. package/dist/lib/size-context.d.ts +94 -0
  259. package/dist/lib/size-context.js +20 -0
  260. package/dist/lib/size-scale.d.ts +79 -0
  261. package/dist/lib/size-scale.js +8 -0
  262. package/dist/lib/slot.d.ts +12 -0
  263. package/dist/lib/slot.js +6 -0
  264. package/dist/lib/springs.d.ts +44 -0
  265. package/dist/lib/springs.js +8 -0
  266. package/dist/lib/surface-classes.d.ts +19 -0
  267. package/dist/lib/surface-classes.js +10 -0
  268. package/dist/lib/surface-context.d.ts +9 -0
  269. package/dist/lib/surface-context.js +8 -0
  270. package/dist/lib/use-controllable-state.d.ts +2 -0
  271. package/dist/lib/use-controllable-state.js +6 -0
  272. package/dist/lib/use-fluid-hover.d.ts +138 -0
  273. package/dist/lib/use-fluid-hover.js +14 -0
  274. package/dist/lib/use-is-mobile.d.ts +2 -0
  275. package/dist/lib/use-is-mobile.js +6 -0
  276. package/dist/lib/use-keyboard-nav-gate.d.ts +20 -0
  277. package/dist/lib/use-keyboard-nav-gate.js +7 -0
  278. package/dist/lib/use-merge-split.d.ts +47 -0
  279. package/dist/lib/use-merge-split.js +15 -0
  280. package/dist/lib/use-morph.d.ts +101 -0
  281. package/dist/lib/use-morph.js +20 -0
  282. package/dist/lib/use-touch-primary.d.ts +2 -0
  283. package/dist/lib/use-touch-primary.js +6 -0
  284. package/dist/lib/utils.d.ts +3 -0
  285. package/dist/lib/utils.js +6 -0
  286. package/dist/preset.d.ts +17 -0
  287. package/dist/preset.js +22 -2
  288. package/dist/primitives/code/index.js +7 -5
  289. package/dist/primitives/craft/index.js +9 -6
  290. package/dist/primitives/fluid-hover/index.js +9 -8
  291. package/dist/primitives/morph/index.js +15 -10
  292. package/dist/primitives/motion/index.js +10 -8
  293. package/dist/primitives/scroll-area/index.js +4 -3
  294. package/dist/primitives/separator/index.d.ts +25 -0
  295. package/dist/primitives/separator/index.js +9 -0
  296. package/dist/primitives/sizes/index.js +6 -4
  297. package/dist/primitives/skeleton/index.d.ts +35 -0
  298. package/dist/primitives/skeleton/index.js +12 -0
  299. package/dist/primitives/surface/index.js +6 -4
  300. package/dist/shared/{components-3mkepka5.js → components-0jmqhx2k.js} +28 -25
  301. package/dist/shared/components-124epb7f.js +53 -0
  302. package/dist/shared/{components-gz8zf3ec.js → components-1k0wv53d.js} +15 -43
  303. package/dist/shared/components-26snnbs9.js +322 -0
  304. package/dist/shared/{components-2dxkv6zm.js → components-2c0qcfx4.js} +8 -7
  305. package/dist/shared/{components-473g814w.js → components-2mt9te6d.js} +243 -137
  306. package/dist/shared/{components-hawvy2qz.js → components-2z48g4fp.js} +9 -30
  307. package/dist/shared/components-34txk9rj.js +35 -0
  308. package/dist/shared/components-3h92d94m.js +23 -0
  309. package/dist/shared/{components-zfnmn5d4.js → components-3sp623ae.js} +36 -31
  310. package/dist/shared/{components-jwst3vtj.js → components-3wxkjgqn.js} +186 -76
  311. package/dist/shared/{components-s2bz1xpk.js → components-49bsynbw.js} +8 -5
  312. package/dist/shared/components-4bwsd46w.js +71 -0
  313. package/dist/shared/components-4n4f5m3e.js +297 -0
  314. package/dist/shared/{components-0q0sqfh4.js → components-4y816hwp.js} +27 -49
  315. package/dist/shared/components-52ngsgca.js +399 -0
  316. package/dist/shared/{components-y9y0g8er.js → components-52r5763g.js} +22 -19
  317. package/dist/shared/components-559tf7yb.js +28 -0
  318. package/dist/shared/components-5mkga9hj.js +440 -0
  319. package/dist/shared/{components-kwa6mrf9.js → components-5s0nfqvw.js} +14 -9
  320. package/dist/shared/{components-dk0gjr5a.js → components-60atskhp.js} +19 -18
  321. package/dist/shared/{components-rr7a6ja9.js → components-658b26nb.js} +21 -18
  322. package/dist/shared/{components-xxvdw7k1.js → components-65vwfjs6.js} +37 -34
  323. package/dist/shared/{components-frw34b65.js → components-6j2fh74k.js} +114 -123
  324. package/dist/shared/components-6zg1yft7.js +167 -0
  325. package/dist/shared/components-6zng858q.js +53 -0
  326. package/dist/shared/components-72w4ge68.js +64 -0
  327. package/dist/shared/{components-cv16mryv.js → components-78x40gee.js} +13 -7
  328. package/dist/shared/{components-b2wyq2cq.js → components-7d4r7hh1.js} +39 -57
  329. package/dist/shared/components-7ntvvegr.js +316 -0
  330. package/dist/shared/components-8nwsqjn8.js +34 -0
  331. package/dist/shared/{components-5xc2j8jz.js → components-8tt3xbb5.js} +19 -18
  332. package/dist/shared/{components-vc7vq5nz.js → components-9as3rf68.js} +6 -3
  333. package/dist/shared/components-9mys9jna.js +255 -0
  334. package/dist/shared/components-adkarj8n.js +35 -0
  335. package/dist/shared/{components-b3c5et5b.js → components-ae9fncz4.js} +32 -31
  336. package/dist/shared/{components-hqeq3w9q.js → components-awra5sff.js} +24 -16
  337. package/dist/shared/components-b1e239g3.js +28 -0
  338. package/dist/shared/{components-q5xj5c16.js → components-b1f2bjf1.js} +9 -8
  339. package/dist/shared/{components-qmmjx1qw.js → components-bn42vq6d.js} +71 -72
  340. package/dist/shared/components-c96g82th.js +1444 -0
  341. package/dist/shared/components-c9yr4ed1.js +44 -0
  342. package/dist/shared/components-d3shbwqq.js +95 -0
  343. package/dist/shared/{components-jjw69c4c.js → components-dcc02hs2.js} +7 -4
  344. package/dist/shared/{components-men63rwj.js → components-de99ykt7.js} +3 -2
  345. package/dist/shared/components-dhgk6mbt.js +16 -0
  346. package/dist/shared/components-drxrtnp2.js +25 -0
  347. package/dist/shared/{components-6p8tfcd6.js → components-ds9fqat9.js} +21 -18
  348. package/dist/shared/{components-mjthm1kf.js → components-egy4tyjt.js} +11 -8
  349. package/dist/shared/components-f0xfpkhh.js +82 -0
  350. package/dist/shared/components-f7h57m6t.js +59 -0
  351. package/dist/shared/{components-d6xtjht3.js → components-fjkpbg6n.js} +33 -30
  352. package/dist/shared/{components-gc5vtq2f.js → components-gh0qeey3.js} +63 -29
  353. package/dist/shared/{components-39jq9va1.js → components-gvbapfen.js} +29 -24
  354. package/dist/shared/{components-5vgpnxgy.js → components-gzesg7hy.js} +19 -16
  355. package/dist/shared/components-h6p86be3.js +19 -0
  356. package/dist/shared/components-h83az0bz.js +33 -0
  357. package/dist/shared/components-jjrj6ymn.js +104 -0
  358. package/dist/shared/{components-wvp1m52g.js → components-jp5v0m0f.js} +15 -14
  359. package/dist/shared/{components-zrkzcayz.js → components-jqpefjsn.js} +54 -6
  360. package/dist/shared/{components-1z6tdadk.js → components-k74j4hwh.js} +20 -17
  361. package/dist/shared/components-kswxnm3h.js +24 -0
  362. package/dist/shared/{components-jbbmdr74.js → components-mkkbbgb7.js} +36 -17
  363. package/dist/shared/{components-pbmqctfa.js → components-mpw667rb.js} +169 -65
  364. package/dist/shared/{components-s5ngg32c.js → components-paa08427.js} +121 -47
  365. package/dist/shared/{components-vfbhxf5r.js → components-pd42emw3.js} +6 -5
  366. package/dist/shared/{components-hw9yk32z.js → components-pmfszv7a.js} +35 -23
  367. package/dist/shared/{components-chacnk61.js → components-pw06rbxq.js} +19 -19
  368. package/dist/shared/components-q03cktx8.js +246 -0
  369. package/dist/shared/{components-kvr7f9hy.js → components-qdm3yh26.js} +19 -10
  370. package/dist/shared/{components-27nnvrwe.js → components-qs4rkqsj.js} +15 -14
  371. package/dist/shared/{components-s083f38z.js → components-r6gbmkew.js} +22 -21
  372. package/dist/shared/{components-ta7shw28.js → components-r8eqs7gz.js} +4 -4
  373. package/dist/shared/{components-sn1rxx1d.js → components-rm02h9nt.js} +12 -11
  374. package/dist/shared/{components-c6s6b43g.js → components-rrbpmfx4.js} +3 -2
  375. package/dist/shared/{components-n7mjr357.js → components-tz1fv35x.js} +3 -2
  376. package/dist/shared/components-tz4gaf1v.js +23 -0
  377. package/dist/shared/{components-zx6b6yby.js → components-vf45j12c.js} +4 -18
  378. package/dist/shared/{components-3ky44908.js → components-vfjc9jzz.js} +2 -3
  379. package/dist/shared/{components-39vmfq9s.js → components-vsa625vk.js} +21 -20
  380. package/dist/shared/components-wawnmkph.js +500 -0
  381. package/dist/shared/components-wktrrb4m.js +38 -0
  382. package/dist/shared/{components-8snj490h.js → components-wwd363me.js} +78 -32
  383. package/dist/shared/{components-5pnw8183.js → components-xcwvgcrd.js} +23 -22
  384. package/dist/shared/components-xdqmt6ed.js +20 -0
  385. package/dist/shared/{components-h2ajmhwn.js → components-y1w3a6wx.js} +107 -35
  386. package/dist/shared/{components-ar66gnt0.js → components-y6578b8h.js} +37 -34
  387. package/dist/shared/{components-59efxjd9.js → components-yhgq0qxx.js} +13 -12
  388. package/dist/shared/{components-jthe1pwb.js → components-yz84gpkq.js} +101 -404
  389. package/dist/shared/components-z3v0n0de.js +11 -0
  390. package/dist/shared/{components-7r3etddy.js → components-z9n19fyk.js} +19 -54
  391. package/dist/shared/components-zbvjzh1p.js +141 -0
  392. package/dist/styles.css +241 -16
  393. package/dist/tailwind.css +13 -0
  394. package/dist/tokens.css +34 -0
  395. package/index.ts +60 -0
  396. package/lib/date-locale.ts +50 -0
  397. package/lib/field-classes.ts +115 -0
  398. package/lib/field-variants.ts +117 -0
  399. package/lib/fluid-hover-highlight.tsx +139 -0
  400. package/lib/focus-ring.tsx +46 -0
  401. package/lib/goo-indicator.tsx +261 -0
  402. package/lib/icon-context.tsx +310 -0
  403. package/lib/inert.ts +22 -0
  404. package/lib/morph-layers.tsx +102 -0
  405. package/lib/morph-part.tsx +49 -0
  406. package/lib/popup.ts +52 -0
  407. package/lib/reduced-motion.ts +19 -0
  408. package/lib/row-index.tsx +29 -0
  409. package/lib/row-order.tsx +115 -0
  410. package/lib/scroll-column.tsx +244 -0
  411. package/lib/shape-context.tsx +124 -0
  412. package/lib/size-context.tsx +66 -0
  413. package/lib/size-scale.ts +115 -0
  414. package/lib/slot.ts +25 -0
  415. package/lib/springs.ts +62 -0
  416. package/lib/surface-classes.ts +58 -0
  417. package/lib/surface-context.tsx +21 -0
  418. package/lib/use-controllable-state.ts +44 -0
  419. package/lib/use-fluid-hover.ts +541 -0
  420. package/lib/use-is-mobile.ts +25 -0
  421. package/lib/use-keyboard-nav-gate.ts +45 -0
  422. package/lib/use-merge-split.tsx +209 -0
  423. package/lib/use-morph.ts +557 -0
  424. package/lib/use-touch-primary.tsx +43 -0
  425. package/lib/utils.ts +37 -0
  426. package/package.json +177 -4
  427. package/preset.ts +196 -0
  428. package/primitives/code/examples.mdx +27 -0
  429. package/primitives/code/index.tsx +80 -0
  430. package/primitives/craft/demos.tsx +173 -0
  431. package/primitives/craft/examples.mdx +138 -0
  432. package/primitives/craft/index.tsx +76 -0
  433. package/primitives/fluid-hover/examples.mdx +84 -0
  434. package/primitives/fluid-hover/index.tsx +316 -0
  435. package/primitives/morph/examples.mdx +135 -0
  436. package/primitives/morph/index.tsx +192 -0
  437. package/primitives/motion/examples.mdx +100 -0
  438. package/primitives/motion/index.tsx +160 -0
  439. package/primitives/scroll-area/examples.mdx +58 -0
  440. package/primitives/scroll-area/index.tsx +200 -0
  441. package/primitives/separator/examples.mdx +30 -0
  442. package/primitives/separator/index.tsx +53 -0
  443. package/primitives/sizes/examples.mdx +167 -0
  444. package/primitives/sizes/index.tsx +89 -0
  445. package/primitives/skeleton/examples.mdx +51 -0
  446. package/primitives/skeleton/index.tsx +72 -0
  447. package/primitives/skeleton/skeleton.css +15 -0
  448. package/primitives/surface/examples.mdx +173 -0
  449. package/primitives/surface/index.tsx +109 -0
  450. package/primitives/surface/surface.css +176 -0
  451. package/dist/shared/components-0sn7ypjw.js +0 -61
  452. package/dist/shared/components-1434p1mh.js +0 -123
  453. package/dist/shared/components-a86dytt0.js +0 -986
  454. package/dist/shared/components-gf5s6ap9.js +0 -42
  455. package/dist/shared/components-hyq23phv.js +0 -310
  456. package/dist/shared/components-ng72k97e.js +0 -128
  457. package/dist/shared/components-raknhppb.js +0 -64
  458. package/dist/shared/components-vynjtrk6.js +0 -19
  459. package/dist/shared/components-wy9jpqny.js +0 -146
  460. /package/dist/shared/{components-1v7rxytx.js → components-3ey0hzpb.js} +0 -0
  461. /package/dist/shared/{components-ezxhrmer.js → components-jcnjay5g.js} +0 -0
@@ -0,0 +1,138 @@
1
+ import { Dispatch, MutableRefObject, RefObject, SetStateAction } from "react";
2
+ interface ItemRect {
3
+ top: number;
4
+ height: number;
5
+ left: number;
6
+ width: number;
7
+ }
8
+ interface UseFluidHoverOptions {
9
+ /**
10
+ * Which direction to resolve the nearest item along.
11
+ * "y" — vertical lists (default): closest by top/height
12
+ * "x" — horizontal strips: closest by left/width
13
+ * "xy" — 2-D grids: closest card across both rows AND columns,
14
+ * measured by Euclidean distance to each item's center
15
+ */
16
+ axis?: "x" | "y" | "xy";
17
+ /**
18
+ * Makes an item invisible to hit-testing without unregistering it — for
19
+ * rows that stay mounted while clipped away (a collapsed sub-tree).
20
+ * Unregistering would invalidate every measurement; a skipped item keeps
21
+ * the set stable. Consulted per mouse move, so keep it cheap.
22
+ */
23
+ isItemDisabled?: (element: HTMLElement) => boolean;
24
+ /**
25
+ * Whether a click that lands between items (a gap, the padding, past the
26
+ * last row) is routed to the highlighted item, so what is lit is what a
27
+ * click hits. On by default: in a menu or a list the highlight is a
28
+ * promise about the click. Pass `false` where empty space should stay
29
+ * inert (rows with destructive actions, generous whitespace), or
30
+ * `{ maxDistance }` to route only clicks within that many pixels of the
31
+ * highlighted item's edge.
32
+ */
33
+ gapClick?: boolean | {
34
+ maxDistance?: number;
35
+ };
36
+ }
37
+ interface UseFluidHoverReturn {
38
+ activeIndex: number | null;
39
+ setActiveIndex: Dispatch<SetStateAction<number | null>>;
40
+ itemRects: ItemRect[];
41
+ /**
42
+ * True once every registered item has been measured and no remeasure is
43
+ * pending, i.e. `itemRects` describes the current item set. Gate absolutely
44
+ * positioned overlays on it: an overlay that mounts against a rect a later
45
+ * pass still corrects animates from the wrong place to the right one, which
46
+ * reads as the highlight sliding in from another row.
47
+ */
48
+ isMeasured: boolean;
49
+ sessionRef: MutableRefObject<number>;
50
+ handlers: {
51
+ onMouseMove: (e: React.MouseEvent) => void;
52
+ onMouseEnter: () => void;
53
+ onMouseLeave: () => void;
54
+ /**
55
+ * Routes a click that lands between items (a gap, the padding, past the
56
+ * last row) to the highlighted item, so the highlight and the click agree:
57
+ * what is lit is what a click hits. A click inside an item is left to the
58
+ * item. Disabled items (`isItemDisabled`) are never activated.
59
+ */
60
+ onClick: (e: React.MouseEvent) => void;
61
+ };
62
+ registerItem: (index: number, element: HTMLElement | null) => void;
63
+ /**
64
+ * Invalidates the published rects and runs the hook's coalesced measurement
65
+ * pass again, holding `isMeasured` false until it settles. Reach for it when
66
+ * the rects may be wrong and showing an overlay against them would misplace
67
+ * it: a popup that stays mounted between opens keeps its items registered,
68
+ * so nothing else would notice that its rects were taken while it was
69
+ * hidden. Registration, item resize, and container resize already trigger
70
+ * a pass; do not call this on `children` changes.
71
+ */
72
+ remeasure: () => void;
73
+ /**
74
+ * Re-reads the rects synchronously, keeping `isMeasured` as it is. Only for
75
+ * layout that moves the rows under a visible overlay frame by frame (the
76
+ * accordion re-measures inside its height animation). Everything else
77
+ * wants `remeasure`, or nothing.
78
+ */
79
+ measureItems: () => void;
80
+ }
81
+ interface PickNearestInput {
82
+ axis: "x" | "y" | "xy";
83
+ /** The pointer, in viewport coordinates. */
84
+ point: {
85
+ x: number;
86
+ y: number;
87
+ };
88
+ /** Item rects in the container's layout space (sparse: unregistered slots
89
+ * are undefined). */
90
+ rects: readonly (ItemRect | undefined)[];
91
+ /** The container's bounding rect and live scroll / border offsets, which
92
+ * map layout rects into the pointer's viewport space. */
93
+ containerRect: {
94
+ left: number;
95
+ top: number;
96
+ width: number;
97
+ height: number;
98
+ };
99
+ scroll: {
100
+ x: number;
101
+ y: number;
102
+ };
103
+ border: {
104
+ x: number;
105
+ y: number;
106
+ };
107
+ /** Layout size of the container, so a cumulative ancestor `transform:
108
+ * scale` (a popup mid scale-in) can be factored out per axis. */
109
+ layoutSize: {
110
+ width: number;
111
+ height: number;
112
+ };
113
+ /** Skips an item without unregistering it. */
114
+ isDisabled?: (index: number) => boolean;
115
+ }
116
+ /**
117
+ * The rule, as one pure function: an item the pointer is inside wins;
118
+ * otherwise the item whose center is nearest does, so a pointer in a gap, in
119
+ * the padding, or past the last row still lands. `y` and `x` measure one
120
+ * coordinate; `xy` measures the straight line to each center. Ties keep the
121
+ * first item. The hook calls this once per animation frame; the docs page
122
+ * times it.
123
+ */
124
+ declare function pickNearest({ axis, point, rects, containerRect, scroll, border, layoutSize, isDisabled }: PickNearestInput): number | null;
125
+ /** Set on the highlighted item (boolean attribute). */
126
+ declare const ACTIVE_ATTR = "data-fluid-hover-active";
127
+ /** Set on the container: the highlighted index, or absent. */
128
+ declare const ACTIVE_INDEX_ATTR = "data-fluid-hover-active-index";
129
+ declare function useFluidHover<T extends HTMLElement>(containerRef: RefObject<T | null>, options?: UseFluidHoverOptions): UseFluidHoverReturn;
130
+ /**
131
+ * Registers an item's element with its list for as long as it is mounted.
132
+ * The one way rows join a list: pass the hook's `registerItem` (or the copy
133
+ * a context hands down), the row's index, and its ref. Either may be
134
+ * missing for a row rendered outside a list (a standalone card, an accordion
135
+ * item that is not grouped); then nothing is registered.
136
+ */
137
+ declare function useRegisterFluidHoverItem(registerItem: ((index: number, element: HTMLElement | null) => void) | undefined, index: number | undefined, ref: RefObject<HTMLElement | null>): void;
138
+ export { ACTIVE_ATTR, ACTIVE_INDEX_ATTR, ItemRect, PickNearestInput, UseFluidHoverOptions, UseFluidHoverReturn, pickNearest, useFluidHover, useRegisterFluidHoverItem };
@@ -0,0 +1,14 @@
1
+ import {
2
+ pickNearest2,
3
+ ACTIVE_ATTR2,
4
+ ACTIVE_INDEX_ATTR2,
5
+ useFluidHover2,
6
+ useRegisterFluidHoverItem2
7
+ } from "../shared/components-yhgq0qxx.js";
8
+ export {
9
+ ACTIVE_ATTR2 as ACTIVE_ATTR,
10
+ ACTIVE_INDEX_ATTR2 as ACTIVE_INDEX_ATTR,
11
+ pickNearest2 as pickNearest,
12
+ useFluidHover2 as useFluidHover,
13
+ useRegisterFluidHoverItem2 as useRegisterFluidHoverItem
14
+ };
@@ -0,0 +1,2 @@
1
+ declare function useIsMobile(breakpoint: number): boolean;
2
+ export { useIsMobile };
@@ -0,0 +1,6 @@
1
+ import {
2
+ useIsMobile2
3
+ } from "../shared/components-rrbpmfx4.js";
4
+ export {
5
+ useIsMobile2 as useIsMobile
6
+ };
@@ -0,0 +1,20 @@
1
+ import { KeyboardEvent } from "react";
2
+ import { MutableRefObject as MutableRefObject_8z5kms } from "react";
3
+ /**
4
+ * Gates a popup's keyboard focus ring on keyboard use.
5
+ *
6
+ * Rows take focus as a popup opens (the primitive's own autofocus, or the
7
+ * popup's first-row focus), and Chrome grants `:focus-visible` to any
8
+ * script-driven focus — so without a gate every pointer-opened popup would
9
+ * open with a ring on its first row. The flag is seeded at open from the
10
+ * element that has focus then: a trigger reached by keyboard matches
11
+ * `:focus-visible`, a clicked one doesn't. Navigation keys inside the popup
12
+ * earn the ring afterwards. Attach `trackKeyboardNav` in the CAPTURE phase —
13
+ * the primitive moves focus during its own keydown handling, so the flag
14
+ * must be set before then.
15
+ */
16
+ declare function useKeyboardNavGate(open: boolean): {
17
+ keyboardNavRef: MutableRefObject_8z5kms<boolean>;
18
+ trackKeyboardNav: (e: KeyboardEvent) => void;
19
+ };
20
+ export { useKeyboardNavGate };
@@ -0,0 +1,7 @@
1
+ import {
2
+ useKeyboardNavGate2
3
+ } from "../shared/components-tz4gaf1v.js";
4
+ import"../shared/components-h6p86be3.js";
5
+ export {
6
+ useKeyboardNavGate2 as useKeyboardNavGate
7
+ };
@@ -0,0 +1,47 @@
1
+ interface ItemRect {
2
+ top: number;
3
+ height: number;
4
+ left: number;
5
+ width: number;
6
+ }
7
+ import { JSX as JSX_1kxb } from "react";
8
+ type Rect = {
9
+ top: number;
10
+ left: number;
11
+ width: number;
12
+ height: number;
13
+ };
14
+ interface SelBlock extends Rect {
15
+ key: string;
16
+ radii: [number, number, number, number];
17
+ instant: boolean;
18
+ }
19
+ type Run = {
20
+ start: number;
21
+ end: number;
22
+ id: number;
23
+ };
24
+ /**
25
+ * Groups checked row indices into contiguous runs with ids that survive
26
+ * re-renders: a run keeps its id while any of its rows was in a run last
27
+ * render. Feed the result to useMergeSplitBlocks.
28
+ */
29
+ declare function useSelectionRuns(checkedIndices: readonly number[]): Run[];
30
+ /**
31
+ * The background blocks to paint for the contiguous selection `runs`: one per
32
+ * checked row, reaching down to the next row of its run (so gaps between rows
33
+ * fill) and rounded to `R` only on the run's outer corners, so a run reads as
34
+ * one block. Render them with <SelectionBackgrounds>.
35
+ */
36
+ declare function useMergeSplitBlocks(runs: Run[], itemRects: ItemRect[], R: number): SelBlock[];
37
+ type Element_12xgc = JSX_1kxb["Element"];
38
+ /**
39
+ * Renders the selected-background blocks produced by useMergeSplitBlocks. A
40
+ * checked row's block grows out of its center and an unchecked one shrinks
41
+ * back into it, while the goo melts it into its checked neighbours or pinches
42
+ * it off them; the filter runs only for that change. Reduced motion fades.
43
+ */
44
+ declare function SelectionBackgrounds({ blocks }: {
45
+ blocks: SelBlock[];
46
+ }): Element_12xgc;
47
+ export { Run, SelBlock, SelectionBackgrounds, useMergeSplitBlocks, useSelectionRuns };
@@ -0,0 +1,15 @@
1
+ import {
2
+ useSelectionRuns2,
3
+ useMergeSplitBlocks2,
4
+ SelectionBackgrounds2
5
+ } from "../shared/components-8tt3xbb5.js";
6
+ import"../shared/components-pw06rbxq.js";
7
+ import"../shared/components-awra5sff.js";
8
+ import"../shared/components-de99ykt7.js";
9
+ import"../shared/components-3ey0hzpb.js";
10
+ import"../shared/components-jcnjay5g.js";
11
+ export {
12
+ SelectionBackgrounds2 as SelectionBackgrounds,
13
+ useMergeSplitBlocks2 as useMergeSplitBlocks,
14
+ useSelectionRuns2 as useSelectionRuns
15
+ };
@@ -0,0 +1,101 @@
1
+ import { RefObject } from "react";
2
+ import { MutableRefObject as MutableRefObject_8z5kms } from "react";
3
+ import { MotionValue as MotionValue_d5wxmj } from "motion/react";
4
+ type MorphSide = "top" | "right" | "bottom" | "left";
5
+ type MorphFrom = "trigger" | "pointer" | "center" | MorphSide | RefObject<HTMLElement | null>;
6
+ type MorphEffect = "goo" | "morph" | "slide" | "fade";
7
+ type MorphTier = "moderate" | "slow";
8
+ interface MorphOptions {
9
+ /** Where the surface grows from. */
10
+ from?: MorphFrom;
11
+ /** How it gets there. */
12
+ effect?: MorphEffect;
13
+ /** Hide the source while open, so it reads as becoming the overlay. */
14
+ hideSource?: boolean;
15
+ /** Spring tier. */
16
+ tier?: MorphTier;
17
+ /** Overrides `effect` (and `from`) for the close only, read as it starts: a swiped sheet slides on off its edge. */
18
+ exit?: {
19
+ effect: "slide" | "fade";
20
+ from?: MorphFrom;
21
+ };
22
+ /**
23
+ * Shows or hides at once while this returns true for the popup (Base UI's
24
+ * `data-instant` hand-off between grouped tooltips). Checked as a run
25
+ * starts and on every frame.
26
+ */
27
+ instant?: (popup: HTMLElement) => boolean;
28
+ /** Puts focus back on the trigger once a closed popup that held it has gone (see `returnFocus`). Off when the owner places focus itself (Base UI's `finalFocus`). Defaults to `true`. */
29
+ returnFocus?: boolean;
30
+ }
31
+ /** What opened the overlay: the pressed trigger and the press point. */
32
+ interface MorphOrigin {
33
+ trigger?: HTMLElement;
34
+ point?: {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ }
39
+ declare const GOO_MATRIX = "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 22 -10";
40
+ declare const GOO_BLUR_RATIO = .5;
41
+ /**
42
+ * A trigger that turns into its panel (`effect: 'morph'` with `hideSource`)
43
+ * opens in place: the panel lays over the trigger instead of beside it, so
44
+ * the trigger's box is where the panel starts. Anchored overlays pass
45
+ * `inPlaceOffset` as Base UI's `sideOffset` while this holds.
46
+ */
47
+ declare function opensInPlace({ effect, hideSource }: MorphOptions): boolean;
48
+ /** Base UI `sideOffset` that pulls the panel back over its anchor, edge to edge, on whichever side it lands. */
49
+ declare function inPlaceOffset({ side, anchor }: {
50
+ side: string;
51
+ anchor: {
52
+ width: number;
53
+ height: number;
54
+ };
55
+ }): number;
56
+ /**
57
+ * Base UI unmounts a closed popup once `getAnimations()` on it settles; a
58
+ * JS-driven animation registers none, so an empty animation holds it open
59
+ * for the tier's exit (plus a buffer). Finish or cancel it once the exit is
60
+ * done or abandoned.
61
+ */
62
+ declare function holdExit(el: HTMLElement, tier: MorphTier | "goo"): Animation;
63
+ /**
64
+ * Remembers what opened an overlay. Call `capture` from the Base UI root's
65
+ * `onOpenChange` on open: its details carry the pressed trigger and the event
66
+ * (a click, a context menu, a long press).
67
+ */
68
+ declare function useMorphOrigin(): {
69
+ origin: MutableRefObject_8z5kms<MorphOrigin>;
70
+ capture: (details: {
71
+ trigger?: Element;
72
+ event?: Event;
73
+ }) => void;
74
+ };
75
+ /**
76
+ * Drives one overlay's morph. `open` is the overlay's open state, `origin` what
77
+ * opened it (`useMorphOrigin`). Spread the returned refs through
78
+ * `MorphSurface`; `popupRef` goes on the Base UI popup, which keeps its final
79
+ * size the whole time, so positioning and collision flipping never see the
80
+ * animation. `onExited` runs once a close has finished.
81
+ */
82
+ declare function useMorph(open: boolean, origin: RefObject<MorphOrigin>, { from, effect, hideSource, tier, exit, instant, returnFocus: refocus }?: MorphOptions, onExited?: () => void): {
83
+ refs: {
84
+ popup: MutableRefObject_8z5kms<HTMLDivElement | null>;
85
+ shapes: RefObject<HTMLDivElement>;
86
+ blur: RefObject<SVGFEGaussianBlurElement>;
87
+ outline: RefObject<SVGFEFloodElement>;
88
+ copy: RefObject<HTMLDivElement>;
89
+ shape: RefObject<HTMLDivElement>;
90
+ bg: RefObject<HTMLDivElement>;
91
+ shadow: RefObject<HTMLDivElement>;
92
+ content: RefObject<HTMLDivElement>;
93
+ };
94
+ popupRef: (node: HTMLDivElement | null) => void;
95
+ popup: HTMLDivElement | null;
96
+ gooId: string;
97
+ effect: MorphEffect;
98
+ progress: MotionValue_d5wxmj<number>;
99
+ };
100
+ type Morph = ReturnType<typeof useMorph>;
101
+ export { GOO_BLUR_RATIO, GOO_MATRIX, Morph, MorphEffect, MorphFrom, MorphOptions, MorphOrigin, MorphSide, MorphTier, holdExit, inPlaceOffset, opensInPlace, useMorph, useMorphOrigin };
@@ -0,0 +1,20 @@
1
+ import {
2
+ GOO_MATRIX2,
3
+ GOO_BLUR_RATIO2,
4
+ opensInPlace2,
5
+ inPlaceOffset2,
6
+ holdExit2,
7
+ useMorphOrigin2,
8
+ useMorph2
9
+ } from "../shared/components-awra5sff.js";
10
+ import"../shared/components-de99ykt7.js";
11
+ import"../shared/components-3ey0hzpb.js";
12
+ export {
13
+ GOO_BLUR_RATIO2 as GOO_BLUR_RATIO,
14
+ GOO_MATRIX2 as GOO_MATRIX,
15
+ holdExit2 as holdExit,
16
+ inPlaceOffset2 as inPlaceOffset,
17
+ opensInPlace2 as opensInPlace,
18
+ useMorph2 as useMorph,
19
+ useMorphOrigin2 as useMorphOrigin
20
+ };
@@ -0,0 +1,2 @@
1
+ declare function useTouchPrimary(): boolean;
2
+ export { useTouchPrimary };
@@ -0,0 +1,6 @@
1
+ import {
2
+ useTouchPrimary2
3
+ } from "../shared/components-drxrtnp2.js";
4
+ export {
5
+ useTouchPrimary2 as useTouchPrimary
6
+ };
@@ -0,0 +1,3 @@
1
+ import { CnFunction } from "cn";
2
+ declare const cn: CnFunction;
3
+ export { cn };
@@ -0,0 +1,6 @@
1
+ import {
2
+ cn2
3
+ } from "../shared/components-jcnjay5g.js";
4
+ export {
5
+ cn2 as cn
6
+ };
package/dist/preset.d.ts CHANGED
@@ -48,7 +48,24 @@ declare const theme: {
48
48
  destructive: {
49
49
  DEFAULT: string;
50
50
  light: string;
51
+ strong: string;
52
+ wash: {
53
+ DEFAULT: string;
54
+ hover: string;
55
+ active: string;
56
+ };
51
57
  };
58
+ success: {
59
+ strong: string;
60
+ wash: {
61
+ DEFAULT: string;
62
+ hover: string;
63
+ active: string;
64
+ };
65
+ };
66
+ skeleton: string;
67
+ "image-edge": string;
68
+ "progress-track": string;
52
69
  hover: string;
53
70
  active: string;
54
71
  syntax: {
package/dist/preset.js CHANGED
@@ -40,7 +40,27 @@ var theme = {
40
40
  border: "var(--border)",
41
41
  ring: "var(--ring)",
42
42
  input: "var(--input)",
43
- destructive: { DEFAULT: "var(--destructive)", light: "var(--destructive-light)" },
43
+ destructive: {
44
+ DEFAULT: "var(--destructive)",
45
+ light: "var(--destructive-light)",
46
+ strong: "var(--destructive-strong)",
47
+ wash: {
48
+ DEFAULT: "var(--destructive-wash)",
49
+ hover: "var(--destructive-wash-hover)",
50
+ active: "var(--destructive-wash-active)"
51
+ }
52
+ },
53
+ success: {
54
+ strong: "var(--success-strong)",
55
+ wash: {
56
+ DEFAULT: "var(--success-wash)",
57
+ hover: "var(--success-wash-hover)",
58
+ active: "var(--success-wash-active)"
59
+ }
60
+ },
61
+ skeleton: "var(--skeleton)",
62
+ "image-edge": "var(--image-edge)",
63
+ "progress-track": "var(--progress-track)",
44
64
  hover: "var(--hover)",
45
65
  active: "var(--active)",
46
66
  syntax: {
@@ -105,7 +125,7 @@ var utilities = Object.fromEntries([
105
125
  ...RADII.map((radius) => [`rounded-${radius}`, { "border-radius": `var(--radius-${radius})` }])
106
126
  ]);
107
127
  var dist = dirname(fileURLToPath(import.meta.url));
108
- var COMPONENT_DIRS = ["shared", "primitives", "components", "blocks"];
128
+ var COMPONENT_DIRS = ["shared", "lib", "primitives", "components", "blocks"];
109
129
  function modoUiContent() {
110
130
  return COMPONENT_DIRS.map((dir) => join(dist, dir)).filter((dir) => existsSync(dir)).flatMap((dir) => readdirSync(dir, { recursive: true, encoding: "utf8" }).filter((file) => file.endsWith(".js")).map((file) => readFileSync(join(dir, file), "utf8"))).join(`
111
131
  `);
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  Code2
3
- } from "../../shared/components-s2bz1xpk.js";
4
- import"../../shared/components-hawvy2qz.js";
5
- import"../../shared/components-cv16mryv.js";
6
- import"../../shared/components-zx6b6yby.js";
7
- import"../../shared/components-ezxhrmer.js";
3
+ } from "../../shared/components-49bsynbw.js";
4
+ import"../../shared/components-vf45j12c.js";
5
+ import"../../shared/components-dhgk6mbt.js";
6
+ import"../../shared/components-2z48g4fp.js";
7
+ import"../../shared/components-drxrtnp2.js";
8
+ import"../../shared/components-78x40gee.js";
9
+ import"../../shared/components-jcnjay5g.js";
8
10
  export {
9
11
  Code2 as Code,
10
12
  Code2 as default
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  Craft
3
- } from "../../shared/components-vfbhxf5r.js";
4
- import"../../shared/components-7r3etddy.js";
5
- import"../../shared/components-men63rwj.js";
6
- import"../../shared/components-0sn7ypjw.js";
7
- import"../../shared/components-cv16mryv.js";
8
- import"../../shared/components-ezxhrmer.js";
3
+ } from "../../shared/components-pd42emw3.js";
4
+ import"../../shared/components-z9n19fyk.js";
5
+ import"../../shared/components-c9yr4ed1.js";
6
+ import"../../shared/components-de99ykt7.js";
7
+ import"../../shared/components-3ey0hzpb.js";
8
+ import"../../shared/components-h83az0bz.js";
9
+ import"../../shared/components-34txk9rj.js";
10
+ import"../../shared/components-78x40gee.js";
11
+ import"../../shared/components-jcnjay5g.js";
9
12
  export {
10
13
  Craft as default
11
14
  };
@@ -2,19 +2,20 @@ import {
2
2
  FluidHoverItem2,
3
3
  FluidHover2,
4
4
  fluid_hover_default
5
- } from "../../shared/components-2dxkv6zm.js";
5
+ } from "../../shared/components-2c0qcfx4.js";
6
6
  import {
7
7
  FluidHoverHighlight2
8
- } from "../../shared/components-kvr7f9hy.js";
9
- import"../../shared/components-chacnk61.js";
8
+ } from "../../shared/components-qdm3yh26.js";
9
+ import"../../shared/components-pw06rbxq.js";
10
10
  import {
11
11
  useFluidHover2,
12
12
  useRegisterFluidHoverItem2
13
- } from "../../shared/components-59efxjd9.js";
14
- import"../../shared/components-hqeq3w9q.js";
15
- import"../../shared/components-men63rwj.js";
16
- import"../../shared/components-cv16mryv.js";
17
- import"../../shared/components-ezxhrmer.js";
13
+ } from "../../shared/components-yhgq0qxx.js";
14
+ import"../../shared/components-awra5sff.js";
15
+ import"../../shared/components-de99ykt7.js";
16
+ import"../../shared/components-3ey0hzpb.js";
17
+ import"../../shared/components-78x40gee.js";
18
+ import"../../shared/components-jcnjay5g.js";
18
19
  export {
19
20
  FluidHover2 as FluidHover,
20
21
  FluidHoverHighlight2 as FluidHoverHighlight,
@@ -1,17 +1,22 @@
1
1
  import {
2
2
  Morph2
3
- } from "../../shared/components-39jq9va1.js";
3
+ } from "../../shared/components-gvbapfen.js";
4
+ import"../../shared/components-vf45j12c.js";
5
+ import"../../shared/components-dhgk6mbt.js";
6
+ import"../../shared/components-4y816hwp.js";
4
7
  import {
5
8
  MorphPart2
6
- } from "../../shared/components-0q0sqfh4.js";
7
- import"../../shared/components-hqeq3w9q.js";
8
- import"../../shared/components-b2wyq2cq.js";
9
- import"../../shared/components-n7mjr357.js";
10
- import"../../shared/components-men63rwj.js";
11
- import"../../shared/components-0sn7ypjw.js";
12
- import"../../shared/components-cv16mryv.js";
13
- import"../../shared/components-zx6b6yby.js";
14
- import"../../shared/components-ezxhrmer.js";
9
+ } from "../../shared/components-b1e239g3.js";
10
+ import"../../shared/components-awra5sff.js";
11
+ import"../../shared/components-7d4r7hh1.js";
12
+ import"../../shared/components-f0xfpkhh.js";
13
+ import"../../shared/components-tz1fv35x.js";
14
+ import"../../shared/components-de99ykt7.js";
15
+ import"../../shared/components-3ey0hzpb.js";
16
+ import"../../shared/components-h83az0bz.js";
17
+ import"../../shared/components-34txk9rj.js";
18
+ import"../../shared/components-78x40gee.js";
19
+ import"../../shared/components-jcnjay5g.js";
15
20
  export {
16
21
  Morph2 as Morph,
17
22
  MorphPart2 as MorphPart,
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  Motion2
3
- } from "../../shared/components-q5xj5c16.js";
4
- import"../../shared/components-b2wyq2cq.js";
5
- import"../../shared/components-n7mjr357.js";
6
- import"../../shared/components-men63rwj.js";
3
+ } from "../../shared/components-b1f2bjf1.js";
4
+ import"../../shared/components-7d4r7hh1.js";
5
+ import"../../shared/components-f0xfpkhh.js";
6
+ import"../../shared/components-tz1fv35x.js";
7
+ import"../../shared/components-de99ykt7.js";
7
8
  import {
8
9
  spring2,
9
10
  exitFallbackMs2
10
- } from "../../shared/components-1v7rxytx.js";
11
- import"../../shared/components-0sn7ypjw.js";
12
- import"../../shared/components-cv16mryv.js";
13
- import"../../shared/components-ezxhrmer.js";
11
+ } from "../../shared/components-3ey0hzpb.js";
12
+ import"../../shared/components-h83az0bz.js";
13
+ import"../../shared/components-34txk9rj.js";
14
+ import"../../shared/components-78x40gee.js";
15
+ import"../../shared/components-jcnjay5g.js";
14
16
  export {
15
17
  Motion2 as Motion,
16
18
  Motion2 as default,
@@ -2,9 +2,10 @@ import {
2
2
  ScrollArea2,
3
3
  ScrollBar2,
4
4
  scroll_area_default
5
- } from "../../shared/components-hawvy2qz.js";
6
- import"../../shared/components-cv16mryv.js";
7
- import"../../shared/components-ezxhrmer.js";
5
+ } from "../../shared/components-2z48g4fp.js";
6
+ import"../../shared/components-drxrtnp2.js";
7
+ import"../../shared/components-78x40gee.js";
8
+ import"../../shared/components-jcnjay5g.js";
8
9
  export {
9
10
  ScrollArea2 as ScrollArea,
10
11
  ScrollBar2 as ScrollBar,
@@ -0,0 +1,25 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+ import { ForwardRefExoticComponent as ForwardRefExoticComponent_tcubfn } from "react";
3
+ import { RefAttributes as RefAttributes_miuf56 } from "react";
4
+ interface SeparatorProps extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
5
+ /** Which way the line runs: across a stack, or down between items of a row. A vertical line stretches to its row's height. Defaults to `"horizontal"`. */
6
+ orientation?: "horizontal" | "vertical";
7
+ /** Classes for the line: margins, or a length that isn't the full run. */
8
+ className?: string;
9
+ }
10
+ /**
11
+ * A 1px hairline between groups of content: stacked sections, a toolbar's
12
+ * clusters, a card's body and its actions.
13
+ *
14
+ * It is the system's only line: `border`, 12% of the foreground, so it tracks
15
+ * light and dark and any forced scheme on a subtree, and it never thickens or
16
+ * takes a color. Base UI's Separator gives it the `separator` role and its
17
+ * orientation for screen readers. Horizontal lines fill their container's
18
+ * width; vertical ones stretch to the height of the row they sit in. Spacing
19
+ * around it is the layout's: pass margins through `className`. Other props
20
+ * go to the `div`.
21
+ *
22
+ * @example {@include ./examples.mdx}
23
+ */
24
+ declare const Separator: ForwardRefExoticComponent_tcubfn<SeparatorProps & RefAttributes_miuf56<HTMLDivElement>>;
25
+ export { Separator, SeparatorProps, Separator as default };
@@ -0,0 +1,9 @@
1
+ import {
2
+ Separator2,
3
+ separator_default
4
+ } from "../../shared/components-3h92d94m.js";
5
+ import"../../shared/components-jcnjay5g.js";
6
+ export {
7
+ Separator2 as Separator,
8
+ separator_default as default
9
+ };