@almadar/ui 5.26.2 → 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 -2958
  2. package/dist/avl/index.js +1584 -1925
  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 -3004
  80. package/dist/components/index.js +1785 -2126
  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 -2785
  97. package/dist/providers/index.js +1562 -1903
  98. package/dist/runtime/index.cjs +2482 -2823
  99. package/dist/runtime/index.js +1564 -1905
  100. package/package.json +2 -2
@@ -3976,7 +3976,7 @@ var Badge = React8__default.default.forwardRef(
3976
3976
  md: "h-icon-default w-icon-default",
3977
3977
  lg: "h-icon-default w-icon-default"
3978
3978
  };
3979
- const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, className: iconSizes[size] }) : icon;
3979
+ const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, className: iconSizes[size] }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, className: iconSizes[size] }) : null;
3980
3980
  return /* @__PURE__ */ jsxRuntime.jsxs(
3981
3981
  "span",
3982
3982
  {
@@ -4079,8 +4079,15 @@ var Card = React8__default.default.forwardRef(
4079
4079
  shadow,
4080
4080
  look = "elevated",
4081
4081
  children,
4082
+ action,
4083
+ onClick,
4082
4084
  ...props
4083
4085
  }, ref) => {
4086
+ const eventBus = useEventBus();
4087
+ const handleClick = action ? (e) => {
4088
+ eventBus.emit(`UI:${action}`, {});
4089
+ onClick?.(e);
4090
+ } : onClick;
4084
4091
  return /* @__PURE__ */ jsxRuntime.jsxs(
4085
4092
  "div",
4086
4093
  {
@@ -4094,6 +4101,7 @@ var Card = React8__default.default.forwardRef(
4094
4101
  shadow && shadowStyles2[shadow],
4095
4102
  className
4096
4103
  ),
4104
+ onClick: handleClick,
4097
4105
  ...props,
4098
4106
  children: [
4099
4107
  (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
@@ -4594,17 +4602,15 @@ var FeatureCard = ({
4594
4602
  }) => {
4595
4603
  const renderIcon = () => {
4596
4604
  if (!icon) return null;
4597
- if (typeof icon === "string") {
4598
- return /* @__PURE__ */ jsxRuntime.jsx(
4599
- Icon,
4600
- {
4601
- name: icon,
4602
- size: iconSizeMap[size],
4603
- className: "text-accent"
4604
- }
4605
- );
4606
- }
4607
- return icon;
4605
+ return /* @__PURE__ */ jsxRuntime.jsx(
4606
+ Icon,
4607
+ {
4608
+ icon: typeof icon === "string" ? void 0 : icon,
4609
+ name: typeof icon === "string" ? icon : void 0,
4610
+ size: iconSizeMap[size],
4611
+ className: "text-accent"
4612
+ }
4613
+ );
4608
4614
  };
4609
4615
  const handleLinkClick = () => {
4610
4616
  if (href) {
@@ -4846,7 +4852,15 @@ var StepCircle = ({ step, index }) => {
4846
4852
  "flex items-center justify-center",
4847
4853
  "bg-primary text-primary-foreground"
4848
4854
  ),
4849
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: step.icon, size: "sm", className: "text-primary-foreground" })
4855
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4856
+ Icon,
4857
+ {
4858
+ icon: typeof step.icon === "string" ? void 0 : step.icon,
4859
+ name: typeof step.icon === "string" ? step.icon : void 0,
4860
+ size: "sm",
4861
+ className: "text-primary-foreground"
4862
+ }
4863
+ )
4850
4864
  }
4851
4865
  );
4852
4866
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { EventKey, EventPayload } from '@almadar/core';
2
+ import { EventKey, EventPayload, AssetUrl } from '@almadar/core';
3
3
  import { LucideIcon } from 'lucide-react';
4
4
 
5
5
  /**
@@ -167,61 +167,10 @@ interface TypographyProps {
167
167
  }
168
168
  declare const Typography: React.FC<TypographyProps>;
169
169
 
170
- type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default";
171
- type ButtonSize = "sm" | "md" | "lg";
172
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
173
- /** Additional CSS classes applied to the root element. */
174
- className?: string;
175
- variant?: ButtonVariant;
176
- size?: ButtonSize;
177
- isLoading?: boolean;
178
- /** Left icon as ReactNode, Lucide component, or string name (e.g. "plus", "trash") */
179
- leftIcon?: React.ReactNode | LucideIcon | string;
180
- /** Right icon as ReactNode, Lucide component, or string name */
181
- rightIcon?: React.ReactNode | LucideIcon | string;
182
- /** Alias for leftIcon */
183
- icon?: React.ReactNode | LucideIcon | string;
184
- /** Alias for rightIcon */
185
- iconRight?: React.ReactNode | LucideIcon | string;
186
- /** Declarative event name — emits UI:{action} via eventBus on click */
187
- action?: EventKey;
188
- /** Payload to include with the action event */
189
- actionPayload?: EventPayload;
190
- /** Button label text (alternative to children for schema-driven rendering) */
191
- label?: string;
192
- /** Disable the button (greys out, blocks click events) */
193
- disabled?: boolean;
194
- }
195
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
196
-
197
- type BadgeVariant = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral";
198
- type BadgeSize = "sm" | "md" | "lg";
199
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
200
- /** Additional CSS classes applied to the root element. */
201
- className?: string;
202
- variant?: BadgeVariant;
203
- size?: BadgeSize;
204
- /** Numeric count or amount to display in badge */
205
- amount?: number;
206
- /** Badge label text (alternative to children for schema-driven rendering).
207
- * Numeric values are auto-coerced to string for rendering — common case
208
- * is unread counts, error counts, status codes, etc. */
209
- label?: string | number;
210
- /** Icon name (Lucide icon string) or React node */
211
- icon?: React.ReactNode;
212
- /** When set, renders a small X button on the right of the badge that
213
- * invokes this handler — turns the badge into a removable chip.
214
- * Used by the TagInput molecule and other "list of removable values"
215
- * surfaces. */
216
- onRemove?: () => void;
217
- /** Accessible label for the remove button. Defaults to "Remove". */
218
- removeLabel?: string;
219
- }
220
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
221
-
222
170
  /**
223
171
  * Cross-cutting atom-level prop shapes shared across the design system.
224
172
  */
173
+
225
174
  /**
226
175
  * Canonical semantic color palette. Values are the Tailwind / CSS-var token
227
176
  * names that every component in the design system understands. Prefer this
@@ -238,7 +187,7 @@ type LinkAction = {
238
187
  };
239
188
  /** An image with its required alt text. */
240
189
  type ImageSource = {
241
- src: string;
190
+ src: AssetUrl;
242
191
  alt: string;
243
192
  };
244
193
 
@@ -259,13 +208,22 @@ type ImageSource = {
259
208
  type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
260
209
  type IconAnimation = 'spin' | 'pulse' | 'none';
261
210
 
211
+ /**
212
+ * Canonical icon-input type: a Lucide component reference OR a canonical
213
+ * kebab-case icon name string. The single source of truth for every
214
+ * icon-bearing prop across `@almadar/ui` — pattern-sync's parser maps this
215
+ * union to the `icon` config type, so the factory inspector renders an
216
+ * IconPicker and a string name resolves via `resolveIcon`. Never declare an
217
+ * icon prop as `React.ReactNode` (it collapses to a non-editable `node`).
218
+ */
219
+ type IconInput = LucideIcon | string;
262
220
  interface IconProps {
263
221
  /**
264
222
  * Lucide icon component (preferred for type-safe usage), OR a canonical
265
223
  * kebab-case icon name string — a string is treated exactly like `name` so
266
224
  * trait/factory authors can pass an icon by name through the `icon` prop.
267
225
  */
268
- icon?: LucideIcon | string;
226
+ icon?: IconInput;
269
227
  /** Icon name as string (resolved from iconMap) */
270
228
  name?: string;
271
229
  /** Size of the icon */
@@ -283,6 +241,58 @@ interface IconProps {
283
241
  }
284
242
  declare const Icon: React.FC<IconProps>;
285
243
 
244
+ type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default";
245
+ type ButtonSize = "sm" | "md" | "lg";
246
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
247
+ /** Additional CSS classes applied to the root element. */
248
+ className?: string;
249
+ variant?: ButtonVariant;
250
+ size?: ButtonSize;
251
+ isLoading?: boolean;
252
+ /** Left icon: a Lucide component or a canonical icon name string (e.g. "plus", "trash"). */
253
+ leftIcon?: IconInput;
254
+ /** Right icon: a Lucide component or a canonical icon name string. */
255
+ rightIcon?: IconInput;
256
+ /** Alias for leftIcon */
257
+ icon?: IconInput;
258
+ /** Alias for rightIcon */
259
+ iconRight?: IconInput;
260
+ /** Declarative event name — emits UI:{action} via eventBus on click */
261
+ action?: EventKey;
262
+ /** Payload to include with the action event */
263
+ actionPayload?: EventPayload;
264
+ /** Button label text (alternative to children for schema-driven rendering) */
265
+ label?: string;
266
+ /** Disable the button (greys out, blocks click events) */
267
+ disabled?: boolean;
268
+ }
269
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
270
+
271
+ type BadgeVariant = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral";
272
+ type BadgeSize = "sm" | "md" | "lg";
273
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
274
+ /** Additional CSS classes applied to the root element. */
275
+ className?: string;
276
+ variant?: BadgeVariant;
277
+ size?: BadgeSize;
278
+ /** Numeric count or amount to display in badge */
279
+ amount?: number;
280
+ /** Badge label text (alternative to children for schema-driven rendering).
281
+ * Numeric values are auto-coerced to string for rendering — common case
282
+ * is unread counts, error counts, status codes, etc. */
283
+ label?: string | number;
284
+ /** Lucide icon component or canonical kebab-case icon name string */
285
+ icon?: IconInput;
286
+ /** When set, renders a small X button on the right of the badge that
287
+ * invokes this handler — turns the badge into a removable chip.
288
+ * Used by the TagInput molecule and other "list of removable values"
289
+ * surfaces. */
290
+ onRemove?: () => void;
291
+ /** Accessible label for the remove button. Defaults to "Remove". */
292
+ removeLabel?: string;
293
+ }
294
+ declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
295
+
286
296
  type CardShadow = "none" | "sm" | "md" | "lg";
287
297
  /**
288
298
  * Layer 2 visual treatment for the card pattern — orthogonal to the semantic
@@ -304,6 +314,8 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
304
314
  look?: CardLook;
305
315
  /** Card content */
306
316
  children?: React.ReactNode;
317
+ /** Declarative event key emitted on click for trait dispatch */
318
+ action?: EventKey;
307
319
  }
308
320
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
309
321
 
@@ -473,8 +485,7 @@ declare const CTABanner: React.FC<CTABannerProps>;
473
485
  */
474
486
 
475
487
  interface FeatureCardProps {
476
- /** Icon name (Lucide string) or ReactNode */
477
- icon?: string | React.ReactNode;
488
+ icon?: IconInput;
478
489
  /** Feature title */
479
490
  title: string;
480
491
  /** Feature description */
@@ -590,7 +601,7 @@ interface StepItemProps {
590
601
  number?: number;
591
602
  title: string;
592
603
  description: string;
593
- icon?: string;
604
+ icon?: IconInput;
594
605
  }
595
606
  interface StepFlowProps {
596
607
  steps: StepItemProps[];
@@ -717,7 +728,7 @@ interface TeamCardProps {
717
728
  nameAr?: string;
718
729
  role: string;
719
730
  bio: string;
720
- avatar?: string | {
731
+ avatar?: AssetUrl | {
721
732
  initials: string;
722
733
  };
723
734
  className?: string;
@@ -812,7 +823,7 @@ interface FooterLinkColumn {
812
823
  items: FooterLinkItem[];
813
824
  }
814
825
  interface FooterLogo {
815
- src: string;
826
+ src: AssetUrl;
816
827
  alt: string;
817
828
  href?: string;
818
829
  }
@@ -904,7 +915,7 @@ interface AnimatedGraphicProps extends React.HTMLAttributes<HTMLDivElement> {
904
915
  /** Additional CSS classes applied to the root element. */
905
916
  className?: string;
906
917
  /** URL to an SVG file. Fetched and inlined to enable stroke/fill animations. */
907
- src?: string;
918
+ src?: AssetUrl;
908
919
  /** Inline SVG string. Takes precedence over src if both provided. */
909
920
  svgContent?: string;
910
921
  /** Animation type applied to SVG paths/shapes */
@@ -3949,7 +3949,7 @@ var Badge = React8.forwardRef(
3949
3949
  md: "h-icon-default w-icon-default",
3950
3950
  lg: "h-icon-default w-icon-default"
3951
3951
  };
3952
- const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon;
3952
+ const resolvedIcon = typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon, className: iconSizes[size] }) : icon ? /* @__PURE__ */ jsx(Icon, { icon, className: iconSizes[size] }) : null;
3953
3953
  return /* @__PURE__ */ jsxs(
3954
3954
  "span",
3955
3955
  {
@@ -4052,8 +4052,15 @@ var Card = React8.forwardRef(
4052
4052
  shadow,
4053
4053
  look = "elevated",
4054
4054
  children,
4055
+ action,
4056
+ onClick,
4055
4057
  ...props
4056
4058
  }, ref) => {
4059
+ const eventBus = useEventBus();
4060
+ const handleClick = action ? (e) => {
4061
+ eventBus.emit(`UI:${action}`, {});
4062
+ onClick?.(e);
4063
+ } : onClick;
4057
4064
  return /* @__PURE__ */ jsxs(
4058
4065
  "div",
4059
4066
  {
@@ -4067,6 +4074,7 @@ var Card = React8.forwardRef(
4067
4074
  shadow && shadowStyles2[shadow],
4068
4075
  className
4069
4076
  ),
4077
+ onClick: handleClick,
4070
4078
  ...props,
4071
4079
  children: [
4072
4080
  (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
@@ -4567,17 +4575,15 @@ var FeatureCard = ({
4567
4575
  }) => {
4568
4576
  const renderIcon = () => {
4569
4577
  if (!icon) return null;
4570
- if (typeof icon === "string") {
4571
- return /* @__PURE__ */ jsx(
4572
- Icon,
4573
- {
4574
- name: icon,
4575
- size: iconSizeMap[size],
4576
- className: "text-accent"
4577
- }
4578
- );
4579
- }
4580
- return icon;
4578
+ return /* @__PURE__ */ jsx(
4579
+ Icon,
4580
+ {
4581
+ icon: typeof icon === "string" ? void 0 : icon,
4582
+ name: typeof icon === "string" ? icon : void 0,
4583
+ size: iconSizeMap[size],
4584
+ className: "text-accent"
4585
+ }
4586
+ );
4581
4587
  };
4582
4588
  const handleLinkClick = () => {
4583
4589
  if (href) {
@@ -4819,7 +4825,15 @@ var StepCircle = ({ step, index }) => {
4819
4825
  "flex items-center justify-center",
4820
4826
  "bg-primary text-primary-foreground"
4821
4827
  ),
4822
- children: /* @__PURE__ */ jsx(Icon, { name: step.icon, size: "sm", className: "text-primary-foreground" })
4828
+ children: /* @__PURE__ */ jsx(
4829
+ Icon,
4830
+ {
4831
+ icon: typeof step.icon === "string" ? void 0 : step.icon,
4832
+ name: typeof step.icon === "string" ? step.icon : void 0,
4833
+ size: "sm",
4834
+ className: "text-primary-foreground"
4835
+ }
4836
+ )
4823
4837
  }
4824
4838
  );
4825
4839
  }