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