@almadar/ui 5.24.0 → 5.25.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 +1906 -1336
- package/dist/avl/index.js +840 -270
- package/dist/components/core/molecules/PropertyInspector.d.ts +3 -2
- package/dist/components/core/molecules/index.d.ts +2 -2
- package/dist/components/core/organisms/index.d.ts +5 -5
- package/dist/components/core/templates/index.d.ts +1 -1
- package/dist/components/index.cjs +1395 -1391
- package/dist/components/index.js +492 -488
- package/dist/components/{core → marketing}/organisms/CaseStudyOrganism.d.ts +1 -1
- package/dist/components/{core → marketing}/organisms/FeatureGridOrganism.d.ts +1 -1
- package/dist/components/{core → marketing}/organisms/HeroOrganism.d.ts +1 -1
- package/dist/components/{core → marketing}/organisms/ShowcaseOrganism.d.ts +1 -1
- package/dist/components/{core → marketing}/organisms/StepFlowOrganism.d.ts +1 -1
- package/dist/marketing/index.d.ts +4 -4
- package/dist/providers/index.cjs +1729 -1159
- package/dist/providers/index.js +814 -244
- package/dist/runtime/index.cjs +1769 -1199
- package/dist/runtime/index.js +818 -248
- package/package.json +2 -2
- /package/dist/components/{core → marketing}/molecules/MarketingFooter.d.ts +0 -0
- /package/dist/components/{core → marketing}/molecules/PullQuote.d.ts +0 -0
- /package/dist/components/{core → marketing}/templates/AuthLayout.d.ts +0 -0
package/dist/runtime/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React88 from 'react';
|
|
2
|
+
import React88__default, { createContext, useMemo, useContext, useRef, useEffect, useCallback, Suspense, useState, useSyncExternalStore, useLayoutEffect, lazy, useId } from 'react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -393,7 +393,7 @@ var init_Box = __esm({
|
|
|
393
393
|
fixed: "fixed",
|
|
394
394
|
sticky: "sticky"
|
|
395
395
|
};
|
|
396
|
-
Box =
|
|
396
|
+
Box = React88__default.forwardRef(
|
|
397
397
|
({
|
|
398
398
|
padding,
|
|
399
399
|
paddingX,
|
|
@@ -443,7 +443,7 @@ var init_Box = __esm({
|
|
|
443
443
|
onMouseLeave?.(e);
|
|
444
444
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
445
445
|
const isClickable = action || onClick;
|
|
446
|
-
return
|
|
446
|
+
return React88__default.createElement(
|
|
447
447
|
Component,
|
|
448
448
|
{
|
|
449
449
|
ref,
|
|
@@ -1226,7 +1226,7 @@ var init_Icon = __esm({
|
|
|
1226
1226
|
const directIcon = typeof icon === "string" ? void 0 : icon;
|
|
1227
1227
|
const effectiveName = typeof icon === "string" ? icon : name;
|
|
1228
1228
|
const family = useIconFamily();
|
|
1229
|
-
const RenderedComponent =
|
|
1229
|
+
const RenderedComponent = React88__default.useMemo(() => {
|
|
1230
1230
|
if (directIcon) return null;
|
|
1231
1231
|
return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
|
|
1232
1232
|
}, [directIcon, effectiveName, family]);
|
|
@@ -1284,7 +1284,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
1284
1284
|
const IconComp = value;
|
|
1285
1285
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
1286
1286
|
}
|
|
1287
|
-
if (
|
|
1287
|
+
if (React88__default.isValidElement(value)) {
|
|
1288
1288
|
return value;
|
|
1289
1289
|
}
|
|
1290
1290
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -1360,7 +1360,7 @@ var init_Button = __esm({
|
|
|
1360
1360
|
md: "h-icon-default w-icon-default",
|
|
1361
1361
|
lg: "h-icon-default w-icon-default"
|
|
1362
1362
|
};
|
|
1363
|
-
Button =
|
|
1363
|
+
Button = React88__default.forwardRef(
|
|
1364
1364
|
({
|
|
1365
1365
|
className,
|
|
1366
1366
|
variant = "primary",
|
|
@@ -1425,7 +1425,7 @@ var Dialog;
|
|
|
1425
1425
|
var init_Dialog = __esm({
|
|
1426
1426
|
"components/core/atoms/Dialog.tsx"() {
|
|
1427
1427
|
init_cn();
|
|
1428
|
-
Dialog =
|
|
1428
|
+
Dialog = React88__default.forwardRef(
|
|
1429
1429
|
({
|
|
1430
1430
|
role = "dialog",
|
|
1431
1431
|
"aria-modal": ariaModal = true,
|
|
@@ -2089,7 +2089,7 @@ var init_Badge = __esm({
|
|
|
2089
2089
|
md: "px-2.5 py-1 text-sm",
|
|
2090
2090
|
lg: "px-3 py-1.5 text-base"
|
|
2091
2091
|
};
|
|
2092
|
-
Badge =
|
|
2092
|
+
Badge = React88__default.forwardRef(
|
|
2093
2093
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
2094
2094
|
const iconSizes3 = {
|
|
2095
2095
|
sm: "h-icon-default w-icon-default",
|
|
@@ -2405,7 +2405,7 @@ var init_SvgFlow = __esm({
|
|
|
2405
2405
|
opacity = 1,
|
|
2406
2406
|
className
|
|
2407
2407
|
}) => {
|
|
2408
|
-
const markerId =
|
|
2408
|
+
const markerId = React88__default.useMemo(() => {
|
|
2409
2409
|
flowIdCounter += 1;
|
|
2410
2410
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
2411
2411
|
}, []);
|
|
@@ -2948,7 +2948,7 @@ var init_SvgRing = __esm({
|
|
|
2948
2948
|
className,
|
|
2949
2949
|
label
|
|
2950
2950
|
}) => {
|
|
2951
|
-
const gradientId =
|
|
2951
|
+
const gradientId = React88__default.useMemo(() => {
|
|
2952
2952
|
ringIdCounter += 1;
|
|
2953
2953
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
2954
2954
|
}, []);
|
|
@@ -3110,7 +3110,7 @@ var init_Input = __esm({
|
|
|
3110
3110
|
"components/core/atoms/Input.tsx"() {
|
|
3111
3111
|
init_cn();
|
|
3112
3112
|
init_Icon();
|
|
3113
|
-
Input =
|
|
3113
|
+
Input = React88__default.forwardRef(
|
|
3114
3114
|
({
|
|
3115
3115
|
className,
|
|
3116
3116
|
inputType,
|
|
@@ -3231,7 +3231,7 @@ var Label;
|
|
|
3231
3231
|
var init_Label = __esm({
|
|
3232
3232
|
"components/core/atoms/Label.tsx"() {
|
|
3233
3233
|
init_cn();
|
|
3234
|
-
Label =
|
|
3234
|
+
Label = React88__default.forwardRef(
|
|
3235
3235
|
({ className, required, children, ...props }, ref) => {
|
|
3236
3236
|
return /* @__PURE__ */ jsxs(
|
|
3237
3237
|
"label",
|
|
@@ -3257,7 +3257,7 @@ var Textarea;
|
|
|
3257
3257
|
var init_Textarea = __esm({
|
|
3258
3258
|
"components/core/atoms/Textarea.tsx"() {
|
|
3259
3259
|
init_cn();
|
|
3260
|
-
Textarea =
|
|
3260
|
+
Textarea = React88__default.forwardRef(
|
|
3261
3261
|
({ className, error, ...props }, ref) => {
|
|
3262
3262
|
return /* @__PURE__ */ jsx(
|
|
3263
3263
|
"textarea",
|
|
@@ -3287,7 +3287,7 @@ var init_Select = __esm({
|
|
|
3287
3287
|
"components/core/atoms/Select.tsx"() {
|
|
3288
3288
|
init_cn();
|
|
3289
3289
|
init_Icon();
|
|
3290
|
-
Select =
|
|
3290
|
+
Select = React88__default.forwardRef(
|
|
3291
3291
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
3292
3292
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
3293
3293
|
/* @__PURE__ */ jsxs(
|
|
@@ -3329,7 +3329,7 @@ var Checkbox;
|
|
|
3329
3329
|
var init_Checkbox = __esm({
|
|
3330
3330
|
"components/core/atoms/Checkbox.tsx"() {
|
|
3331
3331
|
init_cn();
|
|
3332
|
-
Checkbox =
|
|
3332
|
+
Checkbox = React88__default.forwardRef(
|
|
3333
3333
|
({ className, label, id, ...props }, ref) => {
|
|
3334
3334
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
3335
3335
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -3420,7 +3420,7 @@ var init_Card = __esm({
|
|
|
3420
3420
|
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
3421
3421
|
"tile-image-first": "p-0 overflow-hidden"
|
|
3422
3422
|
};
|
|
3423
|
-
Card =
|
|
3423
|
+
Card = React88__default.forwardRef(
|
|
3424
3424
|
({
|
|
3425
3425
|
className,
|
|
3426
3426
|
variant = "bordered",
|
|
@@ -3458,9 +3458,9 @@ var init_Card = __esm({
|
|
|
3458
3458
|
}
|
|
3459
3459
|
);
|
|
3460
3460
|
Card.displayName = "Card";
|
|
3461
|
-
CardHeader =
|
|
3461
|
+
CardHeader = React88__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
3462
3462
|
CardHeader.displayName = "CardHeader";
|
|
3463
|
-
CardTitle =
|
|
3463
|
+
CardTitle = React88__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3464
3464
|
"h3",
|
|
3465
3465
|
{
|
|
3466
3466
|
ref,
|
|
@@ -3473,11 +3473,11 @@ var init_Card = __esm({
|
|
|
3473
3473
|
}
|
|
3474
3474
|
));
|
|
3475
3475
|
CardTitle.displayName = "CardTitle";
|
|
3476
|
-
CardContent =
|
|
3476
|
+
CardContent = React88__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
3477
3477
|
CardContent.displayName = "CardContent";
|
|
3478
3478
|
CardBody = CardContent;
|
|
3479
3479
|
CardBody.displayName = "CardBody";
|
|
3480
|
-
CardFooter =
|
|
3480
|
+
CardFooter = React88__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3481
3481
|
"div",
|
|
3482
3482
|
{
|
|
3483
3483
|
ref,
|
|
@@ -3532,7 +3532,7 @@ var init_FilterPill = __esm({
|
|
|
3532
3532
|
md: "w-3.5 h-3.5",
|
|
3533
3533
|
lg: "w-4 h-4"
|
|
3534
3534
|
};
|
|
3535
|
-
FilterPill =
|
|
3535
|
+
FilterPill = React88__default.forwardRef(
|
|
3536
3536
|
({
|
|
3537
3537
|
className,
|
|
3538
3538
|
variant = "default",
|
|
@@ -3609,7 +3609,7 @@ var init_Spinner = __esm({
|
|
|
3609
3609
|
md: "h-6 w-6",
|
|
3610
3610
|
lg: "h-8 w-8"
|
|
3611
3611
|
};
|
|
3612
|
-
Spinner =
|
|
3612
|
+
Spinner = React88__default.forwardRef(
|
|
3613
3613
|
({ className, size = "md", ...props }, ref) => {
|
|
3614
3614
|
return /* @__PURE__ */ jsx(
|
|
3615
3615
|
"div",
|
|
@@ -3688,8 +3688,8 @@ var init_Avatar = __esm({
|
|
|
3688
3688
|
actionPayload
|
|
3689
3689
|
}) => {
|
|
3690
3690
|
const eventBus = useEventBus();
|
|
3691
|
-
const [imgFailed, setImgFailed] =
|
|
3692
|
-
|
|
3691
|
+
const [imgFailed, setImgFailed] = React88__default.useState(false);
|
|
3692
|
+
React88__default.useEffect(() => {
|
|
3693
3693
|
setImgFailed(false);
|
|
3694
3694
|
}, [src]);
|
|
3695
3695
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
@@ -4074,7 +4074,7 @@ var init_Radio = __esm({
|
|
|
4074
4074
|
md: "w-2.5 h-2.5",
|
|
4075
4075
|
lg: "w-3 h-3"
|
|
4076
4076
|
};
|
|
4077
|
-
Radio =
|
|
4077
|
+
Radio = React88__default.forwardRef(
|
|
4078
4078
|
({
|
|
4079
4079
|
label,
|
|
4080
4080
|
helperText,
|
|
@@ -4091,12 +4091,12 @@ var init_Radio = __esm({
|
|
|
4091
4091
|
onChange,
|
|
4092
4092
|
...props
|
|
4093
4093
|
}, ref) => {
|
|
4094
|
-
const reactId =
|
|
4094
|
+
const reactId = React88__default.useId();
|
|
4095
4095
|
const baseId = id || `radio-${reactId}`;
|
|
4096
4096
|
const hasError = !!error;
|
|
4097
4097
|
const eventBus = useEventBus();
|
|
4098
|
-
const [selected, setSelected] =
|
|
4099
|
-
|
|
4098
|
+
const [selected, setSelected] = React88__default.useState(value);
|
|
4099
|
+
React88__default.useEffect(() => {
|
|
4100
4100
|
if (value !== void 0) setSelected(value);
|
|
4101
4101
|
}, [value]);
|
|
4102
4102
|
const pick = (next, e) => {
|
|
@@ -4278,7 +4278,7 @@ var init_Switch = __esm({
|
|
|
4278
4278
|
"components/core/atoms/Switch.tsx"() {
|
|
4279
4279
|
"use client";
|
|
4280
4280
|
init_cn();
|
|
4281
|
-
Switch =
|
|
4281
|
+
Switch = React88.forwardRef(
|
|
4282
4282
|
({
|
|
4283
4283
|
checked,
|
|
4284
4284
|
defaultChecked = false,
|
|
@@ -4289,10 +4289,10 @@ var init_Switch = __esm({
|
|
|
4289
4289
|
name,
|
|
4290
4290
|
className
|
|
4291
4291
|
}, ref) => {
|
|
4292
|
-
const [isChecked, setIsChecked] =
|
|
4292
|
+
const [isChecked, setIsChecked] = React88.useState(
|
|
4293
4293
|
checked !== void 0 ? checked : defaultChecked
|
|
4294
4294
|
);
|
|
4295
|
-
|
|
4295
|
+
React88.useEffect(() => {
|
|
4296
4296
|
if (checked !== void 0) {
|
|
4297
4297
|
setIsChecked(checked);
|
|
4298
4298
|
}
|
|
@@ -4823,7 +4823,7 @@ var Aside;
|
|
|
4823
4823
|
var init_Aside = __esm({
|
|
4824
4824
|
"components/core/atoms/Aside.tsx"() {
|
|
4825
4825
|
init_cn();
|
|
4826
|
-
Aside =
|
|
4826
|
+
Aside = React88__default.forwardRef(
|
|
4827
4827
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
4828
4828
|
);
|
|
4829
4829
|
Aside.displayName = "Aside";
|
|
@@ -4901,8 +4901,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
4901
4901
|
className
|
|
4902
4902
|
}) => {
|
|
4903
4903
|
const { t } = useTranslate();
|
|
4904
|
-
const [isVisible, setIsVisible] =
|
|
4905
|
-
const timeoutRef =
|
|
4904
|
+
const [isVisible, setIsVisible] = React88__default.useState(false);
|
|
4905
|
+
const timeoutRef = React88__default.useRef(null);
|
|
4906
4906
|
const handleMouseEnter = () => {
|
|
4907
4907
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4908
4908
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -4911,7 +4911,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
4911
4911
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4912
4912
|
setIsVisible(false);
|
|
4913
4913
|
};
|
|
4914
|
-
|
|
4914
|
+
React88__default.useEffect(() => {
|
|
4915
4915
|
return () => {
|
|
4916
4916
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
4917
4917
|
};
|
|
@@ -5121,7 +5121,7 @@ var init_StatusDot = __esm({
|
|
|
5121
5121
|
md: "w-2.5 h-2.5",
|
|
5122
5122
|
lg: "w-3 h-3"
|
|
5123
5123
|
};
|
|
5124
|
-
StatusDot =
|
|
5124
|
+
StatusDot = React88__default.forwardRef(
|
|
5125
5125
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
5126
5126
|
return /* @__PURE__ */ jsx(
|
|
5127
5127
|
"span",
|
|
@@ -5175,7 +5175,7 @@ var init_TrendIndicator = __esm({
|
|
|
5175
5175
|
down: "trending-down",
|
|
5176
5176
|
flat: "arrow-right"
|
|
5177
5177
|
};
|
|
5178
|
-
TrendIndicator =
|
|
5178
|
+
TrendIndicator = React88__default.forwardRef(
|
|
5179
5179
|
({
|
|
5180
5180
|
className,
|
|
5181
5181
|
value,
|
|
@@ -5242,7 +5242,7 @@ var init_RangeSlider = __esm({
|
|
|
5242
5242
|
md: "w-4 h-4",
|
|
5243
5243
|
lg: "w-5 h-5"
|
|
5244
5244
|
};
|
|
5245
|
-
RangeSlider =
|
|
5245
|
+
RangeSlider = React88__default.forwardRef(
|
|
5246
5246
|
({
|
|
5247
5247
|
className,
|
|
5248
5248
|
min = 0,
|
|
@@ -5750,7 +5750,7 @@ var init_ContentSection = __esm({
|
|
|
5750
5750
|
md: "py-16",
|
|
5751
5751
|
lg: "py-24"
|
|
5752
5752
|
};
|
|
5753
|
-
ContentSection =
|
|
5753
|
+
ContentSection = React88__default.forwardRef(
|
|
5754
5754
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
5755
5755
|
return /* @__PURE__ */ jsx(
|
|
5756
5756
|
Box,
|
|
@@ -6284,7 +6284,7 @@ var init_AnimatedReveal = __esm({
|
|
|
6284
6284
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
6285
6285
|
"none": {}
|
|
6286
6286
|
};
|
|
6287
|
-
AnimatedReveal =
|
|
6287
|
+
AnimatedReveal = React88__default.forwardRef(
|
|
6288
6288
|
({
|
|
6289
6289
|
trigger = "scroll",
|
|
6290
6290
|
animation = "fade-up",
|
|
@@ -6444,7 +6444,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
6444
6444
|
"components/marketing/atoms/AnimatedGraphic.tsx"() {
|
|
6445
6445
|
"use client";
|
|
6446
6446
|
init_cn();
|
|
6447
|
-
AnimatedGraphic =
|
|
6447
|
+
AnimatedGraphic = React88__default.forwardRef(
|
|
6448
6448
|
({
|
|
6449
6449
|
src,
|
|
6450
6450
|
svgContent,
|
|
@@ -6467,7 +6467,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
6467
6467
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
6468
6468
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
6469
6469
|
const prevAnimateRef = useRef(animate);
|
|
6470
|
-
const setRef =
|
|
6470
|
+
const setRef = React88__default.useCallback(
|
|
6471
6471
|
(node) => {
|
|
6472
6472
|
containerRef.current = node;
|
|
6473
6473
|
if (typeof ref === "function") ref(node);
|
|
@@ -6692,9 +6692,9 @@ function ScoreDisplay({
|
|
|
6692
6692
|
...rest
|
|
6693
6693
|
}) {
|
|
6694
6694
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
6695
|
-
const [displayValue, setDisplayValue] =
|
|
6696
|
-
const [isAnimating, setIsAnimating] =
|
|
6697
|
-
|
|
6695
|
+
const [displayValue, setDisplayValue] = React88.useState(resolvedValue);
|
|
6696
|
+
const [isAnimating, setIsAnimating] = React88.useState(false);
|
|
6697
|
+
React88.useEffect(() => {
|
|
6698
6698
|
if (!animated || displayValue === resolvedValue) {
|
|
6699
6699
|
setDisplayValue(resolvedValue);
|
|
6700
6700
|
return;
|
|
@@ -6764,9 +6764,9 @@ function ControlButton({
|
|
|
6764
6764
|
className
|
|
6765
6765
|
}) {
|
|
6766
6766
|
const eventBus = useEventBus();
|
|
6767
|
-
const [isPressed, setIsPressed] =
|
|
6767
|
+
const [isPressed, setIsPressed] = React88.useState(false);
|
|
6768
6768
|
const actualPressed = pressed ?? isPressed;
|
|
6769
|
-
const handlePointerDown =
|
|
6769
|
+
const handlePointerDown = React88.useCallback(
|
|
6770
6770
|
(e) => {
|
|
6771
6771
|
e.preventDefault();
|
|
6772
6772
|
if (disabled) return;
|
|
@@ -6776,7 +6776,7 @@ function ControlButton({
|
|
|
6776
6776
|
},
|
|
6777
6777
|
[disabled, pressEvent, eventBus, onPress]
|
|
6778
6778
|
);
|
|
6779
|
-
const handlePointerUp =
|
|
6779
|
+
const handlePointerUp = React88.useCallback(
|
|
6780
6780
|
(e) => {
|
|
6781
6781
|
e.preventDefault();
|
|
6782
6782
|
if (disabled) return;
|
|
@@ -6786,7 +6786,7 @@ function ControlButton({
|
|
|
6786
6786
|
},
|
|
6787
6787
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
6788
6788
|
);
|
|
6789
|
-
const handlePointerLeave =
|
|
6789
|
+
const handlePointerLeave = React88.useCallback(
|
|
6790
6790
|
(e) => {
|
|
6791
6791
|
if (isPressed) {
|
|
6792
6792
|
setIsPressed(false);
|
|
@@ -7275,8 +7275,8 @@ function XPBar({
|
|
|
7275
7275
|
}) {
|
|
7276
7276
|
const sizes = sizeMap9[size];
|
|
7277
7277
|
const percentage = max > 0 ? Math.max(0, Math.min(100, current / max * 100)) : 0;
|
|
7278
|
-
const [fillWidth, setFillWidth] =
|
|
7279
|
-
|
|
7278
|
+
const [fillWidth, setFillWidth] = React88.useState(animated ? 0 : percentage);
|
|
7279
|
+
React88.useEffect(() => {
|
|
7280
7280
|
if (!animated) {
|
|
7281
7281
|
setFillWidth(percentage);
|
|
7282
7282
|
return;
|
|
@@ -7702,9 +7702,9 @@ function MiniMap({
|
|
|
7702
7702
|
viewportRect,
|
|
7703
7703
|
className
|
|
7704
7704
|
}) {
|
|
7705
|
-
const canvasRef =
|
|
7706
|
-
const frameRef =
|
|
7707
|
-
|
|
7705
|
+
const canvasRef = React88.useRef(null);
|
|
7706
|
+
const frameRef = React88.useRef(0);
|
|
7707
|
+
React88.useEffect(() => {
|
|
7708
7708
|
const canvas = canvasRef.current;
|
|
7709
7709
|
if (!canvas) return;
|
|
7710
7710
|
const ctx = canvas.getContext("2d");
|
|
@@ -7878,7 +7878,7 @@ var init_ErrorBoundary = __esm({
|
|
|
7878
7878
|
}
|
|
7879
7879
|
);
|
|
7880
7880
|
};
|
|
7881
|
-
ErrorBoundary = class extends
|
|
7881
|
+
ErrorBoundary = class extends React88__default.Component {
|
|
7882
7882
|
constructor(props) {
|
|
7883
7883
|
super(props);
|
|
7884
7884
|
__publicField(this, "reset", () => {
|
|
@@ -8968,8 +8968,8 @@ var init_Tooltip = __esm({
|
|
|
8968
8968
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
8969
8969
|
};
|
|
8970
8970
|
}, []);
|
|
8971
|
-
const triggerElement =
|
|
8972
|
-
const trigger =
|
|
8971
|
+
const triggerElement = React88__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
8972
|
+
const trigger = React88__default.cloneElement(triggerElement, {
|
|
8973
8973
|
ref: triggerRef,
|
|
8974
8974
|
onMouseEnter: handleMouseEnter,
|
|
8975
8975
|
onMouseLeave: handleMouseLeave,
|
|
@@ -9116,8 +9116,8 @@ var init_Popover = __esm({
|
|
|
9116
9116
|
onMouseEnter: handleOpen,
|
|
9117
9117
|
onMouseLeave: handleClose
|
|
9118
9118
|
};
|
|
9119
|
-
const childElement =
|
|
9120
|
-
const triggerElement =
|
|
9119
|
+
const childElement = React88__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
9120
|
+
const triggerElement = React88__default.cloneElement(
|
|
9121
9121
|
childElement,
|
|
9122
9122
|
{
|
|
9123
9123
|
ref: triggerRef,
|
|
@@ -9243,8 +9243,8 @@ var init_Menu = __esm({
|
|
|
9243
9243
|
};
|
|
9244
9244
|
const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
|
|
9245
9245
|
const subMenuSideClass = direction === "rtl" ? "right-full mr-2" : "left-full ml-2";
|
|
9246
|
-
const triggerChild =
|
|
9247
|
-
const triggerElement =
|
|
9246
|
+
const triggerChild = React88__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
9247
|
+
const triggerElement = React88__default.cloneElement(
|
|
9248
9248
|
triggerChild,
|
|
9249
9249
|
{
|
|
9250
9250
|
ref: triggerRef,
|
|
@@ -9651,12 +9651,12 @@ var init_MapView = __esm({
|
|
|
9651
9651
|
shadowSize: [41, 41]
|
|
9652
9652
|
});
|
|
9653
9653
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
9654
|
-
const { useEffect: useEffect72, useRef:
|
|
9654
|
+
const { useEffect: useEffect72, useRef: useRef67, useCallback: useCallback116, useState: useState105 } = React88__default;
|
|
9655
9655
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
9656
9656
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
9657
9657
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
9658
9658
|
const map = useMap();
|
|
9659
|
-
const prevRef =
|
|
9659
|
+
const prevRef = useRef67({ centerLat, centerLng, zoom });
|
|
9660
9660
|
useEffect72(() => {
|
|
9661
9661
|
const prev = prevRef.current;
|
|
9662
9662
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
@@ -9696,8 +9696,8 @@ var init_MapView = __esm({
|
|
|
9696
9696
|
showAttribution = true
|
|
9697
9697
|
}) {
|
|
9698
9698
|
const eventBus = useEventBus3();
|
|
9699
|
-
const [clickedPosition, setClickedPosition] =
|
|
9700
|
-
const handleMapClick =
|
|
9699
|
+
const [clickedPosition, setClickedPosition] = useState105(null);
|
|
9700
|
+
const handleMapClick = useCallback116((lat, lng) => {
|
|
9701
9701
|
if (showClickedPin) {
|
|
9702
9702
|
setClickedPosition({ lat, lng });
|
|
9703
9703
|
}
|
|
@@ -9706,7 +9706,7 @@ var init_MapView = __esm({
|
|
|
9706
9706
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
9707
9707
|
}
|
|
9708
9708
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
9709
|
-
const handleMarkerClick =
|
|
9709
|
+
const handleMarkerClick = useCallback116((marker) => {
|
|
9710
9710
|
onMarkerClick?.(marker);
|
|
9711
9711
|
if (markerClickEvent) {
|
|
9712
9712
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -9897,7 +9897,7 @@ function InputPattern({
|
|
|
9897
9897
|
fieldName
|
|
9898
9898
|
}) {
|
|
9899
9899
|
const { emit } = useEventBus();
|
|
9900
|
-
const [localValue, setLocalValue] =
|
|
9900
|
+
const [localValue, setLocalValue] = React88__default.useState(value);
|
|
9901
9901
|
const handleChange = (e) => {
|
|
9902
9902
|
setLocalValue(e.target.value);
|
|
9903
9903
|
if (onChange) {
|
|
@@ -9935,7 +9935,7 @@ function TextareaPattern({
|
|
|
9935
9935
|
fieldName
|
|
9936
9936
|
}) {
|
|
9937
9937
|
const { emit } = useEventBus();
|
|
9938
|
-
const [localValue, setLocalValue] =
|
|
9938
|
+
const [localValue, setLocalValue] = React88__default.useState(value);
|
|
9939
9939
|
const handleChange = (e) => {
|
|
9940
9940
|
setLocalValue(e.target.value);
|
|
9941
9941
|
if (onChange) {
|
|
@@ -9967,7 +9967,7 @@ function SelectPattern({
|
|
|
9967
9967
|
fieldName
|
|
9968
9968
|
}) {
|
|
9969
9969
|
const { emit } = useEventBus();
|
|
9970
|
-
const [localValue, setLocalValue] =
|
|
9970
|
+
const [localValue, setLocalValue] = React88__default.useState(value);
|
|
9971
9971
|
const handleChange = (e) => {
|
|
9972
9972
|
setLocalValue(e.target.value);
|
|
9973
9973
|
if (onChange) {
|
|
@@ -9996,7 +9996,7 @@ function CheckboxPattern({
|
|
|
9996
9996
|
className
|
|
9997
9997
|
}) {
|
|
9998
9998
|
const { emit } = useEventBus();
|
|
9999
|
-
const [localChecked, setLocalChecked] =
|
|
9999
|
+
const [localChecked, setLocalChecked] = React88__default.useState(checked);
|
|
10000
10000
|
const handleChange = (e) => {
|
|
10001
10001
|
setLocalChecked(e.target.checked);
|
|
10002
10002
|
if (onChange) {
|
|
@@ -10227,8 +10227,8 @@ function ActionButtons({
|
|
|
10227
10227
|
disabled
|
|
10228
10228
|
}) {
|
|
10229
10229
|
const eventBus = useEventBus();
|
|
10230
|
-
const [activeButtons, setActiveButtons] =
|
|
10231
|
-
const handlePress =
|
|
10230
|
+
const [activeButtons, setActiveButtons] = React88.useState(/* @__PURE__ */ new Set());
|
|
10231
|
+
const handlePress = React88.useCallback(
|
|
10232
10232
|
(id) => {
|
|
10233
10233
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
10234
10234
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -10236,7 +10236,7 @@ function ActionButtons({
|
|
|
10236
10236
|
},
|
|
10237
10237
|
[actionEvent, eventBus, onAction]
|
|
10238
10238
|
);
|
|
10239
|
-
const handleRelease =
|
|
10239
|
+
const handleRelease = React88.useCallback(
|
|
10240
10240
|
(id) => {
|
|
10241
10241
|
setActiveButtons((prev) => {
|
|
10242
10242
|
const next = new Set(prev);
|
|
@@ -10517,9 +10517,262 @@ var init_AnimatedCounter = __esm({
|
|
|
10517
10517
|
AnimatedCounter.displayName = "AnimatedCounter";
|
|
10518
10518
|
}
|
|
10519
10519
|
});
|
|
10520
|
+
var ALL_CATEGORY, GridPicker;
|
|
10521
|
+
var init_GridPicker = __esm({
|
|
10522
|
+
"components/core/molecules/GridPicker.tsx"() {
|
|
10523
|
+
"use client";
|
|
10524
|
+
init_cn();
|
|
10525
|
+
init_Input();
|
|
10526
|
+
init_Badge();
|
|
10527
|
+
init_Stack();
|
|
10528
|
+
ALL_CATEGORY = "__all__";
|
|
10529
|
+
GridPicker = ({
|
|
10530
|
+
items,
|
|
10531
|
+
value,
|
|
10532
|
+
onChange,
|
|
10533
|
+
categories,
|
|
10534
|
+
searchPlaceholder,
|
|
10535
|
+
renderThumbnail,
|
|
10536
|
+
cellSize = 32,
|
|
10537
|
+
className
|
|
10538
|
+
}) => {
|
|
10539
|
+
const [search, setSearch] = useState("");
|
|
10540
|
+
const [activeCategory, setActiveCategory] = useState(ALL_CATEGORY);
|
|
10541
|
+
const gridRef = useRef(null);
|
|
10542
|
+
const categoryChips = useMemo(() => {
|
|
10543
|
+
if (categories !== void 0) return categories;
|
|
10544
|
+
const seen = [];
|
|
10545
|
+
for (const item of items) {
|
|
10546
|
+
if (!seen.includes(item.category)) seen.push(item.category);
|
|
10547
|
+
}
|
|
10548
|
+
return seen;
|
|
10549
|
+
}, [categories, items]);
|
|
10550
|
+
const filtered = useMemo(() => {
|
|
10551
|
+
const needle = search.trim().toLowerCase();
|
|
10552
|
+
return items.filter((item) => {
|
|
10553
|
+
const matchesCategory = activeCategory === ALL_CATEGORY || item.category === activeCategory;
|
|
10554
|
+
const matchesSearch = needle === "" || item.label.toLowerCase().includes(needle);
|
|
10555
|
+
return matchesCategory && matchesSearch;
|
|
10556
|
+
});
|
|
10557
|
+
}, [items, search, activeCategory]);
|
|
10558
|
+
const select = useCallback(
|
|
10559
|
+
(item) => {
|
|
10560
|
+
onChange(item.id);
|
|
10561
|
+
},
|
|
10562
|
+
[onChange]
|
|
10563
|
+
);
|
|
10564
|
+
const handleKeyDown = useCallback(
|
|
10565
|
+
(e, index) => {
|
|
10566
|
+
const cells = gridRef.current?.querySelectorAll(
|
|
10567
|
+
"[data-gridpicker-cell]"
|
|
10568
|
+
);
|
|
10569
|
+
if (cells === void 0 || cells.length === 0) return;
|
|
10570
|
+
const columns = (() => {
|
|
10571
|
+
const grid = gridRef.current;
|
|
10572
|
+
if (grid === null) return 1;
|
|
10573
|
+
const style = window.getComputedStyle(grid);
|
|
10574
|
+
const cols = style.gridTemplateColumns.split(" ").filter(Boolean).length;
|
|
10575
|
+
return cols > 0 ? cols : 1;
|
|
10576
|
+
})();
|
|
10577
|
+
let next = -1;
|
|
10578
|
+
if (e.key === "ArrowRight") next = index + 1;
|
|
10579
|
+
else if (e.key === "ArrowLeft") next = index - 1;
|
|
10580
|
+
else if (e.key === "ArrowDown") next = index + columns;
|
|
10581
|
+
else if (e.key === "ArrowUp") next = index - columns;
|
|
10582
|
+
else if (e.key === "Enter" || e.key === " ") {
|
|
10583
|
+
e.preventDefault();
|
|
10584
|
+
select(filtered[index]);
|
|
10585
|
+
return;
|
|
10586
|
+
} else {
|
|
10587
|
+
return;
|
|
10588
|
+
}
|
|
10589
|
+
e.preventDefault();
|
|
10590
|
+
if (next >= 0 && next < cells.length) {
|
|
10591
|
+
cells[next].focus();
|
|
10592
|
+
}
|
|
10593
|
+
},
|
|
10594
|
+
[filtered, select]
|
|
10595
|
+
);
|
|
10596
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("w-full", className), children: [
|
|
10597
|
+
/* @__PURE__ */ jsx(
|
|
10598
|
+
Input,
|
|
10599
|
+
{
|
|
10600
|
+
type: "search",
|
|
10601
|
+
icon: "search",
|
|
10602
|
+
value: search,
|
|
10603
|
+
placeholder: searchPlaceholder,
|
|
10604
|
+
clearable: true,
|
|
10605
|
+
onClear: () => setSearch(""),
|
|
10606
|
+
onChange: (e) => setSearch(e.target.value)
|
|
10607
|
+
}
|
|
10608
|
+
),
|
|
10609
|
+
categoryChips.length > 0 && /* @__PURE__ */ jsxs(HStack, { gap: "xs", wrap: true, children: [
|
|
10610
|
+
/* @__PURE__ */ jsx(
|
|
10611
|
+
Badge,
|
|
10612
|
+
{
|
|
10613
|
+
variant: activeCategory === ALL_CATEGORY ? "primary" : "neutral",
|
|
10614
|
+
size: "sm",
|
|
10615
|
+
role: "button",
|
|
10616
|
+
tabIndex: 0,
|
|
10617
|
+
"aria-pressed": activeCategory === ALL_CATEGORY,
|
|
10618
|
+
className: "cursor-pointer",
|
|
10619
|
+
onClick: () => setActiveCategory(ALL_CATEGORY),
|
|
10620
|
+
onKeyDown: (e) => {
|
|
10621
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
10622
|
+
e.preventDefault();
|
|
10623
|
+
setActiveCategory(ALL_CATEGORY);
|
|
10624
|
+
}
|
|
10625
|
+
},
|
|
10626
|
+
children: "All"
|
|
10627
|
+
}
|
|
10628
|
+
),
|
|
10629
|
+
categoryChips.map((category) => /* @__PURE__ */ jsx(
|
|
10630
|
+
Badge,
|
|
10631
|
+
{
|
|
10632
|
+
variant: activeCategory === category ? "primary" : "neutral",
|
|
10633
|
+
size: "sm",
|
|
10634
|
+
role: "button",
|
|
10635
|
+
tabIndex: 0,
|
|
10636
|
+
"aria-pressed": activeCategory === category,
|
|
10637
|
+
className: "cursor-pointer",
|
|
10638
|
+
onClick: () => setActiveCategory(category),
|
|
10639
|
+
onKeyDown: (e) => {
|
|
10640
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
10641
|
+
e.preventDefault();
|
|
10642
|
+
setActiveCategory(category);
|
|
10643
|
+
}
|
|
10644
|
+
},
|
|
10645
|
+
children: category
|
|
10646
|
+
},
|
|
10647
|
+
category
|
|
10648
|
+
))
|
|
10649
|
+
] }),
|
|
10650
|
+
/* @__PURE__ */ jsx(
|
|
10651
|
+
"div",
|
|
10652
|
+
{
|
|
10653
|
+
ref: gridRef,
|
|
10654
|
+
role: "listbox",
|
|
10655
|
+
className: "grid gap-1 overflow-y-auto max-h-64 p-1",
|
|
10656
|
+
style: {
|
|
10657
|
+
gridTemplateColumns: `repeat(auto-fill, minmax(${cellSize}px, 1fr))`
|
|
10658
|
+
},
|
|
10659
|
+
children: filtered.map((item, index) => {
|
|
10660
|
+
const selected = item.id === value;
|
|
10661
|
+
return /* @__PURE__ */ jsx(
|
|
10662
|
+
"button",
|
|
10663
|
+
{
|
|
10664
|
+
type: "button",
|
|
10665
|
+
role: "option",
|
|
10666
|
+
"aria-selected": selected,
|
|
10667
|
+
"aria-label": item.label,
|
|
10668
|
+
title: item.label,
|
|
10669
|
+
"data-gridpicker-cell": true,
|
|
10670
|
+
tabIndex: selected || value === void 0 && index === 0 ? 0 : -1,
|
|
10671
|
+
onClick: () => select(item),
|
|
10672
|
+
onKeyDown: (e) => handleKeyDown(e, index),
|
|
10673
|
+
className: cn(
|
|
10674
|
+
"flex items-center justify-center rounded-sm",
|
|
10675
|
+
"transition-colors hover:bg-muted",
|
|
10676
|
+
"focus:outline-none focus:ring-1 focus:ring-ring",
|
|
10677
|
+
selected && "bg-primary/10 ring-1 ring-primary"
|
|
10678
|
+
),
|
|
10679
|
+
style: { width: cellSize, height: cellSize },
|
|
10680
|
+
children: renderThumbnail(item)
|
|
10681
|
+
},
|
|
10682
|
+
item.id
|
|
10683
|
+
);
|
|
10684
|
+
})
|
|
10685
|
+
}
|
|
10686
|
+
)
|
|
10687
|
+
] });
|
|
10688
|
+
};
|
|
10689
|
+
GridPicker.displayName = "GridPicker";
|
|
10690
|
+
}
|
|
10691
|
+
});
|
|
10692
|
+
function iconForKind(kind) {
|
|
10693
|
+
if (kind === "audio") return "music";
|
|
10694
|
+
if (kind === "model") return "box";
|
|
10695
|
+
return "file";
|
|
10696
|
+
}
|
|
10697
|
+
var THUMB_PX, IMAGE_KINDS, AssetPicker;
|
|
10698
|
+
var init_AssetPicker = __esm({
|
|
10699
|
+
"components/core/molecules/AssetPicker.tsx"() {
|
|
10700
|
+
"use client";
|
|
10701
|
+
init_GridPicker();
|
|
10702
|
+
init_Icon();
|
|
10703
|
+
THUMB_PX = 32;
|
|
10704
|
+
IMAGE_KINDS = /* @__PURE__ */ new Set([
|
|
10705
|
+
"image",
|
|
10706
|
+
"spritesheet",
|
|
10707
|
+
"scene",
|
|
10708
|
+
"portrait"
|
|
10709
|
+
]);
|
|
10710
|
+
AssetPicker = ({
|
|
10711
|
+
assets,
|
|
10712
|
+
value,
|
|
10713
|
+
onChange,
|
|
10714
|
+
className
|
|
10715
|
+
}) => {
|
|
10716
|
+
const byUrl = useMemo(() => {
|
|
10717
|
+
const map = /* @__PURE__ */ new Map();
|
|
10718
|
+
for (const entry of assets) map.set(entry.url, entry);
|
|
10719
|
+
return map;
|
|
10720
|
+
}, [assets]);
|
|
10721
|
+
const items = useMemo(
|
|
10722
|
+
() => assets.map((entry) => ({
|
|
10723
|
+
id: entry.url,
|
|
10724
|
+
label: entry.name,
|
|
10725
|
+
category: entry.category
|
|
10726
|
+
})),
|
|
10727
|
+
[assets]
|
|
10728
|
+
);
|
|
10729
|
+
const categories = useMemo(() => {
|
|
10730
|
+
const seen = [];
|
|
10731
|
+
for (const entry of assets) {
|
|
10732
|
+
if (!seen.includes(entry.category)) seen.push(entry.category);
|
|
10733
|
+
}
|
|
10734
|
+
return seen;
|
|
10735
|
+
}, [assets]);
|
|
10736
|
+
const renderThumbnail = useCallback(
|
|
10737
|
+
(item) => {
|
|
10738
|
+
const entry = byUrl.get(item.id);
|
|
10739
|
+
if (entry === void 0) return null;
|
|
10740
|
+
if (IMAGE_KINDS.has(entry.kind)) {
|
|
10741
|
+
return /* @__PURE__ */ jsx(
|
|
10742
|
+
"img",
|
|
10743
|
+
{
|
|
10744
|
+
src: entry.thumbnailUrl ?? entry.url,
|
|
10745
|
+
alt: entry.name,
|
|
10746
|
+
loading: "lazy",
|
|
10747
|
+
width: THUMB_PX,
|
|
10748
|
+
height: THUMB_PX,
|
|
10749
|
+
style: { width: THUMB_PX, height: THUMB_PX, objectFit: "cover" }
|
|
10750
|
+
}
|
|
10751
|
+
);
|
|
10752
|
+
}
|
|
10753
|
+
return /* @__PURE__ */ jsx(Icon, { name: iconForKind(entry.kind), size: "sm" });
|
|
10754
|
+
},
|
|
10755
|
+
[byUrl]
|
|
10756
|
+
);
|
|
10757
|
+
return /* @__PURE__ */ jsx(
|
|
10758
|
+
GridPicker,
|
|
10759
|
+
{
|
|
10760
|
+
items,
|
|
10761
|
+
value,
|
|
10762
|
+
onChange,
|
|
10763
|
+
categories,
|
|
10764
|
+
renderThumbnail,
|
|
10765
|
+
cellSize: THUMB_PX,
|
|
10766
|
+
className
|
|
10767
|
+
}
|
|
10768
|
+
);
|
|
10769
|
+
};
|
|
10770
|
+
AssetPicker.displayName = "AssetPicker";
|
|
10771
|
+
}
|
|
10772
|
+
});
|
|
10520
10773
|
var AuthLayout;
|
|
10521
10774
|
var init_AuthLayout = __esm({
|
|
10522
|
-
"components/
|
|
10775
|
+
"components/marketing/templates/AuthLayout.tsx"() {
|
|
10523
10776
|
"use client";
|
|
10524
10777
|
init_cn();
|
|
10525
10778
|
init_Box();
|
|
@@ -13377,7 +13630,7 @@ var init_CodeBlock = __esm({
|
|
|
13377
13630
|
CODE_LANGUAGE_SET = new Set(CODE_LANGUAGES);
|
|
13378
13631
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
13379
13632
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
13380
|
-
CodeBlock =
|
|
13633
|
+
CodeBlock = React88__default.memo(
|
|
13381
13634
|
({
|
|
13382
13635
|
code: rawCode,
|
|
13383
13636
|
language = "text",
|
|
@@ -13814,7 +14067,7 @@ var init_MarkdownContent = __esm({
|
|
|
13814
14067
|
init_Box();
|
|
13815
14068
|
init_CodeBlock();
|
|
13816
14069
|
init_cn();
|
|
13817
|
-
MarkdownContent =
|
|
14070
|
+
MarkdownContent = React88__default.memo(
|
|
13818
14071
|
({ content, direction, className }) => {
|
|
13819
14072
|
const { t: _t } = useTranslate();
|
|
13820
14073
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -14910,7 +15163,7 @@ var init_StateMachineView = __esm({
|
|
|
14910
15163
|
style: { top: title ? 30 : 0 },
|
|
14911
15164
|
children: [
|
|
14912
15165
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
14913
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
15166
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React88__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
14914
15167
|
StateNode,
|
|
14915
15168
|
{
|
|
14916
15169
|
state,
|
|
@@ -16515,7 +16768,7 @@ var init_Grid = __esm({
|
|
|
16515
16768
|
as: Component = "div"
|
|
16516
16769
|
}) => {
|
|
16517
16770
|
const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
|
|
16518
|
-
return
|
|
16771
|
+
return React88__default.createElement(
|
|
16519
16772
|
Component,
|
|
16520
16773
|
{
|
|
16521
16774
|
className: cn(
|
|
@@ -19833,7 +20086,7 @@ var init_Carousel = __esm({
|
|
|
19833
20086
|
});
|
|
19834
20087
|
var CaseStudyOrganism;
|
|
19835
20088
|
var init_CaseStudyOrganism = __esm({
|
|
19836
|
-
"components/
|
|
20089
|
+
"components/marketing/organisms/CaseStudyOrganism.tsx"() {
|
|
19837
20090
|
"use client";
|
|
19838
20091
|
init_cn();
|
|
19839
20092
|
init_useEventBus();
|
|
@@ -21875,7 +22128,7 @@ function CraftingRecipe({
|
|
|
21875
22128
|
className
|
|
21876
22129
|
}) {
|
|
21877
22130
|
const eventBus = useEventBus();
|
|
21878
|
-
const handleCraft =
|
|
22131
|
+
const handleCraft = React88.useCallback(() => {
|
|
21879
22132
|
onCraft?.();
|
|
21880
22133
|
if (craftEvent) {
|
|
21881
22134
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -21892,7 +22145,7 @@ function CraftingRecipe({
|
|
|
21892
22145
|
children: [
|
|
21893
22146
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
21894
22147
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
21895
|
-
return /* @__PURE__ */ jsxs(
|
|
22148
|
+
return /* @__PURE__ */ jsxs(React88.Fragment, { children: [
|
|
21896
22149
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
21897
22150
|
ItemSlot,
|
|
21898
22151
|
{
|
|
@@ -21955,8 +22208,8 @@ function DPad({
|
|
|
21955
22208
|
}) {
|
|
21956
22209
|
const eventBus = useEventBus();
|
|
21957
22210
|
const sizes = sizeMap15[size];
|
|
21958
|
-
const [activeDirections, setActiveDirections] =
|
|
21959
|
-
const handlePress =
|
|
22211
|
+
const [activeDirections, setActiveDirections] = React88.useState(/* @__PURE__ */ new Set());
|
|
22212
|
+
const handlePress = React88.useCallback(
|
|
21960
22213
|
(direction) => {
|
|
21961
22214
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
21962
22215
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -21964,7 +22217,7 @@ function DPad({
|
|
|
21964
22217
|
},
|
|
21965
22218
|
[directionEvent, eventBus, onDirection]
|
|
21966
22219
|
);
|
|
21967
|
-
const handleRelease =
|
|
22220
|
+
const handleRelease = React88.useCallback(
|
|
21968
22221
|
(direction) => {
|
|
21969
22222
|
setActiveDirections((prev) => {
|
|
21970
22223
|
const next = new Set(prev);
|
|
@@ -22650,14 +22903,14 @@ function useDataDnd(args) {
|
|
|
22650
22903
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
22651
22904
|
const enabled = isZone || Boolean(dndRoot);
|
|
22652
22905
|
const eventBus = useEventBus();
|
|
22653
|
-
const parentRoot =
|
|
22906
|
+
const parentRoot = React88__default.useContext(RootCtx);
|
|
22654
22907
|
const isRoot = enabled && parentRoot === null;
|
|
22655
|
-
const zoneId =
|
|
22908
|
+
const zoneId = React88__default.useId();
|
|
22656
22909
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
22657
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
22658
|
-
const optimisticOrdersRef =
|
|
22910
|
+
const [optimisticOrders, setOptimisticOrders] = React88__default.useState(() => /* @__PURE__ */ new Map());
|
|
22911
|
+
const optimisticOrdersRef = React88__default.useRef(optimisticOrders);
|
|
22659
22912
|
optimisticOrdersRef.current = optimisticOrders;
|
|
22660
|
-
const clearOptimisticOrder =
|
|
22913
|
+
const clearOptimisticOrder = React88__default.useCallback((group) => {
|
|
22661
22914
|
setOptimisticOrders((prev) => {
|
|
22662
22915
|
if (!prev.has(group)) return prev;
|
|
22663
22916
|
const next = new Map(prev);
|
|
@@ -22682,7 +22935,7 @@ function useDataDnd(args) {
|
|
|
22682
22935
|
const raw = it[dndItemIdField];
|
|
22683
22936
|
return String(raw ?? `__idx_${idx}`);
|
|
22684
22937
|
}).join("|");
|
|
22685
|
-
const itemIds =
|
|
22938
|
+
const itemIds = React88__default.useMemo(
|
|
22686
22939
|
() => orderedItems.map((it, idx) => {
|
|
22687
22940
|
const raw = it[dndItemIdField];
|
|
22688
22941
|
return raw ?? `__idx_${idx}`;
|
|
@@ -22690,7 +22943,7 @@ function useDataDnd(args) {
|
|
|
22690
22943
|
[itemIdsSignature]
|
|
22691
22944
|
);
|
|
22692
22945
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
22693
|
-
|
|
22946
|
+
React88__default.useEffect(() => {
|
|
22694
22947
|
const root = isRoot ? null : parentRoot;
|
|
22695
22948
|
if (root) {
|
|
22696
22949
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -22698,20 +22951,20 @@ function useDataDnd(args) {
|
|
|
22698
22951
|
clearOptimisticOrder(ownGroup);
|
|
22699
22952
|
}
|
|
22700
22953
|
}, [itemsContentSig, ownGroup]);
|
|
22701
|
-
const zonesRef =
|
|
22702
|
-
const registerZone =
|
|
22954
|
+
const zonesRef = React88__default.useRef(/* @__PURE__ */ new Map());
|
|
22955
|
+
const registerZone = React88__default.useCallback((zoneId2, meta2) => {
|
|
22703
22956
|
zonesRef.current.set(zoneId2, meta2);
|
|
22704
22957
|
}, []);
|
|
22705
|
-
const unregisterZone =
|
|
22958
|
+
const unregisterZone = React88__default.useCallback((zoneId2) => {
|
|
22706
22959
|
zonesRef.current.delete(zoneId2);
|
|
22707
22960
|
}, []);
|
|
22708
|
-
const [activeDrag, setActiveDrag] =
|
|
22709
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
22710
|
-
const meta =
|
|
22961
|
+
const [activeDrag, setActiveDrag] = React88__default.useState(null);
|
|
22962
|
+
const [overZoneGroup, setOverZoneGroup] = React88__default.useState(null);
|
|
22963
|
+
const meta = React88__default.useMemo(
|
|
22711
22964
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
22712
22965
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
22713
22966
|
);
|
|
22714
|
-
|
|
22967
|
+
React88__default.useEffect(() => {
|
|
22715
22968
|
const target = isRoot ? null : parentRoot;
|
|
22716
22969
|
if (!target) {
|
|
22717
22970
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -22730,7 +22983,7 @@ function useDataDnd(args) {
|
|
|
22730
22983
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
22731
22984
|
const sensors = useAlmadarDndSensors(true);
|
|
22732
22985
|
const collisionDetection = almadarDndCollisionDetection;
|
|
22733
|
-
const findZoneByItem =
|
|
22986
|
+
const findZoneByItem = React88__default.useCallback(
|
|
22734
22987
|
(id) => {
|
|
22735
22988
|
for (const z of zonesRef.current.values()) {
|
|
22736
22989
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -22739,7 +22992,7 @@ function useDataDnd(args) {
|
|
|
22739
22992
|
},
|
|
22740
22993
|
[]
|
|
22741
22994
|
);
|
|
22742
|
-
|
|
22995
|
+
React88__default.useCallback(
|
|
22743
22996
|
(group) => {
|
|
22744
22997
|
for (const z of zonesRef.current.values()) {
|
|
22745
22998
|
if (z.group === group) return z;
|
|
@@ -22748,7 +23001,7 @@ function useDataDnd(args) {
|
|
|
22748
23001
|
},
|
|
22749
23002
|
[]
|
|
22750
23003
|
);
|
|
22751
|
-
const handleDragEnd =
|
|
23004
|
+
const handleDragEnd = React88__default.useCallback(
|
|
22752
23005
|
(event) => {
|
|
22753
23006
|
const { active, over } = event;
|
|
22754
23007
|
const activeIdStr = String(active.id);
|
|
@@ -22839,8 +23092,8 @@ function useDataDnd(args) {
|
|
|
22839
23092
|
},
|
|
22840
23093
|
[eventBus]
|
|
22841
23094
|
);
|
|
22842
|
-
const sortableData =
|
|
22843
|
-
const SortableItem =
|
|
23095
|
+
const sortableData = React88__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
23096
|
+
const SortableItem = React88__default.useCallback(
|
|
22844
23097
|
({ id, children }) => {
|
|
22845
23098
|
const {
|
|
22846
23099
|
attributes,
|
|
@@ -22880,7 +23133,7 @@ function useDataDnd(args) {
|
|
|
22880
23133
|
id: droppableId,
|
|
22881
23134
|
data: sortableData
|
|
22882
23135
|
});
|
|
22883
|
-
const ctx =
|
|
23136
|
+
const ctx = React88__default.useContext(RootCtx);
|
|
22884
23137
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
22885
23138
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
22886
23139
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -22895,7 +23148,7 @@ function useDataDnd(args) {
|
|
|
22895
23148
|
showForeignPlaceholder,
|
|
22896
23149
|
ctxAvailable: ctx != null
|
|
22897
23150
|
});
|
|
22898
|
-
|
|
23151
|
+
React88__default.useEffect(() => {
|
|
22899
23152
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
22900
23153
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
22901
23154
|
return /* @__PURE__ */ jsx(
|
|
@@ -22909,11 +23162,11 @@ function useDataDnd(args) {
|
|
|
22909
23162
|
}
|
|
22910
23163
|
);
|
|
22911
23164
|
};
|
|
22912
|
-
const rootContextValue =
|
|
23165
|
+
const rootContextValue = React88__default.useMemo(
|
|
22913
23166
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
22914
23167
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
22915
23168
|
);
|
|
22916
|
-
const handleDragStart =
|
|
23169
|
+
const handleDragStart = React88__default.useCallback((event) => {
|
|
22917
23170
|
const sourceZone = findZoneByItem(event.active.id);
|
|
22918
23171
|
const rect = event.active.rect.current.initial;
|
|
22919
23172
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -22932,7 +23185,7 @@ function useDataDnd(args) {
|
|
|
22932
23185
|
isRoot
|
|
22933
23186
|
});
|
|
22934
23187
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
22935
|
-
const handleDragOver =
|
|
23188
|
+
const handleDragOver = React88__default.useCallback((event) => {
|
|
22936
23189
|
const { active, over } = event;
|
|
22937
23190
|
const overData = over?.data?.current;
|
|
22938
23191
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -23002,7 +23255,7 @@ function useDataDnd(args) {
|
|
|
23002
23255
|
return next;
|
|
23003
23256
|
});
|
|
23004
23257
|
}, []);
|
|
23005
|
-
const handleDragCancel =
|
|
23258
|
+
const handleDragCancel = React88__default.useCallback((event) => {
|
|
23006
23259
|
setActiveDrag(null);
|
|
23007
23260
|
setOverZoneGroup(null);
|
|
23008
23261
|
dndLog.warn("dragCancel", {
|
|
@@ -23010,12 +23263,12 @@ function useDataDnd(args) {
|
|
|
23010
23263
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
23011
23264
|
});
|
|
23012
23265
|
}, []);
|
|
23013
|
-
const handleDragEndWithCleanup =
|
|
23266
|
+
const handleDragEndWithCleanup = React88__default.useCallback((event) => {
|
|
23014
23267
|
handleDragEnd(event);
|
|
23015
23268
|
setActiveDrag(null);
|
|
23016
23269
|
setOverZoneGroup(null);
|
|
23017
23270
|
}, [handleDragEnd]);
|
|
23018
|
-
const wrapContainer =
|
|
23271
|
+
const wrapContainer = React88__default.useCallback(
|
|
23019
23272
|
(children) => {
|
|
23020
23273
|
if (!enabled) return children;
|
|
23021
23274
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -23069,7 +23322,7 @@ var init_useDataDnd = __esm({
|
|
|
23069
23322
|
init_useAlmadarDndCollision();
|
|
23070
23323
|
init_Box();
|
|
23071
23324
|
dndLog = createLogger("almadar:ui:dnd");
|
|
23072
|
-
RootCtx =
|
|
23325
|
+
RootCtx = React88__default.createContext(null);
|
|
23073
23326
|
}
|
|
23074
23327
|
});
|
|
23075
23328
|
function fieldLabel2(key) {
|
|
@@ -23589,7 +23842,7 @@ function DataList({
|
|
|
23589
23842
|
}) {
|
|
23590
23843
|
const eventBus = useEventBus();
|
|
23591
23844
|
const { t } = useTranslate();
|
|
23592
|
-
const [visibleCount, setVisibleCount] =
|
|
23845
|
+
const [visibleCount, setVisibleCount] = React88__default.useState(pageSize || Infinity);
|
|
23593
23846
|
const fieldDefs = fields ?? columns ?? [];
|
|
23594
23847
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
23595
23848
|
const dnd = useDataDnd({
|
|
@@ -23608,7 +23861,7 @@ function DataList({
|
|
|
23608
23861
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
23609
23862
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
23610
23863
|
const hasRenderProp = typeof children === "function";
|
|
23611
|
-
|
|
23864
|
+
React88__default.useEffect(() => {
|
|
23612
23865
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
23613
23866
|
const childrenTypeOf = typeof children;
|
|
23614
23867
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -23713,7 +23966,7 @@ function DataList({
|
|
|
23713
23966
|
const items2 = data.map((item) => item);
|
|
23714
23967
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
23715
23968
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
23716
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
23969
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
23717
23970
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
23718
23971
|
group.items.map((itemData, index) => {
|
|
23719
23972
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -23861,7 +24114,7 @@ function DataList({
|
|
|
23861
24114
|
className
|
|
23862
24115
|
),
|
|
23863
24116
|
children: [
|
|
23864
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
24117
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
23865
24118
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
23866
24119
|
group.items.map(
|
|
23867
24120
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -25235,7 +25488,7 @@ var init_WizardProgress = __esm({
|
|
|
25235
25488
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
25236
25489
|
const isActive = index === currentStep;
|
|
25237
25490
|
const isCompleted = index < currentStep;
|
|
25238
|
-
return /* @__PURE__ */ jsxs(
|
|
25491
|
+
return /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
25239
25492
|
/* @__PURE__ */ jsx(
|
|
25240
25493
|
"button",
|
|
25241
25494
|
{
|
|
@@ -25846,6 +26099,50 @@ var init_FlipCard = __esm({
|
|
|
25846
26099
|
FlipCard.displayName = "FlipCard";
|
|
25847
26100
|
}
|
|
25848
26101
|
});
|
|
26102
|
+
function pascalToKebab(name) {
|
|
26103
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").toLowerCase();
|
|
26104
|
+
}
|
|
26105
|
+
function kebabToPascal3(name) {
|
|
26106
|
+
return name.split("-").map((part) => /^\d+$/.test(part) ? part : part.charAt(0).toUpperCase() + part.slice(1)).join("");
|
|
26107
|
+
}
|
|
26108
|
+
var ICON_ITEMS, IconPicker;
|
|
26109
|
+
var init_IconPicker = __esm({
|
|
26110
|
+
"components/core/molecules/IconPicker.tsx"() {
|
|
26111
|
+
"use client";
|
|
26112
|
+
init_Icon();
|
|
26113
|
+
init_GridPicker();
|
|
26114
|
+
ICON_ITEMS = (() => {
|
|
26115
|
+
const items = [];
|
|
26116
|
+
for (const [exportName, candidate] of Object.entries(LucideIcons2)) {
|
|
26117
|
+
if (!/^[A-Z]/.test(exportName)) continue;
|
|
26118
|
+
if (exportName.endsWith("Icon")) continue;
|
|
26119
|
+
if (exportName.startsWith("Lucide")) continue;
|
|
26120
|
+
const isComponent = candidate !== null && (typeof candidate === "object" || typeof candidate === "function") && "$$typeof" in candidate;
|
|
26121
|
+
if (!isComponent) continue;
|
|
26122
|
+
const kebab = pascalToKebab(exportName);
|
|
26123
|
+
if (kebabToPascal3(kebab) !== exportName) continue;
|
|
26124
|
+
items.push({ id: kebab, label: kebab, category: "icons" });
|
|
26125
|
+
}
|
|
26126
|
+
return items;
|
|
26127
|
+
})();
|
|
26128
|
+
IconPicker = ({ value, onChange, className }) => {
|
|
26129
|
+
const items = useMemo(() => ICON_ITEMS, []);
|
|
26130
|
+
return /* @__PURE__ */ jsx(
|
|
26131
|
+
GridPicker,
|
|
26132
|
+
{
|
|
26133
|
+
items,
|
|
26134
|
+
value,
|
|
26135
|
+
onChange,
|
|
26136
|
+
searchPlaceholder: "Search icons\u2026",
|
|
26137
|
+
renderThumbnail: (it) => /* @__PURE__ */ jsx(Icon, { name: it.id }),
|
|
26138
|
+
cellSize: 32,
|
|
26139
|
+
className
|
|
26140
|
+
}
|
|
26141
|
+
);
|
|
26142
|
+
};
|
|
26143
|
+
IconPicker.displayName = "IconPicker";
|
|
26144
|
+
}
|
|
26145
|
+
});
|
|
25849
26146
|
function toISODate(d) {
|
|
25850
26147
|
return d.toISOString().slice(0, 10);
|
|
25851
26148
|
}
|
|
@@ -26290,7 +26587,7 @@ function InventoryGrid({
|
|
|
26290
26587
|
const eventBus = useEventBus();
|
|
26291
26588
|
const slotCount = totalSlots ?? items.length;
|
|
26292
26589
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
26293
|
-
const handleSelect =
|
|
26590
|
+
const handleSelect = React88.useCallback(
|
|
26294
26591
|
(id) => {
|
|
26295
26592
|
onSelect?.(id);
|
|
26296
26593
|
if (selectEvent) {
|
|
@@ -26507,31 +26804,31 @@ function GameCanvas2D({
|
|
|
26507
26804
|
assetBaseUrl = "",
|
|
26508
26805
|
className
|
|
26509
26806
|
}) {
|
|
26510
|
-
const canvasRef =
|
|
26511
|
-
const rafRef =
|
|
26512
|
-
const frameRef =
|
|
26513
|
-
const lastTimeRef =
|
|
26514
|
-
const imageCache =
|
|
26807
|
+
const canvasRef = React88.useRef(null);
|
|
26808
|
+
const rafRef = React88.useRef(0);
|
|
26809
|
+
const frameRef = React88.useRef(0);
|
|
26810
|
+
const lastTimeRef = React88.useRef(0);
|
|
26811
|
+
const imageCache = React88.useRef(/* @__PURE__ */ new Map());
|
|
26515
26812
|
const emit = useEmitEvent();
|
|
26516
|
-
const onDrawRef =
|
|
26813
|
+
const onDrawRef = React88.useRef(onDraw);
|
|
26517
26814
|
onDrawRef.current = onDraw;
|
|
26518
|
-
const onTickRef =
|
|
26815
|
+
const onTickRef = React88.useRef(onTick);
|
|
26519
26816
|
onTickRef.current = onTick;
|
|
26520
|
-
const tickEventRef =
|
|
26817
|
+
const tickEventRef = React88.useRef(tickEvent);
|
|
26521
26818
|
tickEventRef.current = tickEvent;
|
|
26522
|
-
const drawEventRef =
|
|
26819
|
+
const drawEventRef = React88.useRef(drawEvent);
|
|
26523
26820
|
drawEventRef.current = drawEvent;
|
|
26524
|
-
const emitRef =
|
|
26821
|
+
const emitRef = React88.useRef(emit);
|
|
26525
26822
|
emitRef.current = emit;
|
|
26526
|
-
const assetBaseUrlRef =
|
|
26823
|
+
const assetBaseUrlRef = React88.useRef(assetBaseUrl);
|
|
26527
26824
|
assetBaseUrlRef.current = assetBaseUrl;
|
|
26528
|
-
const backgroundImageRef =
|
|
26825
|
+
const backgroundImageRef = React88.useRef(backgroundImage);
|
|
26529
26826
|
backgroundImageRef.current = backgroundImage;
|
|
26530
|
-
const widthRef =
|
|
26827
|
+
const widthRef = React88.useRef(width);
|
|
26531
26828
|
widthRef.current = width;
|
|
26532
|
-
const heightRef =
|
|
26829
|
+
const heightRef = React88.useRef(height);
|
|
26533
26830
|
heightRef.current = height;
|
|
26534
|
-
const loadImage =
|
|
26831
|
+
const loadImage = React88.useCallback((url) => {
|
|
26535
26832
|
const fullUrl = url.startsWith("http") ? url : `${assetBaseUrlRef.current}${url}`;
|
|
26536
26833
|
const cached = imageCache.current.get(fullUrl);
|
|
26537
26834
|
if (cached?.complete && cached.naturalWidth > 0) return cached;
|
|
@@ -26543,7 +26840,7 @@ function GameCanvas2D({
|
|
|
26543
26840
|
}
|
|
26544
26841
|
return null;
|
|
26545
26842
|
}, []);
|
|
26546
|
-
|
|
26843
|
+
React88.useEffect(() => {
|
|
26547
26844
|
const canvas = canvasRef.current;
|
|
26548
26845
|
if (!canvas) return;
|
|
26549
26846
|
const ctx = canvas.getContext("2d");
|
|
@@ -26846,7 +27143,7 @@ function TurnPanel({
|
|
|
26846
27143
|
className
|
|
26847
27144
|
}) {
|
|
26848
27145
|
const eventBus = useEventBus();
|
|
26849
|
-
const handleAction =
|
|
27146
|
+
const handleAction = React88.useCallback(
|
|
26850
27147
|
(event) => {
|
|
26851
27148
|
if (event) {
|
|
26852
27149
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -26992,7 +27289,7 @@ function UnitCommandBar({
|
|
|
26992
27289
|
className
|
|
26993
27290
|
}) {
|
|
26994
27291
|
const eventBus = useEventBus();
|
|
26995
|
-
const handleCommand =
|
|
27292
|
+
const handleCommand = React88.useCallback(
|
|
26996
27293
|
(event) => {
|
|
26997
27294
|
if (event) {
|
|
26998
27295
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -27477,7 +27774,7 @@ function GameMenu({
|
|
|
27477
27774
|
} catch {
|
|
27478
27775
|
}
|
|
27479
27776
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
27480
|
-
const handleOptionClick =
|
|
27777
|
+
const handleOptionClick = React88.useCallback(
|
|
27481
27778
|
(option) => {
|
|
27482
27779
|
if (option.event && eventBus) {
|
|
27483
27780
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -27591,7 +27888,7 @@ function GameOverScreen({
|
|
|
27591
27888
|
} catch {
|
|
27592
27889
|
}
|
|
27593
27890
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
27594
|
-
const handleActionClick =
|
|
27891
|
+
const handleActionClick = React88.useCallback(
|
|
27595
27892
|
(action) => {
|
|
27596
27893
|
if (action.event && eventBus) {
|
|
27597
27894
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -29068,8 +29365,8 @@ function TableView({
|
|
|
29068
29365
|
}) {
|
|
29069
29366
|
const eventBus = useEventBus();
|
|
29070
29367
|
const { t } = useTranslate();
|
|
29071
|
-
const [visibleCount, setVisibleCount] =
|
|
29072
|
-
const [localSelected, setLocalSelected] =
|
|
29368
|
+
const [visibleCount, setVisibleCount] = React88__default.useState(pageSize > 0 ? pageSize : Infinity);
|
|
29369
|
+
const [localSelected, setLocalSelected] = React88__default.useState(/* @__PURE__ */ new Set());
|
|
29073
29370
|
const colDefs = columns ?? fields ?? [];
|
|
29074
29371
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
29075
29372
|
const dnd = useDataDnd({
|
|
@@ -29264,12 +29561,12 @@ function TableView({
|
|
|
29264
29561
|
]
|
|
29265
29562
|
}
|
|
29266
29563
|
);
|
|
29267
|
-
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(
|
|
29564
|
+
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React88__default.Fragment, { children: rowInner }, id);
|
|
29268
29565
|
};
|
|
29269
29566
|
const items = data.map((row) => row);
|
|
29270
29567
|
const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
|
|
29271
29568
|
let runningIndex = 0;
|
|
29272
|
-
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
29569
|
+
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
29273
29570
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
|
|
29274
29571
|
group.items.map((row) => renderRow(row, runningIndex++))
|
|
29275
29572
|
] }, gi)) });
|
|
@@ -30621,7 +30918,7 @@ var init_StepFlow = __esm({
|
|
|
30621
30918
|
className
|
|
30622
30919
|
}) => {
|
|
30623
30920
|
if (orientation === "vertical") {
|
|
30624
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
30921
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React88__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
30625
30922
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
30626
30923
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
30627
30924
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -30632,7 +30929,7 @@ var init_StepFlow = __esm({
|
|
|
30632
30929
|
] })
|
|
30633
30930
|
] }) }, index)) });
|
|
30634
30931
|
}
|
|
30635
|
-
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(
|
|
30932
|
+
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(React88__default.Fragment, { children: [
|
|
30636
30933
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
30637
30934
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
30638
30935
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -31608,7 +31905,7 @@ var init_LikertScale = __esm({
|
|
|
31608
31905
|
md: "text-base",
|
|
31609
31906
|
lg: "text-lg"
|
|
31610
31907
|
};
|
|
31611
|
-
LikertScale =
|
|
31908
|
+
LikertScale = React88__default.forwardRef(
|
|
31612
31909
|
({
|
|
31613
31910
|
question,
|
|
31614
31911
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -31620,7 +31917,7 @@ var init_LikertScale = __esm({
|
|
|
31620
31917
|
variant = "radios",
|
|
31621
31918
|
className
|
|
31622
31919
|
}, ref) => {
|
|
31623
|
-
const groupId =
|
|
31920
|
+
const groupId = React88__default.useId();
|
|
31624
31921
|
const eventBus = useEventBus();
|
|
31625
31922
|
const handleSelect = useCallback(
|
|
31626
31923
|
(next) => {
|
|
@@ -33928,7 +34225,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
33928
34225
|
"aria-label": t("aria.breadcrumb"),
|
|
33929
34226
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
33930
34227
|
const isLast = idx === items.length - 1;
|
|
33931
|
-
return /* @__PURE__ */ jsxs(
|
|
34228
|
+
return /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
33932
34229
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
33933
34230
|
Icon,
|
|
33934
34231
|
{
|
|
@@ -34539,7 +34836,7 @@ var init_GradientDivider = __esm({
|
|
|
34539
34836
|
});
|
|
34540
34837
|
var MarketingFooter;
|
|
34541
34838
|
var init_MarketingFooter = __esm({
|
|
34542
|
-
"components/
|
|
34839
|
+
"components/marketing/molecules/MarketingFooter.tsx"() {
|
|
34543
34840
|
"use client";
|
|
34544
34841
|
init_cn();
|
|
34545
34842
|
init_Box();
|
|
@@ -34609,7 +34906,7 @@ var init_MarketingFooter = __esm({
|
|
|
34609
34906
|
});
|
|
34610
34907
|
var PullQuote;
|
|
34611
34908
|
var init_PullQuote = __esm({
|
|
34612
|
-
"components/
|
|
34909
|
+
"components/marketing/molecules/PullQuote.tsx"() {
|
|
34613
34910
|
"use client";
|
|
34614
34911
|
init_cn();
|
|
34615
34912
|
init_Box();
|
|
@@ -34892,7 +35189,7 @@ var init_MiniStateMachine = __esm({
|
|
|
34892
35189
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
34893
35190
|
const tc = transitionCounts[s.name] ?? 0;
|
|
34894
35191
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
34895
|
-
return /* @__PURE__ */ jsxs(
|
|
35192
|
+
return /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
34896
35193
|
/* @__PURE__ */ jsx(
|
|
34897
35194
|
AvlState,
|
|
34898
35195
|
{
|
|
@@ -35096,7 +35393,7 @@ var init_PageHeader = __esm({
|
|
|
35096
35393
|
info: "bg-info/10 text-info"
|
|
35097
35394
|
};
|
|
35098
35395
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
35099
|
-
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(
|
|
35396
|
+
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(React88__default.Fragment, { children: [
|
|
35100
35397
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
35101
35398
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
35102
35399
|
"a",
|
|
@@ -35183,6 +35480,271 @@ var init_PageHeader = __esm({
|
|
|
35183
35480
|
PageHeader.displayName = "PageHeader";
|
|
35184
35481
|
}
|
|
35185
35482
|
});
|
|
35483
|
+
var FormSection, FormLayout, FormActions;
|
|
35484
|
+
var init_FormSection = __esm({
|
|
35485
|
+
"components/core/molecules/FormSection.tsx"() {
|
|
35486
|
+
"use client";
|
|
35487
|
+
init_cn();
|
|
35488
|
+
init_atoms2();
|
|
35489
|
+
init_Box();
|
|
35490
|
+
init_Typography();
|
|
35491
|
+
init_Button();
|
|
35492
|
+
init_Stack();
|
|
35493
|
+
init_Icon();
|
|
35494
|
+
init_useEventBus();
|
|
35495
|
+
FormSection = ({
|
|
35496
|
+
title,
|
|
35497
|
+
description,
|
|
35498
|
+
children,
|
|
35499
|
+
collapsible = false,
|
|
35500
|
+
defaultCollapsed = false,
|
|
35501
|
+
card = false,
|
|
35502
|
+
columns = 1,
|
|
35503
|
+
className
|
|
35504
|
+
}) => {
|
|
35505
|
+
const [collapsed, setCollapsed] = React88__default.useState(defaultCollapsed);
|
|
35506
|
+
const { t } = useTranslate();
|
|
35507
|
+
const eventBus = useEventBus();
|
|
35508
|
+
const gridClass = {
|
|
35509
|
+
1: "grid-cols-1",
|
|
35510
|
+
2: "grid-cols-1 md:grid-cols-2",
|
|
35511
|
+
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
35512
|
+
}[columns];
|
|
35513
|
+
React88__default.useCallback(() => {
|
|
35514
|
+
if (collapsible) {
|
|
35515
|
+
setCollapsed((prev) => !prev);
|
|
35516
|
+
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
35517
|
+
}
|
|
35518
|
+
}, [collapsible, collapsed, eventBus]);
|
|
35519
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
35520
|
+
(title || description) && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "mb-4", children: [
|
|
35521
|
+
title && /* @__PURE__ */ jsxs(
|
|
35522
|
+
HStack,
|
|
35523
|
+
{
|
|
35524
|
+
justify: "between",
|
|
35525
|
+
align: "center",
|
|
35526
|
+
className: cn(collapsible && "cursor-pointer"),
|
|
35527
|
+
action: collapsible ? "TOGGLE_COLLAPSE" : void 0,
|
|
35528
|
+
children: [
|
|
35529
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h3", weight: "semibold", children: title }),
|
|
35530
|
+
collapsible && /* @__PURE__ */ jsx(
|
|
35531
|
+
Button,
|
|
35532
|
+
{
|
|
35533
|
+
variant: "ghost",
|
|
35534
|
+
size: "sm",
|
|
35535
|
+
action: "TOGGLE_COLLAPSE",
|
|
35536
|
+
children: /* @__PURE__ */ jsx(
|
|
35537
|
+
Icon,
|
|
35538
|
+
{
|
|
35539
|
+
icon: ChevronDown,
|
|
35540
|
+
size: "sm",
|
|
35541
|
+
className: cn(
|
|
35542
|
+
"text-muted-foreground transition-transform",
|
|
35543
|
+
collapsed && "rotate-180"
|
|
35544
|
+
)
|
|
35545
|
+
}
|
|
35546
|
+
)
|
|
35547
|
+
}
|
|
35548
|
+
)
|
|
35549
|
+
]
|
|
35550
|
+
}
|
|
35551
|
+
),
|
|
35552
|
+
description && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", children: description })
|
|
35553
|
+
] }),
|
|
35554
|
+
(!collapsible || !collapsed) && /* @__PURE__ */ jsx(Box, { className: cn("grid gap-4", gridClass), children })
|
|
35555
|
+
] });
|
|
35556
|
+
if (card) {
|
|
35557
|
+
return /* @__PURE__ */ jsx(Card, { className: cn("p-6", className), children: content });
|
|
35558
|
+
}
|
|
35559
|
+
return /* @__PURE__ */ jsx(Box, { className, children: content });
|
|
35560
|
+
};
|
|
35561
|
+
FormSection.displayName = "FormSection";
|
|
35562
|
+
FormLayout = ({
|
|
35563
|
+
children,
|
|
35564
|
+
dividers = true,
|
|
35565
|
+
className
|
|
35566
|
+
}) => {
|
|
35567
|
+
return /* @__PURE__ */ jsx(
|
|
35568
|
+
VStack,
|
|
35569
|
+
{
|
|
35570
|
+
gap: "lg",
|
|
35571
|
+
className: cn(
|
|
35572
|
+
dividers && "[&>*+*]:pt-8 [&>*+*]:border-t [&>*+*]:border-border",
|
|
35573
|
+
className
|
|
35574
|
+
),
|
|
35575
|
+
children
|
|
35576
|
+
}
|
|
35577
|
+
);
|
|
35578
|
+
};
|
|
35579
|
+
FormLayout.displayName = "FormLayout";
|
|
35580
|
+
FormActions = ({
|
|
35581
|
+
children,
|
|
35582
|
+
sticky = false,
|
|
35583
|
+
align = "right",
|
|
35584
|
+
className
|
|
35585
|
+
}) => {
|
|
35586
|
+
const alignClass2 = {
|
|
35587
|
+
left: "justify-start",
|
|
35588
|
+
right: "justify-end",
|
|
35589
|
+
between: "justify-between",
|
|
35590
|
+
center: "justify-center"
|
|
35591
|
+
}[align];
|
|
35592
|
+
return /* @__PURE__ */ jsx(
|
|
35593
|
+
HStack,
|
|
35594
|
+
{
|
|
35595
|
+
gap: "sm",
|
|
35596
|
+
align: "center",
|
|
35597
|
+
className: cn(
|
|
35598
|
+
"pt-6 border-t border-border",
|
|
35599
|
+
alignClass2,
|
|
35600
|
+
sticky && "sticky bottom-0 bg-card py-4 -mx-6 px-6 shadow-[0_-4px_6px_-1px_rgb(0,0,0,0.05)]",
|
|
35601
|
+
className
|
|
35602
|
+
),
|
|
35603
|
+
children
|
|
35604
|
+
}
|
|
35605
|
+
);
|
|
35606
|
+
};
|
|
35607
|
+
FormActions.displayName = "FormActions";
|
|
35608
|
+
}
|
|
35609
|
+
});
|
|
35610
|
+
function currentValue(decl, override) {
|
|
35611
|
+
return override !== void 0 ? override : decl.default;
|
|
35612
|
+
}
|
|
35613
|
+
function TextLikeControl({
|
|
35614
|
+
field,
|
|
35615
|
+
numeric,
|
|
35616
|
+
value,
|
|
35617
|
+
onCommit
|
|
35618
|
+
}) {
|
|
35619
|
+
const initial = value === void 0 || value === null ? "" : String(value);
|
|
35620
|
+
const [draft, setDraft] = React88__default.useState(initial);
|
|
35621
|
+
React88__default.useEffect(() => setDraft(initial), [initial]);
|
|
35622
|
+
const commit = () => {
|
|
35623
|
+
if (numeric) {
|
|
35624
|
+
const n = draft.trim() === "" ? 0 : Number(draft);
|
|
35625
|
+
onCommit(field, Number.isNaN(n) ? 0 : n);
|
|
35626
|
+
} else {
|
|
35627
|
+
onCommit(field, draft);
|
|
35628
|
+
}
|
|
35629
|
+
};
|
|
35630
|
+
return /* @__PURE__ */ jsx(
|
|
35631
|
+
Input,
|
|
35632
|
+
{
|
|
35633
|
+
inputType: numeric ? "number" : "text",
|
|
35634
|
+
value: draft,
|
|
35635
|
+
onChange: (e) => setDraft(e.target.value),
|
|
35636
|
+
onBlur: commit,
|
|
35637
|
+
onKeyDown: (e) => {
|
|
35638
|
+
if (e.key === "Enter") commit();
|
|
35639
|
+
}
|
|
35640
|
+
}
|
|
35641
|
+
);
|
|
35642
|
+
}
|
|
35643
|
+
function FieldControl({
|
|
35644
|
+
name,
|
|
35645
|
+
decl,
|
|
35646
|
+
value,
|
|
35647
|
+
onChange,
|
|
35648
|
+
assets
|
|
35649
|
+
}) {
|
|
35650
|
+
let control;
|
|
35651
|
+
const stringValue = typeof value === "string" ? value : void 0;
|
|
35652
|
+
if (decl.type === "icon") {
|
|
35653
|
+
control = /* @__PURE__ */ jsx(IconPicker, { value: stringValue, onChange: (icon) => onChange(name, icon) });
|
|
35654
|
+
} else if (decl.type === "asset") {
|
|
35655
|
+
control = /* @__PURE__ */ jsx(
|
|
35656
|
+
AssetPicker,
|
|
35657
|
+
{
|
|
35658
|
+
assets: assets ?? [],
|
|
35659
|
+
value: stringValue,
|
|
35660
|
+
onChange: (url) => onChange(name, url)
|
|
35661
|
+
}
|
|
35662
|
+
);
|
|
35663
|
+
} else if (decl.type === "boolean") {
|
|
35664
|
+
control = /* @__PURE__ */ jsx(Switch, { checked: value === true, onChange: (c) => onChange(name, c) });
|
|
35665
|
+
} else if (decl.type === "string" && decl.values !== void 0 && decl.values.length > 0) {
|
|
35666
|
+
control = /* @__PURE__ */ jsx(
|
|
35667
|
+
Select,
|
|
35668
|
+
{
|
|
35669
|
+
options: decl.values.map((v) => ({ value: v, label: v })),
|
|
35670
|
+
value: typeof value === "string" ? value : "",
|
|
35671
|
+
onChange: (e) => onChange(name, e.target.value)
|
|
35672
|
+
}
|
|
35673
|
+
);
|
|
35674
|
+
} else if (decl.type === "number") {
|
|
35675
|
+
control = /* @__PURE__ */ jsx(TextLikeControl, { field: name, numeric: true, value, onCommit: onChange });
|
|
35676
|
+
} else if (decl.type === "string") {
|
|
35677
|
+
control = /* @__PURE__ */ jsx(TextLikeControl, { field: name, numeric: false, value, onCommit: onChange });
|
|
35678
|
+
} else {
|
|
35679
|
+
control = /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "muted", children: [
|
|
35680
|
+
decl.type,
|
|
35681
|
+
" \u2014 edit in source"
|
|
35682
|
+
] });
|
|
35683
|
+
}
|
|
35684
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
35685
|
+
/* @__PURE__ */ jsx(Typography, { variant: "label", children: decl.label ?? name }),
|
|
35686
|
+
control,
|
|
35687
|
+
decl.description !== void 0 && decl.description !== "" && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: decl.description })
|
|
35688
|
+
] });
|
|
35689
|
+
}
|
|
35690
|
+
var TIER_ORDER, PropertyInspector;
|
|
35691
|
+
var init_PropertyInspector = __esm({
|
|
35692
|
+
"components/core/molecules/PropertyInspector.tsx"() {
|
|
35693
|
+
"use client";
|
|
35694
|
+
init_cn();
|
|
35695
|
+
init_Stack();
|
|
35696
|
+
init_Typography();
|
|
35697
|
+
init_Button();
|
|
35698
|
+
init_Switch();
|
|
35699
|
+
init_Select();
|
|
35700
|
+
init_Input();
|
|
35701
|
+
init_FormSection();
|
|
35702
|
+
init_IconPicker();
|
|
35703
|
+
init_AssetPicker();
|
|
35704
|
+
TIER_ORDER = ["presentation", "domain", "policy", "infra", "internal"];
|
|
35705
|
+
PropertyInspector = ({
|
|
35706
|
+
config,
|
|
35707
|
+
values,
|
|
35708
|
+
onChange,
|
|
35709
|
+
onReset,
|
|
35710
|
+
title,
|
|
35711
|
+
className,
|
|
35712
|
+
assets
|
|
35713
|
+
}) => {
|
|
35714
|
+
const fields = Object.entries(config);
|
|
35715
|
+
const byTier = /* @__PURE__ */ new Map();
|
|
35716
|
+
for (const [name, decl] of fields) {
|
|
35717
|
+
const tier = decl.tier ?? "presentation";
|
|
35718
|
+
const arr = byTier.get(tier) ?? [];
|
|
35719
|
+
arr.push([name, decl]);
|
|
35720
|
+
byTier.set(tier, arr);
|
|
35721
|
+
}
|
|
35722
|
+
const tiers = [...byTier.keys()].sort((a, b) => {
|
|
35723
|
+
const ia = TIER_ORDER.indexOf(a);
|
|
35724
|
+
const ib = TIER_ORDER.indexOf(b);
|
|
35725
|
+
return (ia === -1 ? 99 : ia) - (ib === -1 ? 99 : ib);
|
|
35726
|
+
});
|
|
35727
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("w-full", className), children: [
|
|
35728
|
+
/* @__PURE__ */ jsxs(HStack, { justify: "between", align: "center", children: [
|
|
35729
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", weight: "bold", children: title ?? "Config" }),
|
|
35730
|
+
onReset !== void 0 && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", icon: "rotate-ccw", label: "Reset", onClick: onReset })
|
|
35731
|
+
] }),
|
|
35732
|
+
fields.length === 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: "No configurable properties." }),
|
|
35733
|
+
tiers.map((tier) => /* @__PURE__ */ jsx(FormSection, { title: tier, collapsible: true, defaultCollapsed: tier !== "presentation", children: /* @__PURE__ */ jsx(VStack, { gap: "sm", children: byTier.get(tier)?.map(([name, decl]) => /* @__PURE__ */ jsx(
|
|
35734
|
+
FieldControl,
|
|
35735
|
+
{
|
|
35736
|
+
name,
|
|
35737
|
+
decl,
|
|
35738
|
+
value: currentValue(decl, values?.[name]),
|
|
35739
|
+
onChange,
|
|
35740
|
+
assets
|
|
35741
|
+
},
|
|
35742
|
+
name
|
|
35743
|
+
)) }) }, tier))
|
|
35744
|
+
] });
|
|
35745
|
+
};
|
|
35746
|
+
}
|
|
35747
|
+
});
|
|
35186
35748
|
var lookStyles8, Header;
|
|
35187
35749
|
var init_Header = __esm({
|
|
35188
35750
|
"components/core/molecules/Header.tsx"() {
|
|
@@ -35833,7 +36395,7 @@ var init_WizardContainer = __esm({
|
|
|
35833
36395
|
const isCompleted = index < currentStep;
|
|
35834
36396
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
35835
36397
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
35836
|
-
return /* @__PURE__ */ jsxs(
|
|
36398
|
+
return /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
35837
36399
|
/* @__PURE__ */ jsx(
|
|
35838
36400
|
Button,
|
|
35839
36401
|
{
|
|
@@ -38118,7 +38680,7 @@ var init_DetailPanel = __esm({
|
|
|
38118
38680
|
}
|
|
38119
38681
|
});
|
|
38120
38682
|
function extractTitle(children) {
|
|
38121
|
-
if (!
|
|
38683
|
+
if (!React88__default.isValidElement(children)) return void 0;
|
|
38122
38684
|
const props = children.props;
|
|
38123
38685
|
if (typeof props.title === "string") {
|
|
38124
38686
|
return props.title;
|
|
@@ -38173,7 +38735,7 @@ function LinearView({
|
|
|
38173
38735
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
38174
38736
|
const isDone = i < currentIdx;
|
|
38175
38737
|
const isCurrent = i === currentIdx;
|
|
38176
|
-
return /* @__PURE__ */ jsxs(
|
|
38738
|
+
return /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
38177
38739
|
i > 0 && /* @__PURE__ */ jsx(
|
|
38178
38740
|
Typography,
|
|
38179
38741
|
{
|
|
@@ -38883,7 +39445,7 @@ var init_FeatureDetailPageTemplate = __esm({
|
|
|
38883
39445
|
});
|
|
38884
39446
|
var FeatureGridOrganism;
|
|
38885
39447
|
var init_FeatureGridOrganism = __esm({
|
|
38886
|
-
"components/
|
|
39448
|
+
"components/marketing/organisms/FeatureGridOrganism.tsx"() {
|
|
38887
39449
|
"use client";
|
|
38888
39450
|
init_cn();
|
|
38889
39451
|
init_useEventBus();
|
|
@@ -39131,12 +39693,12 @@ var init_Form = __esm({
|
|
|
39131
39693
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
39132
39694
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
39133
39695
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
39134
|
-
const normalizedInitialData =
|
|
39696
|
+
const normalizedInitialData = React88__default.useMemo(() => {
|
|
39135
39697
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
39136
39698
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
39137
39699
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
39138
39700
|
}, [entity, initialData]);
|
|
39139
|
-
const entityDerivedFields =
|
|
39701
|
+
const entityDerivedFields = React88__default.useMemo(() => {
|
|
39140
39702
|
if (fields && fields.length > 0) return void 0;
|
|
39141
39703
|
if (!resolvedEntity) return void 0;
|
|
39142
39704
|
return resolvedEntity.fields.map(
|
|
@@ -39156,16 +39718,16 @@ var init_Form = __esm({
|
|
|
39156
39718
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
39157
39719
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
39158
39720
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
39159
|
-
const [formData, setFormData] =
|
|
39721
|
+
const [formData, setFormData] = React88__default.useState(
|
|
39160
39722
|
normalizedInitialData
|
|
39161
39723
|
);
|
|
39162
|
-
const [collapsedSections, setCollapsedSections] =
|
|
39724
|
+
const [collapsedSections, setCollapsedSections] = React88__default.useState(
|
|
39163
39725
|
/* @__PURE__ */ new Set()
|
|
39164
39726
|
);
|
|
39165
|
-
const [submitError, setSubmitError] =
|
|
39166
|
-
const formRef =
|
|
39727
|
+
const [submitError, setSubmitError] = React88__default.useState(null);
|
|
39728
|
+
const formRef = React88__default.useRef(null);
|
|
39167
39729
|
const formMode = props.mode;
|
|
39168
|
-
const mountedRef =
|
|
39730
|
+
const mountedRef = React88__default.useRef(false);
|
|
39169
39731
|
if (!mountedRef.current) {
|
|
39170
39732
|
mountedRef.current = true;
|
|
39171
39733
|
debug("forms", "mount", {
|
|
@@ -39178,7 +39740,7 @@ var init_Form = __esm({
|
|
|
39178
39740
|
});
|
|
39179
39741
|
}
|
|
39180
39742
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
39181
|
-
const evalContext =
|
|
39743
|
+
const evalContext = React88__default.useMemo(
|
|
39182
39744
|
() => ({
|
|
39183
39745
|
formValues: formData,
|
|
39184
39746
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -39187,7 +39749,7 @@ var init_Form = __esm({
|
|
|
39187
39749
|
}),
|
|
39188
39750
|
[formData, externalContext]
|
|
39189
39751
|
);
|
|
39190
|
-
|
|
39752
|
+
React88__default.useEffect(() => {
|
|
39191
39753
|
debug("forms", "initialData-sync", {
|
|
39192
39754
|
mode: formMode,
|
|
39193
39755
|
normalizedInitialData,
|
|
@@ -39198,7 +39760,7 @@ var init_Form = __esm({
|
|
|
39198
39760
|
setFormData(normalizedInitialData);
|
|
39199
39761
|
}
|
|
39200
39762
|
}, [normalizedInitialData]);
|
|
39201
|
-
const processCalculations =
|
|
39763
|
+
const processCalculations = React88__default.useCallback(
|
|
39202
39764
|
(changedFieldId, newFormData) => {
|
|
39203
39765
|
if (!hiddenCalculations.length) return;
|
|
39204
39766
|
const context = {
|
|
@@ -39223,7 +39785,7 @@ var init_Form = __esm({
|
|
|
39223
39785
|
},
|
|
39224
39786
|
[hiddenCalculations, externalContext, eventBus]
|
|
39225
39787
|
);
|
|
39226
|
-
const checkViolations =
|
|
39788
|
+
const checkViolations = React88__default.useCallback(
|
|
39227
39789
|
(changedFieldId, newFormData) => {
|
|
39228
39790
|
if (!violationTriggers.length) return;
|
|
39229
39791
|
const context = {
|
|
@@ -39261,7 +39823,7 @@ var init_Form = __esm({
|
|
|
39261
39823
|
processCalculations(name, newFormData);
|
|
39262
39824
|
checkViolations(name, newFormData);
|
|
39263
39825
|
};
|
|
39264
|
-
const isFieldVisible =
|
|
39826
|
+
const isFieldVisible = React88__default.useCallback(
|
|
39265
39827
|
(fieldName) => {
|
|
39266
39828
|
const condition = conditionalFields[fieldName];
|
|
39267
39829
|
if (!condition) return true;
|
|
@@ -39269,7 +39831,7 @@ var init_Form = __esm({
|
|
|
39269
39831
|
},
|
|
39270
39832
|
[conditionalFields, evalContext]
|
|
39271
39833
|
);
|
|
39272
|
-
const isSectionVisible =
|
|
39834
|
+
const isSectionVisible = React88__default.useCallback(
|
|
39273
39835
|
(section) => {
|
|
39274
39836
|
if (!section.condition) return true;
|
|
39275
39837
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -39345,7 +39907,7 @@ var init_Form = __esm({
|
|
|
39345
39907
|
eventBus.emit(`UI:${onCancel}`);
|
|
39346
39908
|
}
|
|
39347
39909
|
};
|
|
39348
|
-
const renderField =
|
|
39910
|
+
const renderField = React88__default.useCallback(
|
|
39349
39911
|
(field) => {
|
|
39350
39912
|
const fieldName = field.name || field.field;
|
|
39351
39913
|
if (!fieldName) return null;
|
|
@@ -39354,19 +39916,19 @@ var init_Form = __esm({
|
|
|
39354
39916
|
}
|
|
39355
39917
|
const inputType = determineInputType(field);
|
|
39356
39918
|
const label = field.label || fieldName.charAt(0).toUpperCase() + fieldName.slice(1).replace(/([A-Z])/g, " $1");
|
|
39357
|
-
const
|
|
39919
|
+
const currentValue2 = formData[fieldName] ?? field.defaultValue ?? "";
|
|
39358
39920
|
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", "data-field": fieldName, children: [
|
|
39359
39921
|
inputType !== "checkbox" && /* @__PURE__ */ jsxs(Typography, { as: "label", variant: "label", weight: "bold", children: [
|
|
39360
39922
|
label,
|
|
39361
39923
|
field.required && /* @__PURE__ */ jsx(Typography, { as: "span", color: "error", className: "ml-1", children: "*" })
|
|
39362
39924
|
] }),
|
|
39363
|
-
renderFieldInput(field, fieldName, inputType,
|
|
39925
|
+
renderFieldInput(field, fieldName, inputType, currentValue2, label)
|
|
39364
39926
|
] }, fieldName);
|
|
39365
39927
|
},
|
|
39366
39928
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
39367
39929
|
);
|
|
39368
39930
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
39369
|
-
const normalizedFields =
|
|
39931
|
+
const normalizedFields = React88__default.useMemo(() => {
|
|
39370
39932
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
39371
39933
|
return effectiveFields.map((field) => {
|
|
39372
39934
|
if (typeof field === "string") {
|
|
@@ -39389,7 +39951,7 @@ var init_Form = __esm({
|
|
|
39389
39951
|
return field;
|
|
39390
39952
|
});
|
|
39391
39953
|
}, [effectiveFields, resolvedEntity]);
|
|
39392
|
-
const schemaFields =
|
|
39954
|
+
const schemaFields = React88__default.useMemo(() => {
|
|
39393
39955
|
if (normalizedFields.length === 0) return null;
|
|
39394
39956
|
if (isDebugEnabled()) {
|
|
39395
39957
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -39399,7 +39961,7 @@ var init_Form = __esm({
|
|
|
39399
39961
|
}
|
|
39400
39962
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
39401
39963
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
39402
|
-
const sectionElements =
|
|
39964
|
+
const sectionElements = React88__default.useMemo(() => {
|
|
39403
39965
|
if (!sections || sections.length === 0) return null;
|
|
39404
39966
|
return sections.map((section) => {
|
|
39405
39967
|
if (!isSectionVisible(section)) {
|
|
@@ -39435,7 +39997,7 @@ var init_Form = __esm({
|
|
|
39435
39997
|
] }, section.id);
|
|
39436
39998
|
}).filter(Boolean);
|
|
39437
39999
|
}, [sections, isSectionVisible, collapsedSections, renderField, gap]);
|
|
39438
|
-
function renderFieldInput(field, fieldName, inputType,
|
|
40000
|
+
function renderFieldInput(field, fieldName, inputType, currentValue2, label) {
|
|
39439
40001
|
const commonProps = {
|
|
39440
40002
|
id: fieldName,
|
|
39441
40003
|
name: fieldName,
|
|
@@ -39452,7 +40014,7 @@ var init_Form = __esm({
|
|
|
39452
40014
|
{
|
|
39453
40015
|
...commonProps,
|
|
39454
40016
|
label: label + (field.required ? " *" : ""),
|
|
39455
|
-
checked: Boolean(
|
|
40017
|
+
checked: Boolean(currentValue2),
|
|
39456
40018
|
onChange: (e) => handleChange(fieldName, e.target.checked)
|
|
39457
40019
|
}
|
|
39458
40020
|
);
|
|
@@ -39461,7 +40023,7 @@ var init_Form = __esm({
|
|
|
39461
40023
|
Textarea,
|
|
39462
40024
|
{
|
|
39463
40025
|
...commonProps,
|
|
39464
|
-
value: String(
|
|
40026
|
+
value: String(currentValue2),
|
|
39465
40027
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39466
40028
|
minLength: field.min,
|
|
39467
40029
|
maxLength: field.max
|
|
@@ -39474,7 +40036,7 @@ var init_Form = __esm({
|
|
|
39474
40036
|
{
|
|
39475
40037
|
...commonProps,
|
|
39476
40038
|
options,
|
|
39477
|
-
value: String(
|
|
40039
|
+
value: String(currentValue2),
|
|
39478
40040
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39479
40041
|
placeholder: field.placeholder || `Select ${label}...`
|
|
39480
40042
|
}
|
|
@@ -39487,7 +40049,7 @@ var init_Form = __esm({
|
|
|
39487
40049
|
RelationSelect,
|
|
39488
40050
|
{
|
|
39489
40051
|
...commonProps,
|
|
39490
|
-
value:
|
|
40052
|
+
value: currentValue2 ? String(currentValue2) : void 0,
|
|
39491
40053
|
onChange: (value) => handleChange(fieldName, value),
|
|
39492
40054
|
options: relationOptions,
|
|
39493
40055
|
isLoading: relationLoading,
|
|
@@ -39503,7 +40065,7 @@ var init_Form = __esm({
|
|
|
39503
40065
|
{
|
|
39504
40066
|
...commonProps,
|
|
39505
40067
|
type: "number",
|
|
39506
|
-
value:
|
|
40068
|
+
value: currentValue2 !== void 0 && currentValue2 !== "" ? String(currentValue2) : "",
|
|
39507
40069
|
onChange: (e) => handleChange(
|
|
39508
40070
|
fieldName,
|
|
39509
40071
|
e.target.value ? Number(e.target.value) : void 0
|
|
@@ -39518,7 +40080,7 @@ var init_Form = __esm({
|
|
|
39518
40080
|
{
|
|
39519
40081
|
...commonProps,
|
|
39520
40082
|
type: "date",
|
|
39521
|
-
value: formatDateValue(
|
|
40083
|
+
value: formatDateValue(currentValue2),
|
|
39522
40084
|
onChange: (e) => handleChange(fieldName, e.target.value)
|
|
39523
40085
|
}
|
|
39524
40086
|
);
|
|
@@ -39528,7 +40090,7 @@ var init_Form = __esm({
|
|
|
39528
40090
|
{
|
|
39529
40091
|
...commonProps,
|
|
39530
40092
|
type: "datetime-local",
|
|
39531
|
-
value: formatDateTimeValue(
|
|
40093
|
+
value: formatDateTimeValue(currentValue2),
|
|
39532
40094
|
onChange: (e) => handleChange(fieldName, e.target.value)
|
|
39533
40095
|
}
|
|
39534
40096
|
);
|
|
@@ -39538,7 +40100,7 @@ var init_Form = __esm({
|
|
|
39538
40100
|
{
|
|
39539
40101
|
...commonProps,
|
|
39540
40102
|
type: "email",
|
|
39541
|
-
value: String(
|
|
40103
|
+
value: String(currentValue2),
|
|
39542
40104
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39543
40105
|
minLength: field.min,
|
|
39544
40106
|
maxLength: field.max
|
|
@@ -39550,7 +40112,7 @@ var init_Form = __esm({
|
|
|
39550
40112
|
{
|
|
39551
40113
|
...commonProps,
|
|
39552
40114
|
type: "url",
|
|
39553
|
-
value: String(
|
|
40115
|
+
value: String(currentValue2),
|
|
39554
40116
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39555
40117
|
minLength: field.min,
|
|
39556
40118
|
maxLength: field.max
|
|
@@ -39562,7 +40124,7 @@ var init_Form = __esm({
|
|
|
39562
40124
|
{
|
|
39563
40125
|
...commonProps,
|
|
39564
40126
|
type: "password",
|
|
39565
|
-
value: String(
|
|
40127
|
+
value: String(currentValue2),
|
|
39566
40128
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39567
40129
|
minLength: field.min,
|
|
39568
40130
|
maxLength: field.max
|
|
@@ -39575,7 +40137,7 @@ var init_Form = __esm({
|
|
|
39575
40137
|
{
|
|
39576
40138
|
...commonProps,
|
|
39577
40139
|
type: "text",
|
|
39578
|
-
value: String(
|
|
40140
|
+
value: String(currentValue2),
|
|
39579
40141
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
39580
40142
|
minLength: field.min,
|
|
39581
40143
|
maxLength: field.max
|
|
@@ -40230,7 +40792,7 @@ var init_GenericAppTemplate = __esm({
|
|
|
40230
40792
|
});
|
|
40231
40793
|
var HeroOrganism, _HeroClickInterceptor;
|
|
40232
40794
|
var init_HeroOrganism = __esm({
|
|
40233
|
-
"components/
|
|
40795
|
+
"components/marketing/organisms/HeroOrganism.tsx"() {
|
|
40234
40796
|
"use client";
|
|
40235
40797
|
init_cn();
|
|
40236
40798
|
init_useEventBus();
|
|
@@ -40674,7 +41236,7 @@ var init_List = __esm({
|
|
|
40674
41236
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
40675
41237
|
return [];
|
|
40676
41238
|
}, [entity]);
|
|
40677
|
-
const getItemActions =
|
|
41239
|
+
const getItemActions = React88__default.useCallback(
|
|
40678
41240
|
(item) => {
|
|
40679
41241
|
if (!itemActions) return [];
|
|
40680
41242
|
if (typeof itemActions === "function") {
|
|
@@ -41150,7 +41712,7 @@ var init_MediaGallery = __esm({
|
|
|
41150
41712
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
41151
41713
|
);
|
|
41152
41714
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
41153
|
-
const items =
|
|
41715
|
+
const items = React88__default.useMemo(() => {
|
|
41154
41716
|
if (propItems) return propItems;
|
|
41155
41717
|
if (entityData.length === 0) return [];
|
|
41156
41718
|
return entityData.map((record, idx) => ({
|
|
@@ -41311,7 +41873,7 @@ var init_MediaGallery = __esm({
|
|
|
41311
41873
|
}
|
|
41312
41874
|
});
|
|
41313
41875
|
function extractTitle2(children) {
|
|
41314
|
-
if (!
|
|
41876
|
+
if (!React88__default.isValidElement(children)) return void 0;
|
|
41315
41877
|
const props = children.props;
|
|
41316
41878
|
if (typeof props.title === "string") {
|
|
41317
41879
|
return props.title;
|
|
@@ -41742,7 +42304,7 @@ var init_debugRegistry = __esm({
|
|
|
41742
42304
|
}
|
|
41743
42305
|
});
|
|
41744
42306
|
function useDebugData() {
|
|
41745
|
-
const [data, setData] =
|
|
42307
|
+
const [data, setData] = React88.useState(() => ({
|
|
41746
42308
|
traits: [],
|
|
41747
42309
|
ticks: [],
|
|
41748
42310
|
guards: [],
|
|
@@ -41756,7 +42318,7 @@ function useDebugData() {
|
|
|
41756
42318
|
},
|
|
41757
42319
|
lastUpdate: Date.now()
|
|
41758
42320
|
}));
|
|
41759
|
-
|
|
42321
|
+
React88.useEffect(() => {
|
|
41760
42322
|
const updateData = () => {
|
|
41761
42323
|
setData({
|
|
41762
42324
|
traits: getAllTraits(),
|
|
@@ -41865,12 +42427,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
41865
42427
|
return positions;
|
|
41866
42428
|
}
|
|
41867
42429
|
function WalkMinimap() {
|
|
41868
|
-
const [walkStep, setWalkStep] =
|
|
41869
|
-
const [traits2, setTraits] =
|
|
41870
|
-
const [coveredEdges, setCoveredEdges] =
|
|
41871
|
-
const [completedTraits, setCompletedTraits] =
|
|
41872
|
-
const prevTraitRef =
|
|
41873
|
-
|
|
42430
|
+
const [walkStep, setWalkStep] = React88.useState(null);
|
|
42431
|
+
const [traits2, setTraits] = React88.useState([]);
|
|
42432
|
+
const [coveredEdges, setCoveredEdges] = React88.useState([]);
|
|
42433
|
+
const [completedTraits, setCompletedTraits] = React88.useState(/* @__PURE__ */ new Set());
|
|
42434
|
+
const prevTraitRef = React88.useRef(null);
|
|
42435
|
+
React88.useEffect(() => {
|
|
41874
42436
|
const interval = setInterval(() => {
|
|
41875
42437
|
const w = window;
|
|
41876
42438
|
const step = w.__orbitalWalkStep;
|
|
@@ -42306,15 +42868,15 @@ var init_EntitiesTab = __esm({
|
|
|
42306
42868
|
});
|
|
42307
42869
|
function EventFlowTab({ events: events2 }) {
|
|
42308
42870
|
const { t } = useTranslate();
|
|
42309
|
-
const [filter, setFilter] =
|
|
42310
|
-
const containerRef =
|
|
42311
|
-
const [autoScroll, setAutoScroll] =
|
|
42312
|
-
|
|
42871
|
+
const [filter, setFilter] = React88.useState("all");
|
|
42872
|
+
const containerRef = React88.useRef(null);
|
|
42873
|
+
const [autoScroll, setAutoScroll] = React88.useState(true);
|
|
42874
|
+
React88.useEffect(() => {
|
|
42313
42875
|
if (autoScroll && containerRef.current) {
|
|
42314
42876
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
42315
42877
|
}
|
|
42316
42878
|
}, [events2.length, autoScroll]);
|
|
42317
|
-
const filteredEvents =
|
|
42879
|
+
const filteredEvents = React88.useMemo(() => {
|
|
42318
42880
|
if (filter === "all") return events2;
|
|
42319
42881
|
return events2.filter((e) => e.type === filter);
|
|
42320
42882
|
}, [events2, filter]);
|
|
@@ -42430,7 +42992,7 @@ var init_EventFlowTab = __esm({
|
|
|
42430
42992
|
});
|
|
42431
42993
|
function GuardsPanel({ guards }) {
|
|
42432
42994
|
const { t } = useTranslate();
|
|
42433
|
-
const [filter, setFilter] =
|
|
42995
|
+
const [filter, setFilter] = React88.useState("all");
|
|
42434
42996
|
if (guards.length === 0) {
|
|
42435
42997
|
return /* @__PURE__ */ jsx(
|
|
42436
42998
|
EmptyState,
|
|
@@ -42443,7 +43005,7 @@ function GuardsPanel({ guards }) {
|
|
|
42443
43005
|
}
|
|
42444
43006
|
const passedCount = guards.filter((g) => g.result).length;
|
|
42445
43007
|
const failedCount = guards.length - passedCount;
|
|
42446
|
-
const filteredGuards =
|
|
43008
|
+
const filteredGuards = React88.useMemo(() => {
|
|
42447
43009
|
if (filter === "all") return guards;
|
|
42448
43010
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
42449
43011
|
return guards.filter((g) => !g.result);
|
|
@@ -42606,10 +43168,10 @@ function EffectBadge({ effect }) {
|
|
|
42606
43168
|
}
|
|
42607
43169
|
function TransitionTimeline({ transitions }) {
|
|
42608
43170
|
const { t } = useTranslate();
|
|
42609
|
-
const containerRef =
|
|
42610
|
-
const [autoScroll, setAutoScroll] =
|
|
42611
|
-
const [expandedId, setExpandedId] =
|
|
42612
|
-
|
|
43171
|
+
const containerRef = React88.useRef(null);
|
|
43172
|
+
const [autoScroll, setAutoScroll] = React88.useState(true);
|
|
43173
|
+
const [expandedId, setExpandedId] = React88.useState(null);
|
|
43174
|
+
React88.useEffect(() => {
|
|
42613
43175
|
if (autoScroll && containerRef.current) {
|
|
42614
43176
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
42615
43177
|
}
|
|
@@ -42889,9 +43451,9 @@ function getAllEvents(traits2) {
|
|
|
42889
43451
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
42890
43452
|
const eventBus = useEventBus();
|
|
42891
43453
|
const { t } = useTranslate();
|
|
42892
|
-
const [log12, setLog] =
|
|
42893
|
-
const prevStatesRef =
|
|
42894
|
-
|
|
43454
|
+
const [log12, setLog] = React88.useState([]);
|
|
43455
|
+
const prevStatesRef = React88.useRef(/* @__PURE__ */ new Map());
|
|
43456
|
+
React88.useEffect(() => {
|
|
42895
43457
|
for (const trait of traits2) {
|
|
42896
43458
|
const prev = prevStatesRef.current.get(trait.id);
|
|
42897
43459
|
if (prev && prev !== trait.currentState) {
|
|
@@ -43060,10 +43622,10 @@ function VerifyModePanel({
|
|
|
43060
43622
|
localCount
|
|
43061
43623
|
}) {
|
|
43062
43624
|
const { t } = useTranslate();
|
|
43063
|
-
const [expanded, setExpanded] =
|
|
43064
|
-
const scrollRef =
|
|
43065
|
-
const prevCountRef =
|
|
43066
|
-
|
|
43625
|
+
const [expanded, setExpanded] = React88.useState(true);
|
|
43626
|
+
const scrollRef = React88.useRef(null);
|
|
43627
|
+
const prevCountRef = React88.useRef(0);
|
|
43628
|
+
React88.useEffect(() => {
|
|
43067
43629
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
43068
43630
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
43069
43631
|
}
|
|
@@ -43120,10 +43682,10 @@ function RuntimeDebugger({
|
|
|
43120
43682
|
schema
|
|
43121
43683
|
}) {
|
|
43122
43684
|
const { t } = useTranslate();
|
|
43123
|
-
const [isCollapsed, setIsCollapsed] =
|
|
43124
|
-
const [isVisible, setIsVisible] =
|
|
43685
|
+
const [isCollapsed, setIsCollapsed] = React88.useState(mode === "verify" ? true : defaultCollapsed);
|
|
43686
|
+
const [isVisible, setIsVisible] = React88.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
43125
43687
|
const debugData = useDebugData();
|
|
43126
|
-
|
|
43688
|
+
React88.useEffect(() => {
|
|
43127
43689
|
if (mode === "inline") return;
|
|
43128
43690
|
return onDebugToggle((enabled) => {
|
|
43129
43691
|
setIsVisible(enabled);
|
|
@@ -43132,7 +43694,7 @@ function RuntimeDebugger({
|
|
|
43132
43694
|
}
|
|
43133
43695
|
});
|
|
43134
43696
|
}, [mode]);
|
|
43135
|
-
|
|
43697
|
+
React88.useEffect(() => {
|
|
43136
43698
|
if (mode === "inline") return;
|
|
43137
43699
|
const handleKeyDown = (e) => {
|
|
43138
43700
|
if (e.key === "`" && isVisible) {
|
|
@@ -43581,7 +44143,7 @@ function SequenceBar({
|
|
|
43581
44143
|
onSlotRemove(index);
|
|
43582
44144
|
}, [onSlotRemove, playing]);
|
|
43583
44145
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
43584
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
44146
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React88__default.Fragment, { children: [
|
|
43585
44147
|
i > 0 && /* @__PURE__ */ jsx(
|
|
43586
44148
|
Typography,
|
|
43587
44149
|
{
|
|
@@ -43857,7 +44419,7 @@ var init_SequencerBoard = __esm({
|
|
|
43857
44419
|
});
|
|
43858
44420
|
var ShowcaseOrganism;
|
|
43859
44421
|
var init_ShowcaseOrganism = __esm({
|
|
43860
|
-
"components/
|
|
44422
|
+
"components/marketing/organisms/ShowcaseOrganism.tsx"() {
|
|
43861
44423
|
"use client";
|
|
43862
44424
|
init_cn();
|
|
43863
44425
|
init_useEventBus();
|
|
@@ -44539,7 +45101,7 @@ var init_StatCard = __esm({
|
|
|
44539
45101
|
title: propTitle,
|
|
44540
45102
|
value: propValue,
|
|
44541
45103
|
previousValue,
|
|
44542
|
-
currentValue,
|
|
45104
|
+
currentValue: currentValue2,
|
|
44543
45105
|
trend: manualTrend,
|
|
44544
45106
|
trendDirection: manualDirection,
|
|
44545
45107
|
invertTrend = false,
|
|
@@ -44560,7 +45122,7 @@ var init_StatCard = __esm({
|
|
|
44560
45122
|
const labelToUse = propLabel ?? propTitle;
|
|
44561
45123
|
const eventBus = useEventBus();
|
|
44562
45124
|
const { t } = useTranslate();
|
|
44563
|
-
const handleActionClick =
|
|
45125
|
+
const handleActionClick = React88__default.useCallback(() => {
|
|
44564
45126
|
if (action?.event) {
|
|
44565
45127
|
eventBus.emit(`UI:${action.event}`, {});
|
|
44566
45128
|
}
|
|
@@ -44571,7 +45133,7 @@ var init_StatCard = __esm({
|
|
|
44571
45133
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
44572
45134
|
const isLoading = externalLoading ?? false;
|
|
44573
45135
|
const error = externalError;
|
|
44574
|
-
const computeMetricValue =
|
|
45136
|
+
const computeMetricValue = React88__default.useCallback(
|
|
44575
45137
|
(metric, items) => {
|
|
44576
45138
|
if (metric.value !== void 0) {
|
|
44577
45139
|
return metric.value;
|
|
@@ -44610,7 +45172,7 @@ var init_StatCard = __esm({
|
|
|
44610
45172
|
},
|
|
44611
45173
|
[]
|
|
44612
45174
|
);
|
|
44613
|
-
const schemaStats =
|
|
45175
|
+
const schemaStats = React88__default.useMemo(() => {
|
|
44614
45176
|
if (!metrics || metrics.length === 0) return null;
|
|
44615
45177
|
return metrics.map((metric) => ({
|
|
44616
45178
|
label: metric.label,
|
|
@@ -44618,13 +45180,13 @@ var init_StatCard = __esm({
|
|
|
44618
45180
|
format: metric.format
|
|
44619
45181
|
}));
|
|
44620
45182
|
}, [metrics, data, computeMetricValue]);
|
|
44621
|
-
const calculatedTrend =
|
|
45183
|
+
const calculatedTrend = React88__default.useMemo(() => {
|
|
44622
45184
|
if (manualTrend !== void 0) return manualTrend;
|
|
44623
|
-
if (previousValue === void 0 ||
|
|
45185
|
+
if (previousValue === void 0 || currentValue2 === void 0)
|
|
44624
45186
|
return void 0;
|
|
44625
|
-
if (previousValue === 0) return
|
|
44626
|
-
return (
|
|
44627
|
-
}, [manualTrend, previousValue,
|
|
45187
|
+
if (previousValue === 0) return currentValue2 > 0 ? 100 : 0;
|
|
45188
|
+
return (currentValue2 - previousValue) / previousValue * 100;
|
|
45189
|
+
}, [manualTrend, previousValue, currentValue2]);
|
|
44628
45190
|
if (schemaStats && schemaStats.length > 1) {
|
|
44629
45191
|
if (isLoading) {
|
|
44630
45192
|
return /* @__PURE__ */ jsx(
|
|
@@ -45282,7 +45844,7 @@ var init_StatsOrganism = __esm({
|
|
|
45282
45844
|
});
|
|
45283
45845
|
var StepFlowOrganism;
|
|
45284
45846
|
var init_StepFlowOrganism = __esm({
|
|
45285
|
-
"components/
|
|
45847
|
+
"components/marketing/organisms/StepFlowOrganism.tsx"() {
|
|
45286
45848
|
"use client";
|
|
45287
45849
|
init_cn();
|
|
45288
45850
|
init_Stack();
|
|
@@ -45552,7 +46114,7 @@ var init_Timeline = __esm({
|
|
|
45552
46114
|
}) => {
|
|
45553
46115
|
const { t } = useTranslate();
|
|
45554
46116
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
45555
|
-
const items =
|
|
46117
|
+
const items = React88__default.useMemo(() => {
|
|
45556
46118
|
if (propItems) return propItems;
|
|
45557
46119
|
if (entityData.length === 0) return [];
|
|
45558
46120
|
return entityData.map((record, idx) => {
|
|
@@ -45659,7 +46221,7 @@ var init_Timeline = __esm({
|
|
|
45659
46221
|
}
|
|
45660
46222
|
});
|
|
45661
46223
|
function extractToastProps(children) {
|
|
45662
|
-
if (!
|
|
46224
|
+
if (!React88__default.isValidElement(children)) {
|
|
45663
46225
|
if (typeof children === "string") {
|
|
45664
46226
|
return { message: children };
|
|
45665
46227
|
}
|
|
@@ -45697,7 +46259,7 @@ var init_ToastSlot = __esm({
|
|
|
45697
46259
|
eventBus.emit("UI:CLOSE");
|
|
45698
46260
|
};
|
|
45699
46261
|
if (!isVisible) return null;
|
|
45700
|
-
const isCustomContent =
|
|
46262
|
+
const isCustomContent = React88__default.isValidElement(children) && !message;
|
|
45701
46263
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
45702
46264
|
Toast,
|
|
45703
46265
|
{
|
|
@@ -46207,12 +46769,12 @@ var init_WorldMapTemplate = __esm({
|
|
|
46207
46769
|
}
|
|
46208
46770
|
});
|
|
46209
46771
|
function lazyThree(name, loader) {
|
|
46210
|
-
const Lazy =
|
|
46772
|
+
const Lazy = React88__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
46211
46773
|
function ThreeWrapper(props) {
|
|
46212
|
-
return
|
|
46213
|
-
|
|
46774
|
+
return React88__default.createElement(
|
|
46775
|
+
React88__default.Suspense,
|
|
46214
46776
|
{ fallback: null },
|
|
46215
|
-
|
|
46777
|
+
React88__default.createElement(Lazy, props)
|
|
46216
46778
|
);
|
|
46217
46779
|
}
|
|
46218
46780
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -46232,6 +46794,7 @@ var init_component_registry_generated = __esm({
|
|
|
46232
46794
|
init_AnimatedReveal();
|
|
46233
46795
|
init_ArticleSection();
|
|
46234
46796
|
init_Aside();
|
|
46797
|
+
init_AssetPicker();
|
|
46235
46798
|
init_AuthLayout();
|
|
46236
46799
|
init_BattleBoard();
|
|
46237
46800
|
init_BattleTemplate();
|
|
@@ -46331,11 +46894,13 @@ var init_component_registry_generated = __esm({
|
|
|
46331
46894
|
init_GradientDivider();
|
|
46332
46895
|
init_GraphCanvas();
|
|
46333
46896
|
init_GraphView();
|
|
46897
|
+
init_GridPicker();
|
|
46334
46898
|
init_Header();
|
|
46335
46899
|
init_HealthBar();
|
|
46336
46900
|
init_HealthPanel();
|
|
46337
46901
|
init_HeroOrganism();
|
|
46338
46902
|
init_HeroSection();
|
|
46903
|
+
init_IconPicker();
|
|
46339
46904
|
init_InfiniteScrollSentinel();
|
|
46340
46905
|
init_InputGroup();
|
|
46341
46906
|
init_InstallBox();
|
|
@@ -46380,6 +46945,7 @@ var init_component_registry_generated = __esm({
|
|
|
46380
46945
|
init_PricingOrganism();
|
|
46381
46946
|
init_PricingPageTemplate();
|
|
46382
46947
|
init_ProgressDots();
|
|
46948
|
+
init_PropertyInspector();
|
|
46383
46949
|
init_PullQuote();
|
|
46384
46950
|
init_PullToRefresh();
|
|
46385
46951
|
init_QrScanner();
|
|
@@ -46503,6 +47069,7 @@ var init_component_registry_generated = __esm({
|
|
|
46503
47069
|
"AnimatedReveal": AnimatedReveal,
|
|
46504
47070
|
"ArticleSection": ArticleSection,
|
|
46505
47071
|
"Aside": Aside,
|
|
47072
|
+
"AssetPicker": AssetPicker,
|
|
46506
47073
|
"AuthLayout": AuthLayout,
|
|
46507
47074
|
"Avatar": AvatarPattern,
|
|
46508
47075
|
"AvatarPattern": AvatarPattern,
|
|
@@ -46622,6 +47189,7 @@ var init_component_registry_generated = __esm({
|
|
|
46622
47189
|
"GraphView": GraphView,
|
|
46623
47190
|
"Grid": GridPattern,
|
|
46624
47191
|
"GridPattern": GridPattern,
|
|
47192
|
+
"GridPicker": GridPicker,
|
|
46625
47193
|
"HStack": HStackPattern,
|
|
46626
47194
|
"HStackPattern": HStackPattern,
|
|
46627
47195
|
"Header": Header,
|
|
@@ -46631,6 +47199,7 @@ var init_component_registry_generated = __esm({
|
|
|
46631
47199
|
"HeroSection": HeroSection,
|
|
46632
47200
|
"Icon": IconPattern,
|
|
46633
47201
|
"IconPattern": IconPattern,
|
|
47202
|
+
"IconPicker": IconPicker,
|
|
46634
47203
|
"InfiniteScrollSentinel": InfiniteScrollSentinel,
|
|
46635
47204
|
"Input": InputPattern,
|
|
46636
47205
|
"InputGroup": InputGroup,
|
|
@@ -46687,6 +47256,7 @@ var init_component_registry_generated = __esm({
|
|
|
46687
47256
|
"ProgressBar": ProgressBarPattern,
|
|
46688
47257
|
"ProgressBarPattern": ProgressBarPattern,
|
|
46689
47258
|
"ProgressDots": ProgressDots,
|
|
47259
|
+
"PropertyInspector": PropertyInspector,
|
|
46690
47260
|
"PullQuote": PullQuote,
|
|
46691
47261
|
"PullToRefresh": PullToRefresh,
|
|
46692
47262
|
"QrScanner": QrScanner,
|
|
@@ -46828,7 +47398,7 @@ function SuspenseConfigProvider({
|
|
|
46828
47398
|
config,
|
|
46829
47399
|
children
|
|
46830
47400
|
}) {
|
|
46831
|
-
return
|
|
47401
|
+
return React88__default.createElement(
|
|
46832
47402
|
SuspenseConfigContext.Provider,
|
|
46833
47403
|
{ value: config },
|
|
46834
47404
|
children
|
|
@@ -47318,7 +47888,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
47318
47888
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
47319
47889
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
47320
47890
|
}
|
|
47321
|
-
return /* @__PURE__ */ jsx(
|
|
47891
|
+
return /* @__PURE__ */ jsx(React88__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
47322
47892
|
}
|
|
47323
47893
|
if (!child || typeof child !== "object") return null;
|
|
47324
47894
|
const childId = `${parentId}-${index}`;
|
|
@@ -47358,14 +47928,14 @@ function isPatternConfig(value) {
|
|
|
47358
47928
|
if (value === null || value === void 0) return false;
|
|
47359
47929
|
if (typeof value !== "object") return false;
|
|
47360
47930
|
if (Array.isArray(value)) return false;
|
|
47361
|
-
if (
|
|
47931
|
+
if (React88__default.isValidElement(value)) return false;
|
|
47362
47932
|
if (value instanceof Date) return false;
|
|
47363
47933
|
if (typeof value === "function") return false;
|
|
47364
47934
|
const record = value;
|
|
47365
47935
|
return "type" in record && typeof record.type === "string";
|
|
47366
47936
|
}
|
|
47367
47937
|
function isPlainConfigObject(value) {
|
|
47368
|
-
if (
|
|
47938
|
+
if (React88__default.isValidElement(value)) return false;
|
|
47369
47939
|
if (value instanceof Date) return false;
|
|
47370
47940
|
const proto = Object.getPrototypeOf(value);
|
|
47371
47941
|
return proto === Object.prototype || proto === null;
|
|
@@ -47775,7 +48345,7 @@ function resolveLambdaBindings(body, params, item, index) {
|
|
|
47775
48345
|
if (Array.isArray(body)) {
|
|
47776
48346
|
return body.map((b) => recur(b));
|
|
47777
48347
|
}
|
|
47778
|
-
if (body !== null && typeof body === "object" && !
|
|
48348
|
+
if (body !== null && typeof body === "object" && !React88__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
47779
48349
|
const out = {};
|
|
47780
48350
|
for (const [k, v] of Object.entries(body)) {
|
|
47781
48351
|
out[k] = recur(v);
|
|
@@ -47794,7 +48364,7 @@ function getSlotContentRenderer2() {
|
|
|
47794
48364
|
function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
47795
48365
|
return (item, index) => {
|
|
47796
48366
|
const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
|
|
47797
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
48367
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React88__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
47798
48368
|
return null;
|
|
47799
48369
|
}
|
|
47800
48370
|
const record = resolvedBody;
|
|
@@ -47813,7 +48383,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
|
47813
48383
|
props: childProps,
|
|
47814
48384
|
priority: 0
|
|
47815
48385
|
};
|
|
47816
|
-
return
|
|
48386
|
+
return React88__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
47817
48387
|
};
|
|
47818
48388
|
}
|
|
47819
48389
|
function convertNode(node, callerKey) {
|
|
@@ -47832,7 +48402,7 @@ function convertNode(node, callerKey) {
|
|
|
47832
48402
|
});
|
|
47833
48403
|
return anyChanged ? mapped : node;
|
|
47834
48404
|
}
|
|
47835
|
-
if (typeof node === "object" && !
|
|
48405
|
+
if (typeof node === "object" && !React88__default.isValidElement(node) && !(node instanceof Date)) {
|
|
47836
48406
|
return convertObjectProps(node);
|
|
47837
48407
|
}
|
|
47838
48408
|
return node;
|