@almadar/ui 5.26.1 → 5.27.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.
Files changed (100) hide show
  1. package/dist/avl/index.cjs +2617 -2960
  2. package/dist/avl/index.js +1584 -1927
  3. package/dist/components/core/atoms/Avatar.d.ts +4 -4
  4. package/dist/components/core/atoms/Badge.d.ts +3 -2
  5. package/dist/components/core/atoms/Button.d.ts +7 -7
  6. package/dist/components/core/atoms/Card.d.ts +3 -0
  7. package/dist/components/core/atoms/Checkbox.d.ts +4 -1
  8. package/dist/components/core/atoms/FilterPill.d.ts +3 -2
  9. package/dist/components/core/atoms/Icon.d.ts +10 -1
  10. package/dist/components/core/atoms/Input.d.ts +9 -10
  11. package/dist/components/core/atoms/Select.d.ts +3 -1
  12. package/dist/components/core/atoms/Textarea.d.ts +3 -1
  13. package/dist/components/core/atoms/index.d.ts +1 -1
  14. package/dist/components/core/atoms/types.d.ts +2 -1
  15. package/dist/components/core/molecules/Breadcrumb.d.ts +3 -3
  16. package/dist/components/core/molecules/Card.d.ts +4 -3
  17. package/dist/components/core/molecules/Carousel.d.ts +2 -2
  18. package/dist/components/core/molecules/DataGrid.d.ts +5 -4
  19. package/dist/components/core/molecules/DataList.d.ts +7 -6
  20. package/dist/components/core/molecules/DocumentViewer.d.ts +3 -2
  21. package/dist/components/core/molecules/EmptyState.d.ts +2 -2
  22. package/dist/components/core/molecules/FloatingActionButton.d.ts +5 -5
  23. package/dist/components/core/molecules/FormSectionHeader.d.ts +3 -2
  24. package/dist/components/core/molecules/Header.d.ts +5 -4
  25. package/dist/components/core/molecules/Lightbox.d.ts +2 -1
  26. package/dist/components/core/molecules/Menu.d.ts +3 -3
  27. package/dist/components/core/molecules/Navigation.d.ts +2 -2
  28. package/dist/components/core/molecules/PageHeader.d.ts +2 -2
  29. package/dist/components/core/molecules/Sidebar.d.ts +5 -5
  30. package/dist/components/core/molecules/StatDisplay.d.ts +3 -2
  31. package/dist/components/core/molecules/SwipeableRow.d.ts +2 -1
  32. package/dist/components/core/molecules/TableView.d.ts +5 -4
  33. package/dist/components/core/molecules/Tabs.d.ts +2 -2
  34. package/dist/components/core/molecules/UploadDropZone.d.ts +3 -2
  35. package/dist/components/core/organisms/ComponentPatterns.d.ts +0 -306
  36. package/dist/components/core/organisms/CustomPattern.d.ts +3 -3
  37. package/dist/components/core/organisms/DataTable.d.ts +5 -5
  38. package/dist/components/core/organisms/DetailPanel.d.ts +3 -3
  39. package/dist/components/core/organisms/Form.d.ts +3 -2
  40. package/dist/components/core/organisms/LayoutPatterns.d.ts +0 -74
  41. package/dist/components/core/organisms/List.d.ts +4 -4
  42. package/dist/components/core/organisms/MediaGallery.d.ts +3 -3
  43. package/dist/components/core/organisms/StatCard.d.ts +4 -4
  44. package/dist/components/core/organisms/Timeline.d.ts +2 -2
  45. package/dist/components/core/templates/DashboardLayout.d.ts +6 -6
  46. package/dist/components/game/atoms/ActionButton.d.ts +2 -2
  47. package/dist/components/game/atoms/ControlButton.d.ts +2 -2
  48. package/dist/components/game/atoms/ItemSlot.d.ts +2 -2
  49. package/dist/components/game/atoms/ResourceCounter.d.ts +2 -2
  50. package/dist/components/game/atoms/ScoreDisplay.d.ts +2 -2
  51. package/dist/components/game/atoms/StateIndicator.d.ts +2 -1
  52. package/dist/components/game/atoms/StatusEffect.d.ts +3 -2
  53. package/dist/components/game/atoms/WaypointMarker.d.ts +2 -2
  54. package/dist/components/game/molecules/ActionButtons.d.ts +2 -8
  55. package/dist/components/game/molecules/CraftingRecipe.d.ts +3 -3
  56. package/dist/components/game/molecules/EnemyPlate.d.ts +2 -2
  57. package/dist/components/game/molecules/GameCanvas2D.d.ts +3 -2
  58. package/dist/components/game/molecules/GameHud.d.ts +3 -2
  59. package/dist/components/game/molecules/GameOverScreen.d.ts +2 -2
  60. package/dist/components/game/molecules/HealthPanel.d.ts +2 -2
  61. package/dist/components/game/molecules/InventoryGrid.d.ts +2 -2
  62. package/dist/components/game/molecules/IsometricCanvas.d.ts +4 -4
  63. package/dist/components/game/molecules/PlatformerCanvas.d.ts +5 -5
  64. package/dist/components/game/molecules/PowerupSlots.d.ts +2 -2
  65. package/dist/components/game/molecules/ResourceBar.d.ts +2 -2
  66. package/dist/components/game/molecules/StatBadge.d.ts +2 -2
  67. package/dist/components/game/molecules/TurnPanel.d.ts +2 -2
  68. package/dist/components/game/molecules/UnitCommandBar.d.ts +2 -2
  69. package/dist/components/game/organisms/BattleBoard.d.ts +2 -2
  70. package/dist/components/game/organisms/CanvasEffect.d.ts +3 -3
  71. package/dist/components/game/organisms/TraitSlot.d.ts +3 -3
  72. package/dist/components/game/organisms/WorldMapBoard.d.ts +2 -2
  73. package/dist/components/game/organisms/puzzles/builder/BuilderBoard.d.ts +2 -2
  74. package/dist/components/game/organisms/puzzles/classifier/ClassifierBoard.d.ts +3 -3
  75. package/dist/components/game/organisms/types/effects.d.ts +8 -7
  76. package/dist/components/game/organisms/types/isometric.d.ts +5 -4
  77. package/dist/components/game/organisms/types/spriteAnimation.d.ts +4 -3
  78. package/dist/components/game/organisms/useCanvasEffects.d.ts +2 -1
  79. package/dist/components/index.cjs +2663 -3006
  80. package/dist/components/index.js +1785 -2128
  81. package/dist/components/marketing/atoms/AnimatedGraphic.d.ts +2 -1
  82. package/dist/components/marketing/molecules/FeatureCard.d.ts +2 -2
  83. package/dist/components/marketing/molecules/MarketingFooter.d.ts +2 -1
  84. package/dist/components/marketing/molecules/StepFlow.d.ts +2 -1
  85. package/dist/components/marketing/molecules/TeamCard.d.ts +2 -1
  86. package/dist/components/marketing/organisms/book/BookCoverPage.d.ts +2 -1
  87. package/dist/components/marketing/templates/AboutPageTemplate.d.ts +2 -1
  88. package/dist/components/marketing/templates/AuthLayout.d.ts +2 -1
  89. package/dist/components/marketing/templates/LandingPageTemplate.d.ts +3 -2
  90. package/dist/docs/index.cjs +54 -11
  91. package/dist/docs/index.d.cts +48 -37
  92. package/dist/docs/index.js +54 -11
  93. package/dist/marketing/index.cjs +27 -13
  94. package/dist/marketing/index.d.cts +72 -61
  95. package/dist/marketing/index.js +27 -13
  96. package/dist/providers/index.cjs +2444 -2787
  97. package/dist/providers/index.js +1562 -1905
  98. package/dist/runtime/index.cjs +2482 -2825
  99. package/dist/runtime/index.js +1564 -1907
  100. package/package.json +2 -2
@@ -7,9 +7,10 @@
7
7
  */
8
8
  import React from 'react';
9
9
  import type { EventKey, EventPayload } from "@almadar/core";
10
+ import type { IconInput } from '../atoms';
10
11
  export interface SwipeAction {
11
12
  label: string;
12
- icon?: string;
13
+ icon?: IconInput;
13
14
  variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
14
15
  event: EventKey;
15
16
  eventPayload?: EventPayload;
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import React from 'react';
15
15
  import type { EntityRow, EventKey } from '@almadar/core';
16
+ import type { IconInput } from '../atoms';
16
17
  import { type DataDndProps } from './useDataDnd';
17
18
  import type { UiError } from '../atoms/types';
18
19
  export interface TableViewColumn {
@@ -36,8 +37,8 @@ export interface TableViewColumn {
36
37
  weight?: 'normal' | 'medium' | 'semibold';
37
38
  /** Value formatting hint. `badge` renders a status Badge. */
38
39
  format?: 'badge' | 'date' | 'currency' | 'number' | 'percent' | 'boolean';
39
- /** Lucide icon shown before the header label. */
40
- icon?: string;
40
+ /** Lucide icon name or component shown before the header label. */
41
+ icon?: IconInput;
41
42
  /** Allow click-to-sort on this column's header (emits `sortEvent`). */
42
43
  sortable?: boolean;
43
44
  }
@@ -46,8 +47,8 @@ export interface TableViewItemAction {
46
47
  label: string;
47
48
  /** Event name to emit (dispatched as UI:{event} with { id, row }). */
48
49
  event: EventKey;
49
- /** Lucide icon name. */
50
- icon?: string;
50
+ /** Lucide icon name or component. */
51
+ icon?: IconInput;
51
52
  /** Button variant. */
52
53
  variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
53
54
  }
@@ -5,8 +5,8 @@
5
5
  * Uses theme-aware CSS variables for styling.
6
6
  */
7
7
  import React from 'react';
8
- import type { LucideIcon } from 'lucide-react';
9
8
  import type { EventEmit } from '@almadar/core';
9
+ import type { IconInput } from '../atoms';
10
10
  export interface TabItem {
11
11
  /**
12
12
  * Tab ID. Optional — schema-driven callers may pass `value` instead;
@@ -23,7 +23,7 @@ export interface TabItem {
23
23
  /** Tab content - optional for event-driven tabs */
24
24
  content?: React.ReactNode;
25
25
  /** Tab icon — pass either a Lucide component or its registry name (e.g. "file-text") */
26
- icon?: LucideIcon | string;
26
+ icon?: IconInput;
27
27
  /** Tab badge */
28
28
  badge?: string | number;
29
29
  /** Disable tab */
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import type { EventKey, EventPayload } from "@almadar/core";
3
+ import type { IconInput } from "../atoms";
3
4
  export interface UploadDropZoneProps {
4
5
  /** Accepted MIME types (e.g., "image/*", "application/pdf") */
5
6
  accept?: string;
@@ -11,8 +12,8 @@ export interface UploadDropZoneProps {
11
12
  label?: string;
12
13
  /** Description text below label */
13
14
  description?: string;
14
- /** Icon name (Lucide string) */
15
- icon?: string;
15
+ /** Icon name or component */
16
+ icon?: IconInput;
16
17
  /** Disabled state */
17
18
  disabled?: boolean;
18
19
  /** Declarative event name for file selection */
@@ -12,9 +12,7 @@ import React from 'react';
12
12
  import type { EventKey, EventPayload } from '@almadar/core';
13
13
  import type { UiError } from '../atoms/types';
14
14
  import { type ButtonProps } from '../atoms/Button';
15
- import { type BadgeVariant } from '../atoms/Badge';
16
15
  import { type AlertVariant } from '../molecules/Alert';
17
- import { type MapViewProps } from '../molecules/MapView';
18
16
  /**
19
17
  * Base closed circuit props required by all organism components.
20
18
  */
@@ -116,56 +114,6 @@ export declare function TextPattern({ content, variant, size, weight, color, ali
116
114
  export declare namespace TextPattern {
117
115
  var displayName: string;
118
116
  }
119
- export interface HeadingPatternProps extends ClosedCircuitProps {
120
- content: string;
121
- level?: 1 | 2 | 3 | 4 | 5 | 6;
122
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
123
- className?: string;
124
- }
125
- export declare function HeadingPattern({ content, level, size, className, }: HeadingPatternProps): React.ReactElement;
126
- export declare namespace HeadingPattern {
127
- var displayName: string;
128
- }
129
- export interface BadgePatternProps extends ClosedCircuitProps {
130
- label: string;
131
- variant?: BadgeVariant;
132
- size?: 'sm' | 'md';
133
- className?: string;
134
- }
135
- /**
136
- * Badge pattern for status/counts.
137
- */
138
- export declare function BadgePattern({ label, variant, size, className, }: BadgePatternProps): React.ReactElement;
139
- export declare namespace BadgePattern {
140
- var displayName: string;
141
- }
142
- export interface AvatarPatternProps extends ClosedCircuitProps {
143
- src?: string;
144
- alt?: string;
145
- name?: string;
146
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
147
- className?: string;
148
- }
149
- /**
150
- * Avatar pattern.
151
- */
152
- export declare function AvatarPattern({ src, alt, name, size, className, }: AvatarPatternProps): React.ReactElement;
153
- export declare namespace AvatarPattern {
154
- var displayName: string;
155
- }
156
- export interface IconPatternProps extends ClosedCircuitProps {
157
- name: string;
158
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
159
- color?: string;
160
- className?: string;
161
- }
162
- /**
163
- * Icon pattern.
164
- */
165
- export declare function IconPattern({ name, size, color, className, }: IconPatternProps): React.ReactElement;
166
- export declare namespace IconPattern {
167
- var displayName: string;
168
- }
169
117
  export interface ImagePatternProps extends ClosedCircuitProps {
170
118
  src: string;
171
119
  alt: string;
@@ -182,144 +130,6 @@ export declare function ImagePattern({ src, alt, width, height, objectFit, class
182
130
  export declare namespace ImagePattern {
183
131
  var displayName: string;
184
132
  }
185
- export interface CardPatternProps extends ClosedCircuitProps {
186
- title?: string;
187
- subtitle?: string;
188
- padding?: 'none' | 'sm' | 'md' | 'lg';
189
- shadow?: 'none' | 'sm' | 'md' | 'lg';
190
- onClick?: string;
191
- className?: string;
192
- children?: React.ReactNode;
193
- }
194
- /**
195
- * Card pattern.
196
- */
197
- export declare function CardPattern({ title, subtitle, padding, shadow, onClick, className, children, }: CardPatternProps): React.ReactElement;
198
- export declare namespace CardPattern {
199
- var displayName: string;
200
- }
201
- export interface ProgressBarPatternProps extends ClosedCircuitProps {
202
- value: number;
203
- max?: number;
204
- variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger';
205
- size?: 'sm' | 'md' | 'lg';
206
- showLabel?: boolean;
207
- className?: string;
208
- }
209
- /**
210
- * Progress bar pattern.
211
- */
212
- export declare function ProgressBarPattern({ value, max, variant, size, showLabel, className, }: ProgressBarPatternProps): React.ReactElement;
213
- export declare namespace ProgressBarPattern {
214
- var displayName: string;
215
- }
216
- export interface SpinnerPatternProps extends ClosedCircuitProps {
217
- size?: 'xs' | 'sm' | 'md' | 'lg';
218
- color?: string;
219
- className?: string;
220
- }
221
- /**
222
- * Spinner pattern.
223
- */
224
- export declare function SpinnerPattern({ size, className, }: SpinnerPatternProps): React.ReactElement;
225
- export declare namespace SpinnerPattern {
226
- var displayName: string;
227
- }
228
- export interface InputPatternProps extends ClosedCircuitProps {
229
- value?: string;
230
- placeholder?: string;
231
- inputType?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
232
- disabled?: boolean;
233
- /** Field-level validation error message */
234
- fieldError?: string;
235
- onChange?: string;
236
- onBlur?: string;
237
- className?: string;
238
- /** Form field name. When the input is rendered inside a form-section's
239
- * `fields:` array, the runtime injects this from the field config so
240
- * the rendered DOM input carries `data-field-name="<name>"` and
241
- * `name="<name>"` — verifier-side automation (e.g. orbital-verify's
242
- * `fillFormFieldsFromMap`) selects fields by these attributes. */
243
- fieldName?: string;
244
- }
245
- /**
246
- * Input pattern.
247
- */
248
- export declare function InputPattern({ value, placeholder, inputType, disabled, fieldError, onChange, onBlur, className, fieldName, }: InputPatternProps): React.ReactElement;
249
- export declare namespace InputPattern {
250
- var displayName: string;
251
- }
252
- export interface TextareaPatternProps extends ClosedCircuitProps {
253
- value?: string;
254
- placeholder?: string;
255
- rows?: number;
256
- disabled?: boolean;
257
- /** Field-level validation error message */
258
- fieldError?: string;
259
- onChange?: string;
260
- className?: string;
261
- /** Form field name — see `InputPatternProps.fieldName`. */
262
- fieldName?: string;
263
- }
264
- /**
265
- * Textarea pattern.
266
- */
267
- export declare function TextareaPattern({ value, placeholder, rows, disabled, fieldError, onChange, className, fieldName, }: TextareaPatternProps): React.ReactElement;
268
- export declare namespace TextareaPattern {
269
- var displayName: string;
270
- }
271
- export interface SelectPatternProps extends ClosedCircuitProps {
272
- value?: string;
273
- options: Array<{
274
- value: string;
275
- label: string;
276
- }>;
277
- placeholder?: string;
278
- disabled?: boolean;
279
- /** Field-level validation error message */
280
- fieldError?: string;
281
- onChange?: string;
282
- className?: string;
283
- /** Form field name — see `InputPatternProps.fieldName`. */
284
- fieldName?: string;
285
- }
286
- /**
287
- * Select pattern.
288
- */
289
- export declare function SelectPattern({ value, options, placeholder, disabled, fieldError, onChange, className, fieldName, }: SelectPatternProps): React.ReactElement;
290
- export declare namespace SelectPattern {
291
- var displayName: string;
292
- }
293
- export interface CheckboxPatternProps extends ClosedCircuitProps {
294
- checked?: boolean;
295
- label?: string;
296
- disabled?: boolean;
297
- onChange?: string;
298
- className?: string;
299
- }
300
- /**
301
- * Checkbox pattern.
302
- */
303
- export declare function CheckboxPattern({ checked, label, disabled, onChange, className, }: CheckboxPatternProps): React.ReactElement;
304
- export declare namespace CheckboxPattern {
305
- var displayName: string;
306
- }
307
- export interface RadioPatternProps extends ClosedCircuitProps {
308
- value: string;
309
- checked?: boolean;
310
- name?: string;
311
- label?: string;
312
- disabled?: boolean;
313
- onChange?: string;
314
- className?: string;
315
- }
316
- /**
317
- * Radio pattern.
318
- */
319
- export declare function RadioPattern({ value, checked, name, label, disabled, onChange, className, }: RadioPatternProps): React.ReactElement;
320
- export declare namespace RadioPattern {
321
- var displayName: string;
322
- }
323
133
  export interface LabelPatternProps extends ClosedCircuitProps {
324
134
  text: string;
325
135
  htmlFor?: string;
@@ -348,94 +158,6 @@ export declare function AlertPattern({ message, title, variant, dismissible, onD
348
158
  export declare namespace AlertPattern {
349
159
  var displayName: string;
350
160
  }
351
- export interface TooltipPatternProps extends ClosedCircuitProps {
352
- content: string;
353
- position?: 'top' | 'bottom' | 'left' | 'right';
354
- className?: string;
355
- children?: React.ReactNode;
356
- }
357
- /**
358
- * Tooltip pattern.
359
- */
360
- export declare function TooltipPattern({ content, position, className, children, }: TooltipPatternProps): React.ReactElement;
361
- export declare namespace TooltipPattern {
362
- var displayName: string;
363
- }
364
- export interface PopoverPatternProps extends ClosedCircuitProps {
365
- content: React.ReactNode;
366
- position?: 'top' | 'bottom' | 'left' | 'right';
367
- trigger?: 'click' | 'hover';
368
- className?: string;
369
- children?: React.ReactNode;
370
- }
371
- /**
372
- * Popover pattern.
373
- */
374
- export declare function PopoverPattern({ content, position, trigger, className, children, }: PopoverPatternProps): React.ReactElement;
375
- export declare namespace PopoverPattern {
376
- var displayName: string;
377
- }
378
- export interface MenuPatternProps extends ClosedCircuitProps {
379
- items: Array<{
380
- label: string;
381
- event: string;
382
- icon?: string;
383
- disabled?: boolean;
384
- variant?: 'default' | 'danger';
385
- }>;
386
- trigger?: React.ReactNode;
387
- position?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
388
- className?: string;
389
- }
390
- /**
391
- * Menu pattern.
392
- */
393
- export declare function MenuPattern({ items, trigger, position, className, }: MenuPatternProps): React.ReactElement;
394
- export declare namespace MenuPattern {
395
- var displayName: string;
396
- }
397
- export interface AccordionPatternProps extends ClosedCircuitProps {
398
- items: Array<{
399
- title: string;
400
- content: React.ReactNode;
401
- }>;
402
- multiple?: boolean;
403
- defaultOpen?: number[];
404
- className?: string;
405
- }
406
- /**
407
- * Accordion pattern.
408
- */
409
- export declare function AccordionPattern({ items, multiple, defaultOpen, className, }: AccordionPatternProps): React.ReactElement;
410
- export declare namespace AccordionPattern {
411
- var displayName: string;
412
- }
413
- export interface ContainerPatternProps extends ClosedCircuitProps {
414
- maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
415
- padding?: 'none' | 'sm' | 'md' | 'lg';
416
- className?: string;
417
- children?: React.ReactNode;
418
- }
419
- /**
420
- * Container pattern.
421
- */
422
- export declare function ContainerPattern({ maxWidth, padding, className, children, }: ContainerPatternProps): React.ReactElement;
423
- export declare namespace ContainerPattern {
424
- var displayName: string;
425
- }
426
- export interface SimpleGridPatternProps extends ClosedCircuitProps {
427
- minChildWidth?: string;
428
- gap?: 'xs' | 'sm' | 'md' | 'lg';
429
- className?: string;
430
- children?: React.ReactNode;
431
- }
432
- /**
433
- * Simple grid pattern.
434
- */
435
- export declare function SimpleGridPattern({ minChildWidth, gap, className, children, }: SimpleGridPatternProps): React.ReactElement;
436
- export declare namespace SimpleGridPattern {
437
- var displayName: string;
438
- }
439
161
  export interface FloatButtonPatternProps extends ClosedCircuitProps {
440
162
  icon: string;
441
163
  onClick?: string;
@@ -450,42 +172,14 @@ export declare function FloatButtonPattern({ icon, onClick, position, variant, c
450
172
  export declare namespace FloatButtonPattern {
451
173
  var displayName: string;
452
174
  }
453
- export type MapViewPatternProps = Omit<MapViewProps, 'onMapClick' | 'onMarkerClick'> & ClosedCircuitProps;
454
- /**
455
- * Map view pattern. Passes through all MapView props.
456
- * Event dispatch is handled internally by MapView via mapClickEvent/markerClickEvent.
457
- */
458
- export declare function MapViewPattern({ markers, centerLat, centerLng, zoom, height, mapClickEvent, markerClickEvent, showClickedPin, className, showAttribution, }: MapViewPatternProps): React.ReactElement;
459
- export declare namespace MapViewPattern {
460
- var displayName: string;
461
- }
462
175
  export declare const COMPONENT_PATTERNS: {
463
176
  readonly button: typeof ButtonPattern;
464
177
  readonly 'icon-button': typeof IconButtonPattern;
465
178
  readonly link: typeof LinkPattern;
466
179
  readonly text: typeof TextPattern;
467
- readonly heading: typeof HeadingPattern;
468
- readonly badge: typeof BadgePattern;
469
- readonly avatar: typeof AvatarPattern;
470
- readonly icon: typeof IconPattern;
471
180
  readonly image: typeof ImagePattern;
472
- readonly card: typeof CardPattern;
473
- readonly 'progress-bar': typeof ProgressBarPattern;
474
- readonly spinner: typeof SpinnerPattern;
475
- readonly input: typeof InputPattern;
476
- readonly textarea: typeof TextareaPattern;
477
- readonly select: typeof SelectPattern;
478
- readonly checkbox: typeof CheckboxPattern;
479
- readonly radio: typeof RadioPattern;
480
181
  readonly label: typeof LabelPattern;
481
182
  readonly alert: typeof AlertPattern;
482
- readonly tooltip: typeof TooltipPattern;
483
- readonly popover: typeof PopoverPattern;
484
- readonly menu: typeof MenuPattern;
485
- readonly accordion: typeof AccordionPattern;
486
- readonly container: typeof ContainerPattern;
487
- readonly 'simple-grid': typeof SimpleGridPattern;
488
183
  readonly 'float-button': typeof FloatButtonPattern;
489
- readonly 'map-view': typeof MapViewPattern;
490
184
  };
491
185
  export {};
@@ -8,7 +8,7 @@
8
8
  * @packageDocumentation
9
9
  */
10
10
  import React from "react";
11
- import type { EventKey, EventPayload } from "@almadar/core";
11
+ import type { AssetUrl, EventKey, EventPayload } from "@almadar/core";
12
12
  import type { UiError } from "../atoms/types";
13
13
  /**
14
14
  * Allowed element types for custom patterns.
@@ -39,7 +39,7 @@ export interface CustomPatternProps {
39
39
  /** Nested children patterns */
40
40
  children?: React.ReactNode;
41
41
  /** Image source (for img elements) */
42
- src?: string;
42
+ src?: AssetUrl;
43
43
  /** Image alt text (for img elements) */
44
44
  alt?: string;
45
45
  /** Link href (for a elements) */
@@ -86,7 +86,7 @@ export interface CustomPatternConfig {
86
86
  action?: EventKey;
87
87
  payload?: EventPayload;
88
88
  children?: CustomPatternConfig[];
89
- src?: string;
89
+ src?: AssetUrl;
90
90
  alt?: string;
91
91
  href?: string;
92
92
  external?: boolean;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import type { EventKey } from "@almadar/core";
3
- import { LucideIcon } from "lucide-react";
3
+ import type { IconInput } from "../atoms/Icon";
4
4
  import { DisplayStateProps } from "./types";
5
5
  import type { EntityRow } from "@almadar/core";
6
6
  export type EntityTableLook = "dense" | "spacious" | "striped" | "borderless" | "card-rows";
@@ -17,7 +17,7 @@ export interface Column<T> {
17
17
  }
18
18
  export interface RowAction<T> {
19
19
  label: string;
20
- icon?: LucideIcon;
20
+ icon?: IconInput;
21
21
  onClick: (row: T) => void;
22
22
  variant?: "default" | "danger";
23
23
  show?: (row: T) => boolean;
@@ -43,11 +43,11 @@ export interface DataTableProps<T extends EntityRow & {
43
43
  navigatesTo?: string;
44
44
  action?: EventKey;
45
45
  placement?: "row" | "bulk" | string;
46
- icon?: LucideIcon;
46
+ icon?: IconInput;
47
47
  variant?: "default" | "primary" | "secondary" | "ghost" | "danger" | string;
48
48
  onClick?: (row: T) => void;
49
49
  }[];
50
- emptyIcon?: LucideIcon | string;
50
+ emptyIcon?: IconInput;
51
51
  emptyTitle?: string;
52
52
  emptyDescription?: string;
53
53
  emptyAction?: DataTableEmptyAction;
@@ -57,7 +57,7 @@ export interface DataTableProps<T extends EntityRow & {
57
57
  rowActions?: readonly RowAction<T>[];
58
58
  bulkActions?: ReadonlyArray<{
59
59
  label: string;
60
- icon?: LucideIcon;
60
+ icon?: IconInput;
61
61
  onClick: (selectedRows: T[]) => void;
62
62
  variant?: "default" | "danger";
63
63
  }>;
@@ -8,12 +8,12 @@
8
8
  */
9
9
  import React from "react";
10
10
  import type { EntityRow } from "@almadar/core";
11
- import type { LucideIcon } from "lucide-react";
11
+ import type { IconInput } from "../atoms/Icon";
12
12
  import type { DisplayStateProps } from "./types";
13
13
  export interface DetailField {
14
14
  label: string;
15
15
  value: React.ReactNode;
16
- icon?: LucideIcon;
16
+ icon?: IconInput;
17
17
  copyable?: boolean;
18
18
  }
19
19
  export interface DetailSection {
@@ -25,7 +25,7 @@ export interface DetailSection {
25
25
  */
26
26
  export interface DetailPanelAction {
27
27
  label: string;
28
- icon?: LucideIcon;
28
+ icon?: IconInput;
29
29
  onClick?: () => void;
30
30
  /** Event to emit via event bus */
31
31
  event?: string;
@@ -16,6 +16,7 @@ import type { EventKey, FieldValue } from "@almadar/core";
16
16
  import { type SelectOption } from "../atoms/Select";
17
17
  import { type RelationOption } from "../molecules/RelationSelect";
18
18
  import type { OrbitalEntity } from "@almadar/core";
19
+ import type { IconInput } from "../atoms/Icon";
19
20
  import { type SExpr } from "@almadar/evaluator";
20
21
  import type { UiError } from '../atoms/types';
21
22
  /**
@@ -74,8 +75,8 @@ export interface FormTabDefinition {
74
75
  id: string;
75
76
  /** Tab display label */
76
77
  label: string;
77
- /** Icon name for the tab (from Icon component) */
78
- icon?: string;
78
+ /** Icon for the tab */
79
+ icon?: IconInput;
79
80
  /** Sections within this tab */
80
81
  sections: FormSection[];
81
82
  /** Condition for showing/hiding the entire tab */
@@ -11,9 +11,7 @@
11
11
  */
12
12
  import React from 'react';
13
13
  import type { UiError } from '../atoms/types';
14
- import { type StackGap, type StackAlign, type StackJustify } from '../atoms/Stack';
15
14
  import { type BoxPadding, type BoxBg, type BoxRounded, type BoxShadow } from '../atoms/Box';
16
- import { type GridCols, type GridGap, type ResponsiveGridCols } from '../molecules/Grid';
17
15
  import { type DividerVariant, type DividerOrientation } from '../atoms/Divider';
18
16
  /**
19
17
  * Base props for all layout patterns with children support.
@@ -32,42 +30,6 @@ export interface LayoutPatternProps {
32
30
  /** Entity name */
33
31
  entity?: string;
34
32
  }
35
- export interface VStackPatternProps extends LayoutPatternProps {
36
- /** Gap between children */
37
- gap?: StackGap;
38
- /** Cross-axis alignment */
39
- align?: StackAlign;
40
- /** Main-axis alignment */
41
- justify?: StackJustify;
42
- }
43
- /**
44
- * VStack pattern component.
45
- *
46
- * Renders children in a vertical stack with configurable spacing.
47
- */
48
- export declare function VStackPattern({ gap, align, justify, className, style, children, }: VStackPatternProps): React.ReactElement;
49
- export declare namespace VStackPattern {
50
- var displayName: string;
51
- }
52
- export interface HStackPatternProps extends LayoutPatternProps {
53
- /** Gap between children */
54
- gap?: StackGap;
55
- /** Cross-axis alignment */
56
- align?: StackAlign;
57
- /** Main-axis alignment */
58
- justify?: StackJustify;
59
- /** Enable wrapping */
60
- wrap?: boolean;
61
- }
62
- /**
63
- * HStack pattern component.
64
- *
65
- * Renders children in a horizontal stack with configurable spacing.
66
- */
67
- export declare function HStackPattern({ gap, align, justify, wrap, className, style, children, }: HStackPatternProps): React.ReactElement;
68
- export declare namespace HStackPattern {
69
- var displayName: string;
70
- }
71
33
  export interface BoxPatternProps extends LayoutPatternProps {
72
34
  /** Padding shorthand */
73
35
  p?: BoxPadding;
@@ -91,38 +53,6 @@ export declare function BoxPattern({ p, m, bg, border, radius, shadow, className
91
53
  export declare namespace BoxPattern {
92
54
  var displayName: string;
93
55
  }
94
- export interface GridPatternProps extends LayoutPatternProps {
95
- /** Number of columns */
96
- cols?: GridCols | ResponsiveGridCols;
97
- /** Gap between cells */
98
- gap?: GridGap;
99
- /** Row gap override */
100
- rowGap?: GridGap;
101
- /** Column gap override */
102
- colGap?: GridGap;
103
- }
104
- /**
105
- * Grid pattern component.
106
- *
107
- * CSS Grid layout for multi-column content.
108
- */
109
- export declare function GridPattern({ cols, gap, rowGap, colGap, className, style, children, }: GridPatternProps): React.ReactElement;
110
- export declare namespace GridPattern {
111
- var displayName: string;
112
- }
113
- export interface CenterPatternProps extends LayoutPatternProps {
114
- /** Minimum height */
115
- minHeight?: string;
116
- }
117
- /**
118
- * Center pattern component.
119
- *
120
- * Centers content horizontally and vertically.
121
- */
122
- export declare function CenterPattern({ minHeight, className, style, children, }: CenterPatternProps): React.ReactElement;
123
- export declare namespace CenterPattern {
124
- var displayName: string;
125
- }
126
56
  export interface SpacerPatternProps {
127
57
  /** Size or 'flex' for flexible */
128
58
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'flex';
@@ -172,11 +102,7 @@ export declare namespace DividerPattern {
172
102
  var displayName: string;
173
103
  }
174
104
  export declare const LAYOUT_PATTERNS: {
175
- readonly vstack: typeof VStackPattern;
176
- readonly hstack: typeof HStackPattern;
177
105
  readonly box: typeof BoxPattern;
178
- readonly grid: typeof GridPattern;
179
- readonly center: typeof CenterPattern;
180
106
  readonly spacer: typeof SpacerPattern;
181
107
  readonly divider: typeof DividerPattern;
182
108
  };
@@ -17,8 +17,8 @@
17
17
  * - No internal search/filter state — trait provides filtered data
18
18
  */
19
19
  import React from "react";
20
- import type { EventKey } from "@almadar/core";
21
- import type { LucideIcon } from "lucide-react";
20
+ import type { AssetUrl, EventKey } from "@almadar/core";
21
+ import type { IconInput } from "../atoms/Icon";
22
22
  import { type MenuItem } from "../molecules/Menu";
23
23
  import type { DisplayStateProps } from "./types";
24
24
  import type { EntityRow } from "@almadar/core";
@@ -26,9 +26,9 @@ export type ListItem = {
26
26
  id: string;
27
27
  title?: string;
28
28
  description?: string;
29
- icon?: LucideIcon;
29
+ icon?: IconInput;
30
30
  avatar?: {
31
- src?: string;
31
+ src?: AssetUrl;
32
32
  alt?: string;
33
33
  initials?: string;
34
34
  };
@@ -11,18 +11,18 @@
11
11
  * - className for external styling
12
12
  */
13
13
  import React from "react";
14
- import type { EventEmit } from "@almadar/core";
14
+ import type { AssetUrl, EventEmit } from "@almadar/core";
15
15
  import type { DisplayStateProps } from "./types";
16
16
  import type { EntityRow } from "@almadar/core";
17
17
  export type MediaItem = EntityRow & {
18
18
  /** Unique identifier */
19
19
  id: string;
20
20
  /** Media URL */
21
- src: string;
21
+ src: AssetUrl;
22
22
  /** Alt text */
23
23
  alt?: string;
24
24
  /** Thumbnail URL (defaults to src) */
25
- thumbnail?: string;
25
+ thumbnail?: AssetUrl;
26
26
  /** Media type */
27
27
  mediaType?: "image" | "video";
28
28
  /** Caption */