@almadar/ui 2.1.11 → 2.2.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.
@@ -0,0 +1,103 @@
1
+ // locales/en.json
2
+ var en_default = {
3
+ $meta: { locale: "en", direction: "ltr" },
4
+ "common.save": "Save",
5
+ "common.cancel": "Cancel",
6
+ "common.delete": "Delete",
7
+ "common.close": "Close",
8
+ "common.confirm": "Are you sure?",
9
+ "common.create": "Create",
10
+ "common.edit": "Edit",
11
+ "common.view": "View",
12
+ "common.add": "Add",
13
+ "common.remove": "Remove",
14
+ "common.search": "Search...",
15
+ "common.filter": "Filter",
16
+ "common.actions": "Actions",
17
+ "common.yes": "Yes",
18
+ "common.no": "No",
19
+ "common.ok": "OK",
20
+ "common.done": "Done",
21
+ "common.apply": "Apply",
22
+ "common.reset": "Reset",
23
+ "common.refresh": "Refresh",
24
+ "common.export": "Export",
25
+ "common.import": "Import",
26
+ "common.copy": "Copy",
27
+ "common.settings": "Settings",
28
+ "nav.previous": "Previous",
29
+ "nav.next": "Next",
30
+ "nav.back": "Back",
31
+ "nav.home": "Home",
32
+ "form.submit": "Submit",
33
+ "form.saving": "Saving...",
34
+ "form.required": "This field is required",
35
+ "form.invalidEmail": "Enter a valid email address",
36
+ "form.selectPlaceholder": "Select {{label}}...",
37
+ "form.searchPlaceholder": "Search {{entity}}...",
38
+ "table.empty.title": "No items found",
39
+ "table.empty.description": "No items to display.",
40
+ "table.search.placeholder": "Search...",
41
+ "table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
42
+ "table.pagination.page": "Page {{page}} of {{totalPages}}",
43
+ "table.bulk.selected": "{{count}} selected",
44
+ "table.loading": "Loading...",
45
+ "status.loading": "Loading...",
46
+ "status.scheduled": "Scheduled",
47
+ "status.inProgress": "In Progress",
48
+ "status.completed": "Completed",
49
+ "status.cancelled": "Cancelled",
50
+ "status.pending": "Pending",
51
+ "status.active": "Active",
52
+ "status.inactive": "Inactive",
53
+ "status.draft": "Draft",
54
+ "status.archived": "Archived",
55
+ "error.generic": "Something went wrong",
56
+ "error.retry": "Try again",
57
+ "error.notFound": "Not found",
58
+ "error.loadFailed": "Failed to load: {{message}}",
59
+ "error.configMissing": "Configuration not found for: {{id}}",
60
+ "common.loading": "Loading...",
61
+ "common.saveChanges": "Save Changes",
62
+ "common.retry": "Retry",
63
+ "common.open": "Open",
64
+ "common.back": "Back",
65
+ "empty.noItems": "No items",
66
+ "empty.noData": "No data available",
67
+ "empty.noItemsYet": "No items yet",
68
+ "empty.noItemsAdded": "No items added yet",
69
+ "empty.noOptionsFound": "No options found",
70
+ "list.addItemPlaceholder": "Add new item...",
71
+ "error.occurred": "An error occurred",
72
+ "error.failedToLoad": "Failed to load data",
73
+ "wizard.back": "Back",
74
+ "wizard.next": "Next",
75
+ "wizard.complete": "Complete",
76
+ "wizard.stepOf": "Step {{current}} of {{total}}",
77
+ "pagination.previous": "Previous",
78
+ "pagination.next": "Next",
79
+ "pagination.total": "Total:",
80
+ "pagination.show": "Show:",
81
+ "pagination.goTo": "Go to:",
82
+ "pagination.go": "Go",
83
+ "auth.signIn": "Sign in",
84
+ "auth.signOut": "Sign out",
85
+ "dialog.confirm": "Confirm",
86
+ "dialog.cancel": "Cancel",
87
+ "dialog.loading": "Loading...",
88
+ "dialog.delete.title": "Delete {{item}}?",
89
+ "dialog.delete.message": "This action cannot be undone.",
90
+ "trait.availableActions": "Available Actions",
91
+ "trait.transitions": "Transitions",
92
+ "trait.availableNow": "Available now",
93
+ "book.startReading": "Start Reading",
94
+ "book.tableOfContents": "Table of Contents",
95
+ "book.partNumber": "Part {{number}}",
96
+ "book.print": "Print",
97
+ "book.previousPage": "Previous page",
98
+ "book.nextPage": "Next page",
99
+ "quiz.showAnswer": "Show answer",
100
+ "quiz.hideAnswer": "Hide answer"
101
+ };
102
+
103
+ export { en_default };
@@ -10,8 +10,8 @@ import { I as IsometricTile, a as IsometricUnit, b as IsometricFeature, C as Cam
10
10
  export { AuthContextValue, AuthUser, ChangeSummary, CompileResult, CompileStage, ENTITY_EVENTS, EntityDataAdapter, EntityDataProvider, EntityDataRecord, EntityMutationResult, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, HistoryTimelineItem, I18nContextValue, I18nProvider, OpenFile, OrbitalEventPayload, OrbitalEventResponse, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, ResolvedEntity, RevertResult, SelectedFile, TranslateFunction, UseCompileResult, UseEntityDetailResult, UseEntityListOptions, UseEntityListResult, UseEntityMutationsOptions, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, UseOrbitalHistoryOptions, UseOrbitalHistoryResult, createTranslate, entityDataKeys, parseQueryBinding, useAgentChat, useAuthContext, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useEmitEvent, useEntities, useEntitiesByType, useEntity, useEntityById, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntityMutations, useEntitySuspense, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInput, useOrbitalHistory, useOrbitalMutations, usePhysics, usePlayer, usePreview, useQuerySingleton, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useTranslate, useUIEvents, useUpdateEntity, useValidation } from '../hooks/index.js';
11
11
  import { E as EventBusContextType } from '../event-bus-types-CjJduURa.js';
12
12
  export { a as EventListener, K as KFlowEvent, U as Unsubscribe } from '../event-bus-types-CjJduURa.js';
13
- import { S as SlotContent, a as UISlot } from '../useUISlots-D0mttBSP.js';
14
- export { D as DEFAULT_SLOTS, R as RenderUIConfig, b as SlotAnimation, c as SlotChangeCallback, U as UISlotManager, u as useUISlotManager } from '../useUISlots-D0mttBSP.js';
13
+ import { S as SlotContent, a as UISlot } from '../useUISlots-BBjNvQtb.js';
14
+ export { D as DEFAULT_SLOTS, R as RenderUIConfig, b as SlotAnimation, c as SlotChangeCallback, U as UISlotManager, u as useUISlotManager } from '../useUISlots-BBjNvQtb.js';
15
15
  export { Entity, clearEntities, getAllEntities, getByType, getEntity, getSingleton, removeEntity, spawnEntity, updateEntity, updateSingleton } from '../stores/index.js';
16
16
  import 'clsx';
17
17
  import '@tanstack/react-query';
@@ -3002,7 +3002,7 @@ interface FormProps extends Omit<React__default.FormHTMLAttributes<HTMLFormEleme
3002
3002
  /** Additional CSS classes */
3003
3003
  className?: string;
3004
3004
  /** Entity type name or schema object. When OrbitalEntity, fields are auto-derived if not provided. */
3005
- entity?: string | OrbitalEntity;
3005
+ entity?: string | OrbitalEntity | readonly Record<string, unknown>[];
3006
3006
  /** Form mode - 'create' for new records, 'edit' for updating existing */
3007
3007
  mode?: "create" | "edit";
3008
3008
  /** Fields definition (schema format) - accepts readonly for generated const arrays */
@@ -5732,9 +5732,7 @@ interface WorldMapEntity {
5732
5732
  * Emits: UI:FEATURE_ENTER
5733
5733
  * Emits: UI:TILE_CLICK
5734
5734
  */
5735
- interface WorldMapBoardProps extends Omit<EntityDisplayProps, 'entity'> {
5736
- /** World map entity data */
5737
- entity: WorldMapEntity;
5735
+ interface WorldMapBoardProps extends EntityDisplayProps<WorldMapEntity> {
5738
5736
  /** Canvas render scale */
5739
5737
  scale?: number;
5740
5738
  /** Unit draw-size multiplier */
@@ -5781,7 +5779,7 @@ interface WorldMapBoardProps extends Omit<EntityDisplayProps, 'entity'> {
5781
5779
  resolveUnitFrame?: (unitId: string) => ResolvedFrame | null;
5782
5780
  className?: string;
5783
5781
  }
5784
- declare function WorldMapBoard({ entity, scale, unitScale, allowMoveAllHeroes, isInRange, heroSelectEvent, heroMoveEvent, battleEncounterEvent, featureEnterEvent, tileClickEvent, header, sidePanel, overlay, footer, onHeroSelect, onHeroMove, onBattleEncounter, onFeatureEnter, diamondTopY, enableCamera, effectSpriteUrls, resolveUnitFrame, className, }: WorldMapBoardProps): React__default.JSX.Element;
5782
+ declare function WorldMapBoard({ entity, isLoading, scale, unitScale, allowMoveAllHeroes, isInRange, heroSelectEvent, heroMoveEvent, battleEncounterEvent, featureEnterEvent, tileClickEvent, header, sidePanel, overlay, footer, onHeroSelect, onHeroMove, onBattleEncounter, onFeatureEnter, diamondTopY, enableCamera, effectSpriteUrls, resolveUnitFrame, className, }: WorldMapBoardProps): React__default.JSX.Element;
5785
5783
  declare namespace WorldMapBoard {
5786
5784
  var displayName: string;
5787
5785
  }
@@ -7856,14 +7854,19 @@ declare const CodeViewer: React__default.FC<CodeViewerProps>;
7856
7854
  * All templates MUST extend `TemplateProps<E>` to enforce entity-only data flow
7857
7855
  * and JSON round-trip compatibility with the flattener pipeline.
7858
7856
  *
7857
+ * The compiler passes `entity` as `E[]` (array from data store), so
7858
+ * TemplateProps accepts the same union as EntityDisplayProps.
7859
+ *
7859
7860
  * @see docs/Almadar_Templates.md
7860
7861
  */
7861
7862
  /** Base props for all templates — enforces entity-only data flow. */
7862
7863
  interface TemplateProps<E extends {
7863
7864
  id: string;
7865
+ } = {
7866
+ id: string;
7864
7867
  }> {
7865
- /** Entity data — the sole source of runtime state */
7866
- entity: E;
7868
+ /** Entity data — single object, array from compiler, or string entity name */
7869
+ entity?: string | E | readonly E[];
7867
7870
  /** External styling override */
7868
7871
  className?: string;
7869
7872
  }
@@ -7871,7 +7874,7 @@ interface TemplateProps<E extends {
7871
7874
  interface NavItem {
7872
7875
  label: string;
7873
7876
  href: string;
7874
- icon: LucideIcon;
7877
+ icon?: LucideIcon;
7875
7878
  badge?: string | number;
7876
7879
  children?: NavItem[];
7877
7880
  }
@@ -8074,7 +8077,7 @@ interface BattleTemplateProps extends TemplateProps<BattleEntity> {
8074
8077
  /** Unit draw-size multiplier */
8075
8078
  unitScale?: number;
8076
8079
  }
8077
- declare function BattleTemplate({ entity, scale, unitScale, className, }: BattleTemplateProps): React__default.JSX.Element;
8080
+ declare function BattleTemplate({ entity, scale, unitScale, className, }: BattleTemplateProps): React__default.JSX.Element | null;
8078
8081
  declare namespace BattleTemplate {
8079
8082
  var displayName: string;
8080
8083
  }
@@ -8094,7 +8097,7 @@ interface CastleTemplateProps extends TemplateProps<CastleEntity> {
8094
8097
  /** Canvas render scale */
8095
8098
  scale?: number;
8096
8099
  }
8097
- declare function CastleTemplate({ entity, scale, className, }: CastleTemplateProps): React__default.JSX.Element;
8100
+ declare function CastleTemplate({ entity, scale, className, }: CastleTemplateProps): React__default.JSX.Element | null;
8098
8101
  declare namespace CastleTemplate {
8099
8102
  var displayName: string;
8100
8103
  }