@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
@@ -20,9 +20,9 @@ Componentă Lit pentru secțiuni accordion cu două variante de design detectate
20
20
  <div class="accordion faq block">
21
21
  <bd-accordion-bg title="Questions? Answers.">
22
22
  <bd-accordion-bg-item title="What is Bitdefender?">
23
- <bd-p kind="small">Answer here...</bd-p>
23
+ <bd-p variant="small">Answer here...</bd-p>
24
24
  </bd-accordion-bg-item>
25
- <bd-p slot="footer" kind="small">* Footer note</bd-p>
25
+ <bd-p slot="footer" variant="small">* Footer note</bd-p>
26
26
  </bd-accordion-bg>
27
27
  </div>
28
28
 
@@ -30,9 +30,9 @@ Componentă Lit pentru secțiuni accordion cu două variante de design detectate
30
30
  <div class="accordion terms-of-use block">
31
31
  <bd-accordion-bg title="Terms of use">
32
32
  <bd-accordion-bg-item title="Auto renewal terms" open>
33
- <bd-p kind="small">Your subscription...</bd-p>
33
+ <bd-p variant="small">Your subscription...</bd-p>
34
34
  </bd-accordion-bg-item>
35
- <bd-p slot="footer" kind="small">* Terms apply</bd-p>
35
+ <bd-p slot="footer" variant="small">* Terms apply</bd-p>
36
36
  </bd-accordion-bg>
37
37
  </div>
38
38
  \`\`\`
@@ -65,7 +65,7 @@ Componenta urcă în DOM și detectează clasa părintelui:
65
65
  ### Slot \`footer\`
66
66
  Ambele variante suportă un slot \`footer\` pentru text italic după toate item-urile:
67
67
  \`\`\`html
68
- <bd-p slot="footer" kind="small">* Notă de subsol</bd-p>
68
+ <bd-p slot="footer" variant="small">* Notă de subsol</bd-p>
69
69
  \`\`\`
70
70
  `
71
71
  }
@@ -81,28 +81,28 @@ export const FaqDefault = {
81
81
  <div class="accordion faq block">
82
82
  <bd-accordion-bg title="Questions? Answers.">
83
83
  <bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?">
84
- <bd-p kind="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
84
+ <bd-p variant="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
85
85
  <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
86
- <bd-li kind="bullet" size="md"><bd-p kind="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
87
- <bd-li kind="bullet" size="md"><bd-p kind="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
88
- <bd-li kind="bullet" size="md"><bd-p kind="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
89
- <bd-li kind="bullet" size="md"><bd-p kind="small">Firewall protection for network security</bd-p></bd-li>
86
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
87
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
88
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
89
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Firewall protection for network security</bd-p></bd-li>
90
90
  </bd-list>
91
- <bd-p kind="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
91
+ <bd-p variant="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
92
92
  </bd-accordion-bg-item>
93
93
 
94
94
  <bd-accordion-bg-item title="Does Bitdefender protect me against ransomware?">
95
- <bd-p kind="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection with:</bd-p>
95
+ <bd-p variant="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection with:</bd-p>
96
96
  <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
97
- <bd-li kind="bullet" size="md"><bd-p kind="small">Multi-layer ransomware protection</bd-p></bd-li>
98
- <bd-li kind="bullet" size="md"><bd-p kind="small">Behavioral detection to stop unknown threats</bd-p></bd-li>
99
- <bd-li kind="bullet" size="md"><bd-p kind="small">Safe Files feature to protect your important documents</bd-p></bd-li>
100
- <bd-li kind="bullet" size="md"><bd-p kind="small">Real-time monitoring of file encryption attempts</bd-p></bd-li>
97
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Multi-layer ransomware protection</bd-p></bd-li>
98
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Behavioral detection to stop unknown threats</bd-p></bd-li>
99
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Safe Files feature to protect your important documents</bd-p></bd-li>
100
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Real-time monitoring of file encryption attempts</bd-p></bd-li>
101
101
  </bd-list>
102
102
  </bd-accordion-bg-item>
103
103
 
104
104
  <bd-accordion-bg-item title="Do I get a VPN with Bitdefender Internet Security?">
105
- <bd-p kind="small">Bitdefender Internet Security includes a basic VPN with 200MB per day.</bd-p>
105
+ <bd-p variant="small">Bitdefender Internet Security includes a basic VPN with 200MB per day.</bd-p>
106
106
  </bd-accordion-bg-item>
107
107
  </bd-accordion-bg>
108
108
  </div>
@@ -117,12 +117,12 @@ export const FaqWithFooter = {
117
117
  <div class="accordion faq block">
118
118
  <bd-accordion-bg title="Questions? Answers.">
119
119
  <bd-accordion-bg-item title="How does Bitdefender protect me?">
120
- <bd-p kind="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
120
+ <bd-p variant="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
121
121
  </bd-accordion-bg-item>
122
122
  <bd-accordion-bg-item title="Does it work on Mac?">
123
- <bd-p kind="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
123
+ <bd-p variant="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
124
124
  </bd-accordion-bg-item>
125
- <bd-p slot="footer" kind="small">* Prices include VAT. Terms and conditions apply.</bd-p>
125
+ <bd-p slot="footer" variant="small">* Prices include VAT. Terms and conditions apply.</bd-p>
126
126
  </bd-accordion-bg>
127
127
  </div>
128
128
  `
@@ -136,10 +136,10 @@ export const FaqOpenByDefault = {
136
136
  <div class="accordion faq block">
137
137
  <bd-accordion-bg title="Getting Started">
138
138
  <bd-accordion-bg-item title="How do I install Bitdefender?" open>
139
- <bd-p kind="small">Download the installer from your Bitdefender Central account and follow the on-screen steps.</bd-p>
139
+ <bd-p variant="small">Download the installer from your Bitdefender Central account and follow the on-screen steps.</bd-p>
140
140
  </bd-accordion-bg-item>
141
141
  <bd-accordion-bg-item title="Do I need to remove my old antivirus first?">
142
- <bd-p kind="small">Yes. Bitdefender will detect any existing security software and guide you through removing it.</bd-p>
142
+ <bd-p variant="small">Yes. Bitdefender will detect any existing security software and guide you through removing it.</bd-p>
143
143
  </bd-accordion-bg-item>
144
144
  </bd-accordion-bg>
145
145
  </div>
@@ -154,13 +154,13 @@ export const FaqNoBgItems = {
154
154
  <div class="accordion faq block">
155
155
  <bd-accordion-bg title="Product Features">
156
156
  <bd-accordion-bg-item title="What is Bitdefender VPN?" no-bg>
157
- <bd-p kind="small">Bitdefender VPN encrypts your internet connection and masks your IP address.</bd-p>
157
+ <bd-p variant="small">Bitdefender VPN encrypts your internet connection and masks your IP address.</bd-p>
158
158
  </bd-accordion-bg-item>
159
159
  <bd-accordion-bg-item title="What is Anti-Tracker?" no-bg>
160
- <bd-p kind="small">Anti-Tracker blocks advertising trackers and analytics scripts.</bd-p>
160
+ <bd-p variant="small">Anti-Tracker blocks advertising trackers and analytics scripts.</bd-p>
161
161
  </bd-accordion-bg-item>
162
162
  <bd-accordion-bg-item title="What is Bitdefender Photon™?" no-bg>
163
- <bd-p kind="small">Photon is Bitdefender's adaptive scanning technology.</bd-p>
163
+ <bd-p variant="small">Photon is Bitdefender's adaptive scanning technology.</bd-p>
164
164
  </bd-accordion-bg-item>
165
165
  </bd-accordion-bg>
166
166
  </div>
@@ -180,33 +180,33 @@ export const FaqNoPadding = {
180
180
  },
181
181
  render: () => html`
182
182
  <div>
183
- <bd-p kind="small" style="color: var(--color-neutral-500); margin-bottom: 8px;">
183
+ <bd-p variant="small" style="color: var(--color-neutral-500); margin-bottom: 8px;">
184
184
  Fără <code>no-padding</code> — 64px padding-top/bottom (spațiul albastru de sus/jos):
185
185
  </bd-p>
186
186
  <div style="outline: 2px dashed red;">
187
187
  <div class="accordion faq block">
188
188
  <bd-accordion-bg title="Questions? Answers.">
189
189
  <bd-accordion-bg-item title="How does Bitdefender protect me?">
190
- <bd-p kind="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
190
+ <bd-p variant="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
191
191
  </bd-accordion-bg-item>
192
192
  <bd-accordion-bg-item title="Does it work on Mac?">
193
- <bd-p kind="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
193
+ <bd-p variant="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
194
194
  </bd-accordion-bg-item>
195
195
  </bd-accordion-bg>
196
196
  </div>
197
197
  </div>
198
198
 
199
- <bd-p kind="small" style="color: var(--color-neutral-500); margin: 24px 0 8px;">
199
+ <bd-p variant="small" style="color: var(--color-neutral-500); margin: 24px 0 8px;">
200
200
  Cu <code>no-padding</code> — 0px padding-top/bottom (secțiunea lipită de chenar):
201
201
  </bd-p>
202
202
  <div style="outline: 2px dashed red;">
203
203
  <div class="accordion faq block">
204
204
  <bd-accordion-bg title="Questions? Answers." no-padding>
205
205
  <bd-accordion-bg-item title="How does Bitdefender protect me?">
206
- <bd-p kind="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
206
+ <bd-p variant="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
207
207
  </bd-accordion-bg-item>
208
208
  <bd-accordion-bg-item title="Does it work on Mac?">
209
- <bd-p kind="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
209
+ <bd-p variant="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
210
210
  </bd-accordion-bg-item>
211
211
  </bd-accordion-bg>
212
212
  </div>
@@ -223,18 +223,18 @@ export const TermsOfUse = {
223
223
  <div class="accordion terms-of-use block">
224
224
  <bd-accordion-bg title="Terms of use">
225
225
  <bd-accordion-bg-item title="Auto renewal terms" open>
226
- <bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
227
- <bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
228
- <bd-p kind="small">The Bitdefender Auto Renewal Plan is designed to save you time and effort.</bd-p>
226
+ <bd-p variant="small">Your subscription automatically begins at the purchase date;</bd-p>
227
+ <bd-p variant="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
228
+ <bd-p variant="small">The Bitdefender Auto Renewal Plan is designed to save you time and effort.</bd-p>
229
229
  </bd-accordion-bg-item>
230
230
  <bd-accordion-bg-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
231
- <bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
231
+ <bd-p variant="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
232
232
  </bd-accordion-bg-item>
233
233
  <bd-accordion-bg-item title="Affirmative consent">
234
- <bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
234
+ <bd-p variant="small"><a href="#">Affirmative consent</a></bd-p>
235
235
  </bd-accordion-bg-item>
236
236
  <bd-accordion-bg-item title="How to cancel + email address cancelation support">
237
- <bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
237
+ <bd-p variant="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
238
238
  </bd-accordion-bg-item>
239
239
  </bd-accordion-bg>
240
240
  </div>
@@ -249,13 +249,13 @@ export const TermsOfUseWithFooter = {
249
249
  <div class="accordion terms-of-use block">
250
250
  <bd-accordion-bg title="Terms of use">
251
251
  <bd-accordion-bg-item title="Auto renewal terms" open>
252
- <bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
253
- <bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
252
+ <bd-p variant="small">Your subscription automatically begins at the purchase date;</bd-p>
253
+ <bd-p variant="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
254
254
  </bd-accordion-bg-item>
255
255
  <bd-accordion-bg-item title="Affirmative consent">
256
- <bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
256
+ <bd-p variant="small"><a href="#">Affirmative consent</a></bd-p>
257
257
  </bd-accordion-bg-item>
258
- <bd-p slot="footer" kind="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
258
+ <bd-p slot="footer" variant="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
259
259
  </bd-accordion-bg>
260
260
  </div>
261
261
  `
@@ -269,15 +269,15 @@ export const SystemRequirements = {
269
269
  <div class="accordion system-requirements block">
270
270
  <bd-accordion-bg title="System Requirements" guide-icon="/assets/user_guide.png" guide-label="User guide >" guide-href="#">
271
271
  <bd-accordion-bg-item title="Bitdefender Parental Control" open>
272
- <bd-p kind="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
273
- <bd-p kind="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
274
- <bd-p kind="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
275
- <bd-p kind="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
272
+ <bd-p variant="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
273
+ <bd-p variant="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
274
+ <bd-p variant="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
275
+ <bd-p variant="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
276
276
  </bd-accordion-bg-item>
277
277
  <bd-accordion-bg-item title="Bitdefender Central">
278
- <bd-p kind="small">Bitdefender Central requires a modern browser with JavaScript enabled.</bd-p>
278
+ <bd-p variant="small">Bitdefender Central requires a modern browser with JavaScript enabled.</bd-p>
279
279
  </bd-accordion-bg-item>
280
- <bd-p slot="footer" kind="small">* Requirements may vary by product version.</bd-p>
280
+ <bd-p slot="footer" variant="small">* Requirements may vary by product version.</bd-p>
281
281
  </bd-accordion-bg>
282
282
  </div>
283
283
  `
@@ -292,19 +292,19 @@ export const AllVariants = {
292
292
  <div class="accordion faq block">
293
293
  <bd-accordion-bg title="Questions? Answers.">
294
294
  <bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?">
295
- <bd-p kind="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
295
+ <bd-p variant="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
296
296
  <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
297
- <bd-li kind="bullet" size="md"><bd-p kind="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
298
- <bd-li kind="bullet" size="md"><bd-p kind="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
299
- <bd-li kind="bullet" size="md"><bd-p kind="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
300
- <bd-li kind="bullet" size="md"><bd-p kind="small">Firewall protection for network security</bd-p></bd-li>
297
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
298
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
299
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
300
+ <bd-li variant="bullet" size="md"><bd-p variant="small">Firewall protection for network security</bd-p></bd-li>
301
301
  </bd-list>
302
- <bd-p kind="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
302
+ <bd-p variant="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
303
303
  </bd-accordion-bg-item>
304
304
  <bd-accordion-bg-item title="Does Bitdefender protect me against ransomware?">
305
- <bd-p kind="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection.</bd-p>
305
+ <bd-p variant="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection.</bd-p>
306
306
  </bd-accordion-bg-item>
307
- <bd-p slot="footer" kind="small">* Prices include VAT. Terms and conditions apply.</bd-p>
307
+ <bd-p slot="footer" variant="small">* Prices include VAT. Terms and conditions apply.</bd-p>
308
308
  </bd-accordion-bg>
309
309
  </div>
310
310
 
@@ -313,20 +313,20 @@ export const AllVariants = {
313
313
  <div class="accordion terms-of-use block">
314
314
  <bd-accordion-bg title="Terms of use">
315
315
  <bd-accordion-bg-item title="Auto renewal terms" open>
316
- <bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
317
- <bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
318
- <bd-p kind="small">The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk.</bd-p>
316
+ <bd-p variant="small">Your subscription automatically begins at the purchase date;</bd-p>
317
+ <bd-p variant="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
318
+ <bd-p variant="small">The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk.</bd-p>
319
319
  </bd-accordion-bg-item>
320
320
  <bd-accordion-bg-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
321
- <bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
321
+ <bd-p variant="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
322
322
  </bd-accordion-bg-item>
323
323
  <bd-accordion-bg-item title="Affirmative consent">
324
- <bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
324
+ <bd-p variant="small"><a href="#">Affirmative consent</a></bd-p>
325
325
  </bd-accordion-bg-item>
326
326
  <bd-accordion-bg-item title="How to cancel + email address cancelation support">
327
- <bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
327
+ <bd-p variant="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
328
328
  </bd-accordion-bg-item>
329
- <bd-p slot="footer" kind="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
329
+ <bd-p slot="footer" variant="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
330
330
  </bd-accordion-bg>
331
331
  </div>
332
332
 
@@ -335,13 +335,13 @@ export const AllVariants = {
335
335
  <div class="accordion system-requirements block">
336
336
  <bd-accordion-bg title="System Requirements" guide-icon="/assets/user_guide.png" guide-label="User guide >" guide-href="#">
337
337
  <bd-accordion-bg-item title="Bitdefender Parental Control" open>
338
- <bd-p kind="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
339
- <bd-p kind="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
340
- <bd-p kind="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
341
- <bd-p kind="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
338
+ <bd-p variant="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
339
+ <bd-p variant="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
340
+ <bd-p variant="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
341
+ <bd-p variant="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
342
342
  </bd-accordion-bg-item>
343
343
  <bd-accordion-bg-item title="Bitdefender Central">
344
- <bd-p kind="small">Bitdefender Central</bd-p>
344
+ <bd-p variant="small">Bitdefender Central</bd-p>
345
345
  </bd-accordion-bg-item>
346
346
  </bd-accordion-bg>
347
347
  </div>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Keyboard navigation between the disclosure triggers of one accordion group.
3
+ *
4
+ * The group is the set of accordion items that share a parent element -- the
5
+ * children of a bd-accordion-section, of a bd-accordion-bg, or of whatever the
6
+ * consuming page put them in. That is the smallest definition that gives the
7
+ * group ownership of navigation without a coordinator: the section is optional
8
+ * (Components/Accordion has an isolated-item story), items are cloned into
9
+ * bd-features' shadow root, and a consumer may nest one accordion inside
10
+ * another's panel. In every one of those cases the item's parent is the right
11
+ * group, and an item with no siblings is a group of one where these keys do
12
+ * nothing but swallow the key.
13
+ *
14
+ * The group is read at keydown time rather than cached, so items inserted or
15
+ * removed later are simply there or not.
16
+ *
17
+ * Keys, following the WAI-ARIA accordion pattern:
18
+ *
19
+ * ArrowDown / ArrowRight next trigger
20
+ * ArrowUp / ArrowLeft previous trigger
21
+ * Home first trigger
22
+ * End last trigger
23
+ *
24
+ * The arrows wrap at the ends, as Components/Tab List already does in this package;
25
+ * the pattern permits either wrapping or stopping and one answer per package is
26
+ * better than two. Left/Right are an extension of the pattern's Up/Down for a
27
+ * vertical list, harmless because the handler is on the button and cannot
28
+ * reach a text field in a panel.
29
+ *
30
+ * These keys MOVE focus and do nothing else. They do not open or close the
31
+ * item they land on -- Enter and Space do that, through the button's own
32
+ * activation, which this code never touches -- and Tab and Shift+Tab are not
33
+ * handled here at all, so the document's tab sequence runs through the group
34
+ * unchanged. There is no trap.
35
+ */
36
+
37
+ const ITEM_TAGS = new Set(["BD-ACCORDION-ITEM", "BD-ACCORDION-BG-ITEM"]);
38
+
39
+ /** The accordion items that share this item's parent, in DOM order. */
40
+ export function accordionGroup(item) {
41
+ const parent = item.parentElement;
42
+ if (!parent) return [item];
43
+ return Array.from(parent.children).filter(el => ITEM_TAGS.has(el.tagName));
44
+ }
45
+
46
+ /**
47
+ * Handle a keydown that fired on an item's trigger. Returns true when the key
48
+ * was one of ours.
49
+ */
50
+ export function onTriggerKeydown(item, event) {
51
+ if (event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return false;
52
+
53
+ let where;
54
+ switch (event.key) {
55
+ case "ArrowDown":
56
+ case "ArrowRight": where = "next"; break;
57
+ case "ArrowUp":
58
+ case "ArrowLeft": where = "prev"; break;
59
+ case "Home": where = "first"; break;
60
+ case "End": where = "last"; break;
61
+ default: return false;
62
+ }
63
+
64
+ const group = accordionGroup(item);
65
+ const index = group.indexOf(item);
66
+ if (index < 0) return false;
67
+
68
+ const last = group.length - 1;
69
+ let target;
70
+ if (where === "first") target = 0;
71
+ else if (where === "last") target = last;
72
+ else if (where === "next") target = index === last ? 0 : index + 1;
73
+ else target = index === 0 ? last : index - 1;
74
+
75
+ // Even a group of one swallows the key: an arrow on a focused disclosure
76
+ // trigger should not scroll the page out from under it.
77
+ event.preventDefault();
78
+ if (target !== index) group[target].focusTrigger?.();
79
+ return true;
80
+ }