@almadar/ui 4.57.5 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +2499 -1903
- package/dist/avl/index.js +1111 -518
- package/dist/components/atoms/Icon.d.ts +7 -4
- package/dist/components/index.cjs +2064 -1636
- package/dist/components/index.js +905 -480
- package/dist/components/molecules/Breadcrumb.d.ts +4 -4
- package/dist/components/molecules/EmptyState.d.ts +1 -1
- package/dist/components/templates/DashboardLayout.d.ts +1 -1
- package/dist/context/index.cjs +199 -0
- package/dist/context/index.js +199 -0
- package/dist/context/themeTokens.d.ts +1 -1
- package/dist/docs/index.cjs +456 -98
- package/dist/docs/index.d.cts +7 -4
- package/dist/docs/index.js +429 -74
- package/dist/lib/iconFamily.d.ts +41 -0
- package/dist/marketing/index.cjs +480 -124
- package/dist/marketing/index.d.cts +7 -4
- package/dist/marketing/index.js +446 -93
- package/dist/providers/index.cjs +1933 -1505
- package/dist/providers/index.js +909 -484
- package/dist/runtime/index.cjs +2130 -1534
- package/dist/runtime/index.js +1071 -478
- package/package.json +5 -2
- package/tailwind-preset.cjs +118 -3
- package/themes/_contract.md +198 -0
- package/themes/almadar-website.css +212 -0
- package/themes/almadar.css +210 -0
- package/themes/arctic.css +210 -0
- package/themes/atelier.css +427 -0
- package/themes/copper.css +210 -0
- package/themes/ember.css +210 -0
- package/themes/forest.css +210 -0
- package/themes/gazette.css +411 -0
- package/themes/index.css +12 -0
- package/themes/kiosk.css +412 -0
- package/themes/lavender.css +210 -0
- package/themes/midnight.css +210 -0
- package/themes/minimalist.css +210 -0
- package/themes/neon.css +210 -0
- package/themes/ocean.css +210 -0
- package/themes/prism.css +406 -0
- package/themes/rose.css +210 -0
- package/themes/sand.css +210 -0
- package/themes/slate.css +210 -0
- package/themes/sunset.css +210 -0
- package/themes/terminal.css +422 -0
- package/themes/trait-wars.css +210 -0
- package/themes/wireframe.css +216 -0
package/dist/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
|
{
|
|
@@ -5125,6 +5128,37 @@ var init_ThemeContext = __esm({
|
|
|
5125
5128
|
displayName: "Copper",
|
|
5126
5129
|
hasLightMode: true,
|
|
5127
5130
|
hasDarkMode: true
|
|
5131
|
+
},
|
|
5132
|
+
// Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
|
|
5133
|
+
{
|
|
5134
|
+
name: "prism",
|
|
5135
|
+
displayName: "Prism",
|
|
5136
|
+
hasLightMode: true,
|
|
5137
|
+
hasDarkMode: true
|
|
5138
|
+
},
|
|
5139
|
+
{
|
|
5140
|
+
name: "gazette",
|
|
5141
|
+
displayName: "Gazette",
|
|
5142
|
+
hasLightMode: true,
|
|
5143
|
+
hasDarkMode: true
|
|
5144
|
+
},
|
|
5145
|
+
{
|
|
5146
|
+
name: "terminal",
|
|
5147
|
+
displayName: "Terminal",
|
|
5148
|
+
hasLightMode: true,
|
|
5149
|
+
hasDarkMode: true
|
|
5150
|
+
},
|
|
5151
|
+
{
|
|
5152
|
+
name: "atelier",
|
|
5153
|
+
displayName: "Atelier",
|
|
5154
|
+
hasLightMode: true,
|
|
5155
|
+
hasDarkMode: true
|
|
5156
|
+
},
|
|
5157
|
+
{
|
|
5158
|
+
name: "kiosk",
|
|
5159
|
+
displayName: "Kiosk",
|
|
5160
|
+
hasLightMode: true,
|
|
5161
|
+
hasDarkMode: true
|
|
5128
5162
|
}
|
|
5129
5163
|
];
|
|
5130
5164
|
ThemeContext = createContext(void 0);
|
|
@@ -5666,12 +5700,378 @@ var init_UISlotContext = __esm({
|
|
|
5666
5700
|
UISlotContext = createContext(null);
|
|
5667
5701
|
}
|
|
5668
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
|
+
}
|
|
5669
5747
|
function kebabToPascal(name) {
|
|
5670
5748
|
return name.split("-").map((part) => {
|
|
5671
5749
|
if (/^\d+$/.test(part)) return part;
|
|
5672
5750
|
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
5673
5751
|
}).join("");
|
|
5674
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
|
+
}
|
|
5675
6075
|
function resolveIcon(name) {
|
|
5676
6076
|
const cached = resolvedCache.get(name);
|
|
5677
6077
|
if (cached) return cached;
|
|
@@ -5681,28 +6081,30 @@ function resolveIcon(name) {
|
|
|
5681
6081
|
}
|
|
5682
6082
|
function doResolve(name) {
|
|
5683
6083
|
if (iconAliases[name]) return iconAliases[name];
|
|
5684
|
-
const pascalName =
|
|
5685
|
-
const directLookup =
|
|
6084
|
+
const pascalName = kebabToPascal2(name);
|
|
6085
|
+
const directLookup = LucideIcons2[pascalName];
|
|
5686
6086
|
if (directLookup && typeof directLookup === "object") return directLookup;
|
|
5687
|
-
const asIs =
|
|
6087
|
+
const asIs = LucideIcons2[name];
|
|
5688
6088
|
if (asIs && typeof asIs === "object") return asIs;
|
|
5689
|
-
return
|
|
6089
|
+
return LucideIcons2.HelpCircle;
|
|
5690
6090
|
}
|
|
5691
6091
|
var iconAliases, resolvedCache, sizeClasses, animationClasses, Icon;
|
|
5692
6092
|
var init_Icon = __esm({
|
|
5693
6093
|
"components/atoms/Icon.tsx"() {
|
|
6094
|
+
"use client";
|
|
5694
6095
|
init_cn();
|
|
6096
|
+
init_iconFamily();
|
|
5695
6097
|
iconAliases = {
|
|
5696
|
-
"close":
|
|
5697
|
-
"trash":
|
|
5698
|
-
"loader":
|
|
5699
|
-
"stop":
|
|
5700
|
-
"volume":
|
|
5701
|
-
"volume-off":
|
|
5702
|
-
"refresh":
|
|
5703
|
-
"share":
|
|
5704
|
-
"sort-asc":
|
|
5705
|
-
"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
|
|
5706
6108
|
};
|
|
5707
6109
|
resolvedCache = /* @__PURE__ */ new Map();
|
|
5708
6110
|
sizeClasses = {
|
|
@@ -5727,22 +6129,50 @@ var init_Icon = __esm({
|
|
|
5727
6129
|
strokeWidth,
|
|
5728
6130
|
style
|
|
5729
6131
|
}) => {
|
|
5730
|
-
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]);
|
|
5731
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;
|
|
5732
6170
|
return /* @__PURE__ */ jsx(
|
|
5733
|
-
|
|
6171
|
+
Fallback,
|
|
5734
6172
|
{
|
|
5735
|
-
className:
|
|
5736
|
-
sizeClasses[size],
|
|
5737
|
-
animationClasses[animation],
|
|
5738
|
-
color ? color : "text-current",
|
|
5739
|
-
className
|
|
5740
|
-
),
|
|
6173
|
+
className: composedClassName,
|
|
5741
6174
|
strokeWidth: effectiveStrokeWidth,
|
|
5742
|
-
style:
|
|
5743
|
-
...effectiveStrokeWidth === void 0 ? { strokeWidth: "var(--icon-stroke-width, 2)" } : {},
|
|
5744
|
-
...style
|
|
5745
|
-
}
|
|
6175
|
+
style: inlineStyle
|
|
5746
6176
|
}
|
|
5747
6177
|
);
|
|
5748
6178
|
};
|
|
@@ -5752,14 +6182,13 @@ var init_Icon = __esm({
|
|
|
5752
6182
|
function resolveIconProp(value, sizeClass) {
|
|
5753
6183
|
if (!value) return null;
|
|
5754
6184
|
if (typeof value === "string") {
|
|
5755
|
-
|
|
5756
|
-
return Resolved ? /* @__PURE__ */ jsx(Resolved, { className: sizeClass }) : null;
|
|
6185
|
+
return /* @__PURE__ */ jsx(Icon, { name: value, className: sizeClass });
|
|
5757
6186
|
}
|
|
5758
6187
|
if (typeof value === "function") {
|
|
5759
6188
|
const IconComp = value;
|
|
5760
6189
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5761
6190
|
}
|
|
5762
|
-
if (
|
|
6191
|
+
if (React98__default.isValidElement(value)) {
|
|
5763
6192
|
return value;
|
|
5764
6193
|
}
|
|
5765
6194
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5832,10 +6261,10 @@ var init_Button = __esm({
|
|
|
5832
6261
|
};
|
|
5833
6262
|
iconSizeStyles = {
|
|
5834
6263
|
sm: "h-3.5 w-3.5",
|
|
5835
|
-
md: "h-
|
|
6264
|
+
md: "h-icon-default w-icon-default",
|
|
5836
6265
|
lg: "h-5 w-5"
|
|
5837
6266
|
};
|
|
5838
|
-
Button =
|
|
6267
|
+
Button = React98__default.forwardRef(
|
|
5839
6268
|
({
|
|
5840
6269
|
className,
|
|
5841
6270
|
variant = "primary",
|
|
@@ -5885,7 +6314,7 @@ var init_Button = __esm({
|
|
|
5885
6314
|
...props,
|
|
5886
6315
|
"data-testid": props["data-testid"] ?? (action ? `action-${action}` : void 0),
|
|
5887
6316
|
children: [
|
|
5888
|
-
isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "h-
|
|
6317
|
+
isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "h-icon-default w-icon-default animate-spin" }) : resolvedLeftIcon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: resolvedLeftIcon }),
|
|
5889
6318
|
children || label,
|
|
5890
6319
|
resolvedRightIcon && !isLoading && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: resolvedRightIcon })
|
|
5891
6320
|
]
|
|
@@ -5900,7 +6329,7 @@ var Dialog;
|
|
|
5900
6329
|
var init_Dialog = __esm({
|
|
5901
6330
|
"components/atoms/Dialog.tsx"() {
|
|
5902
6331
|
init_cn();
|
|
5903
|
-
Dialog =
|
|
6332
|
+
Dialog = React98__default.forwardRef(
|
|
5904
6333
|
({
|
|
5905
6334
|
role = "dialog",
|
|
5906
6335
|
"aria-modal": ariaModal = true,
|
|
@@ -6074,7 +6503,7 @@ var init_Modal = __esm({
|
|
|
6074
6503
|
// Reset browser-default dialog chrome — we own styling.
|
|
6075
6504
|
"m-0 p-0 border-0 bg-transparent",
|
|
6076
6505
|
// Pre-existing dialog frame
|
|
6077
|
-
"pointer-events-auto w-full flex flex-col bg-surface border shadow-
|
|
6506
|
+
"pointer-events-auto w-full flex flex-col bg-surface border shadow-elevation-dialog rounded-container",
|
|
6078
6507
|
// Desktop sizing + viewport-aware floor.
|
|
6079
6508
|
sizeClasses2[size],
|
|
6080
6509
|
minWidthClasses[size],
|
|
@@ -6134,7 +6563,7 @@ var init_Modal = __esm({
|
|
|
6134
6563
|
{
|
|
6135
6564
|
variant: "ghost",
|
|
6136
6565
|
size: "sm",
|
|
6137
|
-
icon:
|
|
6566
|
+
icon: "x",
|
|
6138
6567
|
onClick: handleClose,
|
|
6139
6568
|
"data-event": "CLOSE",
|
|
6140
6569
|
"aria-label": "Close modal"
|
|
@@ -6291,7 +6720,7 @@ var init_Drawer = __esm({
|
|
|
6291
6720
|
{
|
|
6292
6721
|
variant: "ghost",
|
|
6293
6722
|
size: "sm",
|
|
6294
|
-
icon:
|
|
6723
|
+
icon: "x",
|
|
6295
6724
|
onClick: handleClose,
|
|
6296
6725
|
"aria-label": "Close drawer",
|
|
6297
6726
|
className: cn(!title && "ml-auto")
|
|
@@ -6385,13 +6814,10 @@ var init_Badge = __esm({
|
|
|
6385
6814
|
md: "px-2.5 py-1 text-sm",
|
|
6386
6815
|
lg: "px-3 py-1.5 text-base"
|
|
6387
6816
|
};
|
|
6388
|
-
Badge =
|
|
6817
|
+
Badge = React98__default.forwardRef(
|
|
6389
6818
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
6390
6819
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
6391
|
-
const resolvedIcon = typeof icon === "string" ? (
|
|
6392
|
-
const I = resolveIcon(icon);
|
|
6393
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes3[size] }) : null;
|
|
6394
|
-
})() : icon;
|
|
6820
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes3[size] }) : icon;
|
|
6395
6821
|
return /* @__PURE__ */ jsxs(
|
|
6396
6822
|
"span",
|
|
6397
6823
|
{
|
|
@@ -6451,10 +6877,10 @@ var init_Toast = __esm({
|
|
|
6451
6877
|
warning: "bg-card border-[length:var(--border-width)] border-warning"
|
|
6452
6878
|
};
|
|
6453
6879
|
iconMap = {
|
|
6454
|
-
success:
|
|
6455
|
-
error:
|
|
6456
|
-
info:
|
|
6457
|
-
warning:
|
|
6880
|
+
success: "check-circle",
|
|
6881
|
+
error: "alert-circle",
|
|
6882
|
+
info: "info",
|
|
6883
|
+
warning: "alert-triangle"
|
|
6458
6884
|
};
|
|
6459
6885
|
iconColors = {
|
|
6460
6886
|
success: "text-success",
|
|
@@ -6501,7 +6927,7 @@ var init_Toast = __esm({
|
|
|
6501
6927
|
// `min-w-[300px]` only kicks in at `sm:` and above so a phone
|
|
6502
6928
|
// viewport doesn't get a toast wider than the screen near the
|
|
6503
6929
|
// edge. `max-w-[calc(100vw-2rem)]` clamps to viewport too.
|
|
6504
|
-
"border-l-4 p-4 shadow min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
|
|
6930
|
+
"border-l-4 p-4 shadow-elevation-toast min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
|
|
6505
6931
|
"rounded-sm",
|
|
6506
6932
|
variantClasses[variant],
|
|
6507
6933
|
className
|
|
@@ -6511,7 +6937,7 @@ var init_Toast = __esm({
|
|
|
6511
6937
|
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
6512
6938
|
Icon,
|
|
6513
6939
|
{
|
|
6514
|
-
|
|
6940
|
+
name: iconMap[variant],
|
|
6515
6941
|
size: "md",
|
|
6516
6942
|
className: iconColors[variant]
|
|
6517
6943
|
}
|
|
@@ -6528,7 +6954,7 @@ var init_Toast = __esm({
|
|
|
6528
6954
|
{
|
|
6529
6955
|
variant: "ghost",
|
|
6530
6956
|
size: "sm",
|
|
6531
|
-
icon:
|
|
6957
|
+
icon: "x",
|
|
6532
6958
|
onClick: handleDismiss,
|
|
6533
6959
|
"aria-label": "Dismiss toast",
|
|
6534
6960
|
className: "flex-shrink-0"
|
|
@@ -6699,7 +7125,7 @@ var init_SvgFlow = __esm({
|
|
|
6699
7125
|
opacity = 1,
|
|
6700
7126
|
className
|
|
6701
7127
|
}) => {
|
|
6702
|
-
const markerId =
|
|
7128
|
+
const markerId = React98__default.useMemo(() => {
|
|
6703
7129
|
flowIdCounter += 1;
|
|
6704
7130
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
6705
7131
|
}, []);
|
|
@@ -7242,7 +7668,7 @@ var init_SvgRing = __esm({
|
|
|
7242
7668
|
className,
|
|
7243
7669
|
label
|
|
7244
7670
|
}) => {
|
|
7245
|
-
const gradientId =
|
|
7671
|
+
const gradientId = React98__default.useMemo(() => {
|
|
7246
7672
|
ringIdCounter += 1;
|
|
7247
7673
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
7248
7674
|
}, []);
|
|
@@ -7403,7 +7829,8 @@ var Input;
|
|
|
7403
7829
|
var init_Input = __esm({
|
|
7404
7830
|
"components/atoms/Input.tsx"() {
|
|
7405
7831
|
init_cn();
|
|
7406
|
-
|
|
7832
|
+
init_Icon();
|
|
7833
|
+
Input = React98__default.forwardRef(
|
|
7407
7834
|
({
|
|
7408
7835
|
className,
|
|
7409
7836
|
inputType,
|
|
@@ -7421,7 +7848,7 @@ var init_Input = __esm({
|
|
|
7421
7848
|
...props
|
|
7422
7849
|
}, ref) => {
|
|
7423
7850
|
const type = inputType || htmlType || "text";
|
|
7424
|
-
const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-
|
|
7851
|
+
const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-icon-default w-icon-default" });
|
|
7425
7852
|
const showClearButton = clearable && value && String(value).length > 0;
|
|
7426
7853
|
const baseClassName = cn(
|
|
7427
7854
|
"block w-full rounded-sm transition-all duration-[var(--transition-fast)]",
|
|
@@ -7453,7 +7880,7 @@ var init_Input = __esm({
|
|
|
7453
7880
|
]
|
|
7454
7881
|
}
|
|
7455
7882
|
),
|
|
7456
|
-
/* @__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" }) })
|
|
7457
7884
|
] });
|
|
7458
7885
|
}
|
|
7459
7886
|
if (type === "textarea") {
|
|
@@ -7507,7 +7934,7 @@ var init_Input = __esm({
|
|
|
7507
7934
|
type: "button",
|
|
7508
7935
|
onClick: onClear,
|
|
7509
7936
|
className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground hover:text-foreground",
|
|
7510
|
-
children: /* @__PURE__ */ jsx(
|
|
7937
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-icon-default w-icon-default" })
|
|
7511
7938
|
}
|
|
7512
7939
|
),
|
|
7513
7940
|
rightIcon && !showClearButton && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground", children: rightIcon })
|
|
@@ -7521,7 +7948,7 @@ var Label;
|
|
|
7521
7948
|
var init_Label = __esm({
|
|
7522
7949
|
"components/atoms/Label.tsx"() {
|
|
7523
7950
|
init_cn();
|
|
7524
|
-
Label =
|
|
7951
|
+
Label = React98__default.forwardRef(
|
|
7525
7952
|
({ className, required, children, ...props }, ref) => {
|
|
7526
7953
|
return /* @__PURE__ */ jsxs(
|
|
7527
7954
|
"label",
|
|
@@ -7547,7 +7974,7 @@ var Textarea;
|
|
|
7547
7974
|
var init_Textarea = __esm({
|
|
7548
7975
|
"components/atoms/Textarea.tsx"() {
|
|
7549
7976
|
init_cn();
|
|
7550
|
-
Textarea =
|
|
7977
|
+
Textarea = React98__default.forwardRef(
|
|
7551
7978
|
({ className, error, ...props }, ref) => {
|
|
7552
7979
|
return /* @__PURE__ */ jsx(
|
|
7553
7980
|
"textarea",
|
|
@@ -7576,7 +8003,8 @@ var Select;
|
|
|
7576
8003
|
var init_Select = __esm({
|
|
7577
8004
|
"components/atoms/Select.tsx"() {
|
|
7578
8005
|
init_cn();
|
|
7579
|
-
|
|
8006
|
+
init_Icon();
|
|
8007
|
+
Select = React98__default.forwardRef(
|
|
7580
8008
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
7581
8009
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
7582
8010
|
/* @__PURE__ */ jsxs(
|
|
@@ -7607,7 +8035,7 @@ var init_Select = __esm({
|
|
|
7607
8035
|
]
|
|
7608
8036
|
}
|
|
7609
8037
|
),
|
|
7610
|
-
/* @__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" }) })
|
|
7611
8039
|
] });
|
|
7612
8040
|
}
|
|
7613
8041
|
);
|
|
@@ -7618,7 +8046,7 @@ var Checkbox;
|
|
|
7618
8046
|
var init_Checkbox = __esm({
|
|
7619
8047
|
"components/atoms/Checkbox.tsx"() {
|
|
7620
8048
|
init_cn();
|
|
7621
|
-
Checkbox =
|
|
8049
|
+
Checkbox = React98__default.forwardRef(
|
|
7622
8050
|
({ className, label, id, ...props }, ref) => {
|
|
7623
8051
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
7624
8052
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -7660,23 +8088,23 @@ var init_Card = __esm({
|
|
|
7660
8088
|
default: [
|
|
7661
8089
|
"bg-card",
|
|
7662
8090
|
"border-[length:var(--border-width)] border-border",
|
|
7663
|
-
"shadow-
|
|
8091
|
+
"shadow-elevation-card",
|
|
7664
8092
|
"transition-all duration-[var(--transition-normal)]",
|
|
7665
|
-
"hover:shadow-
|
|
8093
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
7666
8094
|
].join(" "),
|
|
7667
8095
|
bordered: [
|
|
7668
8096
|
"bg-card",
|
|
7669
8097
|
"border-[length:var(--border-width)] border-border",
|
|
7670
|
-
"shadow-
|
|
8098
|
+
"shadow-elevation-card",
|
|
7671
8099
|
"transition-all duration-[var(--transition-normal)]",
|
|
7672
|
-
"hover:shadow-
|
|
8100
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
7673
8101
|
].join(" "),
|
|
7674
8102
|
elevated: [
|
|
7675
8103
|
"bg-card",
|
|
7676
8104
|
"border-[length:var(--border-width)] border-border",
|
|
7677
8105
|
"shadow",
|
|
7678
8106
|
"transition-all duration-[var(--transition-normal)]",
|
|
7679
|
-
"hover:shadow-
|
|
8107
|
+
"hover:shadow-elevation-dialog hover:-translate-y-0.5"
|
|
7680
8108
|
].join(" "),
|
|
7681
8109
|
// Interactive variant with theme-specific hover effects
|
|
7682
8110
|
interactive: [
|
|
@@ -7685,22 +8113,22 @@ var init_Card = __esm({
|
|
|
7685
8113
|
"shadow",
|
|
7686
8114
|
"cursor-pointer",
|
|
7687
8115
|
"transition-all duration-[var(--transition-normal)]",
|
|
7688
|
-
"hover:shadow-
|
|
8116
|
+
"hover:shadow-elevation-dialog"
|
|
7689
8117
|
].join(" ")
|
|
7690
8118
|
};
|
|
7691
8119
|
paddingStyles2 = {
|
|
7692
8120
|
none: "",
|
|
7693
|
-
sm: "p-
|
|
7694
|
-
md: "p-
|
|
7695
|
-
lg: "p-
|
|
8121
|
+
sm: "p-card-sm",
|
|
8122
|
+
md: "p-card-md",
|
|
8123
|
+
lg: "p-card-lg"
|
|
7696
8124
|
};
|
|
7697
8125
|
shadowStyles2 = {
|
|
7698
8126
|
none: "shadow-none",
|
|
7699
|
-
sm: "shadow-
|
|
8127
|
+
sm: "shadow-elevation-card",
|
|
7700
8128
|
md: "shadow",
|
|
7701
|
-
lg: "shadow-
|
|
8129
|
+
lg: "shadow-elevation-dialog"
|
|
7702
8130
|
};
|
|
7703
|
-
Card =
|
|
8131
|
+
Card = React98__default.forwardRef(
|
|
7704
8132
|
({
|
|
7705
8133
|
className,
|
|
7706
8134
|
variant = "bordered",
|
|
@@ -7716,7 +8144,7 @@ var init_Card = __esm({
|
|
|
7716
8144
|
{
|
|
7717
8145
|
ref,
|
|
7718
8146
|
className: cn(
|
|
7719
|
-
"rounded-
|
|
8147
|
+
"rounded-container",
|
|
7720
8148
|
"transition-all duration-[var(--transition-normal)]",
|
|
7721
8149
|
variantStyles4[variant],
|
|
7722
8150
|
paddingStyles2[padding],
|
|
@@ -7736,9 +8164,9 @@ var init_Card = __esm({
|
|
|
7736
8164
|
}
|
|
7737
8165
|
);
|
|
7738
8166
|
Card.displayName = "Card";
|
|
7739
|
-
CardHeader =
|
|
8167
|
+
CardHeader = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
7740
8168
|
CardHeader.displayName = "CardHeader";
|
|
7741
|
-
CardTitle =
|
|
8169
|
+
CardTitle = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7742
8170
|
"h3",
|
|
7743
8171
|
{
|
|
7744
8172
|
ref,
|
|
@@ -7751,11 +8179,11 @@ var init_Card = __esm({
|
|
|
7751
8179
|
}
|
|
7752
8180
|
));
|
|
7753
8181
|
CardTitle.displayName = "CardTitle";
|
|
7754
|
-
CardContent =
|
|
8182
|
+
CardContent = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
7755
8183
|
CardContent.displayName = "CardContent";
|
|
7756
8184
|
CardBody = CardContent;
|
|
7757
8185
|
CardBody.displayName = "CardBody";
|
|
7758
|
-
CardFooter =
|
|
8186
|
+
CardFooter = React98__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7759
8187
|
"div",
|
|
7760
8188
|
{
|
|
7761
8189
|
ref,
|
|
@@ -7810,7 +8238,7 @@ var init_FilterPill = __esm({
|
|
|
7810
8238
|
md: "w-3.5 h-3.5",
|
|
7811
8239
|
lg: "w-4 h-4"
|
|
7812
8240
|
};
|
|
7813
|
-
FilterPill =
|
|
8241
|
+
FilterPill = React98__default.forwardRef(
|
|
7814
8242
|
({
|
|
7815
8243
|
className,
|
|
7816
8244
|
variant = "default",
|
|
@@ -7835,17 +8263,13 @@ var init_FilterPill = __esm({
|
|
|
7835
8263
|
onRemove?.();
|
|
7836
8264
|
if (removeEvent) eventBus.emit(`UI:${removeEvent}`, { label: payloadLabel });
|
|
7837
8265
|
}, [onRemove, removeEvent, eventBus, payloadLabel]);
|
|
7838
|
-
const
|
|
7839
|
-
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
7840
|
-
const I = resolveIcon(icon);
|
|
7841
|
-
return I ? /* @__PURE__ */ jsx(I, { className: iconSizes[size] }) : null;
|
|
7842
|
-
})() : icon;
|
|
8266
|
+
const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon;
|
|
7843
8267
|
return /* @__PURE__ */ jsxs(
|
|
7844
8268
|
"span",
|
|
7845
8269
|
{
|
|
7846
8270
|
ref,
|
|
7847
8271
|
className: cn(
|
|
7848
|
-
"inline-flex items-center gap-1 font-bold rounded-
|
|
8272
|
+
"inline-flex items-center gap-1 font-bold rounded-pill",
|
|
7849
8273
|
variantStyles5[variant],
|
|
7850
8274
|
sizeStyles4[size],
|
|
7851
8275
|
(onClick || clickEvent) && "cursor-pointer",
|
|
@@ -7868,7 +8292,7 @@ var init_FilterPill = __esm({
|
|
|
7868
8292
|
className: cn(
|
|
7869
8293
|
"ml-0.5 rounded-full hover:bg-foreground/10 transition-colors flex items-center justify-center"
|
|
7870
8294
|
),
|
|
7871
|
-
children:
|
|
8295
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: iconSizes[size] })
|
|
7872
8296
|
}
|
|
7873
8297
|
)
|
|
7874
8298
|
]
|
|
@@ -7883,13 +8307,14 @@ var sizeStyles5, Spinner;
|
|
|
7883
8307
|
var init_Spinner = __esm({
|
|
7884
8308
|
"components/atoms/Spinner.tsx"() {
|
|
7885
8309
|
init_cn();
|
|
8310
|
+
init_Icon();
|
|
7886
8311
|
sizeStyles5 = {
|
|
7887
8312
|
xs: "h-3 w-3",
|
|
7888
8313
|
sm: "h-4 w-4",
|
|
7889
8314
|
md: "h-6 w-6",
|
|
7890
8315
|
lg: "h-8 w-8"
|
|
7891
8316
|
};
|
|
7892
|
-
Spinner =
|
|
8317
|
+
Spinner = React98__default.forwardRef(
|
|
7893
8318
|
({ className, size = "md", ...props }, ref) => {
|
|
7894
8319
|
return /* @__PURE__ */ jsx(
|
|
7895
8320
|
"div",
|
|
@@ -7897,7 +8322,7 @@ var init_Spinner = __esm({
|
|
|
7897
8322
|
ref,
|
|
7898
8323
|
className: cn("text-foreground", className),
|
|
7899
8324
|
...props,
|
|
7900
|
-
children: /* @__PURE__ */ jsx(
|
|
8325
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "loader", className: cn("animate-spin", sizeStyles5[size]) })
|
|
7901
8326
|
}
|
|
7902
8327
|
);
|
|
7903
8328
|
}
|
|
@@ -7916,6 +8341,7 @@ var sizeClasses3, iconSizeClasses, statusSizeClasses, statusClasses, badgeSizeCl
|
|
|
7916
8341
|
var init_Avatar = __esm({
|
|
7917
8342
|
"components/atoms/Avatar.tsx"() {
|
|
7918
8343
|
"use client";
|
|
8344
|
+
init_Icon();
|
|
7919
8345
|
init_cn();
|
|
7920
8346
|
init_useEventBus();
|
|
7921
8347
|
sizeClasses3 = {
|
|
@@ -7946,8 +8372,8 @@ var init_Avatar = __esm({
|
|
|
7946
8372
|
busy: "bg-error"
|
|
7947
8373
|
};
|
|
7948
8374
|
badgeSizeClasses = {
|
|
7949
|
-
xs: "w-3 h-3 text-
|
|
7950
|
-
sm: "w-4 h-4 text-
|
|
8375
|
+
xs: "w-3 h-3 text-xs",
|
|
8376
|
+
sm: "w-4 h-4 text-xs",
|
|
7951
8377
|
md: "w-5 h-5 text-xs",
|
|
7952
8378
|
lg: "w-6 h-6 text-sm",
|
|
7953
8379
|
xl: "w-7 h-7 text-base"
|
|
@@ -7957,7 +8383,7 @@ var init_Avatar = __esm({
|
|
|
7957
8383
|
alt,
|
|
7958
8384
|
name,
|
|
7959
8385
|
initials: providedInitials,
|
|
7960
|
-
icon:
|
|
8386
|
+
icon: IconComponent,
|
|
7961
8387
|
size = "md",
|
|
7962
8388
|
status,
|
|
7963
8389
|
badge,
|
|
@@ -7970,7 +8396,7 @@ var init_Avatar = __esm({
|
|
|
7970
8396
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
7971
8397
|
const hasImage = !!src;
|
|
7972
8398
|
const hasInitials = !!initials;
|
|
7973
|
-
const hasIcon = !!
|
|
8399
|
+
const hasIcon = !!IconComponent;
|
|
7974
8400
|
const getInitialsBackground = () => "bg-primary text-primary-foreground";
|
|
7975
8401
|
const isClickable = action || onClick;
|
|
7976
8402
|
const handleClick = () => {
|
|
@@ -8014,8 +8440,8 @@ var init_Avatar = __esm({
|
|
|
8014
8440
|
),
|
|
8015
8441
|
children: initials.substring(0, 2).toUpperCase()
|
|
8016
8442
|
}
|
|
8017
|
-
) : hasIcon ? /* @__PURE__ */ jsx(
|
|
8018
|
-
|
|
8443
|
+
) : hasIcon && IconComponent ? /* @__PURE__ */ jsx(
|
|
8444
|
+
IconComponent,
|
|
8019
8445
|
{
|
|
8020
8446
|
className: cn(
|
|
8021
8447
|
"text-foreground",
|
|
@@ -8023,8 +8449,9 @@ var init_Avatar = __esm({
|
|
|
8023
8449
|
)
|
|
8024
8450
|
}
|
|
8025
8451
|
) : /* @__PURE__ */ jsx(
|
|
8026
|
-
|
|
8452
|
+
Icon,
|
|
8027
8453
|
{
|
|
8454
|
+
name: "user",
|
|
8028
8455
|
className: cn(
|
|
8029
8456
|
"text-foreground",
|
|
8030
8457
|
iconSizeClasses[size]
|
|
@@ -8219,7 +8646,7 @@ var init_ProgressBar = __esm({
|
|
|
8219
8646
|
"div",
|
|
8220
8647
|
{
|
|
8221
8648
|
className: cn(
|
|
8222
|
-
"h-full transition-all duration-
|
|
8649
|
+
"h-full transition-all duration-normal ease-emphasized",
|
|
8223
8650
|
colorClasses[effectiveColor]
|
|
8224
8651
|
),
|
|
8225
8652
|
style: { width: `${percentage}%` },
|
|
@@ -8275,7 +8702,7 @@ var init_ProgressBar = __esm({
|
|
|
8275
8702
|
strokeDashoffset: offset,
|
|
8276
8703
|
strokeLinecap: "round",
|
|
8277
8704
|
className: cn(
|
|
8278
|
-
"transition-all duration-
|
|
8705
|
+
"transition-all duration-normal ease-emphasized",
|
|
8279
8706
|
colorClasses[effectiveColor]
|
|
8280
8707
|
)
|
|
8281
8708
|
}
|
|
@@ -8314,7 +8741,7 @@ var init_ProgressBar = __esm({
|
|
|
8314
8741
|
"div",
|
|
8315
8742
|
{
|
|
8316
8743
|
className: cn(
|
|
8317
|
-
"h-full transition-all duration-
|
|
8744
|
+
"h-full transition-all duration-normal ease-emphasized",
|
|
8318
8745
|
(isActive || isPartial) && colorClasses[effectiveColor]
|
|
8319
8746
|
),
|
|
8320
8747
|
style: {
|
|
@@ -8337,7 +8764,7 @@ var Radio;
|
|
|
8337
8764
|
var init_Radio = __esm({
|
|
8338
8765
|
"components/atoms/Radio.tsx"() {
|
|
8339
8766
|
init_cn();
|
|
8340
|
-
Radio =
|
|
8767
|
+
Radio = React98__default.forwardRef(
|
|
8341
8768
|
({
|
|
8342
8769
|
label,
|
|
8343
8770
|
helperText,
|
|
@@ -8509,7 +8936,7 @@ var init_Switch = __esm({
|
|
|
8509
8936
|
"components/atoms/Switch.tsx"() {
|
|
8510
8937
|
"use client";
|
|
8511
8938
|
init_cn();
|
|
8512
|
-
Switch =
|
|
8939
|
+
Switch = React98.forwardRef(
|
|
8513
8940
|
({
|
|
8514
8941
|
checked,
|
|
8515
8942
|
defaultChecked = false,
|
|
@@ -8520,10 +8947,10 @@ var init_Switch = __esm({
|
|
|
8520
8947
|
name,
|
|
8521
8948
|
className
|
|
8522
8949
|
}, ref) => {
|
|
8523
|
-
const [isChecked, setIsChecked] =
|
|
8950
|
+
const [isChecked, setIsChecked] = React98.useState(
|
|
8524
8951
|
checked !== void 0 ? checked : defaultChecked
|
|
8525
8952
|
);
|
|
8526
|
-
|
|
8953
|
+
React98.useEffect(() => {
|
|
8527
8954
|
if (checked !== void 0) {
|
|
8528
8955
|
setIsChecked(checked);
|
|
8529
8956
|
}
|
|
@@ -8696,6 +9123,7 @@ var sizeClasses4, iconSizes2, ThemeToggle;
|
|
|
8696
9123
|
var init_ThemeToggle = __esm({
|
|
8697
9124
|
"components/atoms/ThemeToggle.tsx"() {
|
|
8698
9125
|
"use client";
|
|
9126
|
+
init_Icon();
|
|
8699
9127
|
init_cn();
|
|
8700
9128
|
init_ThemeContext();
|
|
8701
9129
|
sizeClasses4 = {
|
|
@@ -8725,7 +9153,7 @@ var init_ThemeToggle = __esm({
|
|
|
8725
9153
|
"text-foreground",
|
|
8726
9154
|
"hover:bg-muted border-[length:var(--border-width)] border-transparent hover:border-border",
|
|
8727
9155
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
8728
|
-
"transition-colors duration-
|
|
9156
|
+
"transition-colors duration-fast",
|
|
8729
9157
|
sizeClasses4[size],
|
|
8730
9158
|
className
|
|
8731
9159
|
),
|
|
@@ -8733,13 +9161,15 @@ var init_ThemeToggle = __esm({
|
|
|
8733
9161
|
title: isDark ? "Switch to light mode" : "Switch to dark mode",
|
|
8734
9162
|
children: [
|
|
8735
9163
|
isDark ? /* @__PURE__ */ jsx(
|
|
8736
|
-
|
|
9164
|
+
Icon,
|
|
8737
9165
|
{
|
|
9166
|
+
name: "sun",
|
|
8738
9167
|
className: cn(iconSizes2[size], "text-foreground")
|
|
8739
9168
|
}
|
|
8740
9169
|
) : /* @__PURE__ */ jsx(
|
|
8741
|
-
|
|
9170
|
+
Icon,
|
|
8742
9171
|
{
|
|
9172
|
+
name: "moon",
|
|
8743
9173
|
className: cn(iconSizes2[size], "text-foreground")
|
|
8744
9174
|
}
|
|
8745
9175
|
),
|
|
@@ -8772,7 +9202,7 @@ var init_FlipContainer = __esm({
|
|
|
8772
9202
|
children: /* @__PURE__ */ jsx(
|
|
8773
9203
|
Box,
|
|
8774
9204
|
{
|
|
8775
|
-
className: "relative w-full h-full transition-transform duration-
|
|
9205
|
+
className: "relative w-full h-full transition-transform duration-slow",
|
|
8776
9206
|
style: {
|
|
8777
9207
|
transformStyle: "preserve-3d",
|
|
8778
9208
|
transform: flipped ? "rotateY(180deg)" : "rotateY(0deg)"
|
|
@@ -8790,7 +9220,7 @@ var Aside;
|
|
|
8790
9220
|
var init_Aside = __esm({
|
|
8791
9221
|
"components/atoms/Aside.tsx"() {
|
|
8792
9222
|
init_cn();
|
|
8793
|
-
Aside =
|
|
9223
|
+
Aside = React98__default.forwardRef(
|
|
8794
9224
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
8795
9225
|
);
|
|
8796
9226
|
Aside.displayName = "Aside";
|
|
@@ -8830,7 +9260,7 @@ var init_ConditionalWrapper = __esm({
|
|
|
8830
9260
|
Box,
|
|
8831
9261
|
{
|
|
8832
9262
|
overflow: "hidden",
|
|
8833
|
-
className: `transition-all duration-
|
|
9263
|
+
className: `transition-all duration-fast ${isVisible ? "opacity-100 max-h-[1000px]" : "opacity-0 max-h-0"}`,
|
|
8834
9264
|
children: isVisible ? children : fallback
|
|
8835
9265
|
}
|
|
8836
9266
|
);
|
|
@@ -8867,8 +9297,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8867
9297
|
position = "top",
|
|
8868
9298
|
className
|
|
8869
9299
|
}) => {
|
|
8870
|
-
const [isVisible, setIsVisible] =
|
|
8871
|
-
const timeoutRef =
|
|
9300
|
+
const [isVisible, setIsVisible] = React98__default.useState(false);
|
|
9301
|
+
const timeoutRef = React98__default.useRef(null);
|
|
8872
9302
|
const handleMouseEnter = () => {
|
|
8873
9303
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8874
9304
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -8877,7 +9307,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8877
9307
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8878
9308
|
setIsVisible(false);
|
|
8879
9309
|
};
|
|
8880
|
-
|
|
9310
|
+
React98__default.useEffect(() => {
|
|
8881
9311
|
return () => {
|
|
8882
9312
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8883
9313
|
};
|
|
@@ -9087,7 +9517,7 @@ var init_StatusDot = __esm({
|
|
|
9087
9517
|
md: "w-2.5 h-2.5",
|
|
9088
9518
|
lg: "w-3 h-3"
|
|
9089
9519
|
};
|
|
9090
|
-
StatusDot =
|
|
9520
|
+
StatusDot = React98__default.forwardRef(
|
|
9091
9521
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
9092
9522
|
return /* @__PURE__ */ jsx(
|
|
9093
9523
|
"span",
|
|
@@ -9126,21 +9556,22 @@ function resolveColor(dir, invert) {
|
|
|
9126
9556
|
const isGood = invert ? !isPositive : isPositive;
|
|
9127
9557
|
return isGood ? "text-success" : "text-error";
|
|
9128
9558
|
}
|
|
9129
|
-
var sizeStyles7,
|
|
9559
|
+
var sizeStyles7, iconNameMap, TrendIndicator;
|
|
9130
9560
|
var init_TrendIndicator = __esm({
|
|
9131
9561
|
"components/atoms/TrendIndicator.tsx"() {
|
|
9562
|
+
init_Icon();
|
|
9132
9563
|
init_cn();
|
|
9133
9564
|
sizeStyles7 = {
|
|
9134
9565
|
sm: { icon: "w-3 h-3", text: "text-xs" },
|
|
9135
9566
|
md: { icon: "w-4 h-4", text: "text-sm" },
|
|
9136
9567
|
lg: { icon: "w-5 h-5", text: "text-base" }
|
|
9137
9568
|
};
|
|
9138
|
-
|
|
9139
|
-
up:
|
|
9140
|
-
down:
|
|
9141
|
-
flat:
|
|
9569
|
+
iconNameMap = {
|
|
9570
|
+
up: "trending-up",
|
|
9571
|
+
down: "trending-down",
|
|
9572
|
+
flat: "arrow-right"
|
|
9142
9573
|
};
|
|
9143
|
-
TrendIndicator =
|
|
9574
|
+
TrendIndicator = React98__default.forwardRef(
|
|
9144
9575
|
({
|
|
9145
9576
|
className,
|
|
9146
9577
|
value,
|
|
@@ -9153,7 +9584,7 @@ var init_TrendIndicator = __esm({
|
|
|
9153
9584
|
}, ref) => {
|
|
9154
9585
|
const dir = resolveDirection(value, direction);
|
|
9155
9586
|
const colorClass = resolveColor(dir, invert);
|
|
9156
|
-
const
|
|
9587
|
+
const iconName = iconNameMap[dir];
|
|
9157
9588
|
const styles = sizeStyles7[size];
|
|
9158
9589
|
const formattedValue = value !== void 0 ? `${value > 0 ? "+" : ""}${value}%` : void 0;
|
|
9159
9590
|
const ariaLabel = label ?? (formattedValue ? `${dir} ${formattedValue}` : dir);
|
|
@@ -9171,7 +9602,7 @@ var init_TrendIndicator = __esm({
|
|
|
9171
9602
|
"aria-label": ariaLabel,
|
|
9172
9603
|
...props,
|
|
9173
9604
|
children: [
|
|
9174
|
-
/* @__PURE__ */ jsx(
|
|
9605
|
+
/* @__PURE__ */ jsx(Icon, { name: iconName, className: styles.icon }),
|
|
9175
9606
|
showValue && formattedValue && /* @__PURE__ */ jsx("span", { children: formattedValue })
|
|
9176
9607
|
]
|
|
9177
9608
|
}
|
|
@@ -9207,7 +9638,7 @@ var init_RangeSlider = __esm({
|
|
|
9207
9638
|
md: "w-4 h-4",
|
|
9208
9639
|
lg: "w-5 h-5"
|
|
9209
9640
|
};
|
|
9210
|
-
RangeSlider =
|
|
9641
|
+
RangeSlider = React98__default.forwardRef(
|
|
9211
9642
|
({
|
|
9212
9643
|
className,
|
|
9213
9644
|
min = 0,
|
|
@@ -9775,7 +10206,7 @@ var init_ContentSection = __esm({
|
|
|
9775
10206
|
md: "py-16",
|
|
9776
10207
|
lg: "py-24"
|
|
9777
10208
|
};
|
|
9778
|
-
ContentSection =
|
|
10209
|
+
ContentSection = React98__default.forwardRef(
|
|
9779
10210
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
9780
10211
|
return /* @__PURE__ */ jsx(
|
|
9781
10212
|
Box,
|
|
@@ -10309,7 +10740,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10309
10740
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
10310
10741
|
"none": {}
|
|
10311
10742
|
};
|
|
10312
|
-
AnimatedReveal =
|
|
10743
|
+
AnimatedReveal = React98__default.forwardRef(
|
|
10313
10744
|
({
|
|
10314
10745
|
trigger = "scroll",
|
|
10315
10746
|
animation = "fade-up",
|
|
@@ -10339,7 +10770,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10339
10770
|
if (trigger !== "scroll") return;
|
|
10340
10771
|
const el = internalRef.current;
|
|
10341
10772
|
if (!el) return;
|
|
10342
|
-
const
|
|
10773
|
+
const observer2 = new IntersectionObserver(
|
|
10343
10774
|
([entry]) => {
|
|
10344
10775
|
if (entry.isIntersecting) {
|
|
10345
10776
|
if (once && hasAnimated.current) return;
|
|
@@ -10351,8 +10782,8 @@ var init_AnimatedReveal = __esm({
|
|
|
10351
10782
|
},
|
|
10352
10783
|
{ threshold }
|
|
10353
10784
|
);
|
|
10354
|
-
|
|
10355
|
-
return () =>
|
|
10785
|
+
observer2.observe(el);
|
|
10786
|
+
return () => observer2.disconnect();
|
|
10356
10787
|
}, [trigger, threshold, once]);
|
|
10357
10788
|
const handleMouseEnter = trigger === "hover" ? () => setIsAnimated(true) : void 0;
|
|
10358
10789
|
const handleMouseLeave = trigger === "hover" ? () => {
|
|
@@ -10469,7 +10900,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10469
10900
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
10470
10901
|
"use client";
|
|
10471
10902
|
init_cn();
|
|
10472
|
-
AnimatedGraphic =
|
|
10903
|
+
AnimatedGraphic = React98__default.forwardRef(
|
|
10473
10904
|
({
|
|
10474
10905
|
src,
|
|
10475
10906
|
svgContent,
|
|
@@ -10492,7 +10923,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10492
10923
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
10493
10924
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
10494
10925
|
const prevAnimateRef = useRef(animate);
|
|
10495
|
-
const setRef =
|
|
10926
|
+
const setRef = React98__default.useCallback(
|
|
10496
10927
|
(node) => {
|
|
10497
10928
|
containerRef.current = node;
|
|
10498
10929
|
if (typeof ref === "function") ref(node);
|
|
@@ -10719,9 +11150,9 @@ function ScoreDisplay({
|
|
|
10719
11150
|
...rest
|
|
10720
11151
|
}) {
|
|
10721
11152
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
10722
|
-
const [displayValue, setDisplayValue] =
|
|
10723
|
-
const [isAnimating, setIsAnimating] =
|
|
10724
|
-
|
|
11153
|
+
const [displayValue, setDisplayValue] = React98.useState(resolvedValue);
|
|
11154
|
+
const [isAnimating, setIsAnimating] = React98.useState(false);
|
|
11155
|
+
React98.useEffect(() => {
|
|
10725
11156
|
if (!animated || displayValue === resolvedValue) {
|
|
10726
11157
|
setDisplayValue(resolvedValue);
|
|
10727
11158
|
return;
|
|
@@ -10791,9 +11222,9 @@ function ControlButton({
|
|
|
10791
11222
|
className
|
|
10792
11223
|
}) {
|
|
10793
11224
|
const eventBus = useEventBus();
|
|
10794
|
-
const [isPressed, setIsPressed] =
|
|
11225
|
+
const [isPressed, setIsPressed] = React98.useState(false);
|
|
10795
11226
|
const actualPressed = pressed ?? isPressed;
|
|
10796
|
-
const handlePointerDown =
|
|
11227
|
+
const handlePointerDown = React98.useCallback(
|
|
10797
11228
|
(e) => {
|
|
10798
11229
|
e.preventDefault();
|
|
10799
11230
|
if (disabled) return;
|
|
@@ -10803,7 +11234,7 @@ function ControlButton({
|
|
|
10803
11234
|
},
|
|
10804
11235
|
[disabled, pressEvent, eventBus, onPress]
|
|
10805
11236
|
);
|
|
10806
|
-
const handlePointerUp =
|
|
11237
|
+
const handlePointerUp = React98.useCallback(
|
|
10807
11238
|
(e) => {
|
|
10808
11239
|
e.preventDefault();
|
|
10809
11240
|
if (disabled) return;
|
|
@@ -10813,7 +11244,7 @@ function ControlButton({
|
|
|
10813
11244
|
},
|
|
10814
11245
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
10815
11246
|
);
|
|
10816
|
-
const handlePointerLeave =
|
|
11247
|
+
const handlePointerLeave = React98.useCallback(
|
|
10817
11248
|
(e) => {
|
|
10818
11249
|
if (isPressed) {
|
|
10819
11250
|
setIsPressed(false);
|
|
@@ -11719,9 +12150,9 @@ function MiniMap({
|
|
|
11719
12150
|
viewportRect,
|
|
11720
12151
|
className
|
|
11721
12152
|
}) {
|
|
11722
|
-
const canvasRef =
|
|
11723
|
-
const frameRef =
|
|
11724
|
-
|
|
12153
|
+
const canvasRef = React98.useRef(null);
|
|
12154
|
+
const frameRef = React98.useRef(0);
|
|
12155
|
+
React98.useEffect(() => {
|
|
11725
12156
|
const canvas = canvasRef.current;
|
|
11726
12157
|
if (!canvas) return;
|
|
11727
12158
|
const ctx = canvas.getContext("2d");
|
|
@@ -11971,6 +12402,7 @@ var init_ErrorState = __esm({
|
|
|
11971
12402
|
init_Box();
|
|
11972
12403
|
init_Stack();
|
|
11973
12404
|
init_Typography();
|
|
12405
|
+
init_Icon();
|
|
11974
12406
|
init_useEventBus();
|
|
11975
12407
|
init_useTranslate();
|
|
11976
12408
|
ErrorState = ({
|
|
@@ -11998,7 +12430,7 @@ var init_ErrorState = __esm({
|
|
|
11998
12430
|
className
|
|
11999
12431
|
),
|
|
12000
12432
|
children: [
|
|
12001
|
-
/* @__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" }) }),
|
|
12002
12434
|
/* @__PURE__ */ jsx(Typography, { variant: "h3", className: "text-lg font-medium text-foreground", children: resolvedTitle }),
|
|
12003
12435
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-1 text-muted-foreground max-w-sm", children: resolvedMessage }),
|
|
12004
12436
|
(onRetry || retryEvent) && /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "mt-4", onClick: handleRetry, children: t("error.retry") })
|
|
@@ -12015,7 +12447,7 @@ var init_ErrorBoundary = __esm({
|
|
|
12015
12447
|
"use client";
|
|
12016
12448
|
init_cn();
|
|
12017
12449
|
init_ErrorState();
|
|
12018
|
-
ErrorBoundary = class extends
|
|
12450
|
+
ErrorBoundary = class extends React98__default.Component {
|
|
12019
12451
|
constructor(props) {
|
|
12020
12452
|
super(props);
|
|
12021
12453
|
__publicField(this, "reset", () => {
|
|
@@ -12386,7 +12818,7 @@ var init_InstallBox = __esm({
|
|
|
12386
12818
|
/* @__PURE__ */ jsx(
|
|
12387
12819
|
Box,
|
|
12388
12820
|
{
|
|
12389
|
-
className: "bg-surface rounded-
|
|
12821
|
+
className: "bg-surface rounded-container border-[length:var(--border-width)] border-border",
|
|
12390
12822
|
padding: "md",
|
|
12391
12823
|
children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3", children: [
|
|
12392
12824
|
/* @__PURE__ */ jsx(
|
|
@@ -12940,7 +13372,7 @@ var init_AboutPageTemplate = __esm({
|
|
|
12940
13372
|
AboutPageTemplate.displayName = "AboutPageTemplate";
|
|
12941
13373
|
}
|
|
12942
13374
|
});
|
|
12943
|
-
var variantBorderClasses, variantIconColors,
|
|
13375
|
+
var variantBorderClasses, variantIconColors, iconMap2, Alert;
|
|
12944
13376
|
var init_Alert = __esm({
|
|
12945
13377
|
"components/molecules/Alert.tsx"() {
|
|
12946
13378
|
"use client";
|
|
@@ -12961,11 +13393,11 @@ var init_Alert = __esm({
|
|
|
12961
13393
|
warning: "text-warning",
|
|
12962
13394
|
error: "text-error"
|
|
12963
13395
|
};
|
|
12964
|
-
|
|
12965
|
-
info:
|
|
12966
|
-
success:
|
|
12967
|
-
warning:
|
|
12968
|
-
error:
|
|
13396
|
+
iconMap2 = {
|
|
13397
|
+
info: "info",
|
|
13398
|
+
success: "check-circle",
|
|
13399
|
+
warning: "alert-triangle",
|
|
13400
|
+
error: "alert-circle"
|
|
12969
13401
|
};
|
|
12970
13402
|
Alert = ({
|
|
12971
13403
|
children,
|
|
@@ -13000,7 +13432,7 @@ var init_Alert = __esm({
|
|
|
13000
13432
|
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
13001
13433
|
Icon,
|
|
13002
13434
|
{
|
|
13003
|
-
|
|
13435
|
+
name: iconMap2[variant],
|
|
13004
13436
|
size: "md",
|
|
13005
13437
|
className: variantIconColors[variant]
|
|
13006
13438
|
}
|
|
@@ -13020,7 +13452,7 @@ var init_Alert = __esm({
|
|
|
13020
13452
|
"hover:bg-muted"
|
|
13021
13453
|
),
|
|
13022
13454
|
"aria-label": "Dismiss alert",
|
|
13023
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
|
13455
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", size: "sm" })
|
|
13024
13456
|
}
|
|
13025
13457
|
)
|
|
13026
13458
|
] })
|
|
@@ -13096,8 +13528,8 @@ var init_Tooltip = __esm({
|
|
|
13096
13528
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
13097
13529
|
};
|
|
13098
13530
|
}, []);
|
|
13099
|
-
const triggerElement =
|
|
13100
|
-
const trigger =
|
|
13531
|
+
const triggerElement = React98__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
13532
|
+
const trigger = React98__default.cloneElement(triggerElement, {
|
|
13101
13533
|
ref: triggerRef,
|
|
13102
13534
|
onMouseEnter: handleMouseEnter,
|
|
13103
13535
|
onMouseLeave: handleMouseLeave,
|
|
@@ -13111,7 +13543,7 @@ var init_Tooltip = __esm({
|
|
|
13111
13543
|
className: cn(
|
|
13112
13544
|
"fixed z-50 px-3 py-2 max-w-xs",
|
|
13113
13545
|
"bg-primary text-primary-foreground",
|
|
13114
|
-
"shadow-
|
|
13546
|
+
"shadow-elevation-popover rounded-sm",
|
|
13115
13547
|
"text-sm pointer-events-none",
|
|
13116
13548
|
"break-words whitespace-normal",
|
|
13117
13549
|
"h-auto min-h-fit",
|
|
@@ -13252,8 +13684,8 @@ var init_Popover = __esm({
|
|
|
13252
13684
|
onMouseEnter: handleOpen,
|
|
13253
13685
|
onMouseLeave: handleClose
|
|
13254
13686
|
};
|
|
13255
|
-
const childElement =
|
|
13256
|
-
const triggerElement =
|
|
13687
|
+
const childElement = React98__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
13688
|
+
const triggerElement = React98__default.cloneElement(
|
|
13257
13689
|
childElement,
|
|
13258
13690
|
{
|
|
13259
13691
|
ref: triggerRef,
|
|
@@ -13266,7 +13698,7 @@ var init_Popover = __esm({
|
|
|
13266
13698
|
ref: popoverRef,
|
|
13267
13699
|
className: cn(
|
|
13268
13700
|
"fixed z-50 p-4",
|
|
13269
|
-
"bg-card border-2 border-border shadow-
|
|
13701
|
+
"bg-card border-2 border-border shadow-elevation-popover",
|
|
13270
13702
|
positionClasses2[position],
|
|
13271
13703
|
className
|
|
13272
13704
|
),
|
|
@@ -13369,8 +13801,8 @@ var init_Menu = __esm({
|
|
|
13369
13801
|
"bottom-start": "top-full left-0 mt-2",
|
|
13370
13802
|
"bottom-end": "top-full right-0 mt-2"
|
|
13371
13803
|
};
|
|
13372
|
-
const triggerChild =
|
|
13373
|
-
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(
|
|
13374
13806
|
triggerChild,
|
|
13375
13807
|
{
|
|
13376
13808
|
ref: triggerRef,
|
|
@@ -13380,7 +13812,7 @@ var init_Menu = __esm({
|
|
|
13380
13812
|
const menuContainerStyles = cn(
|
|
13381
13813
|
"bg-card",
|
|
13382
13814
|
"border-[length:var(--border-width)] border-border",
|
|
13383
|
-
"shadow",
|
|
13815
|
+
"shadow-elevation-popover",
|
|
13384
13816
|
"rounded-sm",
|
|
13385
13817
|
"min-w-0 sm:min-w-[200px] max-w-[calc(100vw-1rem)] py-1"
|
|
13386
13818
|
);
|
|
@@ -13415,7 +13847,7 @@ var init_Menu = __esm({
|
|
|
13415
13847
|
}
|
|
13416
13848
|
),
|
|
13417
13849
|
item.badge !== void 0 && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: item.badge }),
|
|
13418
|
-
hasSubMenu && /* @__PURE__ */ jsx(Icon, {
|
|
13850
|
+
hasSubMenu && /* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm", className: "flex-shrink-0" })
|
|
13419
13851
|
] })
|
|
13420
13852
|
},
|
|
13421
13853
|
itemId
|
|
@@ -13548,7 +13980,7 @@ var init_Accordion = __esm({
|
|
|
13548
13980
|
"w-full flex items-center justify-between px-4 py-3",
|
|
13549
13981
|
"bg-card",
|
|
13550
13982
|
"hover:bg-muted",
|
|
13551
|
-
"transition-colors duration-
|
|
13983
|
+
"transition-colors duration-fast",
|
|
13552
13984
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-inset",
|
|
13553
13985
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
13554
13986
|
isOpen && "bg-muted font-bold"
|
|
@@ -13560,10 +13992,10 @@ var init_Accordion = __esm({
|
|
|
13560
13992
|
/* @__PURE__ */ jsx(
|
|
13561
13993
|
Icon,
|
|
13562
13994
|
{
|
|
13563
|
-
|
|
13995
|
+
name: "chevron-down",
|
|
13564
13996
|
size: "sm",
|
|
13565
13997
|
className: cn(
|
|
13566
|
-
"transition-transform duration-
|
|
13998
|
+
"transition-transform duration-fast",
|
|
13567
13999
|
isOpen && "transform rotate-180"
|
|
13568
14000
|
)
|
|
13569
14001
|
}
|
|
@@ -13585,15 +14017,6 @@ var init_Accordion = __esm({
|
|
|
13585
14017
|
Accordion.displayName = "Accordion";
|
|
13586
14018
|
}
|
|
13587
14019
|
});
|
|
13588
|
-
function resolveIcon2(name) {
|
|
13589
|
-
const pascalName = name.split(/[-_]/).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
|
|
13590
|
-
const icons = LucideIcons;
|
|
13591
|
-
const icon = icons[pascalName];
|
|
13592
|
-
if (icon) {
|
|
13593
|
-
return icon;
|
|
13594
|
-
}
|
|
13595
|
-
return Plus;
|
|
13596
|
-
}
|
|
13597
14020
|
var FloatingActionButton;
|
|
13598
14021
|
var init_FloatingActionButton = __esm({
|
|
13599
14022
|
"components/molecules/FloatingActionButton.tsx"() {
|
|
@@ -13619,7 +14042,7 @@ var init_FloatingActionButton = __esm({
|
|
|
13619
14042
|
const eventBus = useEventBus();
|
|
13620
14043
|
const { t } = useTranslate();
|
|
13621
14044
|
const resolvedAction = icon ? {
|
|
13622
|
-
icon
|
|
14045
|
+
icon,
|
|
13623
14046
|
onClick: () => {
|
|
13624
14047
|
if (action) eventBus.emit(`UI:${action}`, actionPayload ?? {});
|
|
13625
14048
|
onClick?.();
|
|
@@ -13693,7 +14116,7 @@ var init_FloatingActionButton = __esm({
|
|
|
13693
14116
|
{
|
|
13694
14117
|
align: "center",
|
|
13695
14118
|
gap: "sm",
|
|
13696
|
-
className: "transition-all duration-
|
|
14119
|
+
className: "transition-all duration-fast",
|
|
13697
14120
|
style: {
|
|
13698
14121
|
opacity: isExpanded ? 1 : 0,
|
|
13699
14122
|
transform: isExpanded ? "translateY(0)" : "translateY(10px)",
|
|
@@ -13729,9 +14152,9 @@ var init_FloatingActionButton = __esm({
|
|
|
13729
14152
|
{
|
|
13730
14153
|
variant: isExpanded ? "secondary" : "primary",
|
|
13731
14154
|
size: "lg",
|
|
13732
|
-
icon: isExpanded ?
|
|
14155
|
+
icon: isExpanded ? "x" : "plus",
|
|
13733
14156
|
onClick: handleMainClick,
|
|
13734
|
-
className: "rounded-full shadow-lg transition-all duration-
|
|
14157
|
+
className: "rounded-full shadow-lg transition-all duration-normal",
|
|
13735
14158
|
"aria-label": isExpanded ? "Close actions" : "Open actions",
|
|
13736
14159
|
"aria-expanded": isExpanded,
|
|
13737
14160
|
children: /* @__PURE__ */ jsx(Typography, { as: "span", className: "sr-only", children: isExpanded ? t("common.close") : t("common.open") })
|
|
@@ -13786,13 +14209,13 @@ var init_MapView = __esm({
|
|
|
13786
14209
|
shadowSize: [41, 41]
|
|
13787
14210
|
});
|
|
13788
14211
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
13789
|
-
const { useEffect:
|
|
14212
|
+
const { useEffect: useEffect89, useRef: useRef88, useCallback: useCallback129, useState: useState124 } = React98__default;
|
|
13790
14213
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
13791
14214
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
13792
14215
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
13793
14216
|
const map = useMap();
|
|
13794
14217
|
const prevRef = useRef88({ centerLat, centerLng, zoom });
|
|
13795
|
-
|
|
14218
|
+
useEffect89(() => {
|
|
13796
14219
|
const prev = prevRef.current;
|
|
13797
14220
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
13798
14221
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -13803,7 +14226,7 @@ var init_MapView = __esm({
|
|
|
13803
14226
|
}
|
|
13804
14227
|
function MapClickHandler({ onMapClick }) {
|
|
13805
14228
|
const map = useMap();
|
|
13806
|
-
|
|
14229
|
+
useEffect89(() => {
|
|
13807
14230
|
if (!onMapClick) return;
|
|
13808
14231
|
const handler = (e) => {
|
|
13809
14232
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -13831,7 +14254,7 @@ var init_MapView = __esm({
|
|
|
13831
14254
|
showAttribution = true
|
|
13832
14255
|
}) {
|
|
13833
14256
|
const eventBus = useEventBus3();
|
|
13834
|
-
const [clickedPosition, setClickedPosition] =
|
|
14257
|
+
const [clickedPosition, setClickedPosition] = useState124(null);
|
|
13835
14258
|
const handleMapClick = useCallback129((lat, lng) => {
|
|
13836
14259
|
if (showClickedPin) {
|
|
13837
14260
|
setClickedPosition({ lat, lng });
|
|
@@ -14032,7 +14455,7 @@ function InputPattern({
|
|
|
14032
14455
|
fieldName
|
|
14033
14456
|
}) {
|
|
14034
14457
|
const { emit } = useEventBus();
|
|
14035
|
-
const [localValue, setLocalValue] =
|
|
14458
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14036
14459
|
const handleChange = (e) => {
|
|
14037
14460
|
setLocalValue(e.target.value);
|
|
14038
14461
|
if (onChange) {
|
|
@@ -14070,7 +14493,7 @@ function TextareaPattern({
|
|
|
14070
14493
|
fieldName
|
|
14071
14494
|
}) {
|
|
14072
14495
|
const { emit } = useEventBus();
|
|
14073
|
-
const [localValue, setLocalValue] =
|
|
14496
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14074
14497
|
const handleChange = (e) => {
|
|
14075
14498
|
setLocalValue(e.target.value);
|
|
14076
14499
|
if (onChange) {
|
|
@@ -14102,7 +14525,7 @@ function SelectPattern({
|
|
|
14102
14525
|
fieldName
|
|
14103
14526
|
}) {
|
|
14104
14527
|
const { emit } = useEventBus();
|
|
14105
|
-
const [localValue, setLocalValue] =
|
|
14528
|
+
const [localValue, setLocalValue] = React98__default.useState(value);
|
|
14106
14529
|
const handleChange = (e) => {
|
|
14107
14530
|
setLocalValue(e.target.value);
|
|
14108
14531
|
if (onChange) {
|
|
@@ -14131,7 +14554,7 @@ function CheckboxPattern({
|
|
|
14131
14554
|
className
|
|
14132
14555
|
}) {
|
|
14133
14556
|
const { emit } = useEventBus();
|
|
14134
|
-
const [localChecked, setLocalChecked] =
|
|
14557
|
+
const [localChecked, setLocalChecked] = React98__default.useState(checked);
|
|
14135
14558
|
const handleChange = (e) => {
|
|
14136
14559
|
setLocalChecked(e.target.checked);
|
|
14137
14560
|
if (onChange) {
|
|
@@ -14362,8 +14785,8 @@ function ActionButtons({
|
|
|
14362
14785
|
disabled
|
|
14363
14786
|
}) {
|
|
14364
14787
|
const eventBus = useEventBus();
|
|
14365
|
-
const [activeButtons, setActiveButtons] =
|
|
14366
|
-
const handlePress =
|
|
14788
|
+
const [activeButtons, setActiveButtons] = React98.useState(/* @__PURE__ */ new Set());
|
|
14789
|
+
const handlePress = React98.useCallback(
|
|
14367
14790
|
(id) => {
|
|
14368
14791
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
14369
14792
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -14371,7 +14794,7 @@ function ActionButtons({
|
|
|
14371
14794
|
},
|
|
14372
14795
|
[actionEvent, eventBus, onAction]
|
|
14373
14796
|
);
|
|
14374
|
-
const handleRelease =
|
|
14797
|
+
const handleRelease = React98.useCallback(
|
|
14375
14798
|
(id) => {
|
|
14376
14799
|
setActiveButtons((prev) => {
|
|
14377
14800
|
const next = new Set(prev);
|
|
@@ -15235,7 +15658,7 @@ function IsometricCanvas({
|
|
|
15235
15658
|
const el = containerRef.current;
|
|
15236
15659
|
if (!el) return;
|
|
15237
15660
|
if (typeof ResizeObserver === "undefined") return;
|
|
15238
|
-
const
|
|
15661
|
+
const observer2 = new ResizeObserver((entries) => {
|
|
15239
15662
|
const entry = entries[0];
|
|
15240
15663
|
if (entry) {
|
|
15241
15664
|
const w = Math.round(entry.contentRect.width) || 800;
|
|
@@ -15246,8 +15669,8 @@ function IsometricCanvas({
|
|
|
15246
15669
|
});
|
|
15247
15670
|
}
|
|
15248
15671
|
});
|
|
15249
|
-
|
|
15250
|
-
return () =>
|
|
15672
|
+
observer2.observe(el);
|
|
15673
|
+
return () => observer2.disconnect();
|
|
15251
15674
|
}, []);
|
|
15252
15675
|
const units = useMemo(
|
|
15253
15676
|
() => unitsProp.map((u) => u.position ? u : { ...u, position: { x: u.x ?? 0, y: u.y ?? 0 } }),
|
|
@@ -16435,7 +16858,7 @@ var init_MarkdownContent = __esm({
|
|
|
16435
16858
|
init_Box();
|
|
16436
16859
|
init_useTranslate();
|
|
16437
16860
|
init_cn();
|
|
16438
|
-
MarkdownContent =
|
|
16861
|
+
MarkdownContent = React98__default.memo(
|
|
16439
16862
|
({ content, direction, className }) => {
|
|
16440
16863
|
const { t: _t } = useTranslate();
|
|
16441
16864
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -16581,6 +17004,7 @@ var init_CodeBlock = __esm({
|
|
|
16581
17004
|
init_Badge();
|
|
16582
17005
|
init_Stack();
|
|
16583
17006
|
init_Textarea();
|
|
17007
|
+
init_Icon();
|
|
16584
17008
|
init_useEventBus();
|
|
16585
17009
|
init_useTranslate();
|
|
16586
17010
|
SyntaxHighlighter.registerLanguage("json", langJson);
|
|
@@ -16653,7 +17077,7 @@ var init_CodeBlock = __esm({
|
|
|
16653
17077
|
log8 = createLogger("almadar:ui:markdown-code");
|
|
16654
17078
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
16655
17079
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
16656
|
-
CodeBlock =
|
|
17080
|
+
CodeBlock = React98__default.memo(
|
|
16657
17081
|
({
|
|
16658
17082
|
code: rawCode,
|
|
16659
17083
|
language = "text",
|
|
@@ -16871,7 +17295,7 @@ var init_CodeBlock = __esm({
|
|
|
16871
17295
|
onClick: handleCopy,
|
|
16872
17296
|
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
|
|
16873
17297
|
"aria-label": "Copy code",
|
|
16874
|
-
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" })
|
|
16875
17299
|
}
|
|
16876
17300
|
)
|
|
16877
17301
|
]
|
|
@@ -17107,8 +17531,8 @@ function Card2({
|
|
|
17107
17531
|
className: `
|
|
17108
17532
|
bg-card
|
|
17109
17533
|
border border-border
|
|
17110
|
-
rounded-
|
|
17111
|
-
${isClickable ? "cursor-pointer hover:shadow-
|
|
17534
|
+
rounded-container shadow-elevation-card
|
|
17535
|
+
${isClickable ? "cursor-pointer hover:shadow-elevation-dialog transition-shadow" : ""}
|
|
17112
17536
|
${className}
|
|
17113
17537
|
`,
|
|
17114
17538
|
onClick: isClickable ? handleClick : void 0,
|
|
@@ -17202,7 +17626,7 @@ var init_QuizBlock = __esm({
|
|
|
17202
17626
|
className: "self-start ml-7",
|
|
17203
17627
|
children: /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
17204
17628
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", children: revealed ? t("quiz.hideAnswer") : t("quiz.showAnswer") }),
|
|
17205
|
-
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" })
|
|
17206
17630
|
] })
|
|
17207
17631
|
}
|
|
17208
17632
|
)
|
|
@@ -17962,7 +18386,7 @@ var init_StateMachineView = __esm({
|
|
|
17962
18386
|
style: { top: title ? 30 : 0 },
|
|
17963
18387
|
children: [
|
|
17964
18388
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
17965
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
18389
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React98__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
17966
18390
|
StateNode,
|
|
17967
18391
|
{
|
|
17968
18392
|
state,
|
|
@@ -19110,28 +19534,22 @@ var init_BookTableOfContents = __esm({
|
|
|
19110
19534
|
BookTableOfContents.displayName = "BookTableOfContents";
|
|
19111
19535
|
}
|
|
19112
19536
|
});
|
|
19113
|
-
var
|
|
19537
|
+
var ICON_NAME_ALIASES, EmptyState;
|
|
19114
19538
|
var init_EmptyState = __esm({
|
|
19115
19539
|
"components/molecules/EmptyState.tsx"() {
|
|
19116
19540
|
"use client";
|
|
19117
19541
|
init_cn();
|
|
19118
19542
|
init_atoms();
|
|
19119
19543
|
init_Box();
|
|
19544
|
+
init_Icon();
|
|
19120
19545
|
init_Stack();
|
|
19121
19546
|
init_Typography();
|
|
19122
19547
|
init_useEventBus();
|
|
19123
19548
|
init_useTranslate();
|
|
19124
|
-
|
|
19125
|
-
"check-circle"
|
|
19126
|
-
|
|
19127
|
-
"
|
|
19128
|
-
error: XCircle,
|
|
19129
|
-
"alert-circle": AlertCircle,
|
|
19130
|
-
warning: AlertCircle,
|
|
19131
|
-
info: Info,
|
|
19132
|
-
search: Search,
|
|
19133
|
-
inbox: Inbox,
|
|
19134
|
-
"file-question": FileQuestion
|
|
19549
|
+
ICON_NAME_ALIASES = {
|
|
19550
|
+
check: "check-circle",
|
|
19551
|
+
error: "x-circle",
|
|
19552
|
+
warning: "alert-circle"
|
|
19135
19553
|
};
|
|
19136
19554
|
EmptyState = ({
|
|
19137
19555
|
icon,
|
|
@@ -19151,7 +19569,9 @@ var init_EmptyState = __esm({
|
|
|
19151
19569
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
|
|
19152
19570
|
onAction?.();
|
|
19153
19571
|
};
|
|
19154
|
-
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);
|
|
19155
19575
|
const isDestructive = destructive || variant === "error";
|
|
19156
19576
|
const isSuccess = variant === "success";
|
|
19157
19577
|
const displayText = title || message || t("empty.noItems");
|
|
@@ -19164,7 +19584,7 @@ var init_EmptyState = __esm({
|
|
|
19164
19584
|
className
|
|
19165
19585
|
),
|
|
19166
19586
|
children: [
|
|
19167
|
-
|
|
19587
|
+
hasIcon && /* @__PURE__ */ jsx(
|
|
19168
19588
|
Box,
|
|
19169
19589
|
{
|
|
19170
19590
|
className: cn(
|
|
@@ -19172,8 +19592,9 @@ var init_EmptyState = __esm({
|
|
|
19172
19592
|
isDestructive ? "bg-error/10" : isSuccess ? "bg-success/10" : "bg-muted"
|
|
19173
19593
|
),
|
|
19174
19594
|
children: /* @__PURE__ */ jsx(
|
|
19175
|
-
|
|
19595
|
+
Icon,
|
|
19176
19596
|
{
|
|
19597
|
+
...iconName ? { name: iconName } : { icon: iconComponent },
|
|
19177
19598
|
className: cn(
|
|
19178
19599
|
"h-8 w-8",
|
|
19179
19600
|
isDestructive ? "text-error" : isSuccess ? "text-success" : "text-muted-foreground"
|
|
@@ -19543,7 +19964,7 @@ var init_Grid = __esm({
|
|
|
19543
19964
|
as: Component2 = "div"
|
|
19544
19965
|
}) => {
|
|
19545
19966
|
const mergedStyle = rows ? { gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`, ...style } : style;
|
|
19546
|
-
return
|
|
19967
|
+
return React98__default.createElement(
|
|
19547
19968
|
Component2,
|
|
19548
19969
|
{
|
|
19549
19970
|
className: cn(
|
|
@@ -19913,7 +20334,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
19913
20334
|
const height = PADDING * 2 + items.length * (NODE_HEIGHT + NODE_GAP_Y);
|
|
19914
20335
|
return { items, positions, width, height };
|
|
19915
20336
|
}, [questions]);
|
|
19916
|
-
return /* @__PURE__ */ jsx(Box, { className: "overflow-auto rounded-
|
|
20337
|
+
return /* @__PURE__ */ jsx(Box, { className: "overflow-auto rounded-container border border-border bg-card p-2", children: /* @__PURE__ */ jsxs(
|
|
19917
20338
|
"svg",
|
|
19918
20339
|
{
|
|
19919
20340
|
width: layout.width,
|
|
@@ -20156,7 +20577,7 @@ var init_Breadcrumb = __esm({
|
|
|
20156
20577
|
init_useEventBus();
|
|
20157
20578
|
Breadcrumb = ({
|
|
20158
20579
|
items,
|
|
20159
|
-
separator =
|
|
20580
|
+
separator = "chevron-right",
|
|
20160
20581
|
maxItems,
|
|
20161
20582
|
className
|
|
20162
20583
|
}) => {
|
|
@@ -20185,7 +20606,7 @@ var init_Breadcrumb = __esm({
|
|
|
20185
20606
|
),
|
|
20186
20607
|
"aria-current": isLast ? "page" : void 0,
|
|
20187
20608
|
children: [
|
|
20188
|
-
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" })),
|
|
20189
20610
|
/* @__PURE__ */ jsx(
|
|
20190
20611
|
Typography,
|
|
20191
20612
|
{
|
|
@@ -20212,7 +20633,7 @@ var init_Breadcrumb = __esm({
|
|
|
20212
20633
|
"aria-current": isLast ? "page" : void 0,
|
|
20213
20634
|
disabled: isLast,
|
|
20214
20635
|
children: [
|
|
20215
|
-
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" })),
|
|
20216
20637
|
/* @__PURE__ */ jsx(
|
|
20217
20638
|
Typography,
|
|
20218
20639
|
{
|
|
@@ -20224,14 +20645,7 @@ var init_Breadcrumb = __esm({
|
|
|
20224
20645
|
]
|
|
20225
20646
|
}
|
|
20226
20647
|
),
|
|
20227
|
-
!isLast && /* @__PURE__ */ jsx(
|
|
20228
|
-
Icon,
|
|
20229
|
-
{
|
|
20230
|
-
icon: separator,
|
|
20231
|
-
size: "sm",
|
|
20232
|
-
className: "text-muted-foreground"
|
|
20233
|
-
}
|
|
20234
|
-
)
|
|
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" }))
|
|
20235
20649
|
] }, index);
|
|
20236
20650
|
}) })
|
|
20237
20651
|
}
|
|
@@ -20752,7 +21166,7 @@ function CalendarGrid({
|
|
|
20752
21166
|
{
|
|
20753
21167
|
variant: "ghost",
|
|
20754
21168
|
size: "sm",
|
|
20755
|
-
icon:
|
|
21169
|
+
icon: "chevron-left",
|
|
20756
21170
|
onClick: stepPrev,
|
|
20757
21171
|
"aria-disabled": !canPrev || void 0,
|
|
20758
21172
|
"aria-label": "Previous days",
|
|
@@ -20765,7 +21179,7 @@ function CalendarGrid({
|
|
|
20765
21179
|
{
|
|
20766
21180
|
variant: "ghost",
|
|
20767
21181
|
size: "sm",
|
|
20768
|
-
iconRight:
|
|
21182
|
+
iconRight: "chevron-right",
|
|
20769
21183
|
onClick: stepNext,
|
|
20770
21184
|
"aria-disabled": !canNext || void 0,
|
|
20771
21185
|
"aria-label": "Next days",
|
|
@@ -22811,7 +23225,7 @@ var init_Carousel = __esm({
|
|
|
22811
23225
|
Box,
|
|
22812
23226
|
{
|
|
22813
23227
|
className: cn(
|
|
22814
|
-
"rounded-full cursor-pointer transition-all duration-
|
|
23228
|
+
"rounded-full cursor-pointer transition-all duration-fast"
|
|
22815
23229
|
),
|
|
22816
23230
|
style: {
|
|
22817
23231
|
width: isActive ? 10 : 8,
|
|
@@ -23903,7 +24317,7 @@ var init_CodeExample = __esm({
|
|
|
23903
24317
|
{
|
|
23904
24318
|
className: cn(
|
|
23905
24319
|
"bg-foreground",
|
|
23906
|
-
"rounded-
|
|
24320
|
+
"rounded-container",
|
|
23907
24321
|
"border-[length:var(--border-width)] border-border",
|
|
23908
24322
|
"overflow-hidden",
|
|
23909
24323
|
className
|
|
@@ -24679,7 +25093,7 @@ function CounterMinimal({
|
|
|
24679
25093
|
size: sizeStyles9[size].button,
|
|
24680
25094
|
onClick: onDecrement,
|
|
24681
25095
|
disabled: resolved.decrementDisabled,
|
|
24682
|
-
icon:
|
|
25096
|
+
icon: "minus",
|
|
24683
25097
|
children: resolved.decrementLabel
|
|
24684
25098
|
}
|
|
24685
25099
|
),
|
|
@@ -24701,7 +25115,7 @@ function CounterMinimal({
|
|
|
24701
25115
|
size: sizeStyles9[size].button,
|
|
24702
25116
|
onClick: onIncrement,
|
|
24703
25117
|
disabled: resolved.incrementDisabled,
|
|
24704
|
-
icon:
|
|
25118
|
+
icon: "plus",
|
|
24705
25119
|
children: resolved.incrementLabel
|
|
24706
25120
|
}
|
|
24707
25121
|
)
|
|
@@ -24747,7 +25161,7 @@ function CounterStandard({
|
|
|
24747
25161
|
size: sizeStyles9[size].button,
|
|
24748
25162
|
onClick: onDecrement,
|
|
24749
25163
|
disabled: resolved.decrementDisabled,
|
|
24750
|
-
icon:
|
|
25164
|
+
icon: "minus"
|
|
24751
25165
|
}
|
|
24752
25166
|
),
|
|
24753
25167
|
/* @__PURE__ */ jsx(
|
|
@@ -24757,7 +25171,7 @@ function CounterStandard({
|
|
|
24757
25171
|
size: sizeStyles9[size].button,
|
|
24758
25172
|
onClick: onIncrement,
|
|
24759
25173
|
disabled: resolved.incrementDisabled,
|
|
24760
|
-
icon:
|
|
25174
|
+
icon: "plus"
|
|
24761
25175
|
}
|
|
24762
25176
|
)
|
|
24763
25177
|
] }),
|
|
@@ -24767,7 +25181,7 @@ function CounterStandard({
|
|
|
24767
25181
|
variant: "ghost",
|
|
24768
25182
|
size: "sm",
|
|
24769
25183
|
onClick: onReset,
|
|
24770
|
-
icon:
|
|
25184
|
+
icon: "rotate-ccw",
|
|
24771
25185
|
children: "Reset"
|
|
24772
25186
|
}
|
|
24773
25187
|
)
|
|
@@ -24816,7 +25230,7 @@ function CounterFull({
|
|
|
24816
25230
|
size: sizeStyles9[size].button,
|
|
24817
25231
|
onClick: onDecrement,
|
|
24818
25232
|
disabled: resolved.decrementDisabled,
|
|
24819
|
-
icon:
|
|
25233
|
+
icon: "minus",
|
|
24820
25234
|
children: resolved.decrementLabel
|
|
24821
25235
|
}
|
|
24822
25236
|
),
|
|
@@ -24827,7 +25241,7 @@ function CounterFull({
|
|
|
24827
25241
|
size: sizeStyles9[size].button,
|
|
24828
25242
|
onClick: onIncrement,
|
|
24829
25243
|
disabled: resolved.incrementDisabled,
|
|
24830
|
-
icon:
|
|
25244
|
+
icon: "plus",
|
|
24831
25245
|
children: resolved.incrementLabel
|
|
24832
25246
|
}
|
|
24833
25247
|
)
|
|
@@ -24838,7 +25252,7 @@ function CounterFull({
|
|
|
24838
25252
|
variant: "ghost",
|
|
24839
25253
|
size: "sm",
|
|
24840
25254
|
onClick: onReset,
|
|
24841
|
-
icon:
|
|
25255
|
+
icon: "rotate-ccw",
|
|
24842
25256
|
children: "Reset to 0"
|
|
24843
25257
|
}
|
|
24844
25258
|
)
|
|
@@ -24886,7 +25300,7 @@ function CraftingRecipe({
|
|
|
24886
25300
|
className
|
|
24887
25301
|
}) {
|
|
24888
25302
|
const eventBus = useEventBus();
|
|
24889
|
-
const handleCraft =
|
|
25303
|
+
const handleCraft = React98.useCallback(() => {
|
|
24890
25304
|
onCraft?.();
|
|
24891
25305
|
if (craftEvent) {
|
|
24892
25306
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -24903,7 +25317,7 @@ function CraftingRecipe({
|
|
|
24903
25317
|
children: [
|
|
24904
25318
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
24905
25319
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
24906
|
-
return /* @__PURE__ */ jsxs(
|
|
25320
|
+
return /* @__PURE__ */ jsxs(React98.Fragment, { children: [
|
|
24907
25321
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
24908
25322
|
ItemSlot,
|
|
24909
25323
|
{
|
|
@@ -24966,8 +25380,8 @@ function DPad({
|
|
|
24966
25380
|
}) {
|
|
24967
25381
|
const eventBus = useEventBus();
|
|
24968
25382
|
const sizes = sizeMap15[size];
|
|
24969
|
-
const [activeDirections, setActiveDirections] =
|
|
24970
|
-
const handlePress =
|
|
25383
|
+
const [activeDirections, setActiveDirections] = React98.useState(/* @__PURE__ */ new Set());
|
|
25384
|
+
const handlePress = React98.useCallback(
|
|
24971
25385
|
(direction) => {
|
|
24972
25386
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
24973
25387
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -24975,7 +25389,7 @@ function DPad({
|
|
|
24975
25389
|
},
|
|
24976
25390
|
[directionEvent, eventBus, onDirection]
|
|
24977
25391
|
);
|
|
24978
|
-
const handleRelease =
|
|
25392
|
+
const handleRelease = React98.useCallback(
|
|
24979
25393
|
(direction) => {
|
|
24980
25394
|
setActiveDirections((prev) => {
|
|
24981
25395
|
const next = new Set(prev);
|
|
@@ -25240,7 +25654,7 @@ var init_DashboardLayout = __esm({
|
|
|
25240
25654
|
variant: "ghost",
|
|
25241
25655
|
className: "@lg/dashboard:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
25242
25656
|
onClick: () => setSidebarOpen(false),
|
|
25243
|
-
children: /* @__PURE__ */ jsx(
|
|
25657
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-5 w-5" })
|
|
25244
25658
|
}
|
|
25245
25659
|
)
|
|
25246
25660
|
]
|
|
@@ -25286,7 +25700,7 @@ var init_DashboardLayout = __esm({
|
|
|
25286
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",
|
|
25287
25701
|
onClick: () => setSidebarOpen(true),
|
|
25288
25702
|
"aria-label": "Open sidebar",
|
|
25289
|
-
children: /* @__PURE__ */ jsx(
|
|
25703
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "menu", className: "h-5 w-5" })
|
|
25290
25704
|
}
|
|
25291
25705
|
),
|
|
25292
25706
|
isTopNav && /* @__PURE__ */ jsxs(
|
|
@@ -25329,7 +25743,7 @@ var init_DashboardLayout = __esm({
|
|
|
25329
25743
|
}
|
|
25330
25744
|
),
|
|
25331
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: [
|
|
25332
|
-
/* @__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" }),
|
|
25333
25747
|
/* @__PURE__ */ jsx(
|
|
25334
25748
|
Input,
|
|
25335
25749
|
{
|
|
@@ -25380,7 +25794,7 @@ var init_DashboardLayout = __esm({
|
|
|
25380
25794
|
onClick: handleNotificationClick,
|
|
25381
25795
|
"aria-label": t("common.notifications"),
|
|
25382
25796
|
children: [
|
|
25383
|
-
/* @__PURE__ */ jsx(
|
|
25797
|
+
/* @__PURE__ */ jsx(Icon, { name: "bell", className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
25384
25798
|
unreadCount > 0 && /* @__PURE__ */ jsx(
|
|
25385
25799
|
Box,
|
|
25386
25800
|
{
|
|
@@ -25418,7 +25832,7 @@ var init_DashboardLayout = __esm({
|
|
|
25418
25832
|
children: user.name
|
|
25419
25833
|
}
|
|
25420
25834
|
),
|
|
25421
|
-
/* @__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" })
|
|
25422
25836
|
]
|
|
25423
25837
|
}
|
|
25424
25838
|
),
|
|
@@ -25461,7 +25875,7 @@ var init_DashboardLayout = __esm({
|
|
|
25461
25875
|
},
|
|
25462
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",
|
|
25463
25877
|
children: [
|
|
25464
|
-
/* @__PURE__ */ jsx(
|
|
25878
|
+
/* @__PURE__ */ jsx(Icon, { name: "log-out", className: "h-4 w-4" }),
|
|
25465
25879
|
t("auth.signOut")
|
|
25466
25880
|
]
|
|
25467
25881
|
}
|
|
@@ -25643,14 +26057,14 @@ function useDataDnd(args) {
|
|
|
25643
26057
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
25644
26058
|
const enabled = isZone || Boolean(dndRoot);
|
|
25645
26059
|
const eventBus = useEventBus();
|
|
25646
|
-
const parentRoot =
|
|
26060
|
+
const parentRoot = React98__default.useContext(RootCtx);
|
|
25647
26061
|
const isRoot = enabled && parentRoot === null;
|
|
25648
|
-
const zoneId =
|
|
26062
|
+
const zoneId = React98__default.useId();
|
|
25649
26063
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
25650
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
25651
|
-
const optimisticOrdersRef =
|
|
26064
|
+
const [optimisticOrders, setOptimisticOrders] = React98__default.useState(() => /* @__PURE__ */ new Map());
|
|
26065
|
+
const optimisticOrdersRef = React98__default.useRef(optimisticOrders);
|
|
25652
26066
|
optimisticOrdersRef.current = optimisticOrders;
|
|
25653
|
-
const clearOptimisticOrder =
|
|
26067
|
+
const clearOptimisticOrder = React98__default.useCallback((group) => {
|
|
25654
26068
|
setOptimisticOrders((prev) => {
|
|
25655
26069
|
if (!prev.has(group)) return prev;
|
|
25656
26070
|
const next = new Map(prev);
|
|
@@ -25675,7 +26089,7 @@ function useDataDnd(args) {
|
|
|
25675
26089
|
const raw = it[dndItemIdField];
|
|
25676
26090
|
return String(raw ?? `__idx_${idx}`);
|
|
25677
26091
|
}).join("|");
|
|
25678
|
-
const itemIds =
|
|
26092
|
+
const itemIds = React98__default.useMemo(
|
|
25679
26093
|
() => orderedItems.map((it, idx) => {
|
|
25680
26094
|
const raw = it[dndItemIdField];
|
|
25681
26095
|
return raw ?? `__idx_${idx}`;
|
|
@@ -25683,7 +26097,7 @@ function useDataDnd(args) {
|
|
|
25683
26097
|
[itemIdsSignature]
|
|
25684
26098
|
);
|
|
25685
26099
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
25686
|
-
|
|
26100
|
+
React98__default.useEffect(() => {
|
|
25687
26101
|
const root = isRoot ? null : parentRoot;
|
|
25688
26102
|
if (root) {
|
|
25689
26103
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -25691,20 +26105,20 @@ function useDataDnd(args) {
|
|
|
25691
26105
|
clearOptimisticOrder(ownGroup);
|
|
25692
26106
|
}
|
|
25693
26107
|
}, [itemsContentSig, ownGroup]);
|
|
25694
|
-
const zonesRef =
|
|
25695
|
-
const registerZone =
|
|
26108
|
+
const zonesRef = React98__default.useRef(/* @__PURE__ */ new Map());
|
|
26109
|
+
const registerZone = React98__default.useCallback((zoneId2, meta2) => {
|
|
25696
26110
|
zonesRef.current.set(zoneId2, meta2);
|
|
25697
26111
|
}, []);
|
|
25698
|
-
const unregisterZone =
|
|
26112
|
+
const unregisterZone = React98__default.useCallback((zoneId2) => {
|
|
25699
26113
|
zonesRef.current.delete(zoneId2);
|
|
25700
26114
|
}, []);
|
|
25701
|
-
const [activeDrag, setActiveDrag] =
|
|
25702
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
25703
|
-
const meta =
|
|
26115
|
+
const [activeDrag, setActiveDrag] = React98__default.useState(null);
|
|
26116
|
+
const [overZoneGroup, setOverZoneGroup] = React98__default.useState(null);
|
|
26117
|
+
const meta = React98__default.useMemo(
|
|
25704
26118
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
25705
26119
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
25706
26120
|
);
|
|
25707
|
-
|
|
26121
|
+
React98__default.useEffect(() => {
|
|
25708
26122
|
const target = isRoot ? null : parentRoot;
|
|
25709
26123
|
if (!target) {
|
|
25710
26124
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -25723,7 +26137,7 @@ function useDataDnd(args) {
|
|
|
25723
26137
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
25724
26138
|
const sensors = useAlmadarDndSensors(true);
|
|
25725
26139
|
const collisionDetection = almadarDndCollisionDetection;
|
|
25726
|
-
const findZoneByItem =
|
|
26140
|
+
const findZoneByItem = React98__default.useCallback(
|
|
25727
26141
|
(id) => {
|
|
25728
26142
|
for (const z of zonesRef.current.values()) {
|
|
25729
26143
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -25732,7 +26146,7 @@ function useDataDnd(args) {
|
|
|
25732
26146
|
},
|
|
25733
26147
|
[]
|
|
25734
26148
|
);
|
|
25735
|
-
|
|
26149
|
+
React98__default.useCallback(
|
|
25736
26150
|
(group) => {
|
|
25737
26151
|
for (const z of zonesRef.current.values()) {
|
|
25738
26152
|
if (z.group === group) return z;
|
|
@@ -25741,7 +26155,7 @@ function useDataDnd(args) {
|
|
|
25741
26155
|
},
|
|
25742
26156
|
[]
|
|
25743
26157
|
);
|
|
25744
|
-
const handleDragEnd =
|
|
26158
|
+
const handleDragEnd = React98__default.useCallback(
|
|
25745
26159
|
(event) => {
|
|
25746
26160
|
const { active, over } = event;
|
|
25747
26161
|
const activeIdStr = String(active.id);
|
|
@@ -25832,12 +26246,12 @@ function useDataDnd(args) {
|
|
|
25832
26246
|
},
|
|
25833
26247
|
[eventBus]
|
|
25834
26248
|
);
|
|
25835
|
-
const sortableData =
|
|
25836
|
-
const SortableItem =
|
|
26249
|
+
const sortableData = React98__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
26250
|
+
const SortableItem = React98__default.useCallback(
|
|
25837
26251
|
({ id, children }) => {
|
|
25838
26252
|
const {
|
|
25839
26253
|
attributes,
|
|
25840
|
-
listeners:
|
|
26254
|
+
listeners: listeners7,
|
|
25841
26255
|
setNodeRef,
|
|
25842
26256
|
transform,
|
|
25843
26257
|
transition,
|
|
@@ -25860,7 +26274,7 @@ function useDataDnd(args) {
|
|
|
25860
26274
|
ref: setNodeRef,
|
|
25861
26275
|
style,
|
|
25862
26276
|
...attributes,
|
|
25863
|
-
...
|
|
26277
|
+
...listeners7,
|
|
25864
26278
|
children
|
|
25865
26279
|
}
|
|
25866
26280
|
);
|
|
@@ -25873,7 +26287,7 @@ function useDataDnd(args) {
|
|
|
25873
26287
|
id: droppableId,
|
|
25874
26288
|
data: sortableData
|
|
25875
26289
|
});
|
|
25876
|
-
const ctx =
|
|
26290
|
+
const ctx = React98__default.useContext(RootCtx);
|
|
25877
26291
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
25878
26292
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
25879
26293
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -25888,7 +26302,7 @@ function useDataDnd(args) {
|
|
|
25888
26302
|
showForeignPlaceholder,
|
|
25889
26303
|
ctxAvailable: ctx != null
|
|
25890
26304
|
});
|
|
25891
|
-
|
|
26305
|
+
React98__default.useEffect(() => {
|
|
25892
26306
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
25893
26307
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
25894
26308
|
return /* @__PURE__ */ jsx(
|
|
@@ -25902,11 +26316,11 @@ function useDataDnd(args) {
|
|
|
25902
26316
|
}
|
|
25903
26317
|
);
|
|
25904
26318
|
};
|
|
25905
|
-
const rootContextValue =
|
|
26319
|
+
const rootContextValue = React98__default.useMemo(
|
|
25906
26320
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
25907
26321
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
25908
26322
|
);
|
|
25909
|
-
const handleDragStart =
|
|
26323
|
+
const handleDragStart = React98__default.useCallback((event) => {
|
|
25910
26324
|
const sourceZone = findZoneByItem(event.active.id);
|
|
25911
26325
|
const rect = event.active.rect.current.initial;
|
|
25912
26326
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -25925,7 +26339,7 @@ function useDataDnd(args) {
|
|
|
25925
26339
|
isRoot
|
|
25926
26340
|
});
|
|
25927
26341
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
25928
|
-
const handleDragOver =
|
|
26342
|
+
const handleDragOver = React98__default.useCallback((event) => {
|
|
25929
26343
|
const { active, over } = event;
|
|
25930
26344
|
const overData = over?.data?.current;
|
|
25931
26345
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -25995,7 +26409,7 @@ function useDataDnd(args) {
|
|
|
25995
26409
|
return next;
|
|
25996
26410
|
});
|
|
25997
26411
|
}, []);
|
|
25998
|
-
const handleDragCancel =
|
|
26412
|
+
const handleDragCancel = React98__default.useCallback((event) => {
|
|
25999
26413
|
setActiveDrag(null);
|
|
26000
26414
|
setOverZoneGroup(null);
|
|
26001
26415
|
dndLog.warn("dragCancel", {
|
|
@@ -26003,12 +26417,12 @@ function useDataDnd(args) {
|
|
|
26003
26417
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
26004
26418
|
});
|
|
26005
26419
|
}, []);
|
|
26006
|
-
const handleDragEndWithCleanup =
|
|
26420
|
+
const handleDragEndWithCleanup = React98__default.useCallback((event) => {
|
|
26007
26421
|
handleDragEnd(event);
|
|
26008
26422
|
setActiveDrag(null);
|
|
26009
26423
|
setOverZoneGroup(null);
|
|
26010
26424
|
}, [handleDragEnd]);
|
|
26011
|
-
const wrapContainer =
|
|
26425
|
+
const wrapContainer = React98__default.useCallback(
|
|
26012
26426
|
(children) => {
|
|
26013
26427
|
if (!enabled) return children;
|
|
26014
26428
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -26062,7 +26476,7 @@ var init_useDataDnd = __esm({
|
|
|
26062
26476
|
init_useAlmadarDndCollision();
|
|
26063
26477
|
init_Box();
|
|
26064
26478
|
dndLog = createLogger("almadar:ui:dnd");
|
|
26065
|
-
RootCtx =
|
|
26479
|
+
RootCtx = React98__default.createContext(null);
|
|
26066
26480
|
}
|
|
26067
26481
|
});
|
|
26068
26482
|
function fieldLabel2(key) {
|
|
@@ -26284,7 +26698,7 @@ function DataGrid({
|
|
|
26284
26698
|
className: cn(
|
|
26285
26699
|
"bg-card rounded-lg",
|
|
26286
26700
|
"border border-border",
|
|
26287
|
-
"shadow-
|
|
26701
|
+
"shadow-elevation-card hover:shadow-elevation-dialog",
|
|
26288
26702
|
"hover:border-primary transition-all",
|
|
26289
26703
|
"flex flex-col",
|
|
26290
26704
|
isSelected && "ring-2 ring-primary border-primary"
|
|
@@ -26551,7 +26965,7 @@ function DataList({
|
|
|
26551
26965
|
}) {
|
|
26552
26966
|
const eventBus = useEventBus();
|
|
26553
26967
|
const { t } = useTranslate();
|
|
26554
|
-
const [visibleCount, setVisibleCount] =
|
|
26968
|
+
const [visibleCount, setVisibleCount] = React98__default.useState(pageSize || Infinity);
|
|
26555
26969
|
const fieldDefs = fields ?? columns ?? [];
|
|
26556
26970
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
26557
26971
|
const dnd = useDataDnd({
|
|
@@ -26570,7 +26984,7 @@ function DataList({
|
|
|
26570
26984
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
26571
26985
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
26572
26986
|
const hasRenderProp = typeof children === "function";
|
|
26573
|
-
|
|
26987
|
+
React98__default.useEffect(() => {
|
|
26574
26988
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
26575
26989
|
const childrenTypeOf = typeof children;
|
|
26576
26990
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -26627,7 +27041,7 @@ function DataList({
|
|
|
26627
27041
|
const items2 = data.map((item) => item);
|
|
26628
27042
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
26629
27043
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
26630
|
-
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: [
|
|
26631
27045
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
26632
27046
|
group.items.map((itemData, index) => {
|
|
26633
27047
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -26658,7 +27072,7 @@ function DataList({
|
|
|
26658
27072
|
{
|
|
26659
27073
|
variant: "caption",
|
|
26660
27074
|
className: cn(
|
|
26661
|
-
"mt-1 text-
|
|
27075
|
+
"mt-1 text-xs",
|
|
26662
27076
|
isSent ? "opacity-70" : "text-muted-foreground"
|
|
26663
27077
|
),
|
|
26664
27078
|
children: formatDate3(timestamp)
|
|
@@ -26723,7 +27137,7 @@ function DataList({
|
|
|
26723
27137
|
Box,
|
|
26724
27138
|
{
|
|
26725
27139
|
className: cn(
|
|
26726
|
-
"group flex items-center gap-4 transition-all duration-
|
|
27140
|
+
"group flex items-center gap-4 transition-all duration-fast",
|
|
26727
27141
|
isCompact ? "px-4 py-2" : "px-6 py-4",
|
|
26728
27142
|
"hover:bg-muted/80",
|
|
26729
27143
|
!isCard && !isCompact && "rounded-lg border border-transparent hover:border-border"
|
|
@@ -26810,12 +27224,12 @@ function DataList({
|
|
|
26810
27224
|
Box,
|
|
26811
27225
|
{
|
|
26812
27226
|
className: cn(
|
|
26813
|
-
isCard && "bg-card rounded-xl border border-border shadow-
|
|
27227
|
+
isCard && "bg-card rounded-xl border border-border shadow-elevation-dialog overflow-hidden",
|
|
26814
27228
|
!isCard && gapClass,
|
|
26815
27229
|
className
|
|
26816
27230
|
),
|
|
26817
27231
|
children: [
|
|
26818
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
27232
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
26819
27233
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
26820
27234
|
group.items.map(
|
|
26821
27235
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -26952,7 +27366,7 @@ var init_FileTree = __esm({
|
|
|
26952
27366
|
Typography,
|
|
26953
27367
|
{
|
|
26954
27368
|
variant: "caption",
|
|
26955
|
-
className: `truncate font-mono text-
|
|
27369
|
+
className: `truncate font-mono text-xs !text-inherit ${isSelected ? "font-semibold" : ""}`,
|
|
26956
27370
|
children: node.name
|
|
26957
27371
|
}
|
|
26958
27372
|
),
|
|
@@ -27105,6 +27519,7 @@ var init_FilterGroup = __esm({
|
|
|
27105
27519
|
init_Select();
|
|
27106
27520
|
init_Badge();
|
|
27107
27521
|
init_Stack();
|
|
27522
|
+
init_Icon();
|
|
27108
27523
|
init_useEventBus();
|
|
27109
27524
|
init_useQuerySingleton();
|
|
27110
27525
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
@@ -27173,7 +27588,7 @@ var init_FilterGroup = __esm({
|
|
|
27173
27588
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
27174
27589
|
if (variant === "pills") {
|
|
27175
27590
|
return /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "center", className: cn("flex-wrap", className), children: [
|
|
27176
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
27591
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
27177
27592
|
filters.map((filter) => /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", children: [
|
|
27178
27593
|
/* @__PURE__ */ jsxs("span", { className: "text-sm font-[var(--font-weight-medium)] text-muted-foreground", children: [
|
|
27179
27594
|
filter.label,
|
|
@@ -27221,7 +27636,7 @@ var init_FilterGroup = __esm({
|
|
|
27221
27636
|
variant: "ghost",
|
|
27222
27637
|
size: "sm",
|
|
27223
27638
|
onClick: handleClearAll,
|
|
27224
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27639
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27225
27640
|
children: "Clear"
|
|
27226
27641
|
}
|
|
27227
27642
|
)
|
|
@@ -27230,7 +27645,7 @@ var init_FilterGroup = __esm({
|
|
|
27230
27645
|
if (variant === "vertical") {
|
|
27231
27646
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
27232
27647
|
showIcon && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
27233
|
-
/* @__PURE__ */ jsx(
|
|
27648
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
27234
27649
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
27235
27650
|
] }),
|
|
27236
27651
|
filters.map((filter) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
@@ -27303,7 +27718,7 @@ var init_FilterGroup = __esm({
|
|
|
27303
27718
|
variant: "ghost",
|
|
27304
27719
|
size: "sm",
|
|
27305
27720
|
onClick: handleClearAll,
|
|
27306
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27721
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27307
27722
|
className: "self-start",
|
|
27308
27723
|
children: "Clear all"
|
|
27309
27724
|
}
|
|
@@ -27312,7 +27727,7 @@ var init_FilterGroup = __esm({
|
|
|
27312
27727
|
}
|
|
27313
27728
|
if (variant === "compact") {
|
|
27314
27729
|
return /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: cn("flex-wrap", className), children: [
|
|
27315
|
-
showIcon && /* @__PURE__ */ jsx(
|
|
27730
|
+
showIcon && /* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4 text-muted-foreground" }),
|
|
27316
27731
|
filters.map((filter) => /* @__PURE__ */ jsx("div", { className: "min-w-[120px]", children: resolveFilterType(filter) === "date" ? /* @__PURE__ */ jsx(
|
|
27317
27732
|
Input,
|
|
27318
27733
|
{
|
|
@@ -27388,7 +27803,7 @@ var init_FilterGroup = __esm({
|
|
|
27388
27803
|
filterDef?.label,
|
|
27389
27804
|
": ",
|
|
27390
27805
|
value,
|
|
27391
|
-
/* @__PURE__ */ jsx(
|
|
27806
|
+
/* @__PURE__ */ jsx(Icon, { name: "x", className: "ml-1 h-3 w-3" })
|
|
27392
27807
|
]
|
|
27393
27808
|
},
|
|
27394
27809
|
field
|
|
@@ -27402,7 +27817,7 @@ var init_FilterGroup = __esm({
|
|
|
27402
27817
|
"div",
|
|
27403
27818
|
{
|
|
27404
27819
|
className: cn(
|
|
27405
|
-
"p-4 rounded-
|
|
27820
|
+
"p-4 rounded-container",
|
|
27406
27821
|
"bg-card",
|
|
27407
27822
|
"border-[length:var(--border-width)] border-border",
|
|
27408
27823
|
className
|
|
@@ -27415,7 +27830,7 @@ var init_FilterGroup = __esm({
|
|
|
27415
27830
|
align: "center",
|
|
27416
27831
|
className: "text-muted-foreground",
|
|
27417
27832
|
children: [
|
|
27418
|
-
/* @__PURE__ */ jsx(
|
|
27833
|
+
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
27419
27834
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-[var(--font-weight-bold)] uppercase tracking-wide", children: "Filters" })
|
|
27420
27835
|
]
|
|
27421
27836
|
}
|
|
@@ -27501,7 +27916,7 @@ var init_FilterGroup = __esm({
|
|
|
27501
27916
|
variant: "ghost",
|
|
27502
27917
|
size: "sm",
|
|
27503
27918
|
onClick: handleClearAll,
|
|
27504
|
-
leftIcon: /* @__PURE__ */ jsx(
|
|
27919
|
+
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27505
27920
|
children: "Clear all"
|
|
27506
27921
|
}
|
|
27507
27922
|
)
|
|
@@ -27718,6 +28133,7 @@ var init_RelationSelect = __esm({
|
|
|
27718
28133
|
"use client";
|
|
27719
28134
|
init_cn();
|
|
27720
28135
|
init_Box();
|
|
28136
|
+
init_Icon();
|
|
27721
28137
|
init_Stack();
|
|
27722
28138
|
init_Input();
|
|
27723
28139
|
init_Button();
|
|
@@ -27861,12 +28277,13 @@ var init_RelationSelect = __esm({
|
|
|
27861
28277
|
as: "button",
|
|
27862
28278
|
className: "p-0.5 hover:bg-muted rounded cursor-pointer",
|
|
27863
28279
|
onClick: handleClear,
|
|
27864
|
-
children: /* @__PURE__ */ jsx(
|
|
28280
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-4 w-4 text-muted-foreground" })
|
|
27865
28281
|
}
|
|
27866
28282
|
),
|
|
27867
28283
|
/* @__PURE__ */ jsx(
|
|
27868
|
-
|
|
28284
|
+
Icon,
|
|
27869
28285
|
{
|
|
28286
|
+
name: "chevron-down",
|
|
27870
28287
|
className: cn(
|
|
27871
28288
|
"h-4 w-4 text-muted-foreground transition-transform",
|
|
27872
28289
|
isOpen && "transform rotate-180"
|
|
@@ -28084,7 +28501,7 @@ var init_SidePanel = __esm({
|
|
|
28084
28501
|
"border-l-2 border-border",
|
|
28085
28502
|
position === "left" && "border-l-0 border-r-2",
|
|
28086
28503
|
"flex flex-col",
|
|
28087
|
-
"transition-transform duration-
|
|
28504
|
+
"transition-transform duration-normal ease-standard",
|
|
28088
28505
|
width,
|
|
28089
28506
|
position === "right" ? "right-0" : "left-0",
|
|
28090
28507
|
className
|
|
@@ -28097,7 +28514,7 @@ var init_SidePanel = __esm({
|
|
|
28097
28514
|
{
|
|
28098
28515
|
variant: "ghost",
|
|
28099
28516
|
size: "sm",
|
|
28100
|
-
icon:
|
|
28517
|
+
icon: "x",
|
|
28101
28518
|
onClick: handleClose,
|
|
28102
28519
|
"aria-label": "Close panel",
|
|
28103
28520
|
children: /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", className: "sr-only", children: "Close" })
|
|
@@ -28155,7 +28572,7 @@ var init_WizardProgress = __esm({
|
|
|
28155
28572
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
28156
28573
|
const isActive = index === currentStep;
|
|
28157
28574
|
const isCompleted = index < currentStep;
|
|
28158
|
-
return /* @__PURE__ */ jsxs(
|
|
28575
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
28159
28576
|
/* @__PURE__ */ jsx(
|
|
28160
28577
|
"button",
|
|
28161
28578
|
{
|
|
@@ -28169,7 +28586,7 @@ var init_WizardProgress = __esm({
|
|
|
28169
28586
|
isCompleted && "bg-foreground text-background cursor-pointer hover:bg-muted-foreground",
|
|
28170
28587
|
!isActive && !isCompleted && "bg-card text-foreground"
|
|
28171
28588
|
),
|
|
28172
|
-
children: isCompleted ? /* @__PURE__ */ jsx(Icon, {
|
|
28589
|
+
children: isCompleted ? /* @__PURE__ */ jsx(Icon, { name: "check", size: "sm" }) : index + 1
|
|
28173
28590
|
}
|
|
28174
28591
|
),
|
|
28175
28592
|
!compact && /* @__PURE__ */ jsx(
|
|
@@ -28288,13 +28705,13 @@ var init_WizardNavigation = __esm({
|
|
|
28288
28705
|
),
|
|
28289
28706
|
children: [
|
|
28290
28707
|
showBack ? /* @__PURE__ */ jsxs(Button, { variant: "secondary", onClick: handleBack, disabled: isFirstStep, children: [
|
|
28291
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
28708
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-left", size: "sm" }),
|
|
28292
28709
|
resolvedBackLabel
|
|
28293
28710
|
] }) : /* @__PURE__ */ jsx(Box, {}),
|
|
28294
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) }) }) }),
|
|
28295
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: [
|
|
28296
28713
|
resolvedNextLabel,
|
|
28297
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
28714
|
+
/* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm" })
|
|
28298
28715
|
] }) : /* @__PURE__ */ jsx(Box, {})
|
|
28299
28716
|
]
|
|
28300
28717
|
}
|
|
@@ -28486,7 +28903,7 @@ var init_ViolationAlert = __esm({
|
|
|
28486
28903
|
Box,
|
|
28487
28904
|
{
|
|
28488
28905
|
className: cn(
|
|
28489
|
-
"px-3 py-2 rounded-
|
|
28906
|
+
"px-3 py-2 rounded-container border",
|
|
28490
28907
|
bgColor,
|
|
28491
28908
|
className
|
|
28492
28909
|
),
|
|
@@ -28747,7 +29164,7 @@ var init_FlipCard = __esm({
|
|
|
28747
29164
|
/* @__PURE__ */ jsx(
|
|
28748
29165
|
Box,
|
|
28749
29166
|
{
|
|
28750
|
-
className: "absolute inset-0 w-full h-full rounded-lg shadow-
|
|
29167
|
+
className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
|
|
28751
29168
|
style: { backfaceVisibility: "hidden", transform: "rotateY(0deg)" },
|
|
28752
29169
|
children: front
|
|
28753
29170
|
}
|
|
@@ -28755,7 +29172,7 @@ var init_FlipCard = __esm({
|
|
|
28755
29172
|
/* @__PURE__ */ jsx(
|
|
28756
29173
|
Box,
|
|
28757
29174
|
{
|
|
28758
|
-
className: "absolute inset-0 w-full h-full rounded-lg shadow-
|
|
29175
|
+
className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
|
|
28759
29176
|
style: { backfaceVisibility: "hidden", transform: "rotateY(180deg)" },
|
|
28760
29177
|
children: back
|
|
28761
29178
|
}
|
|
@@ -29100,7 +29517,7 @@ var init_ProgressDots = __esm({
|
|
|
29100
29517
|
Box,
|
|
29101
29518
|
{
|
|
29102
29519
|
className: cn(
|
|
29103
|
-
"rounded-full transition-all duration-
|
|
29520
|
+
"rounded-full transition-all duration-fast",
|
|
29104
29521
|
onDotClick && "cursor-pointer"
|
|
29105
29522
|
),
|
|
29106
29523
|
style: {
|
|
@@ -29142,10 +29559,7 @@ function StatBadge({
|
|
|
29142
29559
|
className
|
|
29143
29560
|
),
|
|
29144
29561
|
children: [
|
|
29145
|
-
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: typeof icon === "string" ? (
|
|
29146
|
-
const I = resolveIcon(icon);
|
|
29147
|
-
return I ? /* @__PURE__ */ jsx(I, { className: "w-4 h-4" }) : icon;
|
|
29148
|
-
})() : 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 }),
|
|
29149
29563
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground font-medium", children: label }),
|
|
29150
29564
|
format === "hearts" && max && /* @__PURE__ */ jsx(
|
|
29151
29565
|
HealthBar,
|
|
@@ -29213,7 +29627,7 @@ function InventoryGrid({
|
|
|
29213
29627
|
const eventBus = useEventBus();
|
|
29214
29628
|
const slotCount = totalSlots ?? items.length;
|
|
29215
29629
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
29216
|
-
const handleSelect =
|
|
29630
|
+
const handleSelect = React98.useCallback(
|
|
29217
29631
|
(id) => {
|
|
29218
29632
|
onSelect?.(id);
|
|
29219
29633
|
if (selectEvent) {
|
|
@@ -29426,15 +29840,15 @@ function GameCanvas2D({
|
|
|
29426
29840
|
fps = 60,
|
|
29427
29841
|
className
|
|
29428
29842
|
}) {
|
|
29429
|
-
const canvasRef =
|
|
29430
|
-
const rafRef =
|
|
29431
|
-
const frameRef =
|
|
29432
|
-
const lastTimeRef =
|
|
29433
|
-
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);
|
|
29434
29848
|
onDrawRef.current = onDraw;
|
|
29435
|
-
const onTickRef =
|
|
29849
|
+
const onTickRef = React98.useRef(onTick);
|
|
29436
29850
|
onTickRef.current = onTick;
|
|
29437
|
-
|
|
29851
|
+
React98.useEffect(() => {
|
|
29438
29852
|
const canvas = canvasRef.current;
|
|
29439
29853
|
if (!canvas) return;
|
|
29440
29854
|
const ctx = canvas.getContext("2d");
|
|
@@ -29723,7 +30137,7 @@ function TurnPanel({
|
|
|
29723
30137
|
className
|
|
29724
30138
|
}) {
|
|
29725
30139
|
const eventBus = useEventBus();
|
|
29726
|
-
const handleAction =
|
|
30140
|
+
const handleAction = React98.useCallback(
|
|
29727
30141
|
(event) => {
|
|
29728
30142
|
if (event) {
|
|
29729
30143
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -29869,7 +30283,7 @@ function UnitCommandBar({
|
|
|
29869
30283
|
className
|
|
29870
30284
|
}) {
|
|
29871
30285
|
const eventBus = useEventBus();
|
|
29872
|
-
const handleCommand =
|
|
30286
|
+
const handleCommand = React98.useCallback(
|
|
29873
30287
|
(event) => {
|
|
29874
30288
|
if (event) {
|
|
29875
30289
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -30354,7 +30768,7 @@ function GameMenu({
|
|
|
30354
30768
|
} catch {
|
|
30355
30769
|
}
|
|
30356
30770
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30357
|
-
const handleOptionClick =
|
|
30771
|
+
const handleOptionClick = React98.useCallback(
|
|
30358
30772
|
(option) => {
|
|
30359
30773
|
if (option.event && eventBus) {
|
|
30360
30774
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -30468,7 +30882,7 @@ function GameOverScreen({
|
|
|
30468
30882
|
} catch {
|
|
30469
30883
|
}
|
|
30470
30884
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30471
|
-
const handleActionClick =
|
|
30885
|
+
const handleActionClick = React98.useCallback(
|
|
30472
30886
|
(action) => {
|
|
30473
30887
|
if (action.event && eventBus) {
|
|
30474
30888
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -31176,6 +31590,7 @@ var init_NumberStepper = __esm({
|
|
|
31176
31590
|
"components/molecules/NumberStepper.tsx"() {
|
|
31177
31591
|
"use client";
|
|
31178
31592
|
init_cn();
|
|
31593
|
+
init_Icon();
|
|
31179
31594
|
init_useEventBus();
|
|
31180
31595
|
sizeStyles10 = {
|
|
31181
31596
|
sm: {
|
|
@@ -31294,7 +31709,7 @@ var init_NumberStepper = __esm({
|
|
|
31294
31709
|
styles.button
|
|
31295
31710
|
),
|
|
31296
31711
|
"aria-label": "Decrease",
|
|
31297
|
-
children: /* @__PURE__ */ jsx(
|
|
31712
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "minus", className: styles.icon })
|
|
31298
31713
|
}
|
|
31299
31714
|
),
|
|
31300
31715
|
/* @__PURE__ */ jsx(
|
|
@@ -31335,7 +31750,7 @@ var init_NumberStepper = __esm({
|
|
|
31335
31750
|
styles.button
|
|
31336
31751
|
),
|
|
31337
31752
|
"aria-label": "Increase",
|
|
31338
|
-
children: /* @__PURE__ */ jsx(
|
|
31753
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: styles.icon })
|
|
31339
31754
|
}
|
|
31340
31755
|
)
|
|
31341
31756
|
]
|
|
@@ -31360,6 +31775,7 @@ var init_StarRating = __esm({
|
|
|
31360
31775
|
"components/molecules/StarRating.tsx"() {
|
|
31361
31776
|
"use client";
|
|
31362
31777
|
init_cn();
|
|
31778
|
+
init_Icon();
|
|
31363
31779
|
init_useEventBus();
|
|
31364
31780
|
sizeStyles11 = {
|
|
31365
31781
|
sm: { star: "w-4 h-4", gap: "gap-0.5" },
|
|
@@ -31446,8 +31862,9 @@ var init_StarRating = __esm({
|
|
|
31446
31862
|
},
|
|
31447
31863
|
children: [
|
|
31448
31864
|
/* @__PURE__ */ jsx(
|
|
31449
|
-
|
|
31865
|
+
Icon,
|
|
31450
31866
|
{
|
|
31867
|
+
name: "star",
|
|
31451
31868
|
className: cn(
|
|
31452
31869
|
styles.star,
|
|
31453
31870
|
"text-muted",
|
|
@@ -31457,8 +31874,9 @@ var init_StarRating = __esm({
|
|
|
31457
31874
|
}
|
|
31458
31875
|
),
|
|
31459
31876
|
(isFull || isHalf) && /* @__PURE__ */ jsx(
|
|
31460
|
-
|
|
31877
|
+
Icon,
|
|
31461
31878
|
{
|
|
31879
|
+
name: "star",
|
|
31462
31880
|
className: cn(
|
|
31463
31881
|
styles.star,
|
|
31464
31882
|
"absolute inset-0",
|
|
@@ -31650,7 +32068,7 @@ var init_UploadDropZone = __esm({
|
|
|
31650
32068
|
"aria-hidden": "true"
|
|
31651
32069
|
}
|
|
31652
32070
|
),
|
|
31653
|
-
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" }),
|
|
31654
32072
|
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-center font-medium mb-1", children: isDragOver ? "Drop files here" : label }),
|
|
31655
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 })
|
|
31656
32074
|
]
|
|
@@ -31674,6 +32092,7 @@ var Lightbox;
|
|
|
31674
32092
|
var init_Lightbox = __esm({
|
|
31675
32093
|
"components/molecules/Lightbox.tsx"() {
|
|
31676
32094
|
"use client";
|
|
32095
|
+
init_Icon();
|
|
31677
32096
|
init_cn();
|
|
31678
32097
|
init_useEventBus();
|
|
31679
32098
|
Lightbox = ({
|
|
@@ -31781,7 +32200,7 @@ var init_Lightbox = __esm({
|
|
|
31781
32200
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31782
32201
|
),
|
|
31783
32202
|
"aria-label": "Close",
|
|
31784
|
-
children: /* @__PURE__ */ jsx(
|
|
32203
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "w-6 h-6" })
|
|
31785
32204
|
}
|
|
31786
32205
|
),
|
|
31787
32206
|
hasPrev && safeImages.length > 1 && /* @__PURE__ */ jsx(
|
|
@@ -31800,7 +32219,7 @@ var init_Lightbox = __esm({
|
|
|
31800
32219
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31801
32220
|
),
|
|
31802
32221
|
"aria-label": "Previous image",
|
|
31803
|
-
children: /* @__PURE__ */ jsx(
|
|
32222
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
31804
32223
|
}
|
|
31805
32224
|
),
|
|
31806
32225
|
/* @__PURE__ */ jsx(
|
|
@@ -31837,7 +32256,7 @@ var init_Lightbox = __esm({
|
|
|
31837
32256
|
"focus:outline-none focus:ring-2 focus:ring-white"
|
|
31838
32257
|
),
|
|
31839
32258
|
"aria-label": "Next image",
|
|
31840
|
-
children: /* @__PURE__ */ jsx(
|
|
32259
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
31841
32260
|
}
|
|
31842
32261
|
),
|
|
31843
32262
|
/* @__PURE__ */ jsxs("div", { className: "absolute bottom-4 left-0 right-0 text-center", children: [
|
|
@@ -32121,7 +32540,7 @@ var init_Meter = __esm({
|
|
|
32121
32540
|
strokeDasharray: circumference,
|
|
32122
32541
|
strokeDashoffset: offset,
|
|
32123
32542
|
strokeLinecap: "round",
|
|
32124
|
-
className: "transition-all duration-
|
|
32543
|
+
className: "transition-all duration-slow ease-emphasized"
|
|
32125
32544
|
}
|
|
32126
32545
|
)
|
|
32127
32546
|
]
|
|
@@ -32164,7 +32583,7 @@ var init_Meter = __esm({
|
|
|
32164
32583
|
Box,
|
|
32165
32584
|
{
|
|
32166
32585
|
className: cn(
|
|
32167
|
-
"h-2 flex-1 rounded-sm transition-all duration-
|
|
32586
|
+
"h-2 flex-1 rounded-sm transition-all duration-normal",
|
|
32168
32587
|
!isActive && "bg-muted"
|
|
32169
32588
|
),
|
|
32170
32589
|
style: isActive ? { backgroundColor: segColor } : void 0
|
|
@@ -32183,7 +32602,7 @@ var init_Meter = __esm({
|
|
|
32183
32602
|
/* @__PURE__ */ jsx(Box, { className: "w-full h-3 bg-muted rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
32184
32603
|
Box,
|
|
32185
32604
|
{
|
|
32186
|
-
className: "h-full rounded-full transition-all duration-
|
|
32605
|
+
className: "h-full rounded-full transition-all duration-slow ease-emphasized",
|
|
32187
32606
|
style: {
|
|
32188
32607
|
width: `${percentage}%`,
|
|
32189
32608
|
backgroundColor: activeColor
|
|
@@ -32709,7 +33128,7 @@ var init_PullToRefresh = __esm({
|
|
|
32709
33128
|
className: cn(
|
|
32710
33129
|
"top-0 left-0 right-0 z-10",
|
|
32711
33130
|
"items-center justify-center",
|
|
32712
|
-
"transition-opacity duration-
|
|
33131
|
+
"transition-opacity duration-fast",
|
|
32713
33132
|
showIndicator ? "opacity-100" : "opacity-0"
|
|
32714
33133
|
),
|
|
32715
33134
|
style: {
|
|
@@ -32895,7 +33314,7 @@ var init_PricingCard = __esm({
|
|
|
32895
33314
|
"hover:-translate-y-1 transition-all",
|
|
32896
33315
|
highlighted && [
|
|
32897
33316
|
"border-[length:2px] border-primary",
|
|
32898
|
-
"shadow-
|
|
33317
|
+
"shadow-elevation-dialog",
|
|
32899
33318
|
"scale-[1.05]",
|
|
32900
33319
|
"ring-2 ring-primary"
|
|
32901
33320
|
],
|
|
@@ -32918,7 +33337,7 @@ var init_PricingCard = __esm({
|
|
|
32918
33337
|
/* @__PURE__ */ jsx(
|
|
32919
33338
|
Icon,
|
|
32920
33339
|
{
|
|
32921
|
-
|
|
33340
|
+
name: "check",
|
|
32922
33341
|
size: "sm",
|
|
32923
33342
|
className: "flex-shrink-0 text-success"
|
|
32924
33343
|
}
|
|
@@ -33136,7 +33555,7 @@ var init_StepFlow = __esm({
|
|
|
33136
33555
|
className
|
|
33137
33556
|
}) => {
|
|
33138
33557
|
if (orientation === "vertical") {
|
|
33139
|
-
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: [
|
|
33140
33559
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
33141
33560
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33142
33561
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -33147,7 +33566,7 @@ var init_StepFlow = __esm({
|
|
|
33147
33566
|
] })
|
|
33148
33567
|
] }) }, index)) });
|
|
33149
33568
|
}
|
|
33150
|
-
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: [
|
|
33151
33570
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
33152
33571
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33153
33572
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -33961,6 +34380,7 @@ var init_VoteStack = __esm({
|
|
|
33961
34380
|
"components/molecules/VoteStack.tsx"() {
|
|
33962
34381
|
"use client";
|
|
33963
34382
|
init_cn();
|
|
34383
|
+
init_Icon();
|
|
33964
34384
|
init_useEventBus();
|
|
33965
34385
|
sizeStyles12 = {
|
|
33966
34386
|
sm: {
|
|
@@ -34042,7 +34462,7 @@ var init_VoteStack = __esm({
|
|
|
34042
34462
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
34043
34463
|
styles.button
|
|
34044
34464
|
),
|
|
34045
|
-
children: /* @__PURE__ */ jsx(
|
|
34465
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-up", className: styles.icon })
|
|
34046
34466
|
}
|
|
34047
34467
|
),
|
|
34048
34468
|
/* @__PURE__ */ jsx(
|
|
@@ -34079,7 +34499,7 @@ var init_VoteStack = __esm({
|
|
|
34079
34499
|
"focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-inset",
|
|
34080
34500
|
styles.button
|
|
34081
34501
|
),
|
|
34082
|
-
children: /* @__PURE__ */ jsx(
|
|
34502
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-down", className: styles.icon })
|
|
34083
34503
|
}
|
|
34084
34504
|
)
|
|
34085
34505
|
]
|
|
@@ -34121,7 +34541,7 @@ var init_LikertScale = __esm({
|
|
|
34121
34541
|
md: "text-base",
|
|
34122
34542
|
lg: "text-lg"
|
|
34123
34543
|
};
|
|
34124
|
-
LikertScale =
|
|
34544
|
+
LikertScale = React98__default.forwardRef(
|
|
34125
34545
|
({
|
|
34126
34546
|
question,
|
|
34127
34547
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -34133,7 +34553,7 @@ var init_LikertScale = __esm({
|
|
|
34133
34553
|
variant = "radios",
|
|
34134
34554
|
className
|
|
34135
34555
|
}, ref) => {
|
|
34136
|
-
const groupId =
|
|
34556
|
+
const groupId = React98__default.useId();
|
|
34137
34557
|
const eventBus = useEventBus();
|
|
34138
34558
|
const handleSelect = useCallback(
|
|
34139
34559
|
(next) => {
|
|
@@ -34413,6 +34833,7 @@ var init_QrScanner = __esm({
|
|
|
34413
34833
|
"use client";
|
|
34414
34834
|
init_cn();
|
|
34415
34835
|
init_atoms();
|
|
34836
|
+
init_Icon();
|
|
34416
34837
|
init_useEventBus();
|
|
34417
34838
|
QrScanner = ({
|
|
34418
34839
|
onScan,
|
|
@@ -34563,7 +34984,7 @@ var init_QrScanner = __esm({
|
|
|
34563
34984
|
padding: "lg",
|
|
34564
34985
|
className: "inset-0 flex-col items-center justify-center gap-2 bg-black bg-opacity-80 text-center",
|
|
34565
34986
|
children: [
|
|
34566
|
-
/* @__PURE__ */ jsx(
|
|
34987
|
+
/* @__PURE__ */ jsx(Icon, { name: "camera", className: "h-8 w-8 text-white", "aria-hidden": "true" }),
|
|
34567
34988
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: "Camera unavailable" }),
|
|
34568
34989
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white opacity-70", children: cameraError.message })
|
|
34569
34990
|
]
|
|
@@ -34595,7 +35016,7 @@ var init_QrScanner = __esm({
|
|
|
34595
35016
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
34596
35017
|
),
|
|
34597
35018
|
"aria-label": isPaused ? "Resume scanning" : "Pause scanning",
|
|
34598
|
-
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" })
|
|
34599
35020
|
}
|
|
34600
35021
|
),
|
|
34601
35022
|
/* @__PURE__ */ jsx(
|
|
@@ -34608,7 +35029,7 @@ var init_QrScanner = __esm({
|
|
|
34608
35029
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
34609
35030
|
),
|
|
34610
35031
|
"aria-label": `Switch to ${currentFacing === "environment" ? "front" : "rear"} camera`,
|
|
34611
|
-
children: /* @__PURE__ */ jsx(
|
|
35032
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "refresh-cw", className: "h-4 w-4" })
|
|
34612
35033
|
}
|
|
34613
35034
|
),
|
|
34614
35035
|
/* @__PURE__ */ jsx(
|
|
@@ -34824,11 +35245,11 @@ function getShapeClasses(shape) {
|
|
|
34824
35245
|
function getStatusIcon(status) {
|
|
34825
35246
|
switch (status) {
|
|
34826
35247
|
case "seated":
|
|
34827
|
-
return /* @__PURE__ */ jsx(
|
|
35248
|
+
return /* @__PURE__ */ jsx(Icon, { name: "users", className: "w-4 h-4" });
|
|
34828
35249
|
case "ordered":
|
|
34829
|
-
return /* @__PURE__ */ jsx(
|
|
35250
|
+
return /* @__PURE__ */ jsx(Icon, { name: "coffee", className: "w-4 h-4" });
|
|
34830
35251
|
case "awaiting-bill":
|
|
34831
|
-
return /* @__PURE__ */ jsx(
|
|
35252
|
+
return /* @__PURE__ */ jsx(Icon, { name: "alert-circle", className: "w-4 h-4" });
|
|
34832
35253
|
default:
|
|
34833
35254
|
return null;
|
|
34834
35255
|
}
|
|
@@ -34840,6 +35261,7 @@ var init_PositionedCanvas = __esm({
|
|
|
34840
35261
|
init_cn();
|
|
34841
35262
|
init_useEventBus();
|
|
34842
35263
|
init_atoms();
|
|
35264
|
+
init_Icon();
|
|
34843
35265
|
STATUS_CLASSES = {
|
|
34844
35266
|
empty: "bg-surface border-border text-foreground",
|
|
34845
35267
|
seated: "bg-surface border-success text-success",
|
|
@@ -34952,7 +35374,7 @@ var init_PositionedCanvas = __esm({
|
|
|
34952
35374
|
{
|
|
34953
35375
|
ref: containerRef,
|
|
34954
35376
|
"data-testid": "positioned-canvas",
|
|
34955
|
-
className: "relative bg-background border border-border rounded-
|
|
35377
|
+
className: "relative bg-background border border-border rounded-container overflow-hidden",
|
|
34956
35378
|
style: { width, height },
|
|
34957
35379
|
onClick: handleContainerClick,
|
|
34958
35380
|
children: items.map((item) => {
|
|
@@ -35144,7 +35566,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35144
35566
|
"transition-opacity"
|
|
35145
35567
|
),
|
|
35146
35568
|
onClick: () => setOpen((v) => !v),
|
|
35147
|
-
children: /* @__PURE__ */ jsx(
|
|
35569
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", className: "w-3.5 h-3.5" })
|
|
35148
35570
|
}
|
|
35149
35571
|
),
|
|
35150
35572
|
open && /* @__PURE__ */ jsxs(
|
|
@@ -35153,7 +35575,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35153
35575
|
role: "menu",
|
|
35154
35576
|
className: cn(
|
|
35155
35577
|
"absolute right-0 z-10 mt-1 w-44",
|
|
35156
|
-
"rounded-
|
|
35578
|
+
"rounded-container border border-border bg-popover shadow-elevation-popover",
|
|
35157
35579
|
"py-1 text-sm"
|
|
35158
35580
|
),
|
|
35159
35581
|
children: [
|
|
@@ -35170,7 +35592,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35170
35592
|
setOpen(false);
|
|
35171
35593
|
},
|
|
35172
35594
|
children: [
|
|
35173
|
-
/* @__PURE__ */ jsx(
|
|
35595
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" }),
|
|
35174
35596
|
" Duplicate"
|
|
35175
35597
|
]
|
|
35176
35598
|
}
|
|
@@ -35187,7 +35609,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
35187
35609
|
setOpen(false);
|
|
35188
35610
|
},
|
|
35189
35611
|
children: [
|
|
35190
|
-
/* @__PURE__ */ jsx(
|
|
35612
|
+
/* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3.5 h-3.5" }),
|
|
35191
35613
|
" Delete"
|
|
35192
35614
|
]
|
|
35193
35615
|
}
|
|
@@ -35416,7 +35838,7 @@ function BlockRow({
|
|
|
35416
35838
|
"text-sm text-muted-foreground"
|
|
35417
35839
|
),
|
|
35418
35840
|
children: [
|
|
35419
|
-
/* @__PURE__ */ jsx(
|
|
35841
|
+
/* @__PURE__ */ jsx(Icon, { name: "image", className: "mr-2 w-4 h-4" }),
|
|
35420
35842
|
" No image URL set"
|
|
35421
35843
|
]
|
|
35422
35844
|
}
|
|
@@ -35490,7 +35912,7 @@ function BlockRow({
|
|
|
35490
35912
|
"opacity-0 group-hover/item:opacity-100 hover:bg-muted hover:text-foreground"
|
|
35491
35913
|
),
|
|
35492
35914
|
onClick: () => removeListItem(child.id),
|
|
35493
|
-
children: /* @__PURE__ */ jsx(
|
|
35915
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3 h-3" })
|
|
35494
35916
|
}
|
|
35495
35917
|
)
|
|
35496
35918
|
] }, child.id)),
|
|
@@ -35505,7 +35927,7 @@ function BlockRow({
|
|
|
35505
35927
|
),
|
|
35506
35928
|
onClick: addListItem,
|
|
35507
35929
|
children: [
|
|
35508
|
-
/* @__PURE__ */ jsx(
|
|
35930
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3 h-3" }),
|
|
35509
35931
|
" Add item"
|
|
35510
35932
|
]
|
|
35511
35933
|
}
|
|
@@ -35554,7 +35976,7 @@ function BlockRow({
|
|
|
35554
35976
|
"transition-opacity"
|
|
35555
35977
|
),
|
|
35556
35978
|
onClick: () => onInsertAfter("paragraph"),
|
|
35557
|
-
children: /* @__PURE__ */ jsx(
|
|
35979
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" })
|
|
35558
35980
|
}
|
|
35559
35981
|
),
|
|
35560
35982
|
/* @__PURE__ */ jsx(
|
|
@@ -35584,6 +36006,7 @@ var init_RichBlockEditor = __esm({
|
|
|
35584
36006
|
init_Box();
|
|
35585
36007
|
init_Divider();
|
|
35586
36008
|
init_Input();
|
|
36009
|
+
init_Icon();
|
|
35587
36010
|
init_useEventBus();
|
|
35588
36011
|
TOOLBAR_ENTRIES = [
|
|
35589
36012
|
{ type: "paragraph", label: "Text", icon: Type },
|
|
@@ -35827,7 +36250,7 @@ var init_ReplyTree = __esm({
|
|
|
35827
36250
|
onClick: handleToggle,
|
|
35828
36251
|
"aria-label": isCollapsed ? "Expand replies" : "Collapse replies",
|
|
35829
36252
|
"aria-expanded": !isCollapsed,
|
|
35830
|
-
leftIcon: isCollapsed ?
|
|
36253
|
+
leftIcon: isCollapsed ? "chevron-right" : "chevron-down",
|
|
35831
36254
|
className: cn(
|
|
35832
36255
|
"w-6 h-6 p-0 min-w-0",
|
|
35833
36256
|
"rounded-sm text-muted-foreground",
|
|
@@ -35874,7 +36297,7 @@ var init_ReplyTree = __esm({
|
|
|
35874
36297
|
{
|
|
35875
36298
|
variant: "ghost",
|
|
35876
36299
|
size: "sm",
|
|
35877
|
-
leftIcon:
|
|
36300
|
+
leftIcon: "message-square",
|
|
35878
36301
|
onClick: handleReply,
|
|
35879
36302
|
"aria-label": `Reply to ${node.authorName}`,
|
|
35880
36303
|
children: "Reply"
|
|
@@ -35885,7 +36308,7 @@ var init_ReplyTree = __esm({
|
|
|
35885
36308
|
{
|
|
35886
36309
|
variant: "ghost",
|
|
35887
36310
|
size: "sm",
|
|
35888
|
-
leftIcon:
|
|
36311
|
+
leftIcon: "flag",
|
|
35889
36312
|
onClick: handleFlag,
|
|
35890
36313
|
"aria-label": `Flag reply by ${node.authorName}`,
|
|
35891
36314
|
children: "Flag"
|
|
@@ -35898,7 +36321,7 @@ var init_ReplyTree = __esm({
|
|
|
35898
36321
|
variant: "ghost",
|
|
35899
36322
|
size: "sm",
|
|
35900
36323
|
onClick: handleContinue,
|
|
35901
|
-
rightIcon:
|
|
36324
|
+
rightIcon: "chevron-right",
|
|
35902
36325
|
className: cn(
|
|
35903
36326
|
"self-start gap-1 px-0 h-auto",
|
|
35904
36327
|
"text-sm text-primary hover:underline hover:bg-transparent"
|
|
@@ -36139,7 +36562,7 @@ var init_VersionDiff = __esm({
|
|
|
36139
36562
|
className: "px-4 py-2 border-b border-border bg-muted/30 flex-wrap",
|
|
36140
36563
|
children: [
|
|
36141
36564
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "flex-wrap", children: [
|
|
36142
|
-
/* @__PURE__ */ jsx(Icon, {
|
|
36565
|
+
/* @__PURE__ */ jsx(Icon, { name: "git-commit", size: "sm", className: "text-muted-foreground" }),
|
|
36143
36566
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: "Compare" }),
|
|
36144
36567
|
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
36145
36568
|
Select,
|
|
@@ -36176,7 +36599,7 @@ var init_VersionDiff = __esm({
|
|
|
36176
36599
|
{
|
|
36177
36600
|
variant: "ghost",
|
|
36178
36601
|
size: "sm",
|
|
36179
|
-
icon: activeView === "side-by-side" ?
|
|
36602
|
+
icon: activeView === "side-by-side" ? "align-left" : "columns",
|
|
36180
36603
|
onClick: handleViewToggle,
|
|
36181
36604
|
"aria-label": activeView === "side-by-side" ? "Switch to inline view" : "Switch to side-by-side view"
|
|
36182
36605
|
}
|
|
@@ -36186,7 +36609,7 @@ var init_VersionDiff = __esm({
|
|
|
36186
36609
|
{
|
|
36187
36610
|
variant: "ghost",
|
|
36188
36611
|
size: "sm",
|
|
36189
|
-
icon:
|
|
36612
|
+
icon: "rotate-ccw",
|
|
36190
36613
|
onClick: handleRevert,
|
|
36191
36614
|
children: "Revert"
|
|
36192
36615
|
}
|
|
@@ -36363,7 +36786,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
36363
36786
|
"aria-label": "Breadcrumb",
|
|
36364
36787
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
36365
36788
|
const isLast = idx === items.length - 1;
|
|
36366
|
-
return /* @__PURE__ */ jsxs(
|
|
36789
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
36367
36790
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
36368
36791
|
Icon,
|
|
36369
36792
|
{
|
|
@@ -36429,7 +36852,7 @@ function DocCodeBlock({
|
|
|
36429
36852
|
Box,
|
|
36430
36853
|
{
|
|
36431
36854
|
className: cn(
|
|
36432
|
-
"rounded-
|
|
36855
|
+
"rounded-container border border-border overflow-hidden",
|
|
36433
36856
|
className
|
|
36434
36857
|
),
|
|
36435
36858
|
position: "relative",
|
|
@@ -36588,11 +37011,11 @@ var init_DocPagination = __esm({
|
|
|
36588
37011
|
init_Typography();
|
|
36589
37012
|
linkCardStyles = [
|
|
36590
37013
|
"border border-border",
|
|
36591
|
-
"rounded-
|
|
37014
|
+
"rounded-container",
|
|
36592
37015
|
"p-4",
|
|
36593
37016
|
"transition-all",
|
|
36594
37017
|
"hover:border-primary",
|
|
36595
|
-
"hover:shadow-
|
|
37018
|
+
"hover:shadow-elevation-dialog",
|
|
36596
37019
|
"no-underline",
|
|
36597
37020
|
"flex-1",
|
|
36598
37021
|
"min-w-0",
|
|
@@ -36729,7 +37152,7 @@ function DocSearch({
|
|
|
36729
37152
|
Box,
|
|
36730
37153
|
{
|
|
36731
37154
|
position: "absolute",
|
|
36732
|
-
className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-
|
|
37155
|
+
className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-container shadow-elevation-popover max-h-80 overflow-y-auto",
|
|
36733
37156
|
children: /* @__PURE__ */ jsx(VStack, { gap: "none", children: results.map((result, index) => /* @__PURE__ */ jsx(
|
|
36734
37157
|
Box,
|
|
36735
37158
|
{
|
|
@@ -38296,7 +38719,7 @@ var init_DocumentViewer = __esm({
|
|
|
38296
38719
|
}
|
|
38297
38720
|
});
|
|
38298
38721
|
function extractTitle(children) {
|
|
38299
|
-
if (!
|
|
38722
|
+
if (!React98__default.isValidElement(children)) return void 0;
|
|
38300
38723
|
const props = children.props;
|
|
38301
38724
|
if (typeof props.title === "string") {
|
|
38302
38725
|
return props.title;
|
|
@@ -38351,7 +38774,7 @@ function LinearView({
|
|
|
38351
38774
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
38352
38775
|
const isDone = i < currentIdx;
|
|
38353
38776
|
const isCurrent = i === currentIdx;
|
|
38354
|
-
return /* @__PURE__ */ jsxs(
|
|
38777
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
38355
38778
|
i > 0 && /* @__PURE__ */ jsx(
|
|
38356
38779
|
Typography,
|
|
38357
38780
|
{
|
|
@@ -39252,12 +39675,12 @@ var init_Form = __esm({
|
|
|
39252
39675
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
39253
39676
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
39254
39677
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
39255
|
-
const normalizedInitialData =
|
|
39678
|
+
const normalizedInitialData = React98__default.useMemo(() => {
|
|
39256
39679
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
39257
39680
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
39258
39681
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
39259
39682
|
}, [entity, initialData]);
|
|
39260
|
-
const entityDerivedFields =
|
|
39683
|
+
const entityDerivedFields = React98__default.useMemo(() => {
|
|
39261
39684
|
if (fields && fields.length > 0) return void 0;
|
|
39262
39685
|
if (!resolvedEntity) return void 0;
|
|
39263
39686
|
return resolvedEntity.fields.map(
|
|
@@ -39266,26 +39689,27 @@ var init_Form = __esm({
|
|
|
39266
39689
|
type: f3.type,
|
|
39267
39690
|
required: f3.required,
|
|
39268
39691
|
defaultValue: f3.default,
|
|
39269
|
-
values
|
|
39692
|
+
// EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
|
|
39693
|
+
values: "values" in f3 ? f3.values : void 0,
|
|
39270
39694
|
min: f3.min,
|
|
39271
39695
|
max: f3.max,
|
|
39272
|
-
relation:
|
|
39696
|
+
relation: "relation" in f3 ? { entity: f3.relation.entity } : void 0
|
|
39273
39697
|
})
|
|
39274
39698
|
);
|
|
39275
39699
|
}, [entity, fields]);
|
|
39276
39700
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
39277
39701
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
39278
39702
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
39279
|
-
const [formData, setFormData] =
|
|
39703
|
+
const [formData, setFormData] = React98__default.useState(
|
|
39280
39704
|
normalizedInitialData
|
|
39281
39705
|
);
|
|
39282
|
-
const [collapsedSections, setCollapsedSections] =
|
|
39706
|
+
const [collapsedSections, setCollapsedSections] = React98__default.useState(
|
|
39283
39707
|
/* @__PURE__ */ new Set()
|
|
39284
39708
|
);
|
|
39285
|
-
const [submitError, setSubmitError] =
|
|
39286
|
-
const formRef =
|
|
39709
|
+
const [submitError, setSubmitError] = React98__default.useState(null);
|
|
39710
|
+
const formRef = React98__default.useRef(null);
|
|
39287
39711
|
const formMode = props.mode;
|
|
39288
|
-
const mountedRef =
|
|
39712
|
+
const mountedRef = React98__default.useRef(false);
|
|
39289
39713
|
if (!mountedRef.current) {
|
|
39290
39714
|
mountedRef.current = true;
|
|
39291
39715
|
debug("forms", "mount", {
|
|
@@ -39298,7 +39722,7 @@ var init_Form = __esm({
|
|
|
39298
39722
|
});
|
|
39299
39723
|
}
|
|
39300
39724
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
39301
|
-
const evalContext =
|
|
39725
|
+
const evalContext = React98__default.useMemo(
|
|
39302
39726
|
() => ({
|
|
39303
39727
|
formValues: formData,
|
|
39304
39728
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -39307,7 +39731,7 @@ var init_Form = __esm({
|
|
|
39307
39731
|
}),
|
|
39308
39732
|
[formData, externalContext]
|
|
39309
39733
|
);
|
|
39310
|
-
|
|
39734
|
+
React98__default.useEffect(() => {
|
|
39311
39735
|
debug("forms", "initialData-sync", {
|
|
39312
39736
|
mode: formMode,
|
|
39313
39737
|
normalizedInitialData,
|
|
@@ -39318,7 +39742,7 @@ var init_Form = __esm({
|
|
|
39318
39742
|
setFormData(normalizedInitialData);
|
|
39319
39743
|
}
|
|
39320
39744
|
}, [normalizedInitialData]);
|
|
39321
|
-
const processCalculations =
|
|
39745
|
+
const processCalculations = React98__default.useCallback(
|
|
39322
39746
|
(changedFieldId, newFormData) => {
|
|
39323
39747
|
if (!hiddenCalculations.length) return;
|
|
39324
39748
|
const context = {
|
|
@@ -39343,7 +39767,7 @@ var init_Form = __esm({
|
|
|
39343
39767
|
},
|
|
39344
39768
|
[hiddenCalculations, externalContext, eventBus]
|
|
39345
39769
|
);
|
|
39346
|
-
const checkViolations =
|
|
39770
|
+
const checkViolations = React98__default.useCallback(
|
|
39347
39771
|
(changedFieldId, newFormData) => {
|
|
39348
39772
|
if (!violationTriggers.length) return;
|
|
39349
39773
|
const context = {
|
|
@@ -39381,7 +39805,7 @@ var init_Form = __esm({
|
|
|
39381
39805
|
processCalculations(name, newFormData);
|
|
39382
39806
|
checkViolations(name, newFormData);
|
|
39383
39807
|
};
|
|
39384
|
-
const isFieldVisible =
|
|
39808
|
+
const isFieldVisible = React98__default.useCallback(
|
|
39385
39809
|
(fieldName) => {
|
|
39386
39810
|
const condition = conditionalFields[fieldName];
|
|
39387
39811
|
if (!condition) return true;
|
|
@@ -39389,7 +39813,7 @@ var init_Form = __esm({
|
|
|
39389
39813
|
},
|
|
39390
39814
|
[conditionalFields, evalContext]
|
|
39391
39815
|
);
|
|
39392
|
-
const isSectionVisible =
|
|
39816
|
+
const isSectionVisible = React98__default.useCallback(
|
|
39393
39817
|
(section) => {
|
|
39394
39818
|
if (!section.condition) return true;
|
|
39395
39819
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -39465,7 +39889,7 @@ var init_Form = __esm({
|
|
|
39465
39889
|
eventBus.emit(`UI:${onCancel}`);
|
|
39466
39890
|
}
|
|
39467
39891
|
};
|
|
39468
|
-
const renderField =
|
|
39892
|
+
const renderField = React98__default.useCallback(
|
|
39469
39893
|
(field) => {
|
|
39470
39894
|
const fieldName = field.name || field.field;
|
|
39471
39895
|
if (!fieldName) return null;
|
|
@@ -39486,7 +39910,7 @@ var init_Form = __esm({
|
|
|
39486
39910
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
39487
39911
|
);
|
|
39488
39912
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
39489
|
-
const normalizedFields =
|
|
39913
|
+
const normalizedFields = React98__default.useMemo(() => {
|
|
39490
39914
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
39491
39915
|
return effectiveFields.map((field) => {
|
|
39492
39916
|
if (typeof field === "string") {
|
|
@@ -39497,10 +39921,11 @@ var init_Form = __esm({
|
|
|
39497
39921
|
type: entityField.type,
|
|
39498
39922
|
required: entityField.required,
|
|
39499
39923
|
defaultValue: entityField.default,
|
|
39500
|
-
values
|
|
39924
|
+
// EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
|
|
39925
|
+
values: "values" in entityField ? entityField.values : void 0,
|
|
39501
39926
|
min: entityField.min,
|
|
39502
39927
|
max: entityField.max,
|
|
39503
|
-
relation:
|
|
39928
|
+
relation: "relation" in entityField ? { entity: entityField.relation.entity } : void 0
|
|
39504
39929
|
};
|
|
39505
39930
|
}
|
|
39506
39931
|
return { name: field, type: "string" };
|
|
@@ -39508,7 +39933,7 @@ var init_Form = __esm({
|
|
|
39508
39933
|
return field;
|
|
39509
39934
|
});
|
|
39510
39935
|
}, [effectiveFields, resolvedEntity]);
|
|
39511
|
-
const schemaFields =
|
|
39936
|
+
const schemaFields = React98__default.useMemo(() => {
|
|
39512
39937
|
if (normalizedFields.length === 0) return null;
|
|
39513
39938
|
if (isDebugEnabled()) {
|
|
39514
39939
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -39518,7 +39943,7 @@ var init_Form = __esm({
|
|
|
39518
39943
|
}
|
|
39519
39944
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
39520
39945
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
39521
|
-
const sectionElements =
|
|
39946
|
+
const sectionElements = React98__default.useMemo(() => {
|
|
39522
39947
|
if (!sections || sections.length === 0) return null;
|
|
39523
39948
|
return sections.map((section) => {
|
|
39524
39949
|
if (!isSectionVisible(section)) {
|
|
@@ -40223,7 +40648,7 @@ var init_GameTemplate = __esm({
|
|
|
40223
40648
|
{
|
|
40224
40649
|
variant: "secondary",
|
|
40225
40650
|
size: "sm",
|
|
40226
|
-
icon:
|
|
40651
|
+
icon: "pause",
|
|
40227
40652
|
onClick: controls.onPause,
|
|
40228
40653
|
children: "Pause"
|
|
40229
40654
|
}
|
|
@@ -40232,7 +40657,7 @@ var init_GameTemplate = __esm({
|
|
|
40232
40657
|
{
|
|
40233
40658
|
variant: "primary",
|
|
40234
40659
|
size: "sm",
|
|
40235
|
-
icon:
|
|
40660
|
+
icon: "play",
|
|
40236
40661
|
onClick: controls.onPlay,
|
|
40237
40662
|
children: "Play"
|
|
40238
40663
|
}
|
|
@@ -40242,7 +40667,7 @@ var init_GameTemplate = __esm({
|
|
|
40242
40667
|
{
|
|
40243
40668
|
variant: "ghost",
|
|
40244
40669
|
size: "sm",
|
|
40245
|
-
icon:
|
|
40670
|
+
icon: "rotate-ccw",
|
|
40246
40671
|
onClick: controls.onReset,
|
|
40247
40672
|
children: "Reset"
|
|
40248
40673
|
}
|
|
@@ -41244,7 +41669,7 @@ var init_List = __esm({
|
|
|
41244
41669
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
41245
41670
|
return [];
|
|
41246
41671
|
}, [entity]);
|
|
41247
|
-
const getItemActions =
|
|
41672
|
+
const getItemActions = React98__default.useCallback(
|
|
41248
41673
|
(item) => {
|
|
41249
41674
|
if (!itemActions) return [];
|
|
41250
41675
|
if (typeof itemActions === "function") {
|
|
@@ -41717,7 +42142,7 @@ var init_MediaGallery = __esm({
|
|
|
41717
42142
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
41718
42143
|
);
|
|
41719
42144
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
41720
|
-
const items =
|
|
42145
|
+
const items = React98__default.useMemo(() => {
|
|
41721
42146
|
if (propItems) return propItems;
|
|
41722
42147
|
if (entityData.length === 0) return [];
|
|
41723
42148
|
return entityData.map((record, idx) => ({
|
|
@@ -41881,7 +42306,7 @@ var init_MediaGallery = __esm({
|
|
|
41881
42306
|
}
|
|
41882
42307
|
});
|
|
41883
42308
|
function extractTitle2(children) {
|
|
41884
|
-
if (!
|
|
42309
|
+
if (!React98__default.isValidElement(children)) return void 0;
|
|
41885
42310
|
const props = children.props;
|
|
41886
42311
|
if (typeof props.title === "string") {
|
|
41887
42312
|
return props.title;
|
|
@@ -42594,7 +43019,7 @@ var init_PageHeader = __esm({
|
|
|
42594
43019
|
info: "bg-info/10 text-info"
|
|
42595
43020
|
};
|
|
42596
43021
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
42597
|
-
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: [
|
|
42598
43023
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
42599
43024
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
42600
43025
|
"a",
|
|
@@ -42806,7 +43231,7 @@ var init_PricingPageTemplate = __esm({
|
|
|
42806
43231
|
|
|
42807
43232
|
// lib/traitRegistry.ts
|
|
42808
43233
|
function notifyListeners2() {
|
|
42809
|
-
|
|
43234
|
+
listeners2.forEach((listener) => listener());
|
|
42810
43235
|
}
|
|
42811
43236
|
function registerTrait(info) {
|
|
42812
43237
|
traits.set(info.id, info);
|
|
@@ -42828,14 +43253,14 @@ function getAllTraits() {
|
|
|
42828
43253
|
return Array.from(traits.values());
|
|
42829
43254
|
}
|
|
42830
43255
|
function subscribeToTraitChanges(listener) {
|
|
42831
|
-
|
|
42832
|
-
return () =>
|
|
43256
|
+
listeners2.add(listener);
|
|
43257
|
+
return () => listeners2.delete(listener);
|
|
42833
43258
|
}
|
|
42834
|
-
var traits,
|
|
43259
|
+
var traits, listeners2;
|
|
42835
43260
|
var init_traitRegistry = __esm({
|
|
42836
43261
|
"lib/traitRegistry.ts"() {
|
|
42837
43262
|
traits = /* @__PURE__ */ new Map();
|
|
42838
|
-
|
|
43263
|
+
listeners2 = /* @__PURE__ */ new Set();
|
|
42839
43264
|
}
|
|
42840
43265
|
});
|
|
42841
43266
|
|
|
@@ -42844,14 +43269,14 @@ function getAllTicks() {
|
|
|
42844
43269
|
return Array.from(ticks.values());
|
|
42845
43270
|
}
|
|
42846
43271
|
function subscribeToTickChanges(listener) {
|
|
42847
|
-
|
|
42848
|
-
return () =>
|
|
43272
|
+
listeners3.add(listener);
|
|
43273
|
+
return () => listeners3.delete(listener);
|
|
42849
43274
|
}
|
|
42850
|
-
var ticks,
|
|
43275
|
+
var ticks, listeners3;
|
|
42851
43276
|
var init_tickRegistry = __esm({
|
|
42852
43277
|
"lib/tickRegistry.ts"() {
|
|
42853
43278
|
ticks = /* @__PURE__ */ new Map();
|
|
42854
|
-
|
|
43279
|
+
listeners3 = /* @__PURE__ */ new Set();
|
|
42855
43280
|
}
|
|
42856
43281
|
});
|
|
42857
43282
|
|
|
@@ -42860,14 +43285,14 @@ function getGuardHistory() {
|
|
|
42860
43285
|
return [...guardHistory];
|
|
42861
43286
|
}
|
|
42862
43287
|
function subscribeToGuardChanges(listener) {
|
|
42863
|
-
|
|
42864
|
-
return () =>
|
|
43288
|
+
listeners4.add(listener);
|
|
43289
|
+
return () => listeners4.delete(listener);
|
|
42865
43290
|
}
|
|
42866
|
-
var guardHistory,
|
|
43291
|
+
var guardHistory, listeners4;
|
|
42867
43292
|
var init_guardRegistry = __esm({
|
|
42868
43293
|
"lib/guardRegistry.ts"() {
|
|
42869
43294
|
guardHistory = [];
|
|
42870
|
-
|
|
43295
|
+
listeners4 = /* @__PURE__ */ new Set();
|
|
42871
43296
|
}
|
|
42872
43297
|
});
|
|
42873
43298
|
|
|
@@ -42898,18 +43323,18 @@ function getDebugEvents() {
|
|
|
42898
43323
|
return [...events];
|
|
42899
43324
|
}
|
|
42900
43325
|
function subscribeToDebugEvents(listener) {
|
|
42901
|
-
|
|
42902
|
-
return () =>
|
|
43326
|
+
listeners5.add(listener);
|
|
43327
|
+
return () => listeners5.delete(listener);
|
|
42903
43328
|
}
|
|
42904
|
-
var events,
|
|
43329
|
+
var events, listeners5;
|
|
42905
43330
|
var init_debugRegistry = __esm({
|
|
42906
43331
|
"lib/debugRegistry.ts"() {
|
|
42907
43332
|
events = [];
|
|
42908
|
-
|
|
43333
|
+
listeners5 = /* @__PURE__ */ new Set();
|
|
42909
43334
|
}
|
|
42910
43335
|
});
|
|
42911
43336
|
function useDebugData() {
|
|
42912
|
-
const [data, setData] =
|
|
43337
|
+
const [data, setData] = React98.useState(() => ({
|
|
42913
43338
|
traits: [],
|
|
42914
43339
|
ticks: [],
|
|
42915
43340
|
guards: [],
|
|
@@ -42923,7 +43348,7 @@ function useDebugData() {
|
|
|
42923
43348
|
},
|
|
42924
43349
|
lastUpdate: Date.now()
|
|
42925
43350
|
}));
|
|
42926
|
-
|
|
43351
|
+
React98.useEffect(() => {
|
|
42927
43352
|
const updateData = () => {
|
|
42928
43353
|
setData({
|
|
42929
43354
|
traits: getAllTraits(),
|
|
@@ -42982,14 +43407,14 @@ function isDebugEnabled2() {
|
|
|
42982
43407
|
return localStorage.getItem(DEBUG_STORAGE_KEY) === "true";
|
|
42983
43408
|
}
|
|
42984
43409
|
function onDebugToggle(listener) {
|
|
42985
|
-
|
|
42986
|
-
return () =>
|
|
43410
|
+
listeners6.add(listener);
|
|
43411
|
+
return () => listeners6.delete(listener);
|
|
42987
43412
|
}
|
|
42988
|
-
var DEBUG_STORAGE_KEY,
|
|
43413
|
+
var DEBUG_STORAGE_KEY, listeners6;
|
|
42989
43414
|
var init_debugUtils = __esm({
|
|
42990
43415
|
"lib/debugUtils.ts"() {
|
|
42991
43416
|
DEBUG_STORAGE_KEY = "orbital-debug";
|
|
42992
|
-
|
|
43417
|
+
listeners6 = /* @__PURE__ */ new Set();
|
|
42993
43418
|
}
|
|
42994
43419
|
});
|
|
42995
43420
|
function layoutGraph(states, transitions, initialState, width, height) {
|
|
@@ -43032,12 +43457,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
43032
43457
|
return positions;
|
|
43033
43458
|
}
|
|
43034
43459
|
function WalkMinimap() {
|
|
43035
|
-
const [walkStep, setWalkStep] =
|
|
43036
|
-
const [traits2, setTraits] =
|
|
43037
|
-
const [coveredEdges, setCoveredEdges] =
|
|
43038
|
-
const [completedTraits, setCompletedTraits] =
|
|
43039
|
-
const prevTraitRef =
|
|
43040
|
-
|
|
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(() => {
|
|
43041
43466
|
const interval = setInterval(() => {
|
|
43042
43467
|
const w = window;
|
|
43043
43468
|
const step = w.__orbitalWalkStep;
|
|
@@ -43484,15 +43909,15 @@ var init_EntitiesTab = __esm({
|
|
|
43484
43909
|
}
|
|
43485
43910
|
});
|
|
43486
43911
|
function EventFlowTab({ events: events2 }) {
|
|
43487
|
-
const [filter, setFilter] =
|
|
43488
|
-
const containerRef =
|
|
43489
|
-
const [autoScroll, setAutoScroll] =
|
|
43490
|
-
|
|
43912
|
+
const [filter, setFilter] = React98.useState("all");
|
|
43913
|
+
const containerRef = React98.useRef(null);
|
|
43914
|
+
const [autoScroll, setAutoScroll] = React98.useState(true);
|
|
43915
|
+
React98.useEffect(() => {
|
|
43491
43916
|
if (autoScroll && containerRef.current) {
|
|
43492
43917
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
43493
43918
|
}
|
|
43494
43919
|
}, [events2.length, autoScroll]);
|
|
43495
|
-
const filteredEvents =
|
|
43920
|
+
const filteredEvents = React98.useMemo(() => {
|
|
43496
43921
|
if (filter === "all") return events2;
|
|
43497
43922
|
return events2.filter((e) => e.type === filter);
|
|
43498
43923
|
}, [events2, filter]);
|
|
@@ -43611,7 +44036,7 @@ var init_EventFlowTab = __esm({
|
|
|
43611
44036
|
}
|
|
43612
44037
|
});
|
|
43613
44038
|
function GuardsPanel({ guards }) {
|
|
43614
|
-
const [filter, setFilter] =
|
|
44039
|
+
const [filter, setFilter] = React98.useState("all");
|
|
43615
44040
|
if (guards.length === 0) {
|
|
43616
44041
|
return /* @__PURE__ */ jsx(
|
|
43617
44042
|
EmptyState,
|
|
@@ -43624,7 +44049,7 @@ function GuardsPanel({ guards }) {
|
|
|
43624
44049
|
}
|
|
43625
44050
|
const passedCount = guards.filter((g) => g.result).length;
|
|
43626
44051
|
const failedCount = guards.length - passedCount;
|
|
43627
|
-
const filteredGuards =
|
|
44052
|
+
const filteredGuards = React98.useMemo(() => {
|
|
43628
44053
|
if (filter === "all") return guards;
|
|
43629
44054
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
43630
44055
|
return guards.filter((g) => !g.result);
|
|
@@ -43785,10 +44210,10 @@ function EffectBadge({ effect }) {
|
|
|
43785
44210
|
] });
|
|
43786
44211
|
}
|
|
43787
44212
|
function TransitionTimeline({ transitions }) {
|
|
43788
|
-
const containerRef =
|
|
43789
|
-
const [autoScroll, setAutoScroll] =
|
|
43790
|
-
const [expandedId, setExpandedId] =
|
|
43791
|
-
|
|
44213
|
+
const containerRef = React98.useRef(null);
|
|
44214
|
+
const [autoScroll, setAutoScroll] = React98.useState(true);
|
|
44215
|
+
const [expandedId, setExpandedId] = React98.useState(null);
|
|
44216
|
+
React98.useEffect(() => {
|
|
43792
44217
|
if (autoScroll && containerRef.current) {
|
|
43793
44218
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
43794
44219
|
}
|
|
@@ -44074,9 +44499,9 @@ function getAllEvents(traits2) {
|
|
|
44074
44499
|
}
|
|
44075
44500
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
44076
44501
|
const eventBus = useEventBus();
|
|
44077
|
-
const [log20, setLog] =
|
|
44078
|
-
const prevStatesRef =
|
|
44079
|
-
|
|
44502
|
+
const [log20, setLog] = React98.useState([]);
|
|
44503
|
+
const prevStatesRef = React98.useRef(/* @__PURE__ */ new Map());
|
|
44504
|
+
React98.useEffect(() => {
|
|
44080
44505
|
for (const trait of traits2) {
|
|
44081
44506
|
const prev = prevStatesRef.current.get(trait.id);
|
|
44082
44507
|
if (prev && prev !== trait.currentState) {
|
|
@@ -44246,10 +44671,10 @@ function VerifyModePanel({
|
|
|
44246
44671
|
serverCount,
|
|
44247
44672
|
localCount
|
|
44248
44673
|
}) {
|
|
44249
|
-
const [expanded, setExpanded] =
|
|
44250
|
-
const scrollRef =
|
|
44251
|
-
const prevCountRef =
|
|
44252
|
-
|
|
44674
|
+
const [expanded, setExpanded] = React98.useState(true);
|
|
44675
|
+
const scrollRef = React98.useRef(null);
|
|
44676
|
+
const prevCountRef = React98.useRef(0);
|
|
44677
|
+
React98.useEffect(() => {
|
|
44253
44678
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
44254
44679
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
44255
44680
|
}
|
|
@@ -44315,10 +44740,10 @@ function RuntimeDebugger({
|
|
|
44315
44740
|
defaultTab,
|
|
44316
44741
|
schema
|
|
44317
44742
|
}) {
|
|
44318
|
-
const [isCollapsed, setIsCollapsed] =
|
|
44319
|
-
const [isVisible, setIsVisible] =
|
|
44743
|
+
const [isCollapsed, setIsCollapsed] = React98.useState(mode === "verify" ? true : defaultCollapsed);
|
|
44744
|
+
const [isVisible, setIsVisible] = React98.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
44320
44745
|
const debugData = useDebugData();
|
|
44321
|
-
|
|
44746
|
+
React98.useEffect(() => {
|
|
44322
44747
|
if (mode === "inline") return;
|
|
44323
44748
|
return onDebugToggle((enabled) => {
|
|
44324
44749
|
setIsVisible(enabled);
|
|
@@ -44327,7 +44752,7 @@ function RuntimeDebugger({
|
|
|
44327
44752
|
}
|
|
44328
44753
|
});
|
|
44329
44754
|
}, [mode]);
|
|
44330
|
-
|
|
44755
|
+
React98.useEffect(() => {
|
|
44331
44756
|
if (mode === "inline") return;
|
|
44332
44757
|
const handleKeyDown = (e) => {
|
|
44333
44758
|
if (e.key === "`" && isVisible) {
|
|
@@ -44876,7 +45301,7 @@ function SequenceBar({
|
|
|
44876
45301
|
onSlotRemove(index);
|
|
44877
45302
|
}, [onSlotRemove, playing]);
|
|
44878
45303
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
44879
|
-
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: [
|
|
44880
45305
|
i > 0 && /* @__PURE__ */ jsx(
|
|
44881
45306
|
Typography,
|
|
44882
45307
|
{
|
|
@@ -46278,7 +46703,7 @@ var init_StatCard = __esm({
|
|
|
46278
46703
|
const labelToUse = propLabel ?? propTitle;
|
|
46279
46704
|
const eventBus = useEventBus();
|
|
46280
46705
|
const { t } = useTranslate();
|
|
46281
|
-
const handleActionClick =
|
|
46706
|
+
const handleActionClick = React98__default.useCallback(() => {
|
|
46282
46707
|
if (action?.event) {
|
|
46283
46708
|
eventBus.emit(`UI:${action.event}`, {});
|
|
46284
46709
|
}
|
|
@@ -46289,7 +46714,7 @@ var init_StatCard = __esm({
|
|
|
46289
46714
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
46290
46715
|
const isLoading = externalLoading ?? false;
|
|
46291
46716
|
const error = externalError;
|
|
46292
|
-
const computeMetricValue =
|
|
46717
|
+
const computeMetricValue = React98__default.useCallback(
|
|
46293
46718
|
(metric, items) => {
|
|
46294
46719
|
if (metric.value !== void 0) {
|
|
46295
46720
|
return metric.value;
|
|
@@ -46328,7 +46753,7 @@ var init_StatCard = __esm({
|
|
|
46328
46753
|
},
|
|
46329
46754
|
[]
|
|
46330
46755
|
);
|
|
46331
|
-
const schemaStats =
|
|
46756
|
+
const schemaStats = React98__default.useMemo(() => {
|
|
46332
46757
|
if (!metrics || metrics.length === 0) return null;
|
|
46333
46758
|
return metrics.map((metric) => ({
|
|
46334
46759
|
label: metric.label,
|
|
@@ -46336,7 +46761,7 @@ var init_StatCard = __esm({
|
|
|
46336
46761
|
format: metric.format
|
|
46337
46762
|
}));
|
|
46338
46763
|
}, [metrics, data, computeMetricValue]);
|
|
46339
|
-
const calculatedTrend =
|
|
46764
|
+
const calculatedTrend = React98__default.useMemo(() => {
|
|
46340
46765
|
if (manualTrend !== void 0) return manualTrend;
|
|
46341
46766
|
if (previousValue === void 0 || currentValue === void 0)
|
|
46342
46767
|
return void 0;
|
|
@@ -47447,7 +47872,7 @@ var init_Timeline = __esm({
|
|
|
47447
47872
|
}) => {
|
|
47448
47873
|
const { t } = useTranslate();
|
|
47449
47874
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
47450
|
-
const items =
|
|
47875
|
+
const items = React98__default.useMemo(() => {
|
|
47451
47876
|
if (propItems) return propItems;
|
|
47452
47877
|
if (entityData.length === 0) return [];
|
|
47453
47878
|
return entityData.map((record, idx) => {
|
|
@@ -47554,7 +47979,7 @@ var init_Timeline = __esm({
|
|
|
47554
47979
|
}
|
|
47555
47980
|
});
|
|
47556
47981
|
function extractToastProps(children) {
|
|
47557
|
-
if (!
|
|
47982
|
+
if (!React98__default.isValidElement(children)) {
|
|
47558
47983
|
if (typeof children === "string") {
|
|
47559
47984
|
return { message: children };
|
|
47560
47985
|
}
|
|
@@ -47592,7 +48017,7 @@ var init_ToastSlot = __esm({
|
|
|
47592
48017
|
eventBus.emit("UI:CLOSE");
|
|
47593
48018
|
};
|
|
47594
48019
|
if (!isVisible) return null;
|
|
47595
|
-
const isCustomContent =
|
|
48020
|
+
const isCustomContent = React98__default.isValidElement(children) && !message;
|
|
47596
48021
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
47597
48022
|
Toast,
|
|
47598
48023
|
{
|
|
@@ -47861,7 +48286,7 @@ var init_WizardContainer = __esm({
|
|
|
47861
48286
|
const isCompleted = index < currentStep;
|
|
47862
48287
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
47863
48288
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
47864
|
-
return /* @__PURE__ */ jsxs(
|
|
48289
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
47865
48290
|
/* @__PURE__ */ jsx(
|
|
47866
48291
|
Button,
|
|
47867
48292
|
{
|
|
@@ -50054,7 +50479,7 @@ function UnitRenderer({
|
|
|
50054
50479
|
onAnimationStateChange,
|
|
50055
50480
|
animationSpeed = 1
|
|
50056
50481
|
}) {
|
|
50057
|
-
const handleUnitClick =
|
|
50482
|
+
const handleUnitClick = React98__default.useCallback(
|
|
50058
50483
|
(unit) => {
|
|
50059
50484
|
onUnitClick?.(unit);
|
|
50060
50485
|
},
|
|
@@ -53267,7 +53692,7 @@ var init_Avl3DViewer = __esm({
|
|
|
53267
53692
|
const handleTraitClick = useCallback((name) => {
|
|
53268
53693
|
dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
|
|
53269
53694
|
}, []);
|
|
53270
|
-
const [highlightedTrait, setHighlightedTrait] =
|
|
53695
|
+
const [highlightedTrait, setHighlightedTrait] = React98__default.useState(null);
|
|
53271
53696
|
const handleTransitionClick = useCallback((index) => {
|
|
53272
53697
|
dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
|
|
53273
53698
|
}, []);
|
|
@@ -53354,7 +53779,7 @@ var init_Avl3DViewer = __esm({
|
|
|
53354
53779
|
gap: "xs",
|
|
53355
53780
|
align: "center",
|
|
53356
53781
|
className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
|
|
53357
|
-
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
53782
|
+
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
53358
53783
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
|
|
53359
53784
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
53360
53785
|
Box,
|
|
@@ -53732,12 +54157,12 @@ var init_three = __esm({
|
|
|
53732
54157
|
}
|
|
53733
54158
|
});
|
|
53734
54159
|
function lazyThree(name, loader) {
|
|
53735
|
-
const Lazy =
|
|
54160
|
+
const Lazy = React98__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
53736
54161
|
function ThreeWrapper(props) {
|
|
53737
|
-
return
|
|
53738
|
-
|
|
54162
|
+
return React98__default.createElement(
|
|
54163
|
+
React98__default.Suspense,
|
|
53739
54164
|
{ fallback: null },
|
|
53740
|
-
|
|
54165
|
+
React98__default.createElement(Lazy, props)
|
|
53741
54166
|
);
|
|
53742
54167
|
}
|
|
53743
54168
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -54353,7 +54778,7 @@ function SuspenseConfigProvider({
|
|
|
54353
54778
|
config,
|
|
54354
54779
|
children
|
|
54355
54780
|
}) {
|
|
54356
|
-
return
|
|
54781
|
+
return React98__default.createElement(
|
|
54357
54782
|
SuspenseConfigContext.Provider,
|
|
54358
54783
|
{ value: config },
|
|
54359
54784
|
children
|
|
@@ -54836,7 +55261,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
54836
55261
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
54837
55262
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
54838
55263
|
}
|
|
54839
|
-
return /* @__PURE__ */ jsx(
|
|
55264
|
+
return /* @__PURE__ */ jsx(React98__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
54840
55265
|
}
|
|
54841
55266
|
if (!child || typeof child !== "object") return null;
|
|
54842
55267
|
const childId = `${parentId}-${index}`;
|
|
@@ -54873,14 +55298,14 @@ function isPatternConfig(value) {
|
|
|
54873
55298
|
if (value === null || value === void 0) return false;
|
|
54874
55299
|
if (typeof value !== "object") return false;
|
|
54875
55300
|
if (Array.isArray(value)) return false;
|
|
54876
|
-
if (
|
|
55301
|
+
if (React98__default.isValidElement(value)) return false;
|
|
54877
55302
|
if (value instanceof Date) return false;
|
|
54878
55303
|
if (typeof value === "function") return false;
|
|
54879
55304
|
const record = value;
|
|
54880
55305
|
return "type" in record && typeof record.type === "string";
|
|
54881
55306
|
}
|
|
54882
55307
|
function isPlainConfigObject(value) {
|
|
54883
|
-
if (
|
|
55308
|
+
if (React98__default.isValidElement(value)) return false;
|
|
54884
55309
|
if (value instanceof Date) return false;
|
|
54885
55310
|
const proto = Object.getPrototypeOf(value);
|
|
54886
55311
|
return proto === Object.prototype || proto === null;
|
|
@@ -55336,7 +55761,7 @@ var AvlTransition = ({
|
|
|
55336
55761
|
opacity = 1,
|
|
55337
55762
|
className
|
|
55338
55763
|
}) => {
|
|
55339
|
-
const ids =
|
|
55764
|
+
const ids = React98__default.useMemo(() => {
|
|
55340
55765
|
avlTransitionId += 1;
|
|
55341
55766
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
55342
55767
|
}, []);
|
|
@@ -55897,7 +56322,7 @@ var AvlStateMachine = ({
|
|
|
55897
56322
|
color = "var(--color-primary)",
|
|
55898
56323
|
animated = false
|
|
55899
56324
|
}) => {
|
|
55900
|
-
const ids =
|
|
56325
|
+
const ids = React98__default.useMemo(() => {
|
|
55901
56326
|
avlSmId += 1;
|
|
55902
56327
|
const base = `avl-sm-${avlSmId}`;
|
|
55903
56328
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -56096,7 +56521,7 @@ var AvlOrbitalUnit = ({
|
|
|
56096
56521
|
color = "var(--color-primary)",
|
|
56097
56522
|
animated = false
|
|
56098
56523
|
}) => {
|
|
56099
|
-
const ids =
|
|
56524
|
+
const ids = React98__default.useMemo(() => {
|
|
56100
56525
|
avlOuId += 1;
|
|
56101
56526
|
const base = `avl-ou-${avlOuId}`;
|
|
56102
56527
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -56192,7 +56617,7 @@ var AvlClosedCircuit = ({
|
|
|
56192
56617
|
color = "var(--color-primary)",
|
|
56193
56618
|
animated = false
|
|
56194
56619
|
}) => {
|
|
56195
|
-
const ids =
|
|
56620
|
+
const ids = React98__default.useMemo(() => {
|
|
56196
56621
|
avlCcId += 1;
|
|
56197
56622
|
const base = `avl-cc-${avlCcId}`;
|
|
56198
56623
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -56347,7 +56772,7 @@ var AvlEmitListen = ({
|
|
|
56347
56772
|
color = "var(--color-primary)",
|
|
56348
56773
|
animated = false
|
|
56349
56774
|
}) => {
|
|
56350
|
-
const ids =
|
|
56775
|
+
const ids = React98__default.useMemo(() => {
|
|
56351
56776
|
avlElId += 1;
|
|
56352
56777
|
const base = `avl-el-${avlElId}`;
|
|
56353
56778
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -56620,7 +57045,7 @@ function renderNode(node, color, glowId) {
|
|
|
56620
57045
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
56621
57046
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
56622
57047
|
const nc = nodeColor(node.type, color);
|
|
56623
|
-
return /* @__PURE__ */ jsxs(
|
|
57048
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
56624
57049
|
node.children.map((child, i) => {
|
|
56625
57050
|
const childR = Math.max(
|
|
56626
57051
|
child.type === "operator" ? 20 : 16,
|
|
@@ -56677,7 +57102,7 @@ var AvlExprTree = ({
|
|
|
56677
57102
|
className,
|
|
56678
57103
|
color = "var(--color-primary)"
|
|
56679
57104
|
}) => {
|
|
56680
|
-
const ids =
|
|
57105
|
+
const ids = React98__default.useMemo(() => {
|
|
56681
57106
|
avlEtId += 1;
|
|
56682
57107
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
56683
57108
|
}, []);
|
|
@@ -57240,7 +57665,7 @@ var SystemNode = ({ data }) => {
|
|
|
57240
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) => {
|
|
57241
57666
|
const tc = transitionCounts[s.name] ?? 0;
|
|
57242
57667
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
57243
|
-
return /* @__PURE__ */ jsxs(
|
|
57668
|
+
return /* @__PURE__ */ jsxs(React98__default.Fragment, { children: [
|
|
57244
57669
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
57245
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 })
|
|
57246
57671
|
] }, s.name);
|
|
@@ -57749,20 +58174,20 @@ function isBackwardTransition(from, to, states) {
|
|
|
57749
58174
|
function extractTraitWires(orbitals, scope) {
|
|
57750
58175
|
const wires = [];
|
|
57751
58176
|
const emitters = [];
|
|
57752
|
-
const
|
|
58177
|
+
const listeners7 = [];
|
|
57753
58178
|
for (const orb of orbitals) {
|
|
57754
58179
|
for (const trait of getTraits2(orb)) {
|
|
57755
58180
|
for (const e of getEmits2(trait)) {
|
|
57756
58181
|
emitters.push({ orbital: orb.name, trait: trait.name, event: e });
|
|
57757
58182
|
}
|
|
57758
58183
|
for (const l of getListens2(trait)) {
|
|
57759
|
-
|
|
58184
|
+
listeners7.push({ orbital: orb.name, trait: trait.name, event: l });
|
|
57760
58185
|
}
|
|
57761
58186
|
}
|
|
57762
58187
|
}
|
|
57763
58188
|
const seen = /* @__PURE__ */ new Set();
|
|
57764
58189
|
for (const em of emitters) {
|
|
57765
|
-
for (const li of
|
|
58190
|
+
for (const li of listeners7) {
|
|
57766
58191
|
if (em.event !== li.event) continue;
|
|
57767
58192
|
if (scope === "cross-orbital" && em.orbital === li.orbital) continue;
|
|
57768
58193
|
if (scope === "intra-orbital" && em.orbital !== li.orbital) continue;
|
|
@@ -58659,7 +59084,7 @@ function resolveLambdaBindings(body, argName, arg) {
|
|
|
58659
59084
|
if (Array.isArray(body)) {
|
|
58660
59085
|
return body.map((b) => resolveLambdaBindings(b, argName, arg));
|
|
58661
59086
|
}
|
|
58662
|
-
if (body !== null && typeof body === "object" && !
|
|
59087
|
+
if (body !== null && typeof body === "object" && !React98__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
58663
59088
|
const out = {};
|
|
58664
59089
|
for (const [k, v] of Object.entries(body)) {
|
|
58665
59090
|
out[k] = resolveLambdaBindings(v, argName, arg);
|
|
@@ -58678,7 +59103,7 @@ function getSlotContentRenderer2() {
|
|
|
58678
59103
|
function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
58679
59104
|
return (item, index) => {
|
|
58680
59105
|
const resolvedBody = resolveLambdaBindings(lambdaBody, argName, item);
|
|
58681
|
-
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) {
|
|
58682
59107
|
return null;
|
|
58683
59108
|
}
|
|
58684
59109
|
const record = resolvedBody;
|
|
@@ -58696,7 +59121,7 @@ function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
|
58696
59121
|
props: childProps,
|
|
58697
59122
|
priority: 0
|
|
58698
59123
|
};
|
|
58699
|
-
return
|
|
59124
|
+
return React98__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
58700
59125
|
};
|
|
58701
59126
|
}
|
|
58702
59127
|
function convertNode(node, callerKey) {
|
|
@@ -58715,7 +59140,7 @@ function convertNode(node, callerKey) {
|
|
|
58715
59140
|
});
|
|
58716
59141
|
return anyChanged ? mapped : node;
|
|
58717
59142
|
}
|
|
58718
|
-
if (typeof node === "object" && !
|
|
59143
|
+
if (typeof node === "object" && !React98__default.isValidElement(node) && !(node instanceof Date)) {
|
|
58719
59144
|
return convertObjectProps(node);
|
|
58720
59145
|
}
|
|
58721
59146
|
return node;
|
|
@@ -59686,8 +60111,176 @@ function themeTokensToCssVars(tokens, mode = "light", darkVariant) {
|
|
|
59686
60111
|
vars[`--shadow-${key}`] = value;
|
|
59687
60112
|
}
|
|
59688
60113
|
}
|
|
60114
|
+
const pickDensity = isDark && darkVariant?.density ? darkVariant.density : tokens.density;
|
|
60115
|
+
emitDensity(pickDensity, vars);
|
|
60116
|
+
const pickTypeScale = isDark && darkVariant?.typeScale ? darkVariant.typeScale : tokens.typeScale;
|
|
60117
|
+
emitTypeScale(pickTypeScale, vars);
|
|
60118
|
+
const pickMotion = isDark && darkVariant?.motion ? darkVariant.motion : tokens.motion;
|
|
60119
|
+
emitMotion(pickMotion, vars);
|
|
60120
|
+
const pickIconography = isDark && darkVariant?.iconography ? darkVariant.iconography : tokens.iconography;
|
|
60121
|
+
emitIconography(pickIconography, vars);
|
|
60122
|
+
const pickElevation = isDark && darkVariant?.elevation ? darkVariant.elevation : tokens.elevation;
|
|
60123
|
+
emitElevation(pickElevation, vars);
|
|
60124
|
+
const pickGeometry = isDark && darkVariant?.geometry ? darkVariant.geometry : tokens.geometry;
|
|
60125
|
+
emitGeometry(pickGeometry, vars);
|
|
59689
60126
|
return vars;
|
|
59690
60127
|
}
|
|
60128
|
+
function emitDensity(density, vars) {
|
|
60129
|
+
if (!density) return;
|
|
60130
|
+
if (density.spacing) {
|
|
60131
|
+
const s = density.spacing;
|
|
60132
|
+
const pairs2 = [
|
|
60133
|
+
["0", s.space0],
|
|
60134
|
+
["1", s.space1],
|
|
60135
|
+
["2", s.space2],
|
|
60136
|
+
["3", s.space3],
|
|
60137
|
+
["4", s.space4],
|
|
60138
|
+
["5", s.space5],
|
|
60139
|
+
["6", s.space6],
|
|
60140
|
+
["7", s.space7],
|
|
60141
|
+
["8", s.space8],
|
|
60142
|
+
["9", s.space9],
|
|
60143
|
+
["10", s.space10],
|
|
60144
|
+
["11", s.space11],
|
|
60145
|
+
["12", s.space12]
|
|
60146
|
+
];
|
|
60147
|
+
for (const [k, v] of pairs2) {
|
|
60148
|
+
if (v !== void 0) vars[`--space-${k}`] = v;
|
|
60149
|
+
}
|
|
60150
|
+
}
|
|
60151
|
+
const pairs = [
|
|
60152
|
+
["button-height-sm", density.buttonHeightSm],
|
|
60153
|
+
["button-height-md", density.buttonHeightMd],
|
|
60154
|
+
["button-height-lg", density.buttonHeightLg],
|
|
60155
|
+
["input-height-sm", density.inputHeightSm],
|
|
60156
|
+
["input-height-md", density.inputHeightMd],
|
|
60157
|
+
["input-height-lg", density.inputHeightLg],
|
|
60158
|
+
["row-height-compact", density.rowHeightCompact],
|
|
60159
|
+
["row-height-normal", density.rowHeightNormal],
|
|
60160
|
+
["row-height-spacious", density.rowHeightSpacious],
|
|
60161
|
+
["card-padding-sm", density.cardPaddingSm],
|
|
60162
|
+
["card-padding-md", density.cardPaddingMd],
|
|
60163
|
+
["card-padding-lg", density.cardPaddingLg],
|
|
60164
|
+
["dialog-padding", density.dialogPadding],
|
|
60165
|
+
["section-gap", density.sectionGap]
|
|
60166
|
+
];
|
|
60167
|
+
for (const [k, v] of pairs) {
|
|
60168
|
+
if (v !== void 0) vars[`--${k}`] = v;
|
|
60169
|
+
}
|
|
60170
|
+
}
|
|
60171
|
+
function typeSizeKeyStr(k) {
|
|
60172
|
+
return k;
|
|
60173
|
+
}
|
|
60174
|
+
function typeWeightStr(w) {
|
|
60175
|
+
return w;
|
|
60176
|
+
}
|
|
60177
|
+
function emitTypeIntent(name, intent, vars) {
|
|
60178
|
+
const sizeKey = typeSizeKeyStr(intent.size);
|
|
60179
|
+
const weight = typeWeightStr(intent.weight);
|
|
60180
|
+
vars[`--intent-${name}-size`] = `var(--text-${sizeKey})`;
|
|
60181
|
+
vars[`--intent-${name}-weight`] = `var(--font-weight-${weight})`;
|
|
60182
|
+
vars[`--intent-${name}-leading`] = `var(--leading-${sizeKey})`;
|
|
60183
|
+
}
|
|
60184
|
+
function emitTypeScale(ts, vars) {
|
|
60185
|
+
if (!ts) return;
|
|
60186
|
+
if (ts.displayFamily !== void 0) vars["--font-family-display"] = ts.displayFamily;
|
|
60187
|
+
if (ts.bodyFamily !== void 0) vars["--font-family-body"] = ts.bodyFamily;
|
|
60188
|
+
if (ts.monoFamily !== void 0) vars["--font-family-mono"] = ts.monoFamily;
|
|
60189
|
+
if (ts.scale) {
|
|
60190
|
+
const s = ts.scale;
|
|
60191
|
+
const pairs = [
|
|
60192
|
+
["xs", s.xs],
|
|
60193
|
+
["sm", s.sm],
|
|
60194
|
+
["base", s.base],
|
|
60195
|
+
["lg", s.lg],
|
|
60196
|
+
["xl", s.xl],
|
|
60197
|
+
["2xl", s["2xl"]],
|
|
60198
|
+
["3xl", s["3xl"]],
|
|
60199
|
+
["4xl", s["4xl"]],
|
|
60200
|
+
["display-1", s["display-1"]],
|
|
60201
|
+
["display-2", s["display-2"]]
|
|
60202
|
+
];
|
|
60203
|
+
for (const [k, entry] of pairs) {
|
|
60204
|
+
if (entry !== void 0) {
|
|
60205
|
+
vars[`--text-${k}`] = entry.size;
|
|
60206
|
+
vars[`--leading-${k}`] = entry.lineHeight;
|
|
60207
|
+
}
|
|
60208
|
+
}
|
|
60209
|
+
}
|
|
60210
|
+
if (ts.intents) {
|
|
60211
|
+
const i = ts.intents;
|
|
60212
|
+
if (i.headingMajor) emitTypeIntent("heading-major", i.headingMajor, vars);
|
|
60213
|
+
if (i.headingMinor) emitTypeIntent("heading-minor", i.headingMinor, vars);
|
|
60214
|
+
if (i.bodyEmphasis) emitTypeIntent("body-emphasis", i.bodyEmphasis, vars);
|
|
60215
|
+
if (i.bodyDefault) emitTypeIntent("body-default", i.bodyDefault, vars);
|
|
60216
|
+
if (i.bodyQuiet) emitTypeIntent("body-quiet", i.bodyQuiet, vars);
|
|
60217
|
+
if (i.caption) emitTypeIntent("caption", i.caption, vars);
|
|
60218
|
+
if (i.numeric) emitTypeIntent("numeric", i.numeric, vars);
|
|
60219
|
+
}
|
|
60220
|
+
}
|
|
60221
|
+
function emitMotionIntent(name, intent, vars) {
|
|
60222
|
+
vars[`--intent-${name}-duration`] = `var(--duration-${intent.duration})`;
|
|
60223
|
+
vars[`--intent-${name}-easing`] = `var(--easing-${intent.easing})`;
|
|
60224
|
+
}
|
|
60225
|
+
function emitMotion(m, vars) {
|
|
60226
|
+
if (!m) return;
|
|
60227
|
+
if (m.durations) {
|
|
60228
|
+
const d = m.durations;
|
|
60229
|
+
const pairs = [
|
|
60230
|
+
["instant", d.instant],
|
|
60231
|
+
["fast", d.fast],
|
|
60232
|
+
["normal", d.normal],
|
|
60233
|
+
["slow", d.slow],
|
|
60234
|
+
["dramatic", d.dramatic]
|
|
60235
|
+
];
|
|
60236
|
+
for (const [k, v] of pairs) {
|
|
60237
|
+
if (v !== void 0) vars[`--duration-${k}`] = v;
|
|
60238
|
+
}
|
|
60239
|
+
}
|
|
60240
|
+
if (m.easings) {
|
|
60241
|
+
const e = m.easings;
|
|
60242
|
+
const pairs = [
|
|
60243
|
+
["linear", e.linear],
|
|
60244
|
+
["standard", e.standard],
|
|
60245
|
+
["emphasized", e.emphasized],
|
|
60246
|
+
["spring", e.spring]
|
|
60247
|
+
];
|
|
60248
|
+
for (const [k, v] of pairs) {
|
|
60249
|
+
if (v !== void 0) vars[`--easing-${k}`] = v;
|
|
60250
|
+
}
|
|
60251
|
+
}
|
|
60252
|
+
if (m.intents) {
|
|
60253
|
+
const i = m.intents;
|
|
60254
|
+
if (i.enter) emitMotionIntent("enter", i.enter, vars);
|
|
60255
|
+
if (i.exit) emitMotionIntent("exit", i.exit, vars);
|
|
60256
|
+
if (i.hover) emitMotionIntent("hover", i.hover, vars);
|
|
60257
|
+
if (i.press) emitMotionIntent("press", i.press, vars);
|
|
60258
|
+
if (i.expand) emitMotionIntent("expand", i.expand, vars);
|
|
60259
|
+
if (i.transition) emitMotionIntent("transition", i.transition, vars);
|
|
60260
|
+
}
|
|
60261
|
+
}
|
|
60262
|
+
function emitIconography(i, vars) {
|
|
60263
|
+
if (!i) return;
|
|
60264
|
+
if (i.family !== void 0) vars["--icon-family"] = i.family;
|
|
60265
|
+
if (i.strokeWidth !== void 0) vars["--icon-stroke-width"] = i.strokeWidth;
|
|
60266
|
+
if (i.defaultSize !== void 0) vars["--icon-default-size"] = i.defaultSize;
|
|
60267
|
+
}
|
|
60268
|
+
function emitElevation(e, vars) {
|
|
60269
|
+
if (!e) return;
|
|
60270
|
+
if (e.cardElevation !== void 0) vars["--elevation-card"] = e.cardElevation;
|
|
60271
|
+
if (e.popoverElevation !== void 0) vars["--elevation-popover"] = e.popoverElevation;
|
|
60272
|
+
if (e.dialogElevation !== void 0) vars["--elevation-dialog"] = e.dialogElevation;
|
|
60273
|
+
if (e.toastElevation !== void 0) vars["--elevation-toast"] = e.toastElevation;
|
|
60274
|
+
}
|
|
60275
|
+
function emitGeometry(g, vars) {
|
|
60276
|
+
if (!g) return;
|
|
60277
|
+
if (g.radiusContainer !== void 0) vars["--radius-container"] = g.radiusContainer;
|
|
60278
|
+
if (g.radiusInteractive !== void 0) vars["--radius-interactive"] = g.radiusInteractive;
|
|
60279
|
+
if (g.radiusPill !== void 0) vars["--radius-pill"] = g.radiusPill;
|
|
60280
|
+
if (g.borderHairline !== void 0) vars["--border-hairline"] = g.borderHairline;
|
|
60281
|
+
if (g.borderStandard !== void 0) vars["--border-standard"] = g.borderStandard;
|
|
60282
|
+
if (g.borderHeavy !== void 0) vars["--border-heavy"] = g.borderHeavy;
|
|
60283
|
+
}
|
|
59691
60284
|
function resolveThemeForRuntime(theme) {
|
|
59692
60285
|
if (theme === void 0) return void 0;
|
|
59693
60286
|
if (typeof theme === "string") return void 0;
|
|
@@ -59789,7 +60382,7 @@ function generateEntityRow(entity, idx) {
|
|
|
59789
60382
|
return row;
|
|
59790
60383
|
}
|
|
59791
60384
|
function generateFieldValue(entityName, field, idx) {
|
|
59792
|
-
if (field.values && field.values.length > 0) {
|
|
60385
|
+
if ("values" in field && field.values && field.values.length > 0) {
|
|
59793
60386
|
return field.values[(idx - 1) % field.values.length];
|
|
59794
60387
|
}
|
|
59795
60388
|
const fieldName = field.name ?? "";
|
|
@@ -60407,7 +61000,7 @@ function useCanvasDraggable({
|
|
|
60407
61000
|
payload,
|
|
60408
61001
|
disabled
|
|
60409
61002
|
}) {
|
|
60410
|
-
const { setNodeRef, attributes, listeners:
|
|
61003
|
+
const { setNodeRef, attributes, listeners: listeners7, isDragging, transform } = useDraggable({
|
|
60411
61004
|
id,
|
|
60412
61005
|
data: { payload },
|
|
60413
61006
|
disabled
|
|
@@ -60418,7 +61011,7 @@ function useCanvasDraggable({
|
|
|
60418
61011
|
opacity: isDragging ? 0.5 : 1,
|
|
60419
61012
|
touchAction: "none"
|
|
60420
61013
|
};
|
|
60421
|
-
return { setNodeRef, attributes, listeners:
|
|
61014
|
+
return { setNodeRef, attributes, listeners: listeners7, isDragging, style };
|
|
60422
61015
|
}
|
|
60423
61016
|
var DEFAULT_ACCEPTS = ["pattern", "behavior"];
|
|
60424
61017
|
function useCanvasDroppable({
|
|
@@ -60474,8 +61067,8 @@ function CanvasDndProvider({
|
|
|
60474
61067
|
}) {
|
|
60475
61068
|
const eventBus = useEventBus();
|
|
60476
61069
|
const sensors = useAlmadarDndSensors(false);
|
|
60477
|
-
const [activePayload, setActivePayload] =
|
|
60478
|
-
const handleDragStart =
|
|
61070
|
+
const [activePayload, setActivePayload] = React98__default.useState(null);
|
|
61071
|
+
const handleDragStart = React98__default.useCallback((e) => {
|
|
60479
61072
|
const data = e.active.data.current;
|
|
60480
61073
|
const payload = data?.payload;
|
|
60481
61074
|
if (payload) {
|
|
@@ -60486,7 +61079,7 @@ function CanvasDndProvider({
|
|
|
60486
61079
|
log18.warn("dragStart:missing-payload", { id: e.active.id });
|
|
60487
61080
|
}
|
|
60488
61081
|
}, [eventBus]);
|
|
60489
|
-
const handleDragEnd =
|
|
61082
|
+
const handleDragEnd = React98__default.useCallback((e) => {
|
|
60490
61083
|
setActivePayload(null);
|
|
60491
61084
|
const activeData = e.active.data.current;
|
|
60492
61085
|
const payload = activeData?.payload;
|
|
@@ -60515,7 +61108,7 @@ function CanvasDndProvider({
|
|
|
60515
61108
|
const suppressed = onDrop ? onDrop(drop) === true : false;
|
|
60516
61109
|
if (!suppressed) defaultEmit(eventBus, drop);
|
|
60517
61110
|
}, [eventBus, onDrop]);
|
|
60518
|
-
const handleDragCancel =
|
|
61111
|
+
const handleDragCancel = React98__default.useCallback(() => {
|
|
60519
61112
|
setActivePayload(null);
|
|
60520
61113
|
log18.info("dragCancel");
|
|
60521
61114
|
}, []);
|
|
@@ -61159,7 +61752,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
61159
61752
|
}
|
|
61160
61753
|
);
|
|
61161
61754
|
};
|
|
61162
|
-
var OrbPreviewNode =
|
|
61755
|
+
var OrbPreviewNode = React98__default.memo(OrbPreviewNodeInner);
|
|
61163
61756
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
61164
61757
|
orbPreviewLog.debug("export-resolved", () => ({
|
|
61165
61758
|
type: typeof OrbPreviewNode,
|
|
@@ -61264,7 +61857,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
61264
61857
|
) })
|
|
61265
61858
|
] });
|
|
61266
61859
|
};
|
|
61267
|
-
var EventFlowEdge =
|
|
61860
|
+
var EventFlowEdge = React98__default.memo(EventFlowEdgeInner);
|
|
61268
61861
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
61269
61862
|
|
|
61270
61863
|
// components/molecules/avl/BehaviorComposeNode.tsx
|
|
@@ -61411,7 +62004,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
61411
62004
|
}
|
|
61412
62005
|
);
|
|
61413
62006
|
};
|
|
61414
|
-
var BehaviorComposeNode =
|
|
62007
|
+
var BehaviorComposeNode = React98__default.memo(BehaviorComposeNodeInner);
|
|
61415
62008
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
61416
62009
|
|
|
61417
62010
|
// components/molecules/avl/avl-behavior-compose-converter.ts
|
|
@@ -62430,7 +63023,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
62430
63023
|
}
|
|
62431
63024
|
);
|
|
62432
63025
|
};
|
|
62433
|
-
var TraitCardNode =
|
|
63026
|
+
var TraitCardNode = React98__default.memo(TraitCardNodeInner);
|
|
62434
63027
|
TraitCardNode.displayName = "TraitCardNode";
|
|
62435
63028
|
|
|
62436
63029
|
// components/organisms/avl/FlowCanvas.tsx
|
|
@@ -62502,7 +63095,7 @@ function FlowCanvasInner({
|
|
|
62502
63095
|
initialOrbital
|
|
62503
63096
|
);
|
|
62504
63097
|
const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
|
|
62505
|
-
const screenSizeUserOverrideRef =
|
|
63098
|
+
const screenSizeUserOverrideRef = React98__default.useRef(false);
|
|
62506
63099
|
const [screenSize, setScreenSize] = useState(
|
|
62507
63100
|
() => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
|
|
62508
63101
|
);
|
|
@@ -62886,7 +63479,7 @@ var ZoomBreadcrumb = ({
|
|
|
62886
63479
|
if (eventName && band === "detail") {
|
|
62887
63480
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
62888
63481
|
}
|
|
62889
|
-
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: [
|
|
62890
63483
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
62891
63484
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
62892
63485
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -63094,7 +63687,7 @@ var EventWireOverlay = ({
|
|
|
63094
63687
|
containerW,
|
|
63095
63688
|
containerH
|
|
63096
63689
|
}) => {
|
|
63097
|
-
const ids =
|
|
63690
|
+
const ids = React98__default.useMemo(() => {
|
|
63098
63691
|
avlOczWireId += 1;
|
|
63099
63692
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
63100
63693
|
}, []);
|
|
@@ -63460,7 +64053,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
63460
64053
|
borderRadius: 6,
|
|
63461
64054
|
border: `1px solid ${color}`
|
|
63462
64055
|
},
|
|
63463
|
-
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: [
|
|
63464
64057
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
63465
64058
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
63466
64059
|
Box,
|