@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.
- package/DESIGN.md +608 -0
- package/README.md +61 -39
- package/blocks/sidebar-app/examples.mdx +33 -0
- package/blocks/sidebar-app/index.tsx +218 -0
- package/blocks/sidebar-app/inset-topbar.tsx +25 -0
- package/blocks/sidebar-app/menu-grid.ts +26 -0
- package/blocks/sidebar-app/nav-data.ts +36 -0
- package/blocks/sidebar-app/search-field.tsx +48 -0
- package/blocks/sidebar-app/user-footer.tsx +67 -0
- package/blocks/sidebar-app/workspace-header.tsx +129 -0
- package/components/AI/input-message/examples.mdx +124 -0
- package/components/AI/input-message/file-thumbnail.tsx +173 -0
- package/components/AI/input-message/index.tsx +1383 -0
- package/components/AI/thinking-indicator/examples.mdx +27 -0
- package/components/AI/thinking-indicator/index.tsx +210 -0
- package/components/accordion/examples.mdx +148 -0
- package/components/accordion/index.tsx +1034 -0
- package/components/avatar/examples.mdx +95 -0
- package/components/avatar/index.tsx +129 -0
- package/components/badge/change-demo.tsx +29 -0
- package/components/badge/examples.mdx +120 -0
- package/components/badge/index.tsx +225 -0
- package/components/badge/variants.ts +73 -0
- package/components/button/examples.mdx +164 -0
- package/components/button/index.tsx +416 -0
- package/components/button/loading-demo.tsx +25 -0
- package/components/button/variants.ts +166 -0
- package/components/card/examples.mdx +212 -0
- package/components/card/index.tsx +1037 -0
- package/components/copy/examples.mdx +87 -0
- package/components/copy/index.tsx +482 -0
- package/components/inputs/checkbox/examples.mdx +83 -0
- package/components/inputs/checkbox/index.tsx +611 -0
- package/components/inputs/checkbox/select-all-demo.tsx +48 -0
- package/components/inputs/color-picker/examples.mdx +72 -0
- package/components/inputs/color-picker/index.tsx +1955 -0
- package/components/inputs/color-picker/variants.ts +401 -0
- package/components/inputs/combobox/examples.mdx +273 -0
- package/components/inputs/combobox/index.tsx +1436 -0
- package/components/inputs/combobox/remote-demo.tsx +101 -0
- package/components/inputs/date-time/calendar/examples.mdx +34 -0
- package/components/inputs/date-time/calendar/index.tsx +351 -0
- package/components/inputs/date-time/calendar/use-month-window.ts +163 -0
- package/components/inputs/date-time/date-picker/examples.mdx +166 -0
- package/components/inputs/date-time/date-picker/index.tsx +385 -0
- package/components/inputs/date-time/date-picker/masked-date-input.tsx +336 -0
- package/components/inputs/date-time/date-range-picker/examples.mdx +29 -0
- package/components/inputs/date-time/date-range-picker/index.tsx +217 -0
- package/components/inputs/date-time/duration-picker/examples.mdx +16 -0
- package/components/inputs/date-time/duration-picker/index.tsx +189 -0
- package/components/inputs/date-time/month-picker/examples.mdx +16 -0
- package/components/inputs/date-time/month-picker/index.tsx +190 -0
- package/components/inputs/date-time/picker-shell.tsx +395 -0
- package/components/inputs/date-time/time-columns.tsx +91 -0
- package/components/inputs/date-time/time-picker/examples.mdx +26 -0
- package/components/inputs/date-time/time-picker/index.tsx +166 -0
- package/components/inputs/field/examples.mdx +113 -0
- package/components/inputs/field/index.tsx +267 -0
- package/components/inputs/file-dropzone/examples.mdx +73 -0
- package/components/inputs/file-dropzone/file-row.tsx +201 -0
- package/components/inputs/file-dropzone/index.tsx +296 -0
- package/components/inputs/file-dropzone/upload-demo.tsx +67 -0
- package/components/inputs/file-dropzone/variants.ts +94 -0
- package/components/inputs/input/examples.mdx +135 -0
- package/components/inputs/input/index.tsx +494 -0
- package/components/inputs/input/password-demo.tsx +30 -0
- package/components/inputs/label/examples.mdx +67 -0
- package/components/inputs/label/index.tsx +85 -0
- package/components/inputs/number-input/examples.mdx +56 -0
- package/components/inputs/number-input/index.tsx +214 -0
- package/components/inputs/radio/examples.mdx +77 -0
- package/components/inputs/radio/index.tsx +636 -0
- package/components/inputs/search/examples.mdx +74 -0
- package/components/inputs/search/index.tsx +333 -0
- package/components/inputs/select/examples.mdx +218 -0
- package/components/inputs/select/index.tsx +862 -0
- package/components/inputs/select/variants.ts +32 -0
- package/components/inputs/slider/examples.mdx +127 -0
- package/components/inputs/slider/index.tsx +1725 -0
- package/components/inputs/switch/examples.mdx +94 -0
- package/components/inputs/switch/index.tsx +504 -0
- package/components/inputs/textarea/examples.mdx +88 -0
- package/components/inputs/textarea/index.tsx +161 -0
- package/components/navigation/navigation-menu/examples.mdx +109 -0
- package/components/navigation/navigation-menu/index.tsx +613 -0
- package/components/navigation/pagination/examples.mdx +64 -0
- package/components/navigation/pagination/index.tsx +395 -0
- package/components/navigation/sidebar/examples.mdx +319 -0
- package/components/navigation/sidebar/index.tsx +453 -0
- package/components/navigation/sidebar/sidebar-core.tsx +1408 -0
- package/components/navigation/sidebar/sidebar-menu.tsx +1495 -0
- package/components/navigation/sidebar/sidebar.css +74 -0
- package/components/navigation/sidebar/variants.ts +55 -0
- package/components/navigation/tabs/examples.mdx +89 -0
- package/components/navigation/tabs/index.tsx +494 -0
- package/components/navigation/tabs-subtle/examples.mdx +49 -0
- package/components/navigation/tabs-subtle/index.tsx +512 -0
- package/components/overlays/alert-dialog/examples.mdx +123 -0
- package/components/overlays/alert-dialog/index.tsx +258 -0
- package/components/overlays/alert-dialog/pending-demo.tsx +36 -0
- package/components/overlays/command/examples.mdx +113 -0
- package/components/overlays/command/index.tsx +416 -0
- package/components/overlays/context-menu/examples.mdx +56 -0
- package/components/overlays/context-menu/index.tsx +279 -0
- package/components/overlays/dialog/examples.mdx +144 -0
- package/components/overlays/dialog/index.tsx +366 -0
- package/components/overlays/dropdown/dropdown-search.tsx +395 -0
- package/components/overlays/dropdown/examples.mdx +294 -0
- package/components/overlays/dropdown/index.tsx +1168 -0
- package/components/overlays/dropdown/menu-item.tsx +464 -0
- package/components/overlays/dropdown/menu-parts.tsx +660 -0
- package/components/overlays/popover/anchored-demo.tsx +59 -0
- package/components/overlays/popover/examples.mdx +180 -0
- package/components/overlays/popover/index.tsx +315 -0
- package/components/overlays/preview-card/examples.mdx +61 -0
- package/components/overlays/preview-card/index.tsx +204 -0
- package/components/overlays/sheet/examples.mdx +89 -0
- package/components/overlays/sheet/index.tsx +247 -0
- package/components/overlays/toast/examples.mdx +68 -0
- package/components/overlays/toast/global-demo.tsx +72 -0
- package/components/overlays/toast/index.tsx +474 -0
- package/components/overlays/toast/manager.ts +193 -0
- package/components/overlays/tooltip/examples.mdx +106 -0
- package/components/overlays/tooltip/index.tsx +519 -0
- package/components/progress/examples.mdx +59 -0
- package/components/progress/index.tsx +174 -0
- package/components/progress/progress.css +49 -0
- package/components/progress/step-demo.tsx +27 -0
- package/components/table/examples.mdx +184 -0
- package/components/table/index.tsx +510 -0
- package/components/table/sort-demo.tsx +61 -0
- package/dist/base.css +100 -0
- package/dist/blocks/sidebar-app/index.js +39 -26
- package/dist/components/AI/input-message/index.js +22 -16
- package/dist/components/AI/thinking-indicator/index.js +9 -6
- package/dist/components/accordion/index.js +16 -13
- package/dist/components/avatar/index.d.ts +46 -0
- package/dist/components/avatar/index.js +18 -0
- package/dist/components/badge/index.d.ts +18 -11
- package/dist/components/badge/index.js +11 -7
- package/dist/components/badge/variants.d.ts +33 -0
- package/dist/components/badge/variants.js +10 -0
- package/dist/components/button/index.d.ts +53 -17
- package/dist/components/button/index.js +10 -6
- package/dist/components/button/variants.d.ts +39 -0
- package/dist/components/button/variants.js +8 -0
- package/dist/components/card/index.d.ts +16 -3
- package/dist/components/card/index.js +16 -11
- package/dist/components/copy/index.js +13 -9
- package/dist/components/inputs/checkbox/index.d.ts +28 -9
- package/dist/components/inputs/checkbox/index.js +17 -13
- package/dist/components/inputs/color-picker/index.d.ts +13 -13
- package/dist/components/inputs/color-picker/index.js +25 -18
- package/dist/components/inputs/color-picker/variants.d.ts +61 -0
- package/dist/components/inputs/color-picker/variants.js +28 -0
- package/dist/components/inputs/combobox/index.d.ts +60 -17
- package/dist/components/inputs/combobox/index.js +26 -18
- package/dist/components/inputs/date-time/calendar/index.js +14 -11
- package/dist/components/inputs/date-time/date-picker/index.d.ts +53 -11
- package/dist/components/inputs/date-time/date-picker/index.js +33 -25
- package/dist/components/inputs/date-time/date-range-picker/index.d.ts +3 -3
- package/dist/components/inputs/date-time/date-range-picker/index.js +32 -24
- package/dist/components/inputs/date-time/duration-picker/index.d.ts +3 -3
- package/dist/components/inputs/date-time/duration-picker/index.js +32 -24
- package/dist/components/inputs/date-time/month-picker/index.d.ts +3 -3
- package/dist/components/inputs/date-time/month-picker/index.js +31 -23
- package/dist/components/inputs/date-time/time-picker/index.d.ts +3 -3
- package/dist/components/inputs/date-time/time-picker/index.js +32 -24
- package/dist/components/inputs/field/index.d.ts +116 -0
- package/dist/components/inputs/field/index.js +28 -0
- package/dist/components/inputs/file-dropzone/index.d.ts +165 -0
- package/dist/components/inputs/file-dropzone/index.js +32 -0
- package/dist/components/inputs/file-dropzone/variants.d.ts +35 -0
- package/dist/components/inputs/file-dropzone/variants.js +12 -0
- package/dist/components/inputs/input/index.d.ts +95 -13
- package/dist/components/inputs/input/index.js +17 -9
- package/dist/components/inputs/label/index.d.ts +32 -0
- package/dist/components/inputs/label/index.js +11 -0
- package/dist/components/inputs/number-input/index.d.ts +84 -0
- package/dist/components/inputs/number-input/index.js +20 -0
- package/dist/components/inputs/radio/index.d.ts +20 -5
- package/dist/components/inputs/radio/index.js +15 -12
- package/dist/components/inputs/search/index.js +25 -18
- package/dist/components/inputs/select/index.d.ts +41 -11
- package/dist/components/inputs/select/index.js +27 -14
- package/dist/components/inputs/select/variants.d.ts +5 -0
- package/dist/components/inputs/select/variants.js +6 -0
- package/dist/components/inputs/slider/index.js +7 -5
- package/dist/components/inputs/switch/index.d.ts +8 -2
- package/dist/components/inputs/switch/index.js +14 -12
- package/dist/components/inputs/textarea/index.d.ts +4 -0
- package/dist/components/inputs/textarea/index.js +8 -6
- package/dist/components/navigation/navigation-menu/index.d.ts +114 -0
- package/dist/components/navigation/navigation-menu/index.js +40 -0
- package/dist/components/navigation/pagination/index.d.ts +73 -0
- package/dist/components/navigation/pagination/index.js +39 -0
- package/dist/components/navigation/sidebar/index.d.ts +44 -21
- package/dist/components/navigation/sidebar/index.js +41 -31
- package/dist/components/navigation/sidebar/variants.d.ts +25 -0
- package/dist/components/navigation/sidebar/variants.js +28 -0
- package/dist/components/navigation/tabs/index.d.ts +8 -2
- package/dist/components/navigation/tabs/index.js +14 -10
- package/dist/components/navigation/tabs-subtle/index.js +12 -10
- package/dist/components/overlays/alert-dialog/index.d.ts +121 -15
- package/dist/components/overlays/alert-dialog/index.js +22 -13
- package/dist/components/overlays/command/index.js +24 -17
- package/dist/components/overlays/context-menu/index.d.ts +33 -17
- package/dist/components/overlays/context-menu/index.js +27 -18
- package/dist/components/overlays/dialog/index.js +17 -12
- package/dist/components/overlays/dropdown/index.d.ts +257 -31
- package/dist/components/overlays/dropdown/index.js +42 -17
- package/dist/components/overlays/popover/index.d.ts +31 -9
- package/dist/components/overlays/popover/index.js +12 -9
- package/dist/components/overlays/preview-card/index.js +11 -8
- package/dist/components/overlays/sheet/index.js +18 -13
- package/dist/components/overlays/toast/index.d.ts +123 -47
- package/dist/components/overlays/toast/index.js +18 -10
- package/dist/components/overlays/tooltip/index.d.ts +113 -21
- package/dist/components/overlays/tooltip/index.js +15 -6
- package/dist/components/progress/index.d.ts +56 -0
- package/dist/components/progress/index.js +15 -0
- package/dist/components/table/index.d.ts +63 -8
- package/dist/components/table/index.js +19 -9
- package/dist/index.d.ts +2201 -736
- package/dist/index.js +223 -82
- package/dist/lib/date-locale.d.ts +14 -0
- package/dist/lib/date-locale.js +16 -0
- package/dist/lib/field-classes.d.ts +144 -0
- package/dist/lib/field-classes.js +40 -0
- package/dist/lib/field-variants.d.ts +47 -0
- package/dist/lib/field-variants.js +26 -0
- package/dist/lib/fluid-hover-highlight.d.ts +112 -0
- package/dist/lib/fluid-hover-highlight.js +17 -0
- package/dist/lib/focus-ring.d.ts +18 -0
- package/dist/lib/focus-ring.js +10 -0
- package/dist/lib/goo-indicator.d.ts +46 -0
- package/dist/lib/goo-indicator.js +14 -0
- package/dist/lib/icon-context.d.ts +30 -0
- package/dist/lib/icon-context.js +12 -0
- package/dist/lib/inert.d.ts +9 -0
- package/dist/lib/inert.js +8 -0
- package/dist/lib/morph-layers.d.ts +93 -0
- package/dist/lib/morph-layers.js +13 -0
- package/dist/lib/morph-part.d.ts +21 -0
- package/dist/lib/morph-part.js +12 -0
- package/dist/lib/popup.d.ts +20 -0
- package/dist/lib/popup.js +12 -0
- package/dist/lib/reduced-motion.d.ts +9 -0
- package/dist/lib/reduced-motion.js +6 -0
- package/dist/lib/row-index.d.ts +10 -0
- package/dist/lib/row-index.js +8 -0
- package/dist/lib/row-order.d.ts +28 -0
- package/dist/lib/row-order.js +10 -0
- package/dist/lib/scroll-column.d.ts +27 -0
- package/dist/lib/scroll-column.js +18 -0
- package/dist/lib/shape-context.d.ts +30 -0
- package/dist/lib/shape-context.js +12 -0
- package/dist/lib/size-context.d.ts +94 -0
- package/dist/lib/size-context.js +20 -0
- package/dist/lib/size-scale.d.ts +79 -0
- package/dist/lib/size-scale.js +8 -0
- package/dist/lib/slot.d.ts +12 -0
- package/dist/lib/slot.js +6 -0
- package/dist/lib/springs.d.ts +44 -0
- package/dist/lib/springs.js +8 -0
- package/dist/lib/surface-classes.d.ts +19 -0
- package/dist/lib/surface-classes.js +10 -0
- package/dist/lib/surface-context.d.ts +9 -0
- package/dist/lib/surface-context.js +8 -0
- package/dist/lib/use-controllable-state.d.ts +2 -0
- package/dist/lib/use-controllable-state.js +6 -0
- package/dist/lib/use-fluid-hover.d.ts +138 -0
- package/dist/lib/use-fluid-hover.js +14 -0
- package/dist/lib/use-is-mobile.d.ts +2 -0
- package/dist/lib/use-is-mobile.js +6 -0
- package/dist/lib/use-keyboard-nav-gate.d.ts +20 -0
- package/dist/lib/use-keyboard-nav-gate.js +7 -0
- package/dist/lib/use-merge-split.d.ts +47 -0
- package/dist/lib/use-merge-split.js +15 -0
- package/dist/lib/use-morph.d.ts +101 -0
- package/dist/lib/use-morph.js +20 -0
- package/dist/lib/use-touch-primary.d.ts +2 -0
- package/dist/lib/use-touch-primary.js +6 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.js +6 -0
- package/dist/preset.d.ts +17 -0
- package/dist/preset.js +22 -2
- package/dist/primitives/code/index.js +7 -5
- package/dist/primitives/craft/index.js +9 -6
- package/dist/primitives/fluid-hover/index.js +9 -8
- package/dist/primitives/morph/index.js +15 -10
- package/dist/primitives/motion/index.js +10 -8
- package/dist/primitives/scroll-area/index.js +4 -3
- package/dist/primitives/separator/index.d.ts +25 -0
- package/dist/primitives/separator/index.js +9 -0
- package/dist/primitives/sizes/index.js +6 -4
- package/dist/primitives/skeleton/index.d.ts +35 -0
- package/dist/primitives/skeleton/index.js +12 -0
- package/dist/primitives/surface/index.js +6 -4
- package/dist/shared/{components-3mkepka5.js → components-0jmqhx2k.js} +28 -25
- package/dist/shared/components-124epb7f.js +53 -0
- package/dist/shared/{components-gz8zf3ec.js → components-1k0wv53d.js} +15 -43
- package/dist/shared/components-26snnbs9.js +322 -0
- package/dist/shared/{components-2dxkv6zm.js → components-2c0qcfx4.js} +8 -7
- package/dist/shared/{components-473g814w.js → components-2mt9te6d.js} +243 -137
- package/dist/shared/{components-hawvy2qz.js → components-2z48g4fp.js} +9 -30
- package/dist/shared/components-34txk9rj.js +35 -0
- package/dist/shared/components-3h92d94m.js +23 -0
- package/dist/shared/{components-zfnmn5d4.js → components-3sp623ae.js} +36 -31
- package/dist/shared/{components-jwst3vtj.js → components-3wxkjgqn.js} +186 -76
- package/dist/shared/{components-s2bz1xpk.js → components-49bsynbw.js} +8 -5
- package/dist/shared/components-4bwsd46w.js +71 -0
- package/dist/shared/components-4n4f5m3e.js +297 -0
- package/dist/shared/{components-0q0sqfh4.js → components-4y816hwp.js} +27 -49
- package/dist/shared/components-52ngsgca.js +399 -0
- package/dist/shared/{components-y9y0g8er.js → components-52r5763g.js} +22 -19
- package/dist/shared/components-559tf7yb.js +28 -0
- package/dist/shared/components-5mkga9hj.js +440 -0
- package/dist/shared/{components-kwa6mrf9.js → components-5s0nfqvw.js} +14 -9
- package/dist/shared/{components-dk0gjr5a.js → components-60atskhp.js} +19 -18
- package/dist/shared/{components-rr7a6ja9.js → components-658b26nb.js} +21 -18
- package/dist/shared/{components-xxvdw7k1.js → components-65vwfjs6.js} +37 -34
- package/dist/shared/{components-frw34b65.js → components-6j2fh74k.js} +114 -123
- package/dist/shared/components-6zg1yft7.js +167 -0
- package/dist/shared/components-6zng858q.js +53 -0
- package/dist/shared/components-72w4ge68.js +64 -0
- package/dist/shared/{components-cv16mryv.js → components-78x40gee.js} +13 -7
- package/dist/shared/{components-b2wyq2cq.js → components-7d4r7hh1.js} +39 -57
- package/dist/shared/components-7ntvvegr.js +316 -0
- package/dist/shared/components-8nwsqjn8.js +34 -0
- package/dist/shared/{components-5xc2j8jz.js → components-8tt3xbb5.js} +19 -18
- package/dist/shared/{components-vc7vq5nz.js → components-9as3rf68.js} +6 -3
- package/dist/shared/components-9mys9jna.js +255 -0
- package/dist/shared/components-adkarj8n.js +35 -0
- package/dist/shared/{components-b3c5et5b.js → components-ae9fncz4.js} +32 -31
- package/dist/shared/{components-hqeq3w9q.js → components-awra5sff.js} +24 -16
- package/dist/shared/components-b1e239g3.js +28 -0
- package/dist/shared/{components-q5xj5c16.js → components-b1f2bjf1.js} +9 -8
- package/dist/shared/{components-qmmjx1qw.js → components-bn42vq6d.js} +71 -72
- package/dist/shared/components-c96g82th.js +1444 -0
- package/dist/shared/components-c9yr4ed1.js +44 -0
- package/dist/shared/components-d3shbwqq.js +95 -0
- package/dist/shared/{components-jjw69c4c.js → components-dcc02hs2.js} +7 -4
- package/dist/shared/{components-men63rwj.js → components-de99ykt7.js} +3 -2
- package/dist/shared/components-dhgk6mbt.js +16 -0
- package/dist/shared/components-drxrtnp2.js +25 -0
- package/dist/shared/{components-6p8tfcd6.js → components-ds9fqat9.js} +21 -18
- package/dist/shared/{components-mjthm1kf.js → components-egy4tyjt.js} +11 -8
- package/dist/shared/components-f0xfpkhh.js +82 -0
- package/dist/shared/components-f7h57m6t.js +59 -0
- package/dist/shared/{components-d6xtjht3.js → components-fjkpbg6n.js} +33 -30
- package/dist/shared/{components-gc5vtq2f.js → components-gh0qeey3.js} +63 -29
- package/dist/shared/{components-39jq9va1.js → components-gvbapfen.js} +29 -24
- package/dist/shared/{components-5vgpnxgy.js → components-gzesg7hy.js} +19 -16
- package/dist/shared/components-h6p86be3.js +19 -0
- package/dist/shared/components-h83az0bz.js +33 -0
- package/dist/shared/components-jjrj6ymn.js +104 -0
- package/dist/shared/{components-wvp1m52g.js → components-jp5v0m0f.js} +15 -14
- package/dist/shared/{components-zrkzcayz.js → components-jqpefjsn.js} +54 -6
- package/dist/shared/{components-1z6tdadk.js → components-k74j4hwh.js} +20 -17
- package/dist/shared/components-kswxnm3h.js +24 -0
- package/dist/shared/{components-jbbmdr74.js → components-mkkbbgb7.js} +36 -17
- package/dist/shared/{components-pbmqctfa.js → components-mpw667rb.js} +169 -65
- package/dist/shared/{components-s5ngg32c.js → components-paa08427.js} +121 -47
- package/dist/shared/{components-vfbhxf5r.js → components-pd42emw3.js} +6 -5
- package/dist/shared/{components-hw9yk32z.js → components-pmfszv7a.js} +35 -23
- package/dist/shared/{components-chacnk61.js → components-pw06rbxq.js} +19 -19
- package/dist/shared/components-q03cktx8.js +246 -0
- package/dist/shared/{components-kvr7f9hy.js → components-qdm3yh26.js} +19 -10
- package/dist/shared/{components-27nnvrwe.js → components-qs4rkqsj.js} +15 -14
- package/dist/shared/{components-s083f38z.js → components-r6gbmkew.js} +22 -21
- package/dist/shared/{components-ta7shw28.js → components-r8eqs7gz.js} +4 -4
- package/dist/shared/{components-sn1rxx1d.js → components-rm02h9nt.js} +12 -11
- package/dist/shared/{components-c6s6b43g.js → components-rrbpmfx4.js} +3 -2
- package/dist/shared/{components-n7mjr357.js → components-tz1fv35x.js} +3 -2
- package/dist/shared/components-tz4gaf1v.js +23 -0
- package/dist/shared/{components-zx6b6yby.js → components-vf45j12c.js} +4 -18
- package/dist/shared/{components-3ky44908.js → components-vfjc9jzz.js} +2 -3
- package/dist/shared/{components-39vmfq9s.js → components-vsa625vk.js} +21 -20
- package/dist/shared/components-wawnmkph.js +500 -0
- package/dist/shared/components-wktrrb4m.js +38 -0
- package/dist/shared/{components-8snj490h.js → components-wwd363me.js} +78 -32
- package/dist/shared/{components-5pnw8183.js → components-xcwvgcrd.js} +23 -22
- package/dist/shared/components-xdqmt6ed.js +20 -0
- package/dist/shared/{components-h2ajmhwn.js → components-y1w3a6wx.js} +107 -35
- package/dist/shared/{components-ar66gnt0.js → components-y6578b8h.js} +37 -34
- package/dist/shared/{components-59efxjd9.js → components-yhgq0qxx.js} +13 -12
- package/dist/shared/{components-jthe1pwb.js → components-yz84gpkq.js} +101 -404
- package/dist/shared/components-z3v0n0de.js +11 -0
- package/dist/shared/{components-7r3etddy.js → components-z9n19fyk.js} +19 -54
- package/dist/shared/components-zbvjzh1p.js +141 -0
- package/dist/styles.css +241 -16
- package/dist/tailwind.css +13 -0
- package/dist/tokens.css +34 -0
- package/index.ts +60 -0
- package/lib/date-locale.ts +50 -0
- package/lib/field-classes.ts +115 -0
- package/lib/field-variants.ts +117 -0
- package/lib/fluid-hover-highlight.tsx +139 -0
- package/lib/focus-ring.tsx +46 -0
- package/lib/goo-indicator.tsx +261 -0
- package/lib/icon-context.tsx +310 -0
- package/lib/inert.ts +22 -0
- package/lib/morph-layers.tsx +102 -0
- package/lib/morph-part.tsx +49 -0
- package/lib/popup.ts +52 -0
- package/lib/reduced-motion.ts +19 -0
- package/lib/row-index.tsx +29 -0
- package/lib/row-order.tsx +115 -0
- package/lib/scroll-column.tsx +244 -0
- package/lib/shape-context.tsx +124 -0
- package/lib/size-context.tsx +66 -0
- package/lib/size-scale.ts +115 -0
- package/lib/slot.ts +25 -0
- package/lib/springs.ts +62 -0
- package/lib/surface-classes.ts +58 -0
- package/lib/surface-context.tsx +21 -0
- package/lib/use-controllable-state.ts +44 -0
- package/lib/use-fluid-hover.ts +541 -0
- package/lib/use-is-mobile.ts +25 -0
- package/lib/use-keyboard-nav-gate.ts +45 -0
- package/lib/use-merge-split.tsx +209 -0
- package/lib/use-morph.ts +557 -0
- package/lib/use-touch-primary.tsx +43 -0
- package/lib/utils.ts +37 -0
- package/package.json +177 -4
- package/preset.ts +196 -0
- package/primitives/code/examples.mdx +27 -0
- package/primitives/code/index.tsx +80 -0
- package/primitives/craft/demos.tsx +173 -0
- package/primitives/craft/examples.mdx +138 -0
- package/primitives/craft/index.tsx +76 -0
- package/primitives/fluid-hover/examples.mdx +84 -0
- package/primitives/fluid-hover/index.tsx +316 -0
- package/primitives/morph/examples.mdx +135 -0
- package/primitives/morph/index.tsx +192 -0
- package/primitives/motion/examples.mdx +100 -0
- package/primitives/motion/index.tsx +160 -0
- package/primitives/scroll-area/examples.mdx +58 -0
- package/primitives/scroll-area/index.tsx +200 -0
- package/primitives/separator/examples.mdx +30 -0
- package/primitives/separator/index.tsx +53 -0
- package/primitives/sizes/examples.mdx +167 -0
- package/primitives/sizes/index.tsx +89 -0
- package/primitives/skeleton/examples.mdx +51 -0
- package/primitives/skeleton/index.tsx +72 -0
- package/primitives/skeleton/skeleton.css +15 -0
- package/primitives/surface/examples.mdx +173 -0
- package/primitives/surface/index.tsx +109 -0
- package/primitives/surface/surface.css +176 -0
- package/dist/shared/components-0sn7ypjw.js +0 -61
- package/dist/shared/components-1434p1mh.js +0 -123
- package/dist/shared/components-a86dytt0.js +0 -986
- package/dist/shared/components-gf5s6ap9.js +0 -42
- package/dist/shared/components-hyq23phv.js +0 -310
- package/dist/shared/components-ng72k97e.js +0 -128
- package/dist/shared/components-raknhppb.js +0 -64
- package/dist/shared/components-vynjtrk6.js +0 -19
- package/dist/shared/components-wy9jpqny.js +0 -146
- /package/dist/shared/{components-1v7rxytx.js → components-3ey0hzpb.js} +0 -0
- /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,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,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
|
+
};
|
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: {
|
|
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-
|
|
4
|
-
import"../../shared/components-
|
|
5
|
-
import"../../shared/components-
|
|
6
|
-
import"../../shared/components-
|
|
7
|
-
import"../../shared/components-
|
|
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-
|
|
4
|
-
import"../../shared/components-
|
|
5
|
-
import"../../shared/components-
|
|
6
|
-
import"../../shared/components-
|
|
7
|
-
import"../../shared/components-
|
|
8
|
-
import"../../shared/components-
|
|
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-
|
|
5
|
+
} from "../../shared/components-2c0qcfx4.js";
|
|
6
6
|
import {
|
|
7
7
|
FluidHoverHighlight2
|
|
8
|
-
} from "../../shared/components-
|
|
9
|
-
import"../../shared/components-
|
|
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-
|
|
14
|
-
import"../../shared/components-
|
|
15
|
-
import"../../shared/components-
|
|
16
|
-
import"../../shared/components-
|
|
17
|
-
import"../../shared/components-
|
|
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-
|
|
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-
|
|
7
|
-
import"../../shared/components-
|
|
8
|
-
import"../../shared/components-
|
|
9
|
-
import"../../shared/components-
|
|
10
|
-
import"../../shared/components-
|
|
11
|
-
import"../../shared/components-
|
|
12
|
-
import"../../shared/components-
|
|
13
|
-
import"../../shared/components-
|
|
14
|
-
import"../../shared/components-
|
|
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-
|
|
4
|
-
import"../../shared/components-
|
|
5
|
-
import"../../shared/components-
|
|
6
|
-
import"../../shared/components-
|
|
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-
|
|
11
|
-
import"../../shared/components-
|
|
12
|
-
import"../../shared/components-
|
|
13
|
-
import"../../shared/components-
|
|
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-
|
|
6
|
-
import"../../shared/components-
|
|
7
|
-
import"../../shared/components-
|
|
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 };
|