@almadar/ui 4.57.5 → 5.1.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 +2499 -1903
- package/dist/avl/index.js +1111 -518
- package/dist/components/atoms/Icon.d.ts +7 -4
- package/dist/components/index.cjs +2064 -1636
- package/dist/components/index.js +905 -480
- package/dist/components/molecules/Breadcrumb.d.ts +4 -4
- package/dist/components/molecules/EmptyState.d.ts +1 -1
- package/dist/components/templates/DashboardLayout.d.ts +1 -1
- package/dist/context/index.cjs +199 -0
- package/dist/context/index.js +199 -0
- package/dist/context/themeTokens.d.ts +1 -1
- package/dist/docs/index.cjs +456 -98
- package/dist/docs/index.d.cts +7 -4
- package/dist/docs/index.js +429 -74
- package/dist/lib/iconFamily.d.ts +41 -0
- package/dist/marketing/index.cjs +480 -124
- package/dist/marketing/index.d.cts +7 -4
- package/dist/marketing/index.js +446 -93
- package/dist/providers/index.cjs +1933 -1505
- package/dist/providers/index.js +909 -484
- package/dist/runtime/index.cjs +2130 -1534
- package/dist/runtime/index.js +1071 -478
- package/package.json +5 -2
- package/tailwind-preset.cjs +118 -3
- package/themes/_contract.md +198 -0
- package/themes/almadar-website.css +212 -0
- package/themes/almadar.css +210 -0
- package/themes/arctic.css +210 -0
- package/themes/atelier.css +427 -0
- package/themes/copper.css +210 -0
- package/themes/ember.css +210 -0
- package/themes/forest.css +210 -0
- package/themes/gazette.css +411 -0
- package/themes/index.css +12 -0
- package/themes/kiosk.css +412 -0
- package/themes/lavender.css +210 -0
- package/themes/midnight.css +210 -0
- package/themes/minimalist.css +210 -0
- package/themes/neon.css +210 -0
- package/themes/ocean.css +210 -0
- package/themes/prism.css +406 -0
- package/themes/rose.css +210 -0
- package/themes/sand.css +210 -0
- package/themes/slate.css +210 -0
- package/themes/sunset.css +210 -0
- package/themes/terminal.css +422 -0
- package/themes/trait-wars.css +210 -0
- package/themes/wireframe.css +216 -0
package/dist/runtime/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React85 from 'react';
|
|
2
|
+
import React85__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, useSyncExternalStore, useLayoutEffect, lazy, useId } from 'react';
|
|
3
3
|
import { EventBusContext, useTraitScope, OrbitalProvider, TraitScopeProvider, VerificationProvider } from '@almadar/ui/providers';
|
|
4
4
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { clsx } from 'clsx';
|
|
7
7
|
import { twMerge } from 'tailwind-merge';
|
|
8
|
-
import * as
|
|
9
|
-
import {
|
|
8
|
+
import * as LucideIcons2 from 'lucide-react';
|
|
9
|
+
import { Loader2, X, List, Printer, ChevronRight, ChevronLeft, GitBranch, Pencil, Eye, Plus, ArrowRight, Trash, Code, FileText, WrapText, Check, Copy, AlertTriangle, Trash2, ZoomOut, ZoomIn, Download, RotateCcw, Menu as Menu$1, Package, Calendar, MoreHorizontal, Image as Image$1, Upload, ArrowLeft, HelpCircle, Search, Type, Heading1, Heading2, Heading3, ListOrdered, Quote, Minus, Eraser, TrendingUp, TrendingDown, ArrowUp, ArrowDown, MoreVertical, AlertCircle, Circle, Clock, CheckCircle2, CheckCircle, XCircle, Play, Pause, SkipForward, Bug, Send, ChevronUp, ChevronDown, Wrench, Tag, User, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
|
|
10
|
+
import * as PhosphorIcons from '@phosphor-icons/react';
|
|
11
|
+
import * as TablerIcons from '@tabler/icons-react';
|
|
12
|
+
import * as FaIcons from 'react-icons/fa';
|
|
10
13
|
import { evaluate, createMinimalContext } from '@almadar/evaluator';
|
|
11
14
|
import { useUISlots, UISlotProvider } from '@almadar/ui/context';
|
|
12
15
|
import { createPortal } from 'react-dom';
|
|
@@ -888,7 +891,7 @@ var init_Box = __esm({
|
|
|
888
891
|
fixed: "fixed",
|
|
889
892
|
sticky: "sticky"
|
|
890
893
|
};
|
|
891
|
-
Box =
|
|
894
|
+
Box = React85__default.forwardRef(
|
|
892
895
|
({
|
|
893
896
|
padding,
|
|
894
897
|
paddingX,
|
|
@@ -938,7 +941,7 @@ var init_Box = __esm({
|
|
|
938
941
|
onMouseLeave?.(e);
|
|
939
942
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
940
943
|
const isClickable = action || onClick;
|
|
941
|
-
return
|
|
944
|
+
return React85__default.createElement(
|
|
942
945
|
Component,
|
|
943
946
|
{
|
|
944
947
|
ref,
|
|
@@ -974,12 +977,378 @@ var init_Box = __esm({
|
|
|
974
977
|
Box.displayName = "Box";
|
|
975
978
|
}
|
|
976
979
|
});
|
|
980
|
+
function getCurrentIconFamily() {
|
|
981
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
982
|
+
return DEFAULT_FAMILY;
|
|
983
|
+
}
|
|
984
|
+
const raw = getComputedStyle(document.documentElement).getPropertyValue("--icon-family").trim().replace(/^["']|["']$/g, "");
|
|
985
|
+
return VALID_FAMILIES.includes(raw) ? raw : DEFAULT_FAMILY;
|
|
986
|
+
}
|
|
987
|
+
function ensureObserver() {
|
|
988
|
+
if (typeof window === "undefined" || observer) return;
|
|
989
|
+
observer = new MutationObserver(() => {
|
|
990
|
+
const next = getCurrentIconFamily();
|
|
991
|
+
if (next !== cachedFamily) {
|
|
992
|
+
cachedFamily = next;
|
|
993
|
+
listeners.forEach((fn) => fn());
|
|
994
|
+
}
|
|
995
|
+
});
|
|
996
|
+
observer.observe(document.documentElement, {
|
|
997
|
+
attributes: true,
|
|
998
|
+
attributeFilter: ["data-theme", "style"]
|
|
999
|
+
});
|
|
1000
|
+
cachedFamily = getCurrentIconFamily();
|
|
1001
|
+
}
|
|
1002
|
+
function subscribeIconFamily(notify) {
|
|
1003
|
+
ensureObserver();
|
|
1004
|
+
listeners.add(notify);
|
|
1005
|
+
return () => {
|
|
1006
|
+
listeners.delete(notify);
|
|
1007
|
+
};
|
|
1008
|
+
}
|
|
1009
|
+
function getIconFamilySnapshot() {
|
|
1010
|
+
if (cachedFamily !== null) return cachedFamily;
|
|
1011
|
+
cachedFamily = getCurrentIconFamily();
|
|
1012
|
+
return cachedFamily;
|
|
1013
|
+
}
|
|
1014
|
+
function getIconFamilyServerSnapshot() {
|
|
1015
|
+
return DEFAULT_FAMILY;
|
|
1016
|
+
}
|
|
1017
|
+
function useIconFamily() {
|
|
1018
|
+
return useSyncExternalStore(
|
|
1019
|
+
subscribeIconFamily,
|
|
1020
|
+
getIconFamilySnapshot,
|
|
1021
|
+
getIconFamilyServerSnapshot
|
|
1022
|
+
);
|
|
1023
|
+
}
|
|
977
1024
|
function kebabToPascal(name) {
|
|
978
1025
|
return name.split("-").map((part) => {
|
|
979
1026
|
if (/^\d+$/.test(part)) return part;
|
|
980
1027
|
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
981
1028
|
}).join("");
|
|
982
1029
|
}
|
|
1030
|
+
function resolveLucide(name) {
|
|
1031
|
+
if (lucideAliases[name]) return lucideAliases[name];
|
|
1032
|
+
const pascal = kebabToPascal(name);
|
|
1033
|
+
const lucideMap = LucideIcons2;
|
|
1034
|
+
const direct = lucideMap[pascal];
|
|
1035
|
+
if (direct && typeof direct === "object") return direct;
|
|
1036
|
+
const asIs = lucideMap[name];
|
|
1037
|
+
if (asIs && typeof asIs === "object") return asIs;
|
|
1038
|
+
return LucideIcons2.HelpCircle;
|
|
1039
|
+
}
|
|
1040
|
+
function resolvePhosphor(name, weight) {
|
|
1041
|
+
const target = phosphorAliases[name] ?? kebabToPascal(name);
|
|
1042
|
+
const map = PhosphorIcons;
|
|
1043
|
+
const PhosphorComp = map[target];
|
|
1044
|
+
if (!PhosphorComp || typeof PhosphorComp !== "object") return null;
|
|
1045
|
+
const Component = PhosphorComp;
|
|
1046
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1047
|
+
Component,
|
|
1048
|
+
{
|
|
1049
|
+
weight,
|
|
1050
|
+
className: props.className,
|
|
1051
|
+
style: props.style,
|
|
1052
|
+
size: props.size ?? "1em"
|
|
1053
|
+
}
|
|
1054
|
+
);
|
|
1055
|
+
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
1056
|
+
return Adapter;
|
|
1057
|
+
}
|
|
1058
|
+
function resolveTabler(name) {
|
|
1059
|
+
const suffix = tablerAliases[name] ?? kebabToPascal(name);
|
|
1060
|
+
const target = `Icon${suffix}`;
|
|
1061
|
+
const map = TablerIcons;
|
|
1062
|
+
const TablerComp = map[target];
|
|
1063
|
+
if (!TablerComp || typeof TablerComp !== "object") return null;
|
|
1064
|
+
const Component = TablerComp;
|
|
1065
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1066
|
+
Component,
|
|
1067
|
+
{
|
|
1068
|
+
stroke: props.strokeWidth ?? 1.5,
|
|
1069
|
+
className: props.className,
|
|
1070
|
+
style: props.style,
|
|
1071
|
+
size: props.size ?? 24
|
|
1072
|
+
}
|
|
1073
|
+
);
|
|
1074
|
+
Adapter.displayName = `Tabler.${target}`;
|
|
1075
|
+
return Adapter;
|
|
1076
|
+
}
|
|
1077
|
+
function resolveFa(name) {
|
|
1078
|
+
const suffix = faAliases[name] ?? kebabToPascal(name);
|
|
1079
|
+
const target = `Fa${suffix}`;
|
|
1080
|
+
const map = FaIcons;
|
|
1081
|
+
const FaComp = map[target];
|
|
1082
|
+
if (!FaComp || typeof FaComp !== "function") return null;
|
|
1083
|
+
const Component = FaComp;
|
|
1084
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1085
|
+
Component,
|
|
1086
|
+
{
|
|
1087
|
+
className: props.className,
|
|
1088
|
+
style: props.style,
|
|
1089
|
+
size: props.size ?? "1em"
|
|
1090
|
+
}
|
|
1091
|
+
);
|
|
1092
|
+
Adapter.displayName = `Fa.${target}`;
|
|
1093
|
+
return Adapter;
|
|
1094
|
+
}
|
|
1095
|
+
function warnFallback(name, family) {
|
|
1096
|
+
const key = `${family}::${name}`;
|
|
1097
|
+
if (warned.has(key)) return;
|
|
1098
|
+
warned.add(key);
|
|
1099
|
+
if (typeof console !== "undefined") {
|
|
1100
|
+
console.warn(
|
|
1101
|
+
`[iconFamily] No '${name}' mapping in family '${family}'; falling back to lucide. Add an alias in lib/iconFamily.ts.`
|
|
1102
|
+
);
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
function makeLucideAdapter(name) {
|
|
1106
|
+
const LucideComp = resolveLucide(name);
|
|
1107
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1108
|
+
LucideComp,
|
|
1109
|
+
{
|
|
1110
|
+
className: props.className,
|
|
1111
|
+
strokeWidth: props.strokeWidth,
|
|
1112
|
+
style: props.style,
|
|
1113
|
+
size: props.size
|
|
1114
|
+
}
|
|
1115
|
+
);
|
|
1116
|
+
Adapter.displayName = `Lucide.${name}`;
|
|
1117
|
+
return Adapter;
|
|
1118
|
+
}
|
|
1119
|
+
function resolveIconForFamily(name, family) {
|
|
1120
|
+
switch (family) {
|
|
1121
|
+
case "lucide":
|
|
1122
|
+
return makeLucideAdapter(name);
|
|
1123
|
+
case "phosphor-outline": {
|
|
1124
|
+
const p2 = resolvePhosphor(name, "regular");
|
|
1125
|
+
if (p2) return p2;
|
|
1126
|
+
warnFallback(name, family);
|
|
1127
|
+
return makeLucideAdapter(name);
|
|
1128
|
+
}
|
|
1129
|
+
case "phosphor-fill": {
|
|
1130
|
+
const p2 = resolvePhosphor(name, "fill");
|
|
1131
|
+
if (p2) return p2;
|
|
1132
|
+
warnFallback(name, family);
|
|
1133
|
+
return makeLucideAdapter(name);
|
|
1134
|
+
}
|
|
1135
|
+
case "phosphor-duotone": {
|
|
1136
|
+
const p2 = resolvePhosphor(name, "duotone");
|
|
1137
|
+
if (p2) return p2;
|
|
1138
|
+
warnFallback(name, family);
|
|
1139
|
+
return makeLucideAdapter(name);
|
|
1140
|
+
}
|
|
1141
|
+
case "tabler": {
|
|
1142
|
+
const t = resolveTabler(name);
|
|
1143
|
+
if (t) return t;
|
|
1144
|
+
warnFallback(name, family);
|
|
1145
|
+
return makeLucideAdapter(name);
|
|
1146
|
+
}
|
|
1147
|
+
case "fa-solid": {
|
|
1148
|
+
const f3 = resolveFa(name);
|
|
1149
|
+
if (f3) return f3;
|
|
1150
|
+
warnFallback(name, family);
|
|
1151
|
+
return makeLucideAdapter(name);
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
1156
|
+
var init_iconFamily = __esm({
|
|
1157
|
+
"lib/iconFamily.tsx"() {
|
|
1158
|
+
"use client";
|
|
1159
|
+
DEFAULT_FAMILY = "lucide";
|
|
1160
|
+
VALID_FAMILIES = [
|
|
1161
|
+
"lucide",
|
|
1162
|
+
"phosphor-outline",
|
|
1163
|
+
"phosphor-fill",
|
|
1164
|
+
"phosphor-duotone",
|
|
1165
|
+
"tabler",
|
|
1166
|
+
"fa-solid"
|
|
1167
|
+
];
|
|
1168
|
+
cachedFamily = null;
|
|
1169
|
+
listeners = /* @__PURE__ */ new Set();
|
|
1170
|
+
observer = null;
|
|
1171
|
+
lucideAliases = {
|
|
1172
|
+
close: LucideIcons2.X,
|
|
1173
|
+
trash: LucideIcons2.Trash2,
|
|
1174
|
+
loader: LucideIcons2.Loader2,
|
|
1175
|
+
stop: LucideIcons2.Square,
|
|
1176
|
+
volume: LucideIcons2.Volume2,
|
|
1177
|
+
"volume-off": LucideIcons2.VolumeX,
|
|
1178
|
+
refresh: LucideIcons2.RefreshCw,
|
|
1179
|
+
share: LucideIcons2.Share2,
|
|
1180
|
+
"sort-asc": LucideIcons2.ArrowUpNarrowWide,
|
|
1181
|
+
"sort-desc": LucideIcons2.ArrowDownNarrowWide
|
|
1182
|
+
};
|
|
1183
|
+
phosphorAliases = {
|
|
1184
|
+
// lucide name → phosphor PascalCase name
|
|
1185
|
+
search: "MagnifyingGlass",
|
|
1186
|
+
close: "X",
|
|
1187
|
+
loader: "CircleNotch",
|
|
1188
|
+
refresh: "ArrowsClockwise",
|
|
1189
|
+
"sort-asc": "SortAscending",
|
|
1190
|
+
"sort-desc": "SortDescending",
|
|
1191
|
+
"chevron-down": "CaretDown",
|
|
1192
|
+
"chevron-up": "CaretUp",
|
|
1193
|
+
"chevron-left": "CaretLeft",
|
|
1194
|
+
"chevron-right": "CaretRight",
|
|
1195
|
+
"help-circle": "Question",
|
|
1196
|
+
"alert-triangle": "Warning",
|
|
1197
|
+
"alert-circle": "WarningCircle",
|
|
1198
|
+
"check-circle": "CheckCircle",
|
|
1199
|
+
"x-circle": "XCircle",
|
|
1200
|
+
edit: "PencilSimple",
|
|
1201
|
+
pencil: "PencilSimple",
|
|
1202
|
+
trash: "Trash",
|
|
1203
|
+
send: "PaperPlaneRight",
|
|
1204
|
+
external: "ArrowSquareOut",
|
|
1205
|
+
"external-link": "ArrowSquareOut",
|
|
1206
|
+
plus: "Plus",
|
|
1207
|
+
minus: "Minus",
|
|
1208
|
+
x: "X",
|
|
1209
|
+
check: "Check",
|
|
1210
|
+
star: "Star",
|
|
1211
|
+
heart: "Heart",
|
|
1212
|
+
home: "House",
|
|
1213
|
+
user: "User",
|
|
1214
|
+
users: "Users",
|
|
1215
|
+
settings: "Gear",
|
|
1216
|
+
menu: "List",
|
|
1217
|
+
"arrow-up": "ArrowUp",
|
|
1218
|
+
"arrow-down": "ArrowDown",
|
|
1219
|
+
"arrow-left": "ArrowLeft",
|
|
1220
|
+
"arrow-right": "ArrowRight",
|
|
1221
|
+
copy: "Copy",
|
|
1222
|
+
download: "DownloadSimple",
|
|
1223
|
+
upload: "UploadSimple",
|
|
1224
|
+
filter: "Funnel",
|
|
1225
|
+
calendar: "Calendar",
|
|
1226
|
+
clock: "Clock",
|
|
1227
|
+
bell: "Bell",
|
|
1228
|
+
mail: "Envelope",
|
|
1229
|
+
envelope: "Envelope",
|
|
1230
|
+
lock: "Lock",
|
|
1231
|
+
unlock: "LockOpen",
|
|
1232
|
+
eye: "Eye",
|
|
1233
|
+
"eye-off": "EyeSlash",
|
|
1234
|
+
more: "DotsThree",
|
|
1235
|
+
"more-vertical": "DotsThreeVertical",
|
|
1236
|
+
info: "Info",
|
|
1237
|
+
warning: "Warning",
|
|
1238
|
+
error: "WarningCircle"
|
|
1239
|
+
};
|
|
1240
|
+
tablerAliases = {
|
|
1241
|
+
// lucide name → tabler suffix (after the `Icon` prefix)
|
|
1242
|
+
search: "Search",
|
|
1243
|
+
close: "X",
|
|
1244
|
+
loader: "Loader2",
|
|
1245
|
+
refresh: "Refresh",
|
|
1246
|
+
"sort-asc": "SortAscending",
|
|
1247
|
+
"sort-desc": "SortDescending",
|
|
1248
|
+
"chevron-down": "ChevronDown",
|
|
1249
|
+
"chevron-up": "ChevronUp",
|
|
1250
|
+
"chevron-left": "ChevronLeft",
|
|
1251
|
+
"chevron-right": "ChevronRight",
|
|
1252
|
+
"help-circle": "HelpCircle",
|
|
1253
|
+
"alert-triangle": "AlertTriangle",
|
|
1254
|
+
"alert-circle": "AlertCircle",
|
|
1255
|
+
"check-circle": "CircleCheck",
|
|
1256
|
+
"x-circle": "CircleX",
|
|
1257
|
+
edit: "Pencil",
|
|
1258
|
+
trash: "Trash",
|
|
1259
|
+
send: "Send",
|
|
1260
|
+
external: "ExternalLink",
|
|
1261
|
+
plus: "Plus",
|
|
1262
|
+
x: "X",
|
|
1263
|
+
check: "Check",
|
|
1264
|
+
star: "Star",
|
|
1265
|
+
heart: "Heart",
|
|
1266
|
+
home: "Home",
|
|
1267
|
+
user: "User",
|
|
1268
|
+
users: "Users",
|
|
1269
|
+
settings: "Settings",
|
|
1270
|
+
menu: "Menu2",
|
|
1271
|
+
copy: "Copy",
|
|
1272
|
+
download: "Download",
|
|
1273
|
+
upload: "Upload",
|
|
1274
|
+
filter: "Filter",
|
|
1275
|
+
calendar: "Calendar",
|
|
1276
|
+
clock: "Clock",
|
|
1277
|
+
bell: "Bell",
|
|
1278
|
+
mail: "Mail",
|
|
1279
|
+
envelope: "Mail",
|
|
1280
|
+
lock: "Lock",
|
|
1281
|
+
unlock: "LockOpen",
|
|
1282
|
+
eye: "Eye",
|
|
1283
|
+
"eye-off": "EyeOff",
|
|
1284
|
+
more: "Dots",
|
|
1285
|
+
"more-vertical": "DotsVertical",
|
|
1286
|
+
info: "InfoCircle"
|
|
1287
|
+
};
|
|
1288
|
+
faAliases = {
|
|
1289
|
+
// lucide name → fa-solid suffix (after the `Fa` prefix)
|
|
1290
|
+
search: "Search",
|
|
1291
|
+
close: "Times",
|
|
1292
|
+
x: "Times",
|
|
1293
|
+
loader: "Spinner",
|
|
1294
|
+
refresh: "Sync",
|
|
1295
|
+
"sort-asc": "SortAmountUp",
|
|
1296
|
+
"sort-desc": "SortAmountDown",
|
|
1297
|
+
"chevron-down": "ChevronDown",
|
|
1298
|
+
"chevron-up": "ChevronUp",
|
|
1299
|
+
"chevron-left": "ChevronLeft",
|
|
1300
|
+
"chevron-right": "ChevronRight",
|
|
1301
|
+
"help-circle": "QuestionCircle",
|
|
1302
|
+
"alert-triangle": "ExclamationTriangle",
|
|
1303
|
+
"alert-circle": "ExclamationCircle",
|
|
1304
|
+
"check-circle": "CheckCircle",
|
|
1305
|
+
"x-circle": "TimesCircle",
|
|
1306
|
+
edit: "Edit",
|
|
1307
|
+
pencil: "Pencil",
|
|
1308
|
+
trash: "Trash",
|
|
1309
|
+
send: "PaperPlane",
|
|
1310
|
+
external: "ExternalLinkAlt",
|
|
1311
|
+
plus: "Plus",
|
|
1312
|
+
minus: "Minus",
|
|
1313
|
+
check: "Check",
|
|
1314
|
+
star: "Star",
|
|
1315
|
+
heart: "Heart",
|
|
1316
|
+
home: "Home",
|
|
1317
|
+
user: "User",
|
|
1318
|
+
users: "Users",
|
|
1319
|
+
settings: "Cog",
|
|
1320
|
+
menu: "Bars",
|
|
1321
|
+
"arrow-up": "ArrowUp",
|
|
1322
|
+
"arrow-down": "ArrowDown",
|
|
1323
|
+
"arrow-left": "ArrowLeft",
|
|
1324
|
+
"arrow-right": "ArrowRight",
|
|
1325
|
+
copy: "Copy",
|
|
1326
|
+
download: "Download",
|
|
1327
|
+
upload: "Upload",
|
|
1328
|
+
filter: "Filter",
|
|
1329
|
+
calendar: "Calendar",
|
|
1330
|
+
clock: "Clock",
|
|
1331
|
+
bell: "Bell",
|
|
1332
|
+
mail: "Envelope",
|
|
1333
|
+
envelope: "Envelope",
|
|
1334
|
+
lock: "Lock",
|
|
1335
|
+
unlock: "LockOpen",
|
|
1336
|
+
eye: "Eye",
|
|
1337
|
+
"eye-off": "EyeSlash",
|
|
1338
|
+
more: "EllipsisH",
|
|
1339
|
+
"more-vertical": "EllipsisV",
|
|
1340
|
+
info: "InfoCircle",
|
|
1341
|
+
warning: "ExclamationTriangle"
|
|
1342
|
+
};
|
|
1343
|
+
warned = /* @__PURE__ */ new Set();
|
|
1344
|
+
}
|
|
1345
|
+
});
|
|
1346
|
+
function kebabToPascal2(name) {
|
|
1347
|
+
return name.split("-").map((part) => {
|
|
1348
|
+
if (/^\d+$/.test(part)) return part;
|
|
1349
|
+
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
1350
|
+
}).join("");
|
|
1351
|
+
}
|
|
983
1352
|
function resolveIcon(name) {
|
|
984
1353
|
const cached = resolvedCache.get(name);
|
|
985
1354
|
if (cached) return cached;
|
|
@@ -989,28 +1358,30 @@ function resolveIcon(name) {
|
|
|
989
1358
|
}
|
|
990
1359
|
function doResolve(name) {
|
|
991
1360
|
if (iconAliases[name]) return iconAliases[name];
|
|
992
|
-
const pascalName =
|
|
993
|
-
const directLookup =
|
|
1361
|
+
const pascalName = kebabToPascal2(name);
|
|
1362
|
+
const directLookup = LucideIcons2[pascalName];
|
|
994
1363
|
if (directLookup && typeof directLookup === "object") return directLookup;
|
|
995
|
-
const asIs =
|
|
1364
|
+
const asIs = LucideIcons2[name];
|
|
996
1365
|
if (asIs && typeof asIs === "object") return asIs;
|
|
997
|
-
return
|
|
1366
|
+
return LucideIcons2.HelpCircle;
|
|
998
1367
|
}
|
|
999
1368
|
var iconAliases, resolvedCache, sizeClasses, animationClasses, Icon;
|
|
1000
1369
|
var init_Icon = __esm({
|
|
1001
1370
|
"components/atoms/Icon.tsx"() {
|
|
1371
|
+
"use client";
|
|
1002
1372
|
init_cn();
|
|
1373
|
+
init_iconFamily();
|
|
1003
1374
|
iconAliases = {
|
|
1004
|
-
"close":
|
|
1005
|
-
"trash":
|
|
1006
|
-
"loader":
|
|
1007
|
-
"stop":
|
|
1008
|
-
"volume":
|
|
1009
|
-
"volume-off":
|
|
1010
|
-
"refresh":
|
|
1011
|
-
"share":
|
|
1012
|
-
"sort-asc":
|
|
1013
|
-
"sort-desc":
|
|
1375
|
+
"close": LucideIcons2.X,
|
|
1376
|
+
"trash": LucideIcons2.Trash2,
|
|
1377
|
+
"loader": LucideIcons2.Loader2,
|
|
1378
|
+
"stop": LucideIcons2.Square,
|
|
1379
|
+
"volume": LucideIcons2.Volume2,
|
|
1380
|
+
"volume-off": LucideIcons2.VolumeX,
|
|
1381
|
+
"refresh": LucideIcons2.RefreshCw,
|
|
1382
|
+
"share": LucideIcons2.Share2,
|
|
1383
|
+
"sort-asc": LucideIcons2.ArrowUpNarrowWide,
|
|
1384
|
+
"sort-desc": LucideIcons2.ArrowDownNarrowWide
|
|
1014
1385
|
};
|
|
1015
1386
|
resolvedCache = /* @__PURE__ */ new Map();
|
|
1016
1387
|
sizeClasses = {
|
|
@@ -1035,22 +1406,50 @@ var init_Icon = __esm({
|
|
|
1035
1406
|
strokeWidth,
|
|
1036
1407
|
style
|
|
1037
1408
|
}) => {
|
|
1038
|
-
const
|
|
1409
|
+
const family = useIconFamily();
|
|
1410
|
+
const RenderedComponent = React85__default.useMemo(() => {
|
|
1411
|
+
if (icon) return null;
|
|
1412
|
+
return name ? resolveIconForFamily(name, family) : null;
|
|
1413
|
+
}, [icon, name, family]);
|
|
1039
1414
|
const effectiveStrokeWidth = strokeWidth ?? void 0;
|
|
1415
|
+
const inlineStyle = {
|
|
1416
|
+
...effectiveStrokeWidth === void 0 ? { strokeWidth: "var(--icon-stroke-width, 2)" } : {},
|
|
1417
|
+
...style
|
|
1418
|
+
};
|
|
1419
|
+
const composedClassName = cn(
|
|
1420
|
+
sizeClasses[size],
|
|
1421
|
+
animationClasses[animation],
|
|
1422
|
+
color ? color : "text-current",
|
|
1423
|
+
className
|
|
1424
|
+
);
|
|
1425
|
+
if (icon) {
|
|
1426
|
+
const Direct = icon;
|
|
1427
|
+
return /* @__PURE__ */ jsx(
|
|
1428
|
+
Direct,
|
|
1429
|
+
{
|
|
1430
|
+
className: composedClassName,
|
|
1431
|
+
strokeWidth: effectiveStrokeWidth,
|
|
1432
|
+
style: inlineStyle
|
|
1433
|
+
}
|
|
1434
|
+
);
|
|
1435
|
+
}
|
|
1436
|
+
if (RenderedComponent) {
|
|
1437
|
+
return /* @__PURE__ */ jsx(
|
|
1438
|
+
RenderedComponent,
|
|
1439
|
+
{
|
|
1440
|
+
className: composedClassName,
|
|
1441
|
+
strokeWidth: effectiveStrokeWidth,
|
|
1442
|
+
style: inlineStyle
|
|
1443
|
+
}
|
|
1444
|
+
);
|
|
1445
|
+
}
|
|
1446
|
+
const Fallback = LucideIcons2.HelpCircle;
|
|
1040
1447
|
return /* @__PURE__ */ jsx(
|
|
1041
|
-
|
|
1448
|
+
Fallback,
|
|
1042
1449
|
{
|
|
1043
|
-
className:
|
|
1044
|
-
sizeClasses[size],
|
|
1045
|
-
animationClasses[animation],
|
|
1046
|
-
color ? color : "text-current",
|
|
1047
|
-
className
|
|
1048
|
-
),
|
|
1450
|
+
className: composedClassName,
|
|
1049
1451
|
strokeWidth: effectiveStrokeWidth,
|
|
1050
|
-
style:
|
|
1051
|
-
...effectiveStrokeWidth === void 0 ? { strokeWidth: "var(--icon-stroke-width, 2)" } : {},
|
|
1052
|
-
...style
|
|
1053
|
-
}
|
|
1452
|
+
style: inlineStyle
|
|
1054
1453
|
}
|
|
1055
1454
|
);
|
|
1056
1455
|
};
|
|
@@ -1060,14 +1459,13 @@ var init_Icon = __esm({
|
|
|
1060
1459
|
function resolveIconProp(value, sizeClass) {
|
|
1061
1460
|
if (!value) return null;
|
|
1062
1461
|
if (typeof value === "string") {
|
|
1063
|
-
|
|
1064
|
-
return Resolved ? /* @__PURE__ */ jsx(Resolved, { className: sizeClass }) : null;
|
|
1462
|
+
return /* @__PURE__ */ jsx(Icon, { name: value, className: sizeClass });
|
|
1065
1463
|
}
|
|
1066
1464
|
if (typeof value === "function") {
|
|
1067
1465
|
const IconComp = value;
|
|
1068
1466
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
1069
1467
|
}
|
|
1070
|
-
if (
|
|
1468
|
+
if (React85__default.isValidElement(value)) {
|
|
1071
1469
|
return value;
|
|
1072
1470
|
}
|
|
1073
1471
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -1140,10 +1538,10 @@ var init_Button = __esm({
|
|
|
1140
1538
|
};
|
|
1141
1539
|
iconSizeStyles = {
|
|
1142
1540
|
sm: "h-3.5 w-3.5",
|
|
1143
|
-
md: "h-
|
|
1541
|
+
md: "h-icon-default w-icon-default",
|
|
1144
1542
|
lg: "h-5 w-5"
|
|
1145
1543
|
};
|
|
1146
|
-
Button =
|
|
1544
|
+
Button = React85__default.forwardRef(
|
|
1147
1545
|
({
|
|
1148
1546
|
className,
|
|
1149
1547
|
variant = "primary",
|
|
@@ -1193,7 +1591,7 @@ var init_Button = __esm({
|
|
|
1193
1591
|
...props,
|
|
1194
1592
|
"data-testid": props["data-testid"] ?? (action ? `action-${action}` : void 0),
|
|
1195
1593
|
children: [
|
|
1196
|
-
isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "h-
|
|
1594
|
+
isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "h-icon-default w-icon-default animate-spin" }) : resolvedLeftIcon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: resolvedLeftIcon }),
|
|
1197
1595
|
children || label,
|
|
1198
1596
|
resolvedRightIcon && !isLoading && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: resolvedRightIcon })
|
|
1199
1597
|
]
|
|
@@ -1208,7 +1606,7 @@ var Dialog;
|
|
|
1208
1606
|
var init_Dialog = __esm({
|
|
1209
1607
|
"components/atoms/Dialog.tsx"() {
|
|
1210
1608
|
init_cn();
|
|
1211
|
-
Dialog =
|
|
1609
|
+
Dialog = React85__default.forwardRef(
|
|
1212
1610
|
({
|
|
1213
1611
|
role = "dialog",
|
|
1214
1612
|
"aria-modal": ariaModal = true,
|
|
@@ -1543,7 +1941,7 @@ var init_Modal = __esm({
|
|
|
1543
1941
|
// Reset browser-default dialog chrome — we own styling.
|
|
1544
1942
|
"m-0 p-0 border-0 bg-transparent",
|
|
1545
1943
|
// Pre-existing dialog frame
|
|
1546
|
-
"pointer-events-auto w-full flex flex-col bg-surface border shadow-
|
|
1944
|
+
"pointer-events-auto w-full flex flex-col bg-surface border shadow-elevation-dialog rounded-container",
|
|
1547
1945
|
// Desktop sizing + viewport-aware floor.
|
|
1548
1946
|
sizeClasses2[size],
|
|
1549
1947
|
minWidthClasses[size],
|
|
@@ -1603,7 +2001,7 @@ var init_Modal = __esm({
|
|
|
1603
2001
|
{
|
|
1604
2002
|
variant: "ghost",
|
|
1605
2003
|
size: "sm",
|
|
1606
|
-
icon:
|
|
2004
|
+
icon: "x",
|
|
1607
2005
|
onClick: handleClose,
|
|
1608
2006
|
"data-event": "CLOSE",
|
|
1609
2007
|
"aria-label": "Close modal"
|
|
@@ -1760,7 +2158,7 @@ var init_Drawer = __esm({
|
|
|
1760
2158
|
{
|
|
1761
2159
|
variant: "ghost",
|
|
1762
2160
|
size: "sm",
|
|
1763
|
-
icon:
|
|
2161
|
+
icon: "x",
|
|
1764
2162
|
onClick: handleClose,
|
|
1765
2163
|
"aria-label": "Close drawer",
|
|
1766
2164
|
className: cn(!title && "ml-auto")
|
|
@@ -1854,13 +2252,10 @@ var init_Badge = __esm({
|
|
|
1854
2252
|
md: "px-2.5 py-1 text-sm",
|
|
1855
2253
|
lg: "px-3 py-1.5 text-base"
|
|
1856
2254
|
};
|
|
1857
|
-
Badge =
|
|
2255
|
+
Badge = React85__default.forwardRef(
|
|
1858
2256
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
1859
2257
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1860
|
-
const resolvedIcon = typeof icon === "string" ? (
|
|
1861
|
-
const I = resolveIcon(icon);
|
|
1862
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes3[size] }) : null;
|
|
1863
|
-
})() : icon;
|
|
2258
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes3[size] }) : icon;
|
|
1864
2259
|
return /* @__PURE__ */ jsxs(
|
|
1865
2260
|
"span",
|
|
1866
2261
|
{
|
|
@@ -1920,10 +2315,10 @@ var init_Toast = __esm({
|
|
|
1920
2315
|
warning: "bg-card border-[length:var(--border-width)] border-warning"
|
|
1921
2316
|
};
|
|
1922
2317
|
iconMap = {
|
|
1923
|
-
success:
|
|
1924
|
-
error:
|
|
1925
|
-
info:
|
|
1926
|
-
warning:
|
|
2318
|
+
success: "check-circle",
|
|
2319
|
+
error: "alert-circle",
|
|
2320
|
+
info: "info",
|
|
2321
|
+
warning: "alert-triangle"
|
|
1927
2322
|
};
|
|
1928
2323
|
iconColors = {
|
|
1929
2324
|
success: "text-success",
|
|
@@ -1970,7 +2365,7 @@ var init_Toast = __esm({
|
|
|
1970
2365
|
// `min-w-[300px]` only kicks in at `sm:` and above so a phone
|
|
1971
2366
|
// viewport doesn't get a toast wider than the screen near the
|
|
1972
2367
|
// edge. `max-w-[calc(100vw-2rem)]` clamps to viewport too.
|
|
1973
|
-
"border-l-4 p-4 shadow min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
|
|
2368
|
+
"border-l-4 p-4 shadow-elevation-toast min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
|
|
1974
2369
|
"rounded-sm",
|
|
1975
2370
|
variantClasses[variant],
|
|
1976
2371
|
className
|
|
@@ -1980,7 +2375,7 @@ var init_Toast = __esm({
|
|
|
1980
2375
|
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
1981
2376
|
Icon,
|
|
1982
2377
|
{
|
|
1983
|
-
|
|
2378
|
+
name: iconMap[variant],
|
|
1984
2379
|
size: "md",
|
|
1985
2380
|
className: iconColors[variant]
|
|
1986
2381
|
}
|
|
@@ -1997,7 +2392,7 @@ var init_Toast = __esm({
|
|
|
1997
2392
|
{
|
|
1998
2393
|
variant: "ghost",
|
|
1999
2394
|
size: "sm",
|
|
2000
|
-
icon:
|
|
2395
|
+
icon: "x",
|
|
2001
2396
|
onClick: handleDismiss,
|
|
2002
2397
|
"aria-label": "Dismiss toast",
|
|
2003
2398
|
className: "flex-shrink-0"
|
|
@@ -2168,7 +2563,7 @@ var init_SvgFlow = __esm({
|
|
|
2168
2563
|
opacity = 1,
|
|
2169
2564
|
className
|
|
2170
2565
|
}) => {
|
|
2171
|
-
const markerId =
|
|
2566
|
+
const markerId = React85__default.useMemo(() => {
|
|
2172
2567
|
flowIdCounter += 1;
|
|
2173
2568
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
2174
2569
|
}, []);
|
|
@@ -2711,7 +3106,7 @@ var init_SvgRing = __esm({
|
|
|
2711
3106
|
className,
|
|
2712
3107
|
label
|
|
2713
3108
|
}) => {
|
|
2714
|
-
const gradientId =
|
|
3109
|
+
const gradientId = React85__default.useMemo(() => {
|
|
2715
3110
|
ringIdCounter += 1;
|
|
2716
3111
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
2717
3112
|
}, []);
|
|
@@ -2872,7 +3267,8 @@ var Input;
|
|
|
2872
3267
|
var init_Input = __esm({
|
|
2873
3268
|
"components/atoms/Input.tsx"() {
|
|
2874
3269
|
init_cn();
|
|
2875
|
-
|
|
3270
|
+
init_Icon();
|
|
3271
|
+
Input = React85__default.forwardRef(
|
|
2876
3272
|
({
|
|
2877
3273
|
className,
|
|
2878
3274
|
inputType,
|
|
@@ -2890,7 +3286,7 @@ var init_Input = __esm({
|
|
|
2890
3286
|
...props
|
|
2891
3287
|
}, ref) => {
|
|
2892
3288
|
const type = inputType || htmlType || "text";
|
|
2893
|
-
const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-
|
|
3289
|
+
const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-icon-default w-icon-default" });
|
|
2894
3290
|
const showClearButton = clearable && value && String(value).length > 0;
|
|
2895
3291
|
const baseClassName = cn(
|
|
2896
3292
|
"block w-full rounded-sm transition-all duration-[var(--transition-fast)]",
|
|
@@ -2922,7 +3318,7 @@ var init_Input = __esm({
|
|
|
2922
3318
|
]
|
|
2923
3319
|
}
|
|
2924
3320
|
),
|
|
2925
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsx(
|
|
3321
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: "h-icon-default w-icon-default" }) })
|
|
2926
3322
|
] });
|
|
2927
3323
|
}
|
|
2928
3324
|
if (type === "textarea") {
|
|
@@ -2976,7 +3372,7 @@ var init_Input = __esm({
|
|
|
2976
3372
|
type: "button",
|
|
2977
3373
|
onClick: onClear,
|
|
2978
3374
|
className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground hover:text-foreground",
|
|
2979
|
-
children: /* @__PURE__ */ jsx(
|
|
3375
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-icon-default w-icon-default" })
|
|
2980
3376
|
}
|
|
2981
3377
|
),
|
|
2982
3378
|
rightIcon && !showClearButton && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground", children: rightIcon })
|
|
@@ -2990,7 +3386,7 @@ var Label;
|
|
|
2990
3386
|
var init_Label = __esm({
|
|
2991
3387
|
"components/atoms/Label.tsx"() {
|
|
2992
3388
|
init_cn();
|
|
2993
|
-
Label =
|
|
3389
|
+
Label = React85__default.forwardRef(
|
|
2994
3390
|
({ className, required, children, ...props }, ref) => {
|
|
2995
3391
|
return /* @__PURE__ */ jsxs(
|
|
2996
3392
|
"label",
|
|
@@ -3016,7 +3412,7 @@ var Textarea;
|
|
|
3016
3412
|
var init_Textarea = __esm({
|
|
3017
3413
|
"components/atoms/Textarea.tsx"() {
|
|
3018
3414
|
init_cn();
|
|
3019
|
-
Textarea =
|
|
3415
|
+
Textarea = React85__default.forwardRef(
|
|
3020
3416
|
({ className, error, ...props }, ref) => {
|
|
3021
3417
|
return /* @__PURE__ */ jsx(
|
|
3022
3418
|
"textarea",
|
|
@@ -3045,7 +3441,8 @@ var Select;
|
|
|
3045
3441
|
var init_Select = __esm({
|
|
3046
3442
|
"components/atoms/Select.tsx"() {
|
|
3047
3443
|
init_cn();
|
|
3048
|
-
|
|
3444
|
+
init_Icon();
|
|
3445
|
+
Select = React85__default.forwardRef(
|
|
3049
3446
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
3050
3447
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
3051
3448
|
/* @__PURE__ */ jsxs(
|
|
@@ -3076,7 +3473,7 @@ var init_Select = __esm({
|
|
|
3076
3473
|
]
|
|
3077
3474
|
}
|
|
3078
3475
|
),
|
|
3079
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsx(
|
|
3476
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: "h-icon-default w-icon-default text-foreground" }) })
|
|
3080
3477
|
] });
|
|
3081
3478
|
}
|
|
3082
3479
|
);
|
|
@@ -3087,7 +3484,7 @@ var Checkbox;
|
|
|
3087
3484
|
var init_Checkbox = __esm({
|
|
3088
3485
|
"components/atoms/Checkbox.tsx"() {
|
|
3089
3486
|
init_cn();
|
|
3090
|
-
Checkbox =
|
|
3487
|
+
Checkbox = React85__default.forwardRef(
|
|
3091
3488
|
({ className, label, id, ...props }, ref) => {
|
|
3092
3489
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
3093
3490
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -3129,23 +3526,23 @@ var init_Card = __esm({
|
|
|
3129
3526
|
default: [
|
|
3130
3527
|
"bg-card",
|
|
3131
3528
|
"border-[length:var(--border-width)] border-border",
|
|
3132
|
-
"shadow-
|
|
3529
|
+
"shadow-elevation-card",
|
|
3133
3530
|
"transition-all duration-[var(--transition-normal)]",
|
|
3134
|
-
"hover:shadow-
|
|
3531
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
3135
3532
|
].join(" "),
|
|
3136
3533
|
bordered: [
|
|
3137
3534
|
"bg-card",
|
|
3138
3535
|
"border-[length:var(--border-width)] border-border",
|
|
3139
|
-
"shadow-
|
|
3536
|
+
"shadow-elevation-card",
|
|
3140
3537
|
"transition-all duration-[var(--transition-normal)]",
|
|
3141
|
-
"hover:shadow-
|
|
3538
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
3142
3539
|
].join(" "),
|
|
3143
3540
|
elevated: [
|
|
3144
3541
|
"bg-card",
|
|
3145
3542
|
"border-[length:var(--border-width)] border-border",
|
|
3146
3543
|
"shadow",
|
|
3147
3544
|
"transition-all duration-[var(--transition-normal)]",
|
|
3148
|
-
"hover:shadow-
|
|
3545
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
3149
3546
|
].join(" "),
|
|
3150
3547
|
// Interactive variant with theme-specific hover effects
|
|
3151
3548
|
interactive: [
|
|
@@ -3154,22 +3551,22 @@ var init_Card = __esm({
|
|
|
3154
3551
|
"shadow",
|
|
3155
3552
|
"cursor-pointer",
|
|
3156
3553
|
"transition-all duration-[var(--transition-normal)]",
|
|
3157
|
-
"hover:shadow-
|
|
3554
|
+
"hover:shadow-elevation-dialog"
|
|
3158
3555
|
].join(" ")
|
|
3159
3556
|
};
|
|
3160
3557
|
paddingStyles2 = {
|
|
3161
3558
|
none: "",
|
|
3162
|
-
sm: "p-
|
|
3163
|
-
md: "p-
|
|
3164
|
-
lg: "p-
|
|
3559
|
+
sm: "p-card-sm",
|
|
3560
|
+
md: "p-card-md",
|
|
3561
|
+
lg: "p-card-lg"
|
|
3165
3562
|
};
|
|
3166
3563
|
shadowStyles2 = {
|
|
3167
3564
|
none: "shadow-none",
|
|
3168
|
-
sm: "shadow-
|
|
3565
|
+
sm: "shadow-elevation-card",
|
|
3169
3566
|
md: "shadow",
|
|
3170
|
-
lg: "shadow-
|
|
3567
|
+
lg: "shadow-elevation-dialog"
|
|
3171
3568
|
};
|
|
3172
|
-
Card =
|
|
3569
|
+
Card = React85__default.forwardRef(
|
|
3173
3570
|
({
|
|
3174
3571
|
className,
|
|
3175
3572
|
variant = "bordered",
|
|
@@ -3185,7 +3582,7 @@ var init_Card = __esm({
|
|
|
3185
3582
|
{
|
|
3186
3583
|
ref,
|
|
3187
3584
|
className: cn(
|
|
3188
|
-
"rounded-
|
|
3585
|
+
"rounded-container",
|
|
3189
3586
|
"transition-all duration-[var(--transition-normal)]",
|
|
3190
3587
|
variantStyles4[variant],
|
|
3191
3588
|
paddingStyles2[padding],
|
|
@@ -3205,9 +3602,9 @@ var init_Card = __esm({
|
|
|
3205
3602
|
}
|
|
3206
3603
|
);
|
|
3207
3604
|
Card.displayName = "Card";
|
|
3208
|
-
CardHeader =
|
|
3605
|
+
CardHeader = React85__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
3209
3606
|
CardHeader.displayName = "CardHeader";
|
|
3210
|
-
CardTitle =
|
|
3607
|
+
CardTitle = React85__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3211
3608
|
"h3",
|
|
3212
3609
|
{
|
|
3213
3610
|
ref,
|
|
@@ -3220,11 +3617,11 @@ var init_Card = __esm({
|
|
|
3220
3617
|
}
|
|
3221
3618
|
));
|
|
3222
3619
|
CardTitle.displayName = "CardTitle";
|
|
3223
|
-
CardContent =
|
|
3620
|
+
CardContent = React85__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
3224
3621
|
CardContent.displayName = "CardContent";
|
|
3225
3622
|
CardBody = CardContent;
|
|
3226
3623
|
CardBody.displayName = "CardBody";
|
|
3227
|
-
CardFooter =
|
|
3624
|
+
CardFooter = React85__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3228
3625
|
"div",
|
|
3229
3626
|
{
|
|
3230
3627
|
ref,
|
|
@@ -3279,7 +3676,7 @@ var init_FilterPill = __esm({
|
|
|
3279
3676
|
md: "w-3.5 h-3.5",
|
|
3280
3677
|
lg: "w-4 h-4"
|
|
3281
3678
|
};
|
|
3282
|
-
FilterPill =
|
|
3679
|
+
FilterPill = React85__default.forwardRef(
|
|
3283
3680
|
({
|
|
3284
3681
|
className,
|
|
3285
3682
|
variant = "default",
|
|
@@ -3304,17 +3701,13 @@ var init_FilterPill = __esm({
|
|
|
3304
3701
|
onRemove?.();
|
|
3305
3702
|
if (removeEvent) eventBus.emit(`UI:${removeEvent}`, { label: payloadLabel });
|
|
3306
3703
|
}, [onRemove, removeEvent, eventBus, payloadLabel]);
|
|
3307
|
-
const
|
|
3308
|
-
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
3309
|
-
const I = resolveIcon(icon);
|
|
3310
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes[size] }) : null;
|
|
3311
|
-
})() : icon;
|
|
3704
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon;
|
|
3312
3705
|
return /* @__PURE__ */ jsxs(
|
|
3313
3706
|
"span",
|
|
3314
3707
|
{
|
|
3315
3708
|
ref,
|
|
3316
3709
|
className: cn(
|
|
3317
|
-
"inline-flex items-center gap-1 font-bold rounded-
|
|
3710
|
+
"inline-flex items-center gap-1 font-bold rounded-pill",
|
|
3318
3711
|
variantStyles5[variant],
|
|
3319
3712
|
sizeStyles4[size],
|
|
3320
3713
|
(onClick || clickEvent) && "cursor-pointer",
|
|
@@ -3337,7 +3730,7 @@ var init_FilterPill = __esm({
|
|
|
3337
3730
|
className: cn(
|
|
3338
3731
|
"ml-0.5 rounded-full hover:bg-foreground/10 transition-colors flex items-center justify-center"
|
|
3339
3732
|
),
|
|
3340
|
-
children:
|
|
3733
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: iconSizes[size] })
|
|
3341
3734
|
}
|
|
3342
3735
|
)
|
|
3343
3736
|
]
|
|
@@ -3352,13 +3745,14 @@ var sizeStyles5, Spinner;
|
|
|
3352
3745
|
var init_Spinner = __esm({
|
|
3353
3746
|
"components/atoms/Spinner.tsx"() {
|
|
3354
3747
|
init_cn();
|
|
3748
|
+
init_Icon();
|
|
3355
3749
|
sizeStyles5 = {
|
|
3356
3750
|
xs: "h-3 w-3",
|
|
3357
3751
|
sm: "h-4 w-4",
|
|
3358
3752
|
md: "h-6 w-6",
|
|
3359
3753
|
lg: "h-8 w-8"
|
|
3360
3754
|
};
|
|
3361
|
-
Spinner =
|
|
3755
|
+
Spinner = React85__default.forwardRef(
|
|
3362
3756
|
({ className, size = "md", ...props }, ref) => {
|
|
3363
3757
|
return /* @__PURE__ */ jsx(
|
|
3364
3758
|
"div",
|
|
@@ -3366,7 +3760,7 @@ var init_Spinner = __esm({
|
|
|
3366
3760
|
ref,
|
|
3367
3761
|
className: cn("text-foreground", className),
|
|
3368
3762
|
...props,
|
|
3369
|
-
children: /* @__PURE__ */ jsx(
|
|
3763
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "loader", className: cn("animate-spin", sizeStyles5[size]) })
|
|
3370
3764
|
}
|
|
3371
3765
|
);
|
|
3372
3766
|
}
|
|
@@ -3385,6 +3779,7 @@ var sizeClasses3, iconSizeClasses, statusSizeClasses, statusClasses, badgeSizeCl
|
|
|
3385
3779
|
var init_Avatar = __esm({
|
|
3386
3780
|
"components/atoms/Avatar.tsx"() {
|
|
3387
3781
|
"use client";
|
|
3782
|
+
init_Icon();
|
|
3388
3783
|
init_cn();
|
|
3389
3784
|
init_useEventBus();
|
|
3390
3785
|
sizeClasses3 = {
|
|
@@ -3415,8 +3810,8 @@ var init_Avatar = __esm({
|
|
|
3415
3810
|
busy: "bg-error"
|
|
3416
3811
|
};
|
|
3417
3812
|
badgeSizeClasses = {
|
|
3418
|
-
xs: "w-3 h-3 text-
|
|
3419
|
-
sm: "w-4 h-4 text-
|
|
3813
|
+
xs: "w-3 h-3 text-xs",
|
|
3814
|
+
sm: "w-4 h-4 text-xs",
|
|
3420
3815
|
md: "w-5 h-5 text-xs",
|
|
3421
3816
|
lg: "w-6 h-6 text-sm",
|
|
3422
3817
|
xl: "w-7 h-7 text-base"
|
|
@@ -3426,7 +3821,7 @@ var init_Avatar = __esm({
|
|
|
3426
3821
|
alt,
|
|
3427
3822
|
name,
|
|
3428
3823
|
initials: providedInitials,
|
|
3429
|
-
icon:
|
|
3824
|
+
icon: IconComponent,
|
|
3430
3825
|
size = "md",
|
|
3431
3826
|
status,
|
|
3432
3827
|
badge,
|
|
@@ -3439,7 +3834,7 @@ var init_Avatar = __esm({
|
|
|
3439
3834
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
3440
3835
|
const hasImage = !!src;
|
|
3441
3836
|
const hasInitials = !!initials;
|
|
3442
|
-
const hasIcon = !!
|
|
3837
|
+
const hasIcon = !!IconComponent;
|
|
3443
3838
|
const getInitialsBackground = () => "bg-primary text-primary-foreground";
|
|
3444
3839
|
const isClickable = action || onClick;
|
|
3445
3840
|
const handleClick = () => {
|
|
@@ -3483,8 +3878,8 @@ var init_Avatar = __esm({
|
|
|
3483
3878
|
),
|
|
3484
3879
|
children: initials.substring(0, 2).toUpperCase()
|
|
3485
3880
|
}
|
|
3486
|
-
) : hasIcon ? /* @__PURE__ */ jsx(
|
|
3487
|
-
|
|
3881
|
+
) : hasIcon && IconComponent ? /* @__PURE__ */ jsx(
|
|
3882
|
+
IconComponent,
|
|
3488
3883
|
{
|
|
3489
3884
|
className: cn(
|
|
3490
3885
|
"text-foreground",
|
|
@@ -3492,8 +3887,9 @@ var init_Avatar = __esm({
|
|
|
3492
3887
|
)
|
|
3493
3888
|
}
|
|
3494
3889
|
) : /* @__PURE__ */ jsx(
|
|
3495
|
-
|
|
3890
|
+
Icon,
|
|
3496
3891
|
{
|
|
3892
|
+
name: "user",
|
|
3497
3893
|
className: cn(
|
|
3498
3894
|
"text-foreground",
|
|
3499
3895
|
iconSizeClasses[size]
|
|
@@ -3688,7 +4084,7 @@ var init_ProgressBar = __esm({
|
|
|
3688
4084
|
"div",
|
|
3689
4085
|
{
|
|
3690
4086
|
className: cn(
|
|
3691
|
-
"h-full transition-all duration-
|
|
4087
|
+
"h-full transition-all duration-normal ease-emphasized",
|
|
3692
4088
|
colorClasses[effectiveColor]
|
|
3693
4089
|
),
|
|
3694
4090
|
style: { width: `${percentage}%` },
|
|
@@ -3744,7 +4140,7 @@ var init_ProgressBar = __esm({
|
|
|
3744
4140
|
strokeDashoffset: offset,
|
|
3745
4141
|
strokeLinecap: "round",
|
|
3746
4142
|
className: cn(
|
|
3747
|
-
"transition-all duration-
|
|
4143
|
+
"transition-all duration-normal ease-emphasized",
|
|
3748
4144
|
colorClasses[effectiveColor]
|
|
3749
4145
|
)
|
|
3750
4146
|
}
|
|
@@ -3783,7 +4179,7 @@ var init_ProgressBar = __esm({
|
|
|
3783
4179
|
"div",
|
|
3784
4180
|
{
|
|
3785
4181
|
className: cn(
|
|
3786
|
-
"h-full transition-all duration-
|
|
4182
|
+
"h-full transition-all duration-normal ease-emphasized",
|
|
3787
4183
|
(isActive || isPartial) && colorClasses[effectiveColor]
|
|
3788
4184
|
),
|
|
3789
4185
|
style: {
|
|
@@ -3806,7 +4202,7 @@ var Radio;
|
|
|
3806
4202
|
var init_Radio = __esm({
|
|
3807
4203
|
"components/atoms/Radio.tsx"() {
|
|
3808
4204
|
init_cn();
|
|
3809
|
-
Radio =
|
|
4205
|
+
Radio = React85__default.forwardRef(
|
|
3810
4206
|
({
|
|
3811
4207
|
label,
|
|
3812
4208
|
helperText,
|
|
@@ -3978,7 +4374,7 @@ var init_Switch = __esm({
|
|
|
3978
4374
|
"components/atoms/Switch.tsx"() {
|
|
3979
4375
|
"use client";
|
|
3980
4376
|
init_cn();
|
|
3981
|
-
Switch =
|
|
4377
|
+
Switch = React85.forwardRef(
|
|
3982
4378
|
({
|
|
3983
4379
|
checked,
|
|
3984
4380
|
defaultChecked = false,
|
|
@@ -3989,10 +4385,10 @@ var init_Switch = __esm({
|
|
|
3989
4385
|
name,
|
|
3990
4386
|
className
|
|
3991
4387
|
}, ref) => {
|
|
3992
|
-
const [isChecked, setIsChecked] =
|
|
4388
|
+
const [isChecked, setIsChecked] = React85.useState(
|
|
3993
4389
|
checked !== void 0 ? checked : defaultChecked
|
|
3994
4390
|
);
|
|
3995
|
-
|
|
4391
|
+
React85.useEffect(() => {
|
|
3996
4392
|
if (checked !== void 0) {
|
|
3997
4393
|
setIsChecked(checked);
|
|
3998
4394
|
}
|
|
@@ -4368,6 +4764,37 @@ var init_ThemeContext = __esm({
|
|
|
4368
4764
|
displayName: "Copper",
|
|
4369
4765
|
hasLightMode: true,
|
|
4370
4766
|
hasDarkMode: true
|
|
4767
|
+
},
|
|
4768
|
+
// Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
|
|
4769
|
+
{
|
|
4770
|
+
name: "prism",
|
|
4771
|
+
displayName: "Prism",
|
|
4772
|
+
hasLightMode: true,
|
|
4773
|
+
hasDarkMode: true
|
|
4774
|
+
},
|
|
4775
|
+
{
|
|
4776
|
+
name: "gazette",
|
|
4777
|
+
displayName: "Gazette",
|
|
4778
|
+
hasLightMode: true,
|
|
4779
|
+
hasDarkMode: true
|
|
4780
|
+
},
|
|
4781
|
+
{
|
|
4782
|
+
name: "terminal",
|
|
4783
|
+
displayName: "Terminal",
|
|
4784
|
+
hasLightMode: true,
|
|
4785
|
+
hasDarkMode: true
|
|
4786
|
+
},
|
|
4787
|
+
{
|
|
4788
|
+
name: "atelier",
|
|
4789
|
+
displayName: "Atelier",
|
|
4790
|
+
hasLightMode: true,
|
|
4791
|
+
hasDarkMode: true
|
|
4792
|
+
},
|
|
4793
|
+
{
|
|
4794
|
+
name: "kiosk",
|
|
4795
|
+
displayName: "Kiosk",
|
|
4796
|
+
hasLightMode: true,
|
|
4797
|
+
hasDarkMode: true
|
|
4371
4798
|
}
|
|
4372
4799
|
];
|
|
4373
4800
|
ThemeContext = createContext(void 0);
|
|
@@ -4377,6 +4804,7 @@ var sizeClasses4, iconSizes2, ThemeToggle;
|
|
|
4377
4804
|
var init_ThemeToggle = __esm({
|
|
4378
4805
|
"components/atoms/ThemeToggle.tsx"() {
|
|
4379
4806
|
"use client";
|
|
4807
|
+
init_Icon();
|
|
4380
4808
|
init_cn();
|
|
4381
4809
|
init_ThemeContext();
|
|
4382
4810
|
sizeClasses4 = {
|
|
@@ -4406,7 +4834,7 @@ var init_ThemeToggle = __esm({
|
|
|
4406
4834
|
"text-foreground",
|
|
4407
4835
|
"hover:bg-muted border-[length:var(--border-width)] border-transparent hover:border-border",
|
|
4408
4836
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
4409
|
-
"transition-colors duration-
|
|
4837
|
+
"transition-colors duration-fast",
|
|
4410
4838
|
sizeClasses4[size],
|
|
4411
4839
|
className
|
|
4412
4840
|
),
|
|
@@ -4414,13 +4842,15 @@ var init_ThemeToggle = __esm({
|
|
|
4414
4842
|
title: isDark ? "Switch to light mode" : "Switch to dark mode",
|
|
4415
4843
|
children: [
|
|
4416
4844
|
isDark ? /* @__PURE__ */ jsx(
|
|
4417
|
-
|
|
4845
|
+
Icon,
|
|
4418
4846
|
{
|
|
4847
|
+
name: "sun",
|
|
4419
4848
|
className: cn(iconSizes2[size], "text-foreground")
|
|
4420
4849
|
}
|
|
4421
4850
|
) : /* @__PURE__ */ jsx(
|
|
4422
|
-
|
|
4851
|
+
Icon,
|
|
4423
4852
|
{
|
|
4853
|
+
name: "moon",
|
|
4424
4854
|
className: cn(iconSizes2[size], "text-foreground")
|
|
4425
4855
|
}
|
|
4426
4856
|
),
|
|
@@ -4453,7 +4883,7 @@ var init_FlipContainer = __esm({
|
|
|
4453
4883
|
children: /* @__PURE__ */ jsx(
|
|
4454
4884
|
Box,
|
|
4455
4885
|
{
|
|
4456
|
-
className: "relative w-full h-full transition-transform duration-
|
|
4886
|
+
className: "relative w-full h-full transition-transform duration-slow",
|
|
4457
4887
|
style: {
|
|
4458
4888
|
transformStyle: "preserve-3d",
|
|
4459
4889
|
transform: flipped ? "rotateY(180deg)" : "rotateY(0deg)"
|
|
@@ -4471,7 +4901,7 @@ var Aside;
|
|
|
4471
4901
|
var init_Aside = __esm({
|
|
4472
4902
|
"components/atoms/Aside.tsx"() {
|
|
4473
4903
|
init_cn();
|
|
4474
|
-
Aside =
|
|
4904
|
+
Aside = React85__default.forwardRef(
|
|
4475
4905
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
4476
4906
|
);
|
|
4477
4907
|
Aside.displayName = "Aside";
|
|
@@ -4511,7 +4941,7 @@ var init_ConditionalWrapper = __esm({
|
|
|
4511
4941
|
Box,
|
|
4512
4942
|
{
|
|
4513
4943
|
overflow: "hidden",
|
|
4514
|
-
className: `transition-all duration-
|
|
4944
|
+
className: `transition-all duration-fast ${isVisible ? "opacity-100 max-h-[1000px]" : "opacity-0 max-h-0"}`,
|
|
4515
4945
|
children: isVisible ? children : fallback
|
|
4516
4946
|
}
|
|
4517
4947
|
);
|
|
@@ -4548,8 +4978,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
4548
4978
|
position = "top",
|
|
4549
4979
|
className
|
|
4550
4980
|
}) => {
|
|
4551
|
-
const [isVisible, setIsVisible] =
|
|
4552
|
-
const timeoutRef =
|
|
4981
|
+
const [isVisible, setIsVisible] = React85__default.useState(false);
|
|
4982
|
+
const timeoutRef = React85__default.useRef(null);
|
|
4553
4983
|
const handleMouseEnter = () => {
|
|
4554
4984
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4555
4985
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -4558,7 +4988,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
4558
4988
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4559
4989
|
setIsVisible(false);
|
|
4560
4990
|
};
|
|
4561
|
-
|
|
4991
|
+
React85__default.useEffect(() => {
|
|
4562
4992
|
return () => {
|
|
4563
4993
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4564
4994
|
};
|
|
@@ -4768,7 +5198,7 @@ var init_StatusDot = __esm({
|
|
|
4768
5198
|
md: "w-2.5 h-2.5",
|
|
4769
5199
|
lg: "w-3 h-3"
|
|
4770
5200
|
};
|
|
4771
|
-
StatusDot =
|
|
5201
|
+
StatusDot = React85__default.forwardRef(
|
|
4772
5202
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
4773
5203
|
return /* @__PURE__ */ jsx(
|
|
4774
5204
|
"span",
|
|
@@ -4807,21 +5237,22 @@ function resolveColor(dir, invert) {
|
|
|
4807
5237
|
const isGood = invert ? !isPositive : isPositive;
|
|
4808
5238
|
return isGood ? "text-success" : "text-error";
|
|
4809
5239
|
}
|
|
4810
|
-
var sizeStyles7,
|
|
5240
|
+
var sizeStyles7, iconNameMap, TrendIndicator;
|
|
4811
5241
|
var init_TrendIndicator = __esm({
|
|
4812
5242
|
"components/atoms/TrendIndicator.tsx"() {
|
|
5243
|
+
init_Icon();
|
|
4813
5244
|
init_cn();
|
|
4814
5245
|
sizeStyles7 = {
|
|
4815
5246
|
sm: { icon: "w-3 h-3", text: "text-xs" },
|
|
4816
5247
|
md: { icon: "w-4 h-4", text: "text-sm" },
|
|
4817
5248
|
lg: { icon: "w-5 h-5", text: "text-base" }
|
|
4818
5249
|
};
|
|
4819
|
-
|
|
4820
|
-
up:
|
|
4821
|
-
down:
|
|
4822
|
-
flat:
|
|
5250
|
+
iconNameMap = {
|
|
5251
|
+
up: "trending-up",
|
|
5252
|
+
down: "trending-down",
|
|
5253
|
+
flat: "arrow-right"
|
|
4823
5254
|
};
|
|
4824
|
-
TrendIndicator =
|
|
5255
|
+
TrendIndicator = React85__default.forwardRef(
|
|
4825
5256
|
({
|
|
4826
5257
|
className,
|
|
4827
5258
|
value,
|
|
@@ -4834,7 +5265,7 @@ var init_TrendIndicator = __esm({
|
|
|
4834
5265
|
}, ref) => {
|
|
4835
5266
|
const dir = resolveDirection(value, direction);
|
|
4836
5267
|
const colorClass = resolveColor(dir, invert);
|
|
4837
|
-
const
|
|
5268
|
+
const iconName = iconNameMap[dir];
|
|
4838
5269
|
const styles = sizeStyles7[size];
|
|
4839
5270
|
const formattedValue = value !== void 0 ? `${value > 0 ? "+" : ""}${value}%` : void 0;
|
|
4840
5271
|
const ariaLabel = label ?? (formattedValue ? `${dir} ${formattedValue}` : dir);
|
|
@@ -4852,7 +5283,7 @@ var init_TrendIndicator = __esm({
|
|
|
4852
5283
|
"aria-label": ariaLabel,
|
|
4853
5284
|
...props,
|
|
4854
5285
|
children: [
|
|
4855
|
-
/* @__PURE__ */ jsx(
|
|
5286
|
+
/* @__PURE__ */ jsx(Icon, { name: iconName, className: styles.icon }),
|
|
4856
5287
|
showValue && formattedValue && /* @__PURE__ */ jsx("span", { children: formattedValue })
|
|
4857
5288
|
]
|
|
4858
5289
|
}
|
|
@@ -4888,7 +5319,7 @@ var init_RangeSlider = __esm({
|
|
|
4888
5319
|
md: "w-4 h-4",
|
|
4889
5320
|
lg: "w-5 h-5"
|
|
4890
5321
|
};
|
|
4891
|
-
RangeSlider =
|
|
5322
|
+
RangeSlider = React85__default.forwardRef(
|
|
4892
5323
|
({
|
|
4893
5324
|
className,
|
|
4894
5325
|
min = 0,
|
|
@@ -5421,7 +5852,7 @@ var init_ContentSection = __esm({
|
|
|
5421
5852
|
md: "py-16",
|
|
5422
5853
|
lg: "py-24"
|
|
5423
5854
|
};
|
|
5424
|
-
ContentSection =
|
|
5855
|
+
ContentSection = React85__default.forwardRef(
|
|
5425
5856
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
5426
5857
|
return /* @__PURE__ */ jsx(
|
|
5427
5858
|
Box,
|
|
@@ -5955,7 +6386,7 @@ var init_AnimatedReveal = __esm({
|
|
|
5955
6386
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
5956
6387
|
"none": {}
|
|
5957
6388
|
};
|
|
5958
|
-
AnimatedReveal =
|
|
6389
|
+
AnimatedReveal = React85__default.forwardRef(
|
|
5959
6390
|
({
|
|
5960
6391
|
trigger = "scroll",
|
|
5961
6392
|
animation = "fade-up",
|
|
@@ -5985,7 +6416,7 @@ var init_AnimatedReveal = __esm({
|
|
|
5985
6416
|
if (trigger !== "scroll") return;
|
|
5986
6417
|
const el = internalRef.current;
|
|
5987
6418
|
if (!el) return;
|
|
5988
|
-
const
|
|
6419
|
+
const observer2 = new IntersectionObserver(
|
|
5989
6420
|
([entry]) => {
|
|
5990
6421
|
if (entry.isIntersecting) {
|
|
5991
6422
|
if (once && hasAnimated.current) return;
|
|
@@ -5997,8 +6428,8 @@ var init_AnimatedReveal = __esm({
|
|
|
5997
6428
|
},
|
|
5998
6429
|
{ threshold }
|
|
5999
6430
|
);
|
|
6000
|
-
|
|
6001
|
-
return () =>
|
|
6431
|
+
observer2.observe(el);
|
|
6432
|
+
return () => observer2.disconnect();
|
|
6002
6433
|
}, [trigger, threshold, once]);
|
|
6003
6434
|
const handleMouseEnter = trigger === "hover" ? () => setIsAnimated(true) : void 0;
|
|
6004
6435
|
const handleMouseLeave = trigger === "hover" ? () => {
|
|
@@ -6115,7 +6546,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
6115
6546
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
6116
6547
|
"use client";
|
|
6117
6548
|
init_cn();
|
|
6118
|
-
AnimatedGraphic =
|
|
6549
|
+
AnimatedGraphic = React85__default.forwardRef(
|
|
6119
6550
|
({
|
|
6120
6551
|
src,
|
|
6121
6552
|
svgContent,
|
|
@@ -6138,7 +6569,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
6138
6569
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
6139
6570
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
6140
6571
|
const prevAnimateRef = useRef(animate);
|
|
6141
|
-
const setRef =
|
|
6572
|
+
const setRef = React85__default.useCallback(
|
|
6142
6573
|
(node) => {
|
|
6143
6574
|
containerRef.current = node;
|
|
6144
6575
|
if (typeof ref === "function") ref(node);
|
|
@@ -6363,9 +6794,9 @@ function ScoreDisplay({
|
|
|
6363
6794
|
...rest
|
|
6364
6795
|
}) {
|
|
6365
6796
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
6366
|
-
const [displayValue, setDisplayValue] =
|
|
6367
|
-
const [isAnimating, setIsAnimating] =
|
|
6368
|
-
|
|
6797
|
+
const [displayValue, setDisplayValue] = React85.useState(resolvedValue);
|
|
6798
|
+
const [isAnimating, setIsAnimating] = React85.useState(false);
|
|
6799
|
+
React85.useEffect(() => {
|
|
6369
6800
|
if (!animated || displayValue === resolvedValue) {
|
|
6370
6801
|
setDisplayValue(resolvedValue);
|
|
6371
6802
|
return;
|
|
@@ -6435,9 +6866,9 @@ function ControlButton({
|
|
|
6435
6866
|
className
|
|
6436
6867
|
}) {
|
|
6437
6868
|
const eventBus = useEventBus();
|
|
6438
|
-
const [isPressed, setIsPressed] =
|
|
6869
|
+
const [isPressed, setIsPressed] = React85.useState(false);
|
|
6439
6870
|
const actualPressed = pressed ?? isPressed;
|
|
6440
|
-
const handlePointerDown =
|
|
6871
|
+
const handlePointerDown = React85.useCallback(
|
|
6441
6872
|
(e) => {
|
|
6442
6873
|
e.preventDefault();
|
|
6443
6874
|
if (disabled) return;
|
|
@@ -6447,7 +6878,7 @@ function ControlButton({
|
|
|
6447
6878
|
},
|
|
6448
6879
|
[disabled, pressEvent, eventBus, onPress]
|
|
6449
6880
|
);
|
|
6450
|
-
const handlePointerUp =
|
|
6881
|
+
const handlePointerUp = React85.useCallback(
|
|
6451
6882
|
(e) => {
|
|
6452
6883
|
e.preventDefault();
|
|
6453
6884
|
if (disabled) return;
|
|
@@ -6457,7 +6888,7 @@ function ControlButton({
|
|
|
6457
6888
|
},
|
|
6458
6889
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
6459
6890
|
);
|
|
6460
|
-
const handlePointerLeave =
|
|
6891
|
+
const handlePointerLeave = React85.useCallback(
|
|
6461
6892
|
(e) => {
|
|
6462
6893
|
if (isPressed) {
|
|
6463
6894
|
setIsPressed(false);
|
|
@@ -7363,9 +7794,9 @@ function MiniMap({
|
|
|
7363
7794
|
viewportRect,
|
|
7364
7795
|
className
|
|
7365
7796
|
}) {
|
|
7366
|
-
const canvasRef =
|
|
7367
|
-
const frameRef =
|
|
7368
|
-
|
|
7797
|
+
const canvasRef = React85.useRef(null);
|
|
7798
|
+
const frameRef = React85.useRef(0);
|
|
7799
|
+
React85.useEffect(() => {
|
|
7369
7800
|
const canvas = canvasRef.current;
|
|
7370
7801
|
if (!canvas) return;
|
|
7371
7802
|
const ctx = canvas.getContext("2d");
|
|
@@ -7484,6 +7915,7 @@ var init_ErrorState = __esm({
|
|
|
7484
7915
|
init_Box();
|
|
7485
7916
|
init_Stack();
|
|
7486
7917
|
init_Typography();
|
|
7918
|
+
init_Icon();
|
|
7487
7919
|
init_useEventBus();
|
|
7488
7920
|
init_useTranslate();
|
|
7489
7921
|
ErrorState = ({
|
|
@@ -7511,7 +7943,7 @@ var init_ErrorState = __esm({
|
|
|
7511
7943
|
className
|
|
7512
7944
|
),
|
|
7513
7945
|
children: [
|
|
7514
|
-
/* @__PURE__ */ jsx(Box, { className: "mb-4 rounded-full bg-error/10 p-3", children: /* @__PURE__ */ jsx(
|
|
7946
|
+
/* @__PURE__ */ jsx(Box, { className: "mb-4 rounded-full bg-error/10 p-3", children: /* @__PURE__ */ jsx(Icon, { name: "alert-circle", className: "h-8 w-8 text-error" }) }),
|
|
7515
7947
|
/* @__PURE__ */ jsx(Typography, { variant: "h3", className: "text-lg font-medium text-foreground", children: resolvedTitle }),
|
|
7516
7948
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-1 text-muted-foreground max-w-sm", children: resolvedMessage }),
|
|
7517
7949
|
(onRetry || retryEvent) && /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "mt-4", onClick: handleRetry, children: t("error.retry") })
|
|
@@ -7528,7 +7960,7 @@ var init_ErrorBoundary = __esm({
|
|
|
7528
7960
|
"use client";
|
|
7529
7961
|
init_cn();
|
|
7530
7962
|
init_ErrorState();
|
|
7531
|
-
ErrorBoundary = class extends
|
|
7963
|
+
ErrorBoundary = class extends React85__default.Component {
|
|
7532
7964
|
constructor(props) {
|
|
7533
7965
|
super(props);
|
|
7534
7966
|
__publicField(this, "reset", () => {
|
|
@@ -7899,7 +8331,7 @@ var init_InstallBox = __esm({
|
|
|
7899
8331
|
/* @__PURE__ */ jsx(
|
|
7900
8332
|
Box,
|
|
7901
8333
|
{
|
|
7902
|
-
className: "bg-surface rounded-
|
|
8334
|
+
className: "bg-surface rounded-container border-[length:var(--border-width)] border-border",
|
|
7903
8335
|
padding: "md",
|
|
7904
8336
|
children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3", children: [
|
|
7905
8337
|
/* @__PURE__ */ jsx(
|
|
@@ -8453,7 +8885,7 @@ var init_AboutPageTemplate = __esm({
|
|
|
8453
8885
|
AboutPageTemplate.displayName = "AboutPageTemplate";
|
|
8454
8886
|
}
|
|
8455
8887
|
});
|
|
8456
|
-
var variantBorderClasses, variantIconColors,
|
|
8888
|
+
var variantBorderClasses, variantIconColors, iconMap2, Alert;
|
|
8457
8889
|
var init_Alert = __esm({
|
|
8458
8890
|
"components/molecules/Alert.tsx"() {
|
|
8459
8891
|
"use client";
|
|
@@ -8474,11 +8906,11 @@ var init_Alert = __esm({
|
|
|
8474
8906
|
warning: "text-warning",
|
|
8475
8907
|
error: "text-error"
|
|
8476
8908
|
};
|
|
8477
|
-
|
|
8478
|
-
info:
|
|
8479
|
-
success:
|
|
8480
|
-
warning:
|
|
8481
|
-
error:
|
|
8909
|
+
iconMap2 = {
|
|
8910
|
+
info: "info",
|
|
8911
|
+
success: "check-circle",
|
|
8912
|
+
warning: "alert-triangle",
|
|
8913
|
+
error: "alert-circle"
|
|
8482
8914
|
};
|
|
8483
8915
|
Alert = ({
|
|
8484
8916
|
children,
|
|
@@ -8513,7 +8945,7 @@ var init_Alert = __esm({
|
|
|
8513
8945
|
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
8514
8946
|
Icon,
|
|
8515
8947
|
{
|
|
8516
|
-
|
|
8948
|
+
name: iconMap2[variant],
|
|
8517
8949
|
size: "md",
|
|
8518
8950
|
className: variantIconColors[variant]
|
|
8519
8951
|
}
|
|
@@ -8533,7 +8965,7 @@ var init_Alert = __esm({
|
|
|
8533
8965
|
"hover:bg-muted"
|
|
8534
8966
|
),
|
|
8535
8967
|
"aria-label": "Dismiss alert",
|
|
8536
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
|
8968
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", size: "sm" })
|
|
8537
8969
|
}
|
|
8538
8970
|
)
|
|
8539
8971
|
] })
|
|
@@ -8609,8 +9041,8 @@ var init_Tooltip = __esm({
|
|
|
8609
9041
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
8610
9042
|
};
|
|
8611
9043
|
}, []);
|
|
8612
|
-
const triggerElement =
|
|
8613
|
-
const trigger =
|
|
9044
|
+
const triggerElement = React85__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
9045
|
+
const trigger = React85__default.cloneElement(triggerElement, {
|
|
8614
9046
|
ref: triggerRef,
|
|
8615
9047
|
onMouseEnter: handleMouseEnter,
|
|
8616
9048
|
onMouseLeave: handleMouseLeave,
|
|
@@ -8624,7 +9056,7 @@ var init_Tooltip = __esm({
|
|
|
8624
9056
|
className: cn(
|
|
8625
9057
|
"fixed z-50 px-3 py-2 max-w-xs",
|
|
8626
9058
|
"bg-primary text-primary-foreground",
|
|
8627
|
-
"shadow-
|
|
9059
|
+
"shadow-elevation-popover rounded-sm",
|
|
8628
9060
|
"text-sm pointer-events-none",
|
|
8629
9061
|
"break-words whitespace-normal",
|
|
8630
9062
|
"h-auto min-h-fit",
|
|
@@ -8765,8 +9197,8 @@ var init_Popover = __esm({
|
|
|
8765
9197
|
onMouseEnter: handleOpen,
|
|
8766
9198
|
onMouseLeave: handleClose
|
|
8767
9199
|
};
|
|
8768
|
-
const childElement =
|
|
8769
|
-
const triggerElement =
|
|
9200
|
+
const childElement = React85__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
9201
|
+
const triggerElement = React85__default.cloneElement(
|
|
8770
9202
|
childElement,
|
|
8771
9203
|
{
|
|
8772
9204
|
ref: triggerRef,
|
|
@@ -8779,7 +9211,7 @@ var init_Popover = __esm({
|
|
|
8779
9211
|
ref: popoverRef,
|
|
8780
9212
|
className: cn(
|
|
8781
9213
|
"fixed z-50 p-4",
|
|
8782
|
-
"bg-card border-2 border-border shadow-
|
|
9214
|
+
"bg-card border-2 border-border shadow-elevation-popover",
|
|
8783
9215
|
positionClasses2[position],
|
|
8784
9216
|
className
|
|
8785
9217
|
),
|
|
@@ -8882,8 +9314,8 @@ var init_Menu = __esm({
|
|
|
8882
9314
|
"bottom-start": "top-full left-0 mt-2",
|
|
8883
9315
|
"bottom-end": "top-full right-0 mt-2"
|
|
8884
9316
|
};
|
|
8885
|
-
const triggerChild =
|
|
8886
|
-
const triggerElement =
|
|
9317
|
+
const triggerChild = React85__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
9318
|
+
const triggerElement = React85__default.cloneElement(
|
|
8887
9319
|
triggerChild,
|
|
8888
9320
|
{
|
|
8889
9321
|
ref: triggerRef,
|
|
@@ -8893,7 +9325,7 @@ var init_Menu = __esm({
|
|
|
8893
9325
|
const menuContainerStyles = cn(
|
|
8894
9326
|
"bg-card",
|
|
8895
9327
|
"border-[length:var(--border-width)] border-border",
|
|
8896
|
-
"shadow",
|
|
9328
|
+
"shadow-elevation-popover",
|
|
8897
9329
|
"rounded-sm",
|
|
8898
9330
|
"min-w-0 sm:min-w-[200px] max-w-[calc(100vw-1rem)] py-1"
|
|
8899
9331
|
);
|
|
@@ -8928,7 +9360,7 @@ var init_Menu = __esm({
|
|
|
8928
9360
|
}
|
|
8929
9361
|
),
|
|
8930
9362
|
item.badge !== void 0 && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: item.badge }),
|
|
8931
|
-
hasSubMenu && /* @__PURE__ */ jsx(Icon, {
|
|
9363
|
+
hasSubMenu && /* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm", className: "flex-shrink-0" })
|
|
8932
9364
|
] })
|
|
8933
9365
|
},
|
|
8934
9366
|
itemId
|
|
@@ -9061,7 +9493,7 @@ var init_Accordion = __esm({
|
|
|
9061
9493
|
"w-full flex items-center justify-between px-4 py-3",
|
|
9062
9494
|
"bg-card",
|
|
9063
9495
|
"hover:bg-muted",
|
|
9064
|
-
"transition-colors duration-
|
|
9496
|
+
"transition-colors duration-fast",
|
|
9065
9497
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-inset",
|
|
9066
9498
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
9067
9499
|
isOpen && "bg-muted font-bold"
|
|
@@ -9073,10 +9505,10 @@ var init_Accordion = __esm({
|
|
|
9073
9505
|
/* @__PURE__ */ jsx(
|
|
9074
9506
|
Icon,
|
|
9075
9507
|
{
|
|
9076
|
-
|
|
9508
|
+
name: "chevron-down",
|
|
9077
9509
|
size: "sm",
|
|
9078
9510
|
className: cn(
|
|
9079
|
-
"transition-transform duration-
|
|
9511
|
+
"transition-transform duration-fast",
|
|
9080
9512
|
isOpen && "transform rotate-180"
|
|
9081
9513
|
)
|
|
9082
9514
|
}
|
|
@@ -9098,15 +9530,6 @@ var init_Accordion = __esm({
|
|
|
9098
9530
|
Accordion.displayName = "Accordion";
|
|
9099
9531
|
}
|
|
9100
9532
|
});
|
|
9101
|
-
function resolveIcon2(name) {
|
|
9102
|
-
const pascalName = name.split(/[-_]/).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
|
|
9103
|
-
const icons = LucideIcons;
|
|
9104
|
-
const icon = icons[pascalName];
|
|
9105
|
-
if (icon) {
|
|
9106
|
-
return icon;
|
|
9107
|
-
}
|
|
9108
|
-
return Plus;
|
|
9109
|
-
}
|
|
9110
9533
|
var FloatingActionButton;
|
|
9111
9534
|
var init_FloatingActionButton = __esm({
|
|
9112
9535
|
"components/molecules/FloatingActionButton.tsx"() {
|
|
@@ -9132,7 +9555,7 @@ var init_FloatingActionButton = __esm({
|
|
|
9132
9555
|
const eventBus = useEventBus();
|
|
9133
9556
|
const { t } = useTranslate();
|
|
9134
9557
|
const resolvedAction = icon ? {
|
|
9135
|
-
icon
|
|
9558
|
+
icon,
|
|
9136
9559
|
onClick: () => {
|
|
9137
9560
|
if (action) eventBus.emit(`UI:${action}`, actionPayload ?? {});
|
|
9138
9561
|
onClick?.();
|
|
@@ -9206,7 +9629,7 @@ var init_FloatingActionButton = __esm({
|
|
|
9206
9629
|
{
|
|
9207
9630
|
align: "center",
|
|
9208
9631
|
gap: "sm",
|
|
9209
|
-
className: "transition-all duration-
|
|
9632
|
+
className: "transition-all duration-fast",
|
|
9210
9633
|
style: {
|
|
9211
9634
|
opacity: isExpanded ? 1 : 0,
|
|
9212
9635
|
transform: isExpanded ? "translateY(0)" : "translateY(10px)",
|
|
@@ -9242,9 +9665,9 @@ var init_FloatingActionButton = __esm({
|
|
|
9242
9665
|
{
|
|
9243
9666
|
variant: isExpanded ? "secondary" : "primary",
|
|
9244
9667
|
size: "lg",
|
|
9245
|
-
icon: isExpanded ?
|
|
9668
|
+
icon: isExpanded ? "x" : "plus",
|
|
9246
9669
|
onClick: handleMainClick,
|
|
9247
|
-
className: "rounded-full shadow-lg transition-all duration-
|
|
9670
|
+
className: "rounded-full shadow-lg transition-all duration-normal",
|
|
9248
9671
|
"aria-label": isExpanded ? "Close actions" : "Open actions",
|
|
9249
9672
|
"aria-expanded": isExpanded,
|
|
9250
9673
|
children: /* @__PURE__ */ jsx(Typography, { as: "span", className: "sr-only", children: isExpanded ? t("common.close") : t("common.open") })
|
|
@@ -9299,13 +9722,13 @@ var init_MapView = __esm({
|
|
|
9299
9722
|
shadowSize: [41, 41]
|
|
9300
9723
|
});
|
|
9301
9724
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
9302
|
-
const { useEffect:
|
|
9725
|
+
const { useEffect: useEffect70, useRef: useRef65, useCallback: useCallback113, useState: useState102 } = React85__default;
|
|
9303
9726
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
9304
9727
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
9305
9728
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
9306
9729
|
const map = useMap();
|
|
9307
9730
|
const prevRef = useRef65({ centerLat, centerLng, zoom });
|
|
9308
|
-
|
|
9731
|
+
useEffect70(() => {
|
|
9309
9732
|
const prev = prevRef.current;
|
|
9310
9733
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
9311
9734
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -9316,7 +9739,7 @@ var init_MapView = __esm({
|
|
|
9316
9739
|
}
|
|
9317
9740
|
function MapClickHandler({ onMapClick }) {
|
|
9318
9741
|
const map = useMap();
|
|
9319
|
-
|
|
9742
|
+
useEffect70(() => {
|
|
9320
9743
|
if (!onMapClick) return;
|
|
9321
9744
|
const handler = (e) => {
|
|
9322
9745
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -9344,7 +9767,7 @@ var init_MapView = __esm({
|
|
|
9344
9767
|
showAttribution = true
|
|
9345
9768
|
}) {
|
|
9346
9769
|
const eventBus = useEventBus2();
|
|
9347
|
-
const [clickedPosition, setClickedPosition] =
|
|
9770
|
+
const [clickedPosition, setClickedPosition] = useState102(null);
|
|
9348
9771
|
const handleMapClick = useCallback113((lat, lng) => {
|
|
9349
9772
|
if (showClickedPin) {
|
|
9350
9773
|
setClickedPosition({ lat, lng });
|
|
@@ -9545,7 +9968,7 @@ function InputPattern({
|
|
|
9545
9968
|
fieldName
|
|
9546
9969
|
}) {
|
|
9547
9970
|
const { emit } = useEventBus();
|
|
9548
|
-
const [localValue, setLocalValue] =
|
|
9971
|
+
const [localValue, setLocalValue] = React85__default.useState(value);
|
|
9549
9972
|
const handleChange = (e) => {
|
|
9550
9973
|
setLocalValue(e.target.value);
|
|
9551
9974
|
if (onChange) {
|
|
@@ -9583,7 +10006,7 @@ function TextareaPattern({
|
|
|
9583
10006
|
fieldName
|
|
9584
10007
|
}) {
|
|
9585
10008
|
const { emit } = useEventBus();
|
|
9586
|
-
const [localValue, setLocalValue] =
|
|
10009
|
+
const [localValue, setLocalValue] = React85__default.useState(value);
|
|
9587
10010
|
const handleChange = (e) => {
|
|
9588
10011
|
setLocalValue(e.target.value);
|
|
9589
10012
|
if (onChange) {
|
|
@@ -9615,7 +10038,7 @@ function SelectPattern({
|
|
|
9615
10038
|
fieldName
|
|
9616
10039
|
}) {
|
|
9617
10040
|
const { emit } = useEventBus();
|
|
9618
|
-
const [localValue, setLocalValue] =
|
|
10041
|
+
const [localValue, setLocalValue] = React85__default.useState(value);
|
|
9619
10042
|
const handleChange = (e) => {
|
|
9620
10043
|
setLocalValue(e.target.value);
|
|
9621
10044
|
if (onChange) {
|
|
@@ -9644,7 +10067,7 @@ function CheckboxPattern({
|
|
|
9644
10067
|
className
|
|
9645
10068
|
}) {
|
|
9646
10069
|
const { emit } = useEventBus();
|
|
9647
|
-
const [localChecked, setLocalChecked] =
|
|
10070
|
+
const [localChecked, setLocalChecked] = React85__default.useState(checked);
|
|
9648
10071
|
const handleChange = (e) => {
|
|
9649
10072
|
setLocalChecked(e.target.checked);
|
|
9650
10073
|
if (onChange) {
|
|
@@ -9875,8 +10298,8 @@ function ActionButtons({
|
|
|
9875
10298
|
disabled
|
|
9876
10299
|
}) {
|
|
9877
10300
|
const eventBus = useEventBus();
|
|
9878
|
-
const [activeButtons, setActiveButtons] =
|
|
9879
|
-
const handlePress =
|
|
10301
|
+
const [activeButtons, setActiveButtons] = React85.useState(/* @__PURE__ */ new Set());
|
|
10302
|
+
const handlePress = React85.useCallback(
|
|
9880
10303
|
(id) => {
|
|
9881
10304
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
9882
10305
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -9884,7 +10307,7 @@ function ActionButtons({
|
|
|
9884
10307
|
},
|
|
9885
10308
|
[actionEvent, eventBus, onAction]
|
|
9886
10309
|
);
|
|
9887
|
-
const handleRelease =
|
|
10310
|
+
const handleRelease = React85.useCallback(
|
|
9888
10311
|
(id) => {
|
|
9889
10312
|
setActiveButtons((prev) => {
|
|
9890
10313
|
const next = new Set(prev);
|
|
@@ -10716,7 +11139,7 @@ function IsometricCanvas({
|
|
|
10716
11139
|
const el = containerRef.current;
|
|
10717
11140
|
if (!el) return;
|
|
10718
11141
|
if (typeof ResizeObserver === "undefined") return;
|
|
10719
|
-
const
|
|
11142
|
+
const observer2 = new ResizeObserver((entries) => {
|
|
10720
11143
|
const entry = entries[0];
|
|
10721
11144
|
if (entry) {
|
|
10722
11145
|
const w = Math.round(entry.contentRect.width) || 800;
|
|
@@ -10727,8 +11150,8 @@ function IsometricCanvas({
|
|
|
10727
11150
|
});
|
|
10728
11151
|
}
|
|
10729
11152
|
});
|
|
10730
|
-
|
|
10731
|
-
return () =>
|
|
11153
|
+
observer2.observe(el);
|
|
11154
|
+
return () => observer2.disconnect();
|
|
10732
11155
|
}, []);
|
|
10733
11156
|
const units = useMemo(
|
|
10734
11157
|
() => unitsProp.map((u) => u.position ? u : { ...u, position: { x: u.x ?? 0, y: u.y ?? 0 } }),
|
|
@@ -12747,7 +13170,7 @@ var init_MarkdownContent = __esm({
|
|
|
12747
13170
|
init_Box();
|
|
12748
13171
|
init_useTranslate();
|
|
12749
13172
|
init_cn();
|
|
12750
|
-
MarkdownContent =
|
|
13173
|
+
MarkdownContent = React85__default.memo(
|
|
12751
13174
|
({ content, direction, className }) => {
|
|
12752
13175
|
const { t: _t } = useTranslate();
|
|
12753
13176
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -12893,6 +13316,7 @@ var init_CodeBlock = __esm({
|
|
|
12893
13316
|
init_Badge();
|
|
12894
13317
|
init_Stack();
|
|
12895
13318
|
init_Textarea();
|
|
13319
|
+
init_Icon();
|
|
12896
13320
|
init_useEventBus();
|
|
12897
13321
|
init_useTranslate();
|
|
12898
13322
|
SyntaxHighlighter.registerLanguage("json", langJson);
|
|
@@ -12965,7 +13389,7 @@ var init_CodeBlock = __esm({
|
|
|
12965
13389
|
log7 = createLogger("almadar:ui:markdown-code");
|
|
12966
13390
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
12967
13391
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
12968
|
-
CodeBlock =
|
|
13392
|
+
CodeBlock = React85__default.memo(
|
|
12969
13393
|
({
|
|
12970
13394
|
code: rawCode,
|
|
12971
13395
|
language = "text",
|
|
@@ -13183,7 +13607,7 @@ var init_CodeBlock = __esm({
|
|
|
13183
13607
|
onClick: handleCopy,
|
|
13184
13608
|
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
|
|
13185
13609
|
"aria-label": "Copy code",
|
|
13186
|
-
children: copied ? /* @__PURE__ */ jsx(
|
|
13610
|
+
children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-green-400" }) : /* @__PURE__ */ jsx(Icon, { name: "copy", className: "w-4 h-4" })
|
|
13187
13611
|
}
|
|
13188
13612
|
)
|
|
13189
13613
|
]
|
|
@@ -13369,8 +13793,8 @@ function Card2({
|
|
|
13369
13793
|
className: `
|
|
13370
13794
|
bg-card
|
|
13371
13795
|
border border-border
|
|
13372
|
-
rounded-
|
|
13373
|
-
${isClickable ? "cursor-pointer hover:shadow-
|
|
13796
|
+
rounded-container shadow-elevation-card
|
|
13797
|
+
${isClickable ? "cursor-pointer hover:shadow-elevation-dialog transition-shadow" : ""}
|
|
13374
13798
|
${className}
|
|
13375
13799
|
`,
|
|
13376
13800
|
onClick: isClickable ? handleClick : void 0,
|
|
@@ -13464,7 +13888,7 @@ var init_QuizBlock = __esm({
|
|
|
13464
13888
|
className: "self-start ml-7",
|
|
13465
13889
|
children: /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
13466
13890
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", children: revealed ? t("quiz.hideAnswer") : t("quiz.showAnswer") }),
|
|
13467
|
-
revealed ? /* @__PURE__ */ jsx(
|
|
13891
|
+
revealed ? /* @__PURE__ */ jsx(Icon, { name: "chevron-up", className: "w-3.5 h-3.5" }) : /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: "w-3.5 h-3.5" })
|
|
13468
13892
|
] })
|
|
13469
13893
|
}
|
|
13470
13894
|
)
|
|
@@ -14224,7 +14648,7 @@ var init_StateMachineView = __esm({
|
|
|
14224
14648
|
style: { top: title ? 30 : 0 },
|
|
14225
14649
|
children: [
|
|
14226
14650
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
14227
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
14651
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React85__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
14228
14652
|
StateNode,
|
|
14229
14653
|
{
|
|
14230
14654
|
state,
|
|
@@ -15372,28 +15796,22 @@ var init_BookTableOfContents = __esm({
|
|
|
15372
15796
|
BookTableOfContents.displayName = "BookTableOfContents";
|
|
15373
15797
|
}
|
|
15374
15798
|
});
|
|
15375
|
-
var
|
|
15799
|
+
var ICON_NAME_ALIASES, EmptyState;
|
|
15376
15800
|
var init_EmptyState = __esm({
|
|
15377
15801
|
"components/molecules/EmptyState.tsx"() {
|
|
15378
15802
|
"use client";
|
|
15379
15803
|
init_cn();
|
|
15380
15804
|
init_atoms();
|
|
15381
15805
|
init_Box();
|
|
15806
|
+
init_Icon();
|
|
15382
15807
|
init_Stack();
|
|
15383
15808
|
init_Typography();
|
|
15384
15809
|
init_useEventBus();
|
|
15385
15810
|
init_useTranslate();
|
|
15386
|
-
|
|
15387
|
-
"check-circle"
|
|
15388
|
-
|
|
15389
|
-
"
|
|
15390
|
-
error: XCircle,
|
|
15391
|
-
"alert-circle": AlertCircle,
|
|
15392
|
-
warning: AlertCircle,
|
|
15393
|
-
info: Info,
|
|
15394
|
-
search: Search,
|
|
15395
|
-
inbox: Inbox,
|
|
15396
|
-
"file-question": FileQuestion
|
|
15811
|
+
ICON_NAME_ALIASES = {
|
|
15812
|
+
check: "check-circle",
|
|
15813
|
+
error: "x-circle",
|
|
15814
|
+
warning: "alert-circle"
|
|
15397
15815
|
};
|
|
15398
15816
|
EmptyState = ({
|
|
15399
15817
|
icon,
|
|
@@ -15413,7 +15831,9 @@ var init_EmptyState = __esm({
|
|
|
15413
15831
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
|
|
15414
15832
|
onAction?.();
|
|
15415
15833
|
};
|
|
15416
|
-
const
|
|
15834
|
+
const iconName = typeof icon === "string" ? ICON_NAME_ALIASES[icon] ?? icon : void 0;
|
|
15835
|
+
const iconComponent = typeof icon === "function" ? icon : void 0;
|
|
15836
|
+
const hasIcon = Boolean(iconName || iconComponent);
|
|
15417
15837
|
const isDestructive = destructive || variant === "error";
|
|
15418
15838
|
const isSuccess = variant === "success";
|
|
15419
15839
|
const displayText = title || message || t("empty.noItems");
|
|
@@ -15426,7 +15846,7 @@ var init_EmptyState = __esm({
|
|
|
15426
15846
|
className
|
|
15427
15847
|
),
|
|
15428
15848
|
children: [
|
|
15429
|
-
|
|
15849
|
+
hasIcon && /* @__PURE__ */ jsx(
|
|
15430
15850
|
Box,
|
|
15431
15851
|
{
|
|
15432
15852
|
className: cn(
|
|
@@ -15434,8 +15854,9 @@ var init_EmptyState = __esm({
|
|
|
15434
15854
|
isDestructive ? "bg-error/10" : isSuccess ? "bg-success/10" : "bg-muted"
|
|
15435
15855
|
),
|
|
15436
15856
|
children: /* @__PURE__ */ jsx(
|
|
15437
|
-
|
|
15857
|
+
Icon,
|
|
15438
15858
|
{
|
|
15859
|
+
...iconName ? { name: iconName } : { icon: iconComponent },
|
|
15439
15860
|
className: cn(
|
|
15440
15861
|
"h-8 w-8",
|
|
15441
15862
|
isDestructive ? "text-error" : isSuccess ? "text-success" : "text-muted-foreground"
|
|
@@ -15805,7 +16226,7 @@ var init_Grid = __esm({
|
|
|
15805
16226
|
as: Component = "div"
|
|
15806
16227
|
}) => {
|
|
15807
16228
|
const mergedStyle = rows ? { gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`, ...style } : style;
|
|
15808
|
-
return
|
|
16229
|
+
return React85__default.createElement(
|
|
15809
16230
|
Component,
|
|
15810
16231
|
{
|
|
15811
16232
|
className: cn(
|
|
@@ -16175,7 +16596,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
16175
16596
|
const height = PADDING * 2 + items.length * (NODE_HEIGHT + NODE_GAP_Y);
|
|
16176
16597
|
return { items, positions, width, height };
|
|
16177
16598
|
}, [questions]);
|
|
16178
|
-
return /* @__PURE__ */ jsx(Box, { className: "overflow-auto rounded-
|
|
16599
|
+
return /* @__PURE__ */ jsx(Box, { className: "overflow-auto rounded-container border border-border bg-card p-2", children: /* @__PURE__ */ jsxs(
|
|
16179
16600
|
"svg",
|
|
16180
16601
|
{
|
|
16181
16602
|
width: layout.width,
|
|
@@ -16418,7 +16839,7 @@ var init_Breadcrumb = __esm({
|
|
|
16418
16839
|
init_useEventBus();
|
|
16419
16840
|
Breadcrumb = ({
|
|
16420
16841
|
items,
|
|
16421
|
-
separator =
|
|
16842
|
+
separator = "chevron-right",
|
|
16422
16843
|
maxItems,
|
|
16423
16844
|
className
|
|
16424
16845
|
}) => {
|
|
@@ -16447,7 +16868,7 @@ var init_Breadcrumb = __esm({
|
|
|
16447
16868
|
),
|
|
16448
16869
|
"aria-current": isLast ? "page" : void 0,
|
|
16449
16870
|
children: [
|
|
16450
|
-
item.icon && /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" }),
|
|
16871
|
+
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" })),
|
|
16451
16872
|
/* @__PURE__ */ jsx(
|
|
16452
16873
|
Typography,
|
|
16453
16874
|
{
|
|
@@ -16474,7 +16895,7 @@ var init_Breadcrumb = __esm({
|
|
|
16474
16895
|
"aria-current": isLast ? "page" : void 0,
|
|
16475
16896
|
disabled: isLast,
|
|
16476
16897
|
children: [
|
|
16477
|
-
item.icon && /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" }),
|
|
16898
|
+
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" })),
|
|
16478
16899
|
/* @__PURE__ */ jsx(
|
|
16479
16900
|
Typography,
|
|
16480
16901
|
{
|
|
@@ -16486,14 +16907,7 @@ var init_Breadcrumb = __esm({
|
|
|
16486
16907
|
]
|
|
16487
16908
|
}
|
|
16488
16909
|
),
|
|
16489
|
-
!isLast && /* @__PURE__ */ jsx(
|
|
16490
|
-
Icon,
|
|
16491
|
-
{
|
|
16492
|
-
icon: separator,
|
|
16493
|
-
size: "sm",
|
|
16494
|
-
className: "text-muted-foreground"
|
|
16495
|
-
}
|
|
16496
|
-
)
|
|
16910
|
+
!isLast && (typeof separator === "string" ? /* @__PURE__ */ jsx(Icon, { name: separator, size: "sm", className: "text-muted-foreground" }) : /* @__PURE__ */ jsx(Icon, { icon: separator, size: "sm", className: "text-muted-foreground" }))
|
|
16497
16911
|
] }, index);
|
|
16498
16912
|
}) })
|
|
16499
16913
|
}
|
|
@@ -16947,7 +17361,7 @@ function CalendarGrid({
|
|
|
16947
17361
|
{
|
|
16948
17362
|
variant: "ghost",
|
|
16949
17363
|
size: "sm",
|
|
16950
|
-
icon:
|
|
17364
|
+
icon: "chevron-left",
|
|
16951
17365
|
onClick: stepPrev,
|
|
16952
17366
|
"aria-disabled": !canPrev || void 0,
|
|
16953
17367
|
"aria-label": "Previous days",
|
|
@@ -16960,7 +17374,7 @@ function CalendarGrid({
|
|
|
16960
17374
|
{
|
|
16961
17375
|
variant: "ghost",
|
|
16962
17376
|
size: "sm",
|
|
16963
|
-
iconRight:
|
|
17377
|
+
iconRight: "chevron-right",
|
|
16964
17378
|
onClick: stepNext,
|
|
16965
17379
|
"aria-disabled": !canNext || void 0,
|
|
16966
17380
|
"aria-label": "Next days",
|
|
@@ -19006,7 +19420,7 @@ var init_Carousel = __esm({
|
|
|
19006
19420
|
Box,
|
|
19007
19421
|
{
|
|
19008
19422
|
className: cn(
|
|
19009
|
-
"rounded-full cursor-pointer transition-all duration-
|
|
19423
|
+
"rounded-full cursor-pointer transition-all duration-fast"
|
|
19010
19424
|
),
|
|
19011
19425
|
style: {
|
|
19012
19426
|
width: isActive ? 10 : 8,
|
|
@@ -20098,7 +20512,7 @@ var init_CodeExample = __esm({
|
|
|
20098
20512
|
{
|
|
20099
20513
|
className: cn(
|
|
20100
20514
|
"bg-foreground",
|
|
20101
|
-
"rounded-
|
|
20515
|
+
"rounded-container",
|
|
20102
20516
|
"border-[length:var(--border-width)] border-border",
|
|
20103
20517
|
"overflow-hidden",
|
|
20104
20518
|
className
|
|
@@ -20874,7 +21288,7 @@ function CounterMinimal({
|
|
|
20874
21288
|
size: sizeStyles9[size].button,
|
|
20875
21289
|
onClick: onDecrement,
|
|
20876
21290
|
disabled: resolved.decrementDisabled,
|
|
20877
|
-
icon:
|
|
21291
|
+
icon: "minus",
|
|
20878
21292
|
children: resolved.decrementLabel
|
|
20879
21293
|
}
|
|
20880
21294
|
),
|
|
@@ -20896,7 +21310,7 @@ function CounterMinimal({
|
|
|
20896
21310
|
size: sizeStyles9[size].button,
|
|
20897
21311
|
onClick: onIncrement,
|
|
20898
21312
|
disabled: resolved.incrementDisabled,
|
|
20899
|
-
icon:
|
|
21313
|
+
icon: "plus",
|
|
20900
21314
|
children: resolved.incrementLabel
|
|
20901
21315
|
}
|
|
20902
21316
|
)
|
|
@@ -20942,7 +21356,7 @@ function CounterStandard({
|
|
|
20942
21356
|
size: sizeStyles9[size].button,
|
|
20943
21357
|
onClick: onDecrement,
|
|
20944
21358
|
disabled: resolved.decrementDisabled,
|
|
20945
|
-
icon:
|
|
21359
|
+
icon: "minus"
|
|
20946
21360
|
}
|
|
20947
21361
|
),
|
|
20948
21362
|
/* @__PURE__ */ jsx(
|
|
@@ -20952,7 +21366,7 @@ function CounterStandard({
|
|
|
20952
21366
|
size: sizeStyles9[size].button,
|
|
20953
21367
|
onClick: onIncrement,
|
|
20954
21368
|
disabled: resolved.incrementDisabled,
|
|
20955
|
-
icon:
|
|
21369
|
+
icon: "plus"
|
|
20956
21370
|
}
|
|
20957
21371
|
)
|
|
20958
21372
|
] }),
|
|
@@ -20962,7 +21376,7 @@ function CounterStandard({
|
|
|
20962
21376
|
variant: "ghost",
|
|
20963
21377
|
size: "sm",
|
|
20964
21378
|
onClick: onReset,
|
|
20965
|
-
icon:
|
|
21379
|
+
icon: "rotate-ccw",
|
|
20966
21380
|
children: "Reset"
|
|
20967
21381
|
}
|
|
20968
21382
|
)
|
|
@@ -21011,7 +21425,7 @@ function CounterFull({
|
|
|
21011
21425
|
size: sizeStyles9[size].button,
|
|
21012
21426
|
onClick: onDecrement,
|
|
21013
21427
|
disabled: resolved.decrementDisabled,
|
|
21014
|
-
icon:
|
|
21428
|
+
icon: "minus",
|
|
21015
21429
|
children: resolved.decrementLabel
|
|
21016
21430
|
}
|
|
21017
21431
|
),
|
|
@@ -21022,7 +21436,7 @@ function CounterFull({
|
|
|
21022
21436
|
size: sizeStyles9[size].button,
|
|
21023
21437
|
onClick: onIncrement,
|
|
21024
21438
|
disabled: resolved.incrementDisabled,
|
|
21025
|
-
icon:
|
|
21439
|
+
icon: "plus",
|
|
21026
21440
|
children: resolved.incrementLabel
|
|
21027
21441
|
}
|
|
21028
21442
|
)
|
|
@@ -21033,7 +21447,7 @@ function CounterFull({
|
|
|
21033
21447
|
variant: "ghost",
|
|
21034
21448
|
size: "sm",
|
|
21035
21449
|
onClick: onReset,
|
|
21036
|
-
icon:
|
|
21450
|
+
icon: "rotate-ccw",
|
|
21037
21451
|
children: "Reset to 0"
|
|
21038
21452
|
}
|
|
21039
21453
|
)
|
|
@@ -21081,7 +21495,7 @@ function CraftingRecipe({
|
|
|
21081
21495
|
className
|
|
21082
21496
|
}) {
|
|
21083
21497
|
const eventBus = useEventBus();
|
|
21084
|
-
const handleCraft =
|
|
21498
|
+
const handleCraft = React85.useCallback(() => {
|
|
21085
21499
|
onCraft?.();
|
|
21086
21500
|
if (craftEvent) {
|
|
21087
21501
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -21098,7 +21512,7 @@ function CraftingRecipe({
|
|
|
21098
21512
|
children: [
|
|
21099
21513
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
21100
21514
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
21101
|
-
return /* @__PURE__ */ jsxs(
|
|
21515
|
+
return /* @__PURE__ */ jsxs(React85.Fragment, { children: [
|
|
21102
21516
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
21103
21517
|
ItemSlot,
|
|
21104
21518
|
{
|
|
@@ -21161,8 +21575,8 @@ function DPad({
|
|
|
21161
21575
|
}) {
|
|
21162
21576
|
const eventBus = useEventBus();
|
|
21163
21577
|
const sizes = sizeMap15[size];
|
|
21164
|
-
const [activeDirections, setActiveDirections] =
|
|
21165
|
-
const handlePress =
|
|
21578
|
+
const [activeDirections, setActiveDirections] = React85.useState(/* @__PURE__ */ new Set());
|
|
21579
|
+
const handlePress = React85.useCallback(
|
|
21166
21580
|
(direction) => {
|
|
21167
21581
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
21168
21582
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -21170,7 +21584,7 @@ function DPad({
|
|
|
21170
21584
|
},
|
|
21171
21585
|
[directionEvent, eventBus, onDirection]
|
|
21172
21586
|
);
|
|
21173
|
-
const handleRelease =
|
|
21587
|
+
const handleRelease = React85.useCallback(
|
|
21174
21588
|
(direction) => {
|
|
21175
21589
|
setActiveDirections((prev) => {
|
|
21176
21590
|
const next = new Set(prev);
|
|
@@ -21421,7 +21835,7 @@ var init_DashboardLayout = __esm({
|
|
|
21421
21835
|
variant: "ghost",
|
|
21422
21836
|
className: "@lg/dashboard:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
21423
21837
|
onClick: () => setSidebarOpen(false),
|
|
21424
|
-
children: /* @__PURE__ */ jsx(
|
|
21838
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-5 w-5" })
|
|
21425
21839
|
}
|
|
21426
21840
|
)
|
|
21427
21841
|
]
|
|
@@ -21467,7 +21881,7 @@ var init_DashboardLayout = __esm({
|
|
|
21467
21881
|
className: "@lg/dashboard:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground touch-manipulation min-h-[44px] min-w-[44px] flex items-center justify-center",
|
|
21468
21882
|
onClick: () => setSidebarOpen(true),
|
|
21469
21883
|
"aria-label": "Open sidebar",
|
|
21470
|
-
children: /* @__PURE__ */ jsx(
|
|
21884
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "menu", className: "h-5 w-5" })
|
|
21471
21885
|
}
|
|
21472
21886
|
),
|
|
21473
21887
|
isTopNav && /* @__PURE__ */ jsxs(
|
|
@@ -21510,7 +21924,7 @@ var init_DashboardLayout = __esm({
|
|
|
21510
21924
|
}
|
|
21511
21925
|
),
|
|
21512
21926
|
searchEnabled && /* @__PURE__ */ jsx(Box, { className: "hidden @sm/dashboard:block flex-1 min-w-0 @xl/dashboard:max-w-md", children: /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
|
|
21513
|
-
/* @__PURE__ */ jsx(
|
|
21927
|
+
/* @__PURE__ */ jsx(Icon, { name: "search", className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
|
|
21514
21928
|
/* @__PURE__ */ jsx(
|
|
21515
21929
|
Input,
|
|
21516
21930
|
{
|
|
@@ -21561,7 +21975,7 @@ var init_DashboardLayout = __esm({
|
|
|
21561
21975
|
onClick: handleNotificationClick,
|
|
21562
21976
|
"aria-label": t("common.notifications"),
|
|
21563
21977
|
children: [
|
|
21564
|
-
/* @__PURE__ */ jsx(
|
|
21978
|
+
/* @__PURE__ */ jsx(Icon, { name: "bell", className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
21565
21979
|
unreadCount > 0 && /* @__PURE__ */ jsx(
|
|
21566
21980
|
Box,
|
|
21567
21981
|
{
|
|
@@ -21599,7 +22013,7 @@ var init_DashboardLayout = __esm({
|
|
|
21599
22013
|
children: user.name
|
|
21600
22014
|
}
|
|
21601
22015
|
),
|
|
21602
|
-
/* @__PURE__ */ jsx(
|
|
22016
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: "hidden @sm/dashboard:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
21603
22017
|
]
|
|
21604
22018
|
}
|
|
21605
22019
|
),
|
|
@@ -21642,7 +22056,7 @@ var init_DashboardLayout = __esm({
|
|
|
21642
22056
|
},
|
|
21643
22057
|
className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
|
|
21644
22058
|
children: [
|
|
21645
|
-
/* @__PURE__ */ jsx(
|
|
22059
|
+
/* @__PURE__ */ jsx(Icon, { name: "log-out", className: "h-4 w-4" }),
|
|
21646
22060
|
t("auth.signOut")
|
|
21647
22061
|
]
|
|
21648
22062
|
}
|
|
@@ -21824,14 +22238,14 @@ function useDataDnd(args) {
|
|
|
21824
22238
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
21825
22239
|
const enabled = isZone || Boolean(dndRoot);
|
|
21826
22240
|
const eventBus = useEventBus();
|
|
21827
|
-
const parentRoot =
|
|
22241
|
+
const parentRoot = React85__default.useContext(RootCtx);
|
|
21828
22242
|
const isRoot = enabled && parentRoot === null;
|
|
21829
|
-
const zoneId =
|
|
22243
|
+
const zoneId = React85__default.useId();
|
|
21830
22244
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
21831
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
21832
|
-
const optimisticOrdersRef =
|
|
22245
|
+
const [optimisticOrders, setOptimisticOrders] = React85__default.useState(() => /* @__PURE__ */ new Map());
|
|
22246
|
+
const optimisticOrdersRef = React85__default.useRef(optimisticOrders);
|
|
21833
22247
|
optimisticOrdersRef.current = optimisticOrders;
|
|
21834
|
-
const clearOptimisticOrder =
|
|
22248
|
+
const clearOptimisticOrder = React85__default.useCallback((group) => {
|
|
21835
22249
|
setOptimisticOrders((prev) => {
|
|
21836
22250
|
if (!prev.has(group)) return prev;
|
|
21837
22251
|
const next = new Map(prev);
|
|
@@ -21856,7 +22270,7 @@ function useDataDnd(args) {
|
|
|
21856
22270
|
const raw = it[dndItemIdField];
|
|
21857
22271
|
return String(raw ?? `__idx_${idx}`);
|
|
21858
22272
|
}).join("|");
|
|
21859
|
-
const itemIds =
|
|
22273
|
+
const itemIds = React85__default.useMemo(
|
|
21860
22274
|
() => orderedItems.map((it, idx) => {
|
|
21861
22275
|
const raw = it[dndItemIdField];
|
|
21862
22276
|
return raw ?? `__idx_${idx}`;
|
|
@@ -21864,7 +22278,7 @@ function useDataDnd(args) {
|
|
|
21864
22278
|
[itemIdsSignature]
|
|
21865
22279
|
);
|
|
21866
22280
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
21867
|
-
|
|
22281
|
+
React85__default.useEffect(() => {
|
|
21868
22282
|
const root = isRoot ? null : parentRoot;
|
|
21869
22283
|
if (root) {
|
|
21870
22284
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -21872,20 +22286,20 @@ function useDataDnd(args) {
|
|
|
21872
22286
|
clearOptimisticOrder(ownGroup);
|
|
21873
22287
|
}
|
|
21874
22288
|
}, [itemsContentSig, ownGroup]);
|
|
21875
|
-
const zonesRef =
|
|
21876
|
-
const registerZone =
|
|
22289
|
+
const zonesRef = React85__default.useRef(/* @__PURE__ */ new Map());
|
|
22290
|
+
const registerZone = React85__default.useCallback((zoneId2, meta2) => {
|
|
21877
22291
|
zonesRef.current.set(zoneId2, meta2);
|
|
21878
22292
|
}, []);
|
|
21879
|
-
const unregisterZone =
|
|
22293
|
+
const unregisterZone = React85__default.useCallback((zoneId2) => {
|
|
21880
22294
|
zonesRef.current.delete(zoneId2);
|
|
21881
22295
|
}, []);
|
|
21882
|
-
const [activeDrag, setActiveDrag] =
|
|
21883
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
21884
|
-
const meta =
|
|
22296
|
+
const [activeDrag, setActiveDrag] = React85__default.useState(null);
|
|
22297
|
+
const [overZoneGroup, setOverZoneGroup] = React85__default.useState(null);
|
|
22298
|
+
const meta = React85__default.useMemo(
|
|
21885
22299
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
21886
22300
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
21887
22301
|
);
|
|
21888
|
-
|
|
22302
|
+
React85__default.useEffect(() => {
|
|
21889
22303
|
const target = isRoot ? null : parentRoot;
|
|
21890
22304
|
if (!target) {
|
|
21891
22305
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -21904,7 +22318,7 @@ function useDataDnd(args) {
|
|
|
21904
22318
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
21905
22319
|
const sensors = useAlmadarDndSensors(true);
|
|
21906
22320
|
const collisionDetection = almadarDndCollisionDetection;
|
|
21907
|
-
const findZoneByItem =
|
|
22321
|
+
const findZoneByItem = React85__default.useCallback(
|
|
21908
22322
|
(id) => {
|
|
21909
22323
|
for (const z of zonesRef.current.values()) {
|
|
21910
22324
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -21913,7 +22327,7 @@ function useDataDnd(args) {
|
|
|
21913
22327
|
},
|
|
21914
22328
|
[]
|
|
21915
22329
|
);
|
|
21916
|
-
|
|
22330
|
+
React85__default.useCallback(
|
|
21917
22331
|
(group) => {
|
|
21918
22332
|
for (const z of zonesRef.current.values()) {
|
|
21919
22333
|
if (z.group === group) return z;
|
|
@@ -21922,7 +22336,7 @@ function useDataDnd(args) {
|
|
|
21922
22336
|
},
|
|
21923
22337
|
[]
|
|
21924
22338
|
);
|
|
21925
|
-
const handleDragEnd =
|
|
22339
|
+
const handleDragEnd = React85__default.useCallback(
|
|
21926
22340
|
(event) => {
|
|
21927
22341
|
const { active, over } = event;
|
|
21928
22342
|
const activeIdStr = String(active.id);
|
|
@@ -22013,12 +22427,12 @@ function useDataDnd(args) {
|
|
|
22013
22427
|
},
|
|
22014
22428
|
[eventBus]
|
|
22015
22429
|
);
|
|
22016
|
-
const sortableData =
|
|
22017
|
-
const SortableItem =
|
|
22430
|
+
const sortableData = React85__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
22431
|
+
const SortableItem = React85__default.useCallback(
|
|
22018
22432
|
({ id, children }) => {
|
|
22019
22433
|
const {
|
|
22020
22434
|
attributes,
|
|
22021
|
-
listeners:
|
|
22435
|
+
listeners: listeners7,
|
|
22022
22436
|
setNodeRef,
|
|
22023
22437
|
transform,
|
|
22024
22438
|
transition,
|
|
@@ -22041,7 +22455,7 @@ function useDataDnd(args) {
|
|
|
22041
22455
|
ref: setNodeRef,
|
|
22042
22456
|
style,
|
|
22043
22457
|
...attributes,
|
|
22044
|
-
...
|
|
22458
|
+
...listeners7,
|
|
22045
22459
|
children
|
|
22046
22460
|
}
|
|
22047
22461
|
);
|
|
@@ -22054,7 +22468,7 @@ function useDataDnd(args) {
|
|
|
22054
22468
|
id: droppableId,
|
|
22055
22469
|
data: sortableData
|
|
22056
22470
|
});
|
|
22057
|
-
const ctx =
|
|
22471
|
+
const ctx = React85__default.useContext(RootCtx);
|
|
22058
22472
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
22059
22473
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
22060
22474
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -22069,7 +22483,7 @@ function useDataDnd(args) {
|
|
|
22069
22483
|
showForeignPlaceholder,
|
|
22070
22484
|
ctxAvailable: ctx != null
|
|
22071
22485
|
});
|
|
22072
|
-
|
|
22486
|
+
React85__default.useEffect(() => {
|
|
22073
22487
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
22074
22488
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
22075
22489
|
return /* @__PURE__ */ jsx(
|
|
@@ -22083,11 +22497,11 @@ function useDataDnd(args) {
|
|
|
22083
22497
|
}
|
|
22084
22498
|
);
|
|
22085
22499
|
};
|
|
22086
|
-
const rootContextValue =
|
|
22500
|
+
const rootContextValue = React85__default.useMemo(
|
|
22087
22501
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
22088
22502
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
22089
22503
|
);
|
|
22090
|
-
const handleDragStart =
|
|
22504
|
+
const handleDragStart = React85__default.useCallback((event) => {
|
|
22091
22505
|
const sourceZone = findZoneByItem(event.active.id);
|
|
22092
22506
|
const rect = event.active.rect.current.initial;
|
|
22093
22507
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -22106,7 +22520,7 @@ function useDataDnd(args) {
|
|
|
22106
22520
|
isRoot
|
|
22107
22521
|
});
|
|
22108
22522
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
22109
|
-
const handleDragOver =
|
|
22523
|
+
const handleDragOver = React85__default.useCallback((event) => {
|
|
22110
22524
|
const { active, over } = event;
|
|
22111
22525
|
const overData = over?.data?.current;
|
|
22112
22526
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -22176,7 +22590,7 @@ function useDataDnd(args) {
|
|
|
22176
22590
|
return next;
|
|
22177
22591
|
});
|
|
22178
22592
|
}, []);
|
|
22179
|
-
const handleDragCancel =
|
|
22593
|
+
const handleDragCancel = React85__default.useCallback((event) => {
|
|
22180
22594
|
setActiveDrag(null);
|
|
22181
22595
|
setOverZoneGroup(null);
|
|
22182
22596
|
dndLog.warn("dragCancel", {
|
|
@@ -22184,12 +22598,12 @@ function useDataDnd(args) {
|
|
|
22184
22598
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
22185
22599
|
});
|
|
22186
22600
|
}, []);
|
|
22187
|
-
const handleDragEndWithCleanup =
|
|
22601
|
+
const handleDragEndWithCleanup = React85__default.useCallback((event) => {
|
|
22188
22602
|
handleDragEnd(event);
|
|
22189
22603
|
setActiveDrag(null);
|
|
22190
22604
|
setOverZoneGroup(null);
|
|
22191
22605
|
}, [handleDragEnd]);
|
|
22192
|
-
const wrapContainer =
|
|
22606
|
+
const wrapContainer = React85__default.useCallback(
|
|
22193
22607
|
(children) => {
|
|
22194
22608
|
if (!enabled) return children;
|
|
22195
22609
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -22243,7 +22657,7 @@ var init_useDataDnd = __esm({
|
|
|
22243
22657
|
init_useAlmadarDndCollision();
|
|
22244
22658
|
init_Box();
|
|
22245
22659
|
dndLog = createLogger("almadar:ui:dnd");
|
|
22246
|
-
RootCtx =
|
|
22660
|
+
RootCtx = React85__default.createContext(null);
|
|
22247
22661
|
}
|
|
22248
22662
|
});
|
|
22249
22663
|
function fieldLabel2(key) {
|
|
@@ -22465,7 +22879,7 @@ function DataGrid({
|
|
|
22465
22879
|
className: cn(
|
|
22466
22880
|
"bg-card rounded-lg",
|
|
22467
22881
|
"border border-border",
|
|
22468
|
-
"shadow-
|
|
22882
|
+
"shadow-elevation-card hover:shadow-elevation-dialog",
|
|
22469
22883
|
"hover:border-primary transition-all",
|
|
22470
22884
|
"flex flex-col",
|
|
22471
22885
|
isSelected && "ring-2 ring-primary border-primary"
|
|
@@ -22732,7 +23146,7 @@ function DataList({
|
|
|
22732
23146
|
}) {
|
|
22733
23147
|
const eventBus = useEventBus();
|
|
22734
23148
|
const { t } = useTranslate();
|
|
22735
|
-
const [visibleCount, setVisibleCount] =
|
|
23149
|
+
const [visibleCount, setVisibleCount] = React85__default.useState(pageSize || Infinity);
|
|
22736
23150
|
const fieldDefs = fields ?? columns ?? [];
|
|
22737
23151
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
22738
23152
|
const dnd = useDataDnd({
|
|
@@ -22751,7 +23165,7 @@ function DataList({
|
|
|
22751
23165
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
22752
23166
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
22753
23167
|
const hasRenderProp = typeof children === "function";
|
|
22754
|
-
|
|
23168
|
+
React85__default.useEffect(() => {
|
|
22755
23169
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
22756
23170
|
const childrenTypeOf = typeof children;
|
|
22757
23171
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -22808,7 +23222,7 @@ function DataList({
|
|
|
22808
23222
|
const items2 = data.map((item) => item);
|
|
22809
23223
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
22810
23224
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
22811
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
23225
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
22812
23226
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
22813
23227
|
group.items.map((itemData, index) => {
|
|
22814
23228
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -22839,7 +23253,7 @@ function DataList({
|
|
|
22839
23253
|
{
|
|
22840
23254
|
variant: "caption",
|
|
22841
23255
|
className: cn(
|
|
22842
|
-
"mt-1 text-
|
|
23256
|
+
"mt-1 text-xs",
|
|
22843
23257
|
isSent ? "opacity-70" : "text-muted-foreground"
|
|
22844
23258
|
),
|
|
22845
23259
|
children: formatDate3(timestamp)
|
|
@@ -22904,7 +23318,7 @@ function DataList({
|
|
|
22904
23318
|
Box,
|
|
22905
23319
|
{
|
|
22906
23320
|
className: cn(
|
|
22907
|
-
"group flex items-center gap-4 transition-all duration-
|
|
23321
|
+
"group flex items-center gap-4 transition-all duration-fast",
|
|
22908
23322
|
isCompact ? "px-4 py-2" : "px-6 py-4",
|
|
22909
23323
|
"hover:bg-muted/80",
|
|
22910
23324
|
!isCard && !isCompact && "rounded-lg border border-transparent hover:border-border"
|
|
@@ -22991,12 +23405,12 @@ function DataList({
|
|
|
22991
23405
|
Box,
|
|
22992
23406
|
{
|
|
22993
23407
|
className: cn(
|
|
22994
|
-
isCard && "bg-card rounded-xl border border-border shadow-
|
|
23408
|
+
isCard && "bg-card rounded-xl border border-border shadow-elevation-dialog overflow-hidden",
|
|
22995
23409
|
!isCard && gapClass,
|
|
22996
23410
|
className
|
|
22997
23411
|
),
|
|
22998
23412
|
children: [
|
|
22999
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
23413
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
23000
23414
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
23001
23415
|
group.items.map(
|
|
23002
23416
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -23133,7 +23547,7 @@ var init_FileTree = __esm({
|
|
|
23133
23547
|
Typography,
|
|
23134
23548
|
{
|
|
23135
23549
|
variant: "caption",
|
|
23136
|
-
className: `truncate font-mono text-
|
|
23550
|
+
className: `truncate font-mono text-xs !text-inherit ${isSelected ? "font-semibold" : ""}`,
|
|
23137
23551
|
children: node.name
|
|
23138
23552
|
}
|
|
23139
23553
|
),
|
|
@@ -23222,6 +23636,7 @@ var init_FilterGroup = __esm({
|
|
|
23222
23636
|
init_Select();
|
|
23223
23637
|
init_Badge();
|
|
23224
23638
|
init_Stack();
|
|
23639
|
+
init_Icon();
|
|
23225
23640
|
init_useEventBus();
|
|
23226
23641
|
init_useQuerySingleton();
|
|
23227
23642
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
@@ -23290,7 +23705,7 @@ var init_FilterGroup = __esm({
|
|
|
23290
23705
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
23291
23706
|
if (variant === "pills") {
|
|
23292
23707
|
return /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "center", className: cn("flex-wrap", className), children: [
|
|
23293
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
23708
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
23294
23709
|
filters.map((filter) => /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
23295
23710
|
/* @__PURE__ */ jsxs("span", { className: "text-sm font-[var(--font-weight-medium)] text-muted-foreground", children: [
|
|
23296
23711
|
filter.label,
|
|
@@ -23338,7 +23753,7 @@ var init_FilterGroup = __esm({
|
|
|
23338
23753
|
variant: "ghost",
|
|
23339
23754
|
size: "sm",
|
|
23340
23755
|
onClick: handleClearAll,
|
|
23341
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
23756
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
23342
23757
|
children: "Clear"
|
|
23343
23758
|
}
|
|
23344
23759
|
)
|
|
@@ -23347,7 +23762,7 @@ var init_FilterGroup = __esm({
|
|
|
23347
23762
|
if (variant === "vertical") {
|
|
23348
23763
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
23349
23764
|
showIcon && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
23350
|
-
/* @__PURE__ */ jsx(
|
|
23765
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
23351
23766
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
23352
23767
|
] }),
|
|
23353
23768
|
filters.map((filter) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
@@ -23420,7 +23835,7 @@ var init_FilterGroup = __esm({
|
|
|
23420
23835
|
variant: "ghost",
|
|
23421
23836
|
size: "sm",
|
|
23422
23837
|
onClick: handleClearAll,
|
|
23423
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
23838
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
23424
23839
|
className: "self-start",
|
|
23425
23840
|
children: "Clear all"
|
|
23426
23841
|
}
|
|
@@ -23429,7 +23844,7 @@ var init_FilterGroup = __esm({
|
|
|
23429
23844
|
}
|
|
23430
23845
|
if (variant === "compact") {
|
|
23431
23846
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: cn("flex-wrap", className), children: [
|
|
23432
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
23847
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
23433
23848
|
filters.map((filter) => /* @__PURE__ */ jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsx(
|
|
23434
23849
|
Input,
|
|
23435
23850
|
{
|
|
@@ -23505,7 +23920,7 @@ var init_FilterGroup = __esm({
|
|
|
23505
23920
|
filterDef?.label,
|
|
23506
23921
|
": ",
|
|
23507
23922
|
value,
|
|
23508
|
-
/* @__PURE__ */ jsx(
|
|
23923
|
+
/* @__PURE__ */ jsx(Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
23509
23924
|
]
|
|
23510
23925
|
},
|
|
23511
23926
|
field
|
|
@@ -23519,7 +23934,7 @@ var init_FilterGroup = __esm({
|
|
|
23519
23934
|
"div",
|
|
23520
23935
|
{
|
|
23521
23936
|
className: cn(
|
|
23522
|
-
"p-4 rounded-
|
|
23937
|
+
"p-4 rounded-container",
|
|
23523
23938
|
"bg-card",
|
|
23524
23939
|
"border-[length:var(--border-width)] border-border",
|
|
23525
23940
|
className
|
|
@@ -23532,7 +23947,7 @@ var init_FilterGroup = __esm({
|
|
|
23532
23947
|
align: "center",
|
|
23533
23948
|
className: "text-muted-foreground",
|
|
23534
23949
|
children: [
|
|
23535
|
-
/* @__PURE__ */ jsx(
|
|
23950
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
23536
23951
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
23537
23952
|
]
|
|
23538
23953
|
}
|
|
@@ -23618,7 +24033,7 @@ var init_FilterGroup = __esm({
|
|
|
23618
24033
|
variant: "ghost",
|
|
23619
24034
|
size: "sm",
|
|
23620
24035
|
onClick: handleClearAll,
|
|
23621
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
24036
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
23622
24037
|
children: "Clear all"
|
|
23623
24038
|
}
|
|
23624
24039
|
)
|
|
@@ -23835,6 +24250,7 @@ var init_RelationSelect = __esm({
|
|
|
23835
24250
|
"use client";
|
|
23836
24251
|
init_cn();
|
|
23837
24252
|
init_Box();
|
|
24253
|
+
init_Icon();
|
|
23838
24254
|
init_Stack();
|
|
23839
24255
|
init_Input();
|
|
23840
24256
|
init_Button();
|
|
@@ -23978,12 +24394,13 @@ var init_RelationSelect = __esm({
|
|
|
23978
24394
|
as: "button",
|
|
23979
24395
|
className: "p-0.5 hover:bg-muted rounded cursor-pointer",
|
|
23980
24396
|
onClick: handleClear,
|
|
23981
|
-
children: /* @__PURE__ */ jsx(
|
|
24397
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-4 w-4 text-muted-foreground" })
|
|
23982
24398
|
}
|
|
23983
24399
|
),
|
|
23984
24400
|
/* @__PURE__ */ jsx(
|
|
23985
|
-
|
|
24401
|
+
Icon,
|
|
23986
24402
|
{
|
|
24403
|
+
name: "chevron-down",
|
|
23987
24404
|
className: cn(
|
|
23988
24405
|
"h-4 w-4 text-muted-foreground transition-transform",
|
|
23989
24406
|
isOpen && "transform rotate-180"
|
|
@@ -24201,7 +24618,7 @@ var init_SidePanel = __esm({
|
|
|
24201
24618
|
"border-l-2 border-border",
|
|
24202
24619
|
position === "left" && "border-l-0 border-r-2",
|
|
24203
24620
|
"flex flex-col",
|
|
24204
|
-
"transition-transform duration-
|
|
24621
|
+
"transition-transform duration-normal ease-standard",
|
|
24205
24622
|
width,
|
|
24206
24623
|
position === "right" ? "right-0" : "left-0",
|
|
24207
24624
|
className
|
|
@@ -24214,7 +24631,7 @@ var init_SidePanel = __esm({
|
|
|
24214
24631
|
{
|
|
24215
24632
|
variant: "ghost",
|
|
24216
24633
|
size: "sm",
|
|
24217
|
-
icon:
|
|
24634
|
+
icon: "x",
|
|
24218
24635
|
onClick: handleClose,
|
|
24219
24636
|
"aria-label": "Close panel",
|
|
24220
24637
|
children: /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", className: "sr-only", children: "Close" })
|
|
@@ -24272,7 +24689,7 @@ var init_WizardProgress = __esm({
|
|
|
24272
24689
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
24273
24690
|
const isActive = index === currentStep;
|
|
24274
24691
|
const isCompleted = index < currentStep;
|
|
24275
|
-
return /* @__PURE__ */ jsxs(
|
|
24692
|
+
return /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
24276
24693
|
/* @__PURE__ */ jsx(
|
|
24277
24694
|
"button",
|
|
24278
24695
|
{
|
|
@@ -24286,7 +24703,7 @@ var init_WizardProgress = __esm({
|
|
|
24286
24703
|
isCompleted && "bg-foreground text-background cursor-pointer hover:bg-muted-foreground",
|
|
24287
24704
|
!isActive && !isCompleted && "bg-card text-foreground"
|
|
24288
24705
|
),
|
|
24289
|
-
children: isCompleted ? /* @__PURE__ */ jsx(Icon, {
|
|
24706
|
+
children: isCompleted ? /* @__PURE__ */ jsx(Icon, { name: "check", size: "sm" }) : index + 1
|
|
24290
24707
|
}
|
|
24291
24708
|
),
|
|
24292
24709
|
!compact && /* @__PURE__ */ jsx(
|
|
@@ -24405,13 +24822,13 @@ var init_WizardNavigation = __esm({
|
|
|
24405
24822
|
),
|
|
24406
24823
|
children: [
|
|
24407
24824
|
showBack ? /* @__PURE__ */ jsxs(Button, { variant: "secondary", onClick: handleBack, disabled: isFirstStep, children: [
|
|
24408
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
24825
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-left", size: "sm" }),
|
|
24409
24826
|
resolvedBackLabel
|
|
24410
24827
|
] }) : /* @__PURE__ */ jsx(Box, {}),
|
|
24411
24828
|
/* @__PURE__ */ jsx(HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-neutral-500", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
|
|
24412
24829
|
isLastStep && showComplete ? /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
|
|
24413
24830
|
resolvedNextLabel,
|
|
24414
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
24831
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm" })
|
|
24415
24832
|
] }) : /* @__PURE__ */ jsx(Box, {})
|
|
24416
24833
|
]
|
|
24417
24834
|
}
|
|
@@ -24603,7 +25020,7 @@ var init_ViolationAlert = __esm({
|
|
|
24603
25020
|
Box,
|
|
24604
25021
|
{
|
|
24605
25022
|
className: cn(
|
|
24606
|
-
"px-3 py-2 rounded-
|
|
25023
|
+
"px-3 py-2 rounded-container border",
|
|
24607
25024
|
bgColor,
|
|
24608
25025
|
className
|
|
24609
25026
|
),
|
|
@@ -24864,7 +25281,7 @@ var init_FlipCard = __esm({
|
|
|
24864
25281
|
/* @__PURE__ */ jsx(
|
|
24865
25282
|
Box,
|
|
24866
25283
|
{
|
|
24867
|
-
className: "absolute inset-0 w-full h-full rounded-lg shadow-
|
|
25284
|
+
className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
|
|
24868
25285
|
style: { backfaceVisibility: "hidden", transform: "rotateY(0deg)" },
|
|
24869
25286
|
children: front
|
|
24870
25287
|
}
|
|
@@ -24872,7 +25289,7 @@ var init_FlipCard = __esm({
|
|
|
24872
25289
|
/* @__PURE__ */ jsx(
|
|
24873
25290
|
Box,
|
|
24874
25291
|
{
|
|
24875
|
-
className: "absolute inset-0 w-full h-full rounded-lg shadow-
|
|
25292
|
+
className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
|
|
24876
25293
|
style: { backfaceVisibility: "hidden", transform: "rotateY(180deg)" },
|
|
24877
25294
|
children: back
|
|
24878
25295
|
}
|
|
@@ -25217,7 +25634,7 @@ var init_ProgressDots = __esm({
|
|
|
25217
25634
|
Box,
|
|
25218
25635
|
{
|
|
25219
25636
|
className: cn(
|
|
25220
|
-
"rounded-full transition-all duration-
|
|
25637
|
+
"rounded-full transition-all duration-fast",
|
|
25221
25638
|
onDotClick && "cursor-pointer"
|
|
25222
25639
|
),
|
|
25223
25640
|
style: {
|
|
@@ -25259,10 +25676,7 @@ function StatBadge({
|
|
|
25259
25676
|
className
|
|
25260
25677
|
),
|
|
25261
25678
|
children: [
|
|
25262
|
-
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? (
|
|
25263
|
-
const I = resolveIcon(icon);
|
|
25264
|
-
return I ? /* @__PURE__ */ jsx(I, { className: "w-4 h-4" }) : icon;
|
|
25265
|
-
})() : icon }),
|
|
25679
|
+
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: "w-4 h-4" }) : icon }),
|
|
25266
25680
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-medium", children: label }),
|
|
25267
25681
|
format === "hearts" && max && /* @__PURE__ */ jsx(
|
|
25268
25682
|
HealthBar,
|
|
@@ -25330,7 +25744,7 @@ function InventoryGrid({
|
|
|
25330
25744
|
const eventBus = useEventBus();
|
|
25331
25745
|
const slotCount = totalSlots ?? items.length;
|
|
25332
25746
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
25333
|
-
const handleSelect =
|
|
25747
|
+
const handleSelect = React85.useCallback(
|
|
25334
25748
|
(id) => {
|
|
25335
25749
|
onSelect?.(id);
|
|
25336
25750
|
if (selectEvent) {
|
|
@@ -25543,15 +25957,15 @@ function GameCanvas2D({
|
|
|
25543
25957
|
fps = 60,
|
|
25544
25958
|
className
|
|
25545
25959
|
}) {
|
|
25546
|
-
const canvasRef =
|
|
25547
|
-
const rafRef =
|
|
25548
|
-
const frameRef =
|
|
25549
|
-
const lastTimeRef =
|
|
25550
|
-
const onDrawRef =
|
|
25960
|
+
const canvasRef = React85.useRef(null);
|
|
25961
|
+
const rafRef = React85.useRef(0);
|
|
25962
|
+
const frameRef = React85.useRef(0);
|
|
25963
|
+
const lastTimeRef = React85.useRef(0);
|
|
25964
|
+
const onDrawRef = React85.useRef(onDraw);
|
|
25551
25965
|
onDrawRef.current = onDraw;
|
|
25552
|
-
const onTickRef =
|
|
25966
|
+
const onTickRef = React85.useRef(onTick);
|
|
25553
25967
|
onTickRef.current = onTick;
|
|
25554
|
-
|
|
25968
|
+
React85.useEffect(() => {
|
|
25555
25969
|
const canvas = canvasRef.current;
|
|
25556
25970
|
if (!canvas) return;
|
|
25557
25971
|
const ctx = canvas.getContext("2d");
|
|
@@ -25840,7 +26254,7 @@ function TurnPanel({
|
|
|
25840
26254
|
className
|
|
25841
26255
|
}) {
|
|
25842
26256
|
const eventBus = useEventBus();
|
|
25843
|
-
const handleAction =
|
|
26257
|
+
const handleAction = React85.useCallback(
|
|
25844
26258
|
(event) => {
|
|
25845
26259
|
if (event) {
|
|
25846
26260
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -25986,7 +26400,7 @@ function UnitCommandBar({
|
|
|
25986
26400
|
className
|
|
25987
26401
|
}) {
|
|
25988
26402
|
const eventBus = useEventBus();
|
|
25989
|
-
const handleCommand =
|
|
26403
|
+
const handleCommand = React85.useCallback(
|
|
25990
26404
|
(event) => {
|
|
25991
26405
|
if (event) {
|
|
25992
26406
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -26471,7 +26885,7 @@ function GameMenu({
|
|
|
26471
26885
|
} catch {
|
|
26472
26886
|
}
|
|
26473
26887
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
26474
|
-
const handleOptionClick =
|
|
26888
|
+
const handleOptionClick = React85.useCallback(
|
|
26475
26889
|
(option) => {
|
|
26476
26890
|
if (option.event && eventBus) {
|
|
26477
26891
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -26585,7 +26999,7 @@ function GameOverScreen({
|
|
|
26585
26999
|
} catch {
|
|
26586
27000
|
}
|
|
26587
27001
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
26588
|
-
const handleActionClick =
|
|
27002
|
+
const handleActionClick = React85.useCallback(
|
|
26589
27003
|
(action) => {
|
|
26590
27004
|
if (action.event && eventBus) {
|
|
26591
27005
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -27293,6 +27707,7 @@ var init_NumberStepper = __esm({
|
|
|
27293
27707
|
"components/molecules/NumberStepper.tsx"() {
|
|
27294
27708
|
"use client";
|
|
27295
27709
|
init_cn();
|
|
27710
|
+
init_Icon();
|
|
27296
27711
|
init_useEventBus();
|
|
27297
27712
|
sizeStyles10 = {
|
|
27298
27713
|
sm: {
|
|
@@ -27411,7 +27826,7 @@ var init_NumberStepper = __esm({
|
|
|
27411
27826
|
styles.button
|
|
27412
27827
|
),
|
|
27413
27828
|
"aria-label": "Decrease",
|
|
27414
|
-
children: /* @__PURE__ */ jsx(
|
|
27829
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "minus", className: styles.icon })
|
|
27415
27830
|
}
|
|
27416
27831
|
),
|
|
27417
27832
|
/* @__PURE__ */ jsx(
|
|
@@ -27452,7 +27867,7 @@ var init_NumberStepper = __esm({
|
|
|
27452
27867
|
styles.button
|
|
27453
27868
|
),
|
|
27454
27869
|
"aria-label": "Increase",
|
|
27455
|
-
children: /* @__PURE__ */ jsx(
|
|
27870
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: styles.icon })
|
|
27456
27871
|
}
|
|
27457
27872
|
)
|
|
27458
27873
|
]
|
|
@@ -27477,6 +27892,7 @@ var init_StarRating = __esm({
|
|
|
27477
27892
|
"components/molecules/StarRating.tsx"() {
|
|
27478
27893
|
"use client";
|
|
27479
27894
|
init_cn();
|
|
27895
|
+
init_Icon();
|
|
27480
27896
|
init_useEventBus();
|
|
27481
27897
|
sizeStyles11 = {
|
|
27482
27898
|
sm: { star: "w-4 h-4", gap: "gap-0.5" },
|
|
@@ -27563,8 +27979,9 @@ var init_StarRating = __esm({
|
|
|
27563
27979
|
},
|
|
27564
27980
|
children: [
|
|
27565
27981
|
/* @__PURE__ */ jsx(
|
|
27566
|
-
|
|
27982
|
+
Icon,
|
|
27567
27983
|
{
|
|
27984
|
+
name: "star",
|
|
27568
27985
|
className: cn(
|
|
27569
27986
|
styles.star,
|
|
27570
27987
|
"text-muted",
|
|
@@ -27574,8 +27991,9 @@ var init_StarRating = __esm({
|
|
|
27574
27991
|
}
|
|
27575
27992
|
),
|
|
27576
27993
|
(isFull || isHalf) && /* @__PURE__ */ jsx(
|
|
27577
|
-
|
|
27994
|
+
Icon,
|
|
27578
27995
|
{
|
|
27996
|
+
name: "star",
|
|
27579
27997
|
className: cn(
|
|
27580
27998
|
styles.star,
|
|
27581
27999
|
"absolute inset-0",
|
|
@@ -27767,7 +28185,7 @@ var init_UploadDropZone = __esm({
|
|
|
27767
28185
|
"aria-hidden": "true"
|
|
27768
28186
|
}
|
|
27769
28187
|
),
|
|
27770
|
-
error ? /* @__PURE__ */ jsx(Icon, {
|
|
28188
|
+
error ? /* @__PURE__ */ jsx(Icon, { name: "file-warning", size: "lg", className: "text-error mb-2" }) : /* @__PURE__ */ jsx(Icon, { name: "upload", size: "lg", className: "text-muted-foreground mb-2" }),
|
|
27771
28189
|
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-center font-medium mb-1", children: isDragOver ? "Drop files here" : label }),
|
|
27772
28190
|
error ? /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "error", className: "text-center", children: error }) : /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", className: "text-center", children: description ?? defaultDescription })
|
|
27773
28191
|
]
|
|
@@ -27791,6 +28209,7 @@ var Lightbox;
|
|
|
27791
28209
|
var init_Lightbox = __esm({
|
|
27792
28210
|
"components/molecules/Lightbox.tsx"() {
|
|
27793
28211
|
"use client";
|
|
28212
|
+
init_Icon();
|
|
27794
28213
|
init_cn();
|
|
27795
28214
|
init_useEventBus();
|
|
27796
28215
|
Lightbox = ({
|
|
@@ -27898,7 +28317,7 @@ var init_Lightbox = __esm({
|
|
|
27898
28317
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
27899
28318
|
),
|
|
27900
28319
|
"aria-label": "Close",
|
|
27901
|
-
children: /* @__PURE__ */ jsx(
|
|
28320
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "w-6 h-6" })
|
|
27902
28321
|
}
|
|
27903
28322
|
),
|
|
27904
28323
|
hasPrev && safeImages.length > 1 && /* @__PURE__ */ jsx(
|
|
@@ -27917,7 +28336,7 @@ var init_Lightbox = __esm({
|
|
|
27917
28336
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
27918
28337
|
),
|
|
27919
28338
|
"aria-label": "Previous image",
|
|
27920
|
-
children: /* @__PURE__ */ jsx(
|
|
28339
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
27921
28340
|
}
|
|
27922
28341
|
),
|
|
27923
28342
|
/* @__PURE__ */ jsx(
|
|
@@ -27954,7 +28373,7 @@ var init_Lightbox = __esm({
|
|
|
27954
28373
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
27955
28374
|
),
|
|
27956
28375
|
"aria-label": "Next image",
|
|
27957
|
-
children: /* @__PURE__ */ jsx(
|
|
28376
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
27958
28377
|
}
|
|
27959
28378
|
),
|
|
27960
28379
|
/* @__PURE__ */ jsxs("div", { className: "absolute bottom-4 left-0 right-0 text-center", children: [
|
|
@@ -28238,7 +28657,7 @@ var init_Meter = __esm({
|
|
|
28238
28657
|
strokeDasharray: circumference,
|
|
28239
28658
|
strokeDashoffset: offset,
|
|
28240
28659
|
strokeLinecap: "round",
|
|
28241
|
-
className: "transition-all duration-
|
|
28660
|
+
className: "transition-all duration-slow ease-emphasized"
|
|
28242
28661
|
}
|
|
28243
28662
|
)
|
|
28244
28663
|
]
|
|
@@ -28281,7 +28700,7 @@ var init_Meter = __esm({
|
|
|
28281
28700
|
Box,
|
|
28282
28701
|
{
|
|
28283
28702
|
className: cn(
|
|
28284
|
-
"h-2 flex-1 rounded-sm transition-all duration-
|
|
28703
|
+
"h-2 flex-1 rounded-sm transition-all duration-normal",
|
|
28285
28704
|
!isActive && "bg-muted"
|
|
28286
28705
|
),
|
|
28287
28706
|
style: isActive ? { backgroundColor: segColor } : void 0
|
|
@@ -28300,7 +28719,7 @@ var init_Meter = __esm({
|
|
|
28300
28719
|
/* @__PURE__ */ jsx(Box, { className: "w-full h-3 bg-muted rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
28301
28720
|
Box,
|
|
28302
28721
|
{
|
|
28303
|
-
className: "h-full rounded-full transition-all duration-
|
|
28722
|
+
className: "h-full rounded-full transition-all duration-slow ease-emphasized",
|
|
28304
28723
|
style: {
|
|
28305
28724
|
width: `${percentage}%`,
|
|
28306
28725
|
backgroundColor: activeColor
|
|
@@ -28688,7 +29107,7 @@ var init_PullToRefresh = __esm({
|
|
|
28688
29107
|
className: cn(
|
|
28689
29108
|
"top-0 left-0 right-0 z-10",
|
|
28690
29109
|
"items-center justify-center",
|
|
28691
|
-
"transition-opacity duration-
|
|
29110
|
+
"transition-opacity duration-fast",
|
|
28692
29111
|
showIndicator ? "opacity-100" : "opacity-0"
|
|
28693
29112
|
),
|
|
28694
29113
|
style: {
|
|
@@ -28874,7 +29293,7 @@ var init_PricingCard = __esm({
|
|
|
28874
29293
|
"hover:-translate-y-1 transition-all",
|
|
28875
29294
|
highlighted && [
|
|
28876
29295
|
"border-[length:2px] border-primary",
|
|
28877
|
-
"shadow-
|
|
29296
|
+
"shadow-elevation-dialog",
|
|
28878
29297
|
"scale-[1.05]",
|
|
28879
29298
|
"ring-2 ring-primary"
|
|
28880
29299
|
],
|
|
@@ -28897,7 +29316,7 @@ var init_PricingCard = __esm({
|
|
|
28897
29316
|
/* @__PURE__ */ jsx(
|
|
28898
29317
|
Icon,
|
|
28899
29318
|
{
|
|
28900
|
-
|
|
29319
|
+
name: "check",
|
|
28901
29320
|
size: "sm",
|
|
28902
29321
|
className: "flex-shrink-0 text-success"
|
|
28903
29322
|
}
|
|
@@ -29115,7 +29534,7 @@ var init_StepFlow = __esm({
|
|
|
29115
29534
|
className
|
|
29116
29535
|
}) => {
|
|
29117
29536
|
if (orientation === "vertical") {
|
|
29118
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
29537
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React85__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
29119
29538
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
29120
29539
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
29121
29540
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -29126,7 +29545,7 @@ var init_StepFlow = __esm({
|
|
|
29126
29545
|
] })
|
|
29127
29546
|
] }) }, index)) });
|
|
29128
29547
|
}
|
|
29129
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
29548
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
29130
29549
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
29131
29550
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
29132
29551
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -29940,6 +30359,7 @@ var init_VoteStack = __esm({
|
|
|
29940
30359
|
"components/molecules/VoteStack.tsx"() {
|
|
29941
30360
|
"use client";
|
|
29942
30361
|
init_cn();
|
|
30362
|
+
init_Icon();
|
|
29943
30363
|
init_useEventBus();
|
|
29944
30364
|
sizeStyles12 = {
|
|
29945
30365
|
sm: {
|
|
@@ -30021,7 +30441,7 @@ var init_VoteStack = __esm({
|
|
|
30021
30441
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
30022
30442
|
styles.button
|
|
30023
30443
|
),
|
|
30024
|
-
children: /* @__PURE__ */ jsx(
|
|
30444
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-up", className: styles.icon })
|
|
30025
30445
|
}
|
|
30026
30446
|
),
|
|
30027
30447
|
/* @__PURE__ */ jsx(
|
|
@@ -30058,7 +30478,7 @@ var init_VoteStack = __esm({
|
|
|
30058
30478
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
30059
30479
|
styles.button
|
|
30060
30480
|
),
|
|
30061
|
-
children: /* @__PURE__ */ jsx(
|
|
30481
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: styles.icon })
|
|
30062
30482
|
}
|
|
30063
30483
|
)
|
|
30064
30484
|
]
|
|
@@ -30100,7 +30520,7 @@ var init_LikertScale = __esm({
|
|
|
30100
30520
|
md: "text-base",
|
|
30101
30521
|
lg: "text-lg"
|
|
30102
30522
|
};
|
|
30103
|
-
LikertScale =
|
|
30523
|
+
LikertScale = React85__default.forwardRef(
|
|
30104
30524
|
({
|
|
30105
30525
|
question,
|
|
30106
30526
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -30112,7 +30532,7 @@ var init_LikertScale = __esm({
|
|
|
30112
30532
|
variant = "radios",
|
|
30113
30533
|
className
|
|
30114
30534
|
}, ref) => {
|
|
30115
|
-
const groupId =
|
|
30535
|
+
const groupId = React85__default.useId();
|
|
30116
30536
|
const eventBus = useEventBus();
|
|
30117
30537
|
const handleSelect = useCallback(
|
|
30118
30538
|
(next) => {
|
|
@@ -30392,6 +30812,7 @@ var init_QrScanner = __esm({
|
|
|
30392
30812
|
"use client";
|
|
30393
30813
|
init_cn();
|
|
30394
30814
|
init_atoms();
|
|
30815
|
+
init_Icon();
|
|
30395
30816
|
init_useEventBus();
|
|
30396
30817
|
QrScanner = ({
|
|
30397
30818
|
onScan,
|
|
@@ -30542,7 +30963,7 @@ var init_QrScanner = __esm({
|
|
|
30542
30963
|
padding: "lg",
|
|
30543
30964
|
className: "inset-0 flex-col items-center justify-center gap-2 bg-black bg-opacity-80 text-center",
|
|
30544
30965
|
children: [
|
|
30545
|
-
/* @__PURE__ */ jsx(
|
|
30966
|
+
/* @__PURE__ */ jsx(Icon, { name: "camera", className: "h-8 w-8 text-white", "aria-hidden": "true" }),
|
|
30546
30967
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: "Camera unavailable" }),
|
|
30547
30968
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white opacity-70", children: cameraError.message })
|
|
30548
30969
|
]
|
|
@@ -30574,7 +30995,7 @@ var init_QrScanner = __esm({
|
|
|
30574
30995
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
30575
30996
|
),
|
|
30576
30997
|
"aria-label": isPaused ? "Resume scanning" : "Pause scanning",
|
|
30577
|
-
children: isPaused ? /* @__PURE__ */ jsx(
|
|
30998
|
+
children: isPaused ? /* @__PURE__ */ jsx(Icon, { name: "play", className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Icon, { name: "pause", className: "h-4 w-4" })
|
|
30578
30999
|
}
|
|
30579
31000
|
),
|
|
30580
31001
|
/* @__PURE__ */ jsx(
|
|
@@ -30587,7 +31008,7 @@ var init_QrScanner = __esm({
|
|
|
30587
31008
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
30588
31009
|
),
|
|
30589
31010
|
"aria-label": `Switch to ${currentFacing === "environment" ? "front" : "rear"} camera`,
|
|
30590
|
-
children: /* @__PURE__ */ jsx(
|
|
31011
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "refresh-cw", className: "h-4 w-4" })
|
|
30591
31012
|
}
|
|
30592
31013
|
),
|
|
30593
31014
|
/* @__PURE__ */ jsx(
|
|
@@ -30803,11 +31224,11 @@ function getShapeClasses(shape) {
|
|
|
30803
31224
|
function getStatusIcon(status) {
|
|
30804
31225
|
switch (status) {
|
|
30805
31226
|
case "seated":
|
|
30806
|
-
return /* @__PURE__ */ jsx(
|
|
31227
|
+
return /* @__PURE__ */ jsx(Icon, { name: "users", className: "w-4 h-4" });
|
|
30807
31228
|
case "ordered":
|
|
30808
|
-
return /* @__PURE__ */ jsx(
|
|
31229
|
+
return /* @__PURE__ */ jsx(Icon, { name: "coffee", className: "w-4 h-4" });
|
|
30809
31230
|
case "awaiting-bill":
|
|
30810
|
-
return /* @__PURE__ */ jsx(
|
|
31231
|
+
return /* @__PURE__ */ jsx(Icon, { name: "alert-circle", className: "w-4 h-4" });
|
|
30811
31232
|
default:
|
|
30812
31233
|
return null;
|
|
30813
31234
|
}
|
|
@@ -30819,6 +31240,7 @@ var init_PositionedCanvas = __esm({
|
|
|
30819
31240
|
init_cn();
|
|
30820
31241
|
init_useEventBus();
|
|
30821
31242
|
init_atoms();
|
|
31243
|
+
init_Icon();
|
|
30822
31244
|
STATUS_CLASSES = {
|
|
30823
31245
|
empty: "bg-surface border-border text-foreground",
|
|
30824
31246
|
seated: "bg-surface border-success text-success",
|
|
@@ -30931,7 +31353,7 @@ var init_PositionedCanvas = __esm({
|
|
|
30931
31353
|
{
|
|
30932
31354
|
ref: containerRef,
|
|
30933
31355
|
"data-testid": "positioned-canvas",
|
|
30934
|
-
className: "relative bg-background border border-border rounded-
|
|
31356
|
+
className: "relative bg-background border border-border rounded-container overflow-hidden",
|
|
30935
31357
|
style: { width, height },
|
|
30936
31358
|
onClick: handleContainerClick,
|
|
30937
31359
|
children: items.map((item) => {
|
|
@@ -31123,7 +31545,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
31123
31545
|
"transition-opacity"
|
|
31124
31546
|
),
|
|
31125
31547
|
onClick: () => setOpen((v) => !v),
|
|
31126
|
-
children: /* @__PURE__ */ jsx(
|
|
31548
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", className: "w-3.5 h-3.5" })
|
|
31127
31549
|
}
|
|
31128
31550
|
),
|
|
31129
31551
|
open && /* @__PURE__ */ jsxs(
|
|
@@ -31132,7 +31554,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
31132
31554
|
role: "menu",
|
|
31133
31555
|
className: cn(
|
|
31134
31556
|
"absolute right-0 z-10 mt-1 w-44",
|
|
31135
|
-
"rounded-
|
|
31557
|
+
"rounded-container border border-border bg-popover shadow-elevation-popover",
|
|
31136
31558
|
"py-1 text-sm"
|
|
31137
31559
|
),
|
|
31138
31560
|
children: [
|
|
@@ -31149,7 +31571,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
31149
31571
|
setOpen(false);
|
|
31150
31572
|
},
|
|
31151
31573
|
children: [
|
|
31152
|
-
/* @__PURE__ */ jsx(
|
|
31574
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" }),
|
|
31153
31575
|
" Duplicate"
|
|
31154
31576
|
]
|
|
31155
31577
|
}
|
|
@@ -31166,7 +31588,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
31166
31588
|
setOpen(false);
|
|
31167
31589
|
},
|
|
31168
31590
|
children: [
|
|
31169
|
-
/* @__PURE__ */ jsx(
|
|
31591
|
+
/* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3.5 h-3.5" }),
|
|
31170
31592
|
" Delete"
|
|
31171
31593
|
]
|
|
31172
31594
|
}
|
|
@@ -31395,7 +31817,7 @@ function BlockRow({
|
|
|
31395
31817
|
"text-sm text-muted-foreground"
|
|
31396
31818
|
),
|
|
31397
31819
|
children: [
|
|
31398
|
-
/* @__PURE__ */ jsx(
|
|
31820
|
+
/* @__PURE__ */ jsx(Icon, { name: "image", className: "mr-2 w-4 h-4" }),
|
|
31399
31821
|
" No image URL set"
|
|
31400
31822
|
]
|
|
31401
31823
|
}
|
|
@@ -31469,7 +31891,7 @@ function BlockRow({
|
|
|
31469
31891
|
"opacity-0 group-hover/item:opacity-100 hover:bg-muted hover:text-foreground"
|
|
31470
31892
|
),
|
|
31471
31893
|
onClick: () => removeListItem(child.id),
|
|
31472
|
-
children: /* @__PURE__ */ jsx(
|
|
31894
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3 h-3" })
|
|
31473
31895
|
}
|
|
31474
31896
|
)
|
|
31475
31897
|
] }, child.id)),
|
|
@@ -31484,7 +31906,7 @@ function BlockRow({
|
|
|
31484
31906
|
),
|
|
31485
31907
|
onClick: addListItem,
|
|
31486
31908
|
children: [
|
|
31487
|
-
/* @__PURE__ */ jsx(
|
|
31909
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3 h-3" }),
|
|
31488
31910
|
" Add item"
|
|
31489
31911
|
]
|
|
31490
31912
|
}
|
|
@@ -31533,7 +31955,7 @@ function BlockRow({
|
|
|
31533
31955
|
"transition-opacity"
|
|
31534
31956
|
),
|
|
31535
31957
|
onClick: () => onInsertAfter("paragraph"),
|
|
31536
|
-
children: /* @__PURE__ */ jsx(
|
|
31958
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" })
|
|
31537
31959
|
}
|
|
31538
31960
|
),
|
|
31539
31961
|
/* @__PURE__ */ jsx(
|
|
@@ -31563,6 +31985,7 @@ var init_RichBlockEditor = __esm({
|
|
|
31563
31985
|
init_Box();
|
|
31564
31986
|
init_Divider();
|
|
31565
31987
|
init_Input();
|
|
31988
|
+
init_Icon();
|
|
31566
31989
|
init_useEventBus();
|
|
31567
31990
|
TOOLBAR_ENTRIES = [
|
|
31568
31991
|
{ type: "paragraph", label: "Text", icon: Type },
|
|
@@ -31806,7 +32229,7 @@ var init_ReplyTree = __esm({
|
|
|
31806
32229
|
onClick: handleToggle,
|
|
31807
32230
|
"aria-label": isCollapsed ? "Expand replies" : "Collapse replies",
|
|
31808
32231
|
"aria-expanded": !isCollapsed,
|
|
31809
|
-
leftIcon: isCollapsed ?
|
|
32232
|
+
leftIcon: isCollapsed ? "chevron-right" : "chevron-down",
|
|
31810
32233
|
className: cn(
|
|
31811
32234
|
"w-6 h-6 p-0 min-w-0",
|
|
31812
32235
|
"rounded-sm text-muted-foreground",
|
|
@@ -31853,7 +32276,7 @@ var init_ReplyTree = __esm({
|
|
|
31853
32276
|
{
|
|
31854
32277
|
variant: "ghost",
|
|
31855
32278
|
size: "sm",
|
|
31856
|
-
leftIcon:
|
|
32279
|
+
leftIcon: "message-square",
|
|
31857
32280
|
onClick: handleReply,
|
|
31858
32281
|
"aria-label": `Reply to ${node.authorName}`,
|
|
31859
32282
|
children: "Reply"
|
|
@@ -31864,7 +32287,7 @@ var init_ReplyTree = __esm({
|
|
|
31864
32287
|
{
|
|
31865
32288
|
variant: "ghost",
|
|
31866
32289
|
size: "sm",
|
|
31867
|
-
leftIcon:
|
|
32290
|
+
leftIcon: "flag",
|
|
31868
32291
|
onClick: handleFlag,
|
|
31869
32292
|
"aria-label": `Flag reply by ${node.authorName}`,
|
|
31870
32293
|
children: "Flag"
|
|
@@ -31877,7 +32300,7 @@ var init_ReplyTree = __esm({
|
|
|
31877
32300
|
variant: "ghost",
|
|
31878
32301
|
size: "sm",
|
|
31879
32302
|
onClick: handleContinue,
|
|
31880
|
-
rightIcon:
|
|
32303
|
+
rightIcon: "chevron-right",
|
|
31881
32304
|
className: cn(
|
|
31882
32305
|
"self-start gap-1 px-0 h-auto",
|
|
31883
32306
|
"text-sm text-primary hover:underline hover:bg-transparent"
|
|
@@ -32118,7 +32541,7 @@ var init_VersionDiff = __esm({
|
|
|
32118
32541
|
className: "px-4 py-2 border-b border-border bg-muted/30 flex-wrap",
|
|
32119
32542
|
children: [
|
|
32120
32543
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "flex-wrap", children: [
|
|
32121
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
32544
|
+
/* @__PURE__ */ jsx(Icon, { name: "git-commit", size: "sm", className: "text-muted-foreground" }),
|
|
32122
32545
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: "Compare" }),
|
|
32123
32546
|
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
32124
32547
|
Select,
|
|
@@ -32155,7 +32578,7 @@ var init_VersionDiff = __esm({
|
|
|
32155
32578
|
{
|
|
32156
32579
|
variant: "ghost",
|
|
32157
32580
|
size: "sm",
|
|
32158
|
-
icon: activeView === "side-by-side" ?
|
|
32581
|
+
icon: activeView === "side-by-side" ? "align-left" : "columns",
|
|
32159
32582
|
onClick: handleViewToggle,
|
|
32160
32583
|
"aria-label": activeView === "side-by-side" ? "Switch to inline view" : "Switch to side-by-side view"
|
|
32161
32584
|
}
|
|
@@ -32165,7 +32588,7 @@ var init_VersionDiff = __esm({
|
|
|
32165
32588
|
{
|
|
32166
32589
|
variant: "ghost",
|
|
32167
32590
|
size: "sm",
|
|
32168
|
-
icon:
|
|
32591
|
+
icon: "rotate-ccw",
|
|
32169
32592
|
onClick: handleRevert,
|
|
32170
32593
|
children: "Revert"
|
|
32171
32594
|
}
|
|
@@ -32342,7 +32765,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
32342
32765
|
"aria-label": "Breadcrumb",
|
|
32343
32766
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
32344
32767
|
const isLast = idx === items.length - 1;
|
|
32345
|
-
return /* @__PURE__ */ jsxs(
|
|
32768
|
+
return /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
32346
32769
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
32347
32770
|
Icon,
|
|
32348
32771
|
{
|
|
@@ -32408,7 +32831,7 @@ function DocCodeBlock({
|
|
|
32408
32831
|
Box,
|
|
32409
32832
|
{
|
|
32410
32833
|
className: cn(
|
|
32411
|
-
"rounded-
|
|
32834
|
+
"rounded-container border border-border overflow-hidden",
|
|
32412
32835
|
className
|
|
32413
32836
|
),
|
|
32414
32837
|
position: "relative",
|
|
@@ -32567,11 +32990,11 @@ var init_DocPagination = __esm({
|
|
|
32567
32990
|
init_Typography();
|
|
32568
32991
|
linkCardStyles = [
|
|
32569
32992
|
"border border-border",
|
|
32570
|
-
"rounded-
|
|
32993
|
+
"rounded-container",
|
|
32571
32994
|
"p-4",
|
|
32572
32995
|
"transition-all",
|
|
32573
32996
|
"hover:border-primary",
|
|
32574
|
-
"hover:shadow-
|
|
32997
|
+
"hover:shadow-elevation-dialog",
|
|
32575
32998
|
"no-underline",
|
|
32576
32999
|
"flex-1",
|
|
32577
33000
|
"min-w-0",
|
|
@@ -32708,7 +33131,7 @@ function DocSearch({
|
|
|
32708
33131
|
Box,
|
|
32709
33132
|
{
|
|
32710
33133
|
position: "absolute",
|
|
32711
|
-
className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-
|
|
33134
|
+
className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-container shadow-elevation-popover max-h-80 overflow-y-auto",
|
|
32712
33135
|
children: /* @__PURE__ */ jsx(VStack, { gap: "none", children: results.map((result, index) => /* @__PURE__ */ jsx(
|
|
32713
33136
|
Box,
|
|
32714
33137
|
{
|
|
@@ -33301,7 +33724,7 @@ var init_MiniStateMachine = __esm({
|
|
|
33301
33724
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
33302
33725
|
const tc = transitionCounts[s.name] ?? 0;
|
|
33303
33726
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
33304
|
-
return /* @__PURE__ */ jsxs(
|
|
33727
|
+
return /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
33305
33728
|
/* @__PURE__ */ jsx(
|
|
33306
33729
|
AvlState,
|
|
33307
33730
|
{
|
|
@@ -34678,7 +35101,7 @@ var init_DocumentViewer = __esm({
|
|
|
34678
35101
|
}
|
|
34679
35102
|
});
|
|
34680
35103
|
function extractTitle(children) {
|
|
34681
|
-
if (!
|
|
35104
|
+
if (!React85__default.isValidElement(children)) return void 0;
|
|
34682
35105
|
const props = children.props;
|
|
34683
35106
|
if (typeof props.title === "string") {
|
|
34684
35107
|
return props.title;
|
|
@@ -34733,7 +35156,7 @@ function LinearView({
|
|
|
34733
35156
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
34734
35157
|
const isDone = i < currentIdx;
|
|
34735
35158
|
const isCurrent = i === currentIdx;
|
|
34736
|
-
return /* @__PURE__ */ jsxs(
|
|
35159
|
+
return /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
34737
35160
|
i > 0 && /* @__PURE__ */ jsx(
|
|
34738
35161
|
Typography,
|
|
34739
35162
|
{
|
|
@@ -35634,12 +36057,12 @@ var init_Form = __esm({
|
|
|
35634
36057
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
35635
36058
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
35636
36059
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
35637
|
-
const normalizedInitialData =
|
|
36060
|
+
const normalizedInitialData = React85__default.useMemo(() => {
|
|
35638
36061
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
35639
36062
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
35640
36063
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
35641
36064
|
}, [entity, initialData]);
|
|
35642
|
-
const entityDerivedFields =
|
|
36065
|
+
const entityDerivedFields = React85__default.useMemo(() => {
|
|
35643
36066
|
if (fields && fields.length > 0) return void 0;
|
|
35644
36067
|
if (!resolvedEntity) return void 0;
|
|
35645
36068
|
return resolvedEntity.fields.map(
|
|
@@ -35648,26 +36071,27 @@ var init_Form = __esm({
|
|
|
35648
36071
|
type: f3.type,
|
|
35649
36072
|
required: f3.required,
|
|
35650
36073
|
defaultValue: f3.default,
|
|
35651
|
-
values
|
|
36074
|
+
// EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
|
|
36075
|
+
values: "values" in f3 ? f3.values : void 0,
|
|
35652
36076
|
min: f3.min,
|
|
35653
36077
|
max: f3.max,
|
|
35654
|
-
relation:
|
|
36078
|
+
relation: "relation" in f3 ? { entity: f3.relation.entity } : void 0
|
|
35655
36079
|
})
|
|
35656
36080
|
);
|
|
35657
36081
|
}, [entity, fields]);
|
|
35658
36082
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
35659
36083
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
35660
36084
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
35661
|
-
const [formData, setFormData] =
|
|
36085
|
+
const [formData, setFormData] = React85__default.useState(
|
|
35662
36086
|
normalizedInitialData
|
|
35663
36087
|
);
|
|
35664
|
-
const [collapsedSections, setCollapsedSections] =
|
|
36088
|
+
const [collapsedSections, setCollapsedSections] = React85__default.useState(
|
|
35665
36089
|
/* @__PURE__ */ new Set()
|
|
35666
36090
|
);
|
|
35667
|
-
const [submitError, setSubmitError] =
|
|
35668
|
-
const formRef =
|
|
36091
|
+
const [submitError, setSubmitError] = React85__default.useState(null);
|
|
36092
|
+
const formRef = React85__default.useRef(null);
|
|
35669
36093
|
const formMode = props.mode;
|
|
35670
|
-
const mountedRef =
|
|
36094
|
+
const mountedRef = React85__default.useRef(false);
|
|
35671
36095
|
if (!mountedRef.current) {
|
|
35672
36096
|
mountedRef.current = true;
|
|
35673
36097
|
debug("forms", "mount", {
|
|
@@ -35680,7 +36104,7 @@ var init_Form = __esm({
|
|
|
35680
36104
|
});
|
|
35681
36105
|
}
|
|
35682
36106
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
35683
|
-
const evalContext =
|
|
36107
|
+
const evalContext = React85__default.useMemo(
|
|
35684
36108
|
() => ({
|
|
35685
36109
|
formValues: formData,
|
|
35686
36110
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -35689,7 +36113,7 @@ var init_Form = __esm({
|
|
|
35689
36113
|
}),
|
|
35690
36114
|
[formData, externalContext]
|
|
35691
36115
|
);
|
|
35692
|
-
|
|
36116
|
+
React85__default.useEffect(() => {
|
|
35693
36117
|
debug("forms", "initialData-sync", {
|
|
35694
36118
|
mode: formMode,
|
|
35695
36119
|
normalizedInitialData,
|
|
@@ -35700,7 +36124,7 @@ var init_Form = __esm({
|
|
|
35700
36124
|
setFormData(normalizedInitialData);
|
|
35701
36125
|
}
|
|
35702
36126
|
}, [normalizedInitialData]);
|
|
35703
|
-
const processCalculations =
|
|
36127
|
+
const processCalculations = React85__default.useCallback(
|
|
35704
36128
|
(changedFieldId, newFormData) => {
|
|
35705
36129
|
if (!hiddenCalculations.length) return;
|
|
35706
36130
|
const context = {
|
|
@@ -35725,7 +36149,7 @@ var init_Form = __esm({
|
|
|
35725
36149
|
},
|
|
35726
36150
|
[hiddenCalculations, externalContext, eventBus]
|
|
35727
36151
|
);
|
|
35728
|
-
const checkViolations =
|
|
36152
|
+
const checkViolations = React85__default.useCallback(
|
|
35729
36153
|
(changedFieldId, newFormData) => {
|
|
35730
36154
|
if (!violationTriggers.length) return;
|
|
35731
36155
|
const context = {
|
|
@@ -35763,7 +36187,7 @@ var init_Form = __esm({
|
|
|
35763
36187
|
processCalculations(name, newFormData);
|
|
35764
36188
|
checkViolations(name, newFormData);
|
|
35765
36189
|
};
|
|
35766
|
-
const isFieldVisible =
|
|
36190
|
+
const isFieldVisible = React85__default.useCallback(
|
|
35767
36191
|
(fieldName) => {
|
|
35768
36192
|
const condition = conditionalFields[fieldName];
|
|
35769
36193
|
if (!condition) return true;
|
|
@@ -35771,7 +36195,7 @@ var init_Form = __esm({
|
|
|
35771
36195
|
},
|
|
35772
36196
|
[conditionalFields, evalContext]
|
|
35773
36197
|
);
|
|
35774
|
-
const isSectionVisible =
|
|
36198
|
+
const isSectionVisible = React85__default.useCallback(
|
|
35775
36199
|
(section) => {
|
|
35776
36200
|
if (!section.condition) return true;
|
|
35777
36201
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -35847,7 +36271,7 @@ var init_Form = __esm({
|
|
|
35847
36271
|
eventBus.emit(`UI:${onCancel}`);
|
|
35848
36272
|
}
|
|
35849
36273
|
};
|
|
35850
|
-
const renderField =
|
|
36274
|
+
const renderField = React85__default.useCallback(
|
|
35851
36275
|
(field) => {
|
|
35852
36276
|
const fieldName = field.name || field.field;
|
|
35853
36277
|
if (!fieldName) return null;
|
|
@@ -35868,7 +36292,7 @@ var init_Form = __esm({
|
|
|
35868
36292
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
35869
36293
|
);
|
|
35870
36294
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
35871
|
-
const normalizedFields =
|
|
36295
|
+
const normalizedFields = React85__default.useMemo(() => {
|
|
35872
36296
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
35873
36297
|
return effectiveFields.map((field) => {
|
|
35874
36298
|
if (typeof field === "string") {
|
|
@@ -35879,10 +36303,11 @@ var init_Form = __esm({
|
|
|
35879
36303
|
type: entityField.type,
|
|
35880
36304
|
required: entityField.required,
|
|
35881
36305
|
defaultValue: entityField.default,
|
|
35882
|
-
values
|
|
36306
|
+
// EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
|
|
36307
|
+
values: "values" in entityField ? entityField.values : void 0,
|
|
35883
36308
|
min: entityField.min,
|
|
35884
36309
|
max: entityField.max,
|
|
35885
|
-
relation:
|
|
36310
|
+
relation: "relation" in entityField ? { entity: entityField.relation.entity } : void 0
|
|
35886
36311
|
};
|
|
35887
36312
|
}
|
|
35888
36313
|
return { name: field, type: "string" };
|
|
@@ -35890,7 +36315,7 @@ var init_Form = __esm({
|
|
|
35890
36315
|
return field;
|
|
35891
36316
|
});
|
|
35892
36317
|
}, [effectiveFields, resolvedEntity]);
|
|
35893
|
-
const schemaFields =
|
|
36318
|
+
const schemaFields = React85__default.useMemo(() => {
|
|
35894
36319
|
if (normalizedFields.length === 0) return null;
|
|
35895
36320
|
if (isDebugEnabled()) {
|
|
35896
36321
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -35900,7 +36325,7 @@ var init_Form = __esm({
|
|
|
35900
36325
|
}
|
|
35901
36326
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
35902
36327
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
35903
|
-
const sectionElements =
|
|
36328
|
+
const sectionElements = React85__default.useMemo(() => {
|
|
35904
36329
|
if (!sections || sections.length === 0) return null;
|
|
35905
36330
|
return sections.map((section) => {
|
|
35906
36331
|
if (!isSectionVisible(section)) {
|
|
@@ -36605,7 +37030,7 @@ var init_GameTemplate = __esm({
|
|
|
36605
37030
|
{
|
|
36606
37031
|
variant: "secondary",
|
|
36607
37032
|
size: "sm",
|
|
36608
|
-
icon:
|
|
37033
|
+
icon: "pause",
|
|
36609
37034
|
onClick: controls.onPause,
|
|
36610
37035
|
children: "Pause"
|
|
36611
37036
|
}
|
|
@@ -36614,7 +37039,7 @@ var init_GameTemplate = __esm({
|
|
|
36614
37039
|
{
|
|
36615
37040
|
variant: "primary",
|
|
36616
37041
|
size: "sm",
|
|
36617
|
-
icon:
|
|
37042
|
+
icon: "play",
|
|
36618
37043
|
onClick: controls.onPlay,
|
|
36619
37044
|
children: "Play"
|
|
36620
37045
|
}
|
|
@@ -36624,7 +37049,7 @@ var init_GameTemplate = __esm({
|
|
|
36624
37049
|
{
|
|
36625
37050
|
variant: "ghost",
|
|
36626
37051
|
size: "sm",
|
|
36627
|
-
icon:
|
|
37052
|
+
icon: "rotate-ccw",
|
|
36628
37053
|
onClick: controls.onReset,
|
|
36629
37054
|
children: "Reset"
|
|
36630
37055
|
}
|
|
@@ -37626,7 +38051,7 @@ var init_List = __esm({
|
|
|
37626
38051
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
37627
38052
|
return [];
|
|
37628
38053
|
}, [entity]);
|
|
37629
|
-
const getItemActions =
|
|
38054
|
+
const getItemActions = React85__default.useCallback(
|
|
37630
38055
|
(item) => {
|
|
37631
38056
|
if (!itemActions) return [];
|
|
37632
38057
|
if (typeof itemActions === "function") {
|
|
@@ -38099,7 +38524,7 @@ var init_MediaGallery = __esm({
|
|
|
38099
38524
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
38100
38525
|
);
|
|
38101
38526
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
38102
|
-
const items =
|
|
38527
|
+
const items = React85__default.useMemo(() => {
|
|
38103
38528
|
if (propItems) return propItems;
|
|
38104
38529
|
if (entityData.length === 0) return [];
|
|
38105
38530
|
return entityData.map((record, idx) => ({
|
|
@@ -38263,7 +38688,7 @@ var init_MediaGallery = __esm({
|
|
|
38263
38688
|
}
|
|
38264
38689
|
});
|
|
38265
38690
|
function extractTitle2(children) {
|
|
38266
|
-
if (!
|
|
38691
|
+
if (!React85__default.isValidElement(children)) return void 0;
|
|
38267
38692
|
const props = children.props;
|
|
38268
38693
|
if (typeof props.title === "string") {
|
|
38269
38694
|
return props.title;
|
|
@@ -38976,7 +39401,7 @@ var init_PageHeader = __esm({
|
|
|
38976
39401
|
info: "bg-info/10 text-info"
|
|
38977
39402
|
};
|
|
38978
39403
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
38979
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(
|
|
39404
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
38980
39405
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
38981
39406
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
38982
39407
|
"a",
|
|
@@ -39188,7 +39613,7 @@ var init_PricingPageTemplate = __esm({
|
|
|
39188
39613
|
|
|
39189
39614
|
// lib/traitRegistry.ts
|
|
39190
39615
|
function notifyListeners2() {
|
|
39191
|
-
|
|
39616
|
+
listeners2.forEach((listener) => listener());
|
|
39192
39617
|
}
|
|
39193
39618
|
function registerTrait(info) {
|
|
39194
39619
|
traits.set(info.id, info);
|
|
@@ -39210,14 +39635,14 @@ function getAllTraits() {
|
|
|
39210
39635
|
return Array.from(traits.values());
|
|
39211
39636
|
}
|
|
39212
39637
|
function subscribeToTraitChanges(listener) {
|
|
39213
|
-
|
|
39214
|
-
return () =>
|
|
39638
|
+
listeners2.add(listener);
|
|
39639
|
+
return () => listeners2.delete(listener);
|
|
39215
39640
|
}
|
|
39216
|
-
var traits,
|
|
39641
|
+
var traits, listeners2;
|
|
39217
39642
|
var init_traitRegistry = __esm({
|
|
39218
39643
|
"lib/traitRegistry.ts"() {
|
|
39219
39644
|
traits = /* @__PURE__ */ new Map();
|
|
39220
|
-
|
|
39645
|
+
listeners2 = /* @__PURE__ */ new Set();
|
|
39221
39646
|
}
|
|
39222
39647
|
});
|
|
39223
39648
|
|
|
@@ -39226,14 +39651,14 @@ function getAllTicks() {
|
|
|
39226
39651
|
return Array.from(ticks.values());
|
|
39227
39652
|
}
|
|
39228
39653
|
function subscribeToTickChanges(listener) {
|
|
39229
|
-
|
|
39230
|
-
return () =>
|
|
39654
|
+
listeners3.add(listener);
|
|
39655
|
+
return () => listeners3.delete(listener);
|
|
39231
39656
|
}
|
|
39232
|
-
var ticks,
|
|
39657
|
+
var ticks, listeners3;
|
|
39233
39658
|
var init_tickRegistry = __esm({
|
|
39234
39659
|
"lib/tickRegistry.ts"() {
|
|
39235
39660
|
ticks = /* @__PURE__ */ new Map();
|
|
39236
|
-
|
|
39661
|
+
listeners3 = /* @__PURE__ */ new Set();
|
|
39237
39662
|
}
|
|
39238
39663
|
});
|
|
39239
39664
|
|
|
@@ -39242,14 +39667,14 @@ function getGuardHistory() {
|
|
|
39242
39667
|
return [...guardHistory];
|
|
39243
39668
|
}
|
|
39244
39669
|
function subscribeToGuardChanges(listener) {
|
|
39245
|
-
|
|
39246
|
-
return () =>
|
|
39670
|
+
listeners4.add(listener);
|
|
39671
|
+
return () => listeners4.delete(listener);
|
|
39247
39672
|
}
|
|
39248
|
-
var guardHistory,
|
|
39673
|
+
var guardHistory, listeners4;
|
|
39249
39674
|
var init_guardRegistry = __esm({
|
|
39250
39675
|
"lib/guardRegistry.ts"() {
|
|
39251
39676
|
guardHistory = [];
|
|
39252
|
-
|
|
39677
|
+
listeners4 = /* @__PURE__ */ new Set();
|
|
39253
39678
|
}
|
|
39254
39679
|
});
|
|
39255
39680
|
|
|
@@ -39280,18 +39705,18 @@ function getDebugEvents() {
|
|
|
39280
39705
|
return [...events];
|
|
39281
39706
|
}
|
|
39282
39707
|
function subscribeToDebugEvents(listener) {
|
|
39283
|
-
|
|
39284
|
-
return () =>
|
|
39708
|
+
listeners5.add(listener);
|
|
39709
|
+
return () => listeners5.delete(listener);
|
|
39285
39710
|
}
|
|
39286
|
-
var events,
|
|
39711
|
+
var events, listeners5;
|
|
39287
39712
|
var init_debugRegistry = __esm({
|
|
39288
39713
|
"lib/debugRegistry.ts"() {
|
|
39289
39714
|
events = [];
|
|
39290
|
-
|
|
39715
|
+
listeners5 = /* @__PURE__ */ new Set();
|
|
39291
39716
|
}
|
|
39292
39717
|
});
|
|
39293
39718
|
function useDebugData() {
|
|
39294
|
-
const [data, setData] =
|
|
39719
|
+
const [data, setData] = React85.useState(() => ({
|
|
39295
39720
|
traits: [],
|
|
39296
39721
|
ticks: [],
|
|
39297
39722
|
guards: [],
|
|
@@ -39305,7 +39730,7 @@ function useDebugData() {
|
|
|
39305
39730
|
},
|
|
39306
39731
|
lastUpdate: Date.now()
|
|
39307
39732
|
}));
|
|
39308
|
-
|
|
39733
|
+
React85.useEffect(() => {
|
|
39309
39734
|
const updateData = () => {
|
|
39310
39735
|
setData({
|
|
39311
39736
|
traits: getAllTraits(),
|
|
@@ -39364,14 +39789,14 @@ function isDebugEnabled2() {
|
|
|
39364
39789
|
return localStorage.getItem(DEBUG_STORAGE_KEY) === "true";
|
|
39365
39790
|
}
|
|
39366
39791
|
function onDebugToggle(listener) {
|
|
39367
|
-
|
|
39368
|
-
return () =>
|
|
39792
|
+
listeners6.add(listener);
|
|
39793
|
+
return () => listeners6.delete(listener);
|
|
39369
39794
|
}
|
|
39370
|
-
var DEBUG_STORAGE_KEY,
|
|
39795
|
+
var DEBUG_STORAGE_KEY, listeners6;
|
|
39371
39796
|
var init_debugUtils = __esm({
|
|
39372
39797
|
"lib/debugUtils.ts"() {
|
|
39373
39798
|
DEBUG_STORAGE_KEY = "orbital-debug";
|
|
39374
|
-
|
|
39799
|
+
listeners6 = /* @__PURE__ */ new Set();
|
|
39375
39800
|
}
|
|
39376
39801
|
});
|
|
39377
39802
|
function layoutGraph(states, transitions, initialState, width, height) {
|
|
@@ -39414,12 +39839,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
39414
39839
|
return positions;
|
|
39415
39840
|
}
|
|
39416
39841
|
function WalkMinimap() {
|
|
39417
|
-
const [walkStep, setWalkStep] =
|
|
39418
|
-
const [traits2, setTraits] =
|
|
39419
|
-
const [coveredEdges, setCoveredEdges] =
|
|
39420
|
-
const [completedTraits, setCompletedTraits] =
|
|
39421
|
-
const prevTraitRef =
|
|
39422
|
-
|
|
39842
|
+
const [walkStep, setWalkStep] = React85.useState(null);
|
|
39843
|
+
const [traits2, setTraits] = React85.useState([]);
|
|
39844
|
+
const [coveredEdges, setCoveredEdges] = React85.useState([]);
|
|
39845
|
+
const [completedTraits, setCompletedTraits] = React85.useState(/* @__PURE__ */ new Set());
|
|
39846
|
+
const prevTraitRef = React85.useRef(null);
|
|
39847
|
+
React85.useEffect(() => {
|
|
39423
39848
|
const interval = setInterval(() => {
|
|
39424
39849
|
const w = window;
|
|
39425
39850
|
const step = w.__orbitalWalkStep;
|
|
@@ -39866,15 +40291,15 @@ var init_EntitiesTab = __esm({
|
|
|
39866
40291
|
}
|
|
39867
40292
|
});
|
|
39868
40293
|
function EventFlowTab({ events: events2 }) {
|
|
39869
|
-
const [filter, setFilter] =
|
|
39870
|
-
const containerRef =
|
|
39871
|
-
const [autoScroll, setAutoScroll] =
|
|
39872
|
-
|
|
40294
|
+
const [filter, setFilter] = React85.useState("all");
|
|
40295
|
+
const containerRef = React85.useRef(null);
|
|
40296
|
+
const [autoScroll, setAutoScroll] = React85.useState(true);
|
|
40297
|
+
React85.useEffect(() => {
|
|
39873
40298
|
if (autoScroll && containerRef.current) {
|
|
39874
40299
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
39875
40300
|
}
|
|
39876
40301
|
}, [events2.length, autoScroll]);
|
|
39877
|
-
const filteredEvents =
|
|
40302
|
+
const filteredEvents = React85.useMemo(() => {
|
|
39878
40303
|
if (filter === "all") return events2;
|
|
39879
40304
|
return events2.filter((e) => e.type === filter);
|
|
39880
40305
|
}, [events2, filter]);
|
|
@@ -39993,7 +40418,7 @@ var init_EventFlowTab = __esm({
|
|
|
39993
40418
|
}
|
|
39994
40419
|
});
|
|
39995
40420
|
function GuardsPanel({ guards }) {
|
|
39996
|
-
const [filter, setFilter] =
|
|
40421
|
+
const [filter, setFilter] = React85.useState("all");
|
|
39997
40422
|
if (guards.length === 0) {
|
|
39998
40423
|
return /* @__PURE__ */ jsx(
|
|
39999
40424
|
EmptyState,
|
|
@@ -40006,7 +40431,7 @@ function GuardsPanel({ guards }) {
|
|
|
40006
40431
|
}
|
|
40007
40432
|
const passedCount = guards.filter((g) => g.result).length;
|
|
40008
40433
|
const failedCount = guards.length - passedCount;
|
|
40009
|
-
const filteredGuards =
|
|
40434
|
+
const filteredGuards = React85.useMemo(() => {
|
|
40010
40435
|
if (filter === "all") return guards;
|
|
40011
40436
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
40012
40437
|
return guards.filter((g) => !g.result);
|
|
@@ -40167,10 +40592,10 @@ function EffectBadge({ effect }) {
|
|
|
40167
40592
|
] });
|
|
40168
40593
|
}
|
|
40169
40594
|
function TransitionTimeline({ transitions }) {
|
|
40170
|
-
const containerRef =
|
|
40171
|
-
const [autoScroll, setAutoScroll] =
|
|
40172
|
-
const [expandedId, setExpandedId] =
|
|
40173
|
-
|
|
40595
|
+
const containerRef = React85.useRef(null);
|
|
40596
|
+
const [autoScroll, setAutoScroll] = React85.useState(true);
|
|
40597
|
+
const [expandedId, setExpandedId] = React85.useState(null);
|
|
40598
|
+
React85.useEffect(() => {
|
|
40174
40599
|
if (autoScroll && containerRef.current) {
|
|
40175
40600
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
40176
40601
|
}
|
|
@@ -40456,9 +40881,9 @@ function getAllEvents(traits2) {
|
|
|
40456
40881
|
}
|
|
40457
40882
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
40458
40883
|
const eventBus = useEventBus();
|
|
40459
|
-
const [log12, setLog] =
|
|
40460
|
-
const prevStatesRef =
|
|
40461
|
-
|
|
40884
|
+
const [log12, setLog] = React85.useState([]);
|
|
40885
|
+
const prevStatesRef = React85.useRef(/* @__PURE__ */ new Map());
|
|
40886
|
+
React85.useEffect(() => {
|
|
40462
40887
|
for (const trait of traits2) {
|
|
40463
40888
|
const prev = prevStatesRef.current.get(trait.id);
|
|
40464
40889
|
if (prev && prev !== trait.currentState) {
|
|
@@ -40628,10 +41053,10 @@ function VerifyModePanel({
|
|
|
40628
41053
|
serverCount,
|
|
40629
41054
|
localCount
|
|
40630
41055
|
}) {
|
|
40631
|
-
const [expanded, setExpanded] =
|
|
40632
|
-
const scrollRef =
|
|
40633
|
-
const prevCountRef =
|
|
40634
|
-
|
|
41056
|
+
const [expanded, setExpanded] = React85.useState(true);
|
|
41057
|
+
const scrollRef = React85.useRef(null);
|
|
41058
|
+
const prevCountRef = React85.useRef(0);
|
|
41059
|
+
React85.useEffect(() => {
|
|
40635
41060
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
40636
41061
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
40637
41062
|
}
|
|
@@ -40697,10 +41122,10 @@ function RuntimeDebugger({
|
|
|
40697
41122
|
defaultTab,
|
|
40698
41123
|
schema
|
|
40699
41124
|
}) {
|
|
40700
|
-
const [isCollapsed, setIsCollapsed] =
|
|
40701
|
-
const [isVisible, setIsVisible] =
|
|
41125
|
+
const [isCollapsed, setIsCollapsed] = React85.useState(mode === "verify" ? true : defaultCollapsed);
|
|
41126
|
+
const [isVisible, setIsVisible] = React85.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
40702
41127
|
const debugData = useDebugData();
|
|
40703
|
-
|
|
41128
|
+
React85.useEffect(() => {
|
|
40704
41129
|
if (mode === "inline") return;
|
|
40705
41130
|
return onDebugToggle((enabled) => {
|
|
40706
41131
|
setIsVisible(enabled);
|
|
@@ -40709,7 +41134,7 @@ function RuntimeDebugger({
|
|
|
40709
41134
|
}
|
|
40710
41135
|
});
|
|
40711
41136
|
}, [mode]);
|
|
40712
|
-
|
|
41137
|
+
React85.useEffect(() => {
|
|
40713
41138
|
if (mode === "inline") return;
|
|
40714
41139
|
const handleKeyDown = (e) => {
|
|
40715
41140
|
if (e.key === "`" && isVisible) {
|
|
@@ -41258,7 +41683,7 @@ function SequenceBar({
|
|
|
41258
41683
|
onSlotRemove(index);
|
|
41259
41684
|
}, [onSlotRemove, playing]);
|
|
41260
41685
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
41261
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
41686
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
41262
41687
|
i > 0 && /* @__PURE__ */ jsx(
|
|
41263
41688
|
Typography,
|
|
41264
41689
|
{
|
|
@@ -42660,7 +43085,7 @@ var init_StatCard = __esm({
|
|
|
42660
43085
|
const labelToUse = propLabel ?? propTitle;
|
|
42661
43086
|
const eventBus = useEventBus();
|
|
42662
43087
|
const { t } = useTranslate();
|
|
42663
|
-
const handleActionClick =
|
|
43088
|
+
const handleActionClick = React85__default.useCallback(() => {
|
|
42664
43089
|
if (action?.event) {
|
|
42665
43090
|
eventBus.emit(`UI:${action.event}`, {});
|
|
42666
43091
|
}
|
|
@@ -42671,7 +43096,7 @@ var init_StatCard = __esm({
|
|
|
42671
43096
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
42672
43097
|
const isLoading = externalLoading ?? false;
|
|
42673
43098
|
const error = externalError;
|
|
42674
|
-
const computeMetricValue =
|
|
43099
|
+
const computeMetricValue = React85__default.useCallback(
|
|
42675
43100
|
(metric, items) => {
|
|
42676
43101
|
if (metric.value !== void 0) {
|
|
42677
43102
|
return metric.value;
|
|
@@ -42710,7 +43135,7 @@ var init_StatCard = __esm({
|
|
|
42710
43135
|
},
|
|
42711
43136
|
[]
|
|
42712
43137
|
);
|
|
42713
|
-
const schemaStats =
|
|
43138
|
+
const schemaStats = React85__default.useMemo(() => {
|
|
42714
43139
|
if (!metrics || metrics.length === 0) return null;
|
|
42715
43140
|
return metrics.map((metric) => ({
|
|
42716
43141
|
label: metric.label,
|
|
@@ -42718,7 +43143,7 @@ var init_StatCard = __esm({
|
|
|
42718
43143
|
format: metric.format
|
|
42719
43144
|
}));
|
|
42720
43145
|
}, [metrics, data, computeMetricValue]);
|
|
42721
|
-
const calculatedTrend =
|
|
43146
|
+
const calculatedTrend = React85__default.useMemo(() => {
|
|
42722
43147
|
if (manualTrend !== void 0) return manualTrend;
|
|
42723
43148
|
if (previousValue === void 0 || currentValue === void 0)
|
|
42724
43149
|
return void 0;
|
|
@@ -43829,7 +44254,7 @@ var init_Timeline = __esm({
|
|
|
43829
44254
|
}) => {
|
|
43830
44255
|
const { t } = useTranslate();
|
|
43831
44256
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
43832
|
-
const items =
|
|
44257
|
+
const items = React85__default.useMemo(() => {
|
|
43833
44258
|
if (propItems) return propItems;
|
|
43834
44259
|
if (entityData.length === 0) return [];
|
|
43835
44260
|
return entityData.map((record, idx) => {
|
|
@@ -43936,7 +44361,7 @@ var init_Timeline = __esm({
|
|
|
43936
44361
|
}
|
|
43937
44362
|
});
|
|
43938
44363
|
function extractToastProps(children) {
|
|
43939
|
-
if (!
|
|
44364
|
+
if (!React85__default.isValidElement(children)) {
|
|
43940
44365
|
if (typeof children === "string") {
|
|
43941
44366
|
return { message: children };
|
|
43942
44367
|
}
|
|
@@ -43974,7 +44399,7 @@ var init_ToastSlot = __esm({
|
|
|
43974
44399
|
eventBus.emit("UI:CLOSE");
|
|
43975
44400
|
};
|
|
43976
44401
|
if (!isVisible) return null;
|
|
43977
|
-
const isCustomContent =
|
|
44402
|
+
const isCustomContent = React85__default.isValidElement(children) && !message;
|
|
43978
44403
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
43979
44404
|
Toast,
|
|
43980
44405
|
{
|
|
@@ -44243,7 +44668,7 @@ var init_WizardContainer = __esm({
|
|
|
44243
44668
|
const isCompleted = index < currentStep;
|
|
44244
44669
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
44245
44670
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
44246
|
-
return /* @__PURE__ */ jsxs(
|
|
44671
|
+
return /* @__PURE__ */ jsxs(React85__default.Fragment, { children: [
|
|
44247
44672
|
/* @__PURE__ */ jsx(
|
|
44248
44673
|
Button,
|
|
44249
44674
|
{
|
|
@@ -44625,12 +45050,12 @@ var init_WorldMapTemplate = __esm({
|
|
|
44625
45050
|
}
|
|
44626
45051
|
});
|
|
44627
45052
|
function lazyThree(name, loader) {
|
|
44628
|
-
const Lazy =
|
|
45053
|
+
const Lazy = React85__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
44629
45054
|
function ThreeWrapper(props) {
|
|
44630
|
-
return
|
|
44631
|
-
|
|
45055
|
+
return React85__default.createElement(
|
|
45056
|
+
React85__default.Suspense,
|
|
44632
45057
|
{ fallback: null },
|
|
44633
|
-
|
|
45058
|
+
React85__default.createElement(Lazy, props)
|
|
44634
45059
|
);
|
|
44635
45060
|
}
|
|
44636
45061
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -45246,7 +45671,7 @@ function SuspenseConfigProvider({
|
|
|
45246
45671
|
config,
|
|
45247
45672
|
children
|
|
45248
45673
|
}) {
|
|
45249
|
-
return
|
|
45674
|
+
return React85__default.createElement(
|
|
45250
45675
|
SuspenseConfigContext.Provider,
|
|
45251
45676
|
{ value: config },
|
|
45252
45677
|
children
|
|
@@ -45729,7 +46154,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
45729
46154
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
45730
46155
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
45731
46156
|
}
|
|
45732
|
-
return /* @__PURE__ */ jsx(
|
|
46157
|
+
return /* @__PURE__ */ jsx(React85__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
45733
46158
|
}
|
|
45734
46159
|
if (!child || typeof child !== "object") return null;
|
|
45735
46160
|
const childId = `${parentId}-${index}`;
|
|
@@ -45766,14 +46191,14 @@ function isPatternConfig(value) {
|
|
|
45766
46191
|
if (value === null || value === void 0) return false;
|
|
45767
46192
|
if (typeof value !== "object") return false;
|
|
45768
46193
|
if (Array.isArray(value)) return false;
|
|
45769
|
-
if (
|
|
46194
|
+
if (React85__default.isValidElement(value)) return false;
|
|
45770
46195
|
if (value instanceof Date) return false;
|
|
45771
46196
|
if (typeof value === "function") return false;
|
|
45772
46197
|
const record = value;
|
|
45773
46198
|
return "type" in record && typeof record.type === "string";
|
|
45774
46199
|
}
|
|
45775
46200
|
function isPlainConfigObject(value) {
|
|
45776
|
-
if (
|
|
46201
|
+
if (React85__default.isValidElement(value)) return false;
|
|
45777
46202
|
if (value instanceof Date) return false;
|
|
45778
46203
|
const proto = Object.getPrototypeOf(value);
|
|
45779
46204
|
return proto === Object.prototype || proto === null;
|
|
@@ -46135,7 +46560,7 @@ function resolveLambdaBindings(body, argName, arg) {
|
|
|
46135
46560
|
if (Array.isArray(body)) {
|
|
46136
46561
|
return body.map((b) => resolveLambdaBindings(b, argName, arg));
|
|
46137
46562
|
}
|
|
46138
|
-
if (body !== null && typeof body === "object" && !
|
|
46563
|
+
if (body !== null && typeof body === "object" && !React85__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
46139
46564
|
const out = {};
|
|
46140
46565
|
for (const [k, v] of Object.entries(body)) {
|
|
46141
46566
|
out[k] = resolveLambdaBindings(v, argName, arg);
|
|
@@ -46154,7 +46579,7 @@ function getSlotContentRenderer2() {
|
|
|
46154
46579
|
function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
46155
46580
|
return (item, index) => {
|
|
46156
46581
|
const resolvedBody = resolveLambdaBindings(lambdaBody, argName, item);
|
|
46157
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
46582
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React85__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
46158
46583
|
return null;
|
|
46159
46584
|
}
|
|
46160
46585
|
const record = resolvedBody;
|
|
@@ -46172,7 +46597,7 @@ function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
|
46172
46597
|
props: childProps,
|
|
46173
46598
|
priority: 0
|
|
46174
46599
|
};
|
|
46175
|
-
return
|
|
46600
|
+
return React85__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
46176
46601
|
};
|
|
46177
46602
|
}
|
|
46178
46603
|
function convertNode(node, callerKey) {
|
|
@@ -46191,7 +46616,7 @@ function convertNode(node, callerKey) {
|
|
|
46191
46616
|
});
|
|
46192
46617
|
return anyChanged ? mapped : node;
|
|
46193
46618
|
}
|
|
46194
|
-
if (typeof node === "object" && !
|
|
46619
|
+
if (typeof node === "object" && !React85__default.isValidElement(node) && !(node instanceof Date)) {
|
|
46195
46620
|
return convertObjectProps(node);
|
|
46196
46621
|
}
|
|
46197
46622
|
return node;
|
|
@@ -47348,8 +47773,176 @@ function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
|
|
|
47348
47773
|
vars[`--shadow-${key}`] = value;
|
|
47349
47774
|
}
|
|
47350
47775
|
}
|
|
47776
|
+
const pickDensity = isDark && darkVariant?.density ? darkVariant.density : tokens.density;
|
|
47777
|
+
emitDensity(pickDensity, vars);
|
|
47778
|
+
const pickTypeScale = isDark && darkVariant?.typeScale ? darkVariant.typeScale : tokens.typeScale;
|
|
47779
|
+
emitTypeScale(pickTypeScale, vars);
|
|
47780
|
+
const pickMotion = isDark && darkVariant?.motion ? darkVariant.motion : tokens.motion;
|
|
47781
|
+
emitMotion(pickMotion, vars);
|
|
47782
|
+
const pickIconography = isDark && darkVariant?.iconography ? darkVariant.iconography : tokens.iconography;
|
|
47783
|
+
emitIconography(pickIconography, vars);
|
|
47784
|
+
const pickElevation = isDark && darkVariant?.elevation ? darkVariant.elevation : tokens.elevation;
|
|
47785
|
+
emitElevation(pickElevation, vars);
|
|
47786
|
+
const pickGeometry = isDark && darkVariant?.geometry ? darkVariant.geometry : tokens.geometry;
|
|
47787
|
+
emitGeometry(pickGeometry, vars);
|
|
47351
47788
|
return vars;
|
|
47352
47789
|
}
|
|
47790
|
+
function emitDensity(density, vars) {
|
|
47791
|
+
if (!density) return;
|
|
47792
|
+
if (density.spacing) {
|
|
47793
|
+
const s = density.spacing;
|
|
47794
|
+
const pairs2 = [
|
|
47795
|
+
["0", s.space0],
|
|
47796
|
+
["1", s.space1],
|
|
47797
|
+
["2", s.space2],
|
|
47798
|
+
["3", s.space3],
|
|
47799
|
+
["4", s.space4],
|
|
47800
|
+
["5", s.space5],
|
|
47801
|
+
["6", s.space6],
|
|
47802
|
+
["7", s.space7],
|
|
47803
|
+
["8", s.space8],
|
|
47804
|
+
["9", s.space9],
|
|
47805
|
+
["10", s.space10],
|
|
47806
|
+
["11", s.space11],
|
|
47807
|
+
["12", s.space12]
|
|
47808
|
+
];
|
|
47809
|
+
for (const [k, v] of pairs2) {
|
|
47810
|
+
if (v !== void 0) vars[`--space-${k}`] = v;
|
|
47811
|
+
}
|
|
47812
|
+
}
|
|
47813
|
+
const pairs = [
|
|
47814
|
+
["button-height-sm", density.buttonHeightSm],
|
|
47815
|
+
["button-height-md", density.buttonHeightMd],
|
|
47816
|
+
["button-height-lg", density.buttonHeightLg],
|
|
47817
|
+
["input-height-sm", density.inputHeightSm],
|
|
47818
|
+
["input-height-md", density.inputHeightMd],
|
|
47819
|
+
["input-height-lg", density.inputHeightLg],
|
|
47820
|
+
["row-height-compact", density.rowHeightCompact],
|
|
47821
|
+
["row-height-normal", density.rowHeightNormal],
|
|
47822
|
+
["row-height-spacious", density.rowHeightSpacious],
|
|
47823
|
+
["card-padding-sm", density.cardPaddingSm],
|
|
47824
|
+
["card-padding-md", density.cardPaddingMd],
|
|
47825
|
+
["card-padding-lg", density.cardPaddingLg],
|
|
47826
|
+
["dialog-padding", density.dialogPadding],
|
|
47827
|
+
["section-gap", density.sectionGap]
|
|
47828
|
+
];
|
|
47829
|
+
for (const [k, v] of pairs) {
|
|
47830
|
+
if (v !== void 0) vars[`--${k}`] = v;
|
|
47831
|
+
}
|
|
47832
|
+
}
|
|
47833
|
+
function typeSizeKeyStr(k) {
|
|
47834
|
+
return k;
|
|
47835
|
+
}
|
|
47836
|
+
function typeWeightStr(w) {
|
|
47837
|
+
return w;
|
|
47838
|
+
}
|
|
47839
|
+
function emitTypeIntent(name, intent, vars) {
|
|
47840
|
+
const sizeKey = typeSizeKeyStr(intent.size);
|
|
47841
|
+
const weight = typeWeightStr(intent.weight);
|
|
47842
|
+
vars[`--intent-${name}-size`] = `var(--text-${sizeKey})`;
|
|
47843
|
+
vars[`--intent-${name}-weight`] = `var(--font-weight-${weight})`;
|
|
47844
|
+
vars[`--intent-${name}-leading`] = `var(--leading-${sizeKey})`;
|
|
47845
|
+
}
|
|
47846
|
+
function emitTypeScale(ts, vars) {
|
|
47847
|
+
if (!ts) return;
|
|
47848
|
+
if (ts.displayFamily !== void 0) vars["--font-family-display"] = ts.displayFamily;
|
|
47849
|
+
if (ts.bodyFamily !== void 0) vars["--font-family-body"] = ts.bodyFamily;
|
|
47850
|
+
if (ts.monoFamily !== void 0) vars["--font-family-mono"] = ts.monoFamily;
|
|
47851
|
+
if (ts.scale) {
|
|
47852
|
+
const s = ts.scale;
|
|
47853
|
+
const pairs = [
|
|
47854
|
+
["xs", s.xs],
|
|
47855
|
+
["sm", s.sm],
|
|
47856
|
+
["base", s.base],
|
|
47857
|
+
["lg", s.lg],
|
|
47858
|
+
["xl", s.xl],
|
|
47859
|
+
["2xl", s["2xl"]],
|
|
47860
|
+
["3xl", s["3xl"]],
|
|
47861
|
+
["4xl", s["4xl"]],
|
|
47862
|
+
["display-1", s["display-1"]],
|
|
47863
|
+
["display-2", s["display-2"]]
|
|
47864
|
+
];
|
|
47865
|
+
for (const [k, entry] of pairs) {
|
|
47866
|
+
if (entry !== void 0) {
|
|
47867
|
+
vars[`--text-${k}`] = entry.size;
|
|
47868
|
+
vars[`--leading-${k}`] = entry.lineHeight;
|
|
47869
|
+
}
|
|
47870
|
+
}
|
|
47871
|
+
}
|
|
47872
|
+
if (ts.intents) {
|
|
47873
|
+
const i = ts.intents;
|
|
47874
|
+
if (i.headingMajor) emitTypeIntent("heading-major", i.headingMajor, vars);
|
|
47875
|
+
if (i.headingMinor) emitTypeIntent("heading-minor", i.headingMinor, vars);
|
|
47876
|
+
if (i.bodyEmphasis) emitTypeIntent("body-emphasis", i.bodyEmphasis, vars);
|
|
47877
|
+
if (i.bodyDefault) emitTypeIntent("body-default", i.bodyDefault, vars);
|
|
47878
|
+
if (i.bodyQuiet) emitTypeIntent("body-quiet", i.bodyQuiet, vars);
|
|
47879
|
+
if (i.caption) emitTypeIntent("caption", i.caption, vars);
|
|
47880
|
+
if (i.numeric) emitTypeIntent("numeric", i.numeric, vars);
|
|
47881
|
+
}
|
|
47882
|
+
}
|
|
47883
|
+
function emitMotionIntent(name, intent, vars) {
|
|
47884
|
+
vars[`--intent-${name}-duration`] = `var(--duration-${intent.duration})`;
|
|
47885
|
+
vars[`--intent-${name}-easing`] = `var(--easing-${intent.easing})`;
|
|
47886
|
+
}
|
|
47887
|
+
function emitMotion(m, vars) {
|
|
47888
|
+
if (!m) return;
|
|
47889
|
+
if (m.durations) {
|
|
47890
|
+
const d = m.durations;
|
|
47891
|
+
const pairs = [
|
|
47892
|
+
["instant", d.instant],
|
|
47893
|
+
["fast", d.fast],
|
|
47894
|
+
["normal", d.normal],
|
|
47895
|
+
["slow", d.slow],
|
|
47896
|
+
["dramatic", d.dramatic]
|
|
47897
|
+
];
|
|
47898
|
+
for (const [k, v] of pairs) {
|
|
47899
|
+
if (v !== void 0) vars[`--duration-${k}`] = v;
|
|
47900
|
+
}
|
|
47901
|
+
}
|
|
47902
|
+
if (m.easings) {
|
|
47903
|
+
const e = m.easings;
|
|
47904
|
+
const pairs = [
|
|
47905
|
+
["linear", e.linear],
|
|
47906
|
+
["standard", e.standard],
|
|
47907
|
+
["emphasized", e.emphasized],
|
|
47908
|
+
["spring", e.spring]
|
|
47909
|
+
];
|
|
47910
|
+
for (const [k, v] of pairs) {
|
|
47911
|
+
if (v !== void 0) vars[`--easing-${k}`] = v;
|
|
47912
|
+
}
|
|
47913
|
+
}
|
|
47914
|
+
if (m.intents) {
|
|
47915
|
+
const i = m.intents;
|
|
47916
|
+
if (i.enter) emitMotionIntent("enter", i.enter, vars);
|
|
47917
|
+
if (i.exit) emitMotionIntent("exit", i.exit, vars);
|
|
47918
|
+
if (i.hover) emitMotionIntent("hover", i.hover, vars);
|
|
47919
|
+
if (i.press) emitMotionIntent("press", i.press, vars);
|
|
47920
|
+
if (i.expand) emitMotionIntent("expand", i.expand, vars);
|
|
47921
|
+
if (i.transition) emitMotionIntent("transition", i.transition, vars);
|
|
47922
|
+
}
|
|
47923
|
+
}
|
|
47924
|
+
function emitIconography(i, vars) {
|
|
47925
|
+
if (!i) return;
|
|
47926
|
+
if (i.family !== void 0) vars["--icon-family"] = i.family;
|
|
47927
|
+
if (i.strokeWidth !== void 0) vars["--icon-stroke-width"] = i.strokeWidth;
|
|
47928
|
+
if (i.defaultSize !== void 0) vars["--icon-default-size"] = i.defaultSize;
|
|
47929
|
+
}
|
|
47930
|
+
function emitElevation(e, vars) {
|
|
47931
|
+
if (!e) return;
|
|
47932
|
+
if (e.cardElevation !== void 0) vars["--elevation-card"] = e.cardElevation;
|
|
47933
|
+
if (e.popoverElevation !== void 0) vars["--elevation-popover"] = e.popoverElevation;
|
|
47934
|
+
if (e.dialogElevation !== void 0) vars["--elevation-dialog"] = e.dialogElevation;
|
|
47935
|
+
if (e.toastElevation !== void 0) vars["--elevation-toast"] = e.toastElevation;
|
|
47936
|
+
}
|
|
47937
|
+
function emitGeometry(g, vars) {
|
|
47938
|
+
if (!g) return;
|
|
47939
|
+
if (g.radiusContainer !== void 0) vars["--radius-container"] = g.radiusContainer;
|
|
47940
|
+
if (g.radiusInteractive !== void 0) vars["--radius-interactive"] = g.radiusInteractive;
|
|
47941
|
+
if (g.radiusPill !== void 0) vars["--radius-pill"] = g.radiusPill;
|
|
47942
|
+
if (g.borderHairline !== void 0) vars["--border-hairline"] = g.borderHairline;
|
|
47943
|
+
if (g.borderStandard !== void 0) vars["--border-standard"] = g.borderStandard;
|
|
47944
|
+
if (g.borderHeavy !== void 0) vars["--border-heavy"] = g.borderHeavy;
|
|
47945
|
+
}
|
|
47353
47946
|
function resolveThemeForRuntime(theme) {
|
|
47354
47947
|
if (theme === void 0) return void 0;
|
|
47355
47948
|
if (typeof theme === "string") return void 0;
|
|
@@ -47488,7 +48081,7 @@ function generateEntityRow(entity, idx) {
|
|
|
47488
48081
|
return row;
|
|
47489
48082
|
}
|
|
47490
48083
|
function generateFieldValue(entityName, field, idx) {
|
|
47491
|
-
if (field.values && field.values.length > 0) {
|
|
48084
|
+
if ("values" in field && field.values && field.values.length > 0) {
|
|
47492
48085
|
return field.values[(idx - 1) % field.values.length];
|
|
47493
48086
|
}
|
|
47494
48087
|
const fieldName = field.name ?? "";
|