@compose-market/theme 0.0.2 → 0.0.4

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 (82) hide show
  1. package/dist/css/dark.css +38 -0
  2. package/dist/css/index.css +10 -0
  3. package/dist/css/index.d.ts +16 -0
  4. package/dist/css/index.d.ts.map +1 -0
  5. package/dist/css/index.js +97 -0
  6. package/dist/css/index.js.map +1 -0
  7. package/dist/css/light.css +70 -0
  8. package/dist/css/shell.css +414 -0
  9. package/dist/css/tokens.css +24 -0
  10. package/dist/index.d.ts +7 -5
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -5
  13. package/dist/index.js.map +1 -1
  14. package/dist/shell/index.d.ts +67 -0
  15. package/dist/shell/index.d.ts.map +1 -0
  16. package/dist/shell/index.js +45 -0
  17. package/dist/shell/index.js.map +1 -0
  18. package/dist/shell/styles.d.ts +2 -0
  19. package/dist/shell/styles.d.ts.map +1 -0
  20. package/dist/shell/styles.js +416 -0
  21. package/dist/shell/styles.js.map +1 -0
  22. package/dist/tailwind/preset.d.ts +282 -0
  23. package/dist/tailwind/preset.d.ts.map +1 -0
  24. package/dist/tailwind/preset.js +144 -0
  25. package/dist/tailwind/preset.js.map +1 -0
  26. package/package.json +16 -41
  27. package/dist/components/brand/Logo.d.ts +0 -25
  28. package/dist/components/brand/Logo.d.ts.map +0 -1
  29. package/dist/components/brand/Logo.js +0 -20
  30. package/dist/components/brand/Logo.js.map +0 -1
  31. package/dist/components/brand/index.d.ts +0 -2
  32. package/dist/components/brand/index.d.ts.map +0 -1
  33. package/dist/components/brand/index.js +0 -2
  34. package/dist/components/brand/index.js.map +0 -1
  35. package/dist/components/session.d.ts +0 -58
  36. package/dist/components/session.d.ts.map +0 -1
  37. package/dist/components/session.js +0 -280
  38. package/dist/components/session.js.map +0 -1
  39. package/dist/components/ui/badge.d.ts +0 -10
  40. package/dist/components/ui/badge.d.ts.map +0 -1
  41. package/dist/components/ui/badge.js +0 -24
  42. package/dist/components/ui/badge.js.map +0 -1
  43. package/dist/components/ui/button.d.ts +0 -14
  44. package/dist/components/ui/button.d.ts.map +0 -1
  45. package/dist/components/ui/button.js +0 -43
  46. package/dist/components/ui/button.js.map +0 -1
  47. package/dist/components/ui/card.d.ts +0 -13
  48. package/dist/components/ui/card.d.ts.map +0 -1
  49. package/dist/components/ui/card.js +0 -18
  50. package/dist/components/ui/card.js.map +0 -1
  51. package/dist/components/ui/dialog.d.ts +0 -20
  52. package/dist/components/ui/dialog.d.ts.map +0 -1
  53. package/dist/components/ui/dialog.js +0 -23
  54. package/dist/components/ui/dialog.js.map +0 -1
  55. package/dist/components/ui/dropdown-menu.d.ts +0 -28
  56. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  57. package/dist/components/ui/dropdown-menu.js +0 -37
  58. package/dist/components/ui/dropdown-menu.js.map +0 -1
  59. package/dist/components/ui/index.d.ts +0 -7
  60. package/dist/components/ui/index.d.ts.map +0 -1
  61. package/dist/components/ui/index.js +0 -7
  62. package/dist/components/ui/index.js.map +0 -1
  63. package/dist/components/ui/progress.d.ts +0 -5
  64. package/dist/components/ui/progress.d.ts.map +0 -1
  65. package/dist/components/ui/progress.js +0 -9
  66. package/dist/components/ui/progress.js.map +0 -1
  67. package/dist/components/ui/surface-variant.d.ts +0 -4
  68. package/dist/components/ui/surface-variant.d.ts.map +0 -1
  69. package/dist/components/ui/surface-variant.js +0 -10
  70. package/dist/components/ui/surface-variant.js.map +0 -1
  71. package/dist/lib/utils.d.ts +0 -3
  72. package/dist/lib/utils.d.ts.map +0 -1
  73. package/dist/lib/utils.js +0 -6
  74. package/dist/lib/utils.js.map +0 -1
  75. package/dist/lib/visual-system.d.ts +0 -39
  76. package/dist/lib/visual-system.d.ts.map +0 -1
  77. package/dist/lib/visual-system.js +0 -129
  78. package/dist/lib/visual-system.js.map +0 -1
  79. package/dist/utils/index.d.ts +0 -2
  80. package/dist/utils/index.d.ts.map +0 -1
  81. package/dist/utils/index.js +0 -2
  82. package/dist/utils/index.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,12 +1,14 @@
1
+ /**
2
+ * @compose-market/theme
3
+ *
4
+ * Official design tokens and theme system for Compose.Market
5
+ */
1
6
  export * from './tokens';
2
7
  export * from './themes';
3
- export * from './utils';
8
+ export * from './shell';
4
9
  import { tokens } from './tokens';
5
10
  import { themes, defaultTheme, getTheme, getThemeColors } from './themes';
6
11
  export { tokens, themes, defaultTheme, getTheme, getThemeColors, };
7
- export * from './components/ui';
8
- export * from './components/brand';
9
- export { BUDGET_PRESETS, SessionBudgetDialog, SessionStatusCard, SessionIndicator, } from './components/session';
10
- export const packageVersion = '0.0.2';
12
+ export const packageVersion = '1.0.0';
11
13
  export const packageName = '@compose-market/theme';
12
14
  //# 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,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,MAAM,EAAqB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAEtG,OAAO,EACL,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,GAIf,CAAC;AAEF,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EASL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,MAAM,EAAqB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAEtG,OAAO,EACL,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,GAIf,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import * as React from "react";
2
+ export interface ShellButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
+ tone?: "primary" | "secondary" | "ghost" | "danger";
4
+ size?: "sm" | "md" | "lg";
5
+ iconOnly?: boolean;
6
+ }
7
+ export declare const ShellButton: React.ForwardRefExoticComponent<ShellButtonProps & React.RefAttributes<HTMLButtonElement>>;
8
+ export interface ShellPillProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ }
10
+ export declare function ShellPill({ className, ...props }: ShellPillProps): import("react/jsx-runtime").JSX.Element;
11
+ export interface ShellPanelProps extends React.HTMLAttributes<HTMLDivElement> {
12
+ variant?: "default" | "muted" | "ghost";
13
+ padded?: boolean;
14
+ }
15
+ export declare function ShellPanel({ className, variant, padded, children, ...props }: ShellPanelProps): import("react/jsx-runtime").JSX.Element;
16
+ export interface ShellPageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
17
+ eyebrow?: React.ReactNode;
18
+ title: React.ReactNode;
19
+ subtitle?: React.ReactNode;
20
+ actions?: React.ReactNode;
21
+ }
22
+ export declare function ShellPageHeader({ className, eyebrow, title, subtitle, actions, ...props }: ShellPageHeaderProps): import("react/jsx-runtime").JSX.Element;
23
+ export interface ShellStatGridProps extends React.HTMLAttributes<HTMLDivElement> {
24
+ }
25
+ export declare function ShellStatGrid({ className, ...props }: ShellStatGridProps): import("react/jsx-runtime").JSX.Element;
26
+ export interface ShellStatProps extends React.HTMLAttributes<HTMLDivElement> {
27
+ label: React.ReactNode;
28
+ value: React.ReactNode;
29
+ hint?: React.ReactNode;
30
+ }
31
+ export declare function ShellStat({ className, label, value, hint, ...props }: ShellStatProps): import("react/jsx-runtime").JSX.Element;
32
+ export interface ShellTabStripProps extends React.HTMLAttributes<HTMLDivElement> {
33
+ }
34
+ export declare function ShellTabStrip({ className, ...props }: ShellTabStripProps): import("react/jsx-runtime").JSX.Element;
35
+ export interface ShellTabProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
36
+ active?: boolean;
37
+ }
38
+ export declare function ShellTab({ className, active, type, ...props }: ShellTabProps): import("react/jsx-runtime").JSX.Element;
39
+ export interface ShellNoticeProps extends React.HTMLAttributes<HTMLDivElement> {
40
+ tone?: "info" | "success" | "warning" | "error";
41
+ }
42
+ export declare function ShellNotice({ className, tone, ...props }: ShellNoticeProps): import("react/jsx-runtime").JSX.Element;
43
+ export interface ShellBannerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
44
+ title: React.ReactNode;
45
+ subtitle?: React.ReactNode;
46
+ actions?: React.ReactNode;
47
+ }
48
+ export declare function ShellBanner({ className, title, subtitle, actions, ...props }: ShellBannerProps): import("react/jsx-runtime").JSX.Element;
49
+ export interface ShellEmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
50
+ icon?: React.ReactNode;
51
+ title: React.ReactNode;
52
+ description?: React.ReactNode;
53
+ action?: React.ReactNode;
54
+ }
55
+ export declare function ShellEmptyState({ className, icon, title, description, action, ...props }: ShellEmptyStateProps): import("react/jsx-runtime").JSX.Element;
56
+ export interface ShellModalProps {
57
+ open: boolean;
58
+ title: React.ReactNode;
59
+ subtitle?: React.ReactNode;
60
+ onClose: () => void;
61
+ children: React.ReactNode;
62
+ className?: string;
63
+ contentClassName?: string;
64
+ headerActions?: React.ReactNode;
65
+ }
66
+ export declare function ShellModal({ open, title, subtitle, onClose, children, className, contentClassName, headerActions, }: ShellModalProps): import("react/jsx-runtime").JSX.Element | null;
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ function cx(...values) {
4
+ return values.filter(Boolean).join(" ");
5
+ }
6
+ export const ShellButton = React.forwardRef(function ShellButton({ className, tone = "secondary", size = "md", iconOnly = false, type = "button", ...props }, ref) {
7
+ return (_jsx("button", { ref: ref, type: type, className: cx("cm-shell-button", `cm-shell-button--${tone}`, size !== "md" && `cm-shell-button--${size}`, iconOnly && "cm-shell-button--icon", className), ...props }));
8
+ });
9
+ export function ShellPill({ className, ...props }) {
10
+ return _jsx("div", { className: cx("cm-shell-pill", className), ...props });
11
+ }
12
+ export function ShellPanel({ className, variant = "default", padded = true, children, ...props }) {
13
+ return (_jsx("div", { className: cx("cm-shell-panel", variant !== "default" && `cm-shell-panel--${variant}`, className), ...props, children: padded ? _jsx("div", { className: "cm-shell-panel__body", children: children }) : children }));
14
+ }
15
+ export function ShellPageHeader({ className, eyebrow, title, subtitle, actions, ...props }) {
16
+ return (_jsxs("div", { className: cx("cm-shell-page-header", className), ...props, children: [_jsxs("div", { className: "cm-shell-page-header__copy", children: [eyebrow ? _jsx("div", { className: "cm-shell-page-header__eyebrow", children: eyebrow }) : null, _jsx("div", { className: "cm-shell-page-header__title", children: title }), subtitle ? _jsx("div", { className: "cm-shell-page-header__subtitle", children: subtitle }) : null] }), actions ? _jsx("div", { className: "cm-shell-cluster", children: actions }) : null] }));
17
+ }
18
+ export function ShellStatGrid({ className, ...props }) {
19
+ return _jsx("div", { className: cx("cm-shell-stat-grid", className), ...props });
20
+ }
21
+ export function ShellStat({ className, label, value, hint, ...props }) {
22
+ return (_jsxs(ShellPanel, { className: cx("cm-shell-stat", className), padded: false, ...props, children: [_jsx("div", { className: "cm-shell-stat__label", children: label }), _jsx("div", { className: "cm-shell-stat__value", children: value }), hint ? _jsx("div", { className: "cm-shell-stat__hint", children: hint }) : null] }));
23
+ }
24
+ export function ShellTabStrip({ className, ...props }) {
25
+ return _jsx("div", { className: cx("cm-shell-tab-strip", className), ...props });
26
+ }
27
+ export function ShellTab({ className, active = false, type = "button", ...props }) {
28
+ return _jsx("button", { type: type, "data-active": active, className: cx("cm-shell-tab", className), ...props });
29
+ }
30
+ export function ShellNotice({ className, tone = "info", ...props }) {
31
+ return _jsx("div", { className: cx("cm-shell-notice", `cm-shell-notice--${tone}`, className), ...props });
32
+ }
33
+ export function ShellBanner({ className, title, subtitle, actions, ...props }) {
34
+ return (_jsxs(ShellPanel, { className: cx("cm-shell-banner", className), padded: false, ...props, children: [_jsxs("div", { className: "cm-shell-banner__copy", children: [_jsx("div", { className: "cm-shell-banner__title", children: title }), subtitle ? _jsx("div", { className: "cm-shell-banner__subtitle", children: subtitle }) : null] }), actions ? _jsx("div", { className: "cm-shell-cluster", children: actions }) : null] }));
35
+ }
36
+ export function ShellEmptyState({ className, icon, title, description, action, ...props }) {
37
+ return (_jsxs(ShellPanel, { className: cx("cm-shell-empty", className), ...props, children: [icon ? _jsx("div", { className: "cm-shell-empty__icon", children: icon }) : null, _jsx("div", { className: "cm-shell-empty__title", children: title }), description ? _jsx("div", { className: "cm-shell-empty__description", children: description }) : null, action ? _jsx("div", { className: "cm-shell-cluster", children: action }) : null] }));
38
+ }
39
+ export function ShellModal({ open, title, subtitle, onClose, children, className, contentClassName, headerActions, }) {
40
+ if (!open) {
41
+ return null;
42
+ }
43
+ return (_jsx("div", { className: "cm-shell-modal-overlay", onClick: onClose, children: _jsxs(ShellPanel, { className: cx("cm-shell-modal", className), padded: false, onClick: (event) => event.stopPropagation(), children: [_jsxs("div", { className: "cm-shell-modal__header", children: [_jsxs("div", { children: [_jsx("div", { className: "cm-shell-modal__title", children: title }), subtitle ? _jsx("div", { className: "cm-shell-modal__subtitle", children: subtitle }) : null] }), headerActions || (_jsx(ShellButton, { tone: "ghost", size: "sm", onClick: onClose, "aria-label": "Close dialog", children: "Close" }))] }), _jsx("div", { className: cx("cm-shell-modal__body", contentClassName), children: children })] }) }));
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shell/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const shellCss = "/**\n * Compose.Market Shared Shell\n * @compose-market/theme/css/shell\n */\n\n:root {\n --cm-shell-glow-primary: hsl(var(--primary) / 0.32);\n --cm-shell-glow-accent: hsl(314 100% 64% / 0.18);\n --cm-shell-surface: linear-gradient(180deg, hsl(var(--card) / 0.9), hsl(var(--background) / 0.92));\n --cm-shell-border: hsl(var(--border) / 0.78);\n --cm-shell-shadow:\n 0 24px 72px hsl(240 30% 2% / 0.45),\n inset 0 1px 0 hsl(0 0% 100% / 0.05);\n}\n\n.cm-shell-stack {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.cm-shell-cluster {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n flex-wrap: wrap;\n}\n\n.cm-shell-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.55rem;\n min-height: 2.5rem;\n padding: 0 1rem;\n border-radius: 0.55rem;\n border: 1px solid transparent;\n background: transparent;\n color: hsl(var(--foreground));\n font-family: var(--font-sans), sans-serif;\n font-size: 0.9rem;\n font-weight: 600;\n line-height: 1;\n cursor: pointer;\n transition:\n transform 180ms ease,\n background-color 180ms ease,\n border-color 180ms ease,\n color 180ms ease,\n box-shadow 180ms ease;\n}\n\n.cm-shell-button:hover:not(:disabled) {\n transform: translateY(-1px);\n}\n\n.cm-shell-button:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n}\n\n.cm-shell-button--primary {\n background:\n linear-gradient(135deg, hsl(var(--primary) / 0.9), hsl(314 100% 64% / 0.78));\n color: hsl(var(--primary-foreground));\n border-color: hsl(var(--primary) / 0.42);\n box-shadow: 0 0 24px var(--cm-shell-glow-primary);\n}\n\n.cm-shell-button--primary:hover:not(:disabled) {\n box-shadow:\n 0 0 30px var(--cm-shell-glow-primary),\n 0 0 22px var(--cm-shell-glow-accent);\n}\n\n.cm-shell-button--secondary {\n background: hsl(var(--muted) / 0.32);\n border-color: hsl(var(--border) / 0.88);\n}\n\n.cm-shell-button--secondary:hover:not(:disabled) {\n border-color: hsl(var(--primary) / 0.4);\n background: hsl(var(--muted) / 0.52);\n}\n\n.cm-shell-button--ghost {\n background: transparent;\n border-color: transparent;\n color: hsl(var(--muted-foreground));\n}\n\n.cm-shell-button--ghost:hover:not(:disabled) {\n color: hsl(var(--foreground));\n background: hsl(var(--muted) / 0.2);\n}\n\n.cm-shell-button--danger {\n background: hsl(var(--destructive) / 0.12);\n border-color: hsl(var(--destructive) / 0.3);\n color: hsl(var(--destructive-foreground));\n}\n\n.cm-shell-button--danger:hover:not(:disabled) {\n background: hsl(var(--destructive) / 0.2);\n}\n\n.cm-shell-button--sm {\n min-height: 2rem;\n padding: 0 0.8rem;\n font-size: 0.78rem;\n}\n\n.cm-shell-button--lg {\n min-height: 2.9rem;\n padding: 0 1.15rem;\n}\n\n.cm-shell-button--icon {\n width: 2.5rem;\n padding: 0;\n}\n\n.cm-shell-pill {\n display: inline-flex;\n align-items: center;\n gap: 0.45rem;\n min-height: 1.9rem;\n padding: 0 0.8rem;\n border-radius: 999px;\n border: 1px solid hsl(var(--border) / 0.72);\n background: hsl(var(--muted) / 0.28);\n color: hsl(var(--muted-foreground));\n font-size: 0.76rem;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\n.cm-shell-pill strong,\n.cm-shell-pill span {\n color: inherit;\n}\n\n.cm-shell-panel {\n border: 1px solid var(--cm-shell-border);\n border-radius: 1rem;\n background: var(--cm-shell-surface);\n box-shadow: var(--cm-shell-shadow);\n backdrop-filter: blur(14px);\n}\n\n.cm-shell-panel--muted {\n background:\n linear-gradient(180deg, hsl(var(--muted) / 0.38), hsl(var(--background) / 0.84));\n}\n\n.cm-shell-panel--ghost {\n background: transparent;\n box-shadow: none;\n}\n\n.cm-shell-panel__body {\n padding: 1.2rem;\n}\n\n.cm-shell-page-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n padding: 1.35rem 1.45rem;\n}\n\n.cm-shell-page-header__copy {\n display: flex;\n flex-direction: column;\n gap: 0.45rem;\n}\n\n.cm-shell-page-header__eyebrow {\n color: hsl(var(--primary));\n font-family: var(--font-mono), monospace;\n font-size: 0.76rem;\n letter-spacing: 0.16em;\n text-transform: uppercase;\n}\n\n.cm-shell-page-header__title {\n color: hsl(var(--foreground));\n font-family: var(--font-display), sans-serif;\n font-size: clamp(1.2rem, 2vw, 1.65rem);\n letter-spacing: 0.02em;\n}\n\n.cm-shell-page-header__subtitle {\n color: hsl(var(--muted-foreground));\n font-size: 0.92rem;\n max-width: 56rem;\n}\n\n.cm-shell-stat-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));\n gap: 0.8rem;\n}\n\n.cm-shell-stat {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n padding: 0.9rem 1rem;\n}\n\n.cm-shell-stat__label {\n color: hsl(var(--muted-foreground));\n font-size: 0.76rem;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n}\n\n.cm-shell-stat__value {\n color: hsl(var(--foreground));\n font-family: var(--font-display), sans-serif;\n font-size: 1.1rem;\n}\n\n.cm-shell-stat__hint {\n color: hsl(var(--muted-foreground));\n font-size: 0.78rem;\n}\n\n.cm-shell-tab-strip {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.35rem;\n border: 1px solid hsl(var(--border) / 0.75);\n border-radius: 999px;\n background: hsl(var(--muted) / 0.16);\n}\n\n.cm-shell-tab {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-height: 2.35rem;\n padding: 0 1rem;\n border-radius: 999px;\n border: 1px solid transparent;\n background: transparent;\n color: hsl(var(--muted-foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.76rem;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n cursor: pointer;\n transition:\n background-color 180ms ease,\n color 180ms ease,\n border-color 180ms ease,\n box-shadow 180ms ease;\n}\n\n.cm-shell-tab:hover {\n color: hsl(var(--foreground));\n}\n\n.cm-shell-tab[data-active=\"true\"] {\n background: linear-gradient(135deg, hsl(var(--primary) / 0.22), hsl(314 100% 64% / 0.18));\n border-color: hsl(var(--primary) / 0.34);\n color: hsl(var(--foreground));\n box-shadow: 0 0 22px hsl(var(--primary) / 0.18);\n}\n\n.cm-shell-notice {\n display: flex;\n align-items: center;\n gap: 0.7rem;\n padding: 0.9rem 1rem;\n border-radius: 0.9rem;\n border: 1px solid;\n}\n\n.cm-shell-notice--info {\n background: hsl(var(--primary) / 0.08);\n border-color: hsl(var(--primary) / 0.22);\n color: hsl(var(--foreground));\n}\n\n.cm-shell-notice--success {\n background: hsl(148 75% 24% / 0.18);\n border-color: hsl(148 75% 46% / 0.3);\n color: hsl(var(--foreground));\n}\n\n.cm-shell-notice--warning {\n background: hsl(42 100% 48% / 0.12);\n border-color: hsl(42 100% 52% / 0.25);\n color: hsl(var(--foreground));\n}\n\n.cm-shell-notice--error {\n background: hsl(var(--destructive) / 0.13);\n border-color: hsl(var(--destructive) / 0.28);\n color: hsl(var(--foreground));\n}\n\n.cm-shell-banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n padding: 1rem 1.15rem;\n}\n\n.cm-shell-banner__copy {\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n\n.cm-shell-banner__title {\n color: hsl(var(--foreground));\n font-weight: 700;\n}\n\n.cm-shell-banner__subtitle {\n color: hsl(var(--muted-foreground));\n font-size: 0.9rem;\n}\n\n.cm-shell-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75rem;\n min-height: 18rem;\n padding: 2.4rem 1.5rem;\n text-align: center;\n}\n\n.cm-shell-empty__icon {\n color: hsl(var(--primary));\n}\n\n.cm-shell-empty__title {\n color: hsl(var(--foreground));\n font-family: var(--font-display), sans-serif;\n font-size: 1.2rem;\n}\n\n.cm-shell-empty__description {\n color: hsl(var(--muted-foreground));\n max-width: 38rem;\n}\n\n.cm-shell-modal-overlay {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n background: hsl(240 30% 2% / 0.68);\n backdrop-filter: blur(10px);\n z-index: 100;\n}\n\n.cm-shell-modal {\n width: min(100%, 46rem);\n max-height: min(90vh, 56rem);\n overflow: auto;\n}\n\n.cm-shell-modal__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n padding: 1.25rem 1.3rem 0;\n}\n\n.cm-shell-modal__title {\n color: hsl(var(--foreground));\n font-family: var(--font-display), sans-serif;\n font-size: 1.1rem;\n}\n\n.cm-shell-modal__subtitle {\n color: hsl(var(--muted-foreground));\n font-size: 0.92rem;\n margin-top: 0.35rem;\n}\n\n.cm-shell-modal__body {\n padding: 1.2rem 1.3rem 1.3rem;\n}\n\n@media (max-width: 720px) {\n .cm-shell-page-header,\n .cm-shell-banner {\n flex-direction: column;\n align-items: stretch;\n }\n\n .cm-shell-stat-grid {\n grid-template-columns: 1fr;\n }\n\n .cm-shell-tab-strip {\n width: 100%;\n overflow-x: auto;\n }\n}\n";
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/shell/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,8yRA8ZpB,CAAC"}
@@ -0,0 +1,416 @@
1
+ export const shellCss = `/**
2
+ * Compose.Market Shared Shell
3
+ * @compose-market/theme/css/shell
4
+ */
5
+
6
+ :root {
7
+ --cm-shell-glow-primary: hsl(var(--primary) / 0.32);
8
+ --cm-shell-glow-accent: hsl(314 100% 64% / 0.18);
9
+ --cm-shell-surface: linear-gradient(180deg, hsl(var(--card) / 0.9), hsl(var(--background) / 0.92));
10
+ --cm-shell-border: hsl(var(--border) / 0.78);
11
+ --cm-shell-shadow:
12
+ 0 24px 72px hsl(240 30% 2% / 0.45),
13
+ inset 0 1px 0 hsl(0 0% 100% / 0.05);
14
+ }
15
+
16
+ .cm-shell-stack {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 1rem;
20
+ }
21
+
22
+ .cm-shell-cluster {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 0.75rem;
26
+ flex-wrap: wrap;
27
+ }
28
+
29
+ .cm-shell-button {
30
+ display: inline-flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ gap: 0.55rem;
34
+ min-height: 2.5rem;
35
+ padding: 0 1rem;
36
+ border-radius: 0.55rem;
37
+ border: 1px solid transparent;
38
+ background: transparent;
39
+ color: hsl(var(--foreground));
40
+ font-family: var(--font-sans), sans-serif;
41
+ font-size: 0.9rem;
42
+ font-weight: 600;
43
+ line-height: 1;
44
+ cursor: pointer;
45
+ transition:
46
+ transform 180ms ease,
47
+ background-color 180ms ease,
48
+ border-color 180ms ease,
49
+ color 180ms ease,
50
+ box-shadow 180ms ease;
51
+ }
52
+
53
+ .cm-shell-button:hover:not(:disabled) {
54
+ transform: translateY(-1px);
55
+ }
56
+
57
+ .cm-shell-button:disabled {
58
+ opacity: 0.55;
59
+ cursor: not-allowed;
60
+ }
61
+
62
+ .cm-shell-button--primary {
63
+ background:
64
+ linear-gradient(135deg, hsl(var(--primary) / 0.9), hsl(314 100% 64% / 0.78));
65
+ color: hsl(var(--primary-foreground));
66
+ border-color: hsl(var(--primary) / 0.42);
67
+ box-shadow: 0 0 24px var(--cm-shell-glow-primary);
68
+ }
69
+
70
+ .cm-shell-button--primary:hover:not(:disabled) {
71
+ box-shadow:
72
+ 0 0 30px var(--cm-shell-glow-primary),
73
+ 0 0 22px var(--cm-shell-glow-accent);
74
+ }
75
+
76
+ .cm-shell-button--secondary {
77
+ background: hsl(var(--muted) / 0.32);
78
+ border-color: hsl(var(--border) / 0.88);
79
+ }
80
+
81
+ .cm-shell-button--secondary:hover:not(:disabled) {
82
+ border-color: hsl(var(--primary) / 0.4);
83
+ background: hsl(var(--muted) / 0.52);
84
+ }
85
+
86
+ .cm-shell-button--ghost {
87
+ background: transparent;
88
+ border-color: transparent;
89
+ color: hsl(var(--muted-foreground));
90
+ }
91
+
92
+ .cm-shell-button--ghost:hover:not(:disabled) {
93
+ color: hsl(var(--foreground));
94
+ background: hsl(var(--muted) / 0.2);
95
+ }
96
+
97
+ .cm-shell-button--danger {
98
+ background: hsl(var(--destructive) / 0.12);
99
+ border-color: hsl(var(--destructive) / 0.3);
100
+ color: hsl(var(--destructive-foreground));
101
+ }
102
+
103
+ .cm-shell-button--danger:hover:not(:disabled) {
104
+ background: hsl(var(--destructive) / 0.2);
105
+ }
106
+
107
+ .cm-shell-button--sm {
108
+ min-height: 2rem;
109
+ padding: 0 0.8rem;
110
+ font-size: 0.78rem;
111
+ }
112
+
113
+ .cm-shell-button--lg {
114
+ min-height: 2.9rem;
115
+ padding: 0 1.15rem;
116
+ }
117
+
118
+ .cm-shell-button--icon {
119
+ width: 2.5rem;
120
+ padding: 0;
121
+ }
122
+
123
+ .cm-shell-pill {
124
+ display: inline-flex;
125
+ align-items: center;
126
+ gap: 0.45rem;
127
+ min-height: 1.9rem;
128
+ padding: 0 0.8rem;
129
+ border-radius: 999px;
130
+ border: 1px solid hsl(var(--border) / 0.72);
131
+ background: hsl(var(--muted) / 0.28);
132
+ color: hsl(var(--muted-foreground));
133
+ font-size: 0.76rem;
134
+ letter-spacing: 0.02em;
135
+ text-transform: uppercase;
136
+ }
137
+
138
+ .cm-shell-pill strong,
139
+ .cm-shell-pill span {
140
+ color: inherit;
141
+ }
142
+
143
+ .cm-shell-panel {
144
+ border: 1px solid var(--cm-shell-border);
145
+ border-radius: 1rem;
146
+ background: var(--cm-shell-surface);
147
+ box-shadow: var(--cm-shell-shadow);
148
+ backdrop-filter: blur(14px);
149
+ }
150
+
151
+ .cm-shell-panel--muted {
152
+ background:
153
+ linear-gradient(180deg, hsl(var(--muted) / 0.38), hsl(var(--background) / 0.84));
154
+ }
155
+
156
+ .cm-shell-panel--ghost {
157
+ background: transparent;
158
+ box-shadow: none;
159
+ }
160
+
161
+ .cm-shell-panel__body {
162
+ padding: 1.2rem;
163
+ }
164
+
165
+ .cm-shell-page-header {
166
+ display: flex;
167
+ align-items: flex-start;
168
+ justify-content: space-between;
169
+ gap: 1rem;
170
+ padding: 1.35rem 1.45rem;
171
+ }
172
+
173
+ .cm-shell-page-header__copy {
174
+ display: flex;
175
+ flex-direction: column;
176
+ gap: 0.45rem;
177
+ }
178
+
179
+ .cm-shell-page-header__eyebrow {
180
+ color: hsl(var(--primary));
181
+ font-family: var(--font-mono), monospace;
182
+ font-size: 0.76rem;
183
+ letter-spacing: 0.16em;
184
+ text-transform: uppercase;
185
+ }
186
+
187
+ .cm-shell-page-header__title {
188
+ color: hsl(var(--foreground));
189
+ font-family: var(--font-display), sans-serif;
190
+ font-size: clamp(1.2rem, 2vw, 1.65rem);
191
+ letter-spacing: 0.02em;
192
+ }
193
+
194
+ .cm-shell-page-header__subtitle {
195
+ color: hsl(var(--muted-foreground));
196
+ font-size: 0.92rem;
197
+ max-width: 56rem;
198
+ }
199
+
200
+ .cm-shell-stat-grid {
201
+ display: grid;
202
+ grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
203
+ gap: 0.8rem;
204
+ }
205
+
206
+ .cm-shell-stat {
207
+ display: flex;
208
+ flex-direction: column;
209
+ gap: 0.25rem;
210
+ padding: 0.9rem 1rem;
211
+ }
212
+
213
+ .cm-shell-stat__label {
214
+ color: hsl(var(--muted-foreground));
215
+ font-size: 0.76rem;
216
+ letter-spacing: 0.08em;
217
+ text-transform: uppercase;
218
+ }
219
+
220
+ .cm-shell-stat__value {
221
+ color: hsl(var(--foreground));
222
+ font-family: var(--font-display), sans-serif;
223
+ font-size: 1.1rem;
224
+ }
225
+
226
+ .cm-shell-stat__hint {
227
+ color: hsl(var(--muted-foreground));
228
+ font-size: 0.78rem;
229
+ }
230
+
231
+ .cm-shell-tab-strip {
232
+ display: inline-flex;
233
+ align-items: center;
234
+ gap: 0.35rem;
235
+ padding: 0.35rem;
236
+ border: 1px solid hsl(var(--border) / 0.75);
237
+ border-radius: 999px;
238
+ background: hsl(var(--muted) / 0.16);
239
+ }
240
+
241
+ .cm-shell-tab {
242
+ display: inline-flex;
243
+ align-items: center;
244
+ gap: 0.5rem;
245
+ min-height: 2.35rem;
246
+ padding: 0 1rem;
247
+ border-radius: 999px;
248
+ border: 1px solid transparent;
249
+ background: transparent;
250
+ color: hsl(var(--muted-foreground));
251
+ font-family: var(--font-mono), monospace;
252
+ font-size: 0.76rem;
253
+ letter-spacing: 0.08em;
254
+ text-transform: uppercase;
255
+ cursor: pointer;
256
+ transition:
257
+ background-color 180ms ease,
258
+ color 180ms ease,
259
+ border-color 180ms ease,
260
+ box-shadow 180ms ease;
261
+ }
262
+
263
+ .cm-shell-tab:hover {
264
+ color: hsl(var(--foreground));
265
+ }
266
+
267
+ .cm-shell-tab[data-active="true"] {
268
+ background: linear-gradient(135deg, hsl(var(--primary) / 0.22), hsl(314 100% 64% / 0.18));
269
+ border-color: hsl(var(--primary) / 0.34);
270
+ color: hsl(var(--foreground));
271
+ box-shadow: 0 0 22px hsl(var(--primary) / 0.18);
272
+ }
273
+
274
+ .cm-shell-notice {
275
+ display: flex;
276
+ align-items: center;
277
+ gap: 0.7rem;
278
+ padding: 0.9rem 1rem;
279
+ border-radius: 0.9rem;
280
+ border: 1px solid;
281
+ }
282
+
283
+ .cm-shell-notice--info {
284
+ background: hsl(var(--primary) / 0.08);
285
+ border-color: hsl(var(--primary) / 0.22);
286
+ color: hsl(var(--foreground));
287
+ }
288
+
289
+ .cm-shell-notice--success {
290
+ background: hsl(148 75% 24% / 0.18);
291
+ border-color: hsl(148 75% 46% / 0.3);
292
+ color: hsl(var(--foreground));
293
+ }
294
+
295
+ .cm-shell-notice--warning {
296
+ background: hsl(42 100% 48% / 0.12);
297
+ border-color: hsl(42 100% 52% / 0.25);
298
+ color: hsl(var(--foreground));
299
+ }
300
+
301
+ .cm-shell-notice--error {
302
+ background: hsl(var(--destructive) / 0.13);
303
+ border-color: hsl(var(--destructive) / 0.28);
304
+ color: hsl(var(--foreground));
305
+ }
306
+
307
+ .cm-shell-banner {
308
+ display: flex;
309
+ align-items: center;
310
+ justify-content: space-between;
311
+ gap: 1rem;
312
+ padding: 1rem 1.15rem;
313
+ }
314
+
315
+ .cm-shell-banner__copy {
316
+ display: flex;
317
+ flex-direction: column;
318
+ gap: 0.35rem;
319
+ }
320
+
321
+ .cm-shell-banner__title {
322
+ color: hsl(var(--foreground));
323
+ font-weight: 700;
324
+ }
325
+
326
+ .cm-shell-banner__subtitle {
327
+ color: hsl(var(--muted-foreground));
328
+ font-size: 0.9rem;
329
+ }
330
+
331
+ .cm-shell-empty {
332
+ display: flex;
333
+ flex-direction: column;
334
+ align-items: center;
335
+ justify-content: center;
336
+ gap: 0.75rem;
337
+ min-height: 18rem;
338
+ padding: 2.4rem 1.5rem;
339
+ text-align: center;
340
+ }
341
+
342
+ .cm-shell-empty__icon {
343
+ color: hsl(var(--primary));
344
+ }
345
+
346
+ .cm-shell-empty__title {
347
+ color: hsl(var(--foreground));
348
+ font-family: var(--font-display), sans-serif;
349
+ font-size: 1.2rem;
350
+ }
351
+
352
+ .cm-shell-empty__description {
353
+ color: hsl(var(--muted-foreground));
354
+ max-width: 38rem;
355
+ }
356
+
357
+ .cm-shell-modal-overlay {
358
+ position: fixed;
359
+ inset: 0;
360
+ display: flex;
361
+ align-items: center;
362
+ justify-content: center;
363
+ padding: 1.5rem;
364
+ background: hsl(240 30% 2% / 0.68);
365
+ backdrop-filter: blur(10px);
366
+ z-index: 100;
367
+ }
368
+
369
+ .cm-shell-modal {
370
+ width: min(100%, 46rem);
371
+ max-height: min(90vh, 56rem);
372
+ overflow: auto;
373
+ }
374
+
375
+ .cm-shell-modal__header {
376
+ display: flex;
377
+ align-items: flex-start;
378
+ justify-content: space-between;
379
+ gap: 1rem;
380
+ padding: 1.25rem 1.3rem 0;
381
+ }
382
+
383
+ .cm-shell-modal__title {
384
+ color: hsl(var(--foreground));
385
+ font-family: var(--font-display), sans-serif;
386
+ font-size: 1.1rem;
387
+ }
388
+
389
+ .cm-shell-modal__subtitle {
390
+ color: hsl(var(--muted-foreground));
391
+ font-size: 0.92rem;
392
+ margin-top: 0.35rem;
393
+ }
394
+
395
+ .cm-shell-modal__body {
396
+ padding: 1.2rem 1.3rem 1.3rem;
397
+ }
398
+
399
+ @media (max-width: 720px) {
400
+ .cm-shell-page-header,
401
+ .cm-shell-banner {
402
+ flex-direction: column;
403
+ align-items: stretch;
404
+ }
405
+
406
+ .cm-shell-stat-grid {
407
+ grid-template-columns: 1fr;
408
+ }
409
+
410
+ .cm-shell-tab-strip {
411
+ width: 100%;
412
+ overflow-x: auto;
413
+ }
414
+ }
415
+ `;
416
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/shell/styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ZvB,CAAC"}