@justanarthur/modo-ui 0.6.0-canary.9 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -164
- package/dist/base.css +4 -141
- package/dist/blocks/sidebar-app/index.js +26 -40
- package/dist/components/AI/input-message/index.js +16 -23
- package/dist/components/AI/thinking-indicator/index.js +6 -9
- package/dist/components/accordion/index.d.ts +11 -39
- package/dist/components/accordion/index.js +13 -18
- package/dist/components/badge/index.d.ts +11 -18
- package/dist/components/badge/index.js +7 -12
- package/dist/components/button/index.d.ts +17 -53
- package/dist/components/button/index.js +6 -11
- package/dist/components/card/index.d.ts +9 -32
- package/dist/components/card/index.js +11 -17
- package/dist/components/copy/index.d.ts +8 -41
- package/dist/components/copy/index.js +9 -15
- package/dist/components/inputs/checkbox/index.d.ts +9 -28
- package/dist/components/inputs/checkbox/index.js +13 -18
- package/dist/components/inputs/color-picker/index.d.ts +14 -22
- package/dist/components/inputs/color-picker/index.js +18 -26
- package/dist/components/inputs/combobox/index.d.ts +20 -85
- package/dist/components/inputs/combobox/index.js +18 -27
- package/dist/components/inputs/date-time/calendar/index.d.ts +18 -24
- package/dist/components/inputs/date-time/calendar/index.js +11 -15
- package/dist/components/inputs/date-time/date-picker/index.d.ts +16 -105
- package/dist/components/inputs/date-time/date-picker/index.js +25 -35
- package/dist/components/inputs/date-time/date-range-picker/index.d.ts +12 -106
- package/dist/components/inputs/date-time/date-range-picker/index.js +24 -35
- package/dist/components/inputs/date-time/duration-picker/index.d.ts +13 -66
- package/dist/components/inputs/date-time/duration-picker/index.js +24 -33
- package/dist/components/inputs/date-time/month-picker/index.d.ts +10 -60
- package/dist/components/inputs/date-time/month-picker/index.js +23 -32
- package/dist/components/inputs/date-time/time-picker/index.d.ts +10 -58
- package/dist/components/inputs/date-time/time-picker/index.js +24 -33
- package/dist/components/inputs/input/index.d.ts +13 -95
- package/dist/components/inputs/input/index.js +9 -18
- package/dist/components/inputs/radio/index.d.ts +5 -20
- package/dist/components/inputs/radio/index.js +12 -16
- package/dist/components/inputs/search/index.d.ts +3 -3
- package/dist/components/inputs/search/index.js +18 -26
- package/dist/components/inputs/select/index.d.ts +23 -99
- package/dist/components/inputs/select/index.js +14 -29
- package/dist/components/inputs/slider/index.d.ts +0 -9
- package/dist/components/inputs/slider/index.js +5 -8
- package/dist/components/inputs/switch/index.d.ts +2 -8
- package/dist/components/inputs/switch/index.js +12 -15
- package/dist/components/inputs/textarea/index.d.ts +1 -20
- package/dist/components/inputs/textarea/index.js +6 -9
- package/dist/components/navigation/sidebar/index.d.ts +21 -44
- package/dist/components/navigation/sidebar/index.js +31 -42
- package/dist/components/navigation/tabs/index.d.ts +2 -8
- package/dist/components/navigation/tabs/index.js +10 -15
- package/dist/components/navigation/tabs-subtle/index.js +10 -13
- package/dist/components/overlays/alert-dialog/index.d.ts +16 -135
- package/dist/components/overlays/alert-dialog/index.js +13 -23
- package/dist/components/overlays/command/index.d.ts +20 -25
- package/dist/components/overlays/command/index.js +17 -25
- package/dist/components/overlays/context-menu/index.d.ts +17 -39
- package/dist/components/overlays/context-menu/index.js +18 -29
- package/dist/components/overlays/dialog/index.d.ts +16 -42
- package/dist/components/overlays/dialog/index.js +12 -20
- package/dist/components/overlays/dropdown/index.d.ts +34 -304
- package/dist/components/overlays/dropdown/index.js +17 -44
- package/dist/components/overlays/popover/index.d.ts +12 -38
- package/dist/components/overlays/popover/index.js +9 -13
- package/dist/components/overlays/preview-card/index.js +8 -12
- package/dist/components/overlays/sheet/index.d.ts +8 -25
- package/dist/components/overlays/sheet/index.js +13 -19
- package/dist/components/overlays/toast/index.d.ts +50 -209
- package/dist/components/overlays/toast/index.js +10 -23
- package/dist/components/overlays/tooltip/index.d.ts +21 -123
- package/dist/components/overlays/tooltip/index.js +6 -16
- package/dist/components/table/index.d.ts +8 -63
- package/dist/components/table/index.js +9 -20
- package/dist/index.d.ts +1048 -2999
- package/dist/index.js +82 -231
- package/dist/preset.d.ts +0 -22
- package/dist/preset.js +2 -24
- package/dist/primitives/code/index.js +5 -8
- package/dist/primitives/craft/index.js +6 -10
- package/dist/primitives/fluid-hover/index.js +8 -10
- package/dist/primitives/morph/index.js +10 -16
- package/dist/primitives/motion/index.js +8 -11
- package/dist/primitives/scroll-area/index.js +3 -5
- package/dist/primitives/sizes/index.js +4 -6
- package/dist/primitives/surface/index.js +4 -6
- package/dist/shared/{components-c7rwx0ap.js → components-0q0sqfh4.js} +49 -27
- package/dist/shared/components-0sn7ypjw.js +61 -0
- package/dist/shared/{components-vc864c51.js → components-11da9ajg.js} +5 -8
- package/dist/shared/components-1434p1mh.js +123 -0
- package/dist/shared/{components-c74gf16d.js → components-1z6tdadk.js} +24 -40
- package/dist/shared/{components-bae8sbjx.js → components-27nnvrwe.js} +14 -15
- package/dist/shared/{components-qh1cvj6p.js → components-2dxkv6zm.js} +7 -8
- package/dist/shared/{components-y0kfy2g4.js → components-2ecg8svx.js} +152 -234
- package/dist/shared/{components-c5w5zk0s.js → components-2ph6t61s.js} +34 -37
- package/dist/shared/{components-4j3t39dd.js → components-39jq9va1.js} +24 -29
- package/dist/shared/components-3ky44908.js +9 -0
- package/dist/shared/{components-syynwm1r.js → components-3mkepka5.js} +25 -28
- package/dist/shared/{components-wgtjt2af.js → components-4700p9kz.js} +22 -24
- package/dist/shared/{components-yhgq0qxx.js → components-59efxjd9.js} +12 -13
- package/dist/shared/{components-91zw3d9f.js → components-5vgpnxgy.js} +27 -51
- package/dist/shared/{components-kz5q11pp.js → components-5xc2j8jz.js} +18 -19
- package/dist/shared/{components-zkk3fmw8.js → components-6p8tfcd6.js} +29 -57
- package/dist/shared/{components-4nck8acq.js → components-7r3etddy.js} +54 -19
- package/dist/shared/{components-svkt577j.js → components-8snj490h.js} +32 -78
- package/dist/shared/{components-ctqmge8t.js → components-b0eac83j.js} +30 -9
- package/dist/shared/{components-9sttq78t.js → components-b2wyq2cq.js} +59 -41
- package/dist/shared/{components-pv1dyrtn.js → components-b3c5et5b.js} +38 -49
- package/dist/shared/{components-rrbpmfx4.js → components-c6s6b43g.js} +2 -3
- package/dist/shared/{components-pwayrkw9.js → components-chacnk61.js} +19 -19
- package/dist/shared/{components-71nbt03m.js → components-cv16mryv.js} +7 -26
- package/dist/shared/{components-hgv6tygd.js → components-d6xtjht3.js} +30 -35
- package/dist/shared/{components-z8fedth5.js → components-dk0gjr5a.js} +18 -19
- package/dist/shared/{components-cet3jpa0.js → components-fzrq6tr3.js} +34 -37
- package/dist/shared/{components-cnead5qm.js → components-gc5vtq2f.js} +30 -66
- package/dist/shared/components-gf5s6ap9.js +42 -0
- package/dist/shared/{components-0h78g3b5.js → components-gz8zf3ec.js} +55 -56
- package/dist/shared/{components-mattt5jp.js → components-h2ajmhwn.js} +35 -107
- package/dist/shared/{components-m06yq8wk.js → components-hqeq3w9q.js} +23 -38
- package/dist/shared/{components-7qx17na9.js → components-hw9yk32z.js} +24 -36
- package/dist/shared/components-hyq23phv.js +310 -0
- package/dist/shared/{components-9jmjnkqd.js → components-jbbmdr74.js} +22 -41
- package/dist/shared/{components-dcc02hs2.js → components-jjw69c4c.js} +4 -7
- package/dist/shared/{components-303jf96s.js → components-jthe1pwb.js} +420 -139
- package/dist/shared/{components-dtca4s6b.js → components-jwst3vtj.js} +76 -224
- package/dist/shared/{components-dc5q749x.js → components-kvr7f9hy.js} +10 -19
- package/dist/shared/{components-s8yqk2dc.js → components-kwa6mrf9.js} +11 -46
- package/dist/shared/{components-de99ykt7.js → components-men63rwj.js} +2 -3
- package/dist/shared/{components-qx27excf.js → components-mjthm1kf.js} +9 -13
- package/dist/shared/{components-1e64t8aj.js → components-n42c79bz.js} +22 -23
- package/dist/shared/{components-tz1fv35x.js → components-n7mjr357.js} +2 -3
- package/dist/shared/components-ng72k97e.js +128 -0
- package/dist/shared/{components-w2jqa6hx.js → components-pbmqctfa.js} +65 -169
- package/dist/shared/{components-px2zm7dc.js → components-q5xj5c16.js} +8 -9
- package/dist/shared/components-raknhppb.js +64 -0
- package/dist/shared/{components-2a7hcand.js → components-rr7a6ja9.js} +27 -59
- package/dist/shared/{components-005jt2nz.js → components-s083f38z.js} +34 -164
- package/dist/shared/components-s5ngg32c.js +267 -0
- package/dist/shared/components-sn1rxx1d.js +143 -0
- package/dist/shared/{components-r8eqs7gz.js → components-ta7shw28.js} +4 -4
- package/dist/shared/{components-9as3rf68.js → components-vc7vq5nz.js} +3 -6
- package/dist/shared/{components-ft3zdc79.js → components-vfbhxf5r.js} +5 -6
- package/dist/shared/components-vynjtrk6.js +19 -0
- package/dist/shared/{components-p0fm0bab.js → components-w1r67ag9.js} +149 -294
- package/dist/shared/{components-xd3emmy4.js → components-w90endve.js} +72 -71
- package/dist/shared/{components-t5pk5nmc.js → components-wvp1m52g.js} +102 -149
- package/dist/shared/components-wy9jpqny.js +146 -0
- package/dist/shared/{components-yxmxn2jp.js → components-y9y0g8er.js} +28 -52
- package/dist/shared/components-ypp01w3p.js +986 -0
- package/dist/shared/{components-czdvj1a8.js → components-zfnmn5d4.js} +36 -82
- package/dist/shared/{components-jqpefjsn.js → components-zrkzcayz.js} +6 -54
- package/dist/shared/{components-vf45j12c.js → components-zx6b6yby.js} +18 -4
- package/dist/styles.css +32 -320
- package/dist/tailwind.css +0 -16
- package/dist/tokens.css +0 -67
- package/package.json +4 -227
- package/DESIGN.md +0 -623
- package/blocks/sidebar-app/examples.mdx +0 -33
- package/blocks/sidebar-app/index.tsx +0 -218
- package/blocks/sidebar-app/inset-topbar.tsx +0 -25
- package/blocks/sidebar-app/menu-grid.ts +0 -26
- package/blocks/sidebar-app/nav-data.ts +0 -36
- package/blocks/sidebar-app/search-field.tsx +0 -48
- package/blocks/sidebar-app/user-footer.tsx +0 -67
- package/blocks/sidebar-app/workspace-header.tsx +0 -129
- package/components/AI/input-message/examples.mdx +0 -130
- package/components/AI/input-message/file-thumbnail.tsx +0 -173
- package/components/AI/input-message/index.tsx +0 -1385
- package/components/AI/thinking-indicator/examples.mdx +0 -27
- package/components/AI/thinking-indicator/index.tsx +0 -210
- package/components/accordion/examples.mdx +0 -233
- package/components/accordion/index.tsx +0 -1071
- package/components/avatar/examples.mdx +0 -95
- package/components/avatar/index.tsx +0 -129
- package/components/badge/change-demo.tsx +0 -29
- package/components/badge/examples.mdx +0 -124
- package/components/badge/index.tsx +0 -225
- package/components/badge/variants.ts +0 -73
- package/components/button/examples.mdx +0 -168
- package/components/button/index.tsx +0 -424
- package/components/button/loading-demo.tsx +0 -25
- package/components/button/variants.ts +0 -168
- package/components/card/examples.mdx +0 -251
- package/components/card/index.tsx +0 -1070
- package/components/copy/examples.mdx +0 -125
- package/components/copy/index.tsx +0 -662
- package/components/inputs/checkbox/examples.mdx +0 -87
- package/components/inputs/checkbox/index.tsx +0 -611
- package/components/inputs/checkbox/select-all-demo.tsx +0 -48
- package/components/inputs/color-picker/examples.mdx +0 -111
- package/components/inputs/color-picker/index.tsx +0 -1981
- package/components/inputs/color-picker/variants.ts +0 -401
- package/components/inputs/combobox/examples.mdx +0 -366
- package/components/inputs/combobox/index.tsx +0 -1527
- package/components/inputs/combobox/remote-demo.tsx +0 -105
- package/components/inputs/date-time/calendar/examples.mdx +0 -45
- package/components/inputs/date-time/calendar/index.tsx +0 -370
- package/components/inputs/date-time/calendar/use-month-window.ts +0 -173
- package/components/inputs/date-time/date-picker/examples.mdx +0 -243
- package/components/inputs/date-time/date-picker/index.tsx +0 -476
- package/components/inputs/date-time/date-picker/masked-date-input.tsx +0 -348
- package/components/inputs/date-time/date-range-picker/examples.mdx +0 -93
- package/components/inputs/date-time/date-range-picker/index.tsx +0 -525
- package/components/inputs/date-time/duration-picker/examples.mdx +0 -40
- package/components/inputs/date-time/duration-picker/index.tsx +0 -253
- package/components/inputs/date-time/month-picker/examples.mdx +0 -45
- package/components/inputs/date-time/month-picker/index.tsx +0 -254
- package/components/inputs/date-time/picker-shell.tsx +0 -581
- package/components/inputs/date-time/time-columns.tsx +0 -94
- package/components/inputs/date-time/time-picker/examples.mdx +0 -57
- package/components/inputs/date-time/time-picker/index.tsx +0 -227
- package/components/inputs/field/examples.mdx +0 -117
- package/components/inputs/field/index.tsx +0 -268
- package/components/inputs/file-dropzone/examples.mdx +0 -83
- package/components/inputs/file-dropzone/file-row.tsx +0 -201
- package/components/inputs/file-dropzone/index.tsx +0 -316
- package/components/inputs/file-dropzone/upload-demo.tsx +0 -67
- package/components/inputs/file-dropzone/variants.ts +0 -94
- package/components/inputs/input/examples.mdx +0 -166
- package/components/inputs/input/index.tsx +0 -494
- package/components/inputs/input/password-demo.tsx +0 -30
- package/components/inputs/label/examples.mdx +0 -67
- package/components/inputs/label/index.tsx +0 -85
- package/components/inputs/number-input/examples.mdx +0 -69
- package/components/inputs/number-input/index.tsx +0 -221
- package/components/inputs/radio/examples.mdx +0 -77
- package/components/inputs/radio/index.tsx +0 -636
- package/components/inputs/search/examples.mdx +0 -74
- package/components/inputs/search/index.tsx +0 -333
- package/components/inputs/select/examples.mdx +0 -296
- package/components/inputs/select/index.tsx +0 -1044
- package/components/inputs/select/variants.ts +0 -32
- package/components/inputs/slider/examples.mdx +0 -153
- package/components/inputs/slider/index.tsx +0 -1867
- package/components/inputs/switch/examples.mdx +0 -96
- package/components/inputs/switch/index.tsx +0 -504
- package/components/inputs/textarea/examples.mdx +0 -126
- package/components/inputs/textarea/index.tsx +0 -207
- package/components/navigation/navigation-menu/examples.mdx +0 -136
- package/components/navigation/navigation-menu/index.tsx +0 -704
- package/components/navigation/pagination/examples.mdx +0 -74
- package/components/navigation/pagination/index.tsx +0 -401
- package/components/navigation/sidebar/examples.mdx +0 -325
- package/components/navigation/sidebar/index.tsx +0 -453
- package/components/navigation/sidebar/sidebar-core.tsx +0 -1408
- package/components/navigation/sidebar/sidebar-menu.tsx +0 -1495
- package/components/navigation/sidebar/sidebar.css +0 -74
- package/components/navigation/sidebar/variants.ts +0 -55
- package/components/navigation/tabs/examples.mdx +0 -89
- package/components/navigation/tabs/index.tsx +0 -494
- package/components/navigation/tabs-subtle/examples.mdx +0 -49
- package/components/navigation/tabs-subtle/index.tsx +0 -512
- package/components/overlays/alert-dialog/examples.mdx +0 -123
- package/components/overlays/alert-dialog/index.tsx +0 -276
- package/components/overlays/alert-dialog/pending-demo.tsx +0 -36
- package/components/overlays/command/examples.mdx +0 -113
- package/components/overlays/command/index.tsx +0 -425
- package/components/overlays/context-menu/examples.mdx +0 -56
- package/components/overlays/context-menu/index.tsx +0 -279
- package/components/overlays/dialog/examples.mdx +0 -165
- package/components/overlays/dialog/index.tsx +0 -451
- package/components/overlays/dropdown/dropdown-search.tsx +0 -395
- package/components/overlays/dropdown/examples.mdx +0 -444
- package/components/overlays/dropdown/index.tsx +0 -1241
- package/components/overlays/dropdown/menu-item.tsx +0 -510
- package/components/overlays/dropdown/menu-parts.tsx +0 -725
- package/components/overlays/popover/anchored-demo.tsx +0 -59
- package/components/overlays/popover/examples.mdx +0 -203
- package/components/overlays/popover/index.tsx +0 -317
- package/components/overlays/preview-card/examples.mdx +0 -61
- package/components/overlays/preview-card/index.tsx +0 -204
- package/components/overlays/sheet/examples.mdx +0 -101
- package/components/overlays/sheet/index.tsx +0 -307
- package/components/overlays/toast/examples.mdx +0 -85
- package/components/overlays/toast/global-demo.tsx +0 -72
- package/components/overlays/toast/index.tsx +0 -544
- package/components/overlays/toast/manager.ts +0 -193
- package/components/overlays/tooltip/examples.mdx +0 -106
- package/components/overlays/tooltip/index.tsx +0 -539
- package/components/progress/examples.mdx +0 -59
- package/components/progress/index.tsx +0 -174
- package/components/progress/progress.css +0 -49
- package/components/progress/step-demo.tsx +0 -27
- package/components/table/examples.mdx +0 -188
- package/components/table/index.tsx +0 -535
- package/components/table/sort-demo.tsx +0 -61
- package/dist/components/avatar/index.d.ts +0 -46
- package/dist/components/avatar/index.js +0 -19
- package/dist/components/badge/variants.d.ts +0 -33
- package/dist/components/badge/variants.js +0 -10
- package/dist/components/button/variants.d.ts +0 -39
- package/dist/components/button/variants.js +0 -8
- package/dist/components/inputs/color-picker/variants.d.ts +0 -61
- package/dist/components/inputs/color-picker/variants.js +0 -28
- package/dist/components/inputs/field/index.d.ts +0 -116
- package/dist/components/inputs/field/index.js +0 -29
- package/dist/components/inputs/file-dropzone/index.d.ts +0 -167
- package/dist/components/inputs/file-dropzone/index.js +0 -33
- package/dist/components/inputs/file-dropzone/variants.d.ts +0 -35
- package/dist/components/inputs/file-dropzone/variants.js +0 -12
- package/dist/components/inputs/label/index.d.ts +0 -32
- package/dist/components/inputs/label/index.js +0 -11
- package/dist/components/inputs/number-input/index.d.ts +0 -87
- package/dist/components/inputs/number-input/index.js +0 -21
- package/dist/components/inputs/select/variants.d.ts +0 -5
- package/dist/components/inputs/select/variants.js +0 -6
- package/dist/components/navigation/navigation-menu/index.d.ts +0 -126
- package/dist/components/navigation/navigation-menu/index.js +0 -41
- package/dist/components/navigation/pagination/index.d.ts +0 -75
- package/dist/components/navigation/pagination/index.js +0 -41
- package/dist/components/navigation/sidebar/variants.d.ts +0 -25
- package/dist/components/navigation/sidebar/variants.js +0 -28
- package/dist/components/progress/index.d.ts +0 -56
- package/dist/components/progress/index.js +0 -15
- package/dist/docs/index.d.ts +0 -83
- package/dist/docs/index.js +0 -288
- package/dist/docs/vite.d.ts +0 -31
- package/dist/docs/vite.js +0 -45
- package/dist/lib/date-locale.d.ts +0 -26
- package/dist/lib/date-locale.js +0 -24
- package/dist/lib/field-classes.d.ts +0 -149
- package/dist/lib/field-classes.js +0 -41
- package/dist/lib/field-variants.d.ts +0 -47
- package/dist/lib/field-variants.js +0 -26
- package/dist/lib/fluid-hover-highlight.d.ts +0 -112
- package/dist/lib/fluid-hover-highlight.js +0 -17
- package/dist/lib/focus-ring.d.ts +0 -18
- package/dist/lib/focus-ring.js +0 -11
- package/dist/lib/goo-indicator.d.ts +0 -46
- package/dist/lib/goo-indicator.js +0 -14
- package/dist/lib/icon-context.d.ts +0 -30
- package/dist/lib/icon-context.js +0 -12
- package/dist/lib/inert.d.ts +0 -9
- package/dist/lib/inert.js +0 -8
- package/dist/lib/morph-layers.d.ts +0 -93
- package/dist/lib/morph-layers.js +0 -13
- package/dist/lib/morph-part.d.ts +0 -21
- package/dist/lib/morph-part.js +0 -12
- package/dist/lib/popup.d.ts +0 -20
- package/dist/lib/popup.js +0 -12
- package/dist/lib/reduced-motion.d.ts +0 -9
- package/dist/lib/reduced-motion.js +0 -6
- package/dist/lib/row-index.d.ts +0 -10
- package/dist/lib/row-index.js +0 -8
- package/dist/lib/row-order.d.ts +0 -28
- package/dist/lib/row-order.js +0 -10
- package/dist/lib/scroll-column.d.ts +0 -31
- package/dist/lib/scroll-column.js +0 -19
- package/dist/lib/shape-context.d.ts +0 -30
- package/dist/lib/shape-context.js +0 -13
- package/dist/lib/shape-radius.d.ts +0 -19
- package/dist/lib/shape-radius.js +0 -6
- package/dist/lib/size-context.d.ts +0 -94
- package/dist/lib/size-context.js +0 -20
- package/dist/lib/size-scale.d.ts +0 -79
- package/dist/lib/size-scale.js +0 -8
- package/dist/lib/slot.d.ts +0 -39
- package/dist/lib/slot.js +0 -14
- package/dist/lib/springs.d.ts +0 -44
- package/dist/lib/springs.js +0 -8
- package/dist/lib/surface-classes.d.ts +0 -19
- package/dist/lib/surface-classes.js +0 -10
- package/dist/lib/surface-context.d.ts +0 -9
- package/dist/lib/surface-context.js +0 -8
- package/dist/lib/use-controllable-state.d.ts +0 -2
- package/dist/lib/use-controllable-state.js +0 -6
- package/dist/lib/use-fluid-hover.d.ts +0 -138
- package/dist/lib/use-fluid-hover.js +0 -14
- package/dist/lib/use-is-mobile.d.ts +0 -2
- package/dist/lib/use-is-mobile.js +0 -6
- package/dist/lib/use-keyboard-nav-gate.d.ts +0 -20
- package/dist/lib/use-keyboard-nav-gate.js +0 -7
- package/dist/lib/use-merge-split.d.ts +0 -47
- package/dist/lib/use-merge-split.js +0 -15
- package/dist/lib/use-morph.d.ts +0 -101
- package/dist/lib/use-morph.js +0 -20
- package/dist/lib/use-touch-primary.d.ts +0 -2
- package/dist/lib/use-touch-primary.js +0 -6
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.js +0 -6
- package/dist/primitives/separator/index.d.ts +0 -25
- package/dist/primitives/separator/index.js +0 -9
- package/dist/primitives/skeleton/index.d.ts +0 -35
- package/dist/primitives/skeleton/index.js +0 -13
- package/dist/shared/components-01w9qcfa.js +0 -277
- package/dist/shared/components-124epb7f.js +0 -53
- package/dist/shared/components-26snnbs9.js +0 -322
- package/dist/shared/components-2krsc300.js +0 -254
- package/dist/shared/components-2qbqqpgq.js +0 -1545
- package/dist/shared/components-34txk9rj.js +0 -35
- package/dist/shared/components-3h92d94m.js +0 -23
- package/dist/shared/components-4vfm04wq.js +0 -82
- package/dist/shared/components-54nq988h.js +0 -123
- package/dist/shared/components-7s7pykk5.js +0 -281
- package/dist/shared/components-868v7scv.js +0 -399
- package/dist/shared/components-8jrk5eye.js +0 -448
- package/dist/shared/components-adkarj8n.js +0 -35
- package/dist/shared/components-b1e239g3.js +0 -28
- package/dist/shared/components-b94t6qtj.js +0 -143
- package/dist/shared/components-bsqynhaj.js +0 -179
- package/dist/shared/components-c9yr4ed1.js +0 -44
- package/dist/shared/components-d3shbwqq.js +0 -95
- package/dist/shared/components-dhgk6mbt.js +0 -16
- package/dist/shared/components-drxrtnp2.js +0 -25
- package/dist/shared/components-f7h57m6t.js +0 -59
- package/dist/shared/components-g3eafs70.js +0 -337
- package/dist/shared/components-gx4h5rbb.js +0 -40
- package/dist/shared/components-gyt7my41.js +0 -328
- package/dist/shared/components-h6p86be3.js +0 -19
- package/dist/shared/components-h83az0bz.js +0 -33
- package/dist/shared/components-hdzrqqpx.js +0 -55
- package/dist/shared/components-krtx3m5b.js +0 -84
- package/dist/shared/components-kswxnm3h.js +0 -24
- package/dist/shared/components-mhza2wdn.js +0 -482
- package/dist/shared/components-mrbaxt8q.js +0 -62
- package/dist/shared/components-pt5ftm4p.js +0 -38
- package/dist/shared/components-rtadhd9j.js +0 -64
- package/dist/shared/components-tv7b8tet.js +0 -271
- package/dist/shared/components-tz4gaf1v.js +0 -23
- package/dist/shared/components-wbbckbw8.js +0 -34
- package/dist/shared/components-wknae3m4.js +0 -298
- package/dist/shared/components-xdqmt6ed.js +0 -20
- package/dist/shared/components-xjkdvnbg.js +0 -107
- package/dist/shared/components-z3v0n0de.js +0 -11
- package/dist/tokens/colors.css +0 -230
- package/dist/tokens/motion.css +0 -40
- package/dist/tokens/radius.css +0 -10
- package/dist/tokens/spacing.css +0 -9
- package/dist/tokens/typography.css +0 -119
- package/docs/chrome.css +0 -120
- package/docs/chrome.tsx +0 -283
- package/docs/index.ts +0 -9
- package/docs/vite.ts +0 -85
- package/index.ts +0 -60
- package/lib/date-locale.ts +0 -195
- package/lib/field-classes.ts +0 -121
- package/lib/field-variants.ts +0 -117
- package/lib/fluid-hover-highlight.tsx +0 -139
- package/lib/focus-ring.tsx +0 -46
- package/lib/goo-indicator.tsx +0 -261
- package/lib/icon-context.tsx +0 -310
- package/lib/inert.ts +0 -22
- package/lib/morph-layers.tsx +0 -102
- package/lib/morph-part.tsx +0 -49
- package/lib/popup.ts +0 -52
- package/lib/reduced-motion.ts +0 -19
- package/lib/row-index.tsx +0 -29
- package/lib/row-order.tsx +0 -126
- package/lib/scroll-column.tsx +0 -273
- package/lib/shape-context.tsx +0 -138
- package/lib/shape-radius.ts +0 -67
- package/lib/size-context.tsx +0 -66
- package/lib/size-scale.ts +0 -115
- package/lib/slot.ts +0 -115
- package/lib/springs.ts +0 -62
- package/lib/surface-classes.ts +0 -58
- package/lib/surface-context.tsx +0 -21
- package/lib/use-controllable-state.ts +0 -44
- package/lib/use-fluid-hover.ts +0 -541
- package/lib/use-is-mobile.ts +0 -25
- package/lib/use-keyboard-nav-gate.ts +0 -45
- package/lib/use-merge-split.tsx +0 -209
- package/lib/use-morph.ts +0 -575
- package/lib/use-touch-primary.tsx +0 -43
- package/lib/utils.ts +0 -37
- package/preset.ts +0 -199
- package/primitives/code/examples.mdx +0 -27
- package/primitives/code/index.tsx +0 -80
- package/primitives/craft/demos.tsx +0 -173
- package/primitives/craft/examples.mdx +0 -142
- package/primitives/craft/index.tsx +0 -76
- package/primitives/fluid-hover/examples.mdx +0 -84
- package/primitives/fluid-hover/index.tsx +0 -316
- package/primitives/morph/examples.mdx +0 -139
- package/primitives/morph/index.tsx +0 -192
- package/primitives/motion/examples.mdx +0 -100
- package/primitives/motion/index.tsx +0 -160
- package/primitives/scroll-area/examples.mdx +0 -58
- package/primitives/scroll-area/index.tsx +0 -204
- package/primitives/separator/examples.mdx +0 -30
- package/primitives/separator/index.tsx +0 -53
- package/primitives/sizes/examples.mdx +0 -167
- package/primitives/sizes/index.tsx +0 -89
- package/primitives/skeleton/examples.mdx +0 -51
- package/primitives/skeleton/index.tsx +0 -72
- package/primitives/skeleton/skeleton.css +0 -15
- package/primitives/surface/examples.mdx +0 -173
- package/primitives/surface/index.tsx +0 -109
- package/primitives/surface/surface.css +0 -176
- /package/dist/shared/{components-3ey0hzpb.js → components-1v7rxytx.js} +0 -0
- /package/dist/shared/{components-jcnjay5g.js → components-ezxhrmer.js} +0 -0
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Local addition (not part of Fluid Functionalism): the pure helpers behind
|
|
3
|
-
* FileDropzone and its rows (size formatting, the accept / size / count
|
|
4
|
-
* checks). No React: the build makes this an entry of its own without
|
|
5
|
-
* `"use client"`, so server code can call them.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const UNITS = ['byte', 'kilobyte', 'megabyte', 'gigabyte', 'terabyte'] as const
|
|
9
|
-
|
|
10
|
-
/** A byte count as a short localized size: `512 B`, `1.5 MB` (decimal units, as file managers show them). */
|
|
11
|
-
export function formatFileSize(bytes: number, locale?: Intl.LocalesArgument) {
|
|
12
|
-
let value = bytes
|
|
13
|
-
let unit = 0
|
|
14
|
-
while (value >= 1000 && unit < UNITS.length - 1) {
|
|
15
|
-
value /= 1000
|
|
16
|
-
unit++
|
|
17
|
-
}
|
|
18
|
-
return new Intl.NumberFormat(locale, {
|
|
19
|
-
style: 'unit',
|
|
20
|
-
unit: UNITS[unit],
|
|
21
|
-
unitDisplay: 'short',
|
|
22
|
-
maximumFractionDigits: unit === 0 ? 0 : 1,
|
|
23
|
-
}).format(value)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** 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`. */
|
|
27
|
-
export type FileRejectionReason = 'type' | 'size' | 'count'
|
|
28
|
-
|
|
29
|
-
/** A file the dropzone turned away, and why. */
|
|
30
|
-
export interface FileRejection {
|
|
31
|
-
file: File
|
|
32
|
-
reason: FileRejectionReason
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function rules(accept: string) {
|
|
36
|
-
return accept
|
|
37
|
-
.split(',')
|
|
38
|
-
.map(rule => rule.trim().toLowerCase())
|
|
39
|
-
.filter(Boolean)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function matches(rule: string, name: string, type: string) {
|
|
43
|
-
if (rule.startsWith('.')) return name.endsWith(rule)
|
|
44
|
-
if (rule.endsWith('/*')) return type.startsWith(rule.slice(0, -1))
|
|
45
|
-
return type === rule
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/** Whether a file passes an `accept` list (`.pdf,image/*`), as the native file input reads it. */
|
|
49
|
-
export function acceptsFile(file: { name: string; type: string }, accept?: string) {
|
|
50
|
-
if (!accept) return true
|
|
51
|
-
const name = file.name.toLowerCase()
|
|
52
|
-
const type = file.type.toLowerCase()
|
|
53
|
-
return rules(accept).some(rule => matches(rule, name, type))
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** What a drag over the zone will come to: every file taken, some taken and some turned away, or none taken. */
|
|
57
|
-
export type DragVerdict = 'accept' | 'partial' | 'reject'
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Judges dragged files while they are still in the air. A drag shows MIME
|
|
61
|
-
* types but no names, so a type the drag leaves empty, or an `accept` list
|
|
62
|
-
* with extensions, counts as passing until the drop sorts the files. `limit`
|
|
63
|
-
* is how many one drop may add.
|
|
64
|
-
*/
|
|
65
|
-
export function dragVerdict(types: string[], accept: string | undefined, limit: number): DragVerdict {
|
|
66
|
-
const list = accept ? rules(accept) : []
|
|
67
|
-
const unsure = !list.length || list.some(rule => rule.startsWith('.'))
|
|
68
|
-
const passing = types.filter(type => unsure || !type || list.some(rule => matches(rule, '', type.toLowerCase())))
|
|
69
|
-
if (!passing.length || limit < 1) return 'reject'
|
|
70
|
-
return passing.length === types.length && types.length <= limit ? 'accept' : 'partial'
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
interface SortOptions {
|
|
74
|
-
accept?: string
|
|
75
|
-
maxSize?: number
|
|
76
|
-
maxFiles?: number
|
|
77
|
-
multiple?: boolean
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/** Splits picked or dropped files into the ones that pass `accept`, `maxSize` and the count, and the rest with a reason. */
|
|
81
|
-
export function sortFiles(files: File[], { accept, maxSize, maxFiles, multiple }: SortOptions) {
|
|
82
|
-
const accepted: File[] = []
|
|
83
|
-
const rejected: FileRejection[] = []
|
|
84
|
-
const limit = multiple ? (maxFiles ?? Number.POSITIVE_INFINITY) : 1
|
|
85
|
-
|
|
86
|
-
for (const file of files) {
|
|
87
|
-
if (!acceptsFile(file, accept)) rejected.push({ file, reason: 'type' })
|
|
88
|
-
else if (maxSize != null && file.size > maxSize) rejected.push({ file, reason: 'size' })
|
|
89
|
-
else if (accepted.length >= limit) rejected.push({ file, reason: 'count' })
|
|
90
|
-
else accepted.push(file)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return { accepted, rejected }
|
|
94
|
-
}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import Input, { InputAction, InputGroup, Label } from './index'
|
|
2
|
-
import Dropdown from '../../overlays/dropdown'
|
|
3
|
-
import PasswordDemo from './password-demo'
|
|
4
|
-
import Textarea from '../textarea'
|
|
5
|
-
import SizeProvider from '../../../primitives/sizes'
|
|
6
|
-
import { ChevronDown, CircleCheck, Mail, Search } from 'lucide-react'
|
|
7
|
-
|
|
8
|
-
# Basics
|
|
9
|
-
|
|
10
|
-
## Basic
|
|
11
|
-
|
|
12
|
-
A single input with a leading icon.
|
|
13
|
-
|
|
14
|
-
<div className="w-72 max-w-full">
|
|
15
|
-
<Input placeholder="Search teamspaces..." icon={Search} />
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
## Variants
|
|
19
|
-
|
|
20
|
-
`borderless` is invisible until hovered or focused; `bordered` is framed at rest.
|
|
21
|
-
|
|
22
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
23
|
-
<Input placeholder="Borderless" />
|
|
24
|
-
<Input variant="bordered" placeholder="Bordered" />
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
## With a Label
|
|
28
|
-
|
|
29
|
-
`Label` pairs with the input through `htmlFor` and `id`.
|
|
30
|
-
|
|
31
|
-
<div className="flex flex-col gap-1 w-72 max-w-full">
|
|
32
|
-
<Label htmlFor="input-email">Email</Label>
|
|
33
|
-
<Input id="input-email" placeholder="you@example.com" icon={Mail} />
|
|
34
|
-
</div>
|
|
35
|
-
|
|
36
|
-
# Content
|
|
37
|
-
|
|
38
|
-
## Adornments
|
|
39
|
-
|
|
40
|
-
`startAdornment` and `endAdornment` hold a prefix, a unit or an icon beside the text. They light with the field, and icons take the ladder's glyph size.
|
|
41
|
-
|
|
42
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
43
|
-
<Input variant="bordered" startAdornment="https://" placeholder="example.com" />
|
|
44
|
-
<Input variant="bordered" endAdornment="kg" defaultValue="72" />
|
|
45
|
-
<Input variant="bordered" icon={Mail} defaultValue="ada@example.com" endAdornment={<CircleCheck />} />
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
## Actions
|
|
49
|
-
|
|
50
|
-
An `InputAction` sits 4px inside the ring. Here it reveals the password; a press keeps the caret in the field.
|
|
51
|
-
|
|
52
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
53
|
-
<PasswordDemo variant="bordered" placeholder="Password" defaultValue="correct horse" />
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
## Popup from an adornment
|
|
57
|
-
|
|
58
|
-
A searchable Dropdown in `startAdornment`: its panel is portalled out of the field, so a press inside it never refocuses the input. Click the search field and type; a press on the field's own padding still focuses the input.
|
|
59
|
-
|
|
60
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
61
|
-
<Input
|
|
62
|
-
variant="bordered"
|
|
63
|
-
type="tel"
|
|
64
|
-
placeholder="Phone number"
|
|
65
|
-
startAdornment={
|
|
66
|
-
<Dropdown.Menu>
|
|
67
|
-
<Dropdown.Trigger render={<InputAction label="Country code">+1<ChevronDown /></InputAction>} />
|
|
68
|
-
<Dropdown.Content defaultCheckedIndex={0}>
|
|
69
|
-
<Dropdown.Search filter placeholder="Search countries" />
|
|
70
|
-
{['+1 United States', '+31 Netherlands', '+33 France', '+44 United Kingdom', '+49 Germany', '+421 Slovakia', '+81 Japan'].map((country, i) => (
|
|
71
|
-
<Dropdown.Item key={country} index={i} label={country} />
|
|
72
|
-
))}
|
|
73
|
-
<Dropdown.Empty>No countries found</Dropdown.Empty>
|
|
74
|
-
</Dropdown.Content>
|
|
75
|
-
</Dropdown.Menu>
|
|
76
|
-
}
|
|
77
|
-
/>
|
|
78
|
-
</div>
|
|
79
|
-
|
|
80
|
-
## Compact adornments
|
|
81
|
-
|
|
82
|
-
A compact field steps its adornments and actions down with it.
|
|
83
|
-
|
|
84
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
85
|
-
<PasswordDemo size="compact" variant="bordered" placeholder="Password" />
|
|
86
|
-
<Input size="compact" variant="bordered" endAdornment="EUR" defaultValue="1,200" />
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
## Density without size
|
|
90
|
-
|
|
91
|
-
`size` is a step of the size ladder, not the native `<input size>` width. Leave it off and the surrounding SizeProvider sets the height: one provider makes a whole form compact, with nothing on each field.
|
|
92
|
-
|
|
93
|
-
```tsx
|
|
94
|
-
// A host whose props keep the native `size` attribute: drop it, let the provider decide.
|
|
95
|
-
function TextField({ size: _nativeSize, ...props }) {
|
|
96
|
-
return <Input {...props} />
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
<SizeProvider size="compact">
|
|
100
|
-
<TextField size={20} placeholder="Height from the provider" />
|
|
101
|
-
</SizeProvider>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
<SizeProvider size="compact">
|
|
105
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
106
|
-
<Input variant="bordered" placeholder="Compact from the provider" />
|
|
107
|
-
<Input variant="bordered" icon={Mail} placeholder="So is this one" />
|
|
108
|
-
</div>
|
|
109
|
-
</SizeProvider>
|
|
110
|
-
|
|
111
|
-
# States
|
|
112
|
-
|
|
113
|
-
## Read-only
|
|
114
|
-
|
|
115
|
-
`readOnly` keeps the value selectable and copyable; hover shows the ring, but the fill never lifts.
|
|
116
|
-
|
|
117
|
-
<div className="flex flex-col gap-3 w-72 max-w-full">
|
|
118
|
-
<Input readOnly defaultValue="INV-2026-0042" />
|
|
119
|
-
<Input readOnly variant="bordered" icon={Mail} defaultValue="billing@example.com" />
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
## Invalid
|
|
123
|
-
|
|
124
|
-
`invalid` turns the field destructive.
|
|
125
|
-
|
|
126
|
-
<div className="flex flex-col gap-1 w-72 max-w-full">
|
|
127
|
-
<Label htmlFor="input-invalid" invalid>
|
|
128
|
-
Email
|
|
129
|
-
</Label>
|
|
130
|
-
<Input id="input-invalid" placeholder="you@example.com" icon={Mail} defaultValue="bad@" invalid />
|
|
131
|
-
</div>
|
|
132
|
-
|
|
133
|
-
# Group
|
|
134
|
-
|
|
135
|
-
`InputGroup` stacks labelled fields; the hover highlight follows the pointer from field to field.
|
|
136
|
-
|
|
137
|
-
<InputGroup>
|
|
138
|
-
<InputGroup.Field index={0} label="Name" placeholder="Your name" />
|
|
139
|
-
<InputGroup.Field index={1} label="Email" placeholder="you@example.com" icon={Mail} />
|
|
140
|
-
</InputGroup>
|
|
141
|
-
|
|
142
|
-
## Group with a Textarea
|
|
143
|
-
|
|
144
|
-
A field's children replace its Input: a `Textarea` joins the group's hover and takes the field's error.
|
|
145
|
-
|
|
146
|
-
<InputGroup>
|
|
147
|
-
<InputGroup.Field index={0} label="Subject" placeholder="What's it about?" />
|
|
148
|
-
<InputGroup.Field index={1} label="Message">
|
|
149
|
-
<Textarea placeholder="Write your message" />
|
|
150
|
-
</InputGroup.Field>
|
|
151
|
-
</InputGroup>
|
|
152
|
-
|
|
153
|
-
## Group Error
|
|
154
|
-
|
|
155
|
-
An `error` message renders below the field and marks it invalid.
|
|
156
|
-
|
|
157
|
-
<InputGroup>
|
|
158
|
-
<InputGroup.Field
|
|
159
|
-
index={0}
|
|
160
|
-
label="Email"
|
|
161
|
-
placeholder="you@example.com"
|
|
162
|
-
icon={Mail}
|
|
163
|
-
defaultValue="bad@"
|
|
164
|
-
error="Please enter a valid email address."
|
|
165
|
-
/>
|
|
166
|
-
</InputGroup>
|