@duckcodeailabs/dql-ui 1.0.2 → 1.4.3

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.
Files changed (48) hide show
  1. package/dist/icons/dql-glyphs.d.ts +19 -0
  2. package/dist/icons/dql-glyphs.d.ts.map +1 -0
  3. package/dist/icons/dql-glyphs.js +23 -0
  4. package/dist/icons/dql-glyphs.js.map +1 -0
  5. package/dist/icons/index.d.ts +3 -0
  6. package/dist/icons/index.d.ts.map +1 -0
  7. package/dist/icons/index.js +9 -0
  8. package/dist/icons/index.js.map +1 -0
  9. package/dist/index.d.ts +7 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +14 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/primitives/CellChrome.d.ts +43 -0
  14. package/dist/primitives/CellChrome.d.ts.map +1 -0
  15. package/dist/primitives/CellChrome.js +46 -0
  16. package/dist/primitives/CellChrome.js.map +1 -0
  17. package/dist/primitives/Kbd.d.ts +12 -0
  18. package/dist/primitives/Kbd.d.ts.map +1 -0
  19. package/dist/primitives/Kbd.js +23 -0
  20. package/dist/primitives/Kbd.js.map +1 -0
  21. package/dist/primitives/PanelFrame.d.ts +67 -0
  22. package/dist/primitives/PanelFrame.d.ts.map +1 -0
  23. package/dist/primitives/PanelFrame.js +27 -0
  24. package/dist/primitives/PanelFrame.js.map +1 -0
  25. package/dist/primitives/PublishedCellChrome.d.ts +20 -0
  26. package/dist/primitives/PublishedCellChrome.d.ts.map +1 -0
  27. package/dist/primitives/PublishedCellChrome.js +47 -0
  28. package/dist/primitives/PublishedCellChrome.js.map +1 -0
  29. package/dist/primitives/SegmentedControl.d.ts +16 -0
  30. package/dist/primitives/SegmentedControl.d.ts.map +1 -0
  31. package/dist/primitives/SegmentedControl.js +33 -0
  32. package/dist/primitives/SegmentedControl.js.map +1 -0
  33. package/dist/primitives/Shell.d.ts +44 -0
  34. package/dist/primitives/Shell.d.ts.map +1 -0
  35. package/dist/primitives/Shell.js +78 -0
  36. package/dist/primitives/Shell.js.map +1 -0
  37. package/dist/primitives/TrustBadge.d.ts +8 -0
  38. package/dist/primitives/TrustBadge.d.ts.map +1 -0
  39. package/dist/primitives/TrustBadge.js +13 -0
  40. package/dist/primitives/TrustBadge.js.map +1 -0
  41. package/dist/tokens/index.d.ts +5 -0
  42. package/dist/tokens/index.d.ts.map +1 -1
  43. package/dist/tokens/index.js +14 -1
  44. package/dist/tokens/index.js.map +1 -1
  45. package/package.json +12 -4
  46. package/src/styles/globals.css +518 -0
  47. package/src/styles/panel.css +448 -0
  48. package/src/styles/tokens.css +1977 -0
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ export type IconProps = React.SVGProps<SVGSVGElement> & {
3
+ size?: number | string;
4
+ };
5
+ type IconRenderer = (p: IconProps) => React.ReactElement;
6
+ export declare const BlockIcon: IconRenderer;
7
+ export declare const CertifiedShieldIcon: IconRenderer;
8
+ export declare const LineageNodeIcon: IconRenderer;
9
+ export declare const SQLCellIcon: IconRenderer;
10
+ export declare const DQLCellIcon: IconRenderer;
11
+ export declare const ChartCellIcon: IconRenderer;
12
+ export declare const PivotCellIcon: IconRenderer;
13
+ export declare const SingleValueCellIcon: IconRenderer;
14
+ export declare const ParamCellIcon: IconRenderer;
15
+ export declare const FilterCellIcon: IconRenderer;
16
+ export declare const WritebackCellIcon: IconRenderer;
17
+ export declare const ChatCellIcon: IconRenderer;
18
+ export {};
19
+ //# sourceMappingURL=dql-glyphs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dql-glyphs.d.ts","sourceRoot":"","sources":["../../src/icons/dql-glyphs.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC;AAuBzD,eAAO,MAAM,SAAS,cAOrB,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAK/B,CAAC;AAGF,eAAO,MAAM,eAAe,cAO3B,CAAC;AAGF,eAAO,MAAM,WAAW,cAMvB,CAAC;AAEF,eAAO,MAAM,WAAW,cAKvB,CAAC;AAEF,eAAO,MAAM,aAAa,cAKzB,CAAC;AAEF,eAAO,MAAM,aAAa,cAKzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,cAK/B,CAAC;AAEF,eAAO,MAAM,aAAa,cAKzB,CAAC;AAEF,eAAO,MAAM,cAAc,cAI1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAM7B,CAAC;AAEF,eAAO,MAAM,YAAY,cAIxB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function createIcon(paths, viewBox = '0 0 24 24') {
3
+ return function Icon({ size = 16, strokeWidth = 1.75, ...rest }) {
4
+ return (_jsx("svg", { width: size, height: size, viewBox: viewBox, fill: "none", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", ...rest, children: paths }));
5
+ };
6
+ }
7
+ // Block — stylized stacked rectangles (certified block artifact)
8
+ export const BlockIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "3", width: "8", height: "8", rx: "1.5" }), _jsx("rect", { x: "13", y: "3", width: "8", height: "8", rx: "1.5" }), _jsx("rect", { x: "3", y: "13", width: "8", height: "8", rx: "1.5" }), _jsx("rect", { x: "13", y: "13", width: "8", height: "8", rx: "1.5" })] }));
9
+ // Certified shield
10
+ export const CertifiedShieldIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("path", { d: "M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5l8-3z" }), _jsx("path", { d: "M9 12l2 2 4-4" })] }));
11
+ // Lineage node — three nodes connected
12
+ export const LineageNodeIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("circle", { cx: "5", cy: "12", r: "2" }), _jsx("circle", { cx: "19", cy: "5", r: "2" }), _jsx("circle", { cx: "19", cy: "19", r: "2" }), _jsx("path", { d: "M7 12l10-6M7 12l10 6" })] }));
13
+ // Cell-type icons
14
+ export const SQLCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("ellipse", { cx: "12", cy: "5", rx: "8", ry: "3" }), _jsx("path", { d: "M4 5v6c0 1.66 3.58 3 8 3s8-1.34 8-3V5" }), _jsx("path", { d: "M4 11v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6" })] }));
15
+ export const DQLCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("path", { d: "M4 4h8a8 8 0 010 16H4z" }), _jsx("path", { d: "M16 20l4 4" })] }));
16
+ export const ChartCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("path", { d: "M3 3v18h18" }), _jsx("path", { d: "M7 15l4-4 4 4 5-7" })] }));
17
+ export const PivotCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }), _jsx("path", { d: "M3 9h18M9 3v18" })] }));
18
+ export const SingleValueCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }), _jsx("path", { d: "M8 12h8M12 8v8" })] }));
19
+ export const ParamCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("path", { d: "M4 7h16M4 12h16M4 17h10" }), _jsx("circle", { cx: "18", cy: "17", r: "2" })] }));
20
+ export const FilterCellIcon = createIcon(_jsx(_Fragment, { children: _jsx("path", { d: "M3 5h18l-7 9v5l-4-2v-3L3 5z" }) }));
21
+ export const WritebackCellIcon = createIcon(_jsxs(_Fragment, { children: [_jsx("path", { d: "M4 4h10l6 6v10H4z" }), _jsx("path", { d: "M14 4v6h6" }), _jsx("path", { d: "M8 14l3 3 5-5" })] }));
22
+ export const ChatCellIcon = createIcon(_jsx(_Fragment, { children: _jsx("path", { d: "M21 12a8 8 0 01-11.5 7.2L4 21l1.8-5.5A8 8 0 1121 12z" }) }));
23
+ //# sourceMappingURL=dql-glyphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dql-glyphs.js","sourceRoot":"","sources":["../../src/icons/dql-glyphs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './dql-glyphs.js';
2
+ export { Files, FolderOpen, Database, Layers, GitBranch, Plug, BookOpen, Settings, HelpCircle, Play, Square, Search, X, Plus, ChevronRight, ChevronDown, ChevronLeft, ChevronUp, ChevronsLeft, ChevronsRight, Command, Moon, Sun, Sparkles, Code, Trash2, Save, Download, Upload, MoreHorizontal, MoreVertical, Check, AlertCircle, AlertTriangle, Info, ArrowRight, ArrowLeft, Terminal, Eye, EyeOff, Copy, RefreshCw, Loader2, Lock, Unlock, Filter, Menu, FileText, Table, BarChart3, Hash, Grid3x3, Sliders, MessageSquare, Package, Maximize2, ExternalLink, } from 'lucide-react';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAOA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,cAAc,EACd,YAAY,EACZ,KAAK,EACL,WAAW,EACX,aAAa,EACb,IAAI,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,EACH,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ // v1.3 Track 3 — single icon entry point.
2
+ //
3
+ // Consumers should import from '@duckcodeailabs/dql-ui/icons' so Lucide
4
+ // glyphs and DQL-specific glyphs share one import site. Centralising the
5
+ // surface lets Track 6/7 swap implementations without touching every
6
+ // consumer.
7
+ export * from './dql-glyphs.js';
8
+ export { Files, FolderOpen, Database, Layers, GitBranch, Plug, BookOpen, Settings, HelpCircle, Play, Square, Search, X, Plus, ChevronRight, ChevronDown, ChevronLeft, ChevronUp, ChevronsLeft, ChevronsRight, Command, Moon, Sun, Sparkles, Code, Trash2, Save, Download, Upload, MoreHorizontal, MoreVertical, Check, AlertCircle, AlertTriangle, Info, ArrowRight, ArrowLeft, Terminal, Eye, EyeOff, Copy, RefreshCw, Loader2, Lock, Unlock, Filter, Menu, FileText, Table, BarChart3, Hash, Grid3x3, Sliders, MessageSquare, Package, Maximize2, ExternalLink, } from 'lucide-react';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,qEAAqE;AACrE,YAAY;AAEZ,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,MAAM,EACN,MAAM,EACN,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,cAAc,EACd,YAAY,EACZ,KAAK,EACL,WAAW,EACX,aAAa,EACb,IAAI,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,GAAG,EACH,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,11 @@ export { Tooltip, TooltipProvider, type TooltipProps } from './primitives/Toolti
4
4
  export { Dialog, DialogClose, type DialogProps } from './primitives/Dialog.js';
5
5
  export { DropdownMenu, DropdownMenuTrigger, DropdownMenuGroup, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel, type DropdownMenuContentProps, } from './primitives/DropdownMenu.js';
6
6
  export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, PopoverClose, type PopoverContentProps, } from './primitives/Popover.js';
7
+ export { PanelFrame, PanelSection, PanelCard, StatusPill, PanelEmpty, PanelToolbar, KeyValueGrid, type PanelFrameProps, type PanelSectionProps, type PanelCardProps, type StatusPillProps, type PanelEmptyProps, type PanelToolbarProps, type KeyValueGridProps, type KVItem, } from './primitives/PanelFrame.js';
8
+ export { Shell, TopBar, CanvasBody, LeftPanel, RightPanel, BottomDrawer, StatusBar, type ShellProps, type TopBarProps, type CanvasBodyProps, type StatusBarProps, } from './primitives/Shell.js';
9
+ export { SegmentedControl, type SegmentedControlProps, type SegmentedControlOption, } from './primitives/SegmentedControl.js';
10
+ export { TrustBadge, type TrustBadgeProps, type TrustState } from './primitives/TrustBadge.js';
11
+ export { CellChrome, type CellChromeProps } from './primitives/CellChrome.js';
12
+ export { PublishedCellChrome, type PublishedCellChromeProps } from './primitives/PublishedCellChrome.js';
13
+ export { Kbd, type KbdProps } from './primitives/Kbd.js';
7
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,MAAM,GACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG/F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAGzG,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -8,4 +8,18 @@ export { Tooltip, TooltipProvider } from './primitives/Tooltip.js';
8
8
  export { Dialog, DialogClose } from './primitives/Dialog.js';
9
9
  export { DropdownMenu, DropdownMenuTrigger, DropdownMenuGroup, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel, } from './primitives/DropdownMenu.js';
10
10
  export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, PopoverClose, } from './primitives/Popover.js';
11
+ // PanelFrame primitive set (v1.3 Track 4)
12
+ export { PanelFrame, PanelSection, PanelCard, StatusPill, PanelEmpty, PanelToolbar, KeyValueGrid, } from './primitives/PanelFrame.js';
13
+ // Shell layout primitives (v1.3 Track 4)
14
+ export { Shell, TopBar, CanvasBody, LeftPanel, RightPanel, BottomDrawer, StatusBar, } from './primitives/Shell.js';
15
+ // SegmentedControl (v1.3 Track 4 — used by Studio/App toggle in Track 5)
16
+ export { SegmentedControl, } from './primitives/SegmentedControl.js';
17
+ // TrustBadge (v1.3 Track 4 — v1.4 plug slot)
18
+ export { TrustBadge } from './primitives/TrustBadge.js';
19
+ // CellChrome (v1.3 Track 6 — Hex-style cell card wrapper)
20
+ export { CellChrome } from './primitives/CellChrome.js';
21
+ // PublishedCellChrome (v1.3 Track 11 — read-only card shared by App mode + dashboard emitter)
22
+ export { PublishedCellChrome } from './primitives/PublishedCellChrome.js';
23
+ // Kbd (v1.3 Track 10 — keyboard shortcut chip)
24
+ export { Kbd } from './primitives/Kbd.js';
11
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,SAAS;AACT,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,GAGP,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA2B,MAAM,0BAA0B,CAAC;AAE5F,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,SAAS;AACT,OAAO,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,UAAU,EACV,IAAI,EACJ,CAAC,EACD,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,MAAM,GAGP,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA2B,MAAM,0BAA0B,CAAC;AAE5F,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,GASb,MAAM,4BAA4B,CAAC;AAEpC,yCAAyC;AACzC,OAAO,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,GAKV,MAAM,uBAAuB,CAAC;AAE/B,yEAAyE;AACzE,OAAO,EACL,gBAAgB,GAGjB,MAAM,kCAAkC,CAAC;AAE1C,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAyC,MAAM,4BAA4B,CAAC;AAE/F,0DAA0D;AAC1D,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAC;AAE9E,8FAA8F;AAC9F,OAAO,EAAE,mBAAmB,EAAiC,MAAM,qCAAqC,CAAC;AAEzG,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAiB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import type { TrustState } from './TrustBadge.js';
3
+ export interface CellChromeProps {
4
+ /** Short uppercase label shown top-left. "SQL", "CHART", "PIVOT", etc. */
5
+ typeLabel: string;
6
+ /** Accent color for the type pill (solid text + tinted background). */
7
+ typeColor?: string;
8
+ /** Border/left-edge accent color. Drives run/error state. */
9
+ accent?: string;
10
+ /** Border color when the cell is not focused or running. */
11
+ idleBorder?: string;
12
+ /** Background color of the card body. */
13
+ background?: string;
14
+ /** Background color of the header row. */
15
+ headerBackground?: string;
16
+ /** Whether the border should use `accent` (hover or running). */
17
+ active?: boolean;
18
+ /** Optional name / title shown after the type label. */
19
+ title?: React.ReactNode;
20
+ /** Trust state hint; plug slot for v1.4. */
21
+ trustState?: TrustState;
22
+ /** Right-side status pill (execution badge). */
23
+ status?: React.ReactNode;
24
+ /** Right-side action row (Run, overflow, save-as-block). */
25
+ actions?: React.ReactNode;
26
+ /** Left-side action row after the type label. */
27
+ toolbar?: React.ReactNode;
28
+ /** Optional row under the header (binding chip, governance bar). */
29
+ subheader?: React.ReactNode;
30
+ /** Output row (table / chart / error panel). */
31
+ footer?: React.ReactNode;
32
+ /** Main body (editor). */
33
+ children?: React.ReactNode;
34
+ onMouseEnter?: () => void;
35
+ onMouseLeave?: () => void;
36
+ onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
37
+ /** Render a gutter column to the left (matches existing ExecutionBadge layout). */
38
+ gutter?: React.ReactNode;
39
+ className?: string;
40
+ style?: React.CSSProperties;
41
+ }
42
+ export declare function CellChrome({ typeLabel, typeColor, accent, idleBorder, background, headerBackground, active, title, status, actions, toolbar, subheader, footer, children, onMouseEnter, onMouseLeave, onClick, gutter, className, style, }: CellChromeProps): import("react/jsx-runtime").JSX.Element;
43
+ //# sourceMappingURL=CellChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellChrome.d.ts","sourceRoot":"","sources":["../../src/primitives/CellChrome.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gDAAgD;IAChD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iDAAiD;IACjD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,gDAAgD;IAChD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAExD,mFAAmF;IACnF,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,MAAc,EACd,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,eAAe,2CAoFjB"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function CellChrome({ typeLabel, typeColor, accent, idleBorder, background, headerBackground, active = false, title, status, actions, toolbar, subheader, footer, children, onMouseEnter, onMouseLeave, onClick, gutter, className, style, }) {
3
+ const pillColor = typeColor ?? 'var(--color-accent-blue, #388bfd)';
4
+ const edge = accent ?? idleBorder ?? 'var(--color-border-subtle, rgba(148,163,184,0.18))';
5
+ const idle = idleBorder ?? 'var(--color-border-subtle, rgba(148,163,184,0.18))';
6
+ const bg = background ?? 'var(--color-bg-1, rgba(22,27,34,0.5))';
7
+ const headerBg = headerBackground ?? 'transparent';
8
+ return (_jsxs("div", { onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: onClick, className: className, style: {
9
+ display: 'flex',
10
+ gap: 0,
11
+ marginBottom: 2,
12
+ ...style,
13
+ }, children: [gutter !== undefined && gutter, _jsxs("div", { style: {
14
+ flex: 1,
15
+ minWidth: 0,
16
+ borderRadius: 8,
17
+ border: `1px solid ${active ? edge : idle}`,
18
+ background: bg,
19
+ overflow: 'hidden',
20
+ transition: 'border-color 0.2s, box-shadow 0.2s',
21
+ boxShadow: active
22
+ ? `0 0 0 3px ${pillColor}14, 0 1px 2px rgba(0,0,0,0.04)`
23
+ : '0 1px 2px rgba(0,0,0,0.02)',
24
+ }, children: [_jsxs("div", { style: {
25
+ minHeight: 32,
26
+ display: 'flex',
27
+ alignItems: 'center',
28
+ padding: '8px 14px',
29
+ gap: 8,
30
+ background: headerBg,
31
+ }, children: [_jsx("span", { "aria-hidden": true, style: {
32
+ width: 6,
33
+ height: 6,
34
+ borderRadius: 999,
35
+ background: pillColor,
36
+ flexShrink: 0,
37
+ } }), _jsx("span", { style: {
38
+ fontSize: 11,
39
+ fontWeight: 500,
40
+ letterSpacing: '0.2px',
41
+ color: 'var(--color-text-secondary, #4a4a52)',
42
+ flexShrink: 0,
43
+ whiteSpace: 'nowrap',
44
+ }, children: typeLabel }), title !== undefined && (_jsxs(_Fragment, { children: [_jsx("span", { style: { color: 'var(--color-text-tertiary, #8a8d96)', fontSize: 11 }, children: "\u00B7" }), title] })), toolbar !== undefined && toolbar, _jsx("span", { style: { flex: 1 } }), status !== undefined && status, actions !== undefined && actions] }), subheader !== undefined && subheader, children, footer !== undefined && footer] })] }));
45
+ }
46
+ //# sourceMappingURL=CellChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellChrome.js","sourceRoot":"","sources":["../../src/primitives/CellChrome.tsx"],"names":[],"mappings":";AAyEA,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,MAAM,GAAG,KAAK,EACd,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,GACW;IAChB,MAAM,SAAS,GAAG,SAAS,IAAI,mCAAmC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,IAAI,UAAU,IAAI,oDAAoD,CAAC;IAC1F,MAAM,IAAI,GAAG,UAAU,IAAI,oDAAoD,CAAC;IAChF,MAAM,EAAE,GAAG,UAAU,IAAI,uCAAuC,CAAC;IACjE,MAAM,QAAQ,GAAG,gBAAgB,IAAI,aAAa,CAAC;IAEnD,OAAO,CACL,eACE,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,GAAG,KAAK;SACT,aAEA,MAAM,KAAK,SAAS,IAAI,MAAM,EAC/B,eACE,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC;oBACX,YAAY,EAAE,CAAC;oBACf,MAAM,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC3C,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,oCAAoC;oBAChD,SAAS,EAAE,MAAM;wBACf,CAAC,CAAC,aAAa,SAAS,gCAAgC;wBACxD,CAAC,CAAC,4BAA4B;iBACjC,aAED,eACE,KAAK,EAAE;4BACL,SAAS,EAAE,EAAE;4BACb,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,QAAQ;4BACpB,OAAO,EAAE,UAAU;4BACnB,GAAG,EAAE,CAAC;4BACN,UAAU,EAAE,QAAQ;yBACrB,aAED,oCAEE,KAAK,EAAE;oCACL,KAAK,EAAE,CAAC;oCACR,MAAM,EAAE,CAAC;oCACT,YAAY,EAAE,GAAG;oCACjB,UAAU,EAAE,SAAS;oCACrB,UAAU,EAAE,CAAC;iCACd,GACD,EACF,eACE,KAAK,EAAE;oCACL,QAAQ,EAAE,EAAE;oCACZ,UAAU,EAAE,GAAG;oCACf,aAAa,EAAE,OAAO;oCACtB,KAAK,EAAE,sCAAsC;oCAC7C,UAAU,EAAE,CAAC;oCACb,UAAU,EAAE,QAAQ;iCACrB,YAEA,SAAS,GACL,EACN,KAAK,KAAK,SAAS,IAAI,CACtB,8BACE,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE,QAAQ,EAAE,EAAE,EAAE,uBAAU,EACpF,KAAK,IACL,CACJ,EACA,OAAO,KAAK,SAAS,IAAI,OAAO,EACjC,eAAM,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,EAC3B,MAAM,KAAK,SAAS,IAAI,MAAM,EAC9B,OAAO,KAAK,SAAS,IAAI,OAAO,IAC7B,EACL,SAAS,KAAK,SAAS,IAAI,SAAS,EACpC,QAAQ,EACR,MAAM,KAAK,SAAS,IAAI,MAAM,IAC3B,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Kbd — renders keyboard shortcut chips in the DQL palette and tooltips.
3
+ * Accepts a shortcut string ("⌘K", "Ctrl+Shift+L") or children for custom content.
4
+ */
5
+ import * as React from 'react';
6
+ export interface KbdProps extends React.HTMLAttributes<HTMLElement> {
7
+ /** Optional shortcut text. If present, rendered as the chip's label. */
8
+ shortcut?: string;
9
+ children?: React.ReactNode;
10
+ }
11
+ export declare function Kbd({ shortcut, children, style, ...rest }: KbdProps): React.ReactElement;
12
+ //# sourceMappingURL=Kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kbd.d.ts","sourceRoot":"","sources":["../../src/primitives/Kbd.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,QAAS,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACjE,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CA0BxF"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cssVar, radius, space, fontSize, fontWeight } from '../tokens/index.js';
3
+ export function Kbd({ shortcut, children, style, ...rest }) {
4
+ return (_jsx("kbd", { ...rest, style: {
5
+ display: 'inline-flex',
6
+ alignItems: 'center',
7
+ justifyContent: 'center',
8
+ minWidth: 18,
9
+ height: 18,
10
+ padding: `0 ${space[1]}px`,
11
+ borderRadius: radius.sm,
12
+ border: `1px solid ${cssVar('borderSubtle')}`,
13
+ background: cssVar('surfaceRaised'),
14
+ color: cssVar('textSecondary'),
15
+ fontFamily: 'var(--dql-font-mono, monospace)',
16
+ fontSize: fontSize.xs,
17
+ fontWeight: fontWeight.medium,
18
+ lineHeight: 1,
19
+ whiteSpace: 'nowrap',
20
+ ...style,
21
+ }, children: shortcut ?? children }));
22
+ }
23
+ //# sourceMappingURL=Kbd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kbd.js","sourceRoot":"","sources":["../../src/primitives/Kbd.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQjF,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAY;IAClE,OAAO,CACL,iBACM,IAAI,EACR,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI;YAC1B,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,MAAM,EAAE,aAAa,MAAM,CAAC,cAAc,CAAC,EAAE;YAC7C,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC;YACnC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;YAC9B,UAAU,EAAE,iCAAiC;YAC7C,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,QAAQ;YACpB,GAAG,KAAK;SACT,YAEA,QAAQ,IAAI,QAAQ,GACjB,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ type Tone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'error';
3
+ export interface PanelFrameProps {
4
+ icon?: React.ReactNode;
5
+ eyebrow?: React.ReactNode;
6
+ title?: React.ReactNode;
7
+ subtitle?: React.ReactNode;
8
+ status?: React.ReactNode;
9
+ actions?: React.ReactNode;
10
+ toolbar?: React.ReactNode;
11
+ bodyPadding?: number | string;
12
+ children?: React.ReactNode;
13
+ }
14
+ export declare function PanelFrame({ icon, eyebrow, title, subtitle, status, actions, toolbar, bodyPadding, children, }: PanelFrameProps): import("react/jsx-runtime").JSX.Element;
15
+ export interface PanelSectionProps {
16
+ title?: React.ReactNode;
17
+ count?: number;
18
+ icon?: React.ReactNode;
19
+ action?: React.ReactNode;
20
+ description?: React.ReactNode;
21
+ padded?: boolean;
22
+ children?: React.ReactNode;
23
+ }
24
+ export declare function PanelSection({ title, count, icon, action, description, padded, children, }: PanelSectionProps): import("react/jsx-runtime").JSX.Element;
25
+ export interface PanelCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
26
+ title?: React.ReactNode;
27
+ eyebrow?: React.ReactNode;
28
+ subtitle?: React.ReactNode;
29
+ icon?: React.ReactNode;
30
+ actions?: React.ReactNode;
31
+ tone?: Tone;
32
+ dense?: boolean;
33
+ children?: React.ReactNode;
34
+ }
35
+ export declare function PanelCard({ title, eyebrow, subtitle, icon, actions, tone, dense, children, className, ...rest }: PanelCardProps): import("react/jsx-runtime").JSX.Element;
36
+ export interface StatusPillProps extends React.HTMLAttributes<HTMLSpanElement> {
37
+ tone?: Tone;
38
+ icon?: React.ReactNode;
39
+ children?: React.ReactNode;
40
+ }
41
+ export declare function StatusPill({ tone, icon, children, className, ...rest }: StatusPillProps): import("react/jsx-runtime").JSX.Element;
42
+ export interface PanelEmptyProps {
43
+ icon?: React.ReactNode;
44
+ title?: React.ReactNode;
45
+ description?: React.ReactNode;
46
+ action?: React.ReactNode;
47
+ }
48
+ export declare function PanelEmpty({ icon, title, description, action }: PanelEmptyProps): import("react/jsx-runtime").JSX.Element;
49
+ export interface PanelToolbarProps {
50
+ left?: React.ReactNode;
51
+ right?: React.ReactNode;
52
+ children?: React.ReactNode;
53
+ className?: string;
54
+ }
55
+ export declare function PanelToolbar({ left, right, children, className }: PanelToolbarProps): import("react/jsx-runtime").JSX.Element;
56
+ export interface KVItem {
57
+ label: React.ReactNode;
58
+ value: React.ReactNode;
59
+ }
60
+ export interface KeyValueGridProps {
61
+ items?: KVItem[];
62
+ columns?: 1 | 2;
63
+ children?: React.ReactNode;
64
+ }
65
+ export declare function KeyValueGrid({ items, columns, children }: KeyValueGridProps): import("react/jsx-runtime").JSX.Element;
66
+ export {};
67
+ //# sourceMappingURL=PanelFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelFrame.d.ts","sourceRoot":"","sources":["../../src/primitives/PanelFrame.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function PanelFrame({ icon, eyebrow, title, subtitle, status, actions, toolbar, bodyPadding = 14, children, }) {
3
+ return (_jsxs("div", { className: "panel-frame", children: [_jsxs("div", { className: "panel-frame-header", children: [_jsxs("div", { className: "panel-frame-heading", children: [icon && _jsx("span", { className: "panel-frame-icon", children: icon }), _jsxs("div", { className: "panel-frame-title-col", children: [eyebrow && _jsx("div", { className: "panel-frame-eyebrow", children: eyebrow }), _jsxs("div", { className: "panel-frame-title-row", children: [title && _jsx("h2", { className: "panel-frame-title", children: title }), status && _jsx("span", { className: "panel-frame-status", children: status })] }), subtitle && _jsx("div", { className: "panel-frame-subtitle", children: subtitle })] })] }), actions && _jsx("div", { className: "panel-frame-actions", children: actions })] }), toolbar && _jsx("div", { className: "panel-frame-toolbar", children: toolbar }), _jsx("div", { className: "panel-frame-body", style: { padding: bodyPadding }, children: children })] }));
4
+ }
5
+ export function PanelSection({ title, count, icon, action, description, padded = true, children, }) {
6
+ return (_jsxs("section", { className: "panel-section", children: [_jsxs("header", { className: "panel-section-header", children: [_jsxs("div", { className: "panel-section-title-wrap", children: [icon && _jsx("span", { className: "panel-section-icon", children: icon }), title && _jsx("h3", { className: "panel-section-title", children: title }), typeof count === 'number' && _jsx("span", { className: "panel-section-count", children: count })] }), action && _jsx("div", { className: "panel-section-action", children: action })] }), description && _jsx("p", { className: "panel-section-desc", children: description }), _jsx("div", { className: `panel-section-body ${padded ? 'padded' : ''}`, children: children })] }));
7
+ }
8
+ export function PanelCard({ title, eyebrow, subtitle, icon, actions, tone = 'neutral', dense = false, children, className = '', ...rest }) {
9
+ return (_jsxs("div", { className: `panel-card tone-${tone} ${dense ? 'dense' : ''} ${className}`, ...rest, children: [(title || eyebrow || subtitle || actions || icon) && (_jsxs("div", { className: "panel-card-header", children: [_jsxs("div", { className: "panel-card-heading", children: [icon && _jsx("span", { className: "panel-card-icon", children: icon }), _jsxs("div", { className: "panel-card-title-col", children: [eyebrow && _jsx("div", { className: "panel-card-eyebrow", children: eyebrow }), title && _jsx("div", { className: "panel-card-title", children: title }), subtitle && _jsx("div", { className: "panel-card-subtitle", children: subtitle })] })] }), actions && _jsx("div", { className: "panel-card-actions", children: actions })] })), children != null && _jsx("div", { className: "panel-card-body", children: children })] }));
10
+ }
11
+ export function StatusPill({ tone = 'neutral', icon, children, className = '', ...rest }) {
12
+ return (_jsxs("span", { className: `status-pill tone-${tone} ${className}`, ...rest, children: [icon && _jsx("span", { className: "status-pill-icon", children: icon }), children] }));
13
+ }
14
+ export function PanelEmpty({ icon, title, description, action }) {
15
+ return (_jsxs("div", { className: "panel-empty", children: [icon && _jsx("span", { className: "panel-empty-icon", children: icon }), title && _jsx("p", { className: "panel-empty-title", children: title }), description && _jsx("p", { className: "panel-empty-desc", children: description }), action] }));
16
+ }
17
+ export function PanelToolbar({ left, right, children, className = '' }) {
18
+ return (_jsxs("div", { className: `panel-toolbar ${className}`, children: [left && _jsx("div", { className: "panel-toolbar-left", children: left }), children && _jsx("div", { className: "panel-toolbar-center", children: children }), right && _jsx("div", { className: "panel-toolbar-right", children: right })] }));
19
+ }
20
+ export function KeyValueGrid({ items, columns = 2, children }) {
21
+ const gridTemplate = `repeat(auto-fit, minmax(${columns === 1 ? '100%' : '220px'}, 1fr))`;
22
+ if (items && items.length > 0) {
23
+ return (_jsx("dl", { className: "panel-kv-grid", style: { gridTemplateColumns: gridTemplate }, children: items.map((it, idx) => (_jsxs("div", { className: "panel-kv-row", children: [_jsx("dt", { className: "panel-kv-label", children: it.label }), _jsx("dd", { className: "panel-kv-value", children: it.value })] }, idx))) }));
24
+ }
25
+ return (_jsx("dl", { className: "panel-kv-grid", style: { gridTemplateColumns: gridTemplate }, children: children }));
26
+ }
27
+ //# sourceMappingURL=PanelFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelFrame.js","sourceRoot":"","sources":["../../src/primitives/PanelFrame.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { TrustState } from './TrustBadge.js';
3
+ export interface PublishedCellChromeProps {
4
+ /** Optional title shown in the card header (left-aligned). */
5
+ title?: React.ReactNode;
6
+ /** Small caption under the title (e.g., block binding / source). */
7
+ caption?: React.ReactNode;
8
+ /** Trust state hint. v1.4 plug slot; renders a colored dot when provided. */
9
+ trustState?: TrustState;
10
+ /** Main body (chart, KPI, pivot, table). */
11
+ children?: React.ReactNode;
12
+ /** Optional footer slot for metadata strip. */
13
+ footer?: React.ReactNode;
14
+ background?: string;
15
+ idleBorder?: string;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare function PublishedCellChrome({ title, caption, trustState, children, footer, background, idleBorder, className, style, }: PublishedCellChromeProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=PublishedCellChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishedCellChrome.d.ts","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,oEAAoE;IACpE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AASD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,GACN,EAAE,wBAAwB,2CAkF1B"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const TRUST_DOT = {
3
+ draft: 'var(--color-text-muted, #9aa4b2)',
4
+ pending: 'var(--color-accent-yellow, #e3b341)',
5
+ certified: 'var(--color-accent-green, #3fb950)',
6
+ deprecated: 'var(--color-accent-red, #f85149)',
7
+ };
8
+ export function PublishedCellChrome({ title, caption, trustState, children, footer, background, idleBorder, className, style, }) {
9
+ const bg = background ?? 'var(--color-bg-1, rgba(22,27,34,0.5))';
10
+ const border = idleBorder ?? 'var(--color-border-subtle, rgba(148,163,184,0.18))';
11
+ return (_jsxs("div", { className: className, style: {
12
+ borderRadius: 8,
13
+ border: `1px solid ${border}`,
14
+ background: bg,
15
+ overflow: 'hidden',
16
+ ...style,
17
+ }, children: [(title !== undefined || caption !== undefined || trustState) && (_jsxs("div", { style: {
18
+ display: 'flex',
19
+ alignItems: 'center',
20
+ gap: 8,
21
+ padding: '10px 12px',
22
+ borderBottom: `1px solid ${border}`,
23
+ }, children: [trustState && (_jsx("span", { title: trustState, "aria-label": `trust state: ${trustState}`, style: {
24
+ width: 8,
25
+ height: 8,
26
+ borderRadius: '50%',
27
+ background: TRUST_DOT[trustState],
28
+ flexShrink: 0,
29
+ } })), _jsxs("div", { style: { minWidth: 0, flex: 1 }, children: [title !== undefined && (_jsx("div", { style: {
30
+ fontSize: 13,
31
+ fontWeight: 600,
32
+ color: 'var(--color-text-primary, #e6edf3)',
33
+ overflow: 'hidden',
34
+ textOverflow: 'ellipsis',
35
+ whiteSpace: 'nowrap',
36
+ }, children: title })), caption !== undefined && (_jsx("div", { style: {
37
+ fontSize: 11,
38
+ color: 'var(--color-text-muted, #9aa4b2)',
39
+ marginTop: 2,
40
+ }, children: caption }))] })] })), _jsx("div", { style: { padding: 12 }, children: children }), footer !== undefined && (_jsx("div", { style: {
41
+ padding: '8px 12px',
42
+ borderTop: `1px solid ${border}`,
43
+ fontSize: 11,
44
+ color: 'var(--color-text-muted, #9aa4b2)',
45
+ }, children: footer }))] }));
46
+ }
47
+ //# sourceMappingURL=PublishedCellChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishedCellChrome.js","sourceRoot":"","sources":["../../src/primitives/PublishedCellChrome.tsx"],"names":[],"mappings":";AA4BA,MAAM,SAAS,GAA4C;IACzD,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,qCAAqC;IAC9C,SAAS,EAAE,oCAAoC;IAC/C,UAAU,EAAE,kCAAkC;CAC/C,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,GACoB;IACzB,MAAM,EAAE,GAAG,UAAU,IAAI,uCAAuC,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU,IAAI,oDAAoD,CAAC;IAElF,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,aAAa,MAAM,EAAE;YAC7B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,QAAQ;YAClB,GAAG,KAAK;SACT,aAEA,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAC/D,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,aAAa,MAAM,EAAE;iBACpC,aAEA,UAAU,IAAI,CACb,eACE,KAAK,EAAE,UAAU,gBACL,gBAAgB,UAAU,EAAE,EACxC,KAAK,EAAE;4BACL,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,CAAC;4BACT,YAAY,EAAE,KAAK;4BACnB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC;4BACjC,UAAU,EAAE,CAAC;yBACd,GACD,CACH,EACD,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aACjC,KAAK,KAAK,SAAS,IAAI,CACtB,cACE,KAAK,EAAE;oCACL,QAAQ,EAAE,EAAE;oCACZ,UAAU,EAAE,GAAG;oCACf,KAAK,EAAE,oCAAoC;oCAC3C,QAAQ,EAAE,QAAQ;oCAClB,YAAY,EAAE,UAAU;oCACxB,UAAU,EAAE,QAAQ;iCACrB,YAEA,KAAK,GACF,CACP,EACA,OAAO,KAAK,SAAS,IAAI,CACxB,cACE,KAAK,EAAE;oCACL,QAAQ,EAAE,EAAE;oCACZ,KAAK,EAAE,kCAAkC;oCACzC,SAAS,EAAE,CAAC;iCACb,YAEA,OAAO,GACJ,CACP,IACG,IACF,CACP,EACD,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAG,QAAQ,GAAO,EAC5C,MAAM,KAAK,SAAS,IAAI,CACvB,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,aAAa,MAAM,EAAE;oBAChC,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,kCAAkC;iBAC1C,YAEA,MAAM,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ export interface SegmentedControlOption<V extends string = string> {
3
+ value: V;
4
+ label: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ disabled?: boolean;
7
+ }
8
+ export interface SegmentedControlProps<V extends string = string> {
9
+ options: SegmentedControlOption<V>[];
10
+ value: V;
11
+ onChange: (value: V) => void;
12
+ size?: 'sm' | 'md';
13
+ ariaLabel?: string;
14
+ }
15
+ export declare function SegmentedControl<V extends string = string>({ options, value, onChange, size, ariaLabel, }: SegmentedControlProps<V>): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=SegmentedControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/primitives/SegmentedControl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1D,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAW,EACX,SAAS,GACV,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAkD1B"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function SegmentedControl({ options, value, onChange, size = 'md', ariaLabel, }) {
3
+ const pad = size === 'sm' ? '4px 10px' : '6px 12px';
4
+ const font = size === 'sm' ? 11 : 12;
5
+ return (_jsx("div", { role: "tablist", "aria-label": ariaLabel, style: {
6
+ display: 'inline-flex',
7
+ padding: 2,
8
+ gap: 2,
9
+ background: 'var(--bg-2)',
10
+ border: '1px solid var(--border-default)',
11
+ borderRadius: 8,
12
+ }, children: options.map((opt) => {
13
+ const active = opt.value === value;
14
+ return (_jsxs("button", { role: "tab", "aria-selected": active, disabled: opt.disabled, onClick: () => onChange(opt.value), style: {
15
+ display: 'inline-flex',
16
+ alignItems: 'center',
17
+ gap: 6,
18
+ padding: pad,
19
+ border: 'none',
20
+ borderRadius: 6,
21
+ background: active ? 'var(--bg-0)' : 'transparent',
22
+ color: active ? 'var(--text-primary)' : 'var(--text-tertiary)',
23
+ fontSize: font,
24
+ fontWeight: active ? 600 : 500,
25
+ cursor: opt.disabled ? 'not-allowed' : 'pointer',
26
+ opacity: opt.disabled ? 0.5 : 1,
27
+ boxShadow: active ? '0 1px 2px rgba(0,0,0,0.12)' : 'none',
28
+ transition: 'background 120ms var(--ease), color 120ms var(--ease)',
29
+ whiteSpace: 'nowrap',
30
+ }, children: [opt.icon && _jsx("span", { style: { display: 'inline-flex' }, children: opt.icon }), opt.label] }, opt.value));
31
+ }) }));
32
+ }
33
+ //# sourceMappingURL=SegmentedControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../src/primitives/SegmentedControl.tsx"],"names":[],"mappings":";AAuBA,MAAM,UAAU,gBAAgB,CAA4B,EAC1D,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,SAAS,GACgB;IACzB,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,OAAO,CACL,cACE,IAAI,EAAC,SAAS,gBACF,SAAS,EACrB,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,iCAAiC;YACzC,YAAY,EAAE,CAAC;SAChB,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;YACnC,OAAO,CACL,kBAEE,IAAI,EAAC,KAAK,mBACK,MAAM,EACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAClC,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,GAAG;oBACZ,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,CAAC;oBACf,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;oBAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB;oBAC9D,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;oBAC9B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBAChD,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/B,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,MAAM;oBACzD,UAAU,EAAE,uDAAuD;oBACnE,UAAU,EAAE,QAAQ;iBACrB,aAEA,GAAG,CAAC,IAAI,IAAI,eAAM,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,YAAG,GAAG,CAAC,IAAI,GAAQ,EACtE,GAAG,CAAC,KAAK,KAxBL,GAAG,CAAC,KAAK,CAyBP,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ export interface ShellProps {
3
+ children: React.ReactNode;
4
+ style?: React.CSSProperties;
5
+ }
6
+ export declare function Shell({ children, style }: ShellProps): import("react/jsx-runtime").JSX.Element;
7
+ export interface TopBarProps {
8
+ left?: React.ReactNode;
9
+ center?: React.ReactNode;
10
+ right?: React.ReactNode;
11
+ height?: number;
12
+ }
13
+ export declare function TopBar({ left, center, right, height }: TopBarProps): import("react/jsx-runtime").JSX.Element;
14
+ export interface CanvasBodyProps {
15
+ activityBar?: React.ReactNode;
16
+ leftPanel?: React.ReactNode;
17
+ center: React.ReactNode;
18
+ rightPanel?: React.ReactNode;
19
+ }
20
+ export declare function CanvasBody({ activityBar, leftPanel, center, rightPanel }: CanvasBodyProps): import("react/jsx-runtime").JSX.Element;
21
+ export interface SidePanelProps {
22
+ side: 'left' | 'right';
23
+ width?: number;
24
+ children: React.ReactNode;
25
+ }
26
+ export declare function LeftPanel({ width, children }: {
27
+ width?: number;
28
+ children: React.ReactNode;
29
+ }): import("react/jsx-runtime").JSX.Element;
30
+ export declare function RightPanel({ width, children }: {
31
+ width?: number;
32
+ children: React.ReactNode;
33
+ }): import("react/jsx-runtime").JSX.Element;
34
+ export declare function BottomDrawer({ height, children }: {
35
+ height?: number;
36
+ children: React.ReactNode;
37
+ }): import("react/jsx-runtime").JSX.Element;
38
+ export interface StatusBarProps {
39
+ left?: React.ReactNode;
40
+ right?: React.ReactNode;
41
+ height?: number;
42
+ }
43
+ export declare function StatusBar({ left, right, height }: StatusBarProps): import("react/jsx-runtime").JSX.Element;
44
+ //# sourceMappingURL=Shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/primitives/Shell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,UAAU,2CAkBpD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE,WAAW,2CAmBvE;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,eAAe,2CAgBzF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAgBjG;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAgBlG;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAY,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAatG;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE,cAAc,2CAmBrE"}