@almadar/ui 6.51.2 → 6.52.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 (121) hide show
  1. package/dist/{Canvas3DHost-CLC_jXh_.d.ts → Canvas3DHost-CWO0tswb.d.ts} +1 -1
  2. package/dist/{FileTree-RKQqRhIM.d.ts → FileTree-DUi7e7Z8.d.ts} +5 -5
  3. package/dist/{GameAudioProvider-BgWLggIy.d.ts → GameAudioProvider-_hPzjqp-.d.ts} +1 -1
  4. package/dist/{NavStackContext-B-XLULCO.d.ts → NavStackContext-04NLdXsY.d.ts} +8 -0
  5. package/dist/Typography-7FRZOS2H.js +5 -0
  6. package/dist/{UISlotContext-DNM8iXna.d.ts → UISlotContext-CS487Uoc.d.ts} +1 -1
  7. package/dist/{UISlotRenderer-7UYHFW4S.js → UISlotRenderer-CR7SCAMR.js} +8 -8
  8. package/dist/avl/index.cjs +3401 -1590
  9. package/dist/avl/index.d.ts +4 -4
  10. package/dist/avl/index.js +26 -23
  11. package/dist/{chunk-6CFYRP4S.js → chunk-2QB2PXOO.js} +1 -3
  12. package/dist/{chunk-R4V7IZQP.js → chunk-5GCI6C7J.js} +2 -2
  13. package/dist/{chunk-BUEIZY54.js → chunk-BHZG4PDZ.js} +420 -422
  14. package/dist/{chunk-MWPX2O4M.js → chunk-CLSLVFSP.js} +3 -16
  15. package/dist/{chunk-GIPZSCND.js → chunk-EERAGPBW.js} +3078 -1832
  16. package/dist/{chunk-OLZ3EEML.js → chunk-G4GMXYMY.js} +109 -15
  17. package/dist/{chunk-HQDKHLFG.js → chunk-IN3BVW2Z.js} +15 -1
  18. package/dist/{chunk-FGHRVJCI.js → chunk-MSBMVG3B.js} +12 -2
  19. package/dist/{chunk-YKHNK5JH.js → chunk-NCNP2RKZ.js} +11 -4
  20. package/dist/{chunk-T7IH5ABO.js → chunk-QWDKMVLX.js} +69 -17
  21. package/dist/{chunk-NTO555KF.js → chunk-TWHYH25Q.js} +136 -15
  22. package/dist/{chunk-GHXWGQTX.js → chunk-V5AGW2JN.js} +1 -1
  23. package/dist/{chunk-L55SAFKL.js → chunk-WB2A6V3I.js} +31 -1
  24. package/dist/{chunk-JXUYEO7U.js → chunk-XUSSAWKL.js} +7 -1
  25. package/dist/{cn-CO-0rolG.d.ts → cn-ClXGlIOY.d.ts} +2 -2
  26. package/dist/components/index.cjs +4933 -3165
  27. package/dist/components/index.d.ts +499 -416
  28. package/dist/components/index.js +11 -11
  29. package/dist/context/index.cjs +12 -4
  30. package/dist/context/index.d.ts +3 -3
  31. package/dist/context/index.js +2 -2
  32. package/dist/hooks/index.cjs +73 -6
  33. package/dist/hooks/index.d.ts +32 -7
  34. package/dist/hooks/index.js +6 -6
  35. package/dist/lib/drawable/three/index.cjs +33 -2
  36. package/dist/lib/drawable/three/index.d.ts +5 -5
  37. package/dist/lib/drawable/three/index.js +7 -7
  38. package/dist/lib/index.cjs +69 -2
  39. package/dist/lib/index.d.ts +29 -6
  40. package/dist/lib/index.js +5 -5
  41. package/dist/locales/index.cjs +93 -3
  42. package/dist/locales/index.js +63 -3
  43. package/dist/{paintDispatch-CMgOyVjS.d.ts → paintDispatch-DHo3WhaU.d.ts} +4 -4
  44. package/dist/providers/index.cjs +3392 -1607
  45. package/dist/providers/index.d.ts +6 -6
  46. package/dist/providers/index.js +55 -16
  47. package/dist/runtime/index.cjs +3417 -1611
  48. package/dist/runtime/index.d.ts +2 -2
  49. package/dist/runtime/index.js +10 -10
  50. package/dist/ssr/index.cjs +306 -141
  51. package/dist/ssr/index.d.cts +32 -44
  52. package/dist/ssr/index.d.ts +32 -44
  53. package/dist/ssr/index.js +249 -84
  54. package/dist/{themeTokens-CN9WCXQc.d.ts → themeTokens-Ccu7EmGY.d.ts} +4 -2
  55. package/dist/{useUISlots-CwUWM1ra.d.ts → useUISlots-1dk2TR4j.d.ts} +1 -9
  56. package/dist/{verificationRegistry-DBHfOR9y.d.ts → verificationRegistry-BYD3cVhS.d.ts} +1 -1
  57. package/locales/ar.json +31 -1
  58. package/locales/en.json +31 -1
  59. package/locales/sl.json +31 -1
  60. package/package.json +12 -9
  61. package/tailwind-preset.cjs +24 -1
  62. package/themes/_base.css +86 -0
  63. package/themes/_contract.md +1 -0
  64. package/themes/almadar-website.css +2 -0
  65. package/themes/almadar.css +2 -0
  66. package/themes/aqua.css +5 -3
  67. package/themes/arabesque.css +9 -7
  68. package/themes/art-deco.css +5 -3
  69. package/themes/art-nouveau.css +4 -0
  70. package/themes/atelier.css +10 -8
  71. package/themes/bauhaus.css +2 -0
  72. package/themes/bloomberg-dense.css +13 -11
  73. package/themes/blueprint.css +2 -0
  74. package/themes/clay.css +2 -0
  75. package/themes/comic.css +12 -10
  76. package/themes/constructivist.css +2 -0
  77. package/themes/corporate.css +4 -2
  78. package/themes/cyberpunk.css +2 -0
  79. package/themes/frutiger-aero.css +2 -0
  80. package/themes/game-adventure.css +1 -0
  81. package/themes/game-rpg.css +1 -0
  82. package/themes/game-sci-fi.css +1 -0
  83. package/themes/game-ui-pack.css +1 -0
  84. package/themes/gazette.css +10 -8
  85. package/themes/glass.css +17 -15
  86. package/themes/gothic.css +2 -0
  87. package/themes/ink-wash.css +2 -0
  88. package/themes/kawaii.css +2 -0
  89. package/themes/kiosk.css +17 -15
  90. package/themes/linear-clean.css +12 -10
  91. package/themes/luxury.css +2 -0
  92. package/themes/mac-classic.css +2 -0
  93. package/themes/material.css +2 -0
  94. package/themes/memphis.css +2 -0
  95. package/themes/mid-century.css +2 -0
  96. package/themes/minimalist.css +2 -0
  97. package/themes/mudcloth.css +2 -0
  98. package/themes/neon.css +2 -0
  99. package/themes/neumorphic.css +2 -0
  100. package/themes/newsprint.css +2 -0
  101. package/themes/notion-editorial.css +12 -10
  102. package/themes/pixel.css +2 -0
  103. package/themes/prism.css +20 -18
  104. package/themes/retro.css +2 -0
  105. package/themes/risograph.css +2 -0
  106. package/themes/scandi.css +2 -0
  107. package/themes/sketch.css +2 -0
  108. package/themes/solarpunk.css +2 -0
  109. package/themes/steampunk.css +2 -0
  110. package/themes/swiss.css +2 -0
  111. package/themes/terminal.css +8 -6
  112. package/themes/trait-wars.css +2 -0
  113. package/themes/ukiyo-e.css +2 -0
  114. package/themes/vaporwave.css +2 -0
  115. package/themes/victorian.css +2 -0
  116. package/themes/wabi-sabi.css +2 -0
  117. package/themes/win95.css +2 -0
  118. package/themes/wireframe.css +2 -0
  119. package/themes/zine.css +2 -0
  120. package/dist/Typography-2Z3JKWHN.js +0 -5
  121. package/dist/{avl-3d-context-MAt_NuU9.d.ts → avl-3d-context-DLteNEwu.d.ts} +3 -3
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { EventKey, EventPayload, EventEmit, Asset, AssetUrl } from '@almadar/core';
2
+ import { A11yProps, EventKey, EventPayload, EventEmit, Asset, AssetUrl } from '@almadar/core';
3
3
  import { LucideIcon } from 'lucide-react';
4
4
 
5
5
  /**
@@ -14,13 +14,11 @@ type BoxMargin = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "auto";
14
14
  type BoxBg = "transparent" | "primary" | "secondary" | "muted" | "accent" | "surface" | "overlay";
15
15
  type BoxRounded = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
16
16
  type BoxShadow = "none" | "sm" | "md" | "lg" | "xl";
17
- interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ interface BoxProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
18
18
  /** Additional CSS classes applied to the root element. */
19
19
  className?: string;
20
20
  /** Data-theme attribute applied to the root element for CSS theme scoping (e.g. almadar-website-dark). */
21
21
  'data-theme'?: string;
22
- /** Text direction for this subtree: "ltr", "rtl" (Arabic/Hebrew content) or "auto" */
23
- dir?: string;
24
22
  /**
25
23
  * Padding on all sides
26
24
  * @example md
@@ -92,7 +90,7 @@ type StackDirection = "horizontal" | "vertical";
92
90
  type StackGap = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
93
91
  type StackAlign = "start" | "center" | "end" | "stretch" | "baseline";
94
92
  type StackJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
95
- interface StackProps extends React.AriaAttributes {
93
+ interface StackProps extends Omit<React.AriaAttributes, keyof A11yProps>, A11yProps {
96
94
  /** Stack direction */
97
95
  direction?: StackDirection;
98
96
  /** Gap between children */
@@ -119,12 +117,8 @@ interface StackProps extends React.AriaAttributes {
119
117
  onClick?: (e: React.MouseEvent) => void;
120
118
  /** Keyboard handler */
121
119
  onKeyDown?: (e: React.KeyboardEvent) => void;
122
- /** Role for accessibility */
123
- role?: string;
124
120
  /** Element id */
125
121
  id?: string;
126
- /** Tab index for focus management */
127
- tabIndex?: number;
128
122
  /** Declarative event name — emits UI:{action} via eventBus on click */
129
123
  action?: EventKey;
130
124
  /** Payload to include with the action event
@@ -156,7 +150,7 @@ declare const HStack: React.FC<HStackProps>;
156
150
  type TypographyVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "heading" | "subheading" | "body1" | "body2" | "body" | "caption" | "overline" | "small" | "large" | "label";
157
151
  /** `none` = no size override — the variant's baked size applies. */
158
152
  type TypographySize = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
159
- interface TypographyProps extends React.AriaAttributes {
153
+ interface TypographyProps extends Omit<React.AriaAttributes, keyof A11yProps>, A11yProps {
160
154
  /** Typography variant */
161
155
  variant?: TypographyVariant;
162
156
  /** Heading level (1-6) - alternative to variant for headings */
@@ -181,8 +175,6 @@ interface TypographyProps extends React.AriaAttributes {
181
175
  className?: string;
182
176
  /** Inline style */
183
177
  style?: React.CSSProperties;
184
- /** Accessibility role */
185
- role?: string;
186
178
  /**
187
179
  * Value formatting applied to string/number/Date content — `none` (the
188
180
  * default) renders content as-is. Covers the raw-ISO-date class: a bound
@@ -198,7 +190,7 @@ declare const Typography: React.FC<TypographyProps>;
198
190
 
199
191
  type BadgeVariant = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral";
200
192
  type BadgeSize = "sm" | "md" | "lg";
201
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
193
+ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, keyof A11yProps>, A11yProps {
202
194
  /** Additional CSS classes applied to the root element. */
203
195
  className?: string;
204
196
  variant?: BadgeVariant;
@@ -273,7 +265,7 @@ type IconAnimation = 'spin' | 'pulse' | 'none';
273
265
  * icon prop as `React.ReactNode` (it collapses to a non-editable `node`).
274
266
  */
275
267
  type IconInput = LucideIcon | string;
276
- interface IconProps {
268
+ interface IconProps extends A11yProps {
277
269
  /**
278
270
  * Lucide icon component (preferred for type-safe usage), OR a canonical
279
271
  * kebab-case icon name string — a string is treated exactly like `name` so
@@ -299,7 +291,8 @@ declare const Icon: React.FC<IconProps>;
299
291
 
300
292
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link";
301
293
  type ButtonSize = "sm" | "md" | "lg";
302
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
294
+ /** @accessibleName label */
295
+ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps>, A11yProps {
303
296
  /** Additional CSS classes applied to the root element. */
304
297
  className?: string;
305
298
  variant?: ButtonVariant;
@@ -341,7 +334,7 @@ type CardShadow = "none" | "sm" | "md" | "lg";
341
334
  * `variant` (which conveys role / state).
342
335
  */
343
336
  type CardLook = "elevated" | "flat-bordered" | "borderless-divider" | "ticket" | "invoice" | "chip" | "tile-image-first";
344
- interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
337
+ interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
345
338
  /** Additional CSS classes applied to the root element. */
346
339
  className?: string;
347
340
  variant?: "default" | "bordered" | "elevated" | "interactive";
@@ -371,7 +364,7 @@ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttribu
371
364
 
372
365
  type DividerOrientation = "horizontal" | "vertical";
373
366
  type DividerVariant = "solid" | "dashed" | "dotted";
374
- interface DividerProps {
367
+ interface DividerProps extends A11yProps {
375
368
  /**
376
369
  * Orientation of the divider
377
370
  * @default 'horizontal'
@@ -393,13 +386,7 @@ interface DividerProps {
393
386
  }
394
387
  declare const Divider: React.FC<DividerProps>;
395
388
 
396
- /**
397
- * Center Component
398
- *
399
- * A layout utility that centers its children horizontally and/or vertically.
400
- */
401
-
402
- interface CenterProps {
389
+ interface CenterProps extends A11yProps {
403
390
  /** Center inline (width fits content) vs block (full width) */
404
391
  inline?: boolean;
405
392
  /** Center only horizontally */
@@ -434,7 +421,7 @@ declare const Center: React.FC<CenterProps>;
434
421
  */
435
422
 
436
423
  type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'auto';
437
- interface SpacerProps {
424
+ interface SpacerProps extends A11yProps {
438
425
  /** Fixed size (auto = flex grow) */
439
426
  size?: SpacerSize;
440
427
  /** Orientation (for fixed sizes) */
@@ -451,15 +438,10 @@ interface SpacerProps {
451
438
  */
452
439
  declare const Spacer: React.FC<SpacerProps>;
453
440
 
454
- /**
455
- * Avatar Atom Component
456
- *
457
- * A versatile avatar component supporting images, initials, icons, and status indicators.
458
- */
459
-
460
441
  type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
461
442
  type AvatarStatus = "online" | "offline" | "away" | "busy";
462
- interface AvatarProps {
443
+ /** @accessibleName alt name */
444
+ interface AvatarProps extends A11yProps {
463
445
  /**
464
446
  * Image source URL
465
447
  */
@@ -516,7 +498,8 @@ declare const Avatar: React.FC<AvatarProps>;
516
498
  type ImageFit = 'cover' | 'contain' | 'fill' | 'none';
517
499
  type ImageAspect = 'auto' | '1/1' | '4/3' | '3/2' | '16/9' | '21/9';
518
500
  type ImageRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
519
- interface ImageProps {
501
+ /** @accessibleName alt */
502
+ interface ImageProps extends A11yProps {
520
503
  /** Image source URL */
521
504
  src: AssetUrl;
522
505
  /** Alternative text; empty string marks the image decorative */
@@ -536,7 +519,7 @@ interface ImageProps {
536
519
  }
537
520
  declare const Image: React.FC<ImageProps>;
538
521
 
539
- interface SectionHeaderProps {
522
+ interface SectionHeaderProps extends A11yProps {
540
523
  /** Section title text */
541
524
  title: string;
542
525
  /** Optional subtitle text */
@@ -563,7 +546,7 @@ declare const SectionHeader: React.FC<SectionHeaderProps>;
563
546
  *
564
547
  * @capabilities feature highlight, benefit callout, product capability card, feature-grid tile
565
548
  */
566
- interface FeatureCardProps {
549
+ interface FeatureCardProps extends A11yProps {
567
550
  icon?: IconInput;
568
551
  /** Feature title */
569
552
  title: string;
@@ -589,7 +572,7 @@ declare const FeatureCard: React.FC<FeatureCardProps>;
589
572
  * Composes SimpleGrid and FeatureCard molecules.
590
573
  */
591
574
 
592
- interface FeatureGridProps {
575
+ interface FeatureGridProps extends A11yProps {
593
576
  /** Array of feature card configurations */
594
577
  items: FeatureCardProps[];
595
578
  /** Number of grid columns */
@@ -609,7 +592,7 @@ declare const FeatureGrid: React.FC<FeatureGridProps>;
609
592
  */
610
593
 
611
594
  type SimpleGridGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
612
- interface SimpleGridProps {
595
+ interface SimpleGridProps extends A11yProps {
613
596
  /** Minimum width of each child (e.g., 200, "200px", "15rem") */
614
597
  minChildWidth?: number | string;
615
598
  /** Maximum number of columns */
@@ -622,6 +605,10 @@ interface SimpleGridProps {
622
605
  className?: string;
623
606
  /** Children elements */
624
607
  children: React.ReactNode;
608
+ /** Element id forwarded to the grid element. */
609
+ id?: string;
610
+ /** DOM attributes forwarded to the grid element (aria-*, data-*, role, id). */
611
+ [attr: `aria-${string}` | `data-${string}`]: string | number | boolean | undefined;
625
612
  }
626
613
  /**
627
614
  * SimpleGrid - Auto-responsive grid layout
@@ -637,7 +624,7 @@ declare const SimpleGrid: React.FC<SimpleGridProps>;
637
624
 
638
625
  type ContainerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
639
626
  type ContainerPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
640
- interface ContainerProps {
627
+ interface ContainerProps extends A11yProps {
641
628
  /** Maximum width */
642
629
  size?: ContainerSize;
643
630
  /** Alias for size (pattern compatibility) */
@@ -682,7 +669,7 @@ declare const Container: React.FC<ContainerProps>;
682
669
  */
683
670
 
684
671
  type PatternVariant = 'star8' | 'star6' | 'khatam' | 'star10' | 'star12' | 'rosette-double' | 'rosette-filled' | 'seigaiha' | 'greek-key' | 'celtic-knot' | 'kolam' | 'arch' | 'arabesque-vine' | 'arabesque-net';
685
- interface PatternTileProps {
672
+ interface PatternTileProps extends A11yProps {
686
673
  /** Which geometric pattern to render */
687
674
  variant?: PatternVariant;
688
675
  /** Tile unit size in SVG units */
@@ -702,7 +689,7 @@ declare function getTileDimensions(variant: PatternVariant, size: number): {
702
689
 
703
690
  type RevealTrigger = 'scroll' | 'hover' | 'manual';
704
691
  type RevealAnimation = 'fade-up' | 'fade-down' | 'fade-in' | 'fade-left' | 'fade-right' | 'scale' | 'scale-up' | 'none';
705
- interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
692
+ interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | keyof A11yProps>, A11yProps {
706
693
  /** Additional CSS classes applied to the root element. */
707
694
  className?: string;
708
695
  /** What triggers the animation */
@@ -727,7 +714,8 @@ interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
727
714
  declare const AnimatedReveal: React.ForwardRefExoticComponent<AnimatedRevealProps & React.RefAttributes<HTMLDivElement>>;
728
715
 
729
716
  type GraphicAnimation = 'draw' | 'fill' | 'pulse' | 'morph';
730
- interface AnimatedGraphicProps extends React.HTMLAttributes<HTMLDivElement> {
717
+ /** @accessibleName alt */
718
+ interface AnimatedGraphicProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
731
719
  /** Additional CSS classes applied to the root element. */
732
720
  className?: string;
733
721
  /** URL to an SVG file. Fetched and inlined to enable stroke/fill animations. */
@@ -766,7 +754,7 @@ declare const AnimatedGraphic: React.ForwardRefExoticComponent<AnimatedGraphicPr
766
754
  */
767
755
 
768
756
  type StatDisplayLook = 'elevated' | 'flat' | 'progress-backed' | 'gauge' | 'sparkline';
769
- interface StatDisplayProps {
757
+ interface StatDisplayProps extends A11yProps {
770
758
  /** Display label (e.g., "Total", "Remaining") */
771
759
  label: string;
772
760
  /** Primary value (number or formatted string) */
@@ -821,7 +809,7 @@ declare const StatDisplay: React.FC<StatDisplayProps>;
821
809
  * Used between major sections for visual separation without hard background-color breaks.
822
810
  */
823
811
 
824
- interface GradientDividerProps {
812
+ interface GradientDividerProps extends A11yProps {
825
813
  /** Semantic palette token or a raw CSS color value. Defaults to 'primary'. */
826
814
  color?: ColorToken | string;
827
815
  /** Additional class names */
@@ -836,7 +824,7 @@ declare const GradientDivider: React.FC<GradientDividerProps>;
836
824
  * later value changes. Optional label below the number.
837
825
  */
838
826
 
839
- interface AnimatedCounterProps {
827
+ interface AnimatedCounterProps extends A11yProps {
840
828
  /** Target value. Strings may carry display affixes (e.g. "500+", "99.9%", "$1.2M"). */
841
829
  value: string | number;
842
830
  /** Label displayed below the number */
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { EventKey, EventPayload, EventEmit, Asset, AssetUrl } from '@almadar/core';
2
+ import { A11yProps, EventKey, EventPayload, EventEmit, Asset, AssetUrl } from '@almadar/core';
3
3
  import { LucideIcon } from 'lucide-react';
4
4
 
5
5
  /**
@@ -14,13 +14,11 @@ type BoxMargin = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "auto";
14
14
  type BoxBg = "transparent" | "primary" | "secondary" | "muted" | "accent" | "surface" | "overlay";
15
15
  type BoxRounded = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
16
16
  type BoxShadow = "none" | "sm" | "md" | "lg" | "xl";
17
- interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ interface BoxProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
18
18
  /** Additional CSS classes applied to the root element. */
19
19
  className?: string;
20
20
  /** Data-theme attribute applied to the root element for CSS theme scoping (e.g. almadar-website-dark). */
21
21
  'data-theme'?: string;
22
- /** Text direction for this subtree: "ltr", "rtl" (Arabic/Hebrew content) or "auto" */
23
- dir?: string;
24
22
  /**
25
23
  * Padding on all sides
26
24
  * @example md
@@ -92,7 +90,7 @@ type StackDirection = "horizontal" | "vertical";
92
90
  type StackGap = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
93
91
  type StackAlign = "start" | "center" | "end" | "stretch" | "baseline";
94
92
  type StackJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
95
- interface StackProps extends React.AriaAttributes {
93
+ interface StackProps extends Omit<React.AriaAttributes, keyof A11yProps>, A11yProps {
96
94
  /** Stack direction */
97
95
  direction?: StackDirection;
98
96
  /** Gap between children */
@@ -119,12 +117,8 @@ interface StackProps extends React.AriaAttributes {
119
117
  onClick?: (e: React.MouseEvent) => void;
120
118
  /** Keyboard handler */
121
119
  onKeyDown?: (e: React.KeyboardEvent) => void;
122
- /** Role for accessibility */
123
- role?: string;
124
120
  /** Element id */
125
121
  id?: string;
126
- /** Tab index for focus management */
127
- tabIndex?: number;
128
122
  /** Declarative event name — emits UI:{action} via eventBus on click */
129
123
  action?: EventKey;
130
124
  /** Payload to include with the action event
@@ -156,7 +150,7 @@ declare const HStack: React.FC<HStackProps>;
156
150
  type TypographyVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "heading" | "subheading" | "body1" | "body2" | "body" | "caption" | "overline" | "small" | "large" | "label";
157
151
  /** `none` = no size override — the variant's baked size applies. */
158
152
  type TypographySize = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
159
- interface TypographyProps extends React.AriaAttributes {
153
+ interface TypographyProps extends Omit<React.AriaAttributes, keyof A11yProps>, A11yProps {
160
154
  /** Typography variant */
161
155
  variant?: TypographyVariant;
162
156
  /** Heading level (1-6) - alternative to variant for headings */
@@ -181,8 +175,6 @@ interface TypographyProps extends React.AriaAttributes {
181
175
  className?: string;
182
176
  /** Inline style */
183
177
  style?: React.CSSProperties;
184
- /** Accessibility role */
185
- role?: string;
186
178
  /**
187
179
  * Value formatting applied to string/number/Date content — `none` (the
188
180
  * default) renders content as-is. Covers the raw-ISO-date class: a bound
@@ -198,7 +190,7 @@ declare const Typography: React.FC<TypographyProps>;
198
190
 
199
191
  type BadgeVariant = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral";
200
192
  type BadgeSize = "sm" | "md" | "lg";
201
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
193
+ interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, keyof A11yProps>, A11yProps {
202
194
  /** Additional CSS classes applied to the root element. */
203
195
  className?: string;
204
196
  variant?: BadgeVariant;
@@ -273,7 +265,7 @@ type IconAnimation = 'spin' | 'pulse' | 'none';
273
265
  * icon prop as `React.ReactNode` (it collapses to a non-editable `node`).
274
266
  */
275
267
  type IconInput = LucideIcon | string;
276
- interface IconProps {
268
+ interface IconProps extends A11yProps {
277
269
  /**
278
270
  * Lucide icon component (preferred for type-safe usage), OR a canonical
279
271
  * kebab-case icon name string — a string is treated exactly like `name` so
@@ -299,7 +291,8 @@ declare const Icon: React.FC<IconProps>;
299
291
 
300
292
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link";
301
293
  type ButtonSize = "sm" | "md" | "lg";
302
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
294
+ /** @accessibleName label */
295
+ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps>, A11yProps {
303
296
  /** Additional CSS classes applied to the root element. */
304
297
  className?: string;
305
298
  variant?: ButtonVariant;
@@ -341,7 +334,7 @@ type CardShadow = "none" | "sm" | "md" | "lg";
341
334
  * `variant` (which conveys role / state).
342
335
  */
343
336
  type CardLook = "elevated" | "flat-bordered" | "borderless-divider" | "ticket" | "invoice" | "chip" | "tile-image-first";
344
- interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
337
+ interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
345
338
  /** Additional CSS classes applied to the root element. */
346
339
  className?: string;
347
340
  variant?: "default" | "bordered" | "elevated" | "interactive";
@@ -371,7 +364,7 @@ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttribu
371
364
 
372
365
  type DividerOrientation = "horizontal" | "vertical";
373
366
  type DividerVariant = "solid" | "dashed" | "dotted";
374
- interface DividerProps {
367
+ interface DividerProps extends A11yProps {
375
368
  /**
376
369
  * Orientation of the divider
377
370
  * @default 'horizontal'
@@ -393,13 +386,7 @@ interface DividerProps {
393
386
  }
394
387
  declare const Divider: React.FC<DividerProps>;
395
388
 
396
- /**
397
- * Center Component
398
- *
399
- * A layout utility that centers its children horizontally and/or vertically.
400
- */
401
-
402
- interface CenterProps {
389
+ interface CenterProps extends A11yProps {
403
390
  /** Center inline (width fits content) vs block (full width) */
404
391
  inline?: boolean;
405
392
  /** Center only horizontally */
@@ -434,7 +421,7 @@ declare const Center: React.FC<CenterProps>;
434
421
  */
435
422
 
436
423
  type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'auto';
437
- interface SpacerProps {
424
+ interface SpacerProps extends A11yProps {
438
425
  /** Fixed size (auto = flex grow) */
439
426
  size?: SpacerSize;
440
427
  /** Orientation (for fixed sizes) */
@@ -451,15 +438,10 @@ interface SpacerProps {
451
438
  */
452
439
  declare const Spacer: React.FC<SpacerProps>;
453
440
 
454
- /**
455
- * Avatar Atom Component
456
- *
457
- * A versatile avatar component supporting images, initials, icons, and status indicators.
458
- */
459
-
460
441
  type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
461
442
  type AvatarStatus = "online" | "offline" | "away" | "busy";
462
- interface AvatarProps {
443
+ /** @accessibleName alt name */
444
+ interface AvatarProps extends A11yProps {
463
445
  /**
464
446
  * Image source URL
465
447
  */
@@ -516,7 +498,8 @@ declare const Avatar: React.FC<AvatarProps>;
516
498
  type ImageFit = 'cover' | 'contain' | 'fill' | 'none';
517
499
  type ImageAspect = 'auto' | '1/1' | '4/3' | '3/2' | '16/9' | '21/9';
518
500
  type ImageRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
519
- interface ImageProps {
501
+ /** @accessibleName alt */
502
+ interface ImageProps extends A11yProps {
520
503
  /** Image source URL */
521
504
  src: AssetUrl;
522
505
  /** Alternative text; empty string marks the image decorative */
@@ -536,7 +519,7 @@ interface ImageProps {
536
519
  }
537
520
  declare const Image: React.FC<ImageProps>;
538
521
 
539
- interface SectionHeaderProps {
522
+ interface SectionHeaderProps extends A11yProps {
540
523
  /** Section title text */
541
524
  title: string;
542
525
  /** Optional subtitle text */
@@ -563,7 +546,7 @@ declare const SectionHeader: React.FC<SectionHeaderProps>;
563
546
  *
564
547
  * @capabilities feature highlight, benefit callout, product capability card, feature-grid tile
565
548
  */
566
- interface FeatureCardProps {
549
+ interface FeatureCardProps extends A11yProps {
567
550
  icon?: IconInput;
568
551
  /** Feature title */
569
552
  title: string;
@@ -589,7 +572,7 @@ declare const FeatureCard: React.FC<FeatureCardProps>;
589
572
  * Composes SimpleGrid and FeatureCard molecules.
590
573
  */
591
574
 
592
- interface FeatureGridProps {
575
+ interface FeatureGridProps extends A11yProps {
593
576
  /** Array of feature card configurations */
594
577
  items: FeatureCardProps[];
595
578
  /** Number of grid columns */
@@ -609,7 +592,7 @@ declare const FeatureGrid: React.FC<FeatureGridProps>;
609
592
  */
610
593
 
611
594
  type SimpleGridGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
612
- interface SimpleGridProps {
595
+ interface SimpleGridProps extends A11yProps {
613
596
  /** Minimum width of each child (e.g., 200, "200px", "15rem") */
614
597
  minChildWidth?: number | string;
615
598
  /** Maximum number of columns */
@@ -622,6 +605,10 @@ interface SimpleGridProps {
622
605
  className?: string;
623
606
  /** Children elements */
624
607
  children: React.ReactNode;
608
+ /** Element id forwarded to the grid element. */
609
+ id?: string;
610
+ /** DOM attributes forwarded to the grid element (aria-*, data-*, role, id). */
611
+ [attr: `aria-${string}` | `data-${string}`]: string | number | boolean | undefined;
625
612
  }
626
613
  /**
627
614
  * SimpleGrid - Auto-responsive grid layout
@@ -637,7 +624,7 @@ declare const SimpleGrid: React.FC<SimpleGridProps>;
637
624
 
638
625
  type ContainerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
639
626
  type ContainerPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
640
- interface ContainerProps {
627
+ interface ContainerProps extends A11yProps {
641
628
  /** Maximum width */
642
629
  size?: ContainerSize;
643
630
  /** Alias for size (pattern compatibility) */
@@ -682,7 +669,7 @@ declare const Container: React.FC<ContainerProps>;
682
669
  */
683
670
 
684
671
  type PatternVariant = 'star8' | 'star6' | 'khatam' | 'star10' | 'star12' | 'rosette-double' | 'rosette-filled' | 'seigaiha' | 'greek-key' | 'celtic-knot' | 'kolam' | 'arch' | 'arabesque-vine' | 'arabesque-net';
685
- interface PatternTileProps {
672
+ interface PatternTileProps extends A11yProps {
686
673
  /** Which geometric pattern to render */
687
674
  variant?: PatternVariant;
688
675
  /** Tile unit size in SVG units */
@@ -702,7 +689,7 @@ declare function getTileDimensions(variant: PatternVariant, size: number): {
702
689
 
703
690
  type RevealTrigger = 'scroll' | 'hover' | 'manual';
704
691
  type RevealAnimation = 'fade-up' | 'fade-down' | 'fade-in' | 'fade-left' | 'fade-right' | 'scale' | 'scale-up' | 'none';
705
- interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
692
+ interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | keyof A11yProps>, A11yProps {
706
693
  /** Additional CSS classes applied to the root element. */
707
694
  className?: string;
708
695
  /** What triggers the animation */
@@ -727,7 +714,8 @@ interface AnimatedRevealProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
727
714
  declare const AnimatedReveal: React.ForwardRefExoticComponent<AnimatedRevealProps & React.RefAttributes<HTMLDivElement>>;
728
715
 
729
716
  type GraphicAnimation = 'draw' | 'fill' | 'pulse' | 'morph';
730
- interface AnimatedGraphicProps extends React.HTMLAttributes<HTMLDivElement> {
717
+ /** @accessibleName alt */
718
+ interface AnimatedGraphicProps extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
731
719
  /** Additional CSS classes applied to the root element. */
732
720
  className?: string;
733
721
  /** URL to an SVG file. Fetched and inlined to enable stroke/fill animations. */
@@ -766,7 +754,7 @@ declare const AnimatedGraphic: React.ForwardRefExoticComponent<AnimatedGraphicPr
766
754
  */
767
755
 
768
756
  type StatDisplayLook = 'elevated' | 'flat' | 'progress-backed' | 'gauge' | 'sparkline';
769
- interface StatDisplayProps {
757
+ interface StatDisplayProps extends A11yProps {
770
758
  /** Display label (e.g., "Total", "Remaining") */
771
759
  label: string;
772
760
  /** Primary value (number or formatted string) */
@@ -821,7 +809,7 @@ declare const StatDisplay: React.FC<StatDisplayProps>;
821
809
  * Used between major sections for visual separation without hard background-color breaks.
822
810
  */
823
811
 
824
- interface GradientDividerProps {
812
+ interface GradientDividerProps extends A11yProps {
825
813
  /** Semantic palette token or a raw CSS color value. Defaults to 'primary'. */
826
814
  color?: ColorToken | string;
827
815
  /** Additional class names */
@@ -836,7 +824,7 @@ declare const GradientDivider: React.FC<GradientDividerProps>;
836
824
  * later value changes. Optional label below the number.
837
825
  */
838
826
 
839
- interface AnimatedCounterProps {
827
+ interface AnimatedCounterProps extends A11yProps {
840
828
  /** Target value. Strings may carry display affixes (e.g. "500+", "99.9%", "$1.2M"). */
841
829
  value: string | number;
842
830
  /** Label displayed below the number */