@almadar/ui 5.0.0 → 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 +2233 -1838
- package/dist/avl/index.js +844 -452
- package/dist/components/atoms/Icon.d.ts +7 -4
- package/dist/components/index.cjs +1967 -1572
- package/dist/components/index.js +807 -415
- 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/docs/index.cjs +437 -79
- package/dist/docs/index.d.cts +7 -4
- package/dist/docs/index.js +410 -55
- package/dist/lib/iconFamily.d.ts +41 -0
- package/dist/marketing/index.cjs +462 -106
- package/dist/marketing/index.d.cts +7 -4
- package/dist/marketing/index.js +428 -75
- package/dist/providers/index.cjs +1836 -1441
- package/dist/providers/index.js +811 -419
- package/dist/runtime/index.cjs +1864 -1469
- package/dist/runtime/index.js +804 -412
- package/package.json +4 -1
- package/themes/index.css +5 -0
package/dist/avl/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { OrbitControls as OrbitControls$1, Grid as Grid$1, Stars, Sparkles, Html, RoundedBox } from '@react-three/drei';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React98 from 'react';
|
|
4
|
+
import React98__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId, forwardRef, useImperativeHandle, Component } from 'react';
|
|
5
5
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
6
6
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
7
7
|
import { MarkerType, Handle, Position, getBezierPath, EdgeLabelRenderer, BaseEdge, ReactFlowProvider, useNodesState, useEdgesState, useReactFlow, ReactFlow, Controls, Background, BackgroundVariant } from '@xyflow/react';
|
|
8
|
-
import * as
|
|
9
|
-
import { Loader2, X,
|
|
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 { createPortal } from 'react-dom';
|
|
12
15
|
import { Link, Outlet, useLocation } from 'react-router-dom';
|
|
@@ -3333,14 +3336,14 @@ function EventBusProvider({ children }) {
|
|
|
3333
3336
|
timestamp: Date.now(),
|
|
3334
3337
|
source
|
|
3335
3338
|
};
|
|
3336
|
-
const
|
|
3337
|
-
const listenerCount = (
|
|
3339
|
+
const listeners7 = listenersRef.current.get(type);
|
|
3340
|
+
const listenerCount = (listeners7?.size ?? 0) + anyListenersRef.current.size;
|
|
3338
3341
|
busLog.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount });
|
|
3339
3342
|
if (listenerCount === 0) {
|
|
3340
3343
|
busLog.warn("emit:no-listeners", { type });
|
|
3341
3344
|
}
|
|
3342
|
-
if (
|
|
3343
|
-
const listenersCopy = Array.from(
|
|
3345
|
+
if (listeners7) {
|
|
3346
|
+
const listenersCopy = Array.from(listeners7);
|
|
3344
3347
|
for (let i = 0; i < listenersCopy.length; i++) {
|
|
3345
3348
|
const listener = listenersCopy[i];
|
|
3346
3349
|
busLog.debug("emit:listener", {
|
|
@@ -3376,14 +3379,14 @@ function EventBusProvider({ children }) {
|
|
|
3376
3379
|
if (!listenersRef.current.has(type)) {
|
|
3377
3380
|
listenersRef.current.set(type, /* @__PURE__ */ new Set());
|
|
3378
3381
|
}
|
|
3379
|
-
const
|
|
3380
|
-
|
|
3382
|
+
const listeners7 = listenersRef.current.get(type);
|
|
3383
|
+
listeners7.add(listener);
|
|
3381
3384
|
if (!listenerTags.has(listener)) listenerTags.set(listener, captureSubscriberTag(listener));
|
|
3382
|
-
subLog.debug("subscribe", { type, totalListeners:
|
|
3385
|
+
subLog.debug("subscribe", { type, totalListeners: listeners7.size, tag: listenerTags.get(listener) });
|
|
3383
3386
|
return () => {
|
|
3384
|
-
|
|
3385
|
-
subLog.debug("unsubscribe", { type, remaining:
|
|
3386
|
-
if (
|
|
3387
|
+
listeners7.delete(listener);
|
|
3388
|
+
subLog.debug("unsubscribe", { type, remaining: listeners7.size });
|
|
3389
|
+
if (listeners7.size === 0) {
|
|
3387
3390
|
listenersRef.current.delete(type);
|
|
3388
3391
|
}
|
|
3389
3392
|
};
|
|
@@ -3396,8 +3399,8 @@ function EventBusProvider({ children }) {
|
|
|
3396
3399
|
return on(type, wrappedListener);
|
|
3397
3400
|
}, [on]);
|
|
3398
3401
|
const hasListeners = useCallback((type) => {
|
|
3399
|
-
const
|
|
3400
|
-
return
|
|
3402
|
+
const listeners7 = listenersRef.current.get(type);
|
|
3403
|
+
return listeners7 !== void 0 && listeners7.size > 0;
|
|
3401
3404
|
}, []);
|
|
3402
3405
|
const onAny = useCallback((listener) => {
|
|
3403
3406
|
anyListenersRef.current.add(listener);
|
|
@@ -3726,7 +3729,7 @@ var init_Box = __esm({
|
|
|
3726
3729
|
fixed: "fixed",
|
|
3727
3730
|
sticky: "sticky"
|
|
3728
3731
|
};
|
|
3729
|
-
Box =
|
|
3732
|
+
Box = React98__default.forwardRef(
|
|
3730
3733
|
({
|
|
3731
3734
|
padding,
|
|
3732
3735
|
paddingX,
|
|
@@ -3776,7 +3779,7 @@ var init_Box = __esm({
|
|
|
3776
3779
|
onMouseLeave?.(e);
|
|
3777
3780
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
3778
3781
|
const isClickable = action || onClick;
|
|
3779
|
-
return
|
|
3782
|
+
return React98__default.createElement(
|
|
3780
3783
|
Component2,
|
|
3781
3784
|
{
|
|
3782
3785
|
ref,
|
|
@@ -4727,7 +4730,7 @@ var init_MiniStateMachine = __esm({
|
|
|
4727
4730
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
4728
4731
|
const tc = transitionCounts[s.name] ?? 0;
|
|
4729
4732
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
4730
|
-
return /* @__PURE__ */ jsxs(
|
|
4733
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
4731
4734
|
/* @__PURE__ */ jsx(
|
|
4732
4735
|
AvlState,
|
|
4733
4736
|
{
|
|
@@ -5697,12 +5700,378 @@ var init_UISlotContext = __esm({
|
|
|
5697
5700
|
UISlotContext = createContext(null);
|
|
5698
5701
|
}
|
|
5699
5702
|
});
|
|
5703
|
+
function getCurrentIconFamily() {
|
|
5704
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
5705
|
+
return DEFAULT_FAMILY;
|
|
5706
|
+
}
|
|
5707
|
+
const raw = getComputedStyle(document.documentElement).getPropertyValue("--icon-family").trim().replace(/^["']|["']$/g, "");
|
|
5708
|
+
return VALID_FAMILIES.includes(raw) ? raw : DEFAULT_FAMILY;
|
|
5709
|
+
}
|
|
5710
|
+
function ensureObserver() {
|
|
5711
|
+
if (typeof window === "undefined" || observer) return;
|
|
5712
|
+
observer = new MutationObserver(() => {
|
|
5713
|
+
const next = getCurrentIconFamily();
|
|
5714
|
+
if (next !== cachedFamily) {
|
|
5715
|
+
cachedFamily = next;
|
|
5716
|
+
listeners.forEach((fn) => fn());
|
|
5717
|
+
}
|
|
5718
|
+
});
|
|
5719
|
+
observer.observe(document.documentElement, {
|
|
5720
|
+
attributes: true,
|
|
5721
|
+
attributeFilter: ["data-theme", "style"]
|
|
5722
|
+
});
|
|
5723
|
+
cachedFamily = getCurrentIconFamily();
|
|
5724
|
+
}
|
|
5725
|
+
function subscribeIconFamily(notify) {
|
|
5726
|
+
ensureObserver();
|
|
5727
|
+
listeners.add(notify);
|
|
5728
|
+
return () => {
|
|
5729
|
+
listeners.delete(notify);
|
|
5730
|
+
};
|
|
5731
|
+
}
|
|
5732
|
+
function getIconFamilySnapshot() {
|
|
5733
|
+
if (cachedFamily !== null) return cachedFamily;
|
|
5734
|
+
cachedFamily = getCurrentIconFamily();
|
|
5735
|
+
return cachedFamily;
|
|
5736
|
+
}
|
|
5737
|
+
function getIconFamilyServerSnapshot() {
|
|
5738
|
+
return DEFAULT_FAMILY;
|
|
5739
|
+
}
|
|
5740
|
+
function useIconFamily() {
|
|
5741
|
+
return useSyncExternalStore(
|
|
5742
|
+
subscribeIconFamily,
|
|
5743
|
+
getIconFamilySnapshot,
|
|
5744
|
+
getIconFamilyServerSnapshot
|
|
5745
|
+
);
|
|
5746
|
+
}
|
|
5700
5747
|
function kebabToPascal(name) {
|
|
5701
5748
|
return name.split("-").map((part) => {
|
|
5702
5749
|
if (/^\d+$/.test(part)) return part;
|
|
5703
5750
|
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
5704
5751
|
}).join("");
|
|
5705
5752
|
}
|
|
5753
|
+
function resolveLucide(name) {
|
|
5754
|
+
if (lucideAliases[name]) return lucideAliases[name];
|
|
5755
|
+
const pascal = kebabToPascal(name);
|
|
5756
|
+
const lucideMap = LucideIcons2;
|
|
5757
|
+
const direct = lucideMap[pascal];
|
|
5758
|
+
if (direct && typeof direct === "object") return direct;
|
|
5759
|
+
const asIs = lucideMap[name];
|
|
5760
|
+
if (asIs && typeof asIs === "object") return asIs;
|
|
5761
|
+
return LucideIcons2.HelpCircle;
|
|
5762
|
+
}
|
|
5763
|
+
function resolvePhosphor(name, weight) {
|
|
5764
|
+
const target = phosphorAliases[name] ?? kebabToPascal(name);
|
|
5765
|
+
const map = PhosphorIcons;
|
|
5766
|
+
const PhosphorComp = map[target];
|
|
5767
|
+
if (!PhosphorComp || typeof PhosphorComp !== "object") return null;
|
|
5768
|
+
const Component2 = PhosphorComp;
|
|
5769
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
5770
|
+
Component2,
|
|
5771
|
+
{
|
|
5772
|
+
weight,
|
|
5773
|
+
className: props.className,
|
|
5774
|
+
style: props.style,
|
|
5775
|
+
size: props.size ?? "1em"
|
|
5776
|
+
}
|
|
5777
|
+
);
|
|
5778
|
+
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
5779
|
+
return Adapter;
|
|
5780
|
+
}
|
|
5781
|
+
function resolveTabler(name) {
|
|
5782
|
+
const suffix = tablerAliases[name] ?? kebabToPascal(name);
|
|
5783
|
+
const target = `Icon${suffix}`;
|
|
5784
|
+
const map = TablerIcons;
|
|
5785
|
+
const TablerComp = map[target];
|
|
5786
|
+
if (!TablerComp || typeof TablerComp !== "object") return null;
|
|
5787
|
+
const Component2 = TablerComp;
|
|
5788
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
5789
|
+
Component2,
|
|
5790
|
+
{
|
|
5791
|
+
stroke: props.strokeWidth ?? 1.5,
|
|
5792
|
+
className: props.className,
|
|
5793
|
+
style: props.style,
|
|
5794
|
+
size: props.size ?? 24
|
|
5795
|
+
}
|
|
5796
|
+
);
|
|
5797
|
+
Adapter.displayName = `Tabler.${target}`;
|
|
5798
|
+
return Adapter;
|
|
5799
|
+
}
|
|
5800
|
+
function resolveFa(name) {
|
|
5801
|
+
const suffix = faAliases[name] ?? kebabToPascal(name);
|
|
5802
|
+
const target = `Fa${suffix}`;
|
|
5803
|
+
const map = FaIcons;
|
|
5804
|
+
const FaComp = map[target];
|
|
5805
|
+
if (!FaComp || typeof FaComp !== "function") return null;
|
|
5806
|
+
const Component2 = FaComp;
|
|
5807
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
5808
|
+
Component2,
|
|
5809
|
+
{
|
|
5810
|
+
className: props.className,
|
|
5811
|
+
style: props.style,
|
|
5812
|
+
size: props.size ?? "1em"
|
|
5813
|
+
}
|
|
5814
|
+
);
|
|
5815
|
+
Adapter.displayName = `Fa.${target}`;
|
|
5816
|
+
return Adapter;
|
|
5817
|
+
}
|
|
5818
|
+
function warnFallback(name, family) {
|
|
5819
|
+
const key = `${family}::${name}`;
|
|
5820
|
+
if (warned.has(key)) return;
|
|
5821
|
+
warned.add(key);
|
|
5822
|
+
if (typeof console !== "undefined") {
|
|
5823
|
+
console.warn(
|
|
5824
|
+
`[iconFamily] No '${name}' mapping in family '${family}'; falling back to lucide. Add an alias in lib/iconFamily.ts.`
|
|
5825
|
+
);
|
|
5826
|
+
}
|
|
5827
|
+
}
|
|
5828
|
+
function makeLucideAdapter(name) {
|
|
5829
|
+
const LucideComp = resolveLucide(name);
|
|
5830
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
5831
|
+
LucideComp,
|
|
5832
|
+
{
|
|
5833
|
+
className: props.className,
|
|
5834
|
+
strokeWidth: props.strokeWidth,
|
|
5835
|
+
style: props.style,
|
|
5836
|
+
size: props.size
|
|
5837
|
+
}
|
|
5838
|
+
);
|
|
5839
|
+
Adapter.displayName = `Lucide.${name}`;
|
|
5840
|
+
return Adapter;
|
|
5841
|
+
}
|
|
5842
|
+
function resolveIconForFamily(name, family) {
|
|
5843
|
+
switch (family) {
|
|
5844
|
+
case "lucide":
|
|
5845
|
+
return makeLucideAdapter(name);
|
|
5846
|
+
case "phosphor-outline": {
|
|
5847
|
+
const p2 = resolvePhosphor(name, "regular");
|
|
5848
|
+
if (p2) return p2;
|
|
5849
|
+
warnFallback(name, family);
|
|
5850
|
+
return makeLucideAdapter(name);
|
|
5851
|
+
}
|
|
5852
|
+
case "phosphor-fill": {
|
|
5853
|
+
const p2 = resolvePhosphor(name, "fill");
|
|
5854
|
+
if (p2) return p2;
|
|
5855
|
+
warnFallback(name, family);
|
|
5856
|
+
return makeLucideAdapter(name);
|
|
5857
|
+
}
|
|
5858
|
+
case "phosphor-duotone": {
|
|
5859
|
+
const p2 = resolvePhosphor(name, "duotone");
|
|
5860
|
+
if (p2) return p2;
|
|
5861
|
+
warnFallback(name, family);
|
|
5862
|
+
return makeLucideAdapter(name);
|
|
5863
|
+
}
|
|
5864
|
+
case "tabler": {
|
|
5865
|
+
const t = resolveTabler(name);
|
|
5866
|
+
if (t) return t;
|
|
5867
|
+
warnFallback(name, family);
|
|
5868
|
+
return makeLucideAdapter(name);
|
|
5869
|
+
}
|
|
5870
|
+
case "fa-solid": {
|
|
5871
|
+
const f3 = resolveFa(name);
|
|
5872
|
+
if (f3) return f3;
|
|
5873
|
+
warnFallback(name, family);
|
|
5874
|
+
return makeLucideAdapter(name);
|
|
5875
|
+
}
|
|
5876
|
+
}
|
|
5877
|
+
}
|
|
5878
|
+
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
5879
|
+
var init_iconFamily = __esm({
|
|
5880
|
+
"lib/iconFamily.tsx"() {
|
|
5881
|
+
"use client";
|
|
5882
|
+
DEFAULT_FAMILY = "lucide";
|
|
5883
|
+
VALID_FAMILIES = [
|
|
5884
|
+
"lucide",
|
|
5885
|
+
"phosphor-outline",
|
|
5886
|
+
"phosphor-fill",
|
|
5887
|
+
"phosphor-duotone",
|
|
5888
|
+
"tabler",
|
|
5889
|
+
"fa-solid"
|
|
5890
|
+
];
|
|
5891
|
+
cachedFamily = null;
|
|
5892
|
+
listeners = /* @__PURE__ */ new Set();
|
|
5893
|
+
observer = null;
|
|
5894
|
+
lucideAliases = {
|
|
5895
|
+
close: LucideIcons2.X,
|
|
5896
|
+
trash: LucideIcons2.Trash2,
|
|
5897
|
+
loader: LucideIcons2.Loader2,
|
|
5898
|
+
stop: LucideIcons2.Square,
|
|
5899
|
+
volume: LucideIcons2.Volume2,
|
|
5900
|
+
"volume-off": LucideIcons2.VolumeX,
|
|
5901
|
+
refresh: LucideIcons2.RefreshCw,
|
|
5902
|
+
share: LucideIcons2.Share2,
|
|
5903
|
+
"sort-asc": LucideIcons2.ArrowUpNarrowWide,
|
|
5904
|
+
"sort-desc": LucideIcons2.ArrowDownNarrowWide
|
|
5905
|
+
};
|
|
5906
|
+
phosphorAliases = {
|
|
5907
|
+
// lucide name → phosphor PascalCase name
|
|
5908
|
+
search: "MagnifyingGlass",
|
|
5909
|
+
close: "X",
|
|
5910
|
+
loader: "CircleNotch",
|
|
5911
|
+
refresh: "ArrowsClockwise",
|
|
5912
|
+
"sort-asc": "SortAscending",
|
|
5913
|
+
"sort-desc": "SortDescending",
|
|
5914
|
+
"chevron-down": "CaretDown",
|
|
5915
|
+
"chevron-up": "CaretUp",
|
|
5916
|
+
"chevron-left": "CaretLeft",
|
|
5917
|
+
"chevron-right": "CaretRight",
|
|
5918
|
+
"help-circle": "Question",
|
|
5919
|
+
"alert-triangle": "Warning",
|
|
5920
|
+
"alert-circle": "WarningCircle",
|
|
5921
|
+
"check-circle": "CheckCircle",
|
|
5922
|
+
"x-circle": "XCircle",
|
|
5923
|
+
edit: "PencilSimple",
|
|
5924
|
+
pencil: "PencilSimple",
|
|
5925
|
+
trash: "Trash",
|
|
5926
|
+
send: "PaperPlaneRight",
|
|
5927
|
+
external: "ArrowSquareOut",
|
|
5928
|
+
"external-link": "ArrowSquareOut",
|
|
5929
|
+
plus: "Plus",
|
|
5930
|
+
minus: "Minus",
|
|
5931
|
+
x: "X",
|
|
5932
|
+
check: "Check",
|
|
5933
|
+
star: "Star",
|
|
5934
|
+
heart: "Heart",
|
|
5935
|
+
home: "House",
|
|
5936
|
+
user: "User",
|
|
5937
|
+
users: "Users",
|
|
5938
|
+
settings: "Gear",
|
|
5939
|
+
menu: "List",
|
|
5940
|
+
"arrow-up": "ArrowUp",
|
|
5941
|
+
"arrow-down": "ArrowDown",
|
|
5942
|
+
"arrow-left": "ArrowLeft",
|
|
5943
|
+
"arrow-right": "ArrowRight",
|
|
5944
|
+
copy: "Copy",
|
|
5945
|
+
download: "DownloadSimple",
|
|
5946
|
+
upload: "UploadSimple",
|
|
5947
|
+
filter: "Funnel",
|
|
5948
|
+
calendar: "Calendar",
|
|
5949
|
+
clock: "Clock",
|
|
5950
|
+
bell: "Bell",
|
|
5951
|
+
mail: "Envelope",
|
|
5952
|
+
envelope: "Envelope",
|
|
5953
|
+
lock: "Lock",
|
|
5954
|
+
unlock: "LockOpen",
|
|
5955
|
+
eye: "Eye",
|
|
5956
|
+
"eye-off": "EyeSlash",
|
|
5957
|
+
more: "DotsThree",
|
|
5958
|
+
"more-vertical": "DotsThreeVertical",
|
|
5959
|
+
info: "Info",
|
|
5960
|
+
warning: "Warning",
|
|
5961
|
+
error: "WarningCircle"
|
|
5962
|
+
};
|
|
5963
|
+
tablerAliases = {
|
|
5964
|
+
// lucide name → tabler suffix (after the `Icon` prefix)
|
|
5965
|
+
search: "Search",
|
|
5966
|
+
close: "X",
|
|
5967
|
+
loader: "Loader2",
|
|
5968
|
+
refresh: "Refresh",
|
|
5969
|
+
"sort-asc": "SortAscending",
|
|
5970
|
+
"sort-desc": "SortDescending",
|
|
5971
|
+
"chevron-down": "ChevronDown",
|
|
5972
|
+
"chevron-up": "ChevronUp",
|
|
5973
|
+
"chevron-left": "ChevronLeft",
|
|
5974
|
+
"chevron-right": "ChevronRight",
|
|
5975
|
+
"help-circle": "HelpCircle",
|
|
5976
|
+
"alert-triangle": "AlertTriangle",
|
|
5977
|
+
"alert-circle": "AlertCircle",
|
|
5978
|
+
"check-circle": "CircleCheck",
|
|
5979
|
+
"x-circle": "CircleX",
|
|
5980
|
+
edit: "Pencil",
|
|
5981
|
+
trash: "Trash",
|
|
5982
|
+
send: "Send",
|
|
5983
|
+
external: "ExternalLink",
|
|
5984
|
+
plus: "Plus",
|
|
5985
|
+
x: "X",
|
|
5986
|
+
check: "Check",
|
|
5987
|
+
star: "Star",
|
|
5988
|
+
heart: "Heart",
|
|
5989
|
+
home: "Home",
|
|
5990
|
+
user: "User",
|
|
5991
|
+
users: "Users",
|
|
5992
|
+
settings: "Settings",
|
|
5993
|
+
menu: "Menu2",
|
|
5994
|
+
copy: "Copy",
|
|
5995
|
+
download: "Download",
|
|
5996
|
+
upload: "Upload",
|
|
5997
|
+
filter: "Filter",
|
|
5998
|
+
calendar: "Calendar",
|
|
5999
|
+
clock: "Clock",
|
|
6000
|
+
bell: "Bell",
|
|
6001
|
+
mail: "Mail",
|
|
6002
|
+
envelope: "Mail",
|
|
6003
|
+
lock: "Lock",
|
|
6004
|
+
unlock: "LockOpen",
|
|
6005
|
+
eye: "Eye",
|
|
6006
|
+
"eye-off": "EyeOff",
|
|
6007
|
+
more: "Dots",
|
|
6008
|
+
"more-vertical": "DotsVertical",
|
|
6009
|
+
info: "InfoCircle"
|
|
6010
|
+
};
|
|
6011
|
+
faAliases = {
|
|
6012
|
+
// lucide name → fa-solid suffix (after the `Fa` prefix)
|
|
6013
|
+
search: "Search",
|
|
6014
|
+
close: "Times",
|
|
6015
|
+
x: "Times",
|
|
6016
|
+
loader: "Spinner",
|
|
6017
|
+
refresh: "Sync",
|
|
6018
|
+
"sort-asc": "SortAmountUp",
|
|
6019
|
+
"sort-desc": "SortAmountDown",
|
|
6020
|
+
"chevron-down": "ChevronDown",
|
|
6021
|
+
"chevron-up": "ChevronUp",
|
|
6022
|
+
"chevron-left": "ChevronLeft",
|
|
6023
|
+
"chevron-right": "ChevronRight",
|
|
6024
|
+
"help-circle": "QuestionCircle",
|
|
6025
|
+
"alert-triangle": "ExclamationTriangle",
|
|
6026
|
+
"alert-circle": "ExclamationCircle",
|
|
6027
|
+
"check-circle": "CheckCircle",
|
|
6028
|
+
"x-circle": "TimesCircle",
|
|
6029
|
+
edit: "Edit",
|
|
6030
|
+
pencil: "Pencil",
|
|
6031
|
+
trash: "Trash",
|
|
6032
|
+
send: "PaperPlane",
|
|
6033
|
+
external: "ExternalLinkAlt",
|
|
6034
|
+
plus: "Plus",
|
|
6035
|
+
minus: "Minus",
|
|
6036
|
+
check: "Check",
|
|
6037
|
+
star: "Star",
|
|
6038
|
+
heart: "Heart",
|
|
6039
|
+
home: "Home",
|
|
6040
|
+
user: "User",
|
|
6041
|
+
users: "Users",
|
|
6042
|
+
settings: "Cog",
|
|
6043
|
+
menu: "Bars",
|
|
6044
|
+
"arrow-up": "ArrowUp",
|
|
6045
|
+
"arrow-down": "ArrowDown",
|
|
6046
|
+
"arrow-left": "ArrowLeft",
|
|
6047
|
+
"arrow-right": "ArrowRight",
|
|
6048
|
+
copy: "Copy",
|
|
6049
|
+
download: "Download",
|
|
6050
|
+
upload: "Upload",
|
|
6051
|
+
filter: "Filter",
|
|
6052
|
+
calendar: "Calendar",
|
|
6053
|
+
clock: "Clock",
|
|
6054
|
+
bell: "Bell",
|
|
6055
|
+
mail: "Envelope",
|
|
6056
|
+
envelope: "Envelope",
|
|
6057
|
+
lock: "Lock",
|
|
6058
|
+
unlock: "LockOpen",
|
|
6059
|
+
eye: "Eye",
|
|
6060
|
+
"eye-off": "EyeSlash",
|
|
6061
|
+
more: "EllipsisH",
|
|
6062
|
+
"more-vertical": "EllipsisV",
|
|
6063
|
+
info: "InfoCircle",
|
|
6064
|
+
warning: "ExclamationTriangle"
|
|
6065
|
+
};
|
|
6066
|
+
warned = /* @__PURE__ */ new Set();
|
|
6067
|
+
}
|
|
6068
|
+
});
|
|
6069
|
+
function kebabToPascal2(name) {
|
|
6070
|
+
return name.split("-").map((part) => {
|
|
6071
|
+
if (/^\d+$/.test(part)) return part;
|
|
6072
|
+
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
6073
|
+
}).join("");
|
|
6074
|
+
}
|
|
5706
6075
|
function resolveIcon(name) {
|
|
5707
6076
|
const cached = resolvedCache.get(name);
|
|
5708
6077
|
if (cached) return cached;
|
|
@@ -5712,28 +6081,30 @@ function resolveIcon(name) {
|
|
|
5712
6081
|
}
|
|
5713
6082
|
function doResolve(name) {
|
|
5714
6083
|
if (iconAliases[name]) return iconAliases[name];
|
|
5715
|
-
const pascalName =
|
|
5716
|
-
const directLookup =
|
|
6084
|
+
const pascalName = kebabToPascal2(name);
|
|
6085
|
+
const directLookup = LucideIcons2[pascalName];
|
|
5717
6086
|
if (directLookup && typeof directLookup === "object") return directLookup;
|
|
5718
|
-
const asIs =
|
|
6087
|
+
const asIs = LucideIcons2[name];
|
|
5719
6088
|
if (asIs && typeof asIs === "object") return asIs;
|
|
5720
|
-
return
|
|
6089
|
+
return LucideIcons2.HelpCircle;
|
|
5721
6090
|
}
|
|
5722
6091
|
var iconAliases, resolvedCache, sizeClasses, animationClasses, Icon;
|
|
5723
6092
|
var init_Icon = __esm({
|
|
5724
6093
|
"components/atoms/Icon.tsx"() {
|
|
6094
|
+
"use client";
|
|
5725
6095
|
init_cn();
|
|
6096
|
+
init_iconFamily();
|
|
5726
6097
|
iconAliases = {
|
|
5727
|
-
"close":
|
|
5728
|
-
"trash":
|
|
5729
|
-
"loader":
|
|
5730
|
-
"stop":
|
|
5731
|
-
"volume":
|
|
5732
|
-
"volume-off":
|
|
5733
|
-
"refresh":
|
|
5734
|
-
"share":
|
|
5735
|
-
"sort-asc":
|
|
5736
|
-
"sort-desc":
|
|
6098
|
+
"close": LucideIcons2.X,
|
|
6099
|
+
"trash": LucideIcons2.Trash2,
|
|
6100
|
+
"loader": LucideIcons2.Loader2,
|
|
6101
|
+
"stop": LucideIcons2.Square,
|
|
6102
|
+
"volume": LucideIcons2.Volume2,
|
|
6103
|
+
"volume-off": LucideIcons2.VolumeX,
|
|
6104
|
+
"refresh": LucideIcons2.RefreshCw,
|
|
6105
|
+
"share": LucideIcons2.Share2,
|
|
6106
|
+
"sort-asc": LucideIcons2.ArrowUpNarrowWide,
|
|
6107
|
+
"sort-desc": LucideIcons2.ArrowDownNarrowWide
|
|
5737
6108
|
};
|
|
5738
6109
|
resolvedCache = /* @__PURE__ */ new Map();
|
|
5739
6110
|
sizeClasses = {
|
|
@@ -5758,22 +6129,50 @@ var init_Icon = __esm({
|
|
|
5758
6129
|
strokeWidth,
|
|
5759
6130
|
style
|
|
5760
6131
|
}) => {
|
|
5761
|
-
const
|
|
6132
|
+
const family = useIconFamily();
|
|
6133
|
+
const RenderedComponent = React98__default.useMemo(() => {
|
|
6134
|
+
if (icon) return null;
|
|
6135
|
+
return name ? resolveIconForFamily(name, family) : null;
|
|
6136
|
+
}, [icon, name, family]);
|
|
5762
6137
|
const effectiveStrokeWidth = strokeWidth ?? void 0;
|
|
6138
|
+
const inlineStyle = {
|
|
6139
|
+
...effectiveStrokeWidth === void 0 ? { strokeWidth: "var(--icon-stroke-width, 2)" } : {},
|
|
6140
|
+
...style
|
|
6141
|
+
};
|
|
6142
|
+
const composedClassName = cn(
|
|
6143
|
+
sizeClasses[size],
|
|
6144
|
+
animationClasses[animation],
|
|
6145
|
+
color ? color : "text-current",
|
|
6146
|
+
className
|
|
6147
|
+
);
|
|
6148
|
+
if (icon) {
|
|
6149
|
+
const Direct = icon;
|
|
6150
|
+
return /* @__PURE__ */ jsx(
|
|
6151
|
+
Direct,
|
|
6152
|
+
{
|
|
6153
|
+
className: composedClassName,
|
|
6154
|
+
strokeWidth: effectiveStrokeWidth,
|
|
6155
|
+
style: inlineStyle
|
|
6156
|
+
}
|
|
6157
|
+
);
|
|
6158
|
+
}
|
|
6159
|
+
if (RenderedComponent) {
|
|
6160
|
+
return /* @__PURE__ */ jsx(
|
|
6161
|
+
RenderedComponent,
|
|
6162
|
+
{
|
|
6163
|
+
className: composedClassName,
|
|
6164
|
+
strokeWidth: effectiveStrokeWidth,
|
|
6165
|
+
style: inlineStyle
|
|
6166
|
+
}
|
|
6167
|
+
);
|
|
6168
|
+
}
|
|
6169
|
+
const Fallback = LucideIcons2.HelpCircle;
|
|
5763
6170
|
return /* @__PURE__ */ jsx(
|
|
5764
|
-
|
|
6171
|
+
Fallback,
|
|
5765
6172
|
{
|
|
5766
|
-
className:
|
|
5767
|
-
sizeClasses[size],
|
|
5768
|
-
animationClasses[animation],
|
|
5769
|
-
color ? color : "text-current",
|
|
5770
|
-
className
|
|
5771
|
-
),
|
|
6173
|
+
className: composedClassName,
|
|
5772
6174
|
strokeWidth: effectiveStrokeWidth,
|
|
5773
|
-
style:
|
|
5774
|
-
...effectiveStrokeWidth === void 0 ? { strokeWidth: "var(--icon-stroke-width, 2)" } : {},
|
|
5775
|
-
...style
|
|
5776
|
-
}
|
|
6175
|
+
style: inlineStyle
|
|
5777
6176
|
}
|
|
5778
6177
|
);
|
|
5779
6178
|
};
|
|
@@ -5783,14 +6182,13 @@ var init_Icon = __esm({
|
|
|
5783
6182
|
function resolveIconProp(value, sizeClass) {
|
|
5784
6183
|
if (!value) return null;
|
|
5785
6184
|
if (typeof value === "string") {
|
|
5786
|
-
|
|
5787
|
-
return Resolved ? /* @__PURE__ */ jsx(Resolved, { className: sizeClass }) : null;
|
|
6185
|
+
return /* @__PURE__ */ jsx(Icon, { name: value, className: sizeClass });
|
|
5788
6186
|
}
|
|
5789
6187
|
if (typeof value === "function") {
|
|
5790
6188
|
const IconComp = value;
|
|
5791
6189
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5792
6190
|
}
|
|
5793
|
-
if (
|
|
6191
|
+
if (React98__default.isValidElement(value)) {
|
|
5794
6192
|
return value;
|
|
5795
6193
|
}
|
|
5796
6194
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5866,7 +6264,7 @@ var init_Button = __esm({
|
|
|
5866
6264
|
md: "h-icon-default w-icon-default",
|
|
5867
6265
|
lg: "h-5 w-5"
|
|
5868
6266
|
};
|
|
5869
|
-
Button =
|
|
6267
|
+
Button = React98__default.forwardRef(
|
|
5870
6268
|
({
|
|
5871
6269
|
className,
|
|
5872
6270
|
variant = "primary",
|
|
@@ -5931,7 +6329,7 @@ var Dialog;
|
|
|
5931
6329
|
var init_Dialog = __esm({
|
|
5932
6330
|
"components/atoms/Dialog.tsx"() {
|
|
5933
6331
|
init_cn();
|
|
5934
|
-
Dialog =
|
|
6332
|
+
Dialog = React98__default.forwardRef(
|
|
5935
6333
|
({
|
|
5936
6334
|
role = "dialog",
|
|
5937
6335
|
"aria-modal": ariaModal = true,
|
|
@@ -6165,7 +6563,7 @@ var init_Modal = __esm({
|
|
|
6165
6563
|
{
|
|
6166
6564
|
variant: "ghost",
|
|
6167
6565
|
size: "sm",
|
|
6168
|
-
icon:
|
|
6566
|
+
icon: "x",
|
|
6169
6567
|
onClick: handleClose,
|
|
6170
6568
|
"data-event": "CLOSE",
|
|
6171
6569
|
"aria-label": "Close modal"
|
|
@@ -6322,7 +6720,7 @@ var init_Drawer = __esm({
|
|
|
6322
6720
|
{
|
|
6323
6721
|
variant: "ghost",
|
|
6324
6722
|
size: "sm",
|
|
6325
|
-
icon:
|
|
6723
|
+
icon: "x",
|
|
6326
6724
|
onClick: handleClose,
|
|
6327
6725
|
"aria-label": "Close drawer",
|
|
6328
6726
|
className: cn(!title && "ml-auto")
|
|
@@ -6416,13 +6814,10 @@ var init_Badge = __esm({
|
|
|
6416
6814
|
md: "px-2.5 py-1 text-sm",
|
|
6417
6815
|
lg: "px-3 py-1.5 text-base"
|
|
6418
6816
|
};
|
|
6419
|
-
Badge =
|
|
6817
|
+
Badge = React98__default.forwardRef(
|
|
6420
6818
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
6421
6819
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
6422
|
-
const resolvedIcon = typeof icon === "string" ? (
|
|
6423
|
-
const I = resolveIcon(icon);
|
|
6424
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes3[size] }) : null;
|
|
6425
|
-
})() : icon;
|
|
6820
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes3[size] }) : icon;
|
|
6426
6821
|
return /* @__PURE__ */ jsxs(
|
|
6427
6822
|
"span",
|
|
6428
6823
|
{
|
|
@@ -6482,10 +6877,10 @@ var init_Toast = __esm({
|
|
|
6482
6877
|
warning: "bg-card border-[length:var(--border-width)] border-warning"
|
|
6483
6878
|
};
|
|
6484
6879
|
iconMap = {
|
|
6485
|
-
success:
|
|
6486
|
-
error:
|
|
6487
|
-
info:
|
|
6488
|
-
warning:
|
|
6880
|
+
success: "check-circle",
|
|
6881
|
+
error: "alert-circle",
|
|
6882
|
+
info: "info",
|
|
6883
|
+
warning: "alert-triangle"
|
|
6489
6884
|
};
|
|
6490
6885
|
iconColors = {
|
|
6491
6886
|
success: "text-success",
|
|
@@ -6542,7 +6937,7 @@ var init_Toast = __esm({
|
|
|
6542
6937
|
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
6543
6938
|
Icon,
|
|
6544
6939
|
{
|
|
6545
|
-
|
|
6940
|
+
name: iconMap[variant],
|
|
6546
6941
|
size: "md",
|
|
6547
6942
|
className: iconColors[variant]
|
|
6548
6943
|
}
|
|
@@ -6559,7 +6954,7 @@ var init_Toast = __esm({
|
|
|
6559
6954
|
{
|
|
6560
6955
|
variant: "ghost",
|
|
6561
6956
|
size: "sm",
|
|
6562
|
-
icon:
|
|
6957
|
+
icon: "x",
|
|
6563
6958
|
onClick: handleDismiss,
|
|
6564
6959
|
"aria-label": "Dismiss toast",
|
|
6565
6960
|
className: "flex-shrink-0"
|
|
@@ -6730,7 +7125,7 @@ var init_SvgFlow = __esm({
|
|
|
6730
7125
|
opacity = 1,
|
|
6731
7126
|
className
|
|
6732
7127
|
}) => {
|
|
6733
|
-
const markerId =
|
|
7128
|
+
const markerId = React98__default.useMemo(() => {
|
|
6734
7129
|
flowIdCounter += 1;
|
|
6735
7130
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
6736
7131
|
}, []);
|
|
@@ -7273,7 +7668,7 @@ var init_SvgRing = __esm({
|
|
|
7273
7668
|
className,
|
|
7274
7669
|
label
|
|
7275
7670
|
}) => {
|
|
7276
|
-
const gradientId =
|
|
7671
|
+
const gradientId = React98__default.useMemo(() => {
|
|
7277
7672
|
ringIdCounter += 1;
|
|
7278
7673
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
7279
7674
|
}, []);
|
|
@@ -7434,7 +7829,8 @@ var Input;
|
|
|
7434
7829
|
var init_Input = __esm({
|
|
7435
7830
|
"components/atoms/Input.tsx"() {
|
|
7436
7831
|
init_cn();
|
|
7437
|
-
|
|
7832
|
+
init_Icon();
|
|
7833
|
+
Input = React98__default.forwardRef(
|
|
7438
7834
|
({
|
|
7439
7835
|
className,
|
|
7440
7836
|
inputType,
|
|
@@ -7484,7 +7880,7 @@ var init_Input = __esm({
|
|
|
7484
7880
|
]
|
|
7485
7881
|
}
|
|
7486
7882
|
),
|
|
7487
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsx(
|
|
7883
|
+
/* @__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" }) })
|
|
7488
7884
|
] });
|
|
7489
7885
|
}
|
|
7490
7886
|
if (type === "textarea") {
|
|
@@ -7538,7 +7934,7 @@ var init_Input = __esm({
|
|
|
7538
7934
|
type: "button",
|
|
7539
7935
|
onClick: onClear,
|
|
7540
7936
|
className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground hover:text-foreground",
|
|
7541
|
-
children: /* @__PURE__ */ jsx(
|
|
7937
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-icon-default w-icon-default" })
|
|
7542
7938
|
}
|
|
7543
7939
|
),
|
|
7544
7940
|
rightIcon && !showClearButton && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground", children: rightIcon })
|
|
@@ -7552,7 +7948,7 @@ var Label;
|
|
|
7552
7948
|
var init_Label = __esm({
|
|
7553
7949
|
"components/atoms/Label.tsx"() {
|
|
7554
7950
|
init_cn();
|
|
7555
|
-
Label =
|
|
7951
|
+
Label = React98__default.forwardRef(
|
|
7556
7952
|
({ className, required, children, ...props }, ref) => {
|
|
7557
7953
|
return /* @__PURE__ */ jsxs(
|
|
7558
7954
|
"label",
|
|
@@ -7578,7 +7974,7 @@ var Textarea;
|
|
|
7578
7974
|
var init_Textarea = __esm({
|
|
7579
7975
|
"components/atoms/Textarea.tsx"() {
|
|
7580
7976
|
init_cn();
|
|
7581
|
-
Textarea =
|
|
7977
|
+
Textarea = React98__default.forwardRef(
|
|
7582
7978
|
({ className, error, ...props }, ref) => {
|
|
7583
7979
|
return /* @__PURE__ */ jsx(
|
|
7584
7980
|
"textarea",
|
|
@@ -7607,7 +8003,8 @@ var Select;
|
|
|
7607
8003
|
var init_Select = __esm({
|
|
7608
8004
|
"components/atoms/Select.tsx"() {
|
|
7609
8005
|
init_cn();
|
|
7610
|
-
|
|
8006
|
+
init_Icon();
|
|
8007
|
+
Select = React98__default.forwardRef(
|
|
7611
8008
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
7612
8009
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
7613
8010
|
/* @__PURE__ */ jsxs(
|
|
@@ -7638,7 +8035,7 @@ var init_Select = __esm({
|
|
|
7638
8035
|
]
|
|
7639
8036
|
}
|
|
7640
8037
|
),
|
|
7641
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsx(
|
|
8038
|
+
/* @__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" }) })
|
|
7642
8039
|
] });
|
|
7643
8040
|
}
|
|
7644
8041
|
);
|
|
@@ -7649,7 +8046,7 @@ var Checkbox;
|
|
|
7649
8046
|
var init_Checkbox = __esm({
|
|
7650
8047
|
"components/atoms/Checkbox.tsx"() {
|
|
7651
8048
|
init_cn();
|
|
7652
|
-
Checkbox =
|
|
8049
|
+
Checkbox = React98__default.forwardRef(
|
|
7653
8050
|
({ className, label, id, ...props }, ref) => {
|
|
7654
8051
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
7655
8052
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -7731,7 +8128,7 @@ var init_Card = __esm({
|
|
|
7731
8128
|
md: "shadow",
|
|
7732
8129
|
lg: "shadow-elevation-dialog"
|
|
7733
8130
|
};
|
|
7734
|
-
Card =
|
|
8131
|
+
Card = React98__default.forwardRef(
|
|
7735
8132
|
({
|
|
7736
8133
|
className,
|
|
7737
8134
|
variant = "bordered",
|
|
@@ -7767,9 +8164,9 @@ var init_Card = __esm({
|
|
|
7767
8164
|
}
|
|
7768
8165
|
);
|
|
7769
8166
|
Card.displayName = "Card";
|
|
7770
|
-
CardHeader =
|
|
8167
|
+
CardHeader = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
7771
8168
|
CardHeader.displayName = "CardHeader";
|
|
7772
|
-
CardTitle =
|
|
8169
|
+
CardTitle = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7773
8170
|
"h3",
|
|
7774
8171
|
{
|
|
7775
8172
|
ref,
|
|
@@ -7782,11 +8179,11 @@ var init_Card = __esm({
|
|
|
7782
8179
|
}
|
|
7783
8180
|
));
|
|
7784
8181
|
CardTitle.displayName = "CardTitle";
|
|
7785
|
-
CardContent =
|
|
8182
|
+
CardContent = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
7786
8183
|
CardContent.displayName = "CardContent";
|
|
7787
8184
|
CardBody = CardContent;
|
|
7788
8185
|
CardBody.displayName = "CardBody";
|
|
7789
|
-
CardFooter =
|
|
8186
|
+
CardFooter = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7790
8187
|
"div",
|
|
7791
8188
|
{
|
|
7792
8189
|
ref,
|
|
@@ -7841,7 +8238,7 @@ var init_FilterPill = __esm({
|
|
|
7841
8238
|
md: "w-3.5 h-3.5",
|
|
7842
8239
|
lg: "w-4 h-4"
|
|
7843
8240
|
};
|
|
7844
|
-
FilterPill =
|
|
8241
|
+
FilterPill = React98__default.forwardRef(
|
|
7845
8242
|
({
|
|
7846
8243
|
className,
|
|
7847
8244
|
variant = "default",
|
|
@@ -7866,11 +8263,7 @@ var init_FilterPill = __esm({
|
|
|
7866
8263
|
onRemove?.();
|
|
7867
8264
|
if (removeEvent) eventBus.emit(`UI:${removeEvent}`, { label: payloadLabel });
|
|
7868
8265
|
}, [onRemove, removeEvent, eventBus, payloadLabel]);
|
|
7869
|
-
const
|
|
7870
|
-
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
7871
|
-
const I = resolveIcon(icon);
|
|
7872
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes[size] }) : null;
|
|
7873
|
-
})() : icon;
|
|
8266
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon;
|
|
7874
8267
|
return /* @__PURE__ */ jsxs(
|
|
7875
8268
|
"span",
|
|
7876
8269
|
{
|
|
@@ -7899,7 +8292,7 @@ var init_FilterPill = __esm({
|
|
|
7899
8292
|
className: cn(
|
|
7900
8293
|
"ml-0.5 rounded-full hover:bg-foreground/10 transition-colors flex items-center justify-center"
|
|
7901
8294
|
),
|
|
7902
|
-
children:
|
|
8295
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: iconSizes[size] })
|
|
7903
8296
|
}
|
|
7904
8297
|
)
|
|
7905
8298
|
]
|
|
@@ -7914,13 +8307,14 @@ var sizeStyles5, Spinner;
|
|
|
7914
8307
|
var init_Spinner = __esm({
|
|
7915
8308
|
"components/atoms/Spinner.tsx"() {
|
|
7916
8309
|
init_cn();
|
|
8310
|
+
init_Icon();
|
|
7917
8311
|
sizeStyles5 = {
|
|
7918
8312
|
xs: "h-3 w-3",
|
|
7919
8313
|
sm: "h-4 w-4",
|
|
7920
8314
|
md: "h-6 w-6",
|
|
7921
8315
|
lg: "h-8 w-8"
|
|
7922
8316
|
};
|
|
7923
|
-
Spinner =
|
|
8317
|
+
Spinner = React98__default.forwardRef(
|
|
7924
8318
|
({ className, size = "md", ...props }, ref) => {
|
|
7925
8319
|
return /* @__PURE__ */ jsx(
|
|
7926
8320
|
"div",
|
|
@@ -7928,7 +8322,7 @@ var init_Spinner = __esm({
|
|
|
7928
8322
|
ref,
|
|
7929
8323
|
className: cn("text-foreground", className),
|
|
7930
8324
|
...props,
|
|
7931
|
-
children: /* @__PURE__ */ jsx(
|
|
8325
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "loader", className: cn("animate-spin", sizeStyles5[size]) })
|
|
7932
8326
|
}
|
|
7933
8327
|
);
|
|
7934
8328
|
}
|
|
@@ -7947,6 +8341,7 @@ var sizeClasses3, iconSizeClasses, statusSizeClasses, statusClasses, badgeSizeCl
|
|
|
7947
8341
|
var init_Avatar = __esm({
|
|
7948
8342
|
"components/atoms/Avatar.tsx"() {
|
|
7949
8343
|
"use client";
|
|
8344
|
+
init_Icon();
|
|
7950
8345
|
init_cn();
|
|
7951
8346
|
init_useEventBus();
|
|
7952
8347
|
sizeClasses3 = {
|
|
@@ -7988,7 +8383,7 @@ var init_Avatar = __esm({
|
|
|
7988
8383
|
alt,
|
|
7989
8384
|
name,
|
|
7990
8385
|
initials: providedInitials,
|
|
7991
|
-
icon:
|
|
8386
|
+
icon: IconComponent,
|
|
7992
8387
|
size = "md",
|
|
7993
8388
|
status,
|
|
7994
8389
|
badge,
|
|
@@ -8001,7 +8396,7 @@ var init_Avatar = __esm({
|
|
|
8001
8396
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
8002
8397
|
const hasImage = !!src;
|
|
8003
8398
|
const hasInitials = !!initials;
|
|
8004
|
-
const hasIcon = !!
|
|
8399
|
+
const hasIcon = !!IconComponent;
|
|
8005
8400
|
const getInitialsBackground = () => "bg-primary text-primary-foreground";
|
|
8006
8401
|
const isClickable = action || onClick;
|
|
8007
8402
|
const handleClick = () => {
|
|
@@ -8045,8 +8440,8 @@ var init_Avatar = __esm({
|
|
|
8045
8440
|
),
|
|
8046
8441
|
children: initials.substring(0, 2).toUpperCase()
|
|
8047
8442
|
}
|
|
8048
|
-
) : hasIcon ? /* @__PURE__ */ jsx(
|
|
8049
|
-
|
|
8443
|
+
) : hasIcon && IconComponent ? /* @__PURE__ */ jsx(
|
|
8444
|
+
IconComponent,
|
|
8050
8445
|
{
|
|
8051
8446
|
className: cn(
|
|
8052
8447
|
"text-foreground",
|
|
@@ -8054,8 +8449,9 @@ var init_Avatar = __esm({
|
|
|
8054
8449
|
)
|
|
8055
8450
|
}
|
|
8056
8451
|
) : /* @__PURE__ */ jsx(
|
|
8057
|
-
|
|
8452
|
+
Icon,
|
|
8058
8453
|
{
|
|
8454
|
+
name: "user",
|
|
8059
8455
|
className: cn(
|
|
8060
8456
|
"text-foreground",
|
|
8061
8457
|
iconSizeClasses[size]
|
|
@@ -8368,7 +8764,7 @@ var Radio;
|
|
|
8368
8764
|
var init_Radio = __esm({
|
|
8369
8765
|
"components/atoms/Radio.tsx"() {
|
|
8370
8766
|
init_cn();
|
|
8371
|
-
Radio =
|
|
8767
|
+
Radio = React98__default.forwardRef(
|
|
8372
8768
|
({
|
|
8373
8769
|
label,
|
|
8374
8770
|
helperText,
|
|
@@ -8540,7 +8936,7 @@ var init_Switch = __esm({
|
|
|
8540
8936
|
"components/atoms/Switch.tsx"() {
|
|
8541
8937
|
"use client";
|
|
8542
8938
|
init_cn();
|
|
8543
|
-
Switch =
|
|
8939
|
+
Switch = React98.forwardRef(
|
|
8544
8940
|
({
|
|
8545
8941
|
checked,
|
|
8546
8942
|
defaultChecked = false,
|
|
@@ -8551,10 +8947,10 @@ var init_Switch = __esm({
|
|
|
8551
8947
|
name,
|
|
8552
8948
|
className
|
|
8553
8949
|
}, ref) => {
|
|
8554
|
-
const [isChecked, setIsChecked] =
|
|
8950
|
+
const [isChecked, setIsChecked] = React98.useState(
|
|
8555
8951
|
checked !== void 0 ? checked : defaultChecked
|
|
8556
8952
|
);
|
|
8557
|
-
|
|
8953
|
+
React98.useEffect(() => {
|
|
8558
8954
|
if (checked !== void 0) {
|
|
8559
8955
|
setIsChecked(checked);
|
|
8560
8956
|
}
|
|
@@ -8727,6 +9123,7 @@ var sizeClasses4, iconSizes2, ThemeToggle;
|
|
|
8727
9123
|
var init_ThemeToggle = __esm({
|
|
8728
9124
|
"components/atoms/ThemeToggle.tsx"() {
|
|
8729
9125
|
"use client";
|
|
9126
|
+
init_Icon();
|
|
8730
9127
|
init_cn();
|
|
8731
9128
|
init_ThemeContext();
|
|
8732
9129
|
sizeClasses4 = {
|
|
@@ -8764,13 +9161,15 @@ var init_ThemeToggle = __esm({
|
|
|
8764
9161
|
title: isDark ? "Switch to light mode" : "Switch to dark mode",
|
|
8765
9162
|
children: [
|
|
8766
9163
|
isDark ? /* @__PURE__ */ jsx(
|
|
8767
|
-
|
|
9164
|
+
Icon,
|
|
8768
9165
|
{
|
|
9166
|
+
name: "sun",
|
|
8769
9167
|
className: cn(iconSizes2[size], "text-foreground")
|
|
8770
9168
|
}
|
|
8771
9169
|
) : /* @__PURE__ */ jsx(
|
|
8772
|
-
|
|
9170
|
+
Icon,
|
|
8773
9171
|
{
|
|
9172
|
+
name: "moon",
|
|
8774
9173
|
className: cn(iconSizes2[size], "text-foreground")
|
|
8775
9174
|
}
|
|
8776
9175
|
),
|
|
@@ -8821,7 +9220,7 @@ var Aside;
|
|
|
8821
9220
|
var init_Aside = __esm({
|
|
8822
9221
|
"components/atoms/Aside.tsx"() {
|
|
8823
9222
|
init_cn();
|
|
8824
|
-
Aside =
|
|
9223
|
+
Aside = React98__default.forwardRef(
|
|
8825
9224
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
8826
9225
|
);
|
|
8827
9226
|
Aside.displayName = "Aside";
|
|
@@ -8898,8 +9297,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8898
9297
|
position = "top",
|
|
8899
9298
|
className
|
|
8900
9299
|
}) => {
|
|
8901
|
-
const [isVisible, setIsVisible] =
|
|
8902
|
-
const timeoutRef =
|
|
9300
|
+
const [isVisible, setIsVisible] = React98__default.useState(false);
|
|
9301
|
+
const timeoutRef = React98__default.useRef(null);
|
|
8903
9302
|
const handleMouseEnter = () => {
|
|
8904
9303
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8905
9304
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -8908,7 +9307,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8908
9307
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8909
9308
|
setIsVisible(false);
|
|
8910
9309
|
};
|
|
8911
|
-
|
|
9310
|
+
React98__default.useEffect(() => {
|
|
8912
9311
|
return () => {
|
|
8913
9312
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8914
9313
|
};
|
|
@@ -9118,7 +9517,7 @@ var init_StatusDot = __esm({
|
|
|
9118
9517
|
md: "w-2.5 h-2.5",
|
|
9119
9518
|
lg: "w-3 h-3"
|
|
9120
9519
|
};
|
|
9121
|
-
StatusDot =
|
|
9520
|
+
StatusDot = React98__default.forwardRef(
|
|
9122
9521
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
9123
9522
|
return /* @__PURE__ */ jsx(
|
|
9124
9523
|
"span",
|
|
@@ -9157,21 +9556,22 @@ function resolveColor(dir, invert) {
|
|
|
9157
9556
|
const isGood = invert ? !isPositive : isPositive;
|
|
9158
9557
|
return isGood ? "text-success" : "text-error";
|
|
9159
9558
|
}
|
|
9160
|
-
var sizeStyles7,
|
|
9559
|
+
var sizeStyles7, iconNameMap, TrendIndicator;
|
|
9161
9560
|
var init_TrendIndicator = __esm({
|
|
9162
9561
|
"components/atoms/TrendIndicator.tsx"() {
|
|
9562
|
+
init_Icon();
|
|
9163
9563
|
init_cn();
|
|
9164
9564
|
sizeStyles7 = {
|
|
9165
9565
|
sm: { icon: "w-3 h-3", text: "text-xs" },
|
|
9166
9566
|
md: { icon: "w-4 h-4", text: "text-sm" },
|
|
9167
9567
|
lg: { icon: "w-5 h-5", text: "text-base" }
|
|
9168
9568
|
};
|
|
9169
|
-
|
|
9170
|
-
up:
|
|
9171
|
-
down:
|
|
9172
|
-
flat:
|
|
9569
|
+
iconNameMap = {
|
|
9570
|
+
up: "trending-up",
|
|
9571
|
+
down: "trending-down",
|
|
9572
|
+
flat: "arrow-right"
|
|
9173
9573
|
};
|
|
9174
|
-
TrendIndicator =
|
|
9574
|
+
TrendIndicator = React98__default.forwardRef(
|
|
9175
9575
|
({
|
|
9176
9576
|
className,
|
|
9177
9577
|
value,
|
|
@@ -9184,7 +9584,7 @@ var init_TrendIndicator = __esm({
|
|
|
9184
9584
|
}, ref) => {
|
|
9185
9585
|
const dir = resolveDirection(value, direction);
|
|
9186
9586
|
const colorClass = resolveColor(dir, invert);
|
|
9187
|
-
const
|
|
9587
|
+
const iconName = iconNameMap[dir];
|
|
9188
9588
|
const styles = sizeStyles7[size];
|
|
9189
9589
|
const formattedValue = value !== void 0 ? `${value > 0 ? "+" : ""}${value}%` : void 0;
|
|
9190
9590
|
const ariaLabel = label ?? (formattedValue ? `${dir} ${formattedValue}` : dir);
|
|
@@ -9202,7 +9602,7 @@ var init_TrendIndicator = __esm({
|
|
|
9202
9602
|
"aria-label": ariaLabel,
|
|
9203
9603
|
...props,
|
|
9204
9604
|
children: [
|
|
9205
|
-
/* @__PURE__ */ jsx(
|
|
9605
|
+
/* @__PURE__ */ jsx(Icon, { name: iconName, className: styles.icon }),
|
|
9206
9606
|
showValue && formattedValue && /* @__PURE__ */ jsx("span", { children: formattedValue })
|
|
9207
9607
|
]
|
|
9208
9608
|
}
|
|
@@ -9238,7 +9638,7 @@ var init_RangeSlider = __esm({
|
|
|
9238
9638
|
md: "w-4 h-4",
|
|
9239
9639
|
lg: "w-5 h-5"
|
|
9240
9640
|
};
|
|
9241
|
-
RangeSlider =
|
|
9641
|
+
RangeSlider = React98__default.forwardRef(
|
|
9242
9642
|
({
|
|
9243
9643
|
className,
|
|
9244
9644
|
min = 0,
|
|
@@ -9806,7 +10206,7 @@ var init_ContentSection = __esm({
|
|
|
9806
10206
|
md: "py-16",
|
|
9807
10207
|
lg: "py-24"
|
|
9808
10208
|
};
|
|
9809
|
-
ContentSection =
|
|
10209
|
+
ContentSection = React98__default.forwardRef(
|
|
9810
10210
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
9811
10211
|
return /* @__PURE__ */ jsx(
|
|
9812
10212
|
Box,
|
|
@@ -10340,7 +10740,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10340
10740
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
10341
10741
|
"none": {}
|
|
10342
10742
|
};
|
|
10343
|
-
AnimatedReveal =
|
|
10743
|
+
AnimatedReveal = React98__default.forwardRef(
|
|
10344
10744
|
({
|
|
10345
10745
|
trigger = "scroll",
|
|
10346
10746
|
animation = "fade-up",
|
|
@@ -10370,7 +10770,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10370
10770
|
if (trigger !== "scroll") return;
|
|
10371
10771
|
const el = internalRef.current;
|
|
10372
10772
|
if (!el) return;
|
|
10373
|
-
const
|
|
10773
|
+
const observer2 = new IntersectionObserver(
|
|
10374
10774
|
([entry]) => {
|
|
10375
10775
|
if (entry.isIntersecting) {
|
|
10376
10776
|
if (once && hasAnimated.current) return;
|
|
@@ -10382,8 +10782,8 @@ var init_AnimatedReveal = __esm({
|
|
|
10382
10782
|
},
|
|
10383
10783
|
{ threshold }
|
|
10384
10784
|
);
|
|
10385
|
-
|
|
10386
|
-
return () =>
|
|
10785
|
+
observer2.observe(el);
|
|
10786
|
+
return () => observer2.disconnect();
|
|
10387
10787
|
}, [trigger, threshold, once]);
|
|
10388
10788
|
const handleMouseEnter = trigger === "hover" ? () => setIsAnimated(true) : void 0;
|
|
10389
10789
|
const handleMouseLeave = trigger === "hover" ? () => {
|
|
@@ -10500,7 +10900,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10500
10900
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
10501
10901
|
"use client";
|
|
10502
10902
|
init_cn();
|
|
10503
|
-
AnimatedGraphic =
|
|
10903
|
+
AnimatedGraphic = React98__default.forwardRef(
|
|
10504
10904
|
({
|
|
10505
10905
|
src,
|
|
10506
10906
|
svgContent,
|
|
@@ -10523,7 +10923,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10523
10923
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
10524
10924
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
10525
10925
|
const prevAnimateRef = useRef(animate);
|
|
10526
|
-
const setRef =
|
|
10926
|
+
const setRef = React98__default.useCallback(
|
|
10527
10927
|
(node) => {
|
|
10528
10928
|
containerRef.current = node;
|
|
10529
10929
|
if (typeof ref === "function") ref(node);
|
|
@@ -10750,9 +11150,9 @@ function ScoreDisplay({
|
|
|
10750
11150
|
...rest
|
|
10751
11151
|
}) {
|
|
10752
11152
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
10753
|
-
const [displayValue, setDisplayValue] =
|
|
10754
|
-
const [isAnimating, setIsAnimating] =
|
|
10755
|
-
|
|
11153
|
+
const [displayValue, setDisplayValue] = React98.useState(resolvedValue);
|
|
11154
|
+
const [isAnimating, setIsAnimating] = React98.useState(false);
|
|
11155
|
+
React98.useEffect(() => {
|
|
10756
11156
|
if (!animated || displayValue === resolvedValue) {
|
|
10757
11157
|
setDisplayValue(resolvedValue);
|
|
10758
11158
|
return;
|
|
@@ -10822,9 +11222,9 @@ function ControlButton({
|
|
|
10822
11222
|
className
|
|
10823
11223
|
}) {
|
|
10824
11224
|
const eventBus = useEventBus();
|
|
10825
|
-
const [isPressed, setIsPressed] =
|
|
11225
|
+
const [isPressed, setIsPressed] = React98.useState(false);
|
|
10826
11226
|
const actualPressed = pressed ?? isPressed;
|
|
10827
|
-
const handlePointerDown =
|
|
11227
|
+
const handlePointerDown = React98.useCallback(
|
|
10828
11228
|
(e) => {
|
|
10829
11229
|
e.preventDefault();
|
|
10830
11230
|
if (disabled) return;
|
|
@@ -10834,7 +11234,7 @@ function ControlButton({
|
|
|
10834
11234
|
},
|
|
10835
11235
|
[disabled, pressEvent, eventBus, onPress]
|
|
10836
11236
|
);
|
|
10837
|
-
const handlePointerUp =
|
|
11237
|
+
const handlePointerUp = React98.useCallback(
|
|
10838
11238
|
(e) => {
|
|
10839
11239
|
e.preventDefault();
|
|
10840
11240
|
if (disabled) return;
|
|
@@ -10844,7 +11244,7 @@ function ControlButton({
|
|
|
10844
11244
|
},
|
|
10845
11245
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
10846
11246
|
);
|
|
10847
|
-
const handlePointerLeave =
|
|
11247
|
+
const handlePointerLeave = React98.useCallback(
|
|
10848
11248
|
(e) => {
|
|
10849
11249
|
if (isPressed) {
|
|
10850
11250
|
setIsPressed(false);
|
|
@@ -11750,9 +12150,9 @@ function MiniMap({
|
|
|
11750
12150
|
viewportRect,
|
|
11751
12151
|
className
|
|
11752
12152
|
}) {
|
|
11753
|
-
const canvasRef =
|
|
11754
|
-
const frameRef =
|
|
11755
|
-
|
|
12153
|
+
const canvasRef = React98.useRef(null);
|
|
12154
|
+
const frameRef = React98.useRef(0);
|
|
12155
|
+
React98.useEffect(() => {
|
|
11756
12156
|
const canvas = canvasRef.current;
|
|
11757
12157
|
if (!canvas) return;
|
|
11758
12158
|
const ctx = canvas.getContext("2d");
|
|
@@ -12002,6 +12402,7 @@ var init_ErrorState = __esm({
|
|
|
12002
12402
|
init_Box();
|
|
12003
12403
|
init_Stack();
|
|
12004
12404
|
init_Typography();
|
|
12405
|
+
init_Icon();
|
|
12005
12406
|
init_useEventBus();
|
|
12006
12407
|
init_useTranslate();
|
|
12007
12408
|
ErrorState = ({
|
|
@@ -12029,7 +12430,7 @@ var init_ErrorState = __esm({
|
|
|
12029
12430
|
className
|
|
12030
12431
|
),
|
|
12031
12432
|
children: [
|
|
12032
|
-
/* @__PURE__ */ jsx(Box, { className: "mb-4 rounded-full bg-error/10 p-3", children: /* @__PURE__ */ jsx(
|
|
12433
|
+
/* @__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" }) }),
|
|
12033
12434
|
/* @__PURE__ */ jsx(Typography, { variant: "h3", className: "text-lg font-medium text-foreground", children: resolvedTitle }),
|
|
12034
12435
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-1 text-muted-foreground max-w-sm", children: resolvedMessage }),
|
|
12035
12436
|
(onRetry || retryEvent) && /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "mt-4", onClick: handleRetry, children: t("error.retry") })
|
|
@@ -12046,7 +12447,7 @@ var init_ErrorBoundary = __esm({
|
|
|
12046
12447
|
"use client";
|
|
12047
12448
|
init_cn();
|
|
12048
12449
|
init_ErrorState();
|
|
12049
|
-
ErrorBoundary = class extends
|
|
12450
|
+
ErrorBoundary = class extends React98__default.Component {
|
|
12050
12451
|
constructor(props) {
|
|
12051
12452
|
super(props);
|
|
12052
12453
|
__publicField(this, "reset", () => {
|
|
@@ -12971,7 +13372,7 @@ var init_AboutPageTemplate = __esm({
|
|
|
12971
13372
|
AboutPageTemplate.displayName = "AboutPageTemplate";
|
|
12972
13373
|
}
|
|
12973
13374
|
});
|
|
12974
|
-
var variantBorderClasses, variantIconColors,
|
|
13375
|
+
var variantBorderClasses, variantIconColors, iconMap2, Alert;
|
|
12975
13376
|
var init_Alert = __esm({
|
|
12976
13377
|
"components/molecules/Alert.tsx"() {
|
|
12977
13378
|
"use client";
|
|
@@ -12992,11 +13393,11 @@ var init_Alert = __esm({
|
|
|
12992
13393
|
warning: "text-warning",
|
|
12993
13394
|
error: "text-error"
|
|
12994
13395
|
};
|
|
12995
|
-
|
|
12996
|
-
info:
|
|
12997
|
-
success:
|
|
12998
|
-
warning:
|
|
12999
|
-
error:
|
|
13396
|
+
iconMap2 = {
|
|
13397
|
+
info: "info",
|
|
13398
|
+
success: "check-circle",
|
|
13399
|
+
warning: "alert-triangle",
|
|
13400
|
+
error: "alert-circle"
|
|
13000
13401
|
};
|
|
13001
13402
|
Alert = ({
|
|
13002
13403
|
children,
|
|
@@ -13031,7 +13432,7 @@ var init_Alert = __esm({
|
|
|
13031
13432
|
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
13032
13433
|
Icon,
|
|
13033
13434
|
{
|
|
13034
|
-
|
|
13435
|
+
name: iconMap2[variant],
|
|
13035
13436
|
size: "md",
|
|
13036
13437
|
className: variantIconColors[variant]
|
|
13037
13438
|
}
|
|
@@ -13051,7 +13452,7 @@ var init_Alert = __esm({
|
|
|
13051
13452
|
"hover:bg-muted"
|
|
13052
13453
|
),
|
|
13053
13454
|
"aria-label": "Dismiss alert",
|
|
13054
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
|
13455
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", size: "sm" })
|
|
13055
13456
|
}
|
|
13056
13457
|
)
|
|
13057
13458
|
] })
|
|
@@ -13127,8 +13528,8 @@ var init_Tooltip = __esm({
|
|
|
13127
13528
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
13128
13529
|
};
|
|
13129
13530
|
}, []);
|
|
13130
|
-
const triggerElement =
|
|
13131
|
-
const trigger =
|
|
13531
|
+
const triggerElement = React98__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
13532
|
+
const trigger = React98__default.cloneElement(triggerElement, {
|
|
13132
13533
|
ref: triggerRef,
|
|
13133
13534
|
onMouseEnter: handleMouseEnter,
|
|
13134
13535
|
onMouseLeave: handleMouseLeave,
|
|
@@ -13283,8 +13684,8 @@ var init_Popover = __esm({
|
|
|
13283
13684
|
onMouseEnter: handleOpen,
|
|
13284
13685
|
onMouseLeave: handleClose
|
|
13285
13686
|
};
|
|
13286
|
-
const childElement =
|
|
13287
|
-
const triggerElement =
|
|
13687
|
+
const childElement = React98__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
13688
|
+
const triggerElement = React98__default.cloneElement(
|
|
13288
13689
|
childElement,
|
|
13289
13690
|
{
|
|
13290
13691
|
ref: triggerRef,
|
|
@@ -13400,8 +13801,8 @@ var init_Menu = __esm({
|
|
|
13400
13801
|
"bottom-start": "top-full left-0 mt-2",
|
|
13401
13802
|
"bottom-end": "top-full right-0 mt-2"
|
|
13402
13803
|
};
|
|
13403
|
-
const triggerChild =
|
|
13404
|
-
const triggerElement =
|
|
13804
|
+
const triggerChild = React98__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
13805
|
+
const triggerElement = React98__default.cloneElement(
|
|
13405
13806
|
triggerChild,
|
|
13406
13807
|
{
|
|
13407
13808
|
ref: triggerRef,
|
|
@@ -13446,7 +13847,7 @@ var init_Menu = __esm({
|
|
|
13446
13847
|
}
|
|
13447
13848
|
),
|
|
13448
13849
|
item.badge !== void 0 && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: item.badge }),
|
|
13449
|
-
hasSubMenu && /* @__PURE__ */ jsx(Icon, {
|
|
13850
|
+
hasSubMenu && /* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm", className: "flex-shrink-0" })
|
|
13450
13851
|
] })
|
|
13451
13852
|
},
|
|
13452
13853
|
itemId
|
|
@@ -13591,7 +13992,7 @@ var init_Accordion = __esm({
|
|
|
13591
13992
|
/* @__PURE__ */ jsx(
|
|
13592
13993
|
Icon,
|
|
13593
13994
|
{
|
|
13594
|
-
|
|
13995
|
+
name: "chevron-down",
|
|
13595
13996
|
size: "sm",
|
|
13596
13997
|
className: cn(
|
|
13597
13998
|
"transition-transform duration-fast",
|
|
@@ -13616,15 +14017,6 @@ var init_Accordion = __esm({
|
|
|
13616
14017
|
Accordion.displayName = "Accordion";
|
|
13617
14018
|
}
|
|
13618
14019
|
});
|
|
13619
|
-
function resolveIcon2(name) {
|
|
13620
|
-
const pascalName = name.split(/[-_]/).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
|
|
13621
|
-
const icons = LucideIcons;
|
|
13622
|
-
const icon = icons[pascalName];
|
|
13623
|
-
if (icon) {
|
|
13624
|
-
return icon;
|
|
13625
|
-
}
|
|
13626
|
-
return Plus;
|
|
13627
|
-
}
|
|
13628
14020
|
var FloatingActionButton;
|
|
13629
14021
|
var init_FloatingActionButton = __esm({
|
|
13630
14022
|
"components/molecules/FloatingActionButton.tsx"() {
|
|
@@ -13650,7 +14042,7 @@ var init_FloatingActionButton = __esm({
|
|
|
13650
14042
|
const eventBus = useEventBus();
|
|
13651
14043
|
const { t } = useTranslate();
|
|
13652
14044
|
const resolvedAction = icon ? {
|
|
13653
|
-
icon
|
|
14045
|
+
icon,
|
|
13654
14046
|
onClick: () => {
|
|
13655
14047
|
if (action) eventBus.emit(`UI:${action}`, actionPayload ?? {});
|
|
13656
14048
|
onClick?.();
|
|
@@ -13760,7 +14152,7 @@ var init_FloatingActionButton = __esm({
|
|
|
13760
14152
|
{
|
|
13761
14153
|
variant: isExpanded ? "secondary" : "primary",
|
|
13762
14154
|
size: "lg",
|
|
13763
|
-
icon: isExpanded ?
|
|
14155
|
+
icon: isExpanded ? "x" : "plus",
|
|
13764
14156
|
onClick: handleMainClick,
|
|
13765
14157
|
className: "rounded-full shadow-lg transition-all duration-normal",
|
|
13766
14158
|
"aria-label": isExpanded ? "Close actions" : "Open actions",
|
|
@@ -13817,13 +14209,13 @@ var init_MapView = __esm({
|
|
|
13817
14209
|
shadowSize: [41, 41]
|
|
13818
14210
|
});
|
|
13819
14211
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
13820
|
-
const { useEffect:
|
|
14212
|
+
const { useEffect: useEffect89, useRef: useRef88, useCallback: useCallback129, useState: useState124 } = React98__default;
|
|
13821
14213
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
13822
14214
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
13823
14215
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
13824
14216
|
const map = useMap();
|
|
13825
14217
|
const prevRef = useRef88({ centerLat, centerLng, zoom });
|
|
13826
|
-
|
|
14218
|
+
useEffect89(() => {
|
|
13827
14219
|
const prev = prevRef.current;
|
|
13828
14220
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
13829
14221
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -13834,7 +14226,7 @@ var init_MapView = __esm({
|
|
|
13834
14226
|
}
|
|
13835
14227
|
function MapClickHandler({ onMapClick }) {
|
|
13836
14228
|
const map = useMap();
|
|
13837
|
-
|
|
14229
|
+
useEffect89(() => {
|
|
13838
14230
|
if (!onMapClick) return;
|
|
13839
14231
|
const handler = (e) => {
|
|
13840
14232
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -13862,7 +14254,7 @@ var init_MapView = __esm({
|
|
|
13862
14254
|
showAttribution = true
|
|
13863
14255
|
}) {
|
|
13864
14256
|
const eventBus = useEventBus3();
|
|
13865
|
-
const [clickedPosition, setClickedPosition] =
|
|
14257
|
+
const [clickedPosition, setClickedPosition] = useState124(null);
|
|
13866
14258
|
const handleMapClick = useCallback129((lat, lng) => {
|
|
13867
14259
|
if (showClickedPin) {
|
|
13868
14260
|
setClickedPosition({ lat, lng });
|
|
@@ -14063,7 +14455,7 @@ function InputPattern({
|
|
|
14063
14455
|
fieldName
|
|
14064
14456
|
}) {
|
|
14065
14457
|
const { emit } = useEventBus();
|
|
14066
|
-
const [localValue, setLocalValue] =
|
|
14458
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14067
14459
|
const handleChange = (e) => {
|
|
14068
14460
|
setLocalValue(e.target.value);
|
|
14069
14461
|
if (onChange) {
|
|
@@ -14101,7 +14493,7 @@ function TextareaPattern({
|
|
|
14101
14493
|
fieldName
|
|
14102
14494
|
}) {
|
|
14103
14495
|
const { emit } = useEventBus();
|
|
14104
|
-
const [localValue, setLocalValue] =
|
|
14496
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14105
14497
|
const handleChange = (e) => {
|
|
14106
14498
|
setLocalValue(e.target.value);
|
|
14107
14499
|
if (onChange) {
|
|
@@ -14133,7 +14525,7 @@ function SelectPattern({
|
|
|
14133
14525
|
fieldName
|
|
14134
14526
|
}) {
|
|
14135
14527
|
const { emit } = useEventBus();
|
|
14136
|
-
const [localValue, setLocalValue] =
|
|
14528
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14137
14529
|
const handleChange = (e) => {
|
|
14138
14530
|
setLocalValue(e.target.value);
|
|
14139
14531
|
if (onChange) {
|
|
@@ -14162,7 +14554,7 @@ function CheckboxPattern({
|
|
|
14162
14554
|
className
|
|
14163
14555
|
}) {
|
|
14164
14556
|
const { emit } = useEventBus();
|
|
14165
|
-
const [localChecked, setLocalChecked] =
|
|
14557
|
+
const [localChecked, setLocalChecked] = React98__default.useState(checked);
|
|
14166
14558
|
const handleChange = (e) => {
|
|
14167
14559
|
setLocalChecked(e.target.checked);
|
|
14168
14560
|
if (onChange) {
|
|
@@ -14393,8 +14785,8 @@ function ActionButtons({
|
|
|
14393
14785
|
disabled
|
|
14394
14786
|
}) {
|
|
14395
14787
|
const eventBus = useEventBus();
|
|
14396
|
-
const [activeButtons, setActiveButtons] =
|
|
14397
|
-
const handlePress =
|
|
14788
|
+
const [activeButtons, setActiveButtons] = React98.useState(/* @__PURE__ */ new Set());
|
|
14789
|
+
const handlePress = React98.useCallback(
|
|
14398
14790
|
(id) => {
|
|
14399
14791
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
14400
14792
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -14402,7 +14794,7 @@ function ActionButtons({
|
|
|
14402
14794
|
},
|
|
14403
14795
|
[actionEvent, eventBus, onAction]
|
|
14404
14796
|
);
|
|
14405
|
-
const handleRelease =
|
|
14797
|
+
const handleRelease = React98.useCallback(
|
|
14406
14798
|
(id) => {
|
|
14407
14799
|
setActiveButtons((prev) => {
|
|
14408
14800
|
const next = new Set(prev);
|
|
@@ -15266,7 +15658,7 @@ function IsometricCanvas({
|
|
|
15266
15658
|
const el = containerRef.current;
|
|
15267
15659
|
if (!el) return;
|
|
15268
15660
|
if (typeof ResizeObserver === "undefined") return;
|
|
15269
|
-
const
|
|
15661
|
+
const observer2 = new ResizeObserver((entries) => {
|
|
15270
15662
|
const entry = entries[0];
|
|
15271
15663
|
if (entry) {
|
|
15272
15664
|
const w = Math.round(entry.contentRect.width) || 800;
|
|
@@ -15277,8 +15669,8 @@ function IsometricCanvas({
|
|
|
15277
15669
|
});
|
|
15278
15670
|
}
|
|
15279
15671
|
});
|
|
15280
|
-
|
|
15281
|
-
return () =>
|
|
15672
|
+
observer2.observe(el);
|
|
15673
|
+
return () => observer2.disconnect();
|
|
15282
15674
|
}, []);
|
|
15283
15675
|
const units = useMemo(
|
|
15284
15676
|
() => unitsProp.map((u) => u.position ? u : { ...u, position: { x: u.x ?? 0, y: u.y ?? 0 } }),
|
|
@@ -16466,7 +16858,7 @@ var init_MarkdownContent = __esm({
|
|
|
16466
16858
|
init_Box();
|
|
16467
16859
|
init_useTranslate();
|
|
16468
16860
|
init_cn();
|
|
16469
|
-
MarkdownContent =
|
|
16861
|
+
MarkdownContent = React98__default.memo(
|
|
16470
16862
|
({ content, direction, className }) => {
|
|
16471
16863
|
const { t: _t } = useTranslate();
|
|
16472
16864
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -16612,6 +17004,7 @@ var init_CodeBlock = __esm({
|
|
|
16612
17004
|
init_Badge();
|
|
16613
17005
|
init_Stack();
|
|
16614
17006
|
init_Textarea();
|
|
17007
|
+
init_Icon();
|
|
16615
17008
|
init_useEventBus();
|
|
16616
17009
|
init_useTranslate();
|
|
16617
17010
|
SyntaxHighlighter.registerLanguage("json", langJson);
|
|
@@ -16684,7 +17077,7 @@ var init_CodeBlock = __esm({
|
|
|
16684
17077
|
log8 = createLogger("almadar:ui:markdown-code");
|
|
16685
17078
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
16686
17079
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
16687
|
-
CodeBlock =
|
|
17080
|
+
CodeBlock = React98__default.memo(
|
|
16688
17081
|
({
|
|
16689
17082
|
code: rawCode,
|
|
16690
17083
|
language = "text",
|
|
@@ -16902,7 +17295,7 @@ var init_CodeBlock = __esm({
|
|
|
16902
17295
|
onClick: handleCopy,
|
|
16903
17296
|
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
|
|
16904
17297
|
"aria-label": "Copy code",
|
|
16905
|
-
children: copied ? /* @__PURE__ */ jsx(
|
|
17298
|
+
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" })
|
|
16906
17299
|
}
|
|
16907
17300
|
)
|
|
16908
17301
|
]
|
|
@@ -17233,7 +17626,7 @@ var init_QuizBlock = __esm({
|
|
|
17233
17626
|
className: "self-start ml-7",
|
|
17234
17627
|
children: /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
17235
17628
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", children: revealed ? t("quiz.hideAnswer") : t("quiz.showAnswer") }),
|
|
17236
|
-
revealed ? /* @__PURE__ */ jsx(
|
|
17629
|
+
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" })
|
|
17237
17630
|
] })
|
|
17238
17631
|
}
|
|
17239
17632
|
)
|
|
@@ -17993,7 +18386,7 @@ var init_StateMachineView = __esm({
|
|
|
17993
18386
|
style: { top: title ? 30 : 0 },
|
|
17994
18387
|
children: [
|
|
17995
18388
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
17996
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
18389
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React98__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
17997
18390
|
StateNode,
|
|
17998
18391
|
{
|
|
17999
18392
|
state,
|
|
@@ -19141,28 +19534,22 @@ var init_BookTableOfContents = __esm({
|
|
|
19141
19534
|
BookTableOfContents.displayName = "BookTableOfContents";
|
|
19142
19535
|
}
|
|
19143
19536
|
});
|
|
19144
|
-
var
|
|
19537
|
+
var ICON_NAME_ALIASES, EmptyState;
|
|
19145
19538
|
var init_EmptyState = __esm({
|
|
19146
19539
|
"components/molecules/EmptyState.tsx"() {
|
|
19147
19540
|
"use client";
|
|
19148
19541
|
init_cn();
|
|
19149
19542
|
init_atoms();
|
|
19150
19543
|
init_Box();
|
|
19544
|
+
init_Icon();
|
|
19151
19545
|
init_Stack();
|
|
19152
19546
|
init_Typography();
|
|
19153
19547
|
init_useEventBus();
|
|
19154
19548
|
init_useTranslate();
|
|
19155
|
-
|
|
19156
|
-
"check-circle"
|
|
19157
|
-
|
|
19158
|
-
"
|
|
19159
|
-
error: XCircle,
|
|
19160
|
-
"alert-circle": AlertCircle,
|
|
19161
|
-
warning: AlertCircle,
|
|
19162
|
-
info: Info,
|
|
19163
|
-
search: Search,
|
|
19164
|
-
inbox: Inbox,
|
|
19165
|
-
"file-question": FileQuestion
|
|
19549
|
+
ICON_NAME_ALIASES = {
|
|
19550
|
+
check: "check-circle",
|
|
19551
|
+
error: "x-circle",
|
|
19552
|
+
warning: "alert-circle"
|
|
19166
19553
|
};
|
|
19167
19554
|
EmptyState = ({
|
|
19168
19555
|
icon,
|
|
@@ -19182,7 +19569,9 @@ var init_EmptyState = __esm({
|
|
|
19182
19569
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
|
|
19183
19570
|
onAction?.();
|
|
19184
19571
|
};
|
|
19185
|
-
const
|
|
19572
|
+
const iconName = typeof icon === "string" ? ICON_NAME_ALIASES[icon] ?? icon : void 0;
|
|
19573
|
+
const iconComponent = typeof icon === "function" ? icon : void 0;
|
|
19574
|
+
const hasIcon = Boolean(iconName || iconComponent);
|
|
19186
19575
|
const isDestructive = destructive || variant === "error";
|
|
19187
19576
|
const isSuccess = variant === "success";
|
|
19188
19577
|
const displayText = title || message || t("empty.noItems");
|
|
@@ -19195,7 +19584,7 @@ var init_EmptyState = __esm({
|
|
|
19195
19584
|
className
|
|
19196
19585
|
),
|
|
19197
19586
|
children: [
|
|
19198
|
-
|
|
19587
|
+
hasIcon && /* @__PURE__ */ jsx(
|
|
19199
19588
|
Box,
|
|
19200
19589
|
{
|
|
19201
19590
|
className: cn(
|
|
@@ -19203,8 +19592,9 @@ var init_EmptyState = __esm({
|
|
|
19203
19592
|
isDestructive ? "bg-error/10" : isSuccess ? "bg-success/10" : "bg-muted"
|
|
19204
19593
|
),
|
|
19205
19594
|
children: /* @__PURE__ */ jsx(
|
|
19206
|
-
|
|
19595
|
+
Icon,
|
|
19207
19596
|
{
|
|
19597
|
+
...iconName ? { name: iconName } : { icon: iconComponent },
|
|
19208
19598
|
className: cn(
|
|
19209
19599
|
"h-8 w-8",
|
|
19210
19600
|
isDestructive ? "text-error" : isSuccess ? "text-success" : "text-muted-foreground"
|
|
@@ -19574,7 +19964,7 @@ var init_Grid = __esm({
|
|
|
19574
19964
|
as: Component2 = "div"
|
|
19575
19965
|
}) => {
|
|
19576
19966
|
const mergedStyle = rows ? { gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`, ...style } : style;
|
|
19577
|
-
return
|
|
19967
|
+
return React98__default.createElement(
|
|
19578
19968
|
Component2,
|
|
19579
19969
|
{
|
|
19580
19970
|
className: cn(
|
|
@@ -20187,7 +20577,7 @@ var init_Breadcrumb = __esm({
|
|
|
20187
20577
|
init_useEventBus();
|
|
20188
20578
|
Breadcrumb = ({
|
|
20189
20579
|
items,
|
|
20190
|
-
separator =
|
|
20580
|
+
separator = "chevron-right",
|
|
20191
20581
|
maxItems,
|
|
20192
20582
|
className
|
|
20193
20583
|
}) => {
|
|
@@ -20216,7 +20606,7 @@ var init_Breadcrumb = __esm({
|
|
|
20216
20606
|
),
|
|
20217
20607
|
"aria-current": isLast ? "page" : void 0,
|
|
20218
20608
|
children: [
|
|
20219
|
-
item.icon && /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" }),
|
|
20609
|
+
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" })),
|
|
20220
20610
|
/* @__PURE__ */ jsx(
|
|
20221
20611
|
Typography,
|
|
20222
20612
|
{
|
|
@@ -20243,7 +20633,7 @@ var init_Breadcrumb = __esm({
|
|
|
20243
20633
|
"aria-current": isLast ? "page" : void 0,
|
|
20244
20634
|
disabled: isLast,
|
|
20245
20635
|
children: [
|
|
20246
|
-
item.icon && /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" }),
|
|
20636
|
+
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm" })),
|
|
20247
20637
|
/* @__PURE__ */ jsx(
|
|
20248
20638
|
Typography,
|
|
20249
20639
|
{
|
|
@@ -20255,14 +20645,7 @@ var init_Breadcrumb = __esm({
|
|
|
20255
20645
|
]
|
|
20256
20646
|
}
|
|
20257
20647
|
),
|
|
20258
|
-
!isLast && /* @__PURE__ */ jsx(
|
|
20259
|
-
Icon,
|
|
20260
|
-
{
|
|
20261
|
-
icon: separator,
|
|
20262
|
-
size: "sm",
|
|
20263
|
-
className: "text-muted-foreground"
|
|
20264
|
-
}
|
|
20265
|
-
)
|
|
20648
|
+
!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" }))
|
|
20266
20649
|
] }, index);
|
|
20267
20650
|
}) })
|
|
20268
20651
|
}
|
|
@@ -20783,7 +21166,7 @@ function CalendarGrid({
|
|
|
20783
21166
|
{
|
|
20784
21167
|
variant: "ghost",
|
|
20785
21168
|
size: "sm",
|
|
20786
|
-
icon:
|
|
21169
|
+
icon: "chevron-left",
|
|
20787
21170
|
onClick: stepPrev,
|
|
20788
21171
|
"aria-disabled": !canPrev || void 0,
|
|
20789
21172
|
"aria-label": "Previous days",
|
|
@@ -20796,7 +21179,7 @@ function CalendarGrid({
|
|
|
20796
21179
|
{
|
|
20797
21180
|
variant: "ghost",
|
|
20798
21181
|
size: "sm",
|
|
20799
|
-
iconRight:
|
|
21182
|
+
iconRight: "chevron-right",
|
|
20800
21183
|
onClick: stepNext,
|
|
20801
21184
|
"aria-disabled": !canNext || void 0,
|
|
20802
21185
|
"aria-label": "Next days",
|
|
@@ -24710,7 +25093,7 @@ function CounterMinimal({
|
|
|
24710
25093
|
size: sizeStyles9[size].button,
|
|
24711
25094
|
onClick: onDecrement,
|
|
24712
25095
|
disabled: resolved.decrementDisabled,
|
|
24713
|
-
icon:
|
|
25096
|
+
icon: "minus",
|
|
24714
25097
|
children: resolved.decrementLabel
|
|
24715
25098
|
}
|
|
24716
25099
|
),
|
|
@@ -24732,7 +25115,7 @@ function CounterMinimal({
|
|
|
24732
25115
|
size: sizeStyles9[size].button,
|
|
24733
25116
|
onClick: onIncrement,
|
|
24734
25117
|
disabled: resolved.incrementDisabled,
|
|
24735
|
-
icon:
|
|
25118
|
+
icon: "plus",
|
|
24736
25119
|
children: resolved.incrementLabel
|
|
24737
25120
|
}
|
|
24738
25121
|
)
|
|
@@ -24778,7 +25161,7 @@ function CounterStandard({
|
|
|
24778
25161
|
size: sizeStyles9[size].button,
|
|
24779
25162
|
onClick: onDecrement,
|
|
24780
25163
|
disabled: resolved.decrementDisabled,
|
|
24781
|
-
icon:
|
|
25164
|
+
icon: "minus"
|
|
24782
25165
|
}
|
|
24783
25166
|
),
|
|
24784
25167
|
/* @__PURE__ */ jsx(
|
|
@@ -24788,7 +25171,7 @@ function CounterStandard({
|
|
|
24788
25171
|
size: sizeStyles9[size].button,
|
|
24789
25172
|
onClick: onIncrement,
|
|
24790
25173
|
disabled: resolved.incrementDisabled,
|
|
24791
|
-
icon:
|
|
25174
|
+
icon: "plus"
|
|
24792
25175
|
}
|
|
24793
25176
|
)
|
|
24794
25177
|
] }),
|
|
@@ -24798,7 +25181,7 @@ function CounterStandard({
|
|
|
24798
25181
|
variant: "ghost",
|
|
24799
25182
|
size: "sm",
|
|
24800
25183
|
onClick: onReset,
|
|
24801
|
-
icon:
|
|
25184
|
+
icon: "rotate-ccw",
|
|
24802
25185
|
children: "Reset"
|
|
24803
25186
|
}
|
|
24804
25187
|
)
|
|
@@ -24847,7 +25230,7 @@ function CounterFull({
|
|
|
24847
25230
|
size: sizeStyles9[size].button,
|
|
24848
25231
|
onClick: onDecrement,
|
|
24849
25232
|
disabled: resolved.decrementDisabled,
|
|
24850
|
-
icon:
|
|
25233
|
+
icon: "minus",
|
|
24851
25234
|
children: resolved.decrementLabel
|
|
24852
25235
|
}
|
|
24853
25236
|
),
|
|
@@ -24858,7 +25241,7 @@ function CounterFull({
|
|
|
24858
25241
|
size: sizeStyles9[size].button,
|
|
24859
25242
|
onClick: onIncrement,
|
|
24860
25243
|
disabled: resolved.incrementDisabled,
|
|
24861
|
-
icon:
|
|
25244
|
+
icon: "plus",
|
|
24862
25245
|
children: resolved.incrementLabel
|
|
24863
25246
|
}
|
|
24864
25247
|
)
|
|
@@ -24869,7 +25252,7 @@ function CounterFull({
|
|
|
24869
25252
|
variant: "ghost",
|
|
24870
25253
|
size: "sm",
|
|
24871
25254
|
onClick: onReset,
|
|
24872
|
-
icon:
|
|
25255
|
+
icon: "rotate-ccw",
|
|
24873
25256
|
children: "Reset to 0"
|
|
24874
25257
|
}
|
|
24875
25258
|
)
|
|
@@ -24917,7 +25300,7 @@ function CraftingRecipe({
|
|
|
24917
25300
|
className
|
|
24918
25301
|
}) {
|
|
24919
25302
|
const eventBus = useEventBus();
|
|
24920
|
-
const handleCraft =
|
|
25303
|
+
const handleCraft = React98.useCallback(() => {
|
|
24921
25304
|
onCraft?.();
|
|
24922
25305
|
if (craftEvent) {
|
|
24923
25306
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -24934,7 +25317,7 @@ function CraftingRecipe({
|
|
|
24934
25317
|
children: [
|
|
24935
25318
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
24936
25319
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
24937
|
-
return /* @__PURE__ */ jsxs(
|
|
25320
|
+
return /* @__PURE__ */ jsxs(React98.Fragment, { children: [
|
|
24938
25321
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
24939
25322
|
ItemSlot,
|
|
24940
25323
|
{
|
|
@@ -24997,8 +25380,8 @@ function DPad({
|
|
|
24997
25380
|
}) {
|
|
24998
25381
|
const eventBus = useEventBus();
|
|
24999
25382
|
const sizes = sizeMap15[size];
|
|
25000
|
-
const [activeDirections, setActiveDirections] =
|
|
25001
|
-
const handlePress =
|
|
25383
|
+
const [activeDirections, setActiveDirections] = React98.useState(/* @__PURE__ */ new Set());
|
|
25384
|
+
const handlePress = React98.useCallback(
|
|
25002
25385
|
(direction) => {
|
|
25003
25386
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
25004
25387
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -25006,7 +25389,7 @@ function DPad({
|
|
|
25006
25389
|
},
|
|
25007
25390
|
[directionEvent, eventBus, onDirection]
|
|
25008
25391
|
);
|
|
25009
|
-
const handleRelease =
|
|
25392
|
+
const handleRelease = React98.useCallback(
|
|
25010
25393
|
(direction) => {
|
|
25011
25394
|
setActiveDirections((prev) => {
|
|
25012
25395
|
const next = new Set(prev);
|
|
@@ -25271,7 +25654,7 @@ var init_DashboardLayout = __esm({
|
|
|
25271
25654
|
variant: "ghost",
|
|
25272
25655
|
className: "@lg/dashboard:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
25273
25656
|
onClick: () => setSidebarOpen(false),
|
|
25274
|
-
children: /* @__PURE__ */ jsx(
|
|
25657
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-5 w-5" })
|
|
25275
25658
|
}
|
|
25276
25659
|
)
|
|
25277
25660
|
]
|
|
@@ -25317,7 +25700,7 @@ var init_DashboardLayout = __esm({
|
|
|
25317
25700
|
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",
|
|
25318
25701
|
onClick: () => setSidebarOpen(true),
|
|
25319
25702
|
"aria-label": "Open sidebar",
|
|
25320
|
-
children: /* @__PURE__ */ jsx(
|
|
25703
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "menu", className: "h-5 w-5" })
|
|
25321
25704
|
}
|
|
25322
25705
|
),
|
|
25323
25706
|
isTopNav && /* @__PURE__ */ jsxs(
|
|
@@ -25360,7 +25743,7 @@ var init_DashboardLayout = __esm({
|
|
|
25360
25743
|
}
|
|
25361
25744
|
),
|
|
25362
25745
|
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: [
|
|
25363
|
-
/* @__PURE__ */ jsx(
|
|
25746
|
+
/* @__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" }),
|
|
25364
25747
|
/* @__PURE__ */ jsx(
|
|
25365
25748
|
Input,
|
|
25366
25749
|
{
|
|
@@ -25411,7 +25794,7 @@ var init_DashboardLayout = __esm({
|
|
|
25411
25794
|
onClick: handleNotificationClick,
|
|
25412
25795
|
"aria-label": t("common.notifications"),
|
|
25413
25796
|
children: [
|
|
25414
|
-
/* @__PURE__ */ jsx(
|
|
25797
|
+
/* @__PURE__ */ jsx(Icon, { name: "bell", className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
25415
25798
|
unreadCount > 0 && /* @__PURE__ */ jsx(
|
|
25416
25799
|
Box,
|
|
25417
25800
|
{
|
|
@@ -25449,7 +25832,7 @@ var init_DashboardLayout = __esm({
|
|
|
25449
25832
|
children: user.name
|
|
25450
25833
|
}
|
|
25451
25834
|
),
|
|
25452
|
-
/* @__PURE__ */ jsx(
|
|
25835
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: "hidden @sm/dashboard:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
25453
25836
|
]
|
|
25454
25837
|
}
|
|
25455
25838
|
),
|
|
@@ -25492,7 +25875,7 @@ var init_DashboardLayout = __esm({
|
|
|
25492
25875
|
},
|
|
25493
25876
|
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",
|
|
25494
25877
|
children: [
|
|
25495
|
-
/* @__PURE__ */ jsx(
|
|
25878
|
+
/* @__PURE__ */ jsx(Icon, { name: "log-out", className: "h-4 w-4" }),
|
|
25496
25879
|
t("auth.signOut")
|
|
25497
25880
|
]
|
|
25498
25881
|
}
|
|
@@ -25674,14 +26057,14 @@ function useDataDnd(args) {
|
|
|
25674
26057
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
25675
26058
|
const enabled = isZone || Boolean(dndRoot);
|
|
25676
26059
|
const eventBus = useEventBus();
|
|
25677
|
-
const parentRoot =
|
|
26060
|
+
const parentRoot = React98__default.useContext(RootCtx);
|
|
25678
26061
|
const isRoot = enabled && parentRoot === null;
|
|
25679
|
-
const zoneId =
|
|
26062
|
+
const zoneId = React98__default.useId();
|
|
25680
26063
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
25681
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
25682
|
-
const optimisticOrdersRef =
|
|
26064
|
+
const [optimisticOrders, setOptimisticOrders] = React98__default.useState(() => /* @__PURE__ */ new Map());
|
|
26065
|
+
const optimisticOrdersRef = React98__default.useRef(optimisticOrders);
|
|
25683
26066
|
optimisticOrdersRef.current = optimisticOrders;
|
|
25684
|
-
const clearOptimisticOrder =
|
|
26067
|
+
const clearOptimisticOrder = React98__default.useCallback((group) => {
|
|
25685
26068
|
setOptimisticOrders((prev) => {
|
|
25686
26069
|
if (!prev.has(group)) return prev;
|
|
25687
26070
|
const next = new Map(prev);
|
|
@@ -25706,7 +26089,7 @@ function useDataDnd(args) {
|
|
|
25706
26089
|
const raw = it[dndItemIdField];
|
|
25707
26090
|
return String(raw ?? `__idx_${idx}`);
|
|
25708
26091
|
}).join("|");
|
|
25709
|
-
const itemIds =
|
|
26092
|
+
const itemIds = React98__default.useMemo(
|
|
25710
26093
|
() => orderedItems.map((it, idx) => {
|
|
25711
26094
|
const raw = it[dndItemIdField];
|
|
25712
26095
|
return raw ?? `__idx_${idx}`;
|
|
@@ -25714,7 +26097,7 @@ function useDataDnd(args) {
|
|
|
25714
26097
|
[itemIdsSignature]
|
|
25715
26098
|
);
|
|
25716
26099
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
25717
|
-
|
|
26100
|
+
React98__default.useEffect(() => {
|
|
25718
26101
|
const root = isRoot ? null : parentRoot;
|
|
25719
26102
|
if (root) {
|
|
25720
26103
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -25722,20 +26105,20 @@ function useDataDnd(args) {
|
|
|
25722
26105
|
clearOptimisticOrder(ownGroup);
|
|
25723
26106
|
}
|
|
25724
26107
|
}, [itemsContentSig, ownGroup]);
|
|
25725
|
-
const zonesRef =
|
|
25726
|
-
const registerZone =
|
|
26108
|
+
const zonesRef = React98__default.useRef(/* @__PURE__ */ new Map());
|
|
26109
|
+
const registerZone = React98__default.useCallback((zoneId2, meta2) => {
|
|
25727
26110
|
zonesRef.current.set(zoneId2, meta2);
|
|
25728
26111
|
}, []);
|
|
25729
|
-
const unregisterZone =
|
|
26112
|
+
const unregisterZone = React98__default.useCallback((zoneId2) => {
|
|
25730
26113
|
zonesRef.current.delete(zoneId2);
|
|
25731
26114
|
}, []);
|
|
25732
|
-
const [activeDrag, setActiveDrag] =
|
|
25733
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
25734
|
-
const meta =
|
|
26115
|
+
const [activeDrag, setActiveDrag] = React98__default.useState(null);
|
|
26116
|
+
const [overZoneGroup, setOverZoneGroup] = React98__default.useState(null);
|
|
26117
|
+
const meta = React98__default.useMemo(
|
|
25735
26118
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
25736
26119
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
25737
26120
|
);
|
|
25738
|
-
|
|
26121
|
+
React98__default.useEffect(() => {
|
|
25739
26122
|
const target = isRoot ? null : parentRoot;
|
|
25740
26123
|
if (!target) {
|
|
25741
26124
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -25754,7 +26137,7 @@ function useDataDnd(args) {
|
|
|
25754
26137
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
25755
26138
|
const sensors = useAlmadarDndSensors(true);
|
|
25756
26139
|
const collisionDetection = almadarDndCollisionDetection;
|
|
25757
|
-
const findZoneByItem =
|
|
26140
|
+
const findZoneByItem = React98__default.useCallback(
|
|
25758
26141
|
(id) => {
|
|
25759
26142
|
for (const z of zonesRef.current.values()) {
|
|
25760
26143
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -25763,7 +26146,7 @@ function useDataDnd(args) {
|
|
|
25763
26146
|
},
|
|
25764
26147
|
[]
|
|
25765
26148
|
);
|
|
25766
|
-
|
|
26149
|
+
React98__default.useCallback(
|
|
25767
26150
|
(group) => {
|
|
25768
26151
|
for (const z of zonesRef.current.values()) {
|
|
25769
26152
|
if (z.group === group) return z;
|
|
@@ -25772,7 +26155,7 @@ function useDataDnd(args) {
|
|
|
25772
26155
|
},
|
|
25773
26156
|
[]
|
|
25774
26157
|
);
|
|
25775
|
-
const handleDragEnd =
|
|
26158
|
+
const handleDragEnd = React98__default.useCallback(
|
|
25776
26159
|
(event) => {
|
|
25777
26160
|
const { active, over } = event;
|
|
25778
26161
|
const activeIdStr = String(active.id);
|
|
@@ -25863,12 +26246,12 @@ function useDataDnd(args) {
|
|
|
25863
26246
|
},
|
|
25864
26247
|
[eventBus]
|
|
25865
26248
|
);
|
|
25866
|
-
const sortableData =
|
|
25867
|
-
const SortableItem =
|
|
26249
|
+
const sortableData = React98__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
26250
|
+
const SortableItem = React98__default.useCallback(
|
|
25868
26251
|
({ id, children }) => {
|
|
25869
26252
|
const {
|
|
25870
26253
|
attributes,
|
|
25871
|
-
listeners:
|
|
26254
|
+
listeners: listeners7,
|
|
25872
26255
|
setNodeRef,
|
|
25873
26256
|
transform,
|
|
25874
26257
|
transition,
|
|
@@ -25891,7 +26274,7 @@ function useDataDnd(args) {
|
|
|
25891
26274
|
ref: setNodeRef,
|
|
25892
26275
|
style,
|
|
25893
26276
|
...attributes,
|
|
25894
|
-
...
|
|
26277
|
+
...listeners7,
|
|
25895
26278
|
children
|
|
25896
26279
|
}
|
|
25897
26280
|
);
|
|
@@ -25904,7 +26287,7 @@ function useDataDnd(args) {
|
|
|
25904
26287
|
id: droppableId,
|
|
25905
26288
|
data: sortableData
|
|
25906
26289
|
});
|
|
25907
|
-
const ctx =
|
|
26290
|
+
const ctx = React98__default.useContext(RootCtx);
|
|
25908
26291
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
25909
26292
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
25910
26293
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -25919,7 +26302,7 @@ function useDataDnd(args) {
|
|
|
25919
26302
|
showForeignPlaceholder,
|
|
25920
26303
|
ctxAvailable: ctx != null
|
|
25921
26304
|
});
|
|
25922
|
-
|
|
26305
|
+
React98__default.useEffect(() => {
|
|
25923
26306
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
25924
26307
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
25925
26308
|
return /* @__PURE__ */ jsx(
|
|
@@ -25933,11 +26316,11 @@ function useDataDnd(args) {
|
|
|
25933
26316
|
}
|
|
25934
26317
|
);
|
|
25935
26318
|
};
|
|
25936
|
-
const rootContextValue =
|
|
26319
|
+
const rootContextValue = React98__default.useMemo(
|
|
25937
26320
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
25938
26321
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
25939
26322
|
);
|
|
25940
|
-
const handleDragStart =
|
|
26323
|
+
const handleDragStart = React98__default.useCallback((event) => {
|
|
25941
26324
|
const sourceZone = findZoneByItem(event.active.id);
|
|
25942
26325
|
const rect = event.active.rect.current.initial;
|
|
25943
26326
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -25956,7 +26339,7 @@ function useDataDnd(args) {
|
|
|
25956
26339
|
isRoot
|
|
25957
26340
|
});
|
|
25958
26341
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
25959
|
-
const handleDragOver =
|
|
26342
|
+
const handleDragOver = React98__default.useCallback((event) => {
|
|
25960
26343
|
const { active, over } = event;
|
|
25961
26344
|
const overData = over?.data?.current;
|
|
25962
26345
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -26026,7 +26409,7 @@ function useDataDnd(args) {
|
|
|
26026
26409
|
return next;
|
|
26027
26410
|
});
|
|
26028
26411
|
}, []);
|
|
26029
|
-
const handleDragCancel =
|
|
26412
|
+
const handleDragCancel = React98__default.useCallback((event) => {
|
|
26030
26413
|
setActiveDrag(null);
|
|
26031
26414
|
setOverZoneGroup(null);
|
|
26032
26415
|
dndLog.warn("dragCancel", {
|
|
@@ -26034,12 +26417,12 @@ function useDataDnd(args) {
|
|
|
26034
26417
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
26035
26418
|
});
|
|
26036
26419
|
}, []);
|
|
26037
|
-
const handleDragEndWithCleanup =
|
|
26420
|
+
const handleDragEndWithCleanup = React98__default.useCallback((event) => {
|
|
26038
26421
|
handleDragEnd(event);
|
|
26039
26422
|
setActiveDrag(null);
|
|
26040
26423
|
setOverZoneGroup(null);
|
|
26041
26424
|
}, [handleDragEnd]);
|
|
26042
|
-
const wrapContainer =
|
|
26425
|
+
const wrapContainer = React98__default.useCallback(
|
|
26043
26426
|
(children) => {
|
|
26044
26427
|
if (!enabled) return children;
|
|
26045
26428
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -26093,7 +26476,7 @@ var init_useDataDnd = __esm({
|
|
|
26093
26476
|
init_useAlmadarDndCollision();
|
|
26094
26477
|
init_Box();
|
|
26095
26478
|
dndLog = createLogger("almadar:ui:dnd");
|
|
26096
|
-
RootCtx =
|
|
26479
|
+
RootCtx = React98__default.createContext(null);
|
|
26097
26480
|
}
|
|
26098
26481
|
});
|
|
26099
26482
|
function fieldLabel2(key) {
|
|
@@ -26582,7 +26965,7 @@ function DataList({
|
|
|
26582
26965
|
}) {
|
|
26583
26966
|
const eventBus = useEventBus();
|
|
26584
26967
|
const { t } = useTranslate();
|
|
26585
|
-
const [visibleCount, setVisibleCount] =
|
|
26968
|
+
const [visibleCount, setVisibleCount] = React98__default.useState(pageSize || Infinity);
|
|
26586
26969
|
const fieldDefs = fields ?? columns ?? [];
|
|
26587
26970
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
26588
26971
|
const dnd = useDataDnd({
|
|
@@ -26601,7 +26984,7 @@ function DataList({
|
|
|
26601
26984
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
26602
26985
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
26603
26986
|
const hasRenderProp = typeof children === "function";
|
|
26604
|
-
|
|
26987
|
+
React98__default.useEffect(() => {
|
|
26605
26988
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
26606
26989
|
const childrenTypeOf = typeof children;
|
|
26607
26990
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -26658,7 +27041,7 @@ function DataList({
|
|
|
26658
27041
|
const items2 = data.map((item) => item);
|
|
26659
27042
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
26660
27043
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
26661
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
27044
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
26662
27045
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
26663
27046
|
group.items.map((itemData, index) => {
|
|
26664
27047
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -26846,7 +27229,7 @@ function DataList({
|
|
|
26846
27229
|
className
|
|
26847
27230
|
),
|
|
26848
27231
|
children: [
|
|
26849
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
27232
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
26850
27233
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
26851
27234
|
group.items.map(
|
|
26852
27235
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -27136,6 +27519,7 @@ var init_FilterGroup = __esm({
|
|
|
27136
27519
|
init_Select();
|
|
27137
27520
|
init_Badge();
|
|
27138
27521
|
init_Stack();
|
|
27522
|
+
init_Icon();
|
|
27139
27523
|
init_useEventBus();
|
|
27140
27524
|
init_useQuerySingleton();
|
|
27141
27525
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
@@ -27204,7 +27588,7 @@ var init_FilterGroup = __esm({
|
|
|
27204
27588
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
27205
27589
|
if (variant === "pills") {
|
|
27206
27590
|
return /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "center", className: cn("flex-wrap", className), children: [
|
|
27207
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
27591
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
27208
27592
|
filters.map((filter) => /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
27209
27593
|
/* @__PURE__ */ jsxs("span", { className: "text-sm font-[var(--font-weight-medium)] text-muted-foreground", children: [
|
|
27210
27594
|
filter.label,
|
|
@@ -27252,7 +27636,7 @@ var init_FilterGroup = __esm({
|
|
|
27252
27636
|
variant: "ghost",
|
|
27253
27637
|
size: "sm",
|
|
27254
27638
|
onClick: handleClearAll,
|
|
27255
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27639
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27256
27640
|
children: "Clear"
|
|
27257
27641
|
}
|
|
27258
27642
|
)
|
|
@@ -27261,7 +27645,7 @@ var init_FilterGroup = __esm({
|
|
|
27261
27645
|
if (variant === "vertical") {
|
|
27262
27646
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
27263
27647
|
showIcon && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
27264
|
-
/* @__PURE__ */ jsx(
|
|
27648
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
27265
27649
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
27266
27650
|
] }),
|
|
27267
27651
|
filters.map((filter) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
@@ -27334,7 +27718,7 @@ var init_FilterGroup = __esm({
|
|
|
27334
27718
|
variant: "ghost",
|
|
27335
27719
|
size: "sm",
|
|
27336
27720
|
onClick: handleClearAll,
|
|
27337
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27721
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27338
27722
|
className: "self-start",
|
|
27339
27723
|
children: "Clear all"
|
|
27340
27724
|
}
|
|
@@ -27343,7 +27727,7 @@ var init_FilterGroup = __esm({
|
|
|
27343
27727
|
}
|
|
27344
27728
|
if (variant === "compact") {
|
|
27345
27729
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: cn("flex-wrap", className), children: [
|
|
27346
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
27730
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
27347
27731
|
filters.map((filter) => /* @__PURE__ */ jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsx(
|
|
27348
27732
|
Input,
|
|
27349
27733
|
{
|
|
@@ -27419,7 +27803,7 @@ var init_FilterGroup = __esm({
|
|
|
27419
27803
|
filterDef?.label,
|
|
27420
27804
|
": ",
|
|
27421
27805
|
value,
|
|
27422
|
-
/* @__PURE__ */ jsx(
|
|
27806
|
+
/* @__PURE__ */ jsx(Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
27423
27807
|
]
|
|
27424
27808
|
},
|
|
27425
27809
|
field
|
|
@@ -27446,7 +27830,7 @@ var init_FilterGroup = __esm({
|
|
|
27446
27830
|
align: "center",
|
|
27447
27831
|
className: "text-muted-foreground",
|
|
27448
27832
|
children: [
|
|
27449
|
-
/* @__PURE__ */ jsx(
|
|
27833
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
27450
27834
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
27451
27835
|
]
|
|
27452
27836
|
}
|
|
@@ -27532,7 +27916,7 @@ var init_FilterGroup = __esm({
|
|
|
27532
27916
|
variant: "ghost",
|
|
27533
27917
|
size: "sm",
|
|
27534
27918
|
onClick: handleClearAll,
|
|
27535
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27919
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27536
27920
|
children: "Clear all"
|
|
27537
27921
|
}
|
|
27538
27922
|
)
|
|
@@ -27749,6 +28133,7 @@ var init_RelationSelect = __esm({
|
|
|
27749
28133
|
"use client";
|
|
27750
28134
|
init_cn();
|
|
27751
28135
|
init_Box();
|
|
28136
|
+
init_Icon();
|
|
27752
28137
|
init_Stack();
|
|
27753
28138
|
init_Input();
|
|
27754
28139
|
init_Button();
|
|
@@ -27892,12 +28277,13 @@ var init_RelationSelect = __esm({
|
|
|
27892
28277
|
as: "button",
|
|
27893
28278
|
className: "p-0.5 hover:bg-muted rounded cursor-pointer",
|
|
27894
28279
|
onClick: handleClear,
|
|
27895
|
-
children: /* @__PURE__ */ jsx(
|
|
28280
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-4 w-4 text-muted-foreground" })
|
|
27896
28281
|
}
|
|
27897
28282
|
),
|
|
27898
28283
|
/* @__PURE__ */ jsx(
|
|
27899
|
-
|
|
28284
|
+
Icon,
|
|
27900
28285
|
{
|
|
28286
|
+
name: "chevron-down",
|
|
27901
28287
|
className: cn(
|
|
27902
28288
|
"h-4 w-4 text-muted-foreground transition-transform",
|
|
27903
28289
|
isOpen && "transform rotate-180"
|
|
@@ -28128,7 +28514,7 @@ var init_SidePanel = __esm({
|
|
|
28128
28514
|
{
|
|
28129
28515
|
variant: "ghost",
|
|
28130
28516
|
size: "sm",
|
|
28131
|
-
icon:
|
|
28517
|
+
icon: "x",
|
|
28132
28518
|
onClick: handleClose,
|
|
28133
28519
|
"aria-label": "Close panel",
|
|
28134
28520
|
children: /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", className: "sr-only", children: "Close" })
|
|
@@ -28186,7 +28572,7 @@ var init_WizardProgress = __esm({
|
|
|
28186
28572
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
28187
28573
|
const isActive = index === currentStep;
|
|
28188
28574
|
const isCompleted = index < currentStep;
|
|
28189
|
-
return /* @__PURE__ */ jsxs(
|
|
28575
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
28190
28576
|
/* @__PURE__ */ jsx(
|
|
28191
28577
|
"button",
|
|
28192
28578
|
{
|
|
@@ -28200,7 +28586,7 @@ var init_WizardProgress = __esm({
|
|
|
28200
28586
|
isCompleted && "bg-foreground text-background cursor-pointer hover:bg-muted-foreground",
|
|
28201
28587
|
!isActive && !isCompleted && "bg-card text-foreground"
|
|
28202
28588
|
),
|
|
28203
|
-
children: isCompleted ? /* @__PURE__ */ jsx(Icon, {
|
|
28589
|
+
children: isCompleted ? /* @__PURE__ */ jsx(Icon, { name: "check", size: "sm" }) : index + 1
|
|
28204
28590
|
}
|
|
28205
28591
|
),
|
|
28206
28592
|
!compact && /* @__PURE__ */ jsx(
|
|
@@ -28319,13 +28705,13 @@ var init_WizardNavigation = __esm({
|
|
|
28319
28705
|
),
|
|
28320
28706
|
children: [
|
|
28321
28707
|
showBack ? /* @__PURE__ */ jsxs(Button, { variant: "secondary", onClick: handleBack, disabled: isFirstStep, children: [
|
|
28322
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
28708
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-left", size: "sm" }),
|
|
28323
28709
|
resolvedBackLabel
|
|
28324
28710
|
] }) : /* @__PURE__ */ jsx(Box, {}),
|
|
28325
28711
|
/* @__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) }) }) }),
|
|
28326
28712
|
isLastStep && showComplete ? /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
|
|
28327
28713
|
resolvedNextLabel,
|
|
28328
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
28714
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm" })
|
|
28329
28715
|
] }) : /* @__PURE__ */ jsx(Box, {})
|
|
28330
28716
|
]
|
|
28331
28717
|
}
|
|
@@ -29173,10 +29559,7 @@ function StatBadge({
|
|
|
29173
29559
|
className
|
|
29174
29560
|
),
|
|
29175
29561
|
children: [
|
|
29176
|
-
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? (
|
|
29177
|
-
const I = resolveIcon(icon);
|
|
29178
|
-
return I ? /* @__PURE__ */ jsx(I, { className: "w-4 h-4" }) : icon;
|
|
29179
|
-
})() : icon }),
|
|
29562
|
+
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 }),
|
|
29180
29563
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-medium", children: label }),
|
|
29181
29564
|
format === "hearts" && max && /* @__PURE__ */ jsx(
|
|
29182
29565
|
HealthBar,
|
|
@@ -29244,7 +29627,7 @@ function InventoryGrid({
|
|
|
29244
29627
|
const eventBus = useEventBus();
|
|
29245
29628
|
const slotCount = totalSlots ?? items.length;
|
|
29246
29629
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
29247
|
-
const handleSelect =
|
|
29630
|
+
const handleSelect = React98.useCallback(
|
|
29248
29631
|
(id) => {
|
|
29249
29632
|
onSelect?.(id);
|
|
29250
29633
|
if (selectEvent) {
|
|
@@ -29457,15 +29840,15 @@ function GameCanvas2D({
|
|
|
29457
29840
|
fps = 60,
|
|
29458
29841
|
className
|
|
29459
29842
|
}) {
|
|
29460
|
-
const canvasRef =
|
|
29461
|
-
const rafRef =
|
|
29462
|
-
const frameRef =
|
|
29463
|
-
const lastTimeRef =
|
|
29464
|
-
const onDrawRef =
|
|
29843
|
+
const canvasRef = React98.useRef(null);
|
|
29844
|
+
const rafRef = React98.useRef(0);
|
|
29845
|
+
const frameRef = React98.useRef(0);
|
|
29846
|
+
const lastTimeRef = React98.useRef(0);
|
|
29847
|
+
const onDrawRef = React98.useRef(onDraw);
|
|
29465
29848
|
onDrawRef.current = onDraw;
|
|
29466
|
-
const onTickRef =
|
|
29849
|
+
const onTickRef = React98.useRef(onTick);
|
|
29467
29850
|
onTickRef.current = onTick;
|
|
29468
|
-
|
|
29851
|
+
React98.useEffect(() => {
|
|
29469
29852
|
const canvas = canvasRef.current;
|
|
29470
29853
|
if (!canvas) return;
|
|
29471
29854
|
const ctx = canvas.getContext("2d");
|
|
@@ -29754,7 +30137,7 @@ function TurnPanel({
|
|
|
29754
30137
|
className
|
|
29755
30138
|
}) {
|
|
29756
30139
|
const eventBus = useEventBus();
|
|
29757
|
-
const handleAction =
|
|
30140
|
+
const handleAction = React98.useCallback(
|
|
29758
30141
|
(event) => {
|
|
29759
30142
|
if (event) {
|
|
29760
30143
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -29900,7 +30283,7 @@ function UnitCommandBar({
|
|
|
29900
30283
|
className
|
|
29901
30284
|
}) {
|
|
29902
30285
|
const eventBus = useEventBus();
|
|
29903
|
-
const handleCommand =
|
|
30286
|
+
const handleCommand = React98.useCallback(
|
|
29904
30287
|
(event) => {
|
|
29905
30288
|
if (event) {
|
|
29906
30289
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -30385,7 +30768,7 @@ function GameMenu({
|
|
|
30385
30768
|
} catch {
|
|
30386
30769
|
}
|
|
30387
30770
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30388
|
-
const handleOptionClick =
|
|
30771
|
+
const handleOptionClick = React98.useCallback(
|
|
30389
30772
|
(option) => {
|
|
30390
30773
|
if (option.event && eventBus) {
|
|
30391
30774
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -30499,7 +30882,7 @@ function GameOverScreen({
|
|
|
30499
30882
|
} catch {
|
|
30500
30883
|
}
|
|
30501
30884
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30502
|
-
const handleActionClick =
|
|
30885
|
+
const handleActionClick = React98.useCallback(
|
|
30503
30886
|
(action) => {
|
|
30504
30887
|
if (action.event && eventBus) {
|
|
30505
30888
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -31207,6 +31590,7 @@ var init_NumberStepper = __esm({
|
|
|
31207
31590
|
"components/molecules/NumberStepper.tsx"() {
|
|
31208
31591
|
"use client";
|
|
31209
31592
|
init_cn();
|
|
31593
|
+
init_Icon();
|
|
31210
31594
|
init_useEventBus();
|
|
31211
31595
|
sizeStyles10 = {
|
|
31212
31596
|
sm: {
|
|
@@ -31325,7 +31709,7 @@ var init_NumberStepper = __esm({
|
|
|
31325
31709
|
styles.button
|
|
31326
31710
|
),
|
|
31327
31711
|
"aria-label": "Decrease",
|
|
31328
|
-
children: /* @__PURE__ */ jsx(
|
|
31712
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "minus", className: styles.icon })
|
|
31329
31713
|
}
|
|
31330
31714
|
),
|
|
31331
31715
|
/* @__PURE__ */ jsx(
|
|
@@ -31366,7 +31750,7 @@ var init_NumberStepper = __esm({
|
|
|
31366
31750
|
styles.button
|
|
31367
31751
|
),
|
|
31368
31752
|
"aria-label": "Increase",
|
|
31369
|
-
children: /* @__PURE__ */ jsx(
|
|
31753
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: styles.icon })
|
|
31370
31754
|
}
|
|
31371
31755
|
)
|
|
31372
31756
|
]
|
|
@@ -31391,6 +31775,7 @@ var init_StarRating = __esm({
|
|
|
31391
31775
|
"components/molecules/StarRating.tsx"() {
|
|
31392
31776
|
"use client";
|
|
31393
31777
|
init_cn();
|
|
31778
|
+
init_Icon();
|
|
31394
31779
|
init_useEventBus();
|
|
31395
31780
|
sizeStyles11 = {
|
|
31396
31781
|
sm: { star: "w-4 h-4", gap: "gap-0.5" },
|
|
@@ -31477,8 +31862,9 @@ var init_StarRating = __esm({
|
|
|
31477
31862
|
},
|
|
31478
31863
|
children: [
|
|
31479
31864
|
/* @__PURE__ */ jsx(
|
|
31480
|
-
|
|
31865
|
+
Icon,
|
|
31481
31866
|
{
|
|
31867
|
+
name: "star",
|
|
31482
31868
|
className: cn(
|
|
31483
31869
|
styles.star,
|
|
31484
31870
|
"text-muted",
|
|
@@ -31488,8 +31874,9 @@ var init_StarRating = __esm({
|
|
|
31488
31874
|
}
|
|
31489
31875
|
),
|
|
31490
31876
|
(isFull || isHalf) && /* @__PURE__ */ jsx(
|
|
31491
|
-
|
|
31877
|
+
Icon,
|
|
31492
31878
|
{
|
|
31879
|
+
name: "star",
|
|
31493
31880
|
className: cn(
|
|
31494
31881
|
styles.star,
|
|
31495
31882
|
"absolute inset-0",
|
|
@@ -31681,7 +32068,7 @@ var init_UploadDropZone = __esm({
|
|
|
31681
32068
|
"aria-hidden": "true"
|
|
31682
32069
|
}
|
|
31683
32070
|
),
|
|
31684
|
-
error ? /* @__PURE__ */ jsx(Icon, {
|
|
32071
|
+
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" }),
|
|
31685
32072
|
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-center font-medium mb-1", children: isDragOver ? "Drop files here" : label }),
|
|
31686
32073
|
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 })
|
|
31687
32074
|
]
|
|
@@ -31705,6 +32092,7 @@ var Lightbox;
|
|
|
31705
32092
|
var init_Lightbox = __esm({
|
|
31706
32093
|
"components/molecules/Lightbox.tsx"() {
|
|
31707
32094
|
"use client";
|
|
32095
|
+
init_Icon();
|
|
31708
32096
|
init_cn();
|
|
31709
32097
|
init_useEventBus();
|
|
31710
32098
|
Lightbox = ({
|
|
@@ -31812,7 +32200,7 @@ var init_Lightbox = __esm({
|
|
|
31812
32200
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31813
32201
|
),
|
|
31814
32202
|
"aria-label": "Close",
|
|
31815
|
-
children: /* @__PURE__ */ jsx(
|
|
32203
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "w-6 h-6" })
|
|
31816
32204
|
}
|
|
31817
32205
|
),
|
|
31818
32206
|
hasPrev && safeImages.length > 1 && /* @__PURE__ */ jsx(
|
|
@@ -31831,7 +32219,7 @@ var init_Lightbox = __esm({
|
|
|
31831
32219
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31832
32220
|
),
|
|
31833
32221
|
"aria-label": "Previous image",
|
|
31834
|
-
children: /* @__PURE__ */ jsx(
|
|
32222
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
31835
32223
|
}
|
|
31836
32224
|
),
|
|
31837
32225
|
/* @__PURE__ */ jsx(
|
|
@@ -31868,7 +32256,7 @@ var init_Lightbox = __esm({
|
|
|
31868
32256
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31869
32257
|
),
|
|
31870
32258
|
"aria-label": "Next image",
|
|
31871
|
-
children: /* @__PURE__ */ jsx(
|
|
32259
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
31872
32260
|
}
|
|
31873
32261
|
),
|
|
31874
32262
|
/* @__PURE__ */ jsxs("div", { className: "absolute bottom-4 left-0 right-0 text-center", children: [
|
|
@@ -32949,7 +33337,7 @@ var init_PricingCard = __esm({
|
|
|
32949
33337
|
/* @__PURE__ */ jsx(
|
|
32950
33338
|
Icon,
|
|
32951
33339
|
{
|
|
32952
|
-
|
|
33340
|
+
name: "check",
|
|
32953
33341
|
size: "sm",
|
|
32954
33342
|
className: "flex-shrink-0 text-success"
|
|
32955
33343
|
}
|
|
@@ -33167,7 +33555,7 @@ var init_StepFlow = __esm({
|
|
|
33167
33555
|
className
|
|
33168
33556
|
}) => {
|
|
33169
33557
|
if (orientation === "vertical") {
|
|
33170
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
33558
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React98__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
33171
33559
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
33172
33560
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33173
33561
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -33178,7 +33566,7 @@ var init_StepFlow = __esm({
|
|
|
33178
33566
|
] })
|
|
33179
33567
|
] }) }, index)) });
|
|
33180
33568
|
}
|
|
33181
|
-
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(
|
|
33569
|
+
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(React98__default.Fragment, { children: [
|
|
33182
33570
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
33183
33571
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33184
33572
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -33992,6 +34380,7 @@ var init_VoteStack = __esm({
|
|
|
33992
34380
|
"components/molecules/VoteStack.tsx"() {
|
|
33993
34381
|
"use client";
|
|
33994
34382
|
init_cn();
|
|
34383
|
+
init_Icon();
|
|
33995
34384
|
init_useEventBus();
|
|
33996
34385
|
sizeStyles12 = {
|
|
33997
34386
|
sm: {
|
|
@@ -34073,7 +34462,7 @@ var init_VoteStack = __esm({
|
|
|
34073
34462
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
34074
34463
|
styles.button
|
|
34075
34464
|
),
|
|
34076
|
-
children: /* @__PURE__ */ jsx(
|
|
34465
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-up", className: styles.icon })
|
|
34077
34466
|
}
|
|
34078
34467
|
),
|
|
34079
34468
|
/* @__PURE__ */ jsx(
|
|
@@ -34110,7 +34499,7 @@ var init_VoteStack = __esm({
|
|
|
34110
34499
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
34111
34500
|
styles.button
|
|
34112
34501
|
),
|
|
34113
|
-
children: /* @__PURE__ */ jsx(
|
|
34502
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: styles.icon })
|
|
34114
34503
|
}
|
|
34115
34504
|
)
|
|
34116
34505
|
]
|
|
@@ -34152,7 +34541,7 @@ var init_LikertScale = __esm({
|
|
|
34152
34541
|
md: "text-base",
|
|
34153
34542
|
lg: "text-lg"
|
|
34154
34543
|
};
|
|
34155
|
-
LikertScale =
|
|
34544
|
+
LikertScale = React98__default.forwardRef(
|
|
34156
34545
|
({
|
|
34157
34546
|
question,
|
|
34158
34547
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -34164,7 +34553,7 @@ var init_LikertScale = __esm({
|
|
|
34164
34553
|
variant = "radios",
|
|
34165
34554
|
className
|
|
34166
34555
|
}, ref) => {
|
|
34167
|
-
const groupId =
|
|
34556
|
+
const groupId = React98__default.useId();
|
|
34168
34557
|
const eventBus = useEventBus();
|
|
34169
34558
|
const handleSelect = useCallback(
|
|
34170
34559
|
(next) => {
|
|
@@ -34444,6 +34833,7 @@ var init_QrScanner = __esm({
|
|
|
34444
34833
|
"use client";
|
|
34445
34834
|
init_cn();
|
|
34446
34835
|
init_atoms();
|
|
34836
|
+
init_Icon();
|
|
34447
34837
|
init_useEventBus();
|
|
34448
34838
|
QrScanner = ({
|
|
34449
34839
|
onScan,
|
|
@@ -34594,7 +34984,7 @@ var init_QrScanner = __esm({
|
|
|
34594
34984
|
padding: "lg",
|
|
34595
34985
|
className: "inset-0 flex-col items-center justify-center gap-2 bg-black bg-opacity-80 text-center",
|
|
34596
34986
|
children: [
|
|
34597
|
-
/* @__PURE__ */ jsx(
|
|
34987
|
+
/* @__PURE__ */ jsx(Icon, { name: "camera", className: "h-8 w-8 text-white", "aria-hidden": "true" }),
|
|
34598
34988
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: "Camera unavailable" }),
|
|
34599
34989
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white opacity-70", children: cameraError.message })
|
|
34600
34990
|
]
|
|
@@ -34626,7 +35016,7 @@ var init_QrScanner = __esm({
|
|
|
34626
35016
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
34627
35017
|
),
|
|
34628
35018
|
"aria-label": isPaused ? "Resume scanning" : "Pause scanning",
|
|
34629
|
-
children: isPaused ? /* @__PURE__ */ jsx(
|
|
35019
|
+
children: isPaused ? /* @__PURE__ */ jsx(Icon, { name: "play", className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Icon, { name: "pause", className: "h-4 w-4" })
|
|
34630
35020
|
}
|
|
34631
35021
|
),
|
|
34632
35022
|
/* @__PURE__ */ jsx(
|
|
@@ -34639,7 +35029,7 @@ var init_QrScanner = __esm({
|
|
|
34639
35029
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
34640
35030
|
),
|
|
34641
35031
|
"aria-label": `Switch to ${currentFacing === "environment" ? "front" : "rear"} camera`,
|
|
34642
|
-
children: /* @__PURE__ */ jsx(
|
|
35032
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "refresh-cw", className: "h-4 w-4" })
|
|
34643
35033
|
}
|
|
34644
35034
|
),
|
|
34645
35035
|
/* @__PURE__ */ jsx(
|
|
@@ -34855,11 +35245,11 @@ function getShapeClasses(shape) {
|
|
|
34855
35245
|
function getStatusIcon(status) {
|
|
34856
35246
|
switch (status) {
|
|
34857
35247
|
case "seated":
|
|
34858
|
-
return /* @__PURE__ */ jsx(
|
|
35248
|
+
return /* @__PURE__ */ jsx(Icon, { name: "users", className: "w-4 h-4" });
|
|
34859
35249
|
case "ordered":
|
|
34860
|
-
return /* @__PURE__ */ jsx(
|
|
35250
|
+
return /* @__PURE__ */ jsx(Icon, { name: "coffee", className: "w-4 h-4" });
|
|
34861
35251
|
case "awaiting-bill":
|
|
34862
|
-
return /* @__PURE__ */ jsx(
|
|
35252
|
+
return /* @__PURE__ */ jsx(Icon, { name: "alert-circle", className: "w-4 h-4" });
|
|
34863
35253
|
default:
|
|
34864
35254
|
return null;
|
|
34865
35255
|
}
|
|
@@ -34871,6 +35261,7 @@ var init_PositionedCanvas = __esm({
|
|
|
34871
35261
|
init_cn();
|
|
34872
35262
|
init_useEventBus();
|
|
34873
35263
|
init_atoms();
|
|
35264
|
+
init_Icon();
|
|
34874
35265
|
STATUS_CLASSES = {
|
|
34875
35266
|
empty: "bg-surface border-border text-foreground",
|
|
34876
35267
|
seated: "bg-surface border-success text-success",
|
|
@@ -35175,7 +35566,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35175
35566
|
"transition-opacity"
|
|
35176
35567
|
),
|
|
35177
35568
|
onClick: () => setOpen((v) => !v),
|
|
35178
|
-
children: /* @__PURE__ */ jsx(
|
|
35569
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", className: "w-3.5 h-3.5" })
|
|
35179
35570
|
}
|
|
35180
35571
|
),
|
|
35181
35572
|
open && /* @__PURE__ */ jsxs(
|
|
@@ -35201,7 +35592,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35201
35592
|
setOpen(false);
|
|
35202
35593
|
},
|
|
35203
35594
|
children: [
|
|
35204
|
-
/* @__PURE__ */ jsx(
|
|
35595
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" }),
|
|
35205
35596
|
" Duplicate"
|
|
35206
35597
|
]
|
|
35207
35598
|
}
|
|
@@ -35218,7 +35609,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35218
35609
|
setOpen(false);
|
|
35219
35610
|
},
|
|
35220
35611
|
children: [
|
|
35221
|
-
/* @__PURE__ */ jsx(
|
|
35612
|
+
/* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3.5 h-3.5" }),
|
|
35222
35613
|
" Delete"
|
|
35223
35614
|
]
|
|
35224
35615
|
}
|
|
@@ -35447,7 +35838,7 @@ function BlockRow({
|
|
|
35447
35838
|
"text-sm text-muted-foreground"
|
|
35448
35839
|
),
|
|
35449
35840
|
children: [
|
|
35450
|
-
/* @__PURE__ */ jsx(
|
|
35841
|
+
/* @__PURE__ */ jsx(Icon, { name: "image", className: "mr-2 w-4 h-4" }),
|
|
35451
35842
|
" No image URL set"
|
|
35452
35843
|
]
|
|
35453
35844
|
}
|
|
@@ -35521,7 +35912,7 @@ function BlockRow({
|
|
|
35521
35912
|
"opacity-0 group-hover/item:opacity-100 hover:bg-muted hover:text-foreground"
|
|
35522
35913
|
),
|
|
35523
35914
|
onClick: () => removeListItem(child.id),
|
|
35524
|
-
children: /* @__PURE__ */ jsx(
|
|
35915
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3 h-3" })
|
|
35525
35916
|
}
|
|
35526
35917
|
)
|
|
35527
35918
|
] }, child.id)),
|
|
@@ -35536,7 +35927,7 @@ function BlockRow({
|
|
|
35536
35927
|
),
|
|
35537
35928
|
onClick: addListItem,
|
|
35538
35929
|
children: [
|
|
35539
|
-
/* @__PURE__ */ jsx(
|
|
35930
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3 h-3" }),
|
|
35540
35931
|
" Add item"
|
|
35541
35932
|
]
|
|
35542
35933
|
}
|
|
@@ -35585,7 +35976,7 @@ function BlockRow({
|
|
|
35585
35976
|
"transition-opacity"
|
|
35586
35977
|
),
|
|
35587
35978
|
onClick: () => onInsertAfter("paragraph"),
|
|
35588
|
-
children: /* @__PURE__ */ jsx(
|
|
35979
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" })
|
|
35589
35980
|
}
|
|
35590
35981
|
),
|
|
35591
35982
|
/* @__PURE__ */ jsx(
|
|
@@ -35615,6 +36006,7 @@ var init_RichBlockEditor = __esm({
|
|
|
35615
36006
|
init_Box();
|
|
35616
36007
|
init_Divider();
|
|
35617
36008
|
init_Input();
|
|
36009
|
+
init_Icon();
|
|
35618
36010
|
init_useEventBus();
|
|
35619
36011
|
TOOLBAR_ENTRIES = [
|
|
35620
36012
|
{ type: "paragraph", label: "Text", icon: Type },
|
|
@@ -35858,7 +36250,7 @@ var init_ReplyTree = __esm({
|
|
|
35858
36250
|
onClick: handleToggle,
|
|
35859
36251
|
"aria-label": isCollapsed ? "Expand replies" : "Collapse replies",
|
|
35860
36252
|
"aria-expanded": !isCollapsed,
|
|
35861
|
-
leftIcon: isCollapsed ?
|
|
36253
|
+
leftIcon: isCollapsed ? "chevron-right" : "chevron-down",
|
|
35862
36254
|
className: cn(
|
|
35863
36255
|
"w-6 h-6 p-0 min-w-0",
|
|
35864
36256
|
"rounded-sm text-muted-foreground",
|
|
@@ -35905,7 +36297,7 @@ var init_ReplyTree = __esm({
|
|
|
35905
36297
|
{
|
|
35906
36298
|
variant: "ghost",
|
|
35907
36299
|
size: "sm",
|
|
35908
|
-
leftIcon:
|
|
36300
|
+
leftIcon: "message-square",
|
|
35909
36301
|
onClick: handleReply,
|
|
35910
36302
|
"aria-label": `Reply to ${node.authorName}`,
|
|
35911
36303
|
children: "Reply"
|
|
@@ -35916,7 +36308,7 @@ var init_ReplyTree = __esm({
|
|
|
35916
36308
|
{
|
|
35917
36309
|
variant: "ghost",
|
|
35918
36310
|
size: "sm",
|
|
35919
|
-
leftIcon:
|
|
36311
|
+
leftIcon: "flag",
|
|
35920
36312
|
onClick: handleFlag,
|
|
35921
36313
|
"aria-label": `Flag reply by ${node.authorName}`,
|
|
35922
36314
|
children: "Flag"
|
|
@@ -35929,7 +36321,7 @@ var init_ReplyTree = __esm({
|
|
|
35929
36321
|
variant: "ghost",
|
|
35930
36322
|
size: "sm",
|
|
35931
36323
|
onClick: handleContinue,
|
|
35932
|
-
rightIcon:
|
|
36324
|
+
rightIcon: "chevron-right",
|
|
35933
36325
|
className: cn(
|
|
35934
36326
|
"self-start gap-1 px-0 h-auto",
|
|
35935
36327
|
"text-sm text-primary hover:underline hover:bg-transparent"
|
|
@@ -36170,7 +36562,7 @@ var init_VersionDiff = __esm({
|
|
|
36170
36562
|
className: "px-4 py-2 border-b border-border bg-muted/30 flex-wrap",
|
|
36171
36563
|
children: [
|
|
36172
36564
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "flex-wrap", children: [
|
|
36173
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
36565
|
+
/* @__PURE__ */ jsx(Icon, { name: "git-commit", size: "sm", className: "text-muted-foreground" }),
|
|
36174
36566
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: "Compare" }),
|
|
36175
36567
|
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
36176
36568
|
Select,
|
|
@@ -36207,7 +36599,7 @@ var init_VersionDiff = __esm({
|
|
|
36207
36599
|
{
|
|
36208
36600
|
variant: "ghost",
|
|
36209
36601
|
size: "sm",
|
|
36210
|
-
icon: activeView === "side-by-side" ?
|
|
36602
|
+
icon: activeView === "side-by-side" ? "align-left" : "columns",
|
|
36211
36603
|
onClick: handleViewToggle,
|
|
36212
36604
|
"aria-label": activeView === "side-by-side" ? "Switch to inline view" : "Switch to side-by-side view"
|
|
36213
36605
|
}
|
|
@@ -36217,7 +36609,7 @@ var init_VersionDiff = __esm({
|
|
|
36217
36609
|
{
|
|
36218
36610
|
variant: "ghost",
|
|
36219
36611
|
size: "sm",
|
|
36220
|
-
icon:
|
|
36612
|
+
icon: "rotate-ccw",
|
|
36221
36613
|
onClick: handleRevert,
|
|
36222
36614
|
children: "Revert"
|
|
36223
36615
|
}
|
|
@@ -36394,7 +36786,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
36394
36786
|
"aria-label": "Breadcrumb",
|
|
36395
36787
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
36396
36788
|
const isLast = idx === items.length - 1;
|
|
36397
|
-
return /* @__PURE__ */ jsxs(
|
|
36789
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
36398
36790
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
36399
36791
|
Icon,
|
|
36400
36792
|
{
|
|
@@ -38327,7 +38719,7 @@ var init_DocumentViewer = __esm({
|
|
|
38327
38719
|
}
|
|
38328
38720
|
});
|
|
38329
38721
|
function extractTitle(children) {
|
|
38330
|
-
if (!
|
|
38722
|
+
if (!React98__default.isValidElement(children)) return void 0;
|
|
38331
38723
|
const props = children.props;
|
|
38332
38724
|
if (typeof props.title === "string") {
|
|
38333
38725
|
return props.title;
|
|
@@ -38382,7 +38774,7 @@ function LinearView({
|
|
|
38382
38774
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
38383
38775
|
const isDone = i < currentIdx;
|
|
38384
38776
|
const isCurrent = i === currentIdx;
|
|
38385
|
-
return /* @__PURE__ */ jsxs(
|
|
38777
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
38386
38778
|
i > 0 && /* @__PURE__ */ jsx(
|
|
38387
38779
|
Typography,
|
|
38388
38780
|
{
|
|
@@ -39283,12 +39675,12 @@ var init_Form = __esm({
|
|
|
39283
39675
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
39284
39676
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
39285
39677
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
39286
|
-
const normalizedInitialData =
|
|
39678
|
+
const normalizedInitialData = React98__default.useMemo(() => {
|
|
39287
39679
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
39288
39680
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
39289
39681
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
39290
39682
|
}, [entity, initialData]);
|
|
39291
|
-
const entityDerivedFields =
|
|
39683
|
+
const entityDerivedFields = React98__default.useMemo(() => {
|
|
39292
39684
|
if (fields && fields.length > 0) return void 0;
|
|
39293
39685
|
if (!resolvedEntity) return void 0;
|
|
39294
39686
|
return resolvedEntity.fields.map(
|
|
@@ -39308,16 +39700,16 @@ var init_Form = __esm({
|
|
|
39308
39700
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
39309
39701
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
39310
39702
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
39311
|
-
const [formData, setFormData] =
|
|
39703
|
+
const [formData, setFormData] = React98__default.useState(
|
|
39312
39704
|
normalizedInitialData
|
|
39313
39705
|
);
|
|
39314
|
-
const [collapsedSections, setCollapsedSections] =
|
|
39706
|
+
const [collapsedSections, setCollapsedSections] = React98__default.useState(
|
|
39315
39707
|
/* @__PURE__ */ new Set()
|
|
39316
39708
|
);
|
|
39317
|
-
const [submitError, setSubmitError] =
|
|
39318
|
-
const formRef =
|
|
39709
|
+
const [submitError, setSubmitError] = React98__default.useState(null);
|
|
39710
|
+
const formRef = React98__default.useRef(null);
|
|
39319
39711
|
const formMode = props.mode;
|
|
39320
|
-
const mountedRef =
|
|
39712
|
+
const mountedRef = React98__default.useRef(false);
|
|
39321
39713
|
if (!mountedRef.current) {
|
|
39322
39714
|
mountedRef.current = true;
|
|
39323
39715
|
debug("forms", "mount", {
|
|
@@ -39330,7 +39722,7 @@ var init_Form = __esm({
|
|
|
39330
39722
|
});
|
|
39331
39723
|
}
|
|
39332
39724
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
39333
|
-
const evalContext =
|
|
39725
|
+
const evalContext = React98__default.useMemo(
|
|
39334
39726
|
() => ({
|
|
39335
39727
|
formValues: formData,
|
|
39336
39728
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -39339,7 +39731,7 @@ var init_Form = __esm({
|
|
|
39339
39731
|
}),
|
|
39340
39732
|
[formData, externalContext]
|
|
39341
39733
|
);
|
|
39342
|
-
|
|
39734
|
+
React98__default.useEffect(() => {
|
|
39343
39735
|
debug("forms", "initialData-sync", {
|
|
39344
39736
|
mode: formMode,
|
|
39345
39737
|
normalizedInitialData,
|
|
@@ -39350,7 +39742,7 @@ var init_Form = __esm({
|
|
|
39350
39742
|
setFormData(normalizedInitialData);
|
|
39351
39743
|
}
|
|
39352
39744
|
}, [normalizedInitialData]);
|
|
39353
|
-
const processCalculations =
|
|
39745
|
+
const processCalculations = React98__default.useCallback(
|
|
39354
39746
|
(changedFieldId, newFormData) => {
|
|
39355
39747
|
if (!hiddenCalculations.length) return;
|
|
39356
39748
|
const context = {
|
|
@@ -39375,7 +39767,7 @@ var init_Form = __esm({
|
|
|
39375
39767
|
},
|
|
39376
39768
|
[hiddenCalculations, externalContext, eventBus]
|
|
39377
39769
|
);
|
|
39378
|
-
const checkViolations =
|
|
39770
|
+
const checkViolations = React98__default.useCallback(
|
|
39379
39771
|
(changedFieldId, newFormData) => {
|
|
39380
39772
|
if (!violationTriggers.length) return;
|
|
39381
39773
|
const context = {
|
|
@@ -39413,7 +39805,7 @@ var init_Form = __esm({
|
|
|
39413
39805
|
processCalculations(name, newFormData);
|
|
39414
39806
|
checkViolations(name, newFormData);
|
|
39415
39807
|
};
|
|
39416
|
-
const isFieldVisible =
|
|
39808
|
+
const isFieldVisible = React98__default.useCallback(
|
|
39417
39809
|
(fieldName) => {
|
|
39418
39810
|
const condition = conditionalFields[fieldName];
|
|
39419
39811
|
if (!condition) return true;
|
|
@@ -39421,7 +39813,7 @@ var init_Form = __esm({
|
|
|
39421
39813
|
},
|
|
39422
39814
|
[conditionalFields, evalContext]
|
|
39423
39815
|
);
|
|
39424
|
-
const isSectionVisible =
|
|
39816
|
+
const isSectionVisible = React98__default.useCallback(
|
|
39425
39817
|
(section) => {
|
|
39426
39818
|
if (!section.condition) return true;
|
|
39427
39819
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -39497,7 +39889,7 @@ var init_Form = __esm({
|
|
|
39497
39889
|
eventBus.emit(`UI:${onCancel}`);
|
|
39498
39890
|
}
|
|
39499
39891
|
};
|
|
39500
|
-
const renderField =
|
|
39892
|
+
const renderField = React98__default.useCallback(
|
|
39501
39893
|
(field) => {
|
|
39502
39894
|
const fieldName = field.name || field.field;
|
|
39503
39895
|
if (!fieldName) return null;
|
|
@@ -39518,7 +39910,7 @@ var init_Form = __esm({
|
|
|
39518
39910
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
39519
39911
|
);
|
|
39520
39912
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
39521
|
-
const normalizedFields =
|
|
39913
|
+
const normalizedFields = React98__default.useMemo(() => {
|
|
39522
39914
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
39523
39915
|
return effectiveFields.map((field) => {
|
|
39524
39916
|
if (typeof field === "string") {
|
|
@@ -39541,7 +39933,7 @@ var init_Form = __esm({
|
|
|
39541
39933
|
return field;
|
|
39542
39934
|
});
|
|
39543
39935
|
}, [effectiveFields, resolvedEntity]);
|
|
39544
|
-
const schemaFields =
|
|
39936
|
+
const schemaFields = React98__default.useMemo(() => {
|
|
39545
39937
|
if (normalizedFields.length === 0) return null;
|
|
39546
39938
|
if (isDebugEnabled()) {
|
|
39547
39939
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -39551,7 +39943,7 @@ var init_Form = __esm({
|
|
|
39551
39943
|
}
|
|
39552
39944
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
39553
39945
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
39554
|
-
const sectionElements =
|
|
39946
|
+
const sectionElements = React98__default.useMemo(() => {
|
|
39555
39947
|
if (!sections || sections.length === 0) return null;
|
|
39556
39948
|
return sections.map((section) => {
|
|
39557
39949
|
if (!isSectionVisible(section)) {
|
|
@@ -40256,7 +40648,7 @@ var init_GameTemplate = __esm({
|
|
|
40256
40648
|
{
|
|
40257
40649
|
variant: "secondary",
|
|
40258
40650
|
size: "sm",
|
|
40259
|
-
icon:
|
|
40651
|
+
icon: "pause",
|
|
40260
40652
|
onClick: controls.onPause,
|
|
40261
40653
|
children: "Pause"
|
|
40262
40654
|
}
|
|
@@ -40265,7 +40657,7 @@ var init_GameTemplate = __esm({
|
|
|
40265
40657
|
{
|
|
40266
40658
|
variant: "primary",
|
|
40267
40659
|
size: "sm",
|
|
40268
|
-
icon:
|
|
40660
|
+
icon: "play",
|
|
40269
40661
|
onClick: controls.onPlay,
|
|
40270
40662
|
children: "Play"
|
|
40271
40663
|
}
|
|
@@ -40275,7 +40667,7 @@ var init_GameTemplate = __esm({
|
|
|
40275
40667
|
{
|
|
40276
40668
|
variant: "ghost",
|
|
40277
40669
|
size: "sm",
|
|
40278
|
-
icon:
|
|
40670
|
+
icon: "rotate-ccw",
|
|
40279
40671
|
onClick: controls.onReset,
|
|
40280
40672
|
children: "Reset"
|
|
40281
40673
|
}
|
|
@@ -41277,7 +41669,7 @@ var init_List = __esm({
|
|
|
41277
41669
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
41278
41670
|
return [];
|
|
41279
41671
|
}, [entity]);
|
|
41280
|
-
const getItemActions =
|
|
41672
|
+
const getItemActions = React98__default.useCallback(
|
|
41281
41673
|
(item) => {
|
|
41282
41674
|
if (!itemActions) return [];
|
|
41283
41675
|
if (typeof itemActions === "function") {
|
|
@@ -41750,7 +42142,7 @@ var init_MediaGallery = __esm({
|
|
|
41750
42142
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
41751
42143
|
);
|
|
41752
42144
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
41753
|
-
const items =
|
|
42145
|
+
const items = React98__default.useMemo(() => {
|
|
41754
42146
|
if (propItems) return propItems;
|
|
41755
42147
|
if (entityData.length === 0) return [];
|
|
41756
42148
|
return entityData.map((record, idx) => ({
|
|
@@ -41914,7 +42306,7 @@ var init_MediaGallery = __esm({
|
|
|
41914
42306
|
}
|
|
41915
42307
|
});
|
|
41916
42308
|
function extractTitle2(children) {
|
|
41917
|
-
if (!
|
|
42309
|
+
if (!React98__default.isValidElement(children)) return void 0;
|
|
41918
42310
|
const props = children.props;
|
|
41919
42311
|
if (typeof props.title === "string") {
|
|
41920
42312
|
return props.title;
|
|
@@ -42627,7 +43019,7 @@ var init_PageHeader = __esm({
|
|
|
42627
43019
|
info: "bg-info/10 text-info"
|
|
42628
43020
|
};
|
|
42629
43021
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
42630
|
-
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(
|
|
43022
|
+
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(React98__default.Fragment, { children: [
|
|
42631
43023
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
42632
43024
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
42633
43025
|
"a",
|
|
@@ -42839,7 +43231,7 @@ var init_PricingPageTemplate = __esm({
|
|
|
42839
43231
|
|
|
42840
43232
|
// lib/traitRegistry.ts
|
|
42841
43233
|
function notifyListeners2() {
|
|
42842
|
-
|
|
43234
|
+
listeners2.forEach((listener) => listener());
|
|
42843
43235
|
}
|
|
42844
43236
|
function registerTrait(info) {
|
|
42845
43237
|
traits.set(info.id, info);
|
|
@@ -42861,14 +43253,14 @@ function getAllTraits() {
|
|
|
42861
43253
|
return Array.from(traits.values());
|
|
42862
43254
|
}
|
|
42863
43255
|
function subscribeToTraitChanges(listener) {
|
|
42864
|
-
|
|
42865
|
-
return () =>
|
|
43256
|
+
listeners2.add(listener);
|
|
43257
|
+
return () => listeners2.delete(listener);
|
|
42866
43258
|
}
|
|
42867
|
-
var traits,
|
|
43259
|
+
var traits, listeners2;
|
|
42868
43260
|
var init_traitRegistry = __esm({
|
|
42869
43261
|
"lib/traitRegistry.ts"() {
|
|
42870
43262
|
traits = /* @__PURE__ */ new Map();
|
|
42871
|
-
|
|
43263
|
+
listeners2 = /* @__PURE__ */ new Set();
|
|
42872
43264
|
}
|
|
42873
43265
|
});
|
|
42874
43266
|
|
|
@@ -42877,14 +43269,14 @@ function getAllTicks() {
|
|
|
42877
43269
|
return Array.from(ticks.values());
|
|
42878
43270
|
}
|
|
42879
43271
|
function subscribeToTickChanges(listener) {
|
|
42880
|
-
|
|
42881
|
-
return () =>
|
|
43272
|
+
listeners3.add(listener);
|
|
43273
|
+
return () => listeners3.delete(listener);
|
|
42882
43274
|
}
|
|
42883
|
-
var ticks,
|
|
43275
|
+
var ticks, listeners3;
|
|
42884
43276
|
var init_tickRegistry = __esm({
|
|
42885
43277
|
"lib/tickRegistry.ts"() {
|
|
42886
43278
|
ticks = /* @__PURE__ */ new Map();
|
|
42887
|
-
|
|
43279
|
+
listeners3 = /* @__PURE__ */ new Set();
|
|
42888
43280
|
}
|
|
42889
43281
|
});
|
|
42890
43282
|
|
|
@@ -42893,14 +43285,14 @@ function getGuardHistory() {
|
|
|
42893
43285
|
return [...guardHistory];
|
|
42894
43286
|
}
|
|
42895
43287
|
function subscribeToGuardChanges(listener) {
|
|
42896
|
-
|
|
42897
|
-
return () =>
|
|
43288
|
+
listeners4.add(listener);
|
|
43289
|
+
return () => listeners4.delete(listener);
|
|
42898
43290
|
}
|
|
42899
|
-
var guardHistory,
|
|
43291
|
+
var guardHistory, listeners4;
|
|
42900
43292
|
var init_guardRegistry = __esm({
|
|
42901
43293
|
"lib/guardRegistry.ts"() {
|
|
42902
43294
|
guardHistory = [];
|
|
42903
|
-
|
|
43295
|
+
listeners4 = /* @__PURE__ */ new Set();
|
|
42904
43296
|
}
|
|
42905
43297
|
});
|
|
42906
43298
|
|
|
@@ -42931,18 +43323,18 @@ function getDebugEvents() {
|
|
|
42931
43323
|
return [...events];
|
|
42932
43324
|
}
|
|
42933
43325
|
function subscribeToDebugEvents(listener) {
|
|
42934
|
-
|
|
42935
|
-
return () =>
|
|
43326
|
+
listeners5.add(listener);
|
|
43327
|
+
return () => listeners5.delete(listener);
|
|
42936
43328
|
}
|
|
42937
|
-
var events,
|
|
43329
|
+
var events, listeners5;
|
|
42938
43330
|
var init_debugRegistry = __esm({
|
|
42939
43331
|
"lib/debugRegistry.ts"() {
|
|
42940
43332
|
events = [];
|
|
42941
|
-
|
|
43333
|
+
listeners5 = /* @__PURE__ */ new Set();
|
|
42942
43334
|
}
|
|
42943
43335
|
});
|
|
42944
43336
|
function useDebugData() {
|
|
42945
|
-
const [data, setData] =
|
|
43337
|
+
const [data, setData] = React98.useState(() => ({
|
|
42946
43338
|
traits: [],
|
|
42947
43339
|
ticks: [],
|
|
42948
43340
|
guards: [],
|
|
@@ -42956,7 +43348,7 @@ function useDebugData() {
|
|
|
42956
43348
|
},
|
|
42957
43349
|
lastUpdate: Date.now()
|
|
42958
43350
|
}));
|
|
42959
|
-
|
|
43351
|
+
React98.useEffect(() => {
|
|
42960
43352
|
const updateData = () => {
|
|
42961
43353
|
setData({
|
|
42962
43354
|
traits: getAllTraits(),
|
|
@@ -43015,14 +43407,14 @@ function isDebugEnabled2() {
|
|
|
43015
43407
|
return localStorage.getItem(DEBUG_STORAGE_KEY) === "true";
|
|
43016
43408
|
}
|
|
43017
43409
|
function onDebugToggle(listener) {
|
|
43018
|
-
|
|
43019
|
-
return () =>
|
|
43410
|
+
listeners6.add(listener);
|
|
43411
|
+
return () => listeners6.delete(listener);
|
|
43020
43412
|
}
|
|
43021
|
-
var DEBUG_STORAGE_KEY,
|
|
43413
|
+
var DEBUG_STORAGE_KEY, listeners6;
|
|
43022
43414
|
var init_debugUtils = __esm({
|
|
43023
43415
|
"lib/debugUtils.ts"() {
|
|
43024
43416
|
DEBUG_STORAGE_KEY = "orbital-debug";
|
|
43025
|
-
|
|
43417
|
+
listeners6 = /* @__PURE__ */ new Set();
|
|
43026
43418
|
}
|
|
43027
43419
|
});
|
|
43028
43420
|
function layoutGraph(states, transitions, initialState, width, height) {
|
|
@@ -43065,12 +43457,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
43065
43457
|
return positions;
|
|
43066
43458
|
}
|
|
43067
43459
|
function WalkMinimap() {
|
|
43068
|
-
const [walkStep, setWalkStep] =
|
|
43069
|
-
const [traits2, setTraits] =
|
|
43070
|
-
const [coveredEdges, setCoveredEdges] =
|
|
43071
|
-
const [completedTraits, setCompletedTraits] =
|
|
43072
|
-
const prevTraitRef =
|
|
43073
|
-
|
|
43460
|
+
const [walkStep, setWalkStep] = React98.useState(null);
|
|
43461
|
+
const [traits2, setTraits] = React98.useState([]);
|
|
43462
|
+
const [coveredEdges, setCoveredEdges] = React98.useState([]);
|
|
43463
|
+
const [completedTraits, setCompletedTraits] = React98.useState(/* @__PURE__ */ new Set());
|
|
43464
|
+
const prevTraitRef = React98.useRef(null);
|
|
43465
|
+
React98.useEffect(() => {
|
|
43074
43466
|
const interval = setInterval(() => {
|
|
43075
43467
|
const w = window;
|
|
43076
43468
|
const step = w.__orbitalWalkStep;
|
|
@@ -43517,15 +43909,15 @@ var init_EntitiesTab = __esm({
|
|
|
43517
43909
|
}
|
|
43518
43910
|
});
|
|
43519
43911
|
function EventFlowTab({ events: events2 }) {
|
|
43520
|
-
const [filter, setFilter] =
|
|
43521
|
-
const containerRef =
|
|
43522
|
-
const [autoScroll, setAutoScroll] =
|
|
43523
|
-
|
|
43912
|
+
const [filter, setFilter] = React98.useState("all");
|
|
43913
|
+
const containerRef = React98.useRef(null);
|
|
43914
|
+
const [autoScroll, setAutoScroll] = React98.useState(true);
|
|
43915
|
+
React98.useEffect(() => {
|
|
43524
43916
|
if (autoScroll && containerRef.current) {
|
|
43525
43917
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
43526
43918
|
}
|
|
43527
43919
|
}, [events2.length, autoScroll]);
|
|
43528
|
-
const filteredEvents =
|
|
43920
|
+
const filteredEvents = React98.useMemo(() => {
|
|
43529
43921
|
if (filter === "all") return events2;
|
|
43530
43922
|
return events2.filter((e) => e.type === filter);
|
|
43531
43923
|
}, [events2, filter]);
|
|
@@ -43644,7 +44036,7 @@ var init_EventFlowTab = __esm({
|
|
|
43644
44036
|
}
|
|
43645
44037
|
});
|
|
43646
44038
|
function GuardsPanel({ guards }) {
|
|
43647
|
-
const [filter, setFilter] =
|
|
44039
|
+
const [filter, setFilter] = React98.useState("all");
|
|
43648
44040
|
if (guards.length === 0) {
|
|
43649
44041
|
return /* @__PURE__ */ jsx(
|
|
43650
44042
|
EmptyState,
|
|
@@ -43657,7 +44049,7 @@ function GuardsPanel({ guards }) {
|
|
|
43657
44049
|
}
|
|
43658
44050
|
const passedCount = guards.filter((g) => g.result).length;
|
|
43659
44051
|
const failedCount = guards.length - passedCount;
|
|
43660
|
-
const filteredGuards =
|
|
44052
|
+
const filteredGuards = React98.useMemo(() => {
|
|
43661
44053
|
if (filter === "all") return guards;
|
|
43662
44054
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
43663
44055
|
return guards.filter((g) => !g.result);
|
|
@@ -43818,10 +44210,10 @@ function EffectBadge({ effect }) {
|
|
|
43818
44210
|
] });
|
|
43819
44211
|
}
|
|
43820
44212
|
function TransitionTimeline({ transitions }) {
|
|
43821
|
-
const containerRef =
|
|
43822
|
-
const [autoScroll, setAutoScroll] =
|
|
43823
|
-
const [expandedId, setExpandedId] =
|
|
43824
|
-
|
|
44213
|
+
const containerRef = React98.useRef(null);
|
|
44214
|
+
const [autoScroll, setAutoScroll] = React98.useState(true);
|
|
44215
|
+
const [expandedId, setExpandedId] = React98.useState(null);
|
|
44216
|
+
React98.useEffect(() => {
|
|
43825
44217
|
if (autoScroll && containerRef.current) {
|
|
43826
44218
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
43827
44219
|
}
|
|
@@ -44107,9 +44499,9 @@ function getAllEvents(traits2) {
|
|
|
44107
44499
|
}
|
|
44108
44500
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
44109
44501
|
const eventBus = useEventBus();
|
|
44110
|
-
const [log20, setLog] =
|
|
44111
|
-
const prevStatesRef =
|
|
44112
|
-
|
|
44502
|
+
const [log20, setLog] = React98.useState([]);
|
|
44503
|
+
const prevStatesRef = React98.useRef(/* @__PURE__ */ new Map());
|
|
44504
|
+
React98.useEffect(() => {
|
|
44113
44505
|
for (const trait of traits2) {
|
|
44114
44506
|
const prev = prevStatesRef.current.get(trait.id);
|
|
44115
44507
|
if (prev && prev !== trait.currentState) {
|
|
@@ -44279,10 +44671,10 @@ function VerifyModePanel({
|
|
|
44279
44671
|
serverCount,
|
|
44280
44672
|
localCount
|
|
44281
44673
|
}) {
|
|
44282
|
-
const [expanded, setExpanded] =
|
|
44283
|
-
const scrollRef =
|
|
44284
|
-
const prevCountRef =
|
|
44285
|
-
|
|
44674
|
+
const [expanded, setExpanded] = React98.useState(true);
|
|
44675
|
+
const scrollRef = React98.useRef(null);
|
|
44676
|
+
const prevCountRef = React98.useRef(0);
|
|
44677
|
+
React98.useEffect(() => {
|
|
44286
44678
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
44287
44679
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
44288
44680
|
}
|
|
@@ -44348,10 +44740,10 @@ function RuntimeDebugger({
|
|
|
44348
44740
|
defaultTab,
|
|
44349
44741
|
schema
|
|
44350
44742
|
}) {
|
|
44351
|
-
const [isCollapsed, setIsCollapsed] =
|
|
44352
|
-
const [isVisible, setIsVisible] =
|
|
44743
|
+
const [isCollapsed, setIsCollapsed] = React98.useState(mode === "verify" ? true : defaultCollapsed);
|
|
44744
|
+
const [isVisible, setIsVisible] = React98.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
44353
44745
|
const debugData = useDebugData();
|
|
44354
|
-
|
|
44746
|
+
React98.useEffect(() => {
|
|
44355
44747
|
if (mode === "inline") return;
|
|
44356
44748
|
return onDebugToggle((enabled) => {
|
|
44357
44749
|
setIsVisible(enabled);
|
|
@@ -44360,7 +44752,7 @@ function RuntimeDebugger({
|
|
|
44360
44752
|
}
|
|
44361
44753
|
});
|
|
44362
44754
|
}, [mode]);
|
|
44363
|
-
|
|
44755
|
+
React98.useEffect(() => {
|
|
44364
44756
|
if (mode === "inline") return;
|
|
44365
44757
|
const handleKeyDown = (e) => {
|
|
44366
44758
|
if (e.key === "`" && isVisible) {
|
|
@@ -44909,7 +45301,7 @@ function SequenceBar({
|
|
|
44909
45301
|
onSlotRemove(index);
|
|
44910
45302
|
}, [onSlotRemove, playing]);
|
|
44911
45303
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
44912
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
45304
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
44913
45305
|
i > 0 && /* @__PURE__ */ jsx(
|
|
44914
45306
|
Typography,
|
|
44915
45307
|
{
|
|
@@ -46311,7 +46703,7 @@ var init_StatCard = __esm({
|
|
|
46311
46703
|
const labelToUse = propLabel ?? propTitle;
|
|
46312
46704
|
const eventBus = useEventBus();
|
|
46313
46705
|
const { t } = useTranslate();
|
|
46314
|
-
const handleActionClick =
|
|
46706
|
+
const handleActionClick = React98__default.useCallback(() => {
|
|
46315
46707
|
if (action?.event) {
|
|
46316
46708
|
eventBus.emit(`UI:${action.event}`, {});
|
|
46317
46709
|
}
|
|
@@ -46322,7 +46714,7 @@ var init_StatCard = __esm({
|
|
|
46322
46714
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
46323
46715
|
const isLoading = externalLoading ?? false;
|
|
46324
46716
|
const error = externalError;
|
|
46325
|
-
const computeMetricValue =
|
|
46717
|
+
const computeMetricValue = React98__default.useCallback(
|
|
46326
46718
|
(metric, items) => {
|
|
46327
46719
|
if (metric.value !== void 0) {
|
|
46328
46720
|
return metric.value;
|
|
@@ -46361,7 +46753,7 @@ var init_StatCard = __esm({
|
|
|
46361
46753
|
},
|
|
46362
46754
|
[]
|
|
46363
46755
|
);
|
|
46364
|
-
const schemaStats =
|
|
46756
|
+
const schemaStats = React98__default.useMemo(() => {
|
|
46365
46757
|
if (!metrics || metrics.length === 0) return null;
|
|
46366
46758
|
return metrics.map((metric) => ({
|
|
46367
46759
|
label: metric.label,
|
|
@@ -46369,7 +46761,7 @@ var init_StatCard = __esm({
|
|
|
46369
46761
|
format: metric.format
|
|
46370
46762
|
}));
|
|
46371
46763
|
}, [metrics, data, computeMetricValue]);
|
|
46372
|
-
const calculatedTrend =
|
|
46764
|
+
const calculatedTrend = React98__default.useMemo(() => {
|
|
46373
46765
|
if (manualTrend !== void 0) return manualTrend;
|
|
46374
46766
|
if (previousValue === void 0 || currentValue === void 0)
|
|
46375
46767
|
return void 0;
|
|
@@ -47480,7 +47872,7 @@ var init_Timeline = __esm({
|
|
|
47480
47872
|
}) => {
|
|
47481
47873
|
const { t } = useTranslate();
|
|
47482
47874
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
47483
|
-
const items =
|
|
47875
|
+
const items = React98__default.useMemo(() => {
|
|
47484
47876
|
if (propItems) return propItems;
|
|
47485
47877
|
if (entityData.length === 0) return [];
|
|
47486
47878
|
return entityData.map((record, idx) => {
|
|
@@ -47587,7 +47979,7 @@ var init_Timeline = __esm({
|
|
|
47587
47979
|
}
|
|
47588
47980
|
});
|
|
47589
47981
|
function extractToastProps(children) {
|
|
47590
|
-
if (!
|
|
47982
|
+
if (!React98__default.isValidElement(children)) {
|
|
47591
47983
|
if (typeof children === "string") {
|
|
47592
47984
|
return { message: children };
|
|
47593
47985
|
}
|
|
@@ -47625,7 +48017,7 @@ var init_ToastSlot = __esm({
|
|
|
47625
48017
|
eventBus.emit("UI:CLOSE");
|
|
47626
48018
|
};
|
|
47627
48019
|
if (!isVisible) return null;
|
|
47628
|
-
const isCustomContent =
|
|
48020
|
+
const isCustomContent = React98__default.isValidElement(children) && !message;
|
|
47629
48021
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
47630
48022
|
Toast,
|
|
47631
48023
|
{
|
|
@@ -47894,7 +48286,7 @@ var init_WizardContainer = __esm({
|
|
|
47894
48286
|
const isCompleted = index < currentStep;
|
|
47895
48287
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
47896
48288
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
47897
|
-
return /* @__PURE__ */ jsxs(
|
|
48289
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
47898
48290
|
/* @__PURE__ */ jsx(
|
|
47899
48291
|
Button,
|
|
47900
48292
|
{
|
|
@@ -50087,7 +50479,7 @@ function UnitRenderer({
|
|
|
50087
50479
|
onAnimationStateChange,
|
|
50088
50480
|
animationSpeed = 1
|
|
50089
50481
|
}) {
|
|
50090
|
-
const handleUnitClick =
|
|
50482
|
+
const handleUnitClick = React98__default.useCallback(
|
|
50091
50483
|
(unit) => {
|
|
50092
50484
|
onUnitClick?.(unit);
|
|
50093
50485
|
},
|
|
@@ -53300,7 +53692,7 @@ var init_Avl3DViewer = __esm({
|
|
|
53300
53692
|
const handleTraitClick = useCallback((name) => {
|
|
53301
53693
|
dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
|
|
53302
53694
|
}, []);
|
|
53303
|
-
const [highlightedTrait, setHighlightedTrait] =
|
|
53695
|
+
const [highlightedTrait, setHighlightedTrait] = React98__default.useState(null);
|
|
53304
53696
|
const handleTransitionClick = useCallback((index) => {
|
|
53305
53697
|
dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
|
|
53306
53698
|
}, []);
|
|
@@ -53387,7 +53779,7 @@ var init_Avl3DViewer = __esm({
|
|
|
53387
53779
|
gap: "xs",
|
|
53388
53780
|
align: "center",
|
|
53389
53781
|
className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
|
|
53390
|
-
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
53782
|
+
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
53391
53783
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
|
|
53392
53784
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
53393
53785
|
Box,
|
|
@@ -53765,12 +54157,12 @@ var init_three = __esm({
|
|
|
53765
54157
|
}
|
|
53766
54158
|
});
|
|
53767
54159
|
function lazyThree(name, loader) {
|
|
53768
|
-
const Lazy =
|
|
54160
|
+
const Lazy = React98__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
53769
54161
|
function ThreeWrapper(props) {
|
|
53770
|
-
return
|
|
53771
|
-
|
|
54162
|
+
return React98__default.createElement(
|
|
54163
|
+
React98__default.Suspense,
|
|
53772
54164
|
{ fallback: null },
|
|
53773
|
-
|
|
54165
|
+
React98__default.createElement(Lazy, props)
|
|
53774
54166
|
);
|
|
53775
54167
|
}
|
|
53776
54168
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -54386,7 +54778,7 @@ function SuspenseConfigProvider({
|
|
|
54386
54778
|
config,
|
|
54387
54779
|
children
|
|
54388
54780
|
}) {
|
|
54389
|
-
return
|
|
54781
|
+
return React98__default.createElement(
|
|
54390
54782
|
SuspenseConfigContext.Provider,
|
|
54391
54783
|
{ value: config },
|
|
54392
54784
|
children
|
|
@@ -54869,7 +55261,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
54869
55261
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
54870
55262
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
54871
55263
|
}
|
|
54872
|
-
return /* @__PURE__ */ jsx(
|
|
55264
|
+
return /* @__PURE__ */ jsx(React98__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
54873
55265
|
}
|
|
54874
55266
|
if (!child || typeof child !== "object") return null;
|
|
54875
55267
|
const childId = `${parentId}-${index}`;
|
|
@@ -54906,14 +55298,14 @@ function isPatternConfig(value) {
|
|
|
54906
55298
|
if (value === null || value === void 0) return false;
|
|
54907
55299
|
if (typeof value !== "object") return false;
|
|
54908
55300
|
if (Array.isArray(value)) return false;
|
|
54909
|
-
if (
|
|
55301
|
+
if (React98__default.isValidElement(value)) return false;
|
|
54910
55302
|
if (value instanceof Date) return false;
|
|
54911
55303
|
if (typeof value === "function") return false;
|
|
54912
55304
|
const record = value;
|
|
54913
55305
|
return "type" in record && typeof record.type === "string";
|
|
54914
55306
|
}
|
|
54915
55307
|
function isPlainConfigObject(value) {
|
|
54916
|
-
if (
|
|
55308
|
+
if (React98__default.isValidElement(value)) return false;
|
|
54917
55309
|
if (value instanceof Date) return false;
|
|
54918
55310
|
const proto = Object.getPrototypeOf(value);
|
|
54919
55311
|
return proto === Object.prototype || proto === null;
|
|
@@ -55369,7 +55761,7 @@ var AvlTransition = ({
|
|
|
55369
55761
|
opacity = 1,
|
|
55370
55762
|
className
|
|
55371
55763
|
}) => {
|
|
55372
|
-
const ids =
|
|
55764
|
+
const ids = React98__default.useMemo(() => {
|
|
55373
55765
|
avlTransitionId += 1;
|
|
55374
55766
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
55375
55767
|
}, []);
|
|
@@ -55930,7 +56322,7 @@ var AvlStateMachine = ({
|
|
|
55930
56322
|
color = "var(--color-primary)",
|
|
55931
56323
|
animated = false
|
|
55932
56324
|
}) => {
|
|
55933
|
-
const ids =
|
|
56325
|
+
const ids = React98__default.useMemo(() => {
|
|
55934
56326
|
avlSmId += 1;
|
|
55935
56327
|
const base = `avl-sm-${avlSmId}`;
|
|
55936
56328
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -56129,7 +56521,7 @@ var AvlOrbitalUnit = ({
|
|
|
56129
56521
|
color = "var(--color-primary)",
|
|
56130
56522
|
animated = false
|
|
56131
56523
|
}) => {
|
|
56132
|
-
const ids =
|
|
56524
|
+
const ids = React98__default.useMemo(() => {
|
|
56133
56525
|
avlOuId += 1;
|
|
56134
56526
|
const base = `avl-ou-${avlOuId}`;
|
|
56135
56527
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -56225,7 +56617,7 @@ var AvlClosedCircuit = ({
|
|
|
56225
56617
|
color = "var(--color-primary)",
|
|
56226
56618
|
animated = false
|
|
56227
56619
|
}) => {
|
|
56228
|
-
const ids =
|
|
56620
|
+
const ids = React98__default.useMemo(() => {
|
|
56229
56621
|
avlCcId += 1;
|
|
56230
56622
|
const base = `avl-cc-${avlCcId}`;
|
|
56231
56623
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -56380,7 +56772,7 @@ var AvlEmitListen = ({
|
|
|
56380
56772
|
color = "var(--color-primary)",
|
|
56381
56773
|
animated = false
|
|
56382
56774
|
}) => {
|
|
56383
|
-
const ids =
|
|
56775
|
+
const ids = React98__default.useMemo(() => {
|
|
56384
56776
|
avlElId += 1;
|
|
56385
56777
|
const base = `avl-el-${avlElId}`;
|
|
56386
56778
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -56653,7 +57045,7 @@ function renderNode(node, color, glowId) {
|
|
|
56653
57045
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
56654
57046
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
56655
57047
|
const nc = nodeColor(node.type, color);
|
|
56656
|
-
return /* @__PURE__ */ jsxs(
|
|
57048
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
56657
57049
|
node.children.map((child, i) => {
|
|
56658
57050
|
const childR = Math.max(
|
|
56659
57051
|
child.type === "operator" ? 20 : 16,
|
|
@@ -56710,7 +57102,7 @@ var AvlExprTree = ({
|
|
|
56710
57102
|
className,
|
|
56711
57103
|
color = "var(--color-primary)"
|
|
56712
57104
|
}) => {
|
|
56713
|
-
const ids =
|
|
57105
|
+
const ids = React98__default.useMemo(() => {
|
|
56714
57106
|
avlEtId += 1;
|
|
56715
57107
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
56716
57108
|
}, []);
|
|
@@ -57273,7 +57665,7 @@ var SystemNode = ({ data }) => {
|
|
|
57273
57665
|
stateChain.length > 0 && /* @__PURE__ */ jsx("svg", { width: stateChain.length * 14 + 2, height: 10, viewBox: `0 0 ${stateChain.length * 14 + 2} 10`, children: stateChain.map((s, i) => {
|
|
57274
57666
|
const tc = transitionCounts[s.name] ?? 0;
|
|
57275
57667
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
57276
|
-
return /* @__PURE__ */ jsxs(
|
|
57668
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
57277
57669
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
57278
57670
|
i < stateChain.length - 1 && /* @__PURE__ */ jsx("line", { x1: i * 14 + 12, y1: 5, x2: i * 14 + 15, y2: 5, stroke: "var(--color-border)", strokeWidth: 0.5 })
|
|
57279
57671
|
] }, s.name);
|
|
@@ -57782,20 +58174,20 @@ function isBackwardTransition(from, to, states) {
|
|
|
57782
58174
|
function extractTraitWires(orbitals, scope) {
|
|
57783
58175
|
const wires = [];
|
|
57784
58176
|
const emitters = [];
|
|
57785
|
-
const
|
|
58177
|
+
const listeners7 = [];
|
|
57786
58178
|
for (const orb of orbitals) {
|
|
57787
58179
|
for (const trait of getTraits2(orb)) {
|
|
57788
58180
|
for (const e of getEmits2(trait)) {
|
|
57789
58181
|
emitters.push({ orbital: orb.name, trait: trait.name, event: e });
|
|
57790
58182
|
}
|
|
57791
58183
|
for (const l of getListens2(trait)) {
|
|
57792
|
-
|
|
58184
|
+
listeners7.push({ orbital: orb.name, trait: trait.name, event: l });
|
|
57793
58185
|
}
|
|
57794
58186
|
}
|
|
57795
58187
|
}
|
|
57796
58188
|
const seen = /* @__PURE__ */ new Set();
|
|
57797
58189
|
for (const em of emitters) {
|
|
57798
|
-
for (const li of
|
|
58190
|
+
for (const li of listeners7) {
|
|
57799
58191
|
if (em.event !== li.event) continue;
|
|
57800
58192
|
if (scope === "cross-orbital" && em.orbital === li.orbital) continue;
|
|
57801
58193
|
if (scope === "intra-orbital" && em.orbital !== li.orbital) continue;
|
|
@@ -58692,7 +59084,7 @@ function resolveLambdaBindings(body, argName, arg) {
|
|
|
58692
59084
|
if (Array.isArray(body)) {
|
|
58693
59085
|
return body.map((b) => resolveLambdaBindings(b, argName, arg));
|
|
58694
59086
|
}
|
|
58695
|
-
if (body !== null && typeof body === "object" && !
|
|
59087
|
+
if (body !== null && typeof body === "object" && !React98__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
58696
59088
|
const out = {};
|
|
58697
59089
|
for (const [k, v] of Object.entries(body)) {
|
|
58698
59090
|
out[k] = resolveLambdaBindings(v, argName, arg);
|
|
@@ -58711,7 +59103,7 @@ function getSlotContentRenderer2() {
|
|
|
58711
59103
|
function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
58712
59104
|
return (item, index) => {
|
|
58713
59105
|
const resolvedBody = resolveLambdaBindings(lambdaBody, argName, item);
|
|
58714
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
59106
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React98__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
58715
59107
|
return null;
|
|
58716
59108
|
}
|
|
58717
59109
|
const record = resolvedBody;
|
|
@@ -58729,7 +59121,7 @@ function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
|
58729
59121
|
props: childProps,
|
|
58730
59122
|
priority: 0
|
|
58731
59123
|
};
|
|
58732
|
-
return
|
|
59124
|
+
return React98__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
58733
59125
|
};
|
|
58734
59126
|
}
|
|
58735
59127
|
function convertNode(node, callerKey) {
|
|
@@ -58748,7 +59140,7 @@ function convertNode(node, callerKey) {
|
|
|
58748
59140
|
});
|
|
58749
59141
|
return anyChanged ? mapped : node;
|
|
58750
59142
|
}
|
|
58751
|
-
if (typeof node === "object" && !
|
|
59143
|
+
if (typeof node === "object" && !React98__default.isValidElement(node) && !(node instanceof Date)) {
|
|
58752
59144
|
return convertObjectProps(node);
|
|
58753
59145
|
}
|
|
58754
59146
|
return node;
|
|
@@ -60608,7 +61000,7 @@ function useCanvasDraggable({
|
|
|
60608
61000
|
payload,
|
|
60609
61001
|
disabled
|
|
60610
61002
|
}) {
|
|
60611
|
-
const { setNodeRef, attributes, listeners:
|
|
61003
|
+
const { setNodeRef, attributes, listeners: listeners7, isDragging, transform } = useDraggable({
|
|
60612
61004
|
id,
|
|
60613
61005
|
data: { payload },
|
|
60614
61006
|
disabled
|
|
@@ -60619,7 +61011,7 @@ function useCanvasDraggable({
|
|
|
60619
61011
|
opacity: isDragging ? 0.5 : 1,
|
|
60620
61012
|
touchAction: "none"
|
|
60621
61013
|
};
|
|
60622
|
-
return { setNodeRef, attributes, listeners:
|
|
61014
|
+
return { setNodeRef, attributes, listeners: listeners7, isDragging, style };
|
|
60623
61015
|
}
|
|
60624
61016
|
var DEFAULT_ACCEPTS = ["pattern", "behavior"];
|
|
60625
61017
|
function useCanvasDroppable({
|
|
@@ -60675,8 +61067,8 @@ function CanvasDndProvider({
|
|
|
60675
61067
|
}) {
|
|
60676
61068
|
const eventBus = useEventBus();
|
|
60677
61069
|
const sensors = useAlmadarDndSensors(false);
|
|
60678
|
-
const [activePayload, setActivePayload] =
|
|
60679
|
-
const handleDragStart =
|
|
61070
|
+
const [activePayload, setActivePayload] = React98__default.useState(null);
|
|
61071
|
+
const handleDragStart = React98__default.useCallback((e) => {
|
|
60680
61072
|
const data = e.active.data.current;
|
|
60681
61073
|
const payload = data?.payload;
|
|
60682
61074
|
if (payload) {
|
|
@@ -60687,7 +61079,7 @@ function CanvasDndProvider({
|
|
|
60687
61079
|
log18.warn("dragStart:missing-payload", { id: e.active.id });
|
|
60688
61080
|
}
|
|
60689
61081
|
}, [eventBus]);
|
|
60690
|
-
const handleDragEnd =
|
|
61082
|
+
const handleDragEnd = React98__default.useCallback((e) => {
|
|
60691
61083
|
setActivePayload(null);
|
|
60692
61084
|
const activeData = e.active.data.current;
|
|
60693
61085
|
const payload = activeData?.payload;
|
|
@@ -60716,7 +61108,7 @@ function CanvasDndProvider({
|
|
|
60716
61108
|
const suppressed = onDrop ? onDrop(drop) === true : false;
|
|
60717
61109
|
if (!suppressed) defaultEmit(eventBus, drop);
|
|
60718
61110
|
}, [eventBus, onDrop]);
|
|
60719
|
-
const handleDragCancel =
|
|
61111
|
+
const handleDragCancel = React98__default.useCallback(() => {
|
|
60720
61112
|
setActivePayload(null);
|
|
60721
61113
|
log18.info("dragCancel");
|
|
60722
61114
|
}, []);
|
|
@@ -61360,7 +61752,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
61360
61752
|
}
|
|
61361
61753
|
);
|
|
61362
61754
|
};
|
|
61363
|
-
var OrbPreviewNode =
|
|
61755
|
+
var OrbPreviewNode = React98__default.memo(OrbPreviewNodeInner);
|
|
61364
61756
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
61365
61757
|
orbPreviewLog.debug("export-resolved", () => ({
|
|
61366
61758
|
type: typeof OrbPreviewNode,
|
|
@@ -61465,7 +61857,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
61465
61857
|
) })
|
|
61466
61858
|
] });
|
|
61467
61859
|
};
|
|
61468
|
-
var EventFlowEdge =
|
|
61860
|
+
var EventFlowEdge = React98__default.memo(EventFlowEdgeInner);
|
|
61469
61861
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
61470
61862
|
|
|
61471
61863
|
// components/molecules/avl/BehaviorComposeNode.tsx
|
|
@@ -61612,7 +62004,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
61612
62004
|
}
|
|
61613
62005
|
);
|
|
61614
62006
|
};
|
|
61615
|
-
var BehaviorComposeNode =
|
|
62007
|
+
var BehaviorComposeNode = React98__default.memo(BehaviorComposeNodeInner);
|
|
61616
62008
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
61617
62009
|
|
|
61618
62010
|
// components/molecules/avl/avl-behavior-compose-converter.ts
|
|
@@ -62631,7 +63023,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
62631
63023
|
}
|
|
62632
63024
|
);
|
|
62633
63025
|
};
|
|
62634
|
-
var TraitCardNode =
|
|
63026
|
+
var TraitCardNode = React98__default.memo(TraitCardNodeInner);
|
|
62635
63027
|
TraitCardNode.displayName = "TraitCardNode";
|
|
62636
63028
|
|
|
62637
63029
|
// components/organisms/avl/FlowCanvas.tsx
|
|
@@ -62703,7 +63095,7 @@ function FlowCanvasInner({
|
|
|
62703
63095
|
initialOrbital
|
|
62704
63096
|
);
|
|
62705
63097
|
const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
|
|
62706
|
-
const screenSizeUserOverrideRef =
|
|
63098
|
+
const screenSizeUserOverrideRef = React98__default.useRef(false);
|
|
62707
63099
|
const [screenSize, setScreenSize] = useState(
|
|
62708
63100
|
() => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
|
|
62709
63101
|
);
|
|
@@ -63087,7 +63479,7 @@ var ZoomBreadcrumb = ({
|
|
|
63087
63479
|
if (eventName && band === "detail") {
|
|
63088
63480
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
63089
63481
|
}
|
|
63090
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(
|
|
63482
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
63091
63483
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
63092
63484
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
63093
63485
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -63295,7 +63687,7 @@ var EventWireOverlay = ({
|
|
|
63295
63687
|
containerW,
|
|
63296
63688
|
containerH
|
|
63297
63689
|
}) => {
|
|
63298
|
-
const ids =
|
|
63690
|
+
const ids = React98__default.useMemo(() => {
|
|
63299
63691
|
avlOczWireId += 1;
|
|
63300
63692
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
63301
63693
|
}, []);
|
|
@@ -63661,7 +64053,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
63661
64053
|
borderRadius: 6,
|
|
63662
64054
|
border: `1px solid ${color}`
|
|
63663
64055
|
},
|
|
63664
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
64056
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
63665
64057
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
63666
64058
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
63667
64059
|
Box,
|