@almadar/ui 5.4.0 → 5.5.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/dist/avl/index.cjs +332 -167
- package/dist/avl/index.js +332 -167
- package/dist/components/index.cjs +329 -164
- package/dist/components/index.js +329 -164
- 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/providers/index.cjs +332 -167
- package/dist/providers/index.js +332 -167
- package/dist/runtime/index.cjs +332 -167
- package/dist/runtime/index.js +332 -167
- package/package.json +1 -1
|
@@ -6223,7 +6223,7 @@ var init_EntitySchemaContext = __esm({
|
|
|
6223
6223
|
EntitySchemaContext = React80.createContext(null);
|
|
6224
6224
|
}
|
|
6225
6225
|
});
|
|
6226
|
-
var sizeClasses5, minWidthClasses; exports.Modal = void 0;
|
|
6226
|
+
var sizeClasses5, minWidthClasses, lookStyles2; exports.Modal = void 0;
|
|
6227
6227
|
var init_Modal = __esm({
|
|
6228
6228
|
"components/molecules/Modal.tsx"() {
|
|
6229
6229
|
"use client";
|
|
@@ -6248,6 +6248,12 @@ var init_Modal = __esm({
|
|
|
6248
6248
|
xl: "min-w-[700px] max-sm:min-w-0",
|
|
6249
6249
|
full: "min-w-0"
|
|
6250
6250
|
};
|
|
6251
|
+
lookStyles2 = {
|
|
6252
|
+
"centered-card": "",
|
|
6253
|
+
"top-sheet": "top-0 rounded-t-none rounded-b-container max-w-full w-full",
|
|
6254
|
+
"side-drawer": "right-0 top-0 bottom-0 h-full rounded-l-container rounded-r-none w-[400px] max-w-full",
|
|
6255
|
+
"full-screen": "inset-0 rounded-none w-full h-full max-w-full"
|
|
6256
|
+
};
|
|
6251
6257
|
exports.Modal = ({
|
|
6252
6258
|
isOpen = true,
|
|
6253
6259
|
onClose = () => {
|
|
@@ -6261,7 +6267,8 @@ var init_Modal = __esm({
|
|
|
6261
6267
|
closeOnEscape = true,
|
|
6262
6268
|
className,
|
|
6263
6269
|
closeEvent,
|
|
6264
|
-
swipeDownToClose = true
|
|
6270
|
+
swipeDownToClose = true,
|
|
6271
|
+
look = "centered-card"
|
|
6265
6272
|
}) => {
|
|
6266
6273
|
const eventBus = useEventBus();
|
|
6267
6274
|
const modalRef = React80.useRef(null);
|
|
@@ -6346,6 +6353,7 @@ var init_Modal = __esm({
|
|
|
6346
6353
|
// Mobile: take the entire screen. Override desktop max-w cap,
|
|
6347
6354
|
// full height, no rounded corners, no min-width.
|
|
6348
6355
|
"max-sm:max-w-none max-sm:max-h-none max-sm:w-full max-sm:h-full max-sm:rounded-none",
|
|
6356
|
+
lookStyles2[look],
|
|
6349
6357
|
className
|
|
6350
6358
|
),
|
|
6351
6359
|
style: dragY > 0 ? {
|
|
@@ -14867,7 +14875,7 @@ var init_BookTableOfContents = __esm({
|
|
|
14867
14875
|
exports.BookTableOfContents.displayName = "BookTableOfContents";
|
|
14868
14876
|
}
|
|
14869
14877
|
});
|
|
14870
|
-
var ICON_NAME_ALIASES; exports.EmptyState = void 0;
|
|
14878
|
+
var ICON_NAME_ALIASES, lookStyles3; exports.EmptyState = void 0;
|
|
14871
14879
|
var init_EmptyState = __esm({
|
|
14872
14880
|
"components/molecules/EmptyState.tsx"() {
|
|
14873
14881
|
"use client";
|
|
@@ -14884,6 +14892,12 @@ var init_EmptyState = __esm({
|
|
|
14884
14892
|
error: "x-circle",
|
|
14885
14893
|
warning: "alert-circle"
|
|
14886
14894
|
};
|
|
14895
|
+
lookStyles3 = {
|
|
14896
|
+
"icon-only": "",
|
|
14897
|
+
illustrated: "[&_svg]:w-32 [&_svg]:h-32",
|
|
14898
|
+
"text-only": "[&_svg]:hidden",
|
|
14899
|
+
mascot: "[&_svg]:w-24 [&_svg]:h-24 [&_svg]:rounded-pill"
|
|
14900
|
+
};
|
|
14887
14901
|
exports.EmptyState = ({
|
|
14888
14902
|
icon,
|
|
14889
14903
|
title,
|
|
@@ -14894,7 +14908,8 @@ var init_EmptyState = __esm({
|
|
|
14894
14908
|
className,
|
|
14895
14909
|
destructive,
|
|
14896
14910
|
variant,
|
|
14897
|
-
actionEvent
|
|
14911
|
+
actionEvent,
|
|
14912
|
+
look = "icon-only"
|
|
14898
14913
|
}) => {
|
|
14899
14914
|
const eventBus = useEventBus();
|
|
14900
14915
|
const { t } = useTranslate();
|
|
@@ -14914,6 +14929,7 @@ var init_EmptyState = __esm({
|
|
|
14914
14929
|
align: "center",
|
|
14915
14930
|
className: cn(
|
|
14916
14931
|
"justify-center py-12 text-center",
|
|
14932
|
+
lookStyles3[look],
|
|
14917
14933
|
className
|
|
14918
14934
|
),
|
|
14919
14935
|
children: [
|
|
@@ -16154,7 +16170,7 @@ function useSafeEventBus2() {
|
|
|
16154
16170
|
} };
|
|
16155
16171
|
}
|
|
16156
16172
|
}
|
|
16157
|
-
var log6; exports.ButtonGroup = void 0;
|
|
16173
|
+
var log6, lookStyles4; exports.ButtonGroup = void 0;
|
|
16158
16174
|
var init_ButtonGroup = __esm({
|
|
16159
16175
|
"components/molecules/ButtonGroup.tsx"() {
|
|
16160
16176
|
"use client";
|
|
@@ -16162,6 +16178,13 @@ var init_ButtonGroup = __esm({
|
|
|
16162
16178
|
init_atoms();
|
|
16163
16179
|
init_useEventBus();
|
|
16164
16180
|
log6 = logger.createLogger("almadar:ui:button-group");
|
|
16181
|
+
lookStyles4 = {
|
|
16182
|
+
"right-aligned-buttons": "",
|
|
16183
|
+
"floating-bar": "fixed bottom-section left-1/2 -translate-x-1/2 shadow-elevation-toast bg-card p-card-sm rounded-container",
|
|
16184
|
+
"inline-row": "gap-2 inline-flex",
|
|
16185
|
+
"dropdown-menu": "[&>button:not(:first-child)]:hidden",
|
|
16186
|
+
"command-palette-trigger": "[&>button:not(:first-child)]:hidden"
|
|
16187
|
+
};
|
|
16165
16188
|
exports.ButtonGroup = ({
|
|
16166
16189
|
children,
|
|
16167
16190
|
primary,
|
|
@@ -16171,7 +16194,8 @@ var init_ButtonGroup = __esm({
|
|
|
16171
16194
|
className,
|
|
16172
16195
|
// Filter-group pattern props (entity and filters are used for schema-driven filtering)
|
|
16173
16196
|
entity: _entity,
|
|
16174
|
-
filters
|
|
16197
|
+
filters,
|
|
16198
|
+
look = "right-aligned-buttons"
|
|
16175
16199
|
}) => {
|
|
16176
16200
|
const eventBus = useSafeEventBus2();
|
|
16177
16201
|
const variantClasses2 = {
|
|
@@ -16248,6 +16272,7 @@ var init_ButtonGroup = __esm({
|
|
|
16248
16272
|
"inline-flex gap-2",
|
|
16249
16273
|
variantClasses2[variant],
|
|
16250
16274
|
orientationClasses[orientation],
|
|
16275
|
+
lookStyles4[look],
|
|
16251
16276
|
className
|
|
16252
16277
|
),
|
|
16253
16278
|
role: "group",
|
|
@@ -18779,7 +18804,7 @@ var init_CastleTemplate = __esm({
|
|
|
18779
18804
|
CastleTemplate.displayName = "CastleTemplate";
|
|
18780
18805
|
}
|
|
18781
18806
|
});
|
|
18782
|
-
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart; exports.Chart = void 0;
|
|
18807
|
+
var CHART_COLORS, seriesColor, monthFormatter, formatTimeLabel, BarChart, PieChart, LineChart, ScatterChart, LOOK_FROM_CHART_TYPE; exports.Chart = void 0;
|
|
18783
18808
|
var init_Chart = __esm({
|
|
18784
18809
|
"components/organisms/Chart.tsx"() {
|
|
18785
18810
|
"use client";
|
|
@@ -18809,7 +18834,7 @@ var init_Chart = __esm({
|
|
|
18809
18834
|
if (Number.isNaN(parsed.getTime())) return raw;
|
|
18810
18835
|
return monthFormatter.format(parsed);
|
|
18811
18836
|
};
|
|
18812
|
-
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, onPointClick }) => {
|
|
18837
|
+
BarChart = ({ series, height, showValues, stack, timeAxis, histogram = false, horizontal = false, onPointClick }) => {
|
|
18813
18838
|
const categories = React80.useMemo(() => {
|
|
18814
18839
|
const set = [];
|
|
18815
18840
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -18847,6 +18872,64 @@ var init_Chart = __esm({
|
|
|
18847
18872
|
}
|
|
18848
18873
|
return m;
|
|
18849
18874
|
}, [series, stack, columnTotals]);
|
|
18875
|
+
if (horizontal) {
|
|
18876
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "xs", align: "stretch", className: "w-full", style: { minHeight: height }, children: categories.map((label, catIdx) => {
|
|
18877
|
+
const displayLabel = timeAxis ? formatTimeLabel(label) : label;
|
|
18878
|
+
const total = columnTotals?.[catIdx] ?? 1;
|
|
18879
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "center", className: "w-full", children: [
|
|
18880
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18881
|
+
exports.Typography,
|
|
18882
|
+
{
|
|
18883
|
+
variant: "caption",
|
|
18884
|
+
color: "secondary",
|
|
18885
|
+
className: "truncate text-right",
|
|
18886
|
+
style: { width: 80, flexShrink: 0 },
|
|
18887
|
+
children: displayLabel
|
|
18888
|
+
}
|
|
18889
|
+
),
|
|
18890
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18891
|
+
exports.HStack,
|
|
18892
|
+
{
|
|
18893
|
+
gap: stack === "none" ? "xs" : "none",
|
|
18894
|
+
align: "center",
|
|
18895
|
+
className: "flex-1 min-w-0",
|
|
18896
|
+
style: { height: 24 },
|
|
18897
|
+
children: series.map((s, sIdx) => {
|
|
18898
|
+
const value = valueAt(s, label);
|
|
18899
|
+
const ratio = stack === "normalize" ? total === 0 ? 0 : value / total * 100 : value / maxValue * 100;
|
|
18900
|
+
const color = seriesColor(s, sIdx);
|
|
18901
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18902
|
+
exports.Box,
|
|
18903
|
+
{
|
|
18904
|
+
className: "h-full rounded-r-sm transition-all duration-500 ease-out min-w-[2px] cursor-pointer hover:opacity-80",
|
|
18905
|
+
style: {
|
|
18906
|
+
width: `${ratio}%`,
|
|
18907
|
+
backgroundColor: color
|
|
18908
|
+
},
|
|
18909
|
+
onClick: () => onPointClick?.(
|
|
18910
|
+
{ label, value, color },
|
|
18911
|
+
s.name
|
|
18912
|
+
),
|
|
18913
|
+
title: `${s.name}: ${value}`
|
|
18914
|
+
},
|
|
18915
|
+
s.name
|
|
18916
|
+
);
|
|
18917
|
+
})
|
|
18918
|
+
}
|
|
18919
|
+
),
|
|
18920
|
+
showValues && series.length === 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
18921
|
+
exports.Typography,
|
|
18922
|
+
{
|
|
18923
|
+
variant: "caption",
|
|
18924
|
+
color: "secondary",
|
|
18925
|
+
className: "tabular-nums",
|
|
18926
|
+
style: { width: 40, flexShrink: 0 },
|
|
18927
|
+
children: valueAt(series[0], label)
|
|
18928
|
+
}
|
|
18929
|
+
)
|
|
18930
|
+
] }, label);
|
|
18931
|
+
}) });
|
|
18932
|
+
}
|
|
18850
18933
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18851
18934
|
exports.HStack,
|
|
18852
18935
|
{
|
|
@@ -19274,10 +19357,20 @@ var init_Chart = __esm({
|
|
|
19274
19357
|
}
|
|
19275
19358
|
);
|
|
19276
19359
|
};
|
|
19360
|
+
LOOK_FROM_CHART_TYPE = {
|
|
19361
|
+
bar: "bar-vertical",
|
|
19362
|
+
line: "line",
|
|
19363
|
+
pie: "pie",
|
|
19364
|
+
area: "area",
|
|
19365
|
+
donut: "donut",
|
|
19366
|
+
scatter: "scatter",
|
|
19367
|
+
histogram: "histogram"
|
|
19368
|
+
};
|
|
19277
19369
|
exports.Chart = ({
|
|
19278
19370
|
title,
|
|
19279
19371
|
subtitle,
|
|
19280
|
-
chartType
|
|
19372
|
+
chartType,
|
|
19373
|
+
look,
|
|
19281
19374
|
series,
|
|
19282
19375
|
data: simpleData,
|
|
19283
19376
|
scatterData,
|
|
@@ -19293,6 +19386,7 @@ var init_Chart = __esm({
|
|
|
19293
19386
|
error,
|
|
19294
19387
|
className
|
|
19295
19388
|
}) => {
|
|
19389
|
+
const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
|
|
19296
19390
|
const eventBus = useEventBus();
|
|
19297
19391
|
const { t } = useTranslate();
|
|
19298
19392
|
const handleAction = React80.useCallback(
|
|
@@ -19321,7 +19415,7 @@ var init_Chart = __esm({
|
|
|
19321
19415
|
return [];
|
|
19322
19416
|
}, [simpleData, series]);
|
|
19323
19417
|
const firstSeriesData = normalizedSeries[0]?.data ?? [];
|
|
19324
|
-
const hasContent =
|
|
19418
|
+
const hasContent = resolvedLook === "scatter" ? (scatterData?.length ?? 0) > 0 : normalizedSeries.some((s) => s.data.length > 0);
|
|
19325
19419
|
if (isLoading) {
|
|
19326
19420
|
return /* @__PURE__ */ jsxRuntime.jsx(exports.LoadingState, { message: "Loading chart...", className });
|
|
19327
19421
|
}
|
|
@@ -19356,7 +19450,7 @@ var init_Chart = __esm({
|
|
|
19356
19450
|
)) })
|
|
19357
19451
|
] }),
|
|
19358
19452
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "w-full", children: [
|
|
19359
|
-
|
|
19453
|
+
resolvedLook === "bar-vertical" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19360
19454
|
BarChart,
|
|
19361
19455
|
{
|
|
19362
19456
|
series: normalizedSeries,
|
|
@@ -19367,7 +19461,19 @@ var init_Chart = __esm({
|
|
|
19367
19461
|
onPointClick: handlePointClick
|
|
19368
19462
|
}
|
|
19369
19463
|
),
|
|
19370
|
-
|
|
19464
|
+
resolvedLook === "bar-horizontal" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19465
|
+
BarChart,
|
|
19466
|
+
{
|
|
19467
|
+
series: normalizedSeries,
|
|
19468
|
+
height,
|
|
19469
|
+
showValues,
|
|
19470
|
+
stack,
|
|
19471
|
+
timeAxis,
|
|
19472
|
+
horizontal: true,
|
|
19473
|
+
onPointClick: handlePointClick
|
|
19474
|
+
}
|
|
19475
|
+
),
|
|
19476
|
+
resolvedLook === "histogram" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19371
19477
|
BarChart,
|
|
19372
19478
|
{
|
|
19373
19479
|
series: normalizedSeries,
|
|
@@ -19379,7 +19485,7 @@ var init_Chart = __esm({
|
|
|
19379
19485
|
onPointClick: handlePointClick
|
|
19380
19486
|
}
|
|
19381
19487
|
),
|
|
19382
|
-
|
|
19488
|
+
resolvedLook === "line" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19383
19489
|
LineChart,
|
|
19384
19490
|
{
|
|
19385
19491
|
series: normalizedSeries,
|
|
@@ -19389,7 +19495,7 @@ var init_Chart = __esm({
|
|
|
19389
19495
|
onPointClick: handlePointClick
|
|
19390
19496
|
}
|
|
19391
19497
|
),
|
|
19392
|
-
|
|
19498
|
+
resolvedLook === "area" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19393
19499
|
LineChart,
|
|
19394
19500
|
{
|
|
19395
19501
|
series: normalizedSeries,
|
|
@@ -19400,7 +19506,7 @@ var init_Chart = __esm({
|
|
|
19400
19506
|
onPointClick: handlePointClick
|
|
19401
19507
|
}
|
|
19402
19508
|
),
|
|
19403
|
-
|
|
19509
|
+
resolvedLook === "pie" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19404
19510
|
PieChart,
|
|
19405
19511
|
{
|
|
19406
19512
|
data: firstSeriesData,
|
|
@@ -19409,7 +19515,7 @@ var init_Chart = __esm({
|
|
|
19409
19515
|
onPointClick: handlePointClick
|
|
19410
19516
|
}
|
|
19411
19517
|
),
|
|
19412
|
-
|
|
19518
|
+
resolvedLook === "donut" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19413
19519
|
PieChart,
|
|
19414
19520
|
{
|
|
19415
19521
|
data: firstSeriesData,
|
|
@@ -19419,7 +19525,7 @@ var init_Chart = __esm({
|
|
|
19419
19525
|
onPointClick: handlePointClick
|
|
19420
19526
|
}
|
|
19421
19527
|
),
|
|
19422
|
-
|
|
19528
|
+
resolvedLook === "scatter" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19423
19529
|
ScatterChart,
|
|
19424
19530
|
{
|
|
19425
19531
|
data: scatterData ?? [],
|
|
@@ -23081,7 +23187,7 @@ var init_useQuerySingleton = __esm({
|
|
|
23081
23187
|
queryStores = /* @__PURE__ */ new Map();
|
|
23082
23188
|
}
|
|
23083
23189
|
});
|
|
23084
|
-
var resolveFilterType; exports.FilterGroup = void 0;
|
|
23190
|
+
var resolveFilterType, lookStyles5; exports.FilterGroup = void 0;
|
|
23085
23191
|
var init_FilterGroup = __esm({
|
|
23086
23192
|
"components/molecules/FilterGroup.tsx"() {
|
|
23087
23193
|
"use client";
|
|
@@ -23095,6 +23201,13 @@ var init_FilterGroup = __esm({
|
|
|
23095
23201
|
init_useEventBus();
|
|
23096
23202
|
init_useQuerySingleton();
|
|
23097
23203
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
23204
|
+
lookStyles5 = {
|
|
23205
|
+
toolbar: "",
|
|
23206
|
+
chips: "gap-2 [&>*]:rounded-pill [&>*]:px-3 [&>*]:py-1",
|
|
23207
|
+
pills: "gap-2 [&>*]:rounded-pill",
|
|
23208
|
+
"popover-trigger": "[&>*:not(:first-child)]:hidden",
|
|
23209
|
+
"inline-column-header": "hidden"
|
|
23210
|
+
};
|
|
23098
23211
|
exports.FilterGroup = ({
|
|
23099
23212
|
entity,
|
|
23100
23213
|
filters,
|
|
@@ -23104,7 +23217,8 @@ var init_FilterGroup = __esm({
|
|
|
23104
23217
|
variant = "default",
|
|
23105
23218
|
showIcon = true,
|
|
23106
23219
|
query,
|
|
23107
|
-
isLoading
|
|
23220
|
+
isLoading,
|
|
23221
|
+
look = "toolbar"
|
|
23108
23222
|
}) => {
|
|
23109
23223
|
const eventBus = useEventBus();
|
|
23110
23224
|
const queryState = useQuerySingleton(query);
|
|
@@ -23159,63 +23273,71 @@ var init_FilterGroup = __esm({
|
|
|
23159
23273
|
}, [onClearAll, queryState, eventBus, entity, query]);
|
|
23160
23274
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
23161
23275
|
if (variant === "pills") {
|
|
23162
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23163
|
-
|
|
23164
|
-
|
|
23165
|
-
|
|
23166
|
-
|
|
23167
|
-
|
|
23168
|
-
|
|
23169
|
-
|
|
23170
|
-
exports.HStack,
|
|
23171
|
-
|
|
23172
|
-
|
|
23173
|
-
|
|
23174
|
-
|
|
23175
|
-
|
|
23176
|
-
|
|
23177
|
-
|
|
23178
|
-
|
|
23179
|
-
|
|
23180
|
-
|
|
23181
|
-
|
|
23182
|
-
|
|
23183
|
-
|
|
23184
|
-
|
|
23185
|
-
|
|
23186
|
-
|
|
23187
|
-
|
|
23188
|
-
|
|
23189
|
-
|
|
23190
|
-
|
|
23191
|
-
|
|
23192
|
-
className: cn(
|
|
23193
|
-
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
23194
|
-
"border-l-[length:var(--border-width)] border-border",
|
|
23195
|
-
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
23276
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23277
|
+
exports.HStack,
|
|
23278
|
+
{
|
|
23279
|
+
gap: "md",
|
|
23280
|
+
align: "center",
|
|
23281
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
23282
|
+
children: [
|
|
23283
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
23284
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "xs", align: "center", children: [
|
|
23285
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-medium text-muted-foreground", children: [
|
|
23286
|
+
filter.label,
|
|
23287
|
+
":"
|
|
23288
|
+
] }),
|
|
23289
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
23290
|
+
exports.HStack,
|
|
23291
|
+
{
|
|
23292
|
+
gap: "none",
|
|
23293
|
+
className: "rounded-sm overflow-hidden border-[length:var(--border-width)] border-border",
|
|
23294
|
+
children: [
|
|
23295
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23296
|
+
"button",
|
|
23297
|
+
{
|
|
23298
|
+
type: "button",
|
|
23299
|
+
onClick: () => handleFilterSelect(filter.field, null),
|
|
23300
|
+
className: cn(
|
|
23301
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
23302
|
+
!selectedValues[filter.field] ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
23303
|
+
),
|
|
23304
|
+
children: "All"
|
|
23305
|
+
}
|
|
23196
23306
|
),
|
|
23197
|
-
|
|
23198
|
-
|
|
23199
|
-
|
|
23200
|
-
|
|
23201
|
-
|
|
23202
|
-
|
|
23203
|
-
|
|
23204
|
-
|
|
23205
|
-
|
|
23206
|
-
|
|
23207
|
-
|
|
23208
|
-
|
|
23209
|
-
|
|
23210
|
-
|
|
23211
|
-
|
|
23212
|
-
|
|
23213
|
-
|
|
23214
|
-
|
|
23215
|
-
|
|
23307
|
+
filter.options?.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
23308
|
+
"button",
|
|
23309
|
+
{
|
|
23310
|
+
type: "button",
|
|
23311
|
+
onClick: () => handleFilterSelect(filter.field, option),
|
|
23312
|
+
className: cn(
|
|
23313
|
+
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
23314
|
+
"border-l-[length:var(--border-width)] border-border",
|
|
23315
|
+
selectedValues[filter.field] === option ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
23316
|
+
),
|
|
23317
|
+
children: option
|
|
23318
|
+
},
|
|
23319
|
+
option
|
|
23320
|
+
))
|
|
23321
|
+
]
|
|
23322
|
+
}
|
|
23323
|
+
)
|
|
23324
|
+
] }, filter.field)),
|
|
23325
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
23326
|
+
exports.Button,
|
|
23327
|
+
{
|
|
23328
|
+
variant: "ghost",
|
|
23329
|
+
size: "sm",
|
|
23330
|
+
onClick: handleClearAll,
|
|
23331
|
+
leftIcon: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
23332
|
+
children: "Clear"
|
|
23333
|
+
}
|
|
23334
|
+
)
|
|
23335
|
+
]
|
|
23336
|
+
}
|
|
23337
|
+
);
|
|
23216
23338
|
}
|
|
23217
23339
|
if (variant === "vertical") {
|
|
23218
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
23340
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4", lookStyles5[look], className), children: [
|
|
23219
23341
|
showIcon && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
23220
23342
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "filter", className: "h-4 w-4" }),
|
|
23221
23343
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: "Filters" })
|
|
@@ -23298,92 +23420,100 @@ var init_FilterGroup = __esm({
|
|
|
23298
23420
|
] });
|
|
23299
23421
|
}
|
|
23300
23422
|
if (variant === "compact") {
|
|
23301
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23302
|
-
|
|
23303
|
-
|
|
23304
|
-
|
|
23305
|
-
|
|
23306
|
-
|
|
23307
|
-
|
|
23308
|
-
|
|
23309
|
-
|
|
23310
|
-
|
|
23311
|
-
|
|
23312
|
-
|
|
23313
|
-
|
|
23314
|
-
|
|
23315
|
-
|
|
23316
|
-
|
|
23317
|
-
|
|
23318
|
-
|
|
23319
|
-
|
|
23320
|
-
|
|
23321
|
-
|
|
23322
|
-
|
|
23323
|
-
|
|
23324
|
-
|
|
23325
|
-
|
|
23326
|
-
|
|
23327
|
-
|
|
23328
|
-
|
|
23329
|
-
|
|
23330
|
-
|
|
23331
|
-
value: selectedValues[`${filter.field}_to`] || "",
|
|
23332
|
-
onChange: (e) => handleFilterSelect(
|
|
23333
|
-
`${filter.field}_to`,
|
|
23334
|
-
e.target.value || null
|
|
23423
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23424
|
+
exports.HStack,
|
|
23425
|
+
{
|
|
23426
|
+
gap: "sm",
|
|
23427
|
+
align: "center",
|
|
23428
|
+
className: cn("flex-wrap", lookStyles5[look], className),
|
|
23429
|
+
children: [
|
|
23430
|
+
showIcon && /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
23431
|
+
filters.map((filter) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
23432
|
+
exports.Input,
|
|
23433
|
+
{
|
|
23434
|
+
type: "date",
|
|
23435
|
+
value: selectedValues[filter.field] || "",
|
|
23436
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
23437
|
+
clearable: true,
|
|
23438
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
23439
|
+
className: "text-sm"
|
|
23440
|
+
}
|
|
23441
|
+
) : resolveFilterType(filter) === "daterange" || resolveFilterType(filter) === "date-range" ? /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "xs", align: "center", children: [
|
|
23442
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23443
|
+
exports.Input,
|
|
23444
|
+
{
|
|
23445
|
+
type: "date",
|
|
23446
|
+
value: selectedValues[`${filter.field}_from`] || "",
|
|
23447
|
+
onChange: (e) => handleFilterSelect(
|
|
23448
|
+
`${filter.field}_from`,
|
|
23449
|
+
e.target.value || null
|
|
23450
|
+
),
|
|
23451
|
+
className: "text-sm min-w-[100px]"
|
|
23452
|
+
}
|
|
23335
23453
|
),
|
|
23336
|
-
className: "text-
|
|
23337
|
-
|
|
23338
|
-
|
|
23339
|
-
|
|
23340
|
-
|
|
23341
|
-
|
|
23342
|
-
|
|
23343
|
-
|
|
23344
|
-
|
|
23345
|
-
|
|
23346
|
-
|
|
23347
|
-
|
|
23348
|
-
|
|
23349
|
-
|
|
23350
|
-
|
|
23351
|
-
{
|
|
23352
|
-
value: selectedValues[filter.field] || "all",
|
|
23353
|
-
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
23354
|
-
options: [
|
|
23355
|
-
{ value: "all", label: `All ${filter.label}` },
|
|
23356
|
-
...filter.options?.map((opt) => ({
|
|
23357
|
-
value: opt,
|
|
23358
|
-
label: opt
|
|
23359
|
-
})) || []
|
|
23360
|
-
],
|
|
23361
|
-
className: "text-sm"
|
|
23362
|
-
}
|
|
23363
|
-
) }, filter.field)),
|
|
23364
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
23365
|
-
Object.entries(selectedValues).map(([field, value]) => {
|
|
23366
|
-
const filterDef = filters.find((f3) => f3.field === field);
|
|
23367
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23368
|
-
exports.Badge,
|
|
23454
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "-" }),
|
|
23455
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23456
|
+
exports.Input,
|
|
23457
|
+
{
|
|
23458
|
+
type: "date",
|
|
23459
|
+
value: selectedValues[`${filter.field}_to`] || "",
|
|
23460
|
+
onChange: (e) => handleFilterSelect(
|
|
23461
|
+
`${filter.field}_to`,
|
|
23462
|
+
e.target.value || null
|
|
23463
|
+
),
|
|
23464
|
+
className: "text-sm min-w-[100px]"
|
|
23465
|
+
}
|
|
23466
|
+
)
|
|
23467
|
+
] }) : resolveFilterType(filter) === "text" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
23468
|
+
exports.Input,
|
|
23369
23469
|
{
|
|
23370
|
-
|
|
23371
|
-
|
|
23372
|
-
|
|
23373
|
-
|
|
23374
|
-
|
|
23375
|
-
|
|
23376
|
-
|
|
23377
|
-
|
|
23378
|
-
|
|
23379
|
-
|
|
23380
|
-
|
|
23381
|
-
|
|
23382
|
-
|
|
23383
|
-
|
|
23384
|
-
|
|
23385
|
-
|
|
23386
|
-
|
|
23470
|
+
value: selectedValues[filter.field] || "",
|
|
23471
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value || null),
|
|
23472
|
+
placeholder: filter.label,
|
|
23473
|
+
clearable: true,
|
|
23474
|
+
onClear: () => handleFilterSelect(filter.field, null),
|
|
23475
|
+
className: "text-sm"
|
|
23476
|
+
}
|
|
23477
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
23478
|
+
exports.Select,
|
|
23479
|
+
{
|
|
23480
|
+
value: selectedValues[filter.field] || "all",
|
|
23481
|
+
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
23482
|
+
options: [
|
|
23483
|
+
{ value: "all", label: `All ${filter.label}` },
|
|
23484
|
+
...filter.options?.map((opt) => ({
|
|
23485
|
+
value: opt,
|
|
23486
|
+
label: opt
|
|
23487
|
+
})) || []
|
|
23488
|
+
],
|
|
23489
|
+
className: "text-sm"
|
|
23490
|
+
}
|
|
23491
|
+
) }, filter.field)),
|
|
23492
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
23493
|
+
Object.entries(selectedValues).map(([field, value]) => {
|
|
23494
|
+
const filterDef = filters.find((f3) => f3.field === field);
|
|
23495
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
23496
|
+
exports.Badge,
|
|
23497
|
+
{
|
|
23498
|
+
variant: "primary",
|
|
23499
|
+
size: "md",
|
|
23500
|
+
className: "cursor-pointer",
|
|
23501
|
+
onClick: () => handleFilterSelect(field, null),
|
|
23502
|
+
children: [
|
|
23503
|
+
filterDef?.label,
|
|
23504
|
+
": ",
|
|
23505
|
+
value,
|
|
23506
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
23507
|
+
]
|
|
23508
|
+
},
|
|
23509
|
+
field
|
|
23510
|
+
);
|
|
23511
|
+
}),
|
|
23512
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Button, { variant: "ghost", size: "sm", onClick: handleClearAll, children: "Clear all" })
|
|
23513
|
+
] })
|
|
23514
|
+
]
|
|
23515
|
+
}
|
|
23516
|
+
);
|
|
23387
23517
|
}
|
|
23388
23518
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23389
23519
|
"div",
|
|
@@ -23392,6 +23522,7 @@ var init_FilterGroup = __esm({
|
|
|
23392
23522
|
"p-4 rounded-container",
|
|
23393
23523
|
"bg-card",
|
|
23394
23524
|
"border-[length:var(--border-width)] border-border",
|
|
23525
|
+
lookStyles5[look],
|
|
23395
23526
|
className
|
|
23396
23527
|
),
|
|
23397
23528
|
children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "md", align: "center", className: "flex-wrap", children: [
|
|
@@ -28149,7 +28280,7 @@ function composeDisplayValue(value, format, max, prefix, suffix) {
|
|
|
28149
28280
|
const withMax = max != null && max > 0 ? `${formatted} / ${max}` : formatted;
|
|
28150
28281
|
return `${prefix ?? ""}${withMax}${suffix ?? ""}`;
|
|
28151
28282
|
}
|
|
28152
|
-
var variantColor; exports.StatDisplay = void 0;
|
|
28283
|
+
var lookStyles6, variantColor; exports.StatDisplay = void 0;
|
|
28153
28284
|
var init_StatDisplay = __esm({
|
|
28154
28285
|
"components/molecules/StatDisplay.tsx"() {
|
|
28155
28286
|
"use client";
|
|
@@ -28161,6 +28292,13 @@ var init_StatDisplay = __esm({
|
|
|
28161
28292
|
init_Sparkline();
|
|
28162
28293
|
init_Icon();
|
|
28163
28294
|
init_useEventBus();
|
|
28295
|
+
lookStyles6 = {
|
|
28296
|
+
elevated: "",
|
|
28297
|
+
flat: "shadow-none border-[length:var(--border-width)] border-border",
|
|
28298
|
+
"progress-backed": "",
|
|
28299
|
+
gauge: "",
|
|
28300
|
+
sparkline: ""
|
|
28301
|
+
};
|
|
28164
28302
|
variantColor = {
|
|
28165
28303
|
default: "text-foreground",
|
|
28166
28304
|
primary: "text-primary",
|
|
@@ -28188,6 +28326,7 @@ var init_StatDisplay = __esm({
|
|
|
28188
28326
|
size = "md",
|
|
28189
28327
|
variant = "default",
|
|
28190
28328
|
compact = false,
|
|
28329
|
+
look = "elevated",
|
|
28191
28330
|
className,
|
|
28192
28331
|
isLoading = false,
|
|
28193
28332
|
error = null
|
|
@@ -28240,7 +28379,7 @@ var init_StatDisplay = __esm({
|
|
|
28240
28379
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28241
28380
|
exports.Card,
|
|
28242
28381
|
{
|
|
28243
|
-
className: cn(padSizes[size], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
28382
|
+
className: cn(padSizes[size], lookStyles6[look], clickEvent && "cursor-pointer hover:shadow-md transition-shadow", className),
|
|
28244
28383
|
onClick: clickEvent ? handleClick : void 0,
|
|
28245
28384
|
children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { align: "start", justify: "between", children: [
|
|
28246
28385
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "none", className: "space-y-1 flex-1", children: [
|
|
@@ -33923,7 +34062,8 @@ function DataTable({
|
|
|
33923
34062
|
bulkActions,
|
|
33924
34063
|
headerActions,
|
|
33925
34064
|
showTotal = true,
|
|
33926
|
-
className
|
|
34065
|
+
className,
|
|
34066
|
+
look = "dense"
|
|
33927
34067
|
}) {
|
|
33928
34068
|
const [openActionMenu, setOpenActionMenu] = React80.useState(
|
|
33929
34069
|
null
|
|
@@ -34050,6 +34190,7 @@ function DataTable({
|
|
|
34050
34190
|
{
|
|
34051
34191
|
className: cn(
|
|
34052
34192
|
"bg-card border-2 border-border rounded-none overflow-hidden",
|
|
34193
|
+
lookStyles7[look],
|
|
34053
34194
|
className
|
|
34054
34195
|
),
|
|
34055
34196
|
children: [
|
|
@@ -34276,6 +34417,7 @@ function DataTable({
|
|
|
34276
34417
|
}
|
|
34277
34418
|
);
|
|
34278
34419
|
}
|
|
34420
|
+
var lookStyles7;
|
|
34279
34421
|
var init_DataTable = __esm({
|
|
34280
34422
|
"components/organisms/DataTable.tsx"() {
|
|
34281
34423
|
"use client";
|
|
@@ -34289,6 +34431,13 @@ var init_DataTable = __esm({
|
|
|
34289
34431
|
init_useEventBus();
|
|
34290
34432
|
init_useTranslate();
|
|
34291
34433
|
init_types3();
|
|
34434
|
+
lookStyles7 = {
|
|
34435
|
+
dense: "",
|
|
34436
|
+
spacious: "[&_tbody_tr_td]:py-5 [&_thead_tr_th]:py-4",
|
|
34437
|
+
striped: "[&_tbody_tr:nth-child(odd)]:bg-muted/30",
|
|
34438
|
+
borderless: "border-0 [&_thead]:border-b-0 [&_tbody_tr]:border-b-0 [&_tbody]:divide-y-0",
|
|
34439
|
+
"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"
|
|
34440
|
+
};
|
|
34292
34441
|
DataTable.displayName = "DataTable";
|
|
34293
34442
|
}
|
|
34294
34443
|
});
|
|
@@ -37542,7 +37691,7 @@ var init_GraphCanvas = __esm({
|
|
|
37542
37691
|
exports.GraphCanvas.displayName = "GraphCanvas";
|
|
37543
37692
|
}
|
|
37544
37693
|
});
|
|
37545
|
-
exports.Header = void 0;
|
|
37694
|
+
var lookStyles8; exports.Header = void 0;
|
|
37546
37695
|
var init_Header = __esm({
|
|
37547
37696
|
"components/organisms/Header.tsx"() {
|
|
37548
37697
|
"use client";
|
|
@@ -37555,6 +37704,13 @@ var init_Header = __esm({
|
|
|
37555
37704
|
init_Typography();
|
|
37556
37705
|
init_cn();
|
|
37557
37706
|
init_useTranslate();
|
|
37707
|
+
lookStyles8 = {
|
|
37708
|
+
"compact-bar": "",
|
|
37709
|
+
hero: "py-section min-h-[200px] [&_h1]:text-display-1",
|
|
37710
|
+
breadcrumb: "py-2 text-sm [&_h1]:text-base [&_h1]:font-medium",
|
|
37711
|
+
contextual: "py-3 [&_h1]:text-lg",
|
|
37712
|
+
"editorial-banner": "py-12 [&_h1]:text-display-2 [&_h1]:font-display-bold border-b border-border"
|
|
37713
|
+
};
|
|
37558
37714
|
exports.Header = ({
|
|
37559
37715
|
logo,
|
|
37560
37716
|
logoSrc,
|
|
@@ -37572,6 +37728,7 @@ var init_Header = __esm({
|
|
|
37572
37728
|
actions,
|
|
37573
37729
|
sticky = true,
|
|
37574
37730
|
variant = "mobile",
|
|
37731
|
+
look = "compact-bar",
|
|
37575
37732
|
onLogoClick,
|
|
37576
37733
|
className
|
|
37577
37734
|
}) => {
|
|
@@ -37587,6 +37744,7 @@ var init_Header = __esm({
|
|
|
37587
37744
|
"flex items-center px-4 justify-between bg-card",
|
|
37588
37745
|
sticky && "sticky top-0 z-50",
|
|
37589
37746
|
variant === "mobile" && "lg:hidden",
|
|
37747
|
+
lookStyles8[look],
|
|
37590
37748
|
className
|
|
37591
37749
|
),
|
|
37592
37750
|
children: [
|
|
@@ -44583,7 +44741,7 @@ var init_TeamOrganism = __esm({
|
|
|
44583
44741
|
exports.TeamOrganism.displayName = "TeamOrganism";
|
|
44584
44742
|
}
|
|
44585
44743
|
});
|
|
44586
|
-
var STATUS_STYLES3; exports.Timeline = void 0;
|
|
44744
|
+
var lookStyles9, STATUS_STYLES3; exports.Timeline = void 0;
|
|
44587
44745
|
var init_Timeline = __esm({
|
|
44588
44746
|
"components/organisms/Timeline.tsx"() {
|
|
44589
44747
|
"use client";
|
|
@@ -44594,6 +44752,12 @@ var init_Timeline = __esm({
|
|
|
44594
44752
|
init_ErrorState();
|
|
44595
44753
|
init_EmptyState();
|
|
44596
44754
|
init_useTranslate();
|
|
44755
|
+
lookStyles9 = {
|
|
44756
|
+
"vertical-compact": "gap-1 [&>*]:py-1",
|
|
44757
|
+
"vertical-spacious": "",
|
|
44758
|
+
horizontal: "flex-row [&>*]:flex-row [&>*]:items-center",
|
|
44759
|
+
swimlane: "flex-row gap-6 [&>*]:flex-row [&>*]:items-center"
|
|
44760
|
+
};
|
|
44597
44761
|
STATUS_STYLES3 = {
|
|
44598
44762
|
complete: {
|
|
44599
44763
|
dotColor: "text-success",
|
|
@@ -44624,7 +44788,8 @@ var init_Timeline = __esm({
|
|
|
44624
44788
|
entity,
|
|
44625
44789
|
isLoading = false,
|
|
44626
44790
|
error,
|
|
44627
|
-
className
|
|
44791
|
+
className,
|
|
44792
|
+
look = "vertical-spacious"
|
|
44628
44793
|
}) => {
|
|
44629
44794
|
const { t } = useTranslate();
|
|
44630
44795
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
@@ -44680,7 +44845,7 @@ var init_Timeline = __esm({
|
|
|
44680
44845
|
}
|
|
44681
44846
|
return /* @__PURE__ */ jsxRuntime.jsx(exports.Card, { className: cn("p-6", className), children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "md", children: [
|
|
44682
44847
|
title && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h5", weight: "semibold", children: title }),
|
|
44683
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: "relative", children: items.map((item, idx) => {
|
|
44848
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: cn("relative", lookStyles9[look]), children: items.map((item, idx) => {
|
|
44684
44849
|
const status = item.status || "pending";
|
|
44685
44850
|
const style = STATUS_STYLES3[status] || STATUS_STYLES3.pending;
|
|
44686
44851
|
const ItemIcon = item.icon || style.icon;
|