@womp/kookie-ui 0.9.1 → 0.10.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/components.css +13 -0
- package/dist/cjs/components/chatbar.js +2 -2
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/message-scroller.d.ts +6 -0
- package/dist/cjs/components/message-scroller.d.ts.map +1 -1
- package/dist/cjs/components/message-scroller.js +2 -2
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/scroll-area.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/scroll-area.js.map +4 -4
- package/dist/cjs/components/scroll-area.props.d.ts +10 -0
- package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.props.js +1 -1
- package/dist/cjs/components/scroll-area.props.js.map +2 -2
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +4 -4
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +4 -4
- package/dist/cjs/hooks/use-scroll-edges.d.ts +12 -0
- package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -0
- package/dist/cjs/hooks/use-scroll-edges.js +2 -0
- package/dist/cjs/hooks/use-scroll-edges.js.map +7 -0
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +2 -2
- package/dist/esm/{chunk-MWIIGYAJ.js → chunk-25LBWKEV.js} +2 -2
- package/dist/esm/{chunk-ABSKRHVM.js → chunk-36A5BYCN.js} +2 -2
- package/dist/esm/chunk-4D2OAD6I.js +2 -0
- package/dist/esm/chunk-4D2OAD6I.js.map +7 -0
- package/dist/esm/{chunk-YQRSAP46.js → chunk-53SZ4Y23.js} +2 -2
- package/dist/esm/chunk-5BWLY27A.js +2 -0
- package/dist/esm/chunk-5BWLY27A.js.map +7 -0
- package/dist/esm/chunk-COWZAUZR.js +2 -0
- package/dist/esm/chunk-COWZAUZR.js.map +7 -0
- package/dist/esm/{chunk-PHC3QBV3.js → chunk-MZXHKM4V.js} +2 -2
- package/dist/esm/{chunk-NIM7DIVH.js → chunk-PQKJNRMR.js} +2 -2
- package/dist/esm/{chunk-YTD3AJAU.js → chunk-QK5RBHKV.js} +2 -2
- package/dist/esm/chunk-XPRPYCII.js +2 -0
- package/dist/esm/{chunk-5KICSAT7.js.map → chunk-XPRPYCII.js.map} +2 -2
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/message-scroller.d.ts +6 -0
- package/dist/esm/components/message-scroller.d.ts.map +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.props.d.ts +10 -0
- package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.props.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/hooks/use-scroll-edges.d.ts +12 -0
- package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -0
- package/dist/esm/hooks/use-scroll-edges.js +2 -0
- package/dist/esm/hooks/use-scroll-edges.js.map +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/package.json +1 -1
- package/src/components/message-scroller.tsx +24 -5
- package/src/components/scroll-area.css +44 -0
- package/src/components/scroll-area.props.tsx +8 -0
- package/src/components/scroll-area.tsx +7 -1
- package/src/hooks/use-scroll-edges.ts +46 -0
- package/styles.css +13 -0
- package/dist/esm/chunk-5KICSAT7.js +0 -2
- package/dist/esm/chunk-CTA5ODAO.js +0 -2
- package/dist/esm/chunk-CTA5ODAO.js.map +0 -7
- package/dist/esm/chunk-W4WWN3RC.js +0 -2
- package/dist/esm/chunk-W4WWN3RC.js.map +0 -7
- /package/dist/esm/{chunk-MWIIGYAJ.js.map → chunk-25LBWKEV.js.map} +0 -0
- /package/dist/esm/{chunk-ABSKRHVM.js.map → chunk-36A5BYCN.js.map} +0 -0
- /package/dist/esm/{chunk-YQRSAP46.js.map → chunk-53SZ4Y23.js.map} +0 -0
- /package/dist/esm/{chunk-PHC3QBV3.js.map → chunk-MZXHKM4V.js.map} +0 -0
- /package/dist/esm/{chunk-NIM7DIVH.js.map → chunk-PQKJNRMR.js.map} +0 -0
- /package/dist/esm/{chunk-YTD3AJAU.js.map → chunk-QK5RBHKV.js.map} +0 -0
|
@@ -47,6 +47,12 @@ interface ViewportProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
47
47
|
'aria-label'?: string;
|
|
48
48
|
/** Keep the reader's place when older messages are added above. Default `true`. */
|
|
49
49
|
preserveScrollOnPrepend?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Fades messages toward the top and bottom edges while there is more past them. A floating
|
|
52
|
+
* band over an edge (a toolbar, a goal tray, a composer) can set `--scroll-fade-start` or
|
|
53
|
+
* `--scroll-fade-end` to its height, so messages fade as they pass under it. Default `true`.
|
|
54
|
+
*/
|
|
55
|
+
fade?: boolean;
|
|
50
56
|
}
|
|
51
57
|
/** The scrolling element. */
|
|
52
58
|
declare const Viewport: React.ForwardRefExoticComponent<ViewportProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-scroller.d.ts","sourceRoot":"","sources":["../../../src/components/message-scroller.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAEL,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"message-scroller.d.ts","sourceRoot":"","sources":["../../../src/components/message-scroller.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAEL,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGpE,UAAU,SAAU,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,oCAAoC,CAAC;IAC7D,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8DAA8D;AAC9D,QAAA,MAAM,IAAI,kFAaT,CAAC;AAGF,UAAU,aAAc,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACnE,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,6BAA6B;AAC7B,QAAA,MAAM,QAAQ,sFAcZ,CAAC;AAGH,KAAK,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE1D,iDAAiD;AACjD,QAAA,MAAM,OAAO,mKAEX,CAAC;AAGH,UAAU,SAAU,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC/D,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,iCAAiC;AACjC,QAAA,MAAM,IAAI,kFAER,CAAC;AAGH,KAAK,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,iBAAiB,CAAC,GAAG;IAC3E,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,MAAM;IAZV,oEAAoE;mBACrD,MAAM;IACrB,yEAAyE;gBAC7D,OAAO,GAAG,KAAK;IAC3B,sDAAsD;eAC3C,cAAc;2CAiC1B,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,CAAC;AACjI,YAAY,EACV,SAAS,IAAI,wBAAwB,EACrC,aAAa,IAAI,4BAA4B,EAC7C,YAAY,IAAI,2BAA2B,EAC3C,SAAS,IAAI,wBAAwB,EACrC,WAAW,IAAI,0BAA0B,EACzC,oCAAoC,EACpC,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,GAC/B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{a,b,c,d,e,f,g,h}from"../chunk-
|
|
1
|
+
"use client";import{a,b,c,d,e,f,g,h}from"../chunk-4D2OAD6I.js";import"../chunk-4XGGX2V2.js";import"../chunk-5BWLY27A.js";import"../chunk-2N2AQNJH.js";import"../chunk-OLAWVEAI.js";import"../chunk-BPVVFHYD.js";import"../chunk-5WRCK4R7.js";import"../chunk-4XKK32M4.js";import"../chunk-G2CKYO2I.js";import"../chunk-AXUDFYLY.js";import"../chunk-KNQBAOMV.js";import"../chunk-FD2TR343.js";import"../chunk-WYADYDPN.js";import"../chunk-ZE2KAVXW.js";import"../chunk-ZWZGUBL4.js";import"../chunk-SEY4NA45.js";import"../chunk-WAURCNAS.js";import"../chunk-F22ZRNWL.js";import"../chunk-XYVLQDGR.js";import"../chunk-ZZLZGHZQ.js";import"../chunk-HF5WY5YE.js";import"../chunk-3KB2XWBE.js";import"../chunk-FHOCUZDR.js";import"../chunk-SMGDH54W.js";import"../chunk-AGAQC4HH.js";import"../chunk-5T6K7VPP.js";import"../chunk-SNR5VFWG.js";import"../chunk-FWB47YCH.js";import"../chunk-K53W3ELO.js";import"../chunk-TTFUM47A.js";import"../chunk-VX44UTQ5.js";import"../chunk-ERGJN7FJ.js";import"../chunk-5TXQLK4G.js";import"../chunk-JFWMAYEH.js";import"../chunk-KRJTW535.js";import"../chunk-GSTOGDAJ.js";import"../chunk-6FLLFCBU.js";import"../chunk-AX5S56DS.js";import"../chunk-E23RKOQJ.js";import"../chunk-JUY7CBSL.js";import"../chunk-WRWNN2NW.js";import"../chunk-QM3RCK5P.js";import"../chunk-RZCX6IBE.js";import"../chunk-NZJGC6ZW.js";import"../chunk-ZNK6AH2G.js";import"../chunk-OS3FCYZY.js";export{h as Button,f as Content,g as Item,d as Root,e as Viewport,a as useMessageScroller,b as useMessageScrollerScrollable,c as useMessageScrollerVisibility};
|
|
2
2
|
//# sourceMappingURL=message-scroller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAQ5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,KAAK,kBAAkB,GAAG,eAAe,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACrE,UAAU,eACR,SAAQ,qBAAqB,CAAC,OAAO,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,EAC1E,qBAAqB,CAAC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,KAAK,CAAC,EAChF,WAAW,EACX,kBAAkB;CAAG;AACzB,QAAA,MAAM,UAAU,wFAmFd,CAAC;AAGH,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-COWZAUZR.js";import"../chunk-5GXFBLBJ.js";import"../chunk-UBOOUDS4.js";import"../chunk-XPRPYCII.js";import"../chunk-5BWLY27A.js";import"../chunk-PS6NEG5A.js";import"../chunk-KRJTW535.js";import"../chunk-GSTOGDAJ.js";import"../chunk-E23RKOQJ.js";import"../chunk-JUY7CBSL.js";import"../chunk-WRWNN2NW.js";import"../chunk-QM3RCK5P.js";import"../chunk-RZCX6IBE.js";import"../chunk-NZJGC6ZW.js";import"../chunk-OS3FCYZY.js";export{a as ScrollArea};
|
|
2
2
|
//# sourceMappingURL=scroll-area.js.map
|
|
@@ -4,6 +4,16 @@ declare const scrollAreaPropDefs: {
|
|
|
4
4
|
values: readonly ["vertical", "horizontal", "both"];
|
|
5
5
|
default: "both";
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Fades the content toward the top and bottom edges while there is more content past them.
|
|
9
|
+
* An edge with nothing hidden past it does not fade. A floating band over an edge can set
|
|
10
|
+
* `--scroll-fade-start` or `--scroll-fade-end` to its height, so content fades as it passes
|
|
11
|
+
* under the band.
|
|
12
|
+
*/
|
|
13
|
+
fade: {
|
|
14
|
+
type: "boolean";
|
|
15
|
+
default: false;
|
|
16
|
+
};
|
|
7
17
|
radius: {
|
|
8
18
|
type: "enum";
|
|
9
19
|
values: readonly ["none", "small", "medium", "large", "full"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.props.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-area.props.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"scroll-area.props.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-area.props.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB;;;;;;IAKtB;;;;;OAKG;;;;;;;;;;;;;;;;;;;;CAMJ,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-XPRPYCII.js";import"../chunk-KRJTW535.js";import"../chunk-NZJGC6ZW.js";import"../chunk-OS3FCYZY.js";export{a as scrollAreaPropDefs};
|
|
2
2
|
//# sourceMappingURL=scroll-area.props.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"../chunk-
|
|
1
|
+
"use client";import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"../chunk-53SZ4Y23.js";import"../chunk-2CMM7MEL.js";import"../chunk-VR7ZAFYN.js";import"../chunk-CRSHBENJ.js";import"../chunk-MZXHKM4V.js";import"../chunk-WOR3JCLX.js";import"../chunk-WHFJ4JUN.js";import"../chunk-72AHPGPN.js";import"../chunk-COWZAUZR.js";import"../chunk-5GXFBLBJ.js";import"../chunk-UBOOUDS4.js";import"../chunk-XPRPYCII.js";import"../chunk-5BWLY27A.js";import"../chunk-IX5HIHVI.js";import"../chunk-PS6NEG5A.js";import"../chunk-KMPE7TJ6.js";import"../chunk-OLAWVEAI.js";import"../chunk-BPVVFHYD.js";import"../chunk-QQ62LO3X.js";import"../chunk-MJJ7XDIP.js";import"../chunk-5WRCK4R7.js";import"../chunk-4XKK32M4.js";import"../chunk-G2CKYO2I.js";import"../chunk-AXUDFYLY.js";import"../chunk-KNQBAOMV.js";import"../chunk-FD2TR343.js";import"../chunk-WYADYDPN.js";import"../chunk-ZE2KAVXW.js";import"../chunk-ZWZGUBL4.js";import"../chunk-7RQNB63F.js";import"../chunk-SEY4NA45.js";import"../chunk-WAURCNAS.js";import"../chunk-F22ZRNWL.js";import"../chunk-XYVLQDGR.js";import"../chunk-FWB47YCH.js";import"../chunk-VX44UTQ5.js";import"../chunk-ERGJN7FJ.js";import"../chunk-5TXQLK4G.js";import"../chunk-KRJTW535.js";import"../chunk-3KSGRY6I.js";import"../chunk-ZOY43B55.js";import"../chunk-E67CIG6A.js";import"../chunk-ARIV4AT5.js";import"../chunk-3XSB7YIM.js";import"../chunk-YA5DF67M.js";import"../chunk-GSTOGDAJ.js";import"../chunk-6FLLFCBU.js";import"../chunk-AX5S56DS.js";import"../chunk-E23RKOQJ.js";import"../chunk-JUY7CBSL.js";import"../chunk-WRWNN2NW.js";import"../chunk-QM3RCK5P.js";import"../chunk-RZCX6IBE.js";import"../chunk-NZJGC6ZW.js";import"../chunk-ZNK6AH2G.js";import"../chunk-JSW6J6RS.js";import"../chunk-OS3FCYZY.js";export{b as Content,d as Footer,l as Group,n as GroupContent,m as GroupLabel,c as Header,f as Menu,h as MenuButton,g as MenuItem,i as MenuSub,k as MenuSubContent,j as MenuSubTrigger,a as Root,o as Search,e as Separator};
|
|
2
2
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g}from"../chunk-36A5BYCN.js";import"../chunk-BALS3AVM.js";import"../chunk-COWZAUZR.js";import"../chunk-5GXFBLBJ.js";import"../chunk-UBOOUDS4.js";import"../chunk-XPRPYCII.js";import"../chunk-5BWLY27A.js";import"../chunk-PS6NEG5A.js";import"../chunk-TTFUM47A.js";import"../chunk-ERGJN7FJ.js";import"../chunk-KRJTW535.js";import"../chunk-GSTOGDAJ.js";import"../chunk-6FLLFCBU.js";import"../chunk-AX5S56DS.js";import"../chunk-E23RKOQJ.js";import"../chunk-JUY7CBSL.js";import"../chunk-WRWNN2NW.js";import"../chunk-QM3RCK5P.js";import"../chunk-RZCX6IBE.js";import"../chunk-NZJGC6ZW.js";import"../chunk-OS3FCYZY.js";export{c as Body,e as Cell,f as ColumnHeaderCell,b as Header,a as Root,d as Row,g as RowHeaderCell};
|
|
2
2
|
//# sourceMappingURL=table.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{a,b}from"../chunk-
|
|
1
|
+
"use client";import{a,b}from"../chunk-25LBWKEV.js";import"../chunk-IBF5U4QW.js";import"../chunk-WHFJ4JUN.js";import"../chunk-72AHPGPN.js";import"../chunk-VX6ARMWP.js";import"../chunk-4XGGX2V2.js";import"../chunk-COWZAUZR.js";import"../chunk-5GXFBLBJ.js";import"../chunk-UBOOUDS4.js";import"../chunk-XPRPYCII.js";import"../chunk-5BWLY27A.js";import"../chunk-73QGEY2I.js";import"../chunk-2N2AQNJH.js";import"../chunk-HAGKI7NA.js";import"../chunk-PS6NEG5A.js";import"../chunk-OLAWVEAI.js";import"../chunk-BPVVFHYD.js";import"../chunk-4YFJWXL2.js";import"../chunk-FGORMEAO.js";import"../chunk-ERNM3KVF.js";import"../chunk-GO7OHBHW.js";import"../chunk-PZ7OYATT.js";import"../chunk-MJJ7XDIP.js";import"../chunk-5WRCK4R7.js";import"../chunk-4XKK32M4.js";import"../chunk-G2CKYO2I.js";import"../chunk-AXUDFYLY.js";import"../chunk-KNQBAOMV.js";import"../chunk-FD2TR343.js";import"../chunk-WYADYDPN.js";import"../chunk-ZE2KAVXW.js";import"../chunk-ZWZGUBL4.js";import"../chunk-SEY4NA45.js";import"../chunk-WAURCNAS.js";import"../chunk-F22ZRNWL.js";import"../chunk-XYVLQDGR.js";import"../chunk-ZZLZGHZQ.js";import"../chunk-HF5WY5YE.js";import"../chunk-3KB2XWBE.js";import"../chunk-FHOCUZDR.js";import"../chunk-SMGDH54W.js";import"../chunk-AGAQC4HH.js";import"../chunk-5T6K7VPP.js";import"../chunk-SNR5VFWG.js";import"../chunk-FWB47YCH.js";import"../chunk-K53W3ELO.js";import"../chunk-TTFUM47A.js";import"../chunk-VX44UTQ5.js";import"../chunk-ERGJN7FJ.js";import"../chunk-5TXQLK4G.js";import"../chunk-JFWMAYEH.js";import"../chunk-KRJTW535.js";import"../chunk-E67CIG6A.js";import"../chunk-ARIV4AT5.js";import"../chunk-GSTOGDAJ.js";import"../chunk-6FLLFCBU.js";import"../chunk-AX5S56DS.js";import"../chunk-E23RKOQJ.js";import"../chunk-JUY7CBSL.js";import"../chunk-WRWNN2NW.js";import"../chunk-QM3RCK5P.js";import"../chunk-RZCX6IBE.js";import"../chunk-NZJGC6ZW.js";import"../chunk-ZNK6AH2G.js";import"../chunk-OS3FCYZY.js";export{a as ThemePanel,b as ThemePanelContent};
|
|
2
2
|
//# sourceMappingURL=theme-panel.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Publishes how much content is hidden past each block edge of a scroller, as
|
|
4
|
+
* `--scroll-overflow-start` and `--scroll-overflow-end` (px) on the element.
|
|
5
|
+
* The scroll fade reads them, so an edge fades only while content is hidden
|
|
6
|
+
* there, and the fade ramps in over the first pixels of scrolling.
|
|
7
|
+
*
|
|
8
|
+
* Writes happen at most once per frame, on scroll and when the element or its
|
|
9
|
+
* content resizes. Nothing re-renders.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useScrollEdges<T extends HTMLElement>(enabled: boolean): React.Dispatch<React.SetStateAction<T | null>>;
|
|
12
|
+
//# sourceMappingURL=use-scroll-edges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scroll-edges.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,OAAO,kDAkCrE"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-EL7YGOTY.js";import"./chunk-JKS2YXMS.js";import{f as zo}from"./chunk-47LMOIW3.js";import{a as Ao}from"./chunk-ERY5TH2M.js";import"./chunk-4WVNMGI5.js";import{a as Bo}from"./chunk-YWENWZOU.js";import{c as no}from"./chunk-ALWNS44Q.js";import{a as qo,b as so}from"./chunk-
|
|
1
|
+
import"./chunk-EL7YGOTY.js";import"./chunk-JKS2YXMS.js";import{f as zo}from"./chunk-47LMOIW3.js";import{a as Ao}from"./chunk-ERY5TH2M.js";import"./chunk-4WVNMGI5.js";import{a as Bo}from"./chunk-YWENWZOU.js";import{c as no}from"./chunk-ALWNS44Q.js";import{a as qo,b as so}from"./chunk-25LBWKEV.js";import{a as wo}from"./chunk-X3JM2565.js";import{a as yo}from"./chunk-65GAANJD.js";import{a as vo}from"./chunk-VK7RNXUO.js";import{a as uo}from"./chunk-EE54S7YV.js";import{c as io}from"./chunk-K3UAS7RW.js";import{h as jo}from"./chunk-36A5BYCN.js";import"./chunk-BALS3AVM.js";import{e as ko}from"./chunk-VNH7BJOA.js";import"./chunk-TZTUPQYK.js";import{a as lo}from"./chunk-EPTYNVCU.js";import"./chunk-CLMOWP5T.js";import"./chunk-MN3XALXD.js";import{a as go}from"./chunk-43A5GUSI.js";import"./chunk-XI5YXUCK.js";import{a as ho}from"./chunk-KJUDZCYK.js";import"./chunk-AF6XKU3W.js";import"./chunk-AUV6B4AH.js";import{h as Do}from"./chunk-PYHEBG5I.js";import{p as Co}from"./chunk-53SZ4Y23.js";import"./chunk-2CMM7MEL.js";import{a as co}from"./chunk-VZSQATP6.js";import"./chunk-OJU5GCDZ.js";import{c as to}from"./chunk-FG7XM7KJ.js";import{h as ao}from"./chunk-VHECAEUP.js";import"./chunk-EBQZ3Z22.js";import{a as bo}from"./chunk-VR7ZAFYN.js";import"./chunk-CRSHBENJ.js";import{g as Eo}from"./chunk-QWVU2TW4.js";import"./chunk-ADXZNG4F.js";import"./chunk-2EQWBT2S.js";import{a as xo}from"./chunk-OGXZHAQL.js";import"./chunk-NIX6Z3JG.js";import"./chunk-FC2DBBJ3.js";import{c as fo}from"./chunk-2I7QRVJ5.js";import{a as mo}from"./chunk-CIYF56YS.js";import"./chunk-STPMPY3X.js";import{a as po}from"./chunk-FHEHX7CE.js";import{a as $}from"./chunk-XEZXKPLE.js";import{a as oo}from"./chunk-CDG5WH4U.js";import"./chunk-5XV4QEP5.js";import{a as ro}from"./chunk-GLERJXVS.js";import"./chunk-MCQCG6AS.js";import{c as eo}from"./chunk-CRTH5LNU.js";import"./chunk-OWMA6GTG.js";import"./chunk-VLTXI4A7.js";import{a as Z}from"./chunk-YBSRX63K.js";import"./chunk-AGSSWWFI.js";import{i as Fo}from"./chunk-4D2OAD6I.js";import{e as _}from"./chunk-7UHKEJ7Q.js";import"./chunk-Y3A6ZU24.js";import{a as X}from"./chunk-IHK3H2OM.js";import{a as W}from"./chunk-S5C5YRBS.js";import"./chunk-IBF5U4QW.js";import"./chunk-L6UXAITB.js";import"./chunk-GFOSP3PZ.js";import{a as Y}from"./chunk-CSKZZOI2.js";import"./chunk-JAMLW534.js";import{d as V}from"./chunk-MEO7MJMQ.js";import"./chunk-VJSZG35J.js";import{g as S}from"./chunk-DSJY5RI3.js";import{a as R}from"./chunk-MHANZINI.js";import{o as T}from"./chunk-MZXHKM4V.js";import"./chunk-WOR3JCLX.js";import{a as U}from"./chunk-7FC7HF76.js";import"./chunk-4JQZUQY7.js";import{l as N}from"./chunk-T4OR62DQ.js";import{g as M}from"./chunk-WHFJ4JUN.js";import"./chunk-72AHPGPN.js";import"./chunk-RDAMYQFF.js";import{a as O}from"./chunk-4ME6O27S.js";import"./chunk-PPNWGWN3.js";import{n as P}from"./chunk-PQKJNRMR.js";import"./chunk-OA7C34MJ.js";import{e as Q}from"./chunk-RNTCHVFI.js";import"./chunk-NIIEIZKQ.js";import{c as I}from"./chunk-BW5CO4PZ.js";import{a as H}from"./chunk-VX6ARMWP.js";import{c as J}from"./chunk-OMGZG52I.js";import"./chunk-V32EP3S7.js";import"./chunk-5SNHUVDA.js";import{a as K}from"./chunk-KFR3CK24.js";import"./chunk-UICSVJ3B.js";import{a as L}from"./chunk-N4GTDLRD.js";import"./chunk-KZWNGWIM.js";import{d as v}from"./chunk-CKMMUHKE.js";import"./chunk-OGVKSYLL.js";import{a as w}from"./chunk-JDGJSNWT.js";import"./chunk-OO652UQW.js";import{l as G}from"./chunk-QK5RBHKV.js";import{b as E,c as F}from"./chunk-RJP5QUXO.js";import{a as y}from"./chunk-4XGGX2V2.js";import{a as D}from"./chunk-COWZAUZR.js";import"./chunk-5GXFBLBJ.js";import"./chunk-UBOOUDS4.js";import"./chunk-XPRPYCII.js";import"./chunk-5BWLY27A.js";import{a as z,b as A,c as B,d as C}from"./chunk-IX5HIHVI.js";import{a as u}from"./chunk-73QGEY2I.js";import{a as s}from"./chunk-2N2AQNJH.js";import"./chunk-667BKCUG.js";import"./chunk-HAGKI7NA.js";import{a as j}from"./chunk-HJU4I34X.js";import"./chunk-PS6NEG5A.js";import"./chunk-QFPHEY77.js";import{a as l}from"./chunk-KMPE7TJ6.js";import{a as k}from"./chunk-OLAWVEAI.js";import"./chunk-BPVVFHYD.js";import"./chunk-QQ62LO3X.js";import{a as n}from"./chunk-MS5J4MF6.js";import{a as q}from"./chunk-4YFJWXL2.js";import"./chunk-FGORMEAO.js";import"./chunk-ROSWI2CL.js";import{a as b}from"./chunk-ERNM3KVF.js";import{f as c}from"./chunk-Y5RCH23Z.js";import"./chunk-EDKQURDU.js";import{h}from"./chunk-LXWPEDPZ.js";import{a as d}from"./chunk-GO7OHBHW.js";import"./chunk-PZ7OYATT.js";import"./chunk-MJJ7XDIP.js";import{a as g}from"./chunk-5WRCK4R7.js";import"./chunk-4XKK32M4.js";import"./chunk-G2CKYO2I.js";import"./chunk-AXUDFYLY.js";import"./chunk-KNQBAOMV.js";import"./chunk-FD2TR343.js";import"./chunk-WYADYDPN.js";import"./chunk-ZE2KAVXW.js";import"./chunk-ZWZGUBL4.js";import"./chunk-XKBLNVOD.js";import"./chunk-GCUGJXI2.js";import{a as i}from"./chunk-Y7LT3F6R.js";import"./chunk-7RQNB63F.js";import{a as t,b as x,c as a}from"./chunk-SEY4NA45.js";import"./chunk-WAURCNAS.js";import"./chunk-F22ZRNWL.js";import"./chunk-XYVLQDGR.js";import"./chunk-YAQBIO2B.js";import"./chunk-AGNIFHOE.js";import"./chunk-HCNO7PX6.js";import"./chunk-GMHA5CFH.js";import"./chunk-A2XVR7GL.js";import"./chunk-BZZXXZ3O.js";import"./chunk-2LYX5S7H.js";import"./chunk-HWQ3NTJP.js";import"./chunk-3J6AUDID.js";import"./chunk-ZZLZGHZQ.js";import{a as f}from"./chunk-HF5WY5YE.js";import"./chunk-3KB2XWBE.js";import{a as e}from"./chunk-FHOCUZDR.js";import"./chunk-SMGDH54W.js";import{a as m}from"./chunk-AGAQC4HH.js";import"./chunk-5T6K7VPP.js";import"./chunk-SNR5VFWG.js";import{b as o,c as r}from"./chunk-FWB47YCH.js";import"./chunk-K53W3ELO.js";import"./chunk-TTFUM47A.js";import"./chunk-VX44UTQ5.js";import"./chunk-ERGJN7FJ.js";import"./chunk-5TXQLK4G.js";import"./chunk-JFWMAYEH.js";import"./chunk-KRJTW535.js";import"./chunk-F6V7GBNQ.js";import"./chunk-3KSGRY6I.js";import"./chunk-ZOY43B55.js";import{a as p}from"./chunk-E67CIG6A.js";import"./chunk-ARIV4AT5.js";import"./chunk-3XSB7YIM.js";import"./chunk-YA5DF67M.js";import"./chunk-GSTOGDAJ.js";import"./chunk-6FLLFCBU.js";import"./chunk-AX5S56DS.js";import"./chunk-E23RKOQJ.js";import"./chunk-JUY7CBSL.js";import"./chunk-WRWNN2NW.js";import"./chunk-QM3RCK5P.js";import"./chunk-RZCX6IBE.js";import"./chunk-NZJGC6ZW.js";import"./chunk-WMGIFPI2.js";import"./chunk-CFNESRYI.js";import"./chunk-ZNK6AH2G.js";import"./chunk-JSW6J6RS.js";import"./chunk-OS3FCYZY.js";export{b as AccessibleIcon,c as Accordion,h as AlertDialog,i as AspectRatio,j as Avatar,l as Badge,n as Blockquote,q as Box,u as Button,v as Callout,w as Card,G as Chatbar,K as Checkbox,I as CheckboxCards,J as CheckboxGroup,B as ChevronDownIcon,L as Code,N as Combobox,F as Confirmation,O as Container,P as ContextMenu,Q as DataList,S as Dialog,T as DropdownMenu,U as Em,e as Flex,H as Grid,d as Heading,V as HoverCard,y as IconButton,X as Image,Y as Inset,p as Kbd,Z as Link,Fo as MessageScroller,_ as Navbar,E as Notice,M as Popover,$ as Portal,oo as Progress,ro as Quote,mo as Radio,eo as RadioCards,fo as RadioGroup,po as Reset,D as ScrollArea,xo as Section,to as SegmentedControl,ao as Select,bo as Separator,Eo as Sheet,Do as Shell,Co as Sidebar,W as Skeleton,co as Slider,o as Slot,r as Slottable,f as Spinner,go as Strong,ho as Switch,io as TabNav,jo as Table,ko as Tabs,g as Text,lo as TextArea,no as TextField,a as Theme,t as ThemeContext,qo as ThemePanel,so as ThemePanelContent,A as ThickCheckIcon,C as ThickChevronRightIcon,z as ThickDividerHorizontalIcon,wo as ToggleButton,yo as ToggleIconButton,zo as Toolbar,k as Tooltip,Ao as UserCard,Bo as VirtualMenu,m as VisuallyHidden,R as useBodyPointerEventsCleanup,uo as useLiveAnnouncer,x as useThemeContext,vo as useToggleState,s as useTooltipWrapper};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/props/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Go}from"../chunk-MQWH2IFO.js";import{a as yo,b as zo,c as Ao}from"../chunk-BALS3AVM.js";import{a as Bo,b as Co}from"../chunk-TZTUPQYK.js";import{a as Do}from"../chunk-CLMOWP5T.js";import{a as Eo,b as Fo}from"../chunk-MN3XALXD.js";import{a as uo}from"../chunk-XI5YXUCK.js";import{a as vo}from"../chunk-AF6XKU3W.js";import{a as wo}from"../chunk-AUV6B4AH.js";import{a as so}from"../chunk-OJU5GCDZ.js";import{a as ko,b as lo,c as no}from"../chunk-EBQZ3Z22.js";import{a as qo}from"../chunk-CRSHBENJ.js";import{a as jo}from"../chunk-NIX6Z3JG.js";import{a as io}from"../chunk-FC2DBBJ3.js";import"../chunk-STPMPY3X.js";import{a as bo}from"../chunk-5XV4QEP5.js";import{a as co}from"../chunk-MCQCG6AS.js";import{a as go}from"../chunk-OWMA6GTG.js";import{a as ho}from"../chunk-VLTXI4A7.js";import{a as ao}from"../chunk-AGSSWWFI.js";import{a as to}from"../chunk-L6UXAITB.js";import{a as po}from"../chunk-GFOSP3PZ.js";import{a as xo}from"../chunk-JAMLW534.js";import{a as mo}from"../chunk-VJSZG35J.js";import"../chunk-YKPMLM7M.js";import"../chunk-WOR3JCLX.js";import{a as fo}from"../chunk-4JQZUQY7.js";import{a as _}from"../chunk-72AHPGPN.js";import{a as $}from"../chunk-PPNWGWN3.js";import"../chunk-OA7C34MJ.js";import{a as oo,b as ro,c as eo}from"../chunk-NIIEIZKQ.js";import{a as Y}from"../chunk-5SNHUVDA.js";import"../chunk-UICSVJ3B.js";import{a as Z}from"../chunk-KZWNGWIM.js";import"../chunk-6DWDNKLS.js";import{a as T}from"../chunk-OGVKSYLL.js";import{a as U}from"../chunk-OO652UQW.js";import{a as V}from"../chunk-
|
|
1
|
+
import{a as Go}from"../chunk-MQWH2IFO.js";import{a as yo,b as zo,c as Ao}from"../chunk-BALS3AVM.js";import{a as Bo,b as Co}from"../chunk-TZTUPQYK.js";import{a as Do}from"../chunk-CLMOWP5T.js";import{a as Eo,b as Fo}from"../chunk-MN3XALXD.js";import{a as uo}from"../chunk-XI5YXUCK.js";import{a as vo}from"../chunk-AF6XKU3W.js";import{a as wo}from"../chunk-AUV6B4AH.js";import{a as so}from"../chunk-OJU5GCDZ.js";import{a as ko,b as lo,c as no}from"../chunk-EBQZ3Z22.js";import{a as qo}from"../chunk-CRSHBENJ.js";import{a as jo}from"../chunk-NIX6Z3JG.js";import{a as io}from"../chunk-FC2DBBJ3.js";import"../chunk-STPMPY3X.js";import{a as bo}from"../chunk-5XV4QEP5.js";import{a as co}from"../chunk-MCQCG6AS.js";import{a as go}from"../chunk-OWMA6GTG.js";import{a as ho}from"../chunk-VLTXI4A7.js";import{a as ao}from"../chunk-AGSSWWFI.js";import{a as to}from"../chunk-L6UXAITB.js";import{a as po}from"../chunk-GFOSP3PZ.js";import{a as xo}from"../chunk-JAMLW534.js";import{a as mo}from"../chunk-VJSZG35J.js";import"../chunk-YKPMLM7M.js";import"../chunk-WOR3JCLX.js";import{a as fo}from"../chunk-4JQZUQY7.js";import{a as _}from"../chunk-72AHPGPN.js";import{a as $}from"../chunk-PPNWGWN3.js";import"../chunk-OA7C34MJ.js";import{a as oo,b as ro,c as eo}from"../chunk-NIIEIZKQ.js";import{a as Y}from"../chunk-5SNHUVDA.js";import"../chunk-UICSVJ3B.js";import{a as Z}from"../chunk-KZWNGWIM.js";import"../chunk-6DWDNKLS.js";import{a as T}from"../chunk-OGVKSYLL.js";import{a as U}from"../chunk-OO652UQW.js";import{a as V}from"../chunk-XPRPYCII.js";import{a as X}from"../chunk-667BKCUG.js";import{a as W}from"../chunk-HAGKI7NA.js";import{a as O}from"../chunk-QFPHEY77.js";import{a as Q}from"../chunk-BPVVFHYD.js";import{a as P}from"../chunk-QQ62LO3X.js";import{a as R}from"../chunk-WGYUWEQV.js";import{a as S}from"../chunk-FGORMEAO.js";import{a as M}from"../chunk-PZ7OYATT.js";import{a as N}from"../chunk-4XKK32M4.js";import{a as I}from"../chunk-G2CKYO2I.js";import"../chunk-AXUDFYLY.js";import{a as H}from"../chunk-KNQBAOMV.js";import{a as L}from"../chunk-FD2TR343.js";import{a as J}from"../chunk-WYADYDPN.js";import{a as K}from"../chunk-ZE2KAVXW.js";import{a as F,b as G}from"../chunk-ZWZGUBL4.js";import{a as E}from"../chunk-XKBLNVOD.js";import{a as D}from"../chunk-GCUGJXI2.js";import{a as C}from"../chunk-XYVLQDGR.js";import{a as l}from"../chunk-3KB2XWBE.js";import{a as k}from"../chunk-SMGDH54W.js";import{a as j}from"../chunk-SNR5VFWG.js";import{a as h}from"../chunk-K53W3ELO.js";import{a as c}from"../chunk-TTFUM47A.js";import{a as d}from"../chunk-VX44UTQ5.js";import{a as g}from"../chunk-ERGJN7FJ.js";import{a as x}from"../chunk-JFWMAYEH.js";import{a as p,b as t}from"../chunk-KRJTW535.js";import{a as n}from"../chunk-F6V7GBNQ.js";import{a as q,b as s,c as u,d as v,e as w,f as y}from"../chunk-3KSGRY6I.js";import{a as z}from"../chunk-ARIV4AT5.js";import{a as i}from"../chunk-GSTOGDAJ.js";import{a,b}from"../chunk-WRWNN2NW.js";import{a as o}from"../chunk-NZJGC6ZW.js";import{a as A}from"../chunk-WMGIFPI2.js";import{a as B}from"../chunk-CFNESRYI.js";import{a as r,b as e,c as f,d as m}from"../chunk-ZNK6AH2G.js";import"../chunk-OS3FCYZY.js";export{m as accentColorPropDef,r as accentColors,E as alertDialogContentPropDefs,o as asChildPropDef,O as avatarPropDefs,P as badgePropDefs,R as blockquotePropDefs,S as boxPropDefs,b as breakpointSet,a as breakpoints,x as buttonPropDefs,T as calloutRootPropDefs,U as cardPropDefs,X as checkboxCardsRootPropDefs,Y as checkboxGroupRootPropDefs,n as checkboxPropDefs,Z as codePropDefs,f as colorPropDef,$ as containerPropDefs,w as contextMenuCheckboxItemPropDefs,u as contextMenuContentPropDefs,v as contextMenuItemPropDefs,y as contextMenuRadioItemPropDefs,u as contextMenuSubContentPropDefs,ro as dataListItemPropDefs,eo as dataListLabelPropDefs,oo as dataListRootPropDefs,D as dialogContentPropDefs,w as dropdownMenuCheckboxItemPropDefs,s as dropdownMenuContentPropDefs,v as dropdownMenuItemPropDefs,y as dropdownMenuRadioItemPropDefs,u as dropdownMenuSubContentPropDefs,fo as emPropDefs,F as emphases,G as emphasisPropDef,k as flexPropDefs,j as gapPropDefs,e as grayColors,W as gridPropDefs,M as headingPropDefs,d as heightPropDefs,mo as hoverCardContentPropDefs,x as iconButtonPropDefs,po as imagePropDefs,xo as insetPropDefs,z as kbdPropDefs,h as layoutPropDefs,H as leadingTrimPropDef,ao as linkPropDefs,i as marginPropDefs,c as paddingPropDefs,_ as popoverContentPropDefs,bo as progressPropDefs,co as quotePropDefs,p as radii,go as radioCardsRootPropDefs,ho as radioGroupRootPropDefs,A as radioPropDefs,t as radiusPropDef,V as scrollAreaPropDefs,jo as sectionPropDefs,io as segmentedControlRootPropDefs,no as selectContentPropDefs,ko as selectRootPropDefs,lo as selectTriggerPropDefs,qo as separatorPropDefs,Go as shadowPropDefs,to as skeletonPropDefs,so as sliderPropDefs,l as spinnerPropDefs,uo as strongPropDefs,q as submenuBehaviors,vo as switchPropDefs,wo as tabNavLinkPropDefs,B as tabNavRootPropDefs,Ao as tableCellPropDefs,yo as tableRootPropDefs,zo as tableRowPropDefs,Co as tabsContentPropDefs,B as tabsListPropDefs,Bo as tabsRootPropDefs,I as textAlignPropDef,Do as textAreaPropDefs,Eo as textFieldRootPropDefs,Fo as textFieldSlotPropDefs,N as textPropDefs,J as textWrapPropDef,C as themePropDefs,Q as tooltipPropDefs,K as truncatePropDef,L as weightPropDef,g as widthPropDefs};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -40,7 +40,10 @@ import {
|
|
|
40
40
|
type MessageScrollerVisibilityState,
|
|
41
41
|
} from '@shadcn/react/message-scroller';
|
|
42
42
|
|
|
43
|
+
import { useComposedRefs } from 'radix-ui/internal';
|
|
44
|
+
|
|
43
45
|
import { IconButton, type IconButtonProps } from './icon-button.js';
|
|
46
|
+
import { useScrollEdges } from '../hooks/use-scroll-edges.js';
|
|
44
47
|
|
|
45
48
|
interface RootProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
46
49
|
/**
|
|
@@ -78,14 +81,30 @@ interface ViewportProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
78
81
|
'aria-label'?: string;
|
|
79
82
|
/** Keep the reader's place when older messages are added above. Default `true`. */
|
|
80
83
|
preserveScrollOnPrepend?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Fades messages toward the top and bottom edges while there is more past them. A floating
|
|
86
|
+
* band over an edge (a toolbar, a goal tray, a composer) can set `--scroll-fade-start` or
|
|
87
|
+
* `--scroll-fade-end` to its height, so messages fade as they pass under it. Default `true`.
|
|
88
|
+
*/
|
|
89
|
+
fade?: boolean;
|
|
81
90
|
}
|
|
82
91
|
|
|
83
92
|
/** The scrolling element. */
|
|
84
|
-
const Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(({ className, 'aria-label': label, ...props }, forwardedRef) =>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
const Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(({ className, 'aria-label': label, fade = true, ...props }, forwardedRef) => {
|
|
94
|
+
const setEdgesElement = useScrollEdges<HTMLDivElement>(fade);
|
|
95
|
+
const ref = useComposedRefs(forwardedRef, setEdgesElement);
|
|
96
|
+
return (
|
|
97
|
+
// The primitive names an unnamed viewport "Messages", in English. An empty name is skipped by
|
|
98
|
+
// accessible-name computation, so a transcript is only named when the app names it.
|
|
99
|
+
<Primitive.Viewport
|
|
100
|
+
aria-label={label ?? ''}
|
|
101
|
+
{...props}
|
|
102
|
+
ref={ref}
|
|
103
|
+
data-fade={fade ? '' : undefined}
|
|
104
|
+
className={classNames('rt-MessageScrollerViewport', className)}
|
|
105
|
+
/>
|
|
106
|
+
);
|
|
107
|
+
});
|
|
89
108
|
Viewport.displayName = 'MessageScroller.Viewport';
|
|
90
109
|
|
|
91
110
|
type ContentProps = React.ComponentPropsWithoutRef<'div'>;
|
|
@@ -144,3 +144,47 @@
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
+
|
|
148
|
+
/***************************************************************************************************
|
|
149
|
+
* *
|
|
150
|
+
* SCROLL FADE *
|
|
151
|
+
* *
|
|
152
|
+
***************************************************************************************************/
|
|
153
|
+
|
|
154
|
+
/*
|
|
155
|
+
* Content dissolves toward an edge that has more past it. A mask, not a painted gradient: a paint
|
|
156
|
+
* has to fade toward a colour, and the right colour differs on every surface, while a mask fades
|
|
157
|
+
* the content itself and lets whatever is behind show through.
|
|
158
|
+
*
|
|
159
|
+
* `--scroll-overflow-start/-end` are how far content is hidden past each edge, written by
|
|
160
|
+
* Kookie's scroll-edges hook. `min()` against the fade length is the whole behaviour: an edge
|
|
161
|
+
* with nothing past it fades over 0px, and the fade ramps in over the first pixels of scrolling.
|
|
162
|
+
* A floating band over an edge sets `--scroll-fade-start` or `--scroll-fade-end` to its height.
|
|
163
|
+
*
|
|
164
|
+
* Shared by ScrollArea (on its viewport) and MessageScroller (on its viewport). Scrollbars are
|
|
165
|
+
* siblings of the viewport, outside the mask, so the thumb stays crisp.
|
|
166
|
+
*/
|
|
167
|
+
:where(.rt-ScrollAreaRoot[data-fade]) > .rt-ScrollAreaViewport,
|
|
168
|
+
.rt-MessageScrollerViewport:where([data-fade]) {
|
|
169
|
+
mask-image: linear-gradient(
|
|
170
|
+
to bottom,
|
|
171
|
+
transparent 0%,
|
|
172
|
+
black min(var(--scroll-overflow-start, 0px), var(--scroll-fade-start, var(--scroll-fade-size))),
|
|
173
|
+
black calc(100% - min(var(--scroll-overflow-end, 0px), var(--scroll-fade-end, var(--scroll-fade-size)))),
|
|
174
|
+
transparent 100%
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
:root,
|
|
179
|
+
.radix-themes {
|
|
180
|
+
--scroll-fade-size: var(--space-6);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/*
|
|
184
|
+
* A band is above the scroller it floats over and above nothing else. The reach hooks inherit,
|
|
185
|
+
* so a scroller nested inside another takes the designed length, not its ancestor's band.
|
|
186
|
+
*/
|
|
187
|
+
:where(.rt-ScrollAreaViewport, .rt-MessageScrollerViewport) :where(.rt-ScrollAreaRoot, .rt-MessageScrollerViewport) {
|
|
188
|
+
--scroll-fade-start: initial;
|
|
189
|
+
--scroll-fade-end: initial;
|
|
190
|
+
}
|
|
@@ -11,9 +11,17 @@ const scrollAreaPropDefs = {
|
|
|
11
11
|
size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '1', responsive: true },
|
|
12
12
|
...radiusPropDef,
|
|
13
13
|
scrollbars: { type: 'enum', values: scrollbarsValues, default: 'both' },
|
|
14
|
+
/**
|
|
15
|
+
* Fades the content toward the top and bottom edges while there is more content past them.
|
|
16
|
+
* An edge with nothing hidden past it does not fade. A floating band over an edge can set
|
|
17
|
+
* `--scroll-fade-start` or `--scroll-fade-end` to its height, so content fades as it passes
|
|
18
|
+
* under the band.
|
|
19
|
+
*/
|
|
20
|
+
fade: { type: 'boolean', default: false },
|
|
14
21
|
} satisfies {
|
|
15
22
|
size: PropDef<(typeof sizes)[number]>;
|
|
16
23
|
scrollbars: PropDef<(typeof scrollbarsValues)[number]>;
|
|
24
|
+
fade: PropDef<boolean>;
|
|
17
25
|
};
|
|
18
26
|
|
|
19
27
|
export { scrollAreaPropDefs };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
|
|
4
|
+
import { useComposedRefs } from 'radix-ui/internal';
|
|
4
5
|
|
|
5
6
|
import { scrollAreaPropDefs } from './scroll-area.props.js';
|
|
7
|
+
import { useScrollEdges } from '../hooks/use-scroll-edges.js';
|
|
6
8
|
import { extractMarginProps } from '../helpers/extract-margin-props.js';
|
|
7
9
|
import { getMarginStyles } from '../helpers/get-margin-styles.js';
|
|
8
10
|
import { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';
|
|
@@ -35,14 +37,18 @@ const ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props,
|
|
|
35
37
|
size = scrollAreaPropDefs.size.default,
|
|
36
38
|
radius = scrollAreaPropDefs.radius.default,
|
|
37
39
|
scrollbars = scrollAreaPropDefs.scrollbars.default,
|
|
40
|
+
fade = scrollAreaPropDefs.fade.default,
|
|
38
41
|
...viewportProps
|
|
39
42
|
} = marginRest;
|
|
43
|
+
const setEdgesElement = useScrollEdges<HTMLDivElement>(fade);
|
|
44
|
+
const viewportRef = useComposedRefs(forwardedRef, setEdgesElement);
|
|
40
45
|
|
|
41
46
|
return (
|
|
42
47
|
<ScrollAreaPrimitive.Root
|
|
43
48
|
type={type}
|
|
44
49
|
scrollHideDelay={scrollHideDelay}
|
|
45
50
|
className={classNames('rt-ScrollAreaRoot', marginClassNames, className)}
|
|
51
|
+
data-fade={fade ? '' : undefined}
|
|
46
52
|
style={mergeStyles(marginCustomProperties, style)}
|
|
47
53
|
asChild={asChild}
|
|
48
54
|
>
|
|
@@ -50,7 +56,7 @@ const ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props,
|
|
|
50
56
|
<>
|
|
51
57
|
<ScrollAreaPrimitive.Viewport
|
|
52
58
|
{...viewportProps}
|
|
53
|
-
ref={
|
|
59
|
+
ref={viewportRef}
|
|
54
60
|
className="rt-ScrollAreaViewport"
|
|
55
61
|
>
|
|
56
62
|
{children}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Publishes how much content is hidden past each block edge of a scroller, as
|
|
5
|
+
* `--scroll-overflow-start` and `--scroll-overflow-end` (px) on the element.
|
|
6
|
+
* The scroll fade reads them, so an edge fades only while content is hidden
|
|
7
|
+
* there, and the fade ramps in over the first pixels of scrolling.
|
|
8
|
+
*
|
|
9
|
+
* Writes happen at most once per frame, on scroll and when the element or its
|
|
10
|
+
* content resizes. Nothing re-renders.
|
|
11
|
+
*/
|
|
12
|
+
export function useScrollEdges<T extends HTMLElement>(enabled: boolean) {
|
|
13
|
+
const [element, setElement] = React.useState<T | null>(null);
|
|
14
|
+
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (!enabled || !element) return;
|
|
17
|
+
let frame = 0;
|
|
18
|
+
const write = () => {
|
|
19
|
+
frame = 0;
|
|
20
|
+
const start = Math.max(0, element.scrollTop);
|
|
21
|
+
const end = Math.max(0, element.scrollHeight - element.clientHeight - element.scrollTop);
|
|
22
|
+
element.style.setProperty('--scroll-overflow-start', `${start}px`);
|
|
23
|
+
element.style.setProperty('--scroll-overflow-end', `${end}px`);
|
|
24
|
+
};
|
|
25
|
+
const schedule = () => {
|
|
26
|
+
if (!frame) frame = requestAnimationFrame(write);
|
|
27
|
+
};
|
|
28
|
+
write();
|
|
29
|
+
element.addEventListener('scroll', schedule, { passive: true });
|
|
30
|
+
const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(schedule);
|
|
31
|
+
observer?.observe(element);
|
|
32
|
+
for (const child of Array.from(element.children)) observer?.observe(child);
|
|
33
|
+
const mutations = typeof MutationObserver === 'undefined' ? null : new MutationObserver(schedule);
|
|
34
|
+
mutations?.observe(element, { childList: true });
|
|
35
|
+
return () => {
|
|
36
|
+
if (frame) cancelAnimationFrame(frame);
|
|
37
|
+
element.removeEventListener('scroll', schedule);
|
|
38
|
+
observer?.disconnect();
|
|
39
|
+
mutations?.disconnect();
|
|
40
|
+
element.style.removeProperty('--scroll-overflow-start');
|
|
41
|
+
element.style.removeProperty('--scroll-overflow-end');
|
|
42
|
+
};
|
|
43
|
+
}, [enabled, element]);
|
|
44
|
+
|
|
45
|
+
return setElement;
|
|
46
|
+
}
|
package/styles.css
CHANGED
|
@@ -18981,6 +18981,19 @@
|
|
|
18981
18981
|
background-color: var(--gray-a8);
|
|
18982
18982
|
}
|
|
18983
18983
|
}
|
|
18984
|
+
:where(.rt-ScrollAreaRoot[data-fade]) > .rt-ScrollAreaViewport,
|
|
18985
|
+
.rt-MessageScrollerViewport:where([data-fade]) {
|
|
18986
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent 0%, black min(var(--scroll-overflow-start, 0px), var(--scroll-fade-start, var(--scroll-fade-size))), black calc(100% - min(var(--scroll-overflow-end, 0px), var(--scroll-fade-end, var(--scroll-fade-size)))), transparent 100%);
|
|
18987
|
+
mask-image: linear-gradient(to bottom, transparent 0%, black min(var(--scroll-overflow-start, 0px), var(--scroll-fade-start, var(--scroll-fade-size))), black calc(100% - min(var(--scroll-overflow-end, 0px), var(--scroll-fade-end, var(--scroll-fade-size)))), transparent 100%);
|
|
18988
|
+
}
|
|
18989
|
+
:root,
|
|
18990
|
+
.radix-themes {
|
|
18991
|
+
--scroll-fade-size: var(--space-6);
|
|
18992
|
+
}
|
|
18993
|
+
:where(.rt-ScrollAreaViewport, .rt-MessageScrollerViewport) :where(.rt-ScrollAreaRoot, .rt-MessageScrollerViewport) {
|
|
18994
|
+
--scroll-fade-start: initial;
|
|
18995
|
+
--scroll-fade-end: initial;
|
|
18996
|
+
}
|
|
18984
18997
|
.rt-SegmentedControlRoot:where(:has([data-icon-only])) {
|
|
18985
18998
|
grid-auto-columns: minmax(var(--segmented-control-height), 1fr);
|
|
18986
18999
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as e}from"./chunk-KRJTW535.js";import{a as s}from"./chunk-NZJGC6ZW.js";var r=["1","2","3"],o=["vertical","horizontal","both"],l={...s,size:{type:"enum",className:"rt-r-size",values:r,default:"1",responsive:!0},...e,scrollbars:{type:"enum",values:o,default:"both"}};export{l as a};
|
|
2
|
-
//# sourceMappingURL=chunk-5KICSAT7.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as S}from"./chunk-5GXFBLBJ.js";import{a as f}from"./chunk-UBOOUDS4.js";import{a as o}from"./chunk-5KICSAT7.js";import{a as n}from"./chunk-PS6NEG5A.js";import{a as c}from"./chunk-E23RKOQJ.js";import{b as a}from"./chunk-JUY7CBSL.js";import*as r from"react";import t from"classnames";import{ScrollArea as e}from"radix-ui";var C=r.forwardRef((P,u)=>{let{rest:A,...d}=S(P),[y,v]=f(d),{asChild:s,children:N,className:R,style:b,type:i,scrollHideDelay:g=i!=="scroll"?0:void 0,dir:z,size:p=o.size.default,radius:m=o.radius.default,scrollbars:l=o.scrollbars.default,...h}=A;return r.createElement(e.Root,{type:i,scrollHideDelay:g,className:t("rt-ScrollAreaRoot",y,R),style:c(v,b),asChild:s},n({asChild:s,children:N},w=>r.createElement(r.Fragment,null,r.createElement(e.Viewport,{...h,ref:u,className:"rt-ScrollAreaViewport"},w),r.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),l!=="vertical"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"horizontal",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l!=="horizontal"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"vertical",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l==="both"?r.createElement(e.Corner,{className:"rt-ScrollAreaCorner"}):null)))});C.displayName="ScrollArea";export{C as a};
|
|
2
|
-
//# sourceMappingURL=chunk-CTA5ODAO.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/scroll-area.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { scrollAreaPropDefs } from './scroll-area.props.js';\nimport { extractMarginProps } from '../helpers/extract-margin-props.js';\nimport { getMarginStyles } from '../helpers/get-margin-styles.js';\nimport { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { mergeStyles } from '../helpers/merge-styles.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype ScrollAreaElement = React.ElementRef<typeof ScrollAreaPrimitive.Viewport>;\ntype ScrollAreaOwnProps = GetPropDefTypes<typeof scrollAreaPropDefs>;\ninterface ScrollAreaProps\n extends ComponentPropsWithout<typeof ScrollAreaPrimitive.Root, RemovedProps>,\n ComponentPropsWithout<typeof ScrollAreaPrimitive.Viewport, RemovedProps | 'dir'>,\n MarginProps,\n ScrollAreaOwnProps {}\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props, forwardedRef) => {\n const { rest: marginRest, ...marginProps } = extractMarginProps(props);\n const [marginClassNames, marginCustomProperties] = getMarginStyles(marginProps);\n\n const {\n asChild,\n children,\n className,\n style,\n type,\n scrollHideDelay = type !== 'scroll' ? 0 : undefined,\n dir,\n size = scrollAreaPropDefs.size.default,\n radius = scrollAreaPropDefs.radius.default,\n scrollbars = scrollAreaPropDefs.scrollbars.default,\n ...viewportProps\n } = marginRest;\n\n return (\n <ScrollAreaPrimitive.Root\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={classNames('rt-ScrollAreaRoot', marginClassNames, className)}\n style={mergeStyles(marginCustomProperties, style)}\n asChild={asChild}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <ScrollAreaPrimitive.Viewport\n {...viewportProps}\n ref={forwardedRef}\n className=\"rt-ScrollAreaViewport\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n\n <div className=\"rt-ScrollAreaViewportFocusRing\" />\n\n {scrollbars !== 'vertical' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"horizontal\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars !== 'horizontal' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"vertical\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars === 'both' ? (\n <ScrollAreaPrimitive.Corner className=\"rt-ScrollAreaCorner\" />\n ) : null}\n </>\n ))}\n </ScrollAreaPrimitive.Root>\n );\n});\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps };\n"],
|
|
5
|
-
"mappings": "gPAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,cAAcC,MAA2B,WAoBlD,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,KAAMC,EAAY,GAAGC,CAAY,EAAIC,EAAmBJ,CAAK,EAC/D,CAACK,EAAkBC,CAAsB,EAAIC,EAAgBJ,CAAW,EAExE,CACJ,QAAAK,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,gBAAAC,EAAkBD,IAAS,SAAW,EAAI,OAC1C,IAAAE,EACA,KAAAC,EAAOC,EAAmB,KAAK,QAC/B,OAAAC,EAASD,EAAmB,OAAO,QACnC,WAAAE,EAAaF,EAAmB,WAAW,QAC3C,GAAGG,CACL,EAAIjB,EAEJ,OACE,gBAACkB,EAAoB,KAApB,CACC,KAAMR,EACN,gBAAiBC,EACjB,UAAWQ,EAAW,oBAAqBhB,EAAkBK,CAAS,EACtE,MAAOY,EAAYhB,EAAwBK,CAAK,EAChD,QAASH,GAERe,EAAW,CAAE,QAAAf,EAAS,SAAAC,CAAS,EAAIA,GAClC,gCACE,gBAACW,EAAoB,SAApB,CACE,GAAGD,EACJ,IAAKlB,EACL,UAAU,yBAETQ,CACH,EAEA,gBAAC,OAAI,UAAU,iCAAiC,EAE/CS,IAAe,WACd,gBAACE,EAAoB,UAApB,CACC,cAAaH,EACb,YAAY,aACZ,UAAWI,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOT,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACI,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHF,IAAe,aACd,gBAACE,EAAoB,UAApB,CACC,cAAaH,EACb,YAAY,WACZ,UAAWI,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOT,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACI,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHF,IAAe,OACd,gBAACE,EAAoB,OAApB,CAA2B,UAAU,sBAAsB,EAC1D,IACN,CACD,CACH,CAEJ,CAAC,EACDrB,EAAW,YAAc",
|
|
6
|
-
"names": ["React", "classNames", "ScrollAreaPrimitive", "ScrollArea", "props", "forwardedRef", "marginRest", "marginProps", "extractMarginProps", "marginClassNames", "marginCustomProperties", "getMarginStyles", "asChild", "children", "className", "style", "type", "scrollHideDelay", "dir", "size", "scrollAreaPropDefs", "radius", "scrollbars", "viewportProps", "ScrollAreaPrimitive", "classNames", "mergeStyles", "getSubtree", "getResponsiveClassNames"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-4XGGX2V2.js";import{a as b}from"./chunk-OS3FCYZY.js";var B={};b(B,{Button:()=>g,Content:()=>d,Item:()=>f,Root:()=>S,Viewport:()=>u,useMessageScroller:()=>v,useMessageScrollerScrollable:()=>y,useMessageScrollerVisibility:()=>w});import*as e from"react";import a from"classnames";import{MessageScroller as l,useMessageScroller as v,useMessageScrollerScrollable as y,useMessageScrollerVisibility as w}from"@shadcn/react/message-scroller";var S=e.forwardRef(({autoScroll:o=!0,defaultScrollPosition:r="end",scrollEdgeThreshold:t,scrollMargin:s,className:i,children:n,...c},p)=>e.createElement(l.Provider,{autoScroll:o,defaultScrollPosition:r,...t!=null?{scrollEdgeThreshold:t}:{},...s!=null?{scrollMargin:s}:{}},e.createElement(l.Root,{...c,ref:p,className:a("rt-MessageScrollerRoot",i)},n)));S.displayName="MessageScroller.Root";var u=e.forwardRef(({className:o,"aria-label":r,...t},s)=>e.createElement(l.Viewport,{"aria-label":r??"",...t,ref:s,className:a("rt-MessageScrollerViewport",o)}));u.displayName="MessageScroller.Viewport";var d=e.forwardRef(({className:o,...r},t)=>e.createElement(l.Content,{...r,ref:t,className:a("rt-MessageScrollerContent",o)}));d.displayName="MessageScroller.Content";var f=e.forwardRef(({className:o,...r},t)=>e.createElement(l.Item,{...r,ref:t,className:a("rt-MessageScrollerItem",o)}));f.displayName="MessageScroller.Item";var g=e.forwardRef(({direction:o="end",behavior:r,className:t,children:s,size:i="2",variant:n="surface",color:c="gray",radius:p="full","aria-label":P,...M},R)=>e.createElement(l.Button,{direction:o,...r?{behavior:r}:{},render:e.createElement(m,{...M,ref:R,size:i,variant:n,color:c,radius:p,"aria-label":P??(o==="end"?"Jump to the latest":"Jump to the first"),className:a("rt-MessageScrollerButton",t),"data-direction":o},s??e.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":!0,style:o==="start"?{transform:"rotate(180deg)"}:void 0},e.createElement("path",{d:"M7.5 2.5v10M3.5 8.5l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})))}));g.displayName="MessageScroller.Button";export{v as a,y as b,w as c,S as d,u as e,d as f,f as g,g as h,B as i};
|
|
2
|
-
//# sourceMappingURL=chunk-W4WWN3RC.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/message-scroller.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\n/**\n * MessageScroller \u2014 a transcript that follows a conversation.\n *\n * The behaviour is shadcn/ui's Message Scroller primitive (`@shadcn/react/message-scroller`,\n * MIT, https://ui.shadcn.com). Streaming, anchoring a new turn, keeping your place when history\n * loads above, and jumping back to the latest are a body of edge cases nobody should rewrite, so\n * Kookie takes the primitive and adds only the surface: the parts, the class names, the button.\n *\n * Anatomy\n * ```tsx\n * <MessageScroller.Root>\n * <MessageScroller.Viewport aria-label=\"Conversation\">\n * <MessageScroller.Content>\n * <MessageScroller.Item messageId=\"u1\" scrollAnchor>\u2026</MessageScroller.Item>\n * <MessageScroller.Item messageId=\"a1\">\u2026</MessageScroller.Item>\n * </MessageScroller.Content>\n * </MessageScroller.Viewport>\n * <MessageScroller.Button aria-label=\"Jump to the latest\" />\n * </MessageScroller.Root>\n * ```\n *\n * The viewport is its own scroller. Kookie's `ScrollArea` is Radix's, and Radix cannot hand its\n * viewport element to another library, so the transcript scrolls natively with a thin scrollbar.\n *\n * Requires React 19, which the primitive needs.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport {\n MessageScroller as Primitive,\n useMessageScroller,\n useMessageScrollerScrollable,\n useMessageScrollerVisibility,\n type MessageScrollerDefaultScrollPosition,\n type MessageScrollerScrollOptions,\n type MessageScrollerScrollable,\n type MessageScrollerVisibilityState,\n} from '@shadcn/react/message-scroller';\n\nimport { IconButton, type IconButtonProps } from './icon-button.js';\n\ninterface RootProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Keeps the newest content in view while the reader is at the end. Default `true`.\n * Once the reader scrolls up, the transcript stays where they are until they return.\n */\n autoScroll?: boolean;\n /** Where the transcript opens: `end` (default), `start`, or the last anchored message. */\n defaultScrollPosition?: MessageScrollerDefaultScrollPosition;\n /** Distance in pixels from the end that still counts as \"at the end\". */\n scrollEdgeThreshold?: number;\n /** Space in pixels kept above a message when one is scrolled to or anchored. */\n scrollMargin?: number;\n}\n\n/** Holds the scroll state. Everything else goes inside it. */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n ({ autoScroll = true, defaultScrollPosition = 'end', scrollEdgeThreshold, scrollMargin, className, children, ...props }, forwardedRef) => (\n <Primitive.Provider\n autoScroll={autoScroll}\n defaultScrollPosition={defaultScrollPosition}\n {...(scrollEdgeThreshold != null ? { scrollEdgeThreshold } : {})}\n {...(scrollMargin != null ? { scrollMargin } : {})}\n >\n <Primitive.Root {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerRoot', className)}>\n {children}\n </Primitive.Root>\n </Primitive.Provider>\n ),\n);\nRoot.displayName = 'MessageScroller.Root';\n\ninterface ViewportProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Name of the transcript region, e.g. \"Conversation\". */\n 'aria-label'?: string;\n /** Keep the reader's place when older messages are added above. Default `true`. */\n preserveScrollOnPrepend?: boolean;\n}\n\n/** The scrolling element. */\nconst Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(({ className, 'aria-label': label, ...props }, forwardedRef) => (\n // The primitive names an unnamed viewport \"Messages\", in English. An empty name is skipped by\n // accessible-name computation, so a transcript is only named when the app names it.\n <Primitive.Viewport aria-label={label ?? ''} {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerViewport', className)} />\n));\nViewport.displayName = 'MessageScroller.Viewport';\n\ntype ContentProps = React.ComponentPropsWithoutRef<'div'>;\n\n/** The list of messages, inside the viewport. */\nconst Content = React.forwardRef<HTMLDivElement, ContentProps>(({ className, ...props }, forwardedRef) => (\n <Primitive.Content {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerContent', className)} />\n));\nContent.displayName = 'MessageScroller.Content';\n\ninterface ItemProps extends React.ComponentPropsWithoutRef<'div'> {\n /** A stable id, so the row can be scrolled to with `useMessageScroller().scrollToMessage`. */\n messageId?: string;\n /** Anchor this row near the top when it arrives. Set it on the person's own messages. */\n scrollAnchor?: boolean;\n}\n\n/** One row of the transcript. */\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(({ className, ...props }, forwardedRef) => (\n <Primitive.Item {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerItem', className)} />\n));\nItem.displayName = 'MessageScroller.Item';\n\ntype ButtonProps = Omit<IconButtonProps, 'aria-label' | 'aria-labelledby'> & {\n /** Accessible name, in your words. Default \"Jump to the latest\". */\n 'aria-label'?: string;\n /** `end` jumps to the latest message (default); `start` to the first. */\n direction?: 'start' | 'end';\n /** Scroll behaviour of the jump. Default `smooth`. */\n behavior?: ScrollBehavior;\n};\n\n/**\n * Jumps back to the latest message. It renders only while the reader is away from the end.\n * Place it inside `Root`, after the viewport. It sits over the viewport's bottom edge.\n */\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ direction = 'end', behavior, className, children, size = '2', variant = 'surface', color = 'gray', radius = 'full', 'aria-label': label, ...props }, forwardedRef) => (\n <Primitive.Button\n direction={direction}\n {...(behavior ? { behavior } : {})}\n render={\n <IconButton\n {...props}\n ref={forwardedRef}\n size={size}\n variant={variant}\n color={color}\n radius={radius}\n aria-label={label ?? (direction === 'end' ? 'Jump to the latest' : 'Jump to the first')}\n className={classNames('rt-MessageScrollerButton', className)}\n data-direction={direction}\n >\n {children ?? (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden style={direction === 'start' ? { transform: 'rotate(180deg)' } : undefined}>\n <path d=\"M7.5 2.5v10M3.5 8.5l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </IconButton>\n }\n />\n ),\n);\nButton.displayName = 'MessageScroller.Button';\n\nexport { Root, Viewport, Content, Item, Button, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility };\nexport type {\n RootProps as MessageScrollerRootProps,\n ViewportProps as MessageScrollerViewportProps,\n ContentProps as MessageScrollerContentProps,\n ItemProps as MessageScrollerItemProps,\n ButtonProps as MessageScrollerButtonProps,\n MessageScrollerDefaultScrollPosition,\n MessageScrollerScrollOptions,\n MessageScrollerScrollable,\n MessageScrollerVisibilityState,\n};\n"],
|
|
5
|
-
"mappings": "gFAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,YAAAC,EAAA,SAAAC,EAAA,SAAAC,EAAA,aAAAC,EAAA,uBAAAC,EAAA,iCAAAC,EAAA,iCAAAC,IA6BA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OACE,mBAAmBC,EACnB,sBAAAL,EACA,gCAAAC,EACA,gCAAAC,MAKK,iCAmBP,IAAMI,EAAa,aACjB,CAAC,CAAE,WAAAC,EAAa,GAAM,sBAAAC,EAAwB,MAAO,oBAAAC,EAAqB,aAAAC,EAAc,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IACvH,gBAACC,EAAU,SAAV,CACC,WAAYR,EACZ,sBAAuBC,EACtB,GAAIC,GAAuB,KAAO,CAAE,oBAAAA,CAAoB,EAAI,CAAC,EAC7D,GAAIC,GAAgB,KAAO,CAAE,aAAAA,CAAa,EAAI,CAAC,GAEhD,gBAACK,EAAU,KAAV,CAAgB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,yBAA0BL,CAAS,GACpGC,CACH,CACF,CAEJ,EACAN,EAAK,YAAc,uBAUnB,IAAMW,EAAiB,aAA0C,CAAC,CAAE,UAAAN,EAAW,aAAcO,EAAO,GAAGL,CAAM,EAAGC,IAG9G,gBAACC,EAAU,SAAV,CAAmB,aAAYG,GAAS,GAAK,GAAGL,EAAO,IAAKC,EAAc,UAAWE,EAAW,6BAA8BL,CAAS,EAAG,CAC5I,EACDM,EAAS,YAAc,2BAKvB,IAAME,EAAgB,aAAyC,CAAC,CAAE,UAAAR,EAAW,GAAGE,CAAM,EAAGC,IACvF,gBAACC,EAAU,QAAV,CAAmB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,4BAA6BL,CAAS,EAAG,CACjH,EACDQ,EAAQ,YAAc,0BAUtB,IAAMC,EAAa,aAAsC,CAAC,CAAE,UAAAT,EAAW,GAAGE,CAAM,EAAGC,IACjF,gBAACC,EAAU,KAAV,CAAgB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,yBAA0BL,CAAS,EAAG,CAC3G,EACDS,EAAK,YAAc,uBAenB,IAAMC,EAAe,aACnB,CAAC,CAAE,UAAAC,EAAY,MAAO,SAAAC,EAAU,UAAAZ,EAAW,SAAAC,EAAU,KAAAY,EAAO,IAAK,QAAAC,EAAU,UAAW,MAAAC,EAAQ,OAAQ,OAAAC,EAAS,OAAQ,aAAcT,EAAO,GAAGL,CAAM,EAAGC,IACtJ,gBAACC,EAAU,OAAV,CACC,UAAWO,EACV,GAAIC,EAAW,CAAE,SAAAA,CAAS,EAAI,CAAC,EAChC,OACE,gBAACK,EAAA,CACE,GAAGf,EACJ,IAAKC,EACL,KAAMU,EACN,QAASC,EACT,MAAOC,EACP,OAAQC,EACR,aAAYT,IAAUI,IAAc,MAAQ,qBAAuB,qBACnE,UAAWN,EAAW,2BAA4BL,CAAS,EAC3D,iBAAgBW,GAEfV,GACC,gBAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAW,GAAC,MAAOU,IAAc,QAAU,CAAE,UAAW,gBAAiB,EAAI,QACvI,gBAAC,QAAK,EAAE,8BAA8B,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,CAC7H,CAEJ,EAEJ,CAEJ,EACAD,EAAO,YAAc",
|
|
6
|
-
"names": ["message_scroller_exports", "__export", "Button", "Content", "Item", "Root", "Viewport", "useMessageScroller", "useMessageScrollerScrollable", "useMessageScrollerVisibility", "React", "classNames", "Primitive", "Root", "autoScroll", "defaultScrollPosition", "scrollEdgeThreshold", "scrollMargin", "className", "children", "props", "forwardedRef", "Primitive", "classNames", "Viewport", "label", "Content", "Item", "Button", "direction", "behavior", "size", "variant", "color", "radius", "IconButton"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|