@redvars/peacock 3.8.1 → 3.8.2
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/dist/{BaseInput-14YmcfK7.js → BaseInput-CU1zZYKc.js} +3 -3
- package/dist/{BaseInput-14YmcfK7.js.map → BaseInput-CU1zZYKc.js.map} +1 -1
- package/dist/ButtonConstants-CahP2_NA.js +4 -0
- package/dist/ButtonConstants-CahP2_NA.js.map +1 -0
- package/dist/{IndividualComponent-DUINtMGK.js → IndividualComponent-Bdwyrvd6.js} +2 -2
- package/dist/{IndividualComponent-DUINtMGK.js.map → IndividualComponent-Bdwyrvd6.js.map} +1 -1
- package/dist/{NativeHyperlinkMixin-DrYXyfMQ.js → NativeHyperlinkMixin-D9J4aBTy.js} +4 -30
- package/dist/NativeHyperlinkMixin-D9J4aBTy.js.map +1 -0
- package/dist/accordion-item.js +338 -0
- package/dist/accordion-item.js.map +1 -0
- package/dist/accordion.js +159 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.js +190 -0
- package/dist/alert.js.map +1 -0
- package/dist/app-bar.js +324 -0
- package/dist/app-bar.js.map +1 -0
- package/dist/assets/components.css +1 -1
- package/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/attachable-controller-CAKVrfcG.js +119 -0
- package/dist/attachable-controller-CAKVrfcG.js.map +1 -0
- package/dist/avatar.js +114 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.js +91 -0
- package/dist/badge.js.map +1 -0
- package/dist/base-Cl6v8-BZ.js +9 -0
- package/dist/base-Cl6v8-BZ.js.map +1 -0
- package/dist/bottom-sheet.js +14 -5
- package/dist/bottom-sheet.js.map +1 -1
- package/dist/breadcrumb-item.js +163 -0
- package/dist/breadcrumb-item.js.map +1 -0
- package/dist/breadcrumb.js +95 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/button-group.js +87 -137
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +863 -133
- package/dist/button.js.map +1 -1
- package/dist/calendar-column-view.js +8 -4
- package/dist/calendar-column-view.js.map +1 -1
- package/dist/calendar-month-view.js +8 -4
- package/dist/calendar-month-view.js.map +1 -1
- package/dist/calendar.js +8 -4
- package/dist/calendar.js.map +1 -1
- package/dist/canvas.js +8 -4
- package/dist/canvas.js.map +1 -1
- package/dist/card-content.js +1 -1
- package/dist/card.js +23 -45
- package/dist/card.js.map +1 -1
- package/dist/cb-compound-expression.js +6 -2
- package/dist/cb-compound-expression.js.map +1 -1
- package/dist/cb-divider.js +7 -3
- package/dist/cb-divider.js.map +1 -1
- package/dist/cb-expression.js +6 -2
- package/dist/cb-expression.js.map +1 -1
- package/dist/cb-predicate.js +7 -3
- package/dist/cb-predicate.js.map +1 -1
- package/dist/{chart-bar-cn6rrna-.js → chart-bar-CYoGNXnK.js} +6 -2
- package/dist/{chart-bar-cn6rrna-.js.map → chart-bar-CYoGNXnK.js.map} +1 -1
- package/dist/chart-bar.js +7 -6
- package/dist/chart-bar.js.map +1 -1
- package/dist/chart-doughnut.js +8 -3
- package/dist/chart-doughnut.js.map +1 -1
- package/dist/chart-pie.js +8 -3
- package/dist/chart-pie.js.map +1 -1
- package/dist/chart-stacked-bar.js +7 -6
- package/dist/chart-stacked-bar.js.map +1 -1
- package/dist/checkbox.js +526 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.js +459 -0
- package/dist/chip.js.map +1 -0
- package/dist/{class-map-YU7g0o3B.js → class-map-DG7CA1et.js} +2 -2
- package/dist/{class-map-YU7g0o3B.js.map → class-map-DG7CA1et.js.map} +1 -1
- package/dist/clock.js +6 -2
- package/dist/clock.js.map +1 -1
- package/dist/code-editor.js +45 -30
- package/dist/code-editor.js.map +1 -1
- package/dist/code-highlighter.js +9 -5
- package/dist/code-highlighter.js.map +1 -1
- package/dist/condition-builder.js +5 -1
- package/dist/condition-builder.js.map +1 -1
- package/dist/container.js +141 -0
- package/dist/container.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +721 -769
- package/dist/custom-elements.json +3213 -1979
- package/dist/datasource-B2eRh6Or.js +108 -0
- package/dist/datasource-B2eRh6Or.js.map +1 -0
- package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -1
- package/dist/divider.js +135 -0
- package/dist/divider.js.map +1 -0
- package/dist/dropdown-button.js +11 -6
- package/dist/dropdown-button.js.map +1 -1
- package/dist/element-internals-2CMts_0M.js +290 -0
- package/dist/element-internals-2CMts_0M.js.map +1 -0
- package/dist/elevation.js +94 -0
- package/dist/elevation.js.map +1 -0
- package/dist/empty-state.js +194 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/{event-manager-D-QCmUgR.js → event-manager-DTyX2uYD.js} +2 -2
- package/dist/{event-manager-D-QCmUgR.js.map → event-manager-DTyX2uYD.js.map} +1 -1
- package/dist/fab.js +138 -145
- package/dist/fab.js.map +1 -1
- package/dist/field.js +461 -0
- package/dist/field.js.map +1 -0
- package/dist/{popover-DUPmMVWS.js → floating-controller-CnUZnOhK.js} +2 -171
- package/dist/floating-controller-CnUZnOhK.js.map +1 -0
- package/dist/{flow-designer-node-BWrPuxAR.js → flow-designer-node-DsVwQTac.js} +7 -3
- package/dist/{flow-designer-node-BWrPuxAR.js.map → flow-designer-node-DsVwQTac.js.map} +1 -1
- package/dist/flow-designer-node.js +3 -3
- package/dist/flow-designer.js +19 -12
- package/dist/flow-designer.js.map +1 -1
- package/dist/focus-ring.js +126 -0
- package/dist/focus-ring.js.map +1 -0
- package/dist/form-associated-BXADnjOB.js +388 -0
- package/dist/form-associated-BXADnjOB.js.map +1 -0
- package/dist/html-editor.js +21 -9
- package/dist/html-editor.js.map +1 -1
- package/dist/hyperlink-DLvb6MXE.js +98 -0
- package/dist/hyperlink-DLvb6MXE.js.map +1 -0
- package/dist/icon-button.js +1064 -0
- package/dist/icon-button.js.map +1 -0
- package/dist/icon.js +170 -0
- package/dist/icon.js.map +1 -0
- package/dist/if-defined-BXZpRQ4P.js +10 -0
- package/dist/if-defined-BXZpRQ4P.js.map +1 -0
- package/dist/image.js +201 -0
- package/dist/image.js.map +1 -0
- package/dist/index.js +73 -20
- package/dist/index.js.map +1 -1
- package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -1
- package/dist/is-link-Dk2OV3PM.js +6 -0
- package/dist/is-link-Dk2OV3PM.js.map +1 -0
- package/dist/item.js +212 -0
- package/dist/item.js.map +1 -0
- package/dist/link.js +75 -0
- package/dist/link.js.map +1 -0
- package/dist/list-D6JLh1uh.js +352 -0
- package/dist/list-D6JLh1uh.js.map +1 -0
- package/dist/list.js +14 -0
- package/dist/list.js.map +1 -0
- package/dist/{peacock-loader.js → loader.js} +83 -22
- package/dist/loader.js.map +1 -0
- package/dist/menu-item.js +318 -0
- package/dist/menu-item.js.map +1 -0
- package/dist/menu.js +534 -0
- package/dist/menu.js.map +1 -0
- package/dist/modal.js +9 -5
- package/dist/modal.js.map +1 -1
- package/dist/navigation-rail-item.js +385 -0
- package/dist/navigation-rail-item.js.map +1 -0
- package/dist/navigation-rail.js +217 -0
- package/dist/navigation-rail.js.map +1 -0
- package/dist/notification-manager.js +8 -4
- package/dist/notification-manager.js.map +1 -1
- package/dist/notification.js +8 -4
- package/dist/notification.js.map +1 -1
- package/dist/number-counter.js +7 -3
- package/dist/number-counter.js.map +1 -1
- package/dist/{observe-slot-change-D8Xg-kSS.js → observe-slot-change-DPxaZrZF.js} +3 -4
- package/dist/observe-slot-change-DPxaZrZF.js.map +1 -0
- package/dist/option.js +121 -0
- package/dist/option.js.map +1 -0
- package/dist/pagination.js +255 -0
- package/dist/pagination.js.map +1 -0
- package/dist/popover-content.js +7 -3
- package/dist/popover-content.js.map +1 -1
- package/dist/popover.js +175 -3
- package/dist/popover.js.map +1 -1
- package/dist/{property-1psGvXOq.js → property-B49QQ8pS.js} +2 -2
- package/dist/{property-1psGvXOq.js.map → property-B49QQ8pS.js.map} +1 -1
- package/dist/query-CHb9Ft_d.js +10 -0
- package/dist/query-CHb9Ft_d.js.map +1 -0
- package/dist/query-assigned-elements-BJaGSqM0.js +10 -0
- package/dist/query-assigned-elements-BJaGSqM0.js.map +1 -0
- package/dist/radio.js +476 -0
- package/dist/radio.js.map +1 -0
- package/dist/ripple.js +506 -0
- package/dist/ripple.js.map +1 -0
- package/dist/search.js +12 -7
- package/dist/search.js.map +1 -1
- package/dist/segmented-button-group.js +137 -0
- package/dist/segmented-button-group.js.map +1 -0
- package/dist/segmented-button.js +289 -0
- package/dist/segmented-button.js.map +1 -0
- package/dist/select-Dwtk0RIU.js +3937 -0
- package/dist/select-Dwtk0RIU.js.map +1 -0
- package/dist/side-sheet.js +8 -4
- package/dist/side-sheet.js.map +1 -1
- package/dist/skeleton.js +122 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.js +346 -0
- package/dist/slider.js.map +1 -0
- package/dist/snackbar.js +335 -0
- package/dist/snackbar.js.map +1 -0
- package/dist/spinner.js +100 -0
- package/dist/spinner.js.map +1 -0
- package/dist/split-button.js +10 -5
- package/dist/split-button.js.map +1 -1
- package/dist/spread-B5cgadZl.js +32 -0
- package/dist/spread-B5cgadZl.js.map +1 -0
- package/dist/src/__internal/aria/aria.d.ts +98 -0
- package/dist/src/__internal/aria/delegate.d.ts +54 -0
- package/dist/src/__internal/events/dispatch-hooks.d.ts +80 -0
- package/dist/src/__internal/mixins/element-internals.d.ts +40 -0
- package/dist/src/__internal/mixins/form-associated.d.ts +174 -0
- package/dist/src/__internal/mixins/form-submitter.d.ts +59 -0
- package/dist/src/__internal/mixins/hyperlink.d.ts +42 -0
- package/dist/src/__internal/mixins/mixin.d.ts +49 -0
- package/dist/src/{__utils → __internal/utils}/observe-slot-change.d.ts +1 -0
- package/dist/src/accordion/accordion-item.d.ts +3 -1
- package/dist/src/accordion/accordion.d.ts +1 -1
- package/dist/src/alert/alert.d.ts +43 -0
- package/dist/src/alert/index.d.ts +1 -0
- package/dist/src/app-bar/app-bar.d.ts +92 -0
- package/dist/src/app-bar/index.d.ts +1 -0
- package/dist/src/avatar/avatar.d.ts +2 -0
- package/dist/src/bottom-sheet/bottom-sheet.d.ts +1 -1
- package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +1 -0
- package/dist/src/button/ButtonTypes.d.ts +5 -0
- package/dist/src/button/base-button/base-button.d.ts +18 -0
- package/dist/src/button/button/button.d.ts +29 -37
- package/dist/src/button/button-group/button-group.d.ts +17 -18
- package/dist/src/{fab → button/fab}/fab.d.ts +8 -26
- package/dist/src/button/icon-button/icon-button.d.ts +20 -27
- package/dist/src/button/index.d.ts +1 -0
- package/dist/src/calendar/calendar.d.ts +1 -1
- package/dist/src/canvas/canvas.d.ts +1 -1
- package/dist/src/card/card.d.ts +5 -6
- package/dist/src/chart-bar/chart-bar.d.ts +1 -1
- package/dist/src/chart-bar/chart-stacked-bar.d.ts +1 -1
- package/dist/src/checkbox/checkbox.d.ts +5 -1
- package/dist/src/chip/chip/chip.d.ts +9 -8
- package/dist/src/container/container.d.ts +5 -1
- package/dist/src/divider/divider.d.ts +2 -0
- package/dist/src/empty-state/empty-state.d.ts +1 -0
- package/dist/src/field/field.d.ts +19 -1
- package/dist/src/focus-ring/focus-ring.d.ts +3 -7
- package/dist/src/html-editor/html-editor.d.ts +1 -1
- package/dist/src/icon/icon.d.ts +9 -4
- package/dist/src/image/image.d.ts +4 -0
- package/dist/src/index.d.ts +7 -6
- package/dist/src/item/item.d.ts +20 -29
- package/dist/src/link/link.d.ts +1 -1
- package/dist/src/list/list-item.d.ts +7 -5
- package/dist/src/list/list.d.ts +3 -2
- package/dist/src/menu/menu/menu.d.ts +14 -0
- package/dist/src/menu/menu-item/menu-item.d.ts +10 -2
- package/dist/src/modal/modal.d.ts +1 -1
- package/dist/src/navigation-rail/navigation-rail-item.d.ts +5 -4
- package/dist/src/navigation-rail/navigation-rail.d.ts +1 -1
- package/dist/src/radio/radio.d.ts +5 -0
- package/dist/src/ripple/ripple.d.ts +10 -1
- package/dist/src/search/search.d.ts +1 -1
- package/dist/src/segmented-button/segmented-button-group.d.ts +2 -2
- package/dist/src/segmented-button/segmented-button.d.ts +2 -0
- package/dist/src/side-sheet/side-sheet.d.ts +1 -1
- package/dist/src/skeleton/skeleton.d.ts +1 -0
- package/dist/src/slider/slider.d.ts +1 -0
- package/dist/src/snackbar/snackbar.d.ts +12 -2
- package/dist/src/svg/svg.d.ts +5 -0
- package/dist/src/table/table.d.ts +5 -0
- package/dist/src/tabs/tab.d.ts +2 -7
- package/dist/src/toolbar/toolbar.d.ts +2 -2
- package/dist/{state-DwbEjqVk.js → state-DkTK9EGF.js} +2 -2
- package/dist/{state-DwbEjqVk.js.map → state-DkTK9EGF.js.map} +1 -1
- package/dist/{style-map-DVmWOuYy.js → style-map-BQD5Et1D.js} +2 -2
- package/dist/{style-map-DVmWOuYy.js.map → style-map-BQD5Et1D.js.map} +1 -1
- package/dist/sub-menu.js +241 -0
- package/dist/sub-menu.js.map +1 -0
- package/dist/svg.js +273 -0
- package/dist/svg.js.map +1 -0
- package/dist/tab-group.js +188 -0
- package/dist/tab-group.js.map +1 -0
- package/dist/tab-panel.js +61 -0
- package/dist/tab-panel.js.map +1 -0
- package/dist/tab.js +658 -0
- package/dist/tab.js.map +1 -0
- package/dist/table.js +620 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.js +240 -0
- package/dist/tabs.js.map +1 -0
- package/dist/throttle-C7ZAPqtu.js +24 -0
- package/dist/throttle-C7ZAPqtu.js.map +1 -0
- package/dist/toolbar.js +9 -5
- package/dist/toolbar.js.map +1 -1
- package/dist/tooltip.js +270 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{unsafe-html-BsGUjx94.js → unsafe-html-Ct0N2_UU.js} +2 -2
- package/dist/{unsafe-html-BsGUjx94.js.map → unsafe-html-Ct0N2_UU.js.map} +1 -1
- package/dist/when-DEJm_QN9.js +9 -0
- package/dist/when-DEJm_QN9.js.map +1 -0
- package/package.json +4 -2
- package/readme.md +3 -3
- package/scss/mixin.scss +8 -6
- package/src/__internal/aria/aria.ts +293 -0
- package/src/__internal/aria/delegate.ts +206 -0
- package/src/__internal/events/dispatch-hooks.ts +182 -0
- package/src/__internal/mixins/element-internals.ts +73 -0
- package/src/__internal/mixins/form-associated.ts +295 -0
- package/src/__internal/mixins/form-submitter.ts +133 -0
- package/src/__internal/mixins/hyperlink.ts +71 -0
- package/src/__internal/mixins/mixin.ts +58 -0
- package/src/{__utils → __internal/utils}/observe-slot-change.ts +2 -5
- package/src/accordion/accordion-item.ts +6 -2
- package/src/accordion/accordion.ts +4 -2
- package/src/accordion/demo/index.html +95 -90
- package/src/alert/alert.scss +82 -0
- package/src/{banner/banner.ts → alert/alert.ts} +22 -22
- package/src/alert/index.ts +1 -0
- package/src/app-bar/app-bar-colors.scss +17 -0
- package/src/app-bar/app-bar.scss +165 -0
- package/src/app-bar/app-bar.ts +155 -0
- package/src/app-bar/index.ts +1 -0
- package/src/avatar/avatar.ts +4 -0
- package/src/badge/badge.ts +2 -0
- package/src/bottom-sheet/bottom-sheet.ts +8 -2
- package/src/breadcrumb/breadcrumb/breadcrumb.ts +2 -0
- package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +3 -0
- package/src/button/ButtonTypes.ts +17 -0
- package/src/button/base-button/base-button.ts +85 -0
- package/src/button/button/button-base.scss +306 -0
- package/src/button/button/button-colors.scss +27 -32
- package/src/button/button/button-layers.scss +126 -39
- package/src/button/button/button-shapes.scss +73 -0
- package/src/button/button/button.scss +12 -286
- package/src/button/button/button.ts +174 -194
- package/src/button/button-group/button-group.scss +43 -36
- package/src/button/button-group/button-group.ts +26 -137
- package/src/{fab → button/fab}/fab-colors.scss +0 -10
- package/src/button/fab/fab-sizes.scss +37 -0
- package/src/button/fab/fab.scss +172 -0
- package/src/{fab → button/fab}/fab.ts +69 -105
- package/src/button/icon-button/icon-button-sizes.scss +18 -3
- package/src/button/icon-button/icon-button.scss +5 -0
- package/src/button/icon-button/icon-button.ts +111 -141
- package/src/button/index.ts +7 -0
- package/src/calendar/calendar.ts +2 -2
- package/src/canvas/canvas.ts +2 -2
- package/src/card/card.scss +3 -3
- package/src/card/card.ts +20 -40
- package/src/chart-bar/chart-bar.ts +2 -2
- package/src/chart-bar/chart-stacked-bar.ts +2 -2
- package/src/checkbox/checkbox.ts +12 -4
- package/src/chip/chip/chip.scss +1 -1
- package/src/chip/chip/chip.ts +35 -55
- package/src/chip/demo/index.html +30 -26
- package/src/code-editor/code-editor.ts +68 -58
- package/src/code-editor/demo/index.html +32 -27
- package/src/code-highlighter/code-highlighter.ts +1 -1
- package/src/code-highlighter/demo/index.html +24 -21
- package/src/container/container.ts +8 -2
- package/src/date-picker/date-picker.ts +2 -3
- package/src/divider/divider.ts +5 -1
- package/src/dropdown-button/demo/index.html +106 -101
- package/src/dropdown-button/dropdown-button.ts +1 -1
- package/src/elevation/elevation.ts +2 -0
- package/src/empty-state/empty-state.ts +3 -0
- package/src/field/field.ts +52 -33
- package/src/focus-ring/focus-ring.ts +5 -7
- package/src/html-editor/html-editor.ts +28 -16
- package/src/icon/datasource.ts +1 -1
- package/src/icon/icon.ts +27 -15
- package/src/image/image.ts +18 -6
- package/src/index.ts +24 -6
- package/src/input/input.ts +2 -2
- package/src/item/item.scss +126 -162
- package/src/item/item.ts +70 -323
- package/src/link/link.ts +3 -1
- package/src/list/list-item.scss +43 -31
- package/src/list/list-item.ts +79 -75
- package/src/list/list.scss +1 -13
- package/src/list/list.ts +6 -3
- package/src/{peacock-loader.ts → loader.ts} +91 -79
- package/src/menu/menu/menu.scss +14 -11
- package/src/menu/menu/menu.ts +20 -8
- package/src/menu/menu-item/menu-item.scss +35 -3
- package/src/menu/menu-item/menu-item.ts +40 -34
- package/src/menu/sub-menu/sub-menu.ts +3 -0
- package/src/modal/modal.ts +2 -2
- package/src/navigation-rail/navigation-rail-item.ts +21 -36
- package/src/navigation-rail/navigation-rail.scss +1 -0
- package/src/navigation-rail/navigation-rail.ts +4 -2
- package/src/number-field/number-field.ts +2 -2
- package/src/pagination/pagination.ts +2 -0
- package/src/popover/popover.ts +3 -3
- package/src/radio/radio.ts +13 -5
- package/src/ripple/ripple.ts +14 -1
- package/src/search/search.ts +3 -3
- package/src/segmented-button/segmented-button-group.ts +8 -4
- package/src/segmented-button/segmented-button.ts +4 -0
- package/src/select/option.ts +2 -0
- package/src/side-sheet/side-sheet.ts +2 -2
- package/src/sidebar-menu/sidebar-menu-item.ts +3 -2
- package/src/skeleton/skeleton.ts +3 -0
- package/src/slider/slider.ts +4 -1
- package/src/snackbar/snackbar.ts +40 -25
- package/src/spinner/spinner.ts +2 -0
- package/src/svg/svg.ts +27 -9
- package/src/switch/switch.ts +1 -1
- package/src/table/table.ts +16 -3
- package/src/tabs/demo/index.html +79 -79
- package/src/tabs/tab-group.ts +2 -0
- package/src/tabs/tab-panel.ts +2 -0
- package/src/tabs/tab.scss +4 -4
- package/src/tabs/tab.ts +16 -39
- package/src/tabs/tabs.ts +2 -0
- package/src/textarea/textarea.ts +2 -2
- package/src/time-picker/time-picker.ts +2 -2
- package/src/toolbar/toolbar.ts +3 -3
- package/src/tooltip/tooltip.ts +14 -8
- package/src/url-field/url-field.ts +2 -3
- package/dist/ButtonConstants-D06bY4uy.js +0 -114
- package/dist/ButtonConstants-D06bY4uy.js.map +0 -1
- package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +0 -1
- package/dist/banner.js +0 -186
- package/dist/banner.js.map +0 -1
- package/dist/button-colors-D7sJyPy8.js +0 -586
- package/dist/button-colors-D7sJyPy8.js.map +0 -1
- package/dist/icon-CueRR7wx.js +0 -260
- package/dist/icon-CueRR7wx.js.map +0 -1
- package/dist/icon-button-CAzYr_qr.js +0 -318
- package/dist/icon-button-CAzYr_qr.js.map +0 -1
- package/dist/navigation-rail-CM_svs5_.js +0 -14184
- package/dist/navigation-rail-CM_svs5_.js.map +0 -1
- package/dist/observe-slot-change-D8Xg-kSS.js.map +0 -1
- package/dist/peacock-loader.js.map +0 -1
- package/dist/popover-DUPmMVWS.js.map +0 -1
- package/dist/query-QBcUV-L_.js +0 -15
- package/dist/query-QBcUV-L_.js.map +0 -1
- package/dist/src/banner/banner.d.ts +0 -43
- package/dist/src/banner/index.d.ts +0 -1
- package/dist/src/button/GroupButtonInterface.d.ts +0 -4
- package/src/banner/banner.scss +0 -82
- package/src/banner/index.ts +0 -1
- package/src/button/GroupButtonInterface.ts +0 -4
- package/src/button/button/only-button.scss +0 -13
- package/src/fab/fab-sizes.scss +0 -37
- package/src/fab/fab.scss +0 -143
- /package/dist/src/{__controllers → __internal/controllers}/attachable-controller.d.ts +0 -0
- /package/dist/src/{__controllers → __internal/controllers}/floating-controller.d.ts +0 -0
- /package/dist/src/{__directive → __internal/directive}/spread.d.ts +0 -0
- /package/dist/src/{__mixins → __internal/mixins}/MixinConstructor.d.ts +0 -0
- /package/dist/src/{__mixins → __internal/mixins}/NativeButtonMixin.d.ts +0 -0
- /package/dist/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/cache-fetch.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/copy-to-clipboard.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/dispatch-event-utils.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/is-dark-mode.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/is-in-viewport.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/is-link.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/observe-theme-change.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/sanitize-svg.d.ts +0 -0
- /package/dist/src/{__utils → __internal/utils}/throttle.d.ts +0 -0
- /package/dist/src/{fab → button/fab}/index.d.ts +0 -0
- /package/dist/src/{peacock-loader.d.ts → loader.d.ts} +0 -0
- /package/dist/test/{banner.test.d.ts → alert.test.d.ts} +0 -0
- /package/src/{__controllers → __internal/controllers}/attachable-controller.ts +0 -0
- /package/src/{__controllers → __internal/controllers}/floating-controller.ts +0 -0
- /package/src/{__directive → __internal/directive}/spread.ts +0 -0
- /package/src/{__mixins → __internal/mixins}/MixinConstructor.ts +0 -0
- /package/src/{__mixins → __internal/mixins}/NativeButtonMixin.ts +0 -0
- /package/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.ts +0 -0
- /package/src/{__mixins → __internal/mixins}/README.md +0 -0
- /package/src/{__utils → __internal/utils}/cache-fetch.ts +0 -0
- /package/src/{__utils → __internal/utils}/copy-to-clipboard.ts +0 -0
- /package/src/{__utils → __internal/utils}/dispatch-event-utils.ts +0 -0
- /package/src/{__utils → __internal/utils}/is-dark-mode.ts +0 -0
- /package/src/{__utils → __internal/utils}/is-in-viewport.ts +0 -0
- /package/src/{__utils → __internal/utils}/is-link.ts +0 -0
- /package/src/{__utils → __internal/utils}/observe-theme-change.ts +0 -0
- /package/src/{__utils → __internal/utils}/sanitize-svg.ts +0 -0
- /package/src/{__utils → __internal/utils}/throttle.ts +0 -0
- /package/src/{fab → button/fab}/index.ts +0 -0
package/dist/ripple.js
ADDED
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
|
|
2
|
+
import { n } from './property-B49QQ8pS.js';
|
|
3
|
+
import { r } from './state-DkTK9EGF.js';
|
|
4
|
+
import { e } from './query-CHb9Ft_d.js';
|
|
5
|
+
import { e as e$1 } from './class-map-DG7CA1et.js';
|
|
6
|
+
import { A as AttachableController } from './attachable-controller-CAKVrfcG.js';
|
|
7
|
+
import './base-Cl6v8-BZ.js';
|
|
8
|
+
import './directive-ZPhl09Yt.js';
|
|
9
|
+
|
|
10
|
+
const PRESS_GROW_MS = 450;
|
|
11
|
+
const MINIMUM_PRESS_MS = 225;
|
|
12
|
+
const INITIAL_ORIGIN_SCALE = 0.2;
|
|
13
|
+
const PADDING = 10;
|
|
14
|
+
const SOFT_EDGE_MINIMUM_SIZE = 75;
|
|
15
|
+
const SOFT_EDGE_CONTAINER_RATIO = 0.35;
|
|
16
|
+
const PRESS_PSEUDO = '::after';
|
|
17
|
+
const ANIMATION_FILL = 'forwards';
|
|
18
|
+
/**
|
|
19
|
+
* Interaction states for the ripple.
|
|
20
|
+
*
|
|
21
|
+
* On Touch:
|
|
22
|
+
* - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`
|
|
23
|
+
*
|
|
24
|
+
* On Mouse or Pen:
|
|
25
|
+
* - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`
|
|
26
|
+
*/
|
|
27
|
+
var State;
|
|
28
|
+
(function (State) {
|
|
29
|
+
/**
|
|
30
|
+
* Initial state of the control, no touch in progress.
|
|
31
|
+
*
|
|
32
|
+
* Transitions:
|
|
33
|
+
* - on touch down: transition to `TOUCH_DELAY`.
|
|
34
|
+
* - on mouse down: transition to `WAITING_FOR_CLICK`.
|
|
35
|
+
*/
|
|
36
|
+
State[State["INACTIVE"] = 0] = "INACTIVE";
|
|
37
|
+
/**
|
|
38
|
+
* Touch down has been received, waiting to determine if it's a swipe or
|
|
39
|
+
* scroll.
|
|
40
|
+
*
|
|
41
|
+
* Transitions:
|
|
42
|
+
* - on touch up: begin press; transition to `WAITING_FOR_CLICK`.
|
|
43
|
+
* - on cancel: transition to `INACTIVE`.
|
|
44
|
+
* - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.
|
|
45
|
+
*/
|
|
46
|
+
State[State["TOUCH_DELAY"] = 1] = "TOUCH_DELAY";
|
|
47
|
+
/**
|
|
48
|
+
* A touch has been deemed to be a press
|
|
49
|
+
*
|
|
50
|
+
* Transitions:
|
|
51
|
+
* - on up: transition to `WAITING_FOR_CLICK`.
|
|
52
|
+
*/
|
|
53
|
+
State[State["HOLDING"] = 2] = "HOLDING";
|
|
54
|
+
/**
|
|
55
|
+
* The user touch has finished, transition into rest state.
|
|
56
|
+
*
|
|
57
|
+
* Transitions:
|
|
58
|
+
* - on click end press; transition to `INACTIVE`.
|
|
59
|
+
*/
|
|
60
|
+
State[State["WAITING_FOR_CLICK"] = 3] = "WAITING_FOR_CLICK";
|
|
61
|
+
})(State || (State = {}));
|
|
62
|
+
/**
|
|
63
|
+
* Events that the ripple listens to.
|
|
64
|
+
*/
|
|
65
|
+
const EVENTS = [
|
|
66
|
+
'click',
|
|
67
|
+
'contextmenu',
|
|
68
|
+
'pointercancel',
|
|
69
|
+
'pointerdown',
|
|
70
|
+
'pointerenter',
|
|
71
|
+
'pointerleave',
|
|
72
|
+
'pointerup',
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Delay reacting to touch so that we do not show the ripple for a swipe or
|
|
76
|
+
* scroll interaction.
|
|
77
|
+
*/
|
|
78
|
+
const TOUCH_DELAY_MS = 150;
|
|
79
|
+
/**
|
|
80
|
+
* Used to detect if HCM is active. Events do not process during HCM when the
|
|
81
|
+
* ripple is not displayed.
|
|
82
|
+
*/
|
|
83
|
+
const FORCED_COLORS = window.matchMedia('(forced-colors: active)');
|
|
84
|
+
/**
|
|
85
|
+
* @label Ripple
|
|
86
|
+
* @tag wc-ripple
|
|
87
|
+
* @rawTag ripple
|
|
88
|
+
*
|
|
89
|
+
* @summary Provides ripple effect for interactive elements.
|
|
90
|
+
* @overview
|
|
91
|
+
* <p>Ripple creates a visual feedback effect when users interact with buttons or other clickable elements.</p>
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```html
|
|
95
|
+
* <style>
|
|
96
|
+
* .ripple-surface {
|
|
97
|
+
* position: relative;
|
|
98
|
+
* display: inline-flex;
|
|
99
|
+
* align-items: center;
|
|
100
|
+
* justify-content: center;
|
|
101
|
+
* width: 220px;
|
|
102
|
+
* height: 64px;
|
|
103
|
+
* border-radius: 12px;
|
|
104
|
+
* background: var(--color-surface-container-high);
|
|
105
|
+
* color: var(--color-on-surface);
|
|
106
|
+
* overflow: hidden;
|
|
107
|
+
* cursor: pointer;
|
|
108
|
+
* user-select: none;
|
|
109
|
+
* }
|
|
110
|
+
* </style>
|
|
111
|
+
* <div class="ripple-surface">
|
|
112
|
+
* <wc-ripple></wc-ripple>
|
|
113
|
+
* Ripple Effect
|
|
114
|
+
* </div>
|
|
115
|
+
* ```
|
|
116
|
+
* @tags display
|
|
117
|
+
*/
|
|
118
|
+
let Ripple = class Ripple extends i$1 {
|
|
119
|
+
constructor() {
|
|
120
|
+
super(...arguments);
|
|
121
|
+
/**
|
|
122
|
+
* Disables the ripple.
|
|
123
|
+
*/
|
|
124
|
+
this.disabled = false;
|
|
125
|
+
/** True while the pointer is hovering over the host element. */
|
|
126
|
+
this.hovered = false;
|
|
127
|
+
/** True while a press animation is playing. */
|
|
128
|
+
this.pressed = false;
|
|
129
|
+
// ── Private fields ────────────────────────────────────────────────────────
|
|
130
|
+
/** CSS size string (e.g. `"48px"`) for the growing ripple circle. */
|
|
131
|
+
this.rippleSize = '';
|
|
132
|
+
/** CSS scale factor applied to the ripple at the end of its animation. */
|
|
133
|
+
this.rippleScale = '';
|
|
134
|
+
/** Pixel size of the ripple at its initial (pre-grow) state. */
|
|
135
|
+
this.initialSize = 0;
|
|
136
|
+
/** Current interaction state of the ripple state machine. */
|
|
137
|
+
this.state = State.INACTIVE;
|
|
138
|
+
/** Bound reference to `handleEvent` passed to `addEventListener` / `removeEventListener`. */
|
|
139
|
+
this._boundHandleEvent = this.handleEvent.bind(this);
|
|
140
|
+
this.attachableController = new AttachableController(
|
|
141
|
+
// `LitElement` satisfies the ReactiveControllerHost & HTMLElement shape
|
|
142
|
+
// required by the controller.
|
|
143
|
+
this, this.onControlChange.bind(this));
|
|
144
|
+
}
|
|
145
|
+
get htmlFor() {
|
|
146
|
+
return this.attachableController.htmlFor;
|
|
147
|
+
}
|
|
148
|
+
set htmlFor(htmlFor) {
|
|
149
|
+
this.attachableController.htmlFor = htmlFor;
|
|
150
|
+
}
|
|
151
|
+
get control() {
|
|
152
|
+
return this.attachableController.control;
|
|
153
|
+
}
|
|
154
|
+
set control(control) {
|
|
155
|
+
this.attachableController.control = control;
|
|
156
|
+
}
|
|
157
|
+
connectedCallback() {
|
|
158
|
+
super.connectedCallback();
|
|
159
|
+
// Needed for VoiceOver, which will create a "group" if the element is a
|
|
160
|
+
// sibling to other content.
|
|
161
|
+
this.setAttribute('aria-hidden', 'true');
|
|
162
|
+
}
|
|
163
|
+
disconnectedCallback() {
|
|
164
|
+
super.disconnectedCallback();
|
|
165
|
+
this.detach();
|
|
166
|
+
}
|
|
167
|
+
attach(control) {
|
|
168
|
+
this.attachableController.attach(control);
|
|
169
|
+
}
|
|
170
|
+
detach() {
|
|
171
|
+
this.attachableController.detach();
|
|
172
|
+
}
|
|
173
|
+
onControlChange(prev, next) {
|
|
174
|
+
for (const event of EVENTS) {
|
|
175
|
+
prev?.removeEventListener(event, this._boundHandleEvent);
|
|
176
|
+
next?.addEventListener(event, this._boundHandleEvent);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
render() {
|
|
180
|
+
const classes = {
|
|
181
|
+
hovered: this.hovered,
|
|
182
|
+
pressed: this.pressed,
|
|
183
|
+
};
|
|
184
|
+
return b `<div class="surface ${e$1(classes)}"></div>`;
|
|
185
|
+
}
|
|
186
|
+
update(changedProps) {
|
|
187
|
+
if (changedProps.has('disabled') && this.disabled) {
|
|
188
|
+
this.hovered = false;
|
|
189
|
+
this.pressed = false;
|
|
190
|
+
}
|
|
191
|
+
super.update(changedProps);
|
|
192
|
+
}
|
|
193
|
+
handlePointerenter(event) {
|
|
194
|
+
if (!this.shouldReactToEvent(event)) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
this.hovered = true;
|
|
198
|
+
}
|
|
199
|
+
handlePointerleave(event) {
|
|
200
|
+
if (!this.shouldReactToEvent(event)) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
this.hovered = false;
|
|
204
|
+
// release a held mouse or pen press that moves outside the element
|
|
205
|
+
if (this.state !== State.INACTIVE) {
|
|
206
|
+
this.endPressAnimation();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
handlePointerup(event) {
|
|
210
|
+
if (!this.shouldReactToEvent(event)) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (this.state === State.HOLDING) {
|
|
214
|
+
this.state = State.WAITING_FOR_CLICK;
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (this.state === State.TOUCH_DELAY) {
|
|
218
|
+
this.state = State.WAITING_FOR_CLICK;
|
|
219
|
+
this.startPressAnimation(this.rippleStartEvent);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
async handlePointerdown(event) {
|
|
224
|
+
if (!this.shouldReactToEvent(event)) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
this.rippleStartEvent = event;
|
|
228
|
+
if (!this.isTouch(event)) {
|
|
229
|
+
this.state = State.WAITING_FOR_CLICK;
|
|
230
|
+
this.startPressAnimation(event);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
// Wait for a hold after touch delay
|
|
234
|
+
this.state = State.TOUCH_DELAY;
|
|
235
|
+
await new Promise(resolve => {
|
|
236
|
+
setTimeout(resolve, TOUCH_DELAY_MS);
|
|
237
|
+
});
|
|
238
|
+
if (this.state !== State.TOUCH_DELAY) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
this.state = State.HOLDING;
|
|
242
|
+
this.startPressAnimation(event);
|
|
243
|
+
}
|
|
244
|
+
handleClick() {
|
|
245
|
+
if (this.disabled) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (this.state === State.WAITING_FOR_CLICK) {
|
|
249
|
+
this.endPressAnimation();
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
if (this.state === State.INACTIVE) {
|
|
253
|
+
// keyboard synthesized click event
|
|
254
|
+
this.startPressAnimation();
|
|
255
|
+
this.endPressAnimation();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
handlePointercancel(event) {
|
|
259
|
+
if (!this.shouldReactToEvent(event)) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this.endPressAnimation();
|
|
263
|
+
}
|
|
264
|
+
handleContextmenu() {
|
|
265
|
+
if (this.disabled) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
this.endPressAnimation();
|
|
269
|
+
}
|
|
270
|
+
determineRippleSize() {
|
|
271
|
+
const { height, width } = this.getBoundingClientRect();
|
|
272
|
+
const maxDim = Math.max(height, width);
|
|
273
|
+
const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);
|
|
274
|
+
const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);
|
|
275
|
+
const hypotenuse = Math.sqrt(width ** 2 + height ** 2);
|
|
276
|
+
const maxRadius = hypotenuse + PADDING;
|
|
277
|
+
this.initialSize = initialSize;
|
|
278
|
+
const maybeZoomedScale = (maxRadius + softEdgeSize) / initialSize;
|
|
279
|
+
this.rippleScale = `${maybeZoomedScale}`;
|
|
280
|
+
this.rippleSize = `${initialSize}px`;
|
|
281
|
+
}
|
|
282
|
+
getTranslationCoordinates(positionEvent) {
|
|
283
|
+
const { height, width } = this.getBoundingClientRect();
|
|
284
|
+
// end in the center
|
|
285
|
+
const endPoint = {
|
|
286
|
+
x: (width - this.initialSize) / 2,
|
|
287
|
+
y: (height - this.initialSize) / 2,
|
|
288
|
+
};
|
|
289
|
+
let startPoint;
|
|
290
|
+
if (positionEvent instanceof PointerEvent) {
|
|
291
|
+
startPoint = this.getNormalizedPointerEventCoords(positionEvent);
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
startPoint = {
|
|
295
|
+
x: width / 2,
|
|
296
|
+
y: height / 2,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// center around start point
|
|
300
|
+
startPoint = {
|
|
301
|
+
x: startPoint.x - this.initialSize / 2,
|
|
302
|
+
y: startPoint.y - this.initialSize / 2,
|
|
303
|
+
};
|
|
304
|
+
return { startPoint, endPoint };
|
|
305
|
+
}
|
|
306
|
+
startPressAnimation(positionEvent) {
|
|
307
|
+
if (!this.mdRoot) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
this.pressed = true;
|
|
311
|
+
this.growAnimation?.cancel();
|
|
312
|
+
this.determineRippleSize();
|
|
313
|
+
const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);
|
|
314
|
+
const translateStart = `${startPoint.x}px, ${startPoint.y}px`;
|
|
315
|
+
const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;
|
|
316
|
+
this.growAnimation = this.mdRoot.animate({
|
|
317
|
+
top: [0, 0],
|
|
318
|
+
left: [0, 0],
|
|
319
|
+
height: [this.rippleSize, this.rippleSize],
|
|
320
|
+
width: [this.rippleSize, this.rippleSize],
|
|
321
|
+
transform: [
|
|
322
|
+
`translate(${translateStart}) scale(1)`,
|
|
323
|
+
`translate(${translateEnd}) scale(${this.rippleScale})`,
|
|
324
|
+
],
|
|
325
|
+
}, {
|
|
326
|
+
pseudoElement: PRESS_PSEUDO,
|
|
327
|
+
duration: PRESS_GROW_MS,
|
|
328
|
+
easing: 'cubic-bezier(0.2, 0, 0, 1)',
|
|
329
|
+
fill: ANIMATION_FILL,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
async endPressAnimation() {
|
|
333
|
+
this.rippleStartEvent = undefined;
|
|
334
|
+
this.state = State.INACTIVE;
|
|
335
|
+
const animation = this.growAnimation;
|
|
336
|
+
let pressAnimationPlayState = Infinity;
|
|
337
|
+
if (typeof animation?.currentTime === 'number') {
|
|
338
|
+
pressAnimationPlayState = animation.currentTime;
|
|
339
|
+
}
|
|
340
|
+
else if (animation?.currentTime) {
|
|
341
|
+
pressAnimationPlayState = animation.currentTime.to('ms').value;
|
|
342
|
+
}
|
|
343
|
+
if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {
|
|
344
|
+
this.pressed = false;
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
await new Promise(resolve => {
|
|
348
|
+
setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);
|
|
349
|
+
});
|
|
350
|
+
if (this.growAnimation !== animation) {
|
|
351
|
+
// A new press animation was started. The old animation was canceled and
|
|
352
|
+
// should not finish the pressed state.
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
this.pressed = false;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Returns `true` if
|
|
359
|
+
* - the ripple element is enabled
|
|
360
|
+
* - the pointer is primary for the input type
|
|
361
|
+
* - the pointer is the pointer that started the interaction, or will start
|
|
362
|
+
* the interaction
|
|
363
|
+
* - the pointer is a touch, or the pointer state has the primary button
|
|
364
|
+
* held, or the pointer is hovering
|
|
365
|
+
*/
|
|
366
|
+
shouldReactToEvent(event) {
|
|
367
|
+
if (this.disabled || !event.isPrimary) {
|
|
368
|
+
return false;
|
|
369
|
+
}
|
|
370
|
+
if (this.rippleStartEvent &&
|
|
371
|
+
this.rippleStartEvent.pointerId !== event.pointerId) {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
if (event.type === 'pointerenter' || event.type === 'pointerleave') {
|
|
375
|
+
return !this.isTouch(event);
|
|
376
|
+
}
|
|
377
|
+
const isPrimaryButton = event.buttons === 1;
|
|
378
|
+
return this.isTouch(event) || isPrimaryButton;
|
|
379
|
+
}
|
|
380
|
+
isTouch({ pointerType }) {
|
|
381
|
+
return pointerType === 'touch';
|
|
382
|
+
}
|
|
383
|
+
async handleEvent(event) {
|
|
384
|
+
if (FORCED_COLORS?.matches) {
|
|
385
|
+
// Skip event logic since the ripple is `display: none`.
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
switch (event.type) {
|
|
389
|
+
case 'click':
|
|
390
|
+
this.handleClick();
|
|
391
|
+
break;
|
|
392
|
+
case 'contextmenu':
|
|
393
|
+
this.handleContextmenu();
|
|
394
|
+
break;
|
|
395
|
+
case 'pointercancel':
|
|
396
|
+
this.handlePointercancel(event);
|
|
397
|
+
break;
|
|
398
|
+
case 'pointerdown':
|
|
399
|
+
await this.handlePointerdown(event);
|
|
400
|
+
break;
|
|
401
|
+
case 'pointerenter':
|
|
402
|
+
this.handlePointerenter(event);
|
|
403
|
+
break;
|
|
404
|
+
case 'pointerleave':
|
|
405
|
+
this.handlePointerleave(event);
|
|
406
|
+
break;
|
|
407
|
+
case 'pointerup':
|
|
408
|
+
this.handlePointerup(event);
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
getNormalizedPointerEventCoords(pointerEvent) {
|
|
413
|
+
const { scrollX, scrollY } = window;
|
|
414
|
+
const { left, top } = this.getBoundingClientRect();
|
|
415
|
+
const documentX = scrollX + left;
|
|
416
|
+
const documentY = scrollY + top;
|
|
417
|
+
const { pageX, pageY } = pointerEvent;
|
|
418
|
+
return {
|
|
419
|
+
x: pageX - documentX,
|
|
420
|
+
y: pageY - documentY,
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
Ripple.styles = i `
|
|
425
|
+
:host {
|
|
426
|
+
display: flex;
|
|
427
|
+
margin: auto;
|
|
428
|
+
pointer-events: none;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
:host([disabled]) {
|
|
432
|
+
display: none;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
@media (forced-colors: active) {
|
|
436
|
+
:host {
|
|
437
|
+
display: none;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
:host,
|
|
442
|
+
.surface {
|
|
443
|
+
border-radius: inherit;
|
|
444
|
+
corner-shape: inherit;
|
|
445
|
+
position: absolute;
|
|
446
|
+
inset: 0;
|
|
447
|
+
overflow: hidden;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.surface {
|
|
451
|
+
-webkit-tap-highlight-color: transparent;
|
|
452
|
+
|
|
453
|
+
&::before,
|
|
454
|
+
&::after {
|
|
455
|
+
content: '';
|
|
456
|
+
opacity: 0;
|
|
457
|
+
position: absolute;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
&::before {
|
|
461
|
+
background-color: var(--ripple-pressed-color, var(--color-on-surface));
|
|
462
|
+
inset: 0;
|
|
463
|
+
transition:
|
|
464
|
+
opacity 15ms linear,
|
|
465
|
+
background-color 15ms linear;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
&::after {
|
|
469
|
+
background: radial-gradient(
|
|
470
|
+
closest-side,
|
|
471
|
+
var(--ripple-pressed-color, var(--color-on-surface))
|
|
472
|
+
max(calc(100% - 70px), 65%),
|
|
473
|
+
transparent 100%
|
|
474
|
+
);
|
|
475
|
+
transform-origin: center center;
|
|
476
|
+
transition: opacity 375ms linear;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.hovered::before {
|
|
481
|
+
opacity: 0.08;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.pressed::after {
|
|
485
|
+
opacity: 0.12;
|
|
486
|
+
transition-duration: 105ms;
|
|
487
|
+
}
|
|
488
|
+
`;
|
|
489
|
+
__decorate([
|
|
490
|
+
n({ type: Boolean, reflect: true })
|
|
491
|
+
], Ripple.prototype, "disabled", void 0);
|
|
492
|
+
__decorate([
|
|
493
|
+
r()
|
|
494
|
+
], Ripple.prototype, "hovered", void 0);
|
|
495
|
+
__decorate([
|
|
496
|
+
r()
|
|
497
|
+
], Ripple.prototype, "pressed", void 0);
|
|
498
|
+
__decorate([
|
|
499
|
+
e('.surface')
|
|
500
|
+
], Ripple.prototype, "mdRoot", void 0);
|
|
501
|
+
Ripple = __decorate([
|
|
502
|
+
IndividualComponent
|
|
503
|
+
], Ripple);
|
|
504
|
+
|
|
505
|
+
export { Ripple };
|
|
506
|
+
//# sourceMappingURL=ripple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple.js","sources":["../../src/ripple/ripple.ts"],"sourcesContent":["import { LitElement, html, css, PropertyValues, isServer } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport {\n Attachable,\n AttachableController,\n} from '@/__internal/controllers/attachable-controller.js';\n\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nenum State {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK,\n}\n\n/**\n * Events that the ripple listens to.\n */\nconst EVENTS = [\n 'click',\n 'contextmenu',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerup',\n];\n\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n\n/**\n * Used to detect if HCM is active. Events do not process during HCM when the\n * ripple is not displayed.\n */\nconst FORCED_COLORS = window.matchMedia('(forced-colors: active)');\n\n/**\n * @label Ripple\n * @tag wc-ripple\n * @rawTag ripple\n *\n * @summary Provides ripple effect for interactive elements.\n * @overview\n * <p>Ripple creates a visual feedback effect when users interact with buttons or other clickable elements.</p>\n *\n * @example\n * ```html\n * <style>\n * .ripple-surface {\n * position: relative;\n * display: inline-flex;\n * align-items: center;\n * justify-content: center;\n * width: 220px;\n * height: 64px;\n * border-radius: 12px;\n * background: var(--color-surface-container-high);\n * color: var(--color-on-surface);\n * overflow: hidden;\n * cursor: pointer;\n * user-select: none;\n * }\n * </style>\n * <div class=\"ripple-surface\">\n * <wc-ripple></wc-ripple>\n * Ripple Effect\n * </div>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Ripple extends LitElement implements Attachable {\n static styles = css`\n :host {\n display: flex;\n margin: auto;\n pointer-events: none;\n }\n\n :host([disabled]) {\n display: none;\n }\n\n @media (forced-colors: active) {\n :host {\n display: none;\n }\n }\n\n :host,\n .surface {\n border-radius: inherit;\n corner-shape: inherit;\n position: absolute;\n inset: 0;\n overflow: hidden;\n }\n\n .surface {\n -webkit-tap-highlight-color: transparent;\n\n &::before,\n &::after {\n content: '';\n opacity: 0;\n position: absolute;\n }\n\n &::before {\n background-color: var(--ripple-pressed-color, var(--color-on-surface));\n inset: 0;\n transition:\n opacity 15ms linear,\n background-color 15ms linear;\n }\n\n &::after {\n background: radial-gradient(\n closest-side,\n var(--ripple-pressed-color, var(--color-on-surface))\n max(calc(100% - 70px), 65%),\n transparent 100%\n );\n transform-origin: center center;\n transition: opacity 375ms linear;\n }\n }\n\n .hovered::before {\n opacity: 0.08;\n }\n\n .pressed::after {\n opacity: 0.12;\n transition-duration: 105ms;\n }\n `;\n\n /**\n * Disables the ripple.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** True while the pointer is hovering over the host element. */\n @state() private hovered = false;\n\n /** True while a press animation is playing. */\n @state() private pressed = false;\n\n @query('.surface') private readonly mdRoot!: HTMLElement | null;\n\n // ── Private fields ────────────────────────────────────────────────────────\n\n /** CSS size string (e.g. `\"48px\"`) for the growing ripple circle. */\n private rippleSize = '';\n\n /** CSS scale factor applied to the ripple at the end of its animation. */\n private rippleScale = '';\n\n /** Pixel size of the ripple at its initial (pre-grow) state. */\n private initialSize = 0;\n\n /** Reference to the currently running grow animation, if any. */\n private growAnimation?: Animation;\n\n /** Current interaction state of the ripple state machine. */\n private state = State.INACTIVE;\n\n /** Pointer event that initiated the current press, used to calculate start coordinates. */\n private rippleStartEvent?: PointerEvent;\n\n /** Bound reference to `handleEvent` passed to `addEventListener` / `removeEventListener`. */\n private readonly _boundHandleEvent = this.handleEvent.bind(this);\n\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n\n set htmlFor(htmlFor: string | null) {\n this.attachableController.htmlFor = htmlFor;\n }\n\n get control() {\n return this.attachableController.control;\n }\n\n set control(control: HTMLElement | null) {\n this.attachableController.control = control;\n }\n\n private readonly attachableController = new AttachableController(\n // `LitElement` satisfies the ReactiveControllerHost & HTMLElement shape\n // required by the controller.\n this,\n this.onControlChange.bind(this),\n );\n\n override connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.detach();\n }\n\n attach(control: HTMLElement) {\n this.attachableController.attach(control);\n }\n\n detach() {\n this.attachableController.detach();\n }\n\n private onControlChange(prev: HTMLElement | null, next: HTMLElement | null) {\n if (isServer) return;\n\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this._boundHandleEvent);\n next?.addEventListener(event, this._boundHandleEvent);\n }\n }\n\n protected override render() {\n const classes = {\n hovered: this.hovered,\n pressed: this.pressed,\n };\n\n return html`<div class=\"surface ${classMap(classes)}\"></div>`;\n }\n\n protected override update(changedProps: PropertyValues<Ripple>) {\n if (changedProps.has('disabled') && this.disabled) {\n this.hovered = false;\n this.pressed = false;\n }\n super.update(changedProps);\n }\n\n handlePointerenter(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.hovered = true;\n }\n\n handlePointerleave(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.hovered = false;\n\n // release a held mouse or pen press that moves outside the element\n if (this.state !== State.INACTIVE) {\n this.endPressAnimation();\n }\n }\n\n private handlePointerup(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n return;\n }\n\n if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(this.rippleStartEvent);\n return;\n }\n }\n\n private async handlePointerdown(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.rippleStartEvent = event;\n if (!this.isTouch(event)) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(event);\n return;\n }\n\n // Wait for a hold after touch delay\n this.state = State.TOUCH_DELAY;\n await new Promise(resolve => {\n setTimeout(resolve, TOUCH_DELAY_MS);\n });\n\n if (this.state !== State.TOUCH_DELAY) {\n return;\n }\n\n this.state = State.HOLDING;\n this.startPressAnimation(event);\n }\n\n private handleClick() {\n if (this.disabled) {\n return;\n }\n\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPressAnimation();\n return;\n }\n\n if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.startPressAnimation();\n this.endPressAnimation();\n }\n }\n\n private handlePointercancel(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.endPressAnimation();\n }\n\n private handleContextmenu() {\n if (this.disabled) {\n return;\n }\n\n this.endPressAnimation();\n }\n\n private determineRippleSize() {\n const { height, width } = this.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(\n SOFT_EDGE_CONTAINER_RATIO * maxDim,\n SOFT_EDGE_MINIMUM_SIZE,\n );\n\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n\n this.initialSize = initialSize;\n const maybeZoomedScale = (maxRadius + softEdgeSize) / initialSize;\n this.rippleScale = `${maybeZoomedScale}`;\n this.rippleSize = `${initialSize}px`;\n }\n\n private getTranslationCoordinates(positionEvent?: Event) {\n const { height, width } = this.getBoundingClientRect();\n // end in the center\n const endPoint = {\n x: (width - this.initialSize) / 2,\n y: (height - this.initialSize) / 2,\n };\n\n let startPoint;\n if (positionEvent instanceof PointerEvent) {\n startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n } else {\n startPoint = {\n x: width / 2,\n y: height / 2,\n };\n }\n\n // center around start point\n startPoint = {\n x: startPoint.x - this.initialSize / 2,\n y: startPoint.y - this.initialSize / 2,\n };\n\n return { startPoint, endPoint };\n }\n\n private startPressAnimation(positionEvent?: Event) {\n if (!this.mdRoot) {\n return;\n }\n\n this.pressed = true;\n this.growAnimation?.cancel();\n this.determineRippleSize();\n const { startPoint, endPoint } =\n this.getTranslationCoordinates(positionEvent);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n\n this.growAnimation = this.mdRoot.animate(\n {\n top: [0, 0],\n left: [0, 0],\n height: [this.rippleSize, this.rippleSize],\n width: [this.rippleSize, this.rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${this.rippleScale})`,\n ],\n },\n {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: 'cubic-bezier(0.2, 0, 0, 1)',\n fill: ANIMATION_FILL,\n },\n );\n }\n\n private async endPressAnimation() {\n this.rippleStartEvent = undefined;\n this.state = State.INACTIVE;\n const animation = this.growAnimation;\n let pressAnimationPlayState = Infinity;\n if (typeof animation?.currentTime === 'number') {\n pressAnimationPlayState = animation.currentTime;\n } else if (animation?.currentTime) {\n pressAnimationPlayState = animation.currentTime.to('ms').value;\n }\n\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.pressed = false;\n return;\n }\n\n await new Promise(resolve => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n\n if (this.growAnimation !== animation) {\n // A new press animation was started. The old animation was canceled and\n // should not finish the pressed state.\n return;\n }\n\n this.pressed = false;\n }\n\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n private shouldReactToEvent(event: PointerEvent) {\n if (this.disabled || !event.isPrimary) {\n return false;\n }\n\n if (\n this.rippleStartEvent &&\n this.rippleStartEvent.pointerId !== event.pointerId\n ) {\n return false;\n }\n\n if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n return !this.isTouch(event);\n }\n\n const isPrimaryButton = event.buttons === 1;\n return this.isTouch(event) || isPrimaryButton;\n }\n\n private isTouch({ pointerType }: PointerEvent) {\n return pointerType === 'touch';\n }\n\n async handleEvent(event: Event) {\n if (FORCED_COLORS?.matches) {\n // Skip event logic since the ripple is `display: none`.\n return;\n }\n\n switch (event.type) {\n case 'click':\n this.handleClick();\n break;\n case 'contextmenu':\n this.handleContextmenu();\n break;\n case 'pointercancel':\n this.handlePointercancel(event as PointerEvent);\n break;\n case 'pointerdown':\n await this.handlePointerdown(event as PointerEvent);\n break;\n case 'pointerenter':\n this.handlePointerenter(event as PointerEvent);\n break;\n case 'pointerleave':\n this.handlePointerleave(event as PointerEvent);\n break;\n case 'pointerup':\n this.handlePointerup(event as PointerEvent);\n break;\n default:\n break;\n }\n }\n\n private getNormalizedPointerEventCoords(pointerEvent: PointerEvent): {\n x: number;\n y: number;\n } {\n const { scrollX, scrollY } = window;\n const { left, top } = this.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { pageX, pageY } = pointerEvent;\n return {\n x: pageX - documentX,\n y: pageY - documentY,\n };\n }\n}\n"],"names":["LitElement","html","classMap","css","property","state","query"],"mappings":"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"}
|
package/dist/search.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { E, A,
|
|
2
|
-
import { n } from './property-
|
|
3
|
-
import { r as r$1 } from './state-
|
|
4
|
-
import { e as e$1 } from './query-
|
|
5
|
-
import { e as e$2 } from './class-map-
|
|
1
|
+
import { E, A, i as i$1, _ as __decorate, I as IndividualComponent, a as i$2, b } from './IndividualComponent-Bdwyrvd6.js';
|
|
2
|
+
import { n } from './property-B49QQ8pS.js';
|
|
3
|
+
import { r as r$1 } from './state-DkTK9EGF.js';
|
|
4
|
+
import { e as e$1 } from './query-CHb9Ft_d.js';
|
|
5
|
+
import { e as e$2 } from './class-map-DG7CA1et.js';
|
|
6
6
|
import { e, i, t } from './directive-ZPhl09Yt.js';
|
|
7
|
-
import { o as observerSlotChangesWithCallback } from './observe-slot-change-
|
|
7
|
+
import { o as observerSlotChangesWithCallback } from './observe-slot-change-DPxaZrZF.js';
|
|
8
|
+
import './base-Cl6v8-BZ.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @license
|
|
@@ -26,6 +27,10 @@ var css_248z$1 = i$1`* {
|
|
|
26
27
|
display: none !important;
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
[hidden] {
|
|
31
|
+
display: none !important;
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
:host {
|
|
30
35
|
display: block;
|
|
31
36
|
--search-container-shape: var(--shape-corner-full);
|
|
@@ -237,7 +242,7 @@ var css_248z = i$1`:host {
|
|
|
237
242
|
* @tag wc-search
|
|
238
243
|
* @rawTag search
|
|
239
244
|
*
|
|
240
|
-
* @summary A
|
|
245
|
+
* @summary A search bar for filtering and finding content.
|
|
241
246
|
* @overview
|
|
242
247
|
* <p>The search component provides a text input designed for search interactions.
|
|
243
248
|
* It supports outlined and filled variants, an optional clear button, and leading/trailing icon slots.</p>
|