@fragment-build/ui 3.3.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/code-snippet/CodeSnippet.d.ts +9 -0
- package/components/code-snippet/CodeSnippet.js +14 -4
- package/components/code-snippet/CodeSnippet.js.map +1 -1
- package/components/code-snippet/code-snippet.css +18 -0
- package/components/segmented-control/SegmentedControl.d.ts +16 -0
- package/components/segmented-control/SegmentedControl.js +18 -0
- package/components/segmented-control/SegmentedControl.js.map +1 -0
- package/components/segmented-control/SegmentedControl.styles.d.ts +46 -0
- package/components/segmented-control/SegmentedControl.styles.js +20 -0
- package/components/segmented-control/SegmentedControl.styles.js.map +1 -0
- package/components/segmented-control/segmented-control.css +41 -0
- package/fragments/empty-state/EmptyState.d.ts +12 -0
- package/fragments/empty-state/EmptyState.js +12 -0
- package/fragments/empty-state/EmptyState.js.map +1 -0
- package/fragments/empty-state/EmptyState.styles.d.ts +55 -0
- package/fragments/empty-state/EmptyState.styles.js +23 -0
- package/fragments/empty-state/EmptyState.styles.js.map +1 -0
- package/fragments/empty-state/empty-state.css +39 -0
- package/fragments/form/FormCard.d.ts +14 -0
- package/fragments/form/FormCard.js +14 -0
- package/fragments/form/FormCard.js.map +1 -0
- package/fragments/form/FormCard.styles.d.ts +49 -0
- package/fragments/form/FormCard.styles.js +23 -0
- package/fragments/form/FormCard.styles.js.map +1 -0
- package/fragments/form/FormSection.d.ts +3 -1
- package/fragments/form/FormSection.js +2 -2
- package/fragments/form/FormSection.js.map +1 -1
- package/fragments/form/FormSection.styles.d.ts +6 -0
- package/fragments/form/FormSection.styles.js +2 -0
- package/fragments/form/FormSection.styles.js.map +1 -1
- package/fragments/form/form-card.css +42 -0
- package/fragments/form/form-section.css +22 -10
- package/fragments/form/form.css +1 -1
- package/fragments/page/PageHeader.d.ts +7 -2
- package/fragments/page/PageHeader.js +3 -3
- package/fragments/page/PageHeader.js.map +1 -1
- package/fragments/page/PageHeader.styles.d.ts +30 -21
- package/fragments/page/PageHeader.styles.js +10 -0
- package/fragments/page/PageHeader.styles.js.map +1 -1
- package/fragments/page/page-header.css +23 -3
- package/fragments/save-bar/SaveBar.d.ts +12 -0
- package/fragments/save-bar/SaveBar.js +15 -0
- package/fragments/save-bar/SaveBar.js.map +1 -0
- package/fragments/save-bar/SaveBar.styles.d.ts +37 -0
- package/fragments/save-bar/SaveBar.styles.js +16 -0
- package/fragments/save-bar/SaveBar.styles.js.map +1 -0
- package/fragments/save-bar/save-bar.css +28 -0
- package/fragments/shell/shell.css +8 -4
- package/fragments/sidebar/Sidebar.js +4 -1
- package/fragments/sidebar/Sidebar.js.map +1 -1
- package/fragments/sidebar/sidebar.css +41 -24
- package/fragments/stat/StatCard.d.ts +29 -0
- package/fragments/stat/StatCard.js +20 -0
- package/fragments/stat/StatCard.js.map +1 -0
- package/fragments/stat/StatCard.styles.d.ts +85 -0
- package/fragments/stat/StatCard.styles.js +26 -0
- package/fragments/stat/StatCard.styles.js.map +1 -0
- package/fragments/stat/stat-card.css +64 -0
- package/fragments/widget/Widget.d.ts +9 -2
- package/fragments/widget/Widget.js +4 -3
- package/fragments/widget/Widget.js.map +1 -1
- package/fragments/widget/Widget.styles.d.ts +51 -0
- package/fragments/widget/Widget.styles.js +12 -0
- package/fragments/widget/Widget.styles.js.map +1 -1
- package/fragments/widget/widget.css +49 -4
- package/index.css +112 -38
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/code-snippet/code-snippet.css +18 -0
- package/src/components/segmented-control/segmented-control.css +41 -0
- package/src/fragments/empty-state/empty-state.css +39 -0
- package/src/fragments/form/form-card.css +42 -0
- package/src/fragments/form/form-section.css +22 -10
- package/src/fragments/form/form.css +1 -1
- package/src/fragments/page/page-header.css +23 -3
- package/src/fragments/save-bar/save-bar.css +28 -0
- package/src/fragments/shell/shell.css +8 -4
- package/src/fragments/sidebar/sidebar.css +41 -24
- package/src/fragments/stat/stat-card.css +64 -0
- package/src/fragments/widget/widget.css +49 -4
- package/src/index.css +112 -38
|
@@ -1,41 +1,53 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
.fragment-form-section__main {
|
|
3
|
-
@apply flex flex-col;
|
|
3
|
+
@apply flex flex-col gap-4;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.fragment-form-section__info {
|
|
7
|
-
@apply
|
|
7
|
+
@apply min-w-0;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
.fragment-form-
|
|
11
|
-
@apply flex
|
|
10
|
+
.fragment-form-section__title-row {
|
|
11
|
+
@apply flex items-center gap-2;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.fragment-form-section__title {
|
|
15
|
+
@apply text-sm font-semibold;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
.fragment-form-section__description {
|
|
15
|
-
@apply text-sm text-muted;
|
|
19
|
+
@apply mt-1 text-sm text-muted;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.fragment-form-section__content {
|
|
23
|
+
@apply flex flex-col gap-5 flex-1 min-w-0;
|
|
16
24
|
}
|
|
17
25
|
|
|
26
|
+
/*
|
|
27
|
+
* Label column and control column. The label column is narrow and fixed so that, down a long
|
|
28
|
+
* settings page, every control starts on the same vertical line.
|
|
29
|
+
*/
|
|
18
30
|
.fragment-form-section--horizontal {
|
|
19
31
|
.fragment-form-section__main {
|
|
20
|
-
@apply
|
|
32
|
+
@apply md:flex-row md:gap-10;
|
|
21
33
|
}
|
|
22
34
|
.fragment-form-section__info {
|
|
23
|
-
@apply
|
|
35
|
+
@apply md:w-72 md:shrink-0;
|
|
24
36
|
}
|
|
25
37
|
.fragment-form-section__content {
|
|
26
|
-
@apply
|
|
38
|
+
@apply md:max-w-xl;
|
|
27
39
|
}
|
|
28
40
|
}
|
|
29
41
|
|
|
30
42
|
.fragment-form-section--vertical {
|
|
31
43
|
.fragment-form-section__content {
|
|
32
|
-
@apply
|
|
44
|
+
@apply md:max-w-3xl;
|
|
33
45
|
}
|
|
34
46
|
}
|
|
35
47
|
|
|
36
48
|
.fragment-form-section--full-width {
|
|
37
49
|
.fragment-form-section__content {
|
|
38
|
-
@apply
|
|
50
|
+
@apply md:max-w-full;
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
53
|
}
|
package/fragments/form/form.css
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Primary UI component for
|
|
2
|
+
* Primary UI component for Page Headers
|
|
3
3
|
*/
|
|
4
4
|
import React from 'react';
|
|
5
5
|
export interface PageHeaderProps {
|
|
6
|
+
/** Actions, aligned to the end of the title row. */
|
|
6
7
|
children?: React.ReactNode;
|
|
7
|
-
title:
|
|
8
|
+
title: React.ReactNode;
|
|
8
9
|
description?: React.ReactNode;
|
|
10
|
+
/** A small line above the title: a breadcrumb, a back link or a section name. */
|
|
11
|
+
eyebrow?: React.ReactNode;
|
|
12
|
+
/** Content below the title row that still belongs to the header, such as tabs or filters. */
|
|
13
|
+
footer?: React.ReactNode;
|
|
9
14
|
}
|
|
10
15
|
export declare const PageHeader: React.FC<PageHeaderProps>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { pageHeader } from './PageHeader.styles';
|
|
4
|
-
export const PageHeader = ({ children, title, description,
|
|
5
|
-
const v = pageHeader(
|
|
6
|
-
return (_jsxs("header", { className: v.base(), children: [_jsxs("div", { children: [_jsx("h1", { children: title }), description && _jsx("p", { className: v.description(), children: description })] }), _jsx("div", { className: v.actions(), children: children })] }));
|
|
4
|
+
export const PageHeader = ({ children, title, description, eyebrow, footer }) => {
|
|
5
|
+
const v = pageHeader({ hasFooter: !!footer });
|
|
6
|
+
return (_jsxs("header", { className: v.base(), children: [_jsxs("div", { className: v.row(), children: [_jsxs("div", { className: v.heading(), children: [eyebrow && _jsx("div", { className: v.eyebrow(), children: eyebrow }), _jsx("h1", { className: v.title(), children: title }), description && _jsx("p", { className: v.description(), children: description })] }), children && _jsx("div", { className: v.actions(), children: children })] }), footer && _jsx("div", { className: v.footer(), children: footer })] }));
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=PageHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACzG,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C,OAAO,CACL,kBAAQ,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,aACzB,eAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,aACrB,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,aACxB,OAAO,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAG,OAAO,GAAO,EACxD,aAAI,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAG,KAAK,GAAM,EACrC,WAAW,IAAI,YAAG,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,YAAG,WAAW,GAAK,IAC5D,EACL,QAAQ,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAAG,QAAQ,GAAO,IACtD,EACL,MAAM,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,YAAG,MAAM,GAAO,IAC9C,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,37 +1,46 @@
|
|
|
1
1
|
export declare const pageHeader: import("tailwind-variants").TVReturnType<{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
base
|
|
5
|
-
description?: import("tailwind-variants").ClassValue;
|
|
6
|
-
actions?: import("tailwind-variants").ClassValue;
|
|
2
|
+
hasFooter: {
|
|
3
|
+
true: {
|
|
4
|
+
base: string;
|
|
7
5
|
};
|
|
8
6
|
};
|
|
9
|
-
}
|
|
10
|
-
[x: string]: {
|
|
11
|
-
[x: string]: import("tailwind-variants").ClassValue | {
|
|
12
|
-
base?: import("tailwind-variants").ClassValue;
|
|
13
|
-
description?: import("tailwind-variants").ClassValue;
|
|
14
|
-
actions?: import("tailwind-variants").ClassValue;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
} | {}, {
|
|
7
|
+
}, {
|
|
18
8
|
base: string;
|
|
9
|
+
row: string;
|
|
10
|
+
heading: string;
|
|
11
|
+
eyebrow: string;
|
|
12
|
+
title: string;
|
|
19
13
|
description: string;
|
|
20
14
|
actions: string;
|
|
15
|
+
footer: string;
|
|
21
16
|
}, undefined, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
base
|
|
25
|
-
description?: import("tailwind-variants").ClassValue;
|
|
26
|
-
actions?: import("tailwind-variants").ClassValue;
|
|
17
|
+
hasFooter: {
|
|
18
|
+
true: {
|
|
19
|
+
base: string;
|
|
27
20
|
};
|
|
28
21
|
};
|
|
29
|
-
}
|
|
22
|
+
}, {
|
|
30
23
|
base: string;
|
|
24
|
+
row: string;
|
|
25
|
+
heading: string;
|
|
26
|
+
eyebrow: string;
|
|
27
|
+
title: string;
|
|
31
28
|
description: string;
|
|
32
29
|
actions: string;
|
|
33
|
-
|
|
30
|
+
footer: string;
|
|
31
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
32
|
+
hasFooter: {
|
|
33
|
+
true: {
|
|
34
|
+
base: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}, {
|
|
34
38
|
base: string;
|
|
39
|
+
row: string;
|
|
40
|
+
heading: string;
|
|
41
|
+
eyebrow: string;
|
|
42
|
+
title: string;
|
|
35
43
|
description: string;
|
|
36
44
|
actions: string;
|
|
45
|
+
footer: string;
|
|
37
46
|
}>>;
|
|
@@ -2,8 +2,18 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
export const pageHeader = tv({
|
|
3
3
|
slots: {
|
|
4
4
|
base: 'fragment-page-header',
|
|
5
|
+
row: 'fragment-page-header__row',
|
|
6
|
+
heading: 'fragment-page-header__heading',
|
|
7
|
+
eyebrow: 'fragment-page-header__eyebrow',
|
|
8
|
+
title: 'fragment-page-header__title',
|
|
5
9
|
description: 'fragment-page-header__description',
|
|
6
10
|
actions: 'fragment-page-header__actions',
|
|
11
|
+
footer: 'fragment-page-header__footer',
|
|
12
|
+
},
|
|
13
|
+
variants: {
|
|
14
|
+
hasFooter: {
|
|
15
|
+
true: { base: 'fragment-page-header--with-footer' },
|
|
16
|
+
},
|
|
7
17
|
},
|
|
8
18
|
});
|
|
9
19
|
//# sourceMappingURL=PageHeader.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.styles.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;IAC3B,KAAK,EAAE;QACL,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,+BAA+B;
|
|
1
|
+
{"version":3,"file":"PageHeader.styles.js","sourceRoot":"","sources":["../../src/fragments/page/PageHeader.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;IAC3B,KAAK,EAAE;QACL,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,2BAA2B;QAChC,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,+BAA+B;QACxC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE,8BAA8B;KACvC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;SACpD;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
.fragment-page-header {
|
|
3
|
-
@apply flex
|
|
3
|
+
@apply flex flex-col gap-5 mb-8;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.fragment-page-header--with-footer {
|
|
7
|
+
@apply mb-6;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.fragment-page-header__row {
|
|
11
|
+
@apply flex gap-4 justify-between flex-col sm:flex-row sm:items-end;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.fragment-page-header__heading {
|
|
15
|
+
@apply min-w-0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.fragment-page-header__eyebrow {
|
|
19
|
+
@apply mb-1.5 flex items-center gap-1.5 text-xs font-medium text-muted;
|
|
4
20
|
}
|
|
5
21
|
|
|
6
22
|
.fragment-page-header__description {
|
|
7
|
-
@apply mt-
|
|
23
|
+
@apply mt-1 max-w-2xl text-sm text-muted;
|
|
8
24
|
}
|
|
9
25
|
|
|
10
26
|
.fragment-page-header__actions {
|
|
11
|
-
@apply flex gap-
|
|
27
|
+
@apply flex flex-wrap gap-2 items-center shrink-0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.fragment-page-header__footer {
|
|
31
|
+
@apply min-w-0;
|
|
12
32
|
}
|
|
13
33
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SaveBarProps {
|
|
2
|
+
isVisible: boolean;
|
|
3
|
+
isPending?: boolean;
|
|
4
|
+
message: React.ReactNode;
|
|
5
|
+
saveLabel: React.ReactNode;
|
|
6
|
+
discardLabel?: React.ReactNode;
|
|
7
|
+
onDiscard?: () => void;
|
|
8
|
+
/** Omit when the bar sits inside a `<form>`: the save button then submits it. */
|
|
9
|
+
onSave?: () => void;
|
|
10
|
+
isSaveDisabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const SaveBar: React.FC<SaveBarProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* The bar a settings form saves from. It appears once something has changed and stays pinned to
|
|
5
|
+
* the bottom of the viewport while the form scrolls, so the save action is never a scroll away and
|
|
6
|
+
* an unsaved edit is never silent.
|
|
7
|
+
*/
|
|
8
|
+
import { Button } from '@heroui/react';
|
|
9
|
+
import { IconAlertCircle } from '@tabler/icons-react';
|
|
10
|
+
import { saveBar } from './SaveBar.styles';
|
|
11
|
+
export const SaveBar = ({ isVisible, isPending, message, saveLabel, discardLabel, onDiscard, onSave, isSaveDisabled, }) => {
|
|
12
|
+
const v = saveBar({ isVisible });
|
|
13
|
+
return (_jsx("div", { "aria-hidden": !isVisible, className: v.base(), inert: !isVisible, children: _jsxs("div", { className: v.bar(), children: [_jsx("span", { "aria-live": "polite", className: v.message(), children: isVisible && (_jsxs(_Fragment, { children: [_jsx(IconAlertCircle, { size: 16, stroke: 1.75 }), message] })) }), _jsxs("div", { className: v.actions(), children: [onDiscard && discardLabel && (_jsx(Button, { isDisabled: isPending, onPress: onDiscard, size: "sm", type: "button", variant: "ghost", children: discardLabel })), _jsx(Button, { isDisabled: isSaveDisabled, isPending: isPending, onPress: onSave, size: "sm", type: onSave ? 'button' : 'submit', children: saveLabel })] })] }) }));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=SaveBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SaveBar.js","sourceRoot":"","sources":["../../src/fragments/save-bar/SaveBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAc3C,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAC9C,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAC1F,EAAE,EAAE;IACH,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEjC,OAAO,CACL,6BAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,YAClE,eAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,aAErB,4BAAgB,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YAC5C,SAAS,IAAI,CACZ,8BACE,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAI,EAC1C,OAAO,IACP,CACJ,GACI,EACP,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,aACxB,SAAS,IAAI,YAAY,IAAI,CAC5B,KAAC,MAAM,IAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,YACvF,YAAY,GACN,CACV,EACD,KAAC,MAAM,IACL,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAC,IAAI,EACT,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,YAEjC,SAAS,GACH,IACL,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const saveBar: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
isVisible: {
|
|
3
|
+
true: {
|
|
4
|
+
base: string;
|
|
5
|
+
};
|
|
6
|
+
false: {};
|
|
7
|
+
};
|
|
8
|
+
}, {
|
|
9
|
+
base: string;
|
|
10
|
+
bar: string;
|
|
11
|
+
message: string;
|
|
12
|
+
actions: string;
|
|
13
|
+
}, undefined, {
|
|
14
|
+
isVisible: {
|
|
15
|
+
true: {
|
|
16
|
+
base: string;
|
|
17
|
+
};
|
|
18
|
+
false: {};
|
|
19
|
+
};
|
|
20
|
+
}, {
|
|
21
|
+
base: string;
|
|
22
|
+
bar: string;
|
|
23
|
+
message: string;
|
|
24
|
+
actions: string;
|
|
25
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
26
|
+
isVisible: {
|
|
27
|
+
true: {
|
|
28
|
+
base: string;
|
|
29
|
+
};
|
|
30
|
+
false: {};
|
|
31
|
+
};
|
|
32
|
+
}, {
|
|
33
|
+
base: string;
|
|
34
|
+
bar: string;
|
|
35
|
+
message: string;
|
|
36
|
+
actions: string;
|
|
37
|
+
}>>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
export const saveBar = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
base: 'fragment-save-bar',
|
|
5
|
+
bar: 'fragment-save-bar__bar',
|
|
6
|
+
message: 'fragment-save-bar__message',
|
|
7
|
+
actions: 'fragment-save-bar__actions',
|
|
8
|
+
},
|
|
9
|
+
variants: {
|
|
10
|
+
isVisible: {
|
|
11
|
+
true: { base: 'fragment-save-bar--visible' },
|
|
12
|
+
false: {},
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=SaveBar.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SaveBar.styles.js","sourceRoot":"","sources":["../../src/fragments/save-bar/SaveBar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,wBAAwB;QAC7B,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,4BAA4B;KACtC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,IAAI,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE;YAC5C,KAAK,EAAE,EAAE;SACV;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
/* Sticky inside the form rather than fixed to the viewport, so it never needs to know how wide the rail is. */
|
|
3
|
+
/* Takes no room while hidden, so a clean form ends where its last field does. */
|
|
4
|
+
.fragment-save-bar {
|
|
5
|
+
@apply pointer-events-none sticky bottom-20 z-30 flex h-0 justify-center overflow-visible md:bottom-6;
|
|
6
|
+
@apply translate-y-4 opacity-0 transition-[opacity,translate] duration-200 motion-reduce:transition-none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.fragment-save-bar--visible {
|
|
10
|
+
@apply pointer-events-auto mt-6 h-auto translate-y-0 opacity-100;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fragment-save-bar__bar {
|
|
14
|
+
@apply flex w-full max-w-2xl items-center justify-between gap-4 rounded-2xl border border-border bg-overlay py-2 pr-2 pl-4
|
|
15
|
+
text-sm shadow-lg;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.fragment-save-bar__message {
|
|
19
|
+
@apply flex items-center gap-2 font-medium text-foreground;
|
|
20
|
+
& svg {
|
|
21
|
+
@apply shrink-0 text-warning;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.fragment-save-bar__actions {
|
|
26
|
+
@apply flex shrink-0 items-center gap-1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -7,16 +7,20 @@
|
|
|
7
7
|
@apply flex-col;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
/*
|
|
11
|
+
* The content column is capped at a width a table or a two-column dashboard still reads well at.
|
|
12
|
+
* Past ~1600px the eye travels too far between a label and its value, and a wide monitor is
|
|
13
|
+
* better spent on margin than on stretching every card.
|
|
14
|
+
*/
|
|
10
15
|
.fragment-shell__main {
|
|
11
|
-
@apply flex-1 min-w-0 mx-auto;
|
|
16
|
+
@apply flex-1 min-w-0 mx-auto w-full;
|
|
12
17
|
|
|
13
18
|
.fragment-shell--horizontal & {
|
|
14
|
-
@apply px-
|
|
19
|
+
@apply px-4 sm:px-6 lg:px-10 pt-6 pb-24 md:pt-8 md:pb-12 max-w-[1600px];
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
.fragment-shell--vertical & {
|
|
18
|
-
@apply px-
|
|
23
|
+
@apply px-4 sm:px-6 lg:px-10 py-6 max-w-[1600px];
|
|
19
24
|
}
|
|
20
|
-
|
|
21
25
|
}
|
|
22
26
|
}
|
|
@@ -73,7 +73,10 @@ export const Sidebar = ({ items, currentPath, layout: defaultLayout = 'auto' })
|
|
|
73
73
|
}) }), _jsx("div", { className: v.expandedFooter(), children: items.map((item) => {
|
|
74
74
|
const children = item.align === 'bottom' ? renderItems(item, { layout: 'expanded', activeLink }) : null;
|
|
75
75
|
return children ? (_jsx("div", { className: getAlignmentClass(item.align), children: children }, item.key)) : null;
|
|
76
|
-
}) })] }), _jsx("div", { className: v.placeholder() }), _jsx("div", { className: v.layoutButtonWrapper(), children: _jsx(Button, { size: "sm", isIconOnly: true, variant: "tertiary", className: v.layoutButton(), onPress: toggleLayout, children: _jsx(IconChevronLeft, {}) }) })] }), _jsxs("nav", { className: v.bottomNav(), onClick: () => setMobileMenuOpen(false), children: [items
|
|
76
|
+
}) })] }), _jsx("div", { className: v.placeholder() }), _jsx("div", { className: v.layoutButtonWrapper(), children: _jsx(Button, { size: "sm", isIconOnly: true, variant: "tertiary", className: v.layoutButton(), onPress: toggleLayout, children: _jsx(IconChevronLeft, {}) }) })] }), _jsxs("nav", { className: v.bottomNav(), onClick: () => setMobileMenuOpen(false), children: [items
|
|
77
|
+
.filter((item) => item.type === 'navigation')
|
|
78
|
+
.flatMap((item) => item.navigation)
|
|
79
|
+
.map((navItem) => (_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { children: _jsx(Button, { render: (props) => _jsx(ButtonLink, { ...props, href: navItem.link }), isIconOnly: true, variant: activeLink === navItem.link ? 'tertiary' : 'ghost', onPress: () => setMobileMenuOpen(false), children: _jsxs(Badge.Anchor, { children: [navItem.icon, typeof navItem.badgeContent === 'string' && navItem.badgeContent ? (_jsx(Badge, { variant: "primary", color: "accent", size: "sm", className: "fragment-sidebar__bottom-nav-badge", children: navItem.badgeContent })) : null] }) }) }), _jsx(Tooltip.Content, { placement: "top", offset: 10, children: navItem.label })] }, navItem.label))), _jsx(Button, { variant: mobileMenuOpen ? 'tertiary' : 'ghost', isIconOnly: true, onPress: () => setMobileMenuOpen(!mobileMenuOpen), children: _jsx(IconDots, {}) })] }), _jsx(Modal, { isOpen: mobileMenuOpen, onOpenChange: setMobileMenuOpen, children: _jsx(Modal.Backdrop, { children: _jsx(Modal.Container, { children: _jsxs(Modal.Dialog, { children: [_jsx(Modal.Header, {}), _jsx(Modal.Body, { className: v.bottomNavModalBody(), children: items.map((item) => {
|
|
77
80
|
const children = item.align !== 'bottom' ? renderItems(item, { layout: 'expanded', activeLink }) : null;
|
|
78
81
|
return children ? (_jsx("div", { className: getAlignmentClass(item.align), children: children }, item.key)) : null;
|
|
79
82
|
}) }), _jsx(Modal.Footer, { className: v.bottomNavModalFooter(), children: items.map((item) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/fragments/sidebar/Sidebar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/fragments/sidebar/Sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,28 +5,29 @@
|
|
|
5
5
|
|
|
6
6
|
.fragment-sidebar__collapsed {
|
|
7
7
|
@apply fixed top-0 left-0 border-r border-border bg-sidebar text-sidebar-foreground
|
|
8
|
-
flex flex-col h-screen gap-
|
|
8
|
+
flex flex-col h-screen gap-4 transition-all z-40;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.fragment-sidebar__collapsed-body {
|
|
12
|
-
@apply w-
|
|
12
|
+
@apply w-16 items-center flex flex-col gap-6 px-2 pt-5 overflow-y-auto flex-1;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.fragment-sidebar__collapsed-footer {
|
|
16
|
-
@apply w-
|
|
16
|
+
@apply w-16 items-center flex flex-col gap-3 px-2 pb-4;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.fragment-sidebar__expanded {
|
|
20
20
|
@apply fixed top-0 left-0 border-r border-border bg-sidebar text-sidebar-foreground
|
|
21
|
-
flex flex-col h-screen gap-
|
|
21
|
+
flex flex-col h-screen gap-4 overflow-hidden transition-all z-40;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
.fragment-sidebar__expanded-body {
|
|
25
|
-
@apply w-
|
|
25
|
+
@apply w-64 flex flex-col gap-6 px-3 pt-5 overflow-y-auto flex-1;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
/* The footer is chrome (account, workspace), so it is tucked behind a hairline. */
|
|
28
29
|
.fragment-sidebar__expanded-footer {
|
|
29
|
-
@apply w-
|
|
30
|
+
@apply w-64 flex flex-col gap-2 px-3 pt-3 pb-4 border-t border-border;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
.fragment-sidebar__placeholder {
|
|
@@ -34,11 +35,14 @@
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
.fragment-sidebar__layout-button-wrapper {
|
|
37
|
-
@apply fixed top-6 transition-all;
|
|
38
|
+
@apply fixed top-6 transition-all z-50;
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
.fragment-sidebar__layout-button {
|
|
41
|
-
@apply h-6! w-6
|
|
42
|
+
@apply h-6! w-6! min-w-6! bg-surface! border border-border shadow-sm text-muted;
|
|
43
|
+
& svg {
|
|
44
|
+
@apply size-3.5;
|
|
45
|
+
}
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
.fragment-sidebar__bottom-nav {
|
|
@@ -69,7 +73,7 @@
|
|
|
69
73
|
.fragment-sidebar__collapsed-nav {
|
|
70
74
|
@apply flex flex-col gap-1;
|
|
71
75
|
& svg {
|
|
72
|
-
@apply size-
|
|
76
|
+
@apply size-[18px]! shrink-0 self-center;
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
|
|
@@ -106,23 +110,36 @@
|
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
.fragment-sidebar__custom-item {
|
|
109
|
-
@apply px-
|
|
113
|
+
@apply px-1;
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
.fragment-sidebar__nav {
|
|
113
|
-
@apply text-sm;
|
|
117
|
+
@apply text-sm flex flex-col gap-0.5;
|
|
118
|
+
|
|
119
|
+
/* Group label: quiet, so it organises the list without competing with it. */
|
|
120
|
+
& > .header {
|
|
121
|
+
@apply px-3 pb-1 text-xs font-medium text-muted;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.list-box {
|
|
125
|
+
@apply gap-0.5;
|
|
126
|
+
}
|
|
114
127
|
|
|
115
128
|
.list-box-item {
|
|
116
|
-
@apply px-3! pr-1! py-1! h-
|
|
129
|
+
@apply px-3! pr-1! py-1! h-9! gap-3! rounded-lg! font-normal text-sidebar-foreground/80;
|
|
130
|
+
&:hover, &[data-hovered="true"] {
|
|
131
|
+
background-color: var(--sidebar-default, var(--default)) !important;
|
|
132
|
+
@apply text-sidebar-foreground;
|
|
133
|
+
}
|
|
117
134
|
}
|
|
118
135
|
|
|
119
136
|
& svg {
|
|
120
|
-
@apply size-
|
|
137
|
+
@apply size-[18px] shrink-0 self-center;
|
|
121
138
|
}
|
|
122
139
|
}
|
|
123
140
|
|
|
124
141
|
.fragment-sidebar__accordion-trigger {
|
|
125
|
-
@apply w-full flex items-center gap-3 h-
|
|
142
|
+
@apply w-full flex items-center gap-3 h-9 px-3 pr-1 py-1 rounded-lg text-sm font-normal cursor-pointer
|
|
126
143
|
text-sidebar-foreground transition-colors;
|
|
127
144
|
&:hover, &[data-hovered="true"] {
|
|
128
145
|
/* `--default` is a page-level palette colour; opt out per-rail with `--sidebar-default`. */
|
|
@@ -161,7 +178,7 @@
|
|
|
161
178
|
|
|
162
179
|
.fragment-sidebar__nav-item--active {
|
|
163
180
|
/* `--accent-soft` is translucent, so it composites over the rail, not the page. */
|
|
164
|
-
@apply bg-accent-soft!;
|
|
181
|
+
@apply bg-accent-soft! font-medium!;
|
|
165
182
|
color: var(--sidebar-accent-soft-foreground, var(--accent-soft-foreground)) !important;
|
|
166
183
|
}
|
|
167
184
|
|
|
@@ -180,13 +197,13 @@
|
|
|
180
197
|
/* Layout modifier variants */
|
|
181
198
|
.fragment-sidebar--auto {
|
|
182
199
|
.fragment-sidebar__expanded {
|
|
183
|
-
@apply w-
|
|
200
|
+
@apply w-16 opacity-0 pointer-events-none xl:w-64 xl:opacity-100 xl:pointer-events-auto;
|
|
184
201
|
}
|
|
185
202
|
.fragment-sidebar__placeholder {
|
|
186
|
-
@apply w-
|
|
203
|
+
@apply w-16 opacity-0 pointer-events-none xl:w-64 xl:opacity-100 xl:pointer-events-auto;
|
|
187
204
|
}
|
|
188
205
|
.fragment-sidebar__layout-button-wrapper {
|
|
189
|
-
@apply left-
|
|
206
|
+
@apply left-16 translate-x-1/2 rotate-180 xl:left-64 xl:-translate-x-1/2 xl:rotate-0;
|
|
190
207
|
}
|
|
191
208
|
.fragment-sidebar__collapsed {
|
|
192
209
|
@apply xl:opacity-0;
|
|
@@ -195,13 +212,13 @@
|
|
|
195
212
|
|
|
196
213
|
.fragment-sidebar--collapsed {
|
|
197
214
|
.fragment-sidebar__expanded {
|
|
198
|
-
@apply w-
|
|
215
|
+
@apply w-16 opacity-0 pointer-events-none;
|
|
199
216
|
}
|
|
200
217
|
.fragment-sidebar__placeholder {
|
|
201
|
-
@apply w-
|
|
218
|
+
@apply w-16 opacity-0 pointer-events-none;
|
|
202
219
|
}
|
|
203
220
|
.fragment-sidebar__layout-button-wrapper {
|
|
204
|
-
@apply left-
|
|
221
|
+
@apply left-16 translate-x-1/2 rotate-180;
|
|
205
222
|
}
|
|
206
223
|
}
|
|
207
224
|
|
|
@@ -210,13 +227,13 @@
|
|
|
210
227
|
@apply opacity-0;
|
|
211
228
|
}
|
|
212
229
|
.fragment-sidebar__expanded {
|
|
213
|
-
@apply w-
|
|
230
|
+
@apply w-64;
|
|
214
231
|
}
|
|
215
232
|
.fragment-sidebar__placeholder {
|
|
216
|
-
@apply w-
|
|
233
|
+
@apply w-64;
|
|
217
234
|
}
|
|
218
235
|
.fragment-sidebar__layout-button-wrapper {
|
|
219
|
-
@apply left-
|
|
236
|
+
@apply left-64 -translate-x-1/2;
|
|
220
237
|
}
|
|
221
238
|
}
|
|
222
239
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface StatCardDelta {
|
|
2
|
+
/** Already formatted and signed, e.g. "+12%". */
|
|
3
|
+
value: React.ReactNode;
|
|
4
|
+
direction: 'up' | 'down' | 'flat';
|
|
5
|
+
/**
|
|
6
|
+
* Whether this direction is good news. Defaults to "up is good"; pass it explicitly for a
|
|
7
|
+
* number where down is the win (a bounce rate, a cost).
|
|
8
|
+
*/
|
|
9
|
+
sentiment?: 'positive' | 'negative' | 'neutral';
|
|
10
|
+
/** The period the change is measured against, e.g. "vs. previous 30 days". */
|
|
11
|
+
label?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export interface StatCardProps {
|
|
14
|
+
label: React.ReactNode;
|
|
15
|
+
value: React.ReactNode;
|
|
16
|
+
icon?: React.ReactNode;
|
|
17
|
+
delta?: StatCardDelta;
|
|
18
|
+
/** One quiet line under the value. */
|
|
19
|
+
hint?: React.ReactNode;
|
|
20
|
+
/** Shown behind an info icon beside the label. */
|
|
21
|
+
help?: React.ReactNode;
|
|
22
|
+
/** Accessible name of the info icon. */
|
|
23
|
+
helpLabel?: string;
|
|
24
|
+
isLoading?: boolean;
|
|
25
|
+
/** Marks the card as the one the view is about: a lifted surface and a larger value. */
|
|
26
|
+
emphasis?: boolean;
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare const StatCard: React.FC<StatCardProps>;
|