@repobit/dex-system-design 0.25.12 → 0.26.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 +187 -0
  2. package/README.md +131 -8
  3. package/package.json +95 -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
package/CHANGELOG.md CHANGED
@@ -3,6 +3,193 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.26.0](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.25.12...@repobit/dex-system-design@0.26.0) (2026-10-14)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * **DEX-1014:** the ./icons export no longer registers bd-ai-icon,
11
+ bd-av-comparatives-icon, bd-best-brands-icon, bd-pc-mag-icon,
12
+ bd-pc-mag-2024-icon, bd-pc-mag-business-icon, bd-pc-mag-readers-icon or
13
+ bd-top-product-icon. Import ./marks for those, or the individual files.
14
+ component-manifest.json records the new packageExport for all eight.
15
+
16
+ ### Features
17
+
18
+ * **DEX-1014:** a dark mode page in Storybook, because the study only lived in Figma
19
+ * **DEX-1014:** a fixed media frame role, because video and terminal read inverse
20
+ * **DEX-1014:** a token map, because the structural findings had no page to land on
21
+ * **DEX-1014:** add the Content Switcher, and retire the pricing toggle
22
+ * **DEX-1014:** add the ultimate-security demo page, graded by the typography contract
23
+ * **DEX-1014:** adopt the Eclipse icon set, and make focus visible where it was not
24
+ * **DEX-1014:** align bd-progress across all four sources, and gate the class
25
+ * **DEX-1014:** an icon-only button, because the audience cards' arrow had nothing to render it
26
+ * **DEX-1014:** check whether two correct colour roles read against each other
27
+ * **DEX-1014:** close Phase 2's spacing half as scale membership, not role coverage
28
+ * **DEX-1014:** close Phase 3 — private aliases and host selectors, both checked
29
+ * **DEX-1014:** connect the Figma atom library to the elements it describes
30
+ * **DEX-1014:** draw the check and the right chevron, and retire the five glyph icons
31
+ * **DEX-1014:** every token declares its tier, because the tier was being read off the name
32
+ * **DEX-1014:** expose bd-link's anchor as a part
33
+ * **DEX-1014:** extract bd-tab-list atom from the three tab sections
34
+ * **DEX-1014:** flag a stray backtick before it breaks the template
35
+ * **DEX-1014:** gate both coverage axes against a baseline, and share one baseline
36
+ * **DEX-1014:** gate the plan documents against citing what does not exist
37
+ * **DEX-1014:** give control labels a role family, taking NEEDS_ROLE from 39 to 2
38
+ * **DEX-1014:** give the awards section its band, and its cards the edge that follows
39
+ * **DEX-1014:** give the inverse surface the second text step it never had, closes [#0b1626](https://github.com/bitdefender/dex-core/issues/0b1626)
40
+ * **DEX-1014:** give the pricing cards a brand band and a visible edge
41
+ * **DEX-1014:** give the wayfinding family one contract
42
+ * **DEX-1014:** govern spacing-vs-dimension by behaviour rather than by name
43
+ * **DEX-1014:** hold atoms to zero literals, and lint lengths and motion
44
+ * **DEX-1014:** implement the page column once, as bd-ensemble, closes [#4](https://github.com/bitdefender/dex-core/issues/4)
45
+ * **DEX-1014:** land Header / v2's chosen configuration, and give the hero one h1
46
+ * **DEX-1014:** make a missing icon visible, and make the set of owed icons a command
47
+ * **DEX-1014:** make nine type roles fluid, and give the scale a mobile ladder
48
+ * **DEX-1014:** make the card shape a role, and check it
49
+ * **DEX-1014:** map the carousels to Figma
50
+ * **DEX-1014:** map the content surfaces to Figma, closes [#27c93](https://github.com/bitdefender/dex-core/issues/27c93)
51
+ * **DEX-1014:** map the disclosure and overlay components to Figma
52
+ * **DEX-1014:** map the page furniture to Figma, completing the component layer
53
+ * **DEX-1014:** map the wayfinding components to Figma with Code Connect
54
+ * **DEX-1014:** name the boundary eight components had to spell themselves, closes [#151719](https://github.com/bitdefender/dex-core/issues/151719)
55
+ * **DEX-1014:** name the colour, stacking and opacity roles as tokens
56
+ * **DEX-1014:** name the focus-ring and indicator roles as tokens
57
+ * **DEX-1014:** name the surface-container role and document the surface system
58
+ * **DEX-1014:** promote the colour coverage check into the repo, report-only
59
+ * **DEX-1014:** reshape bd-alert to the Eclipse banner, and rebuild the Figma set to match
60
+ * **DEX-1014:** role purposes live in one module, because Figma only restated the code name
61
+ * **DEX-1014:** size the interface icons from the icon scale
62
+ * **DEX-1014:** the avatar disc reads the brand tint, chosen for what it means
63
+ * **DEX-1014:** the header's CTA labels are the page's, and the secondary CTA was dead
64
+ * **DEX-1014:** the header's heading level is the page's to set, not the component's
65
+
66
+ ### Bug Fixes
67
+
68
+ * **DEX-1014:** a self-test may not assert what the checkout happens to be
69
+ * **DEX-1014:** act on the drift audit — nine dead rules, seven motion guards, five documents
70
+ * **DEX-1014:** align the awards card, and repair the icon values worth repairing
71
+ * **DEX-1014:** align the badge Playground args, unbreaking CI
72
+ * **DEX-1014:** align the highlight end-bar with its background
73
+ * **DEX-1014:** bd-display defaults to md, the largest step that fits every width
74
+ * **DEX-1014:** bound the tooltip bubble so its text stops leaving the page
75
+ * **DEX-1014:** bring the CompareSection card to the card-family corner
76
+ * **DEX-1014:** bring the fourth form control into the form family
77
+ * **DEX-1014:** check the lint baseline both ways, and say what is in it
78
+ * **DEX-1014:** check:docs must not fail on a shallow clone — it broke the branch
79
+ * **DEX-1014:** clean up manifest and package.json exports after tabsComponent removal
80
+ * **DEX-1014:** clear the literals left in the remaining atoms
81
+ * **DEX-1014:** close the contrast census — one real row, two that never rendered
82
+ * **DEX-1014:** close the dark mode palette and primitive findings, light unchanged
83
+ * **DEX-1014:** close the features section at both ends
84
+ * **DEX-1014:** close the findings the component-layer drawings surfaced
85
+ * **DEX-1014:** close the three wayfinding interaction defects
86
+ * **DEX-1014:** close three gaps the Figma atom audit surfaced
87
+ * **DEX-1014:** close two tooling gaps found while evaluating something else
88
+ * **DEX-1014:** correct anchor-nav accessibility and align its motion
89
+ * **DEX-1014:** correct failing text and surface contrast pairs
90
+ * **DEX-1014:** correct the pairing matrix where the matrix was the thing that was wrong
91
+ * **DEX-1014:** count baseline entries instead of just matching them
92
+ * **DEX-1014:** delete the form-input leading token that described the bug
93
+ * **DEX-1014:** disable the paste button to the colour its own field uses
94
+ * **DEX-1014:** end the highlight bars on the background edge
95
+ * **DEX-1014:** finish the tertiary button's contrast decision, on the resting state
96
+ * **DEX-1014:** frozen exempts the architecture mechanism, not the content
97
+ * **DEX-1014:** give every focus ring one owner, and one that can reach its target
98
+ * **DEX-1014:** give the 11px label role the four axes it was missing
99
+ * **DEX-1014:** give the accordion one focus ring, on the control that takes focus
100
+ * **DEX-1014:** give the anchor-nav dropdown the leading its size names
101
+ * **DEX-1014:** give the anchor-nav trigger a control edge, and drop the footer's dead one, closes [#c5c9](https://github.com/bitdefender/dex-core/issues/c5c9) [#88909](https://github.com/bitdefender/dex-core/issues/88909)
102
+ * **DEX-1014:** give the awards section a host selector, for three of five rules
103
+ * **DEX-1014:** give the awards-flex edge a border width, not a spacing step
104
+ * **DEX-1014:** give the back control a name, a type, and a hidden arrow
105
+ * **DEX-1014:** give the banner the typography role it was assembling by hand
106
+ * **DEX-1014:** give the breadcrumb one type size, a weight cue and a real target
107
+ * **DEX-1014:** give the dark theme's bar label the ink for a light fill, closes [#338](https://github.com/bitdefender/dex-core/issues/338) [#151719](https://github.com/bitdefender/dex-core/issues/151719) [#7c3](https://github.com/bitdefender/dex-core/issues/7c3)
108
+ * **DEX-1014:** give the dialog the depth role its siblings already use
109
+ * **DEX-1014:** give the feedback surfaces the roles they were asking for
110
+ * **DEX-1014:** give the light carousel item the family inset at every width
111
+ * **DEX-1014:** give the modal the dialog role its labels were already written for
112
+ * **DEX-1014:** give the modal title back the space its rule could never apply
113
+ * **DEX-1014:** give the process steps headings the ink for their own surface, closes [#0b1626](https://github.com/bitdefender/dex-core/issues/0b1626) [#0b1626](https://github.com/bitdefender/dex-core/issues/0b1626)
114
+ * **DEX-1014:** give the table's text the leading it never declared
115
+ * **DEX-1014:** give the terms link the resting-link ink, not the pressed one
116
+ * **DEX-1014:** give the terms prose a readable measure
117
+ * **DEX-1014:** give the two wrapping texts that had no leading a body role
118
+ * **DEX-1014:** give the video player a focus ring and somewhere for focus to go
119
+ * **DEX-1014:** ink on a fill reads its own role, because the borrowed ones flip in a dark theme, closes [#0059d6](https://github.com/bitdefender/dex-core/issues/0059d6) [#0045](https://github.com/bitdefender/dex-core/issues/0045)
120
+ * **DEX-1014:** keep display typography inside the viewport
121
+ * **DEX-1014:** keep the explicit footer locale ahead of URL inference
122
+ * **DEX-1014:** keep the highlight decorations with their end when it wraps
123
+ * **DEX-1014:** keep the tooltip on screen at container edges
124
+ * **DEX-1014:** keep the tooltip's geometry inside the viewport
125
+ * **DEX-1014:** let a tall modal be reached, and stop it overhanging the phone
126
+ * **DEX-1014:** let an inline link take its sentence's type
127
+ * **DEX-1014:** let documented component attributes reach their properties
128
+ * **DEX-1014:** let the carousel card's edge stop growing with the text
129
+ * **DEX-1014:** let the colour gate see a primitive behind an alias
130
+ * **DEX-1014:** let the grid hear the column attributes it documents
131
+ * **DEX-1014:** let the input state showcase vary only the state
132
+ * **DEX-1014:** let the link's hover underline reach the light surfaces
133
+ * **DEX-1014:** let the list marker follow the leading it centres on
134
+ * **DEX-1014:** let the table own its rows, and its narrow labels come from columns
135
+ * **DEX-1014:** let the three P4B motion sites honour prefers-reduced-motion
136
+ * **DEX-1014:** make a compare-bar work on its own, and take the fill pair for green and red, closes [#c5c9](https://github.com/bitdefender/dex-core/issues/c5c9) [#e1e3e5](https://github.com/bitdefender/dex-core/issues/e1e3e5) [#006](https://github.com/bitdefender/dex-core/issues/006) [#15c14](https://github.com/bitdefender/dex-core/issues/15c14) [#0e8532](https://github.com/bitdefender/dex-core/issues/0e8532) [#ff0000](https://github.com/bitdefender/dex-core/issues/ff0000) [#d60000](https://github.com/bitdefender/dex-core/issues/d60000) [#7c3](https://github.com/bitdefender/dex-core/issues/7c3) [#338](https://github.com/bitdefender/dex-core/issues/338) [#7c3](https://github.com/bitdefender/dex-core/issues/7c3)
137
+ * **DEX-1014:** make compare regions own a resolvable accessible name
138
+ * **DEX-1014:** make the agent-endpoints pill a real button-link
139
+ * **DEX-1014:** make the footer column API honest
140
+ * **DEX-1014:** make the header compose at every width
141
+ * **DEX-1014:** make the two disclosure controls agree, and stop focus tightening a corner
142
+ * **DEX-1014:** match the button and field corner radius at every size
143
+ * **DEX-1014:** meet pagination target-size requirements
144
+ * **DEX-1014:** mirror the highlight decorations vertically and pad both sides
145
+ * **DEX-1014:** name the leadings that were spelled by hand, and delete the ones that reach nothing
146
+ * **DEX-1014:** put a picture on screen
147
+ * **DEX-1014:** put the footer nav's focus ring in the shadow root that holds it
148
+ * **DEX-1014:** put the header on the breakpoint scale, and make the scrim scale with its panel
149
+ * **DEX-1014:** put three no-role markers where they can be read
150
+ * **DEX-1014:** raise the four atom colours that fail WCAG contrast
151
+ * **DEX-1014:** read the form and button spacing tokens as pixels, not steps
152
+ * **DEX-1014:** remove page switcher mobile overflow
153
+ * **DEX-1014:** repair syntax error and unused var from merge conflicts
154
+ * **DEX-1014:** repair the design-system checks after the component merge
155
+ * **DEX-1014:** report a hex no token expresses, not only one a token duplicates, closes [#006](https://github.com/bitdefender/dex-core/issues/006) [#7c3](https://github.com/bitdefender/dex-core/issues/7c3) [#7c3](https://github.com/bitdefender/dex-core/issues/7c3) [#0003](https://github.com/bitdefender/dex-core/issues/0003)
156
+ * **DEX-1014:** resolve brand text through the role, not the blue-500 primitive
157
+ * **DEX-1014:** resolve the awards-flex edge through a border role
158
+ * **DEX-1014:** restore carousel rendering
159
+ * **DEX-1014:** restore terminal message text visibility
160
+ * **DEX-1014:** retire the card's last eleven importants, seven redundant and four unreachable
161
+ * **DEX-1014:** ring the whole disclosure, and let arrows walk the accordion
162
+ * **DEX-1014:** say which kind of current location each nav marks
163
+ * **DEX-1014:** separate heading level from heading size, and land the P4 decisions
164
+ * **DEX-1014:** settle the section-title roles and the last hand-written heading
165
+ * **DEX-1014:** settle three card-family differences that measurement says are not decisions
166
+ * **DEX-1014:** stop six components running off the side of the page
167
+ * **DEX-1014:** stop the awards outline changing with the viewport
168
+ * **DEX-1014:** stop the loading placeholder claiming a contrast exemption
169
+ * **DEX-1014:** stop the runtime self-test asserting machine-specific behaviour
170
+ * **DEX-1014:** stop two components redefining body-regular, and mark the table's raw type
171
+ * **DEX-1014:** synchronize the component layer with the atom and token architecture
172
+ * **DEX-1014:** teach the colour check the spelling this package actually uses
173
+ * **DEX-1014:** text-subtle is a placement rule, because no value clears every ground
174
+ * **DEX-1014:** the branch was red, because check:attributes is not in check:ds
175
+ * **DEX-1014:** the dark mode findings follow the study's renumbering
176
+ * **DEX-1014:** the dark mode text roles render, because bd-p has no colour attribute
177
+ * **DEX-1014:** the footer had the wrong locale key, because Hungary is an English market
178
+ * **DEX-1014:** the info badge reads its own fill, because sharing a value is not sharing a role
179
+ * **DEX-1014:** the mobile ladder holds, and the page that measured it was reading the wrong font
180
+ * **DEX-1014:** the mobile ladder was calibrated on a language we do not sell in
181
+ * **DEX-1014:** the neutral badge takes the heavier tint, because only brand has a reason not to
182
+ * **DEX-1014:** the pairing check could not see a numeric line-height step
183
+ * **DEX-1014:** the token map reads the Surfaces role tables, because moving them hid three reads
184
+ * **DEX-1014:** three colours that were chosen by eye and measured wrong
185
+ * **DEX-1014:** three header defects only the render showed, and a lint rule for the fourth
186
+ * **DEX-1014:** three light-theme contrast failures the dark mode study measured
187
+ * **DEX-28949:** clear the remaining design-system findings from main's code, closes [#2E6BF6](https://github.com/bitdefender/dex-core/issues/2E6BF6)
188
+ * **DEX-28949:** move main's merged-in CSS onto the design tokens
189
+ * **DEX-28949:** put install-options on roles, and make main's atom attributes reach the atoms
190
+ * **DEX-28949:** put terminal-message's log lines on the media roles
191
+
192
+
6
193
  ## [0.25.12](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.25.11...@repobit/dex-system-design@0.25.12) (2026-10-12)
7
194
 
8
195
  **Note:** Version bump only for package @repobit/dex-system-design
package/README.md CHANGED
@@ -1,15 +1,138 @@
1
- # `@repobit/dex-design-system`
1
+ # @repobit/dex-system-design
2
2
 
3
- # Target Integration SDK Documentation
3
+ Design system for Bitdefender web surfaces, built as [Lit](https://lit.dev) web
4
+ components. Every component is a custom element prefixed `bd-`, styled entirely
5
+ from design tokens.
4
6
 
5
- Dex design system shenanigans
7
+ ```bash
8
+ npm install @repobit/dex-system-design
9
+ ```
6
10
 
7
- ---
11
+ ## Using a component
8
12
 
9
- ## Overview
13
+ Import the component you need; importing it registers its custom element and
14
+ installs the design tokens.
10
15
 
11
- The Target Integration SDK is designed to simplify the integration process with Adobe Target and the Adobe Data Layer. It provides a centralized solution for managing visitor identity operations, sending events, appending visitor IDs to URLs, retrieving mbox offers, and fetching Customer Data Platform (CDP) data. The SDK encapsulates these operations within a single abstract class, ensuring that targeting functionalities are cleanly organized and maintainable in your application.
16
+ ```js
17
+ import '@repobit/dex-system-design/button';
18
+ ```
12
19
 
13
- ---
20
+ ```html
21
+ <bd-button kind="primary" size="md">Buy now</bd-button>
22
+ ```
14
23
 
15
- ## Key Features
24
+ Each component is a separate entry point — see the `exports` map in
25
+ `package.json` for the full list. There is no barrel import.
26
+
27
+ ## Tokens
28
+
29
+ Tokens are declared on `:root` in document scope, inside the `bd-tokens`
30
+ cascade layer. Importing any component installs them; nothing else is required.
31
+
32
+ ```css
33
+ .thing {
34
+ padding: var(--spacing-16);
35
+ border-radius: var(--radius-md);
36
+ color: var(--color-neutral-900);
37
+ }
38
+ ```
39
+
40
+ ### Overriding a token
41
+
42
+ Because the tokens sit in a cascade layer, and unlayered CSS beats any layer,
43
+ your own stylesheet wins with no special syntax:
44
+
45
+ ```css
46
+ :root {
47
+ --color-blue-500: #0a58ca;
48
+ }
49
+ ```
50
+
51
+ Dark mode is the same mechanism:
52
+
53
+ ```css
54
+ @media (prefers-color-scheme: dark) {
55
+ :root {
56
+ --color-neutral-0: #111418;
57
+ --color-neutral-900: #e8eaed;
58
+ }
59
+ }
60
+ ```
61
+
62
+ This works because a token is declared once, on the document, rather than on
63
+ each component's `:host`. A `:host` declaration would beat an inherited value
64
+ and make the token unoverridable.
65
+
66
+ You can also import the tokens directly if you need them without a component:
67
+
68
+ ```js
69
+ import '@repobit/dex-system-design/tokens'; // installs into document scope
70
+ ```
71
+ ```css
72
+ @import '@repobit/dex-system-design/tokens.css'; /* or via CSS */
73
+ @import '@repobit/dex-system-design/fonts.css'; /* @font-face, document scope only */
74
+ ```
75
+
76
+ `fonts.css` must be loaded in document scope. An `@font-face` rule inside a
77
+ shadow root never reaches `document.fonts` and silently does nothing.
78
+
79
+ ## Documentation
80
+
81
+ ```bash
82
+ npm run storybook
83
+ ```
84
+
85
+ `Foundations/` documents every primitive — colour, spacing, typography,
86
+ fonts, grid, shape, elevation, focus, motion and dimension. Those pages read
87
+ the loaded token CSS at render time, so they cannot drift from the tokens.
88
+
89
+ ## Page generation
90
+
91
+ `schemas/` holds the machine-readable contract for generating pages from a
92
+ content brief:
93
+
94
+ - `component-manifest.json` — public tags, entry points and props
95
+ - `page-schema.json` — the page tree a generator must produce
96
+
97
+ See `schemas/README.md`. Run `npm run check:manifest` after changing a
98
+ component's public props.
99
+
100
+ ## Conventions
101
+
102
+ The tokens in `src/tokens/tokens.js` are the **single source of truth for the
103
+ foundation**. Everything is built and styled from them and from nothing else.
104
+
105
+ - **Never a literal where a token exists.** No raw hex, no off-scale radii, no
106
+ hardcoded control heights.
107
+ - **Never borrow a value from an external source** — a Figma file, a
108
+ screenshot, another design system. Read the intent, then express it with the
109
+ token that already carries that value. If a design calls for `#0059d6`, write
110
+ `var(--color-blue-600)`. If it needs a value the tokens do not have, adding
111
+ the token is its own decision — do not inline it.
112
+ - **`line-height` is always unitless** and always from
113
+ `--typography-lineHeight-*`. An absolute line-height inherits as a fixed line
114
+ box and stops scaling when a reader raises their default font size.
115
+ - **Never a spacing or dimension token for type.**
116
+ `font-size: var(--spacing-14)` is a category error.
117
+ - **No `var(--token, literal)` fallbacks.** Tokens are always present, and a
118
+ fallback restating a value silently lies once the token changes.
119
+ - **Contrast:** 4.5:1 for body text, 3:1 for non-text UI and icons. Note that
120
+ `--color-blue-500` is only 4.53:1 on pure white and fails on any tint — use
121
+ `--color-blue-600` for text.
122
+
123
+ ## Scripts
124
+
125
+ | | |
126
+ |---|---|
127
+ | `npm run storybook` | component and token documentation |
128
+ | `npm run dev` | Vite dev server for `index.html` |
129
+ | `npm run build:tokens` | regenerate the CSS token files from their JS sources |
130
+ | `npm run build:tokens:check` | fail if a generated file is stale (CI) |
131
+ | `npm run check:manifest` | verify the component manifest against the components |
132
+
133
+ `src/tokens/tokens.js` is the source of truth for tokens; `tokens.css` is
134
+ generated from it. Edit the JS and run `npm run build:tokens`.
135
+
136
+ ## Licence
137
+
138
+ ISC
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repobit/dex-system-design",
3
- "version": "0.25.12",
3
+ "version": "0.26.0",
4
4
  "description": "Design system based on Web Components.",
5
5
  "author": "Iordache Matei Cezar <miordache@bitdefender.com>",
6
6
  "homepage": "https://github.com/bitdefender/dex-core#readme",
@@ -17,46 +17,72 @@
17
17
  "LICENSE"
18
18
  ],
19
19
  "exports": {
20
- "./component-manifest": "./schemas/component-manifest.json",
21
- "./page-schema": "./schemas/page-schema.json",
22
- "./accordion-bg": "./src/components/accordion/accordion-bg.js",
23
20
  "./accordion": "./src/components/accordion/accordion.js",
21
+ "./accordion-bg": "./src/components/accordion/accordion-bg.js",
22
+ "./alert": "./src/components/alert/alert.js",
24
23
  "./anchor": "./src/components/anchor/anchor-nav.js",
24
+ "./annotation": "./src/components/annotation/annotation.js",
25
+ "./avatar": "./src/components/avatar/avatar.js",
26
+ "./back": "./src/components/back/back.js",
25
27
  "./badge": "./src/components/badge/badge.js",
28
+ "./blockquote": "./src/components/blockquote/blockquote.js",
26
29
  "./button": "./src/components/button/button.js",
30
+ "./caption": "./src/components/caption/caption.js",
27
31
  "./cards": "./src/components/cards/card.js",
28
32
  "./carousel": "./src/components/carousel/carousel.js",
29
- "./compare": "./src/components/compare/compare.js",
30
33
  "./checkbox": "./src/components/checkbox/checkbox.js",
34
+ "./code": "./src/components/code/code.js",
35
+ "./compare": "./src/components/compare/compare.js",
36
+ "./component-manifest": "./schemas/component-manifest.json",
37
+ "./display": "./src/components/display/display.js",
31
38
  "./divider-horizontal": "./src/components/divider/divider-horizontal.js",
32
39
  "./divider-vertical": "./src/components/divider/divider-vertical.js",
33
40
  "./dropdown": "./src/components/dropdown/dropdown.js",
34
41
  "./features": "./src/components/features/features.js",
35
42
  "./features-tab": "./src/components/features-tab/features-tab.js",
43
+ "./fieldset": "./src/components/fieldset/fieldset.js",
44
+ "./fonts.css": "./src/tokens/fonts.css",
36
45
  "./footer": "./src/components/footer/footer.js",
37
46
  "./footer-links-group": "./src/components/footer/footer-links-group.js",
38
47
  "./footer-lp": "./src/components/footer/footer-lp.js",
39
48
  "./footer-nav-menu": "./src/components/footer/footer-nav-menu.js",
40
49
  "./grid": "./src/components/grid/grid.js",
41
- "./heading": "./src/components/heading/heading.js",
42
50
  "./header": "./src/components/header/header.js",
51
+ "./heading": "./src/components/heading/heading.js",
52
+ "./help-text": "./src/components/help-text/help-text.js",
43
53
  "./highlight": "./src/components/highlight/highlight.js",
54
+ "./icons": "./src/components/icons/icons.js",
55
+ "./marks": "./src/components/icons/marks.js",
44
56
  "./image": "./src/components/image/image.js",
45
57
  "./input": "./src/components/input/input.js",
58
+ "./label": "./src/components/label/label.js",
59
+ "./light-carousel": "./src/components/light-carousel/light-carousel.js",
46
60
  "./link": "./src/components/link/link.js",
47
61
  "./list": "./src/components/list/list.js",
48
62
  "./list-item": "./src/components/list/list-item/list-item.js",
49
- "./light-carousel": "./src/components/light-carousel/light-carousel.js",
50
63
  "./modal": "./src/components/modal/modal.js",
64
+ "./page-schema": "./schemas/page-schema.json",
51
65
  "./paragraph": "./src/components/paragraph/paragraph.js",
52
66
  "./picture": "./src/components/picture/picture.js",
53
67
  "./pricing-cards": "./src/components/pricing-cards/pricing-card.js",
68
+ "./progress": "./src/components/progress/progress.js",
54
69
  "./radio": "./src/components/radio/radio.js",
55
70
  "./review": "./src/components/review/review.js",
56
71
  "./review-grid": "./src/components/review/review-grid.js",
72
+ "./skeleton": "./src/components/skeleton/skeleton.js",
73
+ "./spinner": "./src/components/spinner/spinner.js",
74
+ "./switch": "./src/components/switch/switch.js",
75
+ "./tab-list": "./src/components/tab-list/tab-list.js",
76
+ "./tab-list-css": "./src/components/tab-list/tab-list.css.js",
57
77
  "./tabs": "./src/components/tabs/tabs.js",
58
- "./tabsComponent": "./src/components/tabsComponent/tabsComponent.js",
59
- "./terms": "./src/components/termsOfUse/terms.js"
78
+ "./tag": "./src/components/tag/tag.js",
79
+ "./terms": "./src/components/termsOfUse/terms.js",
80
+ "./textarea": "./src/components/textarea/textarea.js",
81
+ "./tokens": "./src/tokens/tokens.js",
82
+ "./tokens.css": "./src/tokens/tokens.css",
83
+ "./tooltip": "./src/components/tooltip/tooltip.js",
84
+ "./video": "./src/components/video/video.js",
85
+ "./visually-hidden": "./src/components/visually-hidden/visually-hidden.js"
60
86
  },
61
87
  "publishConfig": {
62
88
  "access": "public"
@@ -70,18 +96,74 @@
70
96
  "start": "vite",
71
97
  "dev": "vite",
72
98
  "storybook": "storybook dev -p 6006",
73
- "build-storybook": "storybook build --disable-telemetry"
99
+ "build-storybook": "storybook build --disable-telemetry",
100
+ "build:tokens": "node scripts/build-tokens.mjs",
101
+ "build:tokens:check": "node scripts/build-tokens.mjs --check",
102
+ "check:manifest": "node scripts/check-manifest.mjs",
103
+ "check:architecture": "node scripts/check-architecture.mjs",
104
+ "check:architecture:selftest": "node scripts/check-architecture.mjs --selftest",
105
+ "check:architecture:negative": "node scripts/check-architecture.mjs --negative-control",
106
+ "check:ensemble": "node scripts/check-ensemble.mjs",
107
+ "check:ensemble:selftest": "node scripts/check-ensemble.mjs --selftest",
108
+ "check:ensemble:negative": "node scripts/check-ensemble.mjs --negative-control",
109
+ "check:semantic-coverage": "node scripts/check-semantic-coverage.mjs",
110
+ "check:semantic-coverage:selftest": "node scripts/check-semantic-coverage.mjs --selftest",
111
+ "check:semantic-coverage:negative": "node scripts/check-semantic-coverage.mjs --negative-control",
112
+ "check:color-coverage": "node scripts/check-color-coverage.mjs",
113
+ "check:host-selectors": "node scripts/check-host-selectors.mjs",
114
+ "check:host-selectors:selftest": "node scripts/check-host-selectors.mjs --selftest",
115
+ "check:host-selectors:negative": "node scripts/check-host-selectors.mjs --negative-control",
116
+ "check:aliases": "node scripts/check-aliases.mjs",
117
+ "check:aliases:selftest": "node scripts/check-aliases.mjs --selftest",
118
+ "check:icons": "node scripts/check-icons.mjs",
119
+ "check:icons:selftest": "node scripts/check-icons.mjs --selftest",
120
+ "check:icons:negative": "node scripts/check-icons.mjs --negative-control",
121
+ "check:color-coverage:selftest": "node scripts/check-color-coverage.mjs --selftest",
122
+ "lint:tokens": "node scripts/lint-tokens.mjs",
123
+ "figma:connect:check": "figma connect publish --dry-run --skip-update-check",
124
+ "figma:connect:publish": "figma connect publish --skip-update-check",
125
+ "check:attributes": "node scripts/check-attribute-contract.mjs",
126
+ "check:attributes:selftest": "node scripts/check-attribute-contract.mjs --contract-selftest",
127
+ "check:attributes:negative": "node scripts/check-attribute-contract.mjs --negative-control",
128
+ "lint:tokens:selftest": "node scripts/lint-tokens.mjs --selftest",
129
+ "check:ds": "npm run build:tokens:check && npm run check:token-tiers:selftest && npm run check:token-tiers:negative && npm run check:token-tiers && npm run check:manifest && npm run check:architecture && npm run check:architecture:selftest && npm run check:architecture:negative && npm run check:ensemble && npm run check:ensemble:selftest && npm run check:ensemble:negative && npm run check:baseline:selftest && npm run check:semantic-coverage:selftest && npm run check:semantic-coverage:negative && npm run check:semantic-coverage && npm run check:color-coverage:selftest && npm run check:color-coverage && npm run check:icons:selftest && npm run check:icons:negative && npm run check:icons && npm run check:aliases:selftest && npm run check:aliases && npm run check:host-selectors:selftest && npm run check:host-selectors:negative && npm run check:host-selectors && npm run check:spacing-scale:selftest && npm run check:spacing-scale:negative && npm run check:spacing-scale && npm run check:enum-vocabulary:selftest && npm run check:enum-vocabulary:negative && npm run check:enum-vocabulary && npm run check:accessible-names:selftest && npm run check:accessible-names:negative && npm run check:accessible-names && npm run check:docs:selftest && npm run check:docs:negative && npm run check:docs && npm run lint:tokens:selftest && npm run lint:tokens",
130
+ "ci:ds": "npm run check:ds && npm run verify:runtime && npm run check:attributes:selftest && npm run check:attributes:negative && npm run check:attributes",
131
+ "verify:runtime": "node scripts/verify-runtime.mjs --selftest",
132
+ "verify:render": "node scripts/render-health.mjs",
133
+ "verify:render:negative": "node scripts/render-health.mjs --negative-control",
134
+ "verify:typography": "node scripts/render-health.mjs --typography",
135
+ "verify:typography:selftest": "node scripts/render-health.mjs --typography-selftest",
136
+ "verify:accordion": "node scripts/verify-accordion.mjs",
137
+ "verify:accordion:negative": "node scripts/verify-accordion.mjs --negative-control",
138
+ "verify:accordion:selftest": "node scripts/verify-accordion.mjs --shift-selftest",
139
+ "check:docs": "node scripts/check-docs.mjs",
140
+ "check:docs:selftest": "node scripts/check-docs.mjs --selftest",
141
+ "check:docs:negative": "node scripts/check-docs.mjs --negative-control",
142
+ "check:token-tiers": "node scripts/check-token-tiers.mjs",
143
+ "check:token-tiers:selftest": "node scripts/check-token-tiers.mjs --selftest",
144
+ "check:token-tiers:negative": "node scripts/check-token-tiers.mjs --negative-control",
145
+ "check:spacing-scale": "node scripts/check-spacing-scale.mjs",
146
+ "check:spacing-scale:selftest": "node scripts/check-spacing-scale.mjs --selftest",
147
+ "check:spacing-scale:negative": "node scripts/check-spacing-scale.mjs --negative-control",
148
+ "check:baseline:selftest": "node scripts/baseline.mjs --selftest",
149
+ "check:enum-vocabulary": "node scripts/check-enum-vocabulary.mjs",
150
+ "check:enum-vocabulary:selftest": "node scripts/check-enum-vocabulary.mjs --selftest",
151
+ "check:enum-vocabulary:negative": "node scripts/check-enum-vocabulary.mjs --negative-control",
152
+ "check:accessible-names": "node scripts/check-accessible-names.mjs",
153
+ "check:accessible-names:selftest": "node scripts/check-accessible-names.mjs --selftest",
154
+ "check:accessible-names:negative": "node scripts/check-accessible-names.mjs --negative-control"
74
155
  },
75
156
  "bugs": {
76
157
  "url": "https://github.com/bitdefender/dex-core/issues"
77
158
  },
78
159
  "dependencies": {
79
- "@repobit/dex-store": "1.6.49",
80
- "@repobit/dex-store-elements": "2.1.19",
160
+ "@repobit/dex-store": "1.6.50",
161
+ "@repobit/dex-store-elements": "2.1.20",
81
162
  "lit": "^3.3.2"
82
163
  },
83
164
  "devDependencies": {
84
165
  "@chromatic-com/storybook": "^3.2.7",
166
+ "@figma/code-connect": "^2.0.0",
85
167
  "@storybook/addon-essentials": "^8.6.14",
86
168
  "@storybook/blocks": "^8.6.4",
87
169
  "@storybook/experimental-addon-test": "^8.6.14",
@@ -94,5 +176,5 @@
94
176
  "volta": {
95
177
  "node": "24.14.0"
96
178
  },
97
- "gitHead": "9ca40454c888c673804cf84abcc2fc2ca949ef41"
179
+ "gitHead": "9a7ca2949c8e6a678d3d27a13ff5fa331431bfc8"
98
180
  }