@almadar/ui 4.51.16 → 4.52.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 +1940 -1802
- package/dist/avl/index.js +694 -556
- package/dist/components/atoms/Aside.d.ts +15 -0
- package/dist/components/atoms/Dialog.d.ts +18 -0
- package/dist/components/atoms/index.d.ts +2 -0
- package/dist/components/index.cjs +1523 -1406
- package/dist/components/index.js +500 -383
- package/dist/components/molecules/CalendarGrid.d.ts +14 -1
- package/dist/components/molecules/SidePanel.d.ts +7 -2
- package/dist/components/molecules/Tabs.d.ts +10 -2
- package/dist/components/molecules/avl/avl-preview-types.d.ts +24 -3
- package/dist/components/organisms/game/three/index.cjs +175 -185
- package/dist/components/organisms/game/three/index.js +12 -22
- package/dist/docs/index.cjs +7 -17
- package/dist/docs/index.js +8 -18
- package/dist/marketing/index.cjs +22 -27
- package/dist/marketing/index.js +23 -28
- package/dist/providers/index.cjs +1619 -1504
- package/dist/providers/index.js +728 -613
- package/dist/runtime/index.cjs +1658 -1543
- package/dist/runtime/index.js +732 -617
- package/package.json +1 -1
package/dist/components/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 React78 from 'react';
|
|
3
|
+
import React78__default, { useContext, useMemo, useRef, useEffect, useCallback, createContext, Suspense, useState, lazy, useSyncExternalStore, useLayoutEffect, useId } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { EventBusContext, useTraitScope, TraitScopeProvider } from '@almadar/ui/providers';
|
|
@@ -206,7 +206,7 @@ var init_SvgFlow = __esm({
|
|
|
206
206
|
opacity = 1,
|
|
207
207
|
className
|
|
208
208
|
}) => {
|
|
209
|
-
const markerId =
|
|
209
|
+
const markerId = React78__default.useMemo(() => {
|
|
210
210
|
flowIdCounter += 1;
|
|
211
211
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
212
212
|
}, []);
|
|
@@ -749,7 +749,7 @@ var init_SvgRing = __esm({
|
|
|
749
749
|
className,
|
|
750
750
|
label
|
|
751
751
|
}) => {
|
|
752
|
-
const gradientId =
|
|
752
|
+
const gradientId = React78__default.useMemo(() => {
|
|
753
753
|
ringIdCounter += 1;
|
|
754
754
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
755
755
|
}, []);
|
|
@@ -1177,7 +1177,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
1177
1177
|
const IconComp = value;
|
|
1178
1178
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
1179
1179
|
}
|
|
1180
|
-
if (
|
|
1180
|
+
if (React78__default.isValidElement(value)) {
|
|
1181
1181
|
return value;
|
|
1182
1182
|
}
|
|
1183
1183
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -1253,7 +1253,7 @@ var init_Button = __esm({
|
|
|
1253
1253
|
md: "h-4 w-4",
|
|
1254
1254
|
lg: "h-5 w-5"
|
|
1255
1255
|
};
|
|
1256
|
-
Button =
|
|
1256
|
+
Button = React78__default.forwardRef(
|
|
1257
1257
|
({
|
|
1258
1258
|
className,
|
|
1259
1259
|
variant = "primary",
|
|
@@ -1318,7 +1318,7 @@ var Input;
|
|
|
1318
1318
|
var init_Input = __esm({
|
|
1319
1319
|
"components/atoms/Input.tsx"() {
|
|
1320
1320
|
init_cn();
|
|
1321
|
-
Input =
|
|
1321
|
+
Input = React78__default.forwardRef(
|
|
1322
1322
|
({
|
|
1323
1323
|
className,
|
|
1324
1324
|
inputType,
|
|
@@ -1436,7 +1436,7 @@ var Label;
|
|
|
1436
1436
|
var init_Label = __esm({
|
|
1437
1437
|
"components/atoms/Label.tsx"() {
|
|
1438
1438
|
init_cn();
|
|
1439
|
-
Label =
|
|
1439
|
+
Label = React78__default.forwardRef(
|
|
1440
1440
|
({ className, required, children, ...props }, ref) => {
|
|
1441
1441
|
return /* @__PURE__ */ jsxs(
|
|
1442
1442
|
"label",
|
|
@@ -1462,7 +1462,7 @@ var Textarea;
|
|
|
1462
1462
|
var init_Textarea = __esm({
|
|
1463
1463
|
"components/atoms/Textarea.tsx"() {
|
|
1464
1464
|
init_cn();
|
|
1465
|
-
Textarea =
|
|
1465
|
+
Textarea = React78__default.forwardRef(
|
|
1466
1466
|
({ className, error, ...props }, ref) => {
|
|
1467
1467
|
return /* @__PURE__ */ jsx(
|
|
1468
1468
|
"textarea",
|
|
@@ -1491,7 +1491,7 @@ var Select;
|
|
|
1491
1491
|
var init_Select = __esm({
|
|
1492
1492
|
"components/atoms/Select.tsx"() {
|
|
1493
1493
|
init_cn();
|
|
1494
|
-
Select =
|
|
1494
|
+
Select = React78__default.forwardRef(
|
|
1495
1495
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
1496
1496
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1497
1497
|
/* @__PURE__ */ jsxs(
|
|
@@ -1533,7 +1533,7 @@ var Checkbox;
|
|
|
1533
1533
|
var init_Checkbox = __esm({
|
|
1534
1534
|
"components/atoms/Checkbox.tsx"() {
|
|
1535
1535
|
init_cn();
|
|
1536
|
-
Checkbox =
|
|
1536
|
+
Checkbox = React78__default.forwardRef(
|
|
1537
1537
|
({ className, label, id, ...props }, ref) => {
|
|
1538
1538
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
1539
1539
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -1615,7 +1615,7 @@ var init_Card = __esm({
|
|
|
1615
1615
|
md: "shadow",
|
|
1616
1616
|
lg: "shadow-lg"
|
|
1617
1617
|
};
|
|
1618
|
-
Card =
|
|
1618
|
+
Card = React78__default.forwardRef(
|
|
1619
1619
|
({
|
|
1620
1620
|
className,
|
|
1621
1621
|
variant = "bordered",
|
|
@@ -1651,9 +1651,9 @@ var init_Card = __esm({
|
|
|
1651
1651
|
}
|
|
1652
1652
|
);
|
|
1653
1653
|
Card.displayName = "Card";
|
|
1654
|
-
CardHeader =
|
|
1654
|
+
CardHeader = React78__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
1655
1655
|
CardHeader.displayName = "CardHeader";
|
|
1656
|
-
CardTitle =
|
|
1656
|
+
CardTitle = React78__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1657
1657
|
"h3",
|
|
1658
1658
|
{
|
|
1659
1659
|
ref,
|
|
@@ -1666,11 +1666,11 @@ var init_Card = __esm({
|
|
|
1666
1666
|
}
|
|
1667
1667
|
));
|
|
1668
1668
|
CardTitle.displayName = "CardTitle";
|
|
1669
|
-
CardContent =
|
|
1669
|
+
CardContent = React78__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
1670
1670
|
CardContent.displayName = "CardContent";
|
|
1671
1671
|
CardBody = CardContent;
|
|
1672
1672
|
CardBody.displayName = "CardBody";
|
|
1673
|
-
CardFooter =
|
|
1673
|
+
CardFooter = React78__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1674
1674
|
"div",
|
|
1675
1675
|
{
|
|
1676
1676
|
ref,
|
|
@@ -1723,7 +1723,7 @@ var init_Badge = __esm({
|
|
|
1723
1723
|
md: "px-2.5 py-1 text-sm",
|
|
1724
1724
|
lg: "px-3 py-1.5 text-base"
|
|
1725
1725
|
};
|
|
1726
|
-
Badge =
|
|
1726
|
+
Badge = React78__default.forwardRef(
|
|
1727
1727
|
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
1728
1728
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1729
1729
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
@@ -1796,7 +1796,7 @@ var init_FilterPill = __esm({
|
|
|
1796
1796
|
md: "w-3.5 h-3.5",
|
|
1797
1797
|
lg: "w-4 h-4"
|
|
1798
1798
|
};
|
|
1799
|
-
FilterPill =
|
|
1799
|
+
FilterPill = React78__default.forwardRef(
|
|
1800
1800
|
({
|
|
1801
1801
|
className,
|
|
1802
1802
|
variant = "default",
|
|
@@ -1875,7 +1875,7 @@ var init_Spinner = __esm({
|
|
|
1875
1875
|
md: "h-6 w-6",
|
|
1876
1876
|
lg: "h-8 w-8"
|
|
1877
1877
|
};
|
|
1878
|
-
Spinner =
|
|
1878
|
+
Spinner = React78__default.forwardRef(
|
|
1879
1879
|
({ className, size = "md", ...props }, ref) => {
|
|
1880
1880
|
return /* @__PURE__ */ jsx(
|
|
1881
1881
|
"div",
|
|
@@ -2156,7 +2156,7 @@ var init_Box = __esm({
|
|
|
2156
2156
|
fixed: "fixed",
|
|
2157
2157
|
sticky: "sticky"
|
|
2158
2158
|
};
|
|
2159
|
-
Box =
|
|
2159
|
+
Box = React78__default.forwardRef(
|
|
2160
2160
|
({
|
|
2161
2161
|
padding,
|
|
2162
2162
|
paddingX,
|
|
@@ -2206,38 +2206,26 @@ var init_Box = __esm({
|
|
|
2206
2206
|
onMouseLeave?.(e);
|
|
2207
2207
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
2208
2208
|
const isClickable = action || onClick;
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
Comp,
|
|
2209
|
+
return React78__default.createElement(
|
|
2210
|
+
Component,
|
|
2212
2211
|
{
|
|
2213
2212
|
ref,
|
|
2214
2213
|
className: cn(
|
|
2215
|
-
// Padding
|
|
2216
2214
|
padding && paddingStyles2[padding],
|
|
2217
2215
|
paddingX && paddingXStyles[paddingX],
|
|
2218
2216
|
paddingY && paddingYStyles[paddingY],
|
|
2219
|
-
// Margin
|
|
2220
2217
|
margin && marginStyles[margin],
|
|
2221
2218
|
marginX && marginXStyles[marginX],
|
|
2222
2219
|
marginY && marginYStyles[marginY],
|
|
2223
|
-
// Background
|
|
2224
2220
|
bgStyles[bg],
|
|
2225
|
-
// Border - uses theme variables
|
|
2226
2221
|
border && "border-[length:var(--border-width)] border-border",
|
|
2227
|
-
// Rounded
|
|
2228
2222
|
roundedStyles[rounded],
|
|
2229
|
-
// Shadow
|
|
2230
2223
|
shadowStyles2[shadow],
|
|
2231
|
-
// Display
|
|
2232
2224
|
display && displayStyles[display],
|
|
2233
|
-
// Dimensions
|
|
2234
2225
|
fullWidth && "w-full",
|
|
2235
2226
|
fullHeight && "h-full",
|
|
2236
|
-
// Overflow
|
|
2237
2227
|
overflow && overflowStyles[overflow],
|
|
2238
|
-
// Position
|
|
2239
2228
|
position && positionStyles[position],
|
|
2240
|
-
// Cursor for clickable
|
|
2241
2229
|
isClickable && "cursor-pointer",
|
|
2242
2230
|
className
|
|
2243
2231
|
),
|
|
@@ -2245,9 +2233,9 @@ var init_Box = __esm({
|
|
|
2245
2233
|
onMouseEnter: hoverEvent || onMouseEnter ? handleMouseEnter : void 0,
|
|
2246
2234
|
onMouseLeave: hoverEvent || onMouseLeave ? handleMouseLeave : void 0,
|
|
2247
2235
|
style: maxWidth ? { maxWidth, ...rest.style } : rest.style,
|
|
2248
|
-
...rest
|
|
2249
|
-
|
|
2250
|
-
|
|
2236
|
+
...rest
|
|
2237
|
+
},
|
|
2238
|
+
children
|
|
2251
2239
|
);
|
|
2252
2240
|
}
|
|
2253
2241
|
);
|
|
@@ -2529,7 +2517,7 @@ var Radio;
|
|
|
2529
2517
|
var init_Radio = __esm({
|
|
2530
2518
|
"components/atoms/Radio.tsx"() {
|
|
2531
2519
|
init_cn();
|
|
2532
|
-
Radio =
|
|
2520
|
+
Radio = React78__default.forwardRef(
|
|
2533
2521
|
({
|
|
2534
2522
|
label,
|
|
2535
2523
|
helperText,
|
|
@@ -2701,7 +2689,7 @@ var init_Switch = __esm({
|
|
|
2701
2689
|
"components/atoms/Switch.tsx"() {
|
|
2702
2690
|
"use client";
|
|
2703
2691
|
init_cn();
|
|
2704
|
-
Switch =
|
|
2692
|
+
Switch = React78.forwardRef(
|
|
2705
2693
|
({
|
|
2706
2694
|
checked,
|
|
2707
2695
|
defaultChecked = false,
|
|
@@ -2712,10 +2700,10 @@ var init_Switch = __esm({
|
|
|
2712
2700
|
name,
|
|
2713
2701
|
className
|
|
2714
2702
|
}, ref) => {
|
|
2715
|
-
const [isChecked, setIsChecked] =
|
|
2703
|
+
const [isChecked, setIsChecked] = React78.useState(
|
|
2716
2704
|
checked !== void 0 ? checked : defaultChecked
|
|
2717
2705
|
);
|
|
2718
|
-
|
|
2706
|
+
React78.useEffect(() => {
|
|
2719
2707
|
if (checked !== void 0) {
|
|
2720
2708
|
setIsChecked(checked);
|
|
2721
2709
|
}
|
|
@@ -3530,6 +3518,42 @@ var init_FlipContainer = __esm({
|
|
|
3530
3518
|
FlipContainer.displayName = "FlipContainer";
|
|
3531
3519
|
}
|
|
3532
3520
|
});
|
|
3521
|
+
var Dialog;
|
|
3522
|
+
var init_Dialog = __esm({
|
|
3523
|
+
"components/atoms/Dialog.tsx"() {
|
|
3524
|
+
init_cn();
|
|
3525
|
+
Dialog = React78__default.forwardRef(
|
|
3526
|
+
({
|
|
3527
|
+
role = "dialog",
|
|
3528
|
+
"aria-modal": ariaModal = true,
|
|
3529
|
+
className,
|
|
3530
|
+
children,
|
|
3531
|
+
...rest
|
|
3532
|
+
}, ref) => /* @__PURE__ */ jsx(
|
|
3533
|
+
"dialog",
|
|
3534
|
+
{
|
|
3535
|
+
ref,
|
|
3536
|
+
role,
|
|
3537
|
+
"aria-modal": ariaModal,
|
|
3538
|
+
className: cn(className),
|
|
3539
|
+
...rest,
|
|
3540
|
+
children
|
|
3541
|
+
}
|
|
3542
|
+
)
|
|
3543
|
+
);
|
|
3544
|
+
Dialog.displayName = "Dialog";
|
|
3545
|
+
}
|
|
3546
|
+
});
|
|
3547
|
+
var Aside;
|
|
3548
|
+
var init_Aside = __esm({
|
|
3549
|
+
"components/atoms/Aside.tsx"() {
|
|
3550
|
+
init_cn();
|
|
3551
|
+
Aside = React78__default.forwardRef(
|
|
3552
|
+
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
3553
|
+
);
|
|
3554
|
+
Aside.displayName = "Aside";
|
|
3555
|
+
}
|
|
3556
|
+
});
|
|
3533
3557
|
function toSharedContext(ctx) {
|
|
3534
3558
|
return createMinimalContext(
|
|
3535
3559
|
{
|
|
@@ -3601,8 +3625,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
3601
3625
|
position = "top",
|
|
3602
3626
|
className
|
|
3603
3627
|
}) => {
|
|
3604
|
-
const [isVisible, setIsVisible] =
|
|
3605
|
-
const timeoutRef =
|
|
3628
|
+
const [isVisible, setIsVisible] = React78__default.useState(false);
|
|
3629
|
+
const timeoutRef = React78__default.useRef(null);
|
|
3606
3630
|
const handleMouseEnter = () => {
|
|
3607
3631
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
3608
3632
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -3611,7 +3635,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
3611
3635
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
3612
3636
|
setIsVisible(false);
|
|
3613
3637
|
};
|
|
3614
|
-
|
|
3638
|
+
React78__default.useEffect(() => {
|
|
3615
3639
|
return () => {
|
|
3616
3640
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
3617
3641
|
};
|
|
@@ -3821,7 +3845,7 @@ var init_StatusDot = __esm({
|
|
|
3821
3845
|
md: "w-2.5 h-2.5",
|
|
3822
3846
|
lg: "w-3 h-3"
|
|
3823
3847
|
};
|
|
3824
|
-
StatusDot =
|
|
3848
|
+
StatusDot = React78__default.forwardRef(
|
|
3825
3849
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
3826
3850
|
return /* @__PURE__ */ jsx(
|
|
3827
3851
|
"span",
|
|
@@ -3874,7 +3898,7 @@ var init_TrendIndicator = __esm({
|
|
|
3874
3898
|
down: TrendingDown,
|
|
3875
3899
|
flat: ArrowRight
|
|
3876
3900
|
};
|
|
3877
|
-
TrendIndicator =
|
|
3901
|
+
TrendIndicator = React78__default.forwardRef(
|
|
3878
3902
|
({
|
|
3879
3903
|
className,
|
|
3880
3904
|
value,
|
|
@@ -3941,7 +3965,7 @@ var init_RangeSlider = __esm({
|
|
|
3941
3965
|
md: "w-4 h-4",
|
|
3942
3966
|
lg: "w-5 h-5"
|
|
3943
3967
|
};
|
|
3944
|
-
RangeSlider =
|
|
3968
|
+
RangeSlider = React78__default.forwardRef(
|
|
3945
3969
|
({
|
|
3946
3970
|
className,
|
|
3947
3971
|
min = 0,
|
|
@@ -4537,7 +4561,7 @@ var init_ContentSection = __esm({
|
|
|
4537
4561
|
md: "py-16",
|
|
4538
4562
|
lg: "py-24"
|
|
4539
4563
|
};
|
|
4540
|
-
ContentSection =
|
|
4564
|
+
ContentSection = React78__default.forwardRef(
|
|
4541
4565
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
4542
4566
|
return /* @__PURE__ */ jsx(
|
|
4543
4567
|
Box,
|
|
@@ -5071,7 +5095,7 @@ var init_AnimatedReveal = __esm({
|
|
|
5071
5095
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
5072
5096
|
"none": {}
|
|
5073
5097
|
};
|
|
5074
|
-
AnimatedReveal =
|
|
5098
|
+
AnimatedReveal = React78__default.forwardRef(
|
|
5075
5099
|
({
|
|
5076
5100
|
trigger = "scroll",
|
|
5077
5101
|
animation = "fade-up",
|
|
@@ -5231,7 +5255,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
5231
5255
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
5232
5256
|
"use client";
|
|
5233
5257
|
init_cn();
|
|
5234
|
-
AnimatedGraphic =
|
|
5258
|
+
AnimatedGraphic = React78__default.forwardRef(
|
|
5235
5259
|
({
|
|
5236
5260
|
src,
|
|
5237
5261
|
svgContent,
|
|
@@ -5254,7 +5278,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
5254
5278
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
5255
5279
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
5256
5280
|
const prevAnimateRef = useRef(animate);
|
|
5257
|
-
const setRef =
|
|
5281
|
+
const setRef = React78__default.useCallback(
|
|
5258
5282
|
(node) => {
|
|
5259
5283
|
containerRef.current = node;
|
|
5260
5284
|
if (typeof ref === "function") ref(node);
|
|
@@ -5356,8 +5380,9 @@ var sizeClasses5, minWidths, Modal;
|
|
|
5356
5380
|
var init_Modal = __esm({
|
|
5357
5381
|
"components/molecules/Modal.tsx"() {
|
|
5358
5382
|
"use client";
|
|
5359
|
-
init_Icon();
|
|
5360
5383
|
init_Box();
|
|
5384
|
+
init_Button();
|
|
5385
|
+
init_Dialog();
|
|
5361
5386
|
init_Typography();
|
|
5362
5387
|
init_Overlay();
|
|
5363
5388
|
init_cn();
|
|
@@ -5450,7 +5475,7 @@ var init_Modal = __esm({
|
|
|
5450
5475
|
}
|
|
5451
5476
|
),
|
|
5452
5477
|
/* @__PURE__ */ jsx(
|
|
5453
|
-
|
|
5478
|
+
Box,
|
|
5454
5479
|
{
|
|
5455
5480
|
className: cn(
|
|
5456
5481
|
"fixed inset-0 z-50 pointer-events-none",
|
|
@@ -5459,17 +5484,17 @@ var init_Modal = __esm({
|
|
|
5459
5484
|
),
|
|
5460
5485
|
style: { paddingTop: "10vh" },
|
|
5461
5486
|
children: /* @__PURE__ */ jsxs(
|
|
5462
|
-
|
|
5487
|
+
Dialog,
|
|
5463
5488
|
{
|
|
5464
5489
|
ref: modalRef,
|
|
5465
|
-
|
|
5466
|
-
border: true,
|
|
5467
|
-
shadow: "lg",
|
|
5468
|
-
rounded: "md",
|
|
5490
|
+
open: true,
|
|
5469
5491
|
className: cn(
|
|
5470
|
-
|
|
5492
|
+
// Reset browser-default dialog chrome — we own styling.
|
|
5493
|
+
"m-0 p-0 border-0 bg-transparent",
|
|
5494
|
+
// Pre-existing dialog frame
|
|
5495
|
+
"pointer-events-auto w-full flex flex-col bg-surface border shadow-lg rounded-md",
|
|
5471
5496
|
sizeClasses5[size],
|
|
5472
|
-
"max-sm:max-w-full max-sm:rounded-b-none max-sm:rounded-t-2xl",
|
|
5497
|
+
"max-sm:max-w-full max-sm:min-w-0 max-sm:rounded-b-none max-sm:rounded-t-2xl",
|
|
5473
5498
|
className
|
|
5474
5499
|
),
|
|
5475
5500
|
style: {
|
|
@@ -5480,12 +5505,10 @@ var init_Modal = __esm({
|
|
|
5480
5505
|
transition: isDragging.current ? "none" : "transform 200ms ease-out"
|
|
5481
5506
|
}
|
|
5482
5507
|
},
|
|
5483
|
-
role: "dialog",
|
|
5484
|
-
"aria-modal": "true",
|
|
5485
5508
|
...title && { "aria-labelledby": "modal-title" },
|
|
5486
5509
|
children: [
|
|
5487
5510
|
/* @__PURE__ */ jsx(
|
|
5488
|
-
|
|
5511
|
+
Box,
|
|
5489
5512
|
{
|
|
5490
5513
|
className: "hidden max-sm:flex justify-center py-2 cursor-grab active:cursor-grabbing touch-none",
|
|
5491
5514
|
onPointerDown: (e) => {
|
|
@@ -5511,11 +5534,11 @@ var init_Modal = __esm({
|
|
|
5511
5534
|
isDragging.current = false;
|
|
5512
5535
|
setDragY(0);
|
|
5513
5536
|
},
|
|
5514
|
-
children: /* @__PURE__ */ jsx(
|
|
5537
|
+
children: /* @__PURE__ */ jsx(Box, { className: "w-10 h-1 rounded-full bg-border" })
|
|
5515
5538
|
}
|
|
5516
5539
|
),
|
|
5517
5540
|
(title || showCloseButton) && /* @__PURE__ */ jsxs(
|
|
5518
|
-
|
|
5541
|
+
Box,
|
|
5519
5542
|
{
|
|
5520
5543
|
className: cn(
|
|
5521
5544
|
"px-6 py-4 flex items-center justify-between",
|
|
@@ -5524,25 +5547,22 @@ var init_Modal = __esm({
|
|
|
5524
5547
|
children: [
|
|
5525
5548
|
title && /* @__PURE__ */ jsx(Typography, { variant: "h4", as: "h2", id: "modal-title", children: title }),
|
|
5526
5549
|
showCloseButton && /* @__PURE__ */ jsx(
|
|
5527
|
-
|
|
5550
|
+
Button,
|
|
5528
5551
|
{
|
|
5529
|
-
|
|
5552
|
+
variant: "ghost",
|
|
5553
|
+
size: "sm",
|
|
5554
|
+
icon: X,
|
|
5530
5555
|
onClick: handleClose,
|
|
5531
5556
|
"data-event": "CLOSE",
|
|
5532
|
-
|
|
5533
|
-
"p-1 transition-colors rounded-sm",
|
|
5534
|
-
"hover:bg-muted"
|
|
5535
|
-
),
|
|
5536
|
-
"aria-label": "Close modal",
|
|
5537
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: X, size: "md" })
|
|
5557
|
+
"aria-label": "Close modal"
|
|
5538
5558
|
}
|
|
5539
5559
|
)
|
|
5540
5560
|
]
|
|
5541
5561
|
}
|
|
5542
5562
|
),
|
|
5543
|
-
/* @__PURE__ */ jsx(
|
|
5563
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 overflow-y-auto p-6", children }),
|
|
5544
5564
|
footer && /* @__PURE__ */ jsx(
|
|
5545
|
-
|
|
5565
|
+
Box,
|
|
5546
5566
|
{
|
|
5547
5567
|
className: cn(
|
|
5548
5568
|
"px-6 py-4 bg-muted",
|
|
@@ -5565,21 +5585,19 @@ var sizeWidths, Drawer;
|
|
|
5565
5585
|
var init_Drawer = __esm({
|
|
5566
5586
|
"components/molecules/Drawer.tsx"() {
|
|
5567
5587
|
"use client";
|
|
5568
|
-
init_Icon();
|
|
5569
5588
|
init_Box();
|
|
5589
|
+
init_Button();
|
|
5570
5590
|
init_Typography();
|
|
5571
5591
|
init_Overlay();
|
|
5572
5592
|
init_cn();
|
|
5573
5593
|
init_useEventBus();
|
|
5574
5594
|
sizeWidths = {
|
|
5575
|
-
sm: "w-80",
|
|
5595
|
+
sm: "w-full sm:w-80",
|
|
5576
5596
|
// 320px
|
|
5577
|
-
md: "w-96",
|
|
5597
|
+
md: "w-full sm:w-96",
|
|
5578
5598
|
// 384px
|
|
5579
|
-
lg: "w-[480px]",
|
|
5580
|
-
|
|
5581
|
-
xl: "w-[640px]",
|
|
5582
|
-
// 640px
|
|
5599
|
+
lg: "w-full sm:w-[480px]",
|
|
5600
|
+
xl: "w-full sm:w-[640px]",
|
|
5583
5601
|
full: "w-screen"
|
|
5584
5602
|
};
|
|
5585
5603
|
Drawer = ({
|
|
@@ -5677,7 +5695,7 @@ var init_Drawer = __esm({
|
|
|
5677
5695
|
...title && { "aria-labelledby": "drawer-title" },
|
|
5678
5696
|
children: [
|
|
5679
5697
|
(title || showCloseButton) && /* @__PURE__ */ jsxs(
|
|
5680
|
-
|
|
5698
|
+
Box,
|
|
5681
5699
|
{
|
|
5682
5700
|
className: cn(
|
|
5683
5701
|
"px-6 py-4 flex items-center justify-between shrink-0",
|
|
@@ -5686,25 +5704,22 @@ var init_Drawer = __esm({
|
|
|
5686
5704
|
children: [
|
|
5687
5705
|
title && /* @__PURE__ */ jsx(Typography, { variant: "h4", as: "h2", id: "drawer-title", children: title }),
|
|
5688
5706
|
showCloseButton && /* @__PURE__ */ jsx(
|
|
5689
|
-
|
|
5707
|
+
Button,
|
|
5690
5708
|
{
|
|
5691
|
-
|
|
5709
|
+
variant: "ghost",
|
|
5710
|
+
size: "sm",
|
|
5711
|
+
icon: X,
|
|
5692
5712
|
onClick: handleClose,
|
|
5693
|
-
className: cn(
|
|
5694
|
-
"p-1 transition-colors rounded-sm",
|
|
5695
|
-
"hover:bg-muted",
|
|
5696
|
-
!title && "ml-auto"
|
|
5697
|
-
),
|
|
5698
5713
|
"aria-label": "Close drawer",
|
|
5699
|
-
|
|
5714
|
+
className: cn(!title && "ml-auto")
|
|
5700
5715
|
}
|
|
5701
5716
|
)
|
|
5702
5717
|
]
|
|
5703
5718
|
}
|
|
5704
5719
|
),
|
|
5705
|
-
/* @__PURE__ */ jsx(
|
|
5720
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 overflow-y-auto p-6", children }),
|
|
5706
5721
|
footer && /* @__PURE__ */ jsx(
|
|
5707
|
-
|
|
5722
|
+
Box,
|
|
5708
5723
|
{
|
|
5709
5724
|
className: cn(
|
|
5710
5725
|
"px-6 py-4 shrink-0 bg-muted",
|
|
@@ -5749,6 +5764,7 @@ var variantClasses, iconMap2, iconColors, Toast;
|
|
|
5749
5764
|
var init_Toast = __esm({
|
|
5750
5765
|
"components/molecules/Toast.tsx"() {
|
|
5751
5766
|
"use client";
|
|
5767
|
+
init_Box();
|
|
5752
5768
|
init_Icon();
|
|
5753
5769
|
init_Typography();
|
|
5754
5770
|
init_Button();
|
|
@@ -5806,17 +5822,20 @@ var init_Toast = __esm({
|
|
|
5806
5822
|
return () => clearTimeout(timer);
|
|
5807
5823
|
}, [duration, onDismiss, dismissEvent]);
|
|
5808
5824
|
return /* @__PURE__ */ jsx(
|
|
5809
|
-
|
|
5825
|
+
Box,
|
|
5810
5826
|
{
|
|
5811
5827
|
className: cn(
|
|
5812
|
-
|
|
5828
|
+
// `min-w-[300px]` only kicks in at `sm:` and above so a phone
|
|
5829
|
+
// viewport doesn't get a toast wider than the screen near the
|
|
5830
|
+
// edge. `max-w-[calc(100vw-2rem)]` clamps to viewport too.
|
|
5831
|
+
"border-l-4 p-4 shadow min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
|
|
5813
5832
|
"rounded-sm",
|
|
5814
5833
|
variantClasses[variant],
|
|
5815
5834
|
className
|
|
5816
5835
|
),
|
|
5817
5836
|
role: "alert",
|
|
5818
|
-
children: /* @__PURE__ */ jsxs(
|
|
5819
|
-
/* @__PURE__ */ jsx(
|
|
5837
|
+
children: /* @__PURE__ */ jsxs(Box, { className: "flex items-start gap-3", children: [
|
|
5838
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx(
|
|
5820
5839
|
Icon,
|
|
5821
5840
|
{
|
|
5822
5841
|
icon: iconMap2[variant],
|
|
@@ -5824,25 +5843,22 @@ var init_Toast = __esm({
|
|
|
5824
5843
|
className: iconColors[variant]
|
|
5825
5844
|
}
|
|
5826
5845
|
) }),
|
|
5827
|
-
/* @__PURE__ */ jsxs(
|
|
5846
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex-1 min-w-0", children: [
|
|
5828
5847
|
title && /* @__PURE__ */ jsx(Typography, { variant: "h6", className: "mb-1", children: title }),
|
|
5829
5848
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-sm", children: message }),
|
|
5830
|
-
actionLabel && (onAction || actionEvent) && /* @__PURE__ */ jsx(
|
|
5849
|
+
actionLabel && (onAction || actionEvent) && /* @__PURE__ */ jsx(Box, { className: "mt-3", children: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleAction, children: actionLabel }) })
|
|
5831
5850
|
] }),
|
|
5832
|
-
/* @__PURE__ */ jsxs(
|
|
5851
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex items-start gap-2 flex-shrink-0", children: [
|
|
5833
5852
|
badge !== void 0 && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: badge }),
|
|
5834
5853
|
dismissible && /* @__PURE__ */ jsx(
|
|
5835
|
-
|
|
5854
|
+
Button,
|
|
5836
5855
|
{
|
|
5837
|
-
|
|
5856
|
+
variant: "ghost",
|
|
5857
|
+
size: "sm",
|
|
5858
|
+
icon: X,
|
|
5838
5859
|
onClick: handleDismiss,
|
|
5839
|
-
className: cn(
|
|
5840
|
-
"flex-shrink-0 p-1 transition-colors rounded-sm",
|
|
5841
|
-
"hover:bg-muted",
|
|
5842
|
-
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2"
|
|
5843
|
-
),
|
|
5844
5860
|
"aria-label": "Dismiss toast",
|
|
5845
|
-
|
|
5861
|
+
className: "flex-shrink-0"
|
|
5846
5862
|
}
|
|
5847
5863
|
)
|
|
5848
5864
|
] })
|
|
@@ -6064,7 +6080,7 @@ var init_ErrorBoundary = __esm({
|
|
|
6064
6080
|
"use client";
|
|
6065
6081
|
init_cn();
|
|
6066
6082
|
init_ErrorState();
|
|
6067
|
-
ErrorBoundary = class extends
|
|
6083
|
+
ErrorBoundary = class extends React78__default.Component {
|
|
6068
6084
|
constructor(props) {
|
|
6069
6085
|
super(props);
|
|
6070
6086
|
__publicField(this, "reset", () => {
|
|
@@ -6617,7 +6633,7 @@ var init_HeroSection = __esm({
|
|
|
6617
6633
|
HeroSection.displayName = "HeroSection";
|
|
6618
6634
|
}
|
|
6619
6635
|
});
|
|
6620
|
-
var ArticleSection;
|
|
6636
|
+
var maxWidthMap, ArticleSection;
|
|
6621
6637
|
var init_ArticleSection = __esm({
|
|
6622
6638
|
"components/molecules/ArticleSection.tsx"() {
|
|
6623
6639
|
"use client";
|
|
@@ -6625,6 +6641,11 @@ var init_ArticleSection = __esm({
|
|
|
6625
6641
|
init_Box();
|
|
6626
6642
|
init_Stack();
|
|
6627
6643
|
init_Typography();
|
|
6644
|
+
maxWidthMap = {
|
|
6645
|
+
sm: "max-w-full sm:max-w-xl md:max-w-2xl",
|
|
6646
|
+
md: "max-w-full sm:max-w-2xl md:max-w-3xl",
|
|
6647
|
+
lg: "max-w-full sm:max-w-3xl md:max-w-4xl"
|
|
6648
|
+
};
|
|
6628
6649
|
ArticleSection = ({
|
|
6629
6650
|
title,
|
|
6630
6651
|
children,
|
|
@@ -6639,7 +6660,7 @@ var init_ArticleSection = __esm({
|
|
|
6639
6660
|
className
|
|
6640
6661
|
),
|
|
6641
6662
|
padding: "md",
|
|
6642
|
-
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", align: "start", children: [
|
|
6663
|
+
children: /* @__PURE__ */ jsxs(VStack, { gap: "lg", align: "start", className: cn("w-full mx-auto", maxWidthMap[maxWidth]), children: [
|
|
6643
6664
|
/* @__PURE__ */ jsx(Typography, { variant: "h2", children: title }),
|
|
6644
6665
|
/* @__PURE__ */ jsx(Box, { className: "w-full", children })
|
|
6645
6666
|
] })
|
|
@@ -6691,6 +6712,7 @@ var init_TeamCard = __esm({
|
|
|
6691
6712
|
var gapStyles2, colStyles, SimpleGrid;
|
|
6692
6713
|
var init_SimpleGrid = __esm({
|
|
6693
6714
|
"components/molecules/SimpleGrid.tsx"() {
|
|
6715
|
+
init_Box();
|
|
6694
6716
|
init_cn();
|
|
6695
6717
|
gapStyles2 = {
|
|
6696
6718
|
none: "gap-0",
|
|
@@ -6703,10 +6725,10 @@ var init_SimpleGrid = __esm({
|
|
|
6703
6725
|
colStyles = {
|
|
6704
6726
|
1: "grid-cols-1",
|
|
6705
6727
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
6706
|
-
3: "grid-cols-1 sm:grid-cols-2
|
|
6707
|
-
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
|
|
6708
|
-
5: "grid-cols-1 sm:grid-cols-2
|
|
6709
|
-
6: "grid-cols-1 sm:grid-cols-2
|
|
6728
|
+
3: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3",
|
|
6729
|
+
4: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
|
|
6730
|
+
5: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5",
|
|
6731
|
+
6: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-6"
|
|
6710
6732
|
};
|
|
6711
6733
|
SimpleGrid = ({
|
|
6712
6734
|
minChildWidth = 250,
|
|
@@ -6717,12 +6739,12 @@ var init_SimpleGrid = __esm({
|
|
|
6717
6739
|
children
|
|
6718
6740
|
}) => {
|
|
6719
6741
|
if (cols) {
|
|
6720
|
-
return /* @__PURE__ */ jsx(
|
|
6742
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("grid", colStyles[cols], gapStyles2[gap], className), children });
|
|
6721
6743
|
}
|
|
6722
6744
|
const minWidth = typeof minChildWidth === "number" ? `${minChildWidth}px` : minChildWidth;
|
|
6723
6745
|
const templateColumns = maxCols ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))` : `repeat(auto-fit, minmax(${minWidth}, 1fr))`;
|
|
6724
6746
|
return /* @__PURE__ */ jsx(
|
|
6725
|
-
|
|
6747
|
+
Box,
|
|
6726
6748
|
{
|
|
6727
6749
|
className: cn("grid", gapStyles2[gap], className),
|
|
6728
6750
|
style: {
|
|
@@ -7112,8 +7134,8 @@ var init_Tooltip = __esm({
|
|
|
7112
7134
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
7113
7135
|
};
|
|
7114
7136
|
}, []);
|
|
7115
|
-
const triggerElement =
|
|
7116
|
-
const trigger =
|
|
7137
|
+
const triggerElement = React78__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
7138
|
+
const trigger = React78__default.cloneElement(triggerElement, {
|
|
7117
7139
|
ref: triggerRef,
|
|
7118
7140
|
onMouseEnter: handleMouseEnter,
|
|
7119
7141
|
onMouseLeave: handleMouseLeave,
|
|
@@ -7234,8 +7256,8 @@ var init_Popover = __esm({
|
|
|
7234
7256
|
onMouseEnter: handleOpen,
|
|
7235
7257
|
onMouseLeave: handleClose
|
|
7236
7258
|
};
|
|
7237
|
-
const childElement =
|
|
7238
|
-
const triggerElement =
|
|
7259
|
+
const childElement = React78__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
7260
|
+
const triggerElement = React78__default.cloneElement(
|
|
7239
7261
|
childElement,
|
|
7240
7262
|
{
|
|
7241
7263
|
ref: triggerRef,
|
|
@@ -7284,6 +7306,7 @@ var Menu;
|
|
|
7284
7306
|
var init_Menu = __esm({
|
|
7285
7307
|
"components/molecules/Menu.tsx"() {
|
|
7286
7308
|
"use client";
|
|
7309
|
+
init_Box();
|
|
7287
7310
|
init_Icon();
|
|
7288
7311
|
init_Divider();
|
|
7289
7312
|
init_Typography();
|
|
@@ -7352,8 +7375,8 @@ var init_Menu = __esm({
|
|
|
7352
7375
|
"bottom-start": "top-full left-0 mt-2",
|
|
7353
7376
|
"bottom-end": "top-full right-0 mt-2"
|
|
7354
7377
|
};
|
|
7355
|
-
const triggerChild =
|
|
7356
|
-
const triggerElement =
|
|
7378
|
+
const triggerChild = React78__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
7379
|
+
const triggerElement = React78__default.cloneElement(
|
|
7357
7380
|
triggerChild,
|
|
7358
7381
|
{
|
|
7359
7382
|
ref: triggerRef,
|
|
@@ -7365,17 +7388,17 @@ var init_Menu = __esm({
|
|
|
7365
7388
|
"border-[length:var(--border-width)] border-border",
|
|
7366
7389
|
"shadow",
|
|
7367
7390
|
"rounded-sm",
|
|
7368
|
-
"min-w-[200px] py-1"
|
|
7391
|
+
"min-w-0 sm:min-w-[200px] max-w-[calc(100vw-1rem)] py-1"
|
|
7369
7392
|
);
|
|
7370
7393
|
const renderMenuItem = (item, hasSubMenu, index) => {
|
|
7371
7394
|
const itemId = item.id ?? `item-${item.label.toLowerCase().replace(/\s+/g, "-")}-${index}`;
|
|
7372
7395
|
const isDanger = item.variant === "danger";
|
|
7373
7396
|
return /* @__PURE__ */ jsx(
|
|
7374
|
-
|
|
7397
|
+
Box,
|
|
7375
7398
|
{
|
|
7376
|
-
|
|
7377
|
-
onClick: () => handleItemClick({ ...item, id: itemId }),
|
|
7378
|
-
disabled: item.disabled,
|
|
7399
|
+
as: "button",
|
|
7400
|
+
onClick: () => !item.disabled && handleItemClick({ ...item, id: itemId }),
|
|
7401
|
+
"aria-disabled": item.disabled || void 0,
|
|
7379
7402
|
onMouseEnter: () => hasSubMenu && setActiveSubMenu(itemId),
|
|
7380
7403
|
"data-testid": item.event ? `action-${item.event}` : void 0,
|
|
7381
7404
|
className: cn(
|
|
@@ -7387,7 +7410,7 @@ var init_Menu = __esm({
|
|
|
7387
7410
|
item.disabled && "cursor-not-allowed",
|
|
7388
7411
|
isDanger && "text-error hover:bg-error/10"
|
|
7389
7412
|
),
|
|
7390
|
-
children: /* @__PURE__ */ jsxs(
|
|
7413
|
+
children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3 flex-1 min-w-0", children: [
|
|
7391
7414
|
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm", className: "flex-shrink-0" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm", className: "flex-shrink-0" })),
|
|
7392
7415
|
/* @__PURE__ */ jsx(
|
|
7393
7416
|
Typography,
|
|
@@ -7412,10 +7435,10 @@ var init_Menu = __esm({
|
|
|
7412
7435
|
if (isDivider) {
|
|
7413
7436
|
return /* @__PURE__ */ jsx(Divider, { className: "my-1" }, `divider-${index}`);
|
|
7414
7437
|
}
|
|
7415
|
-
return /* @__PURE__ */ jsxs(
|
|
7438
|
+
return /* @__PURE__ */ jsxs(Box, { children: [
|
|
7416
7439
|
renderMenuItem(item, !!hasSubMenu, index),
|
|
7417
7440
|
hasSubMenu && activeSubMenu === itemId && item.subMenu && /* @__PURE__ */ jsx(
|
|
7418
|
-
|
|
7441
|
+
Box,
|
|
7419
7442
|
{
|
|
7420
7443
|
className: cn(
|
|
7421
7444
|
"absolute left-full top-0 ml-2 z-50",
|
|
@@ -7427,10 +7450,10 @@ var init_Menu = __esm({
|
|
|
7427
7450
|
] }, itemId);
|
|
7428
7451
|
});
|
|
7429
7452
|
};
|
|
7430
|
-
return /* @__PURE__ */ jsxs(
|
|
7453
|
+
return /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
|
|
7431
7454
|
triggerElement,
|
|
7432
7455
|
isOpen && triggerRect && /* @__PURE__ */ jsx(
|
|
7433
|
-
|
|
7456
|
+
Box,
|
|
7434
7457
|
{
|
|
7435
7458
|
ref: menuRef,
|
|
7436
7459
|
className: cn(
|
|
@@ -7769,13 +7792,13 @@ var init_MapView = __esm({
|
|
|
7769
7792
|
shadowSize: [41, 41]
|
|
7770
7793
|
});
|
|
7771
7794
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
7772
|
-
const { useEffect:
|
|
7795
|
+
const { useEffect: useEffect71, useRef: useRef66, useCallback: useCallback126, useState: useState108 } = React78__default;
|
|
7773
7796
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
7774
7797
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
7775
7798
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
7776
7799
|
const map = useMap();
|
|
7777
7800
|
const prevRef = useRef66({ centerLat, centerLng, zoom });
|
|
7778
|
-
|
|
7801
|
+
useEffect71(() => {
|
|
7779
7802
|
const prev = prevRef.current;
|
|
7780
7803
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
7781
7804
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -7786,7 +7809,7 @@ var init_MapView = __esm({
|
|
|
7786
7809
|
}
|
|
7787
7810
|
function MapClickHandler({ onMapClick }) {
|
|
7788
7811
|
const map = useMap();
|
|
7789
|
-
|
|
7812
|
+
useEffect71(() => {
|
|
7790
7813
|
if (!onMapClick) return;
|
|
7791
7814
|
const handler = (e) => {
|
|
7792
7815
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -7814,7 +7837,7 @@ var init_MapView = __esm({
|
|
|
7814
7837
|
showAttribution = true
|
|
7815
7838
|
}) {
|
|
7816
7839
|
const eventBus = useEventBus2();
|
|
7817
|
-
const [clickedPosition, setClickedPosition] =
|
|
7840
|
+
const [clickedPosition, setClickedPosition] = useState108(null);
|
|
7818
7841
|
const handleMapClick = useCallback126((lat, lng) => {
|
|
7819
7842
|
if (showClickedPin) {
|
|
7820
7843
|
setClickedPosition({ lat, lng });
|
|
@@ -8015,7 +8038,7 @@ function InputPattern({
|
|
|
8015
8038
|
fieldName
|
|
8016
8039
|
}) {
|
|
8017
8040
|
const { emit } = useEventBus();
|
|
8018
|
-
const [localValue, setLocalValue] =
|
|
8041
|
+
const [localValue, setLocalValue] = React78__default.useState(value);
|
|
8019
8042
|
const handleChange = (e) => {
|
|
8020
8043
|
setLocalValue(e.target.value);
|
|
8021
8044
|
if (onChange) {
|
|
@@ -8053,7 +8076,7 @@ function TextareaPattern({
|
|
|
8053
8076
|
fieldName
|
|
8054
8077
|
}) {
|
|
8055
8078
|
const { emit } = useEventBus();
|
|
8056
|
-
const [localValue, setLocalValue] =
|
|
8079
|
+
const [localValue, setLocalValue] = React78__default.useState(value);
|
|
8057
8080
|
const handleChange = (e) => {
|
|
8058
8081
|
setLocalValue(e.target.value);
|
|
8059
8082
|
if (onChange) {
|
|
@@ -8085,7 +8108,7 @@ function SelectPattern({
|
|
|
8085
8108
|
fieldName
|
|
8086
8109
|
}) {
|
|
8087
8110
|
const { emit } = useEventBus();
|
|
8088
|
-
const [localValue, setLocalValue] =
|
|
8111
|
+
const [localValue, setLocalValue] = React78__default.useState(value);
|
|
8089
8112
|
const handleChange = (e) => {
|
|
8090
8113
|
setLocalValue(e.target.value);
|
|
8091
8114
|
if (onChange) {
|
|
@@ -8114,7 +8137,7 @@ function CheckboxPattern({
|
|
|
8114
8137
|
className
|
|
8115
8138
|
}) {
|
|
8116
8139
|
const { emit } = useEventBus();
|
|
8117
|
-
const [localChecked, setLocalChecked] =
|
|
8140
|
+
const [localChecked, setLocalChecked] = React78__default.useState(checked);
|
|
8118
8141
|
const handleChange = (e) => {
|
|
8119
8142
|
setLocalChecked(e.target.checked);
|
|
8120
8143
|
if (onChange) {
|
|
@@ -8427,9 +8450,9 @@ function ControlButton({
|
|
|
8427
8450
|
className
|
|
8428
8451
|
}) {
|
|
8429
8452
|
const eventBus = useEventBus();
|
|
8430
|
-
const [isPressed, setIsPressed] =
|
|
8453
|
+
const [isPressed, setIsPressed] = React78.useState(false);
|
|
8431
8454
|
const actualPressed = pressed ?? isPressed;
|
|
8432
|
-
const handlePointerDown =
|
|
8455
|
+
const handlePointerDown = React78.useCallback(
|
|
8433
8456
|
(e) => {
|
|
8434
8457
|
e.preventDefault();
|
|
8435
8458
|
if (disabled) return;
|
|
@@ -8439,7 +8462,7 @@ function ControlButton({
|
|
|
8439
8462
|
},
|
|
8440
8463
|
[disabled, pressEvent, eventBus, onPress]
|
|
8441
8464
|
);
|
|
8442
|
-
const handlePointerUp =
|
|
8465
|
+
const handlePointerUp = React78.useCallback(
|
|
8443
8466
|
(e) => {
|
|
8444
8467
|
e.preventDefault();
|
|
8445
8468
|
if (disabled) return;
|
|
@@ -8449,7 +8472,7 @@ function ControlButton({
|
|
|
8449
8472
|
},
|
|
8450
8473
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
8451
8474
|
);
|
|
8452
|
-
const handlePointerLeave =
|
|
8475
|
+
const handlePointerLeave = React78.useCallback(
|
|
8453
8476
|
(e) => {
|
|
8454
8477
|
if (isPressed) {
|
|
8455
8478
|
setIsPressed(false);
|
|
@@ -8526,8 +8549,8 @@ function ActionButtons({
|
|
|
8526
8549
|
disabled
|
|
8527
8550
|
}) {
|
|
8528
8551
|
const eventBus = useEventBus();
|
|
8529
|
-
const [activeButtons, setActiveButtons] =
|
|
8530
|
-
const handlePress =
|
|
8552
|
+
const [activeButtons, setActiveButtons] = React78.useState(/* @__PURE__ */ new Set());
|
|
8553
|
+
const handlePress = React78.useCallback(
|
|
8531
8554
|
(id) => {
|
|
8532
8555
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
8533
8556
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -8535,7 +8558,7 @@ function ActionButtons({
|
|
|
8535
8558
|
},
|
|
8536
8559
|
[actionEvent, eventBus, onAction]
|
|
8537
8560
|
);
|
|
8538
|
-
const handleRelease =
|
|
8561
|
+
const handleRelease = React78.useCallback(
|
|
8539
8562
|
(id) => {
|
|
8540
8563
|
setActiveButtons((prev) => {
|
|
8541
8564
|
const next = new Set(prev);
|
|
@@ -11297,7 +11320,7 @@ var init_MarkdownContent = __esm({
|
|
|
11297
11320
|
init_Box();
|
|
11298
11321
|
init_useTranslate();
|
|
11299
11322
|
init_cn();
|
|
11300
|
-
MarkdownContent =
|
|
11323
|
+
MarkdownContent = React78__default.memo(
|
|
11301
11324
|
({ content, direction, className }) => {
|
|
11302
11325
|
const { t: _t } = useTranslate();
|
|
11303
11326
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -11515,7 +11538,7 @@ var init_CodeBlock = __esm({
|
|
|
11515
11538
|
log5 = createLogger("almadar:ui:markdown-code");
|
|
11516
11539
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
11517
11540
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
11518
|
-
CodeBlock =
|
|
11541
|
+
CodeBlock = React78__default.memo(
|
|
11519
11542
|
({
|
|
11520
11543
|
code: rawCode,
|
|
11521
11544
|
language = "text",
|
|
@@ -12824,7 +12847,7 @@ var init_StateMachineView = __esm({
|
|
|
12824
12847
|
style: { top: title ? 30 : 0 },
|
|
12825
12848
|
children: [
|
|
12826
12849
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
12827
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
12850
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React78__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
12828
12851
|
StateNode,
|
|
12829
12852
|
{
|
|
12830
12853
|
state,
|
|
@@ -14405,27 +14428,23 @@ var init_Grid = __esm({
|
|
|
14405
14428
|
as: Component = "div"
|
|
14406
14429
|
}) => {
|
|
14407
14430
|
const mergedStyle = rows ? { gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`, ...style } : style;
|
|
14408
|
-
|
|
14409
|
-
|
|
14410
|
-
Comp,
|
|
14431
|
+
return React78__default.createElement(
|
|
14432
|
+
Component,
|
|
14411
14433
|
{
|
|
14412
14434
|
className: cn(
|
|
14413
14435
|
"grid",
|
|
14414
14436
|
getColsClass(cols),
|
|
14415
|
-
// Gap (rowGap/colGap override gap)
|
|
14416
14437
|
rowGap ? rowGapStyles[rowGap] : colGap ? void 0 : gapStyles3[gap],
|
|
14417
14438
|
colGap ? colGapStyles[colGap] : rowGap ? void 0 : void 0,
|
|
14418
14439
|
rowGap && colGap ? `${rowGapStyles[rowGap]} ${colGapStyles[colGap]}` : void 0,
|
|
14419
|
-
// Alignment
|
|
14420
14440
|
alignItems && alignStyles2[alignItems],
|
|
14421
14441
|
justifyItems && justifyStyles2[justifyItems],
|
|
14422
|
-
// Flow
|
|
14423
14442
|
flow && flowStyles[flow],
|
|
14424
14443
|
className
|
|
14425
14444
|
),
|
|
14426
|
-
style: mergedStyle
|
|
14427
|
-
|
|
14428
|
-
|
|
14445
|
+
style: mergedStyle
|
|
14446
|
+
},
|
|
14447
|
+
children
|
|
14429
14448
|
);
|
|
14430
14449
|
};
|
|
14431
14450
|
Grid.displayName = "Grid";
|
|
@@ -15444,6 +15463,35 @@ var init_useSwipeGesture = __esm({
|
|
|
15444
15463
|
"use client";
|
|
15445
15464
|
}
|
|
15446
15465
|
});
|
|
15466
|
+
function dayWindowForViewport(width) {
|
|
15467
|
+
if (width <= 640) return 1;
|
|
15468
|
+
if (width <= 1024) return 3;
|
|
15469
|
+
return 7;
|
|
15470
|
+
}
|
|
15471
|
+
function useDayWindow(override) {
|
|
15472
|
+
const [w, setW] = useState(() => {
|
|
15473
|
+
if (override !== "auto") return override;
|
|
15474
|
+
if (typeof window === "undefined") return 7;
|
|
15475
|
+
return dayWindowForViewport(window.innerWidth);
|
|
15476
|
+
});
|
|
15477
|
+
useEffect(() => {
|
|
15478
|
+
if (override !== "auto") {
|
|
15479
|
+
setW(override);
|
|
15480
|
+
return void 0;
|
|
15481
|
+
}
|
|
15482
|
+
if (typeof window === "undefined") return void 0;
|
|
15483
|
+
const onResize = () => setW(dayWindowForViewport(window.innerWidth));
|
|
15484
|
+
onResize();
|
|
15485
|
+
window.addEventListener("resize", onResize);
|
|
15486
|
+
return () => window.removeEventListener("resize", onResize);
|
|
15487
|
+
}, [override]);
|
|
15488
|
+
return w;
|
|
15489
|
+
}
|
|
15490
|
+
function formatDateRange(start, end) {
|
|
15491
|
+
const startStr = start.toLocaleDateString(void 0, SHORT_DATE);
|
|
15492
|
+
const endStr = end.toLocaleDateString(void 0, SHORT_DATE);
|
|
15493
|
+
return start.toDateString() === end.toDateString() ? startStr : `${startStr} \u2013 ${endStr}`;
|
|
15494
|
+
}
|
|
15447
15495
|
function getStartOfWeek(date) {
|
|
15448
15496
|
const d = new Date(date);
|
|
15449
15497
|
const day = d.getDay();
|
|
@@ -15484,7 +15532,8 @@ function CalendarGrid({
|
|
|
15484
15532
|
longPressEvent,
|
|
15485
15533
|
longPressPayload,
|
|
15486
15534
|
swipeLeftEvent,
|
|
15487
|
-
swipeRightEvent
|
|
15535
|
+
swipeRightEvent,
|
|
15536
|
+
dayWindow = "auto"
|
|
15488
15537
|
}) {
|
|
15489
15538
|
const eventBus = useEventBus();
|
|
15490
15539
|
const longPressTimer = useRef(null);
|
|
@@ -15500,6 +15549,26 @@ function CalendarGrid({
|
|
|
15500
15549
|
() => timeSlots ?? generateDefaultTimeSlots(),
|
|
15501
15550
|
[timeSlots]
|
|
15502
15551
|
);
|
|
15552
|
+
const visibleCount = useDayWindow(dayWindow);
|
|
15553
|
+
const [dayOffset, setDayOffset] = useState(0);
|
|
15554
|
+
useEffect(() => {
|
|
15555
|
+
if (dayOffset + visibleCount > 7) {
|
|
15556
|
+
setDayOffset(Math.max(0, 7 - visibleCount));
|
|
15557
|
+
}
|
|
15558
|
+
}, [visibleCount, dayOffset]);
|
|
15559
|
+
const visibleDays = useMemo(
|
|
15560
|
+
() => weekDays.slice(dayOffset, dayOffset + visibleCount),
|
|
15561
|
+
[weekDays, dayOffset, visibleCount]
|
|
15562
|
+
);
|
|
15563
|
+
const canPrev = dayOffset > 0;
|
|
15564
|
+
const canNext = dayOffset + visibleCount < 7;
|
|
15565
|
+
const stepPrev = useCallback(() => {
|
|
15566
|
+
setDayOffset((d) => Math.max(0, d - visibleCount));
|
|
15567
|
+
}, [visibleCount]);
|
|
15568
|
+
const stepNext = useCallback(() => {
|
|
15569
|
+
setDayOffset((d) => Math.min(7 - visibleCount, d + visibleCount));
|
|
15570
|
+
}, [visibleCount]);
|
|
15571
|
+
const gridColsClass = visibleCount === 1 ? "grid-cols-2" : visibleCount === 3 ? "grid-cols-4" : "grid-cols-8";
|
|
15503
15572
|
const handleSlotClick = useCallback(
|
|
15504
15573
|
(day, time) => {
|
|
15505
15574
|
onSlotClick?.(day, time);
|
|
@@ -15551,93 +15620,124 @@ function CalendarGrid({
|
|
|
15551
15620
|
},
|
|
15552
15621
|
event.id
|
|
15553
15622
|
);
|
|
15554
|
-
return /* @__PURE__ */
|
|
15623
|
+
return /* @__PURE__ */ jsxs(
|
|
15555
15624
|
Box,
|
|
15556
15625
|
{
|
|
15557
|
-
className
|
|
15626
|
+
className,
|
|
15558
15627
|
...swipeLeftEvent || swipeRightEvent ? {
|
|
15559
15628
|
onPointerDown: swipe.onPointerDown,
|
|
15560
15629
|
onPointerMove: swipe.onPointerMove,
|
|
15561
15630
|
onPointerUp: swipe.onPointerUp,
|
|
15562
15631
|
onPointerCancel: swipe.onPointerCancel
|
|
15563
15632
|
} : {},
|
|
15564
|
-
children:
|
|
15565
|
-
/* @__PURE__ */ jsxs(
|
|
15566
|
-
/* @__PURE__ */ jsx(
|
|
15567
|
-
|
|
15568
|
-
|
|
15569
|
-
|
|
15570
|
-
|
|
15571
|
-
|
|
15572
|
-
|
|
15573
|
-
|
|
15574
|
-
|
|
15575
|
-
|
|
15576
|
-
|
|
15577
|
-
|
|
15578
|
-
|
|
15579
|
-
|
|
15580
|
-
|
|
15581
|
-
|
|
15582
|
-
|
|
15583
|
-
|
|
15584
|
-
|
|
15585
|
-
|
|
15586
|
-
|
|
15587
|
-
|
|
15588
|
-
|
|
15633
|
+
children: [
|
|
15634
|
+
visibleCount < 7 && /* @__PURE__ */ jsxs(HStack, { align: "center", justify: "between", className: "mb-2 px-2", children: [
|
|
15635
|
+
/* @__PURE__ */ jsx(
|
|
15636
|
+
Button,
|
|
15637
|
+
{
|
|
15638
|
+
variant: "ghost",
|
|
15639
|
+
size: "sm",
|
|
15640
|
+
icon: ChevronLeft,
|
|
15641
|
+
onClick: stepPrev,
|
|
15642
|
+
"aria-disabled": !canPrev || void 0,
|
|
15643
|
+
"aria-label": "Previous days",
|
|
15644
|
+
children: "Prev"
|
|
15645
|
+
}
|
|
15646
|
+
),
|
|
15647
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: formatDateRange(visibleDays[0], visibleDays[visibleDays.length - 1]) }),
|
|
15648
|
+
/* @__PURE__ */ jsx(
|
|
15649
|
+
Button,
|
|
15650
|
+
{
|
|
15651
|
+
variant: "ghost",
|
|
15652
|
+
size: "sm",
|
|
15653
|
+
iconRight: ChevronRight,
|
|
15654
|
+
onClick: stepNext,
|
|
15655
|
+
"aria-disabled": !canNext || void 0,
|
|
15656
|
+
"aria-label": "Next days",
|
|
15657
|
+
children: "Next"
|
|
15658
|
+
}
|
|
15659
|
+
)
|
|
15589
15660
|
] }),
|
|
15590
|
-
/* @__PURE__ */
|
|
15591
|
-
Box,
|
|
15592
|
-
|
|
15593
|
-
|
|
15594
|
-
|
|
15595
|
-
|
|
15596
|
-
|
|
15661
|
+
/* @__PURE__ */ jsxs(Box, { children: [
|
|
15662
|
+
/* @__PURE__ */ jsxs(Box, { className: cn("grid border-b border-border", gridColsClass), children: [
|
|
15663
|
+
/* @__PURE__ */ jsx(Box, { className: "p-2" }),
|
|
15664
|
+
visibleDays.map((day) => {
|
|
15665
|
+
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
15666
|
+
const count = eventsForDayCount(day);
|
|
15667
|
+
return /* @__PURE__ */ jsxs(
|
|
15668
|
+
Box,
|
|
15597
15669
|
{
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
|
|
15605
|
-
|
|
15606
|
-
|
|
15607
|
-
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
15608
|
-
return /* @__PURE__ */ jsx(
|
|
15609
|
-
TimeSlotCell,
|
|
15610
|
-
{
|
|
15611
|
-
time,
|
|
15612
|
-
isOccupied: slotEvents.length > 0,
|
|
15613
|
-
onClick: () => handleSlotClick(day, time),
|
|
15614
|
-
className: cn(
|
|
15615
|
-
"border-l border-border",
|
|
15616
|
-
isToday && "bg-blue-50/30"
|
|
15670
|
+
className: "border-l border-border",
|
|
15671
|
+
children: [
|
|
15672
|
+
/* @__PURE__ */ jsx(
|
|
15673
|
+
DayCell,
|
|
15674
|
+
{
|
|
15675
|
+
date: day,
|
|
15676
|
+
isToday,
|
|
15677
|
+
onClick: onDayClick
|
|
15678
|
+
}
|
|
15617
15679
|
),
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
|
|
15621
|
-
|
|
15622
|
-
|
|
15623
|
-
|
|
15624
|
-
|
|
15625
|
-
|
|
15626
|
-
|
|
15627
|
-
|
|
15628
|
-
|
|
15629
|
-
|
|
15630
|
-
|
|
15631
|
-
|
|
15632
|
-
|
|
15680
|
+
count > 0 && /* @__PURE__ */ jsx(Box, { className: "text-center pb-1", children: /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: count }) })
|
|
15681
|
+
]
|
|
15682
|
+
},
|
|
15683
|
+
day.toISOString()
|
|
15684
|
+
);
|
|
15685
|
+
})
|
|
15686
|
+
] }),
|
|
15687
|
+
/* @__PURE__ */ jsx(Box, { className: "max-h-[500px] overflow-y-auto", children: resolvedTimeSlots.map((time) => /* @__PURE__ */ jsxs(
|
|
15688
|
+
Box,
|
|
15689
|
+
{
|
|
15690
|
+
className: cn("grid border-b border-border", gridColsClass),
|
|
15691
|
+
children: [
|
|
15692
|
+
/* @__PURE__ */ jsx(Box, { className: "p-2 text-right pr-3", children: /* @__PURE__ */ jsx(
|
|
15693
|
+
Typography,
|
|
15694
|
+
{
|
|
15695
|
+
variant: "small",
|
|
15696
|
+
className: "text-muted-foreground",
|
|
15697
|
+
children: time
|
|
15698
|
+
}
|
|
15699
|
+
) }),
|
|
15700
|
+
visibleDays.map((day) => {
|
|
15701
|
+
const slotEvents = events2.filter(
|
|
15702
|
+
(ev) => eventInSlot(ev, day, time)
|
|
15703
|
+
);
|
|
15704
|
+
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
15705
|
+
return /* @__PURE__ */ jsx(
|
|
15706
|
+
TimeSlotCell,
|
|
15707
|
+
{
|
|
15708
|
+
time,
|
|
15709
|
+
isOccupied: slotEvents.length > 0,
|
|
15710
|
+
onClick: () => handleSlotClick(day, time),
|
|
15711
|
+
className: cn(
|
|
15712
|
+
"border-l border-border",
|
|
15713
|
+
isToday && "bg-blue-50/30"
|
|
15714
|
+
),
|
|
15715
|
+
...longPressEvent ? {
|
|
15716
|
+
onPointerDown: () => startLongPress(day, time),
|
|
15717
|
+
onPointerUp: clearLongPress,
|
|
15718
|
+
onPointerCancel: clearLongPress
|
|
15719
|
+
} : {},
|
|
15720
|
+
children: /* @__PURE__ */ jsx(VStack, { gap: "xs", children: slotEvents.map(renderEvent) })
|
|
15721
|
+
},
|
|
15722
|
+
`${day.toISOString()}-${time}`
|
|
15723
|
+
);
|
|
15724
|
+
})
|
|
15725
|
+
]
|
|
15726
|
+
},
|
|
15727
|
+
time
|
|
15728
|
+
)) })
|
|
15729
|
+
] })
|
|
15730
|
+
]
|
|
15633
15731
|
}
|
|
15634
15732
|
);
|
|
15635
15733
|
}
|
|
15734
|
+
var SHORT_DATE;
|
|
15636
15735
|
var init_CalendarGrid = __esm({
|
|
15637
15736
|
"components/molecules/CalendarGrid.tsx"() {
|
|
15638
15737
|
"use client";
|
|
15639
15738
|
init_cn();
|
|
15640
15739
|
init_Box();
|
|
15740
|
+
init_Button();
|
|
15641
15741
|
init_Stack();
|
|
15642
15742
|
init_Typography();
|
|
15643
15743
|
init_Badge();
|
|
@@ -15645,6 +15745,7 @@ var init_CalendarGrid = __esm({
|
|
|
15645
15745
|
init_TimeSlotCell();
|
|
15646
15746
|
init_useEventBus();
|
|
15647
15747
|
init_useSwipeGesture();
|
|
15748
|
+
SHORT_DATE = { month: "short", day: "numeric" };
|
|
15648
15749
|
CalendarGrid.displayName = "CalendarGrid";
|
|
15649
15750
|
}
|
|
15650
15751
|
});
|
|
@@ -18852,9 +18953,9 @@ var init_Tabs = __esm({
|
|
|
18852
18953
|
className
|
|
18853
18954
|
}) => {
|
|
18854
18955
|
const rawItems = items ?? tabs ?? [];
|
|
18855
|
-
const safeItems = rawItems.map((
|
|
18856
|
-
...
|
|
18857
|
-
id:
|
|
18956
|
+
const safeItems = rawItems.map(({ id, value, ...rest }) => ({
|
|
18957
|
+
...rest,
|
|
18958
|
+
id: id || value || ""
|
|
18858
18959
|
}));
|
|
18859
18960
|
const eventBus = useEventBus();
|
|
18860
18961
|
const { t } = useTranslate();
|
|
@@ -18923,7 +19024,12 @@ var init_Tabs = __esm({
|
|
|
18923
19024
|
role: "tablist",
|
|
18924
19025
|
className: cn(
|
|
18925
19026
|
"flex",
|
|
18926
|
-
|
|
19027
|
+
// Horizontal tab strip becomes a horizontally-scrollable lane
|
|
19028
|
+
// below its container width — phones with many tabs scroll
|
|
19029
|
+
// instead of clipping. `snap-x` snaps to each tab; the
|
|
19030
|
+
// scrollbar is hidden for a cleaner affordance (the swipe
|
|
19031
|
+
// gesture is the discoverability cue).
|
|
19032
|
+
orientation === "horizontal" ? "flex-row border-b-[length:var(--border-width)] border-border overflow-x-auto snap-x snap-mandatory [&::-webkit-scrollbar]:hidden" : "flex-col border-r-[length:var(--border-width)] border-border",
|
|
18927
19033
|
variant === "pills" && "gap-1 p-1 bg-muted border-0 rounded-md",
|
|
18928
19034
|
variant === "underline" && orientation === "vertical" && "border-b-0"
|
|
18929
19035
|
),
|
|
@@ -18945,7 +19051,8 @@ var init_Tabs = __esm({
|
|
|
18945
19051
|
onKeyDown: (e) => handleKeyDown(e, index),
|
|
18946
19052
|
"data-active": isActive,
|
|
18947
19053
|
className: cn(
|
|
18948
|
-
"flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all",
|
|
19054
|
+
"flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all whitespace-nowrap",
|
|
19055
|
+
orientation === "horizontal" && "snap-start shrink-0",
|
|
18949
19056
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
18950
19057
|
isDisabled && "opacity-50 cursor-not-allowed",
|
|
18951
19058
|
variantClasses2[variant],
|
|
@@ -19842,7 +19949,7 @@ function CraftingRecipe({
|
|
|
19842
19949
|
className
|
|
19843
19950
|
}) {
|
|
19844
19951
|
const eventBus = useEventBus();
|
|
19845
|
-
const handleCraft =
|
|
19952
|
+
const handleCraft = React78.useCallback(() => {
|
|
19846
19953
|
onCraft?.();
|
|
19847
19954
|
if (craftEvent) {
|
|
19848
19955
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -19859,7 +19966,7 @@ function CraftingRecipe({
|
|
|
19859
19966
|
children: [
|
|
19860
19967
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
19861
19968
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
19862
|
-
return /* @__PURE__ */ jsxs(
|
|
19969
|
+
return /* @__PURE__ */ jsxs(React78.Fragment, { children: [
|
|
19863
19970
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
19864
19971
|
ItemSlot,
|
|
19865
19972
|
{
|
|
@@ -19922,8 +20029,8 @@ function DPad({
|
|
|
19922
20029
|
}) {
|
|
19923
20030
|
const eventBus = useEventBus();
|
|
19924
20031
|
const sizes = sizeMap6[size];
|
|
19925
|
-
const [activeDirections, setActiveDirections] =
|
|
19926
|
-
const handlePress =
|
|
20032
|
+
const [activeDirections, setActiveDirections] = React78.useState(/* @__PURE__ */ new Set());
|
|
20033
|
+
const handlePress = React78.useCallback(
|
|
19927
20034
|
(direction) => {
|
|
19928
20035
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
19929
20036
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -19931,7 +20038,7 @@ function DPad({
|
|
|
19931
20038
|
},
|
|
19932
20039
|
[directionEvent, eventBus, onDirection]
|
|
19933
20040
|
);
|
|
19934
|
-
const handleRelease =
|
|
20041
|
+
const handleRelease = React78.useCallback(
|
|
19935
20042
|
(direction) => {
|
|
19936
20043
|
setActiveDirections((prev) => {
|
|
19937
20044
|
const next = new Set(prev);
|
|
@@ -20525,14 +20632,14 @@ function useDataDnd(args) {
|
|
|
20525
20632
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
20526
20633
|
const enabled = isZone || Boolean(dndRoot);
|
|
20527
20634
|
const eventBus = useEventBus();
|
|
20528
|
-
const parentRoot =
|
|
20635
|
+
const parentRoot = React78__default.useContext(RootCtx);
|
|
20529
20636
|
const isRoot = enabled && parentRoot === null;
|
|
20530
|
-
const zoneId =
|
|
20637
|
+
const zoneId = React78__default.useId();
|
|
20531
20638
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
20532
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
20533
|
-
const optimisticOrdersRef =
|
|
20639
|
+
const [optimisticOrders, setOptimisticOrders] = React78__default.useState(() => /* @__PURE__ */ new Map());
|
|
20640
|
+
const optimisticOrdersRef = React78__default.useRef(optimisticOrders);
|
|
20534
20641
|
optimisticOrdersRef.current = optimisticOrders;
|
|
20535
|
-
const clearOptimisticOrder =
|
|
20642
|
+
const clearOptimisticOrder = React78__default.useCallback((group) => {
|
|
20536
20643
|
setOptimisticOrders((prev) => {
|
|
20537
20644
|
if (!prev.has(group)) return prev;
|
|
20538
20645
|
const next = new Map(prev);
|
|
@@ -20557,7 +20664,7 @@ function useDataDnd(args) {
|
|
|
20557
20664
|
const raw = it[dndItemIdField];
|
|
20558
20665
|
return String(raw ?? `__idx_${idx}`);
|
|
20559
20666
|
}).join("|");
|
|
20560
|
-
const itemIds =
|
|
20667
|
+
const itemIds = React78__default.useMemo(
|
|
20561
20668
|
() => orderedItems.map((it, idx) => {
|
|
20562
20669
|
const raw = it[dndItemIdField];
|
|
20563
20670
|
return raw ?? `__idx_${idx}`;
|
|
@@ -20565,7 +20672,7 @@ function useDataDnd(args) {
|
|
|
20565
20672
|
[itemIdsSignature]
|
|
20566
20673
|
);
|
|
20567
20674
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
20568
|
-
|
|
20675
|
+
React78__default.useEffect(() => {
|
|
20569
20676
|
const root = isRoot ? null : parentRoot;
|
|
20570
20677
|
if (root) {
|
|
20571
20678
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -20573,20 +20680,20 @@ function useDataDnd(args) {
|
|
|
20573
20680
|
clearOptimisticOrder(ownGroup);
|
|
20574
20681
|
}
|
|
20575
20682
|
}, [itemsContentSig, ownGroup]);
|
|
20576
|
-
const zonesRef =
|
|
20577
|
-
const registerZone =
|
|
20683
|
+
const zonesRef = React78__default.useRef(/* @__PURE__ */ new Map());
|
|
20684
|
+
const registerZone = React78__default.useCallback((zoneId2, meta2) => {
|
|
20578
20685
|
zonesRef.current.set(zoneId2, meta2);
|
|
20579
20686
|
}, []);
|
|
20580
|
-
const unregisterZone =
|
|
20687
|
+
const unregisterZone = React78__default.useCallback((zoneId2) => {
|
|
20581
20688
|
zonesRef.current.delete(zoneId2);
|
|
20582
20689
|
}, []);
|
|
20583
|
-
const [activeDrag, setActiveDrag] =
|
|
20584
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
20585
|
-
const meta =
|
|
20690
|
+
const [activeDrag, setActiveDrag] = React78__default.useState(null);
|
|
20691
|
+
const [overZoneGroup, setOverZoneGroup] = React78__default.useState(null);
|
|
20692
|
+
const meta = React78__default.useMemo(
|
|
20586
20693
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
20587
20694
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
20588
20695
|
);
|
|
20589
|
-
|
|
20696
|
+
React78__default.useEffect(() => {
|
|
20590
20697
|
const target = isRoot ? null : parentRoot;
|
|
20591
20698
|
if (!target) {
|
|
20592
20699
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -20605,7 +20712,7 @@ function useDataDnd(args) {
|
|
|
20605
20712
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
20606
20713
|
const sensors = useAlmadarDndSensors(true);
|
|
20607
20714
|
const collisionDetection = almadarDndCollisionDetection;
|
|
20608
|
-
const findZoneByItem =
|
|
20715
|
+
const findZoneByItem = React78__default.useCallback(
|
|
20609
20716
|
(id) => {
|
|
20610
20717
|
for (const z of zonesRef.current.values()) {
|
|
20611
20718
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -20614,7 +20721,7 @@ function useDataDnd(args) {
|
|
|
20614
20721
|
},
|
|
20615
20722
|
[]
|
|
20616
20723
|
);
|
|
20617
|
-
|
|
20724
|
+
React78__default.useCallback(
|
|
20618
20725
|
(group) => {
|
|
20619
20726
|
for (const z of zonesRef.current.values()) {
|
|
20620
20727
|
if (z.group === group) return z;
|
|
@@ -20623,7 +20730,7 @@ function useDataDnd(args) {
|
|
|
20623
20730
|
},
|
|
20624
20731
|
[]
|
|
20625
20732
|
);
|
|
20626
|
-
const handleDragEnd =
|
|
20733
|
+
const handleDragEnd = React78__default.useCallback(
|
|
20627
20734
|
(event) => {
|
|
20628
20735
|
const { active, over } = event;
|
|
20629
20736
|
const activeIdStr = String(active.id);
|
|
@@ -20714,8 +20821,8 @@ function useDataDnd(args) {
|
|
|
20714
20821
|
},
|
|
20715
20822
|
[eventBus]
|
|
20716
20823
|
);
|
|
20717
|
-
const sortableData =
|
|
20718
|
-
const SortableItem =
|
|
20824
|
+
const sortableData = React78__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
20825
|
+
const SortableItem = React78__default.useCallback(
|
|
20719
20826
|
({ id, children }) => {
|
|
20720
20827
|
const {
|
|
20721
20828
|
attributes,
|
|
@@ -20755,7 +20862,7 @@ function useDataDnd(args) {
|
|
|
20755
20862
|
id: droppableId,
|
|
20756
20863
|
data: sortableData
|
|
20757
20864
|
});
|
|
20758
|
-
const ctx =
|
|
20865
|
+
const ctx = React78__default.useContext(RootCtx);
|
|
20759
20866
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
20760
20867
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
20761
20868
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -20770,7 +20877,7 @@ function useDataDnd(args) {
|
|
|
20770
20877
|
showForeignPlaceholder,
|
|
20771
20878
|
ctxAvailable: ctx != null
|
|
20772
20879
|
});
|
|
20773
|
-
|
|
20880
|
+
React78__default.useEffect(() => {
|
|
20774
20881
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
20775
20882
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
20776
20883
|
return /* @__PURE__ */ jsx(
|
|
@@ -20784,11 +20891,11 @@ function useDataDnd(args) {
|
|
|
20784
20891
|
}
|
|
20785
20892
|
);
|
|
20786
20893
|
};
|
|
20787
|
-
const rootContextValue =
|
|
20894
|
+
const rootContextValue = React78__default.useMemo(
|
|
20788
20895
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
20789
20896
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
20790
20897
|
);
|
|
20791
|
-
const handleDragStart =
|
|
20898
|
+
const handleDragStart = React78__default.useCallback((event) => {
|
|
20792
20899
|
const sourceZone = findZoneByItem(event.active.id);
|
|
20793
20900
|
const rect = event.active.rect.current.initial;
|
|
20794
20901
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -20807,7 +20914,7 @@ function useDataDnd(args) {
|
|
|
20807
20914
|
isRoot
|
|
20808
20915
|
});
|
|
20809
20916
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
20810
|
-
const handleDragOver =
|
|
20917
|
+
const handleDragOver = React78__default.useCallback((event) => {
|
|
20811
20918
|
const { active, over } = event;
|
|
20812
20919
|
const overData = over?.data?.current;
|
|
20813
20920
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -20877,7 +20984,7 @@ function useDataDnd(args) {
|
|
|
20877
20984
|
return next;
|
|
20878
20985
|
});
|
|
20879
20986
|
}, []);
|
|
20880
|
-
const handleDragCancel =
|
|
20987
|
+
const handleDragCancel = React78__default.useCallback((event) => {
|
|
20881
20988
|
setActiveDrag(null);
|
|
20882
20989
|
setOverZoneGroup(null);
|
|
20883
20990
|
dndLog.warn("dragCancel", {
|
|
@@ -20885,12 +20992,12 @@ function useDataDnd(args) {
|
|
|
20885
20992
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
20886
20993
|
});
|
|
20887
20994
|
}, []);
|
|
20888
|
-
const handleDragEndWithCleanup =
|
|
20995
|
+
const handleDragEndWithCleanup = React78__default.useCallback((event) => {
|
|
20889
20996
|
handleDragEnd(event);
|
|
20890
20997
|
setActiveDrag(null);
|
|
20891
20998
|
setOverZoneGroup(null);
|
|
20892
20999
|
}, [handleDragEnd]);
|
|
20893
|
-
const wrapContainer =
|
|
21000
|
+
const wrapContainer = React78__default.useCallback(
|
|
20894
21001
|
(children) => {
|
|
20895
21002
|
if (!enabled) return children;
|
|
20896
21003
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -20944,7 +21051,7 @@ var init_useDataDnd = __esm({
|
|
|
20944
21051
|
init_useAlmadarDndCollision();
|
|
20945
21052
|
init_Box();
|
|
20946
21053
|
dndLog = createLogger("almadar:ui:dnd");
|
|
20947
|
-
RootCtx =
|
|
21054
|
+
RootCtx = React78__default.createContext(null);
|
|
20948
21055
|
}
|
|
20949
21056
|
});
|
|
20950
21057
|
function fieldLabel2(key) {
|
|
@@ -21433,7 +21540,7 @@ function DataList({
|
|
|
21433
21540
|
}) {
|
|
21434
21541
|
const eventBus = useEventBus();
|
|
21435
21542
|
const { t } = useTranslate();
|
|
21436
|
-
const [visibleCount, setVisibleCount] =
|
|
21543
|
+
const [visibleCount, setVisibleCount] = React78__default.useState(pageSize || Infinity);
|
|
21437
21544
|
const fieldDefs = fields ?? columns ?? [];
|
|
21438
21545
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
21439
21546
|
const dnd = useDataDnd({
|
|
@@ -21452,7 +21559,7 @@ function DataList({
|
|
|
21452
21559
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
21453
21560
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
21454
21561
|
const hasRenderProp = typeof children === "function";
|
|
21455
|
-
|
|
21562
|
+
React78__default.useEffect(() => {
|
|
21456
21563
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
21457
21564
|
const childrenTypeOf = typeof children;
|
|
21458
21565
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -21509,7 +21616,7 @@ function DataList({
|
|
|
21509
21616
|
const items2 = data.map((item) => item);
|
|
21510
21617
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
21511
21618
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
21512
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
21619
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
21513
21620
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
21514
21621
|
group.items.map((itemData, index) => {
|
|
21515
21622
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -21697,7 +21804,7 @@ function DataList({
|
|
|
21697
21804
|
className
|
|
21698
21805
|
),
|
|
21699
21806
|
children: [
|
|
21700
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
21807
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
21701
21808
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
21702
21809
|
group.items.map(
|
|
21703
21810
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -22934,6 +23041,8 @@ var SidePanel;
|
|
|
22934
23041
|
var init_SidePanel = __esm({
|
|
22935
23042
|
"components/molecules/SidePanel.tsx"() {
|
|
22936
23043
|
"use client";
|
|
23044
|
+
init_Aside();
|
|
23045
|
+
init_Box();
|
|
22937
23046
|
init_Button();
|
|
22938
23047
|
init_Typography();
|
|
22939
23048
|
init_cn();
|
|
@@ -22943,7 +23052,7 @@ var init_SidePanel = __esm({
|
|
|
22943
23052
|
children,
|
|
22944
23053
|
isOpen,
|
|
22945
23054
|
onClose,
|
|
22946
|
-
width = "w-96",
|
|
23055
|
+
width = "w-full sm:w-96",
|
|
22947
23056
|
position = "right",
|
|
22948
23057
|
showOverlay = true,
|
|
22949
23058
|
className,
|
|
@@ -22957,14 +23066,14 @@ var init_SidePanel = __esm({
|
|
|
22957
23066
|
if (!isOpen) return null;
|
|
22958
23067
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
22959
23068
|
showOverlay && /* @__PURE__ */ jsx(
|
|
22960
|
-
|
|
23069
|
+
Box,
|
|
22961
23070
|
{
|
|
22962
23071
|
className: "fixed inset-0 bg-white/80 backdrop-blur-sm z-40 lg:hidden",
|
|
22963
23072
|
onClick: handleClose
|
|
22964
23073
|
}
|
|
22965
23074
|
),
|
|
22966
23075
|
/* @__PURE__ */ jsxs(
|
|
22967
|
-
|
|
23076
|
+
Aside,
|
|
22968
23077
|
{
|
|
22969
23078
|
className: cn(
|
|
22970
23079
|
"fixed top-16 lg:top-0 bottom-0 z-[60]",
|
|
@@ -22978,7 +23087,7 @@ var init_SidePanel = __esm({
|
|
|
22978
23087
|
className
|
|
22979
23088
|
),
|
|
22980
23089
|
children: [
|
|
22981
|
-
/* @__PURE__ */ jsxs(
|
|
23090
|
+
/* @__PURE__ */ jsxs(Box, { className: "flex items-center justify-between p-4 border-b-2 border-border sticky top-0 bg-card z-10", children: [
|
|
22982
23091
|
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: title }),
|
|
22983
23092
|
/* @__PURE__ */ jsx(
|
|
22984
23093
|
Button,
|
|
@@ -22988,11 +23097,11 @@ var init_SidePanel = __esm({
|
|
|
22988
23097
|
icon: X,
|
|
22989
23098
|
onClick: handleClose,
|
|
22990
23099
|
"aria-label": "Close panel",
|
|
22991
|
-
children: /* @__PURE__ */ jsx("span",
|
|
23100
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", className: "sr-only", children: "Close" })
|
|
22992
23101
|
}
|
|
22993
23102
|
)
|
|
22994
23103
|
] }),
|
|
22995
|
-
/* @__PURE__ */ jsx(
|
|
23104
|
+
/* @__PURE__ */ jsx(Box, { className: "p-4 flex-1 overflow-y-auto", children })
|
|
22996
23105
|
]
|
|
22997
23106
|
}
|
|
22998
23107
|
)
|
|
@@ -23043,7 +23152,7 @@ var init_WizardProgress = __esm({
|
|
|
23043
23152
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
23044
23153
|
const isActive = index === currentStep;
|
|
23045
23154
|
const isCompleted = index < currentStep;
|
|
23046
|
-
return /* @__PURE__ */ jsxs(
|
|
23155
|
+
return /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
23047
23156
|
/* @__PURE__ */ jsx(
|
|
23048
23157
|
"button",
|
|
23049
23158
|
{
|
|
@@ -23168,7 +23277,9 @@ var init_WizardNavigation = __esm({
|
|
|
23168
23277
|
{
|
|
23169
23278
|
border: true,
|
|
23170
23279
|
className: cn(
|
|
23171
|
-
|
|
23280
|
+
// `flex-wrap gap-2` lets the Back / Step / Next trio reflow on
|
|
23281
|
+
// narrow viewports rather than crushing the step counter.
|
|
23282
|
+
"border-t-2 border-x-0 border-b-0 border-border flex flex-wrap gap-2 justify-between items-center",
|
|
23172
23283
|
compact ? "px-4 py-2" : "px-6 py-4",
|
|
23173
23284
|
className
|
|
23174
23285
|
),
|
|
@@ -24088,9 +24199,9 @@ function ScoreDisplay({
|
|
|
24088
24199
|
...rest
|
|
24089
24200
|
}) {
|
|
24090
24201
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
24091
|
-
const [displayValue, setDisplayValue] =
|
|
24092
|
-
const [isAnimating, setIsAnimating] =
|
|
24093
|
-
|
|
24202
|
+
const [displayValue, setDisplayValue] = React78.useState(resolvedValue);
|
|
24203
|
+
const [isAnimating, setIsAnimating] = React78.useState(false);
|
|
24204
|
+
React78.useEffect(() => {
|
|
24094
24205
|
if (!animated || displayValue === resolvedValue) {
|
|
24095
24206
|
setDisplayValue(resolvedValue);
|
|
24096
24207
|
return;
|
|
@@ -24240,7 +24351,7 @@ function InventoryGrid({
|
|
|
24240
24351
|
const eventBus = useEventBus();
|
|
24241
24352
|
const slotCount = totalSlots ?? items.length;
|
|
24242
24353
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
24243
|
-
const handleSelect =
|
|
24354
|
+
const handleSelect = React78.useCallback(
|
|
24244
24355
|
(id) => {
|
|
24245
24356
|
onSelect?.(id);
|
|
24246
24357
|
if (selectEvent) {
|
|
@@ -24522,15 +24633,15 @@ function GameCanvas2D({
|
|
|
24522
24633
|
fps = 60,
|
|
24523
24634
|
className
|
|
24524
24635
|
}) {
|
|
24525
|
-
const canvasRef =
|
|
24526
|
-
const rafRef =
|
|
24527
|
-
const frameRef =
|
|
24528
|
-
const lastTimeRef =
|
|
24529
|
-
const onDrawRef =
|
|
24636
|
+
const canvasRef = React78.useRef(null);
|
|
24637
|
+
const rafRef = React78.useRef(0);
|
|
24638
|
+
const frameRef = React78.useRef(0);
|
|
24639
|
+
const lastTimeRef = React78.useRef(0);
|
|
24640
|
+
const onDrawRef = React78.useRef(onDraw);
|
|
24530
24641
|
onDrawRef.current = onDraw;
|
|
24531
|
-
const onTickRef =
|
|
24642
|
+
const onTickRef = React78.useRef(onTick);
|
|
24532
24643
|
onTickRef.current = onTick;
|
|
24533
|
-
|
|
24644
|
+
React78.useEffect(() => {
|
|
24534
24645
|
const canvas = canvasRef.current;
|
|
24535
24646
|
if (!canvas) return;
|
|
24536
24647
|
const ctx = canvas.getContext("2d");
|
|
@@ -24871,7 +24982,7 @@ function TurnPanel({
|
|
|
24871
24982
|
className
|
|
24872
24983
|
}) {
|
|
24873
24984
|
const eventBus = useEventBus();
|
|
24874
|
-
const handleAction =
|
|
24985
|
+
const handleAction = React78.useCallback(
|
|
24875
24986
|
(event) => {
|
|
24876
24987
|
if (event) {
|
|
24877
24988
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -25017,7 +25128,7 @@ function UnitCommandBar({
|
|
|
25017
25128
|
className
|
|
25018
25129
|
}) {
|
|
25019
25130
|
const eventBus = useEventBus();
|
|
25020
|
-
const handleCommand =
|
|
25131
|
+
const handleCommand = React78.useCallback(
|
|
25021
25132
|
(event) => {
|
|
25022
25133
|
if (event) {
|
|
25023
25134
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -25502,7 +25613,7 @@ function GameMenu({
|
|
|
25502
25613
|
} catch {
|
|
25503
25614
|
}
|
|
25504
25615
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
25505
|
-
const handleOptionClick =
|
|
25616
|
+
const handleOptionClick = React78.useCallback(
|
|
25506
25617
|
(option) => {
|
|
25507
25618
|
if (option.event && eventBus) {
|
|
25508
25619
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -25616,7 +25727,7 @@ function GameOverScreen({
|
|
|
25616
25727
|
} catch {
|
|
25617
25728
|
}
|
|
25618
25729
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
25619
|
-
const handleActionClick =
|
|
25730
|
+
const handleActionClick = React78.useCallback(
|
|
25620
25731
|
(action) => {
|
|
25621
25732
|
if (action.event && eventBus) {
|
|
25622
25733
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -28297,7 +28408,7 @@ var init_StepFlow = __esm({
|
|
|
28297
28408
|
className
|
|
28298
28409
|
}) => {
|
|
28299
28410
|
if (orientation === "vertical") {
|
|
28300
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
28411
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React78__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
28301
28412
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
28302
28413
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
28303
28414
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -28308,7 +28419,7 @@ var init_StepFlow = __esm({
|
|
|
28308
28419
|
] })
|
|
28309
28420
|
] }) }, index)) });
|
|
28310
28421
|
}
|
|
28311
|
-
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(
|
|
28422
|
+
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(React78__default.Fragment, { children: [
|
|
28312
28423
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
28313
28424
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
28314
28425
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -28376,9 +28487,9 @@ var init_SplitSection = __esm({
|
|
|
28376
28487
|
className
|
|
28377
28488
|
),
|
|
28378
28489
|
padding: "lg",
|
|
28379
|
-
children: /* @__PURE__ */ jsxs(Box, { className: cn("w-full flex flex-col
|
|
28380
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0
|
|
28381
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0
|
|
28490
|
+
children: /* @__PURE__ */ jsxs(Box, { className: cn("w-full flex flex-col md:flex-row gap-8 md:gap-12 lg:gap-16 items-center", isImageLeft && "md:flex-row-reverse"), children: [
|
|
28491
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0 md:min-w-[45%]", children: textContent }),
|
|
28492
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0 md:max-w-[50%]", children: mediaContent })
|
|
28382
28493
|
] })
|
|
28383
28494
|
}
|
|
28384
28495
|
);
|
|
@@ -29190,7 +29301,7 @@ var init_LikertScale = __esm({
|
|
|
29190
29301
|
md: "text-base",
|
|
29191
29302
|
lg: "text-lg"
|
|
29192
29303
|
};
|
|
29193
|
-
LikertScale =
|
|
29304
|
+
LikertScale = React78__default.forwardRef(
|
|
29194
29305
|
({
|
|
29195
29306
|
question,
|
|
29196
29307
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -29202,7 +29313,7 @@ var init_LikertScale = __esm({
|
|
|
29202
29313
|
variant = "radios",
|
|
29203
29314
|
className
|
|
29204
29315
|
}, ref) => {
|
|
29205
|
-
const groupId =
|
|
29316
|
+
const groupId = React78__default.useId();
|
|
29206
29317
|
const eventBus = useEventBus();
|
|
29207
29318
|
const handleSelect = useCallback(
|
|
29208
29319
|
(next) => {
|
|
@@ -31206,7 +31317,7 @@ var init_VersionDiff = __esm({
|
|
|
31206
31317
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "flex-wrap", children: [
|
|
31207
31318
|
/* @__PURE__ */ jsx(Icon, { icon: GitCommit, size: "sm", className: "text-muted-foreground" }),
|
|
31208
31319
|
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: "Compare" }),
|
|
31209
|
-
/* @__PURE__ */ jsx(Box, { className: "min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
31320
|
+
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
31210
31321
|
Select,
|
|
31211
31322
|
{
|
|
31212
31323
|
options,
|
|
@@ -31216,7 +31327,7 @@ var init_VersionDiff = __esm({
|
|
|
31216
31327
|
}
|
|
31217
31328
|
) }),
|
|
31218
31329
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: "to" }),
|
|
31219
|
-
/* @__PURE__ */ jsx(Box, { className: "min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
31330
|
+
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
31220
31331
|
Select,
|
|
31221
31332
|
{
|
|
31222
31333
|
options,
|
|
@@ -31281,8 +31392,8 @@ var init_VersionDiff = __esm({
|
|
|
31281
31392
|
]
|
|
31282
31393
|
}
|
|
31283
31394
|
),
|
|
31284
|
-
/* @__PURE__ */ jsx(Box, { className: "overflow-auto bg-muted/20", style: { maxHeight: 600 }, children: activeView === "side-by-side" ? /* @__PURE__ */ jsxs(Box, { className: "grid grid-cols-2", children: [
|
|
31285
|
-
/* @__PURE__ */ jsx(Box, { className: "border-r border-border", children: /* @__PURE__ */ jsx(VStack, { gap: "none", className: "font-mono text-xs", children: beforeLines.map((line, idx) => {
|
|
31395
|
+
/* @__PURE__ */ jsx(Box, { className: "overflow-auto bg-muted/20", style: { maxHeight: 600 }, children: activeView === "side-by-side" ? /* @__PURE__ */ jsxs(Box, { className: "grid grid-cols-1 md:grid-cols-2", children: [
|
|
31396
|
+
/* @__PURE__ */ jsx(Box, { className: "border-b md:border-b-0 md:border-r border-border", children: /* @__PURE__ */ jsx(VStack, { gap: "none", className: "font-mono text-xs", children: beforeLines.map((line, idx) => {
|
|
31286
31397
|
const isRemoved = line.type === "removed";
|
|
31287
31398
|
return /* @__PURE__ */ jsxs(
|
|
31288
31399
|
HStack,
|
|
@@ -31428,7 +31539,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
31428
31539
|
"aria-label": "Breadcrumb",
|
|
31429
31540
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
31430
31541
|
const isLast = idx === items.length - 1;
|
|
31431
|
-
return /* @__PURE__ */ jsxs(
|
|
31542
|
+
return /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
31432
31543
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
31433
31544
|
Icon,
|
|
31434
31545
|
{
|
|
@@ -32318,7 +32429,7 @@ var init_MiniStateMachine = __esm({
|
|
|
32318
32429
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
32319
32430
|
const tc = transitionCounts[s.name] ?? 0;
|
|
32320
32431
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
32321
|
-
return /* @__PURE__ */ jsxs(
|
|
32432
|
+
return /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
32322
32433
|
/* @__PURE__ */ jsx(
|
|
32323
32434
|
AvlState,
|
|
32324
32435
|
{
|
|
@@ -33832,7 +33943,7 @@ var init_DocumentViewer = __esm({
|
|
|
33832
33943
|
}
|
|
33833
33944
|
});
|
|
33834
33945
|
function extractTitle(children) {
|
|
33835
|
-
if (!
|
|
33946
|
+
if (!React78__default.isValidElement(children)) return void 0;
|
|
33836
33947
|
const props = children.props;
|
|
33837
33948
|
if (typeof props.title === "string") {
|
|
33838
33949
|
return props.title;
|
|
@@ -33944,7 +34055,7 @@ function LinearView({
|
|
|
33944
34055
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
33945
34056
|
const isDone = i < currentIdx;
|
|
33946
34057
|
const isCurrent = i === currentIdx;
|
|
33947
|
-
return /* @__PURE__ */ jsxs(
|
|
34058
|
+
return /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
33948
34059
|
i > 0 && /* @__PURE__ */ jsx(
|
|
33949
34060
|
Typography,
|
|
33950
34061
|
{
|
|
@@ -34845,12 +34956,12 @@ var init_Form = __esm({
|
|
|
34845
34956
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
34846
34957
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
34847
34958
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
34848
|
-
const normalizedInitialData =
|
|
34959
|
+
const normalizedInitialData = React78__default.useMemo(() => {
|
|
34849
34960
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
34850
34961
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
34851
34962
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
34852
34963
|
}, [entity, initialData]);
|
|
34853
|
-
const entityDerivedFields =
|
|
34964
|
+
const entityDerivedFields = React78__default.useMemo(() => {
|
|
34854
34965
|
if (fields && fields.length > 0) return void 0;
|
|
34855
34966
|
if (!resolvedEntity) return void 0;
|
|
34856
34967
|
return resolvedEntity.fields.map(
|
|
@@ -34869,16 +34980,16 @@ var init_Form = __esm({
|
|
|
34869
34980
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
34870
34981
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
34871
34982
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
34872
|
-
const [formData, setFormData] =
|
|
34983
|
+
const [formData, setFormData] = React78__default.useState(
|
|
34873
34984
|
normalizedInitialData
|
|
34874
34985
|
);
|
|
34875
|
-
const [collapsedSections, setCollapsedSections] =
|
|
34986
|
+
const [collapsedSections, setCollapsedSections] = React78__default.useState(
|
|
34876
34987
|
/* @__PURE__ */ new Set()
|
|
34877
34988
|
);
|
|
34878
|
-
const [submitError, setSubmitError] =
|
|
34879
|
-
const formRef =
|
|
34989
|
+
const [submitError, setSubmitError] = React78__default.useState(null);
|
|
34990
|
+
const formRef = React78__default.useRef(null);
|
|
34880
34991
|
const formMode = props.mode;
|
|
34881
|
-
const mountedRef =
|
|
34992
|
+
const mountedRef = React78__default.useRef(false);
|
|
34882
34993
|
if (!mountedRef.current) {
|
|
34883
34994
|
mountedRef.current = true;
|
|
34884
34995
|
debug("forms", "mount", {
|
|
@@ -34891,7 +35002,7 @@ var init_Form = __esm({
|
|
|
34891
35002
|
});
|
|
34892
35003
|
}
|
|
34893
35004
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
34894
|
-
const evalContext =
|
|
35005
|
+
const evalContext = React78__default.useMemo(
|
|
34895
35006
|
() => ({
|
|
34896
35007
|
formValues: formData,
|
|
34897
35008
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -34900,7 +35011,7 @@ var init_Form = __esm({
|
|
|
34900
35011
|
}),
|
|
34901
35012
|
[formData, externalContext]
|
|
34902
35013
|
);
|
|
34903
|
-
|
|
35014
|
+
React78__default.useEffect(() => {
|
|
34904
35015
|
debug("forms", "initialData-sync", {
|
|
34905
35016
|
mode: formMode,
|
|
34906
35017
|
normalizedInitialData,
|
|
@@ -34911,7 +35022,7 @@ var init_Form = __esm({
|
|
|
34911
35022
|
setFormData(normalizedInitialData);
|
|
34912
35023
|
}
|
|
34913
35024
|
}, [normalizedInitialData]);
|
|
34914
|
-
const processCalculations =
|
|
35025
|
+
const processCalculations = React78__default.useCallback(
|
|
34915
35026
|
(changedFieldId, newFormData) => {
|
|
34916
35027
|
if (!hiddenCalculations.length) return;
|
|
34917
35028
|
const context = {
|
|
@@ -34936,7 +35047,7 @@ var init_Form = __esm({
|
|
|
34936
35047
|
},
|
|
34937
35048
|
[hiddenCalculations, externalContext, eventBus]
|
|
34938
35049
|
);
|
|
34939
|
-
const checkViolations =
|
|
35050
|
+
const checkViolations = React78__default.useCallback(
|
|
34940
35051
|
(changedFieldId, newFormData) => {
|
|
34941
35052
|
if (!violationTriggers.length) return;
|
|
34942
35053
|
const context = {
|
|
@@ -34974,7 +35085,7 @@ var init_Form = __esm({
|
|
|
34974
35085
|
processCalculations(name, newFormData);
|
|
34975
35086
|
checkViolations(name, newFormData);
|
|
34976
35087
|
};
|
|
34977
|
-
const isFieldVisible =
|
|
35088
|
+
const isFieldVisible = React78__default.useCallback(
|
|
34978
35089
|
(fieldName) => {
|
|
34979
35090
|
const condition = conditionalFields[fieldName];
|
|
34980
35091
|
if (!condition) return true;
|
|
@@ -34982,7 +35093,7 @@ var init_Form = __esm({
|
|
|
34982
35093
|
},
|
|
34983
35094
|
[conditionalFields, evalContext]
|
|
34984
35095
|
);
|
|
34985
|
-
const isSectionVisible =
|
|
35096
|
+
const isSectionVisible = React78__default.useCallback(
|
|
34986
35097
|
(section) => {
|
|
34987
35098
|
if (!section.condition) return true;
|
|
34988
35099
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -35058,7 +35169,7 @@ var init_Form = __esm({
|
|
|
35058
35169
|
eventBus.emit(`UI:${onCancel}`);
|
|
35059
35170
|
}
|
|
35060
35171
|
};
|
|
35061
|
-
const renderField =
|
|
35172
|
+
const renderField = React78__default.useCallback(
|
|
35062
35173
|
(field) => {
|
|
35063
35174
|
const fieldName = field.name || field.field;
|
|
35064
35175
|
if (!fieldName) return null;
|
|
@@ -35079,7 +35190,7 @@ var init_Form = __esm({
|
|
|
35079
35190
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
35080
35191
|
);
|
|
35081
35192
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
35082
|
-
const normalizedFields =
|
|
35193
|
+
const normalizedFields = React78__default.useMemo(() => {
|
|
35083
35194
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
35084
35195
|
return effectiveFields.map((field) => {
|
|
35085
35196
|
if (typeof field === "string") {
|
|
@@ -35101,7 +35212,7 @@ var init_Form = __esm({
|
|
|
35101
35212
|
return field;
|
|
35102
35213
|
});
|
|
35103
35214
|
}, [effectiveFields, resolvedEntity]);
|
|
35104
|
-
const schemaFields =
|
|
35215
|
+
const schemaFields = React78__default.useMemo(() => {
|
|
35105
35216
|
if (normalizedFields.length === 0) return null;
|
|
35106
35217
|
if (isDebugEnabled()) {
|
|
35107
35218
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -35111,7 +35222,7 @@ var init_Form = __esm({
|
|
|
35111
35222
|
}
|
|
35112
35223
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
35113
35224
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
35114
|
-
const sectionElements =
|
|
35225
|
+
const sectionElements = React78__default.useMemo(() => {
|
|
35115
35226
|
if (!sections || sections.length === 0) return null;
|
|
35116
35227
|
return sections.map((section) => {
|
|
35117
35228
|
if (!isSectionVisible(section)) {
|
|
@@ -36837,7 +36948,7 @@ var init_List = __esm({
|
|
|
36837
36948
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
36838
36949
|
return [];
|
|
36839
36950
|
}, [entity]);
|
|
36840
|
-
const getItemActions =
|
|
36951
|
+
const getItemActions = React78__default.useCallback(
|
|
36841
36952
|
(item) => {
|
|
36842
36953
|
if (!itemActions) return [];
|
|
36843
36954
|
if (typeof itemActions === "function") {
|
|
@@ -37310,7 +37421,7 @@ var init_MediaGallery = __esm({
|
|
|
37310
37421
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
37311
37422
|
);
|
|
37312
37423
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
37313
|
-
const items =
|
|
37424
|
+
const items = React78__default.useMemo(() => {
|
|
37314
37425
|
if (propItems) return propItems;
|
|
37315
37426
|
if (entityData.length === 0) return [];
|
|
37316
37427
|
return entityData.map((record, idx) => ({
|
|
@@ -37483,9 +37594,9 @@ function MiniMap({
|
|
|
37483
37594
|
viewportRect,
|
|
37484
37595
|
className
|
|
37485
37596
|
}) {
|
|
37486
|
-
const canvasRef =
|
|
37487
|
-
const frameRef =
|
|
37488
|
-
|
|
37597
|
+
const canvasRef = React78.useRef(null);
|
|
37598
|
+
const frameRef = React78.useRef(0);
|
|
37599
|
+
React78.useEffect(() => {
|
|
37489
37600
|
const canvas = canvasRef.current;
|
|
37490
37601
|
if (!canvas) return;
|
|
37491
37602
|
const ctx = canvas.getContext("2d");
|
|
@@ -37567,7 +37678,7 @@ var init_MiniMap = __esm({
|
|
|
37567
37678
|
}
|
|
37568
37679
|
});
|
|
37569
37680
|
function extractTitle2(children) {
|
|
37570
|
-
if (!
|
|
37681
|
+
if (!React78__default.isValidElement(children)) return void 0;
|
|
37571
37682
|
const props = children.props;
|
|
37572
37683
|
if (typeof props.title === "string") {
|
|
37573
37684
|
return props.title;
|
|
@@ -38280,7 +38391,7 @@ var init_PageHeader = __esm({
|
|
|
38280
38391
|
info: "bg-info/10 text-info"
|
|
38281
38392
|
};
|
|
38282
38393
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
38283
|
-
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(
|
|
38394
|
+
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(React78__default.Fragment, { children: [
|
|
38284
38395
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
38285
38396
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
38286
38397
|
"a",
|
|
@@ -38621,7 +38732,7 @@ var init_debugRegistry = __esm({
|
|
|
38621
38732
|
}
|
|
38622
38733
|
});
|
|
38623
38734
|
function useDebugData() {
|
|
38624
|
-
const [data, setData] =
|
|
38735
|
+
const [data, setData] = React78.useState(() => ({
|
|
38625
38736
|
traits: [],
|
|
38626
38737
|
ticks: [],
|
|
38627
38738
|
guards: [],
|
|
@@ -38635,7 +38746,7 @@ function useDebugData() {
|
|
|
38635
38746
|
},
|
|
38636
38747
|
lastUpdate: Date.now()
|
|
38637
38748
|
}));
|
|
38638
|
-
|
|
38749
|
+
React78.useEffect(() => {
|
|
38639
38750
|
const updateData = () => {
|
|
38640
38751
|
setData({
|
|
38641
38752
|
traits: getAllTraits(),
|
|
@@ -38744,12 +38855,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
38744
38855
|
return positions;
|
|
38745
38856
|
}
|
|
38746
38857
|
function WalkMinimap() {
|
|
38747
|
-
const [walkStep, setWalkStep] =
|
|
38748
|
-
const [traits2, setTraits] =
|
|
38749
|
-
const [coveredEdges, setCoveredEdges] =
|
|
38750
|
-
const [completedTraits, setCompletedTraits] =
|
|
38751
|
-
const prevTraitRef =
|
|
38752
|
-
|
|
38858
|
+
const [walkStep, setWalkStep] = React78.useState(null);
|
|
38859
|
+
const [traits2, setTraits] = React78.useState([]);
|
|
38860
|
+
const [coveredEdges, setCoveredEdges] = React78.useState([]);
|
|
38861
|
+
const [completedTraits, setCompletedTraits] = React78.useState(/* @__PURE__ */ new Set());
|
|
38862
|
+
const prevTraitRef = React78.useRef(null);
|
|
38863
|
+
React78.useEffect(() => {
|
|
38753
38864
|
const interval = setInterval(() => {
|
|
38754
38865
|
const w = window;
|
|
38755
38866
|
const step = w.__orbitalWalkStep;
|
|
@@ -39196,15 +39307,15 @@ var init_EntitiesTab = __esm({
|
|
|
39196
39307
|
}
|
|
39197
39308
|
});
|
|
39198
39309
|
function EventFlowTab({ events: events2 }) {
|
|
39199
|
-
const [filter, setFilter] =
|
|
39200
|
-
const containerRef =
|
|
39201
|
-
const [autoScroll, setAutoScroll] =
|
|
39202
|
-
|
|
39310
|
+
const [filter, setFilter] = React78.useState("all");
|
|
39311
|
+
const containerRef = React78.useRef(null);
|
|
39312
|
+
const [autoScroll, setAutoScroll] = React78.useState(true);
|
|
39313
|
+
React78.useEffect(() => {
|
|
39203
39314
|
if (autoScroll && containerRef.current) {
|
|
39204
39315
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
39205
39316
|
}
|
|
39206
39317
|
}, [events2.length, autoScroll]);
|
|
39207
|
-
const filteredEvents =
|
|
39318
|
+
const filteredEvents = React78.useMemo(() => {
|
|
39208
39319
|
if (filter === "all") return events2;
|
|
39209
39320
|
return events2.filter((e) => e.type === filter);
|
|
39210
39321
|
}, [events2, filter]);
|
|
@@ -39323,7 +39434,7 @@ var init_EventFlowTab = __esm({
|
|
|
39323
39434
|
}
|
|
39324
39435
|
});
|
|
39325
39436
|
function GuardsPanel({ guards }) {
|
|
39326
|
-
const [filter, setFilter] =
|
|
39437
|
+
const [filter, setFilter] = React78.useState("all");
|
|
39327
39438
|
if (guards.length === 0) {
|
|
39328
39439
|
return /* @__PURE__ */ jsx(
|
|
39329
39440
|
EmptyState,
|
|
@@ -39336,7 +39447,7 @@ function GuardsPanel({ guards }) {
|
|
|
39336
39447
|
}
|
|
39337
39448
|
const passedCount = guards.filter((g) => g.result).length;
|
|
39338
39449
|
const failedCount = guards.length - passedCount;
|
|
39339
|
-
const filteredGuards =
|
|
39450
|
+
const filteredGuards = React78.useMemo(() => {
|
|
39340
39451
|
if (filter === "all") return guards;
|
|
39341
39452
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
39342
39453
|
return guards.filter((g) => !g.result);
|
|
@@ -39497,10 +39608,10 @@ function EffectBadge({ effect }) {
|
|
|
39497
39608
|
] });
|
|
39498
39609
|
}
|
|
39499
39610
|
function TransitionTimeline({ transitions }) {
|
|
39500
|
-
const containerRef =
|
|
39501
|
-
const [autoScroll, setAutoScroll] =
|
|
39502
|
-
const [expandedId, setExpandedId] =
|
|
39503
|
-
|
|
39611
|
+
const containerRef = React78.useRef(null);
|
|
39612
|
+
const [autoScroll, setAutoScroll] = React78.useState(true);
|
|
39613
|
+
const [expandedId, setExpandedId] = React78.useState(null);
|
|
39614
|
+
React78.useEffect(() => {
|
|
39504
39615
|
if (autoScroll && containerRef.current) {
|
|
39505
39616
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
39506
39617
|
}
|
|
@@ -39786,9 +39897,9 @@ function getAllEvents(traits2) {
|
|
|
39786
39897
|
}
|
|
39787
39898
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
39788
39899
|
const eventBus = useEventBus();
|
|
39789
|
-
const [log18, setLog] =
|
|
39790
|
-
const prevStatesRef =
|
|
39791
|
-
|
|
39900
|
+
const [log18, setLog] = React78.useState([]);
|
|
39901
|
+
const prevStatesRef = React78.useRef(/* @__PURE__ */ new Map());
|
|
39902
|
+
React78.useEffect(() => {
|
|
39792
39903
|
for (const trait of traits2) {
|
|
39793
39904
|
const prev = prevStatesRef.current.get(trait.id);
|
|
39794
39905
|
if (prev && prev !== trait.currentState) {
|
|
@@ -39958,10 +40069,10 @@ function VerifyModePanel({
|
|
|
39958
40069
|
serverCount,
|
|
39959
40070
|
localCount
|
|
39960
40071
|
}) {
|
|
39961
|
-
const [expanded, setExpanded] =
|
|
39962
|
-
const scrollRef =
|
|
39963
|
-
const prevCountRef =
|
|
39964
|
-
|
|
40072
|
+
const [expanded, setExpanded] = React78.useState(true);
|
|
40073
|
+
const scrollRef = React78.useRef(null);
|
|
40074
|
+
const prevCountRef = React78.useRef(0);
|
|
40075
|
+
React78.useEffect(() => {
|
|
39965
40076
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
39966
40077
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
39967
40078
|
}
|
|
@@ -40027,10 +40138,10 @@ function RuntimeDebugger({
|
|
|
40027
40138
|
defaultTab,
|
|
40028
40139
|
schema
|
|
40029
40140
|
}) {
|
|
40030
|
-
const [isCollapsed, setIsCollapsed] =
|
|
40031
|
-
const [isVisible, setIsVisible] =
|
|
40141
|
+
const [isCollapsed, setIsCollapsed] = React78.useState(mode === "verify" ? true : defaultCollapsed);
|
|
40142
|
+
const [isVisible, setIsVisible] = React78.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
40032
40143
|
const debugData = useDebugData();
|
|
40033
|
-
|
|
40144
|
+
React78.useEffect(() => {
|
|
40034
40145
|
if (mode === "inline") return;
|
|
40035
40146
|
return onDebugToggle((enabled) => {
|
|
40036
40147
|
setIsVisible(enabled);
|
|
@@ -40039,7 +40150,7 @@ function RuntimeDebugger({
|
|
|
40039
40150
|
}
|
|
40040
40151
|
});
|
|
40041
40152
|
}, [mode]);
|
|
40042
|
-
|
|
40153
|
+
React78.useEffect(() => {
|
|
40043
40154
|
if (mode === "inline") return;
|
|
40044
40155
|
const handleKeyDown = (e) => {
|
|
40045
40156
|
if (e.key === "`" && isVisible) {
|
|
@@ -40588,7 +40699,7 @@ function SequenceBar({
|
|
|
40588
40699
|
onSlotRemove(index);
|
|
40589
40700
|
}, [onSlotRemove, playing]);
|
|
40590
40701
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
40591
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
40702
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
40592
40703
|
i > 0 && /* @__PURE__ */ jsx(
|
|
40593
40704
|
Typography,
|
|
40594
40705
|
{
|
|
@@ -42101,7 +42212,7 @@ var init_StatCard = __esm({
|
|
|
42101
42212
|
const labelToUse = propLabel ?? propTitle;
|
|
42102
42213
|
const eventBus = useEventBus();
|
|
42103
42214
|
const { t } = useTranslate();
|
|
42104
|
-
const handleActionClick =
|
|
42215
|
+
const handleActionClick = React78__default.useCallback(() => {
|
|
42105
42216
|
if (action?.event) {
|
|
42106
42217
|
eventBus.emit(`UI:${action.event}`, {});
|
|
42107
42218
|
}
|
|
@@ -42112,7 +42223,7 @@ var init_StatCard = __esm({
|
|
|
42112
42223
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
42113
42224
|
const isLoading = externalLoading ?? false;
|
|
42114
42225
|
const error = externalError;
|
|
42115
|
-
const computeMetricValue =
|
|
42226
|
+
const computeMetricValue = React78__default.useCallback(
|
|
42116
42227
|
(metric, items) => {
|
|
42117
42228
|
if (metric.value !== void 0) {
|
|
42118
42229
|
return metric.value;
|
|
@@ -42151,7 +42262,7 @@ var init_StatCard = __esm({
|
|
|
42151
42262
|
},
|
|
42152
42263
|
[]
|
|
42153
42264
|
);
|
|
42154
|
-
const schemaStats =
|
|
42265
|
+
const schemaStats = React78__default.useMemo(() => {
|
|
42155
42266
|
if (!metrics || metrics.length === 0) return null;
|
|
42156
42267
|
return metrics.map((metric) => ({
|
|
42157
42268
|
label: metric.label,
|
|
@@ -42159,7 +42270,7 @@ var init_StatCard = __esm({
|
|
|
42159
42270
|
format: metric.format
|
|
42160
42271
|
}));
|
|
42161
42272
|
}, [metrics, data, computeMetricValue]);
|
|
42162
|
-
const calculatedTrend =
|
|
42273
|
+
const calculatedTrend = React78__default.useMemo(() => {
|
|
42163
42274
|
if (manualTrend !== void 0) return manualTrend;
|
|
42164
42275
|
if (previousValue === void 0 || currentValue === void 0)
|
|
42165
42276
|
return void 0;
|
|
@@ -43341,7 +43452,7 @@ var init_Timeline = __esm({
|
|
|
43341
43452
|
}) => {
|
|
43342
43453
|
const { t } = useTranslate();
|
|
43343
43454
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
43344
|
-
const items =
|
|
43455
|
+
const items = React78__default.useMemo(() => {
|
|
43345
43456
|
if (propItems) return propItems;
|
|
43346
43457
|
if (entityData.length === 0) return [];
|
|
43347
43458
|
return entityData.map((record, idx) => {
|
|
@@ -43498,7 +43609,7 @@ var init_TimerDisplay = __esm({
|
|
|
43498
43609
|
}
|
|
43499
43610
|
});
|
|
43500
43611
|
function extractToastProps(children) {
|
|
43501
|
-
if (!
|
|
43612
|
+
if (!React78__default.isValidElement(children)) {
|
|
43502
43613
|
if (typeof children === "string") {
|
|
43503
43614
|
return { message: children };
|
|
43504
43615
|
}
|
|
@@ -43536,7 +43647,7 @@ var init_ToastSlot = __esm({
|
|
|
43536
43647
|
eventBus.emit("UI:CLOSE");
|
|
43537
43648
|
};
|
|
43538
43649
|
if (!isVisible) return null;
|
|
43539
|
-
const isCustomContent =
|
|
43650
|
+
const isCustomContent = React78__default.isValidElement(children) && !message;
|
|
43540
43651
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
43541
43652
|
Toast,
|
|
43542
43653
|
{
|
|
@@ -43805,7 +43916,7 @@ var init_WizardContainer = __esm({
|
|
|
43805
43916
|
const isCompleted = index < currentStep;
|
|
43806
43917
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
43807
43918
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
43808
|
-
return /* @__PURE__ */ jsxs(
|
|
43919
|
+
return /* @__PURE__ */ jsxs(React78__default.Fragment, { children: [
|
|
43809
43920
|
/* @__PURE__ */ jsx(
|
|
43810
43921
|
Button,
|
|
43811
43922
|
{
|
|
@@ -44255,12 +44366,12 @@ var init_XPBar = __esm({
|
|
|
44255
44366
|
}
|
|
44256
44367
|
});
|
|
44257
44368
|
function lazyThree(name, loader) {
|
|
44258
|
-
const Lazy =
|
|
44369
|
+
const Lazy = React78__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
44259
44370
|
function ThreeWrapper(props) {
|
|
44260
|
-
return
|
|
44261
|
-
|
|
44371
|
+
return React78__default.createElement(
|
|
44372
|
+
React78__default.Suspense,
|
|
44262
44373
|
{ fallback: null },
|
|
44263
|
-
|
|
44374
|
+
React78__default.createElement(Lazy, props)
|
|
44264
44375
|
);
|
|
44265
44376
|
}
|
|
44266
44377
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -44279,6 +44390,7 @@ var init_component_registry_generated = __esm({
|
|
|
44279
44390
|
init_AnimatedGraphic();
|
|
44280
44391
|
init_AnimatedReveal();
|
|
44281
44392
|
init_ArticleSection();
|
|
44393
|
+
init_Aside();
|
|
44282
44394
|
init_AuthLayout();
|
|
44283
44395
|
init_BattleBoard();
|
|
44284
44396
|
init_BattleTemplate();
|
|
@@ -44333,6 +44445,7 @@ var init_component_registry_generated = __esm({
|
|
|
44333
44445
|
init_DayCell();
|
|
44334
44446
|
init_DebuggerBoard();
|
|
44335
44447
|
init_DetailPanel();
|
|
44448
|
+
init_Dialog();
|
|
44336
44449
|
init_DialogueBox();
|
|
44337
44450
|
init_DialogueBubble();
|
|
44338
44451
|
init_DocBreadcrumb();
|
|
@@ -44546,6 +44659,7 @@ var init_component_registry_generated = __esm({
|
|
|
44546
44659
|
"AnimatedGraphic": AnimatedGraphic,
|
|
44547
44660
|
"AnimatedReveal": AnimatedReveal,
|
|
44548
44661
|
"ArticleSection": ArticleSection,
|
|
44662
|
+
"Aside": Aside,
|
|
44549
44663
|
"AuthLayout": AuthLayout,
|
|
44550
44664
|
"Avatar": AvatarPattern,
|
|
44551
44665
|
"AvatarPattern": AvatarPattern,
|
|
@@ -44615,6 +44729,7 @@ var init_component_registry_generated = __esm({
|
|
|
44615
44729
|
"DayCell": DayCell,
|
|
44616
44730
|
"DebuggerBoard": DebuggerBoard,
|
|
44617
44731
|
"DetailPanel": DetailPanel,
|
|
44732
|
+
"Dialog": Dialog,
|
|
44618
44733
|
"DialogueBox": DialogueBox,
|
|
44619
44734
|
"DialogueBubble": DialogueBubble,
|
|
44620
44735
|
"Divider": DividerPattern,
|
|
@@ -44868,7 +44983,7 @@ function SuspenseConfigProvider({
|
|
|
44868
44983
|
config,
|
|
44869
44984
|
children
|
|
44870
44985
|
}) {
|
|
44871
|
-
return
|
|
44986
|
+
return React78__default.createElement(
|
|
44872
44987
|
SuspenseConfigContext.Provider,
|
|
44873
44988
|
{ value: config },
|
|
44874
44989
|
children
|
|
@@ -45351,7 +45466,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
45351
45466
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
45352
45467
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
45353
45468
|
}
|
|
45354
|
-
return /* @__PURE__ */ jsx(
|
|
45469
|
+
return /* @__PURE__ */ jsx(React78__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
45355
45470
|
}
|
|
45356
45471
|
if (!child || typeof child !== "object") return null;
|
|
45357
45472
|
const childId = `${parentId}-${index}`;
|
|
@@ -45388,14 +45503,14 @@ function isPatternConfig(value) {
|
|
|
45388
45503
|
if (value === null || value === void 0) return false;
|
|
45389
45504
|
if (typeof value !== "object") return false;
|
|
45390
45505
|
if (Array.isArray(value)) return false;
|
|
45391
|
-
if (
|
|
45506
|
+
if (React78__default.isValidElement(value)) return false;
|
|
45392
45507
|
if (value instanceof Date) return false;
|
|
45393
45508
|
if (typeof value === "function") return false;
|
|
45394
45509
|
const record = value;
|
|
45395
45510
|
return "type" in record && typeof record.type === "string";
|
|
45396
45511
|
}
|
|
45397
45512
|
function isPlainConfigObject(value) {
|
|
45398
|
-
if (
|
|
45513
|
+
if (React78__default.isValidElement(value)) return false;
|
|
45399
45514
|
if (value instanceof Date) return false;
|
|
45400
45515
|
const proto = Object.getPrototypeOf(value);
|
|
45401
45516
|
return proto === Object.prototype || proto === null;
|
|
@@ -45787,6 +45902,8 @@ var init_atoms = __esm({
|
|
|
45787
45902
|
init_ThemeSelector();
|
|
45788
45903
|
init_Overlay();
|
|
45789
45904
|
init_FlipContainer();
|
|
45905
|
+
init_Dialog();
|
|
45906
|
+
init_Aside();
|
|
45790
45907
|
init_ConditionalWrapper();
|
|
45791
45908
|
init_LawReferenceTooltip();
|
|
45792
45909
|
init_DayCell();
|
|
@@ -45840,7 +45957,7 @@ var FormSection = ({
|
|
|
45840
45957
|
columns = 1,
|
|
45841
45958
|
className
|
|
45842
45959
|
}) => {
|
|
45843
|
-
const [collapsed, setCollapsed] =
|
|
45960
|
+
const [collapsed, setCollapsed] = React78__default.useState(defaultCollapsed);
|
|
45844
45961
|
const { t } = useTranslate();
|
|
45845
45962
|
const eventBus = useEventBus();
|
|
45846
45963
|
const gridClass = {
|
|
@@ -45848,7 +45965,7 @@ var FormSection = ({
|
|
|
45848
45965
|
2: "grid-cols-1 md:grid-cols-2",
|
|
45849
45966
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
45850
45967
|
}[columns];
|
|
45851
|
-
|
|
45968
|
+
React78__default.useCallback(() => {
|
|
45852
45969
|
if (collapsible) {
|
|
45853
45970
|
setCollapsed((prev) => !prev);
|
|
45854
45971
|
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
@@ -48716,4 +48833,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
48716
48833
|
});
|
|
48717
48834
|
}
|
|
48718
48835
|
|
|
48719
|
-
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BehaviorView, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, DialogueBox, DialogueBubble, Divider, DocBreadcrumb, DocCodeBlock, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FeatureRenderer2 as FeatureRenderer, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MasterDetailLayout, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PositionedCanvas, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullQuote, PullToRefresh, QrScanner, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity as useEntityById, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTraitListens, useTranslate, useUIEvents, useUISlotManager, useValidation };
|
|
48836
|
+
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, Aside, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BehaviorView, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, Dialog, DialogueBox, DialogueBubble, Divider, DocBreadcrumb, DocCodeBlock, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FeatureRenderer2 as FeatureRenderer, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MasterDetailLayout, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PositionedCanvas, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullQuote, PullToRefresh, QrScanner, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity as useEntityById, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTraitListens, useTranslate, useUIEvents, useUISlotManager, useValidation };
|