@fragment-build/ui 3.3.0 → 4.0.1
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 +48 -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 +50 -4
- package/index.css +142 -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 +48 -24
- package/src/fragments/stat/stat-card.css +64 -0
- package/src/fragments/widget/widget.css +50 -4
- package/src/index.css +142 -38
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* A single headline number: label, value, an optional change against a named period and a hint.
|
|
5
|
+
*/
|
|
6
|
+
import { Card, Skeleton, Tooltip } from '@heroui/react';
|
|
7
|
+
import { IconArrowDownRight, IconArrowUpRight, IconInfoCircle, IconMinus } from '@tabler/icons-react';
|
|
8
|
+
import { statCard } from './StatCard.styles';
|
|
9
|
+
const deltaIcon = {
|
|
10
|
+
up: IconArrowUpRight,
|
|
11
|
+
down: IconArrowDownRight,
|
|
12
|
+
flat: IconMinus,
|
|
13
|
+
};
|
|
14
|
+
export const StatCard = ({ label, value, icon, delta, hint, help, helpLabel = 'More information', isLoading, emphasis, className, }) => {
|
|
15
|
+
const sentiment = delta?.sentiment ?? (delta?.direction === 'up' ? 'positive' : delta?.direction === 'down' ? 'negative' : 'neutral');
|
|
16
|
+
const v = statCard({ emphasis, sentiment });
|
|
17
|
+
const DeltaIcon = delta ? deltaIcon[delta.direction] : null;
|
|
18
|
+
return (_jsxs(Card, { className: v.base({ className }), children: [_jsxs("div", { className: v.top(), children: [_jsxs("span", { className: v.label(), children: [_jsx("span", { className: "truncate", children: label }), help && (_jsxs(Tooltip, { delay: 0, children: [_jsx(Tooltip.Trigger, { className: v.help(), "aria-label": helpLabel, tabIndex: 0, children: _jsx(IconInfoCircle, { size: 14, stroke: 1.75 }) }), _jsx(Tooltip.Content, { className: "max-w-xs", children: help })] }))] }), icon && _jsx("span", { className: v.icon(), children: icon })] }), isLoading ? (_jsx(Skeleton, { className: v.skeleton() })) : (_jsxs("div", { className: v.valueRow(), children: [_jsx("span", { className: v.value(), children: value }), delta && DeltaIcon && (_jsxs("span", { className: v.delta(), children: [_jsx(DeltaIcon, { size: 14, stroke: 2 }), delta.value] }))] })), (hint || delta?.label) && !isLoading && (_jsx("p", { className: v.hint(), children: hint ?? delta?.label }))] }));
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=StatCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatCard.js","sourceRoot":"","sources":["../../src/fragments/stat/StatCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgC7C,MAAM,SAAS,GAAG;IAChB,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAChD,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GACtG,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,CACpC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAC9F,CAAC;IACF,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5D,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,aACpC,eAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,aACrB,gBAAM,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,aACxB,eAAM,SAAS,EAAC,UAAU,YAAE,KAAK,GAAQ,EACxC,IAAI,IAAI,CACP,MAAC,OAAO,IAAC,KAAK,EAAE,CAAC,aACf,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAc,SAAS,EAAE,QAAQ,EAAE,CAAC,YACtE,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAI,GAC1B,EAClB,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAC,UAAU,YAAE,IAAI,GAAmB,IACtD,CACX,IACI,EACN,IAAI,IAAI,eAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,YAAG,IAAI,GAAQ,IAC7C,EACL,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAI,CACtC,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,aAC1B,eAAM,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAG,KAAK,GAAQ,EACzC,KAAK,IAAI,SAAS,IAAI,CACrB,gBAAM,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,aACxB,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAI,EACjC,KAAK,CAAC,KAAK,IACP,CACR,IACG,CACP,EACA,CAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CACvC,YAAG,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,YAAG,IAAI,IAAI,KAAK,EAAE,KAAK,GAAK,CACnD,IACI,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export declare const statCard: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
emphasis: {
|
|
3
|
+
true: {
|
|
4
|
+
base: string;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
sentiment: {
|
|
8
|
+
positive: {
|
|
9
|
+
delta: string;
|
|
10
|
+
};
|
|
11
|
+
negative: {
|
|
12
|
+
delta: string;
|
|
13
|
+
};
|
|
14
|
+
neutral: {
|
|
15
|
+
delta: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
}, {
|
|
19
|
+
base: string;
|
|
20
|
+
top: string;
|
|
21
|
+
label: string;
|
|
22
|
+
help: string;
|
|
23
|
+
icon: string;
|
|
24
|
+
valueRow: string;
|
|
25
|
+
value: string;
|
|
26
|
+
delta: string;
|
|
27
|
+
hint: string;
|
|
28
|
+
skeleton: string;
|
|
29
|
+
}, undefined, {
|
|
30
|
+
emphasis: {
|
|
31
|
+
true: {
|
|
32
|
+
base: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
sentiment: {
|
|
36
|
+
positive: {
|
|
37
|
+
delta: string;
|
|
38
|
+
};
|
|
39
|
+
negative: {
|
|
40
|
+
delta: string;
|
|
41
|
+
};
|
|
42
|
+
neutral: {
|
|
43
|
+
delta: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
}, {
|
|
47
|
+
base: string;
|
|
48
|
+
top: string;
|
|
49
|
+
label: string;
|
|
50
|
+
help: string;
|
|
51
|
+
icon: string;
|
|
52
|
+
valueRow: string;
|
|
53
|
+
value: string;
|
|
54
|
+
delta: string;
|
|
55
|
+
hint: string;
|
|
56
|
+
skeleton: string;
|
|
57
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
58
|
+
emphasis: {
|
|
59
|
+
true: {
|
|
60
|
+
base: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
sentiment: {
|
|
64
|
+
positive: {
|
|
65
|
+
delta: string;
|
|
66
|
+
};
|
|
67
|
+
negative: {
|
|
68
|
+
delta: string;
|
|
69
|
+
};
|
|
70
|
+
neutral: {
|
|
71
|
+
delta: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
base: string;
|
|
76
|
+
top: string;
|
|
77
|
+
label: string;
|
|
78
|
+
help: string;
|
|
79
|
+
icon: string;
|
|
80
|
+
valueRow: string;
|
|
81
|
+
value: string;
|
|
82
|
+
delta: string;
|
|
83
|
+
hint: string;
|
|
84
|
+
skeleton: string;
|
|
85
|
+
}>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
export const statCard = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
base: 'fragment-stat-card',
|
|
5
|
+
top: 'fragment-stat-card__top',
|
|
6
|
+
label: 'fragment-stat-card__label',
|
|
7
|
+
help: 'fragment-stat-card__help',
|
|
8
|
+
icon: 'fragment-stat-card__icon',
|
|
9
|
+
valueRow: 'fragment-stat-card__value-row',
|
|
10
|
+
value: 'fragment-stat-card__value',
|
|
11
|
+
delta: 'fragment-stat-card__delta',
|
|
12
|
+
hint: 'fragment-stat-card__hint',
|
|
13
|
+
skeleton: 'fragment-stat-card__skeleton',
|
|
14
|
+
},
|
|
15
|
+
variants: {
|
|
16
|
+
emphasis: {
|
|
17
|
+
true: { base: 'fragment-stat-card--emphasis' },
|
|
18
|
+
},
|
|
19
|
+
sentiment: {
|
|
20
|
+
positive: { delta: 'fragment-stat-card__delta--positive' },
|
|
21
|
+
negative: { delta: 'fragment-stat-card__delta--negative' },
|
|
22
|
+
neutral: { delta: 'fragment-stat-card__delta--neutral' },
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=StatCard.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatCard.styles.js","sourceRoot":"","sources":["../../src/fragments/stat/StatCard.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;IACzB,KAAK,EAAE;QACL,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,2BAA2B;QAClC,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,+BAA+B;QACzC,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,2BAA2B;QAClC,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,8BAA8B;KACzC;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;SAC/C;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE;YAC1D,QAAQ,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE;YAC1D,OAAO,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE;SACzD;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.fragment-stat-card {
|
|
3
|
+
@apply p-4 gap-2 min-w-0;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.fragment-stat-card__top {
|
|
7
|
+
@apply flex items-center justify-between gap-2;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.fragment-stat-card__label {
|
|
11
|
+
@apply flex items-center gap-1 text-xs font-medium text-muted min-w-0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.fragment-stat-card__help {
|
|
15
|
+
@apply inline-flex text-muted/70 hover:text-foreground cursor-help rounded-full outline-none
|
|
16
|
+
focus-visible:ring-2 focus-visible:ring-focus;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fragment-stat-card__icon {
|
|
20
|
+
@apply flex size-8 shrink-0 items-center justify-center rounded-lg bg-default text-muted;
|
|
21
|
+
& svg {
|
|
22
|
+
@apply size-4;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.fragment-stat-card__value-row {
|
|
27
|
+
@apply flex flex-wrap items-baseline gap-x-2 gap-y-1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Proportional figures: a standalone number with tabular digits looks loosely set. */
|
|
31
|
+
.fragment-stat-card__value {
|
|
32
|
+
@apply text-2xl font-semibold tracking-tight text-foreground truncate;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.fragment-stat-card__delta {
|
|
36
|
+
@apply inline-flex items-center gap-0.5 rounded-md px-1.5 py-0.5 text-xs font-medium;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.fragment-stat-card__delta--positive {
|
|
40
|
+
@apply bg-success-soft text-success-soft-foreground;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.fragment-stat-card__delta--negative {
|
|
44
|
+
@apply bg-danger-soft text-danger-soft-foreground;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.fragment-stat-card__delta--neutral {
|
|
48
|
+
@apply bg-default text-muted;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.fragment-stat-card__hint {
|
|
52
|
+
@apply text-xs text-muted;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.fragment-stat-card__skeleton {
|
|
56
|
+
@apply h-8 w-24 rounded-lg;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.fragment-stat-card--emphasis {
|
|
60
|
+
.fragment-stat-card__value {
|
|
61
|
+
@apply text-3xl;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -8,8 +8,15 @@ export interface WidgetProps {
|
|
|
8
8
|
startContent?: React.ReactNode;
|
|
9
9
|
endContent?: React.ReactNode;
|
|
10
10
|
};
|
|
11
|
-
title?:
|
|
12
|
-
|
|
11
|
+
title?: React.ReactNode;
|
|
12
|
+
/** One line under the title saying what the widget measures. */
|
|
13
|
+
description?: React.ReactNode;
|
|
14
|
+
/** Pinned to the bottom of the card, behind a hairline: a "view all" link, a timestamp. */
|
|
15
|
+
footer?: React.ReactNode;
|
|
16
|
+
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
17
|
+
/** `none` lets a table or a list run edge to edge inside the card. */
|
|
18
|
+
padding?: 'none' | 'sm' | 'md';
|
|
13
19
|
variant?: CardProps['variant'];
|
|
20
|
+
className?: string;
|
|
14
21
|
}
|
|
15
22
|
export declare const Widget: React.FC<WidgetProps>;
|
|
@@ -5,8 +5,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
*/
|
|
6
6
|
import { Card } from '@heroui/react';
|
|
7
7
|
import { widget } from './Widget.styles';
|
|
8
|
-
export const Widget = ({ children, title, header, variant, ...props }) => {
|
|
9
|
-
const
|
|
10
|
-
|
|
8
|
+
export const Widget = ({ children, title, description, header, footer, variant, className, ...props }) => {
|
|
9
|
+
const v = widget(props);
|
|
10
|
+
const hasHeader = !!(title || description || header?.startContent || header?.endContent);
|
|
11
|
+
return (_jsxs(Card, { className: v.base({ className }), variant: variant, children: [hasHeader && (_jsxs(Card.Header, { className: v.header(), children: [header?.startContent && _jsx("div", { className: v.headerStartContent(), children: header.startContent }), _jsxs("div", { className: v.heading(), children: [title && _jsx("h3", { className: v.title(), children: title }), description && _jsx("p", { className: v.description(), children: description })] }), header?.endContent && _jsx("div", { className: v.headerEndContent(), children: header.endContent })] })), _jsx(Card.Content, { className: v.content(), children: children }), footer && _jsx(Card.Footer, { className: v.footer(), children: footer })] }));
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=Widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../src/fragments/widget/Widget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../src/fragments/widget/Widget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAoBzC,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAC5C,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAC3E,EAAE,EAAE;IACH,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,MAAM,EAAE,UAAU,CAAC,CAAC;IAEzF,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,aACrD,SAAS,IAAI,CACZ,MAAC,IAAI,CAAC,MAAM,IAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,aAC/B,MAAM,EAAE,YAAY,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAG,MAAM,CAAC,YAAY,GAAO,EAC5F,eAAK,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,aACxB,KAAK,IAAI,aAAI,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAG,KAAK,GAAM,EAC/C,WAAW,IAAI,YAAG,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,YAAG,WAAW,GAAK,IAC5D,EACL,MAAM,EAAE,UAAU,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,EAAE,YAAG,MAAM,CAAC,UAAU,GAAO,IAC1E,CACf,EACD,KAAC,IAAI,CAAC,OAAO,IAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,YACjC,QAAQ,GACI,EACd,MAAM,IAAI,KAAC,IAAI,CAAC,MAAM,IAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,YAAG,MAAM,GAAe,IAChE,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -9,12 +9,29 @@ export declare const widget: import("tailwind-variants").TVReturnType<{
|
|
|
9
9
|
lg: {
|
|
10
10
|
base: string;
|
|
11
11
|
};
|
|
12
|
+
full: {
|
|
13
|
+
base: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
padding: {
|
|
17
|
+
none: {
|
|
18
|
+
base: string;
|
|
19
|
+
};
|
|
20
|
+
sm: {
|
|
21
|
+
base: string;
|
|
22
|
+
};
|
|
23
|
+
md: {};
|
|
12
24
|
};
|
|
13
25
|
}, {
|
|
14
26
|
base: string;
|
|
15
27
|
header: string;
|
|
28
|
+
headerStartContent: string;
|
|
29
|
+
heading: string;
|
|
30
|
+
title: string;
|
|
31
|
+
description: string;
|
|
16
32
|
headerEndContent: string;
|
|
17
33
|
content: string;
|
|
34
|
+
footer: string;
|
|
18
35
|
}, undefined, {
|
|
19
36
|
size: {
|
|
20
37
|
sm: {
|
|
@@ -26,12 +43,29 @@ export declare const widget: import("tailwind-variants").TVReturnType<{
|
|
|
26
43
|
lg: {
|
|
27
44
|
base: string;
|
|
28
45
|
};
|
|
46
|
+
full: {
|
|
47
|
+
base: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
padding: {
|
|
51
|
+
none: {
|
|
52
|
+
base: string;
|
|
53
|
+
};
|
|
54
|
+
sm: {
|
|
55
|
+
base: string;
|
|
56
|
+
};
|
|
57
|
+
md: {};
|
|
29
58
|
};
|
|
30
59
|
}, {
|
|
31
60
|
base: string;
|
|
32
61
|
header: string;
|
|
62
|
+
headerStartContent: string;
|
|
63
|
+
heading: string;
|
|
64
|
+
title: string;
|
|
65
|
+
description: string;
|
|
33
66
|
headerEndContent: string;
|
|
34
67
|
content: string;
|
|
68
|
+
footer: string;
|
|
35
69
|
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
36
70
|
size: {
|
|
37
71
|
sm: {
|
|
@@ -43,10 +77,27 @@ export declare const widget: import("tailwind-variants").TVReturnType<{
|
|
|
43
77
|
lg: {
|
|
44
78
|
base: string;
|
|
45
79
|
};
|
|
80
|
+
full: {
|
|
81
|
+
base: string;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
padding: {
|
|
85
|
+
none: {
|
|
86
|
+
base: string;
|
|
87
|
+
};
|
|
88
|
+
sm: {
|
|
89
|
+
base: string;
|
|
90
|
+
};
|
|
91
|
+
md: {};
|
|
46
92
|
};
|
|
47
93
|
}, {
|
|
48
94
|
base: string;
|
|
49
95
|
header: string;
|
|
96
|
+
headerStartContent: string;
|
|
97
|
+
heading: string;
|
|
98
|
+
title: string;
|
|
99
|
+
description: string;
|
|
50
100
|
headerEndContent: string;
|
|
51
101
|
content: string;
|
|
102
|
+
footer: string;
|
|
52
103
|
}>>;
|
|
@@ -3,18 +3,30 @@ export const widget = tv({
|
|
|
3
3
|
slots: {
|
|
4
4
|
base: 'fragment-widget',
|
|
5
5
|
header: 'fragment-widget__header',
|
|
6
|
+
headerStartContent: 'fragment-widget__header-start',
|
|
7
|
+
heading: 'fragment-widget__heading',
|
|
8
|
+
title: 'fragment-widget__title',
|
|
9
|
+
description: 'fragment-widget__description',
|
|
6
10
|
headerEndContent: 'fragment-widget__header-end',
|
|
7
11
|
content: 'fragment-widget__content',
|
|
12
|
+
footer: 'fragment-widget__footer',
|
|
8
13
|
},
|
|
9
14
|
variants: {
|
|
10
15
|
size: {
|
|
11
16
|
sm: { base: 'fragment-widget--sm' },
|
|
12
17
|
md: { base: 'fragment-widget--md' },
|
|
13
18
|
lg: { base: 'fragment-widget--lg' },
|
|
19
|
+
full: { base: 'fragment-widget--full' },
|
|
20
|
+
},
|
|
21
|
+
padding: {
|
|
22
|
+
none: { base: 'fragment-widget--flush' },
|
|
23
|
+
sm: { base: 'fragment-widget--padding-sm' },
|
|
24
|
+
md: {},
|
|
14
25
|
},
|
|
15
26
|
},
|
|
16
27
|
defaultVariants: {
|
|
17
28
|
size: 'sm',
|
|
29
|
+
padding: 'md',
|
|
18
30
|
},
|
|
19
31
|
});
|
|
20
32
|
//# sourceMappingURL=Widget.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.styles.js","sourceRoot":"","sources":["../../src/fragments/widget/Widget.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,yBAAyB;QACjC,gBAAgB,EAAE,6BAA6B;QAC/C,OAAO,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"Widget.styles.js","sourceRoot":"","sources":["../../src/fragments/widget/Widget.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,yBAAyB;QACjC,kBAAkB,EAAE,+BAA+B;QACnD,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,8BAA8B;QAC3C,gBAAgB,EAAE,6BAA6B;QAC/C,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,yBAAyB;KAClC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACnC,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACnC,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACnC,IAAI,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;SACxC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACxC,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;YAC3C,EAAE,EAAE,EAAE;SACP;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC"}
|
|
@@ -1,18 +1,60 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
.fragment-widget {
|
|
3
|
-
@apply
|
|
3
|
+
@apply p-5 gap-4 min-w-0;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
/* Wraps, so a long title and its controls share the row when they fit and stack when they do not. */
|
|
6
7
|
.fragment-widget__header {
|
|
7
|
-
@apply p-0;
|
|
8
|
+
@apply p-0 flex flex-row flex-wrap items-start gap-3;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.fragment-widget__header-start {
|
|
12
|
+
@apply shrink-0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.fragment-widget__heading {
|
|
16
|
+
@apply min-w-48 flex-1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fragment-widget__title {
|
|
20
|
+
@apply text-sm font-semibold;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.fragment-widget__description {
|
|
24
|
+
@apply mt-0.5 text-xs text-muted;
|
|
8
25
|
}
|
|
9
26
|
|
|
10
27
|
.fragment-widget__header-end {
|
|
11
|
-
@apply ml-auto;
|
|
28
|
+
@apply ml-auto flex items-center gap-2 shrink-0;
|
|
12
29
|
}
|
|
13
30
|
|
|
14
31
|
.fragment-widget__content {
|
|
15
|
-
@apply p-0 overflow-visible;
|
|
32
|
+
@apply p-0 overflow-visible min-w-0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.fragment-widget__footer {
|
|
36
|
+
@apply -mx-5 -mb-5 mt-auto px-5 py-3 border-t border-separator text-xs text-muted;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.fragment-widget--padding-sm {
|
|
40
|
+
@apply p-4 gap-3;
|
|
41
|
+
|
|
42
|
+
.fragment-widget__footer {
|
|
43
|
+
@apply -mx-4 -mb-4 px-4;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Edge-to-edge content: the header keeps its inset, the body does not. */
|
|
48
|
+
.fragment-widget--flush {
|
|
49
|
+
@apply p-0 gap-0;
|
|
50
|
+
|
|
51
|
+
.fragment-widget__header {
|
|
52
|
+
@apply px-5 pt-5 pb-4;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.fragment-widget__footer {
|
|
56
|
+
@apply mx-0 mb-0;
|
|
57
|
+
}
|
|
16
58
|
}
|
|
17
59
|
|
|
18
60
|
.fragment-widget--sm {
|
|
@@ -26,4 +68,8 @@
|
|
|
26
68
|
.fragment-widget--lg {
|
|
27
69
|
@apply col-span-1 lg:col-span-2 2xl:col-span-3;
|
|
28
70
|
}
|
|
71
|
+
|
|
72
|
+
.fragment-widget--full {
|
|
73
|
+
@apply col-span-full;
|
|
74
|
+
}
|
|
29
75
|
}
|