@almadar/ui 5.3.1 → 5.5.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/dist/avl/index.cjs +341 -165
- package/dist/avl/index.js +341 -165
- package/dist/components/atoms/Card.d.ts +7 -0
- package/dist/components/index.cjs +341 -165
- package/dist/components/index.js +341 -165
- package/dist/components/molecules/ButtonGroup.d.ts +10 -0
- package/dist/components/molecules/DataGrid.d.ts +5 -0
- package/dist/components/molecules/DataList.d.ts +5 -0
- package/dist/components/molecules/EmptyState.d.ts +3 -0
- package/dist/components/molecules/FilterGroup.d.ts +7 -0
- package/dist/components/molecules/Modal.d.ts +7 -0
- package/dist/components/molecules/StatDisplay.d.ts +3 -0
- package/dist/components/organisms/Chart.d.ts +20 -1
- package/dist/components/organisms/DataTable.d.ts +4 -1
- package/dist/components/organisms/Header.d.ts +3 -0
- package/dist/components/organisms/Timeline.d.ts +7 -0
- package/dist/docs/index.cjs +11 -0
- package/dist/docs/index.d.cts +7 -0
- package/dist/docs/index.js +11 -0
- package/dist/marketing/index.cjs +11 -0
- package/dist/marketing/index.d.cts +7 -0
- package/dist/marketing/index.js +11 -0
- package/dist/providers/index.cjs +341 -165
- package/dist/providers/index.js +341 -165
- package/dist/runtime/index.cjs +341 -165
- package/dist/runtime/index.js +341 -165
- package/package.json +1 -1
package/dist/avl/index.cjs
CHANGED
|
@@ -6770,7 +6770,7 @@ var init_Overlay = __esm({
|
|
|
6770
6770
|
};
|
|
6771
6771
|
}
|
|
6772
6772
|
});
|
|
6773
|
-
var sizeClasses2, minWidthClasses, Modal;
|
|
6773
|
+
var sizeClasses2, minWidthClasses, lookStyles, Modal;
|
|
6774
6774
|
var init_Modal = __esm({
|
|
6775
6775
|
"components/molecules/Modal.tsx"() {
|
|
6776
6776
|
"use client";
|
|
@@ -6795,6 +6795,12 @@ var init_Modal = __esm({
|
|
|
6795
6795
|
xl: "min-w-[700px] max-sm:min-w-0",
|
|
6796
6796
|
full: "min-w-0"
|
|
6797
6797
|
};
|
|
6798
|
+
lookStyles = {
|
|
6799
|
+
"centered-card": "",
|
|
6800
|
+
"top-sheet": "top-0 rounded-t-none rounded-b-container max-w-full w-full",
|
|
6801
|
+
"side-drawer": "right-0 top-0 bottom-0 h-full rounded-l-container rounded-r-none w-[400px] max-w-full",
|
|
6802
|
+
"full-screen": "inset-0 rounded-none w-full h-full max-w-full"
|
|
6803
|
+
};
|
|
6798
6804
|
Modal = ({
|
|
6799
6805
|
isOpen = true,
|
|
6800
6806
|
onClose = () => {
|
|
@@ -6808,7 +6814,8 @@ var init_Modal = __esm({
|
|
|
6808
6814
|
closeOnEscape = true,
|
|
6809
6815
|
className,
|
|
6810
6816
|
closeEvent,
|
|
6811
|
-
swipeDownToClose = true
|
|
6817
|
+
swipeDownToClose = true,
|
|
6818
|
+
look = "centered-card"
|
|
6812
6819
|
}) => {
|
|
6813
6820
|
const eventBus = useEventBus();
|
|
6814
6821
|
const modalRef = React98.useRef(null);
|
|
@@ -6893,6 +6900,7 @@ var init_Modal = __esm({
|
|
|
6893
6900
|
// Mobile: take the entire screen. Override desktop max-w cap,
|
|
6894
6901
|
// full height, no rounded corners, no min-width.
|
|
6895
6902
|
"max-sm:max-w-none max-sm:max-h-none max-sm:w-full max-sm:h-full max-sm:rounded-none",
|
|
6903
|
+
lookStyles[look],
|
|
6896
6904
|
className
|
|
6897
6905
|
),
|
|
6898
6906
|
style: dragY > 0 ? {
|
|
@@ -8467,7 +8475,7 @@ var init_Checkbox = __esm({
|
|
|
8467
8475
|
Checkbox.displayName = "Checkbox";
|
|
8468
8476
|
}
|
|
8469
8477
|
});
|
|
8470
|
-
var variantStyles4, paddingStyles2, shadowStyles2, Card, CardHeader, CardTitle, CardContent, CardBody, CardFooter;
|
|
8478
|
+
var variantStyles4, paddingStyles2, shadowStyles2, lookStyles2, Card, CardHeader, CardTitle, CardContent, CardBody, CardFooter;
|
|
8471
8479
|
var init_Card = __esm({
|
|
8472
8480
|
"components/atoms/Card.tsx"() {
|
|
8473
8481
|
init_cn();
|
|
@@ -8515,6 +8523,15 @@ var init_Card = __esm({
|
|
|
8515
8523
|
md: "shadow",
|
|
8516
8524
|
lg: "shadow-elevation-dialog"
|
|
8517
8525
|
};
|
|
8526
|
+
lookStyles2 = {
|
|
8527
|
+
elevated: "",
|
|
8528
|
+
"flat-bordered": "shadow-none border-[length:var(--border-width)] border-border",
|
|
8529
|
+
"borderless-divider": "shadow-none border-0 border-b border-border rounded-none",
|
|
8530
|
+
ticket: "shadow-none border-dashed border-[length:var(--border-width)] border-border",
|
|
8531
|
+
invoice: "shadow-none border-[length:var(--border-width-thick)] border-border rounded-sm",
|
|
8532
|
+
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
8533
|
+
"tile-image-first": "p-0 overflow-hidden"
|
|
8534
|
+
};
|
|
8518
8535
|
Card = React98__namespace.default.forwardRef(
|
|
8519
8536
|
({
|
|
8520
8537
|
className,
|
|
@@ -8523,6 +8540,7 @@ var init_Card = __esm({
|
|
|
8523
8540
|
title,
|
|
8524
8541
|
subtitle,
|
|
8525
8542
|
shadow,
|
|
8543
|
+
look = "elevated",
|
|
8526
8544
|
children,
|
|
8527
8545
|
...props
|
|
8528
8546
|
}, ref) => {
|
|
@@ -8535,6 +8553,7 @@ var init_Card = __esm({
|
|
|
8535
8553
|
"transition-all duration-[var(--transition-normal)]",
|
|
8536
8554
|
variantStyles4[variant],
|
|
8537
8555
|
paddingStyles2[padding],
|
|
8556
|
+
lookStyles2[look],
|
|
8538
8557
|
shadow && shadowStyles2[shadow],
|
|
8539
8558
|
className
|
|
8540
8559
|
),
|
|
@@ -19920,7 +19939,7 @@ var init_BookTableOfContents = __esm({
|
|
|
19920
19939
|
BookTableOfContents.displayName = "BookTableOfContents";
|
|
19921
19940
|
}
|
|
19922
19941
|
});
|
|
19923
|
-
var ICON_NAME_ALIASES, EmptyState;
|
|
19942
|
+
var ICON_NAME_ALIASES, lookStyles3, EmptyState;
|
|
19924
19943
|
var init_EmptyState = __esm({
|
|
19925
19944
|
"components/molecules/EmptyState.tsx"() {
|
|
19926
19945
|
"use client";
|
|
@@ -19937,6 +19956,12 @@ var init_EmptyState = __esm({
|
|
|
19937
19956
|
error: "x-circle",
|
|
19938
19957
|
warning: "alert-circle"
|
|
19939
19958
|
};
|
|
19959
|
+
lookStyles3 = {
|
|
19960
|
+
"icon-only": "",
|
|
19961
|
+
illustrated: "[&_svg]:w-32 [&_svg]:h-32",
|
|
19962
|
+
"text-only": "[&_svg]:hidden",
|
|
19963
|
+
mascot: "[&_svg]:w-24 [&_svg]:h-24 [&_svg]:rounded-pill"
|
|
19964
|
+
};
|
|
19940
19965
|
EmptyState = ({
|
|
19941
19966
|
icon,
|
|
19942
19967
|
title,
|
|
@@ -19947,7 +19972,8 @@ var init_EmptyState = __esm({
|
|
|
19947
19972
|
className,
|
|
19948
19973
|
destructive,
|
|
19949
19974
|
variant,
|
|
19950
|
-
actionEvent
|
|
19975
|
+
actionEvent,
|
|
19976
|
+
look = "icon-only"
|
|
19951
19977
|
}) => {
|
|
19952
19978
|
const eventBus = useEventBus();
|
|
19953
19979
|
const { t } = useTranslate();
|
|
@@ -19967,6 +19993,7 @@ var init_EmptyState = __esm({
|
|
|
19967
19993
|
align: "center",
|
|
19968
19994
|
className: cn(
|
|
19969
19995
|
"justify-center py-12 text-center",
|
|
19996
|
+
lookStyles3[look],
|
|
19970
19997
|
className
|
|
19971
19998
|
),
|
|
19972
19999
|
children: [
|
|
@@ -21207,7 +21234,7 @@ function useSafeEventBus2() {
|
|
|
21207
21234
|
} };
|
|
21208
21235
|
}
|
|
21209
21236
|
}
|
|
21210
|
-
var log9, ButtonGroup;
|
|
21237
|
+
var log9, lookStyles4, ButtonGroup;
|
|
21211
21238
|
var init_ButtonGroup = __esm({
|
|
21212
21239
|
"components/molecules/ButtonGroup.tsx"() {
|
|
21213
21240
|
"use client";
|
|
@@ -21215,6 +21242,13 @@ var init_ButtonGroup = __esm({
|
|
|
21215
21242
|
init_atoms();
|
|
21216
21243
|
init_useEventBus();
|
|
21217
21244
|
log9 = logger.createLogger("almadar:ui:button-group");
|
|
21245
|
+
lookStyles4 = {
|
|
21246
|
+
"right-aligned-buttons": "",
|
|
21247
|
+
"floating-bar": "fixed bottom-section left-1/2 -translate-x-1/2 shadow-elevation-toast bg-card p-card-sm rounded-container",
|
|
21248
|
+
"inline-row": "gap-2 inline-flex",
|
|
21249
|
+
"dropdown-menu": "[&>button:not(:first-child)]:hidden",
|
|
21250
|
+
"command-palette-trigger": "[&>button:not(:first-child)]:hidden"
|
|
21251
|
+
};
|
|
21218
21252
|
ButtonGroup = ({
|
|
21219
21253
|
children,
|
|
21220
21254
|
primary,
|
|
@@ -21224,7 +21258,8 @@ var init_ButtonGroup = __esm({
|
|
|
21224
21258
|
className,
|
|
21225
21259
|
// Filter-group pattern props (entity and filters are used for schema-driven filtering)
|
|
21226
21260
|
entity: _entity,
|
|
21227
|
-
filters
|
|
21261
|
+
filters,
|
|
21262
|
+
look = "right-aligned-buttons"
|
|
21228
21263
|
}) => {
|
|
21229
21264
|
const eventBus = useSafeEventBus2();
|
|
21230
21265
|
const variantClasses2 = {
|
|
@@ -21301,6 +21336,7 @@ var init_ButtonGroup = __esm({
|
|
|
21301
21336
|
"inline-flex gap-2",
|
|
21302
21337
|
variantClasses2[variant],
|
|
21303
21338
|
orientationClasses[orientation],
|
|
21339
|
+
lookStyles4[look],
|
|
21304
21340
|
className
|
|
21305
21341
|
),
|
|
21306
21342
|
role: "group",
|
|
@@ -23832,7 +23868,7 @@ var init_CastleTemplate = __esm({
|
|
|
23832
23868
|
CastleTemplate.displayName = "CastleTemplate";
|
|
23833
23869
|
}
|
|
23834
23870
|
});
|
|
23835
|
-
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart, Chart;
|
|
23871
|
+
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart, LOOK_FROM_CHART_TYPE, Chart;
|
|
23836
23872
|
var init_Chart = __esm({
|
|
23837
23873
|
"components/organisms/Chart.tsx"() {
|
|
23838
23874
|
"use client";
|
|
@@ -23862,7 +23898,7 @@ var init_Chart = __esm({
|
|
|
23862
23898
|
if (Number.isNaN(parsed.getTime())) return raw;
|
|
23863
23899
|
return monthFormatter.format(parsed);
|
|
23864
23900
|
};
|
|
23865
|
-
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, onPointClick }) => {
|
|
23901
|
+
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, horizontal = false, onPointClick }) => {
|
|
23866
23902
|
const categories = React98.useMemo(() => {
|
|
23867
23903
|
const set = [];
|
|
23868
23904
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -23900,6 +23936,64 @@ var init_Chart = __esm({
|
|
|
23900
23936
|
}
|
|
23901
23937
|
return m;
|
|
23902
23938
|
}, [series, stack, columnTotals]);
|
|
23939
|
+
if (horizontal) {
|
|
23940
|
+
return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "xs", align: "stretch", className: "w-full", style: { minHeight: height }, children: categories.map((label, catIdx) => {
|
|
23941
|
+
const displayLabel = timeAxis ? formatTimeLabel(label) : label;
|
|
23942
|
+
const total = columnTotals?.[catIdx] ?? 1;
|
|
23943
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "center", className: "w-full", children: [
|
|
23944
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23945
|
+
Typography,
|
|
23946
|
+
{
|
|
23947
|
+
variant: "caption",
|
|
23948
|
+
color: "secondary",
|
|
23949
|
+
className: "truncate text-right",
|
|
23950
|
+
style: { width: 80, flexShrink: 0 },
|
|
23951
|
+
children: displayLabel
|
|
23952
|
+
}
|
|
23953
|
+
),
|
|
23954
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23955
|
+
HStack,
|
|
23956
|
+
{
|
|
23957
|
+
gap: stack === "none" ? "xs" : "none",
|
|
23958
|
+
align: "center",
|
|
23959
|
+
className: "flex-1 min-w-0",
|
|
23960
|
+
style: { height: 24 },
|
|
23961
|
+
children: series.map((s, sIdx) => {
|
|
23962
|
+
const value = valueAt(s, label);
|
|
23963
|
+
const ratio = stack === "normalize" ? total === 0 ? 0 : value / total * 100 : value / maxValue * 100;
|
|
23964
|
+
const color = seriesColor(s, sIdx);
|
|
23965
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23966
|
+
Box,
|
|
23967
|
+
{
|
|
23968
|
+
className: "h-full rounded-r-sm transition-all duration-500 ease-out min-w-[2px] cursor-pointer hover:opacity-80",
|
|
23969
|
+
style: {
|
|
23970
|
+
width: `${ratio}%`,
|
|
23971
|
+
backgroundColor: color
|
|
23972
|
+
},
|
|
23973
|
+
onClick: () => onPointClick?.(
|
|
23974
|
+
{ label, value, color },
|
|
23975
|
+
s.name
|
|
23976
|
+
),
|
|
23977
|
+
title: `${s.name}: ${value}`
|
|
23978
|
+
},
|
|
23979
|
+
s.name
|
|
23980
|
+
);
|
|
23981
|
+
})
|
|
23982
|
+
}
|
|
23983
|
+
),
|
|
23984
|
+
showValues && series.length === 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
23985
|
+
Typography,
|
|
23986
|
+
{
|
|
23987
|
+
variant: "caption",
|
|
23988
|
+
color: "secondary",
|
|
23989
|
+
className: "tabular-nums",
|
|
23990
|
+
style: { width: 40, flexShrink: 0 },
|
|
23991
|
+
children: valueAt(series[0], label)
|
|
23992
|
+
}
|
|
23993
|
+
)
|
|
23994
|
+
] }, label);
|
|
23995
|
+
}) });
|
|
23996
|
+
}
|
|
23903
23997
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23904
23998
|
HStack,
|
|
23905
23999
|
{
|
|
@@ -24327,10 +24421,20 @@ var init_Chart = __esm({
|
|
|
24327
24421
|
}
|
|
24328
24422
|
);
|
|
24329
24423
|
};
|
|
24424
|
+
LOOK_FROM_CHART_TYPE = {
|
|
24425
|
+
bar: "bar-vertical",
|
|
24426
|
+
line: "line",
|
|
24427
|
+
pie: "pie",
|
|
24428
|
+
area: "area",
|
|
24429
|
+
donut: "donut",
|
|
24430
|
+
scatter: "scatter",
|
|
24431
|
+
histogram: "histogram"
|
|
24432
|
+
};
|
|
24330
24433
|
Chart = ({
|
|
24331
24434
|
title,
|
|
24332
24435
|
subtitle,
|
|
24333
|
-
chartType
|
|
24436
|
+
chartType,
|
|
24437
|
+
look,
|
|
24334
24438
|
series,
|
|
24335
24439
|
data: simpleData,
|
|
24336
24440
|
scatterData,
|
|
@@ -24346,6 +24450,7 @@ var init_Chart = __esm({
|
|
|
24346
24450
|
error,
|
|
24347
24451
|
className
|
|
24348
24452
|
}) => {
|
|
24453
|
+
const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
|
|
24349
24454
|
const eventBus = useEventBus();
|
|
24350
24455
|
const { t } = useTranslate();
|
|
24351
24456
|
const handleAction = React98.useCallback(
|
|
@@ -24374,7 +24479,7 @@ var init_Chart = __esm({
|
|
|
24374
24479
|
return [];
|
|
24375
24480
|
}, [simpleData, series]);
|
|
24376
24481
|
const firstSeriesData = normalizedSeries[0]?.data ?? [];
|
|
24377
|
-
const hasContent =
|
|
24482
|
+
const hasContent = resolvedLook === "scatter" ? (scatterData?.length ?? 0) > 0 : normalizedSeries.some((s) => s.data.length > 0);
|
|
24378
24483
|
if (isLoading) {
|
|
24379
24484
|
return /* @__PURE__ */ jsxRuntime.jsx(LoadingState, { message: "Loading chart...", className });
|
|
24380
24485
|
}
|
|
@@ -24409,7 +24514,7 @@ var init_Chart = __esm({
|
|
|
24409
24514
|
)) })
|
|
24410
24515
|
] }),
|
|
24411
24516
|
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "w-full", children: [
|
|
24412
|
-
|
|
24517
|
+
resolvedLook === "bar-vertical" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24413
24518
|
BarChart,
|
|
24414
24519
|
{
|
|
24415
24520
|
series: normalizedSeries,
|
|
@@ -24420,7 +24525,19 @@ var init_Chart = __esm({
|
|
|
24420
24525
|
onPointClick: handlePointClick
|
|
24421
24526
|
}
|
|
24422
24527
|
),
|
|
24423
|
-
|
|
24528
|
+
resolvedLook === "bar-horizontal" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24529
|
+
BarChart,
|
|
24530
|
+
{
|
|
24531
|
+
series: normalizedSeries,
|
|
24532
|
+
height,
|
|
24533
|
+
showValues,
|
|
24534
|
+
stack,
|
|
24535
|
+
timeAxis,
|
|
24536
|
+
horizontal: true,
|
|
24537
|
+
onPointClick: handlePointClick
|
|
24538
|
+
}
|
|
24539
|
+
),
|
|
24540
|
+
resolvedLook === "histogram" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24424
24541
|
BarChart,
|
|
24425
24542
|
{
|
|
24426
24543
|
series: normalizedSeries,
|
|
@@ -24432,7 +24549,7 @@ var init_Chart = __esm({
|
|
|
24432
24549
|
onPointClick: handlePointClick
|
|
24433
24550
|
}
|
|
24434
24551
|
),
|
|
24435
|
-
|
|
24552
|
+
resolvedLook === "line" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24436
24553
|
LineChart,
|
|
24437
24554
|
{
|
|
24438
24555
|
series: normalizedSeries,
|
|
@@ -24442,7 +24559,7 @@ var init_Chart = __esm({
|
|
|
24442
24559
|
onPointClick: handlePointClick
|
|
24443
24560
|
}
|
|
24444
24561
|
),
|
|
24445
|
-
|
|
24562
|
+
resolvedLook === "area" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24446
24563
|
LineChart,
|
|
24447
24564
|
{
|
|
24448
24565
|
series: normalizedSeries,
|
|
@@ -24453,7 +24570,7 @@ var init_Chart = __esm({
|
|
|
24453
24570
|
onPointClick: handlePointClick
|
|
24454
24571
|
}
|
|
24455
24572
|
),
|
|
24456
|
-
|
|
24573
|
+
resolvedLook === "pie" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24457
24574
|
PieChart,
|
|
24458
24575
|
{
|
|
24459
24576
|
data: firstSeriesData,
|
|
@@ -24462,7 +24579,7 @@ var init_Chart = __esm({
|
|
|
24462
24579
|
onPointClick: handlePointClick
|
|
24463
24580
|
}
|
|
24464
24581
|
),
|
|
24465
|
-
|
|
24582
|
+
resolvedLook === "donut" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24466
24583
|
PieChart,
|
|
24467
24584
|
{
|
|
24468
24585
|
data: firstSeriesData,
|
|
@@ -24472,7 +24589,7 @@ var init_Chart = __esm({
|
|
|
24472
24589
|
onPointClick: handlePointClick
|
|
24473
24590
|
}
|
|
24474
24591
|
),
|
|
24475
|
-
|
|
24592
|
+
resolvedLook === "scatter" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24476
24593
|
ScatterChart,
|
|
24477
24594
|
{
|
|
24478
24595
|
data: scatterData ?? [],
|
|
@@ -27895,7 +28012,7 @@ var init_useQuerySingleton = __esm({
|
|
|
27895
28012
|
queryStores = /* @__PURE__ */ new Map();
|
|
27896
28013
|
}
|
|
27897
28014
|
});
|
|
27898
|
-
var resolveFilterType, FilterGroup;
|
|
28015
|
+
var resolveFilterType, lookStyles5, FilterGroup;
|
|
27899
28016
|
var init_FilterGroup = __esm({
|
|
27900
28017
|
"components/molecules/FilterGroup.tsx"() {
|
|
27901
28018
|
"use client";
|
|
@@ -27909,6 +28026,13 @@ var init_FilterGroup = __esm({
|
|
|
27909
28026
|
init_useEventBus();
|
|
27910
28027
|
init_useQuerySingleton();
|
|
27911
28028
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
28029
|
+
lookStyles5 = {
|
|
28030
|
+
toolbar: "",
|
|
28031
|
+
chips: "gap-2 [&>*]:rounded-pill [&>*]:px-3 [&>*]:py-1",
|
|
28032
|
+
pills: "gap-2 [&>*]:rounded-pill",
|
|
28033
|
+
"popover-trigger": "[&>*:not(:first-child)]:hidden",
|
|
28034
|
+
"inline-column-header": "hidden"
|
|
28035
|
+
};
|
|
27912
28036
|
FilterGroup = ({
|
|
27913
28037
|
entity,
|
|
27914
28038
|
filters,
|
|
@@ -27918,7 +28042,8 @@ var init_FilterGroup = __esm({
|
|
|
27918
28042
|
variant = "default",
|
|
27919
28043
|
showIcon = true,
|
|
27920
28044
|
query,
|
|
27921
|
-
isLoading
|
|
28045
|
+
isLoading,
|
|
28046
|
+
look = "toolbar"
|
|
27922
28047
|
}) => {
|
|
27923
28048
|
const eventBus = useEventBus();
|
|
27924
28049
|
const queryState = useQuerySingleton(query);
|
|
@@ -27973,63 +28098,71 @@ var init_FilterGroup = __esm({
|
|
|
27973
28098
|
}, [onClearAll, queryState, eventBus, entity, query]);
|
|
27974
28099
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
27975
28100
|
if (variant === "pills") {
|
|
27976
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27977
|
-
|
|
27978
|
-
|
|
27979
|
-
|
|
27980
|
-
|
|
27981
|
-
|
|
27982
|
-
|
|
27983
|
-
|
|
27984
|
-
HStack,
|
|
27985
|
-
|
|
27986
|
-
|
|
27987
|
-
|
|
27988
|
-
|
|
27989
|
-
|
|
27990
|
-
|
|
27991
|
-
|
|
27992
|
-
|
|
27993
|
-
|
|
27994
|
-
|
|
27995
|
-
|
|
27996
|
-
|
|
27997
|
-
|
|
27998
|
-
|
|
27999
|
-
|
|
28000
|
-
|
|
28001
|
-
|
|
28002
|
-
|
|
28003
|
-
|
|
28004
|
-
|
|
28005
|
-
|
|
28006
|
-
className: cn(
|
|
28007
|
-
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
28008
|
-
"border-l-[length:var(--border-width)] border-border",
|
|
28009
|
-
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
28101
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28102
|
+
HStack,
|
|
28103
|
+
{
|
|
28104
|
+
gap: "md",
|
|
28105
|
+
align: "center",
|
|
28106
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
28107
|
+
children: [
|
|
28108
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
28109
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
28110
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-medium text-muted-foreground", children: [
|
|
28111
|
+
filter.label,
|
|
28112
|
+
":"
|
|
28113
|
+
] }),
|
|
28114
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
28115
|
+
HStack,
|
|
28116
|
+
{
|
|
28117
|
+
gap: "none",
|
|
28118
|
+
className: "rounded-sm overflow-hidden border-[length:var(--border-width)] border-border",
|
|
28119
|
+
children: [
|
|
28120
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28121
|
+
"button",
|
|
28122
|
+
{
|
|
28123
|
+
type: "button",
|
|
28124
|
+
onClick: () => handleFilterSelect(filter.field, null),
|
|
28125
|
+
className: cn(
|
|
28126
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
28127
|
+
!selectedValues[filter.field] ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
28128
|
+
),
|
|
28129
|
+
children: "All"
|
|
28130
|
+
}
|
|
28010
28131
|
),
|
|
28011
|
-
|
|
28012
|
-
|
|
28013
|
-
|
|
28014
|
-
|
|
28015
|
-
|
|
28016
|
-
|
|
28017
|
-
|
|
28018
|
-
|
|
28019
|
-
|
|
28020
|
-
|
|
28021
|
-
|
|
28022
|
-
|
|
28023
|
-
|
|
28024
|
-
|
|
28025
|
-
|
|
28026
|
-
|
|
28027
|
-
|
|
28028
|
-
|
|
28029
|
-
|
|
28132
|
+
filter.options?.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
28133
|
+
"button",
|
|
28134
|
+
{
|
|
28135
|
+
type: "button",
|
|
28136
|
+
onClick: () => handleFilterSelect(filter.field, option),
|
|
28137
|
+
className: cn(
|
|
28138
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
28139
|
+
"border-l-[length:var(--border-width)] border-border",
|
|
28140
|
+
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
28141
|
+
),
|
|
28142
|
+
children: option
|
|
28143
|
+
},
|
|
28144
|
+
option
|
|
28145
|
+
))
|
|
28146
|
+
]
|
|
28147
|
+
}
|
|
28148
|
+
)
|
|
28149
|
+
] }, filter.field)),
|
|
28150
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
28151
|
+
Button,
|
|
28152
|
+
{
|
|
28153
|
+
variant: "ghost",
|
|
28154
|
+
size: "sm",
|
|
28155
|
+
onClick: handleClearAll,
|
|
28156
|
+
leftIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
28157
|
+
children: "Clear"
|
|
28158
|
+
}
|
|
28159
|
+
)
|
|
28160
|
+
]
|
|
28161
|
+
}
|
|
28162
|
+
);
|
|
28030
28163
|
}
|
|
28031
28164
|
if (variant === "vertical") {
|
|
28032
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
28165
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", lookStyles5[look], className), children: [
|
|
28033
28166
|
showIcon && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
28034
28167
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
28035
28168
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: "Filters" })
|
|
@@ -28112,92 +28245,100 @@ var init_FilterGroup = __esm({
|
|
|
28112
28245
|
] });
|
|
28113
28246
|
}
|
|
28114
28247
|
if (variant === "compact") {
|
|
28115
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28116
|
-
|
|
28117
|
-
|
|
28118
|
-
|
|
28119
|
-
|
|
28120
|
-
|
|
28121
|
-
|
|
28122
|
-
|
|
28123
|
-
|
|
28124
|
-
|
|
28125
|
-
|
|
28126
|
-
|
|
28127
|
-
|
|
28128
|
-
|
|
28129
|
-
|
|
28130
|
-
|
|
28131
|
-
|
|
28132
|
-
|
|
28133
|
-
|
|
28134
|
-
|
|
28135
|
-
|
|
28136
|
-
|
|
28137
|
-
|
|
28138
|
-
|
|
28139
|
-
|
|
28140
|
-
|
|
28141
|
-
|
|
28142
|
-
|
|
28143
|
-
|
|
28144
|
-
|
|
28145
|
-
value: selectedValues[`${filter.field}_to`] || "",
|
|
28146
|
-
onChange: (e) => handleFilterSelect(
|
|
28147
|
-
`${filter.field}_to`,
|
|
28148
|
-
e.target.value || null
|
|
28248
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28249
|
+
HStack,
|
|
28250
|
+
{
|
|
28251
|
+
gap: "sm",
|
|
28252
|
+
align: "center",
|
|
28253
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
28254
|
+
children: [
|
|
28255
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
28256
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
28257
|
+
Input,
|
|
28258
|
+
{
|
|
28259
|
+
type: "date",
|
|
28260
|
+
value: selectedValues[filter.field] || "",
|
|
28261
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
28262
|
+
clearable: true,
|
|
28263
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
28264
|
+
className: "text-sm"
|
|
28265
|
+
}
|
|
28266
|
+
) : resolveFilterType(filter) === "daterange" || resolveFilterType(filter) === "date-range" ? /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
28267
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28268
|
+
Input,
|
|
28269
|
+
{
|
|
28270
|
+
type: "date",
|
|
28271
|
+
value: selectedValues[`${filter.field}_from`] || "",
|
|
28272
|
+
onChange: (e) => handleFilterSelect(
|
|
28273
|
+
`${filter.field}_from`,
|
|
28274
|
+
e.target.value || null
|
|
28275
|
+
),
|
|
28276
|
+
className: "text-sm min-w-[100px]"
|
|
28277
|
+
}
|
|
28149
28278
|
),
|
|
28150
|
-
className: "text-
|
|
28151
|
-
|
|
28152
|
-
|
|
28153
|
-
|
|
28154
|
-
|
|
28155
|
-
|
|
28156
|
-
|
|
28157
|
-
|
|
28158
|
-
|
|
28159
|
-
|
|
28160
|
-
|
|
28161
|
-
|
|
28162
|
-
|
|
28163
|
-
|
|
28164
|
-
|
|
28165
|
-
{
|
|
28166
|
-
value: selectedValues[filter.field] || "all",
|
|
28167
|
-
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
28168
|
-
options: [
|
|
28169
|
-
{ value: "all", label: `All ${filter.label}` },
|
|
28170
|
-
...filter.options?.map((opt) => ({
|
|
28171
|
-
value: opt,
|
|
28172
|
-
label: opt
|
|
28173
|
-
})) || []
|
|
28174
|
-
],
|
|
28175
|
-
className: "text-sm"
|
|
28176
|
-
}
|
|
28177
|
-
) }, filter.field)),
|
|
28178
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
28179
|
-
Object.entries(selectedValues).map(([field, value]) => {
|
|
28180
|
-
const filterDef = filters.find((f3) => f3.field === field);
|
|
28181
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28182
|
-
Badge,
|
|
28279
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "-" }),
|
|
28280
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28281
|
+
Input,
|
|
28282
|
+
{
|
|
28283
|
+
type: "date",
|
|
28284
|
+
value: selectedValues[`${filter.field}_to`] || "",
|
|
28285
|
+
onChange: (e) => handleFilterSelect(
|
|
28286
|
+
`${filter.field}_to`,
|
|
28287
|
+
e.target.value || null
|
|
28288
|
+
),
|
|
28289
|
+
className: "text-sm min-w-[100px]"
|
|
28290
|
+
}
|
|
28291
|
+
)
|
|
28292
|
+
] }) : resolveFilterType(filter) === "text" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
28293
|
+
Input,
|
|
28183
28294
|
{
|
|
28184
|
-
|
|
28185
|
-
|
|
28186
|
-
|
|
28187
|
-
|
|
28188
|
-
|
|
28189
|
-
|
|
28190
|
-
|
|
28191
|
-
|
|
28192
|
-
|
|
28193
|
-
|
|
28194
|
-
|
|
28195
|
-
|
|
28196
|
-
|
|
28197
|
-
|
|
28198
|
-
|
|
28199
|
-
|
|
28200
|
-
|
|
28295
|
+
value: selectedValues[filter.field] || "",
|
|
28296
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
28297
|
+
placeholder: filter.label,
|
|
28298
|
+
clearable: true,
|
|
28299
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
28300
|
+
className: "text-sm"
|
|
28301
|
+
}
|
|
28302
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
28303
|
+
Select,
|
|
28304
|
+
{
|
|
28305
|
+
value: selectedValues[filter.field] || "all",
|
|
28306
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
28307
|
+
options: [
|
|
28308
|
+
{ value: "all", label: `All ${filter.label}` },
|
|
28309
|
+
...filter.options?.map((opt) => ({
|
|
28310
|
+
value: opt,
|
|
28311
|
+
label: opt
|
|
28312
|
+
})) || []
|
|
28313
|
+
],
|
|
28314
|
+
className: "text-sm"
|
|
28315
|
+
}
|
|
28316
|
+
) }, filter.field)),
|
|
28317
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
28318
|
+
Object.entries(selectedValues).map(([field, value]) => {
|
|
28319
|
+
const filterDef = filters.find((f3) => f3.field === field);
|
|
28320
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28321
|
+
Badge,
|
|
28322
|
+
{
|
|
28323
|
+
variant: "primary",
|
|
28324
|
+
size: "md",
|
|
28325
|
+
className: "cursor-pointer",
|
|
28326
|
+
onClick: () => handleFilterSelect(field, null),
|
|
28327
|
+
children: [
|
|
28328
|
+
filterDef?.label,
|
|
28329
|
+
": ",
|
|
28330
|
+
value,
|
|
28331
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
28332
|
+
]
|
|
28333
|
+
},
|
|
28334
|
+
field
|
|
28335
|
+
);
|
|
28336
|
+
}),
|
|
28337
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: handleClearAll, children: "Clear all" })
|
|
28338
|
+
] })
|
|
28339
|
+
]
|
|
28340
|
+
}
|
|
28341
|
+
);
|
|
28201
28342
|
}
|
|
28202
28343
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28203
28344
|
"div",
|
|
@@ -28206,6 +28347,7 @@ var init_FilterGroup = __esm({
|
|
|
28206
28347
|
"p-4 rounded-container",
|
|
28207
28348
|
"bg-card",
|
|
28208
28349
|
"border-[length:var(--border-width)] border-border",
|
|
28350
|
+
lookStyles5[look],
|
|
28209
28351
|
className
|
|
28210
28352
|
),
|
|
28211
28353
|
children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "md", align: "center", className: "flex-wrap", children: [
|
|
@@ -32679,7 +32821,7 @@ function composeDisplayValue(value, format, max, prefix, suffix) {
|
|
|
32679
32821
|
const withMax = max != null && max > 0 ? `${formatted} / ${max}` : formatted;
|
|
32680
32822
|
return `${prefix ?? ""}${withMax}${suffix ?? ""}`;
|
|
32681
32823
|
}
|
|
32682
|
-
var variantColor, StatDisplay;
|
|
32824
|
+
var lookStyles6, variantColor, StatDisplay;
|
|
32683
32825
|
var init_StatDisplay = __esm({
|
|
32684
32826
|
"components/molecules/StatDisplay.tsx"() {
|
|
32685
32827
|
"use client";
|
|
@@ -32691,6 +32833,13 @@ var init_StatDisplay = __esm({
|
|
|
32691
32833
|
init_Sparkline();
|
|
32692
32834
|
init_Icon();
|
|
32693
32835
|
init_useEventBus();
|
|
32836
|
+
lookStyles6 = {
|
|
32837
|
+
elevated: "",
|
|
32838
|
+
flat: "shadow-none border-[length:var(--border-width)] border-border",
|
|
32839
|
+
"progress-backed": "",
|
|
32840
|
+
gauge: "",
|
|
32841
|
+
sparkline: ""
|
|
32842
|
+
};
|
|
32694
32843
|
variantColor = {
|
|
32695
32844
|
default: "text-foreground",
|
|
32696
32845
|
primary: "text-primary",
|
|
@@ -32718,6 +32867,7 @@ var init_StatDisplay = __esm({
|
|
|
32718
32867
|
size = "md",
|
|
32719
32868
|
variant = "default",
|
|
32720
32869
|
compact = false,
|
|
32870
|
+
look = "elevated",
|
|
32721
32871
|
className,
|
|
32722
32872
|
isLoading = false,
|
|
32723
32873
|
error = null
|
|
@@ -32770,7 +32920,7 @@ var init_StatDisplay = __esm({
|
|
|
32770
32920
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32771
32921
|
Card,
|
|
32772
32922
|
{
|
|
32773
|
-
className: cn(padSizes[size], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
32923
|
+
className: cn(padSizes[size], lookStyles6[look], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
32774
32924
|
onClick: clickEvent ? handleClick : void 0,
|
|
32775
32925
|
children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { align: "start", justify: "between", children: [
|
|
32776
32926
|
/* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: "space-y-1 flex-1", children: [
|
|
@@ -37949,7 +38099,8 @@ function DataTable({
|
|
|
37949
38099
|
bulkActions,
|
|
37950
38100
|
headerActions,
|
|
37951
38101
|
showTotal = true,
|
|
37952
|
-
className
|
|
38102
|
+
className,
|
|
38103
|
+
look = "dense"
|
|
37953
38104
|
}) {
|
|
37954
38105
|
const [openActionMenu, setOpenActionMenu] = React98.useState(
|
|
37955
38106
|
null
|
|
@@ -38076,6 +38227,7 @@ function DataTable({
|
|
|
38076
38227
|
{
|
|
38077
38228
|
className: cn(
|
|
38078
38229
|
"bg-card border-2 border-border rounded-none overflow-hidden",
|
|
38230
|
+
lookStyles7[look],
|
|
38079
38231
|
className
|
|
38080
38232
|
),
|
|
38081
38233
|
children: [
|
|
@@ -38302,6 +38454,7 @@ function DataTable({
|
|
|
38302
38454
|
}
|
|
38303
38455
|
);
|
|
38304
38456
|
}
|
|
38457
|
+
var lookStyles7;
|
|
38305
38458
|
var init_DataTable = __esm({
|
|
38306
38459
|
"components/organisms/DataTable.tsx"() {
|
|
38307
38460
|
"use client";
|
|
@@ -38315,6 +38468,13 @@ var init_DataTable = __esm({
|
|
|
38315
38468
|
init_useEventBus();
|
|
38316
38469
|
init_useTranslate();
|
|
38317
38470
|
init_types3();
|
|
38471
|
+
lookStyles7 = {
|
|
38472
|
+
dense: "",
|
|
38473
|
+
spacious: "[&_tbody_tr_td]:py-5 [&_thead_tr_th]:py-4",
|
|
38474
|
+
striped: "[&_tbody_tr:nth-child(odd)]:bg-muted/30",
|
|
38475
|
+
borderless: "border-0 [&_thead]:border-b-0 [&_tbody_tr]:border-b-0 [&_tbody]:divide-y-0",
|
|
38476
|
+
"card-rows": "border-0 [&_tbody]:divide-y-0 [&_tbody_tr]:border-b-0 [&_tbody_tr]:shadow-elevation-card [&_tbody_tr]:rounded-container [&_tbody_tr]:bg-card [&_tbody]:[&_tr]:my-2"
|
|
38477
|
+
};
|
|
38318
38478
|
DataTable.displayName = "DataTable";
|
|
38319
38479
|
}
|
|
38320
38480
|
});
|
|
@@ -41473,7 +41633,7 @@ var init_GraphCanvas = __esm({
|
|
|
41473
41633
|
GraphCanvas.displayName = "GraphCanvas";
|
|
41474
41634
|
}
|
|
41475
41635
|
});
|
|
41476
|
-
var Header;
|
|
41636
|
+
var lookStyles8, Header;
|
|
41477
41637
|
var init_Header = __esm({
|
|
41478
41638
|
"components/organisms/Header.tsx"() {
|
|
41479
41639
|
"use client";
|
|
@@ -41486,6 +41646,13 @@ var init_Header = __esm({
|
|
|
41486
41646
|
init_Typography();
|
|
41487
41647
|
init_cn();
|
|
41488
41648
|
init_useTranslate();
|
|
41649
|
+
lookStyles8 = {
|
|
41650
|
+
"compact-bar": "",
|
|
41651
|
+
hero: "py-section min-h-[200px] [&_h1]:text-display-1",
|
|
41652
|
+
breadcrumb: "py-2 text-sm [&_h1]:text-base [&_h1]:font-medium",
|
|
41653
|
+
contextual: "py-3 [&_h1]:text-lg",
|
|
41654
|
+
"editorial-banner": "py-12 [&_h1]:text-display-2 [&_h1]:font-display-bold border-b border-border"
|
|
41655
|
+
};
|
|
41489
41656
|
Header = ({
|
|
41490
41657
|
logo,
|
|
41491
41658
|
logoSrc,
|
|
@@ -41503,6 +41670,7 @@ var init_Header = __esm({
|
|
|
41503
41670
|
actions,
|
|
41504
41671
|
sticky = true,
|
|
41505
41672
|
variant = "mobile",
|
|
41673
|
+
look = "compact-bar",
|
|
41506
41674
|
onLogoClick,
|
|
41507
41675
|
className
|
|
41508
41676
|
}) => {
|
|
@@ -41518,6 +41686,7 @@ var init_Header = __esm({
|
|
|
41518
41686
|
"flex items-center px-4 justify-between bg-card",
|
|
41519
41687
|
sticky && "sticky top-0 z-50",
|
|
41520
41688
|
variant === "mobile" && "lg:hidden",
|
|
41689
|
+
lookStyles8[look],
|
|
41521
41690
|
className
|
|
41522
41691
|
),
|
|
41523
41692
|
children: [
|
|
@@ -48213,7 +48382,7 @@ var init_TeamOrganism = __esm({
|
|
|
48213
48382
|
TeamOrganism.displayName = "TeamOrganism";
|
|
48214
48383
|
}
|
|
48215
48384
|
});
|
|
48216
|
-
var STATUS_STYLES3, Timeline;
|
|
48385
|
+
var lookStyles9, STATUS_STYLES3, Timeline;
|
|
48217
48386
|
var init_Timeline = __esm({
|
|
48218
48387
|
"components/organisms/Timeline.tsx"() {
|
|
48219
48388
|
"use client";
|
|
@@ -48224,6 +48393,12 @@ var init_Timeline = __esm({
|
|
|
48224
48393
|
init_ErrorState();
|
|
48225
48394
|
init_EmptyState();
|
|
48226
48395
|
init_useTranslate();
|
|
48396
|
+
lookStyles9 = {
|
|
48397
|
+
"vertical-compact": "gap-1 [&>*]:py-1",
|
|
48398
|
+
"vertical-spacious": "",
|
|
48399
|
+
horizontal: "flex-row [&>*]:flex-row [&>*]:items-center",
|
|
48400
|
+
swimlane: "flex-row gap-6 [&>*]:flex-row [&>*]:items-center"
|
|
48401
|
+
};
|
|
48227
48402
|
STATUS_STYLES3 = {
|
|
48228
48403
|
complete: {
|
|
48229
48404
|
dotColor: "text-success",
|
|
@@ -48254,7 +48429,8 @@ var init_Timeline = __esm({
|
|
|
48254
48429
|
entity,
|
|
48255
48430
|
isLoading = false,
|
|
48256
48431
|
error,
|
|
48257
|
-
className
|
|
48432
|
+
className,
|
|
48433
|
+
look = "vertical-spacious"
|
|
48258
48434
|
}) => {
|
|
48259
48435
|
const { t } = useTranslate();
|
|
48260
48436
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
@@ -48310,7 +48486,7 @@ var init_Timeline = __esm({
|
|
|
48310
48486
|
}
|
|
48311
48487
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn("p-6", className), children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", children: [
|
|
48312
48488
|
title && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", weight: "semibold", children: title }),
|
|
48313
|
-
/* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "none", className: "relative", children: items.map((item, idx) => {
|
|
48489
|
+
/* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "none", className: cn("relative", lookStyles9[look]), children: items.map((item, idx) => {
|
|
48314
48490
|
const status = item.status || "pending";
|
|
48315
48491
|
const style = STATUS_STYLES3[status] || STATUS_STYLES3.pending;
|
|
48316
48492
|
const ItemIcon = item.icon || style.icon;
|