@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,276 +0,0 @@
1
- /*
2
- * Local addition (not part of Fluid Functionalism): a confirm dialog that must
3
- * be answered. Base UI's AlertDialog root (`role="alertdialog"`, always modal,
4
- * no outside-press dismissal) under Dialog's own parts, which Base UI shares
5
- * between the two, so the panel morphs exactly like Dialog's. `Action` runs a
6
- * confirm that may return a promise: the button folds into Button's loading
7
- * circle, and the dialog cannot be dismissed until it settles. `Cancel` is a
8
- * Close that steps aside while the action runs. `onOpenChange` gets Base
9
- * UI's change details like Dialog's (an action's own close reports
10
- * `'imperative-action'`), and `details.cancel()` keeps it open.
11
- */
12
-
13
- import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog'
14
- import {
15
- cloneElement,
16
- createContext,
17
- forwardRef,
18
- type MouseEvent,
19
- type ReactElement,
20
- type ReactNode,
21
- useCallback,
22
- useContext,
23
- useEffect,
24
- useMemo,
25
- useRef,
26
- useState,
27
- } from 'react'
28
- import { type SlotProps, slotRender } from '../../../lib/slot'
29
- import Button, { type ButtonProps } from '../../button'
30
- import {
31
- createDialogChangeDetails,
32
- DialogClose,
33
- DialogContent,
34
- type DialogContentProps,
35
- DialogDescription,
36
- DialogFooter,
37
- DialogHeader,
38
- DialogState,
39
- DialogTitle,
40
- DialogTrigger,
41
- } from '../dialog'
42
-
43
- type ButtonVariant = NonNullable<ButtonProps['variant']>
44
-
45
- interface AlertDialogPending {
46
- /** True while the confirm action runs. */
47
- pending: boolean
48
- setPending: (pending: boolean) => void
49
- /** Closes the dialog, past the pending lock. */
50
- close: () => void
51
- }
52
-
53
- const AlertDialogPendingContext = createContext<AlertDialogPending>({
54
- pending: false,
55
- setPending: () => {},
56
- close: () => {},
57
- })
58
-
59
- // No ✕ by default: the way out is one of the dialog's own actions.
60
- const AlertDialogContent = forwardRef<HTMLDivElement, DialogContentProps>(
61
- ({ showCloseButton = false, ...props }, ref) => (
62
- <DialogContent ref={ref} showCloseButton={showCloseButton} {...props} />
63
- ),
64
- )
65
- AlertDialogContent.displayName = 'AlertDialogContent'
66
-
67
- interface AlertDialogActionProps extends Omit<SlotProps, 'onClick'> {
68
- /** The confirm. Return a promise to keep the dialog open, the button loading and every way out locked until it settles: it closes on resolve and stays open on reject. A plain return closes it at once, or, with `pending` set, once `pending` turns true and back to false. Call `event.preventDefault()` to keep it open after a plain return. */
69
- onClick?: (event: MouseEvent<HTMLButtonElement>) => unknown
70
- /** Called with the reason when the promise `onClick` returned rejects; the dialog stays open. */
71
- onError?: (error: unknown) => void
72
- /** Holds the pending state from outside (a mutation's `isPending`): loading, and the dialog locked, while true. Once set, a plain `onClick` (`() => mutate()`) leaves the dialog open until `pending` goes true and back to false, then closes it — on failure too; return the promise (`mutateAsync`) to stay open when it rejects. */
73
- pending?: boolean
74
- /** The Button's variant when there is no `render` element. Defaults to `"primary"`. */
75
- variant?: ButtonVariant
76
- }
77
-
78
- const isThenable = (value: unknown): value is PromiseLike<unknown> =>
79
- typeof value === 'object' && value !== null && typeof (value as PromiseLike<unknown>).then === 'function'
80
-
81
- /** The confirm button: runs `onClick`, waits on the promise it returns, then closes. */
82
- const AlertDialogAction = forwardRef<HTMLButtonElement, AlertDialogActionProps>(
83
- (
84
- {
85
- onClick,
86
- onError,
87
- pending: pendingProp,
88
- variant = 'primary',
89
- render,
90
- asChild,
91
- children,
92
- disabled,
93
- // The element is the control itself (cloned, no Base UI button), so there is nothing to tell.
94
- nativeButton: _nativeButton,
95
- ...props
96
- },
97
- ref,
98
- ) => {
99
- const { setPending, close } = useContext(AlertDialogPendingContext)
100
- const [running, setRunning] = useState(false)
101
- const busy = Boolean(pendingProp) || running
102
- // A plain onClick under a controlled `pending` waits for it to go true and back to false.
103
- const awaiting = useRef(false)
104
- const wasPending = useRef(pendingProp)
105
-
106
- useEffect(() => {
107
- if (wasPending.current && !pendingProp && awaiting.current) {
108
- awaiting.current = false
109
- close()
110
- }
111
- wasPending.current = pendingProp
112
- }, [pendingProp, close])
113
-
114
- useEffect(() => {
115
- setPending(busy)
116
- }, [busy, setPending])
117
- useEffect(() => () => setPending(false), [setPending])
118
-
119
- const press = (event: MouseEvent<HTMLButtonElement>) => {
120
- if (busy) return
121
- const result = onClick?.(event)
122
- if (!isThenable(result)) {
123
- if (event.defaultPrevented) return
124
- if (pendingProp === undefined) close()
125
- else awaiting.current = true
126
- return
127
- }
128
- // Lock at once, not a render later: an Escape in between must not slip through.
129
- setPending(true)
130
- setRunning(true)
131
- Promise.resolve(result).then(
132
- () => {
133
- setRunning(false)
134
- setPending(false)
135
- close()
136
- },
137
- (error: unknown) => {
138
- setRunning(false)
139
- setPending(false)
140
- onError?.(error)
141
- },
142
- )
143
- }
144
-
145
- const el = slotRender(render, asChild, children)
146
- if (!el) {
147
- return (
148
- <Button ref={ref} variant={variant} loading={busy} disabled={disabled} onClick={press} {...props}>
149
- {children}
150
- </Button>
151
- )
152
- }
153
- // Button folds into its spinner; any other element is disabled and marked busy.
154
- const state = (el as ReactElement).type === Button ? { loading: busy } : { 'aria-busy': busy || undefined }
155
- return cloneElement(el as ReactElement<Record<string, unknown>>, {
156
- ...props,
157
- ...state,
158
- ref,
159
- disabled: disabled || busy,
160
- onClick: press,
161
- })
162
- },
163
- )
164
- AlertDialogAction.displayName = 'AlertDialogAction'
165
-
166
- interface AlertDialogCancelProps extends SlotProps {
167
- /** The Button's variant when there is no `render` element. Defaults to `"ghost"`. */
168
- variant?: ButtonVariant
169
- }
170
-
171
- /** Closes without confirming; disabled while the action runs. */
172
- const AlertDialogCancel = forwardRef<HTMLButtonElement, AlertDialogCancelProps>(
173
- ({ variant = 'ghost', render, asChild, children, disabled, ...props }, ref) => {
174
- const { pending } = useContext(AlertDialogPendingContext)
175
- const el = slotRender(render, asChild, children) ?? <Button variant={variant}>{children}</Button>
176
- return <DialogClose ref={ref} render={el} disabled={disabled || pending} {...props} />
177
- },
178
- )
179
- AlertDialogCancel.displayName = 'AlertDialogCancel'
180
-
181
- /** What `onOpenChange` receives besides the open state: Base UI's AlertDialog change details. */
182
- type AlertDialogOpenChangeDetails = AlertDialogPrimitive.Root.ChangeEventDetails
183
-
184
- interface AlertDialogProps {
185
- /** Controlled open state. */
186
- open?: boolean
187
- /** Initial open state, for an uncontrolled alert dialog. Defaults to `false`. */
188
- defaultOpen?: boolean
189
- /** Called when the dialog opens or closes, with Base UI's change details: `reason` (`'escape-key'`, `'close-press'`, `'imperative-action'` for an action's own close, …), the `event`, and `cancel()` to keep it as it is. Not called for a dismissal blocked while an action runs. */
190
- onOpenChange?: (open: boolean, details: AlertDialogOpenChangeDetails) => void
191
- /** The trigger and the content — `AlertDialog.Trigger` plus an `AlertDialog.Content`. */
192
- children?: ReactNode
193
- }
194
-
195
- /**
196
- * A dialog that asks before something happens and waits for an answer.
197
- *
198
- * It is always modal, and a press outside does not close it: only its own
199
- * actions (and Escape) do, so a destructive step is never confirmed or
200
- * skipped by accident. Screen readers announce it as an alert. Everything
201
- * else is Dialog's: the panel grows out of its trigger with the goo neck by
202
- * default (see Morph), takes the same `size`, `position` and morph options,
203
- * and lifts 4 surface levels. Unlike Dialog it has no ✕ unless
204
- * `showCloseButton` asks for one.
205
- *
206
- * `AlertDialog.Action` is the confirm. When its `onClick` returns a promise,
207
- * the button folds into a spinner and the dialog holds still: Cancel greys
208
- * out, and Escape and every close are ignored until the promise settles. It
209
- * closes when the promise resolves and stays open when it rejects, handing
210
- * the reason to `onError`, so the person can try again or cancel. With a
211
- * mutation's state in `pending` instead, a plain `onClick={() => mutate()}`
212
- * keeps the dialog open, locked while `pending` is true, and closes it once
213
- * `pending` falls back to false.
214
- *
215
- * Statics:
216
- * - `AlertDialog.Action` — the confirm button: `onClick` (may return a
217
- * promise), `onError`, `pending`, `variant`, or `render` / `asChild`.
218
- * - `AlertDialog.Cancel` — closes without confirming, disabled while the
219
- * action runs: `variant` (ghost), or `render` / `asChild`.
220
- * - The same parts as Dialog — `AlertDialog.Trigger`, `AlertDialog.Content`,
221
- * `AlertDialog.Header`, `AlertDialog.Footer`, `AlertDialog.Title`,
222
- * `AlertDialog.Description` and `AlertDialog.Close`.
223
- *
224
- * @example {@include ./examples.mdx}
225
- */
226
- function AlertDialog({ children, open, defaultOpen, onOpenChange }: AlertDialogProps) {
227
- const [pending, setPendingState] = useState(false)
228
- // Read synchronously by the dismissal guard, ahead of the next render.
229
- const pendingRef = useRef(false)
230
- const setPending = useCallback((next: boolean) => {
231
- pendingRef.current = next
232
- setPendingState(next)
233
- }, [])
234
- const closeRef = useRef<() => void>(() => {})
235
- const close = useCallback(() => closeRef.current(), [])
236
- const ctx = useMemo(() => ({ pending, setPending, close }), [pending, setPending, close])
237
-
238
- return (
239
- <DialogState open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>
240
- {root => {
241
- closeRef.current = () => root.onOpenChange(false, createDialogChangeDetails('imperative-action'))
242
- return (
243
- <AlertDialogPendingContext.Provider value={ctx}>
244
- <AlertDialogPrimitive.Root
245
- open={root.open}
246
- onOpenChange={(next, details) => {
247
- if (!next && pendingRef.current) {
248
- details.cancel()
249
- return
250
- }
251
- root.onOpenChange(next, details)
252
- }}
253
- >
254
- {children}
255
- </AlertDialogPrimitive.Root>
256
- </AlertDialogPendingContext.Provider>
257
- )
258
- }}
259
- </DialogState>
260
- )
261
- }
262
-
263
- AlertDialog.Trigger = DialogTrigger
264
- AlertDialog.Content = AlertDialogContent
265
- AlertDialog.Header = DialogHeader
266
- AlertDialog.Footer = DialogFooter
267
- AlertDialog.Title = DialogTitle
268
- AlertDialog.Description = DialogDescription
269
- AlertDialog.Close = DialogClose
270
- AlertDialog.Action = AlertDialogAction
271
- AlertDialog.Cancel = AlertDialogCancel
272
-
273
- export type { AlertDialogActionProps, AlertDialogCancelProps, AlertDialogOpenChangeDetails, AlertDialogProps }
274
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent }
275
-
276
- export default AlertDialog
@@ -1,36 +0,0 @@
1
- /*
2
- * Local addition (not part of Fluid Functionalism): the docs stage of the
3
- * AlertDialog page's controlled `pending`. A fake mutation (`mutate` +
4
- * `isPending`, the shape TanStack Query hands out) drives the confirm, so
5
- * the example stays hook-free.
6
- */
7
-
8
- import { useState } from 'react'
9
- import Button from '../../button'
10
- import AlertDialog from './index'
11
-
12
- export default function PendingDemo() {
13
- const [isPending, setPending] = useState(false)
14
- const mutate = () => {
15
- setPending(true)
16
- setTimeout(() => setPending(false), 1600)
17
- }
18
-
19
- return (
20
- <AlertDialog>
21
- <AlertDialog.Trigger render={<Button variant="secondary">Revoke access</Button>} />
22
- <AlertDialog.Content>
23
- <AlertDialog.Header>
24
- <AlertDialog.Title>Revoke this key?</AlertDialog.Title>
25
- <AlertDialog.Description>Apps using it stop working at once.</AlertDialog.Description>
26
- </AlertDialog.Header>
27
- <AlertDialog.Footer>
28
- <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
29
- <AlertDialog.Action variant="destructive" pending={isPending} onClick={() => mutate()}>
30
- Revoke
31
- </AlertDialog.Action>
32
- </AlertDialog.Footer>
33
- </AlertDialog.Content>
34
- </AlertDialog>
35
- )
36
- }
@@ -1,113 +0,0 @@
1
- import Command from './index'
2
- import Button from '../../button'
3
- import Elevated from '../../../primitives/surface'
4
- import { Calculator, Calendar, CreditCard, Moon, Settings, Smile, Sun, User } from 'lucide-react'
5
-
6
- # Basic
7
-
8
- Press the button or ⌘K (Ctrl+K): the panel oozes out of the button. Type to filter, move with the arrows, and Enter or a press runs the command.
9
-
10
- <Command>
11
- <Command.Trigger
12
- render={
13
- <Button variant="secondary">
14
- Search commands
15
- <Command.Shortcut className="ml-3">⌘K</Command.Shortcut>
16
- </Button>
17
- }
18
- />
19
- <Command.Content
20
- items={[
21
- {
22
- label: 'Suggestions',
23
- items: [
24
- { label: 'Calendar', icon: Calendar, keywords: ['events', 'schedule'] },
25
- { label: 'Search emoji', icon: Smile },
26
- { label: 'Calculator', icon: Calculator, disabled: true },
27
- ],
28
- },
29
- {
30
- label: 'Settings',
31
- items: [
32
- { label: 'Profile', icon: User, shortcut: '⌘P' },
33
- { label: 'Billing', icon: CreditCard, shortcut: '⌘B', keywords: ['money', 'invoice'] },
34
- { label: 'Settings', icon: Settings, shortcut: '⌘S' },
35
- ],
36
- },
37
- ]}
38
- />
39
- </Command>
40
-
41
- # Flat list
42
-
43
- Items without groups are one list. Keywords match too: try "dark".
44
-
45
- <Command hotkey={false}>
46
- <Command.Trigger render={<Button variant="tertiary">Change theme</Button>} />
47
- <Command.Content
48
- placeholder="Pick a theme…"
49
- label="Theme"
50
- items={[
51
- { label: 'Light', icon: Sun, keywords: ['day', 'bright'] },
52
- { label: 'Dark', icon: Moon, keywords: ['night', 'dim'] },
53
- { label: 'System', icon: Settings, keywords: ['auto', 'os'] },
54
- ]}
55
- />
56
- </Command>
57
-
58
- # Morph sources
59
-
60
- `from` and `effect` are Dialog's: the panel can grow from the press point, or unfold in place without the goo neck.
61
-
62
- <div className="flex flex-wrap items-center justify-center gap-3">
63
- <Command hotkey={false}>
64
- <Command.Trigger render={<Button variant="secondary">From the pointer</Button>} />
65
- <Command.Content
66
- from="pointer"
67
- effect="morph"
68
- items={[
69
- { label: 'Calendar', icon: Calendar },
70
- { label: 'Profile', icon: User },
71
- { label: 'Settings', icon: Settings },
72
- ]}
73
- />
74
- </Command>
75
- <Command hotkey={false}>
76
- <Command.Trigger render={<Button variant="secondary">From its center</Button>} />
77
- <Command.Content
78
- from="center"
79
- effect="morph"
80
- items={[
81
- { label: 'Calendar', icon: Calendar },
82
- { label: 'Profile', icon: User },
83
- { label: 'Settings', icon: Settings },
84
- ]}
85
- />
86
- </Command>
87
- </div>
88
-
89
- # In the page
90
-
91
- `Command.Palette` is the field and the list without the dialog, for a palette that stays on the page. It brings no surface of its own.
92
-
93
- <Elevated offset={2} className="w-full max-w-md overflow-hidden rounded-xl">
94
- <Command.Palette
95
- placeholder="Search settings…"
96
- items={[
97
- {
98
- label: 'Account',
99
- items: [
100
- { label: 'Profile', icon: User, shortcut: '⌘P' },
101
- { label: 'Billing', icon: CreditCard, shortcut: '⌘B' },
102
- ],
103
- },
104
- {
105
- label: 'Appearance',
106
- items: [
107
- { label: 'Light theme', icon: Sun },
108
- { label: 'Dark theme', icon: Moon },
109
- ],
110
- },
111
- ]}
112
- />
113
- </Elevated>