@womp/kookie-ui 0.15.0 → 0.16.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 +91 -0
- package/dist/cjs/components/_internal/pane-chrome.d.ts +11 -0
- package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
- 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/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/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- 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/components/toolbar.d.ts +8 -2
- package/dist/cjs/components/toolbar.d.ts.map +1 -1
- package/dist/cjs/components/toolbar.js +2 -2
- package/dist/cjs/components/toolbar.js.map +3 -3
- package/dist/cjs/hooks/use-thumb-sync.d.ts +13 -0
- package/dist/cjs/hooks/use-thumb-sync.d.ts.map +1 -0
- package/dist/cjs/hooks/use-thumb-sync.js +2 -0
- package/dist/cjs/hooks/use-thumb-sync.js.map +7 -0
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/chunk-2IWL4V4H.js +2 -0
- package/dist/esm/chunk-2IWL4V4H.js.map +7 -0
- package/dist/esm/{chunk-CYXBQRQK.js → chunk-2MYYU7ST.js} +2 -2
- package/dist/esm/{chunk-KA5XDSKH.js → chunk-2NNCZM7P.js} +2 -2
- package/dist/esm/chunk-4EBCFKNC.js +2 -0
- package/dist/esm/chunk-4EBCFKNC.js.map +7 -0
- package/dist/esm/{chunk-4FQLRQKJ.js → chunk-BDOMLGLZ.js} +2 -2
- package/dist/esm/chunk-DDFONGSM.js +2 -0
- package/dist/esm/chunk-DDFONGSM.js.map +7 -0
- package/dist/esm/{chunk-K7XY7FLD.js → chunk-DDYII5NA.js} +2 -2
- package/dist/esm/chunk-HKRQ3E3I.js +2 -0
- package/dist/esm/chunk-HKRQ3E3I.js.map +7 -0
- package/dist/esm/{chunk-SHFBYYEP.js → chunk-J43ZS6TI.js} +2 -2
- package/dist/esm/{chunk-5EAMAW2H.js → chunk-PAB6HVKC.js} +2 -2
- package/dist/esm/{chunk-A6CDNZMT.js → chunk-RVHKSNMJ.js} +2 -2
- package/dist/esm/chunk-UZS3BA2Z.js +2 -0
- package/dist/esm/chunk-UZS3BA2Z.js.map +7 -0
- package/dist/esm/{chunk-TY3DIJFF.js → chunk-YSHEXVBI.js} +2 -2
- package/dist/esm/components/_internal/pane-chrome.d.ts +11 -0
- package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- 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/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/shell.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/components/toolbar.d.ts +8 -2
- package/dist/esm/components/toolbar.d.ts.map +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/hooks/use-thumb-sync.d.ts +13 -0
- package/dist/esm/hooks/use-thumb-sync.d.ts.map +1 -0
- package/dist/esm/hooks/use-thumb-sync.js +2 -0
- package/dist/esm/hooks/use-thumb-sync.js.map +7 -0
- package/dist/esm/index.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/pane-chrome.tsx +37 -9
- package/src/components/scroll-area.tsx +3 -1
- package/src/components/select.tsx +3 -0
- package/src/components/shell.css +109 -0
- package/src/components/toolbar.css +6 -0
- package/src/components/toolbar.tsx +15 -6
- package/src/hooks/use-thumb-sync.ts +55 -0
- package/styles.css +91 -0
- package/dist/esm/chunk-BQE543O5.js +0 -2
- package/dist/esm/chunk-BQE543O5.js.map +0 -7
- package/dist/esm/chunk-C7JXVNMI.js +0 -2
- package/dist/esm/chunk-C7JXVNMI.js.map +0 -7
- package/dist/esm/chunk-JZD5FHSU.js +0 -2
- package/dist/esm/chunk-JZD5FHSU.js.map +0 -7
- package/dist/esm/chunk-VASXAV62.js +0 -2
- package/dist/esm/chunk-VASXAV62.js.map +0 -7
- /package/dist/esm/{chunk-CYXBQRQK.js.map → chunk-2MYYU7ST.js.map} +0 -0
- /package/dist/esm/{chunk-KA5XDSKH.js.map → chunk-2NNCZM7P.js.map} +0 -0
- /package/dist/esm/{chunk-4FQLRQKJ.js.map → chunk-BDOMLGLZ.js.map} +0 -0
- /package/dist/esm/{chunk-K7XY7FLD.js.map → chunk-DDYII5NA.js.map} +0 -0
- /package/dist/esm/{chunk-SHFBYYEP.js.map → chunk-J43ZS6TI.js.map} +0 -0
- /package/dist/esm/{chunk-5EAMAW2H.js.map → chunk-PAB6HVKC.js.map} +0 -0
- /package/dist/esm/{chunk-A6CDNZMT.js.map → chunk-RVHKSNMJ.js.map} +0 -0
- /package/dist/esm/{chunk-TY3DIJFF.js.map → chunk-YSHEXVBI.js.map} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Keeps a Radix ScrollArea's thumbs on the scroll position on every scroll.
|
|
4
|
+
*
|
|
5
|
+
* Radix moves a thumb from a requestAnimationFrame loop it starts on the first scroll event of a
|
|
6
|
+
* burst. Next's production minifier compiles that self-calling loop away, so in a production
|
|
7
|
+
* build the thumb moves once, sits while the content scrolls, and jumps when the next burst
|
|
8
|
+
* starts. This writes the transform Radix would, at most once per frame. Nothing re-renders.
|
|
9
|
+
*
|
|
10
|
+
* Pass the hook's setter as a ref on `ScrollArea.Viewport`; the scrollbars are its siblings.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useThumbSync<T extends HTMLElement>(): React.Dispatch<React.SetStateAction<T | null>>;
|
|
13
|
+
//# sourceMappingURL=use-thumb-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-thumb-sync.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-thumb-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,oDAkCjD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var h=Object.create;var c=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var o in e)c(t,o,{get:e[o],enumerable:!0})},p=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of T(e))!g.call(t,n)&&n!==o&&c(t,n,{get:()=>e[n],enumerable:!(r=b(e,n))||r.enumerable});return t};var L=(t,e,o)=>(o=t!=null?h(E(t)):{},p(e||!t||!t.__esModule?c(o,"default",{value:t,enumerable:!0}):o,t)),S=t=>p(c({},"__esModule",{value:!0}),t);var F={};H(F,{useThumbSync:()=>y});module.exports=S(F);var i=L(require("react"));function y(){let[t,e]=i.useState(null);return i.useEffect(()=>{let o=t?.parentElement;if(!t||!o)return;let r=0,n=()=>{r=0;for(let s of o.querySelectorAll(":scope > .rt-ScrollAreaScrollbar > .rt-ScrollAreaThumb")){let l=s.parentElement,a=getComputedStyle(l);if(l.dataset.orientation==="horizontal"){let f=l.clientWidth-parseFloat(a.paddingLeft)-parseFloat(a.paddingRight),m=d(t.scrollLeft,t.scrollWidth-t.offsetWidth,f-s.offsetWidth);s.style.transform=`translate3d(${m}px, 0, 0)`}else{let f=l.clientHeight-parseFloat(a.paddingTop)-parseFloat(a.paddingBottom),m=d(t.scrollTop,t.scrollHeight-t.offsetHeight,f-s.offsetHeight);s.style.transform=`translate3d(0, ${m}px, 0)`}}},u=()=>{r||(r=requestAnimationFrame(n))};return t.addEventListener("scroll",u,{passive:!0}),()=>{r&&cancelAnimationFrame(r),t.removeEventListener("scroll",u)}},[t]),e}function d(t,e,o){return e<=0||o<=0?0:Math.min(Math.max(t,-e),e)/e*o}
|
|
2
|
+
//# sourceMappingURL=use-thumb-sync.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/use-thumb-sync.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\n\n/**\n * Keeps a Radix ScrollArea's thumbs on the scroll position on every scroll.\n *\n * Radix moves a thumb from a requestAnimationFrame loop it starts on the first scroll event of a\n * burst. Next's production minifier compiles that self-calling loop away, so in a production\n * build the thumb moves once, sits while the content scrolls, and jumps when the next burst\n * starts. This writes the transform Radix would, at most once per frame. Nothing re-renders.\n *\n * Pass the hook's setter as a ref on `ScrollArea.Viewport`; the scrollbars are its siblings.\n */\nexport function useThumbSync<T extends HTMLElement>() {\n const [viewport, setViewport] = React.useState<T | null>(null);\n\n React.useEffect(() => {\n const root = viewport?.parentElement;\n if (!viewport || !root) return;\n let frame = 0;\n const write = () => {\n frame = 0;\n for (const thumb of root.querySelectorAll<HTMLElement>(':scope > .rt-ScrollAreaScrollbar > .rt-ScrollAreaThumb')) {\n const scrollbar = thumb.parentElement as HTMLElement;\n const style = getComputedStyle(scrollbar);\n if (scrollbar.dataset.orientation === 'horizontal') {\n const track = scrollbar.clientWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);\n const offset = thumbOffset(viewport.scrollLeft, viewport.scrollWidth - viewport.offsetWidth, track - thumb.offsetWidth);\n thumb.style.transform = `translate3d(${offset}px, 0, 0)`;\n } else {\n const track = scrollbar.clientHeight - parseFloat(style.paddingTop) - parseFloat(style.paddingBottom);\n const offset = thumbOffset(viewport.scrollTop, viewport.scrollHeight - viewport.offsetHeight, track - thumb.offsetHeight);\n thumb.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(write);\n };\n viewport.addEventListener('scroll', schedule, { passive: true });\n return () => {\n if (frame) cancelAnimationFrame(frame);\n viewport.removeEventListener('scroll', schedule);\n };\n }, [viewport]);\n\n return setViewport;\n}\n\n/** Radix's mapping: scroll position over its range, onto the room the thumb has to travel. */\nfunction thumbOffset(position: number, range: number, travel: number) {\n if (range <= 0 || travel <= 0) return 0;\n // Right-to-left scrolls run from -range to 0; the thumb then travels from -travel to 0.\n const clamped = Math.min(Math.max(position, -range), range);\n return (clamped / range) * travel;\n}\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBAYhB,SAASF,GAAsC,CACpD,GAAM,CAACG,EAAUC,CAAW,EAAU,WAAmB,IAAI,EAE7D,OAAM,YAAU,IAAM,CACpB,IAAMC,EAAOF,GAAU,cACvB,GAAI,CAACA,GAAY,CAACE,EAAM,OACxB,IAAIC,EAAQ,EACNC,EAAQ,IAAM,CAClBD,EAAQ,EACR,QAAWE,KAASH,EAAK,iBAA8B,wDAAwD,EAAG,CAChH,IAAMI,EAAYD,EAAM,cAClBE,EAAQ,iBAAiBD,CAAS,EACxC,GAAIA,EAAU,QAAQ,cAAgB,aAAc,CAClD,IAAME,EAAQF,EAAU,YAAc,WAAWC,EAAM,WAAW,EAAI,WAAWA,EAAM,YAAY,EAC7FE,EAASC,EAAYV,EAAS,WAAYA,EAAS,YAAcA,EAAS,YAAaQ,EAAQH,EAAM,WAAW,EACtHA,EAAM,MAAM,UAAY,eAAeI,CAAM,WAC/C,KAAO,CACL,IAAMD,EAAQF,EAAU,aAAe,WAAWC,EAAM,UAAU,EAAI,WAAWA,EAAM,aAAa,EAC9FE,EAASC,EAAYV,EAAS,UAAWA,EAAS,aAAeA,EAAS,aAAcQ,EAAQH,EAAM,YAAY,EACxHA,EAAM,MAAM,UAAY,kBAAkBI,CAAM,QAClD,CACF,CACF,EACME,EAAW,IAAM,CAChBR,IAAOA,EAAQ,sBAAsBC,CAAK,EACjD,EACA,OAAAJ,EAAS,iBAAiB,SAAUW,EAAU,CAAE,QAAS,EAAK,CAAC,EACxD,IAAM,CACPR,GAAO,qBAAqBA,CAAK,EACrCH,EAAS,oBAAoB,SAAUW,CAAQ,CACjD,CACF,EAAG,CAACX,CAAQ,CAAC,EAENC,CACT,CAGA,SAASS,EAAYE,EAAkBC,EAAeC,EAAgB,CACpE,OAAID,GAAS,GAAKC,GAAU,EAAU,EAEtB,KAAK,IAAI,KAAK,IAAIF,EAAU,CAACC,CAAK,EAAGA,CAAK,EACxCA,EAASC,CAC7B",
|
|
6
|
+
"names": ["use_thumb_sync_exports", "__export", "useThumbSync", "__toCommonJS", "React", "viewport", "setViewport", "root", "frame", "write", "thumb", "scrollbar", "style", "track", "offset", "thumbOffset", "schedule", "position", "range", "travel"]
|
|
7
|
+
}
|