@govbr-ds/webcomponents 2.1.3 → 2.2.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 (960) hide show
  1. package/README.md +87 -46
  2. package/cem/custom-elements.json +6359 -1133
  3. package/cem/webcomponents.html-custom-data.json +398 -285
  4. package/dist/cjs/br-avatar.cjs.entry.js +21 -14
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +2 -2
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +49 -22
  7. package/dist/cjs/br-button_2.cjs.entry.js +72 -35
  8. package/dist/cjs/br-card.cjs.entry.js +6 -5
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +3 -3
  10. package/dist/cjs/br-carousel.cjs.entry.js +77 -21
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +157 -27
  12. package/dist/cjs/br-checkbox.cjs.entry.js +85 -15
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +5 -2
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +85 -26
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +4 -4
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +4 -4
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +14 -6
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -5
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +4 -4
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +38 -25
  22. package/dist/cjs/br-crumb.cjs.entry.js +2 -2
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +246 -88
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +115 -527
  25. package/dist/cjs/br-divider.cjs.entry.js +70 -17
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +301 -128
  27. package/dist/cjs/br-footer-category.cjs.entry.js +10 -6
  28. package/dist/cjs/br-footer-item.cjs.entry.js +9 -4
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +4 -4
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +22 -10
  31. package/dist/cjs/br-footer-social.cjs.entry.js +14 -6
  32. package/dist/cjs/br-footer.cjs.entry.js +16 -7
  33. package/dist/cjs/br-header-function.cjs.entry.js +28 -7
  34. package/dist/cjs/br-header-link.cjs.entry.js +25 -4
  35. package/dist/cjs/br-header-list.cjs.entry.js +6 -17
  36. package/dist/cjs/br-header-logo.cjs.entry.js +18 -7
  37. package/dist/cjs/br-header.cjs.entry.js +72 -17
  38. package/dist/cjs/br-icon.cjs.entry.js +160 -23
  39. package/dist/cjs/br-input.cjs.entry.js +130 -39
  40. package/dist/cjs/br-item.cjs.entry.js +96 -48
  41. package/dist/cjs/br-link.cjs.entry.js +20 -7
  42. package/dist/cjs/br-loading.cjs.entry.js +100 -38
  43. package/dist/cjs/br-magic-button.cjs.entry.js +26 -9
  44. package/dist/cjs/br-menu-group.cjs.entry.js +14 -3
  45. package/dist/cjs/br-menu-header.cjs.entry.js +4 -4
  46. package/dist/cjs/br-menu-info.cjs.entry.js +4 -4
  47. package/dist/cjs/br-menu-item.cjs.entry.js +27 -5
  48. package/dist/cjs/br-menu-link.cjs.entry.js +14 -6
  49. package/dist/cjs/br-menu-list.cjs.entry.js +23 -27
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +4 -4
  51. package/dist/cjs/br-menu-social.cjs.entry.js +16 -6
  52. package/dist/cjs/br-menu.cjs.entry.js +38 -57
  53. package/dist/cjs/br-modal.cjs.entry.js +26 -40
  54. package/dist/cjs/br-notification-body.cjs.entry.js +4 -4
  55. package/dist/cjs/br-notification-header.cjs.entry.js +4 -4
  56. package/dist/cjs/br-notification-item.cjs.entry.js +14 -8
  57. package/dist/cjs/br-notification.cjs.entry.js +23 -8
  58. package/dist/cjs/br-pagination.cjs.entry.js +119 -87
  59. package/dist/cjs/br-radio-group.cjs.entry.js +106 -57
  60. package/dist/cjs/br-radio.cjs.entry.js +61 -11
  61. package/dist/cjs/br-scrim.cjs.entry.js +161 -67
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +283 -90
  63. package/dist/cjs/br-sign-in.cjs.entry.js +34 -15
  64. package/dist/cjs/br-skip-link-item.cjs.entry.js +39 -2
  65. package/dist/cjs/br-skip-link.cjs.entry.js +50 -33
  66. package/dist/cjs/br-skiplink-item.cjs.entry.js +22 -6
  67. package/dist/cjs/br-slider.cjs.entry.js +521 -99
  68. package/dist/cjs/br-step_2.cjs.entry.js +98 -44
  69. package/dist/cjs/br-switch.cjs.entry.js +20 -11
  70. package/dist/cjs/br-tab-item.cjs.entry.js +38 -14
  71. package/dist/cjs/br-tab.cjs.entry.js +57 -44
  72. package/dist/cjs/br-table-body.cjs.entry.js +3 -3
  73. package/dist/cjs/br-table-cell.cjs.entry.js +30 -13
  74. package/dist/cjs/br-table-header-cell.cjs.entry.js +23 -7
  75. package/dist/cjs/br-table-header.cjs.entry.js +3 -3
  76. package/dist/cjs/br-table-row.cjs.entry.js +17 -3
  77. package/dist/cjs/br-table.cjs.entry.js +67 -21
  78. package/dist/cjs/br-tag.cjs.entry.js +48 -30
  79. package/dist/cjs/br-textarea.cjs.entry.js +117 -12
  80. package/dist/cjs/br-tooltip.cjs.entry.js +87 -41
  81. package/dist/cjs/br-upload.cjs.entry.js +83 -24
  82. package/dist/cjs/br-wizard-panel.cjs.entry.js +16 -3
  83. package/dist/cjs/br-wizard.cjs.entry.js +52 -28
  84. package/dist/cjs/{isValid-Fu3kaWNn.js → datetime-picker-props-validation-DmNKSXsy.js} +481 -4
  85. package/dist/cjs/{floating-ui-MBI1osio.js → floating-ui-B6nsdYUU.js} +24 -1
  86. package/dist/cjs/{floating-ui.dom-BUSTaaxR.js → floating-ui.dom-wzdGZjyG.js} +201 -113
  87. package/dist/cjs/{focus-DuywwJPR.js → focus-BhfJnFgJ.js} +21 -0
  88. package/dist/cjs/header-context-CdawuLsH.js +17 -0
  89. package/dist/cjs/id-DE4jSi-L.js +36 -0
  90. package/dist/cjs/{index-CRdcutym.js → index-CGgZBuyy.js} +68 -752
  91. package/dist/cjs/loader.cjs.js +2 -2
  92. package/dist/cjs/motion-CgIooxWS.js +29 -0
  93. package/dist/cjs/ownership-UnpufyCx.js +116 -0
  94. package/dist/cjs/prop-warning-xvEHQz8H.js +60 -0
  95. package/dist/cjs/props-D8dybmr0.js +124 -0
  96. package/dist/cjs/{swipe-BU8_XE9f.js → swipe-BGF-h9WY.js} +11 -1
  97. package/dist/cjs/webcomponents.cjs.js +3 -3
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/avatar/avatar.css +1 -1
  100. package/dist/collection/components/avatar/avatar.js +48 -16
  101. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +15 -3
  102. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  103. package/dist/collection/components/breadcrumb/breadcrumb.js +107 -22
  104. package/dist/collection/components/breadcrumb/crumb/crumb.js +14 -2
  105. package/dist/collection/components/button/button.css +1 -1
  106. package/dist/collection/components/button/button.js +88 -24
  107. package/dist/collection/components/card/card.css +1 -1
  108. package/dist/collection/components/card/card.js +33 -5
  109. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  110. package/dist/collection/components/carousel/carousel-page/carousel-page.js +11 -4
  111. package/dist/collection/components/carousel/carousel.css +1 -1
  112. package/dist/collection/components/carousel/carousel.js +107 -21
  113. package/dist/collection/components/checkbox/checkbox.css +1 -1
  114. package/dist/collection/components/checkbox/checkbox.js +134 -20
  115. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  116. package/dist/collection/components/checkbox-group/checkbox-group.js +210 -30
  117. package/dist/collection/components/checkgroup/checkgroup.js +42 -4
  118. package/dist/collection/components/collapse/collapse.css +1 -1
  119. package/dist/collection/components/collapse/collapse.js +48 -8
  120. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  121. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +17 -4
  122. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  123. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +16 -7
  124. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  125. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +15 -9
  126. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  127. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +24 -8
  128. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  129. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +14 -4
  130. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  131. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +13 -5
  132. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  133. package/dist/collection/components/cookiebar/cookiebar.js +67 -32
  134. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  135. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +134 -35
  136. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  137. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +112 -22
  138. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +13 -5
  139. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  140. package/dist/collection/components/datetime-picker/datetime-picker.js +158 -42
  141. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  142. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +78 -9
  143. package/dist/collection/components/divider/divider.css +1 -1
  144. package/dist/collection/components/divider/divider.js +101 -26
  145. package/dist/collection/components/dropdown/dropdown.css +1 -1
  146. package/dist/collection/components/dropdown/dropdown.js +166 -18
  147. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  148. package/dist/collection/components/footer/footer-category/footer-category.js +23 -4
  149. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  150. package/dist/collection/components/footer/footer-item/footer-item.js +21 -2
  151. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  152. package/dist/collection/components/footer/footer-legal/footer-legal.js +16 -2
  153. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  154. package/dist/collection/components/footer/footer-logo/footer-logo.js +35 -9
  155. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  156. package/dist/collection/components/footer/footer-social/footer-social.js +26 -6
  157. package/dist/collection/components/footer/footer.css +1 -1
  158. package/dist/collection/components/footer/footer.js +48 -7
  159. package/dist/collection/components/header/header-context.js +13 -0
  160. package/dist/collection/components/header/header-function/header-function.css +1 -1
  161. package/dist/collection/components/header/header-function/header-function.js +51 -8
  162. package/dist/collection/components/header/header-link/header-link.css +1 -1
  163. package/dist/collection/components/header/header-link/header-link.js +52 -2
  164. package/dist/collection/components/header/header-list/header-list.css +1 -1
  165. package/dist/collection/components/header/header-list/header-list.js +20 -23
  166. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  167. package/dist/collection/components/header/header-logo/header-logo.js +33 -8
  168. package/dist/collection/components/header/header.css +1 -1
  169. package/dist/collection/components/header/header.js +110 -24
  170. package/dist/collection/components/icon/default-icons-cache.js +111 -3
  171. package/dist/collection/components/icon/icon.css +1 -1
  172. package/dist/collection/components/icon/icon.js +80 -33
  173. package/dist/collection/components/input/input.css +1 -1
  174. package/dist/collection/components/input/input.js +169 -54
  175. package/dist/collection/components/item/item.css +1 -1
  176. package/dist/collection/components/item/item.js +134 -51
  177. package/dist/collection/components/link/link.css +1 -1
  178. package/dist/collection/components/link/link.js +48 -15
  179. package/dist/collection/components/list/list.css +1 -1
  180. package/dist/collection/components/list/list.js +106 -25
  181. package/dist/collection/components/loading/loading.css +1 -1
  182. package/dist/collection/components/loading/loading.js +131 -43
  183. package/dist/collection/components/magic-button/magic-button.css +1 -1
  184. package/dist/collection/components/magic-button/magic-button.js +51 -9
  185. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  186. package/dist/collection/components/menu/menu-group/menu-group.js +60 -2
  187. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  188. package/dist/collection/components/menu/menu-header/menu-header.js +17 -2
  189. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  190. package/dist/collection/components/menu/menu-info/menu-info.js +15 -2
  191. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  192. package/dist/collection/components/menu/menu-item/menu-item.js +72 -8
  193. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  194. package/dist/collection/components/menu/menu-link/menu-link.js +25 -4
  195. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  196. package/dist/collection/components/menu/menu-list/menu-list.js +64 -29
  197. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  198. package/dist/collection/components/menu/menu-logo/menu-logo.js +15 -2
  199. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  200. package/dist/collection/components/menu/menu-social/menu-social.js +29 -7
  201. package/dist/collection/components/menu/menu.css +1 -1
  202. package/dist/collection/components/menu/menu.js +71 -60
  203. package/dist/collection/components/menu/menu.utils.js +8 -18
  204. package/dist/collection/components/message/message.css +1 -1
  205. package/dist/collection/components/message/message.js +50 -24
  206. package/dist/collection/components/modal/modal.css +1 -1
  207. package/dist/collection/components/modal/modal.js +54 -41
  208. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  209. package/dist/collection/components/notification/notification-body/notification-body.js +13 -4
  210. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  211. package/dist/collection/components/notification/notification-header/notification-header.js +13 -4
  212. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  213. package/dist/collection/components/notification/notification-item/notification-item.js +23 -9
  214. package/dist/collection/components/notification/notification.css +1 -1
  215. package/dist/collection/components/notification/notification.js +54 -10
  216. package/dist/collection/components/pagination/pagination.css +1 -1
  217. package/dist/collection/components/pagination/pagination.js +161 -74
  218. package/dist/collection/components/radio/radio.css +1 -1
  219. package/dist/collection/components/radio/radio.js +109 -14
  220. package/dist/collection/components/radio-group/radio-group.css +1 -1
  221. package/dist/collection/components/radio-group/radio-group.js +153 -63
  222. package/dist/collection/components/scrim/scrim.css +1 -1
  223. package/dist/collection/components/scrim/scrim.js +215 -74
  224. package/dist/collection/components/scrim/scrim.utils.js +5 -51
  225. package/dist/collection/components/select/select-input/select-input.css +1 -1
  226. package/dist/collection/components/select/select-input/select-input.js +58 -5
  227. package/dist/collection/components/select/select-list/select-list.css +1 -1
  228. package/dist/collection/components/select/select-list/select-list.js +247 -52
  229. package/dist/collection/components/select/select-option/select-option.css +1 -1
  230. package/dist/collection/components/select/select-option/select-option.js +108 -46
  231. package/dist/collection/components/select/select.css +1 -1
  232. package/dist/collection/components/select/select.js +320 -124
  233. package/dist/collection/components/sign-in/sign-in.css +1 -1
  234. package/dist/collection/components/sign-in/sign-in.js +55 -16
  235. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +112 -3
  236. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  237. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +58 -5
  238. package/dist/collection/components/skip-link/skip-link.css +1 -1
  239. package/dist/collection/components/skip-link/skip-link.js +78 -39
  240. package/dist/collection/components/slider/slider.css +1 -1
  241. package/dist/collection/components/slider/slider.js +530 -132
  242. package/dist/collection/components/slider/slider.utils.js +178 -0
  243. package/dist/collection/components/step/step-item/step-item.css +1 -1
  244. package/dist/collection/components/step/step-item/step-item.js +29 -12
  245. package/dist/collection/components/step/step.css +1 -1
  246. package/dist/collection/components/step/step.js +119 -44
  247. package/dist/collection/components/switch/switch.css +1 -1
  248. package/dist/collection/components/switch/switch.js +48 -15
  249. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  250. package/dist/collection/components/tab/tab-item/tab-item.js +49 -14
  251. package/dist/collection/components/tab/tab.css +1 -1
  252. package/dist/collection/components/tab/tab.js +89 -46
  253. package/dist/collection/components/table/table-body/table-body.css +1 -1
  254. package/dist/collection/components/table/table-body/table-body.js +11 -7
  255. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  256. package/dist/collection/components/table/table-cell/table-cell.js +36 -17
  257. package/dist/collection/components/table/table-header/table-header.css +1 -1
  258. package/dist/collection/components/table/table-header/table-header.js +11 -7
  259. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  260. package/dist/collection/components/table/table-header-cell/table-header-cell.js +35 -13
  261. package/dist/collection/components/table/table-row/table-row.css +1 -1
  262. package/dist/collection/components/table/table-row/table-row.js +24 -7
  263. package/dist/collection/components/table/table.css +1 -1
  264. package/dist/collection/components/table/table.js +107 -31
  265. package/dist/collection/components/tag/tag.css +1 -1
  266. package/dist/collection/components/tag/tag.js +86 -36
  267. package/dist/collection/components/textarea/textarea.css +1 -1
  268. package/dist/collection/components/textarea/textarea.js +222 -19
  269. package/dist/collection/components/tooltip/tooltip.css +1 -1
  270. package/dist/collection/components/tooltip/tooltip.js +134 -45
  271. package/dist/collection/components/upload/upload.css +1 -1
  272. package/dist/collection/components/upload/upload.js +135 -33
  273. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  274. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +54 -3
  275. package/dist/collection/components/wizard/wizard.css +1 -1
  276. package/dist/collection/components/wizard/wizard.js +82 -28
  277. package/dist/collection/pages/scripts/component-controls-core.js +95 -0
  278. package/dist/collection/pages/scripts/component-controls.js +217 -153
  279. package/dist/collection/pages/scripts/dev-event-console.js +5 -1
  280. package/dist/collection/pages/scripts/menu.js +90 -5
  281. package/dist/collection/pages/scripts/pageLoader.js +1470 -584
  282. package/dist/collection/pages/scripts/pageloader-preview.js +787 -0
  283. package/dist/collection/pages/scripts/playground-core.js +173 -0
  284. package/dist/collection/shared/utils/cssVariables.js +2 -0
  285. package/dist/collection/shared/utils/date.js +8 -4
  286. package/dist/collection/shared/utils/floating-ui.js +24 -1
  287. package/dist/collection/shared/utils/focus.js +31 -0
  288. package/dist/collection/shared/utils/getRandom.js +16 -1
  289. package/dist/collection/shared/utils/helpers.js +4 -11
  290. package/dist/collection/shared/utils/id.js +23 -7
  291. package/dist/collection/shared/utils/index.js +6 -1
  292. package/dist/collection/shared/utils/isEmpty.js +5 -3
  293. package/dist/collection/shared/utils/motion.js +25 -0
  294. package/dist/collection/shared/utils/ownership.js +113 -0
  295. package/dist/collection/shared/utils/prop-warning.js +47 -0
  296. package/dist/collection/shared/utils/props.js +79 -0
  297. package/dist/collection/shared/utils/swipe.js +11 -1
  298. package/dist/collection/shared/utils/transition.js +3 -0
  299. package/dist/collection/shared/utils/virtual-scroll.js +24 -0
  300. package/dist/components/br-avatar.d.ts +1 -1
  301. package/dist/components/br-avatar.js +1 -1
  302. package/dist/components/br-breadcrumb-item.d.ts +1 -1
  303. package/dist/components/br-breadcrumb-item.js +1 -1
  304. package/dist/components/br-breadcrumb.d.ts +1 -1
  305. package/dist/components/br-breadcrumb.js +1 -1
  306. package/dist/components/br-button.d.ts +1 -1
  307. package/dist/components/br-button.js +1 -1
  308. package/dist/components/br-card.d.ts +1 -1
  309. package/dist/components/br-card.js +1 -1
  310. package/dist/components/br-carousel-page.d.ts +1 -1
  311. package/dist/components/br-carousel-page.js +1 -1
  312. package/dist/components/br-carousel.d.ts +1 -1
  313. package/dist/components/br-carousel.js +1 -1
  314. package/dist/components/br-checkbox-group.d.ts +1 -1
  315. package/dist/components/br-checkbox-group.js +1 -1
  316. package/dist/components/br-checkbox.d.ts +1 -1
  317. package/dist/components/br-checkbox.js +1 -1
  318. package/dist/components/br-checkgroup.d.ts +1 -1
  319. package/dist/components/br-checkgroup.js +1 -1
  320. package/dist/components/br-collapse.d.ts +1 -1
  321. package/dist/components/br-collapse.js +1 -1
  322. package/dist/components/br-cookiebar-cookie.d.ts +1 -1
  323. package/dist/components/br-cookiebar-cookie.js +1 -1
  324. package/dist/components/br-cookiebar-group.d.ts +1 -1
  325. package/dist/components/br-cookiebar-group.js +1 -1
  326. package/dist/components/br-cookiebar-header.d.ts +1 -1
  327. package/dist/components/br-cookiebar-header.js +1 -1
  328. package/dist/components/br-cookiebar-link.d.ts +1 -1
  329. package/dist/components/br-cookiebar-link.js +1 -1
  330. package/dist/components/br-cookiebar-note-group.d.ts +1 -1
  331. package/dist/components/br-cookiebar-note-group.js +1 -1
  332. package/dist/components/br-cookiebar-note.d.ts +1 -1
  333. package/dist/components/br-cookiebar-note.js +1 -1
  334. package/dist/components/br-cookiebar.d.ts +1 -1
  335. package/dist/components/br-cookiebar.js +1 -1
  336. package/dist/components/br-crumb.d.ts +1 -1
  337. package/dist/components/br-crumb.js +1 -1
  338. package/dist/components/br-date-picker.d.ts +1 -1
  339. package/dist/components/br-date-picker.js +1 -1
  340. package/dist/components/br-datetime-input.d.ts +1 -1
  341. package/dist/components/br-datetime-input.js +1 -1
  342. package/dist/components/br-datetime-picker.d.ts +1 -1
  343. package/dist/components/br-datetime-picker.js +1 -1
  344. package/dist/components/br-divider.d.ts +1 -1
  345. package/dist/components/br-divider.js +1 -1
  346. package/dist/components/br-dropdown.d.ts +1 -1
  347. package/dist/components/br-dropdown.js +1 -1
  348. package/dist/components/br-footer-category.d.ts +1 -1
  349. package/dist/components/br-footer-category.js +1 -1
  350. package/dist/components/br-footer-item.d.ts +1 -1
  351. package/dist/components/br-footer-item.js +1 -1
  352. package/dist/components/br-footer-legal.d.ts +1 -1
  353. package/dist/components/br-footer-legal.js +1 -1
  354. package/dist/components/br-footer-logo.d.ts +1 -1
  355. package/dist/components/br-footer-logo.js +1 -1
  356. package/dist/components/br-footer-social.d.ts +1 -1
  357. package/dist/components/br-footer-social.js +1 -1
  358. package/dist/components/br-footer.d.ts +1 -1
  359. package/dist/components/br-footer.js +1 -1
  360. package/dist/components/br-header-function.d.ts +1 -1
  361. package/dist/components/br-header-function.js +1 -1
  362. package/dist/components/br-header-link.d.ts +1 -1
  363. package/dist/components/br-header-link.js +1 -1
  364. package/dist/components/br-header-list.d.ts +1 -1
  365. package/dist/components/br-header-list.js +1 -1
  366. package/dist/components/br-header-logo.d.ts +1 -1
  367. package/dist/components/br-header-logo.js +1 -1
  368. package/dist/components/br-header.d.ts +1 -1
  369. package/dist/components/br-header.js +1 -1
  370. package/dist/components/br-icon.d.ts +1 -1
  371. package/dist/components/br-icon.js +1 -1
  372. package/dist/components/br-input.d.ts +1 -1
  373. package/dist/components/br-input.js +1 -1
  374. package/dist/components/br-item.d.ts +1 -1
  375. package/dist/components/br-item.js +1 -1
  376. package/dist/components/br-link.d.ts +1 -1
  377. package/dist/components/br-link.js +1 -1
  378. package/dist/components/br-list.d.ts +1 -1
  379. package/dist/components/br-list.js +1 -1
  380. package/dist/components/br-loading.d.ts +1 -1
  381. package/dist/components/br-loading.js +1 -1
  382. package/dist/components/br-magic-button.d.ts +1 -1
  383. package/dist/components/br-magic-button.js +1 -1
  384. package/dist/components/br-menu-group.d.ts +1 -1
  385. package/dist/components/br-menu-group.js +1 -1
  386. package/dist/components/br-menu-header.d.ts +1 -1
  387. package/dist/components/br-menu-header.js +1 -1
  388. package/dist/components/br-menu-info.d.ts +1 -1
  389. package/dist/components/br-menu-info.js +1 -1
  390. package/dist/components/br-menu-item.d.ts +1 -1
  391. package/dist/components/br-menu-item.js +1 -1
  392. package/dist/components/br-menu-link.d.ts +1 -1
  393. package/dist/components/br-menu-link.js +1 -1
  394. package/dist/components/br-menu-list.d.ts +1 -1
  395. package/dist/components/br-menu-list.js +1 -1
  396. package/dist/components/br-menu-logo.d.ts +1 -1
  397. package/dist/components/br-menu-logo.js +1 -1
  398. package/dist/components/br-menu-social.d.ts +1 -1
  399. package/dist/components/br-menu-social.js +1 -1
  400. package/dist/components/br-menu.d.ts +1 -1
  401. package/dist/components/br-menu.js +1 -1
  402. package/dist/components/br-message.d.ts +1 -1
  403. package/dist/components/br-message.js +1 -1
  404. package/dist/components/br-modal.d.ts +1 -1
  405. package/dist/components/br-modal.js +1 -1
  406. package/dist/components/br-notification-body.d.ts +1 -1
  407. package/dist/components/br-notification-body.js +1 -1
  408. package/dist/components/br-notification-header.d.ts +1 -1
  409. package/dist/components/br-notification-header.js +1 -1
  410. package/dist/components/br-notification-item.d.ts +1 -1
  411. package/dist/components/br-notification-item.js +1 -1
  412. package/dist/components/br-notification.d.ts +1 -1
  413. package/dist/components/br-notification.js +1 -1
  414. package/dist/components/br-pagination.d.ts +1 -1
  415. package/dist/components/br-pagination.js +1 -1
  416. package/dist/components/br-radio-group.d.ts +1 -1
  417. package/dist/components/br-radio-group.js +1 -1
  418. package/dist/components/br-radio.d.ts +1 -1
  419. package/dist/components/br-radio.js +1 -1
  420. package/dist/components/br-scrim.d.ts +1 -1
  421. package/dist/components/br-scrim.js +1 -1
  422. package/dist/components/br-select-input.d.ts +1 -1
  423. package/dist/components/br-select-input.js +1 -1
  424. package/dist/components/br-select-list.d.ts +1 -1
  425. package/dist/components/br-select-list.js +1 -1
  426. package/dist/components/br-select-option.d.ts +1 -1
  427. package/dist/components/br-select-option.js +1 -1
  428. package/dist/components/br-select.d.ts +1 -1
  429. package/dist/components/br-select.js +1 -1
  430. package/dist/components/br-sign-in.d.ts +1 -1
  431. package/dist/components/br-sign-in.js +1 -1
  432. package/dist/components/br-skip-link-item.d.ts +1 -1
  433. package/dist/components/br-skip-link-item.js +1 -1
  434. package/dist/components/br-skip-link.d.ts +1 -1
  435. package/dist/components/br-skip-link.js +1 -1
  436. package/dist/components/br-skiplink-item.d.ts +1 -1
  437. package/dist/components/br-skiplink-item.js +1 -1
  438. package/dist/components/br-slider.d.ts +1 -1
  439. package/dist/components/br-slider.js +1 -1
  440. package/dist/components/br-step-item.d.ts +1 -1
  441. package/dist/components/br-step-item.js +1 -1
  442. package/dist/components/br-step.d.ts +1 -1
  443. package/dist/components/br-step.js +1 -1
  444. package/dist/components/br-switch.d.ts +1 -1
  445. package/dist/components/br-switch.js +1 -1
  446. package/dist/components/br-tab-item.d.ts +1 -1
  447. package/dist/components/br-tab-item.js +1 -1
  448. package/dist/components/br-tab.d.ts +1 -1
  449. package/dist/components/br-tab.js +1 -1
  450. package/dist/components/br-table-body.d.ts +1 -1
  451. package/dist/components/br-table-body.js +1 -1
  452. package/dist/components/br-table-cell.d.ts +1 -1
  453. package/dist/components/br-table-cell.js +1 -1
  454. package/dist/components/br-table-header-cell.d.ts +1 -1
  455. package/dist/components/br-table-header-cell.js +1 -1
  456. package/dist/components/br-table-header.d.ts +1 -1
  457. package/dist/components/br-table-header.js +1 -1
  458. package/dist/components/br-table-row.d.ts +1 -1
  459. package/dist/components/br-table-row.js +1 -1
  460. package/dist/components/br-table.d.ts +1 -1
  461. package/dist/components/br-table.js +1 -1
  462. package/dist/components/br-tag.d.ts +1 -1
  463. package/dist/components/br-tag.js +1 -1
  464. package/dist/components/br-textarea.d.ts +1 -1
  465. package/dist/components/br-textarea.js +1 -1
  466. package/dist/components/br-time-picker.d.ts +1 -1
  467. package/dist/components/br-time-picker.js +1 -1
  468. package/dist/components/br-tooltip.d.ts +1 -1
  469. package/dist/components/br-tooltip.js +1 -1
  470. package/dist/components/br-upload.d.ts +1 -1
  471. package/dist/components/br-upload.js +1 -1
  472. package/dist/components/br-wizard-panel.d.ts +1 -1
  473. package/dist/components/br-wizard-panel.js +1 -1
  474. package/dist/components/br-wizard.d.ts +1 -1
  475. package/dist/components/br-wizard.js +1 -1
  476. package/dist/components/index.d.ts +89 -89
  477. package/dist/components/index.js +1 -1
  478. package/dist/components/p-B0o70fWP.js +5 -0
  479. package/dist/components/p-B96LROz9.js +5 -0
  480. package/dist/components/p-BDqef5-y.js +5 -0
  481. package/dist/components/p-BEJGB0Nd.js +5 -0
  482. package/dist/{webcomponents/p-Dmfk7eEe.js → components/p-BJZC_NuV.js} +1 -1
  483. package/dist/components/p-BJtdabsr.js +5 -0
  484. package/dist/components/p-BP5zMCxG.js +5 -0
  485. package/dist/components/p-BRaphxoP.js +5 -0
  486. package/dist/components/p-BUzBa9L1.js +5 -0
  487. package/dist/components/{p-DA5GS53D.js → p-BblZlUp2.js} +1 -1
  488. package/dist/components/p-Bc4nAk5i.js +5 -0
  489. package/dist/components/{p-C1yRmdso.js → p-BcqVlof7.js} +1 -1
  490. package/dist/components/p-BeJxz5TQ.js +5 -0
  491. package/dist/components/p-Bezou5CQ.js +5 -0
  492. package/dist/components/p-BrNh9KdF.js +5 -0
  493. package/dist/components/p-C5th2dxu.js +5 -0
  494. package/dist/components/p-CDtFCbKp.js +5 -0
  495. package/dist/components/p-CEdUp183.js +5 -0
  496. package/dist/components/p-CF7t0uxQ.js +5 -0
  497. package/dist/components/p-CFzHx6zV.js +5 -0
  498. package/dist/components/p-CG4em0S6.js +5 -0
  499. package/dist/components/p-CI4D3-pf.js +5 -0
  500. package/dist/components/p-CIrVPkVg.js +5 -0
  501. package/dist/components/p-CNwZRgyL.js +5 -0
  502. package/dist/components/p-CppRJiyC.js +5 -0
  503. package/dist/components/p-Cvk1Ggs5.js +5 -0
  504. package/dist/components/p-D12US39c.js +5 -0
  505. package/dist/components/p-D9Zo6FlV.js +5 -0
  506. package/dist/components/p-DGPJkJsj.js +5 -0
  507. package/dist/components/p-DSHbttu9.js +5 -0
  508. package/dist/components/p-DTGNra9m.js +5 -0
  509. package/dist/components/p-DWhzxlCx.js +5 -0
  510. package/dist/components/p-DX1wAFn4.js +5 -0
  511. package/dist/components/p-DiLI514I.js +5 -0
  512. package/dist/components/p-Dma14GVa.js +5 -0
  513. package/dist/components/p-DpRZ4B0d.js +5 -0
  514. package/dist/components/p-G35qEQZd.js +5 -0
  515. package/dist/components/p-Ho_IybzR.js +5 -0
  516. package/dist/components/p-SvVnvJdC.js +5 -0
  517. package/dist/components/p-emAWunES.js +5 -0
  518. package/dist/components/p-fB79wKCm.js +5 -0
  519. package/dist/components/p-k7p4QJ8a.js +5 -0
  520. package/dist/esm/br-avatar.entry.js +21 -14
  521. package/dist/esm/br-breadcrumb-item.entry.js +2 -2
  522. package/dist/esm/br-breadcrumb.entry.js +49 -22
  523. package/dist/esm/br-button_2.entry.js +72 -35
  524. package/dist/esm/br-card.entry.js +6 -5
  525. package/dist/esm/br-carousel-page.entry.js +3 -3
  526. package/dist/esm/br-carousel.entry.js +78 -22
  527. package/dist/esm/br-checkbox-group.entry.js +157 -27
  528. package/dist/esm/br-checkbox.entry.js +86 -16
  529. package/dist/esm/br-checkgroup.entry.js +5 -2
  530. package/dist/esm/br-collapse_2.entry.js +86 -27
  531. package/dist/esm/br-cookiebar-cookie.entry.js +4 -4
  532. package/dist/esm/br-cookiebar-group.entry.js +4 -4
  533. package/dist/esm/br-cookiebar-header.entry.js +4 -4
  534. package/dist/esm/br-cookiebar-link.entry.js +14 -6
  535. package/dist/esm/br-cookiebar-note-group.entry.js +3 -5
  536. package/dist/esm/br-cookiebar-note.entry.js +4 -4
  537. package/dist/esm/br-cookiebar.entry.js +39 -26
  538. package/dist/esm/br-crumb.entry.js +2 -2
  539. package/dist/esm/br-date-picker_3.entry.js +207 -49
  540. package/dist/esm/br-datetime-picker.entry.js +82 -494
  541. package/dist/esm/br-divider.entry.js +70 -17
  542. package/dist/esm/br-dropdown_2.entry.js +302 -129
  543. package/dist/esm/br-footer-category.entry.js +10 -6
  544. package/dist/esm/br-footer-item.entry.js +9 -4
  545. package/dist/esm/br-footer-legal.entry.js +4 -4
  546. package/dist/esm/br-footer-logo.entry.js +22 -10
  547. package/dist/esm/br-footer-social.entry.js +14 -6
  548. package/dist/esm/br-footer.entry.js +16 -7
  549. package/dist/esm/br-header-function.entry.js +28 -7
  550. package/dist/esm/br-header-link.entry.js +25 -4
  551. package/dist/esm/br-header-list.entry.js +7 -18
  552. package/dist/esm/br-header-logo.entry.js +18 -7
  553. package/dist/esm/br-header.entry.js +72 -17
  554. package/dist/esm/br-icon.entry.js +160 -23
  555. package/dist/esm/br-input.entry.js +132 -41
  556. package/dist/esm/br-item.entry.js +96 -48
  557. package/dist/esm/br-link.entry.js +20 -7
  558. package/dist/esm/br-loading.entry.js +100 -38
  559. package/dist/esm/br-magic-button.entry.js +26 -9
  560. package/dist/esm/br-menu-group.entry.js +14 -3
  561. package/dist/esm/br-menu-header.entry.js +4 -4
  562. package/dist/esm/br-menu-info.entry.js +4 -4
  563. package/dist/esm/br-menu-item.entry.js +27 -5
  564. package/dist/esm/br-menu-link.entry.js +14 -6
  565. package/dist/esm/br-menu-list.entry.js +23 -27
  566. package/dist/esm/br-menu-logo.entry.js +4 -4
  567. package/dist/esm/br-menu-social.entry.js +16 -6
  568. package/dist/esm/br-menu.entry.js +39 -58
  569. package/dist/esm/br-modal.entry.js +26 -40
  570. package/dist/esm/br-notification-body.entry.js +4 -4
  571. package/dist/esm/br-notification-header.entry.js +4 -4
  572. package/dist/esm/br-notification-item.entry.js +14 -8
  573. package/dist/esm/br-notification.entry.js +24 -9
  574. package/dist/esm/br-pagination.entry.js +119 -87
  575. package/dist/esm/br-radio-group.entry.js +107 -58
  576. package/dist/esm/br-radio.entry.js +62 -12
  577. package/dist/esm/br-scrim.entry.js +161 -67
  578. package/dist/esm/br-select-input_3.entry.js +283 -90
  579. package/dist/esm/br-sign-in.entry.js +34 -15
  580. package/dist/esm/br-skip-link-item.entry.js +39 -2
  581. package/dist/esm/br-skip-link.entry.js +50 -33
  582. package/dist/esm/br-skiplink-item.entry.js +22 -6
  583. package/dist/esm/br-slider.entry.js +519 -97
  584. package/dist/esm/br-step_2.entry.js +98 -44
  585. package/dist/esm/br-switch.entry.js +21 -12
  586. package/dist/esm/br-tab-item.entry.js +38 -14
  587. package/dist/esm/br-tab.entry.js +57 -44
  588. package/dist/esm/br-table-body.entry.js +3 -3
  589. package/dist/esm/br-table-cell.entry.js +30 -13
  590. package/dist/esm/br-table-header-cell.entry.js +23 -7
  591. package/dist/esm/br-table-header.entry.js +3 -3
  592. package/dist/esm/br-table-row.entry.js +17 -3
  593. package/dist/esm/br-table.entry.js +68 -22
  594. package/dist/esm/br-tag.entry.js +49 -31
  595. package/dist/esm/br-textarea.entry.js +118 -13
  596. package/dist/esm/br-tooltip.entry.js +88 -42
  597. package/dist/esm/br-upload.entry.js +84 -25
  598. package/dist/esm/br-wizard-panel.entry.js +16 -3
  599. package/dist/esm/br-wizard.entry.js +52 -28
  600. package/dist/esm/{datetime-picker-constants-Bfm58jO6.js → datetime-picker-constants-BtRPYRvA.js} +1 -1
  601. package/dist/esm/{isValid-DIUZX1qS.js → datetime-picker-props-validation-BeTcUTnE.js} +476 -5
  602. package/dist/esm/{event-DFN_so7I.js → event-CfuJQ1DY.js} +1 -1
  603. package/dist/esm/{floating-ui-BavFwMnx.js → floating-ui-CskvaxD5.js} +24 -1
  604. package/dist/esm/{floating-ui.dom-DIK54tTj.js → floating-ui.dom-D9Zo6FlV.js} +201 -114
  605. package/dist/esm/{focus-DxZJrIyL.js → focus-CNwZRgyL.js} +20 -1
  606. package/dist/esm/header-context-BEJGB0Nd.js +15 -0
  607. package/dist/esm/id-BeJxz5TQ.js +34 -0
  608. package/dist/esm/{index-Bo-2igoO.js → index-BQPOWxe5.js} +1 -1
  609. package/dist/esm/{index-C2RBydfd.js → index-Dcn7tRST.js} +68 -752
  610. package/dist/esm/index.js +2 -2
  611. package/dist/esm/loader.js +3 -3
  612. package/dist/esm/motion-DWhzxlCx.js +27 -0
  613. package/dist/esm/ownership-CDtFCbKp.js +111 -0
  614. package/dist/esm/prop-warning-BlGV-x0w.js +56 -0
  615. package/dist/esm/props-D07GjR4_.js +116 -0
  616. package/dist/esm/{swipe-Dmfk7eEe.js → swipe-BJZC_NuV.js} +11 -1
  617. package/dist/esm/webcomponents.js +4 -4
  618. package/dist/hydrate/index.js +7364 -2602
  619. package/dist/hydrate/index.mjs +7364 -2602
  620. package/dist/loader/index.d.ts +1 -1
  621. package/dist/types/components/avatar/avatar.d.ts +34 -4
  622. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +14 -2
  623. package/dist/types/components/breadcrumb/breadcrumb.d.ts +66 -5
  624. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +13 -1
  625. package/dist/types/components/button/button.d.ts +45 -9
  626. package/dist/types/components/card/card.d.ts +31 -3
  627. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +10 -3
  628. package/dist/types/components/carousel/carousel.d.ts +46 -3
  629. package/dist/types/components/checkbox/checkbox.d.ts +59 -6
  630. package/dist/types/components/checkbox-group/checkbox-group.d.ts +47 -5
  631. package/dist/types/components/checkgroup/checkgroup.d.ts +27 -5
  632. package/dist/types/components/collapse/collapse.d.ts +33 -4
  633. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +16 -3
  634. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +15 -6
  635. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +14 -8
  636. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +16 -5
  637. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +13 -3
  638. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +13 -3
  639. package/dist/types/components/cookiebar/cookiebar.d.ts +35 -10
  640. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +63 -7
  641. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +51 -9
  642. package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +4 -2
  643. package/dist/types/components/datetime-picker/datetime-picker.d.ts +118 -12
  644. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +38 -4
  645. package/dist/types/components/divider/divider.d.ts +45 -8
  646. package/dist/types/components/dropdown/dropdown.d.ts +41 -3
  647. package/dist/types/components/footer/footer-category/footer-category.d.ts +16 -1
  648. package/dist/types/components/footer/footer-item/footer-item.d.ts +17 -1
  649. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +15 -1
  650. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +21 -2
  651. package/dist/types/components/footer/footer-social/footer-social.d.ts +20 -3
  652. package/dist/types/components/footer/footer.d.ts +39 -3
  653. package/dist/types/components/header/header-context.d.ts +1 -0
  654. package/dist/types/components/header/header-function/header-function.d.ts +24 -2
  655. package/dist/types/components/header/header-link/header-link.d.ts +22 -1
  656. package/dist/types/components/header/header-list/header-list.d.ts +16 -8
  657. package/dist/types/components/header/header-logo/header-logo.d.ts +20 -1
  658. package/dist/types/components/header/header.d.ts +45 -7
  659. package/dist/types/components/icon/icon.d.ts +44 -13
  660. package/dist/types/components/input/input.d.ts +65 -15
  661. package/dist/types/components/item/item.d.ts +38 -5
  662. package/dist/types/components/link/link.d.ts +41 -9
  663. package/dist/types/components/list/list.d.ts +58 -8
  664. package/dist/types/components/loading/loading.d.ts +48 -8
  665. package/dist/types/components/magic-button/magic-button.d.ts +37 -3
  666. package/dist/types/components/menu/menu-group/menu-group.d.ts +19 -1
  667. package/dist/types/components/menu/menu-header/menu-header.d.ts +16 -1
  668. package/dist/types/components/menu/menu-info/menu-info.d.ts +14 -1
  669. package/dist/types/components/menu/menu-item/menu-item.d.ts +27 -3
  670. package/dist/types/components/menu/menu-link/menu-link.d.ts +17 -1
  671. package/dist/types/components/menu/menu-list/menu-list.d.ts +22 -4
  672. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +14 -1
  673. package/dist/types/components/menu/menu-social/menu-social.d.ts +21 -2
  674. package/dist/types/components/menu/menu.d.ts +39 -6
  675. package/dist/types/components/menu/menu.utils.d.ts +2 -6
  676. package/dist/types/components/message/message.d.ts +38 -9
  677. package/dist/types/components/modal/modal.d.ts +34 -4
  678. package/dist/types/components/notification/notification-body/notification-body.d.ts +12 -3
  679. package/dist/types/components/notification/notification-header/notification-header.d.ts +12 -3
  680. package/dist/types/components/notification/notification-item/notification-item.d.ts +15 -3
  681. package/dist/types/components/notification/notification.d.ts +36 -5
  682. package/dist/types/components/pagination/pagination.d.ts +56 -20
  683. package/dist/types/components/radio/radio.d.ts +49 -4
  684. package/dist/types/components/radio-group/radio-group.d.ts +52 -10
  685. package/dist/types/components/scrim/scrim.d.ts +72 -11
  686. package/dist/types/components/scrim/scrim.utils.d.ts +2 -17
  687. package/dist/types/components/select/select-input/select-input.d.ts +22 -4
  688. package/dist/types/components/select/select-list/select-list.d.ts +51 -5
  689. package/dist/types/components/select/select-option/select-option.d.ts +31 -8
  690. package/dist/types/components/select/select.d.ts +152 -13
  691. package/dist/types/components/select/select.types.d.ts +5 -0
  692. package/dist/types/components/sign-in/sign-in.d.ts +30 -3
  693. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +15 -2
  694. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +22 -1
  695. package/dist/types/components/skip-link/skip-link.d.ts +37 -3
  696. package/dist/types/components/slider/slider.d.ts +147 -21
  697. package/dist/types/components/slider/slider.types.d.ts +7 -2
  698. package/dist/types/components/slider/slider.utils.d.ts +27 -0
  699. package/dist/types/components/step/step-item/step-item.d.ts +15 -3
  700. package/dist/types/components/step/step.d.ts +47 -12
  701. package/dist/types/components/switch/switch.d.ts +39 -6
  702. package/dist/types/components/tab/tab-item/tab-item.d.ts +20 -4
  703. package/dist/types/components/tab/tab.d.ts +41 -11
  704. package/dist/types/components/table/table-body/table-body.d.ts +10 -6
  705. package/dist/types/components/table/table-cell/table-cell.d.ts +10 -6
  706. package/dist/types/components/table/table-header/table-header.d.ts +10 -6
  707. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +18 -6
  708. package/dist/types/components/table/table-row/table-row.d.ts +11 -6
  709. package/dist/types/components/table/table.d.ts +49 -11
  710. package/dist/types/components/tag/tag.d.ts +55 -7
  711. package/dist/types/components/textarea/textarea.d.ts +75 -5
  712. package/dist/types/components/textarea/textarea.types.d.ts +4 -0
  713. package/dist/types/components/tooltip/tooltip.d.ts +46 -8
  714. package/dist/types/components/upload/upload.d.ts +78 -10
  715. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +20 -2
  716. package/dist/types/components/wizard/wizard.d.ts +44 -7
  717. package/dist/types/components.d.ts +5823 -1350
  718. package/dist/types/shared/utils/floating-ui.d.ts +4 -0
  719. package/dist/types/shared/utils/focus.d.ts +14 -0
  720. package/dist/types/shared/utils/getRandom.d.ts +1 -0
  721. package/dist/types/shared/utils/id.d.ts +1 -1
  722. package/dist/types/shared/utils/index.d.ts +6 -1
  723. package/dist/types/shared/utils/motion.d.ts +14 -0
  724. package/dist/types/shared/utils/ownership.d.ts +33 -0
  725. package/dist/types/shared/utils/prop-warning.d.ts +7 -0
  726. package/dist/types/shared/utils/props.d.ts +38 -0
  727. package/dist/types/shared/utils/swipe.d.ts +5 -0
  728. package/dist/types/shared/utils/virtual-scroll.d.ts +25 -0
  729. package/dist/types/stencil-public-runtime.d.ts +12 -0
  730. package/dist/webcomponents/index.esm.js +1 -1
  731. package/dist/webcomponents/p-01baafce.entry.js +5 -0
  732. package/dist/webcomponents/p-01fb0754.entry.js +5 -0
  733. package/dist/webcomponents/p-030c02f8.entry.js +5 -0
  734. package/dist/webcomponents/p-03359c92.entry.js +5 -0
  735. package/dist/webcomponents/p-09770c98.entry.js +5 -0
  736. package/dist/webcomponents/p-0b9714f1.entry.js +5 -0
  737. package/dist/webcomponents/p-12aa36a8.entry.js +5 -0
  738. package/dist/webcomponents/p-130b6e06.entry.js +5 -0
  739. package/dist/webcomponents/p-144f8c8d.entry.js +5 -0
  740. package/dist/webcomponents/p-14fe22e2.entry.js +5 -0
  741. package/dist/webcomponents/p-1ff9210a.entry.js +5 -0
  742. package/dist/webcomponents/p-2605cdc3.entry.js +5 -0
  743. package/dist/webcomponents/p-27afaec9.entry.js +5 -0
  744. package/dist/webcomponents/p-2a50e42d.entry.js +5 -0
  745. package/dist/webcomponents/p-327f034f.entry.js +5 -0
  746. package/dist/webcomponents/p-342650b8.entry.js +5 -0
  747. package/dist/webcomponents/p-38f6a78b.entry.js +5 -0
  748. package/dist/webcomponents/p-3920fe3a.entry.js +5 -0
  749. package/dist/webcomponents/p-3ae97345.entry.js +5 -0
  750. package/dist/webcomponents/p-3cce767c.entry.js +5 -0
  751. package/dist/webcomponents/p-3df6c5d2.entry.js +5 -0
  752. package/dist/webcomponents/p-3e287899.entry.js +5 -0
  753. package/dist/webcomponents/p-3e5580ba.entry.js +5 -0
  754. package/dist/webcomponents/p-403637dd.entry.js +5 -0
  755. package/dist/webcomponents/p-435c8ef2.entry.js +5 -0
  756. package/dist/webcomponents/p-59da5b55.entry.js +5 -0
  757. package/dist/webcomponents/p-5dd4314c.entry.js +5 -0
  758. package/dist/webcomponents/p-646af6a5.entry.js +5 -0
  759. package/dist/webcomponents/p-670e8fec.entry.js +5 -0
  760. package/dist/webcomponents/p-68046544.entry.js +5 -0
  761. package/dist/webcomponents/p-68ec76b8.entry.js +5 -0
  762. package/dist/webcomponents/p-6c0ea20c.entry.js +5 -0
  763. package/dist/webcomponents/p-6c2fe5e4.entry.js +5 -0
  764. package/dist/webcomponents/p-707df9b9.entry.js +5 -0
  765. package/dist/webcomponents/p-72b839fe.entry.js +5 -0
  766. package/dist/webcomponents/p-73dcc05b.entry.js +5 -0
  767. package/dist/webcomponents/p-7acf20d3.entry.js +5 -0
  768. package/dist/webcomponents/p-7b01bddb.entry.js +5 -0
  769. package/dist/webcomponents/p-7cd38850.entry.js +5 -0
  770. package/dist/webcomponents/p-82454383.entry.js +5 -0
  771. package/dist/webcomponents/p-91e959a8.entry.js +5 -0
  772. package/dist/webcomponents/p-964c01e6.entry.js +5 -0
  773. package/dist/webcomponents/p-9858e42a.entry.js +5 -0
  774. package/dist/webcomponents/p-9c4200b0.entry.js +5 -0
  775. package/dist/webcomponents/p-9d9c87b1.entry.js +5 -0
  776. package/dist/webcomponents/p-B0PbhaxL.js +5 -0
  777. package/dist/webcomponents/p-BEJGB0Nd.js +5 -0
  778. package/dist/{components/p-Dmfk7eEe.js → webcomponents/p-BJZC_NuV.js} +1 -1
  779. package/dist/webcomponents/p-BJtdabsr.js +5 -0
  780. package/dist/webcomponents/p-BeJxz5TQ.js +5 -0
  781. package/dist/webcomponents/p-BlGV-x0w.js +5 -0
  782. package/dist/webcomponents/{p-Bfm58jO6.js → p-BtRPYRvA.js} +1 -1
  783. package/dist/webcomponents/p-CDtFCbKp.js +5 -0
  784. package/dist/webcomponents/p-CNwZRgyL.js +5 -0
  785. package/dist/webcomponents/{p-DFN_so7I.js → p-CfuJQ1DY.js} +1 -1
  786. package/dist/webcomponents/p-D9Zo6FlV.js +5 -0
  787. package/dist/webcomponents/{p-BhMVJQ4-.js → p-DV-iW9Aj.js} +1 -1
  788. package/dist/webcomponents/p-DWhzxlCx.js +5 -0
  789. package/dist/webcomponents/p-Dcn7tRST.js +7 -0
  790. package/dist/webcomponents/p-EbtQZm5s.js +5 -0
  791. package/dist/webcomponents/p-a0931550.entry.js +5 -0
  792. package/dist/webcomponents/p-a212fd85.entry.js +5 -0
  793. package/dist/webcomponents/p-a2e75143.entry.js +5 -0
  794. package/dist/webcomponents/p-a3bb98c9.entry.js +5 -0
  795. package/dist/webcomponents/p-a8b5dba0.entry.js +5 -0
  796. package/dist/webcomponents/p-aa909443.entry.js +5 -0
  797. package/dist/webcomponents/p-abaf2365.entry.js +5 -0
  798. package/dist/webcomponents/p-aeb16645.entry.js +5 -0
  799. package/dist/webcomponents/p-b287c384.entry.js +5 -0
  800. package/dist/webcomponents/p-b506b0a1.entry.js +5 -0
  801. package/dist/webcomponents/p-b520c08c.entry.js +5 -0
  802. package/dist/webcomponents/p-b94c3f84.entry.js +5 -0
  803. package/dist/webcomponents/p-bda62f90.entry.js +5 -0
  804. package/dist/webcomponents/p-c201ae16.entry.js +5 -0
  805. package/dist/webcomponents/p-c7e899a1.entry.js +5 -0
  806. package/dist/webcomponents/p-c8b7bbab.entry.js +5 -0
  807. package/dist/webcomponents/p-cbf3e251.entry.js +5 -0
  808. package/dist/webcomponents/{p-7f7506f0.entry.js → p-cff24492.entry.js} +1 -1
  809. package/dist/webcomponents/p-d35cf5b4.entry.js +5 -0
  810. package/dist/webcomponents/p-d45ffe9c.entry.js +5 -0
  811. package/dist/webcomponents/p-d719a4af.entry.js +5 -0
  812. package/dist/webcomponents/p-d826c052.entry.js +5 -0
  813. package/dist/webcomponents/p-da21a60d.entry.js +5 -0
  814. package/dist/webcomponents/p-de0c7f26.entry.js +5 -0
  815. package/dist/webcomponents/p-e20188c0.entry.js +5 -0
  816. package/dist/webcomponents/p-e27882e1.entry.js +5 -0
  817. package/dist/webcomponents/p-e3de5bb3.entry.js +5 -0
  818. package/dist/webcomponents/p-e624ff04.entry.js +5 -0
  819. package/dist/webcomponents/p-ed5af0e4.entry.js +5 -0
  820. package/dist/webcomponents/p-edc6da0e.entry.js +5 -0
  821. package/dist/webcomponents/p-f24fcf3d.entry.js +5 -0
  822. package/dist/webcomponents/p-f52ef0dc.entry.js +5 -0
  823. package/dist/webcomponents/{p-12286e73.entry.js → p-f558d7b9.entry.js} +1 -1
  824. package/dist/webcomponents/p-fcab1428.entry.js +5 -0
  825. package/dist/webcomponents/p-fe1729a7.entry.js +5 -0
  826. package/dist/webcomponents/webcomponents.esm.js +1 -1
  827. package/package.json +18 -3
  828. package/dist/cjs/clamp-Co_hWptd.js +0 -25
  829. package/dist/cjs/id-CjRFMzf6.js +0 -20
  830. package/dist/cjs/props-CScmBvKd.js +0 -24
  831. package/dist/collection/pages/components/cookiebar/index.js +0 -26
  832. package/dist/collection/pages/components/link/index.js +0 -29
  833. package/dist/collection/pages/components/pagination/index.js +0 -12
  834. package/dist/collection/pages/components/slider/index.js +0 -18
  835. package/dist/components/p-6OdfnwnK.js +0 -5
  836. package/dist/components/p-AmOh1cks.js +0 -5
  837. package/dist/components/p-B4ylcipx.js +0 -5
  838. package/dist/components/p-BCv4PCOx.js +0 -5
  839. package/dist/components/p-BLOyd_iF.js +0 -5
  840. package/dist/components/p-BODem6tr.js +0 -5
  841. package/dist/components/p-Bb-nLtTG.js +0 -5
  842. package/dist/components/p-BeFK-82z.js +0 -5
  843. package/dist/components/p-BkS6ujyf.js +0 -5
  844. package/dist/components/p-BloE-KAN.js +0 -5
  845. package/dist/components/p-BoSc_kmY.js +0 -5
  846. package/dist/components/p-BrH3r7eL.js +0 -5
  847. package/dist/components/p-BsZ0Ny88.js +0 -5
  848. package/dist/components/p-ByHVf7zy.js +0 -5
  849. package/dist/components/p-CdF-gmk1.js +0 -5
  850. package/dist/components/p-CfyjGPGI.js +0 -5
  851. package/dist/components/p-CjF7pBVQ.js +0 -5
  852. package/dist/components/p-ClqtllDH.js +0 -5
  853. package/dist/components/p-CqW2Yh34.js +0 -5
  854. package/dist/components/p-DIK54tTj.js +0 -5
  855. package/dist/components/p-DLE5ioJN.js +0 -5
  856. package/dist/components/p-DQRSHR-D.js +0 -5
  857. package/dist/components/p-DRVMm1Py.js +0 -5
  858. package/dist/components/p-DRnCpVrL.js +0 -5
  859. package/dist/components/p-DVdlaP7z.js +0 -5
  860. package/dist/components/p-DeeF6ok0.js +0 -5
  861. package/dist/components/p-Dim2PnUm.js +0 -5
  862. package/dist/components/p-Dk8rfQjL.js +0 -5
  863. package/dist/components/p-DkmEpoef.js +0 -5
  864. package/dist/components/p-DwfAYaEv.js +0 -5
  865. package/dist/components/p-DxZJrIyL.js +0 -5
  866. package/dist/components/p-P2Z_MmH6.js +0 -5
  867. package/dist/components/p-Xa0Mj4pP.js +0 -5
  868. package/dist/components/p-_vsQvdxD.js +0 -5
  869. package/dist/components/p-aNjo4Alx.js +0 -5
  870. package/dist/components/p-gvnfuTjd.js +0 -5
  871. package/dist/components/p-rB-s1M3Q.js +0 -5
  872. package/dist/esm/clamp-gvnfuTjd.js +0 -23
  873. package/dist/esm/id-BkS6ujyf.js +0 -18
  874. package/dist/esm/props-DRVMm1Py.js +0 -22
  875. package/dist/webcomponents/p-00cc31f9.entry.js +0 -5
  876. package/dist/webcomponents/p-026475bd.entry.js +0 -5
  877. package/dist/webcomponents/p-0291ab28.entry.js +0 -5
  878. package/dist/webcomponents/p-03e5a7dc.entry.js +0 -5
  879. package/dist/webcomponents/p-060df8ee.entry.js +0 -5
  880. package/dist/webcomponents/p-09fce2a5.entry.js +0 -5
  881. package/dist/webcomponents/p-1002bbff.entry.js +0 -5
  882. package/dist/webcomponents/p-1124de33.entry.js +0 -5
  883. package/dist/webcomponents/p-12e97d80.entry.js +0 -5
  884. package/dist/webcomponents/p-1580beee.entry.js +0 -5
  885. package/dist/webcomponents/p-1b19b191.entry.js +0 -5
  886. package/dist/webcomponents/p-2baf353b.entry.js +0 -5
  887. package/dist/webcomponents/p-2eb9a42c.entry.js +0 -5
  888. package/dist/webcomponents/p-30c82805.entry.js +0 -5
  889. package/dist/webcomponents/p-31bd1c74.entry.js +0 -5
  890. package/dist/webcomponents/p-31db2313.entry.js +0 -5
  891. package/dist/webcomponents/p-33a3dc63.entry.js +0 -5
  892. package/dist/webcomponents/p-3889c51f.entry.js +0 -5
  893. package/dist/webcomponents/p-3f2c179a.entry.js +0 -5
  894. package/dist/webcomponents/p-470eb770.entry.js +0 -5
  895. package/dist/webcomponents/p-4ae387ae.entry.js +0 -5
  896. package/dist/webcomponents/p-4e65df84.entry.js +0 -5
  897. package/dist/webcomponents/p-51a62876.entry.js +0 -5
  898. package/dist/webcomponents/p-5860b96b.entry.js +0 -5
  899. package/dist/webcomponents/p-5b9c01e9.entry.js +0 -5
  900. package/dist/webcomponents/p-5df2f1dd.entry.js +0 -5
  901. package/dist/webcomponents/p-5f3f7b3f.entry.js +0 -5
  902. package/dist/webcomponents/p-5f6afb79.entry.js +0 -5
  903. package/dist/webcomponents/p-5f9c28a7.entry.js +0 -5
  904. package/dist/webcomponents/p-62511921.entry.js +0 -5
  905. package/dist/webcomponents/p-63b52947.entry.js +0 -5
  906. package/dist/webcomponents/p-67a8e0b7.entry.js +0 -5
  907. package/dist/webcomponents/p-6OdfnwnK.js +0 -5
  908. package/dist/webcomponents/p-7b2a5fec.entry.js +0 -5
  909. package/dist/webcomponents/p-7f95e2f5.entry.js +0 -5
  910. package/dist/webcomponents/p-8128833c.entry.js +0 -5
  911. package/dist/webcomponents/p-8200ccb1.entry.js +0 -5
  912. package/dist/webcomponents/p-82b100fd.entry.js +0 -5
  913. package/dist/webcomponents/p-8806df15.entry.js +0 -5
  914. package/dist/webcomponents/p-881eb81a.entry.js +0 -5
  915. package/dist/webcomponents/p-8bd3d541.entry.js +0 -5
  916. package/dist/webcomponents/p-90648343.entry.js +0 -5
  917. package/dist/webcomponents/p-9100a5f7.entry.js +0 -5
  918. package/dist/webcomponents/p-91313d77.entry.js +0 -5
  919. package/dist/webcomponents/p-946b2ac0.entry.js +0 -5
  920. package/dist/webcomponents/p-98e7ccb9.entry.js +0 -5
  921. package/dist/webcomponents/p-99f2bddb.entry.js +0 -5
  922. package/dist/webcomponents/p-9adbdb0a.entry.js +0 -5
  923. package/dist/webcomponents/p-9c260049.entry.js +0 -5
  924. package/dist/webcomponents/p-9ed51017.entry.js +0 -5
  925. package/dist/webcomponents/p-BkS6ujyf.js +0 -5
  926. package/dist/webcomponents/p-C2RBydfd.js +0 -6
  927. package/dist/webcomponents/p-CO5cOQQU.js +0 -5
  928. package/dist/webcomponents/p-DIK54tTj.js +0 -5
  929. package/dist/webcomponents/p-DRVMm1Py.js +0 -5
  930. package/dist/webcomponents/p-DxZJrIyL.js +0 -5
  931. package/dist/webcomponents/p-a0b299dd.entry.js +0 -5
  932. package/dist/webcomponents/p-a2c5fad0.entry.js +0 -5
  933. package/dist/webcomponents/p-a3e044d7.entry.js +0 -5
  934. package/dist/webcomponents/p-a9f23aa7.entry.js +0 -5
  935. package/dist/webcomponents/p-a9f2fcbc.entry.js +0 -5
  936. package/dist/webcomponents/p-b6c68136.entry.js +0 -5
  937. package/dist/webcomponents/p-b6e9b8d1.entry.js +0 -5
  938. package/dist/webcomponents/p-c333eac6.entry.js +0 -5
  939. package/dist/webcomponents/p-c3732fd6.entry.js +0 -5
  940. package/dist/webcomponents/p-c458ed0e.entry.js +0 -5
  941. package/dist/webcomponents/p-c91000ff.entry.js +0 -5
  942. package/dist/webcomponents/p-c9c6ab2d.entry.js +0 -5
  943. package/dist/webcomponents/p-cd2550d6.entry.js +0 -5
  944. package/dist/webcomponents/p-cf42613f.entry.js +0 -5
  945. package/dist/webcomponents/p-d0b0b420.entry.js +0 -5
  946. package/dist/webcomponents/p-d1b32ee8.entry.js +0 -5
  947. package/dist/webcomponents/p-db65b083.entry.js +0 -5
  948. package/dist/webcomponents/p-de7c101d.entry.js +0 -5
  949. package/dist/webcomponents/p-dfb77dd0.entry.js +0 -5
  950. package/dist/webcomponents/p-e258da78.entry.js +0 -5
  951. package/dist/webcomponents/p-e31ddd42.entry.js +0 -5
  952. package/dist/webcomponents/p-e8d82227.entry.js +0 -5
  953. package/dist/webcomponents/p-e988cf1d.entry.js +0 -5
  954. package/dist/webcomponents/p-ed9122a1.entry.js +0 -5
  955. package/dist/webcomponents/p-ee347d2e.entry.js +0 -5
  956. package/dist/webcomponents/p-f1c01d52.entry.js +0 -5
  957. package/dist/webcomponents/p-f5baf8be.entry.js +0 -5
  958. package/dist/webcomponents/p-fb593739.entry.js +0 -5
  959. package/dist/webcomponents/p-fff9acd4.entry.js +0 -5
  960. package/dist/webcomponents/p-gvnfuTjd.js +0 -5
@@ -0,0 +1,787 @@
1
+ /**
2
+ * @file pageloader-preview.js
3
+ * @description Bloco extraído de `pageLoader.js` (mesmo escopo global de script
4
+ * clássico): renderização do preview em iframe, abas de framework, contexto do
5
+ * axe e helpers de hash da URL do exemplo. Carregado imediatamente antes de
6
+ * `pageLoader.js` — a divisão é puramente física, sem mudança de comportamento.
7
+ */
8
+
9
+ // Usado só por `renderExamplePreview` (abaixo).
10
+ const DEV_SERVER_CONNECTOR_IFRAME_RE =
11
+ /<iframe\b[^>]*title=["']Stencil Dev Server Connector[^"']*["'][\s\S]*?<\/iframe>/gi;
12
+
13
+ // Cache do fonte do axe-core; privado de `loadAxeSource`.
14
+ let axeSourcePromise;
15
+
16
+ function escapeHtmlAttribute(value) {
17
+ return String(value)
18
+ .replaceAll('&', '&amp;')
19
+ .replaceAll('"', '&quot;')
20
+ .replaceAll('<', '&lt;')
21
+ .replaceAll('>', '&gt;');
22
+ }
23
+
24
+ function removePresetScripts(previewFrame) {
25
+ previewFrame?.contentDocument?.querySelectorAll('script[data-wbc-preset-script]').forEach((script) => {
26
+ script.remove();
27
+ });
28
+ }
29
+
30
+ function renderExamplePreview(
31
+ previewElement,
32
+ source,
33
+ edgeToEdge = false,
34
+ baseScriptUrl = '',
35
+ presetScriptUrl = '',
36
+ previewChannelId = '',
37
+ ) {
38
+ const frame = previewElement.querySelector('iframe');
39
+ if (!frame) return;
40
+
41
+ const hasOverlay = /<br-(?:modal|scrim)\b/i.test(source);
42
+ frame.style.minHeight = hasOverlay ? '400px' : '';
43
+
44
+ removePresetScripts(frame);
45
+ const baseUrl = getBaseUrl();
46
+ const componentBundleUrl = new URL(`${baseUrl}/build/webcomponents.esm.js`, window.location.href);
47
+ componentBundleUrl.searchParams.set('preview-version', String(Date.now()));
48
+ const componentBundle = componentBundleUrl.href;
49
+ const frameSource = rewritePreviewAssetPaths(stripDevServerConnector(source), baseUrl);
50
+ const baseScript = baseScriptUrl
51
+ ? `\n <script type="module" data-wbc-base-script src="${escapeHtmlAttribute(baseScriptUrl)}"></script>`
52
+ : '';
53
+ const presetScript = presetScriptUrl
54
+ ? `\n <script type="module" data-wbc-preset-script src="${escapeHtmlAttribute(presetScriptUrl)}"></script>`
55
+ : '';
56
+
57
+ frame.srcdoc = `<!doctype html>
58
+ <html lang="pt-BR">
59
+ <head>
60
+ <meta charset="UTF-8">
61
+ <meta name="viewport" content="width=device-width, initial-scale=1">
62
+ <base href="${window.location.href}">
63
+ <link rel="stylesheet" href="${new URL(`${baseUrl}/assets/core.min.css`, window.location.href).href}">
64
+ <link rel="stylesheet" href="${new URL(`${baseUrl}/assets/fonts/rawline/400.css`, window.location.href).href}">
65
+ <link rel="stylesheet" href="${new URL(`${baseUrl}/assets/fonts/raleway/wght.css`, window.location.href).href}">
66
+ <link rel="stylesheet" href="${new URL(`${baseUrl}/assets/fonts/fontawesome/css/all.min.css`, window.location.href).href}">
67
+ <style>
68
+ * { font-family: Rawline, Raleway, sans-serif; }
69
+ html, body { margin: 0; min-height: 1px; overflow: visible; }
70
+ body { box-sizing: border-box; padding: 24px 16px; }
71
+ body.wbc-preview-edge-to-edge { padding: 0; }
72
+ br-cookiebar { inset: 0; position: absolute; pointer-events: none; z-index: 1000; }
73
+ br-scrim { inset: 0; position: fixed; pointer-events: none; z-index: 1000; --scrim-display-mode: parent; }
74
+ html[data-wbc-theme='dark'], html[data-wbc-theme='dark'] body { background: #071d41 !important; color: #fff; color-scheme: dark; }
75
+ html[data-wbc-high-contrast='true'] { filter: contrast(1.25); }
76
+ html[data-wbc-touch='true'] button,
77
+ html[data-wbc-touch='true'] input,
78
+ html[data-wbc-touch='true'] select,
79
+ html[data-wbc-touch='true'] [role='button'] { min-width: 44px; min-height: 44px; }
80
+ html[data-wbc-reduced-motion='true'] *,
81
+ html[data-wbc-reduced-motion='true'] *::before,
82
+ html[data-wbc-reduced-motion='true'] *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
83
+ </style>
84
+ </head>
85
+ <body${edgeToEdge ? ' class="wbc-preview-edge-to-edge"' : ''}><main data-wbc-preview-content>${frameSource}</main>
86
+ <style id="wbc-preview-reduced-motion">
87
+ @media (prefers-reduced-motion: reduce) {
88
+ *, *::before, *::after {
89
+ animation: none !important;
90
+ scroll-behavior: auto !important;
91
+ transition: none !important;
92
+ }
93
+ }
94
+ </style>
95
+ <script type="module" src="${componentBundle}"></script>
96
+ ${baseScript}
97
+ ${presetScript}
98
+ <script>
99
+ (() => {
100
+ const playgroundChannelId = ${JSON.stringify(previewChannelId)};
101
+ const sendToParent = (message) => parent.postMessage({ ...message, __playgroundChannelId: playgroundChannelId }, '*');
102
+ window.addEventListener('keydown', (event) => {
103
+ if (event.key === 'Escape') sendToParent({ type: 'wbc-preview-exit-fullscreen' });
104
+ });
105
+ const overlayContentSelector =
106
+ '[part="open-panel"], [part="default-panel"], [part="body"], .cookiebar-body, .content, .br-modal';
107
+ const getOverlayHeight = (overlay) => {
108
+ const measuredHeight = Array.from(overlay.shadowRoot?.querySelectorAll(overlayContentSelector) || []).reduce(
109
+ (height, element) =>
110
+ Math.max(height, element.scrollHeight, element.clientHeight, element.getBoundingClientRect().height),
111
+ 0,
112
+ );
113
+ if (measuredHeight > 0) return measuredHeight;
114
+
115
+ const modal = overlay.matches('br-scrim') ? overlay.querySelector('br-modal') : overlay;
116
+ return modal?.shadowRoot?.querySelector('.br-modal')?.getBoundingClientRect().height || 0;
117
+ };
118
+ const getElementsIncludingShadowRoots = (root = document) => {
119
+ const elements = [];
120
+ const visit = (tree) => {
121
+ tree.querySelectorAll('*').forEach((element) => {
122
+ elements.push(element);
123
+ if (element.shadowRoot) visit(element.shadowRoot);
124
+ });
125
+ };
126
+ visit(root);
127
+ return elements;
128
+ };
129
+ const isInsideOverlay = (element) => {
130
+ let current = element;
131
+ while (current) {
132
+ if (current.matches?.('br-cookiebar, br-scrim, br-modal')) return true;
133
+ const root = current.getRootNode?.();
134
+ current = root instanceof ShadowRoot ? root.host : current.parentElement;
135
+ }
136
+ return false;
137
+ };
138
+ const getFloatingHeight = () => {
139
+ const main = document.querySelector('[data-wbc-preview-content]');
140
+ if (!main) return 0;
141
+ const bodyStyle = getComputedStyle(document.body);
142
+ const bottomPadding = parseFloat(bodyStyle.paddingBottom) || 0;
143
+ return getElementsIncludingShadowRoots(main).reduce((height, element) => {
144
+ if (element === main) return height;
145
+ if (isInsideOverlay(element)) return height;
146
+ if (element.matches('br-cookiebar, br-scrim, br-modal')) return height;
147
+ const style = getComputedStyle(element);
148
+ if (style.position !== 'absolute') return height;
149
+ if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return height;
150
+ const rect = element.getBoundingClientRect();
151
+ if (rect.width === 0 && rect.height === 0) return height;
152
+ const elementDocBottom = rect.bottom + window.scrollY;
153
+ return Math.max(height, elementDocBottom + bottomPadding);
154
+ }, 0);
155
+ };
156
+ let lastSentHeight = 0;
157
+ const sendHeight = () => {
158
+ const body = document.body;
159
+ const bodyStyle = getComputedStyle(body);
160
+ const overlayHeight = Array.from(document.querySelectorAll('br-cookiebar, br-scrim, br-modal')).reduce(
161
+ (height, overlay) => Math.max(height, getOverlayHeight(overlay)),
162
+ 0,
163
+ );
164
+ const verticalPadding = parseFloat(bodyStyle.paddingTop) + parseFloat(bodyStyle.paddingBottom);
165
+ const height = Math.ceil(
166
+ Math.max(
167
+ body.scrollHeight,
168
+ body.offsetHeight,
169
+ document.documentElement.scrollHeight,
170
+ overlayHeight + verticalPadding,
171
+ getFloatingHeight(),
172
+ ),
173
+ );
174
+ if (Math.abs(height - lastSentHeight) > 1) {
175
+ lastSentHeight = height;
176
+ sendToParent({ type: 'wbc-preview-height', height });
177
+ }
178
+ };
179
+ document.querySelectorAll('br-cookiebar, br-scrim').forEach((overlay) => {
180
+ overlay.setAttribute('data-wbc-preview-contained', '');
181
+ if (overlay.matches('br-scrim')) overlay.setAttribute('display-mode', 'parent');
182
+ });
183
+ const serialize = (value, seen = new WeakSet()) => {
184
+ if (value === null || value === undefined) return value;
185
+ if (typeof value === 'function') return '[Function' + (value.name ? ': ' + value.name : '') + ']';
186
+ if (typeof value === 'symbol' || typeof value === 'bigint') return value.toString();
187
+ if (typeof value !== 'object') return value;
188
+ if (value instanceof Element) return '<' + value.localName + '>';
189
+ if (value instanceof Node) return value.nodeName;
190
+ if (value instanceof Event) return { type: value.type };
191
+ if (typeof Window !== 'undefined' && value instanceof Window) return '[Window]';
192
+ if (seen.has(value)) return '[Circular]';
193
+ seen.add(value);
194
+ if (Array.isArray(value)) return value.map((item) => serialize(item, seen));
195
+ try {
196
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, serialize(item, seen)]));
197
+ } catch {
198
+ return String(value);
199
+ }
200
+ };
201
+ const describeElement = (element) => {
202
+ if (element === document) return 'document';
203
+ if (element === window) return 'window';
204
+ if (!(element instanceof Element)) return 'window';
205
+ const id = element.id ? '#' + element.id : '';
206
+ const customId = !id && element.getAttribute('custom-id') ? '#' + element.getAttribute('custom-id') : '';
207
+ const classes = typeof element.className === 'string'
208
+ ? element.className.split(/\\s+/).filter(Boolean).slice(0, 2).map((name) => '.' + name).join('')
209
+ : '';
210
+ return element.localName + id + customId + classes;
211
+ };
212
+ const describeEventPath = (event) =>
213
+ typeof event.composedPath === 'function'
214
+ ? event.composedPath().filter((item) => item instanceof Element).slice(0, 12).map(describeElement)
215
+ : [];
216
+ const capturedEvents = new WeakSet();
217
+ let eventCounter = 0;
218
+ const sendRuntime = (type, args = [], metadata = {}) =>
219
+ sendToParent({
220
+ type: 'wbc-preview-runtime',
221
+ __playgroundRuntime: true,
222
+ id: metadata.id || 'runtime-' + Date.now() + '-' + type,
223
+ runtimeType: type,
224
+ args,
225
+ ...metadata,
226
+ });
227
+ const sendEvent = (event, dispatchedBy = event.target) => {
228
+ if (capturedEvents.has(event)) return;
229
+ try {
230
+ const target = dispatchedBy instanceof Element ? dispatchedBy : dispatchedBy?.host instanceof Element ? dispatchedBy.host : null;
231
+ // Mantém eventos nativos no contrato; o painel pode filtrá-los por
232
+ // tipo e componente sem descartar interações em elementos comuns.
233
+ if (!target) return;
234
+ capturedEvents.add(event);
235
+ eventCounter += 1;
236
+ const eventId = 'event-' + eventCounter;
237
+ sendToParent({
238
+ type: 'wbc-preview-event',
239
+ __playgroundEvent: true,
240
+ eventId,
241
+ eventType: event.type,
242
+ custom: event instanceof CustomEvent,
243
+ detail: event instanceof CustomEvent ? serialize(event.detail) : undefined,
244
+ target: describeElement(event.target instanceof Element ? event.target : target),
245
+ currentTarget: describeElement(event.currentTarget instanceof Element ? event.currentTarget : target),
246
+ composedPath: describeEventPath(event),
247
+ bubbles: Boolean(event.bubbles),
248
+ composed: Boolean(event.composed),
249
+ cancelable: Boolean(event.cancelable),
250
+ timeStamp: event.timeStamp,
251
+ });
252
+ } catch (_error) {
253
+ // Evita que falhas na serialização do postMessage afetem o dispatchEvent original
254
+ }
255
+ };
256
+ ['change', 'click', 'input', 'submit'].forEach((name) => document.addEventListener(name, sendEvent, true));
257
+ document.addEventListener('brInternalEvent', sendEvent, true);
258
+ ['pointerenter', 'pointerleave', 'focusin', 'focusout', 'toggle'].forEach((name) =>
259
+ document.addEventListener(name, () => scheduleHeight(), true),
260
+ );
261
+ const originalDispatchEvent = EventTarget.prototype.dispatchEvent;
262
+ EventTarget.prototype.dispatchEvent = function dispatchEvent(event) {
263
+ if (event instanceof CustomEvent) sendEvent(event, this);
264
+ return originalDispatchEvent.call(this, event);
265
+ };
266
+ const formatRuntimeValue = (value, seen = new WeakSet()) => {
267
+ if (value === null || value === undefined) return value;
268
+ if (typeof value === 'function') return '[Function]';
269
+ if (typeof value === 'symbol' || typeof value === 'bigint') return String(value);
270
+ if (value instanceof Element) return '<' + value.localName + '>';
271
+ if (typeof value !== 'object') return value;
272
+ if (seen.has(value)) return '[Circular]';
273
+ seen.add(value);
274
+ if (Array.isArray(value)) return value.map((item) => formatRuntimeValue(item, seen));
275
+ try {
276
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, formatRuntimeValue(item, seen)]));
277
+ } catch {
278
+ return String(value);
279
+ }
280
+ };
281
+ const originalConsole = {};
282
+ ['log', 'warn', 'error'].forEach((level) => {
283
+ originalConsole[level] = console[level];
284
+ console[level] = (...args) => {
285
+ sendRuntime(level === 'warn' ? 'warning' : level, args.map(formatRuntimeValue), { source: 'console' });
286
+ originalConsole[level]?.apply(console, args);
287
+ };
288
+ });
289
+ const expectedRuntimeError = (message) => /Cannot read properties of null|MutationObserver/.test(message || '');
290
+ window.addEventListener('error', (event) => {
291
+ const message = event.error?.message || event.message || 'Erro não tratado';
292
+ if (expectedRuntimeError(message)) {
293
+ event.preventDefault();
294
+ return;
295
+ }
296
+ sendRuntime('exception', [message], {
297
+ source: event.filename || 'preview',
298
+ line: event.lineno,
299
+ column: event.colno,
300
+ message,
301
+ });
302
+ });
303
+ window.addEventListener('unhandledrejection', (event) => {
304
+ const message = event.reason?.message || String(event.reason || 'Promise rejeitada sem tratamento');
305
+ if (expectedRuntimeError(message)) {
306
+ event.preventDefault();
307
+ return;
308
+ }
309
+ sendRuntime('unhandledrejection', [message], { source: 'preview', message });
310
+ });
311
+ const getStyleSnapshot = (element) => {
312
+ const style = getComputedStyle(element);
313
+ const context = [];
314
+ if (style.position !== 'static' && style.zIndex !== 'auto') context.push('position/z-index');
315
+ if (style.transform !== 'none') context.push('transform');
316
+ if (style.opacity !== '1') context.push('opacity');
317
+ if (style.isolation === 'isolate') context.push('isolation');
318
+ if (style.contain !== 'none') context.push('contain');
319
+ return {
320
+ description: describeElement(element),
321
+ zIndex: style.zIndex,
322
+ position: style.position,
323
+ transform: style.transform,
324
+ context: context.join(', ') || 'sem contexto próprio',
325
+ };
326
+ };
327
+ const getParent = (element) => {
328
+ const root = element?.getRootNode?.();
329
+ return root instanceof ShadowRoot ? root.host : element?.parentElement;
330
+ };
331
+ const diagnosePoint = (x, y) => {
332
+ const pointX = Number.isFinite(Number(x)) ? Number(x) : Math.round(window.innerWidth / 2);
333
+ const pointY = Number.isFinite(Number(y)) ? Number(y) : Math.round(window.innerHeight / 2);
334
+ const winner = document.elementFromPoint(pointX, pointY);
335
+ const elements = (document.elementsFromPoint?.(pointX, pointY) || (winner ? [winner] : []))
336
+ .filter((element) => element instanceof Element).slice(0, 12).map(getStyleSnapshot);
337
+ const ancestry = [];
338
+ let current = winner;
339
+ while (current && ancestry.length < 20) {
340
+ ancestry.push(getStyleSnapshot(current));
341
+ current = getParent(current);
342
+ }
343
+ const issues = [];
344
+ if (winner?.localName === 'iframe') issues.push('O ponto atingiu um iframe.');
345
+ if (ancestry.some((item) => item.transform !== 'none')) issues.push('Ancestral com transform cria stacking context.');
346
+ if (elements.some((item) => /select|dropdown|tooltip|modal|scrim|iframe/.test(item.description) && item.zIndex === 'auto')) {
347
+ issues.push('Superfície flutuante sem z-index computado.');
348
+ }
349
+ return { scope: 'preview', x: pointX, y: pointY, winner: winner ? describeElement(winner) : null, elements, ancestry, issues };
350
+ };
351
+ const getAllElements = () => {
352
+ const elements = [];
353
+ const visit = (root) => root.querySelectorAll('*').forEach((element) => {
354
+ elements.push(element);
355
+ if (element.shadowRoot) visit(element.shadowRoot);
356
+ });
357
+ visit(document);
358
+ return elements;
359
+ };
360
+ const inspectElement = (description) => {
361
+ let element = null;
362
+ try {
363
+ element = description ? document.querySelector(description) : null;
364
+ } catch {
365
+ element = null;
366
+ }
367
+ element ||= getAllElements().find((candidate) => describeElement(candidate) === description);
368
+ if (!element) return null;
369
+ const attributes = Object.fromEntries(element.getAttributeNames().map((name) => [name, element.getAttribute(name) || '']));
370
+ const propertyNames = ['value', 'checked', 'disabled', 'loading', 'selected', 'active', 'state', 'status', 'invalid', 'density', 'size', 'variant'];
371
+ const properties = {};
372
+ propertyNames.forEach((name) => {
373
+ if (!(name in element)) return;
374
+ try {
375
+ properties[name] = serialize(element[name]);
376
+ } catch {
377
+ properties[name] = '[indisponível]';
378
+ }
379
+ });
380
+ const computedStyle = getComputedStyle(element);
381
+ const computedNames = ['display', 'visibility', 'opacity', 'position', 'zIndex', 'transform', 'color', 'backgroundColor', 'fontSize'];
382
+ const computed = Object.fromEntries(computedNames.map((name) => [name, computedStyle[name]]));
383
+ const tokens = {};
384
+ for (let index = 0; index < computedStyle.length && Object.keys(tokens).length < 40; index += 1) {
385
+ const name = computedStyle[index];
386
+ if (name.startsWith('--')) tokens[name] = computedStyle.getPropertyValue(name).trim();
387
+ }
388
+ const attributeProperties = { disabled: 'disabled', loading: 'loading', selected: 'selected', active: 'active', state: 'state', status: 'status', invalid: 'invalid', value: 'value' };
389
+ const divergences = Object.entries(attributeProperties)
390
+ .filter(([attribute, property]) => attributes[attribute] !== undefined && properties[property] !== undefined && String(properties[property]) !== attributes[attribute])
391
+ .map(([attribute, property]) => attribute + ' ≠ ' + property);
392
+ return { element: describeElement(element), attributes, properties, computed, tokens, divergences };
393
+ };
394
+ const auditInteraction = () => {
395
+ const focusables = getAllElements().filter((element) => {
396
+ const style = getComputedStyle(element);
397
+ return element.tabIndex >= 0 && !element.hasAttribute('disabled') && style.display !== 'none' && style.visibility !== 'hidden';
398
+ });
399
+ const previous = document.activeElement;
400
+ const focusOrder = [];
401
+ const missingNames = [];
402
+ const invisibleFocusables = [];
403
+ const getAccessibleName = (element) => {
404
+ const labelledBy = element.getAttribute('aria-labelledby');
405
+ const labelledText = labelledBy
406
+ ? labelledBy
407
+ .split(/\\s+/)
408
+ .map((id) => document.getElementById(id)?.textContent?.trim() || '')
409
+ .join(' ')
410
+ .trim()
411
+ : '';
412
+ return (
413
+ element.getAttribute('aria-label') ||
414
+ labelledText ||
415
+ element.getAttribute('title') ||
416
+ element.getAttribute('alt') ||
417
+ element.labels?.[0]?.textContent?.trim() ||
418
+ element.textContent?.trim()
419
+ );
420
+ };
421
+ focusables.forEach((element) => {
422
+ element.focus({ preventScroll: true });
423
+ focusOrder.push(describeElement(element));
424
+ if (!getAccessibleName(element)) missingNames.push(describeElement(element));
425
+ const rect = element.getBoundingClientRect();
426
+ if (rect.width === 0 || rect.height === 0 || getComputedStyle(element).opacity === '0') invisibleFocusables.push(describeElement(element));
427
+ });
428
+ const distinctFocusedElements = new Set(
429
+ focusables.map((element) => {
430
+ element.focus({ preventScroll: true });
431
+ return document.activeElement === element || element.contains(document.activeElement)
432
+ ? element
433
+ : document.activeElement;
434
+ }),
435
+ );
436
+ previous?.focus?.({ preventScroll: true });
437
+ sendToParent({ type: 'wbc-preview-interaction', __playgroundInteraction: true, focusOrder, missingNames, invisibleFocusables, focusTrap: focusables.length > 1 && distinctFocusedElements.size < 2, modes: [document.documentElement.dir || 'ltr'] });
438
+ };
439
+ const applyMode = (mode, value) => {
440
+ if (mode === 'direction') document.documentElement.dir = value === 'rtl' ? 'rtl' : 'ltr';
441
+ if (mode === 'zoom') document.body.style.zoom = String(Math.max(0.5, Math.min(Number(value) || 1, 2)));
442
+ if (mode === 'reduced-motion') {
443
+ const reducedMotion = Boolean(value);
444
+ document.documentElement.dataset.wbcReducedMotion = reducedMotion ? 'true' : 'false';
445
+ document.dispatchEvent(new CustomEvent('wbcReducedMotionChange', { detail: { reducedMotion } }));
446
+ }
447
+ if (mode === 'high-contrast') document.documentElement.dataset.wbcHighContrast = value ? 'true' : 'false';
448
+ if (mode === 'touch') document.documentElement.dataset.wbcTouch = value ? 'true' : 'false';
449
+ if (mode === 'dark') document.documentElement.dataset.wbcTheme = value ? 'dark' : 'light';
450
+ scheduleHeight();
451
+ };
452
+ const stateAttributes = ['disabled', 'loading', 'state', 'status', 'selected', 'active', 'invalid'];
453
+ const stateSnapshots = new WeakMap();
454
+ const applyState = (state) => {
455
+ getAllElements().filter((element) => element.localName.includes('-')).forEach((element) => {
456
+ if (!stateSnapshots.has(element)) {
457
+ stateSnapshots.set(
458
+ element,
459
+ Object.fromEntries(stateAttributes.map((attribute) => [attribute, element.getAttribute(attribute)])),
460
+ );
461
+ }
462
+ stateAttributes.forEach((attribute) => element.removeAttribute(attribute));
463
+ Object.entries(stateSnapshots.get(element)).forEach(([attribute, value]) => {
464
+ if (value !== null) element.setAttribute(attribute, value);
465
+ });
466
+ if (state === 'disabled') element.setAttribute('disabled', '');
467
+ if (state === 'loading') element.setAttribute('loading', '');
468
+ if (state === 'error') {
469
+ element.setAttribute('state', 'error');
470
+ element.setAttribute('status', 'error');
471
+ }
472
+ if (state === 'selected') {
473
+ element.setAttribute('selected', '');
474
+ element.setAttribute('active', '');
475
+ }
476
+ if (state === 'validation') element.setAttribute('invalid', '');
477
+ });
478
+ if (state === 'dark') applyMode('dark', true);
479
+ scheduleHeight();
480
+ };
481
+ const highlightElement = (description) => {
482
+ let element = null;
483
+ try {
484
+ element = document.querySelector(description);
485
+ } catch {
486
+ element = null;
487
+ }
488
+ element ||= getAllElements().find((candidate) => describeElement(candidate) === description);
489
+ if (!element) return;
490
+ const previousOutline = element.style.outline;
491
+ element.style.outline = '3px solid #ffcd07';
492
+ setTimeout(() => { element.style.outline = previousOutline; }, 2000);
493
+ };
494
+ const auditComponents = () => {
495
+ const elements = getAllElements().filter((element) => element.localName.includes('-'));
496
+ [...new Set(elements.map((element) => element.localName))].forEach((tag) => {
497
+ if (!customElements.get(tag)) sendRuntime('component', ['Não registrado: ' + tag], { source: tag });
498
+ else if (elements.some((element) => element.localName === tag && !element.classList.contains('hydrated'))) sendRuntime('component', ['Não hidratado: ' + tag], { source: tag });
499
+ });
500
+ };
501
+ let heightFrame = 0;
502
+ const scheduleHeight = () => {
503
+ cancelAnimationFrame(heightFrame);
504
+ heightFrame = requestAnimationFrame(sendHeight);
505
+ };
506
+ const resizeObserver = new ResizeObserver(scheduleHeight);
507
+ window.addEventListener('message', (event) => {
508
+ if (event.source !== parent || event.data?.__playgroundChannelId !== playgroundChannelId) return;
509
+ if (event.data.__playgroundHighlight) highlightElement(event.data.description);
510
+ if (event.data.__playgroundMode) applyMode(event.data.__playgroundMode, event.data.value);
511
+ });
512
+ const observeOverlayContent = () => {
513
+ document.querySelectorAll('br-cookiebar, br-scrim, br-modal').forEach((overlay) => {
514
+ overlay.shadowRoot?.querySelectorAll(overlayContentSelector).forEach((element) => {
515
+ resizeObserver.observe(element);
516
+ });
517
+ });
518
+ };
519
+ resizeObserver.observe(document.documentElement);
520
+ resizeObserver.observe(document.body);
521
+ new MutationObserver((mutations) => {
522
+ const isSelfMutation = mutations.every((m) => m.target.hasAttribute?.('data-wbc-preview-content'));
523
+ if (isSelfMutation) return;
524
+ scheduleHeight();
525
+ }).observe(document.body, { attributes: true, childList: true, subtree: true });
526
+ Promise.all(
527
+ [...document.querySelectorAll('*')]
528
+ .map((element) => element.localName)
529
+ .filter((tag, index, tags) => tag.includes('-') && tags.indexOf(tag) === index)
530
+ .map((tag) => customElements.whenDefined(tag)),
531
+ ).then(() =>
532
+ requestAnimationFrame(() =>
533
+ requestAnimationFrame(() => {
534
+ observeOverlayContent();
535
+ scheduleHeight();
536
+ }),
537
+ ),
538
+ );
539
+ addEventListener('load', scheduleHeight);
540
+ addEventListener('load', () => setTimeout(auditComponents, 250));
541
+ scheduleHeight();
542
+ })();
543
+ </script>
544
+ </body>
545
+ </html>`;
546
+ }
547
+
548
+ function stripDevServerConnector(source) {
549
+ return String(source || '')
550
+ .replace(DEV_SERVER_CONNECTOR_IFRAME_RE, '')
551
+ .trim();
552
+ }
553
+
554
+ function rewritePreviewAssetPaths(source, baseUrl) {
555
+ const normalizedBaseUrl = String(baseUrl || '').replace(/\/+$/, '');
556
+ if (!normalizedBaseUrl) return String(source || '');
557
+
558
+ return String(source || '')
559
+ .replace(/(\b(?:href|src)\s*=\s*["'])\/(?!\/)/gi, `$1${normalizedBaseUrl}/`)
560
+ .replace(/(\burl\(\s*["']?)\/(?!\/)/gi, `$1${normalizedBaseUrl}/`);
561
+ }
562
+
563
+ function getFrameworkCode(source, framework) {
564
+ const html = String(source || '').trim();
565
+ const components = Array.from(html.matchAll(/<\/?(br-[a-z0-9-]+)/gi), (match) => match[1]);
566
+ const imports = [...new Set(components)].map((tag) =>
567
+ tag
568
+ .split('-')
569
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
570
+ .join(''),
571
+ );
572
+ const importList = imports.length > 0 ? imports.join(', ') : 'BrButton';
573
+ const pascalMarkup = html.replace(/(<\/?)(br-[a-z0-9-]+)/gi, (_match, prefix, tag) => {
574
+ return `${prefix}${tag
575
+ .split('-')
576
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
577
+ .join('')}`;
578
+ });
579
+
580
+ if (framework === 'javascript') {
581
+ return `import { ${importList} } from '@govbr-ds/webcomponents';\n\nconst example = document.querySelector('${components[0] || 'br-button'}');\n\n// Use o exemplo renderizado para adicionar comportamento com JavaScript.\nconsole.log(example);`;
582
+ }
583
+ if (framework === 'css') {
584
+ return `/* Customize os componentes usando CSS Parts */
585
+ /* Exemplo:
586
+ br-${String(location.pathname).split('/').filter(Boolean).pop() || 'component'}::part(container) {
587
+ background-color: #f8f9fa;
588
+ }
589
+ */`;
590
+ }
591
+ if (framework === 'angular') {
592
+ return `import { Component } from '@angular/core';\nimport { ${importList} } from '@govbr-ds/webcomponents-angular/standalone';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [${importList}],\n template: \`${html.replace(/`/g, '\\`')}\`,\n})\nexport class AppComponent {}`;
593
+ }
594
+ if (framework === 'react') {
595
+ return `import { ${importList} } from '@govbr-ds/webcomponents-react';\n\nexport default function App() {\n return (\n <>\n ${pascalMarkup.replace(/\n/g, '\n ')}\n </>\n );\n}`;
596
+ }
597
+ return `<script setup lang="ts">\nimport { ${importList} } from '@govbr-ds/webcomponents-vue';\n</script>\n\n<template>\n ${pascalMarkup.replace(/\n/g, '\n ')}\n</template>`;
598
+ }
599
+
600
+ function getFrameworkFiles(source, framework) {
601
+ if (framework !== 'angular') return null;
602
+
603
+ const html = String(source || '').trim();
604
+ const components = Array.from(html.matchAll(/<\/?(br-[a-z0-9-]+)/gi), (match) => match[1]);
605
+ const imports = [...new Set(components)].map((tag) =>
606
+ tag
607
+ .split('-')
608
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
609
+ .join(''),
610
+ );
611
+ const importList = imports.length > 0 ? imports.join(', ') : 'BrButton';
612
+
613
+ return [
614
+ {
615
+ filename: 'app.component.ts',
616
+ language: 'typescript',
617
+ code: `import { Component } from '@angular/core'\nimport { ${importList} } from '@govbr-ds/webcomponents-angular/standalone'\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [${importList}],\n templateUrl: './app.component.html',\n})\nexport class AppComponent {}`,
618
+ },
619
+ { filename: 'app.component.html', language: 'html', code: html },
620
+ ];
621
+ }
622
+
623
+ function createFrameworkTab(label, icon, tabId, source, framework, { editable = false } = {}) {
624
+ const tab = document.createElement('br-tab-item');
625
+ tab.setAttribute('label', label);
626
+ tab.setAttribute('icon', icon);
627
+ tab.setAttribute('icon-only', 'true');
628
+ tab.setAttribute('title', `Código ${label}`);
629
+ tab.setAttribute('tab-item-id', tabId);
630
+ tab.dataset.framework = framework;
631
+ tab.dataset.editable = String(editable);
632
+
633
+ const files = getFrameworkFiles(source, framework);
634
+ tab._frameworkFiles = files;
635
+
636
+ if (files?.length > 1) {
637
+ const fileTabs = document.createElement('div');
638
+ fileTabs.className = 'wbc-framework-file-tabs';
639
+ fileTabs.setAttribute('role', 'tablist');
640
+ files.forEach((file, index) => {
641
+ const fileTab = document.createElement('button');
642
+ fileTab.className = `wbc-framework-file-tab${index === 0 ? ' is-active' : ''}`;
643
+ fileTab.type = 'button';
644
+ fileTab.dataset.filename = file.filename;
645
+ fileTab.setAttribute('aria-selected', String(index === 0));
646
+ fileTab.setAttribute('role', 'tab');
647
+ fileTab.textContent = file.filename;
648
+ fileTabs.appendChild(fileTab);
649
+ });
650
+ tab.appendChild(fileTabs);
651
+ }
652
+
653
+ const code = document.createElement('pre');
654
+ code.className = 'wbc-framework-code';
655
+ code.dataset.framework = framework;
656
+ code.dataset.filename = files?.[0]?.filename || '';
657
+ code.textContent = files?.[0]?.code || getFrameworkCode(source, framework);
658
+ tab.appendChild(code);
659
+ return tab;
660
+ }
661
+
662
+ function loadAxeSource() {
663
+ if (!axeSourcePromise) {
664
+ const axeScriptUrl = new URL(`${getBaseUrl()}/assets/axe-core.min.js`, window.location.href).href;
665
+ axeSourcePromise = fetch(axeScriptUrl, { cache: 'no-cache' })
666
+ .then(async (response) => {
667
+ if (!response.ok) throw new Error(`Não foi possível carregar o Axe-Core local (HTTP ${response.status}).`);
668
+ return response.text();
669
+ })
670
+ .catch((error) => {
671
+ axeSourcePromise = null;
672
+ throw error;
673
+ });
674
+ }
675
+ return axeSourcePromise;
676
+ }
677
+
678
+ async function waitForPreviewComponents(previewWindow, previewDocument) {
679
+ const tags = [...previewDocument.querySelectorAll('*')]
680
+ .map((element) => element.localName)
681
+ .filter((tag, index, allTags) => tag.includes('-') && allTags.indexOf(tag) === index);
682
+ let timeoutId;
683
+ await Promise.race([
684
+ Promise.all(tags.map((tag) => previewWindow.customElements.whenDefined(tag))),
685
+ new Promise((_, reject) => {
686
+ timeoutId = window.setTimeout(
687
+ () => reject(new Error('Os componentes do preview não terminaram de carregar.')),
688
+ 5000,
689
+ );
690
+ }),
691
+ ]).finally(() => window.clearTimeout(timeoutId));
692
+ await new Promise((resolve) =>
693
+ previewWindow.requestAnimationFrame(() => previewWindow.requestAnimationFrame(resolve)),
694
+ );
695
+ }
696
+
697
+ async function waitForPreviewDocument(previewFrame) {
698
+ const isReady = () => previewFrame.contentDocument?.readyState === 'complete' && previewFrame.contentDocument.body;
699
+ if (isReady()) return;
700
+
701
+ await new Promise((resolve, reject) => {
702
+ let timeoutId;
703
+ const handleLoad = () => {
704
+ window.clearTimeout(timeoutId);
705
+ if (isReady()) resolve();
706
+ else reject(new Error('O documento do preview não foi carregado corretamente.'));
707
+ };
708
+
709
+ timeoutId = window.setTimeout(() => {
710
+ previewFrame.removeEventListener('load', handleLoad);
711
+ reject(new Error('Tempo excedido ao carregar o documento do preview.'));
712
+ }, 5000);
713
+ previewFrame.addEventListener('load', handleLoad, { once: true });
714
+ });
715
+ }
716
+
717
+ async function getPreviewAxeContext(previewFrame) {
718
+ await waitForPreviewDocument(previewFrame);
719
+ const previewDocument = previewFrame.contentDocument;
720
+ const previewWindow = previewFrame.contentWindow;
721
+ if (!previewDocument?.body || !previewWindow) {
722
+ throw new Error('O conteúdo do preview ainda não está disponível.');
723
+ }
724
+
725
+ if (typeof previewWindow.axe?.run !== 'function') {
726
+ const axeScript = previewDocument.createElement('script');
727
+ axeScript.textContent = await loadAxeSource();
728
+ previewDocument.head.appendChild(axeScript);
729
+ }
730
+
731
+ if (typeof previewWindow.axe?.run !== 'function') {
732
+ throw new Error('O Axe-Core foi carregado, mas não ficou disponível no preview.');
733
+ }
734
+
735
+ await waitForPreviewComponents(previewWindow, previewDocument);
736
+
737
+ const previewContent = previewDocument.querySelector('[data-wbc-preview-content]');
738
+ if (!previewContent) throw new Error('Não foi possível localizar o conteúdo do exemplo.');
739
+
740
+ return { axe: previewWindow.axe, previewContent };
741
+ }
742
+
743
+ function decodeHashPart(value) {
744
+ try {
745
+ return decodeURIComponent(value);
746
+ } catch {
747
+ return value;
748
+ }
749
+ }
750
+
751
+ function parseExampleHash(hash) {
752
+ const rawHash = String(hash || '').replace(/^#/, '');
753
+ if (!rawHash) return { file: null, presetId: null };
754
+
755
+ const separatorIndex = rawHash.indexOf('?');
756
+ const encodedFile = separatorIndex === -1 ? rawHash : rawHash.slice(0, separatorIndex);
757
+ const query = separatorIndex === -1 ? '' : rawHash.slice(separatorIndex + 1);
758
+ const presetId = new URLSearchParams(query).get('preset');
759
+
760
+ return {
761
+ file: decodeHashPart(encodedFile) || null,
762
+ presetId: presetId || null,
763
+ };
764
+ }
765
+
766
+ function getExampleHash(file, presetId) {
767
+ const baseHash = `#${encodeURIComponent(file)}`;
768
+ return presetId ? `${baseHash}?preset=${encodeURIComponent(presetId)}` : baseHash;
769
+ }
770
+
771
+ function getHashState() {
772
+ return parseExampleHash(window.location.hash);
773
+ }
774
+
775
+ function getRequestedExampleFile() {
776
+ return getHashState().file;
777
+ }
778
+
779
+ function updatePresetUrl(file, presetId) {
780
+ const url = new URL(window.location.href);
781
+ url.hash = getExampleHash(file, presetId);
782
+ if (url.hash === window.location.hash) return;
783
+
784
+ const currentState = window.history.state;
785
+ const nextState = currentState && typeof currentState === 'object' ? { ...currentState } : {};
786
+ window.history.pushState({ ...nextState, example: file, presetId }, '', url.href);
787
+ }