@justanarthur/modo-ui 0.6.0-canary.8 → 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-4y816hwp.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-t2a3qmy9.js → components-1z6tdadk.js} +24 -40
- package/dist/shared/{components-qs4rkqsj.js → components-27nnvrwe.js} +14 -15
- package/dist/shared/{components-av5t26rc.js → components-2dxkv6zm.js} +7 -8
- package/dist/shared/{components-wqrvqq5p.js → components-2ecg8svx.js} +152 -234
- package/dist/shared/{components-3ydr2fqe.js → components-2ph6t61s.js} +34 -37
- package/dist/shared/{components-6gk118w3.js → components-39jq9va1.js} +24 -29
- package/dist/shared/components-3ky44908.js +9 -0
- package/dist/shared/{components-y1qvbawa.js → components-3mkepka5.js} +25 -28
- package/dist/shared/{components-xqszvkj4.js → components-4700p9kz.js} +22 -24
- package/dist/shared/{components-yhgq0qxx.js → components-59efxjd9.js} +12 -13
- package/dist/shared/{components-9j9abkct.js → components-5vgpnxgy.js} +27 -51
- package/dist/shared/{components-8tt3xbb5.js → components-5xc2j8jz.js} +18 -19
- package/dist/shared/{components-jymmaevv.js → components-6p8tfcd6.js} +29 -57
- package/dist/shared/{components-4nck8acq.js → components-7r3etddy.js} +54 -19
- package/dist/shared/{components-skfd7kff.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-vkwq2k96.js → components-b3c5et5b.js} +38 -49
- package/dist/shared/{components-rrbpmfx4.js → components-c6s6b43g.js} +2 -3
- package/dist/shared/{components-pw06rbxq.js → components-chacnk61.js} +19 -19
- package/dist/shared/{components-71nbt03m.js → components-cv16mryv.js} +7 -26
- package/dist/shared/{components-eqze3y30.js → components-d6xtjht3.js} +30 -35
- package/dist/shared/{components-5y5shqfd.js → components-dk0gjr5a.js} +18 -19
- package/dist/shared/{components-khspp26b.js → components-fzrq6tr3.js} +34 -37
- package/dist/shared/{components-km7fhgbk.js → components-gc5vtq2f.js} +30 -66
- package/dist/shared/components-gf5s6ap9.js +42 -0
- package/dist/shared/{components-qqcmtrbv.js → components-gz8zf3ec.js} +55 -56
- package/dist/shared/{components-mattt5jp.js → components-h2ajmhwn.js} +35 -107
- package/dist/shared/{components-awra5sff.js → components-hqeq3w9q.js} +16 -24
- package/dist/shared/{components-5tzhqbcw.js → components-hw9yk32z.js} +24 -36
- package/dist/shared/components-hyq23phv.js +310 -0
- package/dist/shared/{components-8mt5bsv6.js → components-jbbmdr74.js} +22 -41
- package/dist/shared/{components-dcc02hs2.js → components-jjw69c4c.js} +4 -7
- package/dist/shared/{components-2syq4mwc.js → components-jthe1pwb.js} +420 -139
- package/dist/shared/{components-r7q1zm7r.js → components-jwst3vtj.js} +76 -224
- package/dist/shared/{components-qdm3yh26.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-6b0zb8z3.js → components-mjthm1kf.js} +9 -13
- package/dist/shared/{components-2c64r8c9.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-dyae0y7h.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-8rb25gbe.js → components-rr7a6ja9.js} +27 -59
- package/dist/shared/{components-5012r6gr.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-w0xq6q9k.js → components-w1r67ag9.js} +149 -294
- package/dist/shared/{components-z0bqtvcp.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-5sxjeh6h.js → components-y9y0g8er.js} +28 -52
- package/dist/shared/components-ypp01w3p.js +986 -0
- package/dist/shared/{components-t50hrswb.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-124epb7f.js +0 -53
- package/dist/shared/components-1kab3j44.js +0 -337
- package/dist/shared/components-26snnbs9.js +0 -322
- 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-7zkhz3r8.js +0 -399
- package/dist/shared/components-8v644a0s.js +0 -298
- package/dist/shared/components-a4evvq8h.js +0 -271
- 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-c9yr4ed1.js +0 -44
- package/dist/shared/components-cwg1d0w6.js +0 -254
- 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-ej4r7wmj.js +0 -482
- package/dist/shared/components-f7h57m6t.js +0 -59
- package/dist/shared/components-fejdzvqc.js +0 -448
- 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-mpa2y6x8.js +0 -277
- package/dist/shared/components-mrbaxt8q.js +0 -62
- package/dist/shared/components-pt5ftm4p.js +0 -38
- package/dist/shared/components-rpw4md2b.js +0 -179
- package/dist/shared/components-rtadhd9j.js +0 -64
- package/dist/shared/components-tz4gaf1v.js +0 -23
- package/dist/shared/components-wbbckbw8.js +0 -34
- 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/shared/components-z6dfqtyt.js +0 -1545
- 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 -557
- 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,19 +1,18 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import {
|
|
3
|
-
|
|
4
|
-
} from "./components-
|
|
2
|
+
useShape
|
|
3
|
+
} from "./components-cv16mryv.js";
|
|
5
4
|
import {
|
|
6
5
|
useSizeVariant2
|
|
7
|
-
} from "./components-
|
|
6
|
+
} from "./components-0sn7ypjw.js";
|
|
8
7
|
import {
|
|
9
|
-
|
|
10
|
-
} from "./components-
|
|
11
|
-
import {
|
|
12
|
-
useControllableState2
|
|
13
|
-
} from "./components-tz1fv35x.js";
|
|
8
|
+
useControllableState
|
|
9
|
+
} from "./components-n7mjr357.js";
|
|
14
10
|
import {
|
|
15
11
|
cn2
|
|
16
|
-
} from "./components-
|
|
12
|
+
} from "./components-ezxhrmer.js";
|
|
13
|
+
import {
|
|
14
|
+
spring2
|
|
15
|
+
} from "./components-1v7rxytx.js";
|
|
17
16
|
|
|
18
17
|
// components/inputs/slider/index.tsx
|
|
19
18
|
import { Slider as SliderPrimitive } from "@base-ui/react/slider";
|
|
@@ -76,7 +75,7 @@ function ValueDisplay({
|
|
|
76
75
|
isRange,
|
|
77
76
|
isInteracting
|
|
78
77
|
}) {
|
|
79
|
-
const shape =
|
|
78
|
+
const shape = useShape();
|
|
80
79
|
const [inputValue, setInputValue] = useState("");
|
|
81
80
|
const inputRef = useRef(null);
|
|
82
81
|
useEffect(() => {
|
|
@@ -181,16 +180,18 @@ function ValueDisplay({
|
|
|
181
180
|
]
|
|
182
181
|
});
|
|
183
182
|
}
|
|
184
|
-
function TooltipValue({ value, formatValue, motionX
|
|
185
|
-
const shape =
|
|
183
|
+
function TooltipValue({ value, formatValue, motionX }) {
|
|
184
|
+
const shape = useShape();
|
|
186
185
|
const tooltipX = useTransform(motionX, (x) => x + THUMB_SIZE / 2);
|
|
187
|
-
const tooltipY = useTransform(motionX, (x) => -x);
|
|
188
186
|
return /* @__PURE__ */ jsx(motion.div, {
|
|
189
|
-
className:
|
|
190
|
-
style:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
187
|
+
className: "absolute -translate-x-1/2 pointer-events-none z-20",
|
|
188
|
+
style: {
|
|
189
|
+
x: tooltipX,
|
|
190
|
+
top: -16
|
|
191
|
+
},
|
|
192
|
+
initial: { opacity: 0, y: 4 },
|
|
193
|
+
animate: { opacity: 1, y: 0 },
|
|
194
|
+
exit: { opacity: 0, y: 4, transition: spring2.fast.exit },
|
|
194
195
|
transition: spring2.fast,
|
|
195
196
|
children: /* @__PURE__ */ jsx("span", {
|
|
196
197
|
className: cn2("text-caption text-background tabular-nums whitespace-nowrap bg-foreground px-2 py-1", shape.bg, "weight-medium"),
|
|
@@ -207,7 +208,7 @@ var CompactSlider = forwardRef(({
|
|
|
207
208
|
steps,
|
|
208
209
|
showSteps = false,
|
|
209
210
|
showValue = true,
|
|
210
|
-
valuePosition
|
|
211
|
+
valuePosition = "left",
|
|
211
212
|
formatValue = String,
|
|
212
213
|
label,
|
|
213
214
|
disabled = false,
|
|
@@ -218,20 +219,12 @@ var CompactSlider = forwardRef(({
|
|
|
218
219
|
hideFill = false,
|
|
219
220
|
thumbColor,
|
|
220
221
|
thumbBorderColor,
|
|
221
|
-
orientation = "horizontal",
|
|
222
|
-
onValueCommit,
|
|
223
222
|
className,
|
|
224
|
-
"aria-label": ariaLabel,
|
|
225
223
|
...props
|
|
226
224
|
}, ref) => {
|
|
227
|
-
const vertical = orientation === "vertical";
|
|
228
|
-
const valuePosition = valuePositionProp ?? (vertical ? "top" : "left");
|
|
229
|
-
const onValueCommitRef = useRef(onValueCommit);
|
|
230
|
-
onValueCommitRef.current = onValueCommit;
|
|
231
|
-
const latestValue = useRef(value);
|
|
232
225
|
const isRange = Array.isArray(value);
|
|
233
226
|
const values = toRadixValue(value);
|
|
234
|
-
const shape =
|
|
227
|
+
const shape = useShape();
|
|
235
228
|
const stepsKey = steps ? steps.join(",") : "";
|
|
236
229
|
const stepValues = useMemo(() => {
|
|
237
230
|
if (!stepsKey)
|
|
@@ -277,31 +270,16 @@ var CompactSlider = forwardRef(({
|
|
|
277
270
|
const fillWidthSingle = useTransform(motionX0, (x) => x + THUMB_SIZE / 2 - TRACK_INSET);
|
|
278
271
|
const fillWidthRange = useTransform([motionX0, motionX1], ([x0, x1]) => x1 - x0);
|
|
279
272
|
const fillWidth = isRange ? fillWidthRange : fillWidthSingle;
|
|
280
|
-
const thumbY0 = useTransform(motionX0, (x) => -x);
|
|
281
|
-
const thumbY1 = useTransform(motionX1, (x) => -x);
|
|
282
|
-
const maskDir = vertical ? "to top" : "to right";
|
|
283
273
|
const stepDotsMaskSingle = useTransform(motionX0, (x) => {
|
|
284
274
|
const edge = x + THUMB_SIZE / 2;
|
|
285
|
-
return `linear-gradient(
|
|
275
|
+
return `linear-gradient(to right, transparent ${edge}px, black ${edge + 2}px)`;
|
|
286
276
|
});
|
|
287
277
|
const stepDotsMaskRange = useTransform([motionX0, motionX1], ([x0, x1]) => {
|
|
288
278
|
const left = x0 + THUMB_SIZE / 2;
|
|
289
279
|
const right = x1 + THUMB_SIZE / 2;
|
|
290
|
-
return `linear-gradient(
|
|
280
|
+
return `linear-gradient(to right, black ${left - 2}px, transparent ${left}px, transparent ${right}px, black ${right + 2}px)`;
|
|
291
281
|
});
|
|
292
282
|
const stepDotsMask = isRange ? stepDotsMaskRange : stepDotsMaskSingle;
|
|
293
|
-
const measure = useCallback((clientX, clientY) => {
|
|
294
|
-
const trackEl = trackRef.current;
|
|
295
|
-
if (!trackEl)
|
|
296
|
-
return null;
|
|
297
|
-
const rect = trackEl.getBoundingClientRect();
|
|
298
|
-
const length = vertical ? trackEl.offsetHeight : trackEl.offsetWidth;
|
|
299
|
-
const visual = vertical ? rect.height : rect.width;
|
|
300
|
-
if (length <= 0 || visual <= 0)
|
|
301
|
-
return null;
|
|
302
|
-
const scale = visual / length;
|
|
303
|
-
return { length, pos: (vertical ? rect.bottom - clientY : clientX - rect.left) / scale };
|
|
304
|
-
}, [vertical]);
|
|
305
283
|
const computeHoverPreview = useCallback((cursorX, trackWidth) => {
|
|
306
284
|
const usable = trackWidth - THUMB_SIZE;
|
|
307
285
|
const rawPx = cursorX - THUMB_SIZE / 2;
|
|
@@ -325,7 +303,7 @@ var CompactSlider = forwardRef(({
|
|
|
325
303
|
const el = trackRef.current;
|
|
326
304
|
if (!el || initialSyncDone.current)
|
|
327
305
|
return;
|
|
328
|
-
const w =
|
|
306
|
+
const w = el.offsetWidth;
|
|
329
307
|
trackWidthRef.current = w;
|
|
330
308
|
const px0 = valueToPixel(values[0], min, max, w);
|
|
331
309
|
motionX0.set(px0);
|
|
@@ -341,7 +319,7 @@ var CompactSlider = forwardRef(({
|
|
|
341
319
|
if (!el)
|
|
342
320
|
return;
|
|
343
321
|
const ro = new ResizeObserver(([entry]) => {
|
|
344
|
-
const w =
|
|
322
|
+
const w = entry.contentRect.width;
|
|
345
323
|
trackWidthRef.current = w;
|
|
346
324
|
if (!dragging.current && initialSyncDone.current) {
|
|
347
325
|
const v = valuesRef.current;
|
|
@@ -357,7 +335,7 @@ var CompactSlider = forwardRef(({
|
|
|
357
335
|
});
|
|
358
336
|
ro.observe(el);
|
|
359
337
|
return () => ro.disconnect();
|
|
360
|
-
}, [isRange,
|
|
338
|
+
}, [isRange, motionX0, motionX1]);
|
|
361
339
|
const valuesKey = values.join(",");
|
|
362
340
|
useEffect(() => {
|
|
363
341
|
if (!initialSyncDone.current)
|
|
@@ -387,10 +365,8 @@ var CompactSlider = forwardRef(({
|
|
|
387
365
|
if (isRange) {
|
|
388
366
|
const newValues = [...values];
|
|
389
367
|
newValues[thumbIndex] = newValue;
|
|
390
|
-
latestValue.current = newValues;
|
|
391
368
|
onChange(newValues);
|
|
392
369
|
} else {
|
|
393
|
-
latestValue.current = newValue;
|
|
394
370
|
onChange(newValue);
|
|
395
371
|
}
|
|
396
372
|
}, [isRange, values, onChange]);
|
|
@@ -401,11 +377,15 @@ var CompactSlider = forwardRef(({
|
|
|
401
377
|
return;
|
|
402
378
|
e.preventDefault();
|
|
403
379
|
e.stopPropagation();
|
|
404
|
-
const
|
|
405
|
-
if (!
|
|
380
|
+
const trackEl = trackRef.current;
|
|
381
|
+
if (!trackEl)
|
|
382
|
+
return;
|
|
383
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
384
|
+
const layoutWidth = trackEl.offsetWidth;
|
|
385
|
+
if (layoutWidth <= 0 || trackRect.width <= 0)
|
|
406
386
|
return;
|
|
407
|
-
const
|
|
408
|
-
const localX =
|
|
387
|
+
const scale = trackRect.width / layoutWidth;
|
|
388
|
+
const localX = (e.clientX - trackRect.left) / scale - THUMB_SIZE / 2;
|
|
409
389
|
const clamped = Math.max(0, Math.min(layoutWidth - THUMB_SIZE, localX));
|
|
410
390
|
if (isRange) {
|
|
411
391
|
const dist0 = Math.abs(clamped - motionX0.get());
|
|
@@ -424,16 +404,20 @@ var CompactSlider = forwardRef(({
|
|
|
424
404
|
const finalValue = pixelToValue(finalPx, min, max, step, layoutWidth, stepValues);
|
|
425
405
|
emitChange(activeDragThumb.current, finalValue);
|
|
426
406
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
427
|
-
}, [disabled, isRange, min, max, step, stepValues, motionX0, motionX1, clampForRange, emitChange
|
|
407
|
+
}, [disabled, isRange, min, max, step, stepValues, motionX0, motionX1, clampForRange, emitChange]);
|
|
428
408
|
const handlePointerMove = useCallback((e) => {
|
|
429
409
|
if (!dragging.current)
|
|
430
410
|
return;
|
|
431
411
|
e.stopPropagation();
|
|
432
|
-
const
|
|
433
|
-
if (!
|
|
412
|
+
const trackEl = trackRef.current;
|
|
413
|
+
if (!trackEl)
|
|
414
|
+
return;
|
|
415
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
416
|
+
const layoutWidth = trackEl.offsetWidth;
|
|
417
|
+
if (layoutWidth <= 0 || trackRect.width <= 0)
|
|
434
418
|
return;
|
|
435
|
-
const
|
|
436
|
-
const localX =
|
|
419
|
+
const scale = trackRect.width / layoutWidth;
|
|
420
|
+
const localX = (e.clientX - trackRect.left) / scale - THUMB_SIZE / 2;
|
|
437
421
|
const clamped = Math.max(0, Math.min(layoutWidth - THUMB_SIZE, localX));
|
|
438
422
|
const motionX = activeDragThumb.current === 0 ? motionX0 : motionX1;
|
|
439
423
|
const snappedValue = pixelToValue(clamped, min, max, step, layoutWidth, stepValues);
|
|
@@ -442,12 +426,11 @@ var CompactSlider = forwardRef(({
|
|
|
442
426
|
motionX.set(finalPx);
|
|
443
427
|
const finalValue = pixelToValue(finalPx, min, max, step, layoutWidth, stepValues);
|
|
444
428
|
emitChange(activeDragThumb.current, finalValue);
|
|
445
|
-
}, [min, max, step, stepValues, motionX0, motionX1, clampForRange, emitChange
|
|
429
|
+
}, [min, max, step, stepValues, motionX0, motionX1, clampForRange, emitChange]);
|
|
446
430
|
const handlePointerUp = useCallback(() => {
|
|
447
431
|
if (!dragging.current)
|
|
448
432
|
return;
|
|
449
433
|
dragging.current = false;
|
|
450
|
-
onValueCommitRef.current?.(latestValue.current);
|
|
451
434
|
setIsPressed(false);
|
|
452
435
|
setHoverPreview(null);
|
|
453
436
|
const tw = trackWidthRef.current;
|
|
@@ -467,16 +450,11 @@ var CompactSlider = forwardRef(({
|
|
|
467
450
|
onChange(mapped[0]);
|
|
468
451
|
}
|
|
469
452
|
}, [isRange, onChange, stepValues]);
|
|
470
|
-
const handleRadixCommit = useCallback((newValues) => {
|
|
471
|
-
const mapped = stepValues ? newValues.map((i) => stepValues[Math.round(i)]) : newValues;
|
|
472
|
-
onValueCommitRef.current?.(isRange ? mapped : mapped[0]);
|
|
473
|
-
}, [isRange, stepValues]);
|
|
474
453
|
const handleStartEdit = useCallback((index) => {
|
|
475
454
|
setEditingIndex(index);
|
|
476
455
|
}, []);
|
|
477
456
|
const handleCommitEdit = useCallback((index, v) => {
|
|
478
457
|
emitChange(index, v);
|
|
479
|
-
onValueCommitRef.current?.(latestValue.current);
|
|
480
458
|
setEditingIndex(null);
|
|
481
459
|
}, [emitChange]);
|
|
482
460
|
const handleCancelEdit = useCallback(() => {
|
|
@@ -492,12 +470,11 @@ var CompactSlider = forwardRef(({
|
|
|
492
470
|
}) : [], [showSteps, min, max, step, stepValues]);
|
|
493
471
|
const isInteracting = isHovered || isPressed;
|
|
494
472
|
const thumbAriaLabel = (index) => {
|
|
495
|
-
const name = ariaLabel || label;
|
|
496
473
|
if (!isRange)
|
|
497
|
-
return
|
|
498
|
-
if (!
|
|
474
|
+
return label;
|
|
475
|
+
if (!label)
|
|
499
476
|
return index === 0 ? "Minimum" : "Maximum";
|
|
500
|
-
return index === 0 ? `${
|
|
477
|
+
return index === 0 ? `${label} minimum` : `${label} maximum`;
|
|
501
478
|
};
|
|
502
479
|
const valueDisplay = showValue && valuePosition !== "tooltip" && /* @__PURE__ */ jsx(ValueDisplay, {
|
|
503
480
|
values,
|
|
@@ -518,16 +495,7 @@ var CompactSlider = forwardRef(({
|
|
|
518
495
|
const motionX = index === 0 ? motionX0 : motionX1;
|
|
519
496
|
return /* @__PURE__ */ jsxs(motion.span, {
|
|
520
497
|
className: "flex items-center justify-center pointer-events-none",
|
|
521
|
-
style:
|
|
522
|
-
width: THUMB_SIZE,
|
|
523
|
-
height: THUMB_SIZE,
|
|
524
|
-
marginLeft: -THUMB_SIZE / 2,
|
|
525
|
-
y: index === 0 ? thumbY0 : thumbY1,
|
|
526
|
-
position: "absolute",
|
|
527
|
-
left: "50%",
|
|
528
|
-
bottom: 0,
|
|
529
|
-
zIndex: 10
|
|
530
|
-
} : {
|
|
498
|
+
style: {
|
|
531
499
|
width: THUMB_SIZE,
|
|
532
500
|
height: THUMB_SIZE,
|
|
533
501
|
marginTop: -THUMB_SIZE / 2,
|
|
@@ -567,13 +535,13 @@ var CompactSlider = forwardRef(({
|
|
|
567
535
|
};
|
|
568
536
|
return /* @__PURE__ */ jsxs("div", {
|
|
569
537
|
ref,
|
|
570
|
-
className: cn2("flex gap-0 select-none touch-none overflow-visible",
|
|
538
|
+
className: cn2("flex flex-col gap-0 w-full select-none touch-none overflow-visible", valuePosition === "left" || valuePosition === "right" ? "flex-row items-center gap-2 mb-2" : "flex-col", disabled && "opacity-50 pointer-events-none", className),
|
|
571
539
|
...props,
|
|
572
540
|
children: [
|
|
573
541
|
(valuePosition === "top" || valuePosition === "left") && valueDisplay,
|
|
574
542
|
/* @__PURE__ */ jsxs("div", {
|
|
575
|
-
className:
|
|
576
|
-
style:
|
|
543
|
+
className: "relative flex-1 overflow-visible",
|
|
544
|
+
style: {
|
|
577
545
|
height: valuePosition === "left" || valuePosition === "right" ? THUMB_SIZE + 16 : THUMB_SIZE + (valuePosition === "tooltip" ? 16 : 0),
|
|
578
546
|
paddingTop: valuePosition === "tooltip" ? 16 : 0
|
|
579
547
|
},
|
|
@@ -585,10 +553,17 @@ var CompactSlider = forwardRef(({
|
|
|
585
553
|
onMouseMove: (e) => {
|
|
586
554
|
if (dragging.current)
|
|
587
555
|
return;
|
|
588
|
-
const
|
|
589
|
-
if (!
|
|
556
|
+
const trackEl = trackRef.current;
|
|
557
|
+
if (!trackEl)
|
|
590
558
|
return;
|
|
591
|
-
|
|
559
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
560
|
+
const layoutWidth = trackEl.offsetWidth;
|
|
561
|
+
if (layoutWidth <= 0 || trackRect.width <= 0)
|
|
562
|
+
return;
|
|
563
|
+
const scale = trackRect.width / layoutWidth;
|
|
564
|
+
const layoutX = (e.clientX - trackRect.left) / scale;
|
|
565
|
+
const clamped = Math.max(0, Math.min(layoutWidth, layoutX));
|
|
566
|
+
computeHoverPreview(clamped, layoutWidth);
|
|
592
567
|
},
|
|
593
568
|
children: [
|
|
594
569
|
showValue && valuePosition === "tooltip" && /* @__PURE__ */ jsxs(AnimatePresence, {
|
|
@@ -596,28 +571,24 @@ var CompactSlider = forwardRef(({
|
|
|
596
571
|
isInteracting && /* @__PURE__ */ jsx(TooltipValue, {
|
|
597
572
|
value: values[0],
|
|
598
573
|
formatValue,
|
|
599
|
-
motionX: motionX0
|
|
600
|
-
vertical
|
|
574
|
+
motionX: motionX0
|
|
601
575
|
}, "tooltip-0"),
|
|
602
576
|
isInteracting && isRange && values[1] !== undefined && /* @__PURE__ */ jsx(TooltipValue, {
|
|
603
577
|
value: values[1],
|
|
604
578
|
formatValue,
|
|
605
|
-
motionX: motionX1
|
|
606
|
-
vertical
|
|
579
|
+
motionX: motionX1
|
|
607
580
|
}, "tooltip-1")
|
|
608
581
|
]
|
|
609
582
|
}),
|
|
610
583
|
/* @__PURE__ */ jsx(SliderPrimitive.Root, {
|
|
611
584
|
value: stepValues ? values.map((v) => nearestStepIndex(v, stepValues)) : values,
|
|
612
585
|
onValueChange: (v) => handleRadixChange(v),
|
|
613
|
-
onValueCommitted: (v) => handleRadixCommit(v),
|
|
614
586
|
min: stepValues ? 0 : min,
|
|
615
587
|
max: stepValues ? stepValues.length - 1 : max,
|
|
616
588
|
step: stepValues ? 1 : step,
|
|
617
|
-
orientation,
|
|
618
589
|
disabled,
|
|
619
590
|
className: "absolute inset-0 opacity-0 pointer-events-none",
|
|
620
|
-
style:
|
|
591
|
+
style: { height: THUMB_SIZE },
|
|
621
592
|
children: /* @__PURE__ */ jsxs(SliderPrimitive.Control, {
|
|
622
593
|
className: "w-full h-full",
|
|
623
594
|
children: [
|
|
@@ -632,7 +603,7 @@ var CompactSlider = forwardRef(({
|
|
|
632
603
|
className: "block outline-none",
|
|
633
604
|
style: { width: THUMB_SIZE, height: THUMB_SIZE },
|
|
634
605
|
onFocus: (e) => {
|
|
635
|
-
if (e.
|
|
606
|
+
if (e.currentTarget.matches(":focus-visible"))
|
|
636
607
|
setFocusedThumb(0);
|
|
637
608
|
},
|
|
638
609
|
onBlur: () => setFocusedThumb((prev) => prev === 0 ? null : prev)
|
|
@@ -644,7 +615,7 @@ var CompactSlider = forwardRef(({
|
|
|
644
615
|
className: "block outline-none",
|
|
645
616
|
style: { width: THUMB_SIZE, height: THUMB_SIZE },
|
|
646
617
|
onFocus: (e) => {
|
|
647
|
-
if (e.
|
|
618
|
+
if (e.currentTarget.matches(":focus-visible"))
|
|
648
619
|
setFocusedThumb(1);
|
|
649
620
|
},
|
|
650
621
|
onBlur: () => setFocusedThumb((prev) => prev === 1 ? null : prev)
|
|
@@ -654,16 +625,16 @@ var CompactSlider = forwardRef(({
|
|
|
654
625
|
}),
|
|
655
626
|
/* @__PURE__ */ jsxs("div", {
|
|
656
627
|
ref: trackRef,
|
|
657
|
-
className:
|
|
658
|
-
style:
|
|
628
|
+
className: "relative w-full cursor-ew-resize py-2",
|
|
629
|
+
style: { height: THUMB_SIZE + 16, opacity: ready ? 1 : 0 },
|
|
659
630
|
onPointerDown: handlePointerDown,
|
|
660
631
|
onPointerMove: handlePointerMove,
|
|
661
632
|
onPointerUp: handlePointerUp,
|
|
662
633
|
onPointerCancel: handlePointerUp,
|
|
663
634
|
children: [
|
|
664
635
|
/* @__PURE__ */ jsx("div", {
|
|
665
|
-
className:
|
|
666
|
-
style:
|
|
636
|
+
className: "absolute cursor-ew-resize",
|
|
637
|
+
style: { left: -8, right: -8, top: 0, bottom: 0 },
|
|
667
638
|
onPointerDown: handlePointerDown,
|
|
668
639
|
onPointerMove: handlePointerMove,
|
|
669
640
|
onPointerUp: handlePointerUp,
|
|
@@ -671,12 +642,15 @@ var CompactSlider = forwardRef(({
|
|
|
671
642
|
}),
|
|
672
643
|
/* @__PURE__ */ jsx(AnimatePresence, {
|
|
673
644
|
children: hoverPreview && showHoverTooltip && !isPressed && valuePosition !== "tooltip" && /* @__PURE__ */ jsx(motion.div, {
|
|
674
|
-
className:
|
|
675
|
-
initial:
|
|
676
|
-
animate:
|
|
677
|
-
exit:
|
|
645
|
+
className: "absolute -translate-x-1/2 pointer-events-none z-20",
|
|
646
|
+
initial: { opacity: 0, y: 4 },
|
|
647
|
+
animate: { opacity: 1, y: 0 },
|
|
648
|
+
exit: { opacity: 0, y: 4, transition: spring2.fast.exit },
|
|
678
649
|
transition: spring2.fast,
|
|
679
|
-
style:
|
|
650
|
+
style: {
|
|
651
|
+
left: hoverPreview.cursorX,
|
|
652
|
+
top: -20
|
|
653
|
+
},
|
|
680
654
|
children: /* @__PURE__ */ jsx("span", {
|
|
681
655
|
className: cn2("text-caption text-background tabular-nums whitespace-nowrap bg-foreground px-2 py-1", shape.bg, "weight-medium"),
|
|
682
656
|
children: formatValue(hoverPreview.snappedValue)
|
|
@@ -686,22 +660,27 @@ var CompactSlider = forwardRef(({
|
|
|
686
660
|
/* @__PURE__ */ jsxs(motion.div, {
|
|
687
661
|
className: cn2("absolute bg-transparent border border-border overflow-hidden rounded-full", trackClassName),
|
|
688
662
|
initial: false,
|
|
689
|
-
animate:
|
|
663
|
+
animate: {
|
|
664
|
+
height: TRACK_BG_HEIGHT,
|
|
665
|
+
top: 8 + (THUMB_SIZE - TRACK_BG_HEIGHT) / 2
|
|
666
|
+
},
|
|
690
667
|
transition: spring2.fast,
|
|
691
668
|
style: {
|
|
692
|
-
|
|
669
|
+
left: TRACK_INSET,
|
|
670
|
+
right: TRACK_INSET,
|
|
693
671
|
...trackStyle
|
|
694
672
|
},
|
|
695
673
|
children: [
|
|
696
674
|
!hideFill && /* @__PURE__ */ jsx(motion.div, {
|
|
697
|
-
className: cn2("absolute bg-selected/50 dark:bg-accent/40",
|
|
675
|
+
className: cn2("absolute h-full bg-selected/50 dark:bg-accent/40", fillClassName),
|
|
698
676
|
style: {
|
|
699
|
-
|
|
677
|
+
left: fillLeft,
|
|
678
|
+
width: fillWidth,
|
|
700
679
|
...fillStyle
|
|
701
680
|
}
|
|
702
681
|
}),
|
|
703
682
|
/* @__PURE__ */ jsx(motion.div, {
|
|
704
|
-
className:
|
|
683
|
+
className: "absolute h-full bg-accent/40 pointer-events-none z-[2]",
|
|
705
684
|
initial: false,
|
|
706
685
|
animate: {
|
|
707
686
|
opacity: hoverPreview && !isPressed ? 1 : 0
|
|
@@ -710,35 +689,26 @@ var CompactSlider = forwardRef(({
|
|
|
710
689
|
opacity: { duration: 0.15 }
|
|
711
690
|
},
|
|
712
691
|
style: {
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
} : {
|
|
717
|
-
left: hoverPreview ? hoverPreview.left - TRACK_INSET : 0,
|
|
718
|
-
width: hoverPreview ? hoverPreview.width : 0
|
|
719
|
-
},
|
|
720
|
-
borderRadius: hoverPreview && hoverPreview.cursorX > hoverPreview.left ? vertical ? "9999px 9999px 0 0" : "0 9999px 9999px 0" : vertical ? "0 0 9999px 9999px" : "9999px 0 0 9999px"
|
|
692
|
+
left: hoverPreview ? hoverPreview.left - TRACK_INSET : 0,
|
|
693
|
+
width: hoverPreview ? hoverPreview.width : 0,
|
|
694
|
+
borderRadius: hoverPreview && hoverPreview.cursorX > hoverPreview.left ? "0 9999px 9999px 0" : "9999px 0 0 9999px"
|
|
721
695
|
}
|
|
722
696
|
})
|
|
723
697
|
]
|
|
724
698
|
}),
|
|
725
699
|
stepDots.length > 0 && /* @__PURE__ */ jsx(motion.div, {
|
|
726
|
-
className:
|
|
700
|
+
className: "absolute left-0 right-0 pointer-events-none",
|
|
727
701
|
style: {
|
|
728
|
-
|
|
702
|
+
top: 8 + (THUMB_SIZE - TRACK_BG_HEIGHT) / 2,
|
|
703
|
+
height: TRACK_BG_HEIGHT,
|
|
729
704
|
WebkitMaskImage: stepDotsMask,
|
|
730
705
|
maskImage: stepDotsMask
|
|
731
706
|
},
|
|
732
707
|
children: stepDots.map(({ value: v, percent }) => /* @__PURE__ */ jsx("div", {
|
|
733
708
|
className: "absolute pointer-events-none flex items-center justify-center",
|
|
734
709
|
style: {
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
left: "50%"
|
|
738
|
-
} : {
|
|
739
|
-
left: `calc(${THUMB_SIZE / 2}px + ${percent} * (100% - ${THUMB_SIZE}px))`,
|
|
740
|
-
top: "50%"
|
|
741
|
-
},
|
|
710
|
+
left: `calc(${THUMB_SIZE / 2}px + ${percent} * (100% - ${THUMB_SIZE}px))`,
|
|
711
|
+
top: "50%",
|
|
742
712
|
width: 0,
|
|
743
713
|
height: 0
|
|
744
714
|
},
|
|
@@ -774,15 +744,10 @@ var ComfortableSlider = forwardRef(({
|
|
|
774
744
|
label,
|
|
775
745
|
formatValue = String,
|
|
776
746
|
disabled = false,
|
|
777
|
-
onValueCommit,
|
|
778
747
|
className,
|
|
779
|
-
"aria-label": ariaLabel,
|
|
780
748
|
...props
|
|
781
749
|
}, ref) => {
|
|
782
750
|
const containerRef = useRef(null);
|
|
783
|
-
const onValueCommitRef = useRef(onValueCommit);
|
|
784
|
-
onValueCommitRef.current = onValueCommit;
|
|
785
|
-
const latestValue = useRef(value);
|
|
786
751
|
const dragging = useRef(false);
|
|
787
752
|
const handleDragging = useRef(false);
|
|
788
753
|
const [isHovered, setIsHovered] = useState(false);
|
|
@@ -791,7 +756,7 @@ var ComfortableSlider = forwardRef(({
|
|
|
791
756
|
const [hoverPreview, setHoverPreview] = useState(null);
|
|
792
757
|
const [showHoverTooltip, setShowHoverTooltip] = useState(false);
|
|
793
758
|
const hoverDelayRef = useRef(null);
|
|
794
|
-
const shape =
|
|
759
|
+
const shape = useShape();
|
|
795
760
|
useEffect(() => {
|
|
796
761
|
if (isHovered) {
|
|
797
762
|
hoverDelayRef.current = setTimeout(() => setShowHoverTooltip(true), 100);
|
|
@@ -896,7 +861,6 @@ var ComfortableSlider = forwardRef(({
|
|
|
896
861
|
dragging.current = true;
|
|
897
862
|
setIsPressed(true);
|
|
898
863
|
const newVal = getValueFromX(e.clientX);
|
|
899
|
-
latestValue.current = newVal;
|
|
900
864
|
onChange(newVal);
|
|
901
865
|
const newPercent = Math.max(0, Math.min(1, (newVal - min) / (max - min)));
|
|
902
866
|
animate(fillPercent, newPercent, spring2.fast);
|
|
@@ -907,7 +871,6 @@ var ComfortableSlider = forwardRef(({
|
|
|
907
871
|
if (!dragging.current)
|
|
908
872
|
return;
|
|
909
873
|
const newVal = getValueFromX(e.clientX);
|
|
910
|
-
latestValue.current = newVal;
|
|
911
874
|
onChange(newVal);
|
|
912
875
|
const newPercent = Math.max(0, Math.min(1, (newVal - min) / (max - min)));
|
|
913
876
|
if (variant === "scrubber") {
|
|
@@ -918,8 +881,6 @@ var ComfortableSlider = forwardRef(({
|
|
|
918
881
|
animate(zeroOffset, newVal === min ? zeroTarget : 0, spring2.fast);
|
|
919
882
|
}, [getValueFromX, onChange, variant, fillPercent, zeroOffset, zeroTarget, min, max]);
|
|
920
883
|
const handlePointerUp = useCallback(() => {
|
|
921
|
-
if (dragging.current)
|
|
922
|
-
onValueCommitRef.current?.(latestValue.current);
|
|
923
884
|
dragging.current = false;
|
|
924
885
|
setIsPressed(false);
|
|
925
886
|
setHoverPreview(null);
|
|
@@ -934,7 +895,6 @@ var ComfortableSlider = forwardRef(({
|
|
|
934
895
|
handleDragging.current = true;
|
|
935
896
|
setIsPressed(true);
|
|
936
897
|
const newVal = getValueFromX(e.clientX);
|
|
937
|
-
latestValue.current = newVal;
|
|
938
898
|
onChange(newVal);
|
|
939
899
|
fillPercent.set(Math.max(0, Math.min(1, (newVal - min) / (max - min))));
|
|
940
900
|
animate(zeroOffset, newVal === min ? zeroTarget : 0, spring2.fast);
|
|
@@ -944,14 +904,11 @@ var ComfortableSlider = forwardRef(({
|
|
|
944
904
|
if (!handleDragging.current)
|
|
945
905
|
return;
|
|
946
906
|
const newVal = getValueFromX(e.clientX);
|
|
947
|
-
latestValue.current = newVal;
|
|
948
907
|
onChange(newVal);
|
|
949
908
|
fillPercent.set(Math.max(0, Math.min(1, (newVal - min) / (max - min))));
|
|
950
909
|
animate(zeroOffset, newVal === min ? zeroTarget : 0, spring2.fast);
|
|
951
910
|
}, [getValueFromX, onChange, fillPercent, zeroOffset, zeroTarget, min, max]);
|
|
952
911
|
const handleResizePointerUp = useCallback(() => {
|
|
953
|
-
if (handleDragging.current)
|
|
954
|
-
onValueCommitRef.current?.(latestValue.current);
|
|
955
912
|
handleDragging.current = false;
|
|
956
913
|
setIsPressed(false);
|
|
957
914
|
setHoverPreview(null);
|
|
@@ -1020,7 +977,6 @@ var ComfortableSlider = forwardRef(({
|
|
|
1020
977
|
/* @__PURE__ */ jsx(SliderPrimitive.Root, {
|
|
1021
978
|
value: [value],
|
|
1022
979
|
onValueChange: (v) => handleRadixChange(v),
|
|
1023
|
-
onValueCommitted: (v) => onValueCommitRef.current?.(v[0]),
|
|
1024
980
|
min,
|
|
1025
981
|
max,
|
|
1026
982
|
step,
|
|
@@ -1035,10 +991,10 @@ var ComfortableSlider = forwardRef(({
|
|
|
1035
991
|
}),
|
|
1036
992
|
/* @__PURE__ */ jsx(SliderPrimitive.Thumb, {
|
|
1037
993
|
index: 0,
|
|
1038
|
-
"aria-label":
|
|
994
|
+
"aria-label": label,
|
|
1039
995
|
className: "block outline-none",
|
|
1040
996
|
onFocus: (e) => {
|
|
1041
|
-
if (e.
|
|
997
|
+
if (e.currentTarget.matches(":focus-visible"))
|
|
1042
998
|
setIsFocused(true);
|
|
1043
999
|
},
|
|
1044
1000
|
onBlur: () => setIsFocused(false)
|
|
@@ -1191,10 +1147,10 @@ var ComfortableSlider = forwardRef(({
|
|
|
1191
1147
|
});
|
|
1192
1148
|
ComfortableSlider.displayName = "SliderComfortable";
|
|
1193
1149
|
var Slider2 = forwardRef(({ size, variant = "pips", value: valueProp, defaultValue, onChange: onChangeProp, ...rest }, ref) => {
|
|
1194
|
-
const [value, onChange] =
|
|
1150
|
+
const [value, onChange] = useControllableState(valueProp, defaultValue ?? (rest.steps && rest.steps.length > 0 ? Math.min(...rest.steps) : rest.min ?? 0), onChangeProp);
|
|
1195
1151
|
const props = { ...rest, value, onChange };
|
|
1196
1152
|
const resolved = useSizeVariant2(size);
|
|
1197
|
-
const needsCompactEngine = Array.isArray(props.value) || props.steps !== undefined || props.showSteps !== undefined || props.showValue !== undefined || props.valuePosition !== undefined || props.trackClassName !== undefined || props.trackStyle !== undefined || props.fillClassName !== undefined || props.fillStyle !== undefined || props.hideFill !== undefined || props.thumbColor !== undefined || props.thumbBorderColor !== undefined
|
|
1153
|
+
const needsCompactEngine = Array.isArray(props.value) || props.steps !== undefined || props.showSteps !== undefined || props.showValue !== undefined || props.valuePosition !== undefined || props.trackClassName !== undefined || props.trackStyle !== undefined || props.fillClassName !== undefined || props.fillStyle !== undefined || props.hideFill !== undefined || props.thumbColor !== undefined || props.thumbBorderColor !== undefined;
|
|
1198
1154
|
if (resolved === "compact" || needsCompactEngine) {
|
|
1199
1155
|
return /* @__PURE__ */ jsx(CompactSlider, {
|
|
1200
1156
|
ref,
|
|
@@ -1210,7 +1166,6 @@ var Slider2 = forwardRef(({ size, variant = "pips", value: valueProp, defaultVal
|
|
|
1210
1166
|
label,
|
|
1211
1167
|
formatValue,
|
|
1212
1168
|
disabled,
|
|
1213
|
-
onValueCommit,
|
|
1214
1169
|
steps: _steps,
|
|
1215
1170
|
showSteps: _showSteps,
|
|
1216
1171
|
showValue: _showValue,
|
|
@@ -1222,7 +1177,6 @@ var Slider2 = forwardRef(({ size, variant = "pips", value: valueProp, defaultVal
|
|
|
1222
1177
|
hideFill: _hideFill,
|
|
1223
1178
|
thumbColor: _thumbColor,
|
|
1224
1179
|
thumbBorderColor: _thumbBorderColor,
|
|
1225
|
-
orientation: _orientation,
|
|
1226
1180
|
...html
|
|
1227
1181
|
} = props;
|
|
1228
1182
|
return /* @__PURE__ */ jsx(ComfortableSlider, {
|
|
@@ -1236,7 +1190,6 @@ var Slider2 = forwardRef(({ size, variant = "pips", value: valueProp, defaultVal
|
|
|
1236
1190
|
label,
|
|
1237
1191
|
formatValue,
|
|
1238
1192
|
disabled,
|
|
1239
|
-
onValueCommit,
|
|
1240
1193
|
...html
|
|
1241
1194
|
});
|
|
1242
1195
|
});
|