@almadar/ui 4.13.0 → 4.14.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 +1354 -1485
- package/dist/avl/index.js +262 -393
- package/dist/components/index.cjs +1061 -1062
- package/dist/components/index.js +160 -161
- package/dist/providers/index.cjs +914 -915
- package/dist/providers/index.js +158 -159
- package/dist/runtime/index.cjs +1037 -1179
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +259 -397
- package/dist/runtime/ui/slot-types.d.ts +48 -0
- package/dist/runtime/useTraitStateMachine.d.ts +20 -2
- package/package.json +1 -1
- package/dist/runtime/ui/SlotsContext.d.ts +0 -114
package/dist/components/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React110 from 'react';
|
|
4
|
+
import React110__default, { useContext, useMemo, useRef, useEffect, useCallback, createContext, useState, Suspense, lazy, useSyncExternalStore, useLayoutEffect, useId } from 'react';
|
|
5
5
|
import { EventBusContext, useTraitScope, TraitScopeProvider } from '@almadar/ui/providers';
|
|
6
6
|
import * as LucideIcons from 'lucide-react';
|
|
7
7
|
import { Loader2, X, AlertTriangle, Info, AlertCircle, CheckCircle, ChevronDown, List, Printer, ChevronRight, ChevronLeft, XCircle, Wrench, RotateCcw, Send, Code, FileText, WrapText, Check, Copy, Zap, Sword, Move, Heart, Shield, Trash2, Settings, Menu as Menu$1, Search, Bell, LogOut, ChevronUp, MoreHorizontal, Bug, ZoomOut, ZoomIn, Download, Pause, Play, Package, Calendar, Pencil, Eye, Image as Image$1, Upload, ArrowRight, ArrowLeft, Eraser, SkipForward, TrendingUp, TrendingDown, Minus, ArrowUp, ArrowDown, MoreVertical, Circle, Clock, CheckCircle2, HelpCircle, FileQuestion, Inbox, Plus, User, Filter, Star, FileWarning, Tag, DollarSign, Sun, Moon } from 'lucide-react';
|
|
@@ -368,7 +368,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
368
368
|
const IconComp = value;
|
|
369
369
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
370
370
|
}
|
|
371
|
-
if (
|
|
371
|
+
if (React110__default.isValidElement(value)) {
|
|
372
372
|
return value;
|
|
373
373
|
}
|
|
374
374
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -444,7 +444,7 @@ var init_Button = __esm({
|
|
|
444
444
|
md: "h-4 w-4",
|
|
445
445
|
lg: "h-5 w-5"
|
|
446
446
|
};
|
|
447
|
-
Button =
|
|
447
|
+
Button = React110__default.forwardRef(
|
|
448
448
|
({
|
|
449
449
|
className,
|
|
450
450
|
variant = "primary",
|
|
@@ -509,7 +509,7 @@ var Input;
|
|
|
509
509
|
var init_Input = __esm({
|
|
510
510
|
"components/atoms/Input.tsx"() {
|
|
511
511
|
init_cn();
|
|
512
|
-
Input =
|
|
512
|
+
Input = React110__default.forwardRef(
|
|
513
513
|
({
|
|
514
514
|
className,
|
|
515
515
|
inputType,
|
|
@@ -627,7 +627,7 @@ var Label;
|
|
|
627
627
|
var init_Label = __esm({
|
|
628
628
|
"components/atoms/Label.tsx"() {
|
|
629
629
|
init_cn();
|
|
630
|
-
Label =
|
|
630
|
+
Label = React110__default.forwardRef(
|
|
631
631
|
({ className, required, children, ...props }, ref) => {
|
|
632
632
|
return /* @__PURE__ */ jsxs(
|
|
633
633
|
"label",
|
|
@@ -653,7 +653,7 @@ var Textarea;
|
|
|
653
653
|
var init_Textarea = __esm({
|
|
654
654
|
"components/atoms/Textarea.tsx"() {
|
|
655
655
|
init_cn();
|
|
656
|
-
Textarea =
|
|
656
|
+
Textarea = React110__default.forwardRef(
|
|
657
657
|
({ className, error, ...props }, ref) => {
|
|
658
658
|
return /* @__PURE__ */ jsx(
|
|
659
659
|
"textarea",
|
|
@@ -682,7 +682,7 @@ var Select;
|
|
|
682
682
|
var init_Select = __esm({
|
|
683
683
|
"components/atoms/Select.tsx"() {
|
|
684
684
|
init_cn();
|
|
685
|
-
Select =
|
|
685
|
+
Select = React110__default.forwardRef(
|
|
686
686
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
687
687
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
688
688
|
/* @__PURE__ */ jsxs(
|
|
@@ -724,7 +724,7 @@ var Checkbox;
|
|
|
724
724
|
var init_Checkbox = __esm({
|
|
725
725
|
"components/atoms/Checkbox.tsx"() {
|
|
726
726
|
init_cn();
|
|
727
|
-
Checkbox =
|
|
727
|
+
Checkbox = React110__default.forwardRef(
|
|
728
728
|
({ className, label, id, ...props }, ref) => {
|
|
729
729
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
730
730
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -806,7 +806,7 @@ var init_Card = __esm({
|
|
|
806
806
|
md: "shadow",
|
|
807
807
|
lg: "shadow-lg"
|
|
808
808
|
};
|
|
809
|
-
Card =
|
|
809
|
+
Card = React110__default.forwardRef(
|
|
810
810
|
({
|
|
811
811
|
className,
|
|
812
812
|
variant = "bordered",
|
|
@@ -842,9 +842,9 @@ var init_Card = __esm({
|
|
|
842
842
|
}
|
|
843
843
|
);
|
|
844
844
|
Card.displayName = "Card";
|
|
845
|
-
CardHeader =
|
|
845
|
+
CardHeader = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
846
846
|
CardHeader.displayName = "CardHeader";
|
|
847
|
-
CardTitle =
|
|
847
|
+
CardTitle = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
848
848
|
"h3",
|
|
849
849
|
{
|
|
850
850
|
ref,
|
|
@@ -857,11 +857,11 @@ var init_Card = __esm({
|
|
|
857
857
|
}
|
|
858
858
|
));
|
|
859
859
|
CardTitle.displayName = "CardTitle";
|
|
860
|
-
CardContent =
|
|
860
|
+
CardContent = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
861
861
|
CardContent.displayName = "CardContent";
|
|
862
862
|
CardBody = CardContent;
|
|
863
863
|
CardBody.displayName = "CardBody";
|
|
864
|
-
CardFooter =
|
|
864
|
+
CardFooter = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
865
865
|
"div",
|
|
866
866
|
{
|
|
867
867
|
ref,
|
|
@@ -914,7 +914,7 @@ var init_Badge = __esm({
|
|
|
914
914
|
md: "px-2.5 py-1 text-sm",
|
|
915
915
|
lg: "px-3 py-1.5 text-base"
|
|
916
916
|
};
|
|
917
|
-
Badge =
|
|
917
|
+
Badge = React110__default.forwardRef(
|
|
918
918
|
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
919
919
|
const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
920
920
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
@@ -953,7 +953,7 @@ var init_Spinner = __esm({
|
|
|
953
953
|
md: "h-6 w-6",
|
|
954
954
|
lg: "h-8 w-8"
|
|
955
955
|
};
|
|
956
|
-
Spinner =
|
|
956
|
+
Spinner = React110__default.forwardRef(
|
|
957
957
|
({ className, size = "md", ...props }, ref) => {
|
|
958
958
|
return /* @__PURE__ */ jsx(
|
|
959
959
|
"div",
|
|
@@ -1234,7 +1234,7 @@ var init_Box = __esm({
|
|
|
1234
1234
|
fixed: "fixed",
|
|
1235
1235
|
sticky: "sticky"
|
|
1236
1236
|
};
|
|
1237
|
-
Box =
|
|
1237
|
+
Box = React110__default.forwardRef(
|
|
1238
1238
|
({
|
|
1239
1239
|
padding,
|
|
1240
1240
|
paddingX,
|
|
@@ -1607,7 +1607,7 @@ var Radio;
|
|
|
1607
1607
|
var init_Radio = __esm({
|
|
1608
1608
|
"components/atoms/Radio.tsx"() {
|
|
1609
1609
|
init_cn();
|
|
1610
|
-
Radio =
|
|
1610
|
+
Radio = React110__default.forwardRef(
|
|
1611
1611
|
({
|
|
1612
1612
|
label,
|
|
1613
1613
|
helperText,
|
|
@@ -1718,7 +1718,7 @@ var init_Switch = __esm({
|
|
|
1718
1718
|
"components/atoms/Switch.tsx"() {
|
|
1719
1719
|
"use client";
|
|
1720
1720
|
init_cn();
|
|
1721
|
-
Switch =
|
|
1721
|
+
Switch = React110.forwardRef(
|
|
1722
1722
|
({
|
|
1723
1723
|
checked,
|
|
1724
1724
|
defaultChecked = false,
|
|
@@ -1729,10 +1729,10 @@ var init_Switch = __esm({
|
|
|
1729
1729
|
name,
|
|
1730
1730
|
className
|
|
1731
1731
|
}, ref) => {
|
|
1732
|
-
const [isChecked, setIsChecked] =
|
|
1732
|
+
const [isChecked, setIsChecked] = React110.useState(
|
|
1733
1733
|
checked !== void 0 ? checked : defaultChecked
|
|
1734
1734
|
);
|
|
1735
|
-
|
|
1735
|
+
React110.useEffect(() => {
|
|
1736
1736
|
if (checked !== void 0) {
|
|
1737
1737
|
setIsChecked(checked);
|
|
1738
1738
|
}
|
|
@@ -2617,8 +2617,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
2617
2617
|
position = "top",
|
|
2618
2618
|
className
|
|
2619
2619
|
}) => {
|
|
2620
|
-
const [isVisible, setIsVisible] =
|
|
2621
|
-
const timeoutRef =
|
|
2620
|
+
const [isVisible, setIsVisible] = React110__default.useState(false);
|
|
2621
|
+
const timeoutRef = React110__default.useRef(null);
|
|
2622
2622
|
const handleMouseEnter = () => {
|
|
2623
2623
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2624
2624
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -2627,7 +2627,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
2627
2627
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2628
2628
|
setIsVisible(false);
|
|
2629
2629
|
};
|
|
2630
|
-
|
|
2630
|
+
React110__default.useEffect(() => {
|
|
2631
2631
|
return () => {
|
|
2632
2632
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2633
2633
|
};
|
|
@@ -2837,7 +2837,7 @@ var init_StatusDot = __esm({
|
|
|
2837
2837
|
md: "w-2.5 h-2.5",
|
|
2838
2838
|
lg: "w-3 h-3"
|
|
2839
2839
|
};
|
|
2840
|
-
StatusDot =
|
|
2840
|
+
StatusDot = React110__default.forwardRef(
|
|
2841
2841
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
2842
2842
|
return /* @__PURE__ */ jsx(
|
|
2843
2843
|
"span",
|
|
@@ -2890,7 +2890,7 @@ var init_TrendIndicator = __esm({
|
|
|
2890
2890
|
down: TrendingDown,
|
|
2891
2891
|
flat: ArrowRight
|
|
2892
2892
|
};
|
|
2893
|
-
TrendIndicator =
|
|
2893
|
+
TrendIndicator = React110__default.forwardRef(
|
|
2894
2894
|
({
|
|
2895
2895
|
className,
|
|
2896
2896
|
value,
|
|
@@ -2957,7 +2957,7 @@ var init_RangeSlider = __esm({
|
|
|
2957
2957
|
md: "w-4 h-4",
|
|
2958
2958
|
lg: "w-5 h-5"
|
|
2959
2959
|
};
|
|
2960
|
-
RangeSlider =
|
|
2960
|
+
RangeSlider = React110__default.forwardRef(
|
|
2961
2961
|
({
|
|
2962
2962
|
className,
|
|
2963
2963
|
min = 0,
|
|
@@ -3553,7 +3553,7 @@ var init_ContentSection = __esm({
|
|
|
3553
3553
|
md: "py-16",
|
|
3554
3554
|
lg: "py-24"
|
|
3555
3555
|
};
|
|
3556
|
-
ContentSection =
|
|
3556
|
+
ContentSection = React110__default.forwardRef(
|
|
3557
3557
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
3558
3558
|
return /* @__PURE__ */ jsx(
|
|
3559
3559
|
Box,
|
|
@@ -4087,7 +4087,7 @@ var init_AnimatedReveal = __esm({
|
|
|
4087
4087
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
4088
4088
|
"none": {}
|
|
4089
4089
|
};
|
|
4090
|
-
AnimatedReveal =
|
|
4090
|
+
AnimatedReveal = React110__default.forwardRef(
|
|
4091
4091
|
({
|
|
4092
4092
|
trigger = "scroll",
|
|
4093
4093
|
animation = "fade-up",
|
|
@@ -4247,7 +4247,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
4247
4247
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
4248
4248
|
"use client";
|
|
4249
4249
|
init_cn();
|
|
4250
|
-
AnimatedGraphic =
|
|
4250
|
+
AnimatedGraphic = React110__default.forwardRef(
|
|
4251
4251
|
({
|
|
4252
4252
|
src,
|
|
4253
4253
|
svgContent,
|
|
@@ -4270,7 +4270,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
4270
4270
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
4271
4271
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
4272
4272
|
const prevAnimateRef = useRef(animate);
|
|
4273
|
-
const setRef =
|
|
4273
|
+
const setRef = React110__default.useCallback(
|
|
4274
4274
|
(node) => {
|
|
4275
4275
|
containerRef.current = node;
|
|
4276
4276
|
if (typeof ref === "function") ref(node);
|
|
@@ -4869,6 +4869,8 @@ var init_Toast = __esm({
|
|
|
4869
4869
|
Toast.displayName = "Toast";
|
|
4870
4870
|
}
|
|
4871
4871
|
});
|
|
4872
|
+
|
|
4873
|
+
// runtime/ui/slot-types.ts
|
|
4872
4874
|
function refId(obj) {
|
|
4873
4875
|
if (obj === null || obj === void 0 || typeof obj !== "object") return null;
|
|
4874
4876
|
const existing = refIds.get(obj);
|
|
@@ -4878,15 +4880,12 @@ function refId(obj) {
|
|
|
4878
4880
|
return id;
|
|
4879
4881
|
}
|
|
4880
4882
|
var slotLog, refIds, nextRefId;
|
|
4881
|
-
var
|
|
4882
|
-
"runtime/ui/
|
|
4883
|
+
var init_slot_types = __esm({
|
|
4884
|
+
"runtime/ui/slot-types.ts"() {
|
|
4883
4885
|
init_logger();
|
|
4884
4886
|
slotLog = createLogger("almadar:ui:slot-render");
|
|
4885
|
-
createLogger("almadar:runtime:cross-orbital");
|
|
4886
4887
|
refIds = /* @__PURE__ */ new WeakMap();
|
|
4887
4888
|
nextRefId = 1;
|
|
4888
|
-
createContext({});
|
|
4889
|
-
createContext(null);
|
|
4890
4889
|
}
|
|
4891
4890
|
});
|
|
4892
4891
|
|
|
@@ -5084,7 +5083,7 @@ var init_ErrorBoundary = __esm({
|
|
|
5084
5083
|
"use client";
|
|
5085
5084
|
init_cn();
|
|
5086
5085
|
init_ErrorState();
|
|
5087
|
-
ErrorBoundary = class extends
|
|
5086
|
+
ErrorBoundary = class extends React110__default.Component {
|
|
5088
5087
|
constructor(props) {
|
|
5089
5088
|
super(props);
|
|
5090
5089
|
__publicField(this, "reset", () => {
|
|
@@ -5537,8 +5536,8 @@ var init_Tooltip = __esm({
|
|
|
5537
5536
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
5538
5537
|
};
|
|
5539
5538
|
}, []);
|
|
5540
|
-
const triggerElement =
|
|
5541
|
-
const trigger =
|
|
5539
|
+
const triggerElement = React110__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
5540
|
+
const trigger = React110__default.cloneElement(triggerElement, {
|
|
5542
5541
|
ref: triggerRef,
|
|
5543
5542
|
onMouseEnter: handleMouseEnter,
|
|
5544
5543
|
onMouseLeave: handleMouseLeave,
|
|
@@ -5659,8 +5658,8 @@ var init_Popover = __esm({
|
|
|
5659
5658
|
onMouseEnter: handleOpen,
|
|
5660
5659
|
onMouseLeave: handleClose
|
|
5661
5660
|
};
|
|
5662
|
-
const childElement =
|
|
5663
|
-
const triggerElement =
|
|
5661
|
+
const childElement = React110__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
5662
|
+
const triggerElement = React110__default.cloneElement(
|
|
5664
5663
|
childElement,
|
|
5665
5664
|
{
|
|
5666
5665
|
ref: triggerRef,
|
|
@@ -5777,8 +5776,8 @@ var init_Menu = __esm({
|
|
|
5777
5776
|
"bottom-start": "top-full left-0 mt-2",
|
|
5778
5777
|
"bottom-end": "top-full right-0 mt-2"
|
|
5779
5778
|
};
|
|
5780
|
-
const triggerChild =
|
|
5781
|
-
const triggerElement =
|
|
5779
|
+
const triggerChild = React110__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
|
|
5780
|
+
const triggerElement = React110__default.cloneElement(
|
|
5782
5781
|
triggerChild,
|
|
5783
5782
|
{
|
|
5784
5783
|
ref: triggerRef,
|
|
@@ -6297,12 +6296,12 @@ var init_MapView = __esm({
|
|
|
6297
6296
|
shadowSize: [41, 41]
|
|
6298
6297
|
});
|
|
6299
6298
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
6300
|
-
const { useEffect: useEffect67, useRef:
|
|
6299
|
+
const { useEffect: useEffect67, useRef: useRef64, useCallback: useCallback114, useState: useState98 } = React110__default;
|
|
6301
6300
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
6302
6301
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
6303
6302
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
6304
6303
|
const map = useMap();
|
|
6305
|
-
const prevRef =
|
|
6304
|
+
const prevRef = useRef64({ centerLat, centerLng, zoom });
|
|
6306
6305
|
useEffect67(() => {
|
|
6307
6306
|
const prev = prevRef.current;
|
|
6308
6307
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
@@ -6341,8 +6340,8 @@ var init_MapView = __esm({
|
|
|
6341
6340
|
showAttribution = true
|
|
6342
6341
|
}) {
|
|
6343
6342
|
const eventBus = useEventBus2();
|
|
6344
|
-
const [clickedPosition, setClickedPosition] =
|
|
6345
|
-
const handleMapClick =
|
|
6343
|
+
const [clickedPosition, setClickedPosition] = useState98(null);
|
|
6344
|
+
const handleMapClick = useCallback114((lat, lng) => {
|
|
6346
6345
|
if (showClickedPin) {
|
|
6347
6346
|
setClickedPosition({ lat, lng });
|
|
6348
6347
|
}
|
|
@@ -6351,7 +6350,7 @@ var init_MapView = __esm({
|
|
|
6351
6350
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
6352
6351
|
}
|
|
6353
6352
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
6354
|
-
const handleMarkerClick =
|
|
6353
|
+
const handleMarkerClick = useCallback114((marker) => {
|
|
6355
6354
|
onMarkerClick?.(marker);
|
|
6356
6355
|
if (markerClickEvent) {
|
|
6357
6356
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -6528,7 +6527,7 @@ function InputPattern({
|
|
|
6528
6527
|
fieldName
|
|
6529
6528
|
}) {
|
|
6530
6529
|
const { emit } = useEventBus();
|
|
6531
|
-
const [localValue, setLocalValue] =
|
|
6530
|
+
const [localValue, setLocalValue] = React110__default.useState(value);
|
|
6532
6531
|
const handleChange = (e) => {
|
|
6533
6532
|
setLocalValue(e.target.value);
|
|
6534
6533
|
if (onChange) {
|
|
@@ -6566,7 +6565,7 @@ function TextareaPattern({
|
|
|
6566
6565
|
fieldName
|
|
6567
6566
|
}) {
|
|
6568
6567
|
const { emit } = useEventBus();
|
|
6569
|
-
const [localValue, setLocalValue] =
|
|
6568
|
+
const [localValue, setLocalValue] = React110__default.useState(value);
|
|
6570
6569
|
const handleChange = (e) => {
|
|
6571
6570
|
setLocalValue(e.target.value);
|
|
6572
6571
|
if (onChange) {
|
|
@@ -6598,7 +6597,7 @@ function SelectPattern({
|
|
|
6598
6597
|
fieldName
|
|
6599
6598
|
}) {
|
|
6600
6599
|
const { emit } = useEventBus();
|
|
6601
|
-
const [localValue, setLocalValue] =
|
|
6600
|
+
const [localValue, setLocalValue] = React110__default.useState(value);
|
|
6602
6601
|
const handleChange = (e) => {
|
|
6603
6602
|
setLocalValue(e.target.value);
|
|
6604
6603
|
if (onChange) {
|
|
@@ -6627,7 +6626,7 @@ function CheckboxPattern({
|
|
|
6627
6626
|
className
|
|
6628
6627
|
}) {
|
|
6629
6628
|
const { emit } = useEventBus();
|
|
6630
|
-
const [localChecked, setLocalChecked] =
|
|
6629
|
+
const [localChecked, setLocalChecked] = React110__default.useState(checked);
|
|
6631
6630
|
const handleChange = (e) => {
|
|
6632
6631
|
setLocalChecked(e.target.checked);
|
|
6633
6632
|
if (onChange) {
|
|
@@ -6936,9 +6935,9 @@ function ControlButton({
|
|
|
6936
6935
|
className
|
|
6937
6936
|
}) {
|
|
6938
6937
|
const eventBus = useEventBus();
|
|
6939
|
-
const [isPressed, setIsPressed] =
|
|
6938
|
+
const [isPressed, setIsPressed] = React110.useState(false);
|
|
6940
6939
|
const actualPressed = pressed ?? isPressed;
|
|
6941
|
-
const handlePointerDown =
|
|
6940
|
+
const handlePointerDown = React110.useCallback(
|
|
6942
6941
|
(e) => {
|
|
6943
6942
|
e.preventDefault();
|
|
6944
6943
|
if (disabled) return;
|
|
@@ -6948,7 +6947,7 @@ function ControlButton({
|
|
|
6948
6947
|
},
|
|
6949
6948
|
[disabled, pressEvent, eventBus, onPress]
|
|
6950
6949
|
);
|
|
6951
|
-
const handlePointerUp =
|
|
6950
|
+
const handlePointerUp = React110.useCallback(
|
|
6952
6951
|
(e) => {
|
|
6953
6952
|
e.preventDefault();
|
|
6954
6953
|
if (disabled) return;
|
|
@@ -6958,7 +6957,7 @@ function ControlButton({
|
|
|
6958
6957
|
},
|
|
6959
6958
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
6960
6959
|
);
|
|
6961
|
-
const handlePointerLeave =
|
|
6960
|
+
const handlePointerLeave = React110.useCallback(
|
|
6962
6961
|
(e) => {
|
|
6963
6962
|
if (isPressed) {
|
|
6964
6963
|
setIsPressed(false);
|
|
@@ -7031,8 +7030,8 @@ function ActionButtons({
|
|
|
7031
7030
|
disabled
|
|
7032
7031
|
}) {
|
|
7033
7032
|
const eventBus = useEventBus();
|
|
7034
|
-
const [activeButtons, setActiveButtons] =
|
|
7035
|
-
const handlePress =
|
|
7033
|
+
const [activeButtons, setActiveButtons] = React110.useState(/* @__PURE__ */ new Set());
|
|
7034
|
+
const handlePress = React110.useCallback(
|
|
7036
7035
|
(id) => {
|
|
7037
7036
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
7038
7037
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -7040,7 +7039,7 @@ function ActionButtons({
|
|
|
7040
7039
|
},
|
|
7041
7040
|
[actionEvent, eventBus, onAction]
|
|
7042
7041
|
);
|
|
7043
|
-
const handleRelease =
|
|
7042
|
+
const handleRelease = React110.useCallback(
|
|
7044
7043
|
(id) => {
|
|
7045
7044
|
setActiveButtons((prev) => {
|
|
7046
7045
|
const next = new Set(prev);
|
|
@@ -8975,7 +8974,7 @@ var init_MarkdownContent = __esm({
|
|
|
8975
8974
|
init_Box();
|
|
8976
8975
|
init_useTranslate();
|
|
8977
8976
|
init_cn();
|
|
8978
|
-
MarkdownContent =
|
|
8977
|
+
MarkdownContent = React110__default.memo(
|
|
8979
8978
|
({ content, direction, className }) => {
|
|
8980
8979
|
const { t: _t } = useTranslate();
|
|
8981
8980
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -9192,7 +9191,7 @@ var init_CodeBlock = __esm({
|
|
|
9192
9191
|
loloStyle = { ...dark, ...loloStyleOverrides };
|
|
9193
9192
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
9194
9193
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
9195
|
-
CodeBlock =
|
|
9194
|
+
CodeBlock = React110__default.memo(
|
|
9196
9195
|
({
|
|
9197
9196
|
code: rawCode,
|
|
9198
9197
|
language = "text",
|
|
@@ -10501,7 +10500,7 @@ var init_StateMachineView = __esm({
|
|
|
10501
10500
|
style: { top: title ? 30 : 0 },
|
|
10502
10501
|
children: [
|
|
10503
10502
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
10504
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
10503
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React110__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
10505
10504
|
StateNode,
|
|
10506
10505
|
{
|
|
10507
10506
|
state,
|
|
@@ -16462,7 +16461,7 @@ function CraftingRecipe({
|
|
|
16462
16461
|
className
|
|
16463
16462
|
}) {
|
|
16464
16463
|
const eventBus = useEventBus();
|
|
16465
|
-
const handleCraft =
|
|
16464
|
+
const handleCraft = React110.useCallback(() => {
|
|
16466
16465
|
onCraft?.();
|
|
16467
16466
|
if (craftEvent) {
|
|
16468
16467
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -16479,7 +16478,7 @@ function CraftingRecipe({
|
|
|
16479
16478
|
children: [
|
|
16480
16479
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
16481
16480
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
16482
|
-
return /* @__PURE__ */ jsxs(
|
|
16481
|
+
return /* @__PURE__ */ jsxs(React110.Fragment, { children: [
|
|
16483
16482
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
16484
16483
|
ItemSlot,
|
|
16485
16484
|
{
|
|
@@ -16773,8 +16772,8 @@ function DPad({
|
|
|
16773
16772
|
}) {
|
|
16774
16773
|
const eventBus = useEventBus();
|
|
16775
16774
|
const sizes = sizeMap6[size];
|
|
16776
|
-
const [activeDirections, setActiveDirections] =
|
|
16777
|
-
const handlePress =
|
|
16775
|
+
const [activeDirections, setActiveDirections] = React110.useState(/* @__PURE__ */ new Set());
|
|
16776
|
+
const handlePress = React110.useCallback(
|
|
16778
16777
|
(direction) => {
|
|
16779
16778
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
16780
16779
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -16782,7 +16781,7 @@ function DPad({
|
|
|
16782
16781
|
},
|
|
16783
16782
|
[directionEvent, eventBus, onDirection]
|
|
16784
16783
|
);
|
|
16785
|
-
const handleRelease =
|
|
16784
|
+
const handleRelease = React110.useCallback(
|
|
16786
16785
|
(direction) => {
|
|
16787
16786
|
setActiveDirections((prev) => {
|
|
16788
16787
|
const next = new Set(prev);
|
|
@@ -17735,7 +17734,7 @@ function DataList({
|
|
|
17735
17734
|
}) {
|
|
17736
17735
|
const eventBus = useEventBus();
|
|
17737
17736
|
const { t } = useTranslate();
|
|
17738
|
-
const [visibleCount, setVisibleCount] =
|
|
17737
|
+
const [visibleCount, setVisibleCount] = React110__default.useState(pageSize || Infinity);
|
|
17739
17738
|
const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
17740
17739
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
17741
17740
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
@@ -17775,7 +17774,7 @@ function DataList({
|
|
|
17775
17774
|
const items2 = data.map((item) => item);
|
|
17776
17775
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
17777
17776
|
const contentField = titleField?.name ?? fields[0]?.name ?? "";
|
|
17778
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
17777
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
17779
17778
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
17780
17779
|
group.items.map((itemData, index) => {
|
|
17781
17780
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -17822,7 +17821,7 @@ function DataList({
|
|
|
17822
17821
|
] }, gi)) });
|
|
17823
17822
|
}
|
|
17824
17823
|
const hasRenderProp = typeof children === "function";
|
|
17825
|
-
|
|
17824
|
+
React110__default.useEffect(() => {
|
|
17826
17825
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
17827
17826
|
const childrenTypeOf = typeof children;
|
|
17828
17827
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -17987,7 +17986,7 @@ function DataList({
|
|
|
17987
17986
|
className
|
|
17988
17987
|
),
|
|
17989
17988
|
children: [
|
|
17990
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
17989
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
17991
17990
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
17992
17991
|
group.items.map(
|
|
17993
17992
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -19271,7 +19270,7 @@ var init_WizardProgress = __esm({
|
|
|
19271
19270
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
19272
19271
|
const isActive = index === currentStep;
|
|
19273
19272
|
const isCompleted = index < currentStep;
|
|
19274
|
-
return /* @__PURE__ */ jsxs(
|
|
19273
|
+
return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
19275
19274
|
/* @__PURE__ */ jsx(
|
|
19276
19275
|
"button",
|
|
19277
19276
|
{
|
|
@@ -20171,9 +20170,9 @@ function ScoreDisplay({
|
|
|
20171
20170
|
...rest
|
|
20172
20171
|
}) {
|
|
20173
20172
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
20174
|
-
const [displayValue, setDisplayValue] =
|
|
20175
|
-
const [isAnimating, setIsAnimating] =
|
|
20176
|
-
|
|
20173
|
+
const [displayValue, setDisplayValue] = React110.useState(resolvedValue);
|
|
20174
|
+
const [isAnimating, setIsAnimating] = React110.useState(false);
|
|
20175
|
+
React110.useEffect(() => {
|
|
20177
20176
|
if (!animated || displayValue === resolvedValue) {
|
|
20178
20177
|
setDisplayValue(resolvedValue);
|
|
20179
20178
|
return;
|
|
@@ -20323,7 +20322,7 @@ function InventoryGrid({
|
|
|
20323
20322
|
const eventBus = useEventBus();
|
|
20324
20323
|
const slotCount = totalSlots ?? items.length;
|
|
20325
20324
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
20326
|
-
const handleSelect =
|
|
20325
|
+
const handleSelect = React110.useCallback(
|
|
20327
20326
|
(id) => {
|
|
20328
20327
|
onSelect?.(id);
|
|
20329
20328
|
if (selectEvent) {
|
|
@@ -20605,15 +20604,15 @@ function GameCanvas2D({
|
|
|
20605
20604
|
fps = 60,
|
|
20606
20605
|
className
|
|
20607
20606
|
}) {
|
|
20608
|
-
const canvasRef =
|
|
20609
|
-
const rafRef =
|
|
20610
|
-
const frameRef =
|
|
20611
|
-
const lastTimeRef =
|
|
20612
|
-
const onDrawRef =
|
|
20607
|
+
const canvasRef = React110.useRef(null);
|
|
20608
|
+
const rafRef = React110.useRef(0);
|
|
20609
|
+
const frameRef = React110.useRef(0);
|
|
20610
|
+
const lastTimeRef = React110.useRef(0);
|
|
20611
|
+
const onDrawRef = React110.useRef(onDraw);
|
|
20613
20612
|
onDrawRef.current = onDraw;
|
|
20614
|
-
const onTickRef =
|
|
20613
|
+
const onTickRef = React110.useRef(onTick);
|
|
20615
20614
|
onTickRef.current = onTick;
|
|
20616
|
-
|
|
20615
|
+
React110.useEffect(() => {
|
|
20617
20616
|
const canvas = canvasRef.current;
|
|
20618
20617
|
if (!canvas) return;
|
|
20619
20618
|
const ctx = canvas.getContext("2d");
|
|
@@ -20954,7 +20953,7 @@ function TurnPanel({
|
|
|
20954
20953
|
className
|
|
20955
20954
|
}) {
|
|
20956
20955
|
const eventBus = useEventBus();
|
|
20957
|
-
const handleAction =
|
|
20956
|
+
const handleAction = React110.useCallback(
|
|
20958
20957
|
(event) => {
|
|
20959
20958
|
if (event) {
|
|
20960
20959
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -21100,7 +21099,7 @@ function UnitCommandBar({
|
|
|
21100
21099
|
className
|
|
21101
21100
|
}) {
|
|
21102
21101
|
const eventBus = useEventBus();
|
|
21103
|
-
const handleCommand =
|
|
21102
|
+
const handleCommand = React110.useCallback(
|
|
21104
21103
|
(event) => {
|
|
21105
21104
|
if (event) {
|
|
21106
21105
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -21585,7 +21584,7 @@ function GameMenu({
|
|
|
21585
21584
|
} catch {
|
|
21586
21585
|
}
|
|
21587
21586
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
21588
|
-
const handleOptionClick =
|
|
21587
|
+
const handleOptionClick = React110.useCallback(
|
|
21589
21588
|
(option) => {
|
|
21590
21589
|
if (option.event && eventBus) {
|
|
21591
21590
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -21699,7 +21698,7 @@ function GameOverScreen({
|
|
|
21699
21698
|
} catch {
|
|
21700
21699
|
}
|
|
21701
21700
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
21702
|
-
const handleActionClick =
|
|
21701
|
+
const handleActionClick = React110.useCallback(
|
|
21703
21702
|
(action) => {
|
|
21704
21703
|
if (action.event && eventBus) {
|
|
21705
21704
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -24803,7 +24802,7 @@ var init_StepFlow = __esm({
|
|
|
24803
24802
|
className
|
|
24804
24803
|
}) => {
|
|
24805
24804
|
if (orientation === "vertical") {
|
|
24806
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
24805
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React110__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
24807
24806
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
24808
24807
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
24809
24808
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -24814,7 +24813,7 @@ var init_StepFlow = __esm({
|
|
|
24814
24813
|
] })
|
|
24815
24814
|
] }) }, index)) });
|
|
24816
24815
|
}
|
|
24817
|
-
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(
|
|
24816
|
+
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(React110__default.Fragment, { children: [
|
|
24818
24817
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
24819
24818
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
24820
24819
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -26966,7 +26965,7 @@ var init_DocumentViewer = __esm({
|
|
|
26966
26965
|
}
|
|
26967
26966
|
});
|
|
26968
26967
|
function extractTitle(children) {
|
|
26969
|
-
if (!
|
|
26968
|
+
if (!React110__default.isValidElement(children)) return void 0;
|
|
26970
26969
|
const props = children.props;
|
|
26971
26970
|
if (typeof props.title === "string") {
|
|
26972
26971
|
return props.title;
|
|
@@ -27078,7 +27077,7 @@ function LinearView({
|
|
|
27078
27077
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
27079
27078
|
const isDone = i < currentIdx;
|
|
27080
27079
|
const isCurrent = i === currentIdx;
|
|
27081
|
-
return /* @__PURE__ */ jsxs(
|
|
27080
|
+
return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
27082
27081
|
i > 0 && /* @__PURE__ */ jsx(
|
|
27083
27082
|
Typography,
|
|
27084
27083
|
{
|
|
@@ -27862,12 +27861,12 @@ var init_Form = __esm({
|
|
|
27862
27861
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
27863
27862
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
27864
27863
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
27865
|
-
const normalizedInitialData =
|
|
27864
|
+
const normalizedInitialData = React110__default.useMemo(() => {
|
|
27866
27865
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
27867
27866
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
27868
27867
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
27869
27868
|
}, [entity, initialData]);
|
|
27870
|
-
const entityDerivedFields =
|
|
27869
|
+
const entityDerivedFields = React110__default.useMemo(() => {
|
|
27871
27870
|
if (fields && fields.length > 0) return void 0;
|
|
27872
27871
|
if (!resolvedEntity) return void 0;
|
|
27873
27872
|
return resolvedEntity.fields.map(
|
|
@@ -27886,14 +27885,14 @@ var init_Form = __esm({
|
|
|
27886
27885
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
27887
27886
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
27888
27887
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
27889
|
-
const [formData, setFormData] =
|
|
27888
|
+
const [formData, setFormData] = React110__default.useState(
|
|
27890
27889
|
normalizedInitialData
|
|
27891
27890
|
);
|
|
27892
|
-
const [collapsedSections, setCollapsedSections] =
|
|
27891
|
+
const [collapsedSections, setCollapsedSections] = React110__default.useState(
|
|
27893
27892
|
/* @__PURE__ */ new Set()
|
|
27894
27893
|
);
|
|
27895
27894
|
const formMode = props.mode;
|
|
27896
|
-
const mountedRef =
|
|
27895
|
+
const mountedRef = React110__default.useRef(false);
|
|
27897
27896
|
if (!mountedRef.current) {
|
|
27898
27897
|
mountedRef.current = true;
|
|
27899
27898
|
debug("forms", "mount", {
|
|
@@ -27906,7 +27905,7 @@ var init_Form = __esm({
|
|
|
27906
27905
|
});
|
|
27907
27906
|
}
|
|
27908
27907
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
27909
|
-
const evalContext =
|
|
27908
|
+
const evalContext = React110__default.useMemo(
|
|
27910
27909
|
() => ({
|
|
27911
27910
|
formValues: formData,
|
|
27912
27911
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -27915,7 +27914,7 @@ var init_Form = __esm({
|
|
|
27915
27914
|
}),
|
|
27916
27915
|
[formData, externalContext]
|
|
27917
27916
|
);
|
|
27918
|
-
|
|
27917
|
+
React110__default.useEffect(() => {
|
|
27919
27918
|
debug("forms", "initialData-sync", {
|
|
27920
27919
|
mode: formMode,
|
|
27921
27920
|
normalizedInitialData,
|
|
@@ -27926,7 +27925,7 @@ var init_Form = __esm({
|
|
|
27926
27925
|
setFormData(normalizedInitialData);
|
|
27927
27926
|
}
|
|
27928
27927
|
}, [normalizedInitialData]);
|
|
27929
|
-
const processCalculations =
|
|
27928
|
+
const processCalculations = React110__default.useCallback(
|
|
27930
27929
|
(changedFieldId, newFormData) => {
|
|
27931
27930
|
if (!hiddenCalculations.length) return;
|
|
27932
27931
|
const context = {
|
|
@@ -27951,7 +27950,7 @@ var init_Form = __esm({
|
|
|
27951
27950
|
},
|
|
27952
27951
|
[hiddenCalculations, externalContext, eventBus]
|
|
27953
27952
|
);
|
|
27954
|
-
const checkViolations =
|
|
27953
|
+
const checkViolations = React110__default.useCallback(
|
|
27955
27954
|
(changedFieldId, newFormData) => {
|
|
27956
27955
|
if (!violationTriggers.length) return;
|
|
27957
27956
|
const context = {
|
|
@@ -27989,7 +27988,7 @@ var init_Form = __esm({
|
|
|
27989
27988
|
processCalculations(name, newFormData);
|
|
27990
27989
|
checkViolations(name, newFormData);
|
|
27991
27990
|
};
|
|
27992
|
-
const isFieldVisible =
|
|
27991
|
+
const isFieldVisible = React110__default.useCallback(
|
|
27993
27992
|
(fieldName) => {
|
|
27994
27993
|
const condition = conditionalFields[fieldName];
|
|
27995
27994
|
if (!condition) return true;
|
|
@@ -27997,7 +27996,7 @@ var init_Form = __esm({
|
|
|
27997
27996
|
},
|
|
27998
27997
|
[conditionalFields, evalContext]
|
|
27999
27998
|
);
|
|
28000
|
-
const isSectionVisible =
|
|
27999
|
+
const isSectionVisible = React110__default.useCallback(
|
|
28001
28000
|
(section) => {
|
|
28002
28001
|
if (!section.condition) return true;
|
|
28003
28002
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -28041,7 +28040,7 @@ var init_Form = __esm({
|
|
|
28041
28040
|
eventBus.emit(`UI:${onCancel}`);
|
|
28042
28041
|
}
|
|
28043
28042
|
};
|
|
28044
|
-
const renderField =
|
|
28043
|
+
const renderField = React110__default.useCallback(
|
|
28045
28044
|
(field) => {
|
|
28046
28045
|
const fieldName = field.name || field.field;
|
|
28047
28046
|
if (!fieldName) return null;
|
|
@@ -28062,7 +28061,7 @@ var init_Form = __esm({
|
|
|
28062
28061
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
28063
28062
|
);
|
|
28064
28063
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
28065
|
-
const normalizedFields =
|
|
28064
|
+
const normalizedFields = React110__default.useMemo(() => {
|
|
28066
28065
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
28067
28066
|
return effectiveFields.map((field) => {
|
|
28068
28067
|
if (typeof field === "string") {
|
|
@@ -28084,7 +28083,7 @@ var init_Form = __esm({
|
|
|
28084
28083
|
return field;
|
|
28085
28084
|
});
|
|
28086
28085
|
}, [effectiveFields, resolvedEntity]);
|
|
28087
|
-
const schemaFields =
|
|
28086
|
+
const schemaFields = React110__default.useMemo(() => {
|
|
28088
28087
|
if (normalizedFields.length === 0) return null;
|
|
28089
28088
|
if (isDebugEnabled()) {
|
|
28090
28089
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -28094,7 +28093,7 @@ var init_Form = __esm({
|
|
|
28094
28093
|
}
|
|
28095
28094
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
28096
28095
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
28097
|
-
const sectionElements =
|
|
28096
|
+
const sectionElements = React110__default.useMemo(() => {
|
|
28098
28097
|
if (!sections || sections.length === 0) return null;
|
|
28099
28098
|
return sections.map((section) => {
|
|
28100
28099
|
if (!isSectionVisible(section)) {
|
|
@@ -29618,7 +29617,7 @@ var init_List = __esm({
|
|
|
29618
29617
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
29619
29618
|
return [];
|
|
29620
29619
|
}, [entity]);
|
|
29621
|
-
const getItemActions =
|
|
29620
|
+
const getItemActions = React110__default.useCallback(
|
|
29622
29621
|
(item) => {
|
|
29623
29622
|
if (!itemActions) return [];
|
|
29624
29623
|
if (typeof itemActions === "function") {
|
|
@@ -30055,7 +30054,7 @@ var init_MediaGallery = __esm({
|
|
|
30055
30054
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
30056
30055
|
);
|
|
30057
30056
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
30058
|
-
const items =
|
|
30057
|
+
const items = React110__default.useMemo(() => {
|
|
30059
30058
|
if (propItems) return propItems;
|
|
30060
30059
|
if (entityData.length === 0) return [];
|
|
30061
30060
|
return entityData.map((record, idx) => ({
|
|
@@ -30228,9 +30227,9 @@ function MiniMap({
|
|
|
30228
30227
|
viewportRect,
|
|
30229
30228
|
className
|
|
30230
30229
|
}) {
|
|
30231
|
-
const canvasRef =
|
|
30232
|
-
const frameRef =
|
|
30233
|
-
|
|
30230
|
+
const canvasRef = React110.useRef(null);
|
|
30231
|
+
const frameRef = React110.useRef(0);
|
|
30232
|
+
React110.useEffect(() => {
|
|
30234
30233
|
const canvas = canvasRef.current;
|
|
30235
30234
|
if (!canvas) return;
|
|
30236
30235
|
const ctx = canvas.getContext("2d");
|
|
@@ -30312,7 +30311,7 @@ var init_MiniMap = __esm({
|
|
|
30312
30311
|
}
|
|
30313
30312
|
});
|
|
30314
30313
|
function extractTitle2(children) {
|
|
30315
|
-
if (!
|
|
30314
|
+
if (!React110__default.isValidElement(children)) return void 0;
|
|
30316
30315
|
const props = children.props;
|
|
30317
30316
|
if (typeof props.title === "string") {
|
|
30318
30317
|
return props.title;
|
|
@@ -31025,7 +31024,7 @@ var init_PageHeader = __esm({
|
|
|
31025
31024
|
info: "bg-info/10 text-info"
|
|
31026
31025
|
};
|
|
31027
31026
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
31028
|
-
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(
|
|
31027
|
+
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(React110__default.Fragment, { children: [
|
|
31029
31028
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
31030
31029
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
31031
31030
|
"a",
|
|
@@ -31244,7 +31243,7 @@ var init_debugRegistry = __esm({
|
|
|
31244
31243
|
}
|
|
31245
31244
|
});
|
|
31246
31245
|
function useDebugData() {
|
|
31247
|
-
const [data, setData] =
|
|
31246
|
+
const [data, setData] = React110.useState(() => ({
|
|
31248
31247
|
traits: [],
|
|
31249
31248
|
ticks: [],
|
|
31250
31249
|
guards: [],
|
|
@@ -31258,7 +31257,7 @@ function useDebugData() {
|
|
|
31258
31257
|
},
|
|
31259
31258
|
lastUpdate: Date.now()
|
|
31260
31259
|
}));
|
|
31261
|
-
|
|
31260
|
+
React110.useEffect(() => {
|
|
31262
31261
|
const updateData = () => {
|
|
31263
31262
|
setData({
|
|
31264
31263
|
traits: getAllTraits(),
|
|
@@ -31367,12 +31366,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
31367
31366
|
return positions;
|
|
31368
31367
|
}
|
|
31369
31368
|
function WalkMinimap() {
|
|
31370
|
-
const [walkStep, setWalkStep] =
|
|
31371
|
-
const [traits2, setTraits] =
|
|
31372
|
-
const [coveredEdges, setCoveredEdges] =
|
|
31373
|
-
const [completedTraits, setCompletedTraits] =
|
|
31374
|
-
const prevTraitRef =
|
|
31375
|
-
|
|
31369
|
+
const [walkStep, setWalkStep] = React110.useState(null);
|
|
31370
|
+
const [traits2, setTraits] = React110.useState([]);
|
|
31371
|
+
const [coveredEdges, setCoveredEdges] = React110.useState([]);
|
|
31372
|
+
const [completedTraits, setCompletedTraits] = React110.useState(/* @__PURE__ */ new Set());
|
|
31373
|
+
const prevTraitRef = React110.useRef(null);
|
|
31374
|
+
React110.useEffect(() => {
|
|
31376
31375
|
const interval = setInterval(() => {
|
|
31377
31376
|
const w = window;
|
|
31378
31377
|
const step = w.__orbitalWalkStep;
|
|
@@ -31819,15 +31818,15 @@ var init_EntitiesTab = __esm({
|
|
|
31819
31818
|
}
|
|
31820
31819
|
});
|
|
31821
31820
|
function EventFlowTab({ events: events2 }) {
|
|
31822
|
-
const [filter, setFilter] =
|
|
31823
|
-
const containerRef =
|
|
31824
|
-
const [autoScroll, setAutoScroll] =
|
|
31825
|
-
|
|
31821
|
+
const [filter, setFilter] = React110.useState("all");
|
|
31822
|
+
const containerRef = React110.useRef(null);
|
|
31823
|
+
const [autoScroll, setAutoScroll] = React110.useState(true);
|
|
31824
|
+
React110.useEffect(() => {
|
|
31826
31825
|
if (autoScroll && containerRef.current) {
|
|
31827
31826
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
31828
31827
|
}
|
|
31829
31828
|
}, [events2.length, autoScroll]);
|
|
31830
|
-
const filteredEvents =
|
|
31829
|
+
const filteredEvents = React110.useMemo(() => {
|
|
31831
31830
|
if (filter === "all") return events2;
|
|
31832
31831
|
return events2.filter((e) => e.type === filter);
|
|
31833
31832
|
}, [events2, filter]);
|
|
@@ -31946,7 +31945,7 @@ var init_EventFlowTab = __esm({
|
|
|
31946
31945
|
}
|
|
31947
31946
|
});
|
|
31948
31947
|
function GuardsPanel({ guards }) {
|
|
31949
|
-
const [filter, setFilter] =
|
|
31948
|
+
const [filter, setFilter] = React110.useState("all");
|
|
31950
31949
|
if (guards.length === 0) {
|
|
31951
31950
|
return /* @__PURE__ */ jsx(
|
|
31952
31951
|
EmptyState,
|
|
@@ -31959,7 +31958,7 @@ function GuardsPanel({ guards }) {
|
|
|
31959
31958
|
}
|
|
31960
31959
|
const passedCount = guards.filter((g) => g.result).length;
|
|
31961
31960
|
const failedCount = guards.length - passedCount;
|
|
31962
|
-
const filteredGuards =
|
|
31961
|
+
const filteredGuards = React110.useMemo(() => {
|
|
31963
31962
|
if (filter === "all") return guards;
|
|
31964
31963
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
31965
31964
|
return guards.filter((g) => !g.result);
|
|
@@ -32120,10 +32119,10 @@ function EffectBadge({ effect }) {
|
|
|
32120
32119
|
] });
|
|
32121
32120
|
}
|
|
32122
32121
|
function TransitionTimeline({ transitions }) {
|
|
32123
|
-
const containerRef =
|
|
32124
|
-
const [autoScroll, setAutoScroll] =
|
|
32125
|
-
const [expandedId, setExpandedId] =
|
|
32126
|
-
|
|
32122
|
+
const containerRef = React110.useRef(null);
|
|
32123
|
+
const [autoScroll, setAutoScroll] = React110.useState(true);
|
|
32124
|
+
const [expandedId, setExpandedId] = React110.useState(null);
|
|
32125
|
+
React110.useEffect(() => {
|
|
32127
32126
|
if (autoScroll && containerRef.current) {
|
|
32128
32127
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
32129
32128
|
}
|
|
@@ -32409,9 +32408,9 @@ function getAllEvents(traits2) {
|
|
|
32409
32408
|
}
|
|
32410
32409
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
32411
32410
|
const eventBus = useEventBus();
|
|
32412
|
-
const [log3, setLog] =
|
|
32413
|
-
const prevStatesRef =
|
|
32414
|
-
|
|
32411
|
+
const [log3, setLog] = React110.useState([]);
|
|
32412
|
+
const prevStatesRef = React110.useRef(/* @__PURE__ */ new Map());
|
|
32413
|
+
React110.useEffect(() => {
|
|
32415
32414
|
for (const trait of traits2) {
|
|
32416
32415
|
const prev = prevStatesRef.current.get(trait.id);
|
|
32417
32416
|
if (prev && prev !== trait.currentState) {
|
|
@@ -32581,10 +32580,10 @@ function VerifyModePanel({
|
|
|
32581
32580
|
serverCount,
|
|
32582
32581
|
localCount
|
|
32583
32582
|
}) {
|
|
32584
|
-
const [expanded, setExpanded] =
|
|
32585
|
-
const scrollRef =
|
|
32586
|
-
const prevCountRef =
|
|
32587
|
-
|
|
32583
|
+
const [expanded, setExpanded] = React110.useState(true);
|
|
32584
|
+
const scrollRef = React110.useRef(null);
|
|
32585
|
+
const prevCountRef = React110.useRef(0);
|
|
32586
|
+
React110.useEffect(() => {
|
|
32588
32587
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
32589
32588
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
32590
32589
|
}
|
|
@@ -32650,10 +32649,10 @@ function RuntimeDebugger({
|
|
|
32650
32649
|
defaultTab,
|
|
32651
32650
|
schema
|
|
32652
32651
|
}) {
|
|
32653
|
-
const [isCollapsed, setIsCollapsed] =
|
|
32654
|
-
const [isVisible, setIsVisible] =
|
|
32652
|
+
const [isCollapsed, setIsCollapsed] = React110.useState(mode === "verify" ? true : defaultCollapsed);
|
|
32653
|
+
const [isVisible, setIsVisible] = React110.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
32655
32654
|
const debugData = useDebugData();
|
|
32656
|
-
|
|
32655
|
+
React110.useEffect(() => {
|
|
32657
32656
|
if (mode === "inline") return;
|
|
32658
32657
|
return onDebugToggle((enabled) => {
|
|
32659
32658
|
setIsVisible(enabled);
|
|
@@ -32662,7 +32661,7 @@ function RuntimeDebugger({
|
|
|
32662
32661
|
}
|
|
32663
32662
|
});
|
|
32664
32663
|
}, [mode]);
|
|
32665
|
-
|
|
32664
|
+
React110.useEffect(() => {
|
|
32666
32665
|
if (mode === "inline") return;
|
|
32667
32666
|
const handleKeyDown = (e) => {
|
|
32668
32667
|
if (e.key === "`" && isVisible) {
|
|
@@ -33211,7 +33210,7 @@ function SequenceBar({
|
|
|
33211
33210
|
onSlotRemove(index);
|
|
33212
33211
|
}, [onSlotRemove, playing]);
|
|
33213
33212
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
33214
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
33213
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
33215
33214
|
i > 0 && /* @__PURE__ */ jsx(
|
|
33216
33215
|
Typography,
|
|
33217
33216
|
{
|
|
@@ -34667,7 +34666,7 @@ var init_StatCard2 = __esm({
|
|
|
34667
34666
|
const labelToUse = propLabel ?? propTitle;
|
|
34668
34667
|
const eventBus = useEventBus();
|
|
34669
34668
|
const { t } = useTranslate();
|
|
34670
|
-
const handleActionClick =
|
|
34669
|
+
const handleActionClick = React110__default.useCallback(() => {
|
|
34671
34670
|
if (action?.event) {
|
|
34672
34671
|
eventBus.emit(`UI:${action.event}`, {});
|
|
34673
34672
|
}
|
|
@@ -34678,7 +34677,7 @@ var init_StatCard2 = __esm({
|
|
|
34678
34677
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
34679
34678
|
const isLoading = externalLoading ?? false;
|
|
34680
34679
|
const error = externalError;
|
|
34681
|
-
const computeMetricValue =
|
|
34680
|
+
const computeMetricValue = React110__default.useCallback(
|
|
34682
34681
|
(metric, items) => {
|
|
34683
34682
|
if (metric.value !== void 0) {
|
|
34684
34683
|
return metric.value;
|
|
@@ -34717,7 +34716,7 @@ var init_StatCard2 = __esm({
|
|
|
34717
34716
|
},
|
|
34718
34717
|
[]
|
|
34719
34718
|
);
|
|
34720
|
-
const schemaStats =
|
|
34719
|
+
const schemaStats = React110__default.useMemo(() => {
|
|
34721
34720
|
if (!metrics || metrics.length === 0) return null;
|
|
34722
34721
|
return metrics.map((metric) => ({
|
|
34723
34722
|
label: metric.label,
|
|
@@ -34725,7 +34724,7 @@ var init_StatCard2 = __esm({
|
|
|
34725
34724
|
format: metric.format
|
|
34726
34725
|
}));
|
|
34727
34726
|
}, [metrics, data, computeMetricValue]);
|
|
34728
|
-
const calculatedTrend =
|
|
34727
|
+
const calculatedTrend = React110__default.useMemo(() => {
|
|
34729
34728
|
if (manualTrend !== void 0) return manualTrend;
|
|
34730
34729
|
if (previousValue === void 0 || currentValue === void 0)
|
|
34731
34730
|
return void 0;
|
|
@@ -35780,7 +35779,7 @@ var init_Timeline = __esm({
|
|
|
35780
35779
|
}) => {
|
|
35781
35780
|
const { t } = useTranslate();
|
|
35782
35781
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
35783
|
-
const items =
|
|
35782
|
+
const items = React110__default.useMemo(() => {
|
|
35784
35783
|
if (propItems) return propItems;
|
|
35785
35784
|
if (entityData.length === 0) return [];
|
|
35786
35785
|
return entityData.map((record, idx) => {
|
|
@@ -35937,7 +35936,7 @@ var init_TimerDisplay = __esm({
|
|
|
35937
35936
|
}
|
|
35938
35937
|
});
|
|
35939
35938
|
function extractToastProps(children) {
|
|
35940
|
-
if (!
|
|
35939
|
+
if (!React110__default.isValidElement(children)) {
|
|
35941
35940
|
if (typeof children === "string") {
|
|
35942
35941
|
return { message: children };
|
|
35943
35942
|
}
|
|
@@ -35975,7 +35974,7 @@ var init_ToastSlot = __esm({
|
|
|
35975
35974
|
eventBus.emit("UI:CLOSE");
|
|
35976
35975
|
};
|
|
35977
35976
|
if (!isVisible) return null;
|
|
35978
|
-
const isCustomContent =
|
|
35977
|
+
const isCustomContent = React110__default.isValidElement(children) && !message;
|
|
35979
35978
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
35980
35979
|
Toast,
|
|
35981
35980
|
{
|
|
@@ -36244,7 +36243,7 @@ var init_WizardContainer = __esm({
|
|
|
36244
36243
|
const isCompleted = index < currentStep;
|
|
36245
36244
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
36246
36245
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
36247
|
-
return /* @__PURE__ */ jsxs(
|
|
36246
|
+
return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
|
|
36248
36247
|
/* @__PURE__ */ jsx(
|
|
36249
36248
|
Button,
|
|
36250
36249
|
{
|
|
@@ -36694,12 +36693,12 @@ var init_XPBar = __esm({
|
|
|
36694
36693
|
}
|
|
36695
36694
|
});
|
|
36696
36695
|
function lazyThree(name, loader) {
|
|
36697
|
-
const Lazy =
|
|
36696
|
+
const Lazy = React110__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
36698
36697
|
function ThreeWrapper(props) {
|
|
36699
|
-
return
|
|
36700
|
-
|
|
36698
|
+
return React110__default.createElement(
|
|
36699
|
+
React110__default.Suspense,
|
|
36701
36700
|
{ fallback: null },
|
|
36702
|
-
|
|
36701
|
+
React110__default.createElement(Lazy, props)
|
|
36703
36702
|
);
|
|
36704
36703
|
}
|
|
36705
36704
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -37187,7 +37186,7 @@ function SuspenseConfigProvider({
|
|
|
37187
37186
|
config,
|
|
37188
37187
|
children
|
|
37189
37188
|
}) {
|
|
37190
|
-
return
|
|
37189
|
+
return React110__default.createElement(
|
|
37191
37190
|
SuspenseConfigContext.Provider,
|
|
37192
37191
|
{ value: config },
|
|
37193
37192
|
children
|
|
@@ -37670,7 +37669,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
37670
37669
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
37671
37670
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
37672
37671
|
}
|
|
37673
|
-
return /* @__PURE__ */ jsx(
|
|
37672
|
+
return /* @__PURE__ */ jsx(React110__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
37674
37673
|
}
|
|
37675
37674
|
if (!child || typeof child !== "object") return null;
|
|
37676
37675
|
const childId = `${parentId}-${index}`;
|
|
@@ -37883,7 +37882,7 @@ var init_UISlotRenderer = __esm({
|
|
|
37883
37882
|
init_Box();
|
|
37884
37883
|
init_Typography();
|
|
37885
37884
|
init_useEventBus();
|
|
37886
|
-
|
|
37885
|
+
init_slot_types();
|
|
37887
37886
|
init_cn();
|
|
37888
37887
|
init_ErrorBoundary();
|
|
37889
37888
|
init_logger();
|
|
@@ -38089,7 +38088,7 @@ var FormSection = ({
|
|
|
38089
38088
|
columns = 1,
|
|
38090
38089
|
className
|
|
38091
38090
|
}) => {
|
|
38092
|
-
const [collapsed, setCollapsed] =
|
|
38091
|
+
const [collapsed, setCollapsed] = React110__default.useState(defaultCollapsed);
|
|
38093
38092
|
const { t } = useTranslate();
|
|
38094
38093
|
const eventBus = useEventBus();
|
|
38095
38094
|
const gridClass = {
|
|
@@ -38097,7 +38096,7 @@ var FormSection = ({
|
|
|
38097
38096
|
2: "grid-cols-1 md:grid-cols-2",
|
|
38098
38097
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
38099
38098
|
}[columns];
|
|
38100
|
-
|
|
38099
|
+
React110__default.useCallback(() => {
|
|
38101
38100
|
if (collapsible) {
|
|
38102
38101
|
setCollapsed((prev) => !prev);
|
|
38103
38102
|
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|