@affinda/wc 0.0.1 → 0.0.3

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 (227) hide show
  1. package/dist/affinda/af-aspect-ratio.entry.esm.js.map +1 -0
  2. package/dist/affinda/af-button-group.entry.esm.js.map +1 -0
  3. package/dist/affinda/af-button.entry.esm.js.map +1 -0
  4. package/dist/affinda/af-color-swatch.entry.esm.js.map +1 -0
  5. package/dist/affinda/af-container.entry.esm.js.map +1 -0
  6. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -0
  7. package/dist/affinda/af-icon-button.entry.esm.js.map +1 -0
  8. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -0
  9. package/dist/affinda/affinda.css +1 -1
  10. package/dist/affinda/affinda.esm.js +1 -1
  11. package/dist/affinda/index.esm.js +1 -1
  12. package/dist/affinda/index.esm.js.map +1 -1
  13. package/dist/affinda/p-540af9d9.entry.js +2 -0
  14. package/dist/affinda/p-540af9d9.entry.js.map +1 -0
  15. package/dist/affinda/p-619bc077.entry.js +2 -0
  16. package/dist/affinda/p-619bc077.entry.js.map +1 -0
  17. package/dist/affinda/p-6b07f590.entry.js +2 -0
  18. package/dist/affinda/p-6b07f590.entry.js.map +1 -0
  19. package/dist/affinda/p-8d3b4917.entry.js +2 -0
  20. package/dist/affinda/p-8d3b4917.entry.js.map +1 -0
  21. package/dist/affinda/p-9d0e6ed1.entry.js +2 -0
  22. package/dist/affinda/p-9d0e6ed1.entry.js.map +1 -0
  23. package/dist/affinda/p-DxVtR6vj.js +3 -0
  24. package/dist/affinda/p-DxVtR6vj.js.map +1 -0
  25. package/dist/affinda/p-afbe9cb3.entry.js +2 -0
  26. package/dist/affinda/p-afbe9cb3.entry.js.map +1 -0
  27. package/dist/affinda/p-cbb06a14.entry.js +2 -0
  28. package/dist/affinda/p-cbb06a14.entry.js.map +1 -0
  29. package/dist/affinda/p-e274e11a.entry.js +2 -0
  30. package/dist/affinda/p-e274e11a.entry.js.map +1 -0
  31. package/dist/cjs/af-aspect-ratio.cjs.entry.js +83 -0
  32. package/dist/cjs/af-aspect-ratio.entry.cjs.js.map +1 -0
  33. package/dist/cjs/af-button-group.cjs.entry.js +30 -0
  34. package/dist/cjs/af-button-group.entry.cjs.js.map +1 -0
  35. package/dist/cjs/af-button.cjs.entry.js +48 -0
  36. package/dist/cjs/af-button.entry.cjs.js.map +1 -0
  37. package/dist/cjs/af-color-swatch.cjs.entry.js +23 -0
  38. package/dist/cjs/af-color-swatch.entry.cjs.js.map +1 -0
  39. package/dist/cjs/af-container.cjs.entry.js +26 -0
  40. package/dist/cjs/af-container.entry.cjs.js.map +1 -0
  41. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -0
  42. package/dist/cjs/af-heading_5.cjs.entry.js +128 -0
  43. package/dist/cjs/af-icon-button.cjs.entry.js +44 -0
  44. package/dist/cjs/af-icon-button.entry.cjs.js.map +1 -0
  45. package/dist/cjs/af-typography-lockup.cjs.entry.js +45 -0
  46. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -0
  47. package/dist/cjs/affinda.cjs.js +2 -2
  48. package/dist/cjs/{index-5BGpYleS.js → index-E2jkaTPt.js} +92 -61
  49. package/dist/cjs/index-E2jkaTPt.js.map +1 -0
  50. package/dist/cjs/index.cjs.js +24 -136
  51. package/dist/cjs/index.cjs.js.map +1 -1
  52. package/dist/cjs/loader.cjs.js +2 -2
  53. package/dist/collection/collection-manifest.json +10 -3
  54. package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.css +17 -0
  55. package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js +117 -0
  56. package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js.map +1 -0
  57. package/dist/collection/components/af-button/af-button.css +151 -42
  58. package/dist/collection/components/af-button/af-button.js +62 -57
  59. package/dist/collection/components/af-button/af-button.js.map +1 -1
  60. package/dist/collection/components/af-button-group/af-button-group.css +22 -0
  61. package/dist/collection/components/af-button-group/af-button-group.js +77 -0
  62. package/dist/collection/components/af-button-group/af-button-group.js.map +1 -0
  63. package/dist/collection/components/af-color-swatch/af-color-swatch.css +42 -0
  64. package/dist/collection/components/af-color-swatch/af-color-swatch.js +88 -0
  65. package/dist/collection/components/af-color-swatch/af-color-swatch.js.map +1 -0
  66. package/dist/collection/components/af-container/af-container.css +76 -0
  67. package/dist/collection/components/af-container/af-container.js +57 -0
  68. package/dist/collection/components/af-container/af-container.js.map +1 -0
  69. package/dist/collection/components/af-heading/af-heading.css +99 -0
  70. package/dist/collection/components/af-heading/af-heading.js +86 -0
  71. package/dist/collection/components/af-heading/af-heading.js.map +1 -0
  72. package/dist/collection/components/af-icon-button/af-icon-button.css +140 -41
  73. package/dist/collection/components/af-icon-button/af-icon-button.js +81 -57
  74. package/dist/collection/components/af-icon-button/af-icon-button.js.map +1 -1
  75. package/dist/collection/components/af-logo/af-logo.css +10 -0
  76. package/dist/collection/components/af-logo/af-logo.js +22 -0
  77. package/dist/collection/components/af-logo/af-logo.js.map +1 -0
  78. package/dist/collection/components/af-nav-item/af-nav-item.css +146 -0
  79. package/dist/collection/components/af-nav-item/af-nav-item.js +134 -0
  80. package/dist/collection/components/af-nav-item/af-nav-item.js.map +1 -0
  81. package/dist/collection/components/af-navbar/af-navbar.css +119 -0
  82. package/dist/collection/components/af-navbar/af-navbar.js +23 -0
  83. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -0
  84. package/dist/collection/components/af-text/af-text.css +61 -0
  85. package/dist/collection/components/af-text/af-text.js +96 -0
  86. package/dist/collection/components/af-text/af-text.js.map +1 -0
  87. package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +168 -0
  88. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +151 -0
  89. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -0
  90. package/dist/collection/components.js +10 -3
  91. package/dist/collection/components.js.map +1 -1
  92. package/dist/components/af-aspect-ratio.d.ts +11 -0
  93. package/dist/components/af-aspect-ratio.js +9 -0
  94. package/dist/components/af-aspect-ratio.js.map +1 -0
  95. package/dist/components/af-button-group.d.ts +11 -0
  96. package/dist/components/af-button-group.js +9 -0
  97. package/dist/components/af-button-group.js.map +1 -0
  98. package/dist/components/af-button.js +1 -1
  99. package/dist/components/af-color-swatch.d.ts +11 -0
  100. package/dist/components/af-color-swatch.js +9 -0
  101. package/dist/components/af-color-swatch.js.map +1 -0
  102. package/dist/components/af-container.d.ts +11 -0
  103. package/dist/components/af-container.js +9 -0
  104. package/dist/components/af-container.js.map +1 -0
  105. package/dist/components/af-heading.d.ts +11 -0
  106. package/dist/components/af-heading.js +9 -0
  107. package/dist/components/af-heading.js.map +1 -0
  108. package/dist/components/af-icon-button.js +1 -1
  109. package/dist/components/{af-card.d.ts → af-logo.d.ts} +4 -4
  110. package/dist/components/af-logo.js +9 -0
  111. package/dist/components/af-logo.js.map +1 -0
  112. package/dist/components/af-nav-item.d.ts +11 -0
  113. package/dist/components/af-nav-item.js +9 -0
  114. package/dist/components/af-nav-item.js.map +1 -0
  115. package/dist/components/{af-badge.d.ts → af-navbar.d.ts} +4 -4
  116. package/dist/components/af-navbar.js +9 -0
  117. package/dist/components/af-navbar.js.map +1 -0
  118. package/dist/components/{af-input.d.ts → af-text.d.ts} +4 -4
  119. package/dist/components/af-text.js +9 -0
  120. package/dist/components/af-text.js.map +1 -0
  121. package/dist/components/af-typography-lockup.d.ts +11 -0
  122. package/dist/components/af-typography-lockup.js +9 -0
  123. package/dist/components/af-typography-lockup.js.map +1 -0
  124. package/dist/components/index.js +13 -6
  125. package/dist/components/index.js.map +1 -1
  126. package/dist/components/p-B17zxKkI.js +35 -0
  127. package/dist/components/p-B17zxKkI.js.map +1 -0
  128. package/dist/components/p-BJDmHNDi.js +59 -0
  129. package/dist/components/p-BJDmHNDi.js.map +1 -0
  130. package/dist/components/p-BfmeW04T.js +50 -0
  131. package/dist/components/p-BfmeW04T.js.map +1 -0
  132. package/dist/components/p-BoU5qaPt.js +68 -0
  133. package/dist/components/p-BoU5qaPt.js.map +1 -0
  134. package/dist/components/p-CT_9_xN3.js +50 -0
  135. package/dist/components/p-CT_9_xN3.js.map +1 -0
  136. package/dist/components/{p-DOtgsZRB.js → p-CzaQ1fCu.js} +92 -65
  137. package/dist/components/p-CzaQ1fCu.js.map +1 -0
  138. package/dist/components/p-DG7Mtz0G.js +66 -0
  139. package/dist/components/p-DG7Mtz0G.js.map +1 -0
  140. package/dist/components/p-DcFGu6up.js +68 -0
  141. package/dist/components/p-DcFGu6up.js.map +1 -0
  142. package/dist/components/p-DfIqdEs7.js +45 -0
  143. package/dist/components/p-DfIqdEs7.js.map +1 -0
  144. package/dist/components/p-DqIqR4VU.js +102 -0
  145. package/dist/components/p-DqIqR4VU.js.map +1 -0
  146. package/dist/components/p-LEksuu7O.js +44 -0
  147. package/dist/components/p-LEksuu7O.js.map +1 -0
  148. package/dist/components/p-uhOM63Ux.js +71 -0
  149. package/dist/components/p-uhOM63Ux.js.map +1 -0
  150. package/dist/components/p-zBrKMKWE.js +35 -0
  151. package/dist/components/p-zBrKMKWE.js.map +1 -0
  152. package/dist/esm/af-aspect-ratio.entry.js +81 -0
  153. package/dist/esm/af-aspect-ratio.entry.js.map +1 -0
  154. package/dist/esm/af-button-group.entry.js +28 -0
  155. package/dist/esm/af-button-group.entry.js.map +1 -0
  156. package/dist/esm/af-button.entry.js +46 -0
  157. package/dist/esm/af-button.entry.js.map +1 -0
  158. package/dist/esm/af-color-swatch.entry.js +21 -0
  159. package/dist/esm/af-color-swatch.entry.js.map +1 -0
  160. package/dist/esm/af-container.entry.js +24 -0
  161. package/dist/esm/af-container.entry.js.map +1 -0
  162. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -0
  163. package/dist/esm/af-heading_5.entry.js +122 -0
  164. package/dist/esm/af-icon-button.entry.js +42 -0
  165. package/dist/esm/af-icon-button.entry.js.map +1 -0
  166. package/dist/esm/af-typography-lockup.entry.js +43 -0
  167. package/dist/esm/af-typography-lockup.entry.js.map +1 -0
  168. package/dist/esm/affinda.js +3 -3
  169. package/dist/esm/{index-o0tfWqnY.js → index-DxVtR6vj.js} +92 -61
  170. package/dist/esm/index-DxVtR6vj.js.map +1 -0
  171. package/dist/esm/index.js +9 -132
  172. package/dist/esm/index.js.map +1 -1
  173. package/dist/esm/loader.js +3 -3
  174. package/dist/types/components/af-aspect-ratio/af-aspect-ratio.d.ts +18 -0
  175. package/dist/types/components/af-button/af-button.d.ts +19 -11
  176. package/dist/types/components/af-button-group/af-button-group.d.ts +11 -0
  177. package/dist/types/components/af-color-swatch/af-color-swatch.d.ts +9 -0
  178. package/dist/types/components/af-container/af-container.d.ts +15 -0
  179. package/dist/types/components/af-heading/af-heading.d.ts +8 -0
  180. package/dist/types/components/af-icon-button/af-icon-button.d.ts +23 -11
  181. package/dist/types/components/af-logo/af-logo.d.ts +6 -0
  182. package/dist/types/components/af-nav-item/af-nav-item.d.ts +27 -0
  183. package/dist/types/components/af-navbar/af-navbar.d.ts +7 -0
  184. package/dist/types/components/af-text/af-text.d.ts +9 -0
  185. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +23 -0
  186. package/dist/types/components.d.ts +416 -163
  187. package/package.json +13 -13
  188. package/dist/affinda/af-badge.af-button.af-card.af-icon-button.af-input.entry.esm.js.map +0 -1
  189. package/dist/affinda/p-bca10492.entry.js +0 -2
  190. package/dist/affinda/p-bca10492.entry.js.map +0 -1
  191. package/dist/affinda/p-o0tfWqnY.js +0 -3
  192. package/dist/affinda/p-o0tfWqnY.js.map +0 -1
  193. package/dist/cjs/af-badge.af-button.af-card.af-icon-button.af-input.entry.cjs.js.map +0 -1
  194. package/dist/cjs/af-badge_5.cjs.entry.js +0 -13
  195. package/dist/cjs/index-5BGpYleS.js.map +0 -1
  196. package/dist/collection/components/af-badge/af-badge.css +0 -29
  197. package/dist/collection/components/af-badge/af-badge.js +0 -47
  198. package/dist/collection/components/af-badge/af-badge.js.map +0 -1
  199. package/dist/collection/components/af-card/af-card.css +0 -69
  200. package/dist/collection/components/af-card/af-card.js +0 -70
  201. package/dist/collection/components/af-card/af-card.js.map +0 -1
  202. package/dist/collection/components/af-input/af-input.css +0 -57
  203. package/dist/collection/components/af-input/af-input.js +0 -193
  204. package/dist/collection/components/af-input/af-input.js.map +0 -1
  205. package/dist/components/af-badge.js +0 -9
  206. package/dist/components/af-badge.js.map +0 -1
  207. package/dist/components/af-card.js +0 -9
  208. package/dist/components/af-card.js.map +0 -1
  209. package/dist/components/af-input.js +0 -9
  210. package/dist/components/af-input.js.map +0 -1
  211. package/dist/components/p-B7I93sz2.js +0 -39
  212. package/dist/components/p-B7I93sz2.js.map +0 -1
  213. package/dist/components/p-CZd1ieht.js +0 -62
  214. package/dist/components/p-CZd1ieht.js.map +0 -1
  215. package/dist/components/p-D6PwARU0.js +0 -59
  216. package/dist/components/p-D6PwARU0.js.map +0 -1
  217. package/dist/components/p-DOtgsZRB.js.map +0 -1
  218. package/dist/components/p-DZIXhvI0.js +0 -44
  219. package/dist/components/p-DZIXhvI0.js.map +0 -1
  220. package/dist/components/p-zIKPa48S.js +0 -62
  221. package/dist/components/p-zIKPa48S.js.map +0 -1
  222. package/dist/esm/af-badge.af-button.af-card.af-icon-button.af-input.entry.js.map +0 -1
  223. package/dist/esm/af-badge_5.entry.js +0 -3
  224. package/dist/esm/index-o0tfWqnY.js.map +0 -1
  225. package/dist/types/components/af-badge/af-badge.d.ts +0 -5
  226. package/dist/types/components/af-card/af-card.d.ts +0 -7
  227. package/dist/types/components/af-input/af-input.d.ts +0 -24
@@ -6,306 +6,559 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  export namespace Components {
9
- interface AfBadge {
9
+ /**
10
+ * A container component that maintains a fixed aspect ratio for its content.
11
+ * Useful for images, videos, or any content that needs to maintain specific proportions.
12
+ */
13
+ interface AfAspectRatio {
10
14
  /**
11
- * Color theme of the badge
12
- * @default 'brand'
15
+ * The aspect ratio to maintain. Can be: - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc. - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.
16
+ * @example <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio> <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
17
+ * @default '1:1'
13
18
  */
14
- "tone": 'brand' | 'neutral' | 'success';
19
+ "ratio": string;
15
20
  }
16
21
  interface AfButton {
17
22
  /**
18
- * Disabled state
23
+ * Whether the button is disabled
19
24
  * @default false
20
25
  */
21
26
  "disabled": boolean;
22
27
  /**
23
- * Loading state
24
- * @default false
28
+ * Optional href to render as a link
29
+ */
30
+ "href"?: string;
31
+ /**
32
+ * The size of the button
33
+ * @default 'default'
25
34
  */
26
- "loading": boolean;
35
+ "size": 'default' | 'small';
27
36
  /**
28
- * Size of the button
29
- * @default 'md'
37
+ * Button type (when not using href)
38
+ * @default 'button'
30
39
  */
31
- "size": 'md' | 'lg';
40
+ "type": 'button' | 'submit' | 'reset';
32
41
  /**
33
- * Visual style of the button
42
+ * The visual variant of the button
34
43
  * @default 'primary'
35
44
  */
36
- "variant": 'primary' | 'secondary' | 'ghost';
45
+ "variant": 'primary' | 'secondary' | 'outline' | 'ghost';
46
+ }
47
+ interface AfButtonGroup {
48
+ /**
49
+ * Layout direction of the button group
50
+ * @default 'horizontal'
51
+ */
52
+ "direction": 'horizontal' | 'vertical';
53
+ /**
54
+ * Gap between buttons
55
+ * @default '8px'
56
+ */
57
+ "gap": string;
58
+ }
59
+ interface AfColorSwatch {
60
+ /**
61
+ * Color value (hex)
62
+ */
63
+ "color": string;
64
+ /**
65
+ * Color name
66
+ */
67
+ "name": string;
68
+ /**
69
+ * Size variant
70
+ * @default 'default'
71
+ */
72
+ "size": 'default' | 'large';
73
+ }
74
+ /**
75
+ * A responsive container component that provides consistent margins and max-width
76
+ * constraints based on the Affinda grid system.
77
+ */
78
+ interface AfContainer {
79
+ /**
80
+ * Maximum width constraint for the container - 'xlarge': 1440px container (default) - 'large': 1024px container - 'medium': 768px container - 'fluid': No max-width constraint, full width with margins
81
+ * @default 'xlarge'
82
+ */
83
+ "maxWidth": 'xlarge' | 'large' | 'medium' | 'fluid';
37
84
  }
38
- interface AfCard {
85
+ interface AfHeading {
39
86
  /**
40
- * Optional accent colour strip
87
+ * Visual alignment
88
+ * @default 'left'
41
89
  */
42
- "accent"?: 'brand' | 'success' | 'neutral';
90
+ "align": 'left' | 'center' | 'right';
43
91
  /**
44
- * Visual style of the card
45
- * @default 'surface'
92
+ * Heading level
93
+ * @default '1'
46
94
  */
47
- "variant": 'surface' | 'elevated';
95
+ "level": 'xl' | '1' | '2' | '3' | '4' | '5';
48
96
  }
49
97
  interface AfIconButton {
50
98
  /**
51
- * Disabled state
99
+ * Accessible label for screen readers
100
+ */
101
+ "ariaLabel": string;
102
+ /**
103
+ * Whether the button is disabled
52
104
  * @default false
53
105
  */
54
106
  "disabled": boolean;
55
107
  /**
56
- * Accessible label text
108
+ * Optional href to render as a link
57
109
  */
58
- "label"?: string;
110
+ "href"?: string;
59
111
  /**
60
- * Size preset
61
- * @default 'md'
112
+ * The size of the button
113
+ * @default 'medium'
62
114
  */
63
- "size": 'sm' | 'md';
115
+ "size": 'large' | 'medium' | 'small';
64
116
  /**
65
- * Visual style of the icon button
66
- * @default 'solid'
117
+ * Button type (when not using href)
118
+ * @default 'button'
67
119
  */
68
- "variant": 'solid' | 'soft' | 'ghost';
69
- }
70
- interface AfInput {
120
+ "type": 'button' | 'submit' | 'reset';
71
121
  /**
72
- * Assistive description shown below the field
122
+ * The visual variant of the button
123
+ * @default 'primary'
73
124
  */
74
- "description"?: string;
125
+ "variant": 'primary' | 'secondary' | 'outline' | 'ghost';
126
+ }
127
+ /**
128
+ * Affinda logo component
129
+ */
130
+ interface AfLogo {
131
+ }
132
+ /**
133
+ * A generic navigation item component that can be used in navigation bars, menus, and sidebars.
134
+ * Supports multiple hierarchy levels, variants, and states (active, hover).
135
+ */
136
+ interface AfNavItem {
75
137
  /**
76
- * Disabled state
138
+ * Whether this nav item is currently active/selected
77
139
  * @default false
78
140
  */
79
- "disabled": boolean;
141
+ "active": boolean;
142
+ /**
143
+ * Visual hierarchy level of the navigation item - 'primary': Bold, main navigation (larger text, prominent styling) - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)
144
+ * @default 'primary'
145
+ */
146
+ "hierarchy": 'primary' | 'secondary';
147
+ /**
148
+ * URL to navigate to when clicked
149
+ */
150
+ "href"?: string;
80
151
  /**
81
- * Optional label text
152
+ * Visual variant within the hierarchy level - '01': Darker/more prominent styling - '02': Lighter/more subtle styling
153
+ * @default '01'
82
154
  */
83
- "label"?: string;
155
+ "variant": '01' | '02';
156
+ }
157
+ /**
158
+ * A full-width navigation bar component that provides the main site navigation.
159
+ * Features a pill-shaped container with logo, navigation links, and action buttons.
160
+ */
161
+ interface AfNavbar {
162
+ }
163
+ interface AfText {
84
164
  /**
85
- * Placeholder text
165
+ * Visual alignment
166
+ * @default 'left'
86
167
  */
87
- "placeholder"?: string;
168
+ "align": 'left' | 'center' | 'right';
88
169
  /**
89
- * Input type attribute
90
- * @default 'text'
170
+ * Semantic element to render
171
+ * @default 'p'
91
172
  */
92
- "type": 'text' | 'email' | 'password' | 'search';
173
+ "as": 'p' | 'span' | 'div' | 'label';
93
174
  /**
94
- * Current value (mutable so the component stays in sync)
95
- * @default ''
175
+ * Text variant
176
+ * @default 'medium'
96
177
  */
97
- "value": string;
178
+ "variant": 'xlarge' | 'large' | 'medium' | 'small' | 'label-button' | 'label-tag';
179
+ }
180
+ interface AfTypographyLockup {
181
+ /**
182
+ * The breakpoint for responsive typography
183
+ * @default 'desktop'
184
+ */
185
+ "breakpoint": 'desktop' | 'mobile';
186
+ /**
187
+ * Button alignment (horizontal or vertical stacking)
188
+ * @default 'vertical'
189
+ */
190
+ "buttonAlignment": 'horizontal' | 'vertical';
191
+ /**
192
+ * The heading size (1-5, where 1 is largest)
193
+ * @default 2
194
+ */
195
+ "headingSize": 1 | 2 | 3 | 4 | 5;
196
+ /**
197
+ * Maximum width for the copy section (in pixels)
198
+ */
199
+ "maxWidth"?: number;
200
+ /**
201
+ * Text alignment
202
+ * @default 'left'
203
+ */
204
+ "textAlignment": 'left' | 'center';
98
205
  }
99
- }
100
- export interface AfButtonCustomEvent<T> extends CustomEvent<T> {
101
- detail: T;
102
- target: HTMLAfButtonElement;
103
- }
104
- export interface AfIconButtonCustomEvent<T> extends CustomEvent<T> {
105
- detail: T;
106
- target: HTMLAfIconButtonElement;
107
- }
108
- export interface AfInputCustomEvent<T> extends CustomEvent<T> {
109
- detail: T;
110
- target: HTMLAfInputElement;
111
206
  }
112
207
  declare global {
113
- interface HTMLAfBadgeElement extends Components.AfBadge, HTMLStencilElement {
208
+ /**
209
+ * A container component that maintains a fixed aspect ratio for its content.
210
+ * Useful for images, videos, or any content that needs to maintain specific proportions.
211
+ */
212
+ interface HTMLAfAspectRatioElement extends Components.AfAspectRatio, HTMLStencilElement {
114
213
  }
115
- var HTMLAfBadgeElement: {
116
- prototype: HTMLAfBadgeElement;
117
- new (): HTMLAfBadgeElement;
214
+ var HTMLAfAspectRatioElement: {
215
+ prototype: HTMLAfAspectRatioElement;
216
+ new (): HTMLAfAspectRatioElement;
118
217
  };
119
- interface HTMLAfButtonElementEventMap {
120
- "afClick": MouseEvent;
121
- }
122
218
  interface HTMLAfButtonElement extends Components.AfButton, HTMLStencilElement {
123
- addEventListener<K extends keyof HTMLAfButtonElementEventMap>(type: K, listener: (this: HTMLAfButtonElement, ev: AfButtonCustomEvent<HTMLAfButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
124
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
125
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
126
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
127
- removeEventListener<K extends keyof HTMLAfButtonElementEventMap>(type: K, listener: (this: HTMLAfButtonElement, ev: AfButtonCustomEvent<HTMLAfButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
128
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
129
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
130
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
131
219
  }
132
220
  var HTMLAfButtonElement: {
133
221
  prototype: HTMLAfButtonElement;
134
222
  new (): HTMLAfButtonElement;
135
223
  };
136
- interface HTMLAfCardElement extends Components.AfCard, HTMLStencilElement {
224
+ interface HTMLAfButtonGroupElement extends Components.AfButtonGroup, HTMLStencilElement {
225
+ }
226
+ var HTMLAfButtonGroupElement: {
227
+ prototype: HTMLAfButtonGroupElement;
228
+ new (): HTMLAfButtonGroupElement;
229
+ };
230
+ interface HTMLAfColorSwatchElement extends Components.AfColorSwatch, HTMLStencilElement {
231
+ }
232
+ var HTMLAfColorSwatchElement: {
233
+ prototype: HTMLAfColorSwatchElement;
234
+ new (): HTMLAfColorSwatchElement;
235
+ };
236
+ /**
237
+ * A responsive container component that provides consistent margins and max-width
238
+ * constraints based on the Affinda grid system.
239
+ */
240
+ interface HTMLAfContainerElement extends Components.AfContainer, HTMLStencilElement {
137
241
  }
138
- var HTMLAfCardElement: {
139
- prototype: HTMLAfCardElement;
140
- new (): HTMLAfCardElement;
242
+ var HTMLAfContainerElement: {
243
+ prototype: HTMLAfContainerElement;
244
+ new (): HTMLAfContainerElement;
141
245
  };
142
- interface HTMLAfIconButtonElementEventMap {
143
- "afClick": MouseEvent;
246
+ interface HTMLAfHeadingElement extends Components.AfHeading, HTMLStencilElement {
144
247
  }
248
+ var HTMLAfHeadingElement: {
249
+ prototype: HTMLAfHeadingElement;
250
+ new (): HTMLAfHeadingElement;
251
+ };
145
252
  interface HTMLAfIconButtonElement extends Components.AfIconButton, HTMLStencilElement {
146
- addEventListener<K extends keyof HTMLAfIconButtonElementEventMap>(type: K, listener: (this: HTMLAfIconButtonElement, ev: AfIconButtonCustomEvent<HTMLAfIconButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
147
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
148
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
149
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
150
- removeEventListener<K extends keyof HTMLAfIconButtonElementEventMap>(type: K, listener: (this: HTMLAfIconButtonElement, ev: AfIconButtonCustomEvent<HTMLAfIconButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
151
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
152
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
153
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
154
253
  }
155
254
  var HTMLAfIconButtonElement: {
156
255
  prototype: HTMLAfIconButtonElement;
157
256
  new (): HTMLAfIconButtonElement;
158
257
  };
159
- interface HTMLAfInputElementEventMap {
160
- "afInput": string;
161
- "afChange": string;
162
- }
163
- interface HTMLAfInputElement extends Components.AfInput, HTMLStencilElement {
164
- addEventListener<K extends keyof HTMLAfInputElementEventMap>(type: K, listener: (this: HTMLAfInputElement, ev: AfInputCustomEvent<HTMLAfInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
165
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
166
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
167
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
168
- removeEventListener<K extends keyof HTMLAfInputElementEventMap>(type: K, listener: (this: HTMLAfInputElement, ev: AfInputCustomEvent<HTMLAfInputElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
169
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
170
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
171
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
172
- }
173
- var HTMLAfInputElement: {
174
- prototype: HTMLAfInputElement;
175
- new (): HTMLAfInputElement;
258
+ /**
259
+ * Affinda logo component
260
+ */
261
+ interface HTMLAfLogoElement extends Components.AfLogo, HTMLStencilElement {
262
+ }
263
+ var HTMLAfLogoElement: {
264
+ prototype: HTMLAfLogoElement;
265
+ new (): HTMLAfLogoElement;
266
+ };
267
+ /**
268
+ * A generic navigation item component that can be used in navigation bars, menus, and sidebars.
269
+ * Supports multiple hierarchy levels, variants, and states (active, hover).
270
+ */
271
+ interface HTMLAfNavItemElement extends Components.AfNavItem, HTMLStencilElement {
272
+ }
273
+ var HTMLAfNavItemElement: {
274
+ prototype: HTMLAfNavItemElement;
275
+ new (): HTMLAfNavItemElement;
276
+ };
277
+ /**
278
+ * A full-width navigation bar component that provides the main site navigation.
279
+ * Features a pill-shaped container with logo, navigation links, and action buttons.
280
+ */
281
+ interface HTMLAfNavbarElement extends Components.AfNavbar, HTMLStencilElement {
282
+ }
283
+ var HTMLAfNavbarElement: {
284
+ prototype: HTMLAfNavbarElement;
285
+ new (): HTMLAfNavbarElement;
286
+ };
287
+ interface HTMLAfTextElement extends Components.AfText, HTMLStencilElement {
288
+ }
289
+ var HTMLAfTextElement: {
290
+ prototype: HTMLAfTextElement;
291
+ new (): HTMLAfTextElement;
292
+ };
293
+ interface HTMLAfTypographyLockupElement extends Components.AfTypographyLockup, HTMLStencilElement {
294
+ }
295
+ var HTMLAfTypographyLockupElement: {
296
+ prototype: HTMLAfTypographyLockupElement;
297
+ new (): HTMLAfTypographyLockupElement;
176
298
  };
177
299
  interface HTMLElementTagNameMap {
178
- "af-badge": HTMLAfBadgeElement;
300
+ "af-aspect-ratio": HTMLAfAspectRatioElement;
179
301
  "af-button": HTMLAfButtonElement;
180
- "af-card": HTMLAfCardElement;
302
+ "af-button-group": HTMLAfButtonGroupElement;
303
+ "af-color-swatch": HTMLAfColorSwatchElement;
304
+ "af-container": HTMLAfContainerElement;
305
+ "af-heading": HTMLAfHeadingElement;
181
306
  "af-icon-button": HTMLAfIconButtonElement;
182
- "af-input": HTMLAfInputElement;
307
+ "af-logo": HTMLAfLogoElement;
308
+ "af-nav-item": HTMLAfNavItemElement;
309
+ "af-navbar": HTMLAfNavbarElement;
310
+ "af-text": HTMLAfTextElement;
311
+ "af-typography-lockup": HTMLAfTypographyLockupElement;
183
312
  }
184
313
  }
185
314
  declare namespace LocalJSX {
186
- interface AfBadge {
315
+ /**
316
+ * A container component that maintains a fixed aspect ratio for its content.
317
+ * Useful for images, videos, or any content that needs to maintain specific proportions.
318
+ */
319
+ interface AfAspectRatio {
187
320
  /**
188
- * Color theme of the badge
189
- * @default 'brand'
321
+ * The aspect ratio to maintain. Can be: - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc. - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.
322
+ * @example <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio> <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
323
+ * @default '1:1'
190
324
  */
191
- "tone"?: 'brand' | 'neutral' | 'success';
325
+ "ratio"?: string;
192
326
  }
193
327
  interface AfButton {
194
328
  /**
195
- * Disabled state
329
+ * Whether the button is disabled
196
330
  * @default false
197
331
  */
198
332
  "disabled"?: boolean;
199
333
  /**
200
- * Loading state
201
- * @default false
334
+ * Optional href to render as a link
202
335
  */
203
- "loading"?: boolean;
336
+ "href"?: string;
204
337
  /**
205
- * Fired when the button is clicked while enabled
338
+ * The size of the button
339
+ * @default 'default'
206
340
  */
207
- "onAfClick"?: (event: AfButtonCustomEvent<MouseEvent>) => void;
341
+ "size"?: 'default' | 'small';
208
342
  /**
209
- * Size of the button
210
- * @default 'md'
343
+ * Button type (when not using href)
344
+ * @default 'button'
211
345
  */
212
- "size"?: 'md' | 'lg';
346
+ "type"?: 'button' | 'submit' | 'reset';
213
347
  /**
214
- * Visual style of the button
348
+ * The visual variant of the button
215
349
  * @default 'primary'
216
350
  */
217
- "variant"?: 'primary' | 'secondary' | 'ghost';
351
+ "variant"?: 'primary' | 'secondary' | 'outline' | 'ghost';
352
+ }
353
+ interface AfButtonGroup {
354
+ /**
355
+ * Layout direction of the button group
356
+ * @default 'horizontal'
357
+ */
358
+ "direction"?: 'horizontal' | 'vertical';
359
+ /**
360
+ * Gap between buttons
361
+ * @default '8px'
362
+ */
363
+ "gap"?: string;
364
+ }
365
+ interface AfColorSwatch {
366
+ /**
367
+ * Color value (hex)
368
+ */
369
+ "color": string;
370
+ /**
371
+ * Color name
372
+ */
373
+ "name": string;
374
+ /**
375
+ * Size variant
376
+ * @default 'default'
377
+ */
378
+ "size"?: 'default' | 'large';
379
+ }
380
+ /**
381
+ * A responsive container component that provides consistent margins and max-width
382
+ * constraints based on the Affinda grid system.
383
+ */
384
+ interface AfContainer {
385
+ /**
386
+ * Maximum width constraint for the container - 'xlarge': 1440px container (default) - 'large': 1024px container - 'medium': 768px container - 'fluid': No max-width constraint, full width with margins
387
+ * @default 'xlarge'
388
+ */
389
+ "maxWidth"?: 'xlarge' | 'large' | 'medium' | 'fluid';
218
390
  }
219
- interface AfCard {
391
+ interface AfHeading {
220
392
  /**
221
- * Optional accent colour strip
393
+ * Visual alignment
394
+ * @default 'left'
222
395
  */
223
- "accent"?: 'brand' | 'success' | 'neutral';
396
+ "align"?: 'left' | 'center' | 'right';
224
397
  /**
225
- * Visual style of the card
226
- * @default 'surface'
398
+ * Heading level
399
+ * @default '1'
227
400
  */
228
- "variant"?: 'surface' | 'elevated';
401
+ "level"?: 'xl' | '1' | '2' | '3' | '4' | '5';
229
402
  }
230
403
  interface AfIconButton {
231
404
  /**
232
- * Disabled state
405
+ * Accessible label for screen readers
406
+ */
407
+ "ariaLabel": string;
408
+ /**
409
+ * Whether the button is disabled
233
410
  * @default false
234
411
  */
235
412
  "disabled"?: boolean;
236
413
  /**
237
- * Accessible label text
414
+ * Optional href to render as a link
238
415
  */
239
- "label"?: string;
416
+ "href"?: string;
240
417
  /**
241
- * Raised when the button is activated
418
+ * The size of the button
419
+ * @default 'medium'
242
420
  */
243
- "onAfClick"?: (event: AfIconButtonCustomEvent<MouseEvent>) => void;
421
+ "size"?: 'large' | 'medium' | 'small';
244
422
  /**
245
- * Size preset
246
- * @default 'md'
423
+ * Button type (when not using href)
424
+ * @default 'button'
247
425
  */
248
- "size"?: 'sm' | 'md';
426
+ "type"?: 'button' | 'submit' | 'reset';
249
427
  /**
250
- * Visual style of the icon button
251
- * @default 'solid'
428
+ * The visual variant of the button
429
+ * @default 'primary'
252
430
  */
253
- "variant"?: 'solid' | 'soft' | 'ghost';
431
+ "variant"?: 'primary' | 'secondary' | 'outline' | 'ghost';
432
+ }
433
+ /**
434
+ * Affinda logo component
435
+ */
436
+ interface AfLogo {
254
437
  }
255
- interface AfInput {
438
+ /**
439
+ * A generic navigation item component that can be used in navigation bars, menus, and sidebars.
440
+ * Supports multiple hierarchy levels, variants, and states (active, hover).
441
+ */
442
+ interface AfNavItem {
256
443
  /**
257
- * Assistive description shown below the field
444
+ * Whether this nav item is currently active/selected
445
+ * @default false
258
446
  */
259
- "description"?: string;
447
+ "active"?: boolean;
260
448
  /**
261
- * Disabled state
262
- * @default false
449
+ * Visual hierarchy level of the navigation item - 'primary': Bold, main navigation (larger text, prominent styling) - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)
450
+ * @default 'primary'
263
451
  */
264
- "disabled"?: boolean;
452
+ "hierarchy"?: 'primary' | 'secondary';
453
+ /**
454
+ * URL to navigate to when clicked
455
+ */
456
+ "href"?: string;
457
+ /**
458
+ * Visual variant within the hierarchy level - '01': Darker/more prominent styling - '02': Lighter/more subtle styling
459
+ * @default '01'
460
+ */
461
+ "variant"?: '01' | '02';
462
+ }
463
+ /**
464
+ * A full-width navigation bar component that provides the main site navigation.
465
+ * Features a pill-shaped container with logo, navigation links, and action buttons.
466
+ */
467
+ interface AfNavbar {
468
+ }
469
+ interface AfText {
470
+ /**
471
+ * Visual alignment
472
+ * @default 'left'
473
+ */
474
+ "align"?: 'left' | 'center' | 'right';
265
475
  /**
266
- * Optional label text
476
+ * Semantic element to render
477
+ * @default 'p'
267
478
  */
268
- "label"?: string;
479
+ "as"?: 'p' | 'span' | 'div' | 'label';
480
+ /**
481
+ * Text variant
482
+ * @default 'medium'
483
+ */
484
+ "variant"?: 'xlarge' | 'large' | 'medium' | 'small' | 'label-button' | 'label-tag';
485
+ }
486
+ interface AfTypographyLockup {
269
487
  /**
270
- * Fired when the field loses focus after a change
488
+ * The breakpoint for responsive typography
489
+ * @default 'desktop'
271
490
  */
272
- "onAfChange"?: (event: AfInputCustomEvent<string>) => void;
491
+ "breakpoint"?: 'desktop' | 'mobile';
273
492
  /**
274
- * Fired as the user types
493
+ * Button alignment (horizontal or vertical stacking)
494
+ * @default 'vertical'
275
495
  */
276
- "onAfInput"?: (event: AfInputCustomEvent<string>) => void;
496
+ "buttonAlignment"?: 'horizontal' | 'vertical';
277
497
  /**
278
- * Placeholder text
498
+ * The heading size (1-5, where 1 is largest)
499
+ * @default 2
279
500
  */
280
- "placeholder"?: string;
501
+ "headingSize"?: 1 | 2 | 3 | 4 | 5;
281
502
  /**
282
- * Input type attribute
283
- * @default 'text'
503
+ * Maximum width for the copy section (in pixels)
284
504
  */
285
- "type"?: 'text' | 'email' | 'password' | 'search';
505
+ "maxWidth"?: number;
286
506
  /**
287
- * Current value (mutable so the component stays in sync)
288
- * @default ''
507
+ * Text alignment
508
+ * @default 'left'
289
509
  */
290
- "value"?: string;
510
+ "textAlignment"?: 'left' | 'center';
291
511
  }
292
512
  interface IntrinsicElements {
293
- "af-badge": AfBadge;
513
+ "af-aspect-ratio": AfAspectRatio;
294
514
  "af-button": AfButton;
295
- "af-card": AfCard;
515
+ "af-button-group": AfButtonGroup;
516
+ "af-color-swatch": AfColorSwatch;
517
+ "af-container": AfContainer;
518
+ "af-heading": AfHeading;
296
519
  "af-icon-button": AfIconButton;
297
- "af-input": AfInput;
520
+ "af-logo": AfLogo;
521
+ "af-nav-item": AfNavItem;
522
+ "af-navbar": AfNavbar;
523
+ "af-text": AfText;
524
+ "af-typography-lockup": AfTypographyLockup;
298
525
  }
299
526
  }
300
527
  export { LocalJSX as JSX };
301
528
  declare module "@stencil/core" {
302
529
  export namespace JSX {
303
530
  interface IntrinsicElements {
304
- "af-badge": LocalJSX.AfBadge & JSXBase.HTMLAttributes<HTMLAfBadgeElement>;
531
+ /**
532
+ * A container component that maintains a fixed aspect ratio for its content.
533
+ * Useful for images, videos, or any content that needs to maintain specific proportions.
534
+ */
535
+ "af-aspect-ratio": LocalJSX.AfAspectRatio & JSXBase.HTMLAttributes<HTMLAfAspectRatioElement>;
305
536
  "af-button": LocalJSX.AfButton & JSXBase.HTMLAttributes<HTMLAfButtonElement>;
306
- "af-card": LocalJSX.AfCard & JSXBase.HTMLAttributes<HTMLAfCardElement>;
537
+ "af-button-group": LocalJSX.AfButtonGroup & JSXBase.HTMLAttributes<HTMLAfButtonGroupElement>;
538
+ "af-color-swatch": LocalJSX.AfColorSwatch & JSXBase.HTMLAttributes<HTMLAfColorSwatchElement>;
539
+ /**
540
+ * A responsive container component that provides consistent margins and max-width
541
+ * constraints based on the Affinda grid system.
542
+ */
543
+ "af-container": LocalJSX.AfContainer & JSXBase.HTMLAttributes<HTMLAfContainerElement>;
544
+ "af-heading": LocalJSX.AfHeading & JSXBase.HTMLAttributes<HTMLAfHeadingElement>;
307
545
  "af-icon-button": LocalJSX.AfIconButton & JSXBase.HTMLAttributes<HTMLAfIconButtonElement>;
308
- "af-input": LocalJSX.AfInput & JSXBase.HTMLAttributes<HTMLAfInputElement>;
546
+ /**
547
+ * Affinda logo component
548
+ */
549
+ "af-logo": LocalJSX.AfLogo & JSXBase.HTMLAttributes<HTMLAfLogoElement>;
550
+ /**
551
+ * A generic navigation item component that can be used in navigation bars, menus, and sidebars.
552
+ * Supports multiple hierarchy levels, variants, and states (active, hover).
553
+ */
554
+ "af-nav-item": LocalJSX.AfNavItem & JSXBase.HTMLAttributes<HTMLAfNavItemElement>;
555
+ /**
556
+ * A full-width navigation bar component that provides the main site navigation.
557
+ * Features a pill-shaped container with logo, navigation links, and action buttons.
558
+ */
559
+ "af-navbar": LocalJSX.AfNavbar & JSXBase.HTMLAttributes<HTMLAfNavbarElement>;
560
+ "af-text": LocalJSX.AfText & JSXBase.HTMLAttributes<HTMLAfTextElement>;
561
+ "af-typography-lockup": LocalJSX.AfTypographyLockup & JSXBase.HTMLAttributes<HTMLAfTypographyLockupElement>;
309
562
  }
310
563
  }
311
564
  }