@repobit/dex-system-design 0.25.12 → 1.0.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 (336) hide show
  1. package/CHANGELOG.md +204 -0
  2. package/README.md +131 -8
  3. package/package.json +96 -13
  4. package/schemas/component-manifest.json +3294 -405
  5. package/schemas/manifest-omissions.json +173 -0
  6. package/src/blog/src/breakpoints.js +6 -6
  7. package/src/blog/src/content/blog-atoms-showcase.js +1 -1
  8. package/src/blog/src/content/blog-page-layout.js +2 -2
  9. package/src/blog/src/lib/article-toc.js +7 -7
  10. package/src/blog/src/shell/blog-shell.js +1 -1
  11. package/src/blog/src/tokens/blog.js +2 -2
  12. package/src/blog/src/tokens/core.js +34 -35
  13. package/src/blog/src/tokens/legacy.js +0 -9
  14. package/src/blog/tokens/blog.js +2 -2
  15. package/src/blog/tokens/core.js +34 -35
  16. package/src/blog/tokens/legacy.js +0 -9
  17. package/src/blog/tokens.css +36 -46
  18. package/src/components/accordion/accordion-bg.css.js +83 -59
  19. package/src/components/accordion/accordion-bg.js +29 -10
  20. package/src/components/accordion/accordion-bg.stories.js +67 -67
  21. package/src/components/accordion/accordion-keyboard.js +80 -0
  22. package/src/components/accordion/accordion.css.js +142 -80
  23. package/src/components/accordion/accordion.js +37 -10
  24. package/src/components/accordion/accordion.stories.js +7 -7
  25. package/src/components/agent-endpoints/agent-endpoints.css.js +36 -39
  26. package/src/components/agent-endpoints/agent-endpoints.js +30 -20
  27. package/src/components/agent-endpoints/agent-endpoints.stories.js +1 -1
  28. package/src/components/ai-guardian-demo.stories.js +91 -91
  29. package/src/components/alert/alert.css.js +198 -0
  30. package/src/components/alert/alert.js +103 -0
  31. package/src/components/alert/alert.stories.js +206 -0
  32. package/src/components/anchor/anchor-nav.css.js +213 -101
  33. package/src/components/anchor/anchor-nav.js +26 -40
  34. package/src/components/anchor/anchor.stories.js +22 -12
  35. package/src/components/annotation/annotation.css.js +58 -0
  36. package/src/components/annotation/annotation.js +67 -0
  37. package/src/components/annotation/annotation.stories.js +63 -0
  38. package/src/components/architecture.stories.js +285 -0
  39. package/src/components/atoms.stories.js +342 -0
  40. package/src/components/avatar/avatar.css.js +67 -0
  41. package/src/components/avatar/avatar.js +42 -0
  42. package/src/components/avatar/avatar.stories.js +95 -0
  43. package/src/components/awards/awards-flex.css.js +209 -23
  44. package/src/components/awards/awards-flex.js +66 -7
  45. package/src/components/awards/awards-flex.stories.js +1 -1
  46. package/src/components/awards/{awards-light.stories.js → awards-summary.stories.js} +54 -64
  47. package/src/components/awards/awards.css.js +116 -58
  48. package/src/components/awards/awards.js +102 -28
  49. package/src/components/awards/awards.stories.js +1 -1
  50. package/src/components/back/back.css.js +51 -22
  51. package/src/components/back/back.js +28 -7
  52. package/src/components/back/back.stories.js +9 -3
  53. package/src/components/badge/badge.css.js +158 -46
  54. package/src/components/badge/badge.js +62 -74
  55. package/src/components/badge/badge.stories.js +176 -248
  56. package/src/components/bento-grid/bento-grid.css.js +21 -16
  57. package/src/components/bento-grid/bento-grid.js +16 -4
  58. package/src/components/bento-grid/bento-grid.stories.js +19 -18
  59. package/src/components/bento-grid/bento-item.css.js +52 -28
  60. package/src/components/bento-grid/bento-item.js +2 -2
  61. package/src/components/blockquote/blockquote.css.js +47 -0
  62. package/src/components/blockquote/blockquote.js +29 -0
  63. package/src/components/blockquote/blockquote.stories.js +62 -0
  64. package/src/components/breadcrumb/breadcrumb.css.js +92 -22
  65. package/src/components/breadcrumb/breadcrumb.js +56 -11
  66. package/src/components/button/button.css.js +531 -161
  67. package/src/components/button/button.js +206 -214
  68. package/src/components/button/button.stories.js +322 -174
  69. package/src/components/caption/caption.css.js +21 -0
  70. package/src/components/caption/caption.js +31 -0
  71. package/src/components/caption/caption.stories.js +62 -0
  72. package/src/components/card-features/card-features.css.js +14 -22
  73. package/src/components/card-features/card-features.js +68 -9
  74. package/src/components/card-features/card-features.stories.js +11 -11
  75. package/src/components/cards/card.css.js +60 -81
  76. package/src/components/cards/card.js +56 -25
  77. package/src/components/cards/card.stories.js +39 -39
  78. package/src/components/carousel/carousel.css.js +93 -99
  79. package/src/components/carousel/carousel.js +32 -4
  80. package/src/components/checkbox/checkbox.css.js +111 -93
  81. package/src/components/checkbox/checkbox.js +64 -90
  82. package/src/components/checkbox/checkbox.stories.js +96 -29
  83. package/src/components/code/code.css.js +70 -0
  84. package/src/components/code/code.js +40 -0
  85. package/src/components/code/code.stories.js +73 -0
  86. package/src/components/compare/compare.css.js +179 -43
  87. package/src/components/compare/compare.js +52 -25
  88. package/src/components/compare/compare.stories.js +61 -4
  89. package/src/components/comparison-panel/comparison-panel.css.js +38 -51
  90. package/src/components/comparison-panel/comparison-panel.js +5 -4
  91. package/src/components/comparison-panel/comparison-panel.stories.js +1 -1
  92. package/src/components/compatibility-table/compatibility-table.css.js +180 -80
  93. package/src/components/compatibility-table/compatibility-table.js +37 -9
  94. package/src/components/control-alignment.stories.js +393 -0
  95. package/src/components/cta-banner/cta-banner.css.js +41 -13
  96. package/src/components/cta-banner/cta-banner.js +6 -5
  97. package/src/components/cta-banner/cta-banner.stories.js +43 -98
  98. package/src/components/display/display.css.js +25 -1
  99. package/src/components/display/display.js +46 -13
  100. package/src/components/display/display.stories.js +270 -40
  101. package/src/components/divider/divider-horizontal.js +21 -5
  102. package/src/components/divider/divider-vertical.js +15 -7
  103. package/src/components/divider/divider.css.js +2 -2
  104. package/src/components/divider/divider.stories.js +38 -34
  105. package/src/components/dropdown/dropdown.css.js +93 -126
  106. package/src/components/dropdown/dropdown.js +114 -34
  107. package/src/components/dropdown/dropdown.stories.js +56 -24
  108. package/src/components/features/features.css.js +24 -11
  109. package/src/components/features/features.js +7 -3
  110. package/src/components/features/features.stories.js +37 -37
  111. package/src/components/features-tab/features-tab.css.js +19 -8
  112. package/src/components/features-tab/features-tab.js +6 -5
  113. package/src/components/features-tab/features-tab.stories.js +23 -23
  114. package/src/components/fieldset/fieldset.css.js +30 -0
  115. package/src/components/fieldset/fieldset.js +28 -0
  116. package/src/components/fieldset/fieldset.stories.js +84 -0
  117. package/src/components/footer/footer-links-group.css.js +10 -14
  118. package/src/components/footer/footer-links-group.js +4 -3
  119. package/src/components/footer/footer-lp.css.js +59 -30
  120. package/src/components/footer/footer-lp.js +17 -12
  121. package/src/components/footer/footer-lp.stories.js +63 -75
  122. package/src/components/footer/footer-nav-menu.css.js +26 -4
  123. package/src/components/footer/footer-nav-menu.js +3 -2
  124. package/src/components/footer/footer.css.js +146 -264
  125. package/src/components/footer/footer.js +176 -106
  126. package/src/components/footer/footer.stories.js +9 -9
  127. package/src/components/footer/localeMap.js +1 -1
  128. package/src/components/grid/grid.css.js +1 -1
  129. package/src/components/grid/grid.js +49 -7
  130. package/src/components/grid/grid.stories.js +111 -0
  131. package/src/components/header/header-code.css.js +61 -51
  132. package/src/components/header/header-code.js +28 -14
  133. package/src/components/header/header-code.stories.js +5 -5
  134. package/src/components/header/header.css.js +655 -176
  135. package/src/components/header/header.js +269 -36
  136. package/src/components/header/header.stories.js +841 -18
  137. package/src/components/heading/heading.css.js +14 -17
  138. package/src/components/heading/heading.js +48 -33
  139. package/src/components/heading/heading.stories.js +27 -25
  140. package/src/components/help-text/help-text.css.js +21 -0
  141. package/src/components/help-text/help-text.js +25 -0
  142. package/src/components/help-text/help-text.stories.js +66 -0
  143. package/src/components/highlight/highlight.css.js +86 -64
  144. package/src/components/highlight/highlight.js +18 -27
  145. package/src/components/highlight/highlight.stories.js +14 -3
  146. package/src/components/icons/analysis-icon.js +6 -16
  147. package/src/components/icons/arrow-down-icon.js +6 -19
  148. package/src/components/icons/arrow-icon.js +44 -0
  149. package/src/components/icons/arrow-right-icon.js +30 -23
  150. package/src/components/icons/arrow-up-icon.js +19 -18
  151. package/src/components/icons/bd-ai-icon.js +1 -1
  152. package/src/components/icons/brand-marks.stories.js +279 -0
  153. package/src/components/icons/brand-signature-icon.js +42 -0
  154. package/src/components/icons/check-icon.js +27 -0
  155. package/src/components/icons/circle-info-icon.js +33 -0
  156. package/src/components/icons/close-icon.js +6 -18
  157. package/src/components/icons/family-icon.js +8 -20
  158. package/src/components/icons/globe-icon.js +6 -18
  159. package/src/components/icons/guide-icon.js +6 -18
  160. package/src/components/icons/icon-element.js +99 -0
  161. package/src/components/icons/icons.js +36 -0
  162. package/src/components/icons/icons.stories.js +184 -52
  163. package/src/components/icons/individual-icon.js +6 -18
  164. package/src/components/icons/laurel-icon.js +9 -19
  165. package/src/components/icons/machine-learning-icon.js +6 -17
  166. package/src/components/icons/marks.js +41 -0
  167. package/src/components/icons/minus-icon.js +7 -21
  168. package/src/components/icons/missing-icon.js +52 -0
  169. package/src/components/icons/plus-icon.js +7 -21
  170. package/src/components/icons/quote-icon.js +19 -19
  171. package/src/components/image/image.css.js +72 -25
  172. package/src/components/image/image.js +11 -6
  173. package/src/components/image/image.stories.js +2 -2
  174. package/src/components/input/custom-form.stories.js +214 -62
  175. package/src/components/input/input-clipboard.css.js +51 -144
  176. package/src/components/input/input-clipboard.js +31 -15
  177. package/src/components/input/input.css.js +8 -146
  178. package/src/components/input/input.js +93 -38
  179. package/src/components/install-options/install-options.css.js +84 -77
  180. package/src/components/install-options/install-options.js +33 -30
  181. package/src/components/install-options/install-options.stories.js +3 -3
  182. package/src/components/label/label.css.js +35 -0
  183. package/src/components/label/label.js +38 -0
  184. package/src/components/label/label.stories.js +82 -0
  185. package/src/components/light-carousel/light-carousel.css.js +111 -63
  186. package/src/components/light-carousel/light-carousel.js +85 -11
  187. package/src/components/light-carousel/light-carousel.stories.js +126 -82
  188. package/src/components/link/link.css.js +150 -99
  189. package/src/components/link/link.js +86 -11
  190. package/src/components/link/link.stories.js +124 -30
  191. package/src/components/list/list-item/list-item.css.js +74 -22
  192. package/src/components/list/list-item/list-item.js +32 -10
  193. package/src/components/list/list-item/list-item.stories.js +23 -23
  194. package/src/components/list/list.css.js +8 -2
  195. package/src/components/list/list.js +3 -2
  196. package/src/components/list/list.stories.js +222 -0
  197. package/src/components/modal/modal.css.js +114 -24
  198. package/src/components/modal/modal.js +83 -7
  199. package/src/components/modal/modal.stories.js +9 -9
  200. package/src/components/overview/overview.css.js +19 -14
  201. package/src/components/overview/overview.js +6 -5
  202. package/src/components/overview/overview.stories.js +10 -10
  203. package/src/components/page-switcher/page-switcher.css.js +97 -40
  204. package/src/components/page-switcher/page-switcher.js +28 -5
  205. package/src/components/page-switcher/page-switcher.stories.js +95 -0
  206. package/src/components/paragraph/paragraph.css.js +15 -10
  207. package/src/components/paragraph/paragraph.js +41 -44
  208. package/src/components/paragraph/paragraph.stories.js +56 -21
  209. package/src/components/picture/picture.css.js +103 -44
  210. package/src/components/picture/picture.js +100 -30
  211. package/src/components/picture/picture.stories.js +1 -1
  212. package/src/components/pricing-cards/new-pricing-card.js +3 -3
  213. package/src/components/pricing-cards/new-pricing.css.js +24 -15
  214. package/src/components/pricing-cards/pricing-card-actions.css.js +1 -1
  215. package/src/components/pricing-cards/pricing-card-actions.js +3 -4
  216. package/src/components/pricing-cards/pricing-card-container.css.js +3 -3
  217. package/src/components/pricing-cards/pricing-card-container.js +3 -2
  218. package/src/components/pricing-cards/pricing-card-header.css.js +10 -8
  219. package/src/components/pricing-cards/pricing-card-header.js +6 -7
  220. package/src/components/pricing-cards/pricing-card-pricing.css.js +16 -9
  221. package/src/components/pricing-cards/pricing-card-pricing.js +8 -6
  222. package/src/components/pricing-cards/pricing-card-show-more.css.js +11 -3
  223. package/src/components/pricing-cards/pricing-card-show-more.js +8 -3
  224. package/src/components/pricing-cards/pricing-card.css.js +244 -190
  225. package/src/components/pricing-cards/pricing-card.js +54 -70
  226. package/src/components/pricing-cards/pricing-feature-item.css.js +25 -8
  227. package/src/components/pricing-cards/pricing-feature-item.js +8 -3
  228. package/src/components/process-steps/process-steps.css.js +26 -14
  229. package/src/components/process-steps/process-steps.js +23 -6
  230. package/src/components/process-steps/process-steps.stories.js +1 -1
  231. package/src/components/progress/progress.css.js +80 -0
  232. package/src/components/progress/progress.js +42 -0
  233. package/src/components/progress/progress.stories.js +79 -0
  234. package/src/components/quick-answer/quick-answer.css.js +75 -13
  235. package/src/components/quick-answer/quick-answer.js +8 -3
  236. package/src/components/radio/radio.css.js +92 -128
  237. package/src/components/radio/radio.js +106 -127
  238. package/src/components/radio/radio.stories.js +54 -19
  239. package/src/components/review/review-grid.css.js +5 -6
  240. package/src/components/review/review-grid.js +14 -11
  241. package/src/components/review/review.css.js +11 -6
  242. package/src/components/review/review.js +3 -8
  243. package/src/components/shared/ensemble.css.js +93 -0
  244. package/src/components/shared/form-field.css.js +206 -0
  245. package/src/components/shared/prop-vocabulary.js +48 -0
  246. package/src/components/shared/token-scales.js +306 -0
  247. package/src/components/skeleton/skeleton.css.js +34 -0
  248. package/src/components/skeleton/skeleton.js +32 -0
  249. package/src/components/skeleton/skeleton.stories.js +70 -0
  250. package/src/components/spinner/spinner.css.js +62 -0
  251. package/src/components/spinner/spinner.js +38 -0
  252. package/src/components/spinner/spinner.stories.js +92 -0
  253. package/src/components/spotlight-section/spotlight-section.css.js +14 -13
  254. package/src/components/spotlight-section/spotlight-section.js +42 -39
  255. package/src/components/switch/switch.css.js +103 -0
  256. package/src/components/switch/switch.js +44 -0
  257. package/src/components/switch/switch.stories.js +86 -0
  258. package/src/components/tab-list/content-switcher.stories.js +189 -0
  259. package/src/components/tab-list/tab-list.css.js +250 -0
  260. package/src/components/tab-list/tab-list.js +184 -0
  261. package/src/components/tab-list/tab-list.stories.js +221 -0
  262. package/src/components/tabs/tabs.css.js +14 -123
  263. package/src/components/tabs/tabs.js +16 -19
  264. package/src/components/tabs/tabs.stories.js +95 -95
  265. package/src/components/tag/tag.css.js +54 -0
  266. package/src/components/tag/tag.js +32 -0
  267. package/src/components/tag/tag.stories.js +126 -0
  268. package/src/components/terminal/terminal-message.css.js +164 -60
  269. package/src/components/terminal/terminal-message.js +5 -5
  270. package/src/components/terminal/terminal-message.stories.js +70 -1
  271. package/src/components/termsOfUse/terms.css.js +25 -20
  272. package/src/components/termsOfUse/terms.js +13 -9
  273. package/src/components/termsOfUse/terms.stories.js +1 -1
  274. package/src/components/textarea/textarea.css.js +51 -0
  275. package/src/components/textarea/textarea.js +136 -0
  276. package/src/components/textarea/textarea.stories.js +191 -0
  277. package/src/components/tooltip/tooltip.css.js +75 -0
  278. package/src/components/tooltip/tooltip.js +156 -0
  279. package/src/components/tooltip/tooltip.stories.js +161 -0
  280. package/src/components/trust-panel/trust-panel.css.js +85 -33
  281. package/src/components/trust-panel/trust-panel.js +18 -10
  282. package/src/components/trust-panel/trust-panel.stories.js +1 -1
  283. package/src/components/ultimate-security-demo.stories.js +431 -0
  284. package/src/components/video/video.css.js +17 -0
  285. package/src/components/video/video.js +40 -0
  286. package/src/components/video/video.stories.js +106 -0
  287. package/src/components/video-player/video-player.css.js +67 -11
  288. package/src/components/video-player/video-player.js +35 -4
  289. package/src/components/video-player/video-player.stories.js +1 -1
  290. package/src/components/visual-alignment.stories.js +411 -0
  291. package/src/components/visually-hidden/visually-hidden.css.js +24 -0
  292. package/src/components/visually-hidden/visually-hidden.js +16 -0
  293. package/src/components/visually-hidden/visually-hidden.stories.js +56 -0
  294. package/src/stories/Button.stories.js +17 -17
  295. package/src/stories/Header.stories.js +10 -10
  296. package/src/stories/Page.js +1 -1
  297. package/src/stories/Page.stories.js +6 -6
  298. package/src/tokens/borders.stories.js +339 -0
  299. package/src/tokens/color-responsibilities.stories.js +227 -0
  300. package/src/tokens/dark-derivation.js +309 -0
  301. package/src/tokens/dark-findings.js +197 -0
  302. package/src/tokens/dark-mode.stories.js +207 -0
  303. package/src/tokens/dimension.stories.js +251 -0
  304. package/src/tokens/elevation.stories.js +143 -0
  305. package/src/tokens/focus.stories.js +276 -0
  306. package/src/tokens/fonts.css +20 -20
  307. package/src/tokens/fonts.stories.js +354 -374
  308. package/src/tokens/layout.css +25 -11
  309. package/src/tokens/motion.stories.js +231 -0
  310. package/src/tokens/shape.stories.js +272 -0
  311. package/src/tokens/spacing-rhythm.stories.js +359 -0
  312. package/src/tokens/spacing.stories.js +208 -703
  313. package/src/tokens/story-chrome.js +503 -0
  314. package/src/tokens/surfaces.stories.js +224 -0
  315. package/src/tokens/text-on-surface.stories.js +164 -0
  316. package/src/tokens/token-map.js +220 -0
  317. package/src/tokens/token-map.stories.js +257 -0
  318. package/src/tokens/token-purposes.js +266 -0
  319. package/src/tokens/tokens-grid.stories.js +388 -900
  320. package/src/tokens/tokens.css +1633 -1045
  321. package/src/tokens/tokens.js +1130 -492
  322. package/src/tokens/tokens.stories.js +137 -47
  323. package/src/tokens/type-ceiling-words.js +299 -0
  324. package/src/tokens/typography.stories.js +1003 -965
  325. package/src/tokens/vertical-rhythm.stories.js +224 -0
  326. package/src/components/awards/awards-icon.js +0 -56
  327. package/src/components/awards/awards-light.js +0 -240
  328. package/src/components/banner/banner.js +0 -60
  329. package/src/components/banner/banner.stories.js +0 -51
  330. package/src/components/button/icons.js +0 -24
  331. package/src/components/input/index.js +0 -0
  332. package/src/components/light-carousel/light-carousel-simple.css.js +0 -183
  333. package/src/components/light-carousel/light-carousel-simple.js +0 -74
  334. package/src/tokens/colors.js +0 -121
  335. package/src/tokens/typography.css.js +0 -207
  336. package/src/tokens/typography.js +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifestVersion": 1,
3
3
  "package": "@repobit/dex-system-design",
4
- "packageVersion": "0.23.11",
4
+ "packageVersion": "1.0.0",
5
5
  "generatedFrom": [
6
6
  "package.json exports",
7
7
  "Lit static properties",
@@ -10,32 +10,606 @@
10
10
  "notes": [
11
11
  "Import the package export once, then any tag registered by that module can be used in the rendered page.",
12
12
  "Props are expressed as component property names. When attributeName exists, a string-to-HTML renderer should emit that explicit attribute name.",
13
- "Private or state-only Lit properties were intentionally omitted."
13
+ "Private or state-only Lit properties were intentionally omitted.",
14
+ "Prop values for colours, sizes and spacing should be token references (var(--…)) rather than literals; see the per-prop description.",
15
+ "Run `npm run check:manifest` to verify this file against the components."
14
16
  ],
15
17
  "components": [
16
18
  {
17
- "tag": "bd-h",
18
- "packageExport": "./heading",
19
- "module": "./src/components/heading/heading.js",
19
+ "tag": "bd-accordion-bg",
20
+ "packageExport": "./accordion-bg",
21
+ "module": "./src/components/accordion/accordion-bg.js",
22
+ "role": "container",
23
+ "contentModel": "children",
24
+ "children": [
25
+ "bd-accordion-bg-item"
26
+ ],
27
+ "props": [
28
+ {
29
+ "name": "title",
30
+ "type": "string"
31
+ },
32
+ {
33
+ "name": "noBg",
34
+ "type": "boolean"
35
+ },
36
+ {
37
+ "name": "noPadding",
38
+ "type": "boolean"
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "tag": "bd-accordion-bg-item",
44
+ "packageExport": "./accordion-bg",
45
+ "module": "./src/components/accordion/accordion-bg.js",
46
+ "role": "item",
47
+ "contentModel": "children",
48
+ "props": [
49
+ {
50
+ "name": "title",
51
+ "type": "string"
52
+ },
53
+ {
54
+ "name": "open",
55
+ "type": "boolean"
56
+ },
57
+ {
58
+ "name": "noBg",
59
+ "type": "boolean"
60
+ },
61
+ {
62
+ "name": "noPadding",
63
+ "type": "boolean"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "tag": "bd-accordion-item",
69
+ "packageExport": "./accordion",
70
+ "module": "./src/components/accordion/accordion.js",
71
+ "role": "item",
72
+ "contentModel": "children",
73
+ "props": [
74
+ {
75
+ "name": "title",
76
+ "type": "string"
77
+ },
78
+ {
79
+ "name": "open",
80
+ "type": "boolean"
81
+ },
82
+ {
83
+ "name": "chevron",
84
+ "type": "boolean"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "tag": "bd-accordion-section",
90
+ "packageExport": "./accordion",
91
+ "module": "./src/components/accordion/accordion.js",
92
+ "role": "container",
93
+ "contentModel": "children",
94
+ "children": [
95
+ "bd-accordion-item"
96
+ ],
97
+ "props": [
98
+ {
99
+ "name": "title",
100
+ "type": "string"
101
+ },
102
+ {
103
+ "name": "variant",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "name": "guideIcon",
108
+ "type": "string"
109
+ },
110
+ {
111
+ "name": "guideLabel",
112
+ "type": "string"
113
+ },
114
+ {
115
+ "name": "guideHref",
116
+ "type": "string"
117
+ },
118
+ {
119
+ "name": "chevron",
120
+ "type": "boolean"
121
+ }
122
+ ]
123
+ },
124
+ {
125
+ "tag": "bd-ai-icon",
126
+ "packageExport": "./marks",
127
+ "module": "./src/components/icons/marks.js",
128
+ "role": "decoration",
129
+ "contentModel": "none",
130
+ "props": [
131
+ {
132
+ "name": "width",
133
+ "type": "number",
134
+ "description": "Pixel width. A wordmark rather than an icon on a square grid, so it takes no size step."
135
+ },
136
+ {
137
+ "name": "height",
138
+ "type": "number",
139
+ "description": "Pixel height. The aspect ratio matches the artwork at 524.8:62.6."
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "tag": "bd-arrow-icon",
145
+ "packageExport": "./icons",
146
+ "module": "./src/components/icons/icons.js",
147
+ "role": "decoration",
148
+ "contentModel": "none",
149
+ "props": []
150
+ },
151
+ {
152
+ "tag": "bd-circle-info-icon",
153
+ "packageExport": "./icons",
154
+ "module": "./src/components/icons/icons.js",
155
+ "role": "decoration",
156
+ "contentModel": "none",
157
+ "props": [
158
+ {
159
+ "name": "size",
160
+ "type": "string",
161
+ "enum": [
162
+ "xs",
163
+ "sm",
164
+ "md",
165
+ "lg",
166
+ "xl",
167
+ "2xl",
168
+ "3xl"
169
+ ],
170
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
171
+ },
172
+ {
173
+ "name": "color",
174
+ "type": "string",
175
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
176
+ },
177
+ {
178
+ "name": "width",
179
+ "type": "number",
180
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
181
+ },
182
+ {
183
+ "name": "height",
184
+ "type": "number",
185
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
186
+ }
187
+ ]
188
+ },
189
+ {
190
+ "tag": "bd-custom-input-clipboard",
191
+ "packageExport": "./input",
192
+ "module": "./src/components/input/input-clipboard.js",
193
+ "role": "form",
194
+ "contentModel": "none",
195
+ "props": [
196
+ {
197
+ "name": "size",
198
+ "type": "string",
199
+ "enum": [
200
+ "sm",
201
+ "md",
202
+ "lg"
203
+ ],
204
+ "description": "Field size. All three fields share shared/form-field.css.js, so a field of a given size matches a bd-button of the same size on height and radius."
205
+ },
206
+ {
207
+ "name": "label",
208
+ "type": "string"
209
+ },
210
+ {
211
+ "name": "type",
212
+ "type": "string"
213
+ },
214
+ {
215
+ "name": "kind",
216
+ "type": "string",
217
+ "enum": [
218
+ "sm",
219
+ "md",
220
+ "lg"
221
+ ],
222
+ "description": "Field size. Shares shared/form-field.css.js with bd-custom-input and bd-custom-dropdown, so all three are the same height and radius at a given size."
223
+ },
224
+ {
225
+ "name": "placeholder",
226
+ "type": "string"
227
+ },
228
+ {
229
+ "name": "required",
230
+ "type": "boolean"
231
+ },
232
+ {
233
+ "name": "focused",
234
+ "type": "boolean"
235
+ },
236
+ {
237
+ "name": "tooltip",
238
+ "type": "string"
239
+ },
240
+ {
241
+ "name": "invalid",
242
+ "type": "boolean"
243
+ },
244
+ {
245
+ "name": "validated",
246
+ "type": "boolean"
247
+ },
248
+ {
249
+ "name": "disabled",
250
+ "type": "boolean"
251
+ },
252
+ {
253
+ "name": "value",
254
+ "type": "string",
255
+ "description": "The field contents. A paste button sits over the right-hand end and fills it from the clipboard."
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "tag": "bd-alert",
261
+ "packageExport": "./alert",
262
+ "module": "./src/components/alert/alert.js",
20
263
  "role": "content",
21
264
  "contentModel": "text-or-children",
22
265
  "props": [
23
- { "name": "as", "type": "string", "enum": ["h1", "h2", "h3", "h4", "h5", "h6"] },
24
- { "name": "ariaLevel", "type": "number", "attributeName": "aria-level" },
25
- { "name": "padding", "type": "string" },
26
- { "name": "paddingBottom", "type": "string" },
27
- { "name": "fontWeight", "type": "string", "enum": ["", "100", "200", "300", "400", "500", "600", "700", "800", "900", "normal", "bold", "lighter", "bolder"] },
28
- { "name": "color", "type": "string" }
266
+ {
267
+ "name": "tone",
268
+ "type": "string",
269
+ "enum": [
270
+ "info",
271
+ "success",
272
+ "warning",
273
+ "error",
274
+ "neutral"
275
+ ]
276
+ },
277
+ {
278
+ "name": "variant",
279
+ "type": "string",
280
+ "enum": [
281
+ "tint",
282
+ "outline"
283
+ ]
284
+ },
285
+ {
286
+ "name": "heading",
287
+ "type": "string"
288
+ },
289
+ {
290
+ "name": "dismissible",
291
+ "type": "boolean"
292
+ },
293
+ {
294
+ "name": "dismisslabel",
295
+ "type": "string"
296
+ }
29
297
  ]
30
298
  },
31
299
  {
32
- "tag": "bd-p",
33
- "packageExport": "./paragraph",
34
- "module": "./src/components/paragraph/paragraph.js",
300
+ "tag": "bd-analysis-icon",
301
+ "packageExport": "./icons",
302
+ "module": "./src/components/icons/icons.js",
303
+ "role": "decoration",
304
+ "contentModel": "none",
305
+ "props": [
306
+ {
307
+ "name": "size",
308
+ "type": "string",
309
+ "enum": [
310
+ "xs",
311
+ "sm",
312
+ "md",
313
+ "lg",
314
+ "xl",
315
+ "2xl",
316
+ "3xl"
317
+ ],
318
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
319
+ },
320
+ {
321
+ "name": "color",
322
+ "type": "string",
323
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
324
+ },
325
+ {
326
+ "name": "width",
327
+ "type": "number",
328
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
329
+ },
330
+ {
331
+ "name": "height",
332
+ "type": "number",
333
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
334
+ }
335
+ ]
336
+ },
337
+ {
338
+ "tag": "bd-anchor-nav",
339
+ "packageExport": "./anchor",
340
+ "module": "./src/components/anchor/anchor-nav.js",
341
+ "role": "navigation",
342
+ "contentModel": "children",
343
+ "children": [
344
+ "bd-anchor-nav-item"
345
+ ],
346
+ "props": [
347
+ {
348
+ "name": "navLabel",
349
+ "type": "string",
350
+ "attributeName": "aria-label"
351
+ },
352
+ {
353
+ "name": "stickyTop",
354
+ "type": "string",
355
+ "attributeName": "sticky-top",
356
+ "description": "Offset from the top of the viewport while the bar is sticky, e.g. the height of a fixed header above it. A CSS length; default 0px."
357
+ }
358
+ ]
359
+ },
360
+ {
361
+ "tag": "bd-anchor-nav-item",
362
+ "packageExport": "./anchor",
363
+ "module": "./src/components/anchor/anchor-nav.js",
364
+ "role": "item",
365
+ "contentModel": "text-or-children",
366
+ "props": []
367
+ },
368
+ {
369
+ "tag": "bd-arrow-down-icon",
370
+ "packageExport": "./icons",
371
+ "module": "./src/components/icons/icons.js",
372
+ "role": "decoration",
373
+ "contentModel": "none",
374
+ "props": [
375
+ {
376
+ "name": "size",
377
+ "type": "string",
378
+ "enum": [
379
+ "xs",
380
+ "sm",
381
+ "md",
382
+ "lg",
383
+ "xl",
384
+ "2xl",
385
+ "3xl"
386
+ ],
387
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
388
+ },
389
+ {
390
+ "name": "color",
391
+ "type": "string",
392
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
393
+ },
394
+ {
395
+ "name": "width",
396
+ "type": "number",
397
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
398
+ },
399
+ {
400
+ "name": "height",
401
+ "type": "number",
402
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
403
+ }
404
+ ]
405
+ },
406
+ {
407
+ "tag": "bd-arrow-up-icon",
408
+ "packageExport": "./icons",
409
+ "module": "./src/components/icons/icons.js",
410
+ "role": "decoration",
411
+ "contentModel": "none",
412
+ "props": [
413
+ {
414
+ "name": "size",
415
+ "type": "string",
416
+ "enum": [
417
+ "xs",
418
+ "sm",
419
+ "md",
420
+ "lg",
421
+ "xl",
422
+ "2xl",
423
+ "3xl"
424
+ ],
425
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
426
+ },
427
+ {
428
+ "name": "color",
429
+ "type": "string",
430
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
431
+ },
432
+ {
433
+ "name": "width",
434
+ "type": "number",
435
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
436
+ },
437
+ {
438
+ "name": "height",
439
+ "type": "number",
440
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
441
+ }
442
+ ]
443
+ },
444
+ {
445
+ "tag": "bd-av-comparatives-icon",
446
+ "packageExport": "./marks",
447
+ "module": "./src/components/icons/marks.js",
448
+ "role": "decoration",
449
+ "contentModel": "none",
450
+ "props": [
451
+ {
452
+ "name": "width",
453
+ "type": "number",
454
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
455
+ },
456
+ {
457
+ "name": "height",
458
+ "type": "number",
459
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
460
+ }
461
+ ]
462
+ },
463
+ {
464
+ "tag": "bd-avatar",
465
+ "packageExport": "./avatar",
466
+ "module": "./src/components/avatar/avatar.js",
467
+ "role": "media",
468
+ "contentModel": "none",
469
+ "props": [
470
+ {
471
+ "name": "src",
472
+ "type": "string"
473
+ },
474
+ {
475
+ "name": "name",
476
+ "type": "string"
477
+ },
478
+ {
479
+ "name": "size",
480
+ "type": "string",
481
+ "enum": [
482
+ "small",
483
+ "default",
484
+ "large"
485
+ ]
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "tag": "bd-back",
491
+ "packageExport": "./back",
492
+ "module": "./src/components/back/back.js",
493
+ "role": "navigation",
494
+ "contentModel": "none",
495
+ "props": [
496
+ {
497
+ "name": "href",
498
+ "type": "string",
499
+ "description": "Destination of the back link."
500
+ },
501
+ {
502
+ "name": "label",
503
+ "type": "string",
504
+ "description": "Link text. Defaults to \"Back\"."
505
+ },
506
+ {
507
+ "name": "ariaLabel",
508
+ "type": "string",
509
+ "description": "Accessible name for the control, forwarded to the button. Required when label is empty, because an arrow alone is not a name."
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ "tag": "bd-badge",
515
+ "packageExport": "./badge",
516
+ "module": "./src/components/badge/badge.js",
517
+ "role": "content",
518
+ "contentModel": "text-or-children",
519
+ "props": [
520
+ {
521
+ "name": "mode",
522
+ "type": "string",
523
+ "enum": [
524
+ "text",
525
+ "dot",
526
+ "count"
527
+ ],
528
+ "description": "What the badge carries. \"dot\" renders a bare dot and ignores size."
529
+ },
530
+ {
531
+ "name": "size",
532
+ "type": "string",
533
+ "enum": [
534
+ "sm",
535
+ "md",
536
+ "lg"
537
+ ],
538
+ "description": "Type size and padding. No effect when mode is \"dot\"."
539
+ },
540
+ {
541
+ "name": "tone",
542
+ "type": "string",
543
+ "enum": [
544
+ "neutral",
545
+ "brand",
546
+ "success",
547
+ "warning",
548
+ "error",
549
+ "info"
550
+ ],
551
+ "description": "Semantic colour pairing, shared with bd-tag and bd-alert and drawn from the --status-* roles. The earlier names default and primary still map onto neutral and brand."
552
+ },
553
+ {
554
+ "name": "variant",
555
+ "type": "string",
556
+ "enum": [
557
+ "shade",
558
+ "fill"
559
+ ],
560
+ "description": "\"shade\" tints the background and keeps dark text; \"fill\" saturates it."
561
+ },
562
+ {
563
+ "name": "icon",
564
+ "type": "string",
565
+ "enum": [
566
+ "",
567
+ "individual",
568
+ "family"
569
+ ],
570
+ "description": "Optional leading icon. Follows the tone via currentColor."
571
+ },
572
+ {
573
+ "name": "label",
574
+ "type": "string",
575
+ "description": "Accessible name used when mode is \"dot\", which renders no text. Falls back to the tone name."
576
+ }
577
+ ]
578
+ },
579
+ {
580
+ "tag": "bd-best-brands-icon",
581
+ "packageExport": "./marks",
582
+ "module": "./src/components/icons/marks.js",
583
+ "role": "decoration",
584
+ "contentModel": "none",
585
+ "props": [
586
+ {
587
+ "name": "width",
588
+ "type": "number",
589
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
590
+ },
591
+ {
592
+ "name": "height",
593
+ "type": "number",
594
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
595
+ }
596
+ ]
597
+ },
598
+ {
599
+ "tag": "bd-blockquote",
600
+ "packageExport": "./blockquote",
601
+ "module": "./src/components/blockquote/blockquote.js",
35
602
  "role": "content",
36
603
  "contentModel": "text-or-children",
37
604
  "props": [
38
- { "name": "kind", "type": "string" }
605
+ {
606
+ "name": "cite",
607
+ "type": "string"
608
+ },
609
+ {
610
+ "name": "attribution",
611
+ "type": "string"
612
+ }
39
613
  ]
40
614
  },
41
615
  {
@@ -44,16 +618,143 @@
44
618
  "module": "./src/components/button/button.js",
45
619
  "role": "action",
46
620
  "contentModel": "text-or-children",
47
- "events": ["custom-click"],
621
+ "events": [
622
+ "custom-click"
623
+ ],
48
624
  "props": [
49
- { "name": "label", "type": "string" },
50
- { "name": "size", "type": "string", "enum": ["sm", "md", "lg"] },
51
- { "name": "kind", "type": "string", "enum": ["primary", "primary-outline", "outline", "secondary", "danger"] },
52
- { "name": "customClass", "type": "string" },
53
- { "name": "fullWidth", "type": "boolean" },
54
- { "name": "strong", "type": "boolean" },
55
- { "name": "fontSize", "type": "string", "attributeName": "font-size" },
56
- { "name": "fontWeight", "type": "string", "attributeName": "font-weight" }
625
+ {
626
+ "name": "variant",
627
+ "type": "string",
628
+ "enum": [
629
+ "primary",
630
+ "secondary",
631
+ "tertiary",
632
+ "ghost",
633
+ "accent",
634
+ "white",
635
+ "outline-white"
636
+ ],
637
+ "description": "Visual variant. Replaces kind, which meant appearance here and size or marker elsewhere; kind still resolves. tertiary is a blue outline, ghost a dark outline, accent the red conversion fill — red is not a danger signal in this system. white and outline-white are fixed presets for a solid-colour banner and ignore surface on purpose."
638
+ },
639
+ {
640
+ "name": "label",
641
+ "type": "string",
642
+ "description": "Accessible name only, never the visible text. Leave unset so the slotted content names the control. Required with iconOnly, where it is the only name: say what happens (\"Open menu\"), not what the icon shows."
643
+ },
644
+ {
645
+ "name": "size",
646
+ "type": "string",
647
+ "enum": [
648
+ "sm",
649
+ "md",
650
+ "lg"
651
+ ]
652
+ },
653
+ {
654
+ "name": "kind",
655
+ "type": "string",
656
+ "enum": [
657
+ "primary",
658
+ "secondary",
659
+ "tertiary",
660
+ "ghost",
661
+ "accent",
662
+ "white",
663
+ "outline-white"
664
+ ],
665
+ "description": "Visual variant. tertiary is a blue outline, ghost a dark outline, accent the red conversion fill (Buy now and the like) — red is not a danger signal in this system, and there is no danger variant. The earlier values outline, primary-outline, danger and destructive still map onto ghost, tertiary and accent. white and outline-white are fixed presets for a solid-colour banner — they ignore surface on purpose, so do not reach for them on a light page."
666
+ },
667
+ {
668
+ "name": "align",
669
+ "type": "string",
670
+ "enum": [
671
+ "left",
672
+ "center",
673
+ "right"
674
+ ]
675
+ },
676
+ {
677
+ "name": "fullWidth",
678
+ "type": "boolean"
679
+ },
680
+ {
681
+ "name": "strong",
682
+ "type": "boolean",
683
+ "description": "Steps the weight up to semibold."
684
+ },
685
+ {
686
+ "name": "disabled",
687
+ "type": "boolean",
688
+ "description": "On the link this drops the href and sets aria-disabled, since a link has no native disabled state."
689
+ },
690
+ {
691
+ "name": "loading",
692
+ "type": "boolean",
693
+ "description": "Shows a spinner in the variant colour and sets aria-busy. Blocks interaction."
694
+ },
695
+ {
696
+ "name": "fontSize",
697
+ "type": "string",
698
+ "enum": [
699
+ "xxs",
700
+ "xs",
701
+ "sm",
702
+ "base",
703
+ "lg",
704
+ "xl",
705
+ "2xl",
706
+ "3xl",
707
+ "4xl",
708
+ "5xl",
709
+ "6xl",
710
+ "7xl",
711
+ "8xl",
712
+ "9xl"
713
+ ],
714
+ "description": "A type-scale step. Resolves to var(--typography-fontSize-*)."
715
+ },
716
+ {
717
+ "name": "fontWeight",
718
+ "type": "string",
719
+ "enum": [
720
+ "light",
721
+ "normal",
722
+ "medium",
723
+ "semibold",
724
+ "bold"
725
+ ],
726
+ "description": "A weight step. Resolves to var(--typography-fontWeight-*)."
727
+ },
728
+ {
729
+ "name": "surface",
730
+ "type": "string",
731
+ "enum": [
732
+ "light",
733
+ "dark"
734
+ ],
735
+ "description": "The surface the button sits on. Use \"dark\" inside a hero or panel that has a full background colour — on a light page every variant is legible, on a coloured one most are not."
736
+ },
737
+ {
738
+ "name": "shape",
739
+ "type": "string",
740
+ "enum": [
741
+ "default",
742
+ "rounded"
743
+ ],
744
+ "description": "Corner shape. rounded takes --radius-3xl whatever the size; default keeps the size band's radius."
745
+ },
746
+ {
747
+ "name": "noArrow",
748
+ "type": "boolean",
749
+ "attributeName": "no-arrow",
750
+ "description": "The accent variant reveals a trailing arrow on hover and focus; this opts out. No effect on other variants, or while disabled or loading."
751
+ },
752
+ {
753
+ "name": "iconOnly",
754
+ "type": "boolean",
755
+ "attributeName": "icon-only",
756
+ "description": "A circle around one icon instead of a visible label. Slot a bd-*-icon, or leave the slot empty for the arrow. label is required with it, since it is the only accessible name the control has. Every variant, size and surface applies; fullWidth is ignored."
757
+ }
57
758
  ]
58
759
  },
59
760
  {
@@ -62,19 +763,388 @@
62
763
  "module": "./src/components/button/button.js",
63
764
  "role": "action",
64
765
  "contentModel": "text-or-children",
65
- "events": ["custom-click"],
766
+ "events": [
767
+ "custom-click"
768
+ ],
66
769
  "props": [
67
- { "name": "label", "type": "string" },
68
- { "name": "href", "type": "string" },
69
- { "name": "size", "type": "string", "enum": ["sm", "md", "lg"] },
70
- { "name": "kind", "type": "string", "enum": ["primary", "primary-outline", "outline", "secondary", "danger"] },
71
- { "name": "customClass", "type": "string" },
72
- { "name": "fullWidth", "type": "boolean" },
73
- { "name": "strong", "type": "boolean" },
74
- { "name": "fontSize", "type": "string", "attributeName": "font-size" },
75
- { "name": "fontWeight", "type": "string", "attributeName": "font-weight" },
76
- { "name": "buyLink", "type": "boolean" },
77
- { "name": "shadow", "type": "boolean" }
770
+ {
771
+ "name": "variant",
772
+ "type": "string",
773
+ "enum": [
774
+ "primary",
775
+ "secondary",
776
+ "tertiary",
777
+ "ghost",
778
+ "accent",
779
+ "white",
780
+ "outline-white"
781
+ ],
782
+ "description": "Visual variant. Replaces kind, which meant appearance here and size or marker elsewhere; kind still resolves. tertiary is a blue outline, ghost a dark outline, accent the red conversion fill — red is not a danger signal in this system. white and outline-white are fixed presets for a solid-colour banner and ignore surface on purpose."
783
+ },
784
+ {
785
+ "name": "label",
786
+ "type": "string",
787
+ "description": "Accessible name only, never the visible text. Leave unset so the slotted content names the control. Required with iconOnly, where it is the only name: say what happens (\"Open menu\"), not what the icon shows."
788
+ },
789
+ {
790
+ "name": "size",
791
+ "type": "string",
792
+ "enum": [
793
+ "sm",
794
+ "md",
795
+ "lg"
796
+ ]
797
+ },
798
+ {
799
+ "name": "kind",
800
+ "type": "string",
801
+ "enum": [
802
+ "primary",
803
+ "secondary",
804
+ "tertiary",
805
+ "ghost",
806
+ "accent",
807
+ "white",
808
+ "outline-white"
809
+ ],
810
+ "description": "Visual variant. tertiary is a blue outline, ghost a dark outline, accent the red conversion fill (Buy now and the like) — red is not a danger signal in this system, and there is no danger variant. The earlier values outline, primary-outline, danger and destructive still map onto ghost, tertiary and accent. white and outline-white are fixed presets for a solid-colour banner — they ignore surface on purpose, so do not reach for them on a light page."
811
+ },
812
+ {
813
+ "name": "align",
814
+ "type": "string",
815
+ "enum": [
816
+ "left",
817
+ "center",
818
+ "right"
819
+ ]
820
+ },
821
+ {
822
+ "name": "fullWidth",
823
+ "type": "boolean"
824
+ },
825
+ {
826
+ "name": "strong",
827
+ "type": "boolean",
828
+ "description": "Steps the weight up to semibold."
829
+ },
830
+ {
831
+ "name": "disabled",
832
+ "type": "boolean",
833
+ "description": "On the link this drops the href and sets aria-disabled, since a link has no native disabled state."
834
+ },
835
+ {
836
+ "name": "loading",
837
+ "type": "boolean",
838
+ "description": "Shows a spinner in the variant colour and sets aria-busy. Blocks interaction."
839
+ },
840
+ {
841
+ "name": "fontSize",
842
+ "type": "string",
843
+ "enum": [
844
+ "xxs",
845
+ "xs",
846
+ "sm",
847
+ "base",
848
+ "lg",
849
+ "xl",
850
+ "2xl",
851
+ "3xl",
852
+ "4xl",
853
+ "5xl",
854
+ "6xl",
855
+ "7xl",
856
+ "8xl",
857
+ "9xl"
858
+ ],
859
+ "description": "A type-scale step. Resolves to var(--typography-fontSize-*)."
860
+ },
861
+ {
862
+ "name": "fontWeight",
863
+ "type": "string",
864
+ "enum": [
865
+ "light",
866
+ "normal",
867
+ "medium",
868
+ "semibold",
869
+ "bold"
870
+ ],
871
+ "description": "A weight step. Resolves to var(--typography-fontWeight-*)."
872
+ },
873
+ {
874
+ "name": "href",
875
+ "type": "string",
876
+ "description": "Destination. Omitted from the rendered anchor when empty, disabled or loading."
877
+ },
878
+ {
879
+ "name": "buyLink",
880
+ "type": "boolean",
881
+ "description": "Emits the data-store-render and data-store-buy-link hooks."
882
+ },
883
+ {
884
+ "name": "target",
885
+ "type": "string",
886
+ "description": "Anchor target. \"_blank\" opens a new tab, and rel then defaults to \"noopener noreferrer\"."
887
+ },
888
+ {
889
+ "name": "rel",
890
+ "type": "string",
891
+ "description": "Anchor rel. Overrides the default that target=\"_blank\" supplies."
892
+ },
893
+ {
894
+ "name": "surface",
895
+ "type": "string",
896
+ "enum": [
897
+ "light",
898
+ "dark"
899
+ ],
900
+ "description": "The surface the button sits on. Use \"dark\" inside a hero or panel that has a full background colour — on a light page every variant is legible, on a coloured one most are not."
901
+ },
902
+ {
903
+ "name": "shape",
904
+ "type": "string",
905
+ "enum": [
906
+ "default",
907
+ "rounded"
908
+ ],
909
+ "description": "Corner shape. rounded takes --radius-3xl whatever the size; default keeps the size band's radius."
910
+ },
911
+ {
912
+ "name": "noArrow",
913
+ "type": "boolean",
914
+ "attributeName": "no-arrow",
915
+ "description": "The accent variant reveals a trailing arrow on hover and focus; this opts out. No effect on other variants, or while disabled or loading."
916
+ },
917
+ {
918
+ "name": "iconOnly",
919
+ "type": "boolean",
920
+ "attributeName": "icon-only",
921
+ "description": "A circle around one icon instead of a visible label. Slot a bd-*-icon, or leave the slot empty for the arrow. label is required with it, since it is the only accessible name the control has. Every variant, size and surface applies; fullWidth is ignored."
922
+ }
923
+ ]
924
+ },
925
+ {
926
+ "tag": "bd-caption",
927
+ "packageExport": "./caption",
928
+ "module": "./src/components/caption/caption.js",
929
+ "role": "content",
930
+ "contentModel": "text-or-children",
931
+ "props": [
932
+ {
933
+ "name": "size",
934
+ "type": "string",
935
+ "enum": [
936
+ "default",
937
+ "small"
938
+ ]
939
+ }
940
+ ]
941
+ },
942
+ {
943
+ "tag": "bd-carousel-item",
944
+ "packageExport": "./carousel",
945
+ "module": "./src/components/carousel/carousel.js",
946
+ "role": "item",
947
+ "contentModel": "children",
948
+ "props": [
949
+ {
950
+ "name": "icon",
951
+ "type": "string"
952
+ },
953
+ {
954
+ "name": "title",
955
+ "type": "string"
956
+ },
957
+ {
958
+ "name": "headingLevel",
959
+ "type": "number",
960
+ "attributeName": "heading-level",
961
+ "enum": [
962
+ 1,
963
+ 2,
964
+ 3,
965
+ 4,
966
+ 5,
967
+ 6
968
+ ],
969
+ "description": "Semantic heading level for this component's title. The type scale does not follow it: level is a document-outline decision that belongs to page composition. Sections default to 2, items to 3."
970
+ },
971
+ {
972
+ "name": "modalText",
973
+ "type": "string"
974
+ }
975
+ ]
976
+ },
977
+ {
978
+ "tag": "bd-carousel-section",
979
+ "packageExport": "./carousel",
980
+ "module": "./src/components/carousel/carousel.js",
981
+ "role": "container",
982
+ "contentModel": "children",
983
+ "children": [
984
+ "bd-carousel-item"
985
+ ],
986
+ "props": [
987
+ {
988
+ "name": "title",
989
+ "type": "string"
990
+ },
991
+ {
992
+ "name": "headingLevel",
993
+ "type": "number",
994
+ "attributeName": "heading-level",
995
+ "enum": [
996
+ 1,
997
+ 2,
998
+ 3,
999
+ 4,
1000
+ 5,
1001
+ 6
1002
+ ],
1003
+ "description": "Semantic heading level for this component's title. The type scale does not follow it: level is a document-outline decision that belongs to page composition. Sections default to 2, items to 3."
1004
+ },
1005
+ {
1006
+ "name": "selectedItem",
1007
+ "type": "object"
1008
+ }
1009
+ ]
1010
+ },
1011
+ {
1012
+ "tag": "bd-checkbox",
1013
+ "packageExport": "./checkbox",
1014
+ "module": "./src/components/checkbox/checkbox.js",
1015
+ "role": "form",
1016
+ "contentModel": "text-or-children",
1017
+ "props": [
1018
+ {
1019
+ "name": "name",
1020
+ "type": "string",
1021
+ "description": "Carried on the change event only. This element does NOT participate in form submission — a form containing it yields no FormData entry."
1022
+ },
1023
+ {
1024
+ "name": "value",
1025
+ "type": "string",
1026
+ "description": "Emitted in the change event detail when checked, null when not. Not submitted with a form."
1027
+ },
1028
+ {
1029
+ "name": "checked",
1030
+ "type": "boolean",
1031
+ "description": "Draws a tick. Ignored while indeterminate is set."
1032
+ },
1033
+ {
1034
+ "name": "indeterminate",
1035
+ "type": "boolean",
1036
+ "description": "The mixed state, announced as aria-checked=\"mixed\". Takes precedence over checked. Clicking resolves it to checked, as a native checkbox does."
1037
+ },
1038
+ {
1039
+ "name": "disabled",
1040
+ "type": "boolean",
1041
+ "description": "Blocks interaction, greys the box and label, and sets tabindex=\"-1\"."
1042
+ },
1043
+ {
1044
+ "name": "label",
1045
+ "type": "string",
1046
+ "description": "Label text, and the fallback for the default slot — slotted content wins, so markup such as a link can go inside the label."
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ "tag": "bd-citation",
1052
+ "packageExport": "./annotation",
1053
+ "module": "./src/components/annotation/annotation.js",
1054
+ "role": "content",
1055
+ "contentModel": "text-or-children",
1056
+ "props": [
1057
+ {
1058
+ "name": "href",
1059
+ "type": "string"
1060
+ }
1061
+ ]
1062
+ },
1063
+ {
1064
+ "tag": "bd-close-icon",
1065
+ "packageExport": "./icons",
1066
+ "module": "./src/components/icons/icons.js",
1067
+ "role": "decoration",
1068
+ "contentModel": "none",
1069
+ "props": [
1070
+ {
1071
+ "name": "size",
1072
+ "type": "string",
1073
+ "enum": [
1074
+ "xs",
1075
+ "sm",
1076
+ "md",
1077
+ "lg",
1078
+ "xl",
1079
+ "2xl",
1080
+ "3xl"
1081
+ ],
1082
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
1083
+ },
1084
+ {
1085
+ "name": "color",
1086
+ "type": "string",
1087
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
1088
+ },
1089
+ {
1090
+ "name": "width",
1091
+ "type": "number",
1092
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1093
+ },
1094
+ {
1095
+ "name": "height",
1096
+ "type": "number",
1097
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1098
+ }
1099
+ ]
1100
+ },
1101
+ {
1102
+ "tag": "bd-code",
1103
+ "packageExport": "./code",
1104
+ "module": "./src/components/code/code.js",
1105
+ "role": "content",
1106
+ "contentModel": "text-or-children",
1107
+ "props": [
1108
+ {
1109
+ "name": "block",
1110
+ "type": "boolean",
1111
+ "description": "Renders a <pre><code> block instead of inline <code>. The block scrolls horizontally and is focusable so it can be scrolled from the keyboard."
1112
+ },
1113
+ {
1114
+ "name": "label",
1115
+ "type": "string",
1116
+ "description": "Accessible name for the scrollable block, announced on focus. Defaults to \"Code\". Only used when block is set."
1117
+ }
1118
+ ]
1119
+ },
1120
+ {
1121
+ "tag": "bd-compare-section",
1122
+ "packageExport": "./compare",
1123
+ "module": "./src/components/compare/compare.js",
1124
+ "role": "container",
1125
+ "contentModel": "children",
1126
+ "children": [
1127
+ "compare-card",
1128
+ "compare-bar"
1129
+ ],
1130
+ "props": [
1131
+ {
1132
+ "name": "title",
1133
+ "type": "string"
1134
+ },
1135
+ {
1136
+ "name": "subtitle",
1137
+ "type": "string"
1138
+ },
1139
+ {
1140
+ "name": "columns",
1141
+ "type": "number"
1142
+ },
1143
+ {
1144
+ "name": "gap",
1145
+ "type": "string",
1146
+ "description": "Use a token reference from the spacing scale, e.g. var(--spacing-16)."
1147
+ }
78
1148
  ]
79
1149
  },
80
1150
  {
@@ -84,58 +1154,519 @@
84
1154
  "role": "action",
85
1155
  "contentModel": "none",
86
1156
  "props": [
87
- { "name": "label", "type": "string" },
88
- { "name": "href", "type": "string" }
1157
+ {
1158
+ "name": "variant",
1159
+ "type": "string",
1160
+ "enum": [
1161
+ "primary",
1162
+ "secondary",
1163
+ "tertiary",
1164
+ "ghost",
1165
+ "accent",
1166
+ "white",
1167
+ "outline-white"
1168
+ ],
1169
+ "description": "Visual variant. Replaces kind, which meant appearance here and size or marker elsewhere; kind still resolves. tertiary is a blue outline, ghost a dark outline, accent the red conversion fill — red is not a danger signal in this system. white and outline-white are fixed presets for a solid-colour banner and ignore surface on purpose."
1170
+ },
1171
+ {
1172
+ "name": "label",
1173
+ "type": "string",
1174
+ "description": "Both the visible text and the accessible name for this preset."
1175
+ },
1176
+ {
1177
+ "name": "href",
1178
+ "type": "string"
1179
+ },
1180
+ {
1181
+ "name": "align",
1182
+ "type": "string",
1183
+ "enum": [
1184
+ "left",
1185
+ "center",
1186
+ "right"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "name": "shape",
1191
+ "type": "string",
1192
+ "enum": [
1193
+ "default",
1194
+ "rounded"
1195
+ ],
1196
+ "description": "Corner shape. rounded takes --radius-3xl whatever the size; default keeps the size band's radius."
1197
+ }
89
1198
  ]
90
1199
  },
91
1200
  {
92
- "tag": "bd-link",
93
- "packageExport": "./link",
94
- "module": "./src/components/link/link.js",
1201
+ "tag": "bd-custom-dropdown",
1202
+ "packageExport": "./dropdown",
1203
+ "module": "./src/components/dropdown/dropdown.js",
1204
+ "role": "form",
1205
+ "contentModel": "none",
1206
+ "props": [
1207
+ {
1208
+ "name": "size",
1209
+ "type": "string",
1210
+ "enum": [
1211
+ "sm",
1212
+ "md",
1213
+ "lg"
1214
+ ],
1215
+ "description": "Field size. All three fields share shared/form-field.css.js, so a field of a given size matches a bd-button of the same size on height and radius."
1216
+ },
1217
+ {
1218
+ "name": "label",
1219
+ "type": "string"
1220
+ },
1221
+ {
1222
+ "name": "options",
1223
+ "type": "array"
1224
+ },
1225
+ {
1226
+ "name": "kind",
1227
+ "type": "string"
1228
+ },
1229
+ {
1230
+ "name": "required",
1231
+ "type": "boolean"
1232
+ },
1233
+ {
1234
+ "name": "tooltip",
1235
+ "type": "string"
1236
+ },
1237
+ {
1238
+ "name": "invalid",
1239
+ "type": "boolean"
1240
+ },
1241
+ {
1242
+ "name": "validated",
1243
+ "type": "boolean"
1244
+ },
1245
+ {
1246
+ "name": "disabled",
1247
+ "type": "boolean"
1248
+ }
1249
+ ]
1250
+ },
1251
+ {
1252
+ "tag": "bd-custom-input",
1253
+ "packageExport": "./input",
1254
+ "module": "./src/components/input/input.js",
1255
+ "role": "form",
1256
+ "contentModel": "none",
1257
+ "props": [
1258
+ {
1259
+ "name": "size",
1260
+ "type": "string",
1261
+ "enum": [
1262
+ "sm",
1263
+ "md",
1264
+ "lg"
1265
+ ],
1266
+ "description": "Field size. All three fields share shared/form-field.css.js, so a field of a given size matches a bd-button of the same size on height and radius."
1267
+ },
1268
+ {
1269
+ "name": "label",
1270
+ "type": "string"
1271
+ },
1272
+ {
1273
+ "name": "type",
1274
+ "type": "string"
1275
+ },
1276
+ {
1277
+ "name": "kind",
1278
+ "type": "string"
1279
+ },
1280
+ {
1281
+ "name": "placeholder",
1282
+ "type": "string"
1283
+ },
1284
+ {
1285
+ "name": "required",
1286
+ "type": "boolean"
1287
+ },
1288
+ {
1289
+ "name": "focused",
1290
+ "type": "boolean"
1291
+ },
1292
+ {
1293
+ "name": "tooltip",
1294
+ "type": "string"
1295
+ },
1296
+ {
1297
+ "name": "invalid",
1298
+ "type": "boolean"
1299
+ },
1300
+ {
1301
+ "name": "validated",
1302
+ "type": "boolean"
1303
+ },
1304
+ {
1305
+ "name": "disabled",
1306
+ "type": "boolean"
1307
+ },
1308
+ {
1309
+ "name": "value",
1310
+ "type": "string",
1311
+ "description": "The field contents. Read it here or from the bd-input / bd-change event detail — a native input event retargets to the host, so e.target.value is undefined."
1312
+ },
1313
+ {
1314
+ "name": "name",
1315
+ "type": "string",
1316
+ "description": "Carried on the bd-input and bd-change event detail. NOT submitted with a form — the input lives in a shadow root."
1317
+ },
1318
+ {
1319
+ "name": "inputmode",
1320
+ "type": "string",
1321
+ "enum": [
1322
+ "none",
1323
+ "text",
1324
+ "decimal",
1325
+ "numeric",
1326
+ "tel",
1327
+ "search",
1328
+ "email",
1329
+ "url"
1330
+ ],
1331
+ "description": "Picks the mobile keyboard without changing the field semantics. Prefer inputmode=\"numeric\" on a text field over type=\"number\" for digit strings such as codes and postal codes."
1332
+ },
1333
+ {
1334
+ "name": "autocomplete",
1335
+ "type": "string",
1336
+ "description": "Native autocomplete token, e.g. email, tel, one-time-code, current-password, postal-code. The single biggest usability saving on a phone."
1337
+ },
1338
+ {
1339
+ "name": "enterkeyhint",
1340
+ "type": "string",
1341
+ "enum": [
1342
+ "enter",
1343
+ "done",
1344
+ "go",
1345
+ "next",
1346
+ "previous",
1347
+ "search",
1348
+ "send"
1349
+ ],
1350
+ "description": "Labels the Enter key on a mobile keyboard."
1351
+ }
1352
+ ]
1353
+ },
1354
+ {
1355
+ "tag": "bd-display",
1356
+ "packageExport": "./display",
1357
+ "module": "./src/components/display/display.js",
95
1358
  "role": "content",
96
1359
  "contentModel": "text-or-children",
97
1360
  "props": [
98
- { "name": "href", "type": "string" },
99
- { "name": "target", "type": "string" },
100
- { "name": "kind", "type": "string" },
101
- { "name": "underline", "type": "boolean" },
102
- { "name": "disabled", "type": "boolean" },
103
- { "name": "fontSize", "type": "string", "attributeName": "font-size" },
104
- { "name": "color", "type": "string" }
1361
+ {
1362
+ "name": "variant",
1363
+ "type": "string",
1364
+ "enum": [
1365
+ "sm",
1366
+ "md",
1367
+ "lg",
1368
+ "xl",
1369
+ "xxl",
1370
+ "xxxl"
1371
+ ],
1372
+ "description": "Which display role to render. Larger than the heading scale — for hero and marketing type. Defaults to md, and an unrecognised value lands on md too. md and sm are fluid, clamping to a 30px floor at a 320px viewport; lg (60), xl (72), xxl (96) and xxxl (128) are DESKTOP-ONLY by decision — they render their full size at every width, so a phone breaks the word instead. Pick the step per breakpoint in the composing page. There is no hero value: it and --typography-display-hero-* were retired in a1589e0f."
1373
+ },
1374
+ {
1375
+ "name": "kind",
1376
+ "type": "string",
1377
+ "deprecated": true,
1378
+ "enum": [
1379
+ "sm",
1380
+ "md",
1381
+ "lg",
1382
+ "xl",
1383
+ "xxl",
1384
+ "xxxl"
1385
+ ],
1386
+ "description": "Deprecated alias for `variant`, still resolved so existing markup keeps working. New markup should use `variant`."
1387
+ },
1388
+ {
1389
+ "name": "color",
1390
+ "type": "string",
1391
+ "enum": [
1392
+ "primary",
1393
+ "strong",
1394
+ "muted",
1395
+ "subtle",
1396
+ "inverse",
1397
+ "success",
1398
+ "warning",
1399
+ "error"
1400
+ ],
1401
+ "description": "A semantic colour role, not a CSS colour. Resolves to a palette token; anything else is dropped."
1402
+ },
1403
+ {
1404
+ "name": "align",
1405
+ "type": "string",
1406
+ "enum": [
1407
+ "left",
1408
+ "center",
1409
+ "right"
1410
+ ],
1411
+ "description": "Text alignment."
1412
+ }
105
1413
  ]
106
1414
  },
107
1415
  {
108
- "tag": "bd-img",
109
- "packageExport": "./image",
110
- "module": "./src/components/image/image.js",
111
- "role": "media",
1416
+ "tag": "bd-divider-horizontal",
1417
+ "packageExport": "./divider-horizontal",
1418
+ "module": "./src/components/divider/divider-horizontal.js",
1419
+ "role": "layout",
112
1420
  "contentModel": "none",
113
1421
  "props": [
114
- { "name": "src", "type": "string" },
115
- { "name": "alt", "type": "string" },
116
- { "name": "width", "type": "number" },
117
- { "name": "height", "type": "number" },
118
- { "name": "loading", "type": "string" },
119
- { "name": "fit", "type": "string" },
120
- { "name": "radius", "type": "string" },
121
- { "name": "shadow", "type": "string" }
1422
+ {
1423
+ "name": "width",
1424
+ "type": "string",
1425
+ "description": "Layout length for how far the rule spans, e.g. \"100%\". Not a design-token decision."
1426
+ },
1427
+ {
1428
+ "name": "color",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "primary",
1432
+ "strong",
1433
+ "muted",
1434
+ "subtle",
1435
+ "inverse",
1436
+ "success",
1437
+ "warning",
1438
+ "error"
1439
+ ],
1440
+ "description": "A semantic colour role, not a CSS colour. Resolves to a palette token."
1441
+ },
1442
+ {
1443
+ "name": "opacity",
1444
+ "type": "string"
1445
+ }
122
1446
  ]
123
1447
  },
124
1448
  {
125
- "tag": "bd-picture",
126
- "packageExport": "./picture",
127
- "module": "./src/components/picture/picture.js",
128
- "role": "media",
1449
+ "tag": "bd-divider-vertical",
1450
+ "packageExport": "./divider-vertical",
1451
+ "module": "./src/components/divider/divider-vertical.js",
1452
+ "role": "layout",
1453
+ "contentModel": "none",
1454
+ "props": [
1455
+ {
1456
+ "name": "height",
1457
+ "type": "string",
1458
+ "enum": [
1459
+ "0",
1460
+ "1",
1461
+ "2",
1462
+ "4",
1463
+ "6",
1464
+ "8",
1465
+ "10",
1466
+ "12",
1467
+ "14",
1468
+ "16",
1469
+ "18",
1470
+ "20",
1471
+ "22",
1472
+ "24",
1473
+ "28",
1474
+ "32",
1475
+ "36",
1476
+ "40",
1477
+ "44",
1478
+ "48",
1479
+ "52",
1480
+ "56",
1481
+ "64",
1482
+ "80",
1483
+ "96",
1484
+ "112",
1485
+ "128"
1486
+ ],
1487
+ "description": "A spacing step. Resolves to var(--spacing-N)."
1488
+ },
1489
+ {
1490
+ "name": "thickness",
1491
+ "type": "string"
1492
+ },
1493
+ {
1494
+ "name": "color",
1495
+ "type": "string",
1496
+ "enum": [
1497
+ "primary",
1498
+ "strong",
1499
+ "muted",
1500
+ "subtle",
1501
+ "inverse",
1502
+ "success",
1503
+ "warning",
1504
+ "error"
1505
+ ],
1506
+ "description": "A semantic colour role, not a CSS colour. Resolves to a palette token."
1507
+ },
1508
+ {
1509
+ "name": "opacity",
1510
+ "type": "string"
1511
+ }
1512
+ ]
1513
+ },
1514
+ {
1515
+ "tag": "bd-family-icon",
1516
+ "packageExport": "./icons",
1517
+ "module": "./src/components/icons/icons.js",
1518
+ "role": "decoration",
129
1519
  "contentModel": "none",
130
1520
  "props": [
131
- { "name": "sources", "type": "array" },
132
- { "name": "fallbackSrc", "type": "string" },
133
- { "name": "alt", "type": "string" },
134
- { "name": "width", "type": "number" },
135
- { "name": "height", "type": "number" },
136
- { "name": "loading", "type": "string" },
137
- { "name": "fit", "type": "string" },
138
- { "name": "radius", "type": "string" }
1521
+ {
1522
+ "name": "size",
1523
+ "type": "string",
1524
+ "enum": [
1525
+ "xs",
1526
+ "sm",
1527
+ "md",
1528
+ "lg",
1529
+ "xl",
1530
+ "2xl",
1531
+ "3xl"
1532
+ ],
1533
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
1534
+ },
1535
+ {
1536
+ "name": "color",
1537
+ "type": "string",
1538
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
1539
+ },
1540
+ {
1541
+ "name": "width",
1542
+ "type": "number",
1543
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1544
+ },
1545
+ {
1546
+ "name": "height",
1547
+ "type": "number",
1548
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1549
+ }
1550
+ ]
1551
+ },
1552
+ {
1553
+ "tag": "bd-fieldset",
1554
+ "packageExport": "./fieldset",
1555
+ "module": "./src/components/fieldset/fieldset.js",
1556
+ "role": "container",
1557
+ "contentModel": "children",
1558
+ "props": [
1559
+ {
1560
+ "name": "legend",
1561
+ "type": "string"
1562
+ }
1563
+ ]
1564
+ },
1565
+ {
1566
+ "tag": "bd-footer",
1567
+ "packageExport": "./footer",
1568
+ "module": "./src/components/footer/footer.js",
1569
+ "role": "section",
1570
+ "contentModel": "children",
1571
+ "props": [
1572
+ {
1573
+ "name": "currentLocale",
1574
+ "type": "string"
1575
+ },
1576
+ {
1577
+ "name": "maxColumnsPerRow",
1578
+ "type": "number"
1579
+ }
1580
+ ]
1581
+ },
1582
+ {
1583
+ "tag": "bd-footer-links-group",
1584
+ "packageExport": "./footer-links-group",
1585
+ "module": "./src/components/footer/footer-links-group.js",
1586
+ "role": "item",
1587
+ "contentModel": "children",
1588
+ "props": [
1589
+ {
1590
+ "name": "title",
1591
+ "type": "string"
1592
+ }
1593
+ ]
1594
+ },
1595
+ {
1596
+ "tag": "bd-footer-lp",
1597
+ "packageExport": "./footer-lp",
1598
+ "module": "./src/components/footer/footer-lp.js",
1599
+ "role": "section",
1600
+ "contentModel": "children",
1601
+ "props": [
1602
+ {
1603
+ "name": "currentLocale",
1604
+ "type": "string"
1605
+ }
1606
+ ]
1607
+ },
1608
+ {
1609
+ "tag": "bd-footer-nav",
1610
+ "packageExport": "./footer-nav-menu",
1611
+ "module": "./src/components/footer/footer-nav-menu.js",
1612
+ "role": "item",
1613
+ "contentModel": "children",
1614
+ "props": [
1615
+ {
1616
+ "name": "bold",
1617
+ "type": "boolean"
1618
+ }
1619
+ ]
1620
+ },
1621
+ {
1622
+ "tag": "bd-footnote",
1623
+ "packageExport": "./annotation",
1624
+ "module": "./src/components/annotation/annotation.js",
1625
+ "role": "content",
1626
+ "contentModel": "text-or-children",
1627
+ "props": [
1628
+ {
1629
+ "name": "href",
1630
+ "type": "string"
1631
+ }
1632
+ ]
1633
+ },
1634
+ {
1635
+ "tag": "bd-globe-icon",
1636
+ "packageExport": "./icons",
1637
+ "module": "./src/components/icons/icons.js",
1638
+ "role": "decoration",
1639
+ "contentModel": "none",
1640
+ "props": [
1641
+ {
1642
+ "name": "size",
1643
+ "type": "string",
1644
+ "enum": [
1645
+ "xs",
1646
+ "sm",
1647
+ "md",
1648
+ "lg",
1649
+ "xl",
1650
+ "2xl",
1651
+ "3xl"
1652
+ ],
1653
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
1654
+ },
1655
+ {
1656
+ "name": "color",
1657
+ "type": "string",
1658
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
1659
+ },
1660
+ {
1661
+ "name": "width",
1662
+ "type": "number",
1663
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1664
+ },
1665
+ {
1666
+ "name": "height",
1667
+ "type": "number",
1668
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1669
+ }
139
1670
  ]
140
1671
  },
141
1672
  {
@@ -145,28 +1676,514 @@
145
1676
  "role": "layout",
146
1677
  "contentModel": "children",
147
1678
  "props": [
148
- { "name": "cols", "type": "number" },
149
- { "name": "colsSm", "type": "number" },
150
- { "name": "colsMd", "type": "number" },
151
- { "name": "colsLg", "type": "number" },
152
- { "name": "gap", "type": "string" },
153
- { "name": "align", "type": "string" },
154
- { "name": "justify", "type": "string" },
155
- { "name": "padding", "type": "string" }
1679
+ {
1680
+ "name": "cols",
1681
+ "type": "number"
1682
+ },
1683
+ {
1684
+ "name": "colsSm",
1685
+ "type": "number"
1686
+ },
1687
+ {
1688
+ "name": "colsMd",
1689
+ "type": "number"
1690
+ },
1691
+ {
1692
+ "name": "colsLg",
1693
+ "type": "number"
1694
+ },
1695
+ {
1696
+ "name": "gap",
1697
+ "type": "string",
1698
+ "enum": [
1699
+ "none",
1700
+ "4xs",
1701
+ "3xs",
1702
+ "2xs",
1703
+ "xs",
1704
+ "sm",
1705
+ "md",
1706
+ "lg",
1707
+ "xl",
1708
+ "2xl",
1709
+ "3xl",
1710
+ "4xl",
1711
+ "5xl"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "name": "align",
1716
+ "type": "string"
1717
+ },
1718
+ {
1719
+ "name": "justify",
1720
+ "type": "string"
1721
+ },
1722
+ {
1723
+ "name": "padding",
1724
+ "type": "string",
1725
+ "enum": [
1726
+ "none",
1727
+ "4xs",
1728
+ "3xs",
1729
+ "2xs",
1730
+ "xs",
1731
+ "sm",
1732
+ "md",
1733
+ "lg",
1734
+ "xl",
1735
+ "2xl",
1736
+ "3xl",
1737
+ "4xl",
1738
+ "5xl"
1739
+ ]
1740
+ }
1741
+ ],
1742
+ "notes": [
1743
+ "gap and padding are interpolated into a token name as var(--space-<value>), so only the values listed in enum resolve."
156
1744
  ]
157
1745
  },
158
1746
  {
159
- "tag": "bd-list",
160
- "packageExport": "./list",
161
- "module": "./src/components/list/list.js",
1747
+ "tag": "bd-guide-icon",
1748
+ "packageExport": "./icons",
1749
+ "module": "./src/components/icons/icons.js",
1750
+ "role": "decoration",
1751
+ "contentModel": "none",
1752
+ "props": [
1753
+ {
1754
+ "name": "size",
1755
+ "type": "string",
1756
+ "enum": [
1757
+ "xs",
1758
+ "sm",
1759
+ "md",
1760
+ "lg",
1761
+ "xl",
1762
+ "2xl",
1763
+ "3xl"
1764
+ ],
1765
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
1766
+ },
1767
+ {
1768
+ "name": "color",
1769
+ "type": "string",
1770
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
1771
+ },
1772
+ {
1773
+ "name": "width",
1774
+ "type": "number",
1775
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1776
+ },
1777
+ {
1778
+ "name": "height",
1779
+ "type": "number",
1780
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
1781
+ }
1782
+ ]
1783
+ },
1784
+ {
1785
+ "tag": "bd-h",
1786
+ "packageExport": "./heading",
1787
+ "module": "./src/components/heading/heading.js",
162
1788
  "role": "content",
1789
+ "contentModel": "text-or-children",
1790
+ "props": [
1791
+ {
1792
+ "name": "as",
1793
+ "type": "string",
1794
+ "enum": [
1795
+ "h1",
1796
+ "h2",
1797
+ "h3",
1798
+ "h4",
1799
+ "h5",
1800
+ "h6"
1801
+ ]
1802
+ },
1803
+ {
1804
+ "name": "visualLevel",
1805
+ "type": "string",
1806
+ "attributeName": "visual-level",
1807
+ "enum": [
1808
+ "h1",
1809
+ "h2",
1810
+ "h3",
1811
+ "h4",
1812
+ "h5",
1813
+ "h6"
1814
+ ],
1815
+ "description": "Which step of the heading type scale to render, when it must differ from the semantic level in `as`. Defaults to following `as`."
1816
+ },
1817
+ {
1818
+ "name": "ariaLevel",
1819
+ "type": "number",
1820
+ "attributeName": "aria-level"
1821
+ },
1822
+ {
1823
+ "name": "padding",
1824
+ "type": "string",
1825
+ "enum": [
1826
+ "0",
1827
+ "1",
1828
+ "2",
1829
+ "4",
1830
+ "6",
1831
+ "8",
1832
+ "10",
1833
+ "12",
1834
+ "14",
1835
+ "16",
1836
+ "18",
1837
+ "20",
1838
+ "22",
1839
+ "24",
1840
+ "28",
1841
+ "32",
1842
+ "36",
1843
+ "40",
1844
+ "44",
1845
+ "48",
1846
+ "52",
1847
+ "56",
1848
+ "64",
1849
+ "80",
1850
+ "96",
1851
+ "112",
1852
+ "128"
1853
+ ],
1854
+ "description": "One to four spacing steps, e.g. \"10 0\". Resolves to var(--spacing-N) per part; off-scale values are dropped."
1855
+ },
1856
+ {
1857
+ "name": "paddingBottom",
1858
+ "type": "string",
1859
+ "enum": [
1860
+ "0",
1861
+ "1",
1862
+ "2",
1863
+ "4",
1864
+ "6",
1865
+ "8",
1866
+ "10",
1867
+ "12",
1868
+ "14",
1869
+ "16",
1870
+ "18",
1871
+ "20",
1872
+ "22",
1873
+ "24",
1874
+ "28",
1875
+ "32",
1876
+ "36",
1877
+ "40",
1878
+ "44",
1879
+ "48",
1880
+ "52",
1881
+ "56",
1882
+ "64",
1883
+ "80",
1884
+ "96",
1885
+ "112",
1886
+ "128"
1887
+ ],
1888
+ "description": "A spacing step. Resolves to var(--spacing-N)."
1889
+ },
1890
+ {
1891
+ "name": "fontWeight",
1892
+ "type": "string",
1893
+ "enum": [
1894
+ "light",
1895
+ "normal",
1896
+ "medium",
1897
+ "semibold",
1898
+ "bold"
1899
+ ],
1900
+ "description": "A weight step. Resolves to var(--typography-fontWeight-*)."
1901
+ },
1902
+ {
1903
+ "name": "color",
1904
+ "type": "string",
1905
+ "enum": [
1906
+ "primary",
1907
+ "strong",
1908
+ "muted",
1909
+ "subtle",
1910
+ "inverse",
1911
+ "success",
1912
+ "warning",
1913
+ "error"
1914
+ ],
1915
+ "description": "A semantic colour role, not a CSS colour. Resolves to a palette token."
1916
+ }
1917
+ ]
1918
+ },
1919
+ {
1920
+ "tag": "bd-header",
1921
+ "packageExport": "./header",
1922
+ "module": "./src/components/header/header.js",
1923
+ "role": "section",
1924
+ "contentModel": "none",
1925
+ "props": [
1926
+ {
1927
+ "name": "title",
1928
+ "type": "string"
1929
+ },
1930
+ {
1931
+ "name": "subtitle",
1932
+ "type": "string"
1933
+ },
1934
+ {
1935
+ "name": "description",
1936
+ "type": "string"
1937
+ },
1938
+ {
1939
+ "name": "ctaLabel",
1940
+ "type": "string",
1941
+ "attributeName": "cta-label",
1942
+ "default": "Buy now",
1943
+ "description": "Visible label on the primary CTA. Defaults to the string this component has always rendered; Header / v2 reads \u201cGet Protection\u201d. Which words sell a subscription is purchase-funnel copy, so the page sets it. The primary CTA's destination is not a prop \u2014 it carries buyLink, and @repobit/dex-store injects the buy URL at runtime."
1944
+ },
1945
+ {
1946
+ "name": "ctaSecondaryLabel",
1947
+ "type": "string",
1948
+ "attributeName": "cta-secondary-label",
1949
+ "default": "View more plans",
1950
+ "description": "Visible label on the secondary CTA. Defaults to the string this component has always rendered; Header / v2 reads \u201cStart your 30-day trial\u201d."
1951
+ },
1952
+ {
1953
+ "name": "ctaSecondaryHref",
1954
+ "type": "string",
1955
+ "attributeName": "cta-secondary-href",
1956
+ "description": "Destination for the secondary CTA. NO DEFAULT, and until a page sets one the control is dead: bd-button-link drops the href attribute when this is empty, so the anchor is not focusable, is not a link in the accessibility tree, and does nothing when clicked. It has rendered that way since the component was written. Set it."
1957
+ },
1958
+ {
1959
+ "name": "headingLevel",
1960
+ "type": "string",
1961
+ "attributeName": "heading-level",
1962
+ "enum": [
1963
+ "h1",
1964
+ "h2",
1965
+ "h3",
1966
+ "h4",
1967
+ "h5",
1968
+ "h6"
1969
+ ],
1970
+ "description": "The outline level of the headline. Defaults to h1, which is what a product hero is on the page it leads. The type role is pinned to heading-h1 regardless, so changing this moves the heading in the document outline and does not change how it looks. Anything off the enum falls back to h2 in bd-h."
1971
+ },
1972
+ {
1973
+ "name": "productId",
1974
+ "type": "string",
1975
+ "attributeName": "product-id"
1976
+ },
1977
+ {
1978
+ "name": "devices",
1979
+ "type": "string"
1980
+ },
1981
+ {
1982
+ "name": "subscription",
1983
+ "type": "string"
1984
+ },
1985
+ {
1986
+ "name": "shadow",
1987
+ "type": "boolean",
1988
+ "description": "Reflects as an attribute so @repobit/dex-store-elements will walk this component's shadow root for [data-store-render] and [data-store-hide] nodes \u2014 its SHADOW_HOST_SELECTOR is '[shadow], [data-bd-watch-shadow]'. NOT a styling flag, despite the name. Load-bearing: without it the store-driven price zones never render. Defaults to true; leave it set."
1989
+ },
1990
+ {
1991
+ "name": "dataLayerEvent",
1992
+ "type": "string"
1993
+ }
1994
+ ]
1995
+ },
1996
+ {
1997
+ "tag": "bd-help-text",
1998
+ "packageExport": "./help-text",
1999
+ "module": "./src/components/help-text/help-text.js",
2000
+ "role": "form",
2001
+ "contentModel": "text-or-children",
2002
+ "props": [
2003
+ {
2004
+ "name": "tone",
2005
+ "type": "string",
2006
+ "enum": [
2007
+ "default",
2008
+ "error",
2009
+ "success"
2010
+ ]
2011
+ }
2012
+ ]
2013
+ },
2014
+ {
2015
+ "tag": "bd-highlight",
2016
+ "packageExport": "./highlight",
2017
+ "module": "./src/components/highlight/highlight.js",
2018
+ "role": "section",
163
2019
  "contentModel": "children",
164
2020
  "props": [
165
- { "name": "type", "type": "string" },
166
- { "name": "spacing", "type": "string" },
167
- { "name": "variant", "type": "string" },
168
- { "name": "start", "type": "number" },
169
- { "name": "orientation", "type": "string" }
2021
+ {
2022
+ "name": "highlightText",
2023
+ "type": "string",
2024
+ "attributeName": "highlight-text"
2025
+ },
2026
+ {
2027
+ "name": "subTitle",
2028
+ "type": "string",
2029
+ "attributeName": "sub-title"
2030
+ }
2031
+ ]
2032
+ },
2033
+ {
2034
+ "tag": "bd-img",
2035
+ "packageExport": "./image",
2036
+ "module": "./src/components/image/image.js",
2037
+ "role": "media",
2038
+ "contentModel": "none",
2039
+ "props": [
2040
+ {
2041
+ "name": "src",
2042
+ "type": "string"
2043
+ },
2044
+ {
2045
+ "name": "alt",
2046
+ "type": "string"
2047
+ },
2048
+ {
2049
+ "name": "width",
2050
+ "type": "number",
2051
+ "description": "Intrinsic pixel width for the img element's width attribute — an aspect-ratio hint to the browser, not CSS styling. Omitted when unset."
2052
+ },
2053
+ {
2054
+ "name": "height",
2055
+ "type": "number",
2056
+ "description": "Intrinsic pixel height for the img element's height attribute — an aspect-ratio hint to the browser, not CSS styling. Omitted when unset."
2057
+ },
2058
+ {
2059
+ "name": "loading",
2060
+ "type": "string"
2061
+ },
2062
+ {
2063
+ "name": "fit",
2064
+ "type": "string"
2065
+ },
2066
+ {
2067
+ "name": "radius",
2068
+ "type": "string",
2069
+ "enum": [
2070
+ "none",
2071
+ "sm",
2072
+ "md",
2073
+ "lg",
2074
+ "xl",
2075
+ "2xl",
2076
+ "3xl",
2077
+ "full"
2078
+ ],
2079
+ "description": "A radius step. Applied as a class; off-scale values fall back to \"none\"."
2080
+ },
2081
+ {
2082
+ "name": "shadow",
2083
+ "type": "string"
2084
+ }
2085
+ ]
2086
+ },
2087
+ {
2088
+ "tag": "bd-individual-icon",
2089
+ "packageExport": "./icons",
2090
+ "module": "./src/components/icons/icons.js",
2091
+ "role": "decoration",
2092
+ "contentModel": "none",
2093
+ "props": [
2094
+ {
2095
+ "name": "size",
2096
+ "type": "string",
2097
+ "enum": [
2098
+ "xs",
2099
+ "sm",
2100
+ "md",
2101
+ "lg",
2102
+ "xl",
2103
+ "2xl",
2104
+ "3xl"
2105
+ ],
2106
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
2107
+ },
2108
+ {
2109
+ "name": "color",
2110
+ "type": "string",
2111
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
2112
+ },
2113
+ {
2114
+ "name": "width",
2115
+ "type": "number",
2116
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2117
+ },
2118
+ {
2119
+ "name": "height",
2120
+ "type": "number",
2121
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2122
+ }
2123
+ ]
2124
+ },
2125
+ {
2126
+ "tag": "bd-label",
2127
+ "packageExport": "./label",
2128
+ "module": "./src/components/label/label.js",
2129
+ "role": "form",
2130
+ "contentModel": "text-or-children",
2131
+ "props": [
2132
+ {
2133
+ "name": "size",
2134
+ "type": "string",
2135
+ "enum": [
2136
+ "small",
2137
+ "default",
2138
+ "large"
2139
+ ]
2140
+ },
2141
+ {
2142
+ "name": "for",
2143
+ "type": "string"
2144
+ },
2145
+ {
2146
+ "name": "required",
2147
+ "type": "boolean"
2148
+ }
2149
+ ]
2150
+ },
2151
+ {
2152
+ "tag": "bd-laurel-icon",
2153
+ "packageExport": "./icons",
2154
+ "module": "./src/components/icons/icons.js",
2155
+ "role": "decoration",
2156
+ "contentModel": "none",
2157
+ "props": [
2158
+ {
2159
+ "name": "size",
2160
+ "type": "string",
2161
+ "enum": [
2162
+ "xs",
2163
+ "sm",
2164
+ "md",
2165
+ "lg",
2166
+ "xl",
2167
+ "2xl",
2168
+ "3xl"
2169
+ ],
2170
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
2171
+ },
2172
+ {
2173
+ "name": "color",
2174
+ "type": "string",
2175
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
2176
+ },
2177
+ {
2178
+ "name": "width",
2179
+ "type": "number",
2180
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2181
+ },
2182
+ {
2183
+ "name": "height",
2184
+ "type": "number",
2185
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2186
+ }
170
2187
  ]
171
2188
  },
172
2189
  {
@@ -176,103 +2193,320 @@
176
2193
  "role": "content",
177
2194
  "contentModel": "text-or-children",
178
2195
  "props": [
179
- { "name": "kind", "type": "string" },
180
- { "name": "size", "type": "string" },
181
- { "name": "icon", "type": "string" }
2196
+ {
2197
+ "name": "variant",
2198
+ "type": "string",
2199
+ "enum": [
2200
+ "bullet",
2201
+ "number",
2202
+ "check",
2203
+ "none"
2204
+ ],
2205
+ "description": "The marker this item draws. Replaces kind, which still resolves."
2206
+ },
2207
+ {
2208
+ "name": "kind",
2209
+ "type": "string"
2210
+ },
2211
+ {
2212
+ "name": "size",
2213
+ "type": "string",
2214
+ "enum": [
2215
+ "sm",
2216
+ "md",
2217
+ "lg"
2218
+ ],
2219
+ "description": "A size step. Applied as a class; off-scale values fall back to \"md\"."
2220
+ },
2221
+ {
2222
+ "name": "icon",
2223
+ "type": "string"
2224
+ },
2225
+ {
2226
+ "name": "color",
2227
+ "type": "string"
2228
+ }
182
2229
  ]
183
2230
  },
184
2231
  {
185
- "tag": "bd-badge",
186
- "packageExport": "./badge",
187
- "module": "./src/components/badge/badge.js",
188
- "role": "content",
189
- "contentModel": "text-or-children",
2232
+ "tag": "bd-light-carousel-item",
2233
+ "packageExport": "./light-carousel",
2234
+ "module": "./src/components/light-carousel/light-carousel.js",
2235
+ "role": "item",
2236
+ "contentModel": "children",
190
2237
  "props": [
191
- { "name": "color", "type": "string" },
192
- { "name": "variant", "type": "string" },
193
- { "name": "size", "type": "string" },
194
- { "name": "fontsize", "type": "string" },
195
- { "name": "icon", "type": "string" }
2238
+ {
2239
+ "name": "title",
2240
+ "type": "string"
2241
+ },
2242
+ {
2243
+ "name": "headingLevel",
2244
+ "type": "number",
2245
+ "attributeName": "heading-level",
2246
+ "enum": [
2247
+ 1,
2248
+ 2,
2249
+ 3,
2250
+ 4,
2251
+ 5,
2252
+ 6
2253
+ ],
2254
+ "description": "Semantic heading level for this component's title. The type scale does not follow it: level is a document-outline decision that belongs to page composition. Sections default to 2, items to 3."
2255
+ },
2256
+ {
2257
+ "name": "badge",
2258
+ "type": "string"
2259
+ },
2260
+ {
2261
+ "name": "icon",
2262
+ "type": "string"
2263
+ },
2264
+ {
2265
+ "name": "variant",
2266
+ "type": "string",
2267
+ "enum": [
2268
+ "standard",
2269
+ "simple"
2270
+ ],
2271
+ "default": "standard",
2272
+ "description": "Which value set the stylesheet uses. \"simple\" is four columns with a larger icon, a column-direction header, a centred title and different section padding; it is not \"standard without a badge\". These were two element pairs until P6E.1 -- bd-light-carousel-simple-section and -item -- and are now one pair with this attribute."
2273
+ }
196
2274
  ]
197
2275
  },
198
2276
  {
199
- "tag": "bd-checkbox",
200
- "packageExport": "./checkbox",
201
- "module": "./src/components/checkbox/checkbox.js",
202
- "role": "form",
203
- "contentModel": "none",
2277
+ "tag": "bd-light-carousel-section",
2278
+ "packageExport": "./light-carousel",
2279
+ "module": "./src/components/light-carousel/light-carousel.js",
2280
+ "role": "container",
2281
+ "contentModel": "children",
2282
+ "children": [
2283
+ "bd-light-carousel-item"
2284
+ ],
204
2285
  "props": [
205
- { "name": "name", "type": "string" },
206
- { "name": "value", "type": "string" },
207
- { "name": "checked", "type": "boolean" },
208
- { "name": "disabled", "type": "boolean" },
209
- { "name": "label", "type": "string" }
2286
+ {
2287
+ "name": "title",
2288
+ "type": "string"
2289
+ },
2290
+ {
2291
+ "name": "headingLevel",
2292
+ "type": "number",
2293
+ "attributeName": "heading-level",
2294
+ "enum": [
2295
+ 1,
2296
+ 2,
2297
+ 3,
2298
+ 4,
2299
+ 5,
2300
+ 6
2301
+ ],
2302
+ "description": "Semantic heading level for this component's title. The type scale does not follow it: level is a document-outline decision that belongs to page composition. Sections default to 2, items to 3."
2303
+ },
2304
+ {
2305
+ "name": "variant",
2306
+ "type": "string",
2307
+ "enum": [
2308
+ "standard",
2309
+ "simple"
2310
+ ],
2311
+ "default": "standard",
2312
+ "description": "Which value set the stylesheet uses. \"simple\" is four columns with a larger icon, a column-direction header, a centred title and different section padding; it is not \"standard without a badge\". These were two element pairs until P6E.1 -- bd-light-carousel-simple-section and -item -- and are now one pair with this attribute."
2313
+ }
210
2314
  ]
211
2315
  },
212
2316
  {
213
- "tag": "bd-radio",
214
- "packageExport": "./radio",
215
- "module": "./src/components/radio/radio.js",
216
- "role": "form",
217
- "contentModel": "none",
218
- "events": ["change"],
2317
+ "tag": "bd-link",
2318
+ "packageExport": "./link",
2319
+ "module": "./src/components/link/link.js",
2320
+ "role": "content",
2321
+ "contentModel": "text-or-children",
219
2322
  "props": [
220
- { "name": "name", "type": "string" },
221
- { "name": "value", "type": "string" },
222
- { "name": "checked", "type": "boolean" },
223
- { "name": "disabled", "type": "boolean" },
224
- { "name": "label", "type": "string" }
2323
+ {
2324
+ "name": "variant",
2325
+ "type": "string",
2326
+ "enum": [
2327
+ "primary",
2328
+ "secondary",
2329
+ "subtle",
2330
+ "bold",
2331
+ "danger"
2332
+ ],
2333
+ "description": "Visual variant. Replaces kind, which still resolves. The earlier light value maps onto surface=\"dark\"."
2334
+ },
2335
+ {
2336
+ "name": "surface",
2337
+ "type": "string",
2338
+ "enum": [
2339
+ "light",
2340
+ "dark"
2341
+ ],
2342
+ "description": "The surface the link sits on, as on bd-button. Replaces the earlier kind=\"light\", which described the surface rather than the link and could not be combined with a real kind; that value still maps onto surface=\"dark\"."
2343
+ },
2344
+ {
2345
+ "name": "href",
2346
+ "type": "string"
2347
+ },
2348
+ {
2349
+ "name": "target",
2350
+ "type": "string"
2351
+ },
2352
+ {
2353
+ "name": "kind",
2354
+ "type": "string"
2355
+ },
2356
+ {
2357
+ "name": "underline",
2358
+ "type": "boolean"
2359
+ },
2360
+ {
2361
+ "name": "disabled",
2362
+ "type": "boolean"
2363
+ },
2364
+ {
2365
+ "name": "inline",
2366
+ "type": "boolean",
2367
+ "description": "The link is a run of text inside a sentence, and takes its size, leading, tracking and family from that sentence -- the --typography-link-default-* role, whose values are all inherit. Without it the link uses the standalone role and renders 1rem whatever surrounds it. Mutually exclusive with fontSize, which is not emitted when this is set."
2368
+ },
2369
+ {
2370
+ "name": "fontSize",
2371
+ "type": "string",
2372
+ "enum": [
2373
+ "xxs",
2374
+ "xs",
2375
+ "sm",
2376
+ "base",
2377
+ "lg",
2378
+ "xl",
2379
+ "2xl",
2380
+ "3xl",
2381
+ "4xl",
2382
+ "5xl",
2383
+ "6xl",
2384
+ "7xl",
2385
+ "8xl",
2386
+ "9xl"
2387
+ ],
2388
+ "description": "A type-scale step. Resolves to var(--typography-fontSize-*). For a link standing on its own; an inline link takes the sentence's size instead, so this is ignored when inline is set."
2389
+ },
2390
+ {
2391
+ "name": "color",
2392
+ "type": "string",
2393
+ "enum": [
2394
+ "primary",
2395
+ "strong",
2396
+ "muted",
2397
+ "subtle",
2398
+ "inverse",
2399
+ "success",
2400
+ "warning",
2401
+ "error"
2402
+ ],
2403
+ "description": "A semantic colour role, not a CSS colour. Resolves to a palette token."
2404
+ }
225
2405
  ]
226
2406
  },
227
2407
  {
228
- "tag": "bd-toggle-radio",
229
- "packageExport": "./radio",
230
- "module": "./src/components/radio/radio.js",
231
- "role": "form",
232
- "contentModel": "none",
233
- "events": ["change"],
2408
+ "tag": "bd-list",
2409
+ "packageExport": "./list",
2410
+ "module": "./src/components/list/list.js",
2411
+ "role": "content",
2412
+ "contentModel": "children",
234
2413
  "props": [
235
- { "name": "name", "type": "string" },
236
- { "name": "value", "type": "string" },
237
- { "name": "checked", "type": "boolean" },
238
- { "name": "disabled", "type": "boolean" },
239
- { "name": "label", "type": "string" }
2414
+ {
2415
+ "name": "type",
2416
+ "type": "string"
2417
+ },
2418
+ {
2419
+ "name": "spacing",
2420
+ "type": "string"
2421
+ },
2422
+ {
2423
+ "name": "variant",
2424
+ "type": "string"
2425
+ },
2426
+ {
2427
+ "name": "start",
2428
+ "type": "number"
2429
+ },
2430
+ {
2431
+ "name": "orientation",
2432
+ "type": "string"
2433
+ }
240
2434
  ]
241
2435
  },
242
2436
  {
243
- "tag": "bd-custom-input",
244
- "packageExport": "./input",
245
- "module": "./src/components/input/input.js",
246
- "role": "form",
2437
+ "tag": "bd-machine-learning-icon",
2438
+ "packageExport": "./icons",
2439
+ "module": "./src/components/icons/icons.js",
2440
+ "role": "decoration",
247
2441
  "contentModel": "none",
248
2442
  "props": [
249
- { "name": "label", "type": "string" },
250
- { "name": "type", "type": "string" },
251
- { "name": "kind", "type": "string" },
252
- { "name": "placeholder", "type": "string" },
253
- { "name": "required", "type": "boolean" },
254
- { "name": "focused", "type": "boolean" },
255
- { "name": "tooltip", "type": "string" },
256
- { "name": "invalid", "type": "boolean" },
257
- { "name": "validated", "type": "boolean" },
258
- { "name": "disabled", "type": "boolean" }
2443
+ {
2444
+ "name": "size",
2445
+ "type": "string",
2446
+ "enum": [
2447
+ "xs",
2448
+ "sm",
2449
+ "md",
2450
+ "lg",
2451
+ "xl",
2452
+ "2xl",
2453
+ "3xl"
2454
+ ],
2455
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
2456
+ },
2457
+ {
2458
+ "name": "color",
2459
+ "type": "string",
2460
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
2461
+ },
2462
+ {
2463
+ "name": "width",
2464
+ "type": "number",
2465
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2466
+ },
2467
+ {
2468
+ "name": "height",
2469
+ "type": "number",
2470
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2471
+ }
259
2472
  ]
260
2473
  },
261
2474
  {
262
- "tag": "bd-custom-dropdown",
263
- "packageExport": "./dropdown",
264
- "module": "./src/components/dropdown/dropdown.js",
265
- "role": "form",
2475
+ "tag": "bd-minus-icon",
2476
+ "packageExport": "./icons",
2477
+ "module": "./src/components/icons/icons.js",
2478
+ "role": "decoration",
266
2479
  "contentModel": "none",
267
2480
  "props": [
268
- { "name": "label", "type": "string" },
269
- { "name": "options", "type": "array" },
270
- { "name": "kind", "type": "string" },
271
- { "name": "required", "type": "boolean" },
272
- { "name": "tooltip", "type": "string" },
273
- { "name": "invalid", "type": "boolean" },
274
- { "name": "validated", "type": "boolean" },
275
- { "name": "disabled", "type": "boolean" }
2481
+ {
2482
+ "name": "size",
2483
+ "type": "string",
2484
+ "enum": [
2485
+ "xs",
2486
+ "sm",
2487
+ "md",
2488
+ "lg",
2489
+ "xl",
2490
+ "2xl",
2491
+ "3xl"
2492
+ ],
2493
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
2494
+ },
2495
+ {
2496
+ "name": "color",
2497
+ "type": "string",
2498
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
2499
+ },
2500
+ {
2501
+ "name": "width",
2502
+ "type": "number",
2503
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2504
+ },
2505
+ {
2506
+ "name": "height",
2507
+ "type": "number",
2508
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2509
+ }
276
2510
  ]
277
2511
  },
278
2512
  {
@@ -282,316 +2516,850 @@
282
2516
  "role": "overlay",
283
2517
  "contentModel": "children",
284
2518
  "props": [
285
- { "name": "open", "type": "boolean" },
286
- { "name": "title", "type": "string" },
287
- { "name": "icon", "type": "string" },
288
- { "name": "modalText", "type": "string" }
2519
+ {
2520
+ "name": "open",
2521
+ "type": "boolean"
2522
+ },
2523
+ {
2524
+ "name": "title",
2525
+ "type": "string"
2526
+ },
2527
+ {
2528
+ "name": "icon",
2529
+ "type": "string"
2530
+ },
2531
+ {
2532
+ "name": "modalText",
2533
+ "type": "string"
2534
+ }
289
2535
  ]
290
2536
  },
291
2537
  {
292
- "tag": "bd-divider-horizontal",
293
- "packageExport": "./divider-horizontal",
294
- "module": "./src/components/divider/divider-horizontal.js",
295
- "role": "layout",
296
- "contentModel": "none",
2538
+ "tag": "bd-p",
2539
+ "packageExport": "./paragraph",
2540
+ "module": "./src/components/paragraph/paragraph.js",
2541
+ "role": "content",
2542
+ "contentModel": "text-or-children",
297
2543
  "props": [
298
- { "name": "width", "type": "string" },
299
- { "name": "color", "type": "string" },
300
- { "name": "opacity", "type": "string" }
2544
+ {
2545
+ "name": "variant",
2546
+ "type": "string",
2547
+ "enum": [
2548
+ "xsmall",
2549
+ "small",
2550
+ "regular",
2551
+ "large",
2552
+ "lead"
2553
+ ],
2554
+ "description": "Body type role. Replaces kind, which still resolves."
2555
+ },
2556
+ {
2557
+ "name": "kind",
2558
+ "type": "string",
2559
+ "enum": [
2560
+ "xsmall",
2561
+ "small",
2562
+ "regular",
2563
+ "large",
2564
+ "lead"
2565
+ ],
2566
+ "description": "Type scale step. The stylesheet carries all five; this list had only three."
2567
+ },
2568
+ {
2569
+ "name": "fontFamily",
2570
+ "type": "string",
2571
+ "attributeName": "font-family",
2572
+ "enum": [
2573
+ "sans",
2574
+ "mono"
2575
+ ],
2576
+ "description": "A family step, not a CSS font stack. Resolves to var(--typography-fontFamily-*); an off-scale value is dropped."
2577
+ },
2578
+ {
2579
+ "name": "fontWeight",
2580
+ "type": "string",
2581
+ "attributeName": "font-weight",
2582
+ "enum": [
2583
+ "light",
2584
+ "normal",
2585
+ "medium",
2586
+ "semibold",
2587
+ "bold"
2588
+ ],
2589
+ "description": "A weight step. Resolves to var(--typography-fontWeight-*)."
2590
+ },
2591
+ {
2592
+ "name": "padding",
2593
+ "type": "string",
2594
+ "description": "One to four spacing steps, e.g. \"10 0\". Resolves to var(--spacing-N) per part."
2595
+ },
2596
+ {
2597
+ "name": "paddingTop",
2598
+ "type": "string",
2599
+ "description": "A spacing step. Resolves to var(--spacing-N)."
2600
+ },
2601
+ {
2602
+ "name": "paddingBottom",
2603
+ "type": "string",
2604
+ "description": "A spacing step. Resolves to var(--spacing-N)."
2605
+ },
2606
+ {
2607
+ "name": "fontSize",
2608
+ "type": "string",
2609
+ "enum": [
2610
+ "xxs",
2611
+ "xs",
2612
+ "sm",
2613
+ "base",
2614
+ "lg",
2615
+ "xl",
2616
+ "2xl",
2617
+ "3xl",
2618
+ "4xl",
2619
+ "5xl",
2620
+ "6xl",
2621
+ "7xl",
2622
+ "8xl",
2623
+ "9xl"
2624
+ ],
2625
+ "attributeName": "font-size",
2626
+ "description": "A type-scale step. Resolves to var(--typography-fontSize-*). Prefer variant."
2627
+ },
2628
+ {
2629
+ "name": "letterSpacing",
2630
+ "type": "string",
2631
+ "enum": [
2632
+ "tighter",
2633
+ "tight",
2634
+ "normal",
2635
+ "wide",
2636
+ "wider",
2637
+ "widest"
2638
+ ],
2639
+ "attributeName": "letter-spacing",
2640
+ "description": "A tracking step. Resolves to var(--typography-letterSpacing-*)."
2641
+ },
2642
+ {
2643
+ "name": "color",
2644
+ "type": "string",
2645
+ "enum": [
2646
+ "primary",
2647
+ "strong",
2648
+ "muted",
2649
+ "subtle",
2650
+ "inverse",
2651
+ "success",
2652
+ "warning",
2653
+ "error"
2654
+ ],
2655
+ "description": "A text colour role, the same vocabulary as bd-h. Anything else is dropped."
2656
+ }
301
2657
  ]
302
2658
  },
303
2659
  {
304
- "tag": "bd-divider-vertical",
305
- "packageExport": "./divider-vertical",
306
- "module": "./src/components/divider/divider-vertical.js",
307
- "role": "layout",
2660
+ "tag": "bd-pc-mag-2024-icon",
2661
+ "packageExport": "./marks",
2662
+ "module": "./src/components/icons/marks.js",
2663
+ "role": "decoration",
308
2664
  "contentModel": "none",
309
2665
  "props": [
310
- { "name": "height", "type": "string" },
311
- { "name": "thickness", "type": "string" },
312
- { "name": "color", "type": "string" },
313
- { "name": "opacity", "type": "string" }
2666
+ {
2667
+ "name": "width",
2668
+ "type": "number",
2669
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
2670
+ },
2671
+ {
2672
+ "name": "height",
2673
+ "type": "number",
2674
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
2675
+ }
314
2676
  ]
315
2677
  },
316
2678
  {
317
- "tag": "bd-accordion-section",
318
- "packageExport": "./accordion",
319
- "module": "./src/components/accordion/accordion.js",
320
- "role": "container",
321
- "contentModel": "children",
322
- "children": ["bd-accordion-item"],
2679
+ "tag": "bd-pc-mag-business-icon",
2680
+ "packageExport": "./marks",
2681
+ "module": "./src/components/icons/marks.js",
2682
+ "role": "decoration",
2683
+ "contentModel": "none",
323
2684
  "props": [
324
- { "name": "title", "type": "string" },
325
- { "name": "variant", "type": "string" },
326
- { "name": "guideIcon", "type": "string" },
327
- { "name": "guideLabel", "type": "string" },
328
- { "name": "guideHref", "type": "string" }
2685
+ {
2686
+ "name": "width",
2687
+ "type": "number",
2688
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
2689
+ },
2690
+ {
2691
+ "name": "height",
2692
+ "type": "number",
2693
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
2694
+ }
329
2695
  ]
330
2696
  },
331
2697
  {
332
- "tag": "bd-accordion-item",
333
- "packageExport": "./accordion",
334
- "module": "./src/components/accordion/accordion.js",
335
- "role": "item",
336
- "contentModel": "children",
2698
+ "tag": "bd-pc-mag-icon",
2699
+ "packageExport": "./marks",
2700
+ "module": "./src/components/icons/marks.js",
2701
+ "role": "decoration",
2702
+ "contentModel": "none",
337
2703
  "props": [
338
- { "name": "title", "type": "string" },
339
- { "name": "open", "type": "boolean" }
2704
+ {
2705
+ "name": "width",
2706
+ "type": "number",
2707
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
2708
+ },
2709
+ {
2710
+ "name": "height",
2711
+ "type": "number",
2712
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
2713
+ }
340
2714
  ]
341
2715
  },
342
2716
  {
343
- "tag": "bd-accordion-bg",
344
- "packageExport": "./accordion-bg",
345
- "module": "./src/components/accordion/accordion-bg.js",
346
- "role": "container",
347
- "contentModel": "children",
348
- "children": ["bd-accordion-bg-item"],
2717
+ "tag": "bd-pc-mag-readers-icon",
2718
+ "packageExport": "./marks",
2719
+ "module": "./src/components/icons/marks.js",
2720
+ "role": "decoration",
2721
+ "contentModel": "none",
349
2722
  "props": [
350
- { "name": "title", "type": "string" },
351
- { "name": "noBg", "type": "boolean" }
2723
+ {
2724
+ "name": "width",
2725
+ "type": "number",
2726
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
2727
+ },
2728
+ {
2729
+ "name": "height",
2730
+ "type": "number",
2731
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
2732
+ }
352
2733
  ]
353
2734
  },
354
2735
  {
355
- "tag": "bd-accordion-bg-item",
356
- "packageExport": "./accordion-bg",
357
- "module": "./src/components/accordion/accordion-bg.js",
358
- "role": "item",
359
- "contentModel": "children",
2736
+ "tag": "bd-picture",
2737
+ "packageExport": "./picture",
2738
+ "module": "./src/components/picture/picture.js",
2739
+ "role": "media",
2740
+ "contentModel": "none",
360
2741
  "props": [
361
- { "name": "title", "type": "string" },
362
- { "name": "open", "type": "boolean" },
363
- { "name": "noBg", "type": "boolean" }
2742
+ {
2743
+ "name": "sources",
2744
+ "type": "array"
2745
+ },
2746
+ {
2747
+ "name": "fallbackSrc",
2748
+ "type": "string"
2749
+ },
2750
+ {
2751
+ "name": "alt",
2752
+ "type": "string"
2753
+ },
2754
+ {
2755
+ "name": "width",
2756
+ "type": "number",
2757
+ "description": "Intrinsic pixel width for the img element's width attribute — an aspect-ratio hint to the browser, not CSS styling. Omitted when unset."
2758
+ },
2759
+ {
2760
+ "name": "height",
2761
+ "type": "number",
2762
+ "description": "Intrinsic pixel height for the img element's height attribute — an aspect-ratio hint to the browser, not CSS styling. Omitted when unset."
2763
+ },
2764
+ {
2765
+ "name": "loading",
2766
+ "type": "string"
2767
+ },
2768
+ {
2769
+ "name": "fit",
2770
+ "type": "string"
2771
+ },
2772
+ {
2773
+ "name": "radius",
2774
+ "type": "string",
2775
+ "enum": [
2776
+ "none",
2777
+ "sm",
2778
+ "md",
2779
+ "lg",
2780
+ "xl",
2781
+ "2xl",
2782
+ "3xl",
2783
+ "full"
2784
+ ],
2785
+ "description": "A radius step. Applied as a class; off-scale values fall back to \"none\"."
2786
+ },
2787
+ {
2788
+ "name": "referrerPolicy",
2789
+ "type": "string",
2790
+ "attributeName": "referrer-policy",
2791
+ "description": "Passed to the img's referrerpolicy attribute."
2792
+ }
364
2793
  ]
365
2794
  },
366
2795
  {
367
- "tag": "bd-header",
368
- "packageExport": "./header",
369
- "module": "./src/components/header/header.js",
370
- "role": "section",
2796
+ "tag": "bd-plus-icon",
2797
+ "packageExport": "./icons",
2798
+ "module": "./src/components/icons/icons.js",
2799
+ "role": "decoration",
371
2800
  "contentModel": "none",
372
2801
  "props": [
373
- { "name": "title", "type": "string" },
374
- { "name": "subtitle", "type": "string" },
375
- { "name": "description", "type": "string" },
376
- { "name": "fullPrice", "type": "string" },
377
- { "name": "discount", "type": "string" },
378
- { "name": "finalPrice", "type": "string" },
379
- { "name": "productId", "type": "string" },
380
- { "name": "devices", "type": "string" },
381
- { "name": "subscription", "type": "string" },
382
- { "name": "shadow", "type": "boolean" },
383
- { "name": "dataLayerEvent", "type": "string" }
2802
+ {
2803
+ "name": "size",
2804
+ "type": "string",
2805
+ "enum": [
2806
+ "xs",
2807
+ "sm",
2808
+ "md",
2809
+ "lg",
2810
+ "xl",
2811
+ "2xl",
2812
+ "3xl"
2813
+ ],
2814
+ "description": "A step on the icon scale. Resolves to var(--icon-*-size); an off-scale value falls back to the size the artwork was drawn at."
2815
+ },
2816
+ {
2817
+ "name": "color",
2818
+ "type": "string",
2819
+ "description": "Optional. The artwork is drawn in currentColor, so an icon follows the text it sits beside unless this overrides it."
2820
+ },
2821
+ {
2822
+ "name": "width",
2823
+ "type": "number",
2824
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2825
+ },
2826
+ {
2827
+ "name": "height",
2828
+ "type": "number",
2829
+ "description": "Deprecated — pass size. An explicit pixel size, honoured for callers that still use it."
2830
+ }
384
2831
  ]
385
2832
  },
386
2833
  {
387
- "tag": "bd-footer",
388
- "packageExport": "./footer",
389
- "module": "./src/components/footer/footer.js",
390
- "role": "section",
2834
+ "tag": "bd-pricing-container",
2835
+ "packageExport": "./pricing-cards",
2836
+ "module": "./src/components/pricing-cards/pricing-card.js",
2837
+ "role": "container",
391
2838
  "contentModel": "children",
2839
+ "children": [
2840
+ "pricing-switch",
2841
+ "pricing-card",
2842
+ "pricing-card-family"
2843
+ ],
392
2844
  "props": [
393
- { "name": "currentLocale", "type": "string" },
394
- { "name": "maxColumnsPerRow", "type": "number" }
2845
+ {
2846
+ "name": "planType",
2847
+ "type": "string"
2848
+ },
2849
+ {
2850
+ "name": "locale",
2851
+ "type": "string"
2852
+ },
2853
+ {
2854
+ "name": "currency",
2855
+ "type": "string"
2856
+ },
2857
+ {
2858
+ "name": "shadow",
2859
+ "type": "boolean"
2860
+ }
395
2861
  ]
396
2862
  },
397
2863
  {
398
- "tag": "bd-footer-lp",
399
- "packageExport": "./footer-lp",
400
- "module": "./src/components/footer/footer-lp.js",
401
- "role": "section",
402
- "contentModel": "children",
2864
+ "tag": "bd-progress",
2865
+ "packageExport": "./progress",
2866
+ "module": "./src/components/progress/progress.js",
2867
+ "role": "content",
2868
+ "contentModel": "none",
403
2869
  "props": [
404
- { "name": "currentLocale", "type": "string" }
2870
+ {
2871
+ "name": "value",
2872
+ "type": "number"
2873
+ },
2874
+ {
2875
+ "name": "max",
2876
+ "type": "number"
2877
+ },
2878
+ {
2879
+ "name": "label",
2880
+ "type": "string"
2881
+ },
2882
+ {
2883
+ "name": "tone",
2884
+ "type": "string",
2885
+ "enum": [
2886
+ "info",
2887
+ "success",
2888
+ "error"
2889
+ ]
2890
+ }
405
2891
  ]
406
2892
  },
407
2893
  {
408
- "tag": "bd-footer-links-group",
409
- "packageExport": "./footer-links-group",
410
- "module": "./src/components/footer/footer-links-group.js",
411
- "role": "item",
412
- "contentModel": "children",
2894
+ "tag": "bd-radio",
2895
+ "packageExport": "./radio",
2896
+ "module": "./src/components/radio/radio.js",
2897
+ "role": "form",
2898
+ "contentModel": "text-or-children",
2899
+ "events": [
2900
+ "change"
2901
+ ],
413
2902
  "props": [
414
- { "name": "title", "type": "string" }
2903
+ {
2904
+ "name": "name",
2905
+ "type": "string",
2906
+ "description": "Groups the radios: selecting one clears every other bd-radio with the same name in the same root. Carried on the change event. NOT submitted with a form."
2907
+ },
2908
+ {
2909
+ "name": "value",
2910
+ "type": "string",
2911
+ "description": "Emitted in the change event detail when selected. Not submitted with a form."
2912
+ },
2913
+ {
2914
+ "name": "checked",
2915
+ "type": "boolean",
2916
+ "description": "Whether this option is selected. Exactly one radio per name should be checked."
2917
+ },
2918
+ {
2919
+ "name": "disabled",
2920
+ "type": "boolean",
2921
+ "description": "Blocks selection, greys the circle and label, and removes it from the tab order and from arrow navigation."
2922
+ },
2923
+ {
2924
+ "name": "label",
2925
+ "type": "string",
2926
+ "description": "Label text, and the fallback for the default slot — slotted content wins, so markup such as a link can go inside the label."
2927
+ }
415
2928
  ]
416
2929
  },
417
2930
  {
418
- "tag": "bd-footer-nav",
419
- "packageExport": "./footer-nav-menu",
420
- "module": "./src/components/footer/footer-nav-menu.js",
421
- "role": "item",
422
- "contentModel": "children",
2931
+ "tag": "bd-skeleton",
2932
+ "packageExport": "./skeleton",
2933
+ "module": "./src/components/skeleton/skeleton.js",
2934
+ "role": "content",
2935
+ "contentModel": "none",
423
2936
  "props": [
424
- { "name": "bold", "type": "boolean" }
2937
+ {
2938
+ "name": "lines",
2939
+ "type": "number"
2940
+ },
2941
+ {
2942
+ "name": "shape",
2943
+ "type": "string",
2944
+ "enum": [
2945
+ "line",
2946
+ "title",
2947
+ "circle"
2948
+ ]
2949
+ }
425
2950
  ]
426
2951
  },
427
2952
  {
428
- "tag": "bd-highlight",
429
- "packageExport": "./highlight",
430
- "module": "./src/components/highlight/highlight.js",
431
- "role": "section",
432
- "contentModel": "children",
2953
+ "tag": "bd-spinner",
2954
+ "packageExport": "./spinner",
2955
+ "module": "./src/components/spinner/spinner.js",
2956
+ "role": "content",
2957
+ "contentModel": "none",
433
2958
  "props": [
434
- { "name": "highlightText", "type": "string", "attributeName": "highlight-text" },
435
- { "name": "subTitle", "type": "string", "attributeName": "sub-title" }
2959
+ {
2960
+ "name": "size",
2961
+ "type": "string",
2962
+ "enum": [
2963
+ "small",
2964
+ "default",
2965
+ "large"
2966
+ ]
2967
+ },
2968
+ {
2969
+ "name": "surface",
2970
+ "type": "string",
2971
+ "enum": [
2972
+ "light",
2973
+ "dark"
2974
+ ],
2975
+ "description": "The surface the spinner sits on. Use \"dark\" on a filled panel: the default arc and track are both chosen against a white page."
2976
+ },
2977
+ {
2978
+ "name": "label",
2979
+ "type": "string"
2980
+ }
436
2981
  ]
437
2982
  },
438
2983
  {
439
- "tag": "bd-anchor-nav",
440
- "packageExport": "./anchor",
441
- "module": "./src/components/anchor/anchor-nav.js",
442
- "role": "navigation",
443
- "contentModel": "children",
444
- "children": ["bd-anchor-nav-item"],
445
- "props": [
446
- { "name": "navLabel", "type": "string", "attributeName": "aria-label" }
447
- ]
2984
+ "tag": "bd-sub",
2985
+ "packageExport": "./annotation",
2986
+ "module": "./src/components/annotation/annotation.js",
2987
+ "role": "content",
2988
+ "contentModel": "text-or-children",
2989
+ "props": []
448
2990
  },
449
2991
  {
450
- "tag": "bd-anchor-nav-item",
451
- "packageExport": "./anchor",
452
- "module": "./src/components/anchor/anchor-nav.js",
453
- "role": "item",
2992
+ "tag": "bd-sup",
2993
+ "packageExport": "./annotation",
2994
+ "module": "./src/components/annotation/annotation.js",
2995
+ "role": "content",
454
2996
  "contentModel": "text-or-children",
455
2997
  "props": []
456
2998
  },
457
2999
  {
458
- "tag": "bd-carousel-section",
459
- "packageExport": "./carousel",
460
- "module": "./src/components/carousel/carousel.js",
461
- "role": "container",
462
- "contentModel": "children",
463
- "children": ["bd-carousel-item"],
3000
+ "tag": "bd-switch",
3001
+ "packageExport": "./switch",
3002
+ "module": "./src/components/switch/switch.js",
3003
+ "role": "form",
3004
+ "contentModel": "text-or-children",
3005
+ "events": [
3006
+ "bd-change"
3007
+ ],
464
3008
  "props": [
465
- { "name": "title", "type": "string" },
466
- { "name": "selectedItem", "type": "object" }
3009
+ {
3010
+ "name": "checked",
3011
+ "type": "boolean"
3012
+ },
3013
+ {
3014
+ "name": "disabled",
3015
+ "type": "boolean"
3016
+ },
3017
+ {
3018
+ "name": "label",
3019
+ "type": "string"
3020
+ },
3021
+ {
3022
+ "name": "name",
3023
+ "type": "string"
3024
+ }
467
3025
  ]
468
3026
  },
469
3027
  {
470
- "tag": "bd-carousel-item",
471
- "packageExport": "./carousel",
472
- "module": "./src/components/carousel/carousel.js",
473
- "role": "item",
474
- "contentModel": "children",
3028
+ "tag": "bd-tab-list",
3029
+ "packageExport": "./tab-list",
3030
+ "module": "./src/components/tab-list/tab-list.js",
3031
+ "role": "navigation",
3032
+ "contentModel": "empty",
3033
+ "events": [
3034
+ "bd-tab-select"
3035
+ ],
475
3036
  "props": [
476
- { "name": "icon", "type": "string" },
477
- { "name": "title", "type": "string" },
478
- { "name": "modalText", "type": "string" }
3037
+ {
3038
+ "name": "tabs",
3039
+ "type": "array"
3040
+ },
3041
+ {
3042
+ "name": "selected",
3043
+ "type": "number"
3044
+ },
3045
+ {
3046
+ "name": "label",
3047
+ "type": "string"
3048
+ },
3049
+ {
3050
+ "name": "panelId",
3051
+ "type": "string"
3052
+ },
3053
+ {
3054
+ "name": "idPrefix",
3055
+ "type": "string"
3056
+ },
3057
+ {
3058
+ "name": "appearance",
3059
+ "type": "string",
3060
+ "enum": [
3061
+ "switcher"
3062
+ ],
3063
+ "description": "The skin. Omitted draws the underlined tab strip; \"switcher\" draws the Content Switcher, a pill track with the selected option on a white pill. Same control underneath — role, ARIA and the keyboard pattern are identical."
3064
+ }
479
3065
  ]
480
3066
  },
481
3067
  {
482
- "tag": "bd-light-carousel-section",
483
- "packageExport": "./light-carousel",
484
- "module": "./src/components/light-carousel/light-carousel.js",
485
- "role": "container",
486
- "contentModel": "children",
487
- "children": ["bd-light-carousel-item"],
3068
+ "tag": "bd-tag",
3069
+ "packageExport": "./tag",
3070
+ "module": "./src/components/tag/tag.js",
3071
+ "role": "content",
3072
+ "contentModel": "text-or-children",
488
3073
  "props": [
489
- { "name": "title", "type": "string" }
3074
+ {
3075
+ "name": "tone",
3076
+ "type": "string",
3077
+ "enum": [
3078
+ "neutral",
3079
+ "brand",
3080
+ "success",
3081
+ "warning",
3082
+ "error",
3083
+ "info"
3084
+ ],
3085
+ "description": "Semantic colour pairing, shared with bd-badge and bd-alert and drawn from the --status-* roles."
3086
+ }
490
3087
  ]
491
3088
  },
492
3089
  {
493
- "tag": "bd-light-carousel-item",
494
- "packageExport": "./light-carousel",
495
- "module": "./src/components/light-carousel/light-carousel.js",
496
- "role": "item",
497
- "contentModel": "children",
3090
+ "tag": "bd-terms-section",
3091
+ "packageExport": "./terms",
3092
+ "module": "./src/components/termsOfUse/terms.js",
3093
+ "role": "section",
3094
+ "contentModel": "none",
498
3095
  "props": [
499
- { "name": "title", "type": "string" },
500
- { "name": "badge", "type": "string" },
501
- { "name": "icon", "type": "string" }
3096
+ {
3097
+ "name": "faqs",
3098
+ "type": "array"
3099
+ }
502
3100
  ]
503
3101
  },
504
3102
  {
505
- "tag": "bd-compare-section",
506
- "packageExport": "./compare",
507
- "module": "./src/components/compare/compare.js",
508
- "role": "container",
509
- "contentModel": "children",
510
- "children": ["compare-card", "compare-bar"],
3103
+ "tag": "bd-textarea",
3104
+ "packageExport": "./textarea",
3105
+ "module": "./src/components/textarea/textarea.js",
3106
+ "role": "form",
3107
+ "contentModel": "none",
3108
+ "events": [
3109
+ "bd-input",
3110
+ "bd-change"
3111
+ ],
511
3112
  "props": [
512
- { "name": "title", "type": "string" },
513
- { "name": "subtitle", "type": "string" },
514
- { "name": "columns", "type": "number" },
515
- { "name": "gap", "type": "string" }
3113
+ {
3114
+ "name": "label",
3115
+ "type": "string",
3116
+ "description": "The field's own label. Empty renders no label element at all."
3117
+ },
3118
+ {
3119
+ "name": "size",
3120
+ "type": "string",
3121
+ "enum": [
3122
+ "sm",
3123
+ "md",
3124
+ "lg"
3125
+ ],
3126
+ "description": "Sets padding, type step and radius to match a button or input of the same size. Height still comes from `rows`."
3127
+ },
3128
+ {
3129
+ "name": "value",
3130
+ "type": "string"
3131
+ },
3132
+ {
3133
+ "name": "placeholder",
3134
+ "type": "string"
3135
+ },
3136
+ {
3137
+ "name": "rows",
3138
+ "type": "number"
3139
+ },
3140
+ {
3141
+ "name": "required",
3142
+ "type": "boolean"
3143
+ },
3144
+ {
3145
+ "name": "tooltip",
3146
+ "type": "string",
3147
+ "description": "Help text rendered below the control, and the field's accessible description."
3148
+ },
3149
+ {
3150
+ "name": "invalid",
3151
+ "type": "boolean"
3152
+ },
3153
+ {
3154
+ "name": "validated",
3155
+ "type": "boolean"
3156
+ },
3157
+ {
3158
+ "name": "disabled",
3159
+ "type": "boolean"
3160
+ },
3161
+ {
3162
+ "name": "name",
3163
+ "type": "string"
3164
+ }
516
3165
  ]
517
3166
  },
518
3167
  {
519
- "tag": "compare-card",
520
- "packageExport": "./compare",
521
- "module": "./src/components/compare/compare.js",
522
- "role": "item",
3168
+ "tag": "bd-toggle-radio",
3169
+ "packageExport": "./radio",
3170
+ "module": "./src/components/radio/radio.js",
3171
+ "role": "form",
3172
+ "contentModel": "text-or-children",
3173
+ "events": [
3174
+ "change"
3175
+ ],
3176
+ "props": [
3177
+ {
3178
+ "name": "name",
3179
+ "type": "string",
3180
+ "description": "Carried on the change event only. Unlike bd-radio this element does not group or enforce exclusivity. NOT submitted with a form."
3181
+ },
3182
+ {
3183
+ "name": "value",
3184
+ "type": "string",
3185
+ "description": "Emitted in the change event detail when selected. Not submitted with a form."
3186
+ },
3187
+ {
3188
+ "name": "checked",
3189
+ "type": "boolean",
3190
+ "description": "Whether it is on. Toggles independently of any sibling."
3191
+ },
3192
+ {
3193
+ "name": "disabled",
3194
+ "type": "boolean",
3195
+ "description": "Blocks selection, greys the circle and label, and removes it from the tab order and from arrow navigation."
3196
+ },
3197
+ {
3198
+ "name": "label",
3199
+ "type": "string",
3200
+ "description": "Label text, and the fallback for the default slot — slotted content wins, so markup such as a link can go inside the label."
3201
+ }
3202
+ ],
3203
+ "deprecated": "Circular styling with role=\"checkbox\" and independent toggling — it looks exclusive but is not. Use bd-checkbox."
3204
+ },
3205
+ {
3206
+ "tag": "bd-tooltip",
3207
+ "packageExport": "./tooltip",
3208
+ "module": "./src/components/tooltip/tooltip.js",
3209
+ "role": "overlay",
523
3210
  "contentModel": "children",
524
3211
  "props": [
525
- { "name": "title", "type": "string" },
526
- { "name": "description", "type": "string" },
527
- { "name": "footnote", "type": "string" },
528
- { "name": "footnoteHref", "type": "string", "attributeName": "footnote-href" },
529
- { "name": "iconSrc", "type": "string", "attributeName": "icon-src" },
530
- { "name": "barStretch", "type": "boolean", "attributeName": "bar-stretch" },
531
- { "name": "barFillMin", "type": "number", "attributeName": "bar-fill-min" },
532
- { "name": "barStretchGamma", "type": "number", "attributeName": "bar-stretch-gamma" },
533
- { "name": "chartScale", "type": "number", "attributeName": "chart-scale" }
3212
+ {
3213
+ "name": "text",
3214
+ "type": "string"
3215
+ }
534
3216
  ]
535
3217
  },
536
3218
  {
537
- "tag": "compare-bar",
538
- "packageExport": "./compare",
539
- "module": "./src/components/compare/compare.js",
540
- "role": "item",
3219
+ "tag": "bd-top-product-icon",
3220
+ "packageExport": "./marks",
3221
+ "module": "./src/components/icons/marks.js",
3222
+ "role": "decoration",
541
3223
  "contentModel": "none",
542
3224
  "props": [
543
- { "name": "label", "type": "string" },
544
- { "name": "score", "type": "number" },
545
- { "name": "maxScore", "type": "number", "attributeName": "max-score" },
546
- { "name": "variant", "type": "string" },
547
- { "name": "scoreLabel", "type": "string", "attributeName": "score-label" },
548
- { "name": "referenceScore", "type": "number", "attributeName": "reference-score" },
549
- { "name": "scale", "type": "number" }
3225
+ {
3226
+ "name": "width",
3227
+ "type": "number",
3228
+ "description": "Rendered width in pixels. Defaults differ per icon, so set it explicitly."
3229
+ },
3230
+ {
3231
+ "name": "height",
3232
+ "type": "number",
3233
+ "description": "Rendered height in pixels. Defaults differ per icon, so set it explicitly."
3234
+ }
550
3235
  ]
551
3236
  },
552
3237
  {
553
- "tag": "bd-tabs-component",
554
- "packageExport": "./tabs",
555
- "module": "./src/components/tabs/tabs.js",
556
- "role": "navigation",
3238
+ "tag": "bd-video",
3239
+ "packageExport": "./video",
3240
+ "module": "./src/components/video/video.js",
3241
+ "role": "media",
557
3242
  "contentModel": "children",
558
3243
  "props": [
559
- { "name": "selectedTab", "type": "number" }
3244
+ {
3245
+ "name": "src",
3246
+ "type": "string"
3247
+ },
3248
+ {
3249
+ "name": "poster",
3250
+ "type": "string"
3251
+ },
3252
+ {
3253
+ "name": "controls",
3254
+ "type": "boolean"
3255
+ },
3256
+ {
3257
+ "name": "muted",
3258
+ "type": "boolean"
3259
+ },
3260
+ {
3261
+ "name": "loop",
3262
+ "type": "boolean"
3263
+ }
560
3264
  ]
561
3265
  },
562
3266
  {
563
- "tag": "bd-terms-section",
564
- "packageExport": "./terms",
565
- "module": "./src/components/termsOfUse/terms.js",
566
- "role": "section",
567
- "contentModel": "none",
568
- "props": [
569
- { "name": "faqs", "type": "array" }
570
- ]
3267
+ "tag": "bd-visually-hidden",
3268
+ "packageExport": "./visually-hidden",
3269
+ "module": "./src/components/visually-hidden/visually-hidden.js",
3270
+ "role": "content",
3271
+ "contentModel": "text-or-children",
3272
+ "props": []
571
3273
  },
572
3274
  {
573
- "tag": "bd-pricing-container",
574
- "packageExport": "./pricing-cards",
575
- "module": "./src/components/pricing-cards/pricing-card.js",
576
- "role": "container",
577
- "contentModel": "children",
578
- "children": ["pricing-switch", "pricing-card", "pricing-card-family"],
3275
+ "tag": "compare-bar",
3276
+ "packageExport": "./compare",
3277
+ "module": "./src/components/compare/compare.js",
3278
+ "role": "item",
3279
+ "contentModel": "none",
579
3280
  "props": [
580
- { "name": "planType", "type": "string" },
581
- { "name": "locale", "type": "string" },
582
- { "name": "currency", "type": "string" },
583
- { "name": "shadow", "type": "boolean" }
3281
+ {
3282
+ "name": "label",
3283
+ "type": "string"
3284
+ },
3285
+ {
3286
+ "name": "score",
3287
+ "type": "number"
3288
+ },
3289
+ {
3290
+ "name": "maxScore",
3291
+ "type": "number",
3292
+ "attributeName": "max-score"
3293
+ },
3294
+ {
3295
+ "name": "variant",
3296
+ "type": "string"
3297
+ },
3298
+ {
3299
+ "name": "scoreLabel",
3300
+ "type": "string",
3301
+ "attributeName": "score-label"
3302
+ },
3303
+ {
3304
+ "name": "referenceScore",
3305
+ "type": "number",
3306
+ "attributeName": "reference-score"
3307
+ },
3308
+ {
3309
+ "name": "scale",
3310
+ "type": "number"
3311
+ }
584
3312
  ]
585
3313
  },
586
3314
  {
587
- "tag": "pricing-switch",
588
- "packageExport": "./pricing-cards",
589
- "module": "./src/components/pricing-cards/pricing-card.js",
590
- "role": "control",
591
- "contentModel": "none",
3315
+ "tag": "compare-card",
3316
+ "packageExport": "./compare",
3317
+ "module": "./src/components/compare/compare.js",
3318
+ "role": "item",
3319
+ "contentModel": "children",
592
3320
  "props": [
593
- { "name": "planType", "type": "string" },
594
- { "name": "shadow", "type": "boolean" }
3321
+ {
3322
+ "name": "title",
3323
+ "type": "string"
3324
+ },
3325
+ {
3326
+ "name": "description",
3327
+ "type": "string"
3328
+ },
3329
+ {
3330
+ "name": "footnote",
3331
+ "type": "string"
3332
+ },
3333
+ {
3334
+ "name": "footnoteHref",
3335
+ "type": "string",
3336
+ "attributeName": "footnote-href"
3337
+ },
3338
+ {
3339
+ "name": "iconSrc",
3340
+ "type": "string",
3341
+ "attributeName": "icon-src"
3342
+ },
3343
+ {
3344
+ "name": "barStretch",
3345
+ "type": "boolean",
3346
+ "attributeName": "bar-stretch"
3347
+ },
3348
+ {
3349
+ "name": "barFillMin",
3350
+ "type": "number",
3351
+ "attributeName": "bar-fill-min"
3352
+ },
3353
+ {
3354
+ "name": "barStretchGamma",
3355
+ "type": "number",
3356
+ "attributeName": "bar-stretch-gamma"
3357
+ },
3358
+ {
3359
+ "name": "chartScale",
3360
+ "type": "number",
3361
+ "attributeName": "chart-scale"
3362
+ }
595
3363
  ]
596
3364
  },
597
3365
  {
@@ -601,18 +3369,55 @@
601
3369
  "role": "item",
602
3370
  "contentModel": "children",
603
3371
  "props": [
604
- { "name": "title", "type": "string" },
605
- { "name": "features", "type": "boolean" },
606
- { "name": "privacy", "type": "boolean" },
607
- { "name": "highlight", "type": "boolean" },
608
- { "name": "identity", "type": "boolean" },
609
- { "name": "identityExtended", "type": "boolean" },
610
- { "name": "parentalControl", "type": "boolean" },
611
- { "name": "planType", "type": "string" },
612
- { "name": "productId", "type": "string", "attributeName": "product-id" },
613
- { "name": "locale", "type": "string" },
614
- { "name": "currency", "type": "string" },
615
- { "name": "shadow", "type": "boolean" }
3372
+ {
3373
+ "name": "title",
3374
+ "type": "string"
3375
+ },
3376
+ {
3377
+ "name": "features",
3378
+ "type": "boolean"
3379
+ },
3380
+ {
3381
+ "name": "privacy",
3382
+ "type": "boolean"
3383
+ },
3384
+ {
3385
+ "name": "highlight",
3386
+ "type": "boolean"
3387
+ },
3388
+ {
3389
+ "name": "identity",
3390
+ "type": "boolean"
3391
+ },
3392
+ {
3393
+ "name": "identityExtended",
3394
+ "type": "boolean"
3395
+ },
3396
+ {
3397
+ "name": "parentalControl",
3398
+ "type": "boolean"
3399
+ },
3400
+ {
3401
+ "name": "planType",
3402
+ "type": "string"
3403
+ },
3404
+ {
3405
+ "name": "productId",
3406
+ "type": "string",
3407
+ "attributeName": "product-id"
3408
+ },
3409
+ {
3410
+ "name": "locale",
3411
+ "type": "string"
3412
+ },
3413
+ {
3414
+ "name": "currency",
3415
+ "type": "string"
3416
+ },
3417
+ {
3418
+ "name": "shadow",
3419
+ "type": "boolean"
3420
+ }
616
3421
  ]
617
3422
  },
618
3423
  {
@@ -622,18 +3427,55 @@
622
3427
  "role": "item",
623
3428
  "contentModel": "children",
624
3429
  "props": [
625
- { "name": "title", "type": "string" },
626
- { "name": "features", "type": "boolean" },
627
- { "name": "privacy", "type": "boolean" },
628
- { "name": "highlight", "type": "boolean" },
629
- { "name": "identity", "type": "boolean" },
630
- { "name": "identityExtended", "type": "boolean" },
631
- { "name": "parentalControl", "type": "boolean" },
632
- { "name": "planType", "type": "string" },
633
- { "name": "productId", "type": "string", "attributeName": "product-id" },
634
- { "name": "locale", "type": "string" },
635
- { "name": "currency", "type": "string" },
636
- { "name": "shadow", "type": "boolean" }
3430
+ {
3431
+ "name": "title",
3432
+ "type": "string"
3433
+ },
3434
+ {
3435
+ "name": "features",
3436
+ "type": "boolean"
3437
+ },
3438
+ {
3439
+ "name": "privacy",
3440
+ "type": "boolean"
3441
+ },
3442
+ {
3443
+ "name": "highlight",
3444
+ "type": "boolean"
3445
+ },
3446
+ {
3447
+ "name": "identity",
3448
+ "type": "boolean"
3449
+ },
3450
+ {
3451
+ "name": "identityExtended",
3452
+ "type": "boolean"
3453
+ },
3454
+ {
3455
+ "name": "parentalControl",
3456
+ "type": "boolean"
3457
+ },
3458
+ {
3459
+ "name": "planType",
3460
+ "type": "string"
3461
+ },
3462
+ {
3463
+ "name": "productId",
3464
+ "type": "string",
3465
+ "attributeName": "product-id"
3466
+ },
3467
+ {
3468
+ "name": "locale",
3469
+ "type": "string"
3470
+ },
3471
+ {
3472
+ "name": "currency",
3473
+ "type": "string"
3474
+ },
3475
+ {
3476
+ "name": "shadow",
3477
+ "type": "boolean"
3478
+ }
637
3479
  ]
638
3480
  },
639
3481
  {
@@ -643,52 +3485,99 @@
643
3485
  "role": "subcomponent",
644
3486
  "contentModel": "none",
645
3487
  "props": [
646
- { "name": "features", "type": "array" },
647
- { "name": "shadow", "type": "boolean" }
3488
+ {
3489
+ "name": "features",
3490
+ "type": "array"
3491
+ },
3492
+ {
3493
+ "name": "shadow",
3494
+ "type": "boolean"
3495
+ }
648
3496
  ]
649
3497
  },
650
3498
  {
651
- "tag": "pricing-card-privacy",
3499
+ "tag": "pricing-card-identity",
652
3500
  "packageExport": "./pricing-cards",
653
3501
  "module": "./src/components/pricing-cards/pricing-card.js",
654
3502
  "role": "subcomponent",
655
3503
  "contentModel": "none",
656
3504
  "props": [
657
- { "name": "privacy", "type": "array" },
658
- { "name": "shadow", "type": "boolean" }
3505
+ {
3506
+ "name": "identity",
3507
+ "type": "array"
3508
+ },
3509
+ {
3510
+ "name": "shadow",
3511
+ "type": "boolean"
3512
+ }
659
3513
  ]
660
3514
  },
661
3515
  {
662
- "tag": "pricing-card-identity",
3516
+ "tag": "pricing-card-identity-extended",
663
3517
  "packageExport": "./pricing-cards",
664
3518
  "module": "./src/components/pricing-cards/pricing-card.js",
665
3519
  "role": "subcomponent",
666
3520
  "contentModel": "none",
667
3521
  "props": [
668
- { "name": "identity", "type": "array" },
669
- { "name": "shadow", "type": "boolean" }
3522
+ {
3523
+ "name": "identity",
3524
+ "type": "array"
3525
+ },
3526
+ {
3527
+ "name": "shadow",
3528
+ "type": "boolean"
3529
+ }
670
3530
  ]
671
3531
  },
672
3532
  {
673
- "tag": "pricing-card-identity-extended",
3533
+ "tag": "pricing-card-parental-control",
674
3534
  "packageExport": "./pricing-cards",
675
3535
  "module": "./src/components/pricing-cards/pricing-card.js",
676
3536
  "role": "subcomponent",
677
3537
  "contentModel": "none",
678
3538
  "props": [
679
- { "name": "identity", "type": "array" },
680
- { "name": "shadow", "type": "boolean" }
3539
+ {
3540
+ "name": "parentalControl",
3541
+ "type": "array"
3542
+ },
3543
+ {
3544
+ "name": "shadow",
3545
+ "type": "boolean"
3546
+ }
681
3547
  ]
682
3548
  },
683
3549
  {
684
- "tag": "pricing-card-parental-control",
3550
+ "tag": "pricing-card-privacy",
685
3551
  "packageExport": "./pricing-cards",
686
3552
  "module": "./src/components/pricing-cards/pricing-card.js",
687
3553
  "role": "subcomponent",
688
3554
  "contentModel": "none",
689
3555
  "props": [
690
- { "name": "parentalControl", "type": "array" },
691
- { "name": "shadow", "type": "boolean" }
3556
+ {
3557
+ "name": "privacy",
3558
+ "type": "array"
3559
+ },
3560
+ {
3561
+ "name": "shadow",
3562
+ "type": "boolean"
3563
+ }
3564
+ ]
3565
+ },
3566
+ {
3567
+ "tag": "pricing-switch",
3568
+ "packageExport": "./pricing-cards",
3569
+ "module": "./src/components/pricing-cards/pricing-card.js",
3570
+ "role": "control",
3571
+ "contentModel": "none",
3572
+ "props": [
3573
+ {
3574
+ "name": "planType",
3575
+ "type": "string"
3576
+ },
3577
+ {
3578
+ "name": "shadow",
3579
+ "type": "boolean"
3580
+ }
692
3581
  ]
693
3582
  }
694
3583
  ]