@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
|
@@ -3,19 +3,24 @@ import {
|
|
|
3
3
|
SheetIndent2,
|
|
4
4
|
Sheet2,
|
|
5
5
|
sheet_default
|
|
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-
|
|
15
|
-
import"../../../shared/components-
|
|
16
|
-
import"../../../shared/components-
|
|
17
|
-
import"../../../shared/components-
|
|
18
|
-
import"../../../shared/components-
|
|
6
|
+
} from "../../../shared/components-658b26nb.js";
|
|
7
|
+
import"../../../shared/components-3sp623ae.js";
|
|
8
|
+
import"../../../shared/components-vf45j12c.js";
|
|
9
|
+
import"../../../shared/components-dhgk6mbt.js";
|
|
10
|
+
import"../../../shared/components-vfjc9jzz.js";
|
|
11
|
+
import"../../../shared/components-4y816hwp.js";
|
|
12
|
+
import"../../../shared/components-b1e239g3.js";
|
|
13
|
+
import"../../../shared/components-jqpefjsn.js";
|
|
14
|
+
import"../../../shared/components-awra5sff.js";
|
|
15
|
+
import"../../../shared/components-7d4r7hh1.js";
|
|
16
|
+
import"../../../shared/components-f0xfpkhh.js";
|
|
17
|
+
import"../../../shared/components-tz1fv35x.js";
|
|
18
|
+
import"../../../shared/components-de99ykt7.js";
|
|
19
|
+
import"../../../shared/components-3ey0hzpb.js";
|
|
20
|
+
import"../../../shared/components-h83az0bz.js";
|
|
21
|
+
import"../../../shared/components-34txk9rj.js";
|
|
22
|
+
import"../../../shared/components-78x40gee.js";
|
|
23
|
+
import"../../../shared/components-jcnjay5g.js";
|
|
19
24
|
export {
|
|
20
25
|
Sheet2 as Sheet,
|
|
21
26
|
SheetContent2 as SheetContent,
|
|
@@ -1,69 +1,134 @@
|
|
|
1
|
-
import { ReactNode as
|
|
2
|
-
import {
|
|
1
|
+
import { ReactNode as ReactNode4 } from "react";
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
|
+
interface IconComponentProps {
|
|
4
|
+
size?: number | string;
|
|
5
|
+
strokeWidth?: number | string;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
type IconComponent = ComponentType<IconComponentProps>;
|
|
9
|
+
import { ButtonHTMLAttributes, ReactElement, ReactNode as ReactNode2 } from "react";
|
|
3
10
|
interface SlotProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
11
|
/** The element that becomes the control, e.g. a Button. */
|
|
5
12
|
render?: ReactElement;
|
|
6
13
|
/** Compose onto the single child instead. Both spellings work in both flavors. Defaults to `false`. */
|
|
7
14
|
asChild?: boolean;
|
|
8
15
|
/** Control content when there is no render element. */
|
|
9
|
-
children?:
|
|
16
|
+
children?: ReactNode2;
|
|
10
17
|
}
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
18
|
+
import { ToastManager } from "@base-ui/react/toast";
|
|
19
|
+
import { ReactNode as ReactNode3 } from "react";
|
|
20
|
+
import { ToastManagerEvent as ToastManagerEvent_co995g } from "@base-ui/react";
|
|
14
21
|
type ToastType = "success" | "loading" | "error" | "warning" | "info" | "action";
|
|
15
|
-
|
|
22
|
+
/** A button in the toast's body. */
|
|
23
|
+
interface ToastActionOptions {
|
|
24
|
+
label: ReactNode3;
|
|
25
|
+
onClick?: () => void;
|
|
26
|
+
}
|
|
16
27
|
interface ToastOptions {
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
/** Reuse an id to replace a toast that is still showing. */
|
|
29
|
+
id?: string;
|
|
30
|
+
title?: ReactNode3;
|
|
31
|
+
description?: ReactNode3;
|
|
19
32
|
type?: ToastType;
|
|
20
33
|
/** Ms before it leaves; 0 keeps it until dismissed. */
|
|
21
34
|
timeout?: number;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
/** Same as `timeout`; `timeout` wins when both are set. */
|
|
36
|
+
duration?: number;
|
|
37
|
+
/** Replaces the state's icon in the pill: an icon component, or any node. */
|
|
38
|
+
icon?: IconComponent | ReactNode3;
|
|
39
|
+
/** A button in the body (`{ label, onClick }`), or any node. */
|
|
40
|
+
action?: ToastActionOptions | ReactNode3;
|
|
41
|
+
/** Runs once the toast starts to leave, however it was closed. */
|
|
42
|
+
onClose?: () => void;
|
|
43
|
+
/** `high` is announced at once by screen readers; `low` waits its turn. */
|
|
44
|
+
priority?: "low" | "high";
|
|
45
|
+
}
|
|
46
|
+
/** What a toast keeps beside Base UI's own fields. */
|
|
47
|
+
interface ToastData {
|
|
48
|
+
icon?: IconComponent | ReactNode3;
|
|
49
|
+
action?: ReactNode3;
|
|
50
|
+
}
|
|
51
|
+
type ToastInput = string | ToastOptions;
|
|
52
|
+
type ToastResult<T> = ToastInput | ((value: T) => ToastInput);
|
|
53
|
+
interface ToastPromiseOptions<T> {
|
|
54
|
+
loading: ToastInput;
|
|
55
|
+
success: ToastResult<T>;
|
|
56
|
+
error: ToastResult<unknown>;
|
|
26
57
|
}
|
|
27
|
-
/**
|
|
58
|
+
/** A shown toast: its id, and updating or dismissing it. */
|
|
59
|
+
interface ToastHandle {
|
|
60
|
+
id: string;
|
|
61
|
+
update: (options: ToastInput) => void;
|
|
62
|
+
dismiss: () => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Shows a toast from anywhere — an event handler, a fetch wrapper, code
|
|
66
|
+
* outside React — in the `Toast` mounted with `manager={toast}`. Returns a
|
|
67
|
+
* handle with the id, `update` and `dismiss`.
|
|
68
|
+
*/
|
|
69
|
+
declare const toast: ((input: ToastInput) => ToastHandle) & {
|
|
70
|
+
/** A `success` toast. */
|
|
71
|
+
success: (input: ToastInput) => ToastHandle;
|
|
72
|
+
/** An `error` toast. */
|
|
73
|
+
error: (input: ToastInput) => ToastHandle;
|
|
74
|
+
/** A `warning` toast. */
|
|
75
|
+
warning: (input: ToastInput) => ToastHandle;
|
|
76
|
+
/** An `info` toast. */
|
|
77
|
+
info: (input: ToastInput) => ToastHandle;
|
|
78
|
+
/** A spinning `loading` toast. It stays while its type is `loading`; once updated to another type it leaves on its own `timeout` or the `Toast`'s. */
|
|
79
|
+
loading: (input: ToastInput) => ToastHandle;
|
|
80
|
+
/** Runs `promise` behind a `loading` toast that turns into its `success` or `error` toast. Returns the promise. */
|
|
81
|
+
promise: <T>(promise: Promise<T>, options: ToastPromiseOptions<T>) => Promise<T>;
|
|
82
|
+
/** Changes a toast that is showing. */
|
|
83
|
+
update: (id: string, input: ToastInput) => void;
|
|
84
|
+
/** Closes one toast, or every toast without an id. */
|
|
85
|
+
dismiss: (id?: string) => void;
|
|
86
|
+
" subscribe": (listener: (data: ToastManagerEvent_co995g) => void) => () => void;
|
|
87
|
+
};
|
|
88
|
+
/** What `<Toast manager>` takes: the global `toast`, or a manager from Base UI's `Toast.createToastManager()`. */
|
|
89
|
+
type ToastSource = Pick<ToastManager, " subscribe">;
|
|
90
|
+
import { ToastObject as ToastObject_9whgyu } from "@base-ui/react";
|
|
91
|
+
import { ForwardRefExoticComponent as ForwardRefExoticComponent_tcubfn } from "react";
|
|
92
|
+
import { RefAttributes as RefAttributes_miuf56 } from "react";
|
|
93
|
+
import { JSX as JSX_1kxb2 } from "react";
|
|
94
|
+
type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
95
|
+
/**
|
|
96
|
+
* Shows toasts from inside a `Toast`: `show`, the per-state shortcuts,
|
|
97
|
+
* `promise`, `update` and `close` (alias `dismiss`), plus the `toasts` showing.
|
|
98
|
+
* Under a `Toast` with `manager={toast}` it works on the same stack as the
|
|
99
|
+
* global `toast()`.
|
|
100
|
+
*/
|
|
28
101
|
declare function useToast(): {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
error: ToastOptions;
|
|
38
|
-
}) => Promise<T>;
|
|
102
|
+
toasts: ToastObject_9whgyu<ToastData>[];
|
|
103
|
+
show: (o: ToastInput) => string;
|
|
104
|
+
success: (o: ToastInput) => string;
|
|
105
|
+
error: (o: ToastInput) => string;
|
|
106
|
+
warning: (o: ToastInput) => string;
|
|
107
|
+
info: (o: ToastInput) => string;
|
|
108
|
+
promise: <T>(promise: Promise<T>, o: ToastPromiseOptions<T>) => Promise<T>;
|
|
109
|
+
update: (id: string, o: ToastInput) => void;
|
|
39
110
|
close: (toastId?: string) => void;
|
|
111
|
+
dismiss: (toastId?: string) => void;
|
|
40
112
|
};
|
|
41
|
-
interface ToastTriggerProps extends Omit<SlotProps, "type"> {
|
|
113
|
+
interface ToastTriggerProps extends Omit<SlotProps, "type" | "title"> {
|
|
42
114
|
/** The toast's title, in the pill. */
|
|
43
|
-
title?:
|
|
115
|
+
title?: ReactNode4;
|
|
44
116
|
/** Text for the body the pill melts into. */
|
|
45
|
-
description?:
|
|
117
|
+
description?: ReactNode4;
|
|
46
118
|
/** State: sets the icon and its color. Defaults to `'info'`. */
|
|
47
119
|
type?: "success" | "loading" | "error" | "warning" | "info" | "action";
|
|
48
120
|
/** Ms before it leaves; 0 keeps it until dismissed. Defaults to the `Toast`'s `timeout`. */
|
|
49
121
|
timeout?: number;
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
122
|
+
/** Replaces the state's icon in the pill: an icon component, or any node. */
|
|
123
|
+
icon?: IconComponent | ReactNode4;
|
|
124
|
+
/** A button in the body (`{ label, onClick }`), or any node. */
|
|
125
|
+
action?: ToastActionOptions | ReactNode4;
|
|
55
126
|
/** Runs a task: the toast shows `title` while it is pending, then `success` or `error`. */
|
|
56
127
|
promise?: () => Promise<unknown>;
|
|
57
128
|
/** The toast once `promise` resolves. */
|
|
58
|
-
success?:
|
|
59
|
-
title?: string;
|
|
60
|
-
description?: string;
|
|
61
|
-
};
|
|
129
|
+
success?: ToastOptions;
|
|
62
130
|
/** The toast if `promise` rejects. */
|
|
63
|
-
error?:
|
|
64
|
-
title?: string;
|
|
65
|
-
description?: string;
|
|
66
|
-
};
|
|
131
|
+
error?: ToastOptions;
|
|
67
132
|
}
|
|
68
133
|
declare const ToastTrigger: ForwardRefExoticComponent_tcubfn<ToastTriggerProps & RefAttributes_miuf56<HTMLButtonElement>>;
|
|
69
134
|
interface ToastProps {
|
|
@@ -73,10 +138,12 @@ interface ToastProps {
|
|
|
73
138
|
limit?: number;
|
|
74
139
|
/** Ms a toast stays; hovering pauses it. Defaults to `6000`. */
|
|
75
140
|
timeout?: number;
|
|
76
|
-
/**
|
|
77
|
-
|
|
141
|
+
/** Also renders the toasts this manager shows: pass the global `toast` so `toast()` calls from anywhere land here (mount one such `Toast` per app), or a manager from Base UI's `Toast.createToastManager()`. */
|
|
142
|
+
manager?: ToastSource;
|
|
143
|
+
/** The part of the app that can show toasts, with `Toast.Trigger`s or `useToast()`. Optional: a `Toast` with a `manager` can stand alone. */
|
|
144
|
+
children?: ReactNode4;
|
|
78
145
|
}
|
|
79
|
-
type
|
|
146
|
+
type Element_12xgc2 = JSX_1kxb2["Element"];
|
|
80
147
|
/**
|
|
81
148
|
* Gooey toasts: a pill with the state's icon and title that melts into a body
|
|
82
149
|
* with the details.
|
|
@@ -92,8 +159,17 @@ type Element_12xgc = JSX_1kxb["Element"];
|
|
|
92
159
|
*
|
|
93
160
|
* `Toast` wraps the part of the app that shows toasts and renders them at
|
|
94
161
|
* its `position`. Show one with `Toast.Trigger`, or call `useToast()`
|
|
95
|
-
* inside it: `show`, `success`, `error`, `warning`, `info`, `promise
|
|
96
|
-
* `close`.
|
|
162
|
+
* inside it: `show`, `success`, `error`, `warning`, `info`, `promise`,
|
|
163
|
+
* `update` and `close`.
|
|
164
|
+
*
|
|
165
|
+
* Or mount one `<Toast manager={toast} />` near the root and call the global
|
|
166
|
+
* `toast()` from anywhere, inside React or not: `toast({ title, description,
|
|
167
|
+
* type, timeout, icon, action, onClose })`, `toast.success`, `.error`,
|
|
168
|
+
* `.warning`, `.info`, `.loading`, `.promise`, `.update(id, …)` and
|
|
169
|
+
* `.dismiss(id?)`. Each call returns a handle with the toast's `id`,
|
|
170
|
+
* `update` and `dismiss`; calls made before the `Toast` mounts wait for it.
|
|
171
|
+
* Titles and descriptions take any node, `icon` replaces the state's glyph,
|
|
172
|
+
* and `action` is a button (`{ label, onClick }`) or any node.
|
|
97
173
|
*
|
|
98
174
|
* Statics:
|
|
99
175
|
* - `Toast.Trigger` — a control that shows a toast when pressed:
|
|
@@ -103,5 +179,5 @@ type Element_12xgc = JSX_1kxb["Element"];
|
|
|
103
179
|
*
|
|
104
180
|
* @example {@include ./examples.mdx}
|
|
105
181
|
*/
|
|
106
|
-
declare function Toast({ position, limit, timeout, children }: ToastProps):
|
|
107
|
-
export { Toast, ToastOptions, ToastPosition, ToastProps, ToastTrigger, ToastTriggerProps, ToastType, Toast as default, useToast };
|
|
182
|
+
declare function Toast({ position, limit, timeout, manager, children }: ToastProps): Element_12xgc2;
|
|
183
|
+
export { Toast, ToastActionOptions, ToastHandle, ToastInput, ToastOptions, ToastPosition, ToastPromiseOptions, ToastProps, ToastSource, ToastTrigger, ToastTriggerProps, ToastType, Toast as default, toast, useToast };
|
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
|
+
toast2,
|
|
2
3
|
useToast2,
|
|
3
4
|
ToastTrigger2,
|
|
4
5
|
Toast2,
|
|
5
6
|
toast_default
|
|
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-
|
|
15
|
-
import"../../../shared/components-
|
|
7
|
+
} from "../../../shared/components-3wxkjgqn.js";
|
|
8
|
+
import"../../../shared/components-vf45j12c.js";
|
|
9
|
+
import"../../../shared/components-dhgk6mbt.js";
|
|
10
|
+
import"../../../shared/components-vfjc9jzz.js";
|
|
11
|
+
import"../../../shared/components-4y816hwp.js";
|
|
12
|
+
import"../../../shared/components-b1e239g3.js";
|
|
13
|
+
import"../../../shared/components-jqpefjsn.js";
|
|
14
|
+
import"../../../shared/components-awra5sff.js";
|
|
15
|
+
import"../../../shared/components-7d4r7hh1.js";
|
|
16
|
+
import"../../../shared/components-f0xfpkhh.js";
|
|
17
|
+
import"../../../shared/components-de99ykt7.js";
|
|
18
|
+
import"../../../shared/components-3ey0hzpb.js";
|
|
19
|
+
import"../../../shared/components-h83az0bz.js";
|
|
20
|
+
import"../../../shared/components-34txk9rj.js";
|
|
21
|
+
import"../../../shared/components-78x40gee.js";
|
|
22
|
+
import"../../../shared/components-jcnjay5g.js";
|
|
16
23
|
export {
|
|
17
24
|
Toast2 as Toast,
|
|
18
25
|
ToastTrigger2 as ToastTrigger,
|
|
19
26
|
toast_default as default,
|
|
27
|
+
toast2 as toast,
|
|
20
28
|
useToast2 as useToast
|
|
21
29
|
};
|
|
@@ -1,46 +1,124 @@
|
|
|
1
|
-
import { ReactNode, RefObject } from "react";
|
|
1
|
+
import { HTMLAttributes, ReactElement as ReactElement2, ReactNode as ReactNode2, RefObject } from "react";
|
|
2
|
+
import { ButtonHTMLAttributes, ReactElement, ReactNode } from "react";
|
|
3
|
+
interface SlotProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
/** The element that becomes the control, e.g. a Button. */
|
|
5
|
+
render?: ReactElement;
|
|
6
|
+
/** Compose onto the single child instead. Both spellings work in both flavors. Defaults to `false`. */
|
|
7
|
+
asChild?: boolean;
|
|
8
|
+
/** Control content when there is no render element. */
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
2
11
|
import { JSX as JSX_1kxb } from "react";
|
|
12
|
+
import { ForwardRefExoticComponent as ForwardRefExoticComponent_tcubfn } from "react";
|
|
13
|
+
import { RefAttributes as RefAttributes_miuf56 } from "react";
|
|
3
14
|
type Element_12xgc = JSX_1kxb["Element"];
|
|
4
15
|
declare function TooltipPortalContainer({ value, children }: {
|
|
5
16
|
value: HTMLElement | null;
|
|
6
|
-
children:
|
|
17
|
+
children: ReactNode2;
|
|
7
18
|
}): Element_12xgc;
|
|
8
19
|
interface TooltipProviderProps {
|
|
9
|
-
children:
|
|
20
|
+
children: ReactNode2;
|
|
10
21
|
/** Hover delay before tooltips open, in ms. Defaults to 200. */
|
|
11
|
-
|
|
22
|
+
delay?: number;
|
|
23
|
+
/** Delay before a tooltip closes once the pointer leaves, in ms. Defaults to 0. */
|
|
24
|
+
closeDelay?: number;
|
|
12
25
|
/** After a tooltip closes, adjacent tooltips opened within this window
|
|
13
26
|
* skip the hover delay, in ms. Defaults to 300. */
|
|
27
|
+
timeout?: number;
|
|
28
|
+
/** Radix name for `delay`; `delay` wins when both are set. */
|
|
29
|
+
delayDuration?: number;
|
|
30
|
+
/** Radix name for `timeout`; `timeout` wins when both are set. A negative
|
|
31
|
+
* value, as some Radix configs use to turn the skip off, counts as 0. */
|
|
14
32
|
skipDelayDuration?: number;
|
|
15
33
|
}
|
|
16
34
|
/** Groups descendant Tooltips so that once one opens, moving to an adjacent
|
|
17
35
|
* trigger shows its tooltip instantly instead of re-waiting the full delay.
|
|
18
36
|
* Wrap once at the app (or section) level; bare Tooltips still work without
|
|
19
|
-
* it via a per-instance fallback.
|
|
20
|
-
|
|
37
|
+
* it via a per-instance fallback. Takes Base UI's `delay` / `closeDelay` /
|
|
38
|
+
* `timeout`, or Radix's `delayDuration` / `skipDelayDuration`, so a Radix
|
|
39
|
+
* provider config can be spread into it. */
|
|
40
|
+
declare function TooltipProvider({ children, delay, closeDelay, timeout, delayDuration, skipDelayDuration }: TooltipProviderProps): Element_12xgc;
|
|
21
41
|
type TooltipSide = "top" | "right" | "bottom" | "left";
|
|
42
|
+
type TooltipAlign = "start" | "center" | "end";
|
|
43
|
+
interface TooltipRootProps {
|
|
44
|
+
/** Controlled open state. While set, hover and focus only report through `onOpenChange`. */
|
|
45
|
+
open?: boolean;
|
|
46
|
+
/** Initial open state, for an uncontrolled tooltip. Defaults to `false`. */
|
|
47
|
+
defaultOpen?: boolean;
|
|
48
|
+
/** Called when hover, focus or Escape would open or close the tooltip. */
|
|
49
|
+
onOpenChange?: (open: boolean) => void;
|
|
50
|
+
/** Hover delay before this tooltip opens, in ms. Defaults to the surrounding TooltipProvider's, else 200. */
|
|
51
|
+
delay?: number;
|
|
52
|
+
/** Radix name for `delay`. */
|
|
53
|
+
delayDuration?: number;
|
|
54
|
+
/** Delay before it closes once the pointer leaves, in ms. Defaults to the surrounding TooltipProvider's, else 0. */
|
|
55
|
+
closeDelay?: number;
|
|
56
|
+
/** Follow the cursor along one axis while hovering the trigger (see Tooltip's `followCursor`). */
|
|
57
|
+
followCursor?: "x" | "y";
|
|
58
|
+
/** A `Tooltip.Trigger` and a `Tooltip.Content`. */
|
|
59
|
+
children?: ReactNode2;
|
|
60
|
+
}
|
|
61
|
+
/** The state of one compound tooltip: open state, what opened it, the delays and the cursor axis. */
|
|
62
|
+
declare function TooltipRoot({ open: openProp, defaultOpen, onOpenChange, delay: delayProp, delayDuration, closeDelay, followCursor, children }: TooltipRootProps): Element_12xgc;
|
|
63
|
+
type TooltipTriggerProps = SlotProps;
|
|
64
|
+
/** The element the tooltip describes: `render={<Button/>}`, Radix-style `asChild`, or a plain button around `children`. */
|
|
65
|
+
declare const TooltipTrigger: ForwardRefExoticComponent_tcubfn<SlotProps & RefAttributes_miuf56<HTMLButtonElement>>;
|
|
66
|
+
interface TooltipContentProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "className"> {
|
|
67
|
+
/** The label. */
|
|
68
|
+
children?: ReactNode2;
|
|
69
|
+
/** An element to render the label as, inside the inverted surface; the label goes inside it. */
|
|
70
|
+
render?: ReactElement2;
|
|
71
|
+
/** Radix-style: the single child element is the label, rendered as-is inside the surface. Defaults to `false`. */
|
|
72
|
+
asChild?: boolean;
|
|
73
|
+
/** Preferred side of the trigger; flips when it would collide with the viewport edge. Defaults to `"top"`. */
|
|
74
|
+
side?: TooltipSide;
|
|
75
|
+
/** Alignment against the trigger along that side. Defaults to `"center"`. */
|
|
76
|
+
align?: TooltipAlign;
|
|
77
|
+
/** Distance in pixels between the tooltip and the trigger. Defaults to `8`. */
|
|
78
|
+
sideOffset?: number;
|
|
79
|
+
/** Shift in pixels along the alignment axis. Defaults to `0`. */
|
|
80
|
+
alignOffset?: number;
|
|
81
|
+
/** Classes for the label's surface. */
|
|
82
|
+
className?: string;
|
|
83
|
+
/** Classes for the portalled positioner — a z utility here lifts the tooltip above other fixed layers (default z-50). */
|
|
84
|
+
positionerClassName?: string;
|
|
85
|
+
/** Where the label grows from (see Morph): the trigger, the pointer, its own center, a viewport edge, or a ref to any element. Defaults to `'trigger'`. */
|
|
86
|
+
from?: "trigger" | "pointer" | "center" | "top" | "right" | "bottom" | "left" | RefObject<HTMLElement | null>;
|
|
87
|
+
/** How it grows (see Morph): with the liquid goo neck, a plain morph, a slide or a fade. `followCursor` tooltips always fade. Defaults to `'goo'`. */
|
|
88
|
+
effect?: "goo" | "morph" | "slide" | "fade";
|
|
89
|
+
/** Spring tier of a plain morph, slide or fade; goo runs on its own `spring.goo`. Defaults to `'moderate'`. */
|
|
90
|
+
tier?: "moderate" | "slow";
|
|
91
|
+
}
|
|
92
|
+
/** The inverted label, portalled and positioned next to the trigger, grown out of it through the morph. */
|
|
93
|
+
declare const TooltipContent: ForwardRefExoticComponent_tcubfn<TooltipContentProps & RefAttributes_miuf56<HTMLDivElement>>;
|
|
22
94
|
interface TooltipProps {
|
|
23
|
-
/** The content displayed inside the tooltip. */
|
|
24
|
-
content
|
|
25
|
-
/** The trigger element
|
|
26
|
-
children
|
|
95
|
+
/** The content displayed inside the tooltip. Leave it out to use `Tooltip` as the root of a compound tooltip (`Tooltip.Trigger` + `Tooltip.Content` inside). */
|
|
96
|
+
content?: ReactNode2;
|
|
97
|
+
/** The trigger element, which must accept a ref; or, without `content`, the compound parts. */
|
|
98
|
+
children?: ReactNode2;
|
|
27
99
|
/** Preferred side of the trigger to render the tooltip on. Defaults to `"top"`. */
|
|
28
100
|
side?: TooltipSide;
|
|
29
|
-
/**
|
|
101
|
+
/** Alignment against the trigger along that side. Defaults to `"center"`. */
|
|
102
|
+
align?: TooltipAlign;
|
|
103
|
+
/** Distance in pixels between the tooltip and the trigger. Defaults to `8`. */
|
|
30
104
|
sideOffset?: number;
|
|
31
|
-
/** Hover delay before this tooltip opens, in ms. Defaults to 200, or to the
|
|
32
|
-
* ambient TooltipProvider's delayDuration when one is present. */
|
|
105
|
+
/** Hover delay before this tooltip opens, in ms. Defaults to 200, or to the ambient TooltipProvider's delay when one is present. */
|
|
33
106
|
delayDuration?: number;
|
|
107
|
+
/** Base UI name for `delayDuration`. */
|
|
108
|
+
delay?: number;
|
|
109
|
+
/** Delay before it closes once the pointer leaves, in ms. Defaults to the ambient TooltipProvider's, else 0. */
|
|
110
|
+
closeDelay?: number;
|
|
34
111
|
/** Additional classes applied to the tooltip content container. */
|
|
35
112
|
className?: string;
|
|
36
|
-
/** Extra classes for the portalled positioner element — pass a z utility
|
|
37
|
-
* here to lift the whole tooltip above other fixed layers (default z-50). */
|
|
113
|
+
/** Extra classes for the portalled positioner element — pass a z utility here to lift the whole tooltip above other fixed layers (default z-50). */
|
|
38
114
|
contentClassName?: string;
|
|
39
115
|
/** When true, forces the tooltip open. When false, forces it closed. When undefined, uses default hover/focus behavior. */
|
|
40
116
|
forceOpen?: boolean;
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
117
|
+
/** Controlled open state, the Radix spelling of `forceOpen`. */
|
|
118
|
+
open?: boolean;
|
|
119
|
+
/** Initial open state, for an uncontrolled tooltip. Defaults to `false`. */
|
|
120
|
+
defaultOpen?: boolean;
|
|
121
|
+
/** Follow the cursor along one axis while hovering the trigger — for tall or wide triggers (the Sidebar rail) where a centered tooltip sits far from the pointer. The other axis stays anchored by `side`. */
|
|
44
122
|
followCursor?: "x" | "y";
|
|
45
123
|
/** Called when the tooltip's internal open state changes (before forceOpen is applied). */
|
|
46
124
|
onOpenChange?: (open: boolean) => void;
|
|
@@ -62,14 +140,28 @@ interface TooltipProps {
|
|
|
62
140
|
* `followCursor` tracks the pointer along one axis for tall or wide triggers,
|
|
63
141
|
* while the other stays anchored by `side`. Built on Base UI's Tooltip.
|
|
64
142
|
*
|
|
143
|
+
* Leave `content` out and `Tooltip` becomes the root of a compound tooltip:
|
|
144
|
+
* a `Tooltip.Trigger` and a `Tooltip.Content` inside it, the shape Radix
|
|
145
|
+
* code is written in. The label looks and moves the same either way.
|
|
146
|
+
*
|
|
65
147
|
* Statics:
|
|
148
|
+
* - `Tooltip.Root` — `TooltipRoot`: the compound root on its own: `open`,
|
|
149
|
+
* `defaultOpen`, `onOpenChange`, `delay` (or `delayDuration`),
|
|
150
|
+
* `closeDelay`, `followCursor`.
|
|
151
|
+
* - `Tooltip.Trigger` — `TooltipTrigger`: the described element,
|
|
152
|
+
* `render={<Button/>}` or Radix-style `asChild`.
|
|
153
|
+
* - `Tooltip.Content` — `TooltipContent`: the label: `side`, `align`,
|
|
154
|
+
* `sideOffset`, `alignOffset`, `positionerClassName`, the morph options
|
|
155
|
+
* `from`, `effect`, `tier`, and `render` or Radix-style `asChild` for the
|
|
156
|
+
* label's own element; other props land on the popup.
|
|
66
157
|
* - `Tooltip.Provider` — `TooltipProvider`: groups tooltips so moving from
|
|
67
158
|
* one trigger to an adjacent one skips the hover delay, and the morph: the
|
|
68
|
-
* next label shows in place.
|
|
159
|
+
* next label shows in place. `delay`, `closeDelay`, `timeout`, or Radix's
|
|
160
|
+
* `delayDuration` and `skipDelayDuration`.
|
|
69
161
|
* - `Tooltip.PortalContainer` — `TooltipPortalContainer`: portal every
|
|
70
162
|
* descendant tooltip into a given element instead of the body.
|
|
71
163
|
*
|
|
72
164
|
* @example {@include ./examples.mdx}
|
|
73
165
|
*/
|
|
74
|
-
declare function Tooltip({ content, children, side, sideOffset, delayDuration, className, contentClassName, forceOpen,
|
|
75
|
-
export { Tooltip, TooltipPortalContainer, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipSide, Tooltip as default };
|
|
166
|
+
declare function Tooltip({ content, children, side, align, sideOffset, delayDuration, delay, closeDelay, className, contentClassName, forceOpen, open, defaultOpen, onOpenChange, followCursor, from, effect, tier }: TooltipProps): Element_12xgc;
|
|
167
|
+
export { Tooltip, TooltipAlign, TooltipContent, TooltipContentProps, TooltipPortalContainer, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipRoot, TooltipRootProps, TooltipSide, TooltipTrigger, TooltipTriggerProps, Tooltip as default };
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TooltipPortalContainer2,
|
|
3
3
|
TooltipProvider2,
|
|
4
|
+
TooltipRoot2,
|
|
5
|
+
TooltipTrigger2,
|
|
6
|
+
TooltipContent2,
|
|
4
7
|
Tooltip2,
|
|
5
8
|
tooltip_default
|
|
6
|
-
} from "../../../shared/components-
|
|
7
|
-
import"../../../shared/components-
|
|
8
|
-
import"../../../shared/components-
|
|
9
|
-
import"../../../shared/components-
|
|
10
|
-
import"../../../shared/components-
|
|
11
|
-
import"../../../shared/components-
|
|
9
|
+
} from "../../../shared/components-q03cktx8.js";
|
|
10
|
+
import"../../../shared/components-vfjc9jzz.js";
|
|
11
|
+
import"../../../shared/components-4y816hwp.js";
|
|
12
|
+
import"../../../shared/components-b1e239g3.js";
|
|
13
|
+
import"../../../shared/components-awra5sff.js";
|
|
14
|
+
import"../../../shared/components-de99ykt7.js";
|
|
15
|
+
import"../../../shared/components-3ey0hzpb.js";
|
|
16
|
+
import"../../../shared/components-78x40gee.js";
|
|
17
|
+
import"../../../shared/components-jcnjay5g.js";
|
|
12
18
|
export {
|
|
13
19
|
Tooltip2 as Tooltip,
|
|
20
|
+
TooltipContent2 as TooltipContent,
|
|
14
21
|
TooltipPortalContainer2 as TooltipPortalContainer,
|
|
15
22
|
TooltipProvider2 as TooltipProvider,
|
|
23
|
+
TooltipRoot2 as TooltipRoot,
|
|
24
|
+
TooltipTrigger2 as TooltipTrigger,
|
|
16
25
|
tooltip_default as default
|
|
17
26
|
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ForwardRefExoticComponent, ReactNode, RefAttributes } from "react";
|
|
2
|
+
type SizeVariant = "default" | "compact";
|
|
3
|
+
interface SpinnerProps extends Omit<ComponentPropsWithoutRef<"span">, "children"> {
|
|
4
|
+
/** Pins the spinner to one step of the size ladder: one control tall (36px default, 28px compact), like a loading Button's. Defaults to the surrounding SizeProvider. */
|
|
5
|
+
size?: SizeVariant;
|
|
6
|
+
/** What is loading, read to assistive tech. Defaults to `"Loading"`. */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Classes for the box: a size off the ladder (`size-5` inline in text), a color. */
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/** An indeterminate wait in a small space: Button's loading glyph on its own. */
|
|
12
|
+
declare const Spinner: ForwardRefExoticComponent<SpinnerProps & RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
interface ProgressProps extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
|
|
14
|
+
/** How far along the task is, between `min` and `max`. `null` is an indeterminate bar: a segment sweeping the track while the amount is unknown. Defaults to `null`. */
|
|
15
|
+
value?: number | null;
|
|
16
|
+
/** The value of an empty bar. Defaults to `0`. */
|
|
17
|
+
min?: number;
|
|
18
|
+
/** The value of a full bar. Defaults to `100`. */
|
|
19
|
+
max?: number;
|
|
20
|
+
/** A label above the bar, also its accessible name. Without one, give the bar an `aria-label`. */
|
|
21
|
+
label?: ReactNode;
|
|
22
|
+
/** Shows the value, formatted as a percentage, at the end of the label row. Defaults to `false`. */
|
|
23
|
+
showValue?: boolean;
|
|
24
|
+
/** Number format for the shown value and for assistive tech, as `Intl.NumberFormat` options. Defaults to a percentage. */
|
|
25
|
+
format?: Intl.NumberFormatOptions;
|
|
26
|
+
/** Pins the label row to one step of the size ladder. Defaults to the surrounding SizeProvider. */
|
|
27
|
+
size?: SizeVariant;
|
|
28
|
+
/** Classes for the root: a width, or `absolute inset-x-0 top-0` for a loading line along a region's top edge. */
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
type ProgressComponent = ForwardRefExoticComponent<ProgressProps & RefAttributes<HTMLDivElement>> & {
|
|
32
|
+
Spinner: typeof Spinner;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Shows how far along a task is, or that something is still working when
|
|
36
|
+
* nobody knows how far.
|
|
37
|
+
*
|
|
38
|
+
* A determinate bar (`value`) slides its fill to the new amount on the
|
|
39
|
+
* indicator spring, never stretching it, so the rounded end keeps its shape;
|
|
40
|
+
* an indeterminate one (`value={null}`) sweeps an ink segment along a recessed
|
|
41
|
+
* track. The fill is ink, not the brand blue: progress is information, not a
|
|
42
|
+
* selection. Base UI's Progress gives the bar its `progressbar` role, its
|
|
43
|
+
* values and their text for assistive tech; `label` names it and `showValue`
|
|
44
|
+
* prints the formatted value beside the label. Under reduced motion the fill
|
|
45
|
+
* jumps to its amount and the indeterminate bar breathes in place instead of
|
|
46
|
+
* travelling.
|
|
47
|
+
*
|
|
48
|
+
* Statics:
|
|
49
|
+
* - `Progress.Spinner` — the same wait in a small space: Button's loading
|
|
50
|
+
* glyph on its own, one control tall (`size`), `label` for assistive tech.
|
|
51
|
+
* Also exported as `Spinner`.
|
|
52
|
+
*
|
|
53
|
+
* @example {@include ./examples.mdx}
|
|
54
|
+
*/
|
|
55
|
+
declare const Progress: ProgressComponent;
|
|
56
|
+
export { Progress, ProgressProps, Spinner, SpinnerProps, Progress as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Spinner2,
|
|
3
|
+
Progress2,
|
|
4
|
+
progress_default
|
|
5
|
+
} from "../../shared/components-d3shbwqq.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-jcnjay5g.js";
|
|
11
|
+
export {
|
|
12
|
+
Progress2 as Progress,
|
|
13
|
+
Spinner2 as Spinner,
|
|
14
|
+
progress_default as default
|
|
15
|
+
};
|