@govbr-ds/webcomponents 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -46
- package/cem/custom-elements.json +6367 -1134
- package/cem/webcomponents.html-custom-data.json +399 -286
- package/dist/cjs/br-avatar.cjs.entry.js +21 -14
- package/dist/cjs/br-breadcrumb-item.cjs.entry.js +2 -2
- package/dist/cjs/br-breadcrumb.cjs.entry.js +49 -22
- package/dist/cjs/br-button_2.cjs.entry.js +72 -35
- package/dist/cjs/br-card.cjs.entry.js +6 -5
- package/dist/cjs/br-carousel-page.cjs.entry.js +3 -3
- package/dist/cjs/br-carousel.cjs.entry.js +77 -21
- package/dist/cjs/br-checkbox-group.cjs.entry.js +157 -27
- package/dist/cjs/br-checkbox.cjs.entry.js +85 -15
- package/dist/cjs/br-checkgroup.cjs.entry.js +5 -2
- package/dist/cjs/br-collapse_2.cjs.entry.js +85 -26
- package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-header.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-link.cjs.entry.js +14 -6
- package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -5
- package/dist/cjs/br-cookiebar-note.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar.cjs.entry.js +38 -25
- package/dist/cjs/br-crumb.cjs.entry.js +2 -2
- package/dist/cjs/br-date-picker_3.cjs.entry.js +246 -88
- package/dist/cjs/br-datetime-picker.cjs.entry.js +115 -527
- package/dist/cjs/br-divider.cjs.entry.js +70 -17
- package/dist/cjs/br-dropdown_2.cjs.entry.js +304 -122
- package/dist/cjs/br-footer-category.cjs.entry.js +10 -6
- package/dist/cjs/br-footer-item.cjs.entry.js +9 -4
- package/dist/cjs/br-footer-legal.cjs.entry.js +4 -4
- package/dist/cjs/br-footer-logo.cjs.entry.js +22 -10
- package/dist/cjs/br-footer-social.cjs.entry.js +14 -6
- package/dist/cjs/br-footer.cjs.entry.js +16 -7
- package/dist/cjs/br-header-function.cjs.entry.js +28 -7
- package/dist/cjs/br-header-link.cjs.entry.js +25 -4
- package/dist/cjs/br-header-list.cjs.entry.js +6 -17
- package/dist/cjs/br-header-logo.cjs.entry.js +18 -7
- package/dist/cjs/br-header.cjs.entry.js +72 -17
- package/dist/cjs/br-icon.cjs.entry.js +160 -23
- package/dist/cjs/br-input.cjs.entry.js +130 -39
- package/dist/cjs/br-item.cjs.entry.js +96 -48
- package/dist/cjs/br-link.cjs.entry.js +20 -7
- package/dist/cjs/br-loading.cjs.entry.js +100 -38
- package/dist/cjs/br-magic-button.cjs.entry.js +26 -9
- package/dist/cjs/br-menu-group.cjs.entry.js +14 -3
- package/dist/cjs/br-menu-header.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-info.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-item.cjs.entry.js +27 -5
- package/dist/cjs/br-menu-link.cjs.entry.js +14 -6
- package/dist/cjs/br-menu-list.cjs.entry.js +23 -27
- package/dist/cjs/br-menu-logo.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-social.cjs.entry.js +16 -6
- package/dist/cjs/br-menu.cjs.entry.js +41 -64
- package/dist/cjs/br-modal.cjs.entry.js +26 -40
- package/dist/cjs/br-notification-body.cjs.entry.js +4 -4
- package/dist/cjs/br-notification-header.cjs.entry.js +4 -4
- package/dist/cjs/br-notification-item.cjs.entry.js +14 -8
- package/dist/cjs/br-notification.cjs.entry.js +23 -8
- package/dist/cjs/br-pagination.cjs.entry.js +119 -87
- package/dist/cjs/br-radio-group.cjs.entry.js +106 -57
- package/dist/cjs/br-radio.cjs.entry.js +61 -11
- package/dist/cjs/br-scrim.cjs.entry.js +161 -67
- package/dist/cjs/br-select-input_3.cjs.entry.js +283 -90
- package/dist/cjs/br-sign-in.cjs.entry.js +34 -15
- package/dist/cjs/br-skip-link-item.cjs.entry.js +39 -2
- package/dist/cjs/br-skip-link.cjs.entry.js +50 -33
- package/dist/cjs/br-skiplink-item.cjs.entry.js +22 -6
- package/dist/cjs/br-slider.cjs.entry.js +521 -99
- package/dist/cjs/br-step_2.cjs.entry.js +98 -44
- package/dist/cjs/br-switch.cjs.entry.js +20 -11
- package/dist/cjs/br-tab-item.cjs.entry.js +38 -14
- package/dist/cjs/br-tab.cjs.entry.js +57 -44
- package/dist/cjs/br-table-body.cjs.entry.js +3 -3
- package/dist/cjs/br-table-cell.cjs.entry.js +30 -13
- package/dist/cjs/br-table-header-cell.cjs.entry.js +23 -7
- package/dist/cjs/br-table-header.cjs.entry.js +3 -3
- package/dist/cjs/br-table-row.cjs.entry.js +17 -3
- package/dist/cjs/br-table.cjs.entry.js +67 -21
- package/dist/cjs/br-tag.cjs.entry.js +48 -30
- package/dist/cjs/br-textarea.cjs.entry.js +117 -12
- package/dist/cjs/br-tooltip.cjs.entry.js +87 -41
- package/dist/cjs/br-upload.cjs.entry.js +83 -24
- package/dist/cjs/br-wizard-panel.cjs.entry.js +16 -3
- package/dist/cjs/br-wizard.cjs.entry.js +52 -28
- package/dist/cjs/{isValid-Fu3kaWNn.js → datetime-picker-props-validation-DmNKSXsy.js} +481 -4
- package/dist/cjs/{floating-ui-MBI1osio.js → floating-ui-B6nsdYUU.js} +24 -1
- package/dist/cjs/{floating-ui.dom-BUSTaaxR.js → floating-ui.dom-wzdGZjyG.js} +201 -113
- package/dist/cjs/{focus-DuywwJPR.js → focus-BhfJnFgJ.js} +21 -0
- package/dist/cjs/header-context-CdawuLsH.js +17 -0
- package/dist/cjs/id-DE4jSi-L.js +36 -0
- package/dist/cjs/{index-CRdcutym.js → index-CGgZBuyy.js} +68 -752
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/motion-CgIooxWS.js +29 -0
- package/dist/cjs/ownership-UnpufyCx.js +116 -0
- package/dist/cjs/prop-warning-xvEHQz8H.js +60 -0
- package/dist/cjs/props-D8dybmr0.js +124 -0
- package/dist/cjs/{swipe-BU8_XE9f.js → swipe-BGF-h9WY.js} +11 -1
- package/dist/cjs/webcomponents.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/avatar/avatar.js +48 -16
- package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +15 -3
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +107 -22
- package/dist/collection/components/breadcrumb/crumb/crumb.js +14 -2
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button/button.js +88 -24
- package/dist/collection/components/card/card.css +1 -1
- package/dist/collection/components/card/card.js +33 -5
- package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
- package/dist/collection/components/carousel/carousel-page/carousel-page.js +11 -4
- package/dist/collection/components/carousel/carousel.css +1 -1
- package/dist/collection/components/carousel/carousel.js +107 -21
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/checkbox/checkbox.js +134 -20
- package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
- package/dist/collection/components/checkbox-group/checkbox-group.js +210 -30
- package/dist/collection/components/checkgroup/checkgroup.js +42 -4
- package/dist/collection/components/collapse/collapse.css +1 -1
- package/dist/collection/components/collapse/collapse.js +48 -8
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +17 -4
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +16 -7
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +15 -9
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +24 -8
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +14 -4
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +13 -5
- package/dist/collection/components/cookiebar/cookiebar.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar.js +67 -32
- package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
- package/dist/collection/components/datetime-picker/date-picker/date-picker.js +134 -35
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +112 -22
- package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +13 -5
- package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +158 -42
- package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
- package/dist/collection/components/datetime-picker/time-picker/time-picker.js +78 -9
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/divider/divider.js +101 -26
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown/dropdown.js +166 -18
- package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
- package/dist/collection/components/footer/footer-category/footer-category.js +23 -4
- package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
- package/dist/collection/components/footer/footer-item/footer-item.js +21 -2
- package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
- package/dist/collection/components/footer/footer-legal/footer-legal.js +16 -2
- package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
- package/dist/collection/components/footer/footer-logo/footer-logo.js +35 -9
- package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
- package/dist/collection/components/footer/footer-social/footer-social.js +26 -6
- package/dist/collection/components/footer/footer.css +1 -1
- package/dist/collection/components/footer/footer.js +48 -7
- package/dist/collection/components/header/header-context.js +13 -0
- package/dist/collection/components/header/header-function/header-function.css +1 -1
- package/dist/collection/components/header/header-function/header-function.js +51 -8
- package/dist/collection/components/header/header-link/header-link.css +1 -1
- package/dist/collection/components/header/header-link/header-link.js +52 -2
- package/dist/collection/components/header/header-list/header-list.css +1 -1
- package/dist/collection/components/header/header-list/header-list.js +20 -23
- package/dist/collection/components/header/header-logo/header-logo.css +1 -1
- package/dist/collection/components/header/header-logo/header-logo.js +33 -8
- package/dist/collection/components/header/header.css +1 -1
- package/dist/collection/components/header/header.js +110 -24
- package/dist/collection/components/icon/default-icons-cache.js +111 -3
- package/dist/collection/components/icon/icon.css +1 -1
- package/dist/collection/components/icon/icon.js +80 -33
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/input/input.js +169 -54
- package/dist/collection/components/item/item.css +1 -1
- package/dist/collection/components/item/item.js +134 -51
- package/dist/collection/components/link/link.css +1 -1
- package/dist/collection/components/link/link.js +48 -15
- package/dist/collection/components/list/list.css +1 -1
- package/dist/collection/components/list/list.js +106 -25
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/loading/loading.js +131 -43
- package/dist/collection/components/magic-button/magic-button.css +1 -1
- package/dist/collection/components/magic-button/magic-button.js +51 -9
- package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
- package/dist/collection/components/menu/menu-group/menu-group.js +60 -2
- package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
- package/dist/collection/components/menu/menu-header/menu-header.js +17 -2
- package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
- package/dist/collection/components/menu/menu-info/menu-info.js +15 -2
- package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
- package/dist/collection/components/menu/menu-item/menu-item.js +72 -8
- package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
- package/dist/collection/components/menu/menu-link/menu-link.js +25 -4
- package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
- package/dist/collection/components/menu/menu-list/menu-list.js +64 -29
- package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
- package/dist/collection/components/menu/menu-logo/menu-logo.js +15 -2
- package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
- package/dist/collection/components/menu/menu-social/menu-social.js +29 -7
- package/dist/collection/components/menu/menu.css +1 -1
- package/dist/collection/components/menu/menu.js +75 -68
- package/dist/collection/components/menu/menu.utils.js +8 -18
- package/dist/collection/components/message/message.css +1 -1
- package/dist/collection/components/message/message.js +50 -24
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/modal/modal.js +54 -41
- package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
- package/dist/collection/components/notification/notification-body/notification-body.js +13 -4
- package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
- package/dist/collection/components/notification/notification-header/notification-header.js +13 -4
- package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
- package/dist/collection/components/notification/notification-item/notification-item.js +23 -9
- package/dist/collection/components/notification/notification.css +1 -1
- package/dist/collection/components/notification/notification.js +54 -10
- package/dist/collection/components/pagination/pagination.css +1 -1
- package/dist/collection/components/pagination/pagination.js +161 -74
- package/dist/collection/components/radio/radio.css +1 -1
- package/dist/collection/components/radio/radio.js +109 -14
- package/dist/collection/components/radio-group/radio-group.css +1 -1
- package/dist/collection/components/radio-group/radio-group.js +153 -63
- package/dist/collection/components/scrim/scrim.css +1 -1
- package/dist/collection/components/scrim/scrim.js +215 -74
- package/dist/collection/components/scrim/scrim.utils.js +5 -51
- package/dist/collection/components/select/select-input/select-input.css +1 -1
- package/dist/collection/components/select/select-input/select-input.js +58 -5
- package/dist/collection/components/select/select-list/select-list.css +1 -1
- package/dist/collection/components/select/select-list/select-list.js +247 -52
- package/dist/collection/components/select/select-option/select-option.css +1 -1
- package/dist/collection/components/select/select-option/select-option.js +108 -46
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +323 -118
- package/dist/collection/components/sign-in/sign-in.css +1 -1
- package/dist/collection/components/sign-in/sign-in.js +55 -16
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +112 -3
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +58 -5
- package/dist/collection/components/skip-link/skip-link.css +1 -1
- package/dist/collection/components/skip-link/skip-link.js +78 -39
- package/dist/collection/components/slider/slider.css +1 -1
- package/dist/collection/components/slider/slider.js +530 -132
- package/dist/collection/components/slider/slider.utils.js +178 -0
- package/dist/collection/components/step/step-item/step-item.css +1 -1
- package/dist/collection/components/step/step-item/step-item.js +29 -12
- package/dist/collection/components/step/step.css +1 -1
- package/dist/collection/components/step/step.js +119 -44
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/switch/switch.js +48 -15
- package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
- package/dist/collection/components/tab/tab-item/tab-item.js +49 -14
- package/dist/collection/components/tab/tab.css +1 -1
- package/dist/collection/components/tab/tab.js +89 -46
- package/dist/collection/components/table/table-body/table-body.css +1 -1
- package/dist/collection/components/table/table-body/table-body.js +11 -7
- package/dist/collection/components/table/table-cell/table-cell.css +1 -1
- package/dist/collection/components/table/table-cell/table-cell.js +36 -17
- package/dist/collection/components/table/table-header/table-header.css +1 -1
- package/dist/collection/components/table/table-header/table-header.js +11 -7
- package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +35 -13
- package/dist/collection/components/table/table-row/table-row.css +1 -1
- package/dist/collection/components/table/table-row/table-row.js +24 -7
- package/dist/collection/components/table/table.css +1 -1
- package/dist/collection/components/table/table.js +107 -31
- package/dist/collection/components/tag/tag.css +1 -1
- package/dist/collection/components/tag/tag.js +86 -36
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/textarea/textarea.js +222 -19
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/tooltip/tooltip.js +134 -45
- package/dist/collection/components/upload/upload.css +1 -1
- package/dist/collection/components/upload/upload.js +135 -33
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +54 -3
- package/dist/collection/components/wizard/wizard.css +1 -1
- package/dist/collection/components/wizard/wizard.js +82 -28
- package/dist/collection/pages/scripts/component-controls-core.js +95 -0
- package/dist/collection/pages/scripts/component-controls.js +238 -153
- package/dist/collection/pages/scripts/dev-event-console.js +5 -1
- package/dist/collection/pages/scripts/menu.js +90 -5
- package/dist/collection/pages/scripts/pageLoader.js +1486 -586
- package/dist/collection/pages/scripts/pageloader-preview.js +787 -0
- package/dist/collection/pages/scripts/playground-core.js +173 -0
- package/dist/collection/shared/utils/cssVariables.js +2 -0
- package/dist/collection/shared/utils/date.js +8 -4
- package/dist/collection/shared/utils/floating-ui.js +24 -1
- package/dist/collection/shared/utils/focus.js +31 -0
- package/dist/collection/shared/utils/getRandom.js +16 -1
- package/dist/collection/shared/utils/helpers.js +4 -11
- package/dist/collection/shared/utils/id.js +23 -7
- package/dist/collection/shared/utils/index.js +6 -1
- package/dist/collection/shared/utils/isEmpty.js +5 -3
- package/dist/collection/shared/utils/motion.js +25 -0
- package/dist/collection/shared/utils/ownership.js +113 -0
- package/dist/collection/shared/utils/prop-warning.js +47 -0
- package/dist/collection/shared/utils/props.js +79 -0
- package/dist/collection/shared/utils/swipe.js +11 -1
- package/dist/collection/shared/utils/transition.js +3 -0
- package/dist/collection/shared/utils/virtual-scroll.js +24 -0
- package/dist/components/br-avatar.d.ts +1 -1
- package/dist/components/br-avatar.js +1 -1
- package/dist/components/br-breadcrumb-item.d.ts +1 -1
- package/dist/components/br-breadcrumb-item.js +1 -1
- package/dist/components/br-breadcrumb.d.ts +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-button.d.ts +1 -1
- package/dist/components/br-button.js +1 -1
- package/dist/components/br-card.d.ts +1 -1
- package/dist/components/br-card.js +1 -1
- package/dist/components/br-carousel-page.d.ts +1 -1
- package/dist/components/br-carousel-page.js +1 -1
- package/dist/components/br-carousel.d.ts +1 -1
- package/dist/components/br-carousel.js +1 -1
- package/dist/components/br-checkbox-group.d.ts +1 -1
- package/dist/components/br-checkbox-group.js +1 -1
- package/dist/components/br-checkbox.d.ts +1 -1
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkgroup.d.ts +1 -1
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.d.ts +1 -1
- package/dist/components/br-collapse.js +1 -1
- package/dist/components/br-cookiebar-cookie.d.ts +1 -1
- package/dist/components/br-cookiebar-cookie.js +1 -1
- package/dist/components/br-cookiebar-group.d.ts +1 -1
- package/dist/components/br-cookiebar-group.js +1 -1
- package/dist/components/br-cookiebar-header.d.ts +1 -1
- package/dist/components/br-cookiebar-header.js +1 -1
- package/dist/components/br-cookiebar-link.d.ts +1 -1
- package/dist/components/br-cookiebar-link.js +1 -1
- package/dist/components/br-cookiebar-note-group.d.ts +1 -1
- package/dist/components/br-cookiebar-note-group.js +1 -1
- package/dist/components/br-cookiebar-note.d.ts +1 -1
- package/dist/components/br-cookiebar-note.js +1 -1
- package/dist/components/br-cookiebar.d.ts +1 -1
- package/dist/components/br-cookiebar.js +1 -1
- package/dist/components/br-crumb.d.ts +1 -1
- package/dist/components/br-crumb.js +1 -1
- package/dist/components/br-date-picker.d.ts +1 -1
- package/dist/components/br-date-picker.js +1 -1
- package/dist/components/br-datetime-input.d.ts +1 -1
- package/dist/components/br-datetime-input.js +1 -1
- package/dist/components/br-datetime-picker.d.ts +1 -1
- package/dist/components/br-datetime-picker.js +1 -1
- package/dist/components/br-divider.d.ts +1 -1
- package/dist/components/br-divider.js +1 -1
- package/dist/components/br-dropdown.d.ts +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.d.ts +1 -1
- package/dist/components/br-footer-category.js +1 -1
- package/dist/components/br-footer-item.d.ts +1 -1
- package/dist/components/br-footer-item.js +1 -1
- package/dist/components/br-footer-legal.d.ts +1 -1
- package/dist/components/br-footer-legal.js +1 -1
- package/dist/components/br-footer-logo.d.ts +1 -1
- package/dist/components/br-footer-logo.js +1 -1
- package/dist/components/br-footer-social.d.ts +1 -1
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-footer.d.ts +1 -1
- package/dist/components/br-footer.js +1 -1
- package/dist/components/br-header-function.d.ts +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-link.d.ts +1 -1
- package/dist/components/br-header-link.js +1 -1
- package/dist/components/br-header-list.d.ts +1 -1
- package/dist/components/br-header-list.js +1 -1
- package/dist/components/br-header-logo.d.ts +1 -1
- package/dist/components/br-header-logo.js +1 -1
- package/dist/components/br-header.d.ts +1 -1
- package/dist/components/br-header.js +1 -1
- package/dist/components/br-icon.d.ts +1 -1
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.d.ts +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-item.d.ts +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-link.d.ts +1 -1
- package/dist/components/br-link.js +1 -1
- package/dist/components/br-list.d.ts +1 -1
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-loading.d.ts +1 -1
- package/dist/components/br-loading.js +1 -1
- package/dist/components/br-magic-button.d.ts +1 -1
- package/dist/components/br-magic-button.js +1 -1
- package/dist/components/br-menu-group.d.ts +1 -1
- package/dist/components/br-menu-group.js +1 -1
- package/dist/components/br-menu-header.d.ts +1 -1
- package/dist/components/br-menu-header.js +1 -1
- package/dist/components/br-menu-info.d.ts +1 -1
- package/dist/components/br-menu-info.js +1 -1
- package/dist/components/br-menu-item.d.ts +1 -1
- package/dist/components/br-menu-item.js +1 -1
- package/dist/components/br-menu-link.d.ts +1 -1
- package/dist/components/br-menu-link.js +1 -1
- package/dist/components/br-menu-list.d.ts +1 -1
- package/dist/components/br-menu-list.js +1 -1
- package/dist/components/br-menu-logo.d.ts +1 -1
- package/dist/components/br-menu-logo.js +1 -1
- package/dist/components/br-menu-social.d.ts +1 -1
- package/dist/components/br-menu-social.js +1 -1
- package/dist/components/br-menu.d.ts +1 -1
- package/dist/components/br-menu.js +1 -1
- package/dist/components/br-message.d.ts +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-modal.d.ts +1 -1
- package/dist/components/br-modal.js +1 -1
- package/dist/components/br-notification-body.d.ts +1 -1
- package/dist/components/br-notification-body.js +1 -1
- package/dist/components/br-notification-header.d.ts +1 -1
- package/dist/components/br-notification-header.js +1 -1
- package/dist/components/br-notification-item.d.ts +1 -1
- package/dist/components/br-notification-item.js +1 -1
- package/dist/components/br-notification.d.ts +1 -1
- package/dist/components/br-notification.js +1 -1
- package/dist/components/br-pagination.d.ts +1 -1
- package/dist/components/br-pagination.js +1 -1
- package/dist/components/br-radio-group.d.ts +1 -1
- package/dist/components/br-radio-group.js +1 -1
- package/dist/components/br-radio.d.ts +1 -1
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-scrim.d.ts +1 -1
- package/dist/components/br-scrim.js +1 -1
- package/dist/components/br-select-input.d.ts +1 -1
- package/dist/components/br-select-input.js +1 -1
- package/dist/components/br-select-list.d.ts +1 -1
- package/dist/components/br-select-list.js +1 -1
- package/dist/components/br-select-option.d.ts +1 -1
- package/dist/components/br-select-option.js +1 -1
- package/dist/components/br-select.d.ts +1 -1
- package/dist/components/br-select.js +1 -1
- package/dist/components/br-sign-in.d.ts +1 -1
- package/dist/components/br-sign-in.js +1 -1
- package/dist/components/br-skip-link-item.d.ts +1 -1
- package/dist/components/br-skip-link-item.js +1 -1
- package/dist/components/br-skip-link.d.ts +1 -1
- package/dist/components/br-skip-link.js +1 -1
- package/dist/components/br-skiplink-item.d.ts +1 -1
- package/dist/components/br-skiplink-item.js +1 -1
- package/dist/components/br-slider.d.ts +1 -1
- package/dist/components/br-slider.js +1 -1
- package/dist/components/br-step-item.d.ts +1 -1
- package/dist/components/br-step-item.js +1 -1
- package/dist/components/br-step.d.ts +1 -1
- package/dist/components/br-step.js +1 -1
- package/dist/components/br-switch.d.ts +1 -1
- package/dist/components/br-switch.js +1 -1
- package/dist/components/br-tab-item.d.ts +1 -1
- package/dist/components/br-tab-item.js +1 -1
- package/dist/components/br-tab.d.ts +1 -1
- package/dist/components/br-tab.js +1 -1
- package/dist/components/br-table-body.d.ts +1 -1
- package/dist/components/br-table-body.js +1 -1
- package/dist/components/br-table-cell.d.ts +1 -1
- package/dist/components/br-table-cell.js +1 -1
- package/dist/components/br-table-header-cell.d.ts +1 -1
- package/dist/components/br-table-header-cell.js +1 -1
- package/dist/components/br-table-header.d.ts +1 -1
- package/dist/components/br-table-header.js +1 -1
- package/dist/components/br-table-row.d.ts +1 -1
- package/dist/components/br-table-row.js +1 -1
- package/dist/components/br-table.d.ts +1 -1
- package/dist/components/br-table.js +1 -1
- package/dist/components/br-tag.d.ts +1 -1
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-textarea.d.ts +1 -1
- package/dist/components/br-textarea.js +1 -1
- package/dist/components/br-time-picker.d.ts +1 -1
- package/dist/components/br-time-picker.js +1 -1
- package/dist/components/br-tooltip.d.ts +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-upload.d.ts +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-wizard-panel.d.ts +1 -1
- package/dist/components/br-wizard-panel.js +1 -1
- package/dist/components/br-wizard.d.ts +1 -1
- package/dist/components/br-wizard.js +1 -1
- package/dist/components/index.d.ts +89 -89
- package/dist/components/index.js +1 -1
- package/dist/components/p-B0o70fWP.js +5 -0
- package/dist/components/p-B96LROz9.js +5 -0
- package/dist/components/p-BDqef5-y.js +5 -0
- package/dist/components/p-BEJGB0Nd.js +5 -0
- package/dist/{webcomponents/p-Dmfk7eEe.js → components/p-BJZC_NuV.js} +1 -1
- package/dist/components/p-BJtdabsr.js +5 -0
- package/dist/components/p-BP5zMCxG.js +5 -0
- package/dist/components/p-BRaphxoP.js +5 -0
- package/dist/components/p-BUzBa9L1.js +5 -0
- package/dist/components/{p-DA5GS53D.js → p-BblZlUp2.js} +1 -1
- package/dist/components/p-Bc4nAk5i.js +5 -0
- package/dist/components/{p-C1yRmdso.js → p-BcqVlof7.js} +1 -1
- package/dist/components/p-BeJxz5TQ.js +5 -0
- package/dist/components/p-Bezou5CQ.js +5 -0
- package/dist/components/p-BrNh9KdF.js +5 -0
- package/dist/components/p-C5th2dxu.js +5 -0
- package/dist/components/p-CDtFCbKp.js +5 -0
- package/dist/components/p-CEdUp183.js +5 -0
- package/dist/components/p-CF7t0uxQ.js +5 -0
- package/dist/components/p-CFzHx6zV.js +5 -0
- package/dist/components/p-CG4em0S6.js +5 -0
- package/dist/components/p-CI4D3-pf.js +5 -0
- package/dist/components/p-CIrVPkVg.js +5 -0
- package/dist/components/p-CNwZRgyL.js +5 -0
- package/dist/components/p-CppRJiyC.js +5 -0
- package/dist/components/p-Cvk1Ggs5.js +5 -0
- package/dist/components/p-D12US39c.js +5 -0
- package/dist/components/p-D9Zo6FlV.js +5 -0
- package/dist/components/p-DGPJkJsj.js +5 -0
- package/dist/components/p-DSHbttu9.js +5 -0
- package/dist/components/p-DTGNra9m.js +5 -0
- package/dist/components/p-DWhzxlCx.js +5 -0
- package/dist/components/p-DX1wAFn4.js +5 -0
- package/dist/components/p-DiLI514I.js +5 -0
- package/dist/components/p-Dma14GVa.js +5 -0
- package/dist/components/p-DpRZ4B0d.js +5 -0
- package/dist/components/p-G35qEQZd.js +5 -0
- package/dist/components/p-Ho_IybzR.js +5 -0
- package/dist/components/p-SvVnvJdC.js +5 -0
- package/dist/components/p-emAWunES.js +5 -0
- package/dist/components/p-fB79wKCm.js +5 -0
- package/dist/components/p-k7p4QJ8a.js +5 -0
- package/dist/esm/br-avatar.entry.js +21 -14
- package/dist/esm/br-breadcrumb-item.entry.js +2 -2
- package/dist/esm/br-breadcrumb.entry.js +49 -22
- package/dist/esm/br-button_2.entry.js +72 -35
- package/dist/esm/br-card.entry.js +6 -5
- package/dist/esm/br-carousel-page.entry.js +3 -3
- package/dist/esm/br-carousel.entry.js +78 -22
- package/dist/esm/br-checkbox-group.entry.js +157 -27
- package/dist/esm/br-checkbox.entry.js +86 -16
- package/dist/esm/br-checkgroup.entry.js +5 -2
- package/dist/esm/br-collapse_2.entry.js +86 -27
- package/dist/esm/br-cookiebar-cookie.entry.js +4 -4
- package/dist/esm/br-cookiebar-group.entry.js +4 -4
- package/dist/esm/br-cookiebar-header.entry.js +4 -4
- package/dist/esm/br-cookiebar-link.entry.js +14 -6
- package/dist/esm/br-cookiebar-note-group.entry.js +3 -5
- package/dist/esm/br-cookiebar-note.entry.js +4 -4
- package/dist/esm/br-cookiebar.entry.js +39 -26
- package/dist/esm/br-crumb.entry.js +2 -2
- package/dist/esm/br-date-picker_3.entry.js +207 -49
- package/dist/esm/br-datetime-picker.entry.js +82 -494
- package/dist/esm/br-divider.entry.js +70 -17
- package/dist/esm/br-dropdown_2.entry.js +305 -123
- package/dist/esm/br-footer-category.entry.js +10 -6
- package/dist/esm/br-footer-item.entry.js +9 -4
- package/dist/esm/br-footer-legal.entry.js +4 -4
- package/dist/esm/br-footer-logo.entry.js +22 -10
- package/dist/esm/br-footer-social.entry.js +14 -6
- package/dist/esm/br-footer.entry.js +16 -7
- package/dist/esm/br-header-function.entry.js +28 -7
- package/dist/esm/br-header-link.entry.js +25 -4
- package/dist/esm/br-header-list.entry.js +7 -18
- package/dist/esm/br-header-logo.entry.js +18 -7
- package/dist/esm/br-header.entry.js +72 -17
- package/dist/esm/br-icon.entry.js +160 -23
- package/dist/esm/br-input.entry.js +132 -41
- package/dist/esm/br-item.entry.js +96 -48
- package/dist/esm/br-link.entry.js +20 -7
- package/dist/esm/br-loading.entry.js +100 -38
- package/dist/esm/br-magic-button.entry.js +26 -9
- package/dist/esm/br-menu-group.entry.js +14 -3
- package/dist/esm/br-menu-header.entry.js +4 -4
- package/dist/esm/br-menu-info.entry.js +4 -4
- package/dist/esm/br-menu-item.entry.js +27 -5
- package/dist/esm/br-menu-link.entry.js +14 -6
- package/dist/esm/br-menu-list.entry.js +23 -27
- package/dist/esm/br-menu-logo.entry.js +4 -4
- package/dist/esm/br-menu-social.entry.js +16 -6
- package/dist/esm/br-menu.entry.js +42 -65
- package/dist/esm/br-modal.entry.js +26 -40
- package/dist/esm/br-notification-body.entry.js +4 -4
- package/dist/esm/br-notification-header.entry.js +4 -4
- package/dist/esm/br-notification-item.entry.js +14 -8
- package/dist/esm/br-notification.entry.js +24 -9
- package/dist/esm/br-pagination.entry.js +119 -87
- package/dist/esm/br-radio-group.entry.js +107 -58
- package/dist/esm/br-radio.entry.js +62 -12
- package/dist/esm/br-scrim.entry.js +161 -67
- package/dist/esm/br-select-input_3.entry.js +283 -90
- package/dist/esm/br-sign-in.entry.js +34 -15
- package/dist/esm/br-skip-link-item.entry.js +39 -2
- package/dist/esm/br-skip-link.entry.js +50 -33
- package/dist/esm/br-skiplink-item.entry.js +22 -6
- package/dist/esm/br-slider.entry.js +519 -97
- package/dist/esm/br-step_2.entry.js +98 -44
- package/dist/esm/br-switch.entry.js +21 -12
- package/dist/esm/br-tab-item.entry.js +38 -14
- package/dist/esm/br-tab.entry.js +57 -44
- package/dist/esm/br-table-body.entry.js +3 -3
- package/dist/esm/br-table-cell.entry.js +30 -13
- package/dist/esm/br-table-header-cell.entry.js +23 -7
- package/dist/esm/br-table-header.entry.js +3 -3
- package/dist/esm/br-table-row.entry.js +17 -3
- package/dist/esm/br-table.entry.js +68 -22
- package/dist/esm/br-tag.entry.js +49 -31
- package/dist/esm/br-textarea.entry.js +118 -13
- package/dist/esm/br-tooltip.entry.js +88 -42
- package/dist/esm/br-upload.entry.js +84 -25
- package/dist/esm/br-wizard-panel.entry.js +16 -3
- package/dist/esm/br-wizard.entry.js +52 -28
- package/dist/esm/{datetime-picker-constants-Bfm58jO6.js → datetime-picker-constants-BtRPYRvA.js} +1 -1
- package/dist/esm/{isValid-DIUZX1qS.js → datetime-picker-props-validation-BeTcUTnE.js} +476 -5
- package/dist/esm/{event-DFN_so7I.js → event-CfuJQ1DY.js} +1 -1
- package/dist/esm/{floating-ui-BavFwMnx.js → floating-ui-CskvaxD5.js} +24 -1
- package/dist/esm/{floating-ui.dom-DIK54tTj.js → floating-ui.dom-D9Zo6FlV.js} +201 -114
- package/dist/esm/{focus-DxZJrIyL.js → focus-CNwZRgyL.js} +20 -1
- package/dist/esm/header-context-BEJGB0Nd.js +15 -0
- package/dist/esm/id-BeJxz5TQ.js +34 -0
- package/dist/esm/{index-Bo-2igoO.js → index-BQPOWxe5.js} +1 -1
- package/dist/esm/{index-C2RBydfd.js → index-Dcn7tRST.js} +68 -752
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/motion-DWhzxlCx.js +27 -0
- package/dist/esm/ownership-CDtFCbKp.js +111 -0
- package/dist/esm/prop-warning-BlGV-x0w.js +56 -0
- package/dist/esm/props-D07GjR4_.js +116 -0
- package/dist/esm/{swipe-Dmfk7eEe.js → swipe-BJZC_NuV.js} +11 -1
- package/dist/esm/webcomponents.js +4 -4
- package/dist/hydrate/index.js +7370 -2603
- package/dist/hydrate/index.mjs +7370 -2603
- package/dist/loader/index.d.ts +1 -1
- package/dist/types/components/avatar/avatar.d.ts +34 -4
- package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +14 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +66 -5
- package/dist/types/components/breadcrumb/crumb/crumb.d.ts +13 -1
- package/dist/types/components/button/button.d.ts +45 -9
- package/dist/types/components/card/card.d.ts +31 -3
- package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +10 -3
- package/dist/types/components/carousel/carousel.d.ts +46 -3
- package/dist/types/components/checkbox/checkbox.d.ts +59 -6
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +47 -5
- package/dist/types/components/checkgroup/checkgroup.d.ts +27 -5
- package/dist/types/components/collapse/collapse.d.ts +33 -4
- package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +16 -3
- package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +15 -6
- package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +14 -8
- package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +16 -5
- package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +13 -3
- package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +13 -3
- package/dist/types/components/cookiebar/cookiebar.d.ts +35 -10
- package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +63 -7
- package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +51 -9
- package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +4 -2
- package/dist/types/components/datetime-picker/datetime-picker.d.ts +118 -12
- package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +38 -4
- package/dist/types/components/divider/divider.d.ts +45 -8
- package/dist/types/components/dropdown/dropdown.d.ts +41 -3
- package/dist/types/components/footer/footer-category/footer-category.d.ts +16 -1
- package/dist/types/components/footer/footer-item/footer-item.d.ts +17 -1
- package/dist/types/components/footer/footer-legal/footer-legal.d.ts +15 -1
- package/dist/types/components/footer/footer-logo/footer-logo.d.ts +21 -2
- package/dist/types/components/footer/footer-social/footer-social.d.ts +20 -3
- package/dist/types/components/footer/footer.d.ts +39 -3
- package/dist/types/components/header/header-context.d.ts +1 -0
- package/dist/types/components/header/header-function/header-function.d.ts +24 -2
- package/dist/types/components/header/header-link/header-link.d.ts +22 -1
- package/dist/types/components/header/header-list/header-list.d.ts +16 -8
- package/dist/types/components/header/header-logo/header-logo.d.ts +20 -1
- package/dist/types/components/header/header.d.ts +45 -7
- package/dist/types/components/icon/icon.d.ts +44 -13
- package/dist/types/components/input/input.d.ts +65 -15
- package/dist/types/components/item/item.d.ts +38 -5
- package/dist/types/components/link/link.d.ts +41 -9
- package/dist/types/components/list/list.d.ts +58 -8
- package/dist/types/components/loading/loading.d.ts +48 -8
- package/dist/types/components/magic-button/magic-button.d.ts +37 -3
- package/dist/types/components/menu/menu-group/menu-group.d.ts +19 -1
- package/dist/types/components/menu/menu-header/menu-header.d.ts +16 -1
- package/dist/types/components/menu/menu-info/menu-info.d.ts +14 -1
- package/dist/types/components/menu/menu-item/menu-item.d.ts +27 -3
- package/dist/types/components/menu/menu-link/menu-link.d.ts +17 -1
- package/dist/types/components/menu/menu-list/menu-list.d.ts +22 -4
- package/dist/types/components/menu/menu-logo/menu-logo.d.ts +14 -1
- package/dist/types/components/menu/menu-social/menu-social.d.ts +21 -2
- package/dist/types/components/menu/menu.d.ts +42 -9
- package/dist/types/components/menu/menu.utils.d.ts +2 -6
- package/dist/types/components/message/message.d.ts +38 -9
- package/dist/types/components/modal/modal.d.ts +34 -4
- package/dist/types/components/notification/notification-body/notification-body.d.ts +12 -3
- package/dist/types/components/notification/notification-header/notification-header.d.ts +12 -3
- package/dist/types/components/notification/notification-item/notification-item.d.ts +15 -3
- package/dist/types/components/notification/notification.d.ts +36 -5
- package/dist/types/components/pagination/pagination.d.ts +56 -20
- package/dist/types/components/radio/radio.d.ts +49 -4
- package/dist/types/components/radio-group/radio-group.d.ts +52 -10
- package/dist/types/components/scrim/scrim.d.ts +72 -11
- package/dist/types/components/scrim/scrim.utils.d.ts +2 -17
- package/dist/types/components/select/select-input/select-input.d.ts +22 -4
- package/dist/types/components/select/select-list/select-list.d.ts +51 -5
- package/dist/types/components/select/select-option/select-option.d.ts +31 -8
- package/dist/types/components/select/select.d.ts +152 -13
- package/dist/types/components/select/select.types.d.ts +5 -0
- package/dist/types/components/sign-in/sign-in.d.ts +30 -3
- package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +15 -2
- package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +22 -1
- package/dist/types/components/skip-link/skip-link.d.ts +37 -3
- package/dist/types/components/slider/slider.d.ts +147 -21
- package/dist/types/components/slider/slider.types.d.ts +7 -2
- package/dist/types/components/slider/slider.utils.d.ts +27 -0
- package/dist/types/components/step/step-item/step-item.d.ts +15 -3
- package/dist/types/components/step/step.d.ts +47 -12
- package/dist/types/components/switch/switch.d.ts +39 -6
- package/dist/types/components/tab/tab-item/tab-item.d.ts +20 -4
- package/dist/types/components/tab/tab.d.ts +41 -11
- package/dist/types/components/table/table-body/table-body.d.ts +10 -6
- package/dist/types/components/table/table-cell/table-cell.d.ts +10 -6
- package/dist/types/components/table/table-header/table-header.d.ts +10 -6
- package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +18 -6
- package/dist/types/components/table/table-row/table-row.d.ts +11 -6
- package/dist/types/components/table/table.d.ts +49 -11
- package/dist/types/components/tag/tag.d.ts +55 -7
- package/dist/types/components/textarea/textarea.d.ts +75 -5
- package/dist/types/components/textarea/textarea.types.d.ts +4 -0
- package/dist/types/components/tooltip/tooltip.d.ts +46 -8
- package/dist/types/components/upload/upload.d.ts +78 -10
- package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +20 -2
- package/dist/types/components/wizard/wizard.d.ts +44 -7
- package/dist/types/components.d.ts +5825 -1352
- package/dist/types/shared/utils/floating-ui.d.ts +4 -0
- package/dist/types/shared/utils/focus.d.ts +14 -0
- package/dist/types/shared/utils/getRandom.d.ts +1 -0
- package/dist/types/shared/utils/id.d.ts +1 -1
- package/dist/types/shared/utils/index.d.ts +6 -1
- package/dist/types/shared/utils/motion.d.ts +14 -0
- package/dist/types/shared/utils/ownership.d.ts +33 -0
- package/dist/types/shared/utils/prop-warning.d.ts +7 -0
- package/dist/types/shared/utils/props.d.ts +38 -0
- package/dist/types/shared/utils/swipe.d.ts +5 -0
- package/dist/types/shared/utils/virtual-scroll.d.ts +25 -0
- package/dist/types/stencil-public-runtime.d.ts +12 -0
- package/dist/webcomponents/index.esm.js +1 -1
- package/dist/webcomponents/p-01baafce.entry.js +5 -0
- package/dist/webcomponents/p-01fb0754.entry.js +5 -0
- package/dist/webcomponents/p-030c02f8.entry.js +5 -0
- package/dist/webcomponents/p-03359c92.entry.js +5 -0
- package/dist/webcomponents/p-09770c98.entry.js +5 -0
- package/dist/webcomponents/p-0b9714f1.entry.js +5 -0
- package/dist/webcomponents/p-12aa36a8.entry.js +5 -0
- package/dist/webcomponents/p-130b6e06.entry.js +5 -0
- package/dist/webcomponents/p-144f8c8d.entry.js +5 -0
- package/dist/webcomponents/p-14fe22e2.entry.js +5 -0
- package/dist/webcomponents/p-1ff9210a.entry.js +5 -0
- package/dist/webcomponents/p-2605cdc3.entry.js +5 -0
- package/dist/webcomponents/p-27afaec9.entry.js +5 -0
- package/dist/webcomponents/p-2a50e42d.entry.js +5 -0
- package/dist/webcomponents/p-327f034f.entry.js +5 -0
- package/dist/webcomponents/p-342650b8.entry.js +5 -0
- package/dist/webcomponents/p-38f6a78b.entry.js +5 -0
- package/dist/webcomponents/p-3920fe3a.entry.js +5 -0
- package/dist/webcomponents/p-3ae97345.entry.js +5 -0
- package/dist/webcomponents/p-3cce767c.entry.js +5 -0
- package/dist/webcomponents/p-3df6c5d2.entry.js +5 -0
- package/dist/webcomponents/p-3e287899.entry.js +5 -0
- package/dist/webcomponents/p-3e5580ba.entry.js +5 -0
- package/dist/webcomponents/p-403637dd.entry.js +5 -0
- package/dist/webcomponents/p-435c8ef2.entry.js +5 -0
- package/dist/webcomponents/p-59da5b55.entry.js +5 -0
- package/dist/webcomponents/p-5dd4314c.entry.js +5 -0
- package/dist/webcomponents/p-646af6a5.entry.js +5 -0
- package/dist/webcomponents/p-670e8fec.entry.js +5 -0
- package/dist/webcomponents/p-68046544.entry.js +5 -0
- package/dist/webcomponents/p-68ec76b8.entry.js +5 -0
- package/dist/webcomponents/p-6c0ea20c.entry.js +5 -0
- package/dist/webcomponents/p-6c2fe5e4.entry.js +5 -0
- package/dist/webcomponents/p-707df9b9.entry.js +5 -0
- package/dist/webcomponents/p-72b839fe.entry.js +5 -0
- package/dist/webcomponents/p-73dcc05b.entry.js +5 -0
- package/dist/webcomponents/p-7acf20d3.entry.js +5 -0
- package/dist/webcomponents/p-7b01bddb.entry.js +5 -0
- package/dist/webcomponents/p-7cd38850.entry.js +5 -0
- package/dist/webcomponents/p-82454383.entry.js +5 -0
- package/dist/webcomponents/p-91e959a8.entry.js +5 -0
- package/dist/webcomponents/p-964c01e6.entry.js +5 -0
- package/dist/webcomponents/p-9858e42a.entry.js +5 -0
- package/dist/webcomponents/p-9c4200b0.entry.js +5 -0
- package/dist/webcomponents/p-9d9c87b1.entry.js +5 -0
- package/dist/webcomponents/p-B0PbhaxL.js +5 -0
- package/dist/webcomponents/p-BEJGB0Nd.js +5 -0
- package/dist/{components/p-Dmfk7eEe.js → webcomponents/p-BJZC_NuV.js} +1 -1
- package/dist/webcomponents/p-BJtdabsr.js +5 -0
- package/dist/webcomponents/p-BeJxz5TQ.js +5 -0
- package/dist/webcomponents/p-BlGV-x0w.js +5 -0
- package/dist/webcomponents/{p-Bfm58jO6.js → p-BtRPYRvA.js} +1 -1
- package/dist/webcomponents/p-CDtFCbKp.js +5 -0
- package/dist/webcomponents/p-CNwZRgyL.js +5 -0
- package/dist/webcomponents/{p-DFN_so7I.js → p-CfuJQ1DY.js} +1 -1
- package/dist/webcomponents/p-D9Zo6FlV.js +5 -0
- package/dist/webcomponents/{p-BhMVJQ4-.js → p-DV-iW9Aj.js} +1 -1
- package/dist/webcomponents/p-DWhzxlCx.js +5 -0
- package/dist/webcomponents/p-Dcn7tRST.js +7 -0
- package/dist/webcomponents/p-EbtQZm5s.js +5 -0
- package/dist/webcomponents/p-a0931550.entry.js +5 -0
- package/dist/webcomponents/p-a212fd85.entry.js +5 -0
- package/dist/webcomponents/p-a2e75143.entry.js +5 -0
- package/dist/webcomponents/p-a3bb98c9.entry.js +5 -0
- package/dist/webcomponents/p-a8b5dba0.entry.js +5 -0
- package/dist/webcomponents/p-aa909443.entry.js +5 -0
- package/dist/webcomponents/p-abaf2365.entry.js +5 -0
- package/dist/webcomponents/p-aeb16645.entry.js +5 -0
- package/dist/webcomponents/p-b287c384.entry.js +5 -0
- package/dist/webcomponents/p-b506b0a1.entry.js +5 -0
- package/dist/webcomponents/p-b520c08c.entry.js +5 -0
- package/dist/webcomponents/p-b94c3f84.entry.js +5 -0
- package/dist/webcomponents/p-bda62f90.entry.js +5 -0
- package/dist/webcomponents/p-c201ae16.entry.js +5 -0
- package/dist/webcomponents/p-c7e899a1.entry.js +5 -0
- package/dist/webcomponents/p-c8b7bbab.entry.js +5 -0
- package/dist/webcomponents/p-cbf3e251.entry.js +5 -0
- package/dist/webcomponents/{p-7f7506f0.entry.js → p-cff24492.entry.js} +1 -1
- package/dist/webcomponents/p-d35cf5b4.entry.js +5 -0
- package/dist/webcomponents/p-d45ffe9c.entry.js +5 -0
- package/dist/webcomponents/p-d719a4af.entry.js +5 -0
- package/dist/webcomponents/p-d826c052.entry.js +5 -0
- package/dist/webcomponents/p-da21a60d.entry.js +5 -0
- package/dist/webcomponents/p-de0c7f26.entry.js +5 -0
- package/dist/webcomponents/p-e20188c0.entry.js +5 -0
- package/dist/webcomponents/p-e27882e1.entry.js +5 -0
- package/dist/webcomponents/p-e3de5bb3.entry.js +5 -0
- package/dist/webcomponents/p-e624ff04.entry.js +5 -0
- package/dist/webcomponents/p-ed5af0e4.entry.js +5 -0
- package/dist/webcomponents/p-edc6da0e.entry.js +5 -0
- package/dist/webcomponents/p-f24fcf3d.entry.js +5 -0
- package/dist/webcomponents/p-f52ef0dc.entry.js +5 -0
- package/dist/webcomponents/{p-12286e73.entry.js → p-f558d7b9.entry.js} +1 -1
- package/dist/webcomponents/p-fcab1428.entry.js +5 -0
- package/dist/webcomponents/p-fe1729a7.entry.js +5 -0
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +18 -3
- package/dist/cjs/clamp-Co_hWptd.js +0 -25
- package/dist/cjs/id-CjRFMzf6.js +0 -20
- package/dist/cjs/props-CScmBvKd.js +0 -24
- package/dist/collection/pages/components/cookiebar/index.js +0 -26
- package/dist/collection/pages/components/link/index.js +0 -29
- package/dist/collection/pages/components/pagination/index.js +0 -12
- package/dist/collection/pages/components/slider/index.js +0 -18
- package/dist/components/p-34Jfn-U-.js +0 -5
- package/dist/components/p-6OdfnwnK.js +0 -5
- package/dist/components/p-B7Amgxkp.js +0 -5
- package/dist/components/p-BKuMQJrQ.js +0 -5
- package/dist/components/p-BPJpHGOW.js +0 -5
- package/dist/components/p-Bb-nLtTG.js +0 -5
- package/dist/components/p-BeE7R9nu.js +0 -5
- package/dist/components/p-BkS6ujyf.js +0 -5
- package/dist/components/p-Bo0QYHJO.js +0 -5
- package/dist/components/p-C2i2c_io.js +0 -5
- package/dist/components/p-C7v0lVlX.js +0 -5
- package/dist/components/p-CMBsvswx.js +0 -5
- package/dist/components/p-CRrimdz6.js +0 -5
- package/dist/components/p-CWORw84-.js +0 -5
- package/dist/components/p-CvUMXJCl.js +0 -5
- package/dist/components/p-D6zroLx5.js +0 -5
- package/dist/components/p-DBP6K_aq.js +0 -5
- package/dist/components/p-DCrVo-8T.js +0 -5
- package/dist/components/p-DFUKDNck.js +0 -5
- package/dist/components/p-DHicj0By.js +0 -5
- package/dist/components/p-DIK54tTj.js +0 -5
- package/dist/components/p-DQRSHR-D.js +0 -5
- package/dist/components/p-DRVMm1Py.js +0 -5
- package/dist/components/p-DWPmUV72.js +0 -5
- package/dist/components/p-DXjQyH6s.js +0 -5
- package/dist/components/p-DmCxdB9P.js +0 -5
- package/dist/components/p-Dp0xy_3n.js +0 -5
- package/dist/components/p-DxZJrIyL.js +0 -5
- package/dist/components/p-JAkkThgf.js +0 -5
- package/dist/components/p-Ud-WB0hx.js +0 -5
- package/dist/components/p-fpMNttbg.js +0 -5
- package/dist/components/p-gvnfuTjd.js +0 -5
- package/dist/components/p-qYONSNcf.js +0 -5
- package/dist/components/p-qhhHGJY1.js +0 -5
- package/dist/components/p-ttI0nvv_.js +0 -5
- package/dist/components/p-ukNmfGNP.js +0 -5
- package/dist/components/p-xa8e1kSW.js +0 -5
- package/dist/esm/clamp-gvnfuTjd.js +0 -23
- package/dist/esm/id-BkS6ujyf.js +0 -18
- package/dist/esm/props-DRVMm1Py.js +0 -22
- package/dist/webcomponents/p-0196804a.entry.js +0 -5
- package/dist/webcomponents/p-0410186a.entry.js +0 -5
- package/dist/webcomponents/p-0415ef22.entry.js +0 -5
- package/dist/webcomponents/p-0777c7b1.entry.js +0 -5
- package/dist/webcomponents/p-0caa4d12.entry.js +0 -5
- package/dist/webcomponents/p-0d4f718d.entry.js +0 -5
- package/dist/webcomponents/p-0e84c9e8.entry.js +0 -5
- package/dist/webcomponents/p-147ac8d3.entry.js +0 -5
- package/dist/webcomponents/p-1580beee.entry.js +0 -5
- package/dist/webcomponents/p-18ee6175.entry.js +0 -5
- package/dist/webcomponents/p-1bca4499.entry.js +0 -5
- package/dist/webcomponents/p-1c303a4e.entry.js +0 -5
- package/dist/webcomponents/p-1d6b0b6f.entry.js +0 -5
- package/dist/webcomponents/p-1d8cb8fd.entry.js +0 -5
- package/dist/webcomponents/p-224daaac.entry.js +0 -5
- package/dist/webcomponents/p-28426d2a.entry.js +0 -5
- package/dist/webcomponents/p-2abd2da0.entry.js +0 -5
- package/dist/webcomponents/p-2fdc51ae.entry.js +0 -5
- package/dist/webcomponents/p-30c428b6.entry.js +0 -5
- package/dist/webcomponents/p-36bbea4e.entry.js +0 -5
- package/dist/webcomponents/p-3907ebfa.entry.js +0 -5
- package/dist/webcomponents/p-39a16f9d.entry.js +0 -5
- package/dist/webcomponents/p-3ebbd2f5.entry.js +0 -5
- package/dist/webcomponents/p-3ef7eac8.entry.js +0 -5
- package/dist/webcomponents/p-45356e9a.entry.js +0 -5
- package/dist/webcomponents/p-46513db4.entry.js +0 -5
- package/dist/webcomponents/p-4c13221a.entry.js +0 -5
- package/dist/webcomponents/p-51ce2c31.entry.js +0 -5
- package/dist/webcomponents/p-52df61cb.entry.js +0 -5
- package/dist/webcomponents/p-569134cf.entry.js +0 -5
- package/dist/webcomponents/p-5ce7db4a.entry.js +0 -5
- package/dist/webcomponents/p-5f373708.entry.js +0 -5
- package/dist/webcomponents/p-5f6afb79.entry.js +0 -5
- package/dist/webcomponents/p-5fc7ba4c.entry.js +0 -5
- package/dist/webcomponents/p-66006312.entry.js +0 -5
- package/dist/webcomponents/p-66b13fd9.entry.js +0 -5
- package/dist/webcomponents/p-6OdfnwnK.js +0 -5
- package/dist/webcomponents/p-750799b7.entry.js +0 -5
- package/dist/webcomponents/p-756ff2ad.entry.js +0 -5
- package/dist/webcomponents/p-765bfe27.entry.js +0 -5
- package/dist/webcomponents/p-7ab96c11.entry.js +0 -5
- package/dist/webcomponents/p-7c2ff8b4.entry.js +0 -5
- package/dist/webcomponents/p-7fb03a49.entry.js +0 -5
- package/dist/webcomponents/p-82200563.entry.js +0 -5
- package/dist/webcomponents/p-83ff4579.entry.js +0 -5
- package/dist/webcomponents/p-85f8063b.entry.js +0 -5
- package/dist/webcomponents/p-8b558233.entry.js +0 -5
- package/dist/webcomponents/p-8e6c2767.entry.js +0 -5
- package/dist/webcomponents/p-8e819355.entry.js +0 -5
- package/dist/webcomponents/p-92a9b9c4.entry.js +0 -5
- package/dist/webcomponents/p-966ad32f.entry.js +0 -5
- package/dist/webcomponents/p-9679d230.entry.js +0 -5
- package/dist/webcomponents/p-96dd663b.entry.js +0 -5
- package/dist/webcomponents/p-98843fa3.entry.js +0 -5
- package/dist/webcomponents/p-9a375eff.entry.js +0 -5
- package/dist/webcomponents/p-9b358cff.entry.js +0 -5
- package/dist/webcomponents/p-9f7558c7.entry.js +0 -5
- package/dist/webcomponents/p-BkS6ujyf.js +0 -5
- package/dist/webcomponents/p-C2RBydfd.js +0 -6
- package/dist/webcomponents/p-CO5cOQQU.js +0 -5
- package/dist/webcomponents/p-DIK54tTj.js +0 -5
- package/dist/webcomponents/p-DRVMm1Py.js +0 -5
- package/dist/webcomponents/p-DxZJrIyL.js +0 -5
- package/dist/webcomponents/p-a382e115.entry.js +0 -5
- package/dist/webcomponents/p-a4ae72e3.entry.js +0 -5
- package/dist/webcomponents/p-a994c190.entry.js +0 -5
- package/dist/webcomponents/p-a9ff7c25.entry.js +0 -5
- package/dist/webcomponents/p-c0b0f531.entry.js +0 -5
- package/dist/webcomponents/p-c211af17.entry.js +0 -5
- package/dist/webcomponents/p-c492d926.entry.js +0 -5
- package/dist/webcomponents/p-c4cfe599.entry.js +0 -5
- package/dist/webcomponents/p-c846e784.entry.js +0 -5
- package/dist/webcomponents/p-c949d993.entry.js +0 -5
- package/dist/webcomponents/p-d1e899cd.entry.js +0 -5
- package/dist/webcomponents/p-d38d82cc.entry.js +0 -5
- package/dist/webcomponents/p-e0ce536a.entry.js +0 -5
- package/dist/webcomponents/p-e1331288.entry.js +0 -5
- package/dist/webcomponents/p-e360a463.entry.js +0 -5
- package/dist/webcomponents/p-f078f972.entry.js +0 -5
- package/dist/webcomponents/p-f26038e2.entry.js +0 -5
- package/dist/webcomponents/p-f303f6b3.entry.js +0 -5
- package/dist/webcomponents/p-f6318e94.entry.js +0 -5
- package/dist/webcomponents/p-f85ee01c.entry.js +0 -5
- package/dist/webcomponents/p-fcd4ae48.entry.js +0 -5
- package/dist/webcomponents/p-ffe0241e.entry.js +0 -5
- package/dist/webcomponents/p-gvnfuTjd.js +0 -5
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const PRESERVE_WHITESPACE = new Set(['pre', 'script', 'style', 'textarea']);
|
|
3
|
+
const DIFF_CONTEXT = 3;
|
|
4
|
+
|
|
5
|
+
const escapeAttribute = (value) => String(value).replace(/&/g, '&').replace(/"/g, '"');
|
|
6
|
+
|
|
7
|
+
const normalizeText = (value) => value.replace(/\s+/g, ' ').trim();
|
|
8
|
+
|
|
9
|
+
const appendTextNode = (node, lines, indent, preserveWhitespace) => {
|
|
10
|
+
if (preserveWhitespace) {
|
|
11
|
+
const rawLines = node.nodeValue?.replace(/\r\n?/g, '\n').split('\n') || [];
|
|
12
|
+
rawLines.forEach((line) => {
|
|
13
|
+
lines.push(`${' '.repeat(indent)}${line}`.trimEnd());
|
|
14
|
+
});
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const value = normalizeText(node.nodeValue || '');
|
|
18
|
+
if (value) lines.push(`${' '.repeat(indent)}${value}`);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const appendChildNode = (child, lines, indent, preserveWhitespace) => {
|
|
22
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
23
|
+
appendTextNode(child, lines, indent, preserveWhitespace);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (child.nodeType === Node.COMMENT_NODE) {
|
|
27
|
+
const value = child.nodeValue?.trim();
|
|
28
|
+
if (value) lines.push(`${' '.repeat(indent)}<!--${value}-->`);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (child.nodeType === Node.ELEMENT_NODE) serializeElement(child, lines, indent, preserveWhitespace);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const appendRootNode = (child, lines) => {
|
|
35
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
36
|
+
const value = normalizeText(child.nodeValue || '');
|
|
37
|
+
if (value) lines.push(value);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (child.nodeType === Node.COMMENT_NODE) {
|
|
41
|
+
const value = child.nodeValue?.trim();
|
|
42
|
+
if (value) lines.push(`<!--${value}-->`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (child.nodeType === Node.ELEMENT_NODE) serializeElement(child, lines);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const serializeElement = (element, lines, indent = 0, preserveWhitespace = false) => {
|
|
49
|
+
const padding = ' '.repeat(indent);
|
|
50
|
+
const tagName = element.localName;
|
|
51
|
+
const attributes = Array.from(element.attributes)
|
|
52
|
+
.sort((left, right) => left.name.localeCompare(right.name))
|
|
53
|
+
.map((attribute) => `${' '.repeat(indent + 2)}${attribute.name}="${escapeAttribute(attribute.value)}"`);
|
|
54
|
+
|
|
55
|
+
if (attributes.length === 0) lines.push(`${padding}<${tagName}>`);
|
|
56
|
+
else lines.push(`${padding}<${tagName}`, ...attributes, `${padding}>`);
|
|
57
|
+
|
|
58
|
+
const childPreservesWhitespace = preserveWhitespace || PRESERVE_WHITESPACE.has(tagName);
|
|
59
|
+
for (const child of element.childNodes) appendChildNode(child, lines, indent + 2, childPreservesWhitespace);
|
|
60
|
+
|
|
61
|
+
lines.push(`${padding}</${tagName}>`);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const canonicalizeHtml = (source) => {
|
|
65
|
+
const doc = new DOMParser().parseFromString(`<body>${String(source || '')}</body>`, 'text/html');
|
|
66
|
+
const lines = [];
|
|
67
|
+
|
|
68
|
+
for (const child of doc.body.childNodes) appendRootNode(child, lines);
|
|
69
|
+
|
|
70
|
+
return lines;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const buildLcsTable = (original, current) => {
|
|
74
|
+
const rows = Array.from({ length: original.length + 1 }, () => new Uint32Array(current.length + 1));
|
|
75
|
+
for (let originalIndex = original.length - 1; originalIndex >= 0; originalIndex -= 1) {
|
|
76
|
+
for (let currentIndex = current.length - 1; currentIndex >= 0; currentIndex -= 1) {
|
|
77
|
+
rows[originalIndex][currentIndex] =
|
|
78
|
+
original[originalIndex] === current[currentIndex]
|
|
79
|
+
? rows[originalIndex + 1][currentIndex + 1] + 1
|
|
80
|
+
: Math.max(rows[originalIndex + 1][currentIndex], rows[originalIndex][currentIndex + 1]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return rows;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const backtrackDiff = (original, current, rows) => {
|
|
88
|
+
const operations = [];
|
|
89
|
+
let originalIndex = 0;
|
|
90
|
+
let currentIndex = 0;
|
|
91
|
+
while (originalIndex < original.length || currentIndex < current.length) {
|
|
92
|
+
if (
|
|
93
|
+
originalIndex < original.length &&
|
|
94
|
+
currentIndex < current.length &&
|
|
95
|
+
original[originalIndex] === current[currentIndex]
|
|
96
|
+
) {
|
|
97
|
+
operations.push({ type: 'equal', value: original[originalIndex] });
|
|
98
|
+
originalIndex += 1;
|
|
99
|
+
currentIndex += 1;
|
|
100
|
+
} else if (
|
|
101
|
+
currentIndex < current.length &&
|
|
102
|
+
(originalIndex === original.length ||
|
|
103
|
+
rows[originalIndex][currentIndex + 1] >= rows[originalIndex + 1][currentIndex])
|
|
104
|
+
) {
|
|
105
|
+
operations.push({ type: 'insert', value: current[currentIndex] });
|
|
106
|
+
currentIndex += 1;
|
|
107
|
+
} else {
|
|
108
|
+
operations.push({ type: 'delete', value: original[originalIndex] });
|
|
109
|
+
originalIndex += 1;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return operations;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const buildDiffOperations = (original, current) => backtrackDiff(original, current, buildLcsTable(original, current));
|
|
116
|
+
|
|
117
|
+
const addLineNumbers = (operations) => {
|
|
118
|
+
let originalLine = 1;
|
|
119
|
+
let currentLine = 1;
|
|
120
|
+
return operations.map((operation) => {
|
|
121
|
+
const result = { ...operation, originalLine, currentLine };
|
|
122
|
+
if (operation.type !== 'insert') originalLine += 1;
|
|
123
|
+
if (operation.type !== 'delete') currentLine += 1;
|
|
124
|
+
return result;
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const getHunks = (operations, context) => {
|
|
129
|
+
const changedIndexes = operations
|
|
130
|
+
.map((operation, index) => (operation.type === 'equal' ? -1 : index))
|
|
131
|
+
.filter((index) => index >= 0);
|
|
132
|
+
if (changedIndexes.length === 0) return [];
|
|
133
|
+
|
|
134
|
+
const ranges = [];
|
|
135
|
+
let rangeStart = Math.max(0, changedIndexes[0] - context);
|
|
136
|
+
let rangeEnd = Math.min(operations.length - 1, changedIndexes[0] + context);
|
|
137
|
+
changedIndexes.slice(1).forEach((index) => {
|
|
138
|
+
if (index - rangeEnd > context * 2 + 1) {
|
|
139
|
+
ranges.push([rangeStart, rangeEnd]);
|
|
140
|
+
rangeStart = Math.max(0, index - context);
|
|
141
|
+
}
|
|
142
|
+
rangeEnd = Math.min(operations.length - 1, index + context);
|
|
143
|
+
});
|
|
144
|
+
ranges.push([rangeStart, rangeEnd]);
|
|
145
|
+
return ranges;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const formatRange = (start, count) => `${start},${count}`;
|
|
149
|
+
|
|
150
|
+
const createUnifiedDiff = (originalSource, currentSource, context = DIFF_CONTEXT) => {
|
|
151
|
+
const original = canonicalizeHtml(originalSource);
|
|
152
|
+
const current = canonicalizeHtml(currentSource);
|
|
153
|
+
if (original.join('\n') === current.join('\n')) return { changed: false, lines: [], original, current };
|
|
154
|
+
|
|
155
|
+
const operations = addLineNumbers(buildDiffOperations(original, current));
|
|
156
|
+
const output = ['--- Original', '+++ Atual'];
|
|
157
|
+
getHunks(operations, context).forEach(([start, end]) => {
|
|
158
|
+
const hunk = operations.slice(start, end + 1);
|
|
159
|
+
const first = hunk[0];
|
|
160
|
+
const oldCount = hunk.filter((operation) => operation.type !== 'insert').length;
|
|
161
|
+
const newCount = hunk.filter((operation) => operation.type !== 'delete').length;
|
|
162
|
+
output.push(`@@ -${formatRange(first.originalLine, oldCount)} +${formatRange(first.currentLine, newCount)} @@`);
|
|
163
|
+
hunk.forEach((operation) => {
|
|
164
|
+
const prefix = operation.type === 'insert' ? '+' : operation.type === 'delete' ? '-' : ' ';
|
|
165
|
+
output.push(`${prefix}${operation.value || ' '}`);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
return { changed: true, lines: output, original, current };
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
window.WBCPlaygroundCore = Object.freeze({ canonicalizeHtml, createUnifiedDiff });
|
|
173
|
+
})();
|
|
@@ -32,6 +32,8 @@ export const getColorCSSVariable = (colorName) => {
|
|
|
32
32
|
* @returns Valor computado sem espaços extras.
|
|
33
33
|
*/
|
|
34
34
|
export const getCSSVariableValue = (variable, component) => {
|
|
35
|
+
if (!isClient() || !component)
|
|
36
|
+
return '';
|
|
35
37
|
const styles = getComputedStyle(component);
|
|
36
38
|
return String(styles.getPropertyValue(`--${variable}`)).trim();
|
|
37
39
|
};
|
|
@@ -47,7 +47,11 @@ function isCalendarDateValid(year, month, day) {
|
|
|
47
47
|
* @param locale Código BCP 47 da localidade (ex.: `'pt-BR'`, `'en-US'`).
|
|
48
48
|
* @returns Mapa de nome de mês (lower) para índice 1–12.
|
|
49
49
|
*/
|
|
50
|
+
const monthMapCache = new Map();
|
|
50
51
|
function getMonthNameMap(locale) {
|
|
52
|
+
const cached = monthMapCache.get(locale);
|
|
53
|
+
if (cached)
|
|
54
|
+
return cached;
|
|
51
55
|
const map = new Map();
|
|
52
56
|
const date = new Date(2000, 0, 15);
|
|
53
57
|
for (let i = 0; i < 12; i++) {
|
|
@@ -61,17 +65,17 @@ function getMonthNameMap(locale) {
|
|
|
61
65
|
// Também registra os nomes em inglês quando a localidade não é `en-*`,
|
|
62
66
|
// pois muitas APIs e textos de interface ainda usam inglês.
|
|
63
67
|
if (!locale.startsWith('en')) {
|
|
64
|
-
const enDate = new Date(2000, 0, 15);
|
|
65
68
|
for (let i = 0; i < 12; i++) {
|
|
66
|
-
|
|
67
|
-
const fullEn = new Intl.DateTimeFormat('en', { month: 'long' }).format(
|
|
68
|
-
const shortEn = new Intl.DateTimeFormat('en', { month: 'short' }).format(
|
|
69
|
+
date.setMonth(i);
|
|
70
|
+
const fullEn = new Intl.DateTimeFormat('en', { month: 'long' }).format(date).toLowerCase();
|
|
71
|
+
const shortEn = new Intl.DateTimeFormat('en', { month: 'short' }).format(date).toLowerCase();
|
|
69
72
|
if (!map.has(fullEn))
|
|
70
73
|
map.set(fullEn, i + 1);
|
|
71
74
|
if (!map.has(shortEn))
|
|
72
75
|
map.set(shortEn, i + 1);
|
|
73
76
|
}
|
|
74
77
|
}
|
|
78
|
+
monthMapCache.set(locale, map);
|
|
75
79
|
return map;
|
|
76
80
|
}
|
|
77
81
|
/**
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Inclui classe e tipos para facilitar tooltips, popovers e overlays usando a biblioteca Floating UI.
|
|
9
9
|
*/
|
|
10
|
-
import { arrow, autoUpdate, computePosition, flip, hide, offset, shift, } from "@floating-ui/dom";
|
|
10
|
+
import { arrow, autoUpdate, computePosition, flip, hide, offset, shift, size, } from "@floating-ui/dom";
|
|
11
11
|
/**
|
|
12
12
|
* FloatingUIManager é uma classe utilitária que gerencia o posicionamento de elementos flutuantes
|
|
13
13
|
* como tooltips ou popovers em relação a um elemento de disparo (trigger).
|
|
@@ -22,6 +22,7 @@ export class FloatingUIManager {
|
|
|
22
22
|
this.strategy = options.strategy ?? 'absolute';
|
|
23
23
|
this.boundary = options.boundary ?? 'clippingAncestors';
|
|
24
24
|
this.offsetDistance = options.offset ?? 8;
|
|
25
|
+
this.matchReferenceWidth = options.matchReferenceWidth ?? false;
|
|
25
26
|
this.onUpdate = options.onUpdate;
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
@@ -29,6 +30,9 @@ export class FloatingUIManager {
|
|
|
29
30
|
*/
|
|
30
31
|
start() {
|
|
31
32
|
this.stop();
|
|
33
|
+
if (this.matchReferenceWidth) {
|
|
34
|
+
this.previousInlineWidth = this.contentElement.style.width;
|
|
35
|
+
}
|
|
32
36
|
this.contentElement.style.position = this.strategy;
|
|
33
37
|
this.cleanupAutoUpdate = autoUpdate(this.triggerElement, this.contentElement, () => this.updatePosition());
|
|
34
38
|
}
|
|
@@ -39,6 +43,15 @@ export class FloatingUIManager {
|
|
|
39
43
|
const cleanup = this.cleanupAutoUpdate;
|
|
40
44
|
this.cleanupAutoUpdate = undefined;
|
|
41
45
|
cleanup?.();
|
|
46
|
+
if (this.previousInlineWidth !== undefined) {
|
|
47
|
+
if (this.previousInlineWidth) {
|
|
48
|
+
this.contentElement.style.width = this.previousInlineWidth;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.contentElement.style.removeProperty('width');
|
|
52
|
+
}
|
|
53
|
+
this.previousInlineWidth = undefined;
|
|
54
|
+
}
|
|
42
55
|
}
|
|
43
56
|
/**
|
|
44
57
|
* Atualiza a posição do elemento flutuante com base no elemento disparador e no elemento de conteúdo.
|
|
@@ -75,6 +88,16 @@ export class FloatingUIManager {
|
|
|
75
88
|
if (this.arrowElement != null) {
|
|
76
89
|
middleware.push(arrow({ element: this.arrowElement }));
|
|
77
90
|
}
|
|
91
|
+
if (this.matchReferenceWidth) {
|
|
92
|
+
middleware.push(size({
|
|
93
|
+
apply: ({ elements, rects }) => {
|
|
94
|
+
if (this.previousInlineWidth === undefined) {
|
|
95
|
+
this.previousInlineWidth = elements.floating.style.width;
|
|
96
|
+
}
|
|
97
|
+
elements.floating.style.width = `${rects.reference.width}px`;
|
|
98
|
+
},
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
78
101
|
return middleware;
|
|
79
102
|
}
|
|
80
103
|
/**
|
|
@@ -22,3 +22,34 @@ export const getDeepActiveElement = (root = document) => {
|
|
|
22
22
|
const shadowRoot = activeElement && 'shadowRoot' in activeElement ? activeElement.shadowRoot : null;
|
|
23
23
|
return shadowRoot?.activeElement ? getDeepActiveElement(shadowRoot) : activeElement;
|
|
24
24
|
};
|
|
25
|
+
/** Seletores CSS canônicos para elementos nativos e Web Components focáveis no GovBR-DS. */
|
|
26
|
+
export const FOCUSABLE_SELECTORS = [
|
|
27
|
+
'a[href]:not([disabled])',
|
|
28
|
+
'button:not([disabled])',
|
|
29
|
+
'br-button:not([disabled]):not([tabindex="-1"])',
|
|
30
|
+
'input:not([disabled])',
|
|
31
|
+
'br-input:not([disabled]):not([tabindex="-1"])',
|
|
32
|
+
'select:not([disabled])',
|
|
33
|
+
'br-select:not([disabled]):not([tabindex="-1"])',
|
|
34
|
+
'textarea:not([disabled])',
|
|
35
|
+
'br-textarea:not([disabled]):not([tabindex="-1"])',
|
|
36
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
37
|
+
].join(',');
|
|
38
|
+
/**
|
|
39
|
+
* Filtra elementos que são visíveis no DOM (com dimensões maiores que zero e visibilidade CSS).
|
|
40
|
+
*/
|
|
41
|
+
export const filterVisibleElements = (elements) => {
|
|
42
|
+
return elements.filter((el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden');
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Verifica se a navegação por Tab deve ser mantida dentro dos limites (trap) de uma superfície modal.
|
|
46
|
+
*/
|
|
47
|
+
export const shouldTrapFocus = (isTabForward, firstElement, lastElement, activeElement) => {
|
|
48
|
+
return (isTabForward && activeElement === lastElement) || (!isTabForward && activeElement === firstElement);
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Move o foco em ciclo entre o primeiro e último elemento focável.
|
|
52
|
+
*/
|
|
53
|
+
export const wrapFocus = (isTabForward, firstElement, lastElement) => {
|
|
54
|
+
(isTabForward ? firstElement : lastElement).focus();
|
|
55
|
+
};
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* @param n Quantidade de itens aleatórios desejada.
|
|
12
12
|
* @returns Novo array com os itens sorteados.
|
|
13
13
|
* @throws {RangeError} Quando `n` é maior que o tamanho do array.
|
|
14
|
+
* @throws {Error} Quando o runtime não fornece Web Crypto.
|
|
14
15
|
*/
|
|
15
16
|
export const getRandomFromArray = (arr, n) => {
|
|
16
17
|
let length = arr.length;
|
|
@@ -19,9 +20,23 @@ export const getRandomFromArray = (arr, n) => {
|
|
|
19
20
|
if (n > length)
|
|
20
21
|
throw new RangeError('getRandom: more elements taken than available');
|
|
21
22
|
while (n--) {
|
|
22
|
-
const x =
|
|
23
|
+
const x = randomIndex(length);
|
|
23
24
|
result[n] = arr[x in taken ? taken[x] : x];
|
|
24
25
|
taken[x] = --length in taken ? taken[length] : length;
|
|
25
26
|
}
|
|
26
27
|
return result;
|
|
27
28
|
};
|
|
29
|
+
function randomIndex(maxExclusive) {
|
|
30
|
+
const cryptoApi = globalThis.crypto;
|
|
31
|
+
if (!cryptoApi?.getRandomValues) {
|
|
32
|
+
throw new Error('A API Web Crypto é necessária para sortear itens.');
|
|
33
|
+
}
|
|
34
|
+
// Rejeita a faixa excedente para que o módulo não introduza viés estatístico.
|
|
35
|
+
const range = 2 ** 32;
|
|
36
|
+
const limit = range - (range % maxExclusive);
|
|
37
|
+
const value = new Uint32Array(1);
|
|
38
|
+
do {
|
|
39
|
+
cryptoApi.getRandomValues(value);
|
|
40
|
+
} while (value[0] >= limit);
|
|
41
|
+
return value[0] % maxExclusive;
|
|
42
|
+
}
|
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|
* Utilitários Helpers com funções auxiliares para geração de IDs e formatação de bytes.
|
|
7
7
|
* Mantemos um `default` export com a API compatível para não quebrar importações existentes.
|
|
8
8
|
*/
|
|
9
|
+
import { formatBytes as formatBytesCanonical } from "./format-bytes";
|
|
10
|
+
import { generateUniqueId as createUniqueId } from "./id";
|
|
9
11
|
export function generateUniqueId(prefix) {
|
|
10
|
-
|
|
11
|
-
const rand = Math.random().toString(36).substring(2, 10);
|
|
12
|
-
const id = (time + rand).substring(0, 16);
|
|
13
|
-
return prefix ? `${prefix}-${id}` : id;
|
|
12
|
+
return createUniqueId(prefix);
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Formata um valor em bytes para uma representação humana (KB, MB, GB...).
|
|
@@ -19,13 +18,7 @@ export function generateUniqueId(prefix) {
|
|
|
19
18
|
* @returns Valor formatado com unidade.
|
|
20
19
|
*/
|
|
21
20
|
export function formatBytes(bytes, decimals = 2) {
|
|
22
|
-
|
|
23
|
-
return '0 Bytes';
|
|
24
|
-
const k = 1024;
|
|
25
|
-
const dm = decimals < 0 ? 0 : decimals;
|
|
26
|
-
const units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
27
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
28
|
-
return `${Number.parseFloat((bytes / k ** i).toFixed(dm))} ${units[i]}`;
|
|
21
|
+
return formatBytesCanonical(bytes, decimals);
|
|
29
22
|
}
|
|
30
23
|
const Helpers = { generateUniqueId, formatBytes };
|
|
31
24
|
export default Helpers;
|
|
@@ -5,12 +5,28 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Utilitário para geração de IDs únicos para Web Components.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @returns String de ID único compatível com seletores CSS (ex.: "b0k9f2z").
|
|
8
|
+
* O Web Crypto fornece entropia sem depender de relógio ou de estado compartilhado
|
|
9
|
+
* entre instâncias. O prefixo `b` mantém o valor compatível com seletores CSS e com
|
|
10
|
+
* os IDs gerados pelas versões anteriores da biblioteca.
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
function createRandomToken() {
|
|
13
|
+
const cryptoApi = globalThis.crypto;
|
|
14
|
+
if (!cryptoApi) {
|
|
15
|
+
throw new Error('A API Web Crypto é necessária para gerar IDs de componentes.');
|
|
16
|
+
}
|
|
17
|
+
if (cryptoApi?.randomUUID) {
|
|
18
|
+
return cryptoApi.randomUUID().replace(/-/g, '').slice(0, 16);
|
|
19
|
+
}
|
|
20
|
+
if (cryptoApi?.getRandomValues) {
|
|
21
|
+
const values = cryptoApi.getRandomValues(new Uint32Array(3));
|
|
22
|
+
return Array.from(values)
|
|
23
|
+
.map((value) => value.toString(36))
|
|
24
|
+
.join('')
|
|
25
|
+
.slice(0, 16);
|
|
26
|
+
}
|
|
27
|
+
throw new Error('A API Web Crypto não expõe randomUUID nem getRandomValues.');
|
|
28
|
+
}
|
|
29
|
+
export function generateUniqueId(prefix) {
|
|
30
|
+
const id = `b${createRandomToken()}`;
|
|
31
|
+
return prefix ? `${prefix}-${id}` : id;
|
|
16
32
|
}
|
|
@@ -24,13 +24,15 @@
|
|
|
24
24
|
* - `isClient` — Detecção de ambiente navegador
|
|
25
25
|
* - `isDefined` — Verificação de valores definidos
|
|
26
26
|
* - `isNil` — Verificação de valores nulos ou indefinidos
|
|
27
|
+
* - `motion` — Preferência de movimento e comportamento de rolagem acessível
|
|
27
28
|
* - `parts` — Exposição confiável de CSS parts em custom elements filhos
|
|
28
29
|
* - `props` — Validação de propriedades de elementos customizados
|
|
29
30
|
* - `scrollLock` — Bloqueio/desbloqueio de scroll do body
|
|
30
31
|
* - `setRafTimeout` — Agendamento eficiente via RAF + setTimeout
|
|
31
32
|
* - `slot` — Leitura de conteúdo de slots em web components
|
|
32
33
|
* - `swipe` — Detecção de gestos de swipe
|
|
33
|
-
* - `transition` — Transições de entrada e saída com classes CSS
|
|
34
|
+
* - `transition` — Transições de entrada e saída com classes CSS e fallback de movimento reduzido
|
|
35
|
+
* - `virtual-scroll` — Cálculo da janela de itens de listas virtualizadas
|
|
34
36
|
*/
|
|
35
37
|
export * from './breakpoint-observer';
|
|
36
38
|
export * from './clamp';
|
|
@@ -48,7 +50,9 @@ export * from './interfaces';
|
|
|
48
50
|
export * from './isClient';
|
|
49
51
|
export * from './isDefined';
|
|
50
52
|
export * from './isNil';
|
|
53
|
+
export * from './motion';
|
|
51
54
|
export * from './native-dialog';
|
|
55
|
+
export * from './ownership';
|
|
52
56
|
export * from './parts';
|
|
53
57
|
export * from './props';
|
|
54
58
|
export * from './raf-batcher';
|
|
@@ -58,3 +62,4 @@ export * from './slot';
|
|
|
58
62
|
export * from './ssr-date';
|
|
59
63
|
export * from './swipe';
|
|
60
64
|
export * from './transition';
|
|
65
|
+
export * from './virtual-scroll';
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Suporta Map, Set, Array, Record, null e undefined.
|
|
9
9
|
*/
|
|
10
|
-
import { isDefined } from "./isDefined";
|
|
11
10
|
import { isNil } from "./isNil";
|
|
12
11
|
/**
|
|
13
12
|
* Verifica se uma coleção está vazia.
|
|
@@ -22,9 +21,12 @@ export const isEmpty = (value) => {
|
|
|
22
21
|
return true;
|
|
23
22
|
}
|
|
24
23
|
else if ('size' in value) {
|
|
25
|
-
return
|
|
24
|
+
return value.size === 0;
|
|
25
|
+
}
|
|
26
|
+
else if (Array.isArray(value)) {
|
|
27
|
+
return value.length === 0;
|
|
26
28
|
}
|
|
27
29
|
else {
|
|
28
|
-
return
|
|
30
|
+
return Object.keys(value).length === 0;
|
|
29
31
|
}
|
|
30
32
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Construído por SERPRO
|
|
3
|
+
* © https://serpro.gov.br/ - MIT License.
|
|
4
|
+
*/
|
|
5
|
+
const REDUCED_MOTION_MEDIA_QUERY = '(prefers-reduced-motion: reduce)';
|
|
6
|
+
/**
|
|
7
|
+
* Verifica se a pessoa solicitou redução de movimento no sistema operacional ou navegador.
|
|
8
|
+
*
|
|
9
|
+
* Em SSR ou em navegadores sem `matchMedia`, assume o estado mais seguro.
|
|
10
|
+
*
|
|
11
|
+
* @returns `true` quando o movimento deve ser reduzido.
|
|
12
|
+
*/
|
|
13
|
+
export const prefersReducedMotion = () => {
|
|
14
|
+
if (typeof window === 'undefined' || typeof window.matchMedia !== 'function')
|
|
15
|
+
return true;
|
|
16
|
+
if (typeof document !== 'undefined' && document.documentElement.dataset.wbcReducedMotion === 'true')
|
|
17
|
+
return true;
|
|
18
|
+
return window.matchMedia(REDUCED_MOTION_MEDIA_QUERY).matches;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Define o comportamento de rolagem de acordo com a preferência de movimento.
|
|
22
|
+
*
|
|
23
|
+
* @returns `auto` com movimento reduzido e `smooth` nos demais casos.
|
|
24
|
+
*/
|
|
25
|
+
export const getScrollBehavior = () => (prefersReducedMotion() ? 'auto' : 'smooth');
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Construído por SERPRO
|
|
3
|
+
* © https://serpro.gov.br/ - MIT License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Utilitários para componentes que coordenam elementos projetados.
|
|
7
|
+
*
|
|
8
|
+
* A árvore composta inclui hosts de Shadow DOM e slots, enquanto
|
|
9
|
+
* `parentElement` considera somente a árvore DOM local. A coordenação entre
|
|
10
|
+
* um componente pai e seus filhos precisa usar a primeira para não atravessar
|
|
11
|
+
* o owner errado quando há wrappers ou aliases legados.
|
|
12
|
+
*/
|
|
13
|
+
function getComposedParent(node) {
|
|
14
|
+
const assignedSlot = node.assignedSlot;
|
|
15
|
+
if (assignedSlot !== null && assignedSlot !== undefined)
|
|
16
|
+
return assignedSlot;
|
|
17
|
+
if (node.parentNode !== null)
|
|
18
|
+
return node.parentNode;
|
|
19
|
+
const root = node.getRootNode();
|
|
20
|
+
return root instanceof ShadowRoot ? root.host : null;
|
|
21
|
+
}
|
|
22
|
+
/** Retorna o owner composto mais próximo que corresponde ao seletor informado. */
|
|
23
|
+
export function findComposedOwner(node, ownerSelector) {
|
|
24
|
+
let current = node;
|
|
25
|
+
while (current !== null) {
|
|
26
|
+
if (current instanceof Element && current.matches(ownerSelector))
|
|
27
|
+
return current;
|
|
28
|
+
current = getComposedParent(current);
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Verifica se um nó é igual ou descendente de outro elemento,
|
|
34
|
+
* atravessando fronteiras de Shadow DOM aninhados.
|
|
35
|
+
*/
|
|
36
|
+
export function isComposedDescendant(parent, child) {
|
|
37
|
+
if (!child)
|
|
38
|
+
return false;
|
|
39
|
+
if (child === parent)
|
|
40
|
+
return true;
|
|
41
|
+
let node = child;
|
|
42
|
+
while (node !== null && node !== document) {
|
|
43
|
+
if (node === parent)
|
|
44
|
+
return true;
|
|
45
|
+
const root = node.getRootNode();
|
|
46
|
+
if (root instanceof ShadowRoot) {
|
|
47
|
+
node = root.host;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
node = node.parentNode;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
/** Verifica se o elemento pertence diretamente ao owner composto informado. */
|
|
56
|
+
export function isOwnedElement(element, owner, childSelector) {
|
|
57
|
+
return element.matches(childSelector) && findComposedOwner(element, owner.localName) === owner;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Coleta elementos atribuídos a um slot e seus descendentes de light DOM.
|
|
61
|
+
* O filtro de owner evita que um componente composto absorva filhos de uma
|
|
62
|
+
* instância composta aninhada.
|
|
63
|
+
*/
|
|
64
|
+
export function getOwnedAssignedElements(slot, owner, childSelector) {
|
|
65
|
+
// Achate slots de wrappers legados para preservar a projeção através de
|
|
66
|
+
// aliases; a coleta interrompe ao encontrar um owner composto aninhado.
|
|
67
|
+
const assigned = slot?.assignedElements({ flatten: true }) ?? [];
|
|
68
|
+
const roots = assigned.length > 0 ? assigned : Array.from(owner.children);
|
|
69
|
+
const candidates = [];
|
|
70
|
+
const collectCandidates = (node) => {
|
|
71
|
+
if (node.matches(childSelector))
|
|
72
|
+
candidates.push(node);
|
|
73
|
+
// Um componente composto aninhado é um novo limite de ownership. Não
|
|
74
|
+
// atravesse seus filhos de light DOM, pois eles pertencem ao grupo interno.
|
|
75
|
+
if (node !== owner && node.localName === owner.localName)
|
|
76
|
+
return;
|
|
77
|
+
for (const child of Array.from(node.children))
|
|
78
|
+
collectCandidates(child);
|
|
79
|
+
};
|
|
80
|
+
for (const root of roots)
|
|
81
|
+
collectCandidates(root);
|
|
82
|
+
return [...new Set(candidates)].filter((element) => isOwnedElement(element, owner, childSelector));
|
|
83
|
+
}
|
|
84
|
+
/** Retorna somente os filhos DOM diretos que pertencem ao owner. */
|
|
85
|
+
export function getOwnedDirectChildren(owner, childSelector) {
|
|
86
|
+
return Array.from(owner.children).filter((element) => isOwnedElement(element, owner, childSelector));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Agenda uma única reconciliação por microtask. O callback pode ser chamado
|
|
90
|
+
* várias vezes durante uma transição de estado sem repetir a varredura.
|
|
91
|
+
*/
|
|
92
|
+
export function createMicrotaskReconciler(callback) {
|
|
93
|
+
let scheduled = false;
|
|
94
|
+
let generation = 0;
|
|
95
|
+
return {
|
|
96
|
+
schedule() {
|
|
97
|
+
if (scheduled)
|
|
98
|
+
return;
|
|
99
|
+
scheduled = true;
|
|
100
|
+
const currentGeneration = ++generation;
|
|
101
|
+
queueMicrotask(() => {
|
|
102
|
+
if (currentGeneration !== generation)
|
|
103
|
+
return;
|
|
104
|
+
scheduled = false;
|
|
105
|
+
callback();
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
cancel() {
|
|
109
|
+
generation++;
|
|
110
|
+
scheduled = false;
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
@@ -2,6 +2,53 @@
|
|
|
2
2
|
* Construído por SERPRO
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
|
+
const warningStates = new WeakMap();
|
|
6
|
+
const MAX_VALUE_LENGTH = 120;
|
|
7
|
+
function formatValue(value) {
|
|
8
|
+
if (value === null)
|
|
9
|
+
return 'null';
|
|
10
|
+
if (value === undefined)
|
|
11
|
+
return 'undefined';
|
|
12
|
+
if (typeof value === 'string') {
|
|
13
|
+
const formatted = JSON.stringify(value);
|
|
14
|
+
return formatted.length > MAX_VALUE_LENGTH ? `${formatted.slice(0, MAX_VALUE_LENGTH - 4)}..."` : formatted;
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
|
|
17
|
+
return String(value);
|
|
18
|
+
}
|
|
19
|
+
if (Array.isArray(value))
|
|
20
|
+
return `[Array(${value.length})]`;
|
|
21
|
+
if (value instanceof Date)
|
|
22
|
+
return '[Date]';
|
|
23
|
+
if (typeof value === 'function')
|
|
24
|
+
return '[Function]';
|
|
25
|
+
return '[Object]';
|
|
26
|
+
}
|
|
27
|
+
function getWarningState(host) {
|
|
28
|
+
let state = warningStates.get(host);
|
|
29
|
+
if (!state) {
|
|
30
|
+
state = new Map();
|
|
31
|
+
warningStates.set(host, state);
|
|
32
|
+
}
|
|
33
|
+
return state;
|
|
34
|
+
}
|
|
35
|
+
/** Remove o estado de warning de uma prop quando ela volta a ser válida. */
|
|
36
|
+
export function clearInvalidPropWarning(host, propName) {
|
|
37
|
+
warningStates.get(host)?.delete(propName);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Emite um aviso padronizado para uma prop inválida, uma vez por valor inválido.
|
|
41
|
+
* O estado é associado à instância do componente para evitar spam de renderização.
|
|
42
|
+
*/
|
|
43
|
+
export function reportInvalidPropValue(host, propName, receivedValue, expected, resolution) {
|
|
44
|
+
const state = getWarningState(host);
|
|
45
|
+
const received = formatValue(receivedValue);
|
|
46
|
+
if (state.get(propName) === received)
|
|
47
|
+
return;
|
|
48
|
+
state.set(propName, received);
|
|
49
|
+
const componentTag = host.localName || host.tagName.toLowerCase();
|
|
50
|
+
console.warn(`[${componentTag}] Prop "${propName}" recebeu ${received}. ${expected} ${resolution}`);
|
|
51
|
+
}
|
|
5
52
|
export function warnInvalidPropValue(componentTag, propName, receivedValue, defaultValue) {
|
|
6
53
|
console.warn(`[${componentTag}]: valor invalido para "${propName}": "${String(receivedValue)}". Usando valor padrao "${defaultValue}".`);
|
|
7
54
|
}
|