@almadar/ui 5.16.2 → 5.17.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 +10 -0
- package/dist/avl/index.js +10 -0
- package/dist/components/atoms/game/MiniMap.d.ts +15 -17
- package/dist/components/atoms/index.d.ts +1 -0
- package/dist/components/atoms/types.d.ts +40 -0
- package/dist/components/index.cjs +10 -0
- package/dist/components/index.js +10 -0
- package/dist/components/molecules/CTABanner.d.ts +3 -8
- package/dist/components/molecules/CalendarGrid.d.ts +2 -2
- package/dist/components/molecules/CommunityLinks.d.ts +15 -12
- package/dist/components/molecules/DataGrid.d.ts +2 -1
- package/dist/components/molecules/DataList.d.ts +12 -11
- package/dist/components/molecules/GraphView.d.ts +2 -2
- package/dist/components/molecules/HeroSection.d.ts +4 -12
- package/dist/components/molecules/MapView.d.ts +2 -2
- package/dist/components/molecules/MarketingFooter.d.ts +6 -5
- package/dist/components/molecules/Meter.d.ts +2 -1
- package/dist/components/molecules/PricingCard.d.ts +2 -4
- package/dist/components/molecules/QrScanner.d.ts +2 -2
- package/dist/components/molecules/RepeatableFormSection.d.ts +2 -2
- package/dist/components/molecules/ShowcaseCard.d.ts +2 -4
- package/dist/components/molecules/SplitSection.d.ts +2 -4
- package/dist/components/molecules/StatDisplay.d.ts +2 -1
- package/dist/components/molecules/StatsGrid.d.ts +5 -4
- package/dist/components/molecules/TableView.d.ts +2 -1
- package/dist/components/molecules/game/CraftingRecipe.d.ts +9 -5
- package/dist/components/molecules/game/HealthPanel.d.ts +6 -5
- package/dist/components/molecules/game/IsometricCanvas.d.ts +9 -13
- package/dist/components/organisms/Chart.d.ts +12 -3
- package/dist/components/organisms/CodeViewer.d.ts +8 -6
- package/dist/components/organisms/ConfirmDialog.d.ts +2 -1
- package/dist/components/organisms/DataTable.d.ts +5 -4
- package/dist/components/organisms/DetailPanel.d.ts +5 -4
- package/dist/components/organisms/DocumentViewer.d.ts +9 -7
- package/dist/components/organisms/DrawerSlot.d.ts +2 -1
- package/dist/components/organisms/Form.d.ts +2 -1
- package/dist/components/organisms/GraphCanvas.d.ts +2 -1
- package/dist/components/organisms/Header.d.ts +17 -14
- package/dist/components/organisms/JazariStateMachine.d.ts +2 -1
- package/dist/components/organisms/List.d.ts +2 -2
- package/dist/components/organisms/Meter.d.ts +2 -1
- package/dist/components/organisms/ModalSlot.d.ts +2 -1
- package/dist/components/organisms/Navigation.d.ts +2 -1
- package/dist/components/organisms/OrbitalVisualization.d.ts +2 -1
- package/dist/components/organisms/PageHeader.d.ts +7 -5
- package/dist/components/organisms/Section.d.ts +2 -1
- package/dist/components/organisms/Sidebar.d.ts +2 -1
- package/dist/components/organisms/SignaturePad.d.ts +2 -1
- package/dist/components/organisms/Split.d.ts +2 -1
- package/dist/components/organisms/StateMachineView.d.ts +2 -1
- package/dist/components/organisms/Timeline.d.ts +2 -1
- package/dist/components/organisms/ToastSlot.d.ts +2 -1
- package/dist/components/organisms/UISlotRenderer.d.ts +4 -3
- package/dist/components/organisms/WizardContainer.d.ts +2 -1
- package/dist/components/organisms/game/BattleBoard.d.ts +4 -4
- package/dist/components/organisms/game/CanvasEffect.d.ts +2 -1
- package/dist/components/organisms/game/CastleBoard.d.ts +2 -2
- package/dist/components/organisms/game/GameAudioProvider.d.ts +2 -1
- package/dist/components/organisms/game/GameAudioToggle.d.ts +2 -1
- package/dist/components/organisms/game/TraitSlot.d.ts +4 -3
- package/dist/components/organisms/game/TraitStateViewer.d.ts +2 -1
- package/dist/components/organisms/game/WorldMapBoard.d.ts +6 -5
- package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts +8 -7
- package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts +7 -9
- package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts +2 -4
- package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts +3 -8
- package/dist/components/organisms/game/types/isometric.d.ts +4 -4
- package/dist/components/organisms/index.d.ts +1 -1
- package/dist/components/organisms/types.d.ts +3 -1
- package/dist/components/templates/DashboardLayout.d.ts +6 -5
- package/dist/components/templates/GameTemplate.d.ts +7 -6
- package/dist/marketing/index.d.cts +48 -53
- package/dist/providers/index.cjs +10 -0
- package/dist/providers/index.js +10 -0
- package/dist/runtime/index.cjs +10 -0
- package/dist/runtime/index.js +10 -0
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ export interface CastleEntity {
|
|
|
30
30
|
backgroundImage?: string;
|
|
31
31
|
}
|
|
32
32
|
/** Context exposed to render-prop slots */
|
|
33
|
-
export
|
|
33
|
+
export type CastleSlotContext = {
|
|
34
34
|
/** Currently hovered tile coordinates (null when not hovering) */
|
|
35
35
|
hoveredTile: {
|
|
36
36
|
x: number;
|
|
@@ -51,7 +51,7 @@ export interface CastleSlotContext {
|
|
|
51
51
|
};
|
|
52
52
|
/** Canvas scale */
|
|
53
53
|
scale: number;
|
|
54
|
-
}
|
|
54
|
+
};
|
|
55
55
|
export interface CastleBoardProps {
|
|
56
56
|
/** Castle entity data */
|
|
57
57
|
entity: CastleEntity;
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import React from 'react';
|
|
20
20
|
import { type AudioManifest, type GameAudioControls } from './hooks/useGameAudio';
|
|
21
|
+
import type { UiError } from '../../atoms/types';
|
|
21
22
|
export type GameAudioContextValue = Pick<GameAudioControls, 'muted' | 'setMuted' | 'masterVolume' | 'setMasterVolume' | 'play' | 'playMusic' | 'stopMusic'>;
|
|
22
23
|
export declare const GameAudioContext: React.Context<GameAudioContextValue | null>;
|
|
23
24
|
/**
|
|
@@ -37,7 +38,7 @@ export interface GameAudioProviderProps {
|
|
|
37
38
|
/** Closed-circuit props (unused, accepted for runtime compatibility) */
|
|
38
39
|
className?: string;
|
|
39
40
|
isLoading?: boolean;
|
|
40
|
-
error?:
|
|
41
|
+
error?: UiError | null;
|
|
41
42
|
entity?: string;
|
|
42
43
|
}
|
|
43
44
|
export declare function GameAudioProvider({ manifest, baseUrl, children, initialMuted, }: GameAudioProviderProps): React.JSX.Element;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
*/
|
|
11
11
|
import React from 'react';
|
|
12
|
+
import type { UiError } from '../../atoms/types';
|
|
12
13
|
export interface GameAudioToggleProps {
|
|
13
14
|
/** Button size */
|
|
14
15
|
size?: 'sm' | 'md' | 'lg';
|
|
@@ -17,7 +18,7 @@ export interface GameAudioToggleProps {
|
|
|
17
18
|
/** Loading state (passed through) */
|
|
18
19
|
isLoading?: boolean;
|
|
19
20
|
/** Error state (passed through) */
|
|
20
|
-
error?:
|
|
21
|
+
error?: UiError | null;
|
|
21
22
|
/** Entity name for schema-driven auto-fetch */
|
|
22
23
|
entity?: string;
|
|
23
24
|
}
|
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
import React from 'react';
|
|
21
21
|
import type { EventEmit } from '@almadar/core';
|
|
22
22
|
import { type TraitStateMachineDefinition } from './TraitStateViewer';
|
|
23
|
+
import type { UiError } from '../../atoms/types';
|
|
23
24
|
/** Data shape for a slot's equipped item */
|
|
24
|
-
export
|
|
25
|
+
export type SlotItemData = {
|
|
25
26
|
id: string;
|
|
26
27
|
name: string;
|
|
27
28
|
category: string;
|
|
@@ -32,7 +33,7 @@ export interface SlotItemData {
|
|
|
32
33
|
iconUrl?: string;
|
|
33
34
|
/** Optional state machine for tooltip display */
|
|
34
35
|
stateMachine?: TraitStateMachineDefinition;
|
|
35
|
-
}
|
|
36
|
+
};
|
|
36
37
|
/** Event Contract:
|
|
37
38
|
* Emits: UI:CLICK
|
|
38
39
|
* Emits: UI:REMOVE
|
|
@@ -64,7 +65,7 @@ export interface TraitSlotProps {
|
|
|
64
65
|
/** Loading state */
|
|
65
66
|
isLoading?: boolean;
|
|
66
67
|
/** Error state */
|
|
67
|
-
error?:
|
|
68
|
+
error?: UiError | null;
|
|
68
69
|
/** Entity name for schema-driven auto-fetch */
|
|
69
70
|
entity?: string;
|
|
70
71
|
/** Called when an item is dropped on this slot */
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import React from 'react';
|
|
13
13
|
import { type StateStyle } from '../../atoms/game/StateIndicator';
|
|
14
|
+
import type { UiError } from '../../atoms/types';
|
|
14
15
|
export interface TraitTransition {
|
|
15
16
|
from: string;
|
|
16
17
|
to: string;
|
|
@@ -42,7 +43,7 @@ export interface TraitStateViewerProps {
|
|
|
42
43
|
/** Loading state */
|
|
43
44
|
isLoading?: boolean;
|
|
44
45
|
/** Error state */
|
|
45
|
-
error?:
|
|
46
|
+
error?: UiError | null;
|
|
46
47
|
/** Entity name for schema-driven auto-fetch */
|
|
47
48
|
entity?: string;
|
|
48
49
|
}
|
|
@@ -22,6 +22,7 @@ import React from 'react';
|
|
|
22
22
|
import type { EventEmit } from '@almadar/core';
|
|
23
23
|
import type { IsometricFeature } from './types/isometric';
|
|
24
24
|
import type { ResolvedFrame } from './types/spriteAnimation';
|
|
25
|
+
import type { UiError } from '../../atoms/types';
|
|
25
26
|
/** A hero on the world map */
|
|
26
27
|
export interface MapHero {
|
|
27
28
|
id: string;
|
|
@@ -43,7 +44,7 @@ export interface MapHero {
|
|
|
43
44
|
level?: number;
|
|
44
45
|
}
|
|
45
46
|
/** A hex on the map */
|
|
46
|
-
export
|
|
47
|
+
export type MapHex = {
|
|
47
48
|
x: number;
|
|
48
49
|
y: number;
|
|
49
50
|
terrain: string;
|
|
@@ -51,9 +52,9 @@ export interface MapHex {
|
|
|
51
52
|
feature?: string;
|
|
52
53
|
featureData?: Record<string, unknown>;
|
|
53
54
|
passable?: boolean;
|
|
54
|
-
}
|
|
55
|
+
};
|
|
55
56
|
/** Context exposed to render-prop slots */
|
|
56
|
-
export
|
|
57
|
+
export type WorldMapSlotContext = {
|
|
57
58
|
/** Currently hovered tile */
|
|
58
59
|
hoveredTile: {
|
|
59
60
|
x: number;
|
|
@@ -79,7 +80,7 @@ export interface WorldMapSlotContext {
|
|
|
79
80
|
};
|
|
80
81
|
/** Canvas scale */
|
|
81
82
|
scale: number;
|
|
82
|
-
}
|
|
83
|
+
};
|
|
83
84
|
/** Entity shape for the WorldMapBoard */
|
|
84
85
|
export interface WorldMapEntity {
|
|
85
86
|
id: string;
|
|
@@ -108,7 +109,7 @@ export interface WorldMapBoardProps {
|
|
|
108
109
|
/** Loading state indicator */
|
|
109
110
|
isLoading?: boolean;
|
|
110
111
|
/** Error state */
|
|
111
|
-
error?:
|
|
112
|
+
error?: UiError | null;
|
|
112
113
|
/** World map entity data */
|
|
113
114
|
entity?: WorldMapEntity | readonly WorldMapEntity[];
|
|
114
115
|
/** Canvas render scale */
|
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
* Play/pause/step/reset controls with speed and parameter sliders.
|
|
5
5
|
*/
|
|
6
6
|
import React from 'react';
|
|
7
|
+
export interface SimulationParameter {
|
|
8
|
+
value: number;
|
|
9
|
+
min: number;
|
|
10
|
+
max: number;
|
|
11
|
+
step: number;
|
|
12
|
+
label: string;
|
|
13
|
+
}
|
|
7
14
|
export interface SimulationControlsProps {
|
|
8
15
|
running: boolean;
|
|
9
16
|
speed: number;
|
|
10
|
-
parameters: Record<string,
|
|
11
|
-
value: number;
|
|
12
|
-
min: number;
|
|
13
|
-
max: number;
|
|
14
|
-
step: number;
|
|
15
|
-
label: string;
|
|
16
|
-
}>;
|
|
17
|
+
parameters: Record<string, SimulationParameter>;
|
|
17
18
|
onPlay: () => void;
|
|
18
19
|
onPause: () => void;
|
|
19
20
|
onStep: () => void;
|
|
@@ -7,24 +7,22 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
-
export
|
|
10
|
+
export type RuleDefinition = {
|
|
11
11
|
id: string;
|
|
12
12
|
whenEvent: string;
|
|
13
13
|
thenAction: string;
|
|
14
|
+
};
|
|
15
|
+
export interface RuleOption {
|
|
16
|
+
value: string;
|
|
17
|
+
label: string;
|
|
14
18
|
}
|
|
15
19
|
export interface RuleEditorProps {
|
|
16
20
|
/** The current rule */
|
|
17
21
|
rule: RuleDefinition;
|
|
18
22
|
/** Available event triggers to listen for */
|
|
19
|
-
availableEvents:
|
|
20
|
-
value: string;
|
|
21
|
-
label: string;
|
|
22
|
-
}>;
|
|
23
|
+
availableEvents: RuleOption[];
|
|
23
24
|
/** Available actions to perform */
|
|
24
|
-
availableActions:
|
|
25
|
-
value: string;
|
|
26
|
-
label: string;
|
|
27
|
-
}>;
|
|
25
|
+
availableActions: RuleOption[];
|
|
28
26
|
/** Called when rule changes */
|
|
29
27
|
onChange: (rule: RuleDefinition) => void;
|
|
30
28
|
/** Called when rule is removed */
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
+
import { type Point } from '../../../../atoms';
|
|
10
11
|
export interface StateNodeProps {
|
|
11
12
|
/** State name */
|
|
12
13
|
name: string;
|
|
@@ -17,10 +18,7 @@ export interface StateNodeProps {
|
|
|
17
18
|
/** Whether this is the initial state */
|
|
18
19
|
isInitial?: boolean;
|
|
19
20
|
/** Position on the graph canvas */
|
|
20
|
-
position:
|
|
21
|
-
x: number;
|
|
22
|
-
y: number;
|
|
23
|
-
};
|
|
21
|
+
position: Point;
|
|
24
22
|
/** Click handler */
|
|
25
23
|
onClick?: () => void;
|
|
26
24
|
/** Additional CSS classes */
|
|
@@ -7,17 +7,12 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
+
import type { Point } from '../../../../atoms/types';
|
|
10
11
|
export interface TransitionArrowProps {
|
|
11
12
|
/** Start position (center of from-node) */
|
|
12
|
-
from:
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
};
|
|
13
|
+
from: Point;
|
|
16
14
|
/** End position (center of to-node) */
|
|
17
|
-
to:
|
|
18
|
-
x: number;
|
|
19
|
-
y: number;
|
|
20
|
-
};
|
|
15
|
+
to: Point;
|
|
21
16
|
/** Event label shown on the arrow */
|
|
22
17
|
eventLabel: string;
|
|
23
18
|
/** Guard hint shown below event */
|
|
@@ -32,7 +32,7 @@ export interface IsometricTile {
|
|
|
32
32
|
elevation?: number;
|
|
33
33
|
}
|
|
34
34
|
/** A unit positioned on the isometric grid */
|
|
35
|
-
export
|
|
35
|
+
export type IsometricUnit = {
|
|
36
36
|
/** Unique unit identifier */
|
|
37
37
|
id: string;
|
|
38
38
|
/** Current grid position (2D format) */
|
|
@@ -76,9 +76,9 @@ export interface IsometricUnit {
|
|
|
76
76
|
};
|
|
77
77
|
/** Elevation offset for 3D rendering */
|
|
78
78
|
elevation?: number;
|
|
79
|
-
}
|
|
79
|
+
};
|
|
80
80
|
/** A map feature (resource, building, portal, etc.) */
|
|
81
|
-
export
|
|
81
|
+
export type IsometricFeature = {
|
|
82
82
|
/** Optional unique identifier (required for 3D rendering) */
|
|
83
83
|
id?: string;
|
|
84
84
|
/** Grid x coordinate */
|
|
@@ -97,7 +97,7 @@ export interface IsometricFeature {
|
|
|
97
97
|
color?: string;
|
|
98
98
|
/** Elevation offset for 3D rendering */
|
|
99
99
|
elevation?: number;
|
|
100
|
-
}
|
|
100
|
+
};
|
|
101
101
|
/** Camera state for pan/zoom */
|
|
102
102
|
export interface CameraState {
|
|
103
103
|
/** Camera X offset in pixels */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type EntityDisplayProps, EntityDisplayEvents, type SortPayload, type PaginatePayload, type SearchPayload, type FilterPayload, type SelectPayload, } from "./types";
|
|
1
|
+
export { type EntityDisplayProps, type UiError, EntityDisplayEvents, type SortPayload, type PaginatePayload, type SearchPayload, type FilterPayload, type SelectPayload, } from "./types";
|
|
2
2
|
export { DataTable, type DataTableProps, type Column, type RowAction, } from "./DataTable";
|
|
3
3
|
export { StatCard, type StatCardProps } from "./StatCard";
|
|
4
4
|
export { PageHeader, type PageHeaderProps, type PageBreadcrumb, } from "./PageHeader";
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* This is the ONE allowed exception — documented here.
|
|
9
9
|
*/
|
|
10
10
|
import type { EntityRow, EntityInlet } from '@almadar/core';
|
|
11
|
+
import type { UiError } from '../atoms/types';
|
|
12
|
+
export type { UiError };
|
|
11
13
|
export declare const EntityDisplayEvents: {
|
|
12
14
|
readonly SORT: "SORT";
|
|
13
15
|
readonly PAGINATE: "PAGINATE";
|
|
@@ -67,7 +69,7 @@ export interface EntityDisplayProps<T extends EntityRow = EntityRow> {
|
|
|
67
69
|
/** Loading state indicator */
|
|
68
70
|
isLoading?: boolean;
|
|
69
71
|
/** Error state */
|
|
70
|
-
error?:
|
|
72
|
+
error?: UiError | null;
|
|
71
73
|
/** Current sort field */
|
|
72
74
|
sortBy?: string;
|
|
73
75
|
/** Current sort direction */
|
|
@@ -39,6 +39,11 @@ export interface TopBarAction {
|
|
|
39
39
|
/** Visual variant. Default `"default"`. */
|
|
40
40
|
variant?: "default" | "primary" | "danger";
|
|
41
41
|
}
|
|
42
|
+
export interface DashboardUser {
|
|
43
|
+
name: string;
|
|
44
|
+
email: string;
|
|
45
|
+
avatar?: string;
|
|
46
|
+
}
|
|
42
47
|
export interface DashboardLayoutProps {
|
|
43
48
|
/** App name shown in sidebar */
|
|
44
49
|
appName?: string;
|
|
@@ -48,11 +53,7 @@ export interface DashboardLayoutProps {
|
|
|
48
53
|
* as a navItems entry, not depend on baked-in chrome. */
|
|
49
54
|
navItems?: NavItem[];
|
|
50
55
|
/** Current user info (optional - auto-populated from auth context if not provided) */
|
|
51
|
-
user?:
|
|
52
|
-
name: string;
|
|
53
|
-
email: string;
|
|
54
|
-
avatar?: string;
|
|
55
|
-
};
|
|
56
|
+
user?: DashboardUser;
|
|
56
57
|
/** Header actions (extra slots beyond bell/search/theme). */
|
|
57
58
|
headerActions?: React.ReactNode;
|
|
58
59
|
/** Show the top-bar search box. Default `false` — opt in by setting
|
|
@@ -11,6 +11,12 @@ interface GameEntity {
|
|
|
11
11
|
id: string;
|
|
12
12
|
title?: string;
|
|
13
13
|
}
|
|
14
|
+
export interface GameControls {
|
|
15
|
+
onPlay?: () => void;
|
|
16
|
+
onPause?: () => void;
|
|
17
|
+
onReset?: () => void;
|
|
18
|
+
isPlaying?: boolean;
|
|
19
|
+
}
|
|
14
20
|
export interface GameTemplateProps extends TemplateProps<GameEntity> {
|
|
15
21
|
/** Title of the game */
|
|
16
22
|
title?: string;
|
|
@@ -23,12 +29,7 @@ export interface GameTemplateProps extends TemplateProps<GameEntity> {
|
|
|
23
29
|
/** Whether the debug panel is visible */
|
|
24
30
|
showDebugPanel?: boolean;
|
|
25
31
|
/** Game controls */
|
|
26
|
-
controls?:
|
|
27
|
-
onPlay?: () => void;
|
|
28
|
-
onPause?: () => void;
|
|
29
|
-
onReset?: () => void;
|
|
30
|
-
isPlaying?: boolean;
|
|
31
|
-
};
|
|
32
|
+
controls?: GameControls;
|
|
32
33
|
/** Additional class name */
|
|
33
34
|
className?: string;
|
|
34
35
|
}
|
|
@@ -383,6 +383,20 @@ interface ContentSectionProps {
|
|
|
383
383
|
}
|
|
384
384
|
declare const ContentSection: React.ForwardRefExoticComponent<ContentSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
385
385
|
|
|
386
|
+
/**
|
|
387
|
+
* A labelled link/CTA used by marketing molecules (HeroSection, CTABanner,
|
|
388
|
+
* PricingCard) for their primary/secondary call-to-action props.
|
|
389
|
+
*/
|
|
390
|
+
interface LinkAction {
|
|
391
|
+
label: string;
|
|
392
|
+
href: string;
|
|
393
|
+
}
|
|
394
|
+
/** An image with its required alt text. */
|
|
395
|
+
interface ImageSource {
|
|
396
|
+
src: string;
|
|
397
|
+
alt: string;
|
|
398
|
+
}
|
|
399
|
+
|
|
386
400
|
/**
|
|
387
401
|
* HeroSection Molecule Component
|
|
388
402
|
*
|
|
@@ -397,19 +411,10 @@ interface HeroSectionProps {
|
|
|
397
411
|
title: string;
|
|
398
412
|
titleAccent?: string;
|
|
399
413
|
subtitle: string;
|
|
400
|
-
primaryAction?:
|
|
401
|
-
|
|
402
|
-
href: string;
|
|
403
|
-
};
|
|
404
|
-
secondaryAction?: {
|
|
405
|
-
label: string;
|
|
406
|
-
href: string;
|
|
407
|
-
};
|
|
414
|
+
primaryAction?: LinkAction;
|
|
415
|
+
secondaryAction?: LinkAction;
|
|
408
416
|
installCommand?: string;
|
|
409
|
-
image?:
|
|
410
|
-
src: string;
|
|
411
|
-
alt: string;
|
|
412
|
-
};
|
|
417
|
+
image?: ImageSource;
|
|
413
418
|
imagePosition?: 'below' | 'right' | 'background';
|
|
414
419
|
background?: 'dark' | 'gradient' | 'subtle';
|
|
415
420
|
align?: 'center' | 'left';
|
|
@@ -434,15 +439,9 @@ interface CTABannerProps {
|
|
|
434
439
|
/** Supporting text below the title */
|
|
435
440
|
subtitle?: string;
|
|
436
441
|
/** Primary action button config */
|
|
437
|
-
primaryAction?:
|
|
438
|
-
label: string;
|
|
439
|
-
href: string;
|
|
440
|
-
};
|
|
442
|
+
primaryAction?: LinkAction;
|
|
441
443
|
/** Secondary action button config */
|
|
442
|
-
secondaryAction?:
|
|
443
|
-
label: string;
|
|
444
|
-
href: string;
|
|
445
|
-
};
|
|
444
|
+
secondaryAction?: LinkAction;
|
|
446
445
|
/** Background style */
|
|
447
446
|
background?: CTABannerBackground;
|
|
448
447
|
/** Content alignment */
|
|
@@ -510,10 +509,7 @@ interface PricingCardProps {
|
|
|
510
509
|
price: string;
|
|
511
510
|
description?: string;
|
|
512
511
|
features: string[];
|
|
513
|
-
action:
|
|
514
|
-
label: string;
|
|
515
|
-
href: string;
|
|
516
|
-
};
|
|
512
|
+
action: LinkAction;
|
|
517
513
|
highlighted?: boolean;
|
|
518
514
|
badge?: string;
|
|
519
515
|
className?: string;
|
|
@@ -544,10 +540,7 @@ interface SplitSectionProps {
|
|
|
544
540
|
title: string;
|
|
545
541
|
description: string | React.ReactNode;
|
|
546
542
|
bullets?: string[];
|
|
547
|
-
image?:
|
|
548
|
-
src: string;
|
|
549
|
-
alt: string;
|
|
550
|
-
};
|
|
543
|
+
image?: ImageSource;
|
|
551
544
|
imagePosition?: 'left' | 'right';
|
|
552
545
|
background?: 'default' | 'alt';
|
|
553
546
|
children?: React.ReactNode;
|
|
@@ -601,11 +594,12 @@ declare const StepFlow: React.FC<StepFlowProps>;
|
|
|
601
594
|
* Uses StatDisplay internally when available for consistent styling.
|
|
602
595
|
*/
|
|
603
596
|
|
|
597
|
+
interface StatItem {
|
|
598
|
+
value: string;
|
|
599
|
+
label: string;
|
|
600
|
+
}
|
|
604
601
|
interface StatsGridProps {
|
|
605
|
-
stats:
|
|
606
|
-
value: string;
|
|
607
|
-
label: string;
|
|
608
|
-
}[];
|
|
602
|
+
stats: StatItem[];
|
|
609
603
|
columns?: 2 | 3 | 4 | 6;
|
|
610
604
|
className?: string;
|
|
611
605
|
}
|
|
@@ -637,19 +631,22 @@ declare const TagCloud: React.FC<TagCloudProps>;
|
|
|
637
631
|
* Composes VStack, HStack, Typography, Button, and Icon atoms.
|
|
638
632
|
*/
|
|
639
633
|
|
|
634
|
+
interface GithubLink {
|
|
635
|
+
url: string;
|
|
636
|
+
stars?: number;
|
|
637
|
+
}
|
|
638
|
+
interface DiscordLink {
|
|
639
|
+
url: string;
|
|
640
|
+
members?: number;
|
|
641
|
+
}
|
|
642
|
+
interface TwitterLink {
|
|
643
|
+
url: string;
|
|
644
|
+
followers?: number;
|
|
645
|
+
}
|
|
640
646
|
interface CommunityLinksProps {
|
|
641
|
-
github?:
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
};
|
|
645
|
-
discord?: {
|
|
646
|
-
url: string;
|
|
647
|
-
members?: number;
|
|
648
|
-
};
|
|
649
|
-
twitter?: {
|
|
650
|
-
url: string;
|
|
651
|
-
followers?: number;
|
|
652
|
-
};
|
|
647
|
+
github?: GithubLink;
|
|
648
|
+
discord?: DiscordLink;
|
|
649
|
+
twitter?: TwitterLink;
|
|
653
650
|
heading?: string;
|
|
654
651
|
subtitle?: string;
|
|
655
652
|
className?: string;
|
|
@@ -686,10 +683,7 @@ declare const ServiceCatalog: React.FC<ServiceCatalogProps>;
|
|
|
686
683
|
interface ShowcaseCardProps {
|
|
687
684
|
title: string;
|
|
688
685
|
description?: string;
|
|
689
|
-
image:
|
|
690
|
-
src: string;
|
|
691
|
-
alt: string;
|
|
692
|
-
};
|
|
686
|
+
image: ImageSource;
|
|
693
687
|
href?: string;
|
|
694
688
|
badge?: string;
|
|
695
689
|
accentColor?: string;
|
|
@@ -803,14 +797,15 @@ interface FooterLinkColumn {
|
|
|
803
797
|
title: string;
|
|
804
798
|
items: FooterLinkItem[];
|
|
805
799
|
}
|
|
800
|
+
interface FooterLogo {
|
|
801
|
+
src: string;
|
|
802
|
+
alt: string;
|
|
803
|
+
href?: string;
|
|
804
|
+
}
|
|
806
805
|
interface MarketingFooterProps {
|
|
807
806
|
columns: FooterLinkColumn[];
|
|
808
807
|
copyright?: string;
|
|
809
|
-
logo?:
|
|
810
|
-
src: string;
|
|
811
|
-
alt: string;
|
|
812
|
-
href?: string;
|
|
813
|
-
};
|
|
808
|
+
logo?: FooterLogo;
|
|
814
809
|
className?: string;
|
|
815
810
|
}
|
|
816
811
|
declare const MarketingFooter: React.FC<MarketingFooterProps>;
|
package/dist/providers/index.cjs
CHANGED
|
@@ -47862,6 +47862,16 @@ function SlotContentRenderer({
|
|
|
47862
47862
|
);
|
|
47863
47863
|
}
|
|
47864
47864
|
}
|
|
47865
|
+
if (propsSchema) {
|
|
47866
|
+
for (const [propKey, propDef] of Object.entries(propsSchema)) {
|
|
47867
|
+
const v = renderedProps[propKey];
|
|
47868
|
+
if ((typeof v === "string" || typeof v === "number") && propDef.types?.some(
|
|
47869
|
+
(t) => t === "date" || t === "datetime" || t === "timestamp"
|
|
47870
|
+
)) {
|
|
47871
|
+
renderedProps[propKey] = new Date(v);
|
|
47872
|
+
}
|
|
47873
|
+
}
|
|
47874
|
+
}
|
|
47865
47875
|
const finalProps = renderedProps;
|
|
47866
47876
|
const resolvedItems = Array.isArray(
|
|
47867
47877
|
finalProps.entity
|
package/dist/providers/index.js
CHANGED
|
@@ -47813,6 +47813,16 @@ function SlotContentRenderer({
|
|
|
47813
47813
|
);
|
|
47814
47814
|
}
|
|
47815
47815
|
}
|
|
47816
|
+
if (propsSchema) {
|
|
47817
|
+
for (const [propKey, propDef] of Object.entries(propsSchema)) {
|
|
47818
|
+
const v = renderedProps[propKey];
|
|
47819
|
+
if ((typeof v === "string" || typeof v === "number") && propDef.types?.some(
|
|
47820
|
+
(t) => t === "date" || t === "datetime" || t === "timestamp"
|
|
47821
|
+
)) {
|
|
47822
|
+
renderedProps[propKey] = new Date(v);
|
|
47823
|
+
}
|
|
47824
|
+
}
|
|
47825
|
+
}
|
|
47816
47826
|
const finalProps = renderedProps;
|
|
47817
47827
|
const resolvedItems = Array.isArray(
|
|
47818
47828
|
finalProps.entity
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -47448,6 +47448,16 @@ function SlotContentRenderer({
|
|
|
47448
47448
|
);
|
|
47449
47449
|
}
|
|
47450
47450
|
}
|
|
47451
|
+
if (propsSchema) {
|
|
47452
|
+
for (const [propKey, propDef] of Object.entries(propsSchema)) {
|
|
47453
|
+
const v = renderedProps[propKey];
|
|
47454
|
+
if ((typeof v === "string" || typeof v === "number") && propDef.types?.some(
|
|
47455
|
+
(t) => t === "date" || t === "datetime" || t === "timestamp"
|
|
47456
|
+
)) {
|
|
47457
|
+
renderedProps[propKey] = new Date(v);
|
|
47458
|
+
}
|
|
47459
|
+
}
|
|
47460
|
+
}
|
|
47451
47461
|
const finalProps = renderedProps;
|
|
47452
47462
|
const resolvedItems = Array.isArray(
|
|
47453
47463
|
finalProps.entity
|
package/dist/runtime/index.js
CHANGED
|
@@ -47399,6 +47399,16 @@ function SlotContentRenderer({
|
|
|
47399
47399
|
);
|
|
47400
47400
|
}
|
|
47401
47401
|
}
|
|
47402
|
+
if (propsSchema) {
|
|
47403
|
+
for (const [propKey, propDef] of Object.entries(propsSchema)) {
|
|
47404
|
+
const v = renderedProps[propKey];
|
|
47405
|
+
if ((typeof v === "string" || typeof v === "number") && propDef.types?.some(
|
|
47406
|
+
(t) => t === "date" || t === "datetime" || t === "timestamp"
|
|
47407
|
+
)) {
|
|
47408
|
+
renderedProps[propKey] = new Date(v);
|
|
47409
|
+
}
|
|
47410
|
+
}
|
|
47411
|
+
}
|
|
47402
47412
|
const finalProps = renderedProps;
|
|
47403
47413
|
const resolvedItems = Array.isArray(
|
|
47404
47414
|
finalProps.entity
|