@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.
- package/README.md +146 -54
- package/cem/custom-elements.json +6496 -1141
- package/cem/webcomponents.html-custom-data.json +400 -287
- 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 +77 -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 +86 -16
- package/dist/cjs/br-checkgroup.cjs.entry.js +5 -2
- package/dist/cjs/br-collapse_2.cjs.entry.js +90 -27
- 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 +116 -528
- package/dist/cjs/br-divider.cjs.entry.js +70 -17
- package/dist/cjs/br-dropdown_2.cjs.entry.js +334 -163
- 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 +96 -37
- package/dist/cjs/br-icon.cjs.entry.js +161 -53
- package/dist/cjs/br-input.cjs.entry.js +150 -40
- package/dist/cjs/br-item.cjs.entry.js +97 -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 +39 -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 +38 -57
- package/dist/cjs/br-modal.cjs.entry.js +44 -42
- 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 +120 -88
- package/dist/cjs/br-radio-group.cjs.entry.js +107 -58
- package/dist/cjs/br-radio.cjs.entry.js +62 -12
- package/dist/cjs/br-scrim.cjs.entry.js +161 -67
- package/dist/cjs/br-select-input_3.cjs.entry.js +286 -91
- package/dist/cjs/br-sign-in.cjs.entry.js +38 -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 +522 -100
- package/dist/cjs/br-step_2.cjs.entry.js +98 -44
- package/dist/cjs/br-switch.cjs.entry.js +21 -12
- package/dist/cjs/br-tab-item.cjs.entry.js +38 -14
- package/dist/cjs/br-tab.cjs.entry.js +89 -51
- 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 +49 -31
- package/dist/cjs/br-textarea.cjs.entry.js +118 -13
- package/dist/cjs/br-tooltip.cjs.entry.js +87 -41
- package/dist/cjs/br-upload.cjs.entry.js +84 -25
- 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/icon.utils-DF6kMskA.js +46 -0
- package/dist/cjs/id-DE4jSi-L.js +36 -0
- package/dist/cjs/{index-CRdcutym.js → index-Bc30P_6z.js} +88 -766
- 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/{validator-CTCajtT9.js → validator-GkkueMOx.js} +18 -0
- 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 +93 -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 +55 -9
- 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 +195 -51
- 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 +134 -44
- 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/icon/icon.utils.js +8 -0
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/input/input.js +189 -55
- package/dist/collection/components/item/item.css +1 -1
- package/dist/collection/components/item/item.js +136 -52
- 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 +65 -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 +71 -60
- 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 +72 -43
- 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 +164 -75
- 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 +61 -6
- 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 +320 -124
- package/dist/collection/components/select/select.utils.js +3 -1
- package/dist/collection/components/sign-in/sign-in.css +1 -1
- package/dist/collection/components/sign-in/sign-in.js +60 -17
- 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 +123 -53
- 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/components/select/remote.js +33 -0
- package/dist/collection/pages/components/select/virtualized.js +13 -0
- package/dist/collection/pages/components/upload/handler.js +25 -0
- package/dist/collection/pages/scripts/component-controls-core.js +95 -0
- package/dist/collection/pages/scripts/component-controls.js +221 -158
- package/dist/collection/pages/scripts/dev-event-console.js +5 -1
- package/dist/collection/pages/scripts/menu.js +90 -6
- package/dist/collection/pages/scripts/pageLoader.js +1570 -607
- package/dist/collection/pages/scripts/pageloader-preview.js +796 -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/form.js +17 -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-0qmYp77w.js +5 -0
- package/dist/components/p-5c3rNBXh.js +5 -0
- package/dist/components/p-B8oIvH3q.js +5 -0
- package/dist/components/p-BECz8XWJ.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-BM4Ys6hX.js +5 -0
- package/dist/components/p-BXWh9s7p.js +5 -0
- package/dist/components/{p-DA5GS53D.js → p-BblZlUp2.js} +1 -1
- 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-BjeUETWJ.js +5 -0
- package/dist/components/p-CDTENPaP.js +5 -0
- package/dist/components/p-CDtFCbKp.js +5 -0
- package/dist/components/p-CNwZRgyL.js +5 -0
- package/dist/components/p-CZZVc2gK.js +5 -0
- package/dist/components/p-Cd6udSDt.js +5 -0
- package/dist/components/p-Ci0_RqAE.js +5 -0
- package/dist/components/p-CuBgClZm.js +5 -0
- package/dist/components/p-D0QYZSoP.js +5 -0
- package/dist/components/p-D4SWpW6-.js +5 -0
- package/dist/components/p-D579DS7x.js +5 -0
- package/dist/components/p-D8K7rhHd.js +5 -0
- package/dist/components/p-D9Zo6FlV.js +5 -0
- package/dist/components/p-D9nXlCuS.js +5 -0
- package/dist/components/p-DKFO6Q_g.js +5 -0
- package/dist/components/p-DNJSSCNi.js +5 -0
- package/dist/components/p-DOJ1vYOl.js +5 -0
- package/dist/components/p-DWhzxlCx.js +5 -0
- package/dist/components/p-DYI30IZL.js +5 -0
- package/dist/components/p-DcVldfL0.js +5 -0
- package/dist/components/p-DhvmHPp4.js +5 -0
- package/dist/components/p-DiLI514I.js +5 -0
- package/dist/components/p-DwgiHL0b.js +5 -0
- package/dist/components/p-Jk_KQE5V.js +5 -0
- package/dist/components/p-Nze3Utvd.js +5 -0
- package/dist/components/p-WxDB6Dk4.js +5 -0
- package/dist/components/p-ZLoeVagg.js +5 -0
- package/dist/components/p-gbYJ9sfc.js +5 -0
- package/dist/components/p-uc8ABlC_.js +5 -0
- package/dist/components/p-v60ypfxD.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 +77 -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 +87 -17
- package/dist/esm/br-checkgroup.entry.js +5 -2
- package/dist/esm/br-collapse_2.entry.js +91 -28
- 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 +83 -495
- package/dist/esm/br-divider.entry.js +70 -17
- package/dist/esm/br-dropdown_2.entry.js +335 -164
- 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 +96 -37
- package/dist/esm/br-icon.entry.js +160 -52
- package/dist/esm/br-input.entry.js +152 -42
- package/dist/esm/br-item.entry.js +97 -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 +39 -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 +39 -58
- package/dist/esm/br-modal.entry.js +44 -42
- 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 +120 -88
- package/dist/esm/br-radio-group.entry.js +108 -59
- package/dist/esm/br-radio.entry.js +63 -13
- package/dist/esm/br-scrim.entry.js +161 -67
- package/dist/esm/br-select-input_3.entry.js +286 -91
- package/dist/esm/br-sign-in.entry.js +38 -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 +520 -98
- package/dist/esm/br-step_2.entry.js +98 -44
- package/dist/esm/br-switch.entry.js +22 -13
- package/dist/esm/br-tab-item.entry.js +38 -14
- package/dist/esm/br-tab.entry.js +89 -51
- 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 +50 -32
- package/dist/esm/br-textarea.entry.js +119 -14
- package/dist/esm/br-tooltip.entry.js +88 -42
- package/dist/esm/br-upload.entry.js +85 -26
- 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/icon.utils-zlORkiHQ.js +43 -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-ConyRdJe.js} +88 -766
- 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/{validator-D3tVP32U.js → validator-BkWWrDEr.js} +18 -1
- package/dist/esm/webcomponents.js +4 -4
- package/dist/hydrate/index.js +7541 -2577
- package/dist/hydrate/index.mjs +7541 -2577
- 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 -8
- 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 +37 -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 +53 -7
- 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 +47 -7
- package/dist/types/components/icon/icon.d.ts +44 -13
- package/dist/types/components/icon/icon.utils.d.ts +6 -0
- package/dist/types/components/input/input.d.ts +74 -15
- package/dist/types/components/item/item.d.ts +44 -6
- 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 +41 -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 +39 -6
- 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 +40 -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 +58 -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 +32 -4
- 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 +24 -4
- package/dist/types/components/tab/tab.d.ts +48 -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 +5827 -1354
- 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/form.d.ts +8 -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 +73 -55
- package/dist/webcomponents/index.esm.js +1 -1
- package/dist/webcomponents/p-078bd760.entry.js +5 -0
- package/dist/webcomponents/p-07c2cdff.entry.js +5 -0
- package/dist/webcomponents/{p-7f7506f0.entry.js → p-09817344.entry.js} +1 -1
- package/dist/webcomponents/p-0b0cf355.entry.js +5 -0
- package/dist/webcomponents/p-0d2ca2f7.entry.js +5 -0
- package/dist/webcomponents/p-0d79ca44.entry.js +5 -0
- package/dist/webcomponents/p-0fe3c47b.entry.js +5 -0
- package/dist/webcomponents/p-116b53c9.entry.js +5 -0
- package/dist/webcomponents/p-1240dae7.entry.js +5 -0
- package/dist/webcomponents/p-14ff5865.entry.js +5 -0
- package/dist/webcomponents/p-15743a02.entry.js +5 -0
- package/dist/webcomponents/p-16cebf49.entry.js +5 -0
- package/dist/webcomponents/p-1884b9d3.entry.js +5 -0
- package/dist/webcomponents/p-19a38e20.entry.js +5 -0
- package/dist/webcomponents/p-1d36c8fa.entry.js +5 -0
- package/dist/webcomponents/p-1fa4b5b2.entry.js +5 -0
- package/dist/webcomponents/p-212c069b.entry.js +5 -0
- package/dist/webcomponents/p-23f37cd6.entry.js +5 -0
- package/dist/webcomponents/p-24502b63.entry.js +5 -0
- package/dist/webcomponents/p-27fb81f3.entry.js +5 -0
- package/dist/webcomponents/p-28844490.entry.js +5 -0
- package/dist/webcomponents/p-2b41bdcc.entry.js +5 -0
- package/dist/webcomponents/p-2cb1e09b.entry.js +5 -0
- package/dist/webcomponents/p-2fcda70b.entry.js +5 -0
- package/dist/webcomponents/p-3378300c.entry.js +5 -0
- package/dist/webcomponents/p-3ae9cf69.entry.js +5 -0
- package/dist/webcomponents/p-3b79cd49.entry.js +5 -0
- package/dist/webcomponents/p-3c1513ec.entry.js +5 -0
- package/dist/webcomponents/p-4118b878.entry.js +5 -0
- package/dist/webcomponents/p-4534a3c3.entry.js +5 -0
- package/dist/webcomponents/p-48abf568.entry.js +5 -0
- package/dist/webcomponents/p-4e5ea05c.entry.js +5 -0
- package/dist/webcomponents/p-513ee754.entry.js +5 -0
- package/dist/webcomponents/p-521a1076.entry.js +5 -0
- package/dist/webcomponents/p-59fc52c0.entry.js +5 -0
- package/dist/webcomponents/p-5a7c2031.entry.js +5 -0
- package/dist/webcomponents/p-5a9f4ea2.entry.js +5 -0
- package/dist/webcomponents/p-5f422a69.entry.js +5 -0
- package/dist/webcomponents/p-61977114.entry.js +5 -0
- package/dist/webcomponents/p-6850e98e.entry.js +5 -0
- package/dist/webcomponents/p-71853dfc.entry.js +5 -0
- package/dist/webcomponents/p-76d51654.entry.js +5 -0
- package/dist/webcomponents/p-77e242f3.entry.js +5 -0
- package/dist/webcomponents/p-7b849472.entry.js +5 -0
- package/dist/webcomponents/p-7dbfb875.entry.js +5 -0
- package/dist/webcomponents/p-7fa7f052.entry.js +5 -0
- package/dist/webcomponents/p-81c65747.entry.js +5 -0
- package/dist/webcomponents/p-82759002.entry.js +5 -0
- package/dist/webcomponents/p-91a5329f.entry.js +5 -0
- package/dist/webcomponents/p-94848046.entry.js +5 -0
- package/dist/webcomponents/p-966773a9.entry.js +5 -0
- package/dist/webcomponents/p-9abb5a53.entry.js +5 -0
- package/dist/webcomponents/p-9bf2e325.entry.js +5 -0
- package/dist/webcomponents/p-9c943b40.entry.js +5 -0
- package/dist/webcomponents/p-9ec3ca00.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-BkWWrDEr.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-ConyRdJe.js +7 -0
- 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-EbtQZm5s.js +5 -0
- package/dist/webcomponents/p-ad91f149.entry.js +5 -0
- package/dist/webcomponents/p-aeea1f17.entry.js +5 -0
- package/dist/webcomponents/p-b02a7218.entry.js +5 -0
- package/dist/webcomponents/p-b16590fc.entry.js +5 -0
- package/dist/webcomponents/{p-12286e73.entry.js → p-b55425b7.entry.js} +1 -1
- package/dist/webcomponents/p-c1dafd8d.entry.js +5 -0
- package/dist/webcomponents/p-c2ca0289.entry.js +5 -0
- package/dist/webcomponents/p-c8af334e.entry.js +5 -0
- package/dist/webcomponents/p-cac49c6a.entry.js +5 -0
- package/dist/webcomponents/p-cb9ebfbe.entry.js +5 -0
- package/dist/webcomponents/p-ce3d689c.entry.js +5 -0
- package/dist/webcomponents/p-d11f95a0.entry.js +5 -0
- package/dist/webcomponents/p-d5d2205c.entry.js +5 -0
- package/dist/webcomponents/p-dad03b49.entry.js +5 -0
- package/dist/webcomponents/p-db8e6322.entry.js +5 -0
- package/dist/webcomponents/p-dea8015f.entry.js +5 -0
- package/dist/webcomponents/p-e07e309d.entry.js +5 -0
- package/dist/webcomponents/p-e53d874b.entry.js +5 -0
- package/dist/webcomponents/p-e5540387.entry.js +5 -0
- package/dist/webcomponents/p-e94a52ac.entry.js +5 -0
- package/dist/webcomponents/p-e9be4d3f.entry.js +5 -0
- package/dist/webcomponents/p-e9db9381.entry.js +5 -0
- package/dist/webcomponents/p-edca5de1.entry.js +5 -0
- package/dist/webcomponents/p-ee5b9fc9.entry.js +5 -0
- package/dist/webcomponents/p-f4ef8c63.entry.js +5 -0
- package/dist/webcomponents/p-zlORkiHQ.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-6OdfnwnK.js +0 -5
- package/dist/components/p-AmOh1cks.js +0 -5
- package/dist/components/p-B4ylcipx.js +0 -5
- package/dist/components/p-BCv4PCOx.js +0 -5
- package/dist/components/p-BLOyd_iF.js +0 -5
- package/dist/components/p-BODem6tr.js +0 -5
- package/dist/components/p-Bb-nLtTG.js +0 -5
- package/dist/components/p-BeFK-82z.js +0 -5
- package/dist/components/p-BkS6ujyf.js +0 -5
- package/dist/components/p-BloE-KAN.js +0 -5
- package/dist/components/p-BoSc_kmY.js +0 -5
- package/dist/components/p-BrH3r7eL.js +0 -5
- package/dist/components/p-BsZ0Ny88.js +0 -5
- package/dist/components/p-ByHVf7zy.js +0 -5
- package/dist/components/p-CdDwqbBv.js +0 -5
- package/dist/components/p-CdF-gmk1.js +0 -5
- package/dist/components/p-CfyjGPGI.js +0 -5
- package/dist/components/p-CjF7pBVQ.js +0 -5
- package/dist/components/p-ClqtllDH.js +0 -5
- package/dist/components/p-CqW2Yh34.js +0 -5
- package/dist/components/p-DIK54tTj.js +0 -5
- package/dist/components/p-DLE5ioJN.js +0 -5
- package/dist/components/p-DQRSHR-D.js +0 -5
- package/dist/components/p-DRVMm1Py.js +0 -5
- package/dist/components/p-DRnCpVrL.js +0 -5
- package/dist/components/p-DVdlaP7z.js +0 -5
- package/dist/components/p-DeeF6ok0.js +0 -5
- package/dist/components/p-Dim2PnUm.js +0 -5
- package/dist/components/p-Dk8rfQjL.js +0 -5
- package/dist/components/p-DkmEpoef.js +0 -5
- package/dist/components/p-DwfAYaEv.js +0 -5
- package/dist/components/p-DxZJrIyL.js +0 -5
- package/dist/components/p-P2Z_MmH6.js +0 -5
- package/dist/components/p-Xa0Mj4pP.js +0 -5
- package/dist/components/p-_vsQvdxD.js +0 -5
- package/dist/components/p-aNjo4Alx.js +0 -5
- package/dist/components/p-gvnfuTjd.js +0 -5
- package/dist/components/p-rB-s1M3Q.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-00cc31f9.entry.js +0 -5
- package/dist/webcomponents/p-026475bd.entry.js +0 -5
- package/dist/webcomponents/p-0291ab28.entry.js +0 -5
- package/dist/webcomponents/p-03e5a7dc.entry.js +0 -5
- package/dist/webcomponents/p-060df8ee.entry.js +0 -5
- package/dist/webcomponents/p-09fce2a5.entry.js +0 -5
- package/dist/webcomponents/p-1002bbff.entry.js +0 -5
- package/dist/webcomponents/p-1124de33.entry.js +0 -5
- package/dist/webcomponents/p-12e97d80.entry.js +0 -5
- package/dist/webcomponents/p-1580beee.entry.js +0 -5
- package/dist/webcomponents/p-1b19b191.entry.js +0 -5
- package/dist/webcomponents/p-2baf353b.entry.js +0 -5
- package/dist/webcomponents/p-2eb9a42c.entry.js +0 -5
- package/dist/webcomponents/p-30c82805.entry.js +0 -5
- package/dist/webcomponents/p-31bd1c74.entry.js +0 -5
- package/dist/webcomponents/p-31db2313.entry.js +0 -5
- package/dist/webcomponents/p-33a3dc63.entry.js +0 -5
- package/dist/webcomponents/p-3889c51f.entry.js +0 -5
- package/dist/webcomponents/p-3f2c179a.entry.js +0 -5
- package/dist/webcomponents/p-470eb770.entry.js +0 -5
- package/dist/webcomponents/p-4ae387ae.entry.js +0 -5
- package/dist/webcomponents/p-4e65df84.entry.js +0 -5
- package/dist/webcomponents/p-51a62876.entry.js +0 -5
- package/dist/webcomponents/p-5860b96b.entry.js +0 -5
- package/dist/webcomponents/p-5b9c01e9.entry.js +0 -5
- package/dist/webcomponents/p-5df2f1dd.entry.js +0 -5
- package/dist/webcomponents/p-5f3f7b3f.entry.js +0 -5
- package/dist/webcomponents/p-5f6afb79.entry.js +0 -5
- package/dist/webcomponents/p-5f9c28a7.entry.js +0 -5
- package/dist/webcomponents/p-62511921.entry.js +0 -5
- package/dist/webcomponents/p-63b52947.entry.js +0 -5
- package/dist/webcomponents/p-67a8e0b7.entry.js +0 -5
- package/dist/webcomponents/p-6OdfnwnK.js +0 -5
- package/dist/webcomponents/p-7b2a5fec.entry.js +0 -5
- package/dist/webcomponents/p-7f95e2f5.entry.js +0 -5
- package/dist/webcomponents/p-8128833c.entry.js +0 -5
- package/dist/webcomponents/p-8200ccb1.entry.js +0 -5
- package/dist/webcomponents/p-82b100fd.entry.js +0 -5
- package/dist/webcomponents/p-8806df15.entry.js +0 -5
- package/dist/webcomponents/p-881eb81a.entry.js +0 -5
- package/dist/webcomponents/p-8bd3d541.entry.js +0 -5
- package/dist/webcomponents/p-90648343.entry.js +0 -5
- package/dist/webcomponents/p-9100a5f7.entry.js +0 -5
- package/dist/webcomponents/p-91313d77.entry.js +0 -5
- package/dist/webcomponents/p-946b2ac0.entry.js +0 -5
- package/dist/webcomponents/p-98e7ccb9.entry.js +0 -5
- package/dist/webcomponents/p-99f2bddb.entry.js +0 -5
- package/dist/webcomponents/p-9adbdb0a.entry.js +0 -5
- package/dist/webcomponents/p-9c260049.entry.js +0 -5
- package/dist/webcomponents/p-9ed51017.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-D3tVP32U.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-a0b299dd.entry.js +0 -5
- package/dist/webcomponents/p-a2c5fad0.entry.js +0 -5
- package/dist/webcomponents/p-a3e044d7.entry.js +0 -5
- package/dist/webcomponents/p-a9f23aa7.entry.js +0 -5
- package/dist/webcomponents/p-a9f2fcbc.entry.js +0 -5
- package/dist/webcomponents/p-b6c68136.entry.js +0 -5
- package/dist/webcomponents/p-b6e9b8d1.entry.js +0 -5
- package/dist/webcomponents/p-c333eac6.entry.js +0 -5
- package/dist/webcomponents/p-c3732fd6.entry.js +0 -5
- package/dist/webcomponents/p-c458ed0e.entry.js +0 -5
- package/dist/webcomponents/p-c91000ff.entry.js +0 -5
- package/dist/webcomponents/p-c9c6ab2d.entry.js +0 -5
- package/dist/webcomponents/p-cd2550d6.entry.js +0 -5
- package/dist/webcomponents/p-cf42613f.entry.js +0 -5
- package/dist/webcomponents/p-d0b0b420.entry.js +0 -5
- package/dist/webcomponents/p-d1b32ee8.entry.js +0 -5
- package/dist/webcomponents/p-db65b083.entry.js +0 -5
- package/dist/webcomponents/p-de7c101d.entry.js +0 -5
- package/dist/webcomponents/p-dfb77dd0.entry.js +0 -5
- package/dist/webcomponents/p-e258da78.entry.js +0 -5
- package/dist/webcomponents/p-e31ddd42.entry.js +0 -5
- package/dist/webcomponents/p-e8d82227.entry.js +0 -5
- package/dist/webcomponents/p-e988cf1d.entry.js +0 -5
- package/dist/webcomponents/p-ed9122a1.entry.js +0 -5
- package/dist/webcomponents/p-ee347d2e.entry.js +0 -5
- package/dist/webcomponents/p-f1c01d52.entry.js +0 -5
- package/dist/webcomponents/p-f5baf8be.entry.js +0 -5
- package/dist/webcomponents/p-fb593739.entry.js +0 -5
- package/dist/webcomponents/p-fff9acd4.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
|
+
};
|
|
@@ -80,3 +80,20 @@ export const getCheckableFormValue = (checked, value, fallback = 'on') => {
|
|
|
80
80
|
export const getCheckableRestoreState = (checked) => {
|
|
81
81
|
return checked ? 'checked' : 'unchecked';
|
|
82
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Submissão implícita (Enter em campo de texto) conforme a especificação HTML,
|
|
85
|
+
* para controles cujo campo nativo fica no Shadow DOM e não pertence ao `<form>`.
|
|
86
|
+
* O botão padrão é o primeiro elemento do formulário com `type="submit"`
|
|
87
|
+
* (nativo ou `br-button`); se estiver desabilitado, não há envio. Botões nativos
|
|
88
|
+
* são acionados para preservar o `submitter`; nos demais casos usa `requestSubmit()`.
|
|
89
|
+
*/
|
|
90
|
+
export function submitImplicitly(form) {
|
|
91
|
+
const defaultButton = Array.from(form.elements).find((element) => element.type === 'submit');
|
|
92
|
+
if (defaultButton?.disabled)
|
|
93
|
+
return;
|
|
94
|
+
if (defaultButton instanceof HTMLButtonElement || defaultButton instanceof HTMLInputElement) {
|
|
95
|
+
defaultButton.click();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
form.requestSubmit();
|
|
99
|
+
}
|
|
@@ -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
|
+
}
|