@almadar/ui 2.1.4 → 2.1.7
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/{chunk-XSEDIUM6.js → chunk-3HJHHULT.js} +1 -1
- package/dist/{chunk-Y7AFNUT2.js → chunk-5Z55L5V7.js} +24 -7
- package/dist/{chunk-E3EXHX2Z.js → chunk-6OACETQB.js} +2 -2
- package/dist/components/index.css +11 -9
- package/dist/components/index.d.ts +25 -32
- package/dist/components/index.js +33 -25
- package/dist/hooks/index.js +2 -2
- package/dist/lib/index.js +1 -1
- package/dist/providers/index.css +11 -9
- package/dist/providers/index.js +3 -3
- package/package.json +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// lib/api-client.ts
|
|
2
|
-
var API_BASE_URL = typeof
|
|
2
|
+
var API_BASE_URL = typeof process !== "undefined" && process.env?.VITE_API_URL ? process.env.VITE_API_URL : "/api";
|
|
3
3
|
var ApiError = class extends Error {
|
|
4
4
|
constructor(status, statusText, message) {
|
|
5
5
|
super(message || `API Error: ${status} ${statusText}`);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useTheme, useUISlots } from './chunk-BTXQJGFB.js';
|
|
2
|
-
import { cn, debugGroup, debug, debugGroupEnd, getNestedValue, isDebugEnabled } from './chunk-KKCVDUK7.js';
|
|
3
2
|
import { useTranslate, useQuerySingleton } from './chunk-JLEMVREZ.js';
|
|
4
3
|
import { useEventBus } from './chunk-YXZM3WCF.js';
|
|
4
|
+
import { cn, debugGroup, debug, debugGroupEnd, getNestedValue, isDebugEnabled } from './chunk-KKCVDUK7.js';
|
|
5
5
|
import { __publicField } from './chunk-PKBMQBKP.js';
|
|
6
6
|
import * as React41 from 'react';
|
|
7
7
|
import React41__default, { useCallback, useRef, useState, useLayoutEffect, useEffect, createContext, useMemo, useContext, Suspense } from 'react';
|
|
@@ -7208,13 +7208,14 @@ var DetailPanel = ({
|
|
|
7208
7208
|
error
|
|
7209
7209
|
}) => {
|
|
7210
7210
|
const eventBus = useEventBus();
|
|
7211
|
+
const { t } = useTranslate();
|
|
7211
7212
|
const isFieldDefArray = (arr) => {
|
|
7212
7213
|
if (!arr || arr.length === 0) return false;
|
|
7213
7214
|
const first = arr[0];
|
|
7214
7215
|
return typeof first === "string" || typeof first === "object" && first !== null && "key" in first;
|
|
7215
7216
|
};
|
|
7216
7217
|
const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
|
|
7217
|
-
|
|
7218
|
+
useCallback(
|
|
7218
7219
|
(action, data2) => {
|
|
7219
7220
|
if (action.navigatesTo) {
|
|
7220
7221
|
const url = action.navigatesTo.replace(
|
|
@@ -7359,9 +7360,9 @@ var DetailPanel = ({
|
|
|
7359
7360
|
return /* @__PURE__ */ jsx(
|
|
7360
7361
|
ErrorState,
|
|
7361
7362
|
{
|
|
7362
|
-
title: "
|
|
7363
|
-
message: error.message || "
|
|
7364
|
-
|
|
7363
|
+
title: t("error.loadingData"),
|
|
7364
|
+
message: error.message || t("error.genericLoad"),
|
|
7365
|
+
retryEvent: "RETRY",
|
|
7365
7366
|
className
|
|
7366
7367
|
}
|
|
7367
7368
|
);
|
|
@@ -7424,7 +7425,8 @@ var DetailPanel = ({
|
|
|
7424
7425
|
Button,
|
|
7425
7426
|
{
|
|
7426
7427
|
variant: action.variant || "secondary",
|
|
7427
|
-
|
|
7428
|
+
action: action.event,
|
|
7429
|
+
actionPayload: { row: normalizedData },
|
|
7428
7430
|
icon: action.icon,
|
|
7429
7431
|
children: action.label
|
|
7430
7432
|
},
|
|
@@ -9227,11 +9229,26 @@ function UISlotComponent({
|
|
|
9227
9229
|
slot,
|
|
9228
9230
|
portal = false,
|
|
9229
9231
|
position,
|
|
9230
|
-
className
|
|
9232
|
+
className,
|
|
9233
|
+
children,
|
|
9234
|
+
pattern,
|
|
9235
|
+
sourceTrait
|
|
9231
9236
|
}) {
|
|
9232
9237
|
const { slots, clear } = useUISlots();
|
|
9233
9238
|
const suspenseConfig = useContext(SuspenseConfigContext);
|
|
9234
9239
|
const content = slots[slot];
|
|
9240
|
+
if (children !== void 0) {
|
|
9241
|
+
return /* @__PURE__ */ jsx(
|
|
9242
|
+
Box,
|
|
9243
|
+
{
|
|
9244
|
+
id: `slot-${slot}`,
|
|
9245
|
+
className: cn("ui-slot", `ui-slot-${slot}`, className),
|
|
9246
|
+
"data-pattern": pattern,
|
|
9247
|
+
"data-source-trait": sourceTrait,
|
|
9248
|
+
children
|
|
9249
|
+
}
|
|
9250
|
+
);
|
|
9251
|
+
}
|
|
9235
9252
|
if (!content) {
|
|
9236
9253
|
if (!portal) {
|
|
9237
9254
|
return /* @__PURE__ */ jsx(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiClient } from './chunk-
|
|
1
|
+
import { apiClient } from './chunk-3HJHHULT.js';
|
|
2
2
|
import { SelectionContext, entityDataKeys, useEntityList } from './chunk-JLEMVREZ.js';
|
|
3
3
|
import { useEventBus } from './chunk-YXZM3WCF.js';
|
|
4
4
|
import { subscribe, getSnapshot, clearEntities, removeEntity, updateSingleton, updateEntity, spawnEntity, getSingleton, getAllEntities, getByType, getEntity } from './chunk-N7MVUW4R.js';
|
|
@@ -1353,7 +1353,7 @@ function useAuthContext() {
|
|
|
1353
1353
|
signOut: void 0
|
|
1354
1354
|
};
|
|
1355
1355
|
}
|
|
1356
|
-
var API_BASE = typeof
|
|
1356
|
+
var API_BASE = typeof process !== "undefined" && process.env?.VITE_API_URL ? process.env.VITE_API_URL : "http://localhost:3000";
|
|
1357
1357
|
function getUserId() {
|
|
1358
1358
|
return localStorage.getItem("userId") || "anonymous";
|
|
1359
1359
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* node_modules/.pnpm/katex@0.16.33/node_modules/katex/dist/katex.min.css */
|
|
2
2
|
@font-face {
|
|
3
3
|
font-display: block;
|
|
4
4
|
font-family: KaTeX_AMS;
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
border-color: currentColor;
|
|
214
214
|
}
|
|
215
215
|
.katex .katex-version:after {
|
|
216
|
-
content: "0.16.
|
|
216
|
+
content: "0.16.33";
|
|
217
217
|
}
|
|
218
218
|
.katex .katex-mathml {
|
|
219
219
|
clip: rect(1px, 1px, 1px, 1px);
|
|
@@ -988,6 +988,15 @@
|
|
|
988
988
|
.katex svg {
|
|
989
989
|
fill: currentColor;
|
|
990
990
|
stroke: currentColor;
|
|
991
|
+
display: block;
|
|
992
|
+
height: inherit;
|
|
993
|
+
position: absolute;
|
|
994
|
+
width: 100%;
|
|
995
|
+
}
|
|
996
|
+
.katex svg path {
|
|
997
|
+
stroke: none;
|
|
998
|
+
}
|
|
999
|
+
.katex svg {
|
|
991
1000
|
fill-rule: nonzero;
|
|
992
1001
|
fill-opacity: 1;
|
|
993
1002
|
stroke-width: 1;
|
|
@@ -997,13 +1006,6 @@
|
|
|
997
1006
|
stroke-dasharray: none;
|
|
998
1007
|
stroke-dashoffset: 0;
|
|
999
1008
|
stroke-opacity: 1;
|
|
1000
|
-
display: block;
|
|
1001
|
-
height: inherit;
|
|
1002
|
-
position: absolute;
|
|
1003
|
-
width: 100%;
|
|
1004
|
-
}
|
|
1005
|
-
.katex svg path {
|
|
1006
|
-
stroke: none;
|
|
1007
1009
|
}
|
|
1008
1010
|
.katex img {
|
|
1009
1011
|
border-style: none;
|
|
@@ -2543,8 +2543,8 @@ interface SelectPayload {
|
|
|
2543
2543
|
ids: (string | number)[];
|
|
2544
2544
|
}
|
|
2545
2545
|
interface EntityDisplayProps<T = unknown> {
|
|
2546
|
-
/** Entity data injected by the runtime (array for lists, single object for detail) */
|
|
2547
|
-
entity?: T | readonly T[];
|
|
2546
|
+
/** Entity name (string) or data injected by the runtime (array for lists, single object for detail) */
|
|
2547
|
+
entity?: string | T | readonly T[];
|
|
2548
2548
|
/** Additional CSS classes */
|
|
2549
2549
|
className?: string;
|
|
2550
2550
|
/** Loading state indicator */
|
|
@@ -2646,7 +2646,7 @@ interface MetricDefinition {
|
|
|
2646
2646
|
/** Value format (e.g., 'currency', 'percent', 'number') */
|
|
2647
2647
|
format?: "currency" | "percent" | "number" | string;
|
|
2648
2648
|
}
|
|
2649
|
-
interface StatCardProps extends EntityDisplayProps
|
|
2649
|
+
interface StatCardProps extends EntityDisplayProps {
|
|
2650
2650
|
/** Main label */
|
|
2651
2651
|
label?: string;
|
|
2652
2652
|
/** Title (alias for label) */
|
|
@@ -2784,7 +2784,7 @@ type FieldDef$2 = string | {
|
|
|
2784
2784
|
key: string;
|
|
2785
2785
|
header?: string;
|
|
2786
2786
|
};
|
|
2787
|
-
interface DetailPanelProps extends EntityDisplayProps
|
|
2787
|
+
interface DetailPanelProps extends EntityDisplayProps {
|
|
2788
2788
|
title?: string;
|
|
2789
2789
|
subtitle?: string;
|
|
2790
2790
|
status?: {
|
|
@@ -2809,10 +2809,16 @@ interface DetailPanelProps extends EntityDisplayProps<Record<string, unknown>> {
|
|
|
2809
2809
|
position?: "left" | "right";
|
|
2810
2810
|
/** Panel width (CSS value, e.g., '400px', '50%') */
|
|
2811
2811
|
width?: string;
|
|
2812
|
+
/** Entity ID for fetching specific entity */
|
|
2813
|
+
entityId?: string;
|
|
2814
|
+
/** Display fields (alias for fields) */
|
|
2815
|
+
displayFields?: readonly string[];
|
|
2816
|
+
/** Show actions flag */
|
|
2817
|
+
showActions?: boolean;
|
|
2812
2818
|
}
|
|
2813
2819
|
declare const DetailPanel: React__default.FC<DetailPanelProps>;
|
|
2814
2820
|
|
|
2815
|
-
interface FormSectionProps {
|
|
2821
|
+
interface FormSectionProps extends EntityDisplayProps {
|
|
2816
2822
|
/** Section title */
|
|
2817
2823
|
title?: string;
|
|
2818
2824
|
/** Section description */
|
|
@@ -2827,47 +2833,28 @@ interface FormSectionProps {
|
|
|
2827
2833
|
card?: boolean;
|
|
2828
2834
|
/** Grid columns for fields */
|
|
2829
2835
|
columns?: 1 | 2 | 3;
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
isLoading?: boolean;
|
|
2833
|
-
/** Error state */
|
|
2834
|
-
error?: Error | null;
|
|
2835
|
-
/** Entity name */
|
|
2836
|
-
entity?: string;
|
|
2836
|
+
/** Entity ID for fetching specific entity */
|
|
2837
|
+
entityId?: string;
|
|
2837
2838
|
}
|
|
2838
2839
|
declare const FormSection$1: React__default.FC<FormSectionProps>;
|
|
2839
2840
|
/**
|
|
2840
2841
|
* Form layout with multiple sections
|
|
2841
2842
|
*/
|
|
2842
|
-
interface FormLayoutProps {
|
|
2843
|
+
interface FormLayoutProps extends EntityDisplayProps {
|
|
2843
2844
|
children: React__default.ReactNode;
|
|
2844
2845
|
/** Show section dividers */
|
|
2845
2846
|
dividers?: boolean;
|
|
2846
|
-
className?: string;
|
|
2847
|
-
/** Loading state */
|
|
2848
|
-
isLoading?: boolean;
|
|
2849
|
-
/** Error state */
|
|
2850
|
-
error?: Error | null;
|
|
2851
|
-
/** Entity name */
|
|
2852
|
-
entity?: string;
|
|
2853
2847
|
}
|
|
2854
2848
|
declare const FormLayout: React__default.FC<FormLayoutProps>;
|
|
2855
2849
|
/**
|
|
2856
2850
|
* Form actions bar (submit/cancel buttons)
|
|
2857
2851
|
*/
|
|
2858
|
-
interface FormActionsProps {
|
|
2852
|
+
interface FormActionsProps extends EntityDisplayProps {
|
|
2859
2853
|
children: React__default.ReactNode;
|
|
2860
2854
|
/** Sticky at bottom */
|
|
2861
2855
|
sticky?: boolean;
|
|
2862
2856
|
/** Alignment */
|
|
2863
2857
|
align?: "left" | "right" | "between" | "center";
|
|
2864
|
-
className?: string;
|
|
2865
|
-
/** Loading state */
|
|
2866
|
-
isLoading?: boolean;
|
|
2867
|
-
/** Error state */
|
|
2868
|
-
error?: Error | null;
|
|
2869
|
-
/** Entity name */
|
|
2870
|
-
entity?: string;
|
|
2871
2858
|
}
|
|
2872
2859
|
declare const FormActions: React__default.FC<FormActionsProps>;
|
|
2873
2860
|
|
|
@@ -3523,7 +3510,7 @@ type FieldDef$1 = string | {
|
|
|
3523
3510
|
key: string;
|
|
3524
3511
|
header?: string;
|
|
3525
3512
|
};
|
|
3526
|
-
interface ListProps extends EntityDisplayProps
|
|
3513
|
+
interface ListProps extends EntityDisplayProps {
|
|
3527
3514
|
/** Entity type name for display */
|
|
3528
3515
|
entityType?: string;
|
|
3529
3516
|
selectable?: boolean;
|
|
@@ -3579,7 +3566,7 @@ type FieldDef = string | {
|
|
|
3579
3566
|
key: string;
|
|
3580
3567
|
header?: string;
|
|
3581
3568
|
};
|
|
3582
|
-
interface CardGridProps extends EntityDisplayProps
|
|
3569
|
+
interface CardGridProps extends EntityDisplayProps {
|
|
3583
3570
|
/** Minimum width of each card (default: 280px) */
|
|
3584
3571
|
minCardWidth?: number;
|
|
3585
3572
|
/** Maximum number of columns */
|
|
@@ -4005,7 +3992,7 @@ declare const JazariStateMachine: React__default.FC<JazariStateMachineProps>;
|
|
|
4005
3992
|
* - entityAware: false
|
|
4006
3993
|
*/
|
|
4007
3994
|
|
|
4008
|
-
interface ContentRendererProps extends EntityDisplayProps
|
|
3995
|
+
interface ContentRendererProps extends EntityDisplayProps {
|
|
4009
3996
|
/** Raw content string — auto-parsed into segments */
|
|
4010
3997
|
content?: string;
|
|
4011
3998
|
/** Pre-parsed segments (overrides content) */
|
|
@@ -7183,13 +7170,19 @@ interface UISlotComponentProps {
|
|
|
7183
7170
|
isLoading?: boolean;
|
|
7184
7171
|
error?: Error | null;
|
|
7185
7172
|
entity?: string;
|
|
7173
|
+
/** Compiled mode: render children directly instead of resolving from context */
|
|
7174
|
+
children?: React__default.ReactNode;
|
|
7175
|
+
/** Pattern type for data-pattern attribute (compiled mode) */
|
|
7176
|
+
pattern?: string;
|
|
7177
|
+
/** Source trait name for data-source-trait attribute (compiled mode) */
|
|
7178
|
+
sourceTrait?: string;
|
|
7186
7179
|
}
|
|
7187
7180
|
/**
|
|
7188
7181
|
* Individual slot renderer.
|
|
7189
7182
|
*
|
|
7190
7183
|
* Handles different slot types with appropriate wrappers.
|
|
7191
7184
|
*/
|
|
7192
|
-
declare function UISlotComponent({ slot, portal, position, className, }: UISlotComponentProps): React__default.ReactElement | null;
|
|
7185
|
+
declare function UISlotComponent({ slot, portal, position, className, children, pattern, sourceTrait, }: UISlotComponentProps): React__default.ReactElement | null;
|
|
7193
7186
|
interface SlotContentRendererProps {
|
|
7194
7187
|
content: SlotContent;
|
|
7195
7188
|
onDismiss: () => void;
|
package/dist/components/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
+
import { useAuthContext } from '../chunk-6OACETQB.js';
|
|
2
|
+
export { ENTITY_EVENTS, useAgentChat, useAuthContext, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useEntities, useEntitiesByType, useEntity as useEntityById, useEntityMutations, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInput, useOrbitalHistory, useOrbitalMutations, usePhysics, usePlayer, usePreview, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useUIEvents, useUpdateEntity, useValidation } from '../chunk-6OACETQB.js';
|
|
1
3
|
import { DEFAULT_CONFIG, renderStateMachineToDomData, parseContentSegments } from '../chunk-N6DJVKZ6.js';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { VStack, HStack, Typography, Button, Icon, Box, Card, Avatar, Badge, SearchInput, Checkbox, Menu as Menu$1, Pagination, LoadingState, EmptyState, Modal, ErrorState, QuizBlock, CodeBlock, ScaledDiagram, MarkdownContent, Divider, ProgressBar, Stack, Select, Drawer, Toast, Tabs, Input, ThemeToggle, HealthBar, ScoreDisplay, StateIndicator, Container, EntityDisplayEvents } from '../chunk-Y7AFNUT2.js';
|
|
6
|
-
export { Accordion, Card2 as ActionCard, Alert, Avatar, Badge, Box, Breadcrumb, Button, ButtonGroup, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Center, Checkbox, CodeBlock, ConditionalWrapper, Container, ControlButton, DataTable, DetailPanel, Divider, Drawer, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FilterGroup, Flex, FloatingActionButton, Form, FormField, FormSectionHeader, Grid, HStack, Heading, HealthBar, Icon, Input, InputGroup, Label, LawReferenceTooltip, LoadingState, MarkdownContent, MasterDetail, Menu, Modal, Overlay, PageHeader, Pagination, Popover, ProgressBar, QuizBlock, Radio, RelationSelect, RepeatableFormSection, ScaledDiagram, ScoreDisplay, SearchInput, Select, SidePanel, SimpleGrid, Skeleton, SlotContentRenderer, Spacer, Spinner, Sprite, Stack, StatCard, StateIndicator, Switch, Tabs, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, Toast, Tooltip, Typography, UISlotComponent, UISlotRenderer, VStack, ViolationAlert, WizardNavigation, WizardProgress, drawSprite } from '../chunk-Y7AFNUT2.js';
|
|
4
|
+
import '../chunk-3HJHHULT.js';
|
|
5
|
+
import { VStack, HStack, Typography, Button, Icon, Box, Card, Avatar, Badge, SearchInput, Checkbox, Menu as Menu$1, Pagination, LoadingState, EmptyState, Modal, ErrorState, QuizBlock, CodeBlock, ScaledDiagram, MarkdownContent, Divider, ProgressBar, Stack, Select, Drawer, Toast, Tabs, Input, ThemeToggle, HealthBar, ScoreDisplay, StateIndicator, Container, EntityDisplayEvents } from '../chunk-5Z55L5V7.js';
|
|
6
|
+
export { Accordion, Card2 as ActionCard, Alert, Avatar, Badge, Box, Breadcrumb, Button, ButtonGroup, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Center, Checkbox, CodeBlock, ConditionalWrapper, Container, ControlButton, DataTable, DetailPanel, Divider, Drawer, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FilterGroup, Flex, FloatingActionButton, Form, FormField, FormSectionHeader, Grid, HStack, Heading, HealthBar, Icon, Input, InputGroup, Label, LawReferenceTooltip, LoadingState, MarkdownContent, MasterDetail, Menu, Modal, Overlay, PageHeader, Pagination, Popover, ProgressBar, QuizBlock, Radio, RelationSelect, RepeatableFormSection, ScaledDiagram, ScoreDisplay, SearchInput, Select, SidePanel, SimpleGrid, Skeleton, SlotContentRenderer, Spacer, Spinner, Sprite, Stack, StatCard, StateIndicator, Switch, Tabs, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, Toast, Tooltip, Typography, UISlotComponent, UISlotRenderer, VStack, ViolationAlert, WizardNavigation, WizardProgress, drawSprite } from '../chunk-5Z55L5V7.js';
|
|
7
7
|
import '../chunk-BTXQJGFB.js';
|
|
8
|
-
import { cn, getNestedValue } from '../chunk-KKCVDUK7.js';
|
|
9
|
-
export { cn } from '../chunk-KKCVDUK7.js';
|
|
10
8
|
import { useTranslate } from '../chunk-JLEMVREZ.js';
|
|
11
9
|
export { EntityDataProvider, I18nProvider, createTranslate, entityDataKeys, parseQueryBinding, useEntity, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntitySuspense, useQuerySingleton, useTranslate } from '../chunk-JLEMVREZ.js';
|
|
12
10
|
import { useEventBus, useEventListener } from '../chunk-YXZM3WCF.js';
|
|
13
11
|
export { useEmitEvent, useEventBus, useEventListener } from '../chunk-YXZM3WCF.js';
|
|
14
12
|
export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-7NEWMNNU.js';
|
|
13
|
+
import { cn, getNestedValue } from '../chunk-KKCVDUK7.js';
|
|
14
|
+
export { cn } from '../chunk-KKCVDUK7.js';
|
|
15
15
|
export { clearEntities, getAllEntities, getByType, getEntity, getSingleton, removeEntity, spawnEntity, updateEntity, updateSingleton } from '../chunk-N7MVUW4R.js';
|
|
16
16
|
import { __publicField } from '../chunk-PKBMQBKP.js';
|
|
17
|
-
import * as
|
|
18
|
-
import
|
|
17
|
+
import * as React from 'react';
|
|
18
|
+
import React__default, { createContext, useState, useCallback, useMemo, useEffect, useRef, useContext } from 'react';
|
|
19
19
|
import { ChevronDown, X, Menu, ChevronRight, ChevronLeft, ArrowUp, ArrowDown, MoreVertical, Package, Check, AlertTriangle, Trash2, List as List$1, Printer, CheckCircle, XCircle, Play, RotateCcw, Send, Wrench, Bug, ArrowRight, Pause, SkipForward, Zap, Sword, Move, Heart, Shield, AlertCircle, Circle, Clock, CheckCircle2, Image as Image$1, Upload, ZoomIn, Eraser, FileText, ZoomOut, Download, Code, WrapText, Copy, Settings, Search, Bell, LogOut, Calendar, Pencil, Eye, MoreHorizontal, Minus, Plus } from 'lucide-react';
|
|
20
20
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
21
21
|
import { createPortal } from 'react-dom';
|
|
@@ -31,12 +31,20 @@ var FormSection = ({
|
|
|
31
31
|
columns = 1,
|
|
32
32
|
className
|
|
33
33
|
}) => {
|
|
34
|
-
const [collapsed, setCollapsed] =
|
|
34
|
+
const [collapsed, setCollapsed] = React__default.useState(defaultCollapsed);
|
|
35
|
+
const { t } = useTranslate();
|
|
36
|
+
const eventBus = useEventBus();
|
|
35
37
|
const gridClass = {
|
|
36
38
|
1: "grid-cols-1",
|
|
37
39
|
2: "grid-cols-1 md:grid-cols-2",
|
|
38
40
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
39
41
|
}[columns];
|
|
42
|
+
React__default.useCallback(() => {
|
|
43
|
+
if (collapsible) {
|
|
44
|
+
setCollapsed((prev) => !prev);
|
|
45
|
+
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
46
|
+
}
|
|
47
|
+
}, [collapsible, collapsed, eventBus]);
|
|
40
48
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41
49
|
(title || description) && /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "mb-4", children: [
|
|
42
50
|
title && /* @__PURE__ */ jsxs(
|
|
@@ -45,7 +53,7 @@ var FormSection = ({
|
|
|
45
53
|
justify: "between",
|
|
46
54
|
align: "center",
|
|
47
55
|
className: cn(collapsible && "cursor-pointer"),
|
|
48
|
-
|
|
56
|
+
action: collapsible ? "TOGGLE_COLLAPSE" : void 0,
|
|
49
57
|
children: [
|
|
50
58
|
/* @__PURE__ */ jsx(Typography, { variant: "h3", weight: "semibold", children: title }),
|
|
51
59
|
collapsible && /* @__PURE__ */ jsx(
|
|
@@ -53,7 +61,7 @@ var FormSection = ({
|
|
|
53
61
|
{
|
|
54
62
|
variant: "ghost",
|
|
55
63
|
size: "sm",
|
|
56
|
-
|
|
64
|
+
action: "TOGGLE_COLLAPSE",
|
|
57
65
|
children: /* @__PURE__ */ jsx(
|
|
58
66
|
Icon,
|
|
59
67
|
{
|
|
@@ -1028,7 +1036,7 @@ var List = ({
|
|
|
1028
1036
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
1029
1037
|
return [];
|
|
1030
1038
|
}, [entity]);
|
|
1031
|
-
const getItemActions =
|
|
1039
|
+
const getItemActions = React__default.useCallback(
|
|
1032
1040
|
(item) => {
|
|
1033
1041
|
if (!itemActions) return [];
|
|
1034
1042
|
if (typeof itemActions === "function") {
|
|
@@ -1530,7 +1538,7 @@ var WizardContainer = ({
|
|
|
1530
1538
|
const isCompleted = index < currentStep;
|
|
1531
1539
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
1532
1540
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
1533
|
-
return /* @__PURE__ */ jsxs(
|
|
1541
|
+
return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
1534
1542
|
/* @__PURE__ */ jsx(
|
|
1535
1543
|
Button,
|
|
1536
1544
|
{
|
|
@@ -2754,7 +2762,7 @@ var StateMachineView = ({
|
|
|
2754
2762
|
style: { top: title ? 30 : 0 },
|
|
2755
2763
|
children: [
|
|
2756
2764
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
2757
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
2765
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
2758
2766
|
StateNode,
|
|
2759
2767
|
{
|
|
2760
2768
|
state,
|
|
@@ -6769,7 +6777,7 @@ function GameMenu({
|
|
|
6769
6777
|
} catch {
|
|
6770
6778
|
}
|
|
6771
6779
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
6772
|
-
const handleOptionClick =
|
|
6780
|
+
const handleOptionClick = React.useCallback(
|
|
6773
6781
|
(option) => {
|
|
6774
6782
|
if (option.event && eventBus) {
|
|
6775
6783
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -6892,7 +6900,7 @@ function GameOverScreen({
|
|
|
6892
6900
|
} catch {
|
|
6893
6901
|
}
|
|
6894
6902
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
6895
|
-
const handleActionClick =
|
|
6903
|
+
const handleActionClick = React.useCallback(
|
|
6896
6904
|
(action) => {
|
|
6897
6905
|
if (action.event && eventBus) {
|
|
6898
6906
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -8159,7 +8167,7 @@ function LinearView({
|
|
|
8159
8167
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
8160
8168
|
const isDone = i < currentIdx;
|
|
8161
8169
|
const isCurrent = i === currentIdx;
|
|
8162
|
-
return /* @__PURE__ */ jsxs(
|
|
8170
|
+
return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
8163
8171
|
i > 0 && /* @__PURE__ */ jsx(
|
|
8164
8172
|
Typography,
|
|
8165
8173
|
{
|
|
@@ -8813,7 +8821,7 @@ function SequenceBar({
|
|
|
8813
8821
|
onSlotRemove(index);
|
|
8814
8822
|
}, [onSlotRemove, playing]);
|
|
8815
8823
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
8816
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
8824
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
8817
8825
|
i > 0 && /* @__PURE__ */ jsx(
|
|
8818
8826
|
Typography,
|
|
8819
8827
|
{
|
|
@@ -11113,7 +11121,7 @@ function generateCombatMessage(event) {
|
|
|
11113
11121
|
return event.message;
|
|
11114
11122
|
}
|
|
11115
11123
|
function extractTitle(children) {
|
|
11116
|
-
if (!
|
|
11124
|
+
if (!React__default.isValidElement(children)) return void 0;
|
|
11117
11125
|
const props = children.props;
|
|
11118
11126
|
if (typeof props.title === "string") {
|
|
11119
11127
|
return props.title;
|
|
@@ -11148,7 +11156,7 @@ var ModalSlot = ({
|
|
|
11148
11156
|
};
|
|
11149
11157
|
ModalSlot.displayName = "ModalSlot";
|
|
11150
11158
|
function extractTitle2(children) {
|
|
11151
|
-
if (!
|
|
11159
|
+
if (!React__default.isValidElement(children)) return void 0;
|
|
11152
11160
|
const props = children.props;
|
|
11153
11161
|
if (typeof props.title === "string") {
|
|
11154
11162
|
return props.title;
|
|
@@ -11185,7 +11193,7 @@ var DrawerSlot = ({
|
|
|
11185
11193
|
};
|
|
11186
11194
|
DrawerSlot.displayName = "DrawerSlot";
|
|
11187
11195
|
function extractToastProps(children) {
|
|
11188
|
-
if (!
|
|
11196
|
+
if (!React__default.isValidElement(children)) {
|
|
11189
11197
|
if (typeof children === "string") {
|
|
11190
11198
|
return { message: children };
|
|
11191
11199
|
}
|
|
@@ -11216,7 +11224,7 @@ var ToastSlot = ({
|
|
|
11216
11224
|
eventBus.emit("UI:CLOSE");
|
|
11217
11225
|
};
|
|
11218
11226
|
if (!isVisible) return null;
|
|
11219
|
-
const isCustomContent =
|
|
11227
|
+
const isCustomContent = React__default.isValidElement(children) && !message;
|
|
11220
11228
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
11221
11229
|
Toast,
|
|
11222
11230
|
{
|
|
@@ -11721,7 +11729,7 @@ var Timeline = ({
|
|
|
11721
11729
|
}) => {
|
|
11722
11730
|
const { t } = useTranslate();
|
|
11723
11731
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
11724
|
-
const items =
|
|
11732
|
+
const items = React__default.useMemo(() => {
|
|
11725
11733
|
if (propItems) return propItems;
|
|
11726
11734
|
if (entityData.length === 0) return [];
|
|
11727
11735
|
return entityData.map((record, idx) => {
|
|
@@ -11862,7 +11870,7 @@ var MediaGallery = ({
|
|
|
11862
11870
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
11863
11871
|
);
|
|
11864
11872
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
11865
|
-
const items =
|
|
11873
|
+
const items = React__default.useMemo(() => {
|
|
11866
11874
|
if (propItems) return propItems;
|
|
11867
11875
|
if (entityData.length === 0) return [];
|
|
11868
11876
|
return entityData.map((record, idx) => ({
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ENTITY_EVENTS, useAgentChat, useAuthContext, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useEntities, useEntitiesByType, useEntity as useEntityById, useEntityMutations, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInput, useOrbitalHistory, useOrbitalMutations, usePhysics, usePlayer, usePreview, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useUIEvents, useUpdateEntity, useValidation } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ENTITY_EVENTS, useAgentChat, useAuthContext, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useEntities, useEntitiesByType, useEntity as useEntityById, useEntityMutations, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInput, useOrbitalHistory, useOrbitalMutations, usePhysics, usePlayer, usePreview, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useUIEvents, useUpdateEntity, useValidation } from '../chunk-6OACETQB.js';
|
|
2
|
+
import '../chunk-3HJHHULT.js';
|
|
3
3
|
export { EntityDataProvider, I18nProvider, createTranslate, entityDataKeys, parseQueryBinding, useEntity, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntitySuspense, useQuerySingleton, useTranslate } from '../chunk-JLEMVREZ.js';
|
|
4
4
|
export { useEmitEvent, useEventBus, useEventListener } from '../chunk-YXZM3WCF.js';
|
|
5
5
|
export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-7NEWMNNU.js';
|
package/dist/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DEFAULT_CONFIG, extractOutputsFromTransitions, extractStateMachine, formatGuard, getEffectSummary, parseContentSegments, parseMarkdownWithCodeBlocks, renderStateMachineToDomData, renderStateMachineToSvg } from '../chunk-N6DJVKZ6.js';
|
|
2
|
-
export { ApiError, apiClient } from '../chunk-
|
|
2
|
+
export { ApiError, apiClient } from '../chunk-3HJHHULT.js';
|
|
3
3
|
export { bindEventBus, bindTraitStateGetter, clearVerification, getAllChecks, getBridgeHealth, getSnapshot, getSummary, getTransitions, getTransitionsForTrait, recordTransition, registerCheck, subscribeToVerification, updateBridgeHealth, updateCheck, waitForTransition } from '../chunk-45CTDYBT.js';
|
|
4
4
|
export { cn, debug, debugCollision, debugError, debugGameState, debugGroup, debugGroupEnd, debugInput, debugPhysics, debugTable, debugTime, debugTimeEnd, debugWarn, formatNestedFieldLabel, getNestedValue, isDebugEnabled } from '../chunk-KKCVDUK7.js';
|
|
5
5
|
import '../chunk-PKBMQBKP.js';
|
package/dist/providers/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* node_modules/.pnpm/katex@0.16.33/node_modules/katex/dist/katex.min.css */
|
|
2
2
|
@font-face {
|
|
3
3
|
font-display: block;
|
|
4
4
|
font-family: KaTeX_AMS;
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
border-color: currentColor;
|
|
214
214
|
}
|
|
215
215
|
.katex .katex-version:after {
|
|
216
|
-
content: "0.16.
|
|
216
|
+
content: "0.16.33";
|
|
217
217
|
}
|
|
218
218
|
.katex .katex-mathml {
|
|
219
219
|
clip: rect(1px, 1px, 1px, 1px);
|
|
@@ -988,6 +988,15 @@
|
|
|
988
988
|
.katex svg {
|
|
989
989
|
fill: currentColor;
|
|
990
990
|
stroke: currentColor;
|
|
991
|
+
display: block;
|
|
992
|
+
height: inherit;
|
|
993
|
+
position: absolute;
|
|
994
|
+
width: 100%;
|
|
995
|
+
}
|
|
996
|
+
.katex svg path {
|
|
997
|
+
stroke: none;
|
|
998
|
+
}
|
|
999
|
+
.katex svg {
|
|
991
1000
|
fill-rule: nonzero;
|
|
992
1001
|
fill-opacity: 1;
|
|
993
1002
|
stroke-width: 1;
|
|
@@ -997,13 +1006,6 @@
|
|
|
997
1006
|
stroke-dasharray: none;
|
|
998
1007
|
stroke-dashoffset: 0;
|
|
999
1008
|
stroke-opacity: 1;
|
|
1000
|
-
display: block;
|
|
1001
|
-
height: inherit;
|
|
1002
|
-
position: absolute;
|
|
1003
|
-
width: 100%;
|
|
1004
|
-
}
|
|
1005
|
-
.katex svg path {
|
|
1006
|
-
stroke: none;
|
|
1007
1009
|
}
|
|
1008
1010
|
.katex img {
|
|
1009
1011
|
border-style: none;
|
package/dist/providers/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { SuspenseConfigProvider } from '../chunk-
|
|
1
|
+
import { SuspenseConfigProvider } from '../chunk-5Z55L5V7.js';
|
|
2
2
|
import { ThemeProvider } from '../chunk-BTXQJGFB.js';
|
|
3
|
-
import { recordTransition, registerCheck, bindEventBus, bindTraitStateGetter } from '../chunk-45CTDYBT.js';
|
|
4
|
-
import '../chunk-KKCVDUK7.js';
|
|
5
3
|
import { SelectionProvider, EntityDataProvider } from '../chunk-JLEMVREZ.js';
|
|
6
4
|
export { SelectionContext, SelectionProvider, useSelection, useSelectionOptional } from '../chunk-JLEMVREZ.js';
|
|
7
5
|
import { useEventBus, EventBusProvider } from '../chunk-YXZM3WCF.js';
|
|
8
6
|
export { EventBusContext, EventBusProvider } from '../chunk-YXZM3WCF.js';
|
|
9
7
|
import '../chunk-7NEWMNNU.js';
|
|
8
|
+
import { recordTransition, registerCheck, bindEventBus, bindTraitStateGetter } from '../chunk-45CTDYBT.js';
|
|
9
|
+
import '../chunk-KKCVDUK7.js';
|
|
10
10
|
import { useOfflineExecutor } from '../chunk-PL7MD6GF.js';
|
|
11
11
|
import '../chunk-PKBMQBKP.js';
|
|
12
12
|
import { createContext, useState, useCallback, useMemo, useContext, useRef, useEffect } from 'react';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/ui",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.7",
|
|
4
4
|
"description": "React UI components, hooks, and providers for Almadar",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/components/index.js",
|
|
@@ -117,6 +117,7 @@
|
|
|
117
117
|
"vitest": "^1.4.0",
|
|
118
118
|
"@testing-library/react": "^14.2.0",
|
|
119
119
|
"@testing-library/jest-dom": "^6.4.0",
|
|
120
|
+
"@testing-library/user-event": "^14.5.0",
|
|
120
121
|
"@vitest/ui": "^1.4.0",
|
|
121
122
|
"jsdom": "^24.0.0",
|
|
122
123
|
"@storybook/addon-docs": "^10.2.6",
|