@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,116 @@
|
|
|
1
|
+
import { ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from "react";
|
|
2
|
+
type SizeVariant = "default" | "compact";
|
|
3
|
+
import { JSX as JSX_1kxb } from "react";
|
|
4
|
+
/** When native validity is checked. */
|
|
5
|
+
type FieldValidationMode = "onSubmit" | "onBlur" | "onChange";
|
|
6
|
+
interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
7
|
+
/** The field's parts: `Field.Label`, a control, `Field.Description`, `Field.Error`. */
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
/** Marks the value invalid: the label and the control turn destructive and the control sets `aria-invalid`. Set it from your validation (a form library's field state). Defaults to `false`. */
|
|
10
|
+
invalid?: boolean;
|
|
11
|
+
/** Disables the control and dims the field. Defaults to `false`. */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Shows the value without letting it change (Input, NumberInput and FileDropzone read it). Defaults to `false`. */
|
|
14
|
+
readOnly?: boolean;
|
|
15
|
+
/** Marks the control required and the label with an asterisk. Defaults to `false`. */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** Names the value when the form is submitted; wins over the control's own `name`. */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** Whether the value differs from its initial one, for a form library that tracks it (sets `data-dirty`). */
|
|
20
|
+
dirty?: boolean;
|
|
21
|
+
/** Whether the control has been visited, for a form library that tracks it (sets `data-touched`). */
|
|
22
|
+
touched?: boolean;
|
|
23
|
+
/** When Base UI checks the control's native validity (`required`, `pattern`, `type`): on form submit, on blur, or on every change. A failure turns the field destructive and an empty `Field.Error` shows the browser's message. Defaults to `"onSubmit"`. */
|
|
24
|
+
validationMode?: FieldValidationMode;
|
|
25
|
+
/** Pins the field and its control to one step of the size ladder (36px default, 28px compact). Defaults to the surrounding SizeProvider. */
|
|
26
|
+
size?: SizeVariant;
|
|
27
|
+
/** Classes for the root. */
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
interface FieldLabelProps {
|
|
31
|
+
/** Label text. */
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
/** Keep the label for assistive tech but don't render it, for a field whose placeholder or context carries the meaning. Defaults to `false`. */
|
|
34
|
+
visuallyHidden?: boolean;
|
|
35
|
+
/** Classes for the label. */
|
|
36
|
+
className?: string;
|
|
37
|
+
}
|
|
38
|
+
type Element_12xgc = JSX_1kxb["Element"];
|
|
39
|
+
declare function FieldLabel({ children, visuallyHidden, className }: FieldLabelProps): Element_12xgc;
|
|
40
|
+
interface FieldDescriptionProps {
|
|
41
|
+
/** Help text under the control: a format, a limit, what the value is for. */
|
|
42
|
+
children: ReactNode;
|
|
43
|
+
/** Classes for the description. */
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
declare function FieldDescription({ children, className }: FieldDescriptionProps): Element_12xgc;
|
|
47
|
+
/** Which native validity state shows the message (`"valueMissing"`, `"typeMismatch"`, …). */
|
|
48
|
+
type FieldErrorMatch = boolean | keyof ValidityState;
|
|
49
|
+
interface FieldErrorProps {
|
|
50
|
+
/** The message. While it has one, it shows; empty, it hides. */
|
|
51
|
+
children?: ReactNode;
|
|
52
|
+
/** Overrides when it shows: `true` always, `false` never, or a native validity state such as `"valueMissing"`. Defaults to showing while it has a message. */
|
|
53
|
+
match?: FieldErrorMatch;
|
|
54
|
+
/** Classes for the message. */
|
|
55
|
+
className?: string;
|
|
56
|
+
}
|
|
57
|
+
declare function FieldError({ children, match, className }: FieldErrorProps): Element_12xgc;
|
|
58
|
+
interface FieldControlProps {
|
|
59
|
+
/** The element that becomes the control, e.g. a native `<select>` or a third-party input. */
|
|
60
|
+
render?: ReactElement;
|
|
61
|
+
/** Compose onto the single child instead. Defaults to `false`. */
|
|
62
|
+
asChild?: boolean;
|
|
63
|
+
/** The control, with `asChild`. */
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
}
|
|
66
|
+
declare function FieldControl({ render, asChild, children }: FieldControlProps): Element_12xgc;
|
|
67
|
+
type FieldComponent = ForwardRefExoticComponent<FieldProps & RefAttributes<HTMLDivElement>> & {
|
|
68
|
+
Label: typeof FieldLabel;
|
|
69
|
+
Description: typeof FieldDescription;
|
|
70
|
+
Error: typeof FieldError;
|
|
71
|
+
Control: typeof FieldControl;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* A labelled form field: a label above the control, help text and an error
|
|
75
|
+
* message below it, all linked for assistive tech.
|
|
76
|
+
*
|
|
77
|
+
* Put an Input, Textarea, NumberInput, FileDropzone, Select or any other
|
|
78
|
+
* field control inside and it joins on its own: the label targets it, the
|
|
79
|
+
* description and error are read with it, and the field hands it its
|
|
80
|
+
* `invalid`, `disabled`, `readOnly` and `required` state, so the box turns
|
|
81
|
+
* destructive with the label. The label and messages sit inset to line up
|
|
82
|
+
* with the text in the box. The field holds no validation of its own:
|
|
83
|
+
* `invalid` and the error's message come from yours (a form library's field
|
|
84
|
+
* state, a server response), and `Field.Error` shows while it has a message.
|
|
85
|
+
* A native failure (`required`, `pattern`, `type="email"`) caught by Base UI's
|
|
86
|
+
* validation turns it destructive too, and an empty `Field.Error` then shows
|
|
87
|
+
* the browser's message.
|
|
88
|
+
* Behavior comes from Base UI's Field.
|
|
89
|
+
*
|
|
90
|
+
* `size` pins the field and its control to one step of the size ladder;
|
|
91
|
+
* without it they follow the surrounding SizeProvider, which is how to set a
|
|
92
|
+
* form's density when a control's own props keep the native `<input size>`
|
|
93
|
+
* attribute (a character width, not a height). `Field.Control` passes a
|
|
94
|
+
* native `size` through to the element untouched.
|
|
95
|
+
*
|
|
96
|
+
* InputGroup.Field is the preset for a group of text fields: a label and an
|
|
97
|
+
* error string, and the group's hover gliding from field to field. Reach for
|
|
98
|
+
* Field when a field stands alone, needs a description, or holds a control
|
|
99
|
+
* other than a text input.
|
|
100
|
+
*
|
|
101
|
+
* Statics:
|
|
102
|
+
* - `Field.Label` — the label, weight-stable and muted; destructive while
|
|
103
|
+
* the field is invalid, with an asterisk while it is required:
|
|
104
|
+
* `visuallyHidden`.
|
|
105
|
+
* - `Field.Description` — muted help text under the control.
|
|
106
|
+
* - `Field.Error` — the destructive message; it fades in while it has
|
|
107
|
+
* children: `match` (`true`, `false`, or a native validity state).
|
|
108
|
+
* - `Field.Control` — wires a control that isn't a field control (a native
|
|
109
|
+
* element, a third-party input) with the field's id, `aria-describedby`
|
|
110
|
+
* and `aria-invalid`: `render={<select/>}` or `asChild`. Field controls
|
|
111
|
+
* (Input, NumberInput, …) need no wrapper.
|
|
112
|
+
*
|
|
113
|
+
* @example {@include ./examples.mdx}
|
|
114
|
+
*/
|
|
115
|
+
declare const Field: FieldComponent;
|
|
116
|
+
export { Field, FieldControl, FieldControlProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorMatch, FieldErrorProps, FieldLabel, FieldLabelProps, FieldProps, FieldValidationMode, Field as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FieldLabel2,
|
|
3
|
+
FieldDescription2,
|
|
4
|
+
FieldError2,
|
|
5
|
+
FieldControl2,
|
|
6
|
+
Field2,
|
|
7
|
+
field_default
|
|
8
|
+
} from "../../../shared/components-jjrj6ymn.js";
|
|
9
|
+
import"../../../shared/components-y1w3a6wx.js";
|
|
10
|
+
import"../../../shared/components-adkarj8n.js";
|
|
11
|
+
import"../../../shared/components-6zng858q.js";
|
|
12
|
+
import"../../../shared/components-124epb7f.js";
|
|
13
|
+
import"../../../shared/components-vfjc9jzz.js";
|
|
14
|
+
import"../../../shared/components-yhgq0qxx.js";
|
|
15
|
+
import"../../../shared/components-dcc02hs2.js";
|
|
16
|
+
import"../../../shared/components-tz1fv35x.js";
|
|
17
|
+
import"../../../shared/components-h83az0bz.js";
|
|
18
|
+
import"../../../shared/components-34txk9rj.js";
|
|
19
|
+
import"../../../shared/components-78x40gee.js";
|
|
20
|
+
import"../../../shared/components-jcnjay5g.js";
|
|
21
|
+
export {
|
|
22
|
+
Field2 as Field,
|
|
23
|
+
FieldControl2 as FieldControl,
|
|
24
|
+
FieldDescription2 as FieldDescription,
|
|
25
|
+
FieldError2 as FieldError,
|
|
26
|
+
FieldLabel2 as FieldLabel,
|
|
27
|
+
field_default as default
|
|
28
|
+
};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { ForwardRefExoticComponent, ReactNode as ReactNode3, RefAttributes } 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
|
+
type SizeVariant = "default" | "compact";
|
|
10
|
+
import { ReactNode as ReactNode2 } from "react";
|
|
11
|
+
import { JSX as JSX_1kxb2 } from "react";
|
|
12
|
+
/** Where a file is in its upload: `idle` (picked), `uploading`, `done` or `error`. */
|
|
13
|
+
type FileRowStatus = "idle" | "uploading" | "done" | "error";
|
|
14
|
+
interface FileRowProps {
|
|
15
|
+
/** The picked file: its name, size and type fill the row. */
|
|
16
|
+
file?: File;
|
|
17
|
+
/** File name, for a file you only know by its metadata (one already uploaded). Wins over `file`. */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** File size in bytes. Wins over `file`. */
|
|
20
|
+
fileSize?: number;
|
|
21
|
+
/** MIME type; an image shows the image glyph. Wins over `file`. */
|
|
22
|
+
type?: string;
|
|
23
|
+
/** Image URL shown in place of the glyph, e.g. an object URL of the file or the server's preview. */
|
|
24
|
+
thumbnail?: string;
|
|
25
|
+
/** Glyph in place of the file or image one. */
|
|
26
|
+
icon?: IconComponent;
|
|
27
|
+
/** Where the file is in its upload; sets the status glyph and the progress bar. Defaults to `"idle"`. */
|
|
28
|
+
status?: FileRowStatus;
|
|
29
|
+
/** Upload progress from 0 to 100, shown as a bar while `status` is `"uploading"` (see Progress). Omitted, the bar sweeps. */
|
|
30
|
+
progress?: number;
|
|
31
|
+
/** Accessible name of the upload's bar. Defaults to `"Uploading"`. */
|
|
32
|
+
uploadingLabel?: string;
|
|
33
|
+
/** The line under the name in place of the size, e.g. "Uploaded 2 min ago". */
|
|
34
|
+
description?: ReactNode2;
|
|
35
|
+
/** An error message in place of the size line; the row reads as failed. */
|
|
36
|
+
error?: ReactNode2;
|
|
37
|
+
/** Shows a remove button and is called when it is pressed. */
|
|
38
|
+
onRemove?: () => void;
|
|
39
|
+
/** Accessible name of the remove button. Defaults to `"Remove file"`. */
|
|
40
|
+
removeLabel?: string;
|
|
41
|
+
/** More controls before the remove button, e.g. a download link or a menu. */
|
|
42
|
+
actions?: ReactNode2;
|
|
43
|
+
/** Locale for the size (`1,5 MB` in `"sk-SK"`). Defaults to the browser's. */
|
|
44
|
+
locale?: Intl.LocalesArgument;
|
|
45
|
+
/** Dims the row and its actions. Defaults to `false`. */
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
/** Pins the row to one step of the size ladder. Defaults to the surrounding SizeProvider. */
|
|
48
|
+
size?: SizeVariant;
|
|
49
|
+
/** Classes for the row. */
|
|
50
|
+
className?: string;
|
|
51
|
+
}
|
|
52
|
+
type Element_12xgc2 = JSX_1kxb2["Element"];
|
|
53
|
+
/** One file in a list: its glyph or thumbnail, name, size or status, and a remove button. */
|
|
54
|
+
declare function FileRow({ file, name: nameProp, fileSize: fileSizeProp, type: typeProp, thumbnail, icon, status, progress, description, error, onRemove, removeLabel, uploadingLabel, actions, locale, disabled, size: sizeProp, className }: FileRowProps): Element_12xgc2;
|
|
55
|
+
/** A byte count as a short localized size: `512 B`, `1.5 MB` (decimal units, as file managers show them). */
|
|
56
|
+
declare function formatFileSize(bytes: number, locale?: Intl.LocalesArgument): string;
|
|
57
|
+
/** Why a file was turned away: its `type` is not in `accept`, its `size` is over `maxSize`, or it is past the `count` of `maxFiles`. */
|
|
58
|
+
type FileRejectionReason = "type" | "size" | "count";
|
|
59
|
+
/** A file the dropzone turned away, and why. */
|
|
60
|
+
interface FileRejection {
|
|
61
|
+
file: File;
|
|
62
|
+
reason: FileRejectionReason;
|
|
63
|
+
}
|
|
64
|
+
/** Whether a file passes an `accept` list (`.pdf,image/*`), as the native file input reads it. */
|
|
65
|
+
declare function acceptsFile(file: {
|
|
66
|
+
name: string;
|
|
67
|
+
type: string;
|
|
68
|
+
}, accept?: string): boolean;
|
|
69
|
+
/** What a drag over the zone will come to: every file taken, some taken and some turned away, or none taken. */
|
|
70
|
+
type DragVerdict = "accept" | "partial" | "reject";
|
|
71
|
+
/**
|
|
72
|
+
* Judges dragged files while they are still in the air. A drag shows MIME
|
|
73
|
+
* types but no names, so a type the drag leaves empty, or an `accept` list
|
|
74
|
+
* with extensions, counts as passing until the drop sorts the files. `limit`
|
|
75
|
+
* is how many one drop may add.
|
|
76
|
+
*/
|
|
77
|
+
declare function dragVerdict(types: string[], accept: string | undefined, limit: number): DragVerdict;
|
|
78
|
+
interface SortOptions {
|
|
79
|
+
accept?: string;
|
|
80
|
+
maxSize?: number;
|
|
81
|
+
maxFiles?: number;
|
|
82
|
+
multiple?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/** Splits picked or dropped files into the ones that pass `accept`, `maxSize` and the count, and the rest with a reason. */
|
|
85
|
+
declare function sortFiles(files: File[], { accept, maxSize, maxFiles, multiple }: SortOptions): {
|
|
86
|
+
accepted: File[];
|
|
87
|
+
rejected: FileRejection[];
|
|
88
|
+
};
|
|
89
|
+
interface FileDropzoneProps {
|
|
90
|
+
/** Called with the files that pass `accept`, `maxSize` and the count, after a pick or a drop. */
|
|
91
|
+
onFilesChange?: (files: File[]) => void;
|
|
92
|
+
/** Called with the files turned away and why (`type`, `size`, `count`), after a pick or a drop. */
|
|
93
|
+
onFilesRejected?: (rejections: FileRejection[]) => void;
|
|
94
|
+
/** File types the zone takes, as the file input reads them: `.pdf,image/*`. Defaults to any. */
|
|
95
|
+
accept?: string;
|
|
96
|
+
/** Takes several files at once. Defaults to `false`. */
|
|
97
|
+
multiple?: boolean;
|
|
98
|
+
/** Most files one pick or drop may add; the rest are rejected as `count`. Pass what is left when you keep a list. */
|
|
99
|
+
maxFiles?: number;
|
|
100
|
+
/** Largest file in bytes; bigger ones are rejected as `size`. */
|
|
101
|
+
maxSize?: number;
|
|
102
|
+
/** The main line. Defaults to `"Drop a file here or click to browse"` (`"files"` with `multiple`). */
|
|
103
|
+
label?: ReactNode3;
|
|
104
|
+
/** The line under it: the types and sizes the zone takes, e.g. "PDF or PNG, up to 10 MB". */
|
|
105
|
+
description?: ReactNode3;
|
|
106
|
+
/** The main line while files the zone takes are dragged over it. Defaults to `"Drop to add"`. */
|
|
107
|
+
activeLabel?: ReactNode3;
|
|
108
|
+
/** The main line while some of the dragged files will be taken and the rest turned away (a wrong type, past `maxFiles`). Defaults to `"Some files will be skipped"`. */
|
|
109
|
+
partialLabel?: ReactNode3;
|
|
110
|
+
/** The main line while none of the dragged files can be taken; the drop is refused. Defaults to `"These files can't be added"`. */
|
|
111
|
+
rejectLabel?: ReactNode3;
|
|
112
|
+
/** Glyph above the labels. Defaults to the `upload` icon. */
|
|
113
|
+
icon?: IconComponent;
|
|
114
|
+
/** Content in place of the glyph and labels. */
|
|
115
|
+
children?: ReactNode3;
|
|
116
|
+
/** Id of the file input, for a `Label`'s `htmlFor`. Inside a Field it is wired for you. */
|
|
117
|
+
id?: string;
|
|
118
|
+
/** Tells assistive tech a file is required (`aria-required`). The zone keeps no files, so native validation never blocks a submit: check your own list. Defaults to the surrounding Field's `required`. */
|
|
119
|
+
required?: boolean;
|
|
120
|
+
/** Turns the zone destructive. Defaults to the surrounding Field's `invalid`. */
|
|
121
|
+
invalid?: boolean;
|
|
122
|
+
/** Dims the zone and turns files away. Defaults to the surrounding Field's `disabled`. */
|
|
123
|
+
disabled?: boolean;
|
|
124
|
+
/** Shows the zone without taking files: no browse, no drop, no hover. Defaults to the surrounding Field's `readOnly`. */
|
|
125
|
+
readOnly?: boolean;
|
|
126
|
+
/** Pins the zone to one step of the size ladder: compact tightens the padding and steps the text down. Defaults to the surrounding SizeProvider. */
|
|
127
|
+
size?: SizeVariant;
|
|
128
|
+
/** Classes for the zone. */
|
|
129
|
+
className?: string;
|
|
130
|
+
}
|
|
131
|
+
type FileDropzoneComponent = ForwardRefExoticComponent<FileDropzoneProps & RefAttributes<HTMLInputElement>> & {
|
|
132
|
+
Row: typeof FileRow;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* A zone to drop files on, or click to pick them.
|
|
136
|
+
*
|
|
137
|
+
* Drag files over it and it lights up; the line changes to say whether it
|
|
138
|
+
* will take them, reading their types while they are still in the air: all
|
|
139
|
+
* of them, some (the rest will be skipped), or none, when it turns
|
|
140
|
+
* destructive and refuses the drop. Dropped or picked files are sorted
|
|
141
|
+
* against `accept`, `maxSize` and `maxFiles`: the ones that pass go to
|
|
142
|
+
* `onFilesChange`, the rest to `onFilesRejected` with a reason. The zone
|
|
143
|
+
* keeps none (its input is cleared after every pick, so nothing submits with
|
|
144
|
+
* a native form and `required` is only announced), so the list, the upload
|
|
145
|
+
* and its errors stay yours. Show each
|
|
146
|
+
* file in a `FileDropzone.Row`. Every line is a prop, for translation. The
|
|
147
|
+
* zone is a label around a hidden file input, so a click or Enter opens the
|
|
148
|
+
* picker, and inside a Field it is labelled and takes the field's state. The
|
|
149
|
+
* ref reaches the input: `ref.current.click()` reopens the picker, e.g. to
|
|
150
|
+
* replace a file.
|
|
151
|
+
*
|
|
152
|
+
* Statics:
|
|
153
|
+
* - `FileDropzone.Row` (also `FileRow`) — one file: its glyph or
|
|
154
|
+
* `thumbnail`, name, size, and a remove button with `onRemove`: `file` (or
|
|
155
|
+
* `name` / `fileSize` / `type`), `status` (`idle`, `uploading`, `done`,
|
|
156
|
+
* `error`), `progress` (0–100), `error`, `description`, `actions`,
|
|
157
|
+
* `removeLabel`, `locale`.
|
|
158
|
+
*
|
|
159
|
+
* Also exported from this item: `formatFileSize(bytes, locale)`, `sortFiles`
|
|
160
|
+
* and `acceptsFile`, plain functions a server can call too.
|
|
161
|
+
*
|
|
162
|
+
* @example {@include ./examples.mdx}
|
|
163
|
+
*/
|
|
164
|
+
declare const FileDropzone: FileDropzoneComponent;
|
|
165
|
+
export { DragVerdict, FileDropzone, FileDropzoneProps, FileRejection, FileRejectionReason, FileRow, FileRowProps, FileRowStatus, acceptsFile, FileDropzone as default, dragVerdict, formatFileSize, sortFiles };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FileRow2,
|
|
3
|
+
FileDropzone2,
|
|
4
|
+
file_dropzone_default
|
|
5
|
+
} from "../../../shared/components-7ntvvegr.js";
|
|
6
|
+
import {
|
|
7
|
+
formatFileSize2,
|
|
8
|
+
acceptsFile2,
|
|
9
|
+
dragVerdict2,
|
|
10
|
+
sortFiles2
|
|
11
|
+
} from "../../../shared/components-f7h57m6t.js";
|
|
12
|
+
import"../../../shared/components-6zng858q.js";
|
|
13
|
+
import"../../../shared/components-124epb7f.js";
|
|
14
|
+
import"../../../shared/components-d3shbwqq.js";
|
|
15
|
+
import"../../../shared/components-jqpefjsn.js";
|
|
16
|
+
import"../../../shared/components-7d4r7hh1.js";
|
|
17
|
+
import"../../../shared/components-f0xfpkhh.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";
|
|
24
|
+
export {
|
|
25
|
+
FileDropzone2 as FileDropzone,
|
|
26
|
+
FileRow2 as FileRow,
|
|
27
|
+
acceptsFile2 as acceptsFile,
|
|
28
|
+
file_dropzone_default as default,
|
|
29
|
+
dragVerdict2 as dragVerdict,
|
|
30
|
+
formatFileSize2 as formatFileSize,
|
|
31
|
+
sortFiles2 as sortFiles
|
|
32
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** A byte count as a short localized size: `512 B`, `1.5 MB` (decimal units, as file managers show them). */
|
|
2
|
+
declare function formatFileSize(bytes: number, locale?: Intl.LocalesArgument): string;
|
|
3
|
+
/** Why a file was turned away: its `type` is not in `accept`, its `size` is over `maxSize`, or it is past the `count` of `maxFiles`. */
|
|
4
|
+
type FileRejectionReason = "type" | "size" | "count";
|
|
5
|
+
/** A file the dropzone turned away, and why. */
|
|
6
|
+
interface FileRejection {
|
|
7
|
+
file: File;
|
|
8
|
+
reason: FileRejectionReason;
|
|
9
|
+
}
|
|
10
|
+
/** Whether a file passes an `accept` list (`.pdf,image/*`), as the native file input reads it. */
|
|
11
|
+
declare function acceptsFile(file: {
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
}, accept?: string): boolean;
|
|
15
|
+
/** What a drag over the zone will come to: every file taken, some taken and some turned away, or none taken. */
|
|
16
|
+
type DragVerdict = "accept" | "partial" | "reject";
|
|
17
|
+
/**
|
|
18
|
+
* Judges dragged files while they are still in the air. A drag shows MIME
|
|
19
|
+
* types but no names, so a type the drag leaves empty, or an `accept` list
|
|
20
|
+
* with extensions, counts as passing until the drop sorts the files. `limit`
|
|
21
|
+
* is how many one drop may add.
|
|
22
|
+
*/
|
|
23
|
+
declare function dragVerdict(types: string[], accept: string | undefined, limit: number): DragVerdict;
|
|
24
|
+
interface SortOptions {
|
|
25
|
+
accept?: string;
|
|
26
|
+
maxSize?: number;
|
|
27
|
+
maxFiles?: number;
|
|
28
|
+
multiple?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/** Splits picked or dropped files into the ones that pass `accept`, `maxSize` and the count, and the rest with a reason. */
|
|
31
|
+
declare function sortFiles(files: File[], { accept, maxSize, maxFiles, multiple }: SortOptions): {
|
|
32
|
+
accepted: File[];
|
|
33
|
+
rejected: FileRejection[];
|
|
34
|
+
};
|
|
35
|
+
export { DragVerdict, FileRejection, FileRejectionReason, acceptsFile, dragVerdict, formatFileSize, sortFiles };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatFileSize2,
|
|
3
|
+
acceptsFile2,
|
|
4
|
+
dragVerdict2,
|
|
5
|
+
sortFiles2
|
|
6
|
+
} from "../../../shared/components-f7h57m6t.js";
|
|
7
|
+
export {
|
|
8
|
+
acceptsFile2 as acceptsFile,
|
|
9
|
+
dragVerdict2 as dragVerdict,
|
|
10
|
+
formatFileSize2 as formatFileSize,
|
|
11
|
+
sortFiles2 as sortFiles
|
|
12
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ForwardRefExoticComponent, HTMLAttributes, InputHTMLAttributes,
|
|
1
|
+
import { ButtonHTMLAttributes, ForwardRefExoticComponent, HTMLAttributes, InputHTMLAttributes, ReactNode as ReactNode4, RefAttributes } from "react";
|
|
2
2
|
type SizeVariant = "default" | "compact";
|
|
3
3
|
/** Framed at rest (`bordered`), or invisible until hovered or focused (`borderless`). */
|
|
4
4
|
type FieldVariant = "bordered" | "borderless";
|
|
@@ -9,11 +9,46 @@ interface IconComponentProps {
|
|
|
9
9
|
className?: string;
|
|
10
10
|
}
|
|
11
11
|
type IconComponent = ComponentType<IconComponentProps>;
|
|
12
|
+
import { LabelHTMLAttributes, ReactNode as ReactNode3 } from "react";
|
|
13
|
+
import { ForwardRefExoticComponent as ForwardRefExoticComponent_tcubfn } from "react";
|
|
14
|
+
import { RefAttributes as RefAttributes_miuf56 } from "react";
|
|
15
|
+
interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
16
|
+
/** Label text. */
|
|
17
|
+
children: ReactNode3;
|
|
18
|
+
/** The id of the control it names; a click on the label focuses or toggles that control. */
|
|
19
|
+
htmlFor?: string;
|
|
20
|
+
/** Turns the label destructive, matching an invalid Input. Defaults to `false`. */
|
|
21
|
+
invalid?: boolean;
|
|
22
|
+
/** Pins the label to one step of the size ladder (body text at default, compact body at compact). Defaults to the surrounding SizeProvider. */
|
|
23
|
+
size?: SizeVariant;
|
|
24
|
+
/** Classes for the `<label>`. */
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The label above or beside a field control.
|
|
29
|
+
*
|
|
30
|
+
* Muted body text inset to line up with the text inside a field box, so a
|
|
31
|
+
* label over an Input starts where its value does. It reserves the width of
|
|
32
|
+
* its semibold weight, so nothing moves if a wrapper restyles it. Pair it
|
|
33
|
+
* with a control through `htmlFor` and the control's `id`; inside a Field,
|
|
34
|
+
* `Field.Label` renders it for you and links it. `invalid` turns it
|
|
35
|
+
* destructive with the field; a disabled Field dims it. It follows the size
|
|
36
|
+
* ladder (see Sizes): `size` pins it, otherwise it reads the surrounding
|
|
37
|
+
* SizeProvider. Also exported from `inputs/input`.
|
|
38
|
+
*
|
|
39
|
+
* @example {@include ./examples.mdx}
|
|
40
|
+
*/
|
|
41
|
+
declare const Label: ForwardRefExoticComponent_tcubfn<LabelProps & RefAttributes_miuf56<HTMLLabelElement>>;
|
|
42
|
+
import { JSX as JSX_1kxb3 } from "react";
|
|
12
43
|
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "defaultValue" | "size"> {
|
|
13
44
|
/** Placeholder text. */
|
|
14
45
|
placeholder?: string;
|
|
15
46
|
/** Leading icon inside the input. */
|
|
16
47
|
icon?: IconComponent;
|
|
48
|
+
/** Content before the text, after `icon`: a prefix (`"https://"`), an icon element, an `InputAction`. Strings read as muted text; icons take the ladder's glyph size. */
|
|
49
|
+
startAdornment?: ReactNode4;
|
|
50
|
+
/** Content after the text: a unit (`"kg"`), a status icon, an `InputAction` such as a password reveal or a clear. */
|
|
51
|
+
endAdornment?: ReactNode4;
|
|
17
52
|
/** Controlled input value. */
|
|
18
53
|
value?: string;
|
|
19
54
|
/** Initial value when uncontrolled. Defaults to `''`. */
|
|
@@ -26,6 +61,12 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChan
|
|
|
26
61
|
invalid?: boolean;
|
|
27
62
|
/** Disables the input. Defaults to `false`. */
|
|
28
63
|
disabled?: boolean;
|
|
64
|
+
/** Shows the value without letting it change: it can be selected and copied, the ring answers hover and focus, the fill never lifts. Defaults to `false`. */
|
|
65
|
+
readOnly?: boolean;
|
|
66
|
+
/** Marks the input required. Defaults to the surrounding Field's `required`. */
|
|
67
|
+
required?: boolean;
|
|
68
|
+
/** The input's type. Swapping it (a password reveal) keeps the caret and the selection where they were. Defaults to `"text"`. */
|
|
69
|
+
type?: string;
|
|
29
70
|
/** Pins the input to one step of the size ladder (default 36px, compact 28px). Defaults to the surrounding SizeProvider. */
|
|
30
71
|
size?: SizeVariant;
|
|
31
72
|
/** Classes for the ringed box around the input. */
|
|
@@ -38,11 +79,34 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChan
|
|
|
38
79
|
* ground with a hairline ring, focus onto the card ground, and its leading
|
|
39
80
|
* icon thickens. `invalid` turns it destructive. It is uncontrolled with
|
|
40
81
|
* `defaultValue`, or controlled with `value` + `onChange`, and fills the width
|
|
41
|
-
* of its container. Pair it with a `Label` through `htmlFor` / `id
|
|
82
|
+
* of its container. Pair it with a `Label` through `htmlFor` / `id`, or put
|
|
83
|
+
* it in a Field, which labels it and hands it its error, disabled,
|
|
84
|
+
* read-only and required state.
|
|
85
|
+
*
|
|
86
|
+
* `startAdornment` and `endAdornment` hold what sits beside the text: a
|
|
87
|
+
* prefix or a unit, an icon, or an `InputAction` (a password reveal, a
|
|
88
|
+
* clear). They light with the field like its leading icon, and icons in
|
|
89
|
+
* them take the ladder's glyph size. Swapping `type` keeps the caret and the
|
|
90
|
+
* selection where they were, so a password reveal is just an `InputAction`
|
|
91
|
+
* that flips `type` between `"password"` and `"text"`. `readOnly` keeps the
|
|
92
|
+
* value selectable while the fill stays down.
|
|
93
|
+
*
|
|
94
|
+
* Its height is a step of the size ladder (see Sizes). `size` is that step
|
|
95
|
+
* (`"default"` 36px, `"compact"` 28px), not the native `<input size>`
|
|
96
|
+
* character width, which the Input doesn't take: its width comes from its
|
|
97
|
+
* container. With no `size`, the surrounding SizeProvider sets the height,
|
|
98
|
+
* so a host whose props keep the native `size` attribute strips it before
|
|
99
|
+
* spreading them onto the Input and sets density with a SizeProvider (or a
|
|
100
|
+
* Field's `size`) around the form instead.
|
|
42
101
|
*
|
|
43
102
|
* Also exported from this item:
|
|
103
|
+
* - `InputAction` — a small icon button inside the field, 4px inside its
|
|
104
|
+
* ring: `label` (its accessible name), `icon`, `size`, plus button props.
|
|
105
|
+
* A press keeps the caret in the field.
|
|
106
|
+
* - `InputAdornment` — the wrapper the adornments render in, for a field of
|
|
107
|
+
* your own built on the field box: `size`.
|
|
44
108
|
* - `Label` — the field label, weight-stable and inset to line up with the
|
|
45
|
-
* input's text: `htmlFor`, `invalid`, `size
|
|
109
|
+
* input's text: `htmlFor`, `invalid`, `size` (see Label, its own page).
|
|
46
110
|
* - `InputGroup` — stacks labelled fields and tracks the pointer across them,
|
|
47
111
|
* so the hover glides from field to field: `size` pins every field to one
|
|
48
112
|
* step of the ladder.
|
|
@@ -56,18 +120,36 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChan
|
|
|
56
120
|
* @example {@include ./examples.mdx}
|
|
57
121
|
*/
|
|
58
122
|
declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
|
|
59
|
-
interface
|
|
60
|
-
/**
|
|
61
|
-
children
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
/**
|
|
123
|
+
interface InputAdornmentProps {
|
|
124
|
+
/** What sits beside the text. Nothing renders when it is empty. */
|
|
125
|
+
children?: ReactNode4;
|
|
126
|
+
/** Pins the adornment, and an `InputAction` inside it, to one step of the size ladder. Defaults to the surrounding SizeProvider. */
|
|
127
|
+
size?: SizeVariant;
|
|
128
|
+
/** Classes for the wrapper. */
|
|
129
|
+
className?: string;
|
|
130
|
+
}
|
|
131
|
+
type Element_12xgc3 = JSX_1kxb3["Element"];
|
|
132
|
+
/** Content beside a field's text, lit with the field: what `startAdornment` / `endAdornment` render in, for a field of your own on `useFieldBox`. */
|
|
133
|
+
declare function InputAdornment({ children, size, className }: InputAdornmentProps): Element_12xgc3 | null;
|
|
134
|
+
interface InputActionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
|
|
135
|
+
/** Names the action for assistive tech (its `aria-label`), e.g. "Show password". */
|
|
136
|
+
label: string;
|
|
137
|
+
/** The glyph. Pass an icon component, or an icon element as `children`. */
|
|
138
|
+
icon?: IconComponent;
|
|
139
|
+
/** An icon element, in place of `icon`. */
|
|
140
|
+
children?: ReactNode4;
|
|
141
|
+
/** Disables the action. Defaults to `false`. */
|
|
142
|
+
disabled?: boolean;
|
|
143
|
+
/** Pins the action to one step of the size ladder (28px in a default field, 20px in a compact one). Defaults to the surrounding SizeProvider. */
|
|
65
144
|
size?: SizeVariant;
|
|
145
|
+
/** Classes for the button. */
|
|
146
|
+
className?: string;
|
|
66
147
|
}
|
|
67
|
-
|
|
148
|
+
/** A small icon button inside a field box: a password reveal, a clear, a copy. */
|
|
149
|
+
declare const InputAction: ForwardRefExoticComponent<InputActionProps & RefAttributes<HTMLButtonElement>>;
|
|
68
150
|
interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
69
151
|
/** One or more InputGroup.Field children. */
|
|
70
|
-
children:
|
|
152
|
+
children: ReactNode4;
|
|
71
153
|
/** Pins the group's fields to one step of the size ladder (default 36px, compact 28px). Defaults to the surrounding SizeProvider. */
|
|
72
154
|
size?: SizeVariant;
|
|
73
155
|
}
|
|
@@ -85,8 +167,8 @@ interface InputFieldProps extends Omit<InputProps, "invalid" | "size" | "classNa
|
|
|
85
167
|
/** Error message shown below the input. */
|
|
86
168
|
error?: string;
|
|
87
169
|
/** A control in place of the built-in Input, e.g. a Textarea: it joins the group's hover and takes the field's error and disabled state. Input's props then go on it, not on the field. */
|
|
88
|
-
children?:
|
|
170
|
+
children?: ReactNode4;
|
|
89
171
|
className?: string;
|
|
90
172
|
}
|
|
91
173
|
declare const InputField: ForwardRefExoticComponent<InputFieldProps & RefAttributes<HTMLDivElement>>;
|
|
92
|
-
export { Input, InputFieldProps, InputGroup, InputGroupProps, InputProps, Label, LabelProps, Input as default };
|
|
174
|
+
export { Input, InputAction, InputActionProps, InputAdornment, InputAdornmentProps, InputFieldProps, InputGroup, InputGroupProps, InputProps, Label, LabelProps, Input as default };
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Input2,
|
|
3
|
-
|
|
3
|
+
InputAdornment2,
|
|
4
|
+
InputAction2,
|
|
4
5
|
InputGroup2,
|
|
5
6
|
input_default
|
|
6
|
-
} from "../../../shared/components-
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import"../../../shared/components-
|
|
11
|
-
import"../../../shared/components-
|
|
12
|
-
import"../../../shared/components-
|
|
13
|
-
import"../../../shared/components-
|
|
7
|
+
} from "../../../shared/components-y1w3a6wx.js";
|
|
8
|
+
import {
|
|
9
|
+
Label2
|
|
10
|
+
} from "../../../shared/components-adkarj8n.js";
|
|
11
|
+
import"../../../shared/components-6zng858q.js";
|
|
12
|
+
import"../../../shared/components-124epb7f.js";
|
|
13
|
+
import"../../../shared/components-yhgq0qxx.js";
|
|
14
|
+
import"../../../shared/components-dcc02hs2.js";
|
|
15
|
+
import"../../../shared/components-tz1fv35x.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";
|
|
14
20
|
export {
|
|
15
21
|
Input2 as Input,
|
|
22
|
+
InputAction2 as InputAction,
|
|
23
|
+
InputAdornment2 as InputAdornment,
|
|
16
24
|
InputGroup2 as InputGroup,
|
|
17
25
|
Label2 as Label,
|
|
18
26
|
input_default as default
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LabelHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type SizeVariant = "default" | "compact";
|
|
3
|
+
import { ForwardRefExoticComponent as ForwardRefExoticComponent_tcubfn } from "react";
|
|
4
|
+
import { RefAttributes as RefAttributes_miuf56 } from "react";
|
|
5
|
+
interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
6
|
+
/** Label text. */
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
/** The id of the control it names; a click on the label focuses or toggles that control. */
|
|
9
|
+
htmlFor?: string;
|
|
10
|
+
/** Turns the label destructive, matching an invalid Input. Defaults to `false`. */
|
|
11
|
+
invalid?: boolean;
|
|
12
|
+
/** Pins the label to one step of the size ladder (body text at default, compact body at compact). Defaults to the surrounding SizeProvider. */
|
|
13
|
+
size?: SizeVariant;
|
|
14
|
+
/** Classes for the `<label>`. */
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The label above or beside a field control.
|
|
19
|
+
*
|
|
20
|
+
* Muted body text inset to line up with the text inside a field box, so a
|
|
21
|
+
* label over an Input starts where its value does. It reserves the width of
|
|
22
|
+
* its semibold weight, so nothing moves if a wrapper restyles it. Pair it
|
|
23
|
+
* with a control through `htmlFor` and the control's `id`; inside a Field,
|
|
24
|
+
* `Field.Label` renders it for you and links it. `invalid` turns it
|
|
25
|
+
* destructive with the field; a disabled Field dims it. It follows the size
|
|
26
|
+
* ladder (see Sizes): `size` pins it, otherwise it reads the surrounding
|
|
27
|
+
* SizeProvider. Also exported from `inputs/input`.
|
|
28
|
+
*
|
|
29
|
+
* @example {@include ./examples.mdx}
|
|
30
|
+
*/
|
|
31
|
+
declare const Label: ForwardRefExoticComponent_tcubfn<LabelProps & RefAttributes_miuf56<HTMLLabelElement>>;
|
|
32
|
+
export { Label, LabelProps, Label as default };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Label2,
|
|
3
|
+
label_default
|
|
4
|
+
} from "../../../shared/components-adkarj8n.js";
|
|
5
|
+
import"../../../shared/components-h83az0bz.js";
|
|
6
|
+
import"../../../shared/components-34txk9rj.js";
|
|
7
|
+
import"../../../shared/components-jcnjay5g.js";
|
|
8
|
+
export {
|
|
9
|
+
Label2 as Label,
|
|
10
|
+
label_default as default
|
|
11
|
+
};
|