@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/avl/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React97 from 'react';
|
|
3
|
+
import React97__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId } from 'react';
|
|
4
4
|
import { OrbitalProvider, EventBusContext, useTraitScope, VerificationProvider, TraitScopeProvider } from '@almadar/ui/providers';
|
|
5
5
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
6
6
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
@@ -3509,7 +3509,7 @@ var init_Box = __esm({
|
|
|
3509
3509
|
fixed: "fixed",
|
|
3510
3510
|
sticky: "sticky"
|
|
3511
3511
|
};
|
|
3512
|
-
Box =
|
|
3512
|
+
Box = React97__default.forwardRef(
|
|
3513
3513
|
({
|
|
3514
3514
|
padding,
|
|
3515
3515
|
paddingX,
|
|
@@ -3559,7 +3559,7 @@ var init_Box = __esm({
|
|
|
3559
3559
|
onMouseLeave?.(e);
|
|
3560
3560
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
3561
3561
|
const isClickable = action || onClick;
|
|
3562
|
-
return
|
|
3562
|
+
return React97__default.createElement(
|
|
3563
3563
|
Component,
|
|
3564
3564
|
{
|
|
3565
3565
|
ref,
|
|
@@ -4149,7 +4149,7 @@ var init_MiniStateMachine = __esm({
|
|
|
4149
4149
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
4150
4150
|
const tc = transitionCounts[s.name] ?? 0;
|
|
4151
4151
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
4152
|
-
return /* @__PURE__ */ jsxs(
|
|
4152
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
4153
4153
|
/* @__PURE__ */ jsx(
|
|
4154
4154
|
AvlState,
|
|
4155
4155
|
{
|
|
@@ -5212,7 +5212,7 @@ var init_Icon = __esm({
|
|
|
5212
5212
|
const directIcon = typeof icon === "string" ? void 0 : icon;
|
|
5213
5213
|
const effectiveName = typeof icon === "string" ? icon : name;
|
|
5214
5214
|
const family = useIconFamily();
|
|
5215
|
-
const RenderedComponent =
|
|
5215
|
+
const RenderedComponent = React97__default.useMemo(() => {
|
|
5216
5216
|
if (directIcon) return null;
|
|
5217
5217
|
return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
|
|
5218
5218
|
}, [directIcon, effectiveName, family]);
|
|
@@ -5270,7 +5270,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
5270
5270
|
const IconComp = value;
|
|
5271
5271
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5272
5272
|
}
|
|
5273
|
-
if (
|
|
5273
|
+
if (React97__default.isValidElement(value)) {
|
|
5274
5274
|
return value;
|
|
5275
5275
|
}
|
|
5276
5276
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5346,7 +5346,7 @@ var init_Button = __esm({
|
|
|
5346
5346
|
md: "h-icon-default w-icon-default",
|
|
5347
5347
|
lg: "h-icon-default w-icon-default"
|
|
5348
5348
|
};
|
|
5349
|
-
Button =
|
|
5349
|
+
Button = React97__default.forwardRef(
|
|
5350
5350
|
({
|
|
5351
5351
|
className,
|
|
5352
5352
|
variant = "primary",
|
|
@@ -5411,7 +5411,7 @@ var Dialog;
|
|
|
5411
5411
|
var init_Dialog = __esm({
|
|
5412
5412
|
"components/core/atoms/Dialog.tsx"() {
|
|
5413
5413
|
init_cn();
|
|
5414
|
-
Dialog =
|
|
5414
|
+
Dialog = React97__default.forwardRef(
|
|
5415
5415
|
({
|
|
5416
5416
|
role = "dialog",
|
|
5417
5417
|
"aria-modal": ariaModal = true,
|
|
@@ -5914,7 +5914,7 @@ var init_Badge = __esm({
|
|
|
5914
5914
|
md: "px-2.5 py-1 text-sm",
|
|
5915
5915
|
lg: "px-3 py-1.5 text-base"
|
|
5916
5916
|
};
|
|
5917
|
-
Badge =
|
|
5917
|
+
Badge = React97__default.forwardRef(
|
|
5918
5918
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
5919
5919
|
const iconSizes3 = {
|
|
5920
5920
|
sm: "h-icon-default w-icon-default",
|
|
@@ -6230,7 +6230,7 @@ var init_SvgFlow = __esm({
|
|
|
6230
6230
|
opacity = 1,
|
|
6231
6231
|
className
|
|
6232
6232
|
}) => {
|
|
6233
|
-
const markerId =
|
|
6233
|
+
const markerId = React97__default.useMemo(() => {
|
|
6234
6234
|
flowIdCounter += 1;
|
|
6235
6235
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
6236
6236
|
}, []);
|
|
@@ -6773,7 +6773,7 @@ var init_SvgRing = __esm({
|
|
|
6773
6773
|
className,
|
|
6774
6774
|
label
|
|
6775
6775
|
}) => {
|
|
6776
|
-
const gradientId =
|
|
6776
|
+
const gradientId = React97__default.useMemo(() => {
|
|
6777
6777
|
ringIdCounter += 1;
|
|
6778
6778
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
6779
6779
|
}, []);
|
|
@@ -6935,7 +6935,7 @@ var init_Input = __esm({
|
|
|
6935
6935
|
"components/core/atoms/Input.tsx"() {
|
|
6936
6936
|
init_cn();
|
|
6937
6937
|
init_Icon();
|
|
6938
|
-
Input =
|
|
6938
|
+
Input = React97__default.forwardRef(
|
|
6939
6939
|
({
|
|
6940
6940
|
className,
|
|
6941
6941
|
inputType,
|
|
@@ -7056,7 +7056,7 @@ var Label;
|
|
|
7056
7056
|
var init_Label = __esm({
|
|
7057
7057
|
"components/core/atoms/Label.tsx"() {
|
|
7058
7058
|
init_cn();
|
|
7059
|
-
Label =
|
|
7059
|
+
Label = React97__default.forwardRef(
|
|
7060
7060
|
({ className, required, children, ...props }, ref) => {
|
|
7061
7061
|
return /* @__PURE__ */ jsxs(
|
|
7062
7062
|
"label",
|
|
@@ -7082,7 +7082,7 @@ var Textarea;
|
|
|
7082
7082
|
var init_Textarea = __esm({
|
|
7083
7083
|
"components/core/atoms/Textarea.tsx"() {
|
|
7084
7084
|
init_cn();
|
|
7085
|
-
Textarea =
|
|
7085
|
+
Textarea = React97__default.forwardRef(
|
|
7086
7086
|
({ className, error, ...props }, ref) => {
|
|
7087
7087
|
return /* @__PURE__ */ jsx(
|
|
7088
7088
|
"textarea",
|
|
@@ -7112,7 +7112,7 @@ var init_Select = __esm({
|
|
|
7112
7112
|
"components/core/atoms/Select.tsx"() {
|
|
7113
7113
|
init_cn();
|
|
7114
7114
|
init_Icon();
|
|
7115
|
-
Select =
|
|
7115
|
+
Select = React97__default.forwardRef(
|
|
7116
7116
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
7117
7117
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
7118
7118
|
/* @__PURE__ */ jsxs(
|
|
@@ -7154,7 +7154,7 @@ var Checkbox;
|
|
|
7154
7154
|
var init_Checkbox = __esm({
|
|
7155
7155
|
"components/core/atoms/Checkbox.tsx"() {
|
|
7156
7156
|
init_cn();
|
|
7157
|
-
Checkbox =
|
|
7157
|
+
Checkbox = React97__default.forwardRef(
|
|
7158
7158
|
({ className, label, id, ...props }, ref) => {
|
|
7159
7159
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
7160
7160
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -7245,7 +7245,7 @@ var init_Card = __esm({
|
|
|
7245
7245
|
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
7246
7246
|
"tile-image-first": "p-0 overflow-hidden"
|
|
7247
7247
|
};
|
|
7248
|
-
Card =
|
|
7248
|
+
Card = React97__default.forwardRef(
|
|
7249
7249
|
({
|
|
7250
7250
|
className,
|
|
7251
7251
|
variant = "bordered",
|
|
@@ -7283,9 +7283,9 @@ var init_Card = __esm({
|
|
|
7283
7283
|
}
|
|
7284
7284
|
);
|
|
7285
7285
|
Card.displayName = "Card";
|
|
7286
|
-
CardHeader =
|
|
7286
|
+
CardHeader = React97__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
7287
7287
|
CardHeader.displayName = "CardHeader";
|
|
7288
|
-
CardTitle =
|
|
7288
|
+
CardTitle = React97__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7289
7289
|
"h3",
|
|
7290
7290
|
{
|
|
7291
7291
|
ref,
|
|
@@ -7298,11 +7298,11 @@ var init_Card = __esm({
|
|
|
7298
7298
|
}
|
|
7299
7299
|
));
|
|
7300
7300
|
CardTitle.displayName = "CardTitle";
|
|
7301
|
-
CardContent =
|
|
7301
|
+
CardContent = React97__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
7302
7302
|
CardContent.displayName = "CardContent";
|
|
7303
7303
|
CardBody = CardContent;
|
|
7304
7304
|
CardBody.displayName = "CardBody";
|
|
7305
|
-
CardFooter =
|
|
7305
|
+
CardFooter = React97__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7306
7306
|
"div",
|
|
7307
7307
|
{
|
|
7308
7308
|
ref,
|
|
@@ -7357,7 +7357,7 @@ var init_FilterPill = __esm({
|
|
|
7357
7357
|
md: "w-3.5 h-3.5",
|
|
7358
7358
|
lg: "w-4 h-4"
|
|
7359
7359
|
};
|
|
7360
|
-
FilterPill =
|
|
7360
|
+
FilterPill = React97__default.forwardRef(
|
|
7361
7361
|
({
|
|
7362
7362
|
className,
|
|
7363
7363
|
variant = "default",
|
|
@@ -7434,7 +7434,7 @@ var init_Spinner = __esm({
|
|
|
7434
7434
|
md: "h-6 w-6",
|
|
7435
7435
|
lg: "h-8 w-8"
|
|
7436
7436
|
};
|
|
7437
|
-
Spinner =
|
|
7437
|
+
Spinner = React97__default.forwardRef(
|
|
7438
7438
|
({ className, size = "md", ...props }, ref) => {
|
|
7439
7439
|
return /* @__PURE__ */ jsx(
|
|
7440
7440
|
"div",
|
|
@@ -7513,8 +7513,8 @@ var init_Avatar = __esm({
|
|
|
7513
7513
|
actionPayload
|
|
7514
7514
|
}) => {
|
|
7515
7515
|
const eventBus = useEventBus();
|
|
7516
|
-
const [imgFailed, setImgFailed] =
|
|
7517
|
-
|
|
7516
|
+
const [imgFailed, setImgFailed] = React97__default.useState(false);
|
|
7517
|
+
React97__default.useEffect(() => {
|
|
7518
7518
|
setImgFailed(false);
|
|
7519
7519
|
}, [src]);
|
|
7520
7520
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
@@ -7899,7 +7899,7 @@ var init_Radio = __esm({
|
|
|
7899
7899
|
md: "w-2.5 h-2.5",
|
|
7900
7900
|
lg: "w-3 h-3"
|
|
7901
7901
|
};
|
|
7902
|
-
Radio =
|
|
7902
|
+
Radio = React97__default.forwardRef(
|
|
7903
7903
|
({
|
|
7904
7904
|
label,
|
|
7905
7905
|
helperText,
|
|
@@ -7916,12 +7916,12 @@ var init_Radio = __esm({
|
|
|
7916
7916
|
onChange,
|
|
7917
7917
|
...props
|
|
7918
7918
|
}, ref) => {
|
|
7919
|
-
const reactId =
|
|
7919
|
+
const reactId = React97__default.useId();
|
|
7920
7920
|
const baseId = id || `radio-${reactId}`;
|
|
7921
7921
|
const hasError = !!error;
|
|
7922
7922
|
const eventBus = useEventBus();
|
|
7923
|
-
const [selected, setSelected] =
|
|
7924
|
-
|
|
7923
|
+
const [selected, setSelected] = React97__default.useState(value);
|
|
7924
|
+
React97__default.useEffect(() => {
|
|
7925
7925
|
if (value !== void 0) setSelected(value);
|
|
7926
7926
|
}, [value]);
|
|
7927
7927
|
const pick = (next, e) => {
|
|
@@ -8103,7 +8103,7 @@ var init_Switch = __esm({
|
|
|
8103
8103
|
"components/core/atoms/Switch.tsx"() {
|
|
8104
8104
|
"use client";
|
|
8105
8105
|
init_cn();
|
|
8106
|
-
Switch =
|
|
8106
|
+
Switch = React97.forwardRef(
|
|
8107
8107
|
({
|
|
8108
8108
|
checked,
|
|
8109
8109
|
defaultChecked = false,
|
|
@@ -8114,10 +8114,10 @@ var init_Switch = __esm({
|
|
|
8114
8114
|
name,
|
|
8115
8115
|
className
|
|
8116
8116
|
}, ref) => {
|
|
8117
|
-
const [isChecked, setIsChecked] =
|
|
8117
|
+
const [isChecked, setIsChecked] = React97.useState(
|
|
8118
8118
|
checked !== void 0 ? checked : defaultChecked
|
|
8119
8119
|
);
|
|
8120
|
-
|
|
8120
|
+
React97.useEffect(() => {
|
|
8121
8121
|
if (checked !== void 0) {
|
|
8122
8122
|
setIsChecked(checked);
|
|
8123
8123
|
}
|
|
@@ -8562,7 +8562,7 @@ var Aside;
|
|
|
8562
8562
|
var init_Aside = __esm({
|
|
8563
8563
|
"components/core/atoms/Aside.tsx"() {
|
|
8564
8564
|
init_cn();
|
|
8565
|
-
Aside =
|
|
8565
|
+
Aside = React97__default.forwardRef(
|
|
8566
8566
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
8567
8567
|
);
|
|
8568
8568
|
Aside.displayName = "Aside";
|
|
@@ -8640,8 +8640,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8640
8640
|
className
|
|
8641
8641
|
}) => {
|
|
8642
8642
|
const { t } = useTranslate();
|
|
8643
|
-
const [isVisible, setIsVisible] =
|
|
8644
|
-
const timeoutRef =
|
|
8643
|
+
const [isVisible, setIsVisible] = React97__default.useState(false);
|
|
8644
|
+
const timeoutRef = React97__default.useRef(null);
|
|
8645
8645
|
const handleMouseEnter = () => {
|
|
8646
8646
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8647
8647
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -8650,7 +8650,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8650
8650
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8651
8651
|
setIsVisible(false);
|
|
8652
8652
|
};
|
|
8653
|
-
|
|
8653
|
+
React97__default.useEffect(() => {
|
|
8654
8654
|
return () => {
|
|
8655
8655
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8656
8656
|
};
|
|
@@ -8860,7 +8860,7 @@ var init_StatusDot = __esm({
|
|
|
8860
8860
|
md: "w-2.5 h-2.5",
|
|
8861
8861
|
lg: "w-3 h-3"
|
|
8862
8862
|
};
|
|
8863
|
-
StatusDot =
|
|
8863
|
+
StatusDot = React97__default.forwardRef(
|
|
8864
8864
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
8865
8865
|
return /* @__PURE__ */ jsx(
|
|
8866
8866
|
"span",
|
|
@@ -8914,7 +8914,7 @@ var init_TrendIndicator = __esm({
|
|
|
8914
8914
|
down: "trending-down",
|
|
8915
8915
|
flat: "arrow-right"
|
|
8916
8916
|
};
|
|
8917
|
-
TrendIndicator =
|
|
8917
|
+
TrendIndicator = React97__default.forwardRef(
|
|
8918
8918
|
({
|
|
8919
8919
|
className,
|
|
8920
8920
|
value,
|
|
@@ -8981,7 +8981,7 @@ var init_RangeSlider = __esm({
|
|
|
8981
8981
|
md: "w-4 h-4",
|
|
8982
8982
|
lg: "w-5 h-5"
|
|
8983
8983
|
};
|
|
8984
|
-
RangeSlider =
|
|
8984
|
+
RangeSlider = React97__default.forwardRef(
|
|
8985
8985
|
({
|
|
8986
8986
|
className,
|
|
8987
8987
|
min = 0,
|
|
@@ -9489,7 +9489,7 @@ var init_ContentSection = __esm({
|
|
|
9489
9489
|
md: "py-16",
|
|
9490
9490
|
lg: "py-24"
|
|
9491
9491
|
};
|
|
9492
|
-
ContentSection =
|
|
9492
|
+
ContentSection = React97__default.forwardRef(
|
|
9493
9493
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
9494
9494
|
return /* @__PURE__ */ jsx(
|
|
9495
9495
|
Box,
|
|
@@ -10023,7 +10023,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10023
10023
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
10024
10024
|
"none": {}
|
|
10025
10025
|
};
|
|
10026
|
-
AnimatedReveal =
|
|
10026
|
+
AnimatedReveal = React97__default.forwardRef(
|
|
10027
10027
|
({
|
|
10028
10028
|
trigger = "scroll",
|
|
10029
10029
|
animation = "fade-up",
|
|
@@ -10183,7 +10183,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10183
10183
|
"components/marketing/atoms/AnimatedGraphic.tsx"() {
|
|
10184
10184
|
"use client";
|
|
10185
10185
|
init_cn();
|
|
10186
|
-
AnimatedGraphic =
|
|
10186
|
+
AnimatedGraphic = React97__default.forwardRef(
|
|
10187
10187
|
({
|
|
10188
10188
|
src,
|
|
10189
10189
|
svgContent,
|
|
@@ -10206,7 +10206,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10206
10206
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
10207
10207
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
10208
10208
|
const prevAnimateRef = useRef(animate);
|
|
10209
|
-
const setRef =
|
|
10209
|
+
const setRef = React97__default.useCallback(
|
|
10210
10210
|
(node) => {
|
|
10211
10211
|
containerRef.current = node;
|
|
10212
10212
|
if (typeof ref === "function") ref(node);
|
|
@@ -10431,9 +10431,9 @@ function ScoreDisplay({
|
|
|
10431
10431
|
...rest
|
|
10432
10432
|
}) {
|
|
10433
10433
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
10434
|
-
const [displayValue, setDisplayValue] =
|
|
10435
|
-
const [isAnimating, setIsAnimating] =
|
|
10436
|
-
|
|
10434
|
+
const [displayValue, setDisplayValue] = React97.useState(resolvedValue);
|
|
10435
|
+
const [isAnimating, setIsAnimating] = React97.useState(false);
|
|
10436
|
+
React97.useEffect(() => {
|
|
10437
10437
|
if (!animated || displayValue === resolvedValue) {
|
|
10438
10438
|
setDisplayValue(resolvedValue);
|
|
10439
10439
|
return;
|
|
@@ -10503,9 +10503,9 @@ function ControlButton({
|
|
|
10503
10503
|
className
|
|
10504
10504
|
}) {
|
|
10505
10505
|
const eventBus = useEventBus();
|
|
10506
|
-
const [isPressed, setIsPressed] =
|
|
10506
|
+
const [isPressed, setIsPressed] = React97.useState(false);
|
|
10507
10507
|
const actualPressed = pressed ?? isPressed;
|
|
10508
|
-
const handlePointerDown =
|
|
10508
|
+
const handlePointerDown = React97.useCallback(
|
|
10509
10509
|
(e) => {
|
|
10510
10510
|
e.preventDefault();
|
|
10511
10511
|
if (disabled) return;
|
|
@@ -10515,7 +10515,7 @@ function ControlButton({
|
|
|
10515
10515
|
},
|
|
10516
10516
|
[disabled, pressEvent, eventBus, onPress]
|
|
10517
10517
|
);
|
|
10518
|
-
const handlePointerUp =
|
|
10518
|
+
const handlePointerUp = React97.useCallback(
|
|
10519
10519
|
(e) => {
|
|
10520
10520
|
e.preventDefault();
|
|
10521
10521
|
if (disabled) return;
|
|
@@ -10525,7 +10525,7 @@ function ControlButton({
|
|
|
10525
10525
|
},
|
|
10526
10526
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
10527
10527
|
);
|
|
10528
|
-
const handlePointerLeave =
|
|
10528
|
+
const handlePointerLeave = React97.useCallback(
|
|
10529
10529
|
(e) => {
|
|
10530
10530
|
if (isPressed) {
|
|
10531
10531
|
setIsPressed(false);
|
|
@@ -11014,8 +11014,8 @@ function XPBar({
|
|
|
11014
11014
|
}) {
|
|
11015
11015
|
const sizes = sizeMap9[size];
|
|
11016
11016
|
const percentage = max > 0 ? Math.max(0, Math.min(100, current / max * 100)) : 0;
|
|
11017
|
-
const [fillWidth, setFillWidth] =
|
|
11018
|
-
|
|
11017
|
+
const [fillWidth, setFillWidth] = React97.useState(animated ? 0 : percentage);
|
|
11018
|
+
React97.useEffect(() => {
|
|
11019
11019
|
if (!animated) {
|
|
11020
11020
|
setFillWidth(percentage);
|
|
11021
11021
|
return;
|
|
@@ -11441,9 +11441,9 @@ function MiniMap({
|
|
|
11441
11441
|
viewportRect,
|
|
11442
11442
|
className
|
|
11443
11443
|
}) {
|
|
11444
|
-
const canvasRef =
|
|
11445
|
-
const frameRef =
|
|
11446
|
-
|
|
11444
|
+
const canvasRef = React97.useRef(null);
|
|
11445
|
+
const frameRef = React97.useRef(0);
|
|
11446
|
+
React97.useEffect(() => {
|
|
11447
11447
|
const canvas = canvasRef.current;
|
|
11448
11448
|
if (!canvas) return;
|
|
11449
11449
|
const ctx = canvas.getContext("2d");
|
|
@@ -11617,7 +11617,7 @@ var init_ErrorBoundary = __esm({
|
|
|
11617
11617
|
}
|
|
11618
11618
|
);
|
|
11619
11619
|
};
|
|
11620
|
-
ErrorBoundary = class extends
|
|
11620
|
+
ErrorBoundary = class extends React97__default.Component {
|
|
11621
11621
|
constructor(props) {
|
|
11622
11622
|
super(props);
|
|
11623
11623
|
__publicField(this, "reset", () => {
|
|
@@ -12707,8 +12707,8 @@ var init_Tooltip = __esm({
|
|
|
12707
12707
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
12708
12708
|
};
|
|
12709
12709
|
}, []);
|
|
12710
|
-
const triggerElement =
|
|
12711
|
-
const trigger =
|
|
12710
|
+
const triggerElement = React97__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
12711
|
+
const trigger = React97__default.cloneElement(triggerElement, {
|
|
12712
12712
|
ref: triggerRef,
|
|
12713
12713
|
onMouseEnter: handleMouseEnter,
|
|
12714
12714
|
onMouseLeave: handleMouseLeave,
|
|
@@ -12855,8 +12855,8 @@ var init_Popover = __esm({
|
|
|
12855
12855
|
onMouseEnter: handleOpen,
|
|
12856
12856
|
onMouseLeave: handleClose
|
|
12857
12857
|
};
|
|
12858
|
-
const childElement =
|
|
12859
|
-
const triggerElement =
|
|
12858
|
+
const childElement = React97__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
12859
|
+
const triggerElement = React97__default.cloneElement(
|
|
12860
12860
|
childElement,
|
|
12861
12861
|
{
|
|
12862
12862
|
ref: triggerRef,
|
|
@@ -12982,8 +12982,8 @@ var init_Menu = __esm({
|
|
|
12982
12982
|
};
|
|
12983
12983
|
const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
|
|
12984
12984
|
const subMenuSideClass = direction === "rtl" ? "right-full mr-2" : "left-full ml-2";
|
|
12985
|
-
const triggerChild =
|
|
12986
|
-
const triggerElement =
|
|
12985
|
+
const triggerChild = React97__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
12986
|
+
const triggerElement = React97__default.cloneElement(
|
|
12987
12987
|
triggerChild,
|
|
12988
12988
|
{
|
|
12989
12989
|
ref: triggerRef,
|
|
@@ -13390,12 +13390,12 @@ var init_MapView = __esm({
|
|
|
13390
13390
|
shadowSize: [41, 41]
|
|
13391
13391
|
});
|
|
13392
13392
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
13393
|
-
const { useEffect: useEffect76, useRef:
|
|
13393
|
+
const { useEffect: useEffect76, useRef: useRef69, useCallback: useCallback122, useState: useState113 } = React97__default;
|
|
13394
13394
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
13395
13395
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
13396
13396
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
13397
13397
|
const map = useMap();
|
|
13398
|
-
const prevRef =
|
|
13398
|
+
const prevRef = useRef69({ centerLat, centerLng, zoom });
|
|
13399
13399
|
useEffect76(() => {
|
|
13400
13400
|
const prev = prevRef.current;
|
|
13401
13401
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
@@ -13435,8 +13435,8 @@ var init_MapView = __esm({
|
|
|
13435
13435
|
showAttribution = true
|
|
13436
13436
|
}) {
|
|
13437
13437
|
const eventBus = useEventBus3();
|
|
13438
|
-
const [clickedPosition, setClickedPosition] =
|
|
13439
|
-
const handleMapClick =
|
|
13438
|
+
const [clickedPosition, setClickedPosition] = useState113(null);
|
|
13439
|
+
const handleMapClick = useCallback122((lat, lng) => {
|
|
13440
13440
|
if (showClickedPin) {
|
|
13441
13441
|
setClickedPosition({ lat, lng });
|
|
13442
13442
|
}
|
|
@@ -13445,7 +13445,7 @@ var init_MapView = __esm({
|
|
|
13445
13445
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
13446
13446
|
}
|
|
13447
13447
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
13448
|
-
const handleMarkerClick =
|
|
13448
|
+
const handleMarkerClick = useCallback122((marker) => {
|
|
13449
13449
|
onMarkerClick?.(marker);
|
|
13450
13450
|
if (markerClickEvent) {
|
|
13451
13451
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -13636,7 +13636,7 @@ function InputPattern({
|
|
|
13636
13636
|
fieldName
|
|
13637
13637
|
}) {
|
|
13638
13638
|
const { emit } = useEventBus();
|
|
13639
|
-
const [localValue, setLocalValue] =
|
|
13639
|
+
const [localValue, setLocalValue] = React97__default.useState(value);
|
|
13640
13640
|
const handleChange = (e) => {
|
|
13641
13641
|
setLocalValue(e.target.value);
|
|
13642
13642
|
if (onChange) {
|
|
@@ -13674,7 +13674,7 @@ function TextareaPattern({
|
|
|
13674
13674
|
fieldName
|
|
13675
13675
|
}) {
|
|
13676
13676
|
const { emit } = useEventBus();
|
|
13677
|
-
const [localValue, setLocalValue] =
|
|
13677
|
+
const [localValue, setLocalValue] = React97__default.useState(value);
|
|
13678
13678
|
const handleChange = (e) => {
|
|
13679
13679
|
setLocalValue(e.target.value);
|
|
13680
13680
|
if (onChange) {
|
|
@@ -13706,7 +13706,7 @@ function SelectPattern({
|
|
|
13706
13706
|
fieldName
|
|
13707
13707
|
}) {
|
|
13708
13708
|
const { emit } = useEventBus();
|
|
13709
|
-
const [localValue, setLocalValue] =
|
|
13709
|
+
const [localValue, setLocalValue] = React97__default.useState(value);
|
|
13710
13710
|
const handleChange = (e) => {
|
|
13711
13711
|
setLocalValue(e.target.value);
|
|
13712
13712
|
if (onChange) {
|
|
@@ -13735,7 +13735,7 @@ function CheckboxPattern({
|
|
|
13735
13735
|
className
|
|
13736
13736
|
}) {
|
|
13737
13737
|
const { emit } = useEventBus();
|
|
13738
|
-
const [localChecked, setLocalChecked] =
|
|
13738
|
+
const [localChecked, setLocalChecked] = React97__default.useState(checked);
|
|
13739
13739
|
const handleChange = (e) => {
|
|
13740
13740
|
setLocalChecked(e.target.checked);
|
|
13741
13741
|
if (onChange) {
|
|
@@ -13966,8 +13966,8 @@ function ActionButtons({
|
|
|
13966
13966
|
disabled
|
|
13967
13967
|
}) {
|
|
13968
13968
|
const eventBus = useEventBus();
|
|
13969
|
-
const [activeButtons, setActiveButtons] =
|
|
13970
|
-
const handlePress =
|
|
13969
|
+
const [activeButtons, setActiveButtons] = React97.useState(/* @__PURE__ */ new Set());
|
|
13970
|
+
const handlePress = React97.useCallback(
|
|
13971
13971
|
(id) => {
|
|
13972
13972
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
13973
13973
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -13975,7 +13975,7 @@ function ActionButtons({
|
|
|
13975
13975
|
},
|
|
13976
13976
|
[actionEvent, eventBus, onAction]
|
|
13977
13977
|
);
|
|
13978
|
-
const handleRelease =
|
|
13978
|
+
const handleRelease = React97.useCallback(
|
|
13979
13979
|
(id) => {
|
|
13980
13980
|
setActiveButtons((prev) => {
|
|
13981
13981
|
const next = new Set(prev);
|
|
@@ -14256,9 +14256,262 @@ var init_AnimatedCounter = __esm({
|
|
|
14256
14256
|
AnimatedCounter.displayName = "AnimatedCounter";
|
|
14257
14257
|
}
|
|
14258
14258
|
});
|
|
14259
|
+
var ALL_CATEGORY, GridPicker;
|
|
14260
|
+
var init_GridPicker = __esm({
|
|
14261
|
+
"components/core/molecules/GridPicker.tsx"() {
|
|
14262
|
+
"use client";
|
|
14263
|
+
init_cn();
|
|
14264
|
+
init_Input();
|
|
14265
|
+
init_Badge();
|
|
14266
|
+
init_Stack();
|
|
14267
|
+
ALL_CATEGORY = "__all__";
|
|
14268
|
+
GridPicker = ({
|
|
14269
|
+
items,
|
|
14270
|
+
value,
|
|
14271
|
+
onChange,
|
|
14272
|
+
categories,
|
|
14273
|
+
searchPlaceholder,
|
|
14274
|
+
renderThumbnail,
|
|
14275
|
+
cellSize = 32,
|
|
14276
|
+
className
|
|
14277
|
+
}) => {
|
|
14278
|
+
const [search, setSearch] = useState("");
|
|
14279
|
+
const [activeCategory, setActiveCategory] = useState(ALL_CATEGORY);
|
|
14280
|
+
const gridRef = useRef(null);
|
|
14281
|
+
const categoryChips = useMemo(() => {
|
|
14282
|
+
if (categories !== void 0) return categories;
|
|
14283
|
+
const seen = [];
|
|
14284
|
+
for (const item of items) {
|
|
14285
|
+
if (!seen.includes(item.category)) seen.push(item.category);
|
|
14286
|
+
}
|
|
14287
|
+
return seen;
|
|
14288
|
+
}, [categories, items]);
|
|
14289
|
+
const filtered = useMemo(() => {
|
|
14290
|
+
const needle = search.trim().toLowerCase();
|
|
14291
|
+
return items.filter((item) => {
|
|
14292
|
+
const matchesCategory = activeCategory === ALL_CATEGORY || item.category === activeCategory;
|
|
14293
|
+
const matchesSearch = needle === "" || item.label.toLowerCase().includes(needle);
|
|
14294
|
+
return matchesCategory && matchesSearch;
|
|
14295
|
+
});
|
|
14296
|
+
}, [items, search, activeCategory]);
|
|
14297
|
+
const select = useCallback(
|
|
14298
|
+
(item) => {
|
|
14299
|
+
onChange(item.id);
|
|
14300
|
+
},
|
|
14301
|
+
[onChange]
|
|
14302
|
+
);
|
|
14303
|
+
const handleKeyDown = useCallback(
|
|
14304
|
+
(e, index) => {
|
|
14305
|
+
const cells = gridRef.current?.querySelectorAll(
|
|
14306
|
+
"[data-gridpicker-cell]"
|
|
14307
|
+
);
|
|
14308
|
+
if (cells === void 0 || cells.length === 0) return;
|
|
14309
|
+
const columns = (() => {
|
|
14310
|
+
const grid = gridRef.current;
|
|
14311
|
+
if (grid === null) return 1;
|
|
14312
|
+
const style = window.getComputedStyle(grid);
|
|
14313
|
+
const cols = style.gridTemplateColumns.split(" ").filter(Boolean).length;
|
|
14314
|
+
return cols > 0 ? cols : 1;
|
|
14315
|
+
})();
|
|
14316
|
+
let next = -1;
|
|
14317
|
+
if (e.key === "ArrowRight") next = index + 1;
|
|
14318
|
+
else if (e.key === "ArrowLeft") next = index - 1;
|
|
14319
|
+
else if (e.key === "ArrowDown") next = index + columns;
|
|
14320
|
+
else if (e.key === "ArrowUp") next = index - columns;
|
|
14321
|
+
else if (e.key === "Enter" || e.key === " ") {
|
|
14322
|
+
e.preventDefault();
|
|
14323
|
+
select(filtered[index]);
|
|
14324
|
+
return;
|
|
14325
|
+
} else {
|
|
14326
|
+
return;
|
|
14327
|
+
}
|
|
14328
|
+
e.preventDefault();
|
|
14329
|
+
if (next >= 0 && next < cells.length) {
|
|
14330
|
+
cells[next].focus();
|
|
14331
|
+
}
|
|
14332
|
+
},
|
|
14333
|
+
[filtered, select]
|
|
14334
|
+
);
|
|
14335
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("w-full", className), children: [
|
|
14336
|
+
/* @__PURE__ */ jsx(
|
|
14337
|
+
Input,
|
|
14338
|
+
{
|
|
14339
|
+
type: "search",
|
|
14340
|
+
icon: "search",
|
|
14341
|
+
value: search,
|
|
14342
|
+
placeholder: searchPlaceholder,
|
|
14343
|
+
clearable: true,
|
|
14344
|
+
onClear: () => setSearch(""),
|
|
14345
|
+
onChange: (e) => setSearch(e.target.value)
|
|
14346
|
+
}
|
|
14347
|
+
),
|
|
14348
|
+
categoryChips.length > 0 && /* @__PURE__ */ jsxs(HStack, { gap: "xs", wrap: true, children: [
|
|
14349
|
+
/* @__PURE__ */ jsx(
|
|
14350
|
+
Badge,
|
|
14351
|
+
{
|
|
14352
|
+
variant: activeCategory === ALL_CATEGORY ? "primary" : "neutral",
|
|
14353
|
+
size: "sm",
|
|
14354
|
+
role: "button",
|
|
14355
|
+
tabIndex: 0,
|
|
14356
|
+
"aria-pressed": activeCategory === ALL_CATEGORY,
|
|
14357
|
+
className: "cursor-pointer",
|
|
14358
|
+
onClick: () => setActiveCategory(ALL_CATEGORY),
|
|
14359
|
+
onKeyDown: (e) => {
|
|
14360
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
14361
|
+
e.preventDefault();
|
|
14362
|
+
setActiveCategory(ALL_CATEGORY);
|
|
14363
|
+
}
|
|
14364
|
+
},
|
|
14365
|
+
children: "All"
|
|
14366
|
+
}
|
|
14367
|
+
),
|
|
14368
|
+
categoryChips.map((category) => /* @__PURE__ */ jsx(
|
|
14369
|
+
Badge,
|
|
14370
|
+
{
|
|
14371
|
+
variant: activeCategory === category ? "primary" : "neutral",
|
|
14372
|
+
size: "sm",
|
|
14373
|
+
role: "button",
|
|
14374
|
+
tabIndex: 0,
|
|
14375
|
+
"aria-pressed": activeCategory === category,
|
|
14376
|
+
className: "cursor-pointer",
|
|
14377
|
+
onClick: () => setActiveCategory(category),
|
|
14378
|
+
onKeyDown: (e) => {
|
|
14379
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
14380
|
+
e.preventDefault();
|
|
14381
|
+
setActiveCategory(category);
|
|
14382
|
+
}
|
|
14383
|
+
},
|
|
14384
|
+
children: category
|
|
14385
|
+
},
|
|
14386
|
+
category
|
|
14387
|
+
))
|
|
14388
|
+
] }),
|
|
14389
|
+
/* @__PURE__ */ jsx(
|
|
14390
|
+
"div",
|
|
14391
|
+
{
|
|
14392
|
+
ref: gridRef,
|
|
14393
|
+
role: "listbox",
|
|
14394
|
+
className: "grid gap-1 overflow-y-auto max-h-64 p-1",
|
|
14395
|
+
style: {
|
|
14396
|
+
gridTemplateColumns: `repeat(auto-fill, minmax(${cellSize}px, 1fr))`
|
|
14397
|
+
},
|
|
14398
|
+
children: filtered.map((item, index) => {
|
|
14399
|
+
const selected = item.id === value;
|
|
14400
|
+
return /* @__PURE__ */ jsx(
|
|
14401
|
+
"button",
|
|
14402
|
+
{
|
|
14403
|
+
type: "button",
|
|
14404
|
+
role: "option",
|
|
14405
|
+
"aria-selected": selected,
|
|
14406
|
+
"aria-label": item.label,
|
|
14407
|
+
title: item.label,
|
|
14408
|
+
"data-gridpicker-cell": true,
|
|
14409
|
+
tabIndex: selected || value === void 0 && index === 0 ? 0 : -1,
|
|
14410
|
+
onClick: () => select(item),
|
|
14411
|
+
onKeyDown: (e) => handleKeyDown(e, index),
|
|
14412
|
+
className: cn(
|
|
14413
|
+
"flex items-center justify-center rounded-sm",
|
|
14414
|
+
"transition-colors hover:bg-muted",
|
|
14415
|
+
"focus:outline-none focus:ring-1 focus:ring-ring",
|
|
14416
|
+
selected && "bg-primary/10 ring-1 ring-primary"
|
|
14417
|
+
),
|
|
14418
|
+
style: { width: cellSize, height: cellSize },
|
|
14419
|
+
children: renderThumbnail(item)
|
|
14420
|
+
},
|
|
14421
|
+
item.id
|
|
14422
|
+
);
|
|
14423
|
+
})
|
|
14424
|
+
}
|
|
14425
|
+
)
|
|
14426
|
+
] });
|
|
14427
|
+
};
|
|
14428
|
+
GridPicker.displayName = "GridPicker";
|
|
14429
|
+
}
|
|
14430
|
+
});
|
|
14431
|
+
function iconForKind(kind) {
|
|
14432
|
+
if (kind === "audio") return "music";
|
|
14433
|
+
if (kind === "model") return "box";
|
|
14434
|
+
return "file";
|
|
14435
|
+
}
|
|
14436
|
+
var THUMB_PX, IMAGE_KINDS, AssetPicker;
|
|
14437
|
+
var init_AssetPicker = __esm({
|
|
14438
|
+
"components/core/molecules/AssetPicker.tsx"() {
|
|
14439
|
+
"use client";
|
|
14440
|
+
init_GridPicker();
|
|
14441
|
+
init_Icon();
|
|
14442
|
+
THUMB_PX = 32;
|
|
14443
|
+
IMAGE_KINDS = /* @__PURE__ */ new Set([
|
|
14444
|
+
"image",
|
|
14445
|
+
"spritesheet",
|
|
14446
|
+
"scene",
|
|
14447
|
+
"portrait"
|
|
14448
|
+
]);
|
|
14449
|
+
AssetPicker = ({
|
|
14450
|
+
assets,
|
|
14451
|
+
value,
|
|
14452
|
+
onChange,
|
|
14453
|
+
className
|
|
14454
|
+
}) => {
|
|
14455
|
+
const byUrl = useMemo(() => {
|
|
14456
|
+
const map = /* @__PURE__ */ new Map();
|
|
14457
|
+
for (const entry of assets) map.set(entry.url, entry);
|
|
14458
|
+
return map;
|
|
14459
|
+
}, [assets]);
|
|
14460
|
+
const items = useMemo(
|
|
14461
|
+
() => assets.map((entry) => ({
|
|
14462
|
+
id: entry.url,
|
|
14463
|
+
label: entry.name,
|
|
14464
|
+
category: entry.category
|
|
14465
|
+
})),
|
|
14466
|
+
[assets]
|
|
14467
|
+
);
|
|
14468
|
+
const categories = useMemo(() => {
|
|
14469
|
+
const seen = [];
|
|
14470
|
+
for (const entry of assets) {
|
|
14471
|
+
if (!seen.includes(entry.category)) seen.push(entry.category);
|
|
14472
|
+
}
|
|
14473
|
+
return seen;
|
|
14474
|
+
}, [assets]);
|
|
14475
|
+
const renderThumbnail = useCallback(
|
|
14476
|
+
(item) => {
|
|
14477
|
+
const entry = byUrl.get(item.id);
|
|
14478
|
+
if (entry === void 0) return null;
|
|
14479
|
+
if (IMAGE_KINDS.has(entry.kind)) {
|
|
14480
|
+
return /* @__PURE__ */ jsx(
|
|
14481
|
+
"img",
|
|
14482
|
+
{
|
|
14483
|
+
src: entry.thumbnailUrl ?? entry.url,
|
|
14484
|
+
alt: entry.name,
|
|
14485
|
+
loading: "lazy",
|
|
14486
|
+
width: THUMB_PX,
|
|
14487
|
+
height: THUMB_PX,
|
|
14488
|
+
style: { width: THUMB_PX, height: THUMB_PX, objectFit: "cover" }
|
|
14489
|
+
}
|
|
14490
|
+
);
|
|
14491
|
+
}
|
|
14492
|
+
return /* @__PURE__ */ jsx(Icon, { name: iconForKind(entry.kind), size: "sm" });
|
|
14493
|
+
},
|
|
14494
|
+
[byUrl]
|
|
14495
|
+
);
|
|
14496
|
+
return /* @__PURE__ */ jsx(
|
|
14497
|
+
GridPicker,
|
|
14498
|
+
{
|
|
14499
|
+
items,
|
|
14500
|
+
value,
|
|
14501
|
+
onChange,
|
|
14502
|
+
categories,
|
|
14503
|
+
renderThumbnail,
|
|
14504
|
+
cellSize: THUMB_PX,
|
|
14505
|
+
className
|
|
14506
|
+
}
|
|
14507
|
+
);
|
|
14508
|
+
};
|
|
14509
|
+
AssetPicker.displayName = "AssetPicker";
|
|
14510
|
+
}
|
|
14511
|
+
});
|
|
14259
14512
|
var AuthLayout;
|
|
14260
14513
|
var init_AuthLayout = __esm({
|
|
14261
|
-
"components/
|
|
14514
|
+
"components/marketing/templates/AuthLayout.tsx"() {
|
|
14262
14515
|
"use client";
|
|
14263
14516
|
init_cn();
|
|
14264
14517
|
init_Box();
|
|
@@ -16287,7 +16540,7 @@ var init_CodeBlock = __esm({
|
|
|
16287
16540
|
CODE_LANGUAGE_SET = new Set(CODE_LANGUAGES);
|
|
16288
16541
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
16289
16542
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
16290
|
-
CodeBlock =
|
|
16543
|
+
CodeBlock = React97__default.memo(
|
|
16291
16544
|
({
|
|
16292
16545
|
code: rawCode,
|
|
16293
16546
|
language = "text",
|
|
@@ -16724,7 +16977,7 @@ var init_MarkdownContent = __esm({
|
|
|
16724
16977
|
init_Box();
|
|
16725
16978
|
init_CodeBlock();
|
|
16726
16979
|
init_cn();
|
|
16727
|
-
MarkdownContent =
|
|
16980
|
+
MarkdownContent = React97__default.memo(
|
|
16728
16981
|
({ content, direction, className }) => {
|
|
16729
16982
|
const { t: _t } = useTranslate();
|
|
16730
16983
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -17820,7 +18073,7 @@ var init_StateMachineView = __esm({
|
|
|
17820
18073
|
style: { top: title ? 30 : 0 },
|
|
17821
18074
|
children: [
|
|
17822
18075
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
17823
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
18076
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React97__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
17824
18077
|
StateNode,
|
|
17825
18078
|
{
|
|
17826
18079
|
state,
|
|
@@ -19425,7 +19678,7 @@ var init_Grid = __esm({
|
|
|
19425
19678
|
as: Component = "div"
|
|
19426
19679
|
}) => {
|
|
19427
19680
|
const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
|
|
19428
|
-
return
|
|
19681
|
+
return React97__default.createElement(
|
|
19429
19682
|
Component,
|
|
19430
19683
|
{
|
|
19431
19684
|
className: cn(
|
|
@@ -22743,7 +22996,7 @@ var init_Carousel = __esm({
|
|
|
22743
22996
|
});
|
|
22744
22997
|
var CaseStudyOrganism;
|
|
22745
22998
|
var init_CaseStudyOrganism = __esm({
|
|
22746
|
-
"components/
|
|
22999
|
+
"components/marketing/organisms/CaseStudyOrganism.tsx"() {
|
|
22747
23000
|
"use client";
|
|
22748
23001
|
init_cn();
|
|
22749
23002
|
init_useEventBus();
|
|
@@ -24785,7 +25038,7 @@ function CraftingRecipe({
|
|
|
24785
25038
|
className
|
|
24786
25039
|
}) {
|
|
24787
25040
|
const eventBus = useEventBus();
|
|
24788
|
-
const handleCraft =
|
|
25041
|
+
const handleCraft = React97.useCallback(() => {
|
|
24789
25042
|
onCraft?.();
|
|
24790
25043
|
if (craftEvent) {
|
|
24791
25044
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -24802,7 +25055,7 @@ function CraftingRecipe({
|
|
|
24802
25055
|
children: [
|
|
24803
25056
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
24804
25057
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
24805
|
-
return /* @__PURE__ */ jsxs(
|
|
25058
|
+
return /* @__PURE__ */ jsxs(React97.Fragment, { children: [
|
|
24806
25059
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
24807
25060
|
ItemSlot,
|
|
24808
25061
|
{
|
|
@@ -24865,8 +25118,8 @@ function DPad({
|
|
|
24865
25118
|
}) {
|
|
24866
25119
|
const eventBus = useEventBus();
|
|
24867
25120
|
const sizes = sizeMap15[size];
|
|
24868
|
-
const [activeDirections, setActiveDirections] =
|
|
24869
|
-
const handlePress =
|
|
25121
|
+
const [activeDirections, setActiveDirections] = React97.useState(/* @__PURE__ */ new Set());
|
|
25122
|
+
const handlePress = React97.useCallback(
|
|
24870
25123
|
(direction) => {
|
|
24871
25124
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
24872
25125
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -24874,7 +25127,7 @@ function DPad({
|
|
|
24874
25127
|
},
|
|
24875
25128
|
[directionEvent, eventBus, onDirection]
|
|
24876
25129
|
);
|
|
24877
|
-
const handleRelease =
|
|
25130
|
+
const handleRelease = React97.useCallback(
|
|
24878
25131
|
(direction) => {
|
|
24879
25132
|
setActiveDirections((prev) => {
|
|
24880
25133
|
const next = new Set(prev);
|
|
@@ -25560,14 +25813,14 @@ function useDataDnd(args) {
|
|
|
25560
25813
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
25561
25814
|
const enabled = isZone || Boolean(dndRoot);
|
|
25562
25815
|
const eventBus = useEventBus();
|
|
25563
|
-
const parentRoot =
|
|
25816
|
+
const parentRoot = React97__default.useContext(RootCtx);
|
|
25564
25817
|
const isRoot = enabled && parentRoot === null;
|
|
25565
|
-
const zoneId =
|
|
25818
|
+
const zoneId = React97__default.useId();
|
|
25566
25819
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
25567
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
25568
|
-
const optimisticOrdersRef =
|
|
25820
|
+
const [optimisticOrders, setOptimisticOrders] = React97__default.useState(() => /* @__PURE__ */ new Map());
|
|
25821
|
+
const optimisticOrdersRef = React97__default.useRef(optimisticOrders);
|
|
25569
25822
|
optimisticOrdersRef.current = optimisticOrders;
|
|
25570
|
-
const clearOptimisticOrder =
|
|
25823
|
+
const clearOptimisticOrder = React97__default.useCallback((group) => {
|
|
25571
25824
|
setOptimisticOrders((prev) => {
|
|
25572
25825
|
if (!prev.has(group)) return prev;
|
|
25573
25826
|
const next = new Map(prev);
|
|
@@ -25592,7 +25845,7 @@ function useDataDnd(args) {
|
|
|
25592
25845
|
const raw = it[dndItemIdField];
|
|
25593
25846
|
return String(raw ?? `__idx_${idx}`);
|
|
25594
25847
|
}).join("|");
|
|
25595
|
-
const itemIds =
|
|
25848
|
+
const itemIds = React97__default.useMemo(
|
|
25596
25849
|
() => orderedItems.map((it, idx) => {
|
|
25597
25850
|
const raw = it[dndItemIdField];
|
|
25598
25851
|
return raw ?? `__idx_${idx}`;
|
|
@@ -25600,7 +25853,7 @@ function useDataDnd(args) {
|
|
|
25600
25853
|
[itemIdsSignature]
|
|
25601
25854
|
);
|
|
25602
25855
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
25603
|
-
|
|
25856
|
+
React97__default.useEffect(() => {
|
|
25604
25857
|
const root = isRoot ? null : parentRoot;
|
|
25605
25858
|
if (root) {
|
|
25606
25859
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -25608,20 +25861,20 @@ function useDataDnd(args) {
|
|
|
25608
25861
|
clearOptimisticOrder(ownGroup);
|
|
25609
25862
|
}
|
|
25610
25863
|
}, [itemsContentSig, ownGroup]);
|
|
25611
|
-
const zonesRef =
|
|
25612
|
-
const registerZone =
|
|
25864
|
+
const zonesRef = React97__default.useRef(/* @__PURE__ */ new Map());
|
|
25865
|
+
const registerZone = React97__default.useCallback((zoneId2, meta2) => {
|
|
25613
25866
|
zonesRef.current.set(zoneId2, meta2);
|
|
25614
25867
|
}, []);
|
|
25615
|
-
const unregisterZone =
|
|
25868
|
+
const unregisterZone = React97__default.useCallback((zoneId2) => {
|
|
25616
25869
|
zonesRef.current.delete(zoneId2);
|
|
25617
25870
|
}, []);
|
|
25618
|
-
const [activeDrag, setActiveDrag] =
|
|
25619
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
25620
|
-
const meta =
|
|
25871
|
+
const [activeDrag, setActiveDrag] = React97__default.useState(null);
|
|
25872
|
+
const [overZoneGroup, setOverZoneGroup] = React97__default.useState(null);
|
|
25873
|
+
const meta = React97__default.useMemo(
|
|
25621
25874
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
25622
25875
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
25623
25876
|
);
|
|
25624
|
-
|
|
25877
|
+
React97__default.useEffect(() => {
|
|
25625
25878
|
const target = isRoot ? null : parentRoot;
|
|
25626
25879
|
if (!target) {
|
|
25627
25880
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -25640,7 +25893,7 @@ function useDataDnd(args) {
|
|
|
25640
25893
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
25641
25894
|
const sensors = useAlmadarDndSensors(true);
|
|
25642
25895
|
const collisionDetection = almadarDndCollisionDetection;
|
|
25643
|
-
const findZoneByItem =
|
|
25896
|
+
const findZoneByItem = React97__default.useCallback(
|
|
25644
25897
|
(id) => {
|
|
25645
25898
|
for (const z of zonesRef.current.values()) {
|
|
25646
25899
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -25649,7 +25902,7 @@ function useDataDnd(args) {
|
|
|
25649
25902
|
},
|
|
25650
25903
|
[]
|
|
25651
25904
|
);
|
|
25652
|
-
|
|
25905
|
+
React97__default.useCallback(
|
|
25653
25906
|
(group) => {
|
|
25654
25907
|
for (const z of zonesRef.current.values()) {
|
|
25655
25908
|
if (z.group === group) return z;
|
|
@@ -25658,7 +25911,7 @@ function useDataDnd(args) {
|
|
|
25658
25911
|
},
|
|
25659
25912
|
[]
|
|
25660
25913
|
);
|
|
25661
|
-
const handleDragEnd =
|
|
25914
|
+
const handleDragEnd = React97__default.useCallback(
|
|
25662
25915
|
(event) => {
|
|
25663
25916
|
const { active, over } = event;
|
|
25664
25917
|
const activeIdStr = String(active.id);
|
|
@@ -25749,8 +26002,8 @@ function useDataDnd(args) {
|
|
|
25749
26002
|
},
|
|
25750
26003
|
[eventBus]
|
|
25751
26004
|
);
|
|
25752
|
-
const sortableData =
|
|
25753
|
-
const SortableItem =
|
|
26005
|
+
const sortableData = React97__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
26006
|
+
const SortableItem = React97__default.useCallback(
|
|
25754
26007
|
({ id, children }) => {
|
|
25755
26008
|
const {
|
|
25756
26009
|
attributes,
|
|
@@ -25790,7 +26043,7 @@ function useDataDnd(args) {
|
|
|
25790
26043
|
id: droppableId,
|
|
25791
26044
|
data: sortableData
|
|
25792
26045
|
});
|
|
25793
|
-
const ctx =
|
|
26046
|
+
const ctx = React97__default.useContext(RootCtx);
|
|
25794
26047
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
25795
26048
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
25796
26049
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -25805,7 +26058,7 @@ function useDataDnd(args) {
|
|
|
25805
26058
|
showForeignPlaceholder,
|
|
25806
26059
|
ctxAvailable: ctx != null
|
|
25807
26060
|
});
|
|
25808
|
-
|
|
26061
|
+
React97__default.useEffect(() => {
|
|
25809
26062
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
25810
26063
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
25811
26064
|
return /* @__PURE__ */ jsx(
|
|
@@ -25819,11 +26072,11 @@ function useDataDnd(args) {
|
|
|
25819
26072
|
}
|
|
25820
26073
|
);
|
|
25821
26074
|
};
|
|
25822
|
-
const rootContextValue =
|
|
26075
|
+
const rootContextValue = React97__default.useMemo(
|
|
25823
26076
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
25824
26077
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
25825
26078
|
);
|
|
25826
|
-
const handleDragStart =
|
|
26079
|
+
const handleDragStart = React97__default.useCallback((event) => {
|
|
25827
26080
|
const sourceZone = findZoneByItem(event.active.id);
|
|
25828
26081
|
const rect = event.active.rect.current.initial;
|
|
25829
26082
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -25842,7 +26095,7 @@ function useDataDnd(args) {
|
|
|
25842
26095
|
isRoot
|
|
25843
26096
|
});
|
|
25844
26097
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
25845
|
-
const handleDragOver =
|
|
26098
|
+
const handleDragOver = React97__default.useCallback((event) => {
|
|
25846
26099
|
const { active, over } = event;
|
|
25847
26100
|
const overData = over?.data?.current;
|
|
25848
26101
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -25912,7 +26165,7 @@ function useDataDnd(args) {
|
|
|
25912
26165
|
return next;
|
|
25913
26166
|
});
|
|
25914
26167
|
}, []);
|
|
25915
|
-
const handleDragCancel =
|
|
26168
|
+
const handleDragCancel = React97__default.useCallback((event) => {
|
|
25916
26169
|
setActiveDrag(null);
|
|
25917
26170
|
setOverZoneGroup(null);
|
|
25918
26171
|
dndLog.warn("dragCancel", {
|
|
@@ -25920,12 +26173,12 @@ function useDataDnd(args) {
|
|
|
25920
26173
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
25921
26174
|
});
|
|
25922
26175
|
}, []);
|
|
25923
|
-
const handleDragEndWithCleanup =
|
|
26176
|
+
const handleDragEndWithCleanup = React97__default.useCallback((event) => {
|
|
25924
26177
|
handleDragEnd(event);
|
|
25925
26178
|
setActiveDrag(null);
|
|
25926
26179
|
setOverZoneGroup(null);
|
|
25927
26180
|
}, [handleDragEnd]);
|
|
25928
|
-
const wrapContainer =
|
|
26181
|
+
const wrapContainer = React97__default.useCallback(
|
|
25929
26182
|
(children) => {
|
|
25930
26183
|
if (!enabled) return children;
|
|
25931
26184
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -25979,7 +26232,7 @@ var init_useDataDnd = __esm({
|
|
|
25979
26232
|
init_useAlmadarDndCollision();
|
|
25980
26233
|
init_Box();
|
|
25981
26234
|
dndLog = createLogger("almadar:ui:dnd");
|
|
25982
|
-
RootCtx =
|
|
26235
|
+
RootCtx = React97__default.createContext(null);
|
|
25983
26236
|
}
|
|
25984
26237
|
});
|
|
25985
26238
|
function fieldLabel2(key) {
|
|
@@ -26499,7 +26752,7 @@ function DataList({
|
|
|
26499
26752
|
}) {
|
|
26500
26753
|
const eventBus = useEventBus();
|
|
26501
26754
|
const { t } = useTranslate();
|
|
26502
|
-
const [visibleCount, setVisibleCount] =
|
|
26755
|
+
const [visibleCount, setVisibleCount] = React97__default.useState(pageSize || Infinity);
|
|
26503
26756
|
const fieldDefs = fields ?? columns ?? [];
|
|
26504
26757
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
26505
26758
|
const dnd = useDataDnd({
|
|
@@ -26518,7 +26771,7 @@ function DataList({
|
|
|
26518
26771
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
26519
26772
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
26520
26773
|
const hasRenderProp = typeof children === "function";
|
|
26521
|
-
|
|
26774
|
+
React97__default.useEffect(() => {
|
|
26522
26775
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
26523
26776
|
const childrenTypeOf = typeof children;
|
|
26524
26777
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -26623,7 +26876,7 @@ function DataList({
|
|
|
26623
26876
|
const items2 = data.map((item) => item);
|
|
26624
26877
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
26625
26878
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
26626
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
26879
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
26627
26880
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
26628
26881
|
group.items.map((itemData, index) => {
|
|
26629
26882
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -26771,7 +27024,7 @@ function DataList({
|
|
|
26771
27024
|
className
|
|
26772
27025
|
),
|
|
26773
27026
|
children: [
|
|
26774
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
27027
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
26775
27028
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
26776
27029
|
group.items.map(
|
|
26777
27030
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -28145,7 +28398,7 @@ var init_WizardProgress = __esm({
|
|
|
28145
28398
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
28146
28399
|
const isActive = index === currentStep;
|
|
28147
28400
|
const isCompleted = index < currentStep;
|
|
28148
|
-
return /* @__PURE__ */ jsxs(
|
|
28401
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
28149
28402
|
/* @__PURE__ */ jsx(
|
|
28150
28403
|
"button",
|
|
28151
28404
|
{
|
|
@@ -28756,6 +29009,50 @@ var init_FlipCard = __esm({
|
|
|
28756
29009
|
FlipCard.displayName = "FlipCard";
|
|
28757
29010
|
}
|
|
28758
29011
|
});
|
|
29012
|
+
function pascalToKebab(name) {
|
|
29013
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").toLowerCase();
|
|
29014
|
+
}
|
|
29015
|
+
function kebabToPascal3(name) {
|
|
29016
|
+
return name.split("-").map((part) => /^\d+$/.test(part) ? part : part.charAt(0).toUpperCase() + part.slice(1)).join("");
|
|
29017
|
+
}
|
|
29018
|
+
var ICON_ITEMS, IconPicker;
|
|
29019
|
+
var init_IconPicker = __esm({
|
|
29020
|
+
"components/core/molecules/IconPicker.tsx"() {
|
|
29021
|
+
"use client";
|
|
29022
|
+
init_Icon();
|
|
29023
|
+
init_GridPicker();
|
|
29024
|
+
ICON_ITEMS = (() => {
|
|
29025
|
+
const items = [];
|
|
29026
|
+
for (const [exportName, candidate] of Object.entries(LucideIcons2)) {
|
|
29027
|
+
if (!/^[A-Z]/.test(exportName)) continue;
|
|
29028
|
+
if (exportName.endsWith("Icon")) continue;
|
|
29029
|
+
if (exportName.startsWith("Lucide")) continue;
|
|
29030
|
+
const isComponent = candidate !== null && (typeof candidate === "object" || typeof candidate === "function") && "$$typeof" in candidate;
|
|
29031
|
+
if (!isComponent) continue;
|
|
29032
|
+
const kebab = pascalToKebab(exportName);
|
|
29033
|
+
if (kebabToPascal3(kebab) !== exportName) continue;
|
|
29034
|
+
items.push({ id: kebab, label: kebab, category: "icons" });
|
|
29035
|
+
}
|
|
29036
|
+
return items;
|
|
29037
|
+
})();
|
|
29038
|
+
IconPicker = ({ value, onChange, className }) => {
|
|
29039
|
+
const items = useMemo(() => ICON_ITEMS, []);
|
|
29040
|
+
return /* @__PURE__ */ jsx(
|
|
29041
|
+
GridPicker,
|
|
29042
|
+
{
|
|
29043
|
+
items,
|
|
29044
|
+
value,
|
|
29045
|
+
onChange,
|
|
29046
|
+
searchPlaceholder: "Search icons\u2026",
|
|
29047
|
+
renderThumbnail: (it) => /* @__PURE__ */ jsx(Icon, { name: it.id }),
|
|
29048
|
+
cellSize: 32,
|
|
29049
|
+
className
|
|
29050
|
+
}
|
|
29051
|
+
);
|
|
29052
|
+
};
|
|
29053
|
+
IconPicker.displayName = "IconPicker";
|
|
29054
|
+
}
|
|
29055
|
+
});
|
|
28759
29056
|
function toISODate(d) {
|
|
28760
29057
|
return d.toISOString().slice(0, 10);
|
|
28761
29058
|
}
|
|
@@ -29200,7 +29497,7 @@ function InventoryGrid({
|
|
|
29200
29497
|
const eventBus = useEventBus();
|
|
29201
29498
|
const slotCount = totalSlots ?? items.length;
|
|
29202
29499
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
29203
|
-
const handleSelect =
|
|
29500
|
+
const handleSelect = React97.useCallback(
|
|
29204
29501
|
(id) => {
|
|
29205
29502
|
onSelect?.(id);
|
|
29206
29503
|
if (selectEvent) {
|
|
@@ -29417,31 +29714,31 @@ function GameCanvas2D({
|
|
|
29417
29714
|
assetBaseUrl = "",
|
|
29418
29715
|
className
|
|
29419
29716
|
}) {
|
|
29420
|
-
const canvasRef =
|
|
29421
|
-
const rafRef =
|
|
29422
|
-
const frameRef =
|
|
29423
|
-
const lastTimeRef =
|
|
29424
|
-
const imageCache =
|
|
29717
|
+
const canvasRef = React97.useRef(null);
|
|
29718
|
+
const rafRef = React97.useRef(0);
|
|
29719
|
+
const frameRef = React97.useRef(0);
|
|
29720
|
+
const lastTimeRef = React97.useRef(0);
|
|
29721
|
+
const imageCache = React97.useRef(/* @__PURE__ */ new Map());
|
|
29425
29722
|
const emit = useEmitEvent();
|
|
29426
|
-
const onDrawRef =
|
|
29723
|
+
const onDrawRef = React97.useRef(onDraw);
|
|
29427
29724
|
onDrawRef.current = onDraw;
|
|
29428
|
-
const onTickRef =
|
|
29725
|
+
const onTickRef = React97.useRef(onTick);
|
|
29429
29726
|
onTickRef.current = onTick;
|
|
29430
|
-
const tickEventRef =
|
|
29727
|
+
const tickEventRef = React97.useRef(tickEvent);
|
|
29431
29728
|
tickEventRef.current = tickEvent;
|
|
29432
|
-
const drawEventRef =
|
|
29729
|
+
const drawEventRef = React97.useRef(drawEvent);
|
|
29433
29730
|
drawEventRef.current = drawEvent;
|
|
29434
|
-
const emitRef =
|
|
29731
|
+
const emitRef = React97.useRef(emit);
|
|
29435
29732
|
emitRef.current = emit;
|
|
29436
|
-
const assetBaseUrlRef =
|
|
29733
|
+
const assetBaseUrlRef = React97.useRef(assetBaseUrl);
|
|
29437
29734
|
assetBaseUrlRef.current = assetBaseUrl;
|
|
29438
|
-
const backgroundImageRef =
|
|
29735
|
+
const backgroundImageRef = React97.useRef(backgroundImage);
|
|
29439
29736
|
backgroundImageRef.current = backgroundImage;
|
|
29440
|
-
const widthRef =
|
|
29737
|
+
const widthRef = React97.useRef(width);
|
|
29441
29738
|
widthRef.current = width;
|
|
29442
|
-
const heightRef =
|
|
29739
|
+
const heightRef = React97.useRef(height);
|
|
29443
29740
|
heightRef.current = height;
|
|
29444
|
-
const loadImage =
|
|
29741
|
+
const loadImage = React97.useCallback((url) => {
|
|
29445
29742
|
const fullUrl = url.startsWith("http") ? url : `${assetBaseUrlRef.current}${url}`;
|
|
29446
29743
|
const cached = imageCache.current.get(fullUrl);
|
|
29447
29744
|
if (cached?.complete && cached.naturalWidth > 0) return cached;
|
|
@@ -29453,7 +29750,7 @@ function GameCanvas2D({
|
|
|
29453
29750
|
}
|
|
29454
29751
|
return null;
|
|
29455
29752
|
}, []);
|
|
29456
|
-
|
|
29753
|
+
React97.useEffect(() => {
|
|
29457
29754
|
const canvas = canvasRef.current;
|
|
29458
29755
|
if (!canvas) return;
|
|
29459
29756
|
const ctx = canvas.getContext("2d");
|
|
@@ -29756,7 +30053,7 @@ function TurnPanel({
|
|
|
29756
30053
|
className
|
|
29757
30054
|
}) {
|
|
29758
30055
|
const eventBus = useEventBus();
|
|
29759
|
-
const handleAction =
|
|
30056
|
+
const handleAction = React97.useCallback(
|
|
29760
30057
|
(event) => {
|
|
29761
30058
|
if (event) {
|
|
29762
30059
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -29902,7 +30199,7 @@ function UnitCommandBar({
|
|
|
29902
30199
|
className
|
|
29903
30200
|
}) {
|
|
29904
30201
|
const eventBus = useEventBus();
|
|
29905
|
-
const handleCommand =
|
|
30202
|
+
const handleCommand = React97.useCallback(
|
|
29906
30203
|
(event) => {
|
|
29907
30204
|
if (event) {
|
|
29908
30205
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -30387,7 +30684,7 @@ function GameMenu({
|
|
|
30387
30684
|
} catch {
|
|
30388
30685
|
}
|
|
30389
30686
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30390
|
-
const handleOptionClick =
|
|
30687
|
+
const handleOptionClick = React97.useCallback(
|
|
30391
30688
|
(option) => {
|
|
30392
30689
|
if (option.event && eventBus) {
|
|
30393
30690
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -30501,7 +30798,7 @@ function GameOverScreen({
|
|
|
30501
30798
|
} catch {
|
|
30502
30799
|
}
|
|
30503
30800
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30504
|
-
const handleActionClick =
|
|
30801
|
+
const handleActionClick = React97.useCallback(
|
|
30505
30802
|
(action) => {
|
|
30506
30803
|
if (action.event && eventBus) {
|
|
30507
30804
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -31978,8 +32275,8 @@ function TableView({
|
|
|
31978
32275
|
}) {
|
|
31979
32276
|
const eventBus = useEventBus();
|
|
31980
32277
|
const { t } = useTranslate();
|
|
31981
|
-
const [visibleCount, setVisibleCount] =
|
|
31982
|
-
const [localSelected, setLocalSelected] =
|
|
32278
|
+
const [visibleCount, setVisibleCount] = React97__default.useState(pageSize > 0 ? pageSize : Infinity);
|
|
32279
|
+
const [localSelected, setLocalSelected] = React97__default.useState(/* @__PURE__ */ new Set());
|
|
31983
32280
|
const colDefs = columns ?? fields ?? [];
|
|
31984
32281
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
31985
32282
|
const dnd = useDataDnd({
|
|
@@ -32174,12 +32471,12 @@ function TableView({
|
|
|
32174
32471
|
]
|
|
32175
32472
|
}
|
|
32176
32473
|
);
|
|
32177
|
-
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(
|
|
32474
|
+
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React97__default.Fragment, { children: rowInner }, id);
|
|
32178
32475
|
};
|
|
32179
32476
|
const items = data.map((row) => row);
|
|
32180
32477
|
const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
|
|
32181
32478
|
let runningIndex = 0;
|
|
32182
|
-
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
32479
|
+
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
32183
32480
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
|
|
32184
32481
|
group.items.map((row) => renderRow(row, runningIndex++))
|
|
32185
32482
|
] }, gi)) });
|
|
@@ -33531,7 +33828,7 @@ var init_StepFlow = __esm({
|
|
|
33531
33828
|
className
|
|
33532
33829
|
}) => {
|
|
33533
33830
|
if (orientation === "vertical") {
|
|
33534
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
33831
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React97__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
33535
33832
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
33536
33833
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33537
33834
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -33542,7 +33839,7 @@ var init_StepFlow = __esm({
|
|
|
33542
33839
|
] })
|
|
33543
33840
|
] }) }, index)) });
|
|
33544
33841
|
}
|
|
33545
|
-
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(
|
|
33842
|
+
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(React97__default.Fragment, { children: [
|
|
33546
33843
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
33547
33844
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33548
33845
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -34518,7 +34815,7 @@ var init_LikertScale = __esm({
|
|
|
34518
34815
|
md: "text-base",
|
|
34519
34816
|
lg: "text-lg"
|
|
34520
34817
|
};
|
|
34521
|
-
LikertScale =
|
|
34818
|
+
LikertScale = React97__default.forwardRef(
|
|
34522
34819
|
({
|
|
34523
34820
|
question,
|
|
34524
34821
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -34530,7 +34827,7 @@ var init_LikertScale = __esm({
|
|
|
34530
34827
|
variant = "radios",
|
|
34531
34828
|
className
|
|
34532
34829
|
}, ref) => {
|
|
34533
|
-
const groupId =
|
|
34830
|
+
const groupId = React97__default.useId();
|
|
34534
34831
|
const eventBus = useEventBus();
|
|
34535
34832
|
const handleSelect = useCallback(
|
|
34536
34833
|
(next) => {
|
|
@@ -36838,7 +37135,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
36838
37135
|
"aria-label": t("aria.breadcrumb"),
|
|
36839
37136
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
36840
37137
|
const isLast = idx === items.length - 1;
|
|
36841
|
-
return /* @__PURE__ */ jsxs(
|
|
37138
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
36842
37139
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
36843
37140
|
Icon,
|
|
36844
37141
|
{
|
|
@@ -37449,7 +37746,7 @@ var init_GradientDivider = __esm({
|
|
|
37449
37746
|
});
|
|
37450
37747
|
var MarketingFooter;
|
|
37451
37748
|
var init_MarketingFooter = __esm({
|
|
37452
|
-
"components/
|
|
37749
|
+
"components/marketing/molecules/MarketingFooter.tsx"() {
|
|
37453
37750
|
"use client";
|
|
37454
37751
|
init_cn();
|
|
37455
37752
|
init_Box();
|
|
@@ -37519,7 +37816,7 @@ var init_MarketingFooter = __esm({
|
|
|
37519
37816
|
});
|
|
37520
37817
|
var PullQuote;
|
|
37521
37818
|
var init_PullQuote = __esm({
|
|
37522
|
-
"components/
|
|
37819
|
+
"components/marketing/molecules/PullQuote.tsx"() {
|
|
37523
37820
|
"use client";
|
|
37524
37821
|
init_cn();
|
|
37525
37822
|
init_Box();
|
|
@@ -37597,7 +37894,7 @@ var init_PageHeader = __esm({
|
|
|
37597
37894
|
info: "bg-info/10 text-info"
|
|
37598
37895
|
};
|
|
37599
37896
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
37600
|
-
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(
|
|
37897
|
+
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(React97__default.Fragment, { children: [
|
|
37601
37898
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
37602
37899
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
37603
37900
|
"a",
|
|
@@ -37684,6 +37981,271 @@ var init_PageHeader = __esm({
|
|
|
37684
37981
|
PageHeader.displayName = "PageHeader";
|
|
37685
37982
|
}
|
|
37686
37983
|
});
|
|
37984
|
+
var FormSection, FormLayout, FormActions;
|
|
37985
|
+
var init_FormSection = __esm({
|
|
37986
|
+
"components/core/molecules/FormSection.tsx"() {
|
|
37987
|
+
"use client";
|
|
37988
|
+
init_cn();
|
|
37989
|
+
init_atoms2();
|
|
37990
|
+
init_Box();
|
|
37991
|
+
init_Typography();
|
|
37992
|
+
init_Button();
|
|
37993
|
+
init_Stack();
|
|
37994
|
+
init_Icon();
|
|
37995
|
+
init_useEventBus();
|
|
37996
|
+
FormSection = ({
|
|
37997
|
+
title,
|
|
37998
|
+
description,
|
|
37999
|
+
children,
|
|
38000
|
+
collapsible = false,
|
|
38001
|
+
defaultCollapsed = false,
|
|
38002
|
+
card = false,
|
|
38003
|
+
columns = 1,
|
|
38004
|
+
className
|
|
38005
|
+
}) => {
|
|
38006
|
+
const [collapsed, setCollapsed] = React97__default.useState(defaultCollapsed);
|
|
38007
|
+
const { t } = useTranslate();
|
|
38008
|
+
const eventBus = useEventBus();
|
|
38009
|
+
const gridClass = {
|
|
38010
|
+
1: "grid-cols-1",
|
|
38011
|
+
2: "grid-cols-1 md:grid-cols-2",
|
|
38012
|
+
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
38013
|
+
}[columns];
|
|
38014
|
+
React97__default.useCallback(() => {
|
|
38015
|
+
if (collapsible) {
|
|
38016
|
+
setCollapsed((prev) => !prev);
|
|
38017
|
+
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
38018
|
+
}
|
|
38019
|
+
}, [collapsible, collapsed, eventBus]);
|
|
38020
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38021
|
+
(title || description) && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "mb-4", children: [
|
|
38022
|
+
title && /* @__PURE__ */ jsxs(
|
|
38023
|
+
HStack,
|
|
38024
|
+
{
|
|
38025
|
+
justify: "between",
|
|
38026
|
+
align: "center",
|
|
38027
|
+
className: cn(collapsible && "cursor-pointer"),
|
|
38028
|
+
action: collapsible ? "TOGGLE_COLLAPSE" : void 0,
|
|
38029
|
+
children: [
|
|
38030
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h3", weight: "semibold", children: title }),
|
|
38031
|
+
collapsible && /* @__PURE__ */ jsx(
|
|
38032
|
+
Button,
|
|
38033
|
+
{
|
|
38034
|
+
variant: "ghost",
|
|
38035
|
+
size: "sm",
|
|
38036
|
+
action: "TOGGLE_COLLAPSE",
|
|
38037
|
+
children: /* @__PURE__ */ jsx(
|
|
38038
|
+
Icon,
|
|
38039
|
+
{
|
|
38040
|
+
icon: ChevronDown,
|
|
38041
|
+
size: "sm",
|
|
38042
|
+
className: cn(
|
|
38043
|
+
"text-muted-foreground transition-transform",
|
|
38044
|
+
collapsed && "rotate-180"
|
|
38045
|
+
)
|
|
38046
|
+
}
|
|
38047
|
+
)
|
|
38048
|
+
}
|
|
38049
|
+
)
|
|
38050
|
+
]
|
|
38051
|
+
}
|
|
38052
|
+
),
|
|
38053
|
+
description && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", children: description })
|
|
38054
|
+
] }),
|
|
38055
|
+
(!collapsible || !collapsed) && /* @__PURE__ */ jsx(Box, { className: cn("grid gap-4", gridClass), children })
|
|
38056
|
+
] });
|
|
38057
|
+
if (card) {
|
|
38058
|
+
return /* @__PURE__ */ jsx(Card, { className: cn("p-6", className), children: content });
|
|
38059
|
+
}
|
|
38060
|
+
return /* @__PURE__ */ jsx(Box, { className, children: content });
|
|
38061
|
+
};
|
|
38062
|
+
FormSection.displayName = "FormSection";
|
|
38063
|
+
FormLayout = ({
|
|
38064
|
+
children,
|
|
38065
|
+
dividers = true,
|
|
38066
|
+
className
|
|
38067
|
+
}) => {
|
|
38068
|
+
return /* @__PURE__ */ jsx(
|
|
38069
|
+
VStack,
|
|
38070
|
+
{
|
|
38071
|
+
gap: "lg",
|
|
38072
|
+
className: cn(
|
|
38073
|
+
dividers && "[&>*+*]:pt-8 [&>*+*]:border-t [&>*+*]:border-border",
|
|
38074
|
+
className
|
|
38075
|
+
),
|
|
38076
|
+
children
|
|
38077
|
+
}
|
|
38078
|
+
);
|
|
38079
|
+
};
|
|
38080
|
+
FormLayout.displayName = "FormLayout";
|
|
38081
|
+
FormActions = ({
|
|
38082
|
+
children,
|
|
38083
|
+
sticky = false,
|
|
38084
|
+
align = "right",
|
|
38085
|
+
className
|
|
38086
|
+
}) => {
|
|
38087
|
+
const alignClass2 = {
|
|
38088
|
+
left: "justify-start",
|
|
38089
|
+
right: "justify-end",
|
|
38090
|
+
between: "justify-between",
|
|
38091
|
+
center: "justify-center"
|
|
38092
|
+
}[align];
|
|
38093
|
+
return /* @__PURE__ */ jsx(
|
|
38094
|
+
HStack,
|
|
38095
|
+
{
|
|
38096
|
+
gap: "sm",
|
|
38097
|
+
align: "center",
|
|
38098
|
+
className: cn(
|
|
38099
|
+
"pt-6 border-t border-border",
|
|
38100
|
+
alignClass2,
|
|
38101
|
+
sticky && "sticky bottom-0 bg-card py-4 -mx-6 px-6 shadow-[0_-4px_6px_-1px_rgb(0,0,0,0.05)]",
|
|
38102
|
+
className
|
|
38103
|
+
),
|
|
38104
|
+
children
|
|
38105
|
+
}
|
|
38106
|
+
);
|
|
38107
|
+
};
|
|
38108
|
+
FormActions.displayName = "FormActions";
|
|
38109
|
+
}
|
|
38110
|
+
});
|
|
38111
|
+
function currentValue(decl, override) {
|
|
38112
|
+
return override !== void 0 ? override : decl.default;
|
|
38113
|
+
}
|
|
38114
|
+
function TextLikeControl({
|
|
38115
|
+
field,
|
|
38116
|
+
numeric,
|
|
38117
|
+
value,
|
|
38118
|
+
onCommit
|
|
38119
|
+
}) {
|
|
38120
|
+
const initial = value === void 0 || value === null ? "" : String(value);
|
|
38121
|
+
const [draft, setDraft] = React97__default.useState(initial);
|
|
38122
|
+
React97__default.useEffect(() => setDraft(initial), [initial]);
|
|
38123
|
+
const commit = () => {
|
|
38124
|
+
if (numeric) {
|
|
38125
|
+
const n = draft.trim() === "" ? 0 : Number(draft);
|
|
38126
|
+
onCommit(field, Number.isNaN(n) ? 0 : n);
|
|
38127
|
+
} else {
|
|
38128
|
+
onCommit(field, draft);
|
|
38129
|
+
}
|
|
38130
|
+
};
|
|
38131
|
+
return /* @__PURE__ */ jsx(
|
|
38132
|
+
Input,
|
|
38133
|
+
{
|
|
38134
|
+
inputType: numeric ? "number" : "text",
|
|
38135
|
+
value: draft,
|
|
38136
|
+
onChange: (e) => setDraft(e.target.value),
|
|
38137
|
+
onBlur: commit,
|
|
38138
|
+
onKeyDown: (e) => {
|
|
38139
|
+
if (e.key === "Enter") commit();
|
|
38140
|
+
}
|
|
38141
|
+
}
|
|
38142
|
+
);
|
|
38143
|
+
}
|
|
38144
|
+
function FieldControl({
|
|
38145
|
+
name,
|
|
38146
|
+
decl,
|
|
38147
|
+
value,
|
|
38148
|
+
onChange,
|
|
38149
|
+
assets
|
|
38150
|
+
}) {
|
|
38151
|
+
let control;
|
|
38152
|
+
const stringValue = typeof value === "string" ? value : void 0;
|
|
38153
|
+
if (decl.type === "icon") {
|
|
38154
|
+
control = /* @__PURE__ */ jsx(IconPicker, { value: stringValue, onChange: (icon) => onChange(name, icon) });
|
|
38155
|
+
} else if (decl.type === "asset") {
|
|
38156
|
+
control = /* @__PURE__ */ jsx(
|
|
38157
|
+
AssetPicker,
|
|
38158
|
+
{
|
|
38159
|
+
assets: assets ?? [],
|
|
38160
|
+
value: stringValue,
|
|
38161
|
+
onChange: (url) => onChange(name, url)
|
|
38162
|
+
}
|
|
38163
|
+
);
|
|
38164
|
+
} else if (decl.type === "boolean") {
|
|
38165
|
+
control = /* @__PURE__ */ jsx(Switch, { checked: value === true, onChange: (c) => onChange(name, c) });
|
|
38166
|
+
} else if (decl.type === "string" && decl.values !== void 0 && decl.values.length > 0) {
|
|
38167
|
+
control = /* @__PURE__ */ jsx(
|
|
38168
|
+
Select,
|
|
38169
|
+
{
|
|
38170
|
+
options: decl.values.map((v) => ({ value: v, label: v })),
|
|
38171
|
+
value: typeof value === "string" ? value : "",
|
|
38172
|
+
onChange: (e) => onChange(name, e.target.value)
|
|
38173
|
+
}
|
|
38174
|
+
);
|
|
38175
|
+
} else if (decl.type === "number") {
|
|
38176
|
+
control = /* @__PURE__ */ jsx(TextLikeControl, { field: name, numeric: true, value, onCommit: onChange });
|
|
38177
|
+
} else if (decl.type === "string") {
|
|
38178
|
+
control = /* @__PURE__ */ jsx(TextLikeControl, { field: name, numeric: false, value, onCommit: onChange });
|
|
38179
|
+
} else {
|
|
38180
|
+
control = /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "muted", children: [
|
|
38181
|
+
decl.type,
|
|
38182
|
+
" \u2014 edit in source"
|
|
38183
|
+
] });
|
|
38184
|
+
}
|
|
38185
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
|
|
38186
|
+
/* @__PURE__ */ jsx(Typography, { variant: "label", children: decl.label ?? name }),
|
|
38187
|
+
control,
|
|
38188
|
+
decl.description !== void 0 && decl.description !== "" && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: decl.description })
|
|
38189
|
+
] });
|
|
38190
|
+
}
|
|
38191
|
+
var TIER_ORDER, PropertyInspector;
|
|
38192
|
+
var init_PropertyInspector = __esm({
|
|
38193
|
+
"components/core/molecules/PropertyInspector.tsx"() {
|
|
38194
|
+
"use client";
|
|
38195
|
+
init_cn();
|
|
38196
|
+
init_Stack();
|
|
38197
|
+
init_Typography();
|
|
38198
|
+
init_Button();
|
|
38199
|
+
init_Switch();
|
|
38200
|
+
init_Select();
|
|
38201
|
+
init_Input();
|
|
38202
|
+
init_FormSection();
|
|
38203
|
+
init_IconPicker();
|
|
38204
|
+
init_AssetPicker();
|
|
38205
|
+
TIER_ORDER = ["presentation", "domain", "policy", "infra", "internal"];
|
|
38206
|
+
PropertyInspector = ({
|
|
38207
|
+
config,
|
|
38208
|
+
values,
|
|
38209
|
+
onChange,
|
|
38210
|
+
onReset,
|
|
38211
|
+
title,
|
|
38212
|
+
className,
|
|
38213
|
+
assets
|
|
38214
|
+
}) => {
|
|
38215
|
+
const fields = Object.entries(config);
|
|
38216
|
+
const byTier = /* @__PURE__ */ new Map();
|
|
38217
|
+
for (const [name, decl] of fields) {
|
|
38218
|
+
const tier = decl.tier ?? "presentation";
|
|
38219
|
+
const arr = byTier.get(tier) ?? [];
|
|
38220
|
+
arr.push([name, decl]);
|
|
38221
|
+
byTier.set(tier, arr);
|
|
38222
|
+
}
|
|
38223
|
+
const tiers = [...byTier.keys()].sort((a, b) => {
|
|
38224
|
+
const ia = TIER_ORDER.indexOf(a);
|
|
38225
|
+
const ib = TIER_ORDER.indexOf(b);
|
|
38226
|
+
return (ia === -1 ? 99 : ia) - (ib === -1 ? 99 : ib);
|
|
38227
|
+
});
|
|
38228
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("w-full", className), children: [
|
|
38229
|
+
/* @__PURE__ */ jsxs(HStack, { justify: "between", align: "center", children: [
|
|
38230
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", weight: "bold", children: title ?? "Config" }),
|
|
38231
|
+
onReset !== void 0 && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", icon: "rotate-ccw", label: "Reset", onClick: onReset })
|
|
38232
|
+
] }),
|
|
38233
|
+
fields.length === 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: "No configurable properties." }),
|
|
38234
|
+
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(
|
|
38235
|
+
FieldControl,
|
|
38236
|
+
{
|
|
38237
|
+
name,
|
|
38238
|
+
decl,
|
|
38239
|
+
value: currentValue(decl, values?.[name]),
|
|
38240
|
+
onChange,
|
|
38241
|
+
assets
|
|
38242
|
+
},
|
|
38243
|
+
name
|
|
38244
|
+
)) }) }, tier))
|
|
38245
|
+
] });
|
|
38246
|
+
};
|
|
38247
|
+
}
|
|
38248
|
+
});
|
|
37687
38249
|
var lookStyles8, Header;
|
|
37688
38250
|
var init_Header = __esm({
|
|
37689
38251
|
"components/core/molecules/Header.tsx"() {
|
|
@@ -38334,7 +38896,7 @@ var init_WizardContainer = __esm({
|
|
|
38334
38896
|
const isCompleted = index < currentStep;
|
|
38335
38897
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
38336
38898
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
38337
|
-
return /* @__PURE__ */ jsxs(
|
|
38899
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
38338
38900
|
/* @__PURE__ */ jsx(
|
|
38339
38901
|
Button,
|
|
38340
38902
|
{
|
|
@@ -40619,7 +41181,7 @@ var init_DetailPanel = __esm({
|
|
|
40619
41181
|
}
|
|
40620
41182
|
});
|
|
40621
41183
|
function extractTitle(children) {
|
|
40622
|
-
if (!
|
|
41184
|
+
if (!React97__default.isValidElement(children)) return void 0;
|
|
40623
41185
|
const props = children.props;
|
|
40624
41186
|
if (typeof props.title === "string") {
|
|
40625
41187
|
return props.title;
|
|
@@ -40674,7 +41236,7 @@ function LinearView({
|
|
|
40674
41236
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
40675
41237
|
const isDone = i < currentIdx;
|
|
40676
41238
|
const isCurrent = i === currentIdx;
|
|
40677
|
-
return /* @__PURE__ */ jsxs(
|
|
41239
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
40678
41240
|
i > 0 && /* @__PURE__ */ jsx(
|
|
40679
41241
|
Typography,
|
|
40680
41242
|
{
|
|
@@ -41384,7 +41946,7 @@ var init_FeatureDetailPageTemplate = __esm({
|
|
|
41384
41946
|
});
|
|
41385
41947
|
var FeatureGridOrganism;
|
|
41386
41948
|
var init_FeatureGridOrganism = __esm({
|
|
41387
|
-
"components/
|
|
41949
|
+
"components/marketing/organisms/FeatureGridOrganism.tsx"() {
|
|
41388
41950
|
"use client";
|
|
41389
41951
|
init_cn();
|
|
41390
41952
|
init_useEventBus();
|
|
@@ -41632,12 +42194,12 @@ var init_Form = __esm({
|
|
|
41632
42194
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
41633
42195
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
41634
42196
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
41635
|
-
const normalizedInitialData =
|
|
42197
|
+
const normalizedInitialData = React97__default.useMemo(() => {
|
|
41636
42198
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
41637
42199
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
41638
42200
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
41639
42201
|
}, [entity, initialData]);
|
|
41640
|
-
const entityDerivedFields =
|
|
42202
|
+
const entityDerivedFields = React97__default.useMemo(() => {
|
|
41641
42203
|
if (fields && fields.length > 0) return void 0;
|
|
41642
42204
|
if (!resolvedEntity) return void 0;
|
|
41643
42205
|
return resolvedEntity.fields.map(
|
|
@@ -41657,16 +42219,16 @@ var init_Form = __esm({
|
|
|
41657
42219
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
41658
42220
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
41659
42221
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
41660
|
-
const [formData, setFormData] =
|
|
42222
|
+
const [formData, setFormData] = React97__default.useState(
|
|
41661
42223
|
normalizedInitialData
|
|
41662
42224
|
);
|
|
41663
|
-
const [collapsedSections, setCollapsedSections] =
|
|
42225
|
+
const [collapsedSections, setCollapsedSections] = React97__default.useState(
|
|
41664
42226
|
/* @__PURE__ */ new Set()
|
|
41665
42227
|
);
|
|
41666
|
-
const [submitError, setSubmitError] =
|
|
41667
|
-
const formRef =
|
|
42228
|
+
const [submitError, setSubmitError] = React97__default.useState(null);
|
|
42229
|
+
const formRef = React97__default.useRef(null);
|
|
41668
42230
|
const formMode = props.mode;
|
|
41669
|
-
const mountedRef =
|
|
42231
|
+
const mountedRef = React97__default.useRef(false);
|
|
41670
42232
|
if (!mountedRef.current) {
|
|
41671
42233
|
mountedRef.current = true;
|
|
41672
42234
|
debug("forms", "mount", {
|
|
@@ -41679,7 +42241,7 @@ var init_Form = __esm({
|
|
|
41679
42241
|
});
|
|
41680
42242
|
}
|
|
41681
42243
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
41682
|
-
const evalContext =
|
|
42244
|
+
const evalContext = React97__default.useMemo(
|
|
41683
42245
|
() => ({
|
|
41684
42246
|
formValues: formData,
|
|
41685
42247
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -41688,7 +42250,7 @@ var init_Form = __esm({
|
|
|
41688
42250
|
}),
|
|
41689
42251
|
[formData, externalContext]
|
|
41690
42252
|
);
|
|
41691
|
-
|
|
42253
|
+
React97__default.useEffect(() => {
|
|
41692
42254
|
debug("forms", "initialData-sync", {
|
|
41693
42255
|
mode: formMode,
|
|
41694
42256
|
normalizedInitialData,
|
|
@@ -41699,7 +42261,7 @@ var init_Form = __esm({
|
|
|
41699
42261
|
setFormData(normalizedInitialData);
|
|
41700
42262
|
}
|
|
41701
42263
|
}, [normalizedInitialData]);
|
|
41702
|
-
const processCalculations =
|
|
42264
|
+
const processCalculations = React97__default.useCallback(
|
|
41703
42265
|
(changedFieldId, newFormData) => {
|
|
41704
42266
|
if (!hiddenCalculations.length) return;
|
|
41705
42267
|
const context = {
|
|
@@ -41724,7 +42286,7 @@ var init_Form = __esm({
|
|
|
41724
42286
|
},
|
|
41725
42287
|
[hiddenCalculations, externalContext, eventBus]
|
|
41726
42288
|
);
|
|
41727
|
-
const checkViolations =
|
|
42289
|
+
const checkViolations = React97__default.useCallback(
|
|
41728
42290
|
(changedFieldId, newFormData) => {
|
|
41729
42291
|
if (!violationTriggers.length) return;
|
|
41730
42292
|
const context = {
|
|
@@ -41762,7 +42324,7 @@ var init_Form = __esm({
|
|
|
41762
42324
|
processCalculations(name, newFormData);
|
|
41763
42325
|
checkViolations(name, newFormData);
|
|
41764
42326
|
};
|
|
41765
|
-
const isFieldVisible =
|
|
42327
|
+
const isFieldVisible = React97__default.useCallback(
|
|
41766
42328
|
(fieldName) => {
|
|
41767
42329
|
const condition = conditionalFields[fieldName];
|
|
41768
42330
|
if (!condition) return true;
|
|
@@ -41770,7 +42332,7 @@ var init_Form = __esm({
|
|
|
41770
42332
|
},
|
|
41771
42333
|
[conditionalFields, evalContext]
|
|
41772
42334
|
);
|
|
41773
|
-
const isSectionVisible =
|
|
42335
|
+
const isSectionVisible = React97__default.useCallback(
|
|
41774
42336
|
(section) => {
|
|
41775
42337
|
if (!section.condition) return true;
|
|
41776
42338
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -41846,7 +42408,7 @@ var init_Form = __esm({
|
|
|
41846
42408
|
eventBus.emit(`UI:${onCancel}`);
|
|
41847
42409
|
}
|
|
41848
42410
|
};
|
|
41849
|
-
const renderField =
|
|
42411
|
+
const renderField = React97__default.useCallback(
|
|
41850
42412
|
(field) => {
|
|
41851
42413
|
const fieldName = field.name || field.field;
|
|
41852
42414
|
if (!fieldName) return null;
|
|
@@ -41855,19 +42417,19 @@ var init_Form = __esm({
|
|
|
41855
42417
|
}
|
|
41856
42418
|
const inputType = determineInputType(field);
|
|
41857
42419
|
const label = field.label || fieldName.charAt(0).toUpperCase() + fieldName.slice(1).replace(/([A-Z])/g, " $1");
|
|
41858
|
-
const
|
|
42420
|
+
const currentValue2 = formData[fieldName] ?? field.defaultValue ?? "";
|
|
41859
42421
|
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", "data-field": fieldName, children: [
|
|
41860
42422
|
inputType !== "checkbox" && /* @__PURE__ */ jsxs(Typography, { as: "label", variant: "label", weight: "bold", children: [
|
|
41861
42423
|
label,
|
|
41862
42424
|
field.required && /* @__PURE__ */ jsx(Typography, { as: "span", color: "error", className: "ml-1", children: "*" })
|
|
41863
42425
|
] }),
|
|
41864
|
-
renderFieldInput(field, fieldName, inputType,
|
|
42426
|
+
renderFieldInput(field, fieldName, inputType, currentValue2, label)
|
|
41865
42427
|
] }, fieldName);
|
|
41866
42428
|
},
|
|
41867
42429
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
41868
42430
|
);
|
|
41869
42431
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
41870
|
-
const normalizedFields =
|
|
42432
|
+
const normalizedFields = React97__default.useMemo(() => {
|
|
41871
42433
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
41872
42434
|
return effectiveFields.map((field) => {
|
|
41873
42435
|
if (typeof field === "string") {
|
|
@@ -41890,7 +42452,7 @@ var init_Form = __esm({
|
|
|
41890
42452
|
return field;
|
|
41891
42453
|
});
|
|
41892
42454
|
}, [effectiveFields, resolvedEntity]);
|
|
41893
|
-
const schemaFields =
|
|
42455
|
+
const schemaFields = React97__default.useMemo(() => {
|
|
41894
42456
|
if (normalizedFields.length === 0) return null;
|
|
41895
42457
|
if (isDebugEnabled()) {
|
|
41896
42458
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -41900,7 +42462,7 @@ var init_Form = __esm({
|
|
|
41900
42462
|
}
|
|
41901
42463
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
41902
42464
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
41903
|
-
const sectionElements =
|
|
42465
|
+
const sectionElements = React97__default.useMemo(() => {
|
|
41904
42466
|
if (!sections || sections.length === 0) return null;
|
|
41905
42467
|
return sections.map((section) => {
|
|
41906
42468
|
if (!isSectionVisible(section)) {
|
|
@@ -41936,7 +42498,7 @@ var init_Form = __esm({
|
|
|
41936
42498
|
] }, section.id);
|
|
41937
42499
|
}).filter(Boolean);
|
|
41938
42500
|
}, [sections, isSectionVisible, collapsedSections, renderField, gap]);
|
|
41939
|
-
function renderFieldInput(field, fieldName, inputType,
|
|
42501
|
+
function renderFieldInput(field, fieldName, inputType, currentValue2, label) {
|
|
41940
42502
|
const commonProps = {
|
|
41941
42503
|
id: fieldName,
|
|
41942
42504
|
name: fieldName,
|
|
@@ -41953,7 +42515,7 @@ var init_Form = __esm({
|
|
|
41953
42515
|
{
|
|
41954
42516
|
...commonProps,
|
|
41955
42517
|
label: label + (field.required ? " *" : ""),
|
|
41956
|
-
checked: Boolean(
|
|
42518
|
+
checked: Boolean(currentValue2),
|
|
41957
42519
|
onChange: (e) => handleChange(fieldName, e.target.checked)
|
|
41958
42520
|
}
|
|
41959
42521
|
);
|
|
@@ -41962,7 +42524,7 @@ var init_Form = __esm({
|
|
|
41962
42524
|
Textarea,
|
|
41963
42525
|
{
|
|
41964
42526
|
...commonProps,
|
|
41965
|
-
value: String(
|
|
42527
|
+
value: String(currentValue2),
|
|
41966
42528
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
41967
42529
|
minLength: field.min,
|
|
41968
42530
|
maxLength: field.max
|
|
@@ -41975,7 +42537,7 @@ var init_Form = __esm({
|
|
|
41975
42537
|
{
|
|
41976
42538
|
...commonProps,
|
|
41977
42539
|
options,
|
|
41978
|
-
value: String(
|
|
42540
|
+
value: String(currentValue2),
|
|
41979
42541
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
41980
42542
|
placeholder: field.placeholder || `Select ${label}...`
|
|
41981
42543
|
}
|
|
@@ -41988,7 +42550,7 @@ var init_Form = __esm({
|
|
|
41988
42550
|
RelationSelect,
|
|
41989
42551
|
{
|
|
41990
42552
|
...commonProps,
|
|
41991
|
-
value:
|
|
42553
|
+
value: currentValue2 ? String(currentValue2) : void 0,
|
|
41992
42554
|
onChange: (value) => handleChange(fieldName, value),
|
|
41993
42555
|
options: relationOptions,
|
|
41994
42556
|
isLoading: relationLoading,
|
|
@@ -42004,7 +42566,7 @@ var init_Form = __esm({
|
|
|
42004
42566
|
{
|
|
42005
42567
|
...commonProps,
|
|
42006
42568
|
type: "number",
|
|
42007
|
-
value:
|
|
42569
|
+
value: currentValue2 !== void 0 && currentValue2 !== "" ? String(currentValue2) : "",
|
|
42008
42570
|
onChange: (e) => handleChange(
|
|
42009
42571
|
fieldName,
|
|
42010
42572
|
e.target.value ? Number(e.target.value) : void 0
|
|
@@ -42019,7 +42581,7 @@ var init_Form = __esm({
|
|
|
42019
42581
|
{
|
|
42020
42582
|
...commonProps,
|
|
42021
42583
|
type: "date",
|
|
42022
|
-
value: formatDateValue(
|
|
42584
|
+
value: formatDateValue(currentValue2),
|
|
42023
42585
|
onChange: (e) => handleChange(fieldName, e.target.value)
|
|
42024
42586
|
}
|
|
42025
42587
|
);
|
|
@@ -42029,7 +42591,7 @@ var init_Form = __esm({
|
|
|
42029
42591
|
{
|
|
42030
42592
|
...commonProps,
|
|
42031
42593
|
type: "datetime-local",
|
|
42032
|
-
value: formatDateTimeValue(
|
|
42594
|
+
value: formatDateTimeValue(currentValue2),
|
|
42033
42595
|
onChange: (e) => handleChange(fieldName, e.target.value)
|
|
42034
42596
|
}
|
|
42035
42597
|
);
|
|
@@ -42039,7 +42601,7 @@ var init_Form = __esm({
|
|
|
42039
42601
|
{
|
|
42040
42602
|
...commonProps,
|
|
42041
42603
|
type: "email",
|
|
42042
|
-
value: String(
|
|
42604
|
+
value: String(currentValue2),
|
|
42043
42605
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
42044
42606
|
minLength: field.min,
|
|
42045
42607
|
maxLength: field.max
|
|
@@ -42051,7 +42613,7 @@ var init_Form = __esm({
|
|
|
42051
42613
|
{
|
|
42052
42614
|
...commonProps,
|
|
42053
42615
|
type: "url",
|
|
42054
|
-
value: String(
|
|
42616
|
+
value: String(currentValue2),
|
|
42055
42617
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
42056
42618
|
minLength: field.min,
|
|
42057
42619
|
maxLength: field.max
|
|
@@ -42063,7 +42625,7 @@ var init_Form = __esm({
|
|
|
42063
42625
|
{
|
|
42064
42626
|
...commonProps,
|
|
42065
42627
|
type: "password",
|
|
42066
|
-
value: String(
|
|
42628
|
+
value: String(currentValue2),
|
|
42067
42629
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
42068
42630
|
minLength: field.min,
|
|
42069
42631
|
maxLength: field.max
|
|
@@ -42076,7 +42638,7 @@ var init_Form = __esm({
|
|
|
42076
42638
|
{
|
|
42077
42639
|
...commonProps,
|
|
42078
42640
|
type: "text",
|
|
42079
|
-
value: String(
|
|
42641
|
+
value: String(currentValue2),
|
|
42080
42642
|
onChange: (e) => handleChange(fieldName, e.target.value),
|
|
42081
42643
|
minLength: field.min,
|
|
42082
42644
|
maxLength: field.max
|
|
@@ -42731,7 +43293,7 @@ var init_GenericAppTemplate = __esm({
|
|
|
42731
43293
|
});
|
|
42732
43294
|
var HeroOrganism, _HeroClickInterceptor;
|
|
42733
43295
|
var init_HeroOrganism = __esm({
|
|
42734
|
-
"components/
|
|
43296
|
+
"components/marketing/organisms/HeroOrganism.tsx"() {
|
|
42735
43297
|
"use client";
|
|
42736
43298
|
init_cn();
|
|
42737
43299
|
init_useEventBus();
|
|
@@ -43175,7 +43737,7 @@ var init_List = __esm({
|
|
|
43175
43737
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
43176
43738
|
return [];
|
|
43177
43739
|
}, [entity]);
|
|
43178
|
-
const getItemActions =
|
|
43740
|
+
const getItemActions = React97__default.useCallback(
|
|
43179
43741
|
(item) => {
|
|
43180
43742
|
if (!itemActions) return [];
|
|
43181
43743
|
if (typeof itemActions === "function") {
|
|
@@ -43651,7 +44213,7 @@ var init_MediaGallery = __esm({
|
|
|
43651
44213
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
43652
44214
|
);
|
|
43653
44215
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
43654
|
-
const items =
|
|
44216
|
+
const items = React97__default.useMemo(() => {
|
|
43655
44217
|
if (propItems) return propItems;
|
|
43656
44218
|
if (entityData.length === 0) return [];
|
|
43657
44219
|
return entityData.map((record, idx) => ({
|
|
@@ -43812,7 +44374,7 @@ var init_MediaGallery = __esm({
|
|
|
43812
44374
|
}
|
|
43813
44375
|
});
|
|
43814
44376
|
function extractTitle2(children) {
|
|
43815
|
-
if (!
|
|
44377
|
+
if (!React97__default.isValidElement(children)) return void 0;
|
|
43816
44378
|
const props = children.props;
|
|
43817
44379
|
if (typeof props.title === "string") {
|
|
43818
44380
|
return props.title;
|
|
@@ -44243,7 +44805,7 @@ var init_debugRegistry = __esm({
|
|
|
44243
44805
|
}
|
|
44244
44806
|
});
|
|
44245
44807
|
function useDebugData() {
|
|
44246
|
-
const [data, setData] =
|
|
44808
|
+
const [data, setData] = React97.useState(() => ({
|
|
44247
44809
|
traits: [],
|
|
44248
44810
|
ticks: [],
|
|
44249
44811
|
guards: [],
|
|
@@ -44257,7 +44819,7 @@ function useDebugData() {
|
|
|
44257
44819
|
},
|
|
44258
44820
|
lastUpdate: Date.now()
|
|
44259
44821
|
}));
|
|
44260
|
-
|
|
44822
|
+
React97.useEffect(() => {
|
|
44261
44823
|
const updateData = () => {
|
|
44262
44824
|
setData({
|
|
44263
44825
|
traits: getAllTraits(),
|
|
@@ -44366,12 +44928,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
44366
44928
|
return positions;
|
|
44367
44929
|
}
|
|
44368
44930
|
function WalkMinimap() {
|
|
44369
|
-
const [walkStep, setWalkStep] =
|
|
44370
|
-
const [traits2, setTraits] =
|
|
44371
|
-
const [coveredEdges, setCoveredEdges] =
|
|
44372
|
-
const [completedTraits, setCompletedTraits] =
|
|
44373
|
-
const prevTraitRef =
|
|
44374
|
-
|
|
44931
|
+
const [walkStep, setWalkStep] = React97.useState(null);
|
|
44932
|
+
const [traits2, setTraits] = React97.useState([]);
|
|
44933
|
+
const [coveredEdges, setCoveredEdges] = React97.useState([]);
|
|
44934
|
+
const [completedTraits, setCompletedTraits] = React97.useState(/* @__PURE__ */ new Set());
|
|
44935
|
+
const prevTraitRef = React97.useRef(null);
|
|
44936
|
+
React97.useEffect(() => {
|
|
44375
44937
|
const interval = setInterval(() => {
|
|
44376
44938
|
const w = window;
|
|
44377
44939
|
const step = w.__orbitalWalkStep;
|
|
@@ -44807,15 +45369,15 @@ var init_EntitiesTab = __esm({
|
|
|
44807
45369
|
});
|
|
44808
45370
|
function EventFlowTab({ events: events2 }) {
|
|
44809
45371
|
const { t } = useTranslate();
|
|
44810
|
-
const [filter, setFilter] =
|
|
44811
|
-
const containerRef =
|
|
44812
|
-
const [autoScroll, setAutoScroll] =
|
|
44813
|
-
|
|
45372
|
+
const [filter, setFilter] = React97.useState("all");
|
|
45373
|
+
const containerRef = React97.useRef(null);
|
|
45374
|
+
const [autoScroll, setAutoScroll] = React97.useState(true);
|
|
45375
|
+
React97.useEffect(() => {
|
|
44814
45376
|
if (autoScroll && containerRef.current) {
|
|
44815
45377
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
44816
45378
|
}
|
|
44817
45379
|
}, [events2.length, autoScroll]);
|
|
44818
|
-
const filteredEvents =
|
|
45380
|
+
const filteredEvents = React97.useMemo(() => {
|
|
44819
45381
|
if (filter === "all") return events2;
|
|
44820
45382
|
return events2.filter((e) => e.type === filter);
|
|
44821
45383
|
}, [events2, filter]);
|
|
@@ -44931,7 +45493,7 @@ var init_EventFlowTab = __esm({
|
|
|
44931
45493
|
});
|
|
44932
45494
|
function GuardsPanel({ guards }) {
|
|
44933
45495
|
const { t } = useTranslate();
|
|
44934
|
-
const [filter, setFilter] =
|
|
45496
|
+
const [filter, setFilter] = React97.useState("all");
|
|
44935
45497
|
if (guards.length === 0) {
|
|
44936
45498
|
return /* @__PURE__ */ jsx(
|
|
44937
45499
|
EmptyState,
|
|
@@ -44944,7 +45506,7 @@ function GuardsPanel({ guards }) {
|
|
|
44944
45506
|
}
|
|
44945
45507
|
const passedCount = guards.filter((g) => g.result).length;
|
|
44946
45508
|
const failedCount = guards.length - passedCount;
|
|
44947
|
-
const filteredGuards =
|
|
45509
|
+
const filteredGuards = React97.useMemo(() => {
|
|
44948
45510
|
if (filter === "all") return guards;
|
|
44949
45511
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
44950
45512
|
return guards.filter((g) => !g.result);
|
|
@@ -45107,10 +45669,10 @@ function EffectBadge({ effect }) {
|
|
|
45107
45669
|
}
|
|
45108
45670
|
function TransitionTimeline({ transitions }) {
|
|
45109
45671
|
const { t } = useTranslate();
|
|
45110
|
-
const containerRef =
|
|
45111
|
-
const [autoScroll, setAutoScroll] =
|
|
45112
|
-
const [expandedId, setExpandedId] =
|
|
45113
|
-
|
|
45672
|
+
const containerRef = React97.useRef(null);
|
|
45673
|
+
const [autoScroll, setAutoScroll] = React97.useState(true);
|
|
45674
|
+
const [expandedId, setExpandedId] = React97.useState(null);
|
|
45675
|
+
React97.useEffect(() => {
|
|
45114
45676
|
if (autoScroll && containerRef.current) {
|
|
45115
45677
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
45116
45678
|
}
|
|
@@ -45390,9 +45952,9 @@ function getAllEvents(traits2) {
|
|
|
45390
45952
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
45391
45953
|
const eventBus = useEventBus();
|
|
45392
45954
|
const { t } = useTranslate();
|
|
45393
|
-
const [log13, setLog] =
|
|
45394
|
-
const prevStatesRef =
|
|
45395
|
-
|
|
45955
|
+
const [log13, setLog] = React97.useState([]);
|
|
45956
|
+
const prevStatesRef = React97.useRef(/* @__PURE__ */ new Map());
|
|
45957
|
+
React97.useEffect(() => {
|
|
45396
45958
|
for (const trait of traits2) {
|
|
45397
45959
|
const prev = prevStatesRef.current.get(trait.id);
|
|
45398
45960
|
if (prev && prev !== trait.currentState) {
|
|
@@ -45561,10 +46123,10 @@ function VerifyModePanel({
|
|
|
45561
46123
|
localCount
|
|
45562
46124
|
}) {
|
|
45563
46125
|
const { t } = useTranslate();
|
|
45564
|
-
const [expanded, setExpanded] =
|
|
45565
|
-
const scrollRef =
|
|
45566
|
-
const prevCountRef =
|
|
45567
|
-
|
|
46126
|
+
const [expanded, setExpanded] = React97.useState(true);
|
|
46127
|
+
const scrollRef = React97.useRef(null);
|
|
46128
|
+
const prevCountRef = React97.useRef(0);
|
|
46129
|
+
React97.useEffect(() => {
|
|
45568
46130
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
45569
46131
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
45570
46132
|
}
|
|
@@ -45621,10 +46183,10 @@ function RuntimeDebugger({
|
|
|
45621
46183
|
schema
|
|
45622
46184
|
}) {
|
|
45623
46185
|
const { t } = useTranslate();
|
|
45624
|
-
const [isCollapsed, setIsCollapsed] =
|
|
45625
|
-
const [isVisible, setIsVisible] =
|
|
46186
|
+
const [isCollapsed, setIsCollapsed] = React97.useState(mode === "verify" ? true : defaultCollapsed);
|
|
46187
|
+
const [isVisible, setIsVisible] = React97.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
45626
46188
|
const debugData = useDebugData();
|
|
45627
|
-
|
|
46189
|
+
React97.useEffect(() => {
|
|
45628
46190
|
if (mode === "inline") return;
|
|
45629
46191
|
return onDebugToggle((enabled) => {
|
|
45630
46192
|
setIsVisible(enabled);
|
|
@@ -45633,7 +46195,7 @@ function RuntimeDebugger({
|
|
|
45633
46195
|
}
|
|
45634
46196
|
});
|
|
45635
46197
|
}, [mode]);
|
|
45636
|
-
|
|
46198
|
+
React97.useEffect(() => {
|
|
45637
46199
|
if (mode === "inline") return;
|
|
45638
46200
|
const handleKeyDown = (e) => {
|
|
45639
46201
|
if (e.key === "`" && isVisible) {
|
|
@@ -46082,7 +46644,7 @@ function SequenceBar({
|
|
|
46082
46644
|
onSlotRemove(index);
|
|
46083
46645
|
}, [onSlotRemove, playing]);
|
|
46084
46646
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
46085
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
46647
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
46086
46648
|
i > 0 && /* @__PURE__ */ jsx(
|
|
46087
46649
|
Typography,
|
|
46088
46650
|
{
|
|
@@ -46358,7 +46920,7 @@ var init_SequencerBoard = __esm({
|
|
|
46358
46920
|
});
|
|
46359
46921
|
var ShowcaseOrganism;
|
|
46360
46922
|
var init_ShowcaseOrganism = __esm({
|
|
46361
|
-
"components/
|
|
46923
|
+
"components/marketing/organisms/ShowcaseOrganism.tsx"() {
|
|
46362
46924
|
"use client";
|
|
46363
46925
|
init_cn();
|
|
46364
46926
|
init_useEventBus();
|
|
@@ -47040,7 +47602,7 @@ var init_StatCard = __esm({
|
|
|
47040
47602
|
title: propTitle,
|
|
47041
47603
|
value: propValue,
|
|
47042
47604
|
previousValue,
|
|
47043
|
-
currentValue,
|
|
47605
|
+
currentValue: currentValue2,
|
|
47044
47606
|
trend: manualTrend,
|
|
47045
47607
|
trendDirection: manualDirection,
|
|
47046
47608
|
invertTrend = false,
|
|
@@ -47061,7 +47623,7 @@ var init_StatCard = __esm({
|
|
|
47061
47623
|
const labelToUse = propLabel ?? propTitle;
|
|
47062
47624
|
const eventBus = useEventBus();
|
|
47063
47625
|
const { t } = useTranslate();
|
|
47064
|
-
const handleActionClick =
|
|
47626
|
+
const handleActionClick = React97__default.useCallback(() => {
|
|
47065
47627
|
if (action?.event) {
|
|
47066
47628
|
eventBus.emit(`UI:${action.event}`, {});
|
|
47067
47629
|
}
|
|
@@ -47072,7 +47634,7 @@ var init_StatCard = __esm({
|
|
|
47072
47634
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
47073
47635
|
const isLoading = externalLoading ?? false;
|
|
47074
47636
|
const error = externalError;
|
|
47075
|
-
const computeMetricValue =
|
|
47637
|
+
const computeMetricValue = React97__default.useCallback(
|
|
47076
47638
|
(metric, items) => {
|
|
47077
47639
|
if (metric.value !== void 0) {
|
|
47078
47640
|
return metric.value;
|
|
@@ -47111,7 +47673,7 @@ var init_StatCard = __esm({
|
|
|
47111
47673
|
},
|
|
47112
47674
|
[]
|
|
47113
47675
|
);
|
|
47114
|
-
const schemaStats =
|
|
47676
|
+
const schemaStats = React97__default.useMemo(() => {
|
|
47115
47677
|
if (!metrics || metrics.length === 0) return null;
|
|
47116
47678
|
return metrics.map((metric) => ({
|
|
47117
47679
|
label: metric.label,
|
|
@@ -47119,13 +47681,13 @@ var init_StatCard = __esm({
|
|
|
47119
47681
|
format: metric.format
|
|
47120
47682
|
}));
|
|
47121
47683
|
}, [metrics, data, computeMetricValue]);
|
|
47122
|
-
const calculatedTrend =
|
|
47684
|
+
const calculatedTrend = React97__default.useMemo(() => {
|
|
47123
47685
|
if (manualTrend !== void 0) return manualTrend;
|
|
47124
|
-
if (previousValue === void 0 ||
|
|
47686
|
+
if (previousValue === void 0 || currentValue2 === void 0)
|
|
47125
47687
|
return void 0;
|
|
47126
|
-
if (previousValue === 0) return
|
|
47127
|
-
return (
|
|
47128
|
-
}, [manualTrend, previousValue,
|
|
47688
|
+
if (previousValue === 0) return currentValue2 > 0 ? 100 : 0;
|
|
47689
|
+
return (currentValue2 - previousValue) / previousValue * 100;
|
|
47690
|
+
}, [manualTrend, previousValue, currentValue2]);
|
|
47129
47691
|
if (schemaStats && schemaStats.length > 1) {
|
|
47130
47692
|
if (isLoading) {
|
|
47131
47693
|
return /* @__PURE__ */ jsx(
|
|
@@ -47783,7 +48345,7 @@ var init_StatsOrganism = __esm({
|
|
|
47783
48345
|
});
|
|
47784
48346
|
var StepFlowOrganism;
|
|
47785
48347
|
var init_StepFlowOrganism = __esm({
|
|
47786
|
-
"components/
|
|
48348
|
+
"components/marketing/organisms/StepFlowOrganism.tsx"() {
|
|
47787
48349
|
"use client";
|
|
47788
48350
|
init_cn();
|
|
47789
48351
|
init_Stack();
|
|
@@ -48053,7 +48615,7 @@ var init_Timeline = __esm({
|
|
|
48053
48615
|
}) => {
|
|
48054
48616
|
const { t } = useTranslate();
|
|
48055
48617
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
48056
|
-
const items =
|
|
48618
|
+
const items = React97__default.useMemo(() => {
|
|
48057
48619
|
if (propItems) return propItems;
|
|
48058
48620
|
if (entityData.length === 0) return [];
|
|
48059
48621
|
return entityData.map((record, idx) => {
|
|
@@ -48160,7 +48722,7 @@ var init_Timeline = __esm({
|
|
|
48160
48722
|
}
|
|
48161
48723
|
});
|
|
48162
48724
|
function extractToastProps(children) {
|
|
48163
|
-
if (!
|
|
48725
|
+
if (!React97__default.isValidElement(children)) {
|
|
48164
48726
|
if (typeof children === "string") {
|
|
48165
48727
|
return { message: children };
|
|
48166
48728
|
}
|
|
@@ -48198,7 +48760,7 @@ var init_ToastSlot = __esm({
|
|
|
48198
48760
|
eventBus.emit("UI:CLOSE");
|
|
48199
48761
|
};
|
|
48200
48762
|
if (!isVisible) return null;
|
|
48201
|
-
const isCustomContent =
|
|
48763
|
+
const isCustomContent = React97__default.isValidElement(children) && !message;
|
|
48202
48764
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
48203
48765
|
Toast,
|
|
48204
48766
|
{
|
|
@@ -48708,12 +49270,12 @@ var init_WorldMapTemplate = __esm({
|
|
|
48708
49270
|
}
|
|
48709
49271
|
});
|
|
48710
49272
|
function lazyThree(name, loader) {
|
|
48711
|
-
const Lazy =
|
|
49273
|
+
const Lazy = React97__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
48712
49274
|
function ThreeWrapper(props) {
|
|
48713
|
-
return
|
|
48714
|
-
|
|
49275
|
+
return React97__default.createElement(
|
|
49276
|
+
React97__default.Suspense,
|
|
48715
49277
|
{ fallback: null },
|
|
48716
|
-
|
|
49278
|
+
React97__default.createElement(Lazy, props)
|
|
48717
49279
|
);
|
|
48718
49280
|
}
|
|
48719
49281
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -48733,6 +49295,7 @@ var init_component_registry_generated = __esm({
|
|
|
48733
49295
|
init_AnimatedReveal();
|
|
48734
49296
|
init_ArticleSection();
|
|
48735
49297
|
init_Aside();
|
|
49298
|
+
init_AssetPicker();
|
|
48736
49299
|
init_AuthLayout();
|
|
48737
49300
|
init_BattleBoard();
|
|
48738
49301
|
init_BattleTemplate();
|
|
@@ -48832,11 +49395,13 @@ var init_component_registry_generated = __esm({
|
|
|
48832
49395
|
init_GradientDivider();
|
|
48833
49396
|
init_GraphCanvas();
|
|
48834
49397
|
init_GraphView();
|
|
49398
|
+
init_GridPicker();
|
|
48835
49399
|
init_Header();
|
|
48836
49400
|
init_HealthBar();
|
|
48837
49401
|
init_HealthPanel();
|
|
48838
49402
|
init_HeroOrganism();
|
|
48839
49403
|
init_HeroSection();
|
|
49404
|
+
init_IconPicker();
|
|
48840
49405
|
init_InfiniteScrollSentinel();
|
|
48841
49406
|
init_InputGroup();
|
|
48842
49407
|
init_InstallBox();
|
|
@@ -48881,6 +49446,7 @@ var init_component_registry_generated = __esm({
|
|
|
48881
49446
|
init_PricingOrganism();
|
|
48882
49447
|
init_PricingPageTemplate();
|
|
48883
49448
|
init_ProgressDots();
|
|
49449
|
+
init_PropertyInspector();
|
|
48884
49450
|
init_PullQuote();
|
|
48885
49451
|
init_PullToRefresh();
|
|
48886
49452
|
init_QrScanner();
|
|
@@ -49004,6 +49570,7 @@ var init_component_registry_generated = __esm({
|
|
|
49004
49570
|
"AnimatedReveal": AnimatedReveal,
|
|
49005
49571
|
"ArticleSection": ArticleSection,
|
|
49006
49572
|
"Aside": Aside,
|
|
49573
|
+
"AssetPicker": AssetPicker,
|
|
49007
49574
|
"AuthLayout": AuthLayout,
|
|
49008
49575
|
"Avatar": AvatarPattern,
|
|
49009
49576
|
"AvatarPattern": AvatarPattern,
|
|
@@ -49123,6 +49690,7 @@ var init_component_registry_generated = __esm({
|
|
|
49123
49690
|
"GraphView": GraphView,
|
|
49124
49691
|
"Grid": GridPattern,
|
|
49125
49692
|
"GridPattern": GridPattern,
|
|
49693
|
+
"GridPicker": GridPicker,
|
|
49126
49694
|
"HStack": HStackPattern,
|
|
49127
49695
|
"HStackPattern": HStackPattern,
|
|
49128
49696
|
"Header": Header,
|
|
@@ -49132,6 +49700,7 @@ var init_component_registry_generated = __esm({
|
|
|
49132
49700
|
"HeroSection": HeroSection,
|
|
49133
49701
|
"Icon": IconPattern,
|
|
49134
49702
|
"IconPattern": IconPattern,
|
|
49703
|
+
"IconPicker": IconPicker,
|
|
49135
49704
|
"InfiniteScrollSentinel": InfiniteScrollSentinel,
|
|
49136
49705
|
"Input": InputPattern,
|
|
49137
49706
|
"InputGroup": InputGroup,
|
|
@@ -49188,6 +49757,7 @@ var init_component_registry_generated = __esm({
|
|
|
49188
49757
|
"ProgressBar": ProgressBarPattern,
|
|
49189
49758
|
"ProgressBarPattern": ProgressBarPattern,
|
|
49190
49759
|
"ProgressDots": ProgressDots,
|
|
49760
|
+
"PropertyInspector": PropertyInspector,
|
|
49191
49761
|
"PullQuote": PullQuote,
|
|
49192
49762
|
"PullToRefresh": PullToRefresh,
|
|
49193
49763
|
"QrScanner": QrScanner,
|
|
@@ -49329,7 +49899,7 @@ function SuspenseConfigProvider({
|
|
|
49329
49899
|
config,
|
|
49330
49900
|
children
|
|
49331
49901
|
}) {
|
|
49332
|
-
return
|
|
49902
|
+
return React97__default.createElement(
|
|
49333
49903
|
SuspenseConfigContext.Provider,
|
|
49334
49904
|
{ value: config },
|
|
49335
49905
|
children
|
|
@@ -49819,7 +50389,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
49819
50389
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
49820
50390
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
49821
50391
|
}
|
|
49822
|
-
return /* @__PURE__ */ jsx(
|
|
50392
|
+
return /* @__PURE__ */ jsx(React97__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
49823
50393
|
}
|
|
49824
50394
|
if (!child || typeof child !== "object") return null;
|
|
49825
50395
|
const childId = `${parentId}-${index}`;
|
|
@@ -49859,14 +50429,14 @@ function isPatternConfig(value) {
|
|
|
49859
50429
|
if (value === null || value === void 0) return false;
|
|
49860
50430
|
if (typeof value !== "object") return false;
|
|
49861
50431
|
if (Array.isArray(value)) return false;
|
|
49862
|
-
if (
|
|
50432
|
+
if (React97__default.isValidElement(value)) return false;
|
|
49863
50433
|
if (value instanceof Date) return false;
|
|
49864
50434
|
if (typeof value === "function") return false;
|
|
49865
50435
|
const record = value;
|
|
49866
50436
|
return "type" in record && typeof record.type === "string";
|
|
49867
50437
|
}
|
|
49868
50438
|
function isPlainConfigObject(value) {
|
|
49869
|
-
if (
|
|
50439
|
+
if (React97__default.isValidElement(value)) return false;
|
|
49870
50440
|
if (value instanceof Date) return false;
|
|
49871
50441
|
const proto = Object.getPrototypeOf(value);
|
|
49872
50442
|
return proto === Object.prototype || proto === null;
|
|
@@ -50355,7 +50925,7 @@ var AvlTransition = ({
|
|
|
50355
50925
|
opacity = 1,
|
|
50356
50926
|
className
|
|
50357
50927
|
}) => {
|
|
50358
|
-
const ids =
|
|
50928
|
+
const ids = React97__default.useMemo(() => {
|
|
50359
50929
|
avlTransitionId += 1;
|
|
50360
50930
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
50361
50931
|
}, []);
|
|
@@ -50916,7 +51486,7 @@ var AvlStateMachine = ({
|
|
|
50916
51486
|
color = "var(--color-primary)",
|
|
50917
51487
|
animated = false
|
|
50918
51488
|
}) => {
|
|
50919
|
-
const ids =
|
|
51489
|
+
const ids = React97__default.useMemo(() => {
|
|
50920
51490
|
avlSmId += 1;
|
|
50921
51491
|
const base = `avl-sm-${avlSmId}`;
|
|
50922
51492
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -51115,7 +51685,7 @@ var AvlOrbitalUnit = ({
|
|
|
51115
51685
|
color = "var(--color-primary)",
|
|
51116
51686
|
animated = false
|
|
51117
51687
|
}) => {
|
|
51118
|
-
const ids =
|
|
51688
|
+
const ids = React97__default.useMemo(() => {
|
|
51119
51689
|
avlOuId += 1;
|
|
51120
51690
|
const base = `avl-ou-${avlOuId}`;
|
|
51121
51691
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -51211,7 +51781,7 @@ var AvlClosedCircuit = ({
|
|
|
51211
51781
|
color = "var(--color-primary)",
|
|
51212
51782
|
animated = false
|
|
51213
51783
|
}) => {
|
|
51214
|
-
const ids =
|
|
51784
|
+
const ids = React97__default.useMemo(() => {
|
|
51215
51785
|
avlCcId += 1;
|
|
51216
51786
|
const base = `avl-cc-${avlCcId}`;
|
|
51217
51787
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -51366,7 +51936,7 @@ var AvlEmitListen = ({
|
|
|
51366
51936
|
color = "var(--color-primary)",
|
|
51367
51937
|
animated = false
|
|
51368
51938
|
}) => {
|
|
51369
|
-
const ids =
|
|
51939
|
+
const ids = React97__default.useMemo(() => {
|
|
51370
51940
|
avlElId += 1;
|
|
51371
51941
|
const base = `avl-el-${avlElId}`;
|
|
51372
51942
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -51640,7 +52210,7 @@ function renderNode(node, color, glowId) {
|
|
|
51640
52210
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
51641
52211
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
51642
52212
|
const nc = nodeColor(node.type, color);
|
|
51643
|
-
return /* @__PURE__ */ jsxs(
|
|
52213
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
51644
52214
|
node.children.map((child, i) => {
|
|
51645
52215
|
const childR = Math.max(
|
|
51646
52216
|
child.type === "operator" ? 20 : 16,
|
|
@@ -51697,7 +52267,7 @@ var AvlExprTree = ({
|
|
|
51697
52267
|
className,
|
|
51698
52268
|
color = "var(--color-primary)"
|
|
51699
52269
|
}) => {
|
|
51700
|
-
const ids =
|
|
52270
|
+
const ids = React97__default.useMemo(() => {
|
|
51701
52271
|
avlEtId += 1;
|
|
51702
52272
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
51703
52273
|
}, []);
|
|
@@ -52521,7 +53091,7 @@ var SystemNode = ({ data }) => {
|
|
|
52521
53091
|
stateChain.length > 0 && /* @__PURE__ */ jsx("svg", { width: stateChain.length * 14 + 2, height: 10, viewBox: `0 0 ${stateChain.length * 14 + 2} 10`, children: stateChain.map((s, i) => {
|
|
52522
53092
|
const tc = transitionCounts[s.name] ?? 0;
|
|
52523
53093
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
52524
|
-
return /* @__PURE__ */ jsxs(
|
|
53094
|
+
return /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
52525
53095
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
52526
53096
|
i < stateChain.length - 1 && /* @__PURE__ */ jsx("line", { x1: i * 14 + 12, y1: 5, x2: i * 14 + 15, y2: 5, stroke: "var(--color-border)", strokeWidth: 0.5 })
|
|
52527
53097
|
] }, s.name);
|
|
@@ -53673,7 +54243,7 @@ function resolveLambdaBindings(body, params, item, index) {
|
|
|
53673
54243
|
if (Array.isArray(body)) {
|
|
53674
54244
|
return body.map((b) => recur(b));
|
|
53675
54245
|
}
|
|
53676
|
-
if (body !== null && typeof body === "object" && !
|
|
54246
|
+
if (body !== null && typeof body === "object" && !React97__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
53677
54247
|
const out = {};
|
|
53678
54248
|
for (const [k, v] of Object.entries(body)) {
|
|
53679
54249
|
out[k] = recur(v);
|
|
@@ -53692,7 +54262,7 @@ function getSlotContentRenderer2() {
|
|
|
53692
54262
|
function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
53693
54263
|
return (item, index) => {
|
|
53694
54264
|
const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
|
|
53695
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
54265
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React97__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
53696
54266
|
return null;
|
|
53697
54267
|
}
|
|
53698
54268
|
const record = resolvedBody;
|
|
@@ -53711,7 +54281,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
|
53711
54281
|
props: childProps,
|
|
53712
54282
|
priority: 0
|
|
53713
54283
|
};
|
|
53714
|
-
return
|
|
54284
|
+
return React97__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
53715
54285
|
};
|
|
53716
54286
|
}
|
|
53717
54287
|
function convertNode(node, callerKey) {
|
|
@@ -53730,7 +54300,7 @@ function convertNode(node, callerKey) {
|
|
|
53730
54300
|
});
|
|
53731
54301
|
return anyChanged ? mapped : node;
|
|
53732
54302
|
}
|
|
53733
|
-
if (typeof node === "object" && !
|
|
54303
|
+
if (typeof node === "object" && !React97__default.isValidElement(node) && !(node instanceof Date)) {
|
|
53734
54304
|
return convertObjectProps(node);
|
|
53735
54305
|
}
|
|
53736
54306
|
return node;
|
|
@@ -55743,8 +56313,8 @@ function CanvasDndProvider({
|
|
|
55743
56313
|
}) {
|
|
55744
56314
|
const eventBus = useEventBus();
|
|
55745
56315
|
const sensors = useAlmadarDndSensors(false);
|
|
55746
|
-
const [activePayload, setActivePayload] =
|
|
55747
|
-
const handleDragStart =
|
|
56316
|
+
const [activePayload, setActivePayload] = React97__default.useState(null);
|
|
56317
|
+
const handleDragStart = React97__default.useCallback((e) => {
|
|
55748
56318
|
const data = e.active.data.current;
|
|
55749
56319
|
const payload = data?.payload;
|
|
55750
56320
|
if (payload) {
|
|
@@ -55755,7 +56325,7 @@ function CanvasDndProvider({
|
|
|
55755
56325
|
log11.warn("dragStart:missing-payload", { id: e.active.id });
|
|
55756
56326
|
}
|
|
55757
56327
|
}, [eventBus]);
|
|
55758
|
-
const handleDragEnd =
|
|
56328
|
+
const handleDragEnd = React97__default.useCallback((e) => {
|
|
55759
56329
|
setActivePayload(null);
|
|
55760
56330
|
const activeData = e.active.data.current;
|
|
55761
56331
|
const payload = activeData?.payload;
|
|
@@ -55784,7 +56354,7 @@ function CanvasDndProvider({
|
|
|
55784
56354
|
const suppressed = onDrop ? onDrop(drop) === true : false;
|
|
55785
56355
|
if (!suppressed) defaultEmit(eventBus, drop);
|
|
55786
56356
|
}, [eventBus, onDrop]);
|
|
55787
|
-
const handleDragCancel =
|
|
56357
|
+
const handleDragCancel = React97__default.useCallback(() => {
|
|
55788
56358
|
setActivePayload(null);
|
|
55789
56359
|
log11.info("dragCancel");
|
|
55790
56360
|
}, []);
|
|
@@ -56538,7 +57108,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
56538
57108
|
}
|
|
56539
57109
|
);
|
|
56540
57110
|
};
|
|
56541
|
-
var OrbPreviewNode =
|
|
57111
|
+
var OrbPreviewNode = React97__default.memo(OrbPreviewNodeInner);
|
|
56542
57112
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
56543
57113
|
orbPreviewLog.debug("export-resolved", () => ({
|
|
56544
57114
|
type: typeof OrbPreviewNode,
|
|
@@ -56643,7 +57213,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
56643
57213
|
) })
|
|
56644
57214
|
] });
|
|
56645
57215
|
};
|
|
56646
|
-
var EventFlowEdge =
|
|
57216
|
+
var EventFlowEdge = React97__default.memo(EventFlowEdgeInner);
|
|
56647
57217
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
56648
57218
|
|
|
56649
57219
|
// components/avl/molecules/BehaviorComposeNode.tsx
|
|
@@ -56790,7 +57360,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
56790
57360
|
}
|
|
56791
57361
|
);
|
|
56792
57362
|
};
|
|
56793
|
-
var BehaviorComposeNode =
|
|
57363
|
+
var BehaviorComposeNode = React97__default.memo(BehaviorComposeNodeInner);
|
|
56794
57364
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
56795
57365
|
|
|
56796
57366
|
// components/avl/molecules/avl-behavior-compose-converter.ts
|
|
@@ -57186,8 +57756,8 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
57186
57756
|
const explicitValue = patternConfig ? patternConfig[propName] : void 0;
|
|
57187
57757
|
const defaultValue = ps.default;
|
|
57188
57758
|
const isImplicit = explicitValue === void 0 && defaultValue !== void 0;
|
|
57189
|
-
const
|
|
57190
|
-
const displayValue =
|
|
57759
|
+
const currentValue2 = explicitValue !== void 0 ? explicitValue : defaultValue;
|
|
57760
|
+
const displayValue = currentValue2 !== void 0 ? typeof currentValue2 === "object" ? JSON.stringify(currentValue2) : String(currentValue2) : "";
|
|
57191
57761
|
inspectorLog.debug("prop-row", () => ({
|
|
57192
57762
|
patternType: patternDef.type,
|
|
57193
57763
|
patternId: selectedPattern?.patternId ?? "",
|
|
@@ -57802,7 +58372,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
57802
58372
|
}
|
|
57803
58373
|
);
|
|
57804
58374
|
};
|
|
57805
|
-
var TraitCardNode =
|
|
58375
|
+
var TraitCardNode = React97__default.memo(TraitCardNodeInner);
|
|
57806
58376
|
TraitCardNode.displayName = "TraitCardNode";
|
|
57807
58377
|
|
|
57808
58378
|
// components/avl/organisms/FlowCanvas.tsx
|
|
@@ -57875,7 +58445,7 @@ function FlowCanvasInner({
|
|
|
57875
58445
|
initialOrbital
|
|
57876
58446
|
);
|
|
57877
58447
|
const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
|
|
57878
|
-
const screenSizeUserOverrideRef =
|
|
58448
|
+
const screenSizeUserOverrideRef = React97__default.useRef(false);
|
|
57879
58449
|
const [screenSize, setScreenSize] = useState(
|
|
57880
58450
|
() => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
|
|
57881
58451
|
);
|
|
@@ -58259,7 +58829,7 @@ var ZoomBreadcrumb = ({
|
|
|
58259
58829
|
if (eventName && band === "detail") {
|
|
58260
58830
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
58261
58831
|
}
|
|
58262
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(
|
|
58832
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
58263
58833
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
58264
58834
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
58265
58835
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -58600,7 +59170,7 @@ var EventWireOverlay = ({
|
|
|
58600
59170
|
containerW,
|
|
58601
59171
|
containerH
|
|
58602
59172
|
}) => {
|
|
58603
|
-
const ids =
|
|
59173
|
+
const ids = React97__default.useMemo(() => {
|
|
58604
59174
|
avlOczWireId += 1;
|
|
58605
59175
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
58606
59176
|
}, []);
|
|
@@ -58967,7 +59537,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
58967
59537
|
borderRadius: 6,
|
|
58968
59538
|
border: `1px solid ${color}`
|
|
58969
59539
|
},
|
|
58970
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
59540
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React97__default.Fragment, { children: [
|
|
58971
59541
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
58972
59542
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
58973
59543
|
Box,
|