@womp/kookie-ui 0.31.0 → 0.33.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 +101 -86
- package/dist/cjs/components/_internal/pane-chrome.js +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +2 -2
- package/dist/cjs/components/_internal/shell-bottom.d.ts +7 -2
- package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
- package/dist/cjs/components/_internal/shell-inspector.d.ts +7 -2
- package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
- package/dist/cjs/components/_internal/shell-pane.js +1 -1
- package/dist/cjs/components/_internal/shell-pane.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +7 -2
- package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/_internal/shell-store.d.ts +6 -6
- package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-store.js +1 -1
- package/dist/cjs/components/_internal/shell-store.js.map +3 -3
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +3 -3
- package/dist/cjs/components/link.props.d.ts +0 -6
- package/dist/cjs/components/link.props.d.ts.map +1 -1
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +3 -3
- package/dist/cjs/components/navigator.js +1 -1
- package/dist/cjs/components/navigator.js.map +2 -2
- package/dist/cjs/components/shell.context.js +1 -1
- package/dist/cjs/components/shell.context.js.map +2 -2
- package/dist/cjs/components/shell.d.ts +25 -7
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.hooks.js +1 -1
- package/dist/cjs/components/shell.hooks.js.map +2 -2
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +2 -2
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +3 -3
- package/dist/esm/chunk-3H33S3UA.js +3 -0
- package/dist/esm/{chunk-B7STVZPU.js.map → chunk-3H33S3UA.js.map} +3 -3
- package/dist/esm/chunk-5BXCPANF.js +3 -0
- package/dist/esm/{chunk-GHWEXMF6.js.map → chunk-5BXCPANF.js.map} +3 -3
- package/dist/esm/{chunk-ZG2XQUOH.js → chunk-B447PNRD.js} +2 -2
- package/dist/esm/{chunk-QDAM2I6O.js → chunk-BR6Z2CAE.js} +2 -2
- package/dist/esm/{chunk-4G3FJUER.js → chunk-INGT6DB6.js} +2 -2
- package/dist/esm/{chunk-4ZHBNYXM.js → chunk-J6B7UCZN.js} +2 -2
- package/dist/esm/chunk-KDJM4NQQ.js +3 -0
- package/dist/esm/chunk-KDJM4NQQ.js.map +7 -0
- package/dist/esm/{chunk-LTUW36HM.js → chunk-KGCGT4MJ.js} +2 -2
- package/dist/esm/chunk-NO2JCJWI.js +3 -0
- package/dist/esm/chunk-NO2JCJWI.js.map +7 -0
- package/dist/esm/{chunk-NFSW36RG.js → chunk-ODHCDJ3Y.js} +2 -2
- package/dist/esm/chunk-UMQOTGJC.js +3 -0
- package/dist/esm/chunk-UMQOTGJC.js.map +7 -0
- package/dist/esm/chunk-VKUAP54W.js +2 -0
- package/dist/esm/chunk-VKUAP54W.js.map +7 -0
- package/dist/esm/chunk-XD676L6S.js +3 -0
- package/dist/esm/chunk-XD676L6S.js.map +7 -0
- package/dist/esm/{chunk-6SGJWML7.js → chunk-XKYPJTRN.js} +2 -2
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.d.ts +7 -2
- package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.d.ts +7 -2
- package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-pane.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.d.ts +7 -2
- package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/_internal/shell-store.d.ts +6 -6
- package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-store.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.d.ts +0 -6
- package/dist/esm/components/link.props.d.ts.map +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/navigator.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.d.ts +25 -7
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/index.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/shell-bottom.tsx +11 -6
- package/src/components/_internal/shell-inspector.tsx +11 -6
- package/src/components/_internal/shell-sidebar.tsx +11 -6
- package/src/components/_internal/shell-store.tsx +13 -13
- package/src/components/link.css +16 -46
- package/src/components/link.props.tsx +0 -3
- package/src/components/shell.css +133 -47
- package/src/components/shell.tsx +50 -32
- package/src/styles/tokens/color.css +2 -0
- package/styles.css +102 -86
- package/tokens/base.css +1 -0
- package/tokens.css +1 -0
- package/dist/esm/chunk-4B3S2DM7.js +0 -3
- package/dist/esm/chunk-4B3S2DM7.js.map +0 -7
- package/dist/esm/chunk-AKMRPGNP.js +0 -3
- package/dist/esm/chunk-AKMRPGNP.js.map +0 -7
- package/dist/esm/chunk-B7STVZPU.js +0 -3
- package/dist/esm/chunk-EFXHBH3A.js +0 -2
- package/dist/esm/chunk-EFXHBH3A.js.map +0 -7
- package/dist/esm/chunk-GHWEXMF6.js +0 -3
- package/dist/esm/chunk-ZBSGH74F.js +0 -3
- package/dist/esm/chunk-ZBSGH74F.js.map +0 -7
- package/dist/esm/chunk-ZHXEEOGI.js +0 -3
- package/dist/esm/chunk-ZHXEEOGI.js.map +0 -7
- /package/dist/esm/{chunk-ZG2XQUOH.js.map → chunk-B447PNRD.js.map} +0 -0
- /package/dist/esm/{chunk-QDAM2I6O.js.map → chunk-BR6Z2CAE.js.map} +0 -0
- /package/dist/esm/{chunk-4G3FJUER.js.map → chunk-INGT6DB6.js.map} +0 -0
- /package/dist/esm/{chunk-4ZHBNYXM.js.map → chunk-J6B7UCZN.js.map} +0 -0
- /package/dist/esm/{chunk-LTUW36HM.js.map → chunk-KGCGT4MJ.js.map} +0 -0
- /package/dist/esm/{chunk-NFSW36RG.js.map → chunk-ODHCDJ3Y.js.map} +0 -0
- /package/dist/esm/{chunk-6SGJWML7.js.map → chunk-XKYPJTRN.js.map} +0 -0
package/src/components/shell.tsx
CHANGED
|
@@ -36,16 +36,16 @@ import { usePane, paneAttributes, usePresentationTable } from './_internal/shell
|
|
|
36
36
|
import { splitHandles, useInitialPaneSize, useResizablePane } from './_internal/shell-resizable.js';
|
|
37
37
|
import {
|
|
38
38
|
FIXED_TABLE,
|
|
39
|
-
|
|
39
|
+
ShellFrameContext,
|
|
40
40
|
ShellStoreContext,
|
|
41
41
|
createShellStore,
|
|
42
42
|
setShellPeek,
|
|
43
43
|
subscribeShellStore,
|
|
44
|
-
|
|
44
|
+
useFrameRegistration,
|
|
45
45
|
usePaneEntry,
|
|
46
46
|
useShellStore,
|
|
47
47
|
warnOnce,
|
|
48
|
-
type
|
|
48
|
+
type FramePaneId,
|
|
49
49
|
} from './_internal/shell-store.js';
|
|
50
50
|
import { navigationRest, detailRest, toPaneValue, startAnchoredGrowth, withoutRemovedPaneProps } from './_internal/shell-rest.js';
|
|
51
51
|
import { useShell, useSidebarMode } from './shell.context.js';
|
|
@@ -145,20 +145,20 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
145
145
|
const rootRef = React.useRef<HTMLDivElement | null>(null);
|
|
146
146
|
const composedRef = useComposedRefs(ref, rootRef);
|
|
147
147
|
|
|
148
|
-
//
|
|
149
|
-
const [
|
|
150
|
-
const
|
|
151
|
-
|
|
148
|
+
// The panes pulled off the frame (`flush={false}`). Only the Rail's is read, for the offset below.
|
|
149
|
+
const [offFrame, setOffFrame] = React.useState<ReadonlySet<FramePaneId>>(() => new Set());
|
|
150
|
+
const registerOffFrame = React.useCallback((id: FramePaneId) => {
|
|
151
|
+
setOffFrame((prev) => (prev.has(id) ? prev : new Set(prev).add(id)));
|
|
152
152
|
}, []);
|
|
153
|
-
const
|
|
154
|
-
|
|
153
|
+
const unregisterOffFrame = React.useCallback((id: FramePaneId) => {
|
|
154
|
+
setOffFrame((prev) => {
|
|
155
155
|
if (!prev.has(id)) return prev;
|
|
156
156
|
const next = new Set(prev);
|
|
157
157
|
next.delete(id);
|
|
158
158
|
return next;
|
|
159
159
|
});
|
|
160
160
|
}, []);
|
|
161
|
-
const
|
|
161
|
+
const frameContext = React.useMemo(() => ({ registerOffFrame, unregisterOffFrame }), [registerOffFrame, unregisterOffFrame]);
|
|
162
162
|
|
|
163
163
|
const closeOverlays = React.useCallback(() => {
|
|
164
164
|
for (const entry of store.entries.values()) {
|
|
@@ -444,10 +444,10 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
444
444
|
};
|
|
445
445
|
|
|
446
446
|
// A floating Panel sits beside the Rail when the Rail is showing, and
|
|
447
|
-
// beside its card when the Rail is
|
|
447
|
+
// beside its card when the Rail is off the frame.
|
|
448
448
|
const rail = store.entries.get('rail');
|
|
449
449
|
const railShown = rail !== undefined && rail.value !== undefined && rail.value !== 'closed';
|
|
450
|
-
const railOffset = railShown ? (
|
|
450
|
+
const railOffset = railShown ? (offFrame.has('rail') ? `calc(${rail.size}px + 2 * var(--shell-gap))` : `${rail.size}px`) : undefined;
|
|
451
451
|
|
|
452
452
|
// `full` writes no inline height: the stylesheet states it as 100vh with a
|
|
453
453
|
// 100dvh override where supported, and an inline value would beat both.
|
|
@@ -459,7 +459,7 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
459
459
|
<ShellContentContext.Provider value={false}>
|
|
460
460
|
<ShellWindowContext.Provider value={windowShell}>
|
|
461
461
|
<ShellHeaderHeightContext.Provider value={setHeaderHeight}>
|
|
462
|
-
<
|
|
462
|
+
<ShellFrameContext.Provider value={frameContext}>
|
|
463
463
|
{/* A Shell inside a portalled surface's Theme starts with no band, like any other. */}
|
|
464
464
|
<PaneBandSizeContext.Provider value={undefined}>
|
|
465
465
|
{/* The Root is not a widget: it hears Escape bubbling up from the panes,
|
|
@@ -472,7 +472,6 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
472
472
|
data-height={height === 'auto' && !contained ? 'auto' : undefined}
|
|
473
473
|
data-contained={contained || undefined}
|
|
474
474
|
data-window={windowShell || undefined}
|
|
475
|
-
data-has-inset={insetPanes.size > 0 || undefined}
|
|
476
475
|
data-overlay-live={liveCount > 0 || undefined}
|
|
477
476
|
onKeyDown={handleKeyDown}
|
|
478
477
|
onFocus={handleFocus}
|
|
@@ -490,7 +489,7 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
490
489
|
<div className="kui-ShellScrim" aria-hidden onClick={closeOverlays} />
|
|
491
490
|
</div>
|
|
492
491
|
</PaneBandSizeContext.Provider>
|
|
493
|
-
</
|
|
492
|
+
</ShellFrameContext.Provider>
|
|
494
493
|
</ShellHeaderHeightContext.Provider>
|
|
495
494
|
</ShellWindowContext.Provider>
|
|
496
495
|
</ShellContentContext.Provider>
|
|
@@ -504,9 +503,14 @@ Root.displayName = 'Shell.Root';
|
|
|
504
503
|
|
|
505
504
|
interface ShellHeaderProps extends React.ComponentPropsWithoutRef<'header'> {
|
|
506
505
|
height?: number;
|
|
506
|
+
/**
|
|
507
|
+
* Sets whether the header joins the app frame. The default is `true`: a hairline under it. Set
|
|
508
|
+
* `flush={false}` to make it a card off the frame.
|
|
509
|
+
*/
|
|
510
|
+
flush?: boolean;
|
|
507
511
|
}
|
|
508
512
|
|
|
509
|
-
const Header = React.forwardRef<HTMLElement, ShellHeaderProps>(({ className, height = DEFAULT_HEADER_HEIGHT, style, ...props }, ref) => {
|
|
513
|
+
const Header = React.forwardRef<HTMLElement, ShellHeaderProps>(({ className, height = DEFAULT_HEADER_HEIGHT, flush = true, style, ...props }, ref) => {
|
|
510
514
|
// Rows that stick beneath the header while the page scrolls need its height. The stylesheet
|
|
511
515
|
// assumes the default, so only another height is told to the Root.
|
|
512
516
|
const setHeaderHeight = React.useContext(ShellHeaderHeightContext);
|
|
@@ -520,6 +524,7 @@ const Header = React.forwardRef<HTMLElement, ShellHeaderProps>(({ className, hei
|
|
|
520
524
|
{...props}
|
|
521
525
|
ref={ref}
|
|
522
526
|
className={classNames('kui-ShellHeader', className)}
|
|
527
|
+
data-flush={flush || undefined}
|
|
523
528
|
style={
|
|
524
529
|
{
|
|
525
530
|
...style,
|
|
@@ -541,7 +546,6 @@ interface LeftProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
541
546
|
collapsible?: boolean;
|
|
542
547
|
onExpand?: () => void;
|
|
543
548
|
onCollapse?: () => void;
|
|
544
|
-
inset?: boolean;
|
|
545
549
|
}
|
|
546
550
|
|
|
547
551
|
/**
|
|
@@ -572,14 +576,19 @@ type RailProps = React.ComponentPropsWithoutRef<'div'> & {
|
|
|
572
576
|
onExpand?: () => void;
|
|
573
577
|
/** @deprecated Use `onOpenChange`. */
|
|
574
578
|
onCollapse?: () => void;
|
|
575
|
-
/**
|
|
576
|
-
|
|
579
|
+
/**
|
|
580
|
+
* Sets whether this pane joins the app frame. The default is `true`: the pane sits against its
|
|
581
|
+
* neighbours with one hairline between them. Set `flush={false}` to pull it off the frame as a
|
|
582
|
+
* card. It then floats over the content if the content is flush, and otherwise sits on the
|
|
583
|
+
* Shell's background beside a card content.
|
|
584
|
+
*/
|
|
585
|
+
flush?: boolean;
|
|
577
586
|
} & (RailControlledProps | RailUncontrolledProps);
|
|
578
587
|
|
|
579
588
|
const RAIL_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };
|
|
580
589
|
|
|
581
590
|
const Rail = React.forwardRef<HTMLDivElement, RailProps>((props, ref) => {
|
|
582
|
-
const { className, presentation, expandedSize = 64, collapsible: _collapsible, onExpand, onCollapse, children, style, open, defaultOpen, onOpenChange,
|
|
591
|
+
const { className, presentation, expandedSize = 64, collapsible: _collapsible, onExpand, onCollapse, children, style, open, defaultOpen, onOpenChange, flush = true, id, ...domProps } = props;
|
|
583
592
|
const { table, attributes } = usePresentationTable(presentation, 'fixed');
|
|
584
593
|
const pane = usePane({
|
|
585
594
|
name: 'rail',
|
|
@@ -595,7 +604,7 @@ const Rail = React.forwardRef<HTMLDivElement, RailProps>((props, ref) => {
|
|
|
595
604
|
onCollapse,
|
|
596
605
|
size: expandedSize,
|
|
597
606
|
});
|
|
598
|
-
|
|
607
|
+
useFrameRegistration('rail', flush);
|
|
599
608
|
const composedRef = useComposedRefs(ref, pane.setElement);
|
|
600
609
|
|
|
601
610
|
return (
|
|
@@ -606,7 +615,7 @@ const Rail = React.forwardRef<HTMLDivElement, RailProps>((props, ref) => {
|
|
|
606
615
|
ref={composedRef}
|
|
607
616
|
className={classNames('kui-ShellPane', 'kui-ShellRail', className)}
|
|
608
617
|
{...paneAttributes(pane, attributes)}
|
|
609
|
-
data-
|
|
618
|
+
data-flush={flush || undefined}
|
|
610
619
|
tabIndex={pane.overlaying ? -1 : domProps.tabIndex}
|
|
611
620
|
style={{ ...style, '--rail-size': `${expandedSize}px` } as CSSPropertiesWithVars}
|
|
612
621
|
>
|
|
@@ -644,8 +653,13 @@ type PanelPublicProps = PaneBaseProps &
|
|
|
644
653
|
onSizeChange?: (size: number, meta: PanelSizeChangeMeta) => void;
|
|
645
654
|
sizeUpdate?: 'throttle' | 'debounce';
|
|
646
655
|
sizeUpdateMs?: number;
|
|
647
|
-
/**
|
|
648
|
-
|
|
656
|
+
/**
|
|
657
|
+
* Sets whether this pane joins the app frame. The default is `true`: the pane sits against its
|
|
658
|
+
* neighbours with one hairline between them. Set `flush={false}` to pull it off the frame as a
|
|
659
|
+
* card. It then floats over the content if the content is flush, and otherwise sits on the
|
|
660
|
+
* Shell's background beside a card content.
|
|
661
|
+
*/
|
|
662
|
+
flush?: boolean;
|
|
649
663
|
};
|
|
650
664
|
type PanelComponent = React.ForwardRefExoticComponent<PanelPublicProps & React.RefAttributes<HTMLDivElement>> & {
|
|
651
665
|
Handle: HandleComponent;
|
|
@@ -688,7 +702,7 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
|
|
|
688
702
|
onSizeChange,
|
|
689
703
|
sizeUpdate,
|
|
690
704
|
sizeUpdateMs = 50,
|
|
691
|
-
|
|
705
|
+
flush = true,
|
|
692
706
|
id,
|
|
693
707
|
...domProps
|
|
694
708
|
} = props;
|
|
@@ -713,7 +727,7 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
|
|
|
713
727
|
onCollapse,
|
|
714
728
|
size: expandedSize,
|
|
715
729
|
});
|
|
716
|
-
|
|
730
|
+
useFrameRegistration('panel', flush);
|
|
717
731
|
|
|
718
732
|
React.useEffect(() => {
|
|
719
733
|
if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {
|
|
@@ -774,7 +788,7 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
|
|
|
774
788
|
ref={composedRef}
|
|
775
789
|
className={classNames('kui-ShellPane', 'kui-ShellPanel', className)}
|
|
776
790
|
{...paneAttributes(pane, presentationAttributes)}
|
|
777
|
-
data-
|
|
791
|
+
data-flush={flush || undefined}
|
|
778
792
|
tabIndex={pane.overlaying ? -1 : domProps.tabIndex}
|
|
779
793
|
style={
|
|
780
794
|
{
|
|
@@ -799,18 +813,22 @@ Panel.Handle = PanelHandle;
|
|
|
799
813
|
/* ── Content ───────────────────────────────────────────────────────────────── */
|
|
800
814
|
|
|
801
815
|
interface ShellContentProps extends React.ComponentPropsWithoutRef<'main'> {
|
|
802
|
-
/**
|
|
803
|
-
|
|
816
|
+
/**
|
|
817
|
+
* Sets whether the work area joins the app frame. The default is `true`. Set `flush={false}`
|
|
818
|
+
* to make it a card on the Shell's background; the panes beside it then sit on that background
|
|
819
|
+
* too, and draw no hairline toward it.
|
|
820
|
+
*/
|
|
821
|
+
flush?: boolean;
|
|
804
822
|
}
|
|
805
823
|
|
|
806
824
|
/**
|
|
807
825
|
* The work area. It scrolls as it is; with a `Shell.Scroll` child it becomes a column and the
|
|
808
826
|
* Scroll scrolls instead, so a `Shell.PaneHeader float` beside it stays pinned over the page.
|
|
809
827
|
*/
|
|
810
|
-
const Content = React.forwardRef<HTMLElement, ShellContentProps>(({ className,
|
|
811
|
-
|
|
828
|
+
const Content = React.forwardRef<HTMLElement, ShellContentProps>(({ className, flush = true, children, ...props }, ref) => {
|
|
829
|
+
useFrameRegistration('content', flush);
|
|
812
830
|
return (
|
|
813
|
-
<main {...props} ref={ref} className={classNames('kui-ShellContent', className)} data-
|
|
831
|
+
<main {...props} ref={ref} className={classNames('kui-ShellContent', className)} data-flush={flush || undefined}>
|
|
814
832
|
{/* Each pane holds its own page store, so a band's title can mirror the page beside it. */}
|
|
815
833
|
<ShellContentContext.Provider value={true}>
|
|
816
834
|
<PageScope>{children}</PageScope>
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
--color-page: white;
|
|
9
9
|
--color-overlay: var(--black-a6);
|
|
10
10
|
--color-surface: white;
|
|
11
|
+
/* A rule between two regions, such as the hairline between two flush Shell panes. The same role and value as v2's. */
|
|
12
|
+
--color-border: var(--neutral-6, var(--gray-6));
|
|
11
13
|
/* A background for an app page that holds raised surfaces. No component reads it. */
|
|
12
14
|
--color-ground: var(--neutral-1, var(--gray-1));
|
|
13
15
|
|
package/styles.css
CHANGED
|
@@ -3377,6 +3377,7 @@
|
|
|
3377
3377
|
--color-page: white;
|
|
3378
3378
|
--color-overlay: var(--black-a6);
|
|
3379
3379
|
--color-surface: white;
|
|
3380
|
+
--color-border: var(--neutral-6, var(--gray-6));
|
|
3380
3381
|
--color-ground: var(--neutral-1, var(--gray-1));
|
|
3381
3382
|
--field-fill: var(--color-surface);
|
|
3382
3383
|
--field-fill-hover: var(--neutral-2);
|
|
@@ -12558,19 +12559,19 @@
|
|
|
12558
12559
|
}
|
|
12559
12560
|
.kui-Link:where(:-moz-any-link,button) {
|
|
12560
12561
|
cursor: var(--cursor-link);
|
|
12561
|
-
text-decoration-line:
|
|
12562
|
+
text-decoration-line: underline;
|
|
12562
12563
|
text-decoration-style: solid;
|
|
12563
12564
|
text-decoration-thickness: min(2px, max(1px, 0.05em));
|
|
12564
|
-
text-underline-offset:
|
|
12565
|
-
text-decoration-color: var(--accent-
|
|
12565
|
+
text-underline-offset: 0.2em;
|
|
12566
|
+
text-decoration-color: var(--accent-a6);
|
|
12566
12567
|
}
|
|
12567
12568
|
.kui-Link:where(:any-link,button) {
|
|
12568
12569
|
cursor: var(--cursor-link);
|
|
12569
|
-
text-decoration-line:
|
|
12570
|
+
text-decoration-line: underline;
|
|
12570
12571
|
text-decoration-style: solid;
|
|
12571
12572
|
text-decoration-thickness: min(2px, max(1px, 0.05em));
|
|
12572
|
-
text-underline-offset:
|
|
12573
|
-
text-decoration-color: var(--accent-
|
|
12573
|
+
text-underline-offset: 0.2em;
|
|
12574
|
+
text-decoration-color: var(--accent-a6);
|
|
12574
12575
|
}
|
|
12575
12576
|
.kui-Link:where(:disabled,[data-disabled]) {
|
|
12576
12577
|
cursor: var(--cursor-disabled);
|
|
@@ -12578,19 +12579,21 @@
|
|
|
12578
12579
|
.kui-Link:where(:focus-visible) {
|
|
12579
12580
|
border-radius: calc(0.07em * var(--radius-factor));
|
|
12580
12581
|
outline-color: var(--focus-8);
|
|
12581
|
-
outline-width:
|
|
12582
|
+
outline-width: var(--focus-ring-width);
|
|
12582
12583
|
outline-style: solid;
|
|
12583
|
-
outline-offset:
|
|
12584
|
+
outline-offset: var(--focus-ring-offset);
|
|
12585
|
+
-webkit-box-decoration-break: clone;
|
|
12586
|
+
box-decoration-break: clone;
|
|
12584
12587
|
}
|
|
12585
12588
|
:where([data-accent-color]:not(.kui-theme)) .kui-Link:where([data-accent-color='']) {
|
|
12586
12589
|
color: var(--accent-ink);
|
|
12587
12590
|
}
|
|
12588
|
-
@
|
|
12589
|
-
.kui-Link:where(:-moz-any-link,button) {
|
|
12590
|
-
text-decoration-color:
|
|
12591
|
+
@media (hover: hover) {
|
|
12592
|
+
.kui-Link:where(:-moz-any-link,button):where(:hover) {
|
|
12593
|
+
text-decoration-color: currentcolor;
|
|
12591
12594
|
}
|
|
12592
|
-
.kui-Link:where(:any-link,button) {
|
|
12593
|
-
text-decoration-color:
|
|
12595
|
+
.kui-Link:where(:any-link,button):where(:hover) {
|
|
12596
|
+
text-decoration-color: currentcolor;
|
|
12594
12597
|
}
|
|
12595
12598
|
}
|
|
12596
12599
|
@media (pointer: coarse) {
|
|
@@ -12603,44 +12606,6 @@
|
|
|
12603
12606
|
outline-offset: -0.6em;
|
|
12604
12607
|
}
|
|
12605
12608
|
}
|
|
12606
|
-
@media (hover: hover) {
|
|
12607
|
-
.kui-Link:where(:-moz-any-link,button):where(.kui-underline-auto):where(:hover) {
|
|
12608
|
-
text-decoration-line: underline;
|
|
12609
|
-
}
|
|
12610
|
-
.kui-Link:where(:any-link,button):where(.kui-underline-auto):where(:hover) {
|
|
12611
|
-
text-decoration-line: underline;
|
|
12612
|
-
}
|
|
12613
|
-
}
|
|
12614
|
-
:where([data-accent-color]:not(.kui-theme)) .kui-Link:where(:-moz-any-link,button):where(.kui-underline-auto):where([data-accent-color='']) {
|
|
12615
|
-
text-decoration-line: underline;
|
|
12616
|
-
text-decoration-color: var(--accent-a6);
|
|
12617
|
-
}
|
|
12618
|
-
:where([data-accent-color]:not(.kui-theme)) .kui-Link:where(:any-link,button):where(.kui-underline-auto):where([data-accent-color='']) {
|
|
12619
|
-
text-decoration-line: underline;
|
|
12620
|
-
text-decoration-color: var(--accent-a6);
|
|
12621
|
-
}
|
|
12622
|
-
@supports (color: color-mix(in oklab, white, black)) {
|
|
12623
|
-
:where([data-accent-color]:not(.kui-theme)) .kui-Link:where(:-moz-any-link,button):where(.kui-underline-auto):where([data-accent-color='']) {
|
|
12624
|
-
text-decoration-color: color-mix(in oklab, var(--accent-a6), var(--neutral-a6));
|
|
12625
|
-
}
|
|
12626
|
-
:where([data-accent-color]:not(.kui-theme)) .kui-Link:where(:any-link,button):where(.kui-underline-auto):where([data-accent-color='']) {
|
|
12627
|
-
text-decoration-color: color-mix(in oklab, var(--accent-a6), var(--neutral-a6));
|
|
12628
|
-
}
|
|
12629
|
-
}
|
|
12630
|
-
@media (hover: hover) {
|
|
12631
|
-
.kui-Link:where(:-moz-any-link,button):where(.kui-underline-hover):where(:hover) {
|
|
12632
|
-
text-decoration-line: underline;
|
|
12633
|
-
}
|
|
12634
|
-
.kui-Link:where(:any-link,button):where(.kui-underline-hover):where(:hover) {
|
|
12635
|
-
text-decoration-line: underline;
|
|
12636
|
-
}
|
|
12637
|
-
}
|
|
12638
|
-
.kui-Link:where(:-moz-any-link,button):where(.kui-underline-always) {
|
|
12639
|
-
text-decoration-line: underline;
|
|
12640
|
-
}
|
|
12641
|
-
.kui-Link:where(:any-link,button):where(.kui-underline-always) {
|
|
12642
|
-
text-decoration-line: underline;
|
|
12643
|
-
}
|
|
12644
12609
|
.kui-Link:where(:has(.kui-Code:not(.kui-variant-ghost):only-child)) {
|
|
12645
12610
|
text-decoration-color: transparent;
|
|
12646
12611
|
}
|
|
@@ -16965,7 +16930,7 @@
|
|
|
16965
16930
|
}
|
|
16966
16931
|
}
|
|
16967
16932
|
.kui-ShellRoot {
|
|
16968
|
-
--shell-
|
|
16933
|
+
--shell-gap: var(--space-3);
|
|
16969
16934
|
--shell-rail-offset: 0px;
|
|
16970
16935
|
--kui-shell-page-top: 0px;
|
|
16971
16936
|
display: grid;
|
|
@@ -17740,51 +17705,102 @@
|
|
|
17740
17705
|
.kui-ShellRoot[data-height='auto'] > .kui-ShellPane[data-presentation='overlay'] {
|
|
17741
17706
|
position: fixed;
|
|
17742
17707
|
}
|
|
17743
|
-
.kui-
|
|
17744
|
-
.kui-
|
|
17745
|
-
|
|
17746
|
-
|
|
17747
|
-
|
|
17748
|
-
|
|
17708
|
+
.kui-ShellHeader[data-flush],
|
|
17709
|
+
.kui-ShellPane[data-flush],
|
|
17710
|
+
.kui-ShellContent[data-flush] {
|
|
17711
|
+
border: 0 solid var(--color-border);
|
|
17712
|
+
border-radius: 0;
|
|
17713
|
+
}
|
|
17714
|
+
.kui-ShellHeader[data-flush] {
|
|
17715
|
+
border-block-end-width: 1px;
|
|
17716
|
+
}
|
|
17717
|
+
.kui-ShellRail[data-flush],
|
|
17718
|
+
.kui-ShellPanel[data-flush],
|
|
17719
|
+
.kui-ShellSidebar[data-flush] {
|
|
17720
|
+
border-inline-end-width: 1px;
|
|
17721
|
+
}
|
|
17722
|
+
.kui-ShellInspector[data-flush] {
|
|
17723
|
+
border-inline-start-width: 1px;
|
|
17724
|
+
}
|
|
17725
|
+
.kui-ShellBottom[data-flush] {
|
|
17726
|
+
border-block-start-width: 1px;
|
|
17727
|
+
}
|
|
17728
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) > .kui-ShellHeader[data-flush] {
|
|
17729
|
+
border-block-end-width: 0;
|
|
17749
17730
|
}
|
|
17750
|
-
.kui-
|
|
17751
|
-
.kui-ShellContent[data-
|
|
17752
|
-
|
|
17731
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) > .kui-ShellSidebar[data-flush],
|
|
17732
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])):not(:has(> .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellPanel[data-flush],
|
|
17733
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])):not(:has(> .kui-ShellPanel[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']), > .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellRail[data-flush] {
|
|
17734
|
+
border-inline-end-width: 0;
|
|
17735
|
+
}
|
|
17736
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) > .kui-ShellInspector[data-flush] {
|
|
17737
|
+
border-inline-start-width: 0;
|
|
17738
|
+
}
|
|
17739
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) > .kui-ShellBottom[data-flush] {
|
|
17740
|
+
border-block-start-width: 0;
|
|
17741
|
+
}
|
|
17742
|
+
.kui-ShellHeader:not([data-flush]),
|
|
17743
|
+
.kui-ShellPane:not([data-flush]),
|
|
17744
|
+
.kui-ShellContent:not([data-flush]) {
|
|
17745
|
+
margin: var(--shell-gap);
|
|
17753
17746
|
border-radius: var(--radius-surface-1);
|
|
17754
|
-
background: var(--color-page);
|
|
17747
|
+
background-color: var(--color-page);
|
|
17755
17748
|
-webkit-box-shadow: var(--surface-chrome);
|
|
17756
17749
|
box-shadow: var(--surface-chrome);
|
|
17757
17750
|
}
|
|
17758
|
-
.kui-
|
|
17759
|
-
|
|
17760
|
-
|
|
17761
|
-
|
|
17762
|
-
)
|
|
17763
|
-
|
|
17764
|
-
.kui-ShellRoot:has(> .kui-
|
|
17765
|
-
.kui-ShellRoot:has(> .kui-ShellPanel[data-
|
|
17766
|
-
|
|
17767
|
-
|
|
17768
|
-
|
|
17769
|
-
.kui-ShellRoot:has(> .kui-ShellRail[data-
|
|
17770
|
-
|
|
17771
|
-
)
|
|
17772
|
-
> .kui-ShellContent[data-inset],
|
|
17773
|
-
.kui-ShellRoot:has(> .kui-ShellContent[data-inset]) > .kui-ShellInspector[data-inset][data-presentation='fixed'] {
|
|
17751
|
+
.kui-ShellHeader:not([data-flush]) {
|
|
17752
|
+
z-index: 1;
|
|
17753
|
+
}
|
|
17754
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) {
|
|
17755
|
+
background-color: var(--neutral-2);
|
|
17756
|
+
}
|
|
17757
|
+
.kui-ShellRoot:has(> .kui-ShellRail:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellPanel:not([data-flush])[data-presentation='fixed'],
|
|
17758
|
+
.kui-ShellRoot:has(> .kui-ShellPanel:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellSidebar:not([data-flush])[data-presentation='fixed'],
|
|
17759
|
+
.kui-ShellRoot:has(> .kui-ShellRail:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])):not(:has(> .kui-ShellPanel[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellSidebar:not([data-flush])[data-presentation='fixed'],
|
|
17760
|
+
.kui-ShellRoot:has(> .kui-ShellSidebar:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellContent:not([data-flush]),
|
|
17761
|
+
.kui-ShellRoot:has(> .kui-ShellPanel:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])):not(:has(> .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellContent:not([data-flush]),
|
|
17762
|
+
.kui-ShellRoot:has(> .kui-ShellRail:not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])):not(:has(> .kui-ShellPanel[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']), > .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellContent:not([data-flush]),
|
|
17763
|
+
.kui-ShellRoot:has(> .kui-ShellContent:not([data-flush])) > .kui-ShellInspector:not([data-flush])[data-presentation='fixed'] {
|
|
17774
17764
|
-webkit-margin-start: 0;
|
|
17775
17765
|
margin-inline-start: 0;
|
|
17776
17766
|
}
|
|
17777
|
-
.kui-ShellRoot:has(
|
|
17778
|
-
|
|
17779
|
-
> .kui-ShellPanel[data-inset][data-presentation='fixed'][data-mode]:not([data-mode='collapsed']),
|
|
17780
|
-
> .kui-ShellSidebar[data-inset][data-presentation='fixed'][data-mode]:not([data-mode='collapsed']),
|
|
17781
|
-
> .kui-ShellContent[data-inset],
|
|
17782
|
-
> .kui-ShellInspector[data-inset][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])
|
|
17783
|
-
)
|
|
17784
|
-
> .kui-ShellBottom[data-inset] {
|
|
17767
|
+
.kui-ShellRoot:has(> .kui-ShellHeader:not([data-flush])) > :is(.kui-ShellPane:not(.kui-ShellBottom), .kui-ShellContent):not([data-flush]),
|
|
17768
|
+
.kui-ShellRoot:has(> :is(.kui-ShellRail, .kui-ShellPanel, .kui-ShellSidebar, .kui-ShellInspector):not([data-flush])[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']), > .kui-ShellContent:not([data-flush])) > .kui-ShellBottom:not([data-flush]) {
|
|
17785
17769
|
-webkit-margin-before: 0;
|
|
17786
17770
|
margin-block-start: 0;
|
|
17787
17771
|
}
|
|
17772
|
+
.kui-ShellRoot:has(> .kui-ShellSidebar[data-flush][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellContent:not([data-flush]),
|
|
17773
|
+
.kui-ShellRoot:has(> .kui-ShellPanel[data-flush][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])):not(:has(> .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellContent:not([data-flush]),
|
|
17774
|
+
.kui-ShellRoot:has(> .kui-ShellRail[data-flush][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])):not(:has(> .kui-ShellPanel[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']), > .kui-ShellSidebar[data-presentation='fixed'][data-mode]:not([data-mode='collapsed']))) > .kui-ShellContent:not([data-flush]) {
|
|
17775
|
+
-webkit-margin-start: 0;
|
|
17776
|
+
margin-inline-start: 0;
|
|
17777
|
+
}
|
|
17778
|
+
.kui-ShellRoot:has(> .kui-ShellInspector[data-flush][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellContent:not([data-flush]) {
|
|
17779
|
+
-webkit-margin-end: 0;
|
|
17780
|
+
margin-inline-end: 0;
|
|
17781
|
+
}
|
|
17782
|
+
.kui-ShellRoot:has(> .kui-ShellBottom[data-flush][data-presentation='fixed'][data-mode]:not([data-mode='collapsed'])) > .kui-ShellContent:not([data-flush]) {
|
|
17783
|
+
-webkit-margin-after: 0;
|
|
17784
|
+
margin-block-end: 0;
|
|
17785
|
+
}
|
|
17786
|
+
.kui-ShellRoot:has(> .kui-ShellSidebar:not([data-flush])) > .kui-ShellContent[data-flush] {
|
|
17787
|
+
grid-column-start: sidebar-start;
|
|
17788
|
+
}
|
|
17789
|
+
.kui-ShellRoot:has(> .kui-ShellPanel:not([data-flush])):not(:has(> .kui-ShellSidebar[data-flush])) > .kui-ShellContent[data-flush] {
|
|
17790
|
+
grid-column-start: panel-start;
|
|
17791
|
+
}
|
|
17792
|
+
.kui-ShellRoot:has(> .kui-ShellRail:not([data-flush])):not(:has(> .kui-ShellPanel[data-flush], > .kui-ShellSidebar[data-flush])) > .kui-ShellContent[data-flush] {
|
|
17793
|
+
grid-column-start: rail-start;
|
|
17794
|
+
}
|
|
17795
|
+
.kui-ShellRoot:has(> .kui-ShellInspector:not([data-flush])) > .kui-ShellContent[data-flush] {
|
|
17796
|
+
grid-column-end: inspector-end;
|
|
17797
|
+
}
|
|
17798
|
+
.kui-ShellRoot:has(> .kui-ShellHeader:not([data-flush])) > .kui-ShellContent[data-flush] {
|
|
17799
|
+
grid-row-start: header-start;
|
|
17800
|
+
}
|
|
17801
|
+
.kui-ShellRoot:has(> .kui-ShellBottom:not([data-flush])) > .kui-ShellContent[data-flush] {
|
|
17802
|
+
grid-row-end: bottom-end;
|
|
17803
|
+
}
|
|
17788
17804
|
@media (max-width: 767.98px) and (pointer: coarse) {
|
|
17789
17805
|
.kui-ShellRoot[data-window] {
|
|
17790
17806
|
height: auto;
|
package/tokens/base.css
CHANGED
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
--color-page: white;
|
|
62
62
|
--color-overlay: var(--black-a6);
|
|
63
63
|
--color-surface: white;
|
|
64
|
+
--color-border: var(--neutral-6, var(--gray-6));
|
|
64
65
|
--color-ground: var(--neutral-1, var(--gray-1));
|
|
65
66
|
--field-fill: var(--color-surface);
|
|
66
67
|
--field-fill-hover: var(--neutral-2);
|
package/tokens.css
CHANGED
|
@@ -3377,6 +3377,7 @@
|
|
|
3377
3377
|
--color-page: white;
|
|
3378
3378
|
--color-overlay: var(--black-a6);
|
|
3379
3379
|
--color-surface: white;
|
|
3380
|
+
--color-border: var(--neutral-6, var(--gray-6));
|
|
3380
3381
|
--color-ground: var(--neutral-1, var(--gray-1));
|
|
3381
3382
|
--field-fill: var(--color-surface);
|
|
3382
3383
|
--field-fill-hover: var(--neutral-2);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{b as H,d as U,g as D}from"./chunk-XUCR7L4G.js";import{a as V,c as m}from"./chunk-3QWGSRYC.js";import{a as k,b as I,c as N}from"./chunk-LTUW36HM.js";import{a as w,b as B,c as A}from"./chunk-QKCNGEX4.js";import{a as T}from"./chunk-WEBNIUEX.js";import{a as y}from"./chunk-G66WDIIV.js";import{b as M}from"./chunk-VWRPVM5K.js";import{f as E}from"./chunk-NFSW36RG.js";import{o as x}from"./chunk-GHWEXMF6.js";import*as e from"react";import Se from"classnames";import{useComposedRefs as ue}from"radix-ui/internal";var L=t=>t==="collapsed"?"closed":"open",ce=t=>t==="closed"?"collapsed":"expanded";function O(t){if(t===void 0)return;if(typeof t=="string")return L(t);let n={};for(let[r,i]of Object.entries(t))i!==void 0&&(n[r]=L(i));return n}var me={controlled:"state",default:"defaultState"},be={initial:"overlay",sm:"fixed"},_=e.forwardRef((t,n)=>{let{className:r,presentation:i=be,expandedSize:o=288,minSize:s=200,maxSize:d=400,resizable:b=!1,collapsible:$=!0,onExpand:W,onCollapse:j,onResize:q,onResizeStart:F,onResizeEnd:G,snapPoints:l,snapTolerance:K,collapseThreshold:p,paneId:S,persistence:u,children:J,style:Q,state:X,defaultState:Y,onStateChange:Z,size:f,defaultSize:P,onSizeChange:ee,sizeUpdate:ae,sizeUpdateMs:te=50,inset:g,id:ne,...c}=t,{table:h,attributes:ie}=N(i,"fixed"),a=k({name:"sidebar",label:"Sidebar",propNames:me,id:ne,controlled:O(X),defaultValue:O(Y),presentationTable:h,builtIn:H,onChange:(le,pe)=>Z?.(ce(le),{reason:pe}),onExpand:W,onCollapse:j,size:o});x("sidebar",g),e.useEffect(()=>{(l!==void 0||p!==void 0||S!==void 0||u!==void 0)&&void 0},[l,p,S,u]);let z=e.useRef(null),oe=ue(n,a.setElement,z),re=B({name:"sidebar",elementId:a.id,elementRef:z,cssVarName:"--sidebar-size",orientation:"vertical",edge:"end",growth:U,expandedSize:o,minSize:s,maxSize:d,resizable:b,collapsible:$,size:f,defaultSize:P,onSizeChange:ee,sizeUpdate:ae,sizeUpdateMs:te,onResize:q,onResizeStart:F,onResizeEnd:G,snapPoints:l,snapTolerance:K,collapseThreshold:p,paneId:S,persistence:u,overlaying:a.overlaying,overlayingNow:()=>h[y()]==="overlay",requestCollapse:()=>a.setValue("closed","toggle"),requestToggle:()=>a.toggle("toggle")}),{handles:v,content:se}=A(J,m),de=b&&a.value!=="closed"&&!a.overlaying?e.createElement(T.Provider,{value:re},v.length>0?v:e.createElement(V,null)):null,R=a.peeking?`var(--sidebar-size, ${o}px)`:void 0,C=w(f,P,s,d);return e.createElement("div",{...D(c),role:c.role??"navigation",id:a.id,ref:oe,className:Se("kui-ShellPane","kui-ShellSidebar",r),...I(a,ie),"data-inset":g||void 0,tabIndex:a.overlaying?-1:c.tabIndex,style:{...Q,"--sidebar-expanded-size":`${o}px`,...C?{"--sidebar-size":C}:{},"--sidebar-min-size":`${s}px`,"--sidebar-max-size":`${d}px`,...R?{"--peek-sidebar-width":R}:{}}},e.createElement("div",{className:"kui-ShellSidebarContent"},e.createElement(E,null,e.createElement(M,null,se))),de)});_.displayName="Shell.Sidebar";_.Handle=m;export{_ as a};
|
|
3
|
-
//# sourceMappingURL=chunk-4B3S2DM7.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/_internal/shell-sidebar.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { PaneHandle, SidebarHandle } from './shell-handles.js';\nimport { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';\nimport { splitHandles, useInitialPaneSize, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';\nimport { useInsetRegistration, warnOnce, type PaneValue } from './shell-store.js';\nimport { navigationRest, startAnchoredGrowth, withoutRemovedPaneProps } from './shell-rest.js';\nimport { readBreakpoint } from '../../hooks/use-breakpoint.js';\nimport { PaneChromeScope } from './pane-chrome.js';\nimport { PageScope } from './page-scope.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps, Responsive, SidebarMode } from '../shell.types.js';\n\ntype SidebarStateChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'dismiss' };\ntype SidebarControlledProps = { state: Responsive<SidebarMode>; onStateChange?: (state: SidebarMode, meta: SidebarStateChangeMeta) => void; defaultState?: never };\ntype SidebarUncontrolledProps = { defaultState?: SidebarMode | Partial<Record<Breakpoint, SidebarMode>>; onStateChange?: (state: SidebarMode, meta: SidebarStateChangeMeta) => void; state?: never };\ntype SidebarPublicProps = PaneBaseProps & {\n size?: number | string;\n defaultSize?: number | string;\n onSizeChange?: (size: number, meta: SizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n} & (SidebarControlledProps | SidebarUncontrolledProps);\n\ntype SidebarComponent = React.ForwardRefExoticComponent<SidebarPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof SidebarHandle };\n\nconst toValue = (mode: SidebarMode): PaneValue => (mode === 'collapsed' ? 'closed' : 'open');\nconst toMode = (value: PaneValue): SidebarMode => (value === 'closed' ? 'collapsed' : 'expanded');\n\nfunction modeToValue(state: Responsive<SidebarMode> | undefined): PaneValue | Partial<Record<Breakpoint, PaneValue>> | undefined {\n if (state === undefined) return undefined;\n if (typeof state === 'string') return toValue(state);\n const map: Partial<Record<Breakpoint, PaneValue>> = {};\n for (const [bp, mode] of Object.entries(state) as Array<[Breakpoint, SidebarMode | undefined]>) {\n if (mode !== undefined) map[bp] = toValue(mode);\n }\n return map;\n}\n\nconst SIDEBAR_PROP_NAMES = { controlled: 'state', default: 'defaultState' };\n\n/** Since 0.8.0 the Sidebar is in the frame from 768px up, the boundary kookie-ui-v2 uses everywhere. It was 1024px. */\nconst SIDEBAR_DEFAULT_PRESENTATION = { initial: 'overlay', sm: 'fixed' } as const;\n\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarPublicProps>((props, ref) => {\n const {\n className,\n presentation = SIDEBAR_DEFAULT_PRESENTATION,\n expandedSize = 288,\n minSize = 200,\n maxSize = 400,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n state,\n defaultState,\n onStateChange,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n inset,\n id,\n ...domProps\n } = props;\n\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'sidebar',\n label: 'Sidebar',\n propNames: SIDEBAR_PROP_NAMES,\n id,\n controlled: modeToValue(state),\n defaultValue: modeToValue(defaultState),\n presentationTable: table,\n builtIn: navigationRest,\n onChange: (value, reason) => onStateChange?.(toMode(value), { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('sidebar', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Sidebar: `snapPoints`, `collapseThreshold`, `paneId` and `persistence` are deprecated and are removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n }\n }, [snapPoints, collapseThreshold, paneId, persistence]);\n\n const elementRef = React.useRef<HTMLElement | null>(null);\n const composedRef = useComposedRefs(ref, pane.setElement, elementRef);\n\n const resize = useResizablePane({\n name: 'sidebar',\n elementId: pane.id,\n elementRef,\n cssVarName: '--sidebar-size',\n orientation: 'vertical',\n edge: 'end',\n growth: startAnchoredGrowth,\n expandedSize,\n minSize,\n maxSize,\n resizable,\n collapsible,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n overlaying: pane.overlaying,\n overlayingNow: () => table[readBreakpoint()] === 'overlay',\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, SidebarHandle);\n const handle =\n resizable && pane.value !== 'closed' && !pane.overlaying ? (\n <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider>\n ) : null;\n\n // A peek previews the width the next toggle opens to.\n const peekWidth = pane.peeking ? `var(--sidebar-size, ${expandedSize}px)` : undefined;\n\n const initialSize = useInitialPaneSize(size, defaultSize, minSize, maxSize);\n return (\n <div\n {...withoutRemovedPaneProps(domProps)}\n role={domProps.role ?? 'navigation'}\n id={pane.id}\n ref={composedRef}\n className={classNames('kui-ShellPane', 'kui-ShellSidebar', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--sidebar-expanded-size': `${expandedSize}px`,\n ...(initialSize ? { '--sidebar-size': initialSize } : {}),\n '--sidebar-min-size': `${minSize}px`,\n '--sidebar-max-size': `${maxSize}px`,\n ...(peekWidth ? { '--peek-sidebar-width': peekWidth } : {}),\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"kui-ShellSidebarContent\">\n <PaneChromeScope>\n <PageScope>{content}</PageScope>\n </PaneChromeScope>\n </div>\n {handle}\n </div>\n );\n}) as SidebarComponent;\n\nSidebar.displayName = 'Shell.Sidebar';\nSidebar.Handle = SidebarHandle;\n\nexport type { SidebarPublicProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "classNames", "useComposedRefs", "toValue", "mode", "toMode", "value", "modeToValue", "state", "map", "bp", "SIDEBAR_PROP_NAMES", "SIDEBAR_DEFAULT_PRESENTATION", "Sidebar", "props", "ref", "className", "presentation", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "defaultState", "onStateChange", "size", "defaultSize", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "inset", "id", "domProps", "table", "attributes", "usePresentationTable", "pane", "usePane", "navigationRest", "reason", "useInsetRegistration", "elementRef", "composedRef", "useComposedRefs", "resize", "useResizablePane", "startAnchoredGrowth", "readBreakpoint", "handles", "content", "splitHandles", "SidebarHandle", "handle", "PaneResizeContext", "PaneHandle", "peekWidth", "initialSize", "useInitialPaneSize", "withoutRemovedPaneProps", "classNames", "paneAttributes", "PaneChromeScope", "PageScope"]
|
|
7
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{a as c,c as M,e as w,g as H}from"./chunk-XUCR7L4G.js";import{a as v,d}from"./chunk-3QWGSRYC.js";import{a as y,b as x,c as O}from"./chunk-LTUW36HM.js";import{a as E,b as T,c as N}from"./chunk-QKCNGEX4.js";import{a as R}from"./chunk-WEBNIUEX.js";import{a as S}from"./chunk-G66WDIIV.js";import{b}from"./chunk-VWRPVM5K.js";import{o as C}from"./chunk-GHWEXMF6.js";import*as e from"react";import pe from"classnames";import{useComposedRefs as le}from"radix-ui/internal";var de={controlled:"open",default:"defaultOpen"},ce={initial:"overlay",sm:"fixed"},U=e.forwardRef((k,A)=>{let{className:B,presentation:V=ce,defaultOpen:L,open:_,onOpenChange:D,expandedSize:o=320,minSize:t=200,maxSize:s=500,resizable:m=!1,collapsible:$=!0,onExpand:q,onCollapse:F,onResize:W,onResizeStart:j,onResizeEnd:G,snapPoints:r,snapTolerance:K,collapseThreshold:a,paneId:i,persistence:p,children:J,style:Q,onSizeChange:X,sizeUpdate:Y,sizeUpdateMs:Z=50,size:u,defaultSize:P,inset:f,id:ee,...l}=k,{table:z,attributes:ne}=O(V,"fixed"),n=y({name:"inspector",label:"Inspector",propNames:de,id:ee,controlled:c(_),defaultValue:c(L),presentationTable:z,builtIn:M,onChange:(ae,ie)=>D?.(ae!=="closed",{reason:ie}),onExpand:q,onCollapse:F,size:o});C("inspector",f),e.useEffect(()=>{(r!==void 0||a!==void 0||i!==void 0||p!==void 0)&&void 0},[r,a,i,p]);let h=e.useRef(null),oe=le(A,n.setElement,h),te=T({name:"inspector",elementId:n.id,elementRef:h,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:w,expandedSize:o,minSize:t,maxSize:s,resizable:m,collapsible:$,size:u,defaultSize:P,onSizeChange:X,sizeUpdate:Y,sizeUpdateMs:Z,onResize:W,onResizeStart:j,onResizeEnd:G,snapPoints:r,snapTolerance:K,collapseThreshold:a,paneId:i,persistence:p,overlaying:n.overlaying,overlayingNow:()=>z[S()]==="overlay",requestCollapse:()=>n.setValue("closed","toggle"),requestToggle:()=>n.toggle("toggle")}),{handles:I,content:se}=N(J,d),re=m&&n.shown!==!1&&!n.overlaying?e.createElement(R.Provider,{value:te},I.length>0?I:e.createElement(v,null)):null,g=E(u,P,t,s);return e.createElement("div",{...H(l),role:l.role??"complementary",id:n.id,ref:oe,className:pe("kui-ShellPane","kui-ShellInspector",B),...x(n,ne),"data-inset":f||void 0,tabIndex:n.overlaying?-1:l.tabIndex,style:{...Q,"--inspector-expanded-size":`${o}px`,...g?{"--inspector-size":g}:{},"--inspector-min-size":`${t}px`,"--inspector-max-size":`${s}px`}},e.createElement("div",{className:"kui-ShellInspectorContent"},e.createElement(b,null,se)),re)});U.displayName="Shell.Inspector";U.Handle=d;export{U as a};
|
|
3
|
-
//# sourceMappingURL=chunk-AKMRPGNP.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/_internal/shell-inspector.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { InspectorHandle, PaneHandle } from './shell-handles.js';\nimport { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';\nimport { splitHandles, useInitialPaneSize, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';\nimport { useInsetRegistration, warnOnce } from './shell-store.js';\nimport { detailRest, endAnchoredGrowth, toPaneValue, withoutRemovedPaneProps } from './shell-rest.js';\nimport { PageScope } from './page-scope.js';\nimport { readBreakpoint } from '../../hooks/use-breakpoint.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps } from '../shell.types.js';\n\ntype InspectorOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'dismiss' };\ntype InspectorControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; defaultOpen?: never };\ntype InspectorUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; open?: never };\ntype InspectorSizeControlledProps = { size: number | string; defaultSize?: never };\ntype InspectorSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype InspectorPublicProps = PaneBaseProps &\n (InspectorControlledProps | InspectorUncontrolledProps) &\n (InspectorSizeControlledProps | InspectorSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: SizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n };\n\ntype InspectorComponent = React.ForwardRefExoticComponent<InspectorPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof InspectorHandle };\n\nconst INSPECTOR_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\n/** Since 0.8.0 the Inspector is in the frame from 768px up, the boundary kookie-ui-v2 uses everywhere. It was 1280px. */\nconst INSPECTOR_DEFAULT_PRESENTATION = { initial: 'overlay', sm: 'fixed' } as const;\n\nexport const Inspector = React.forwardRef<HTMLDivElement, InspectorPublicProps>((props, ref) => {\n const {\n className,\n presentation = INSPECTOR_DEFAULT_PRESENTATION,\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 320,\n minSize = 200,\n maxSize = 500,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n size,\n defaultSize,\n inset,\n id,\n ...domProps\n } = props;\n\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'inspector',\n label: 'Inspector',\n propNames: INSPECTOR_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable: table,\n builtIn: detailRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('inspector', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Inspector: `snapPoints`, `collapseThreshold`, `paneId` and `persistence` are deprecated and are removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n }\n }, [snapPoints, collapseThreshold, paneId, persistence]);\n\n const elementRef = React.useRef<HTMLElement | null>(null);\n const composedRef = useComposedRefs(ref, pane.setElement, elementRef);\n\n const resize = useResizablePane({\n name: 'inspector',\n elementId: pane.id,\n elementRef,\n cssVarName: '--inspector-size',\n orientation: 'vertical',\n edge: 'start',\n growth: endAnchoredGrowth,\n expandedSize,\n minSize,\n maxSize,\n resizable,\n collapsible,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n overlaying: pane.overlaying,\n overlayingNow: () => table[readBreakpoint()] === 'overlay',\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, InspectorHandle);\n const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;\n\n const initialSize = useInitialPaneSize(size, defaultSize, minSize, maxSize);\n return (\n <div\n {...withoutRemovedPaneProps(domProps)}\n role={domProps.role ?? 'complementary'}\n id={pane.id}\n ref={composedRef}\n className={classNames('kui-ShellPane', 'kui-ShellInspector', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--inspector-expanded-size': `${expandedSize}px`,\n ...(initialSize ? { '--inspector-size': initialSize } : {}),\n '--inspector-min-size': `${minSize}px`,\n '--inspector-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"kui-ShellInspectorContent\">\n <PageScope>{content}</PageScope>\n </div>\n {handle}\n </div>\n );\n}) as InspectorComponent;\n\nInspector.displayName = 'Shell.Inspector';\nInspector.Handle = InspectorHandle;\n\nexport type { InspectorPublicProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "classNames", "useComposedRefs", "INSPECTOR_PROP_NAMES", "INSPECTOR_DEFAULT_PRESENTATION", "Inspector", "props", "ref", "className", "presentation", "defaultOpen", "open", "onOpenChange", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "size", "defaultSize", "inset", "id", "domProps", "table", "attributes", "usePresentationTable", "pane", "usePane", "toPaneValue", "detailRest", "value", "reason", "useInsetRegistration", "elementRef", "composedRef", "useComposedRefs", "resize", "useResizablePane", "endAnchoredGrowth", "readBreakpoint", "handles", "content", "splitHandles", "InspectorHandle", "handle", "PaneResizeContext", "PaneHandle", "initialSize", "useInitialPaneSize", "withoutRemovedPaneProps", "classNames", "paneAttributes", "PageScope"]
|
|
7
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{a}from"./chunk-FICBVI4M.js";import{a as s}from"./chunk-BQC2P3SN.js";import{b as n,c as i,d as m}from"./chunk-UJ7JERJ5.js";import{d as p}from"./chunk-HBWBPBSA.js";import{c as t}from"./chunk-OKQAVYW4.js";import{a as r}from"./chunk-CLJ6SEGP.js";import*as e from"react";import L from"classnames";var y=["1","2","3","4","5","6","7","8","9"],D=["auto","always","hover","none"],f={...r,size:{type:"enum",className:"kui-r-size",values:y,responsive:!0},...m,...s,...i,...n,underline:{type:"enum",className:"kui-underline",values:D,default:"auto"},...p};var h=e.forwardRef((l,c)=>{let{children:o,className:P,color:u,asChild:d,...k}=t(l,f);return e.createElement(a,{...k,"data-accent-color":u,ref:c,asChild:!0,className:L("kui-reset","kui-Link",P)},d?o:e.createElement("a",null,o))});h.displayName="Link";export{h as a};
|
|
3
|
-
//# sourceMappingURL=chunk-B7STVZPU.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./chunk-KEWNXANF.js";import{a as o}from"./chunk-SBRPXQWH.js";import{a as s}from"./chunk-SJXV4BWZ.js";import{a as p}from"./chunk-N6KH2EOU.js";import{d as r}from"./chunk-CUNKWFKA.js";import{a as e}from"./chunk-NZJGC6ZW.js";var i=["1","2","3","4","5","6","7","8","9"],n=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"kui-r-size",values:i,responsive:!0},...p,...t,...s,...o,underline:{type:"enum",className:"kui-underline",values:n,default:"auto"},...r};export{D as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EFXHBH3A.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/link.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\nconst underline = ['auto', 'always', 'hover', 'none'] as const;\n\nconst linkPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'kui-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n underline: { type: 'enum', className: 'kui-underline', values: underline, default: 'auto' },\n ...accentColorPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n underline: PropDef<(typeof underline)[number]>;\n};\n\nexport { linkPropDefs };\n"],
|
|
5
|
-
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACpDC,EAAY,CAAC,OAAQ,SAAU,QAAS,MAAM,EAE9CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,aACX,OAAQH,EACR,WAAY,EACd,EACA,GAAGI,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,UAAW,CAAE,KAAM,OAAQ,UAAW,gBAAiB,OAAQN,EAAW,QAAS,MAAO,EAC1F,GAAGO,CACL",
|
|
6
|
-
"names": ["sizes", "underline", "linkPropDefs", "asChildPropDef", "weightPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "accentColorPropDef"]
|
|
7
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{b as s}from"./chunk-MAA6LEE2.js";import*as o from"react";import{useLayoutEffect as p}from"radix-ui/internal";function l(e){return typeof e=="object"&&e!==null}function d(e,n){let t={},r=null;for(let i of s){if(e!==void 0&&!l(e)){t[i]=e;continue}let a=l(e)?e[i]:void 0;a!==void 0&&(r={value:a}),t[i]=r?r.value:n(i)}return t}function f(e){let n=e.initial;return s.every(t=>e[t]===n)?n:void 0}function T(e,n){let t=f(n);if(t!==void 0)return{[`data-${e}`]:t};let r={};for(let i of s)r[`data-${e}-${i}`]=n[i];return r}function g(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var R=d("fixed",()=>"fixed");function y(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function S(e){e.version+=1;for(let n of e.listeners)n()}function c(e,n){return e.listeners.add(n),()=>{e.listeners.delete(n)}}function m(e,n){e.peek!==n&&(e.peek=n,S(e))}var b=o.createContext(null);function I(e){let n=o.useContext(b);if(!n)throw new Error(`${e} must be used within <Shell.Root>`);return n}function k(e,n){let t=o.useCallback(i=>c(e,i),[e]),r=o.useCallback(()=>e.entries.get(n),[e,n]);return o.useSyncExternalStore(t,r,()=>{})}function v(e,n){let t=o.useCallback(r=>c(e,r),[e]);return o.useSyncExternalStore(t,()=>e.peek===n,()=>!1)}var x=o.createContext(null);function E(e,n){let t=o.useContext(x);if(!t)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:r,unregisterInset:i}=t;p(()=>{if(n)return r(e),()=>i(e)},[e,n,r,i])}var u=new Set;function w(e){}export{d as a,f as b,T as c,g as d,R as e,y as f,S as g,c as h,m as i,b as j,I as k,k as l,v as m,x as n,E as o,w as p};
|
|
3
|
-
//# sourceMappingURL=chunk-GHWEXMF6.js.map
|