@flanksource/clicky-ui 0.2.18 → 0.2.19
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/dist/components.cjs +6 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +3 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +6 -0
- package/dist/components.js.map +1 -1
- package/dist/data/TabButton.cjs +17 -2
- package/dist/data/TabButton.cjs.map +1 -1
- package/dist/data/TabButton.d.ts +5 -1
- package/dist/data/TabButton.d.ts.map +1 -1
- package/dist/data/TabButton.js +17 -2
- package/dist/data/TabButton.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.d.ts +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +182 -0
- package/dist/layout/AppShell.cjs.map +1 -0
- package/dist/layout/AppShell.d.ts +75 -0
- package/dist/layout/AppShell.d.ts.map +1 -0
- package/dist/layout/AppShell.js +182 -0
- package/dist/layout/AppShell.js.map +1 -0
- package/dist/layout/Panel.cjs +66 -0
- package/dist/layout/Panel.cjs.map +1 -0
- package/dist/layout/Panel.d.ts +34 -0
- package/dist/layout/Panel.d.ts.map +1 -0
- package/dist/layout/Panel.js +66 -0
- package/dist/layout/Panel.js.map +1 -0
- package/dist/layout/Tabs.cjs +36 -0
- package/dist/layout/Tabs.cjs.map +1 -0
- package/dist/layout/Tabs.d.ts +36 -0
- package/dist/layout/Tabs.d.ts.map +1 -0
- package/dist/layout/Tabs.js +36 -0
- package/dist/layout/Tabs.js.map +1 -0
- package/dist/styles.cjs +1 -0
- package/dist/styles.cjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +1 -0
- package/dist/styles.js.map +1 -1
- package/dist/tailwind-preset.cjs +36 -19
- package/dist/tailwind-preset.cjs.map +1 -1
- package/dist/tailwind-preset.d.ts.map +1 -1
- package/dist/tailwind-preset.js +36 -19
- package/dist/tailwind-preset.js.map +1 -1
- package/package.json +1 -1
package/dist/components.cjs
CHANGED
|
@@ -30,6 +30,9 @@ const jsonSchemaFormSize = require("./components/json-schema-form-size.cjs");
|
|
|
30
30
|
const jsonSchemaFormPreferences = require("./components/json-schema-form-preferences.cjs");
|
|
31
31
|
const jsonSchemaFormResolve = require("./components/json-schema-form-resolve.cjs");
|
|
32
32
|
const SplitPane = require("./layout/SplitPane.cjs");
|
|
33
|
+
const AppShell = require("./layout/AppShell.cjs");
|
|
34
|
+
const Panel = require("./layout/Panel.cjs");
|
|
35
|
+
const Tabs = require("./layout/Tabs.cjs");
|
|
33
36
|
const Section = require("./layout/Section.cjs");
|
|
34
37
|
const DropdownMenu = require("./overlay/DropdownMenu.cjs");
|
|
35
38
|
const HoverCard = require("./overlay/HoverCard.cjs");
|
|
@@ -76,6 +79,9 @@ exports.isOpenStringMap = jsonSchemaFormResolve.isOpenStringMap;
|
|
|
76
79
|
exports.matchesIf = jsonSchemaFormResolve.matchesIf;
|
|
77
80
|
exports.resolveControl = jsonSchemaFormResolve.resolveControl;
|
|
78
81
|
exports.SplitPane = SplitPane.SplitPane;
|
|
82
|
+
exports.AppShell = AppShell.AppShell;
|
|
83
|
+
exports.Panel = Panel.Panel;
|
|
84
|
+
exports.Tabs = Tabs.Tabs;
|
|
79
85
|
exports.DetailEmptyState = Section.DetailEmptyState;
|
|
80
86
|
exports.Section = Section.Section;
|
|
81
87
|
exports.DropdownMenu = DropdownMenu.DropdownMenu;
|
package/dist/components.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/components.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export type { FormPreferences, LayoutMode } from './components/json-schema-form-
|
|
|
31
31
|
export { resolveControl, effectiveProperties, matchesIf, isOpenStringMap, } from './components/json-schema-form-resolve';
|
|
32
32
|
export type { JsonSchemaFormProps, FormLayout, JsonSchemaObject, JsonSchemaProperty, JsonSchemaConditional, JsonSchemaType, FieldControl, FieldControlKind, FieldOption, EnumDisplay, PreExtension, PostExtension, } from './components/json-schema-form-types';
|
|
33
33
|
export { SplitPane, type SplitPaneProps } from './layout/SplitPane';
|
|
34
|
+
export { AppShell, type AppShellProps, type AppShellNavItem, type AppShellNavSection, } from './layout/AppShell';
|
|
35
|
+
export { Panel, type PanelProps, type PanelTone } from './layout/Panel';
|
|
36
|
+
export { Tabs, type TabsProps, type TabItem } from './layout/Tabs';
|
|
34
37
|
export { Section, DetailEmptyState, type SectionProps, type DetailEmptyStateProps, } from './layout/Section';
|
|
35
38
|
export { DropdownMenu, type DropdownMenuProps, type DropdownMenuItem, } from './overlay/DropdownMenu';
|
|
36
39
|
export { HoverCard, type HoverCardProps, type HoverCardPlacement } from './overlay/HoverCard';
|
package/dist/components.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
|
package/dist/components.js
CHANGED
|
@@ -28,12 +28,16 @@ import { DEFAULT_FORM_SIZE } from "./components/json-schema-form-size.js";
|
|
|
28
28
|
import { DEFAULT_PREFERENCES_STORAGE_KEY, readPreferences, writePreferences } from "./components/json-schema-form-preferences.js";
|
|
29
29
|
import { effectiveProperties, isOpenStringMap, matchesIf, resolveControl } from "./components/json-schema-form-resolve.js";
|
|
30
30
|
import { SplitPane } from "./layout/SplitPane.js";
|
|
31
|
+
import { AppShell } from "./layout/AppShell.js";
|
|
32
|
+
import { Panel } from "./layout/Panel.js";
|
|
33
|
+
import { Tabs } from "./layout/Tabs.js";
|
|
31
34
|
import { DetailEmptyState, Section } from "./layout/Section.js";
|
|
32
35
|
import { DropdownMenu } from "./overlay/DropdownMenu.js";
|
|
33
36
|
import { HoverCard } from "./overlay/HoverCard.js";
|
|
34
37
|
import { Modal } from "./overlay/Modal.js";
|
|
35
38
|
import { useModalStack } from "./overlay/modalStack.js";
|
|
36
39
|
export {
|
|
40
|
+
AppShell,
|
|
37
41
|
Button,
|
|
38
42
|
CLICKY_FORMAT_OPTIONS,
|
|
39
43
|
Combobox,
|
|
@@ -56,12 +60,14 @@ export {
|
|
|
56
60
|
LoadingDots,
|
|
57
61
|
Modal,
|
|
58
62
|
MultiSelect,
|
|
63
|
+
Panel,
|
|
59
64
|
RangeSlider,
|
|
60
65
|
SecretKeySelector,
|
|
61
66
|
Section,
|
|
62
67
|
Select,
|
|
63
68
|
SplitButton,
|
|
64
69
|
SplitPane,
|
|
70
|
+
Tabs,
|
|
65
71
|
ThemeSwitcher,
|
|
66
72
|
TimeRange,
|
|
67
73
|
TreePickerField,
|
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/data/TabButton.cjs
CHANGED
|
@@ -3,6 +3,18 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const utils = require("../lib/utils.cjs");
|
|
5
5
|
const Icon = require("./Icon.cjs");
|
|
6
|
+
const variantClasses = {
|
|
7
|
+
pill: {
|
|
8
|
+
base: "rounded-md",
|
|
9
|
+
active: "bg-primary text-primary-foreground",
|
|
10
|
+
inactive: "text-muted-foreground hover:bg-accent hover:text-foreground"
|
|
11
|
+
},
|
|
12
|
+
underline: {
|
|
13
|
+
base: "rounded-none border-b-2 -mb-px",
|
|
14
|
+
active: "border-primary text-foreground font-medium",
|
|
15
|
+
inactive: "border-transparent text-muted-foreground hover:text-foreground"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
6
18
|
function TabButton({
|
|
7
19
|
active,
|
|
8
20
|
onClick,
|
|
@@ -10,8 +22,10 @@ function TabButton({
|
|
|
10
22
|
icon,
|
|
11
23
|
count,
|
|
12
24
|
countColor = "bg-muted-foreground",
|
|
25
|
+
variant = "pill",
|
|
13
26
|
className
|
|
14
27
|
}) {
|
|
28
|
+
const v = variantClasses[variant];
|
|
15
29
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16
30
|
"button",
|
|
17
31
|
{
|
|
@@ -20,8 +34,9 @@ function TabButton({
|
|
|
20
34
|
"aria-selected": active,
|
|
21
35
|
onClick,
|
|
22
36
|
className: utils.cn(
|
|
23
|
-
"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm
|
|
24
|
-
|
|
37
|
+
"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm transition-colors",
|
|
38
|
+
v.base,
|
|
39
|
+
active ? v.active : v.inactive,
|
|
25
40
|
className
|
|
26
41
|
),
|
|
27
42
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabButton.cjs","sources":["../../src/data/TabButton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\n\nexport type TabButtonProps = {\n /** Current selected state. */\n active: boolean;\n /** Called when the tab is clicked. */\n onClick: () => void;\n /** Visible tab label. */\n label: ReactNode;\n /** Optional leading icon. */\n icon?: string | StaticIconComponent;\n /** Optional count badge. Hidden when zero. */\n count?: number;\n /** Classes for the count badge background. */\n countColor?: string;\n /** Classes applied to the button. */\n className?: string;\n};\n\nexport function TabButton({\n active,\n onClick,\n label,\n icon,\n count,\n countColor = \"bg-muted-foreground\",\n className,\n}: TabButtonProps) {\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm
|
|
1
|
+
{"version":3,"file":"TabButton.cjs","sources":["../../src/data/TabButton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\n\n/** Visual style: a filled `pill` (default) or an `underline` tab. */\nexport type TabButtonVariant = \"pill\" | \"underline\";\n\nexport type TabButtonProps = {\n /** Current selected state. */\n active: boolean;\n /** Called when the tab is clicked. */\n onClick: () => void;\n /** Visible tab label. */\n label: ReactNode;\n /** Optional leading icon. */\n icon?: string | StaticIconComponent;\n /** Optional count badge. Hidden when zero. */\n count?: number;\n /** Classes for the count badge background. */\n countColor?: string;\n /** Visual style. Defaults to `pill`. */\n variant?: TabButtonVariant;\n /** Classes applied to the button. */\n className?: string;\n};\n\nconst variantClasses: Record<TabButtonVariant, { base: string; active: string; inactive: string }> =\n {\n pill: {\n base: \"rounded-md\",\n active: \"bg-primary text-primary-foreground\",\n inactive: \"text-muted-foreground hover:bg-accent hover:text-foreground\",\n },\n underline: {\n base: \"rounded-none border-b-2 -mb-px\",\n active: \"border-primary text-foreground font-medium\",\n inactive: \"border-transparent text-muted-foreground hover:text-foreground\",\n },\n };\n\nexport function TabButton({\n active,\n onClick,\n label,\n icon,\n count,\n countColor = \"bg-muted-foreground\",\n variant = \"pill\",\n className,\n}: TabButtonProps) {\n const v = variantClasses[variant];\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm transition-colors\",\n v.base,\n active ? v.active : v.inactive,\n className,\n )}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n <span>{label}</span>\n {count !== undefined && count > 0 && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-bold text-white\",\n countColor,\n )}\n >\n {count}\n </span>\n )}\n </button>\n );\n}\n"],"names":["jsxs","cn","jsx","Icon"],"mappings":";;;;;AA0BA,MAAM,iBACJ;AAAA,EACE,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,WAAW;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAEd;AAEK,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,EACV;AACF,GAAmB;AACjB,QAAM,IAAI,eAAe,OAAO;AAChC,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,iBAAe;AAAA,MACf;AAAA,MACA,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA,EAAE;AAAA,QACF,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAA,QAAQC,2BAAAA,IAACC,WAAA,EAAM,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,KAAA,IAAS,EAAE,KAAA,EAAK,CAAI;AAAA,QAC3ED,2BAAAA,IAAC,UAAM,UAAA,MAAA,CAAM;AAAA,QACZ,UAAU,UAAa,QAAQ,KAC9BA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,MAAAA;AAAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAGD,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
|
package/dist/data/TabButton.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { StaticIconComponent } from './Icon';
|
|
3
|
+
/** Visual style: a filled `pill` (default) or an `underline` tab. */
|
|
4
|
+
export type TabButtonVariant = "pill" | "underline";
|
|
3
5
|
export type TabButtonProps = {
|
|
4
6
|
/** Current selected state. */
|
|
5
7
|
active: boolean;
|
|
@@ -13,8 +15,10 @@ export type TabButtonProps = {
|
|
|
13
15
|
count?: number;
|
|
14
16
|
/** Classes for the count badge background. */
|
|
15
17
|
countColor?: string;
|
|
18
|
+
/** Visual style. Defaults to `pill`. */
|
|
19
|
+
variant?: TabButtonVariant;
|
|
16
20
|
/** Classes applied to the button. */
|
|
17
21
|
className?: string;
|
|
18
22
|
};
|
|
19
|
-
export declare function TabButton({ active, onClick, label, icon, count, countColor, className, }: TabButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function TabButton({ active, onClick, label, icon, count, countColor, variant, className, }: TabButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
20
24
|
//# sourceMappingURL=TabButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabButton.d.ts","sourceRoot":"","sources":["../../src/data/TabButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,8BAA8B;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yBAAyB;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"TabButton.d.ts","sourceRoot":"","sources":["../../src/data/TabButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAExD,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,8BAA8B;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yBAAyB;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACpC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAgBF,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAkC,EAClC,OAAgB,EAChB,SAAS,GACV,EAAE,cAAc,2CA6BhB"}
|
package/dist/data/TabButton.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { Icon } from "./Icon.js";
|
|
4
|
+
const variantClasses = {
|
|
5
|
+
pill: {
|
|
6
|
+
base: "rounded-md",
|
|
7
|
+
active: "bg-primary text-primary-foreground",
|
|
8
|
+
inactive: "text-muted-foreground hover:bg-accent hover:text-foreground"
|
|
9
|
+
},
|
|
10
|
+
underline: {
|
|
11
|
+
base: "rounded-none border-b-2 -mb-px",
|
|
12
|
+
active: "border-primary text-foreground font-medium",
|
|
13
|
+
inactive: "border-transparent text-muted-foreground hover:text-foreground"
|
|
14
|
+
}
|
|
15
|
+
};
|
|
4
16
|
function TabButton({
|
|
5
17
|
active,
|
|
6
18
|
onClick,
|
|
@@ -8,8 +20,10 @@ function TabButton({
|
|
|
8
20
|
icon,
|
|
9
21
|
count,
|
|
10
22
|
countColor = "bg-muted-foreground",
|
|
23
|
+
variant = "pill",
|
|
11
24
|
className
|
|
12
25
|
}) {
|
|
26
|
+
const v = variantClasses[variant];
|
|
13
27
|
return /* @__PURE__ */ jsxs(
|
|
14
28
|
"button",
|
|
15
29
|
{
|
|
@@ -18,8 +32,9 @@ function TabButton({
|
|
|
18
32
|
"aria-selected": active,
|
|
19
33
|
onClick,
|
|
20
34
|
className: cn(
|
|
21
|
-
"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm
|
|
22
|
-
|
|
35
|
+
"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm transition-colors",
|
|
36
|
+
v.base,
|
|
37
|
+
active ? v.active : v.inactive,
|
|
23
38
|
className
|
|
24
39
|
),
|
|
25
40
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabButton.js","sources":["../../src/data/TabButton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\n\nexport type TabButtonProps = {\n /** Current selected state. */\n active: boolean;\n /** Called when the tab is clicked. */\n onClick: () => void;\n /** Visible tab label. */\n label: ReactNode;\n /** Optional leading icon. */\n icon?: string | StaticIconComponent;\n /** Optional count badge. Hidden when zero. */\n count?: number;\n /** Classes for the count badge background. */\n countColor?: string;\n /** Classes applied to the button. */\n className?: string;\n};\n\nexport function TabButton({\n active,\n onClick,\n label,\n icon,\n count,\n countColor = \"bg-muted-foreground\",\n className,\n}: TabButtonProps) {\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm
|
|
1
|
+
{"version":3,"file":"TabButton.js","sources":["../../src/data/TabButton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\n\n/** Visual style: a filled `pill` (default) or an `underline` tab. */\nexport type TabButtonVariant = \"pill\" | \"underline\";\n\nexport type TabButtonProps = {\n /** Current selected state. */\n active: boolean;\n /** Called when the tab is clicked. */\n onClick: () => void;\n /** Visible tab label. */\n label: ReactNode;\n /** Optional leading icon. */\n icon?: string | StaticIconComponent;\n /** Optional count badge. Hidden when zero. */\n count?: number;\n /** Classes for the count badge background. */\n countColor?: string;\n /** Visual style. Defaults to `pill`. */\n variant?: TabButtonVariant;\n /** Classes applied to the button. */\n className?: string;\n};\n\nconst variantClasses: Record<TabButtonVariant, { base: string; active: string; inactive: string }> =\n {\n pill: {\n base: \"rounded-md\",\n active: \"bg-primary text-primary-foreground\",\n inactive: \"text-muted-foreground hover:bg-accent hover:text-foreground\",\n },\n underline: {\n base: \"rounded-none border-b-2 -mb-px\",\n active: \"border-primary text-foreground font-medium\",\n inactive: \"border-transparent text-muted-foreground hover:text-foreground\",\n },\n };\n\nexport function TabButton({\n active,\n onClick,\n label,\n icon,\n count,\n countColor = \"bg-muted-foreground\",\n variant = \"pill\",\n className,\n}: TabButtonProps) {\n const v = variantClasses[variant];\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 px-density-3 py-density-1.5 text-sm transition-colors\",\n v.base,\n active ? v.active : v.inactive,\n className,\n )}\n >\n {icon && <Icon {...(typeof icon === \"string\" ? { name: icon } : { icon })} />}\n <span>{label}</span>\n {count !== undefined && count > 0 && (\n <span\n className={cn(\n \"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-bold text-white\",\n countColor,\n )}\n >\n {count}\n </span>\n )}\n </button>\n );\n}\n"],"names":[],"mappings":";;;AA0BA,MAAM,iBACJ;AAAA,EACE,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAAA,EAEZ,WAAW;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA;AAEd;AAEK,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,EACV;AACF,GAAmB;AACjB,QAAM,IAAI,eAAe,OAAO;AAChC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,iBAAe;AAAA,MACf;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,EAAE;AAAA,QACF,SAAS,EAAE,SAAS,EAAE;AAAA,QACtB;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAA,QAAQ,oBAAC,MAAA,EAAM,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,KAAA,IAAS,EAAE,KAAA,EAAK,CAAI;AAAA,QAC3E,oBAAC,UAAM,UAAA,MAAA,CAAM;AAAA,QACZ,UAAU,UAAa,QAAQ,KAC9B;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAGD,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -15,9 +15,9 @@ function detectMode() {
|
|
|
15
15
|
}
|
|
16
16
|
function getVersionInfo() {
|
|
17
17
|
return {
|
|
18
|
-
commit: read(() => "
|
|
19
|
-
tag: read(() => "clicky-ui@0.2.
|
|
20
|
-
date: read(() => "2026-06-
|
|
18
|
+
commit: read(() => "a08ca5a", ""),
|
|
19
|
+
tag: read(() => "clicky-ui@0.2.18", ""),
|
|
20
|
+
date: read(() => "2026-06-15T20:03:50.837Z", ""),
|
|
21
21
|
dirty: read(() => true, false),
|
|
22
22
|
mode: detectMode()
|
|
23
23
|
};
|
|
@@ -13,9 +13,9 @@ function detectMode() {
|
|
|
13
13
|
}
|
|
14
14
|
function getVersionInfo() {
|
|
15
15
|
return {
|
|
16
|
-
commit: read(() => "
|
|
17
|
-
tag: read(() => "clicky-ui@0.2.
|
|
18
|
-
date: read(() => "2026-06-
|
|
16
|
+
commit: read(() => "a08ca5a", ""),
|
|
17
|
+
tag: read(() => "clicky-ui@0.2.18", ""),
|
|
18
|
+
date: read(() => "2026-06-15T20:03:38.711Z", ""),
|
|
19
19
|
dirty: read(() => true, false),
|
|
20
20
|
mode: detectMode()
|
|
21
21
|
};
|
package/dist/data.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export { MethodBadge, type MethodBadgeProps } from './data/MethodBadge';
|
|
|
29
29
|
export { ProgressBar, type ProgressBarProps, type ProgressSegment } from './data/ProgressBar';
|
|
30
30
|
export { SignedDeltaBar, type SignedDeltaBarProps } from './data/SignedDeltaBar';
|
|
31
31
|
export { SortableHeader, type SortableHeaderProps } from './data/SortableHeader';
|
|
32
|
-
export { TabButton, type TabButtonProps } from './data/TabButton';
|
|
32
|
+
export { TabButton, type TabButtonProps, type TabButtonVariant } from './data/TabButton';
|
|
33
33
|
export { TimeseriesPanel, resolveSeries, resolveBreakdown, type BreakdownItem, type ResolvedSeries, type TimeseriesPanelProps, type TimeseriesPoint, type TimeseriesResponse, type TimeseriesSeries, } from './data/TimeseriesPanel';
|
|
34
34
|
export { TimeseriesGauge, type GaugeSeries, type TimeseriesGaugeProps, } from './data/TimeseriesGauge';
|
|
35
35
|
export { TimeseriesCoreBars, deriveCoreBars, type TimeseriesCoreBarsProps, type CoreBar, type CoreBarsModel, } from './data/TimeseriesCoreBars';
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -41,6 +41,9 @@ const jsonSchemaFormSize = require("./components/json-schema-form-size.cjs");
|
|
|
41
41
|
const jsonSchemaFormPreferences = require("./components/json-schema-form-preferences.cjs");
|
|
42
42
|
const jsonSchemaFormResolve = require("./components/json-schema-form-resolve.cjs");
|
|
43
43
|
const SplitPane = require("./layout/SplitPane.cjs");
|
|
44
|
+
const AppShell = require("./layout/AppShell.cjs");
|
|
45
|
+
const Panel = require("./layout/Panel.cjs");
|
|
46
|
+
const Tabs = require("./layout/Tabs.cjs");
|
|
44
47
|
const Section = require("./layout/Section.cjs");
|
|
45
48
|
const DropdownMenu = require("./overlay/DropdownMenu.cjs");
|
|
46
49
|
const HoverCard = require("./overlay/HoverCard.cjs");
|
|
@@ -464,6 +467,9 @@ exports.isOpenStringMap = jsonSchemaFormResolve.isOpenStringMap;
|
|
|
464
467
|
exports.matchesIf = jsonSchemaFormResolve.matchesIf;
|
|
465
468
|
exports.resolveControl = jsonSchemaFormResolve.resolveControl;
|
|
466
469
|
exports.SplitPane = SplitPane.SplitPane;
|
|
470
|
+
exports.AppShell = AppShell.AppShell;
|
|
471
|
+
exports.Panel = Panel.Panel;
|
|
472
|
+
exports.Tabs = Tabs.Tabs;
|
|
467
473
|
exports.DetailEmptyState = Section.DetailEmptyState;
|
|
468
474
|
exports.Section = Section.Section;
|
|
469
475
|
exports.DropdownMenu = DropdownMenu.DropdownMenu;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,9 @@ import { DEFAULT_FORM_SIZE } from "./components/json-schema-form-size.js";
|
|
|
39
39
|
import { DEFAULT_PREFERENCES_STORAGE_KEY, readPreferences, writePreferences } from "./components/json-schema-form-preferences.js";
|
|
40
40
|
import { effectiveProperties, isOpenStringMap, matchesIf, resolveControl } from "./components/json-schema-form-resolve.js";
|
|
41
41
|
import { SplitPane } from "./layout/SplitPane.js";
|
|
42
|
+
import { AppShell } from "./layout/AppShell.js";
|
|
43
|
+
import { Panel } from "./layout/Panel.js";
|
|
44
|
+
import { Tabs } from "./layout/Tabs.js";
|
|
42
45
|
import { DetailEmptyState, Section } from "./layout/Section.js";
|
|
43
46
|
import { DropdownMenu } from "./overlay/DropdownMenu.js";
|
|
44
47
|
import { HoverCard } from "./overlay/HoverCard.js";
|
|
@@ -403,6 +406,7 @@ export {
|
|
|
403
406
|
AVATAR_PALETTE,
|
|
404
407
|
AcceptPicker,
|
|
405
408
|
AnsiHtml,
|
|
409
|
+
AppShell,
|
|
406
410
|
Avatar,
|
|
407
411
|
AvatarBadge,
|
|
408
412
|
Badge,
|
|
@@ -474,6 +478,7 @@ export {
|
|
|
474
478
|
OperationCommandPage,
|
|
475
479
|
OperationEntityPage,
|
|
476
480
|
OperationsApiClientError,
|
|
481
|
+
Panel,
|
|
477
482
|
PrettyStackTrace,
|
|
478
483
|
ProgressBar,
|
|
479
484
|
Properties,
|
|
@@ -492,6 +497,7 @@ export {
|
|
|
492
497
|
StatusDot,
|
|
493
498
|
StatusRows,
|
|
494
499
|
TabButton,
|
|
500
|
+
Tabs,
|
|
495
501
|
TagActionsProvider,
|
|
496
502
|
TagList,
|
|
497
503
|
TaskManager,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const utils = require("../lib/utils.cjs");
|
|
6
|
+
const Icon = require("../data/Icon.cjs");
|
|
7
|
+
const SplitPane = require("./SplitPane.cjs");
|
|
8
|
+
const UiSidebar = require("../icons/components/UiSidebar.cjs");
|
|
9
|
+
function readStored(key) {
|
|
10
|
+
if (!key || typeof window === "undefined") return null;
|
|
11
|
+
return window.localStorage.getItem(key);
|
|
12
|
+
}
|
|
13
|
+
function AppShell(props) {
|
|
14
|
+
const {
|
|
15
|
+
brand,
|
|
16
|
+
nav,
|
|
17
|
+
search,
|
|
18
|
+
actions,
|
|
19
|
+
toolbar,
|
|
20
|
+
searchMaxWidth = "28rem",
|
|
21
|
+
navSections,
|
|
22
|
+
sidebar,
|
|
23
|
+
sidebarHeader,
|
|
24
|
+
sidebarFooter,
|
|
25
|
+
collapsible = true,
|
|
26
|
+
defaultCollapsed = false,
|
|
27
|
+
collapsedStorageKey,
|
|
28
|
+
sidebarWidth = 240,
|
|
29
|
+
collapsedWidth = 56,
|
|
30
|
+
bodyHeader,
|
|
31
|
+
bodyActions,
|
|
32
|
+
bodySidebar,
|
|
33
|
+
bodySplit = 24,
|
|
34
|
+
children,
|
|
35
|
+
className,
|
|
36
|
+
headerClassName,
|
|
37
|
+
toolbarClassName,
|
|
38
|
+
sidebarClassName,
|
|
39
|
+
bodyHeaderClassName,
|
|
40
|
+
contentClassName
|
|
41
|
+
} = props;
|
|
42
|
+
const hasSidebar = sidebar !== void 0 || ((navSections == null ? void 0 : navSections.length) ?? 0) > 0;
|
|
43
|
+
const [collapsed, setCollapsed] = react.useState(
|
|
44
|
+
() => readStored(collapsedStorageKey) === "true" || readStored(collapsedStorageKey) === null && defaultCollapsed
|
|
45
|
+
);
|
|
46
|
+
react.useEffect(() => {
|
|
47
|
+
if (collapsedStorageKey && typeof window !== "undefined")
|
|
48
|
+
window.localStorage.setItem(collapsedStorageKey, String(collapsed));
|
|
49
|
+
}, [collapsed, collapsedStorageKey]);
|
|
50
|
+
const railWidth = collapsed ? collapsedWidth : sidebarWidth;
|
|
51
|
+
const hasTopBar = !hasSidebar && brand !== void 0 || nav !== void 0 || search !== void 0 || actions !== void 0 || toolbar !== void 0;
|
|
52
|
+
const hasBodyHeader = bodyHeader !== void 0 || bodyActions !== void 0;
|
|
53
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex h-full min-h-0 w-full bg-background", className), children: [
|
|
54
|
+
hasSidebar && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
55
|
+
"aside",
|
|
56
|
+
{
|
|
57
|
+
style: { width: railWidth },
|
|
58
|
+
className: utils.cn(
|
|
59
|
+
"flex shrink-0 flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200",
|
|
60
|
+
sidebarClassName
|
|
61
|
+
),
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
className: utils.cn(
|
|
67
|
+
"flex h-14 shrink-0 items-center border-b border-sidebar-border",
|
|
68
|
+
collapsed ? "justify-center px-2" : "justify-between px-density-3"
|
|
69
|
+
),
|
|
70
|
+
children: [
|
|
71
|
+
!collapsed && brand && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-2", children: brand }),
|
|
72
|
+
collapsible && /* @__PURE__ */ jsxRuntime.jsx(
|
|
73
|
+
"button",
|
|
74
|
+
{
|
|
75
|
+
type: "button",
|
|
76
|
+
onClick: () => setCollapsed((c) => !c),
|
|
77
|
+
"aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
78
|
+
title: collapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
79
|
+
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/70 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
80
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiSidebar.UiSidebar, className: "h-4 w-4" })
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
),
|
|
86
|
+
sidebarHeader && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b border-sidebar-border px-density-3 py-density-2", children: sidebarHeader }),
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-density-2", children: typeof sidebar === "function" ? sidebar(collapsed) : sidebar !== void 0 ? sidebar : navSections && /* @__PURE__ */ jsxRuntime.jsx(NavSections, { sections: navSections, collapsed }) }),
|
|
88
|
+
sidebarFooter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto shrink-0 border-t border-sidebar-border px-density-3 py-density-2", children: sidebarFooter })
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
),
|
|
92
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
|
|
93
|
+
hasTopBar && /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "shrink-0 border-b border-border bg-card", children: [
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
95
|
+
"div",
|
|
96
|
+
{
|
|
97
|
+
className: utils.cn("flex h-14 items-center gap-density-3 px-density-4", headerClassName),
|
|
98
|
+
children: [
|
|
99
|
+
!hasSidebar && brand && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-density-2", children: brand }),
|
|
100
|
+
nav && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center", children: nav }),
|
|
101
|
+
search !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1 justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { maxWidth: searchMaxWidth }, children: search }) }),
|
|
102
|
+
search === void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
|
|
103
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-density-2", children: actions })
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
),
|
|
107
|
+
toolbar && /* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
+
"div",
|
|
109
|
+
{
|
|
110
|
+
className: utils.cn(
|
|
111
|
+
"flex items-center gap-density-2 border-t border-border bg-muted px-density-4 py-density-2",
|
|
112
|
+
toolbarClassName
|
|
113
|
+
),
|
|
114
|
+
children: toolbar
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
] }),
|
|
118
|
+
hasBodyHeader && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
className: utils.cn(
|
|
122
|
+
"flex shrink-0 items-start justify-between gap-density-3 border-b border-border bg-card px-density-4 py-density-2",
|
|
123
|
+
bodyHeaderClassName
|
|
124
|
+
),
|
|
125
|
+
children: [
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: bodyHeader }),
|
|
127
|
+
bodyActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-density-2", children: bodyActions })
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
bodySidebar !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
132
|
+
SplitPane.SplitPane,
|
|
133
|
+
{
|
|
134
|
+
className: "min-h-0 flex-1",
|
|
135
|
+
defaultSplit: bodySplit,
|
|
136
|
+
minLeft: 12,
|
|
137
|
+
minRight: 30,
|
|
138
|
+
left: bodySidebar,
|
|
139
|
+
right: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("h-full min-w-0", contentClassName), children }),
|
|
140
|
+
rightClass: "overflow-y-auto"
|
|
141
|
+
}
|
|
142
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("main", { className: utils.cn("min-h-0 min-w-0 flex-1 overflow-auto", contentClassName), children })
|
|
143
|
+
] })
|
|
144
|
+
] });
|
|
145
|
+
}
|
|
146
|
+
function NavSections({
|
|
147
|
+
sections,
|
|
148
|
+
collapsed
|
|
149
|
+
}) {
|
|
150
|
+
return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: utils.cn("flex flex-col gap-0.5", collapsed ? "px-2" : "px-density-2"), children: sections.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
151
|
+
section.label && (collapsed ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
|
|
152
|
+
section.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavItemRow, { item, collapsed }, item.key))
|
|
153
|
+
] }, section.label ?? `section-${i}`)) });
|
|
154
|
+
}
|
|
155
|
+
function NavItemRow({ item, collapsed }) {
|
|
156
|
+
const className = utils.cn(
|
|
157
|
+
"flex w-full items-center gap-2.5 rounded-md px-density-2 py-1.5 text-left text-[13px] text-sidebar-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
158
|
+
collapsed && "justify-center px-0",
|
|
159
|
+
item.active && "bg-sidebar-accent font-medium text-sidebar-primary"
|
|
160
|
+
);
|
|
161
|
+
const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
162
|
+
item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { ...typeof item.icon === "string" ? { name: item.icon } : { icon: item.icon } }) }),
|
|
163
|
+
!collapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children: item.label }),
|
|
164
|
+
!collapsed && item.badge
|
|
165
|
+
] });
|
|
166
|
+
const title = collapsed && typeof item.label === "string" ? item.label : void 0;
|
|
167
|
+
if (item.href) {
|
|
168
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
169
|
+
"a",
|
|
170
|
+
{
|
|
171
|
+
href: item.href,
|
|
172
|
+
className,
|
|
173
|
+
title,
|
|
174
|
+
...item.external ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
175
|
+
children: inner
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: item.onClick, className, title, children: inner });
|
|
180
|
+
}
|
|
181
|
+
exports.AppShell = AppShell;
|
|
182
|
+
//# sourceMappingURL=AppShell.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.cjs","sources":["../../src/layout/AppShell.tsx"],"sourcesContent":["import { useEffect, useState, type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"../data/Icon\";\nimport { UiSidebar } from \"../icons\";\nimport { SplitPane } from \"./SplitPane\";\n\n// AppShell is a sidebar-first application shell. The full-height DARK nav rail\n// owns the brand + collapse toggle and renders grouped nav sections; the top bar\n// (search, actions) sits to the RIGHT of the rail — there is no full-width top\n// bar when a rail is present. With no rail, the top bar spans full width. The\n// body carries a fixed bodyHeader + bodyActions row over an optional\n// bodySidebar | body-main split (body-main scrolls; bodySidebar — e.g. a tree —\n// scrolls independently via a resizable SplitPane).\n\nexport type AppShellNavItem = {\n /** Stable key; also the React key. */\n key: string;\n /** Visible label (hidden when the rail is collapsed). */\n label: ReactNode;\n /** Leading icon (icon name or component). */\n icon?: string | StaticIconComponent;\n /** Highlights the item as the current location. */\n active?: boolean;\n /** Click handler (rendered as a button when no `href`). */\n onClick?: () => void;\n /** Destination (rendered as an anchor). */\n href?: string;\n /** Opens `href` in a new tab. */\n external?: boolean;\n /** Trailing adornment (count, status dot). */\n badge?: ReactNode;\n};\n\nexport type AppShellNavSection = {\n /** Section heading; collapses to a divider when the rail is collapsed. */\n label?: string;\n items: AppShellNavItem[];\n};\n\nexport type AppShellProps = {\n // ── Top bar (right of the rail; full width when no rail) ─\n /** Brand mark / wordmark. Shown in the rail header when a rail is present, else in the top bar. */\n brand?: ReactNode;\n /** Inline primary nav (e.g. tabs) shown after the brand in the top bar. */\n nav?: ReactNode;\n /** Centered search slot; grows to fill and is width-capped. */\n search?: ReactNode;\n /** Right-aligned cluster (icon buttons, settings/org picker, …). */\n actions?: ReactNode;\n /** Optional second top-bar row for filters / bulk actions. */\n toolbar?: ReactNode;\n /** Max width of the centered search slot. Defaults to 28rem. */\n searchMaxWidth?: string | number;\n\n // ── Left nav rail (dark, collapsible, fixed width) ───────\n /** Declarative nav sections rendered into the rail (collapse-aware). */\n navSections?: AppShellNavSection[];\n /** Custom sidebar content; receives the collapsed flag. Overrides navSections. */\n sidebar?: ReactNode | ((collapsed: boolean) => ReactNode);\n /** Pinned below the rail header (e.g. a context switcher). */\n sidebarHeader?: ReactNode;\n /** Pinned to the bottom of the rail (version, account). */\n sidebarFooter?: ReactNode;\n /** Show the collapse toggle. Defaults to true when a rail is present. */\n collapsible?: boolean;\n /** Initial collapsed state (uncontrolled). */\n defaultCollapsed?: boolean;\n /** localStorage key persisting the collapsed state. */\n collapsedStorageKey?: string;\n /** Expanded rail width in px. Defaults to 240. */\n sidebarWidth?: number;\n /** Collapsed rail width in px. Defaults to 56. */\n collapsedWidth?: number;\n\n // ── Body ─────────────────────────────────────────────────\n /** Fixed header row, left side (breadcrumb, title, tabs). */\n bodyHeader?: ReactNode;\n /** Fixed header row, right side (entity actions) — same row as bodyHeader. */\n bodyActions?: ReactNode;\n /** Optional independent-scroll pane (e.g. a tree). Renders a SplitPane vs body-main. */\n bodySidebar?: ReactNode;\n /** bodySidebar width as a percent when present. Defaults to 24. */\n bodySplit?: number;\n /** Main content (body-main); fills the remaining space and scrolls. */\n children: ReactNode;\n\n className?: string;\n headerClassName?: string;\n toolbarClassName?: string;\n sidebarClassName?: string;\n bodyHeaderClassName?: string;\n contentClassName?: string;\n};\n\nfunction readStored(key: string | undefined): string | null {\n if (!key || typeof window === \"undefined\") return null;\n return window.localStorage.getItem(key);\n}\n\nexport function AppShell(props: AppShellProps) {\n const {\n brand,\n nav,\n search,\n actions,\n toolbar,\n searchMaxWidth = \"28rem\",\n navSections,\n sidebar,\n sidebarHeader,\n sidebarFooter,\n collapsible = true,\n defaultCollapsed = false,\n collapsedStorageKey,\n sidebarWidth = 240,\n collapsedWidth = 56,\n bodyHeader,\n bodyActions,\n bodySidebar,\n bodySplit = 24,\n children,\n className,\n headerClassName,\n toolbarClassName,\n sidebarClassName,\n bodyHeaderClassName,\n contentClassName,\n } = props;\n\n const hasSidebar = sidebar !== undefined || (navSections?.length ?? 0) > 0;\n\n const [collapsed, setCollapsed] = useState(\n () =>\n readStored(collapsedStorageKey) === \"true\" ||\n (readStored(collapsedStorageKey) === null && defaultCollapsed),\n );\n\n useEffect(() => {\n if (collapsedStorageKey && typeof window !== \"undefined\")\n window.localStorage.setItem(collapsedStorageKey, String(collapsed));\n }, [collapsed, collapsedStorageKey]);\n\n const railWidth = collapsed ? collapsedWidth : sidebarWidth;\n const hasTopBar =\n (!hasSidebar && brand !== undefined) ||\n nav !== undefined ||\n search !== undefined ||\n actions !== undefined ||\n toolbar !== undefined;\n const hasBodyHeader = bodyHeader !== undefined || bodyActions !== undefined;\n\n return (\n <div className={cn(\"flex h-full min-h-0 w-full bg-background\", className)}>\n {hasSidebar && (\n <aside\n style={{ width: railWidth }}\n className={cn(\n \"flex shrink-0 flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200\",\n sidebarClassName,\n )}\n >\n <div\n className={cn(\n \"flex h-14 shrink-0 items-center border-b border-sidebar-border\",\n collapsed ? \"justify-center px-2\" : \"justify-between px-density-3\",\n )}\n >\n {!collapsed && brand && <div className=\"flex min-w-0 items-center gap-2\">{brand}</div>}\n {collapsible && (\n <button\n type=\"button\"\n onClick={() => setCollapsed((c) => !c)}\n aria-label={collapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}\n title={collapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}\n className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/70 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\"\n >\n <Icon icon={UiSidebar} className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n {sidebarHeader && (\n <div className=\"shrink-0 border-b border-sidebar-border px-density-3 py-density-2\">\n {sidebarHeader}\n </div>\n )}\n <div className=\"min-h-0 flex-1 overflow-y-auto py-density-2\">\n {typeof sidebar === \"function\"\n ? sidebar(collapsed)\n : sidebar !== undefined\n ? sidebar\n : navSections && <NavSections sections={navSections} collapsed={collapsed} />}\n </div>\n {sidebarFooter && (\n <div className=\"mt-auto shrink-0 border-t border-sidebar-border px-density-3 py-density-2\">\n {sidebarFooter}\n </div>\n )}\n </aside>\n )}\n\n <div className=\"flex min-h-0 min-w-0 flex-1 flex-col\">\n {hasTopBar && (\n <header className=\"shrink-0 border-b border-border bg-card\">\n <div\n className={cn(\"flex h-14 items-center gap-density-3 px-density-4\", headerClassName)}\n >\n {!hasSidebar && brand && (\n <div className=\"flex shrink-0 items-center gap-density-2\">{brand}</div>\n )}\n {nav && <div className=\"flex shrink-0 items-center\">{nav}</div>}\n {search !== undefined && (\n <div className=\"flex min-w-0 flex-1 justify-center\">\n <div className=\"w-full\" style={{ maxWidth: searchMaxWidth }}>\n {search}\n </div>\n </div>\n )}\n {search === undefined && <div className=\"flex-1\" />}\n {actions && (\n <div className=\"flex shrink-0 items-center gap-density-2\">{actions}</div>\n )}\n </div>\n {toolbar && (\n <div\n className={cn(\n \"flex items-center gap-density-2 border-t border-border bg-muted px-density-4 py-density-2\",\n toolbarClassName,\n )}\n >\n {toolbar}\n </div>\n )}\n </header>\n )}\n\n {hasBodyHeader && (\n <div\n className={cn(\n \"flex shrink-0 items-start justify-between gap-density-3 border-b border-border bg-card px-density-4 py-density-2\",\n bodyHeaderClassName,\n )}\n >\n <div className=\"min-w-0 flex-1\">{bodyHeader}</div>\n {bodyActions && (\n <div className=\"flex shrink-0 items-center gap-density-2\">{bodyActions}</div>\n )}\n </div>\n )}\n\n {bodySidebar !== undefined ? (\n <SplitPane\n className=\"min-h-0 flex-1\"\n defaultSplit={bodySplit}\n minLeft={12}\n minRight={30}\n left={bodySidebar}\n right={<div className={cn(\"h-full min-w-0\", contentClassName)}>{children}</div>}\n rightClass=\"overflow-y-auto\"\n />\n ) : (\n <main className={cn(\"min-h-0 min-w-0 flex-1 overflow-auto\", contentClassName)}>\n {children}\n </main>\n )}\n </div>\n </div>\n );\n}\n\nfunction NavSections({\n sections,\n collapsed,\n}: {\n sections: AppShellNavSection[];\n collapsed: boolean;\n}) {\n return (\n <nav className={cn(\"flex flex-col gap-0.5\", collapsed ? \"px-2\" : \"px-density-2\")}>\n {sections.map((section, i) => (\n <div key={section.label ?? `section-${i}`} className=\"flex flex-col\">\n {section.label &&\n (collapsed ? (\n <div className=\"mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1\" />\n ) : (\n <div className=\"mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1\">\n {section.label}\n </div>\n ))}\n {section.items.map((item) => (\n <NavItemRow key={item.key} item={item} collapsed={collapsed} />\n ))}\n </div>\n ))}\n </nav>\n );\n}\n\nfunction NavItemRow({ item, collapsed }: { item: AppShellNavItem; collapsed: boolean }) {\n const className = cn(\n \"flex w-full items-center gap-2.5 rounded-md px-density-2 py-1.5 text-left text-[13px] text-sidebar-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n collapsed && \"justify-center px-0\",\n item.active && \"bg-sidebar-accent font-medium text-sidebar-primary\",\n );\n const inner = (\n <>\n {item.icon && (\n <span className=\"flex h-4 w-4 shrink-0 items-center justify-center\">\n <Icon {...(typeof item.icon === \"string\" ? { name: item.icon } : { icon: item.icon })} />\n </span>\n )}\n {!collapsed && <span className=\"flex-1 truncate\">{item.label}</span>}\n {!collapsed && item.badge}\n </>\n );\n const title = collapsed && typeof item.label === \"string\" ? item.label : undefined;\n\n if (item.href) {\n return (\n <a\n href={item.href}\n className={className}\n title={title}\n {...(item.external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n >\n {inner}\n </a>\n );\n }\n return (\n <button type=\"button\" onClick={item.onClick} className={className} title={title}>\n {inner}\n </button>\n );\n}\n"],"names":["useState","useEffect","cn","jsxs","jsx","Icon","UiSidebar","SplitPane","Fragment"],"mappings":"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"}
|