@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/runtime/index.cjs
CHANGED
|
@@ -2190,7 +2190,7 @@ var init_Overlay = __esm({
|
|
|
2190
2190
|
};
|
|
2191
2191
|
}
|
|
2192
2192
|
});
|
|
2193
|
-
var sizeClasses2, minWidthClasses, Modal;
|
|
2193
|
+
var sizeClasses2, minWidthClasses, lookStyles, Modal;
|
|
2194
2194
|
var init_Modal = __esm({
|
|
2195
2195
|
"components/molecules/Modal.tsx"() {
|
|
2196
2196
|
"use client";
|
|
@@ -2215,6 +2215,12 @@ var init_Modal = __esm({
|
|
|
2215
2215
|
xl: "min-w-[700px] max-sm:min-w-0",
|
|
2216
2216
|
full: "min-w-0"
|
|
2217
2217
|
};
|
|
2218
|
+
lookStyles = {
|
|
2219
|
+
"centered-card": "",
|
|
2220
|
+
"top-sheet": "top-0 rounded-t-none rounded-b-container max-w-full w-full",
|
|
2221
|
+
"side-drawer": "right-0 top-0 bottom-0 h-full rounded-l-container rounded-r-none w-[400px] max-w-full",
|
|
2222
|
+
"full-screen": "inset-0 rounded-none w-full h-full max-w-full"
|
|
2223
|
+
};
|
|
2218
2224
|
Modal = ({
|
|
2219
2225
|
isOpen = true,
|
|
2220
2226
|
onClose = () => {
|
|
@@ -2228,7 +2234,8 @@ var init_Modal = __esm({
|
|
|
2228
2234
|
closeOnEscape = true,
|
|
2229
2235
|
className,
|
|
2230
2236
|
closeEvent,
|
|
2231
|
-
swipeDownToClose = true
|
|
2237
|
+
swipeDownToClose = true,
|
|
2238
|
+
look = "centered-card"
|
|
2232
2239
|
}) => {
|
|
2233
2240
|
const eventBus = useEventBus();
|
|
2234
2241
|
const modalRef = React85.useRef(null);
|
|
@@ -2313,6 +2320,7 @@ var init_Modal = __esm({
|
|
|
2313
2320
|
// Mobile: take the entire screen. Override desktop max-w cap,
|
|
2314
2321
|
// full height, no rounded corners, no min-width.
|
|
2315
2322
|
"max-sm:max-w-none max-sm:max-h-none max-sm:w-full max-sm:h-full max-sm:rounded-none",
|
|
2323
|
+
lookStyles[look],
|
|
2316
2324
|
className
|
|
2317
2325
|
),
|
|
2318
2326
|
style: dragY > 0 ? {
|
|
@@ -3887,7 +3895,7 @@ var init_Checkbox = __esm({
|
|
|
3887
3895
|
Checkbox.displayName = "Checkbox";
|
|
3888
3896
|
}
|
|
3889
3897
|
});
|
|
3890
|
-
var variantStyles4, paddingStyles2, shadowStyles2, Card, CardHeader, CardTitle, CardContent, CardBody, CardFooter;
|
|
3898
|
+
var variantStyles4, paddingStyles2, shadowStyles2, lookStyles2, Card, CardHeader, CardTitle, CardContent, CardBody, CardFooter;
|
|
3891
3899
|
var init_Card = __esm({
|
|
3892
3900
|
"components/atoms/Card.tsx"() {
|
|
3893
3901
|
init_cn();
|
|
@@ -3935,6 +3943,15 @@ var init_Card = __esm({
|
|
|
3935
3943
|
md: "shadow",
|
|
3936
3944
|
lg: "shadow-elevation-dialog"
|
|
3937
3945
|
};
|
|
3946
|
+
lookStyles2 = {
|
|
3947
|
+
elevated: "",
|
|
3948
|
+
"flat-bordered": "shadow-none border-[length:var(--border-width)] border-border",
|
|
3949
|
+
"borderless-divider": "shadow-none border-0 border-b border-border rounded-none",
|
|
3950
|
+
ticket: "shadow-none border-dashed border-[length:var(--border-width)] border-border",
|
|
3951
|
+
invoice: "shadow-none border-[length:var(--border-width-thick)] border-border rounded-sm",
|
|
3952
|
+
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
3953
|
+
"tile-image-first": "p-0 overflow-hidden"
|
|
3954
|
+
};
|
|
3938
3955
|
Card = React85__namespace.default.forwardRef(
|
|
3939
3956
|
({
|
|
3940
3957
|
className,
|
|
@@ -3943,6 +3960,7 @@ var init_Card = __esm({
|
|
|
3943
3960
|
title,
|
|
3944
3961
|
subtitle,
|
|
3945
3962
|
shadow,
|
|
3963
|
+
look = "elevated",
|
|
3946
3964
|
children,
|
|
3947
3965
|
...props
|
|
3948
3966
|
}, ref) => {
|
|
@@ -3955,6 +3973,7 @@ var init_Card = __esm({
|
|
|
3955
3973
|
"transition-all duration-[var(--transition-normal)]",
|
|
3956
3974
|
variantStyles4[variant],
|
|
3957
3975
|
paddingStyles2[padding],
|
|
3976
|
+
lookStyles2[look],
|
|
3958
3977
|
shadow && shadowStyles2[shadow],
|
|
3959
3978
|
className
|
|
3960
3979
|
),
|
|
@@ -16182,7 +16201,7 @@ var init_BookTableOfContents = __esm({
|
|
|
16182
16201
|
BookTableOfContents.displayName = "BookTableOfContents";
|
|
16183
16202
|
}
|
|
16184
16203
|
});
|
|
16185
|
-
var ICON_NAME_ALIASES, EmptyState;
|
|
16204
|
+
var ICON_NAME_ALIASES, lookStyles3, EmptyState;
|
|
16186
16205
|
var init_EmptyState = __esm({
|
|
16187
16206
|
"components/molecules/EmptyState.tsx"() {
|
|
16188
16207
|
"use client";
|
|
@@ -16199,6 +16218,12 @@ var init_EmptyState = __esm({
|
|
|
16199
16218
|
error: "x-circle",
|
|
16200
16219
|
warning: "alert-circle"
|
|
16201
16220
|
};
|
|
16221
|
+
lookStyles3 = {
|
|
16222
|
+
"icon-only": "",
|
|
16223
|
+
illustrated: "[&_svg]:w-32 [&_svg]:h-32",
|
|
16224
|
+
"text-only": "[&_svg]:hidden",
|
|
16225
|
+
mascot: "[&_svg]:w-24 [&_svg]:h-24 [&_svg]:rounded-pill"
|
|
16226
|
+
};
|
|
16202
16227
|
EmptyState = ({
|
|
16203
16228
|
icon,
|
|
16204
16229
|
title,
|
|
@@ -16209,7 +16234,8 @@ var init_EmptyState = __esm({
|
|
|
16209
16234
|
className,
|
|
16210
16235
|
destructive,
|
|
16211
16236
|
variant,
|
|
16212
|
-
actionEvent
|
|
16237
|
+
actionEvent,
|
|
16238
|
+
look = "icon-only"
|
|
16213
16239
|
}) => {
|
|
16214
16240
|
const eventBus = useEventBus();
|
|
16215
16241
|
const { t } = useTranslate();
|
|
@@ -16229,6 +16255,7 @@ var init_EmptyState = __esm({
|
|
|
16229
16255
|
align: "center",
|
|
16230
16256
|
className: cn(
|
|
16231
16257
|
"justify-center py-12 text-center",
|
|
16258
|
+
lookStyles3[look],
|
|
16232
16259
|
className
|
|
16233
16260
|
),
|
|
16234
16261
|
children: [
|
|
@@ -17469,7 +17496,7 @@ function useSafeEventBus2() {
|
|
|
17469
17496
|
} };
|
|
17470
17497
|
}
|
|
17471
17498
|
}
|
|
17472
|
-
var log8, ButtonGroup;
|
|
17499
|
+
var log8, lookStyles4, ButtonGroup;
|
|
17473
17500
|
var init_ButtonGroup = __esm({
|
|
17474
17501
|
"components/molecules/ButtonGroup.tsx"() {
|
|
17475
17502
|
"use client";
|
|
@@ -17477,6 +17504,13 @@ var init_ButtonGroup = __esm({
|
|
|
17477
17504
|
init_atoms();
|
|
17478
17505
|
init_useEventBus();
|
|
17479
17506
|
log8 = logger.createLogger("almadar:ui:button-group");
|
|
17507
|
+
lookStyles4 = {
|
|
17508
|
+
"right-aligned-buttons": "",
|
|
17509
|
+
"floating-bar": "fixed bottom-section left-1/2 -translate-x-1/2 shadow-elevation-toast bg-card p-card-sm rounded-container",
|
|
17510
|
+
"inline-row": "gap-2 inline-flex",
|
|
17511
|
+
"dropdown-menu": "[&>button:not(:first-child)]:hidden",
|
|
17512
|
+
"command-palette-trigger": "[&>button:not(:first-child)]:hidden"
|
|
17513
|
+
};
|
|
17480
17514
|
ButtonGroup = ({
|
|
17481
17515
|
children,
|
|
17482
17516
|
primary,
|
|
@@ -17486,7 +17520,8 @@ var init_ButtonGroup = __esm({
|
|
|
17486
17520
|
className,
|
|
17487
17521
|
// Filter-group pattern props (entity and filters are used for schema-driven filtering)
|
|
17488
17522
|
entity: _entity,
|
|
17489
|
-
filters
|
|
17523
|
+
filters,
|
|
17524
|
+
look = "right-aligned-buttons"
|
|
17490
17525
|
}) => {
|
|
17491
17526
|
const eventBus = useSafeEventBus2();
|
|
17492
17527
|
const variantClasses2 = {
|
|
@@ -17563,6 +17598,7 @@ var init_ButtonGroup = __esm({
|
|
|
17563
17598
|
"inline-flex gap-2",
|
|
17564
17599
|
variantClasses2[variant],
|
|
17565
17600
|
orientationClasses[orientation],
|
|
17601
|
+
lookStyles4[look],
|
|
17566
17602
|
className
|
|
17567
17603
|
),
|
|
17568
17604
|
role: "group",
|
|
@@ -20027,7 +20063,7 @@ var init_CastleTemplate = __esm({
|
|
|
20027
20063
|
CastleTemplate.displayName = "CastleTemplate";
|
|
20028
20064
|
}
|
|
20029
20065
|
});
|
|
20030
|
-
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart, Chart;
|
|
20066
|
+
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart, LOOK_FROM_CHART_TYPE, Chart;
|
|
20031
20067
|
var init_Chart = __esm({
|
|
20032
20068
|
"components/organisms/Chart.tsx"() {
|
|
20033
20069
|
"use client";
|
|
@@ -20057,7 +20093,7 @@ var init_Chart = __esm({
|
|
|
20057
20093
|
if (Number.isNaN(parsed.getTime())) return raw;
|
|
20058
20094
|
return monthFormatter.format(parsed);
|
|
20059
20095
|
};
|
|
20060
|
-
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, onPointClick }) => {
|
|
20096
|
+
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, horizontal = false, onPointClick }) => {
|
|
20061
20097
|
const categories = React85.useMemo(() => {
|
|
20062
20098
|
const set = [];
|
|
20063
20099
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -20095,6 +20131,64 @@ var init_Chart = __esm({
|
|
|
20095
20131
|
}
|
|
20096
20132
|
return m;
|
|
20097
20133
|
}, [series, stack, columnTotals]);
|
|
20134
|
+
if (horizontal) {
|
|
20135
|
+
return /* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "xs", align: "stretch", className: "w-full", style: { minHeight: height }, children: categories.map((label, catIdx) => {
|
|
20136
|
+
const displayLabel = timeAxis ? formatTimeLabel(label) : label;
|
|
20137
|
+
const total = columnTotals?.[catIdx] ?? 1;
|
|
20138
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "center", className: "w-full", children: [
|
|
20139
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20140
|
+
Typography,
|
|
20141
|
+
{
|
|
20142
|
+
variant: "caption",
|
|
20143
|
+
color: "secondary",
|
|
20144
|
+
className: "truncate text-right",
|
|
20145
|
+
style: { width: 80, flexShrink: 0 },
|
|
20146
|
+
children: displayLabel
|
|
20147
|
+
}
|
|
20148
|
+
),
|
|
20149
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20150
|
+
HStack,
|
|
20151
|
+
{
|
|
20152
|
+
gap: stack === "none" ? "xs" : "none",
|
|
20153
|
+
align: "center",
|
|
20154
|
+
className: "flex-1 min-w-0",
|
|
20155
|
+
style: { height: 24 },
|
|
20156
|
+
children: series.map((s, sIdx) => {
|
|
20157
|
+
const value = valueAt(s, label);
|
|
20158
|
+
const ratio = stack === "normalize" ? total === 0 ? 0 : value / total * 100 : value / maxValue * 100;
|
|
20159
|
+
const color = seriesColor(s, sIdx);
|
|
20160
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20161
|
+
Box,
|
|
20162
|
+
{
|
|
20163
|
+
className: "h-full rounded-r-sm transition-all duration-500 ease-out min-w-[2px] cursor-pointer hover:opacity-80",
|
|
20164
|
+
style: {
|
|
20165
|
+
width: `${ratio}%`,
|
|
20166
|
+
backgroundColor: color
|
|
20167
|
+
},
|
|
20168
|
+
onClick: () => onPointClick?.(
|
|
20169
|
+
{ label, value, color },
|
|
20170
|
+
s.name
|
|
20171
|
+
),
|
|
20172
|
+
title: `${s.name}: ${value}`
|
|
20173
|
+
},
|
|
20174
|
+
s.name
|
|
20175
|
+
);
|
|
20176
|
+
})
|
|
20177
|
+
}
|
|
20178
|
+
),
|
|
20179
|
+
showValues && series.length === 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20180
|
+
Typography,
|
|
20181
|
+
{
|
|
20182
|
+
variant: "caption",
|
|
20183
|
+
color: "secondary",
|
|
20184
|
+
className: "tabular-nums",
|
|
20185
|
+
style: { width: 40, flexShrink: 0 },
|
|
20186
|
+
children: valueAt(series[0], label)
|
|
20187
|
+
}
|
|
20188
|
+
)
|
|
20189
|
+
] }, label);
|
|
20190
|
+
}) });
|
|
20191
|
+
}
|
|
20098
20192
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20099
20193
|
HStack,
|
|
20100
20194
|
{
|
|
@@ -20522,10 +20616,20 @@ var init_Chart = __esm({
|
|
|
20522
20616
|
}
|
|
20523
20617
|
);
|
|
20524
20618
|
};
|
|
20619
|
+
LOOK_FROM_CHART_TYPE = {
|
|
20620
|
+
bar: "bar-vertical",
|
|
20621
|
+
line: "line",
|
|
20622
|
+
pie: "pie",
|
|
20623
|
+
area: "area",
|
|
20624
|
+
donut: "donut",
|
|
20625
|
+
scatter: "scatter",
|
|
20626
|
+
histogram: "histogram"
|
|
20627
|
+
};
|
|
20525
20628
|
Chart = ({
|
|
20526
20629
|
title,
|
|
20527
20630
|
subtitle,
|
|
20528
|
-
chartType
|
|
20631
|
+
chartType,
|
|
20632
|
+
look,
|
|
20529
20633
|
series,
|
|
20530
20634
|
data: simpleData,
|
|
20531
20635
|
scatterData,
|
|
@@ -20541,6 +20645,7 @@ var init_Chart = __esm({
|
|
|
20541
20645
|
error,
|
|
20542
20646
|
className
|
|
20543
20647
|
}) => {
|
|
20648
|
+
const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
|
|
20544
20649
|
const eventBus = useEventBus();
|
|
20545
20650
|
const { t } = useTranslate();
|
|
20546
20651
|
const handleAction = React85.useCallback(
|
|
@@ -20569,7 +20674,7 @@ var init_Chart = __esm({
|
|
|
20569
20674
|
return [];
|
|
20570
20675
|
}, [simpleData, series]);
|
|
20571
20676
|
const firstSeriesData = normalizedSeries[0]?.data ?? [];
|
|
20572
|
-
const hasContent =
|
|
20677
|
+
const hasContent = resolvedLook === "scatter" ? (scatterData?.length ?? 0) > 0 : normalizedSeries.some((s) => s.data.length > 0);
|
|
20573
20678
|
if (isLoading) {
|
|
20574
20679
|
return /* @__PURE__ */ jsxRuntime.jsx(LoadingState, { message: "Loading chart...", className });
|
|
20575
20680
|
}
|
|
@@ -20604,7 +20709,7 @@ var init_Chart = __esm({
|
|
|
20604
20709
|
)) })
|
|
20605
20710
|
] }),
|
|
20606
20711
|
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "w-full", children: [
|
|
20607
|
-
|
|
20712
|
+
resolvedLook === "bar-vertical" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20608
20713
|
BarChart,
|
|
20609
20714
|
{
|
|
20610
20715
|
series: normalizedSeries,
|
|
@@ -20615,7 +20720,19 @@ var init_Chart = __esm({
|
|
|
20615
20720
|
onPointClick: handlePointClick
|
|
20616
20721
|
}
|
|
20617
20722
|
),
|
|
20618
|
-
|
|
20723
|
+
resolvedLook === "bar-horizontal" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20724
|
+
BarChart,
|
|
20725
|
+
{
|
|
20726
|
+
series: normalizedSeries,
|
|
20727
|
+
height,
|
|
20728
|
+
showValues,
|
|
20729
|
+
stack,
|
|
20730
|
+
timeAxis,
|
|
20731
|
+
horizontal: true,
|
|
20732
|
+
onPointClick: handlePointClick
|
|
20733
|
+
}
|
|
20734
|
+
),
|
|
20735
|
+
resolvedLook === "histogram" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20619
20736
|
BarChart,
|
|
20620
20737
|
{
|
|
20621
20738
|
series: normalizedSeries,
|
|
@@ -20627,7 +20744,7 @@ var init_Chart = __esm({
|
|
|
20627
20744
|
onPointClick: handlePointClick
|
|
20628
20745
|
}
|
|
20629
20746
|
),
|
|
20630
|
-
|
|
20747
|
+
resolvedLook === "line" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20631
20748
|
LineChart,
|
|
20632
20749
|
{
|
|
20633
20750
|
series: normalizedSeries,
|
|
@@ -20637,7 +20754,7 @@ var init_Chart = __esm({
|
|
|
20637
20754
|
onPointClick: handlePointClick
|
|
20638
20755
|
}
|
|
20639
20756
|
),
|
|
20640
|
-
|
|
20757
|
+
resolvedLook === "area" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20641
20758
|
LineChart,
|
|
20642
20759
|
{
|
|
20643
20760
|
series: normalizedSeries,
|
|
@@ -20648,7 +20765,7 @@ var init_Chart = __esm({
|
|
|
20648
20765
|
onPointClick: handlePointClick
|
|
20649
20766
|
}
|
|
20650
20767
|
),
|
|
20651
|
-
|
|
20768
|
+
resolvedLook === "pie" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20652
20769
|
PieChart,
|
|
20653
20770
|
{
|
|
20654
20771
|
data: firstSeriesData,
|
|
@@ -20657,7 +20774,7 @@ var init_Chart = __esm({
|
|
|
20657
20774
|
onPointClick: handlePointClick
|
|
20658
20775
|
}
|
|
20659
20776
|
),
|
|
20660
|
-
|
|
20777
|
+
resolvedLook === "donut" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20661
20778
|
PieChart,
|
|
20662
20779
|
{
|
|
20663
20780
|
data: firstSeriesData,
|
|
@@ -20667,7 +20784,7 @@ var init_Chart = __esm({
|
|
|
20667
20784
|
onPointClick: handlePointClick
|
|
20668
20785
|
}
|
|
20669
20786
|
),
|
|
20670
|
-
|
|
20787
|
+
resolvedLook === "scatter" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20671
20788
|
ScatterChart,
|
|
20672
20789
|
{
|
|
20673
20790
|
data: scatterData ?? [],
|
|
@@ -24012,7 +24129,7 @@ var init_FormField = __esm({
|
|
|
24012
24129
|
FormField.displayName = "FormField";
|
|
24013
24130
|
}
|
|
24014
24131
|
});
|
|
24015
|
-
var resolveFilterType, FilterGroup;
|
|
24132
|
+
var resolveFilterType, lookStyles5, FilterGroup;
|
|
24016
24133
|
var init_FilterGroup = __esm({
|
|
24017
24134
|
"components/molecules/FilterGroup.tsx"() {
|
|
24018
24135
|
"use client";
|
|
@@ -24026,6 +24143,13 @@ var init_FilterGroup = __esm({
|
|
|
24026
24143
|
init_useEventBus();
|
|
24027
24144
|
init_useQuerySingleton();
|
|
24028
24145
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
24146
|
+
lookStyles5 = {
|
|
24147
|
+
toolbar: "",
|
|
24148
|
+
chips: "gap-2 [&>*]:rounded-pill [&>*]:px-3 [&>*]:py-1",
|
|
24149
|
+
pills: "gap-2 [&>*]:rounded-pill",
|
|
24150
|
+
"popover-trigger": "[&>*:not(:first-child)]:hidden",
|
|
24151
|
+
"inline-column-header": "hidden"
|
|
24152
|
+
};
|
|
24029
24153
|
FilterGroup = ({
|
|
24030
24154
|
entity,
|
|
24031
24155
|
filters,
|
|
@@ -24035,7 +24159,8 @@ var init_FilterGroup = __esm({
|
|
|
24035
24159
|
variant = "default",
|
|
24036
24160
|
showIcon = true,
|
|
24037
24161
|
query,
|
|
24038
|
-
isLoading
|
|
24162
|
+
isLoading,
|
|
24163
|
+
look = "toolbar"
|
|
24039
24164
|
}) => {
|
|
24040
24165
|
const eventBus = useEventBus();
|
|
24041
24166
|
const queryState = useQuerySingleton(query);
|
|
@@ -24090,63 +24215,71 @@ var init_FilterGroup = __esm({
|
|
|
24090
24215
|
}, [onClearAll, queryState, eventBus, entity, query]);
|
|
24091
24216
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
24092
24217
|
if (variant === "pills") {
|
|
24093
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24094
|
-
|
|
24095
|
-
|
|
24096
|
-
|
|
24097
|
-
|
|
24098
|
-
|
|
24099
|
-
|
|
24100
|
-
|
|
24101
|
-
HStack,
|
|
24102
|
-
|
|
24103
|
-
|
|
24104
|
-
|
|
24105
|
-
|
|
24106
|
-
|
|
24107
|
-
|
|
24108
|
-
|
|
24109
|
-
|
|
24110
|
-
|
|
24111
|
-
|
|
24112
|
-
|
|
24113
|
-
|
|
24114
|
-
|
|
24115
|
-
|
|
24116
|
-
|
|
24117
|
-
|
|
24118
|
-
|
|
24119
|
-
|
|
24120
|
-
|
|
24121
|
-
|
|
24122
|
-
|
|
24123
|
-
className: cn(
|
|
24124
|
-
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
24125
|
-
"border-l-[length:var(--border-width)] border-border",
|
|
24126
|
-
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
24218
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24219
|
+
HStack,
|
|
24220
|
+
{
|
|
24221
|
+
gap: "md",
|
|
24222
|
+
align: "center",
|
|
24223
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
24224
|
+
children: [
|
|
24225
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
24226
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
24227
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-medium text-muted-foreground", children: [
|
|
24228
|
+
filter.label,
|
|
24229
|
+
":"
|
|
24230
|
+
] }),
|
|
24231
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
24232
|
+
HStack,
|
|
24233
|
+
{
|
|
24234
|
+
gap: "none",
|
|
24235
|
+
className: "rounded-sm overflow-hidden border-[length:var(--border-width)] border-border",
|
|
24236
|
+
children: [
|
|
24237
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24238
|
+
"button",
|
|
24239
|
+
{
|
|
24240
|
+
type: "button",
|
|
24241
|
+
onClick: () => handleFilterSelect(filter.field, null),
|
|
24242
|
+
className: cn(
|
|
24243
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
24244
|
+
!selectedValues[filter.field] ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
24245
|
+
),
|
|
24246
|
+
children: "All"
|
|
24247
|
+
}
|
|
24127
24248
|
),
|
|
24128
|
-
|
|
24129
|
-
|
|
24130
|
-
|
|
24131
|
-
|
|
24132
|
-
|
|
24133
|
-
|
|
24134
|
-
|
|
24135
|
-
|
|
24136
|
-
|
|
24137
|
-
|
|
24138
|
-
|
|
24139
|
-
|
|
24140
|
-
|
|
24141
|
-
|
|
24142
|
-
|
|
24143
|
-
|
|
24144
|
-
|
|
24145
|
-
|
|
24146
|
-
|
|
24249
|
+
filter.options?.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
24250
|
+
"button",
|
|
24251
|
+
{
|
|
24252
|
+
type: "button",
|
|
24253
|
+
onClick: () => handleFilterSelect(filter.field, option),
|
|
24254
|
+
className: cn(
|
|
24255
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
24256
|
+
"border-l-[length:var(--border-width)] border-border",
|
|
24257
|
+
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
24258
|
+
),
|
|
24259
|
+
children: option
|
|
24260
|
+
},
|
|
24261
|
+
option
|
|
24262
|
+
))
|
|
24263
|
+
]
|
|
24264
|
+
}
|
|
24265
|
+
)
|
|
24266
|
+
] }, filter.field)),
|
|
24267
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24268
|
+
Button,
|
|
24269
|
+
{
|
|
24270
|
+
variant: "ghost",
|
|
24271
|
+
size: "sm",
|
|
24272
|
+
onClick: handleClearAll,
|
|
24273
|
+
leftIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
24274
|
+
children: "Clear"
|
|
24275
|
+
}
|
|
24276
|
+
)
|
|
24277
|
+
]
|
|
24278
|
+
}
|
|
24279
|
+
);
|
|
24147
24280
|
}
|
|
24148
24281
|
if (variant === "vertical") {
|
|
24149
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
24282
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", lookStyles5[look], className), children: [
|
|
24150
24283
|
showIcon && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
24151
24284
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
24152
24285
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: "Filters" })
|
|
@@ -24229,92 +24362,100 @@ var init_FilterGroup = __esm({
|
|
|
24229
24362
|
] });
|
|
24230
24363
|
}
|
|
24231
24364
|
if (variant === "compact") {
|
|
24232
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24233
|
-
|
|
24234
|
-
|
|
24235
|
-
|
|
24236
|
-
|
|
24237
|
-
|
|
24238
|
-
|
|
24239
|
-
|
|
24240
|
-
|
|
24241
|
-
|
|
24242
|
-
|
|
24243
|
-
|
|
24244
|
-
|
|
24245
|
-
|
|
24246
|
-
|
|
24247
|
-
|
|
24248
|
-
|
|
24249
|
-
|
|
24250
|
-
|
|
24251
|
-
|
|
24252
|
-
|
|
24253
|
-
|
|
24254
|
-
|
|
24255
|
-
|
|
24256
|
-
|
|
24257
|
-
|
|
24258
|
-
|
|
24259
|
-
|
|
24260
|
-
|
|
24261
|
-
|
|
24262
|
-
value: selectedValues[`${filter.field}_to`] || "",
|
|
24263
|
-
onChange: (e) => handleFilterSelect(
|
|
24264
|
-
`${filter.field}_to`,
|
|
24265
|
-
e.target.value || null
|
|
24365
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24366
|
+
HStack,
|
|
24367
|
+
{
|
|
24368
|
+
gap: "sm",
|
|
24369
|
+
align: "center",
|
|
24370
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
24371
|
+
children: [
|
|
24372
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
24373
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
24374
|
+
Input,
|
|
24375
|
+
{
|
|
24376
|
+
type: "date",
|
|
24377
|
+
value: selectedValues[filter.field] || "",
|
|
24378
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
24379
|
+
clearable: true,
|
|
24380
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
24381
|
+
className: "text-sm"
|
|
24382
|
+
}
|
|
24383
|
+
) : resolveFilterType(filter) === "daterange" || resolveFilterType(filter) === "date-range" ? /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
24384
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24385
|
+
Input,
|
|
24386
|
+
{
|
|
24387
|
+
type: "date",
|
|
24388
|
+
value: selectedValues[`${filter.field}_from`] || "",
|
|
24389
|
+
onChange: (e) => handleFilterSelect(
|
|
24390
|
+
`${filter.field}_from`,
|
|
24391
|
+
e.target.value || null
|
|
24392
|
+
),
|
|
24393
|
+
className: "text-sm min-w-[100px]"
|
|
24394
|
+
}
|
|
24266
24395
|
),
|
|
24267
|
-
className: "text-
|
|
24268
|
-
|
|
24269
|
-
|
|
24270
|
-
|
|
24271
|
-
|
|
24272
|
-
|
|
24273
|
-
|
|
24274
|
-
|
|
24275
|
-
|
|
24276
|
-
|
|
24277
|
-
|
|
24278
|
-
|
|
24279
|
-
|
|
24280
|
-
|
|
24281
|
-
|
|
24282
|
-
{
|
|
24283
|
-
value: selectedValues[filter.field] || "all",
|
|
24284
|
-
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
24285
|
-
options: [
|
|
24286
|
-
{ value: "all", label: `All ${filter.label}` },
|
|
24287
|
-
...filter.options?.map((opt) => ({
|
|
24288
|
-
value: opt,
|
|
24289
|
-
label: opt
|
|
24290
|
-
})) || []
|
|
24291
|
-
],
|
|
24292
|
-
className: "text-sm"
|
|
24293
|
-
}
|
|
24294
|
-
) }, filter.field)),
|
|
24295
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
24296
|
-
Object.entries(selectedValues).map(([field, value]) => {
|
|
24297
|
-
const filterDef = filters.find((f3) => f3.field === field);
|
|
24298
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24299
|
-
Badge,
|
|
24396
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "-" }),
|
|
24397
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24398
|
+
Input,
|
|
24399
|
+
{
|
|
24400
|
+
type: "date",
|
|
24401
|
+
value: selectedValues[`${filter.field}_to`] || "",
|
|
24402
|
+
onChange: (e) => handleFilterSelect(
|
|
24403
|
+
`${filter.field}_to`,
|
|
24404
|
+
e.target.value || null
|
|
24405
|
+
),
|
|
24406
|
+
className: "text-sm min-w-[100px]"
|
|
24407
|
+
}
|
|
24408
|
+
)
|
|
24409
|
+
] }) : resolveFilterType(filter) === "text" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
24410
|
+
Input,
|
|
24300
24411
|
{
|
|
24301
|
-
|
|
24302
|
-
|
|
24303
|
-
|
|
24304
|
-
|
|
24305
|
-
|
|
24306
|
-
|
|
24307
|
-
|
|
24308
|
-
|
|
24309
|
-
|
|
24310
|
-
|
|
24311
|
-
|
|
24312
|
-
|
|
24313
|
-
|
|
24314
|
-
|
|
24315
|
-
|
|
24316
|
-
|
|
24317
|
-
|
|
24412
|
+
value: selectedValues[filter.field] || "",
|
|
24413
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
24414
|
+
placeholder: filter.label,
|
|
24415
|
+
clearable: true,
|
|
24416
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
24417
|
+
className: "text-sm"
|
|
24418
|
+
}
|
|
24419
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
24420
|
+
Select,
|
|
24421
|
+
{
|
|
24422
|
+
value: selectedValues[filter.field] || "all",
|
|
24423
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
24424
|
+
options: [
|
|
24425
|
+
{ value: "all", label: `All ${filter.label}` },
|
|
24426
|
+
...filter.options?.map((opt) => ({
|
|
24427
|
+
value: opt,
|
|
24428
|
+
label: opt
|
|
24429
|
+
})) || []
|
|
24430
|
+
],
|
|
24431
|
+
className: "text-sm"
|
|
24432
|
+
}
|
|
24433
|
+
) }, filter.field)),
|
|
24434
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
24435
|
+
Object.entries(selectedValues).map(([field, value]) => {
|
|
24436
|
+
const filterDef = filters.find((f3) => f3.field === field);
|
|
24437
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24438
|
+
Badge,
|
|
24439
|
+
{
|
|
24440
|
+
variant: "primary",
|
|
24441
|
+
size: "md",
|
|
24442
|
+
className: "cursor-pointer",
|
|
24443
|
+
onClick: () => handleFilterSelect(field, null),
|
|
24444
|
+
children: [
|
|
24445
|
+
filterDef?.label,
|
|
24446
|
+
": ",
|
|
24447
|
+
value,
|
|
24448
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
24449
|
+
]
|
|
24450
|
+
},
|
|
24451
|
+
field
|
|
24452
|
+
);
|
|
24453
|
+
}),
|
|
24454
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: handleClearAll, children: "Clear all" })
|
|
24455
|
+
] })
|
|
24456
|
+
]
|
|
24457
|
+
}
|
|
24458
|
+
);
|
|
24318
24459
|
}
|
|
24319
24460
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24320
24461
|
"div",
|
|
@@ -24323,6 +24464,7 @@ var init_FilterGroup = __esm({
|
|
|
24323
24464
|
"p-4 rounded-container",
|
|
24324
24465
|
"bg-card",
|
|
24325
24466
|
"border-[length:var(--border-width)] border-border",
|
|
24467
|
+
lookStyles5[look],
|
|
24326
24468
|
className
|
|
24327
24469
|
),
|
|
24328
24470
|
children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "md", align: "center", className: "flex-wrap", children: [
|
|
@@ -28796,7 +28938,7 @@ function composeDisplayValue(value, format, max, prefix, suffix) {
|
|
|
28796
28938
|
const withMax = max != null && max > 0 ? `${formatted} / ${max}` : formatted;
|
|
28797
28939
|
return `${prefix ?? ""}${withMax}${suffix ?? ""}`;
|
|
28798
28940
|
}
|
|
28799
|
-
var variantColor, StatDisplay;
|
|
28941
|
+
var lookStyles6, variantColor, StatDisplay;
|
|
28800
28942
|
var init_StatDisplay = __esm({
|
|
28801
28943
|
"components/molecules/StatDisplay.tsx"() {
|
|
28802
28944
|
"use client";
|
|
@@ -28808,6 +28950,13 @@ var init_StatDisplay = __esm({
|
|
|
28808
28950
|
init_Sparkline();
|
|
28809
28951
|
init_Icon();
|
|
28810
28952
|
init_useEventBus();
|
|
28953
|
+
lookStyles6 = {
|
|
28954
|
+
elevated: "",
|
|
28955
|
+
flat: "shadow-none border-[length:var(--border-width)] border-border",
|
|
28956
|
+
"progress-backed": "",
|
|
28957
|
+
gauge: "",
|
|
28958
|
+
sparkline: ""
|
|
28959
|
+
};
|
|
28811
28960
|
variantColor = {
|
|
28812
28961
|
default: "text-foreground",
|
|
28813
28962
|
primary: "text-primary",
|
|
@@ -28835,6 +28984,7 @@ var init_StatDisplay = __esm({
|
|
|
28835
28984
|
size = "md",
|
|
28836
28985
|
variant = "default",
|
|
28837
28986
|
compact = false,
|
|
28987
|
+
look = "elevated",
|
|
28838
28988
|
className,
|
|
28839
28989
|
isLoading = false,
|
|
28840
28990
|
error = null
|
|
@@ -28887,7 +29037,7 @@ var init_StatDisplay = __esm({
|
|
|
28887
29037
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28888
29038
|
Card,
|
|
28889
29039
|
{
|
|
28890
|
-
className: cn(padSizes[size], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
29040
|
+
className: cn(padSizes[size], lookStyles6[look], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
28891
29041
|
onClick: clickEvent ? handleClick : void 0,
|
|
28892
29042
|
children: /* @__PURE__ */ jsxRuntime.jsxs(HStack, { align: "start", justify: "between", children: [
|
|
28893
29043
|
/* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: "space-y-1 flex-1", children: [
|
|
@@ -34331,7 +34481,8 @@ function DataTable({
|
|
|
34331
34481
|
bulkActions,
|
|
34332
34482
|
headerActions,
|
|
34333
34483
|
showTotal = true,
|
|
34334
|
-
className
|
|
34484
|
+
className,
|
|
34485
|
+
look = "dense"
|
|
34335
34486
|
}) {
|
|
34336
34487
|
const [openActionMenu, setOpenActionMenu] = React85.useState(
|
|
34337
34488
|
null
|
|
@@ -34458,6 +34609,7 @@ function DataTable({
|
|
|
34458
34609
|
{
|
|
34459
34610
|
className: cn(
|
|
34460
34611
|
"bg-card border-2 border-border rounded-none overflow-hidden",
|
|
34612
|
+
lookStyles7[look],
|
|
34461
34613
|
className
|
|
34462
34614
|
),
|
|
34463
34615
|
children: [
|
|
@@ -34684,6 +34836,7 @@ function DataTable({
|
|
|
34684
34836
|
}
|
|
34685
34837
|
);
|
|
34686
34838
|
}
|
|
34839
|
+
var lookStyles7;
|
|
34687
34840
|
var init_DataTable = __esm({
|
|
34688
34841
|
"components/organisms/DataTable.tsx"() {
|
|
34689
34842
|
"use client";
|
|
@@ -34697,6 +34850,13 @@ var init_DataTable = __esm({
|
|
|
34697
34850
|
init_useEventBus();
|
|
34698
34851
|
init_useTranslate();
|
|
34699
34852
|
init_types3();
|
|
34853
|
+
lookStyles7 = {
|
|
34854
|
+
dense: "",
|
|
34855
|
+
spacious: "[&_tbody_tr_td]:py-5 [&_thead_tr_th]:py-4",
|
|
34856
|
+
striped: "[&_tbody_tr:nth-child(odd)]:bg-muted/30",
|
|
34857
|
+
borderless: "border-0 [&_thead]:border-b-0 [&_tbody_tr]:border-b-0 [&_tbody]:divide-y-0",
|
|
34858
|
+
"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"
|
|
34859
|
+
};
|
|
34700
34860
|
DataTable.displayName = "DataTable";
|
|
34701
34861
|
}
|
|
34702
34862
|
});
|
|
@@ -37855,7 +38015,7 @@ var init_GraphCanvas = __esm({
|
|
|
37855
38015
|
GraphCanvas.displayName = "GraphCanvas";
|
|
37856
38016
|
}
|
|
37857
38017
|
});
|
|
37858
|
-
var Header;
|
|
38018
|
+
var lookStyles8, Header;
|
|
37859
38019
|
var init_Header = __esm({
|
|
37860
38020
|
"components/organisms/Header.tsx"() {
|
|
37861
38021
|
"use client";
|
|
@@ -37868,6 +38028,13 @@ var init_Header = __esm({
|
|
|
37868
38028
|
init_Typography();
|
|
37869
38029
|
init_cn();
|
|
37870
38030
|
init_useTranslate();
|
|
38031
|
+
lookStyles8 = {
|
|
38032
|
+
"compact-bar": "",
|
|
38033
|
+
hero: "py-section min-h-[200px] [&_h1]:text-display-1",
|
|
38034
|
+
breadcrumb: "py-2 text-sm [&_h1]:text-base [&_h1]:font-medium",
|
|
38035
|
+
contextual: "py-3 [&_h1]:text-lg",
|
|
38036
|
+
"editorial-banner": "py-12 [&_h1]:text-display-2 [&_h1]:font-display-bold border-b border-border"
|
|
38037
|
+
};
|
|
37871
38038
|
Header = ({
|
|
37872
38039
|
logo,
|
|
37873
38040
|
logoSrc,
|
|
@@ -37885,6 +38052,7 @@ var init_Header = __esm({
|
|
|
37885
38052
|
actions,
|
|
37886
38053
|
sticky = true,
|
|
37887
38054
|
variant = "mobile",
|
|
38055
|
+
look = "compact-bar",
|
|
37888
38056
|
onLogoClick,
|
|
37889
38057
|
className
|
|
37890
38058
|
}) => {
|
|
@@ -37900,6 +38068,7 @@ var init_Header = __esm({
|
|
|
37900
38068
|
"flex items-center px-4 justify-between bg-card",
|
|
37901
38069
|
sticky && "sticky top-0 z-50",
|
|
37902
38070
|
variant === "mobile" && "lg:hidden",
|
|
38071
|
+
lookStyles8[look],
|
|
37903
38072
|
className
|
|
37904
38073
|
),
|
|
37905
38074
|
children: [
|
|
@@ -44595,7 +44764,7 @@ var init_TeamOrganism = __esm({
|
|
|
44595
44764
|
TeamOrganism.displayName = "TeamOrganism";
|
|
44596
44765
|
}
|
|
44597
44766
|
});
|
|
44598
|
-
var STATUS_STYLES3, Timeline;
|
|
44767
|
+
var lookStyles9, STATUS_STYLES3, Timeline;
|
|
44599
44768
|
var init_Timeline = __esm({
|
|
44600
44769
|
"components/organisms/Timeline.tsx"() {
|
|
44601
44770
|
"use client";
|
|
@@ -44606,6 +44775,12 @@ var init_Timeline = __esm({
|
|
|
44606
44775
|
init_ErrorState();
|
|
44607
44776
|
init_EmptyState();
|
|
44608
44777
|
init_useTranslate();
|
|
44778
|
+
lookStyles9 = {
|
|
44779
|
+
"vertical-compact": "gap-1 [&>*]:py-1",
|
|
44780
|
+
"vertical-spacious": "",
|
|
44781
|
+
horizontal: "flex-row [&>*]:flex-row [&>*]:items-center",
|
|
44782
|
+
swimlane: "flex-row gap-6 [&>*]:flex-row [&>*]:items-center"
|
|
44783
|
+
};
|
|
44609
44784
|
STATUS_STYLES3 = {
|
|
44610
44785
|
complete: {
|
|
44611
44786
|
dotColor: "text-success",
|
|
@@ -44636,7 +44811,8 @@ var init_Timeline = __esm({
|
|
|
44636
44811
|
entity,
|
|
44637
44812
|
isLoading = false,
|
|
44638
44813
|
error,
|
|
44639
|
-
className
|
|
44814
|
+
className,
|
|
44815
|
+
look = "vertical-spacious"
|
|
44640
44816
|
}) => {
|
|
44641
44817
|
const { t } = useTranslate();
|
|
44642
44818
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
@@ -44692,7 +44868,7 @@ var init_Timeline = __esm({
|
|
|
44692
44868
|
}
|
|
44693
44869
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn("p-6", className), children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", children: [
|
|
44694
44870
|
title && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "h5", weight: "semibold", children: title }),
|
|
44695
|
-
/* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "none", className: "relative", children: items.map((item, idx) => {
|
|
44871
|
+
/* @__PURE__ */ jsxRuntime.jsx(VStack, { gap: "none", className: cn("relative", lookStyles9[look]), children: items.map((item, idx) => {
|
|
44696
44872
|
const status = item.status || "pending";
|
|
44697
44873
|
const style = STATUS_STYLES3[status] || STATUS_STYLES3.pending;
|
|
44698
44874
|
const ItemIcon = item.icon || style.icon;
|