@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,69 +0,0 @@
|
|
|
1
|
-
import NumberInput from './index'
|
|
2
|
-
import Field from '../field'
|
|
3
|
-
|
|
4
|
-
# Basics
|
|
5
|
-
|
|
6
|
-
## Number input
|
|
7
|
-
|
|
8
|
-
Type a number, or step it with minus and plus. Hold a button to repeat; the arrow keys step too, Shift by ten.
|
|
9
|
-
|
|
10
|
-
<div className="w-56 max-w-full">
|
|
11
|
-
<NumberInput variant="bordered" defaultValue={4} min={0} max={20} inputProps={{ 'aria-label': 'Quantity' }} />
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
## Formats
|
|
15
|
-
|
|
16
|
-
`format` takes `Intl.NumberFormat` options and `locale` the locale. Typing in the shown form parses back.
|
|
17
|
-
|
|
18
|
-
<div className="flex flex-col gap-3 w-56 max-w-full">
|
|
19
|
-
<NumberInput variant="bordered" defaultValue={1234.5} format={{ style: 'currency', currency: 'EUR' }} locale="en-US" inputProps={{ 'aria-label': 'Price in euros, US format' }} />
|
|
20
|
-
<NumberInput variant="bordered" defaultValue={1234.5} format={{ style: 'currency', currency: 'EUR' }} locale="sk-SK" inputProps={{ 'aria-label': 'Price in euros, Slovak format' }} />
|
|
21
|
-
<NumberInput variant="bordered" defaultValue={0.25} step={0.05} format={{ style: 'percent' }} inputProps={{ 'aria-label': 'Discount' }} />
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
## Units and scrubbing
|
|
25
|
-
|
|
26
|
-
`endAdornment` holds a unit. With `scrub`, the start adornment is a handle: drag it sideways to change the value.
|
|
27
|
-
|
|
28
|
-
<div className="flex flex-col gap-3 w-56 max-w-full">
|
|
29
|
-
<NumberInput variant="bordered" defaultValue={72} endAdornment="kg" inputProps={{ 'aria-label': 'Weight in kilograms' }} />
|
|
30
|
-
<NumberInput variant="bordered" defaultValue={320} min={0} startAdornment="W" scrub stepper={false} inputProps={{ 'aria-label': 'Width' }} />
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
## Compact
|
|
34
|
-
|
|
35
|
-
The compact step shrinks the box, the text and the steppers together.
|
|
36
|
-
|
|
37
|
-
<div className="w-44 max-w-full">
|
|
38
|
-
<NumberInput size="compact" variant="bordered" defaultValue={10} step={5} inputProps={{ 'aria-label': 'Spacing' }} />
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
# Composition
|
|
42
|
-
|
|
43
|
-
## In a Field
|
|
44
|
-
|
|
45
|
-
Inside a Field it is labelled and takes the field's state: here invalid, with its message.
|
|
46
|
-
|
|
47
|
-
<Field invalid className="w-56 max-w-full">
|
|
48
|
-
<Field.Label>Guests</Field.Label>
|
|
49
|
-
<NumberInput defaultValue={12} max={10} inputProps={{ 'aria-label': 'Guests' }} />
|
|
50
|
-
<Field.Error>The room seats ten.</Field.Error>
|
|
51
|
-
</Field>
|
|
52
|
-
|
|
53
|
-
## Input props
|
|
54
|
-
|
|
55
|
-
`inputProps` goes onto the `<input>` itself, after the field's own, so an accessible name, `autoFocus`, `autoComplete`, `inputMode` or a key handler reaches it. `onValueChange` also hears Base UI's change details; `reason` tells typing from a stepper press.
|
|
56
|
-
|
|
57
|
-
<div className="w-56 max-w-full">
|
|
58
|
-
<NumberInput variant="bordered" defaultValue={2} min={0} inputProps={{ 'aria-label': 'Seats', 'aria-describedby': 'seats-help', autoComplete: 'off', inputMode: 'numeric' }} />
|
|
59
|
-
<p id="seats-help" className="mt-1 text-caption text-muted-foreground">Described by this line.</p>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
# States
|
|
63
|
-
|
|
64
|
-
Disabled dims the field and its steppers; read-only hides the steppers and keeps the value selectable.
|
|
65
|
-
|
|
66
|
-
<div className="flex flex-col gap-3 w-56 max-w-full">
|
|
67
|
-
<NumberInput variant="bordered" defaultValue={3} disabled inputProps={{ 'aria-label': 'Disabled count' }} />
|
|
68
|
-
<NumberInput variant="bordered" defaultValue={3} readOnly inputProps={{ 'aria-label': 'Read-only count' }} />
|
|
69
|
-
</div>
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Local addition (not part of Fluid Functionalism): a number field on Base
|
|
3
|
-
* UI's NumberField, drawn on the shared field box (`useFieldBox` in
|
|
4
|
-
* `lib/field-classes.ts`) like Input, with its steppers as field actions
|
|
5
|
-
* (`FIELD_ACTION_BOX` / `FIELD_ACTION_END` in `lib/field-variants.ts`).
|
|
6
|
-
* `inputProps` reaches the `<input>` (last, so `aria-*`, `autoFocus`, handlers and `id`
|
|
7
|
-
* win), and `onValueChange` hears Base UI's change details as a second argument.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { NumberField, type NumberFieldRootChangeEventDetails } from '@base-ui/react/number-field'
|
|
11
|
-
import { forwardRef, type InputHTMLAttributes, type ReactNode, useRef } from 'react'
|
|
12
|
-
import {
|
|
13
|
-
FIELD_ACTION_BOX,
|
|
14
|
-
FIELD_ACTION_END,
|
|
15
|
-
FIELD_ACTION_RADIUS,
|
|
16
|
-
type FieldVariant,
|
|
17
|
-
fieldActionClasses,
|
|
18
|
-
focusControlOnPress,
|
|
19
|
-
useFieldBox,
|
|
20
|
-
} from '../../../lib/field-classes'
|
|
21
|
-
import { useIcon } from '../../../lib/icon-context'
|
|
22
|
-
import { useShape } from '../../../lib/shape-context'
|
|
23
|
-
import type { SizeVariant } from '../../../lib/size-context'
|
|
24
|
-
import { cn } from '../../../lib/utils'
|
|
25
|
-
import { InputAdornment } from '../input'
|
|
26
|
-
|
|
27
|
-
interface NumberInputProps {
|
|
28
|
-
/** Controlled value; `null` while the field is empty. Pair with `onValueChange`. */
|
|
29
|
-
value?: number | null
|
|
30
|
-
/** Initial value when uncontrolled. Empty when unset. */
|
|
31
|
-
defaultValue?: number
|
|
32
|
-
/** Called with the new value as it changes (typing, steppers, arrow keys, scrubbing); `null` when cleared. The second argument is Base UI's change details: `reason` names the cause (`"input-change"`, `"keyboard"`, `"increment-press"`, `"scrub"`, …) and `event` the DOM event. */
|
|
33
|
-
onValueChange?: (value: number | null, details: NumberFieldRootChangeEventDetails) => void
|
|
34
|
-
/** Called once a change is done: on blur after typing, on release after a stepper press or a scrub. */
|
|
35
|
-
onValueCommitted?: (value: number | null) => void
|
|
36
|
-
/** Lowest value the steppers, arrow keys and blur clamp to. */
|
|
37
|
-
min?: number
|
|
38
|
-
/** Highest value the steppers, arrow keys and blur clamp to. */
|
|
39
|
-
max?: number
|
|
40
|
-
/** Amount a stepper press or an arrow key adds. Defaults to `1`. */
|
|
41
|
-
step?: number
|
|
42
|
-
/** Amount with Alt held. Defaults to `0.1`. */
|
|
43
|
-
smallStep?: number
|
|
44
|
-
/** Amount with Shift held. Defaults to `10`. */
|
|
45
|
-
largeStep?: number
|
|
46
|
-
/** How the value is shown and read back: `Intl.NumberFormat` options, e.g. `{ style: 'currency', currency: 'EUR' }` or `{ style: 'percent' }`. */
|
|
47
|
-
format?: Intl.NumberFormatOptions
|
|
48
|
-
/** Locale for formatting and parsing (`"sk-SK"` writes `1 234,5`). Defaults to the browser's. */
|
|
49
|
-
locale?: Intl.LocalesArgument
|
|
50
|
-
/** Placeholder text while empty. */
|
|
51
|
-
placeholder?: string
|
|
52
|
-
/** Shows the minus and plus buttons. Defaults to `true`. */
|
|
53
|
-
stepper?: boolean
|
|
54
|
-
/** Turns `startAdornment` into a scrub handle: drag it sideways to change the value. Defaults to `false`. */
|
|
55
|
-
scrub?: boolean
|
|
56
|
-
/** Lets the mouse wheel change the value while the field is focused and hovered. Defaults to `false`. */
|
|
57
|
-
wheel?: boolean
|
|
58
|
-
/** Content before the number: a label such as `"W"` (a scrub handle with `scrub`), a currency sign, an icon. */
|
|
59
|
-
startAdornment?: ReactNode
|
|
60
|
-
/** Content after the number, before the steppers: a unit such as `"kg"`. */
|
|
61
|
-
endAdornment?: ReactNode
|
|
62
|
-
/** Accessible name of the minus button. Defaults to `"Decrease"`. */
|
|
63
|
-
decrementLabel?: string
|
|
64
|
-
/** Accessible name of the plus button. Defaults to `"Increase"`. */
|
|
65
|
-
incrementLabel?: string
|
|
66
|
-
/** Names the value when the form is submitted. */
|
|
67
|
-
name?: string
|
|
68
|
-
/** Id of the input, for a `Label`'s `htmlFor`. Inside a Field it is wired for you. */
|
|
69
|
-
id?: string
|
|
70
|
-
/** Marks the value required. Defaults to the surrounding Field's `required`. */
|
|
71
|
-
required?: boolean
|
|
72
|
-
/** Framed at rest, or invisible until hovered or focused. Defaults to `"borderless"`. */
|
|
73
|
-
variant?: FieldVariant
|
|
74
|
-
/** Marks the value invalid: the field turns destructive and sets `aria-invalid`. Defaults to `false`. */
|
|
75
|
-
invalid?: boolean
|
|
76
|
-
/** Disables the field and its steppers. Defaults to `false`. */
|
|
77
|
-
disabled?: boolean
|
|
78
|
-
/** Shows the value without letting it change; the steppers hide. Defaults to `false`. */
|
|
79
|
-
readOnly?: boolean
|
|
80
|
-
/** Pins the field to one step of the size ladder (36px default, 28px compact). Defaults to the surrounding SizeProvider. */
|
|
81
|
-
size?: SizeVariant
|
|
82
|
-
/** Classes for the ringed box. */
|
|
83
|
-
className?: string
|
|
84
|
-
/** Props for the `<input>` itself, applied last so they win: `aria-label`, `aria-describedby`, `autoFocus`, `onKeyDown`, `id`, `autoComplete`, `inputMode`. Use the root `name`; a `name` here posts the formatted text. `disabled`, `required`, `readOnly` and `type` stay with the root props and the surrounding Field; a `className` joins the input's own. */
|
|
85
|
-
inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size'>
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Number field with steppers, formatting and an optional scrub handle.
|
|
90
|
-
*
|
|
91
|
-
* It sits on the same ground as Input: bare at rest (or framed with
|
|
92
|
-
* `variant="bordered"`), a muted wash on hover, the card on focus, a
|
|
93
|
-
* destructive ring when `invalid`. Minus and plus sit inside the ring at the
|
|
94
|
-
* end; holding one repeats, the arrow keys step (Shift for `largeStep`, Alt
|
|
95
|
-
* for `smallStep`), and both stop at `min` / `max`. `format` takes
|
|
96
|
-
* `Intl.NumberFormat` options and `locale` the locale, so a value reads
|
|
97
|
-
* `€1,234.50` or `1 234,5 %` and typing in that form parses back. With
|
|
98
|
-
* `scrub`, the start adornment becomes a handle: drag it sideways to change
|
|
99
|
-
* the value, as in a design tool. The value is a number, or `null` while
|
|
100
|
-
* empty: uncontrolled with `defaultValue`, controlled with `value` +
|
|
101
|
-
* `onValueChange`. Behavior comes from Base UI's NumberField; inside a Field
|
|
102
|
-
* it is labelled and takes the field's state.
|
|
103
|
-
*
|
|
104
|
-
* @example {@include ./examples.mdx}
|
|
105
|
-
*/
|
|
106
|
-
const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
|
|
107
|
-
(
|
|
108
|
-
{
|
|
109
|
-
value,
|
|
110
|
-
defaultValue,
|
|
111
|
-
onValueChange,
|
|
112
|
-
onValueCommitted,
|
|
113
|
-
format,
|
|
114
|
-
locale,
|
|
115
|
-
placeholder,
|
|
116
|
-
stepper = true,
|
|
117
|
-
scrub = false,
|
|
118
|
-
wheel = false,
|
|
119
|
-
startAdornment,
|
|
120
|
-
endAdornment,
|
|
121
|
-
decrementLabel = 'Decrease',
|
|
122
|
-
incrementLabel = 'Increase',
|
|
123
|
-
id,
|
|
124
|
-
variant = 'borderless',
|
|
125
|
-
invalid,
|
|
126
|
-
disabled,
|
|
127
|
-
readOnly,
|
|
128
|
-
required,
|
|
129
|
-
size,
|
|
130
|
-
className,
|
|
131
|
-
inputProps,
|
|
132
|
-
...props
|
|
133
|
-
},
|
|
134
|
-
ref,
|
|
135
|
-
) => {
|
|
136
|
-
const inputRef = useRef<HTMLInputElement | null>(null)
|
|
137
|
-
const box = useFieldBox({ variant, invalid, disabled, readOnly, required, size })
|
|
138
|
-
const shape = useShape()
|
|
139
|
-
const Minus = useIcon('minus')
|
|
140
|
-
const Plus = useIcon('plus')
|
|
141
|
-
const Arrows = useIcon('chevrons-up-down')
|
|
142
|
-
const stepClasses = cn(fieldActionClasses, FIELD_ACTION_BOX[box.size.variant], FIELD_ACTION_RADIUS[shape.variant])
|
|
143
|
-
|
|
144
|
-
const start = startAdornment != null && (
|
|
145
|
-
<InputAdornment size={size}>
|
|
146
|
-
{scrub ? (
|
|
147
|
-
<NumberField.ScrubArea className="cursor-ew-resize select-none">
|
|
148
|
-
{startAdornment}
|
|
149
|
-
{/* The pointer is locked while scrubbing; this stands in for it. */}
|
|
150
|
-
<NumberField.ScrubAreaCursor className="text-foreground">
|
|
151
|
-
<Arrows size={box.size.icon} strokeWidth={2} className="rotate-90" />
|
|
152
|
-
</NumberField.ScrubAreaCursor>
|
|
153
|
-
</NumberField.ScrubArea>
|
|
154
|
-
) : (
|
|
155
|
-
startAdornment
|
|
156
|
-
)}
|
|
157
|
-
</InputAdornment>
|
|
158
|
-
)
|
|
159
|
-
|
|
160
|
-
return (
|
|
161
|
-
<NumberField.Root
|
|
162
|
-
id={id}
|
|
163
|
-
value={value}
|
|
164
|
-
defaultValue={defaultValue}
|
|
165
|
-
onValueChange={(next, details) => onValueChange?.(next, details)}
|
|
166
|
-
onValueCommitted={next => onValueCommitted?.(next)}
|
|
167
|
-
format={format}
|
|
168
|
-
locale={locale}
|
|
169
|
-
allowWheelScrub={wheel}
|
|
170
|
-
disabled={box.disabled}
|
|
171
|
-
readOnly={box.readOnly}
|
|
172
|
-
required={box.required}
|
|
173
|
-
{...props}
|
|
174
|
-
>
|
|
175
|
-
<NumberField.Group
|
|
176
|
-
onMouseDown={focusControlOnPress(inputRef)}
|
|
177
|
-
{...box.props}
|
|
178
|
-
className={cn(box.props.className, 'flex items-center', box.size.gap, box.size.control, className)}
|
|
179
|
-
>
|
|
180
|
-
{start}
|
|
181
|
-
<NumberField.Input
|
|
182
|
-
ref={node => {
|
|
183
|
-
inputRef.current = node
|
|
184
|
-
if (typeof ref === 'function') ref(node)
|
|
185
|
-
else if (ref) ref.current = node
|
|
186
|
-
}}
|
|
187
|
-
placeholder={placeholder}
|
|
188
|
-
aria-invalid={box.invalid || undefined}
|
|
189
|
-
{...inputProps}
|
|
190
|
-
className={cn(
|
|
191
|
-
'w-full min-w-0 rounded-none bg-transparent text-foreground tabular-nums placeholder:text-muted-foreground outline-none font-[inherit] weight-normal',
|
|
192
|
-
box.size.text,
|
|
193
|
-
inputProps?.className,
|
|
194
|
-
)}
|
|
195
|
-
/>
|
|
196
|
-
<InputAdornment size={size}>{endAdornment}</InputAdornment>
|
|
197
|
-
{stepper && !box.readOnly && (
|
|
198
|
-
// The steppers sit side by side, the last 4px inside the ring.
|
|
199
|
-
<span className="flex shrink-0 items-center">
|
|
200
|
-
<NumberField.Decrement aria-label={decrementLabel} className={stepClasses}>
|
|
201
|
-
<Minus size={box.size.icon} strokeWidth={1.5} />
|
|
202
|
-
</NumberField.Decrement>
|
|
203
|
-
<NumberField.Increment
|
|
204
|
-
aria-label={incrementLabel}
|
|
205
|
-
className={cn(stepClasses, FIELD_ACTION_END[box.size.variant])}
|
|
206
|
-
>
|
|
207
|
-
<Plus size={box.size.icon} strokeWidth={1.5} />
|
|
208
|
-
</NumberField.Increment>
|
|
209
|
-
</span>
|
|
210
|
-
)}
|
|
211
|
-
</NumberField.Group>
|
|
212
|
-
</NumberField.Root>
|
|
213
|
-
)
|
|
214
|
-
},
|
|
215
|
-
)
|
|
216
|
-
|
|
217
|
-
NumberInput.displayName = 'NumberInput'
|
|
218
|
-
|
|
219
|
-
export type { NumberInputProps }
|
|
220
|
-
export { NumberInput }
|
|
221
|
-
export default NumberInput
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import Radio from './index'
|
|
2
|
-
import { Label } from '../input'
|
|
3
|
-
|
|
4
|
-
# Basic
|
|
5
|
-
|
|
6
|
-
One option at a time; the selected background follows the pick.
|
|
7
|
-
|
|
8
|
-
<Radio.Group defaultSelectedIndex={0}>
|
|
9
|
-
{['Option A', 'Option B', 'Option C'].map(label => (
|
|
10
|
-
<Radio key={label} label={label} />
|
|
11
|
-
))}
|
|
12
|
-
</Radio.Group>
|
|
13
|
-
|
|
14
|
-
# Compact
|
|
15
|
-
|
|
16
|
-
`size="compact"` pins every row to the 28px step of the size ladder.
|
|
17
|
-
|
|
18
|
-
<Radio.Group size="compact" defaultSelectedIndex={1}>
|
|
19
|
-
{['Option A', 'Option B', 'Option C'].map(label => (
|
|
20
|
-
<Radio key={label} label={label} />
|
|
21
|
-
))}
|
|
22
|
-
</Radio.Group>
|
|
23
|
-
|
|
24
|
-
# By value
|
|
25
|
-
|
|
26
|
-
Give rows a `value` and select by it; the group then renders Base UI radios
|
|
27
|
-
for form integration.
|
|
28
|
-
|
|
29
|
-
<Radio.Group defaultValue="weekly">
|
|
30
|
-
<Radio value="daily" label="Daily digest" />
|
|
31
|
-
<Radio value="weekly" label="Weekly summary" />
|
|
32
|
-
<Radio value="never" label="Never" />
|
|
33
|
-
</Radio.Group>
|
|
34
|
-
|
|
35
|
-
# Bare
|
|
36
|
-
|
|
37
|
-
A `Radio` without a `label` is just the circle, picked by its `value`. Lay bare radios out however you like inside a value-mode group, here with a description line each; the group draws no rows of its own and the arrow keys move between the circles.
|
|
38
|
-
|
|
39
|
-
<Radio.Group defaultValue="standard" aria-label="Shipping" className="w-80 max-w-full gap-3">
|
|
40
|
-
<div className="flex items-start gap-3">
|
|
41
|
-
<Radio id="ship-standard" value="standard" className="mt-0.5" />
|
|
42
|
-
<div className="flex flex-col gap-1">
|
|
43
|
-
<Label htmlFor="ship-standard">Standard</Label>
|
|
44
|
-
<span className="text-caption text-muted-foreground">4–6 business days</span>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
<div className="flex items-start gap-3">
|
|
48
|
-
<Radio id="ship-express" value="express" className="mt-0.5" />
|
|
49
|
-
<div className="flex flex-col gap-1">
|
|
50
|
-
<Label htmlFor="ship-express">Express</Label>
|
|
51
|
-
<span className="text-caption text-muted-foreground">1–2 business days</span>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
<div className="flex items-start gap-3">
|
|
55
|
-
<Radio id="ship-pickup" value="pickup" disabled className="mt-0.5" />
|
|
56
|
-
<div className="flex flex-col gap-1">
|
|
57
|
-
<Label htmlFor="ship-pickup">Pick up in store</Label>
|
|
58
|
-
<span className="text-caption text-muted-foreground">Not available for this order</span>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</Radio.Group>
|
|
62
|
-
|
|
63
|
-
# Disabled
|
|
64
|
-
|
|
65
|
-
`disabled` on a row dims it and the hover and arrow keys skip it; on the group it turns every radio off.
|
|
66
|
-
|
|
67
|
-
<div className="flex flex-col gap-3">
|
|
68
|
-
<Radio.Group defaultValue="monthly">
|
|
69
|
-
<Radio value="monthly" label="Monthly" />
|
|
70
|
-
<Radio value="yearly" label="Yearly (coming soon)" disabled />
|
|
71
|
-
<Radio value="lifetime" label="Lifetime" />
|
|
72
|
-
</Radio.Group>
|
|
73
|
-
<Radio.Group defaultValue="monthly" disabled>
|
|
74
|
-
<Radio value="monthly" label="Monthly" />
|
|
75
|
-
<Radio value="yearly" label="Yearly" />
|
|
76
|
-
</Radio.Group>
|
|
77
|
-
</div>
|