@spectrum-web-components/overlay 0.36.0 → 0.37.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 +266 -149
- package/custom-elements.json +1678 -553
- package/package.json +49 -22
- package/sp-overlay.d.ts +6 -0
- package/sp-overlay.dev.js +5 -0
- package/{active-overlay.dev.js.map → sp-overlay.dev.js.map} +3 -3
- package/sp-overlay.js +2 -0
- package/{active-overlay.js.map → sp-overlay.js.map} +4 -4
- package/src/AbstractOverlay.d.ts +58 -0
- package/src/AbstractOverlay.dev.js +211 -0
- package/src/AbstractOverlay.dev.js.map +7 -0
- package/src/AbstractOverlay.js +2 -0
- package/src/AbstractOverlay.js.map +7 -0
- package/src/Overlay.d.ts +163 -0
- package/src/Overlay.dev.js +792 -0
- package/src/Overlay.dev.js.map +7 -0
- package/src/Overlay.js +33 -0
- package/src/Overlay.js.map +7 -0
- package/src/OverlayDialog.d.ts +4 -0
- package/src/OverlayDialog.dev.js +135 -0
- package/src/OverlayDialog.dev.js.map +7 -0
- package/src/OverlayDialog.js +2 -0
- package/src/OverlayDialog.js.map +7 -0
- package/src/OverlayNoPopover.d.ts +4 -0
- package/src/OverlayNoPopover.dev.js +109 -0
- package/src/OverlayNoPopover.dev.js.map +7 -0
- package/src/OverlayNoPopover.js +2 -0
- package/src/OverlayNoPopover.js.map +7 -0
- package/src/OverlayPopover.d.ts +4 -0
- package/src/OverlayPopover.dev.js +169 -0
- package/src/OverlayPopover.dev.js.map +7 -0
- package/src/OverlayPopover.js +2 -0
- package/src/OverlayPopover.js.map +7 -0
- package/src/OverlayStack.d.ts +43 -0
- package/src/OverlayStack.dev.js +150 -0
- package/src/OverlayStack.dev.js.map +7 -0
- package/src/OverlayStack.js +2 -0
- package/src/OverlayStack.js.map +7 -0
- package/src/OverlayTrigger.d.ts +26 -42
- package/src/OverlayTrigger.dev.js +172 -296
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +49 -25
- package/src/OverlayTrigger.js.map +3 -3
- package/src/PlacementController.d.ts +38 -0
- package/src/PlacementController.dev.js +199 -0
- package/src/PlacementController.dev.js.map +7 -0
- package/src/PlacementController.js +2 -0
- package/src/PlacementController.js.map +7 -0
- package/src/VirtualTrigger.dev.js +2 -1
- package/src/VirtualTrigger.dev.js.map +2 -2
- package/src/VirtualTrigger.js +1 -1
- package/src/VirtualTrigger.js.map +2 -2
- package/src/fullSizePlugin.d.ts +12 -0
- package/src/fullSizePlugin.dev.js +39 -0
- package/src/fullSizePlugin.dev.js.map +7 -0
- package/src/fullSizePlugin.js +2 -0
- package/src/fullSizePlugin.js.map +7 -0
- package/src/index.d.ts +2 -3
- package/src/index.dev.js +2 -3
- package/src/index.dev.js.map +2 -2
- package/src/index.js +1 -1
- package/src/index.js.map +2 -2
- package/src/loader.d.ts +1 -2
- package/src/loader.dev.js +2 -19
- package/src/loader.dev.js.map +2 -2
- package/src/loader.js +1 -1
- package/src/loader.js.map +3 -3
- package/src/overlay-timer.dev.js.map +2 -2
- package/src/overlay-timer.js.map +2 -2
- package/src/overlay-trigger.css.dev.js +1 -1
- package/src/overlay-trigger.css.dev.js.map +1 -1
- package/src/overlay-trigger.css.js +3 -3
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay-types.d.ts +25 -31
- package/src/overlay-types.dev.js +1 -0
- package/src/overlay-types.dev.js.map +3 -3
- package/src/overlay-types.js +1 -1
- package/src/overlay-types.js.map +3 -3
- package/src/overlay.css.dev.js +9 -0
- package/src/overlay.css.dev.js.map +7 -0
- package/src/overlay.css.js +6 -0
- package/src/overlay.css.js.map +7 -0
- package/src/topLayerOverTransforms.d.ts +2 -0
- package/src/topLayerOverTransforms.dev.js +91 -0
- package/src/topLayerOverTransforms.dev.js.map +7 -0
- package/src/topLayerOverTransforms.js +2 -0
- package/src/topLayerOverTransforms.js.map +7 -0
- package/stories/overlay-element.stories.js +476 -0
- package/stories/overlay-element.stories.js.map +7 -0
- package/stories/overlay-story-components.js +9 -8
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +824 -680
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +5 -0
- package/sync/overlay-trigger.dev.js +2 -4
- package/sync/overlay-trigger.dev.js.map +2 -2
- package/sync/overlay-trigger.js +1 -1
- package/sync/overlay-trigger.js.map +3 -3
- package/test/benchmark/basic-test.js +2 -2
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/index.js +414 -377
- package/test/index.js.map +3 -3
- package/test/overlay-element.test-vrt.js +5 -0
- package/test/overlay-element.test-vrt.js.map +7 -0
- package/test/overlay-element.test.js +682 -0
- package/test/overlay-element.test.js.map +7 -0
- package/test/overlay-lifecycle.test.js +36 -106
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +11 -5
- package/test/overlay-trigger-click.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +46 -36
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +38 -25
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +41 -35
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +211 -82
- package/test/overlay-trigger-longpress.test.js.map +2 -2
- package/test/overlay-trigger-sync.test.js +1 -1
- package/test/overlay-trigger-sync.test.js.map +2 -2
- package/test/overlay-trigger.test.js +1 -1
- package/test/overlay-trigger.test.js.map +2 -2
- package/test/overlay-update.test.js +5 -5
- package/test/overlay-update.test.js.map +2 -2
- package/test/overlay-v1.test.js +547 -0
- package/test/overlay-v1.test.js.map +7 -0
- package/test/overlay.test.js +385 -269
- package/test/overlay.test.js.map +3 -3
- package/active-overlay.d.ts +0 -6
- package/active-overlay.dev.js +0 -5
- package/active-overlay.js +0 -2
- package/src/ActiveOverlay.d.ts +0 -84
- package/src/ActiveOverlay.dev.js +0 -517
- package/src/ActiveOverlay.dev.js.map +0 -7
- package/src/ActiveOverlay.js +0 -16
- package/src/ActiveOverlay.js.map +0 -7
- package/src/active-overlay.css.dev.js +0 -13
- package/src/active-overlay.css.dev.js.map +0 -7
- package/src/active-overlay.css.js +0 -10
- package/src/active-overlay.css.js.map +0 -7
- package/src/overlay-stack.d.ts +0 -50
- package/src/overlay-stack.dev.js +0 -515
- package/src/overlay-stack.dev.js.map +0 -7
- package/src/overlay-stack.js +0 -34
- package/src/overlay-stack.js.map +0 -7
- package/src/overlay-utils.d.ts +0 -3
- package/src/overlay-utils.dev.js +0 -31
- package/src/overlay-utils.dev.js.map +0 -7
- package/src/overlay-utils.js +0 -2
- package/src/overlay-utils.js.map +0 -7
- package/src/overlay.d.ts +0 -59
- package/src/overlay.dev.js +0 -127
- package/src/overlay.dev.js.map +0 -7
- package/src/overlay.js +0 -2
- package/src/overlay.js.map +0 -7
- /package/src/{active-overlay.css.d.ts → overlay.css.d.ts} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";import{css as a}from"@spectrum-web-components/base";const o=a`
|
|
2
|
+
:host{--swc-overlay-animation-distance:var(
|
|
3
|
+
--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)
|
|
4
|
+
);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;height:auto;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}dialog:modal{--mod-popover-filter:var(--spectrum-popover-filter)}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog::backdrop{display:none}.dialog:before{content:"";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}
|
|
5
|
+
`;export default o;
|
|
6
|
+
//# sourceMappingURL=overlay.css.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["overlay.css.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--swc-overlay-animation-distance:var(\n--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)\n);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;height:auto;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}dialog:modal{--mod-popover-filter:var(--spectrum-popover-filter)}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog::backdrop{display:none}.dialog:before{content:\"\";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}\n`;\nexport default styles;"],
|
|
5
|
+
"mappings": "aAWA,OAAS,OAAAA,MAAW,gCACpB,MAAMC,EAASD;AAAA;AAAA;AAAA;AAAA,EAKf,eAAeC",
|
|
6
|
+
"names": ["css", "styles"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {
|
|
3
|
+
getContainingBlock,
|
|
4
|
+
getWindow,
|
|
5
|
+
isContainingBlock
|
|
6
|
+
} from "@floating-ui/utils/dom";
|
|
7
|
+
import { VirtualTrigger } from "./VirtualTrigger.dev.js";
|
|
8
|
+
export const topLayerOverTransforms = () => ({
|
|
9
|
+
name: "topLayer",
|
|
10
|
+
async fn(middlewareArguments) {
|
|
11
|
+
const {
|
|
12
|
+
x,
|
|
13
|
+
y,
|
|
14
|
+
elements: { reference, floating }
|
|
15
|
+
} = middlewareArguments;
|
|
16
|
+
let onTopLayer = false;
|
|
17
|
+
let topLayerIsFloating = false;
|
|
18
|
+
let withinReference = false;
|
|
19
|
+
const diffCoords = {
|
|
20
|
+
x: 0,
|
|
21
|
+
y: 0
|
|
22
|
+
};
|
|
23
|
+
try {
|
|
24
|
+
onTopLayer = onTopLayer || floating.matches(":popover-open");
|
|
25
|
+
} catch (error) {
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
onTopLayer = onTopLayer || floating.matches(":open");
|
|
29
|
+
} catch (error) {
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
onTopLayer = onTopLayer || floating.matches(":modal");
|
|
33
|
+
} catch (error) {
|
|
34
|
+
}
|
|
35
|
+
topLayerIsFloating = onTopLayer;
|
|
36
|
+
const dialogAncestorQueryEvent = new Event("floating-ui-dialog-test", {
|
|
37
|
+
composed: true,
|
|
38
|
+
bubbles: true
|
|
39
|
+
});
|
|
40
|
+
floating.addEventListener(
|
|
41
|
+
"floating-ui-dialog-test",
|
|
42
|
+
(event) => {
|
|
43
|
+
event.composedPath().forEach((el) => {
|
|
44
|
+
withinReference = withinReference || el === reference;
|
|
45
|
+
if (el === floating || el.localName !== "dialog")
|
|
46
|
+
return;
|
|
47
|
+
try {
|
|
48
|
+
onTopLayer = onTopLayer || el.matches(":modal");
|
|
49
|
+
} catch (error) {
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
{ once: true }
|
|
54
|
+
);
|
|
55
|
+
floating.dispatchEvent(dialogAncestorQueryEvent);
|
|
56
|
+
let overTransforms = false;
|
|
57
|
+
if (!(reference instanceof VirtualTrigger)) {
|
|
58
|
+
const root = withinReference ? reference : floating;
|
|
59
|
+
const containingBlock = isContainingBlock(root) ? root : getContainingBlock(root);
|
|
60
|
+
if (containingBlock !== null && getWindow(containingBlock) !== containingBlock) {
|
|
61
|
+
const css = getComputedStyle(containingBlock);
|
|
62
|
+
overTransforms = css.transform !== "none" || css.filter ? css.filter !== "none" : false;
|
|
63
|
+
}
|
|
64
|
+
if (onTopLayer && overTransforms && containingBlock) {
|
|
65
|
+
const rect = containingBlock.getBoundingClientRect();
|
|
66
|
+
diffCoords.x = rect.x;
|
|
67
|
+
diffCoords.y = rect.y;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (onTopLayer && topLayerIsFloating) {
|
|
71
|
+
return {
|
|
72
|
+
x: x + diffCoords.x,
|
|
73
|
+
y: y + diffCoords.y,
|
|
74
|
+
data: diffCoords
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (onTopLayer) {
|
|
78
|
+
return {
|
|
79
|
+
x,
|
|
80
|
+
y,
|
|
81
|
+
data: diffCoords
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
x: x - diffCoords.x,
|
|
86
|
+
y: y - diffCoords.y,
|
|
87
|
+
data: diffCoords
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=topLayerOverTransforms.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["topLayerOverTransforms.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport type { Middleware, MiddlewareState } from '@floating-ui/dom';\nimport {\n getContainingBlock,\n getWindow,\n isContainingBlock,\n} from '@floating-ui/utils/dom';\nimport { VirtualTrigger } from './VirtualTrigger.dev.js'\n\nexport const topLayerOverTransforms = (): Middleware => ({\n name: 'topLayer',\n async fn(middlewareArguments: MiddlewareState) {\n const {\n x,\n y,\n elements: { reference, floating },\n } = middlewareArguments;\n let onTopLayer = false;\n let topLayerIsFloating = false;\n let withinReference = false;\n const diffCoords = {\n x: 0,\n y: 0,\n };\n try {\n onTopLayer = onTopLayer || floating.matches(':popover-open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next 3 */\n } catch (error) {}\n topLayerIsFloating = onTopLayer;\n const dialogAncestorQueryEvent = new Event('floating-ui-dialog-test', {\n composed: true,\n bubbles: true,\n });\n floating.addEventListener(\n 'floating-ui-dialog-test',\n (event: Event) => {\n (event.composedPath() as unknown as Element[]).forEach((el) => {\n withinReference = withinReference || el === reference;\n if (el === floating || el.localName !== 'dialog') return;\n try {\n onTopLayer = onTopLayer || el.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next */\n } catch (error) {}\n });\n },\n { once: true }\n );\n floating.dispatchEvent(dialogAncestorQueryEvent);\n let overTransforms = false;\n if (!(reference instanceof VirtualTrigger)) {\n const root = (withinReference ? reference : floating) as Element;\n const containingBlock = isContainingBlock(root)\n ? root\n : getContainingBlock(root);\n if (\n containingBlock !== null &&\n getWindow(containingBlock) !==\n (containingBlock as unknown as Window)\n ) {\n const css = getComputedStyle(containingBlock);\n overTransforms =\n css.transform !== 'none' || css.filter\n ? css.filter !== 'none'\n : false;\n }\n\n if (onTopLayer && overTransforms && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n diffCoords.x = rect.x;\n diffCoords.y = rect.y;\n }\n }\n\n if (onTopLayer && topLayerIsFloating) {\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords,\n };\n }\n\n if (onTopLayer) {\n return {\n x,\n y,\n data: diffCoords,\n };\n }\n\n return {\n x: x - diffCoords.x,\n y: y - diffCoords.y,\n data: diffCoords,\n };\n },\n});\n"],
|
|
5
|
+
"mappings": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,sBAAsB;AAExB,aAAM,yBAAyB,OAAmB;AAAA,EACrD,MAAM;AAAA,EACN,MAAM,GAAG,qBAAsC;AAC3C,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU,EAAE,WAAW,SAAS;AAAA,IACpC,IAAI;AACJ,QAAI,aAAa;AACjB,QAAI,qBAAqB;AACzB,QAAI,kBAAkB;AACtB,UAAM,aAAa;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AACA,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,eAAe;AAAA,IAE/D,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,OAAO;AAAA,IAEvD,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,QAAQ;AAAA,IAGxD,SAAS,OAAO;AAAA,IAAC;AACjB,yBAAqB;AACrB,UAAM,2BAA2B,IAAI,MAAM,2BAA2B;AAAA,MAClE,UAAU;AAAA,MACV,SAAS;AAAA,IACb,CAAC;AACD,aAAS;AAAA,MACL;AAAA,MACA,CAAC,UAAiB;AACd,QAAC,MAAM,aAAa,EAA2B,QAAQ,CAAC,OAAO;AAC3D,4BAAkB,mBAAmB,OAAO;AAC5C,cAAI,OAAO,YAAY,GAAG,cAAc;AAAU;AAClD,cAAI;AACA,yBAAa,cAAc,GAAG,QAAQ,QAAQ;AAAA,UAGlD,SAAS,OAAO;AAAA,UAAC;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IACjB;AACA,aAAS,cAAc,wBAAwB;AAC/C,QAAI,iBAAiB;AACrB,QAAI,EAAE,qBAAqB,iBAAiB;AACxC,YAAM,OAAQ,kBAAkB,YAAY;AAC5C,YAAM,kBAAkB,kBAAkB,IAAI,IACxC,OACA,mBAAmB,IAAI;AAC7B,UACI,oBAAoB,QACpB,UAAU,eAAe,MACpB,iBACP;AACE,cAAM,MAAM,iBAAiB,eAAe;AAC5C,yBACI,IAAI,cAAc,UAAU,IAAI,SAC1B,IAAI,WAAW,SACf;AAAA,MACd;AAEA,UAAI,cAAc,kBAAkB,iBAAiB;AACjD,cAAM,OAAO,gBAAgB,sBAAsB;AACnD,mBAAW,IAAI,KAAK;AACpB,mBAAW,IAAI,KAAK;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI,cAAc,oBAAoB;AAClC,aAAO;AAAA,QACH,GAAG,IAAI,WAAW;AAAA,QAClB,GAAG,IAAI,WAAW;AAAA,QAClB,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,QAAI,YAAY;AACZ,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,GAAG,IAAI,WAAW;AAAA,MAClB,GAAG,IAAI,WAAW;AAAA,MAClB,MAAM;AAAA,IACV;AAAA,EACJ;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";import{getContainingBlock as g,getWindow as u,isContainingBlock as p}from"@floating-ui/utils/dom";import{VirtualTrigger as h}from"./VirtualTrigger.js";export const topLayerOverTransforms=()=>({name:"topLayer",async fn(m){const{x:i,y:s,elements:{reference:c,floating:r}}=m;let e=!1,f=!1,l=!1;const o={x:0,y:0};try{e=e||r.matches(":popover-open")}catch(n){}try{e=e||r.matches(":open")}catch(n){}try{e=e||r.matches(":modal")}catch(n){}f=e;const y=new Event("floating-ui-dialog-test",{composed:!0,bubbles:!0});r.addEventListener("floating-ui-dialog-test",n=>{n.composedPath().forEach(t=>{if(l=l||t===c,!(t===r||t.localName!=="dialog"))try{e=e||t.matches(":modal")}catch(a){}})},{once:!0}),r.dispatchEvent(y);let d=!1;if(!(c instanceof h)){const n=l?c:r,t=p(n)?n:g(n);if(t!==null&&u(t)!==t){const a=getComputedStyle(t);d=a.transform!=="none"||a.filter?a.filter!=="none":!1}if(e&&d&&t){const a=t.getBoundingClientRect();o.x=a.x,o.y=a.y}}return e&&f?{x:i+o.x,y:s+o.y,data:o}:e?{x:i,y:s,data:o}:{x:i-o.x,y:s-o.y,data:o}}});
|
|
2
|
+
//# sourceMappingURL=topLayerOverTransforms.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["topLayerOverTransforms.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport type { Middleware, MiddlewareState } from '@floating-ui/dom';\nimport {\n getContainingBlock,\n getWindow,\n isContainingBlock,\n} from '@floating-ui/utils/dom';\nimport { VirtualTrigger } from './VirtualTrigger.js';\n\nexport const topLayerOverTransforms = (): Middleware => ({\n name: 'topLayer',\n async fn(middlewareArguments: MiddlewareState) {\n const {\n x,\n y,\n elements: { reference, floating },\n } = middlewareArguments;\n let onTopLayer = false;\n let topLayerIsFloating = false;\n let withinReference = false;\n const diffCoords = {\n x: 0,\n y: 0,\n };\n try {\n onTopLayer = onTopLayer || floating.matches(':popover-open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next 3 */\n } catch (error) {}\n topLayerIsFloating = onTopLayer;\n const dialogAncestorQueryEvent = new Event('floating-ui-dialog-test', {\n composed: true,\n bubbles: true,\n });\n floating.addEventListener(\n 'floating-ui-dialog-test',\n (event: Event) => {\n (event.composedPath() as unknown as Element[]).forEach((el) => {\n withinReference = withinReference || el === reference;\n if (el === floating || el.localName !== 'dialog') return;\n try {\n onTopLayer = onTopLayer || el.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next */\n } catch (error) {}\n });\n },\n { once: true }\n );\n floating.dispatchEvent(dialogAncestorQueryEvent);\n let overTransforms = false;\n if (!(reference instanceof VirtualTrigger)) {\n const root = (withinReference ? reference : floating) as Element;\n const containingBlock = isContainingBlock(root)\n ? root\n : getContainingBlock(root);\n if (\n containingBlock !== null &&\n getWindow(containingBlock) !==\n (containingBlock as unknown as Window)\n ) {\n const css = getComputedStyle(containingBlock);\n overTransforms =\n css.transform !== 'none' || css.filter\n ? css.filter !== 'none'\n : false;\n }\n\n if (onTopLayer && overTransforms && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n diffCoords.x = rect.x;\n diffCoords.y = rect.y;\n }\n }\n\n if (onTopLayer && topLayerIsFloating) {\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords,\n };\n }\n\n if (onTopLayer) {\n return {\n x,\n y,\n data: diffCoords,\n };\n }\n\n return {\n x: x - diffCoords.x,\n y: y - diffCoords.y,\n data: diffCoords,\n };\n },\n});\n"],
|
|
5
|
+
"mappings": "aAYA,OACI,sBAAAA,EACA,aAAAC,EACA,qBAAAC,MACG,yBACP,OAAS,kBAAAC,MAAsB,sBAExB,aAAM,uBAAyB,KAAmB,CACrD,KAAM,WACN,MAAM,GAAGC,EAAsC,CAC3C,KAAM,CACF,EAAAC,EACA,EAAAC,EACA,SAAU,CAAE,UAAAC,EAAW,SAAAC,CAAS,CACpC,EAAIJ,EACJ,IAAIK,EAAa,GACbC,EAAqB,GACrBC,EAAkB,GACtB,MAAMC,EAAa,CACf,EAAG,EACH,EAAG,CACP,EACA,GAAI,CACAH,EAAaA,GAAcD,EAAS,QAAQ,eAAe,CAE/D,OAASK,EAAO,CAAC,CACjB,GAAI,CACAJ,EAAaA,GAAcD,EAAS,QAAQ,OAAO,CAEvD,OAASK,EAAO,CAAC,CACjB,GAAI,CACAJ,EAAaA,GAAcD,EAAS,QAAQ,QAAQ,CAGxD,OAASK,EAAO,CAAC,CACjBH,EAAqBD,EACrB,MAAMK,EAA2B,IAAI,MAAM,0BAA2B,CAClE,SAAU,GACV,QAAS,EACb,CAAC,EACDN,EAAS,iBACL,0BACCO,GAAiB,CACbA,EAAM,aAAa,EAA2B,QAASC,GAAO,CAE3D,GADAL,EAAkBA,GAAmBK,IAAOT,EACxC,EAAAS,IAAOR,GAAYQ,EAAG,YAAc,UACxC,GAAI,CACAP,EAAaA,GAAcO,EAAG,QAAQ,QAAQ,CAGlD,OAASH,EAAO,CAAC,CACrB,CAAC,CACL,EACA,CAAE,KAAM,EAAK,CACjB,EACAL,EAAS,cAAcM,CAAwB,EAC/C,IAAIG,EAAiB,GACrB,GAAI,EAAEV,aAAqBJ,GAAiB,CACxC,MAAMe,EAAQP,EAAkBJ,EAAYC,EACtCW,EAAkBjB,EAAkBgB,CAAI,EACxCA,EACAlB,EAAmBkB,CAAI,EAC7B,GACIC,IAAoB,MACpBlB,EAAUkB,CAAe,IACpBA,EACP,CACE,MAAMC,EAAM,iBAAiBD,CAAe,EAC5CF,EACIG,EAAI,YAAc,QAAUA,EAAI,OAC1BA,EAAI,SAAW,OACf,EACd,CAEA,GAAIX,GAAcQ,GAAkBE,EAAiB,CACjD,MAAME,EAAOF,EAAgB,sBAAsB,EACnDP,EAAW,EAAIS,EAAK,EACpBT,EAAW,EAAIS,EAAK,CACxB,CACJ,CAEA,OAAIZ,GAAcC,EACP,CACH,EAAGL,EAAIO,EAAW,EAClB,EAAGN,EAAIM,EAAW,EAClB,KAAMA,CACV,EAGAH,EACO,CACH,EAAAJ,EACA,EAAAC,EACA,KAAMM,CACV,EAGG,CACH,EAAGP,EAAIO,EAAW,EAClB,EAAGN,EAAIM,EAAW,EAClB,KAAMA,CACV,CACJ,CACJ",
|
|
6
|
+
"names": ["getContainingBlock", "getWindow", "isContainingBlock", "VirtualTrigger", "middlewareArguments", "x", "y", "reference", "floating", "onTopLayer", "topLayerIsFloating", "withinReference", "diffCoords", "error", "dialogAncestorQueryEvent", "event", "el", "overTransforms", "root", "containingBlock", "css", "rect"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { html } from "@spectrum-web-components/base";
|
|
3
|
+
import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
|
|
4
|
+
import "@spectrum-web-components/overlay/sp-overlay.js";
|
|
5
|
+
import "@spectrum-web-components/action-button/sp-action-button.js";
|
|
6
|
+
import "@spectrum-web-components/action-menu/sp-action-menu.js";
|
|
7
|
+
import "@spectrum-web-components/action-group/sp-action-group.js";
|
|
8
|
+
import "@spectrum-web-components/popover/sp-popover.js";
|
|
9
|
+
import "@spectrum-web-components/menu/sp-menu-group.js";
|
|
10
|
+
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
11
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
12
|
+
import "@spectrum-web-components/tooltip/sp-tooltip.js";
|
|
13
|
+
import "@spectrum-web-components/icons-workflow/icons/sp-icon-anchor-select.js";
|
|
14
|
+
import "@spectrum-web-components/icons-workflow/icons/sp-icon-polygon-select.js";
|
|
15
|
+
import "@spectrum-web-components/icons-workflow/icons/sp-icon-rect-select.js";
|
|
16
|
+
import { notAgain } from "../../dialog/stories/dialog-base.stories.js";
|
|
17
|
+
export default {
|
|
18
|
+
title: "Overlay Element",
|
|
19
|
+
component: "sp-overlay",
|
|
20
|
+
args: {
|
|
21
|
+
open: true,
|
|
22
|
+
delayed: false
|
|
23
|
+
},
|
|
24
|
+
argTypes: {
|
|
25
|
+
open: {
|
|
26
|
+
name: "open",
|
|
27
|
+
type: { name: "boolean", required: false },
|
|
28
|
+
description: "Whether the second accordion item is open.",
|
|
29
|
+
table: {
|
|
30
|
+
type: { summary: "boolean" },
|
|
31
|
+
defaultValue: { summary: false }
|
|
32
|
+
},
|
|
33
|
+
control: {
|
|
34
|
+
type: "boolean"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
delayed: {
|
|
38
|
+
name: "delayed",
|
|
39
|
+
type: { name: "boolean", required: false },
|
|
40
|
+
description: "Whether the tooltips are delayed.",
|
|
41
|
+
table: {
|
|
42
|
+
type: { summary: "boolean" },
|
|
43
|
+
defaultValue: { summary: false }
|
|
44
|
+
},
|
|
45
|
+
control: {
|
|
46
|
+
type: "boolean"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const Template = ({
|
|
52
|
+
interaction,
|
|
53
|
+
open,
|
|
54
|
+
placement,
|
|
55
|
+
type
|
|
56
|
+
}) => html`
|
|
57
|
+
<sp-action-button id="trigger">Open the overlay</sp-action-button>
|
|
58
|
+
<sp-overlay
|
|
59
|
+
?open=${open}
|
|
60
|
+
trigger="trigger@${interaction}"
|
|
61
|
+
type=${ifDefined(type)}
|
|
62
|
+
placement=${ifDefined(placement)}
|
|
63
|
+
offset="-10"
|
|
64
|
+
>
|
|
65
|
+
<sp-popover dialog>
|
|
66
|
+
<p>
|
|
67
|
+
Content goes here.
|
|
68
|
+
${type === "modal" || type === "page" ? html`
|
|
69
|
+
Or, a link,
|
|
70
|
+
<sp-link
|
|
71
|
+
href="https://opensource.adobe.com/spectrum-web-components"
|
|
72
|
+
>
|
|
73
|
+
Spectrum Web Components
|
|
74
|
+
</sp-link>
|
|
75
|
+
.
|
|
76
|
+
` : ""}
|
|
77
|
+
</p>
|
|
78
|
+
</sp-popover>
|
|
79
|
+
</sp-overlay>
|
|
80
|
+
`;
|
|
81
|
+
export const modal = (args) => Template(args);
|
|
82
|
+
modal.args = {
|
|
83
|
+
interaction: "click",
|
|
84
|
+
placement: "right",
|
|
85
|
+
type: "modal"
|
|
86
|
+
};
|
|
87
|
+
export const page = ({
|
|
88
|
+
interaction,
|
|
89
|
+
open,
|
|
90
|
+
placement,
|
|
91
|
+
type
|
|
92
|
+
}) => html`
|
|
93
|
+
<sp-action-button id="trigger">Open the overlay</sp-action-button>
|
|
94
|
+
<sp-overlay
|
|
95
|
+
?open=${open}
|
|
96
|
+
trigger="trigger@${interaction}"
|
|
97
|
+
type=${ifDefined(type)}
|
|
98
|
+
placement=${ifDefined(placement)}
|
|
99
|
+
>
|
|
100
|
+
${notAgain()}
|
|
101
|
+
</sp-overlay>
|
|
102
|
+
`;
|
|
103
|
+
page.args = {
|
|
104
|
+
interaction: "click",
|
|
105
|
+
placement: "right",
|
|
106
|
+
type: "page"
|
|
107
|
+
};
|
|
108
|
+
export const click = (args) => Template(args);
|
|
109
|
+
click.args = {
|
|
110
|
+
interaction: "click",
|
|
111
|
+
placement: "right",
|
|
112
|
+
type: "auto"
|
|
113
|
+
};
|
|
114
|
+
export const hover = (args) => Template(args);
|
|
115
|
+
hover.args = {
|
|
116
|
+
interaction: "hover",
|
|
117
|
+
placement: "right"
|
|
118
|
+
};
|
|
119
|
+
export const longpress = (args) => Template(args);
|
|
120
|
+
longpress.args = {
|
|
121
|
+
interaction: "longpress",
|
|
122
|
+
placement: "right",
|
|
123
|
+
type: "auto"
|
|
124
|
+
};
|
|
125
|
+
export const all = ({ delayed }) => html`
|
|
126
|
+
<sp-action-button id="trigger" hold-affordance>
|
|
127
|
+
Open the overlay
|
|
128
|
+
</sp-action-button>
|
|
129
|
+
<sp-overlay trigger="trigger@click" type="auto" placement="right">
|
|
130
|
+
<sp-popover dialog>Click content</sp-popover>
|
|
131
|
+
</sp-overlay>
|
|
132
|
+
<sp-overlay ?delayed=${delayed} trigger="trigger@hover" type="hint">
|
|
133
|
+
<sp-tooltip>Hover content</sp-tooltip>
|
|
134
|
+
</sp-overlay>
|
|
135
|
+
<sp-overlay trigger="trigger@longpress" type="auto" placement="right">
|
|
136
|
+
<sp-popover dialog>Longpress content</sp-popover>
|
|
137
|
+
</sp-overlay>
|
|
138
|
+
`;
|
|
139
|
+
export const actionGroup = ({ delayed }) => {
|
|
140
|
+
const popoverOffset = [6, -13];
|
|
141
|
+
return html`
|
|
142
|
+
<style>
|
|
143
|
+
sp-popover sp-action-group {
|
|
144
|
+
padding: calc(
|
|
145
|
+
var(--spectrum-actiongroup-vertical-spacing-regular) *
|
|
146
|
+
0.75
|
|
147
|
+
)
|
|
148
|
+
calc(
|
|
149
|
+
var(--spectrum-actiongroup-vertical-spacing-regular) / 2
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
.root {
|
|
153
|
+
inset-inline-end: 0em;
|
|
154
|
+
inset-block-start: 3em;
|
|
155
|
+
padding-block-end: 3em;
|
|
156
|
+
}
|
|
157
|
+
.root > sp-action-group > sp-action-button,
|
|
158
|
+
.root > sp-action-group > sp-action-menu {
|
|
159
|
+
top: 3em;
|
|
160
|
+
position: relative;
|
|
161
|
+
}
|
|
162
|
+
</style>
|
|
163
|
+
<sp-popover open class="root">
|
|
164
|
+
<sp-action-group vertical quiet emphasized selects="single">
|
|
165
|
+
<sp-action-button id="trigger-1" hold-affordance>
|
|
166
|
+
<sp-icon-anchor-select slot="icon"></sp-icon-anchor-select>
|
|
167
|
+
</sp-action-button>
|
|
168
|
+
<sp-action-button id="trigger-2" hold-affordance>
|
|
169
|
+
<sp-icon-polygon-select
|
|
170
|
+
slot="icon"
|
|
171
|
+
></sp-icon-polygon-select>
|
|
172
|
+
</sp-action-button>
|
|
173
|
+
<sp-action-button id="trigger-3" hold-affordance>
|
|
174
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
175
|
+
</sp-action-button>
|
|
176
|
+
<sp-action-menu placement="left">
|
|
177
|
+
<sp-menu-group id="cms">
|
|
178
|
+
<span slot="header">cms</span>
|
|
179
|
+
<sp-menu-item value="updateAllSiteContent">
|
|
180
|
+
Update All Content
|
|
181
|
+
</sp-menu-item>
|
|
182
|
+
<sp-menu-item value="refreshAllXDs">
|
|
183
|
+
Refresh All XDs
|
|
184
|
+
</sp-menu-item>
|
|
185
|
+
</sp-menu-group>
|
|
186
|
+
<sp-menu-group id="ssg">
|
|
187
|
+
<span slot="header">ssg</span>
|
|
188
|
+
<sp-menu-item value="clearCache">
|
|
189
|
+
Clear Cache
|
|
190
|
+
</sp-menu-item>
|
|
191
|
+
</sp-menu-group>
|
|
192
|
+
<sp-menu-group id="vrt">
|
|
193
|
+
<span slot="header">vrt</span>
|
|
194
|
+
<sp-menu-item value="vrt-contributions">
|
|
195
|
+
Contributions
|
|
196
|
+
</sp-menu-item>
|
|
197
|
+
<sp-menu-item value="vrt-internal">
|
|
198
|
+
Internal
|
|
199
|
+
</sp-menu-item>
|
|
200
|
+
<sp-menu-item value="vrt-public">Public</sp-menu-item>
|
|
201
|
+
<sp-menu-item value="vrt-patterns">
|
|
202
|
+
Patterns
|
|
203
|
+
</sp-menu-item>
|
|
204
|
+
<sp-menu-item value="vrt">All</sp-menu-item>
|
|
205
|
+
</sp-menu-group>
|
|
206
|
+
<sp-menu-divider></sp-menu-divider>
|
|
207
|
+
<sp-menu-group id="misc">
|
|
208
|
+
<sp-menu-item value="logout">Logout</sp-menu-item>
|
|
209
|
+
</sp-menu-group>
|
|
210
|
+
</sp-action-menu>
|
|
211
|
+
</sp-action-group>
|
|
212
|
+
</sp-popover>
|
|
213
|
+
<sp-overlay ?delayed=${delayed} trigger="trigger-1@hover" type="hint">
|
|
214
|
+
<sp-tooltip>Hover</sp-tooltip>
|
|
215
|
+
</sp-overlay>
|
|
216
|
+
<sp-overlay
|
|
217
|
+
trigger="trigger-1@longpress"
|
|
218
|
+
type="auto"
|
|
219
|
+
placement="right-start"
|
|
220
|
+
.offset=${popoverOffset}
|
|
221
|
+
>
|
|
222
|
+
<sp-popover tip>
|
|
223
|
+
<sp-action-group vertical quiet>
|
|
224
|
+
<sp-action-button>
|
|
225
|
+
<sp-icon-anchor-select
|
|
226
|
+
slot="icon"
|
|
227
|
+
></sp-icon-anchor-select>
|
|
228
|
+
</sp-action-button>
|
|
229
|
+
<sp-action-button>
|
|
230
|
+
<sp-icon-polygon-select
|
|
231
|
+
slot="icon"
|
|
232
|
+
></sp-icon-polygon-select>
|
|
233
|
+
</sp-action-button>
|
|
234
|
+
<sp-action-button>
|
|
235
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
236
|
+
</sp-action-button>
|
|
237
|
+
</sp-action-group>
|
|
238
|
+
</sp-popover>
|
|
239
|
+
</sp-overlay>
|
|
240
|
+
<sp-overlay ?delayed=${delayed} trigger="trigger-2@hover" type="hint">
|
|
241
|
+
<sp-tooltip>Hover</sp-tooltip>
|
|
242
|
+
</sp-overlay>
|
|
243
|
+
<sp-overlay
|
|
244
|
+
trigger="trigger-2@longpress"
|
|
245
|
+
type="auto"
|
|
246
|
+
placement="right-start"
|
|
247
|
+
.offset=${popoverOffset}
|
|
248
|
+
>
|
|
249
|
+
<sp-popover tip>
|
|
250
|
+
<sp-action-group vertical quiet>
|
|
251
|
+
<sp-action-button>
|
|
252
|
+
<sp-icon-anchor-select
|
|
253
|
+
slot="icon"
|
|
254
|
+
></sp-icon-anchor-select>
|
|
255
|
+
</sp-action-button>
|
|
256
|
+
<sp-action-button>
|
|
257
|
+
<sp-icon-polygon-select
|
|
258
|
+
slot="icon"
|
|
259
|
+
></sp-icon-polygon-select>
|
|
260
|
+
</sp-action-button>
|
|
261
|
+
<sp-action-button>
|
|
262
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
263
|
+
</sp-action-button>
|
|
264
|
+
</sp-action-group>
|
|
265
|
+
</sp-popover>
|
|
266
|
+
</sp-overlay>
|
|
267
|
+
<sp-overlay
|
|
268
|
+
?delayed=${delayed}
|
|
269
|
+
trigger="trigger-3@hover"
|
|
270
|
+
type="hint"
|
|
271
|
+
open
|
|
272
|
+
>
|
|
273
|
+
<sp-tooltip>Hover</sp-tooltip>
|
|
274
|
+
</sp-overlay>
|
|
275
|
+
<sp-overlay
|
|
276
|
+
trigger="trigger-3@longpress"
|
|
277
|
+
type="auto"
|
|
278
|
+
placement="right-start"
|
|
279
|
+
.offset=${popoverOffset}
|
|
280
|
+
>
|
|
281
|
+
<sp-popover tip>
|
|
282
|
+
<sp-action-group vertical quiet>
|
|
283
|
+
<sp-action-button>
|
|
284
|
+
<sp-icon-anchor-select
|
|
285
|
+
slot="icon"
|
|
286
|
+
></sp-icon-anchor-select>
|
|
287
|
+
</sp-action-button>
|
|
288
|
+
<sp-action-button>
|
|
289
|
+
<sp-icon-polygon-select
|
|
290
|
+
slot="icon"
|
|
291
|
+
></sp-icon-polygon-select>
|
|
292
|
+
</sp-action-button>
|
|
293
|
+
<sp-action-button>
|
|
294
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
295
|
+
</sp-action-button>
|
|
296
|
+
</sp-action-group>
|
|
297
|
+
</sp-popover>
|
|
298
|
+
</sp-overlay>
|
|
299
|
+
`;
|
|
300
|
+
};
|
|
301
|
+
export const actionGroupWithFilters = ({
|
|
302
|
+
delayed
|
|
303
|
+
}) => {
|
|
304
|
+
const popoverOffset = [6, -13];
|
|
305
|
+
return html`
|
|
306
|
+
<style>
|
|
307
|
+
sp-popover sp-action-group {
|
|
308
|
+
padding: calc(
|
|
309
|
+
var(--spectrum-actiongroup-vertical-spacing-regular) *
|
|
310
|
+
0.75
|
|
311
|
+
)
|
|
312
|
+
calc(
|
|
313
|
+
var(--spectrum-actiongroup-vertical-spacing-regular) / 2
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
.root {
|
|
317
|
+
inset-inline-end: 0em;
|
|
318
|
+
inset-block-start: 3em;
|
|
319
|
+
padding-block-end: 3em;
|
|
320
|
+
overflow: hidden;
|
|
321
|
+
}
|
|
322
|
+
.root > sp-action-group > sp-action-button,
|
|
323
|
+
.root > sp-action-group > sp-action-menu {
|
|
324
|
+
top: 3em;
|
|
325
|
+
position: relative;
|
|
326
|
+
}
|
|
327
|
+
sp-action-button,
|
|
328
|
+
sp-action-menu {
|
|
329
|
+
background-image: linear-gradient(
|
|
330
|
+
rgba(125, 125, 125, 0.2),
|
|
331
|
+
rgba(125, 125, 125, 0.2)
|
|
332
|
+
);
|
|
333
|
+
background-blend-mode: multiply;
|
|
334
|
+
filter: brightness(1) saturate(1);
|
|
335
|
+
}
|
|
336
|
+
</style>
|
|
337
|
+
<p>
|
|
338
|
+
This story outlines some CSS usage that is not yet covered by the
|
|
339
|
+
placement calculations within the Overlay API.
|
|
340
|
+
</p>
|
|
341
|
+
<sp-popover open class="root">
|
|
342
|
+
<sp-action-group vertical quiet emphasized selects="single">
|
|
343
|
+
<sp-action-button id="trigger-1" hold-affordance>
|
|
344
|
+
<sp-icon-anchor-select slot="icon"></sp-icon-anchor-select>
|
|
345
|
+
<sp-tooltip ?delayed=${delayed} self-managed>
|
|
346
|
+
Hover
|
|
347
|
+
</sp-tooltip>
|
|
348
|
+
<sp-overlay
|
|
349
|
+
trigger="trigger-1@longpress"
|
|
350
|
+
type="auto"
|
|
351
|
+
placement="right-start"
|
|
352
|
+
.offset=${popoverOffset}
|
|
353
|
+
>
|
|
354
|
+
<sp-popover tip>
|
|
355
|
+
<sp-action-group vertical quiet>
|
|
356
|
+
<sp-action-button>
|
|
357
|
+
<sp-icon-anchor-select
|
|
358
|
+
slot="icon"
|
|
359
|
+
></sp-icon-anchor-select>
|
|
360
|
+
</sp-action-button>
|
|
361
|
+
<sp-action-button>
|
|
362
|
+
<sp-icon-polygon-select
|
|
363
|
+
slot="icon"
|
|
364
|
+
></sp-icon-polygon-select>
|
|
365
|
+
</sp-action-button>
|
|
366
|
+
<sp-action-button>
|
|
367
|
+
<sp-icon-rect-select
|
|
368
|
+
slot="icon"
|
|
369
|
+
></sp-icon-rect-select>
|
|
370
|
+
</sp-action-button>
|
|
371
|
+
</sp-action-group>
|
|
372
|
+
</sp-popover>
|
|
373
|
+
</sp-overlay>
|
|
374
|
+
</sp-action-button>
|
|
375
|
+
<sp-action-button id="trigger-2" hold-affordance>
|
|
376
|
+
<sp-icon-polygon-select
|
|
377
|
+
slot="icon"
|
|
378
|
+
></sp-icon-polygon-select>
|
|
379
|
+
</sp-action-button>
|
|
380
|
+
<sp-action-button id="trigger-3" hold-affordance>
|
|
381
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
382
|
+
<sp-tooltip ?delayed=${delayed} self-managed>
|
|
383
|
+
Hover
|
|
384
|
+
</sp-tooltip>
|
|
385
|
+
</sp-action-button>
|
|
386
|
+
<sp-action-menu>
|
|
387
|
+
<sp-menu-group id="cms">
|
|
388
|
+
<span slot="header">cms</span>
|
|
389
|
+
<sp-menu-item value="updateAllSiteContent">
|
|
390
|
+
Update All Content
|
|
391
|
+
</sp-menu-item>
|
|
392
|
+
<sp-menu-item value="refreshAllXDs">
|
|
393
|
+
Refresh All XDs
|
|
394
|
+
</sp-menu-item>
|
|
395
|
+
</sp-menu-group>
|
|
396
|
+
<sp-menu-group id="ssg">
|
|
397
|
+
<span slot="header">ssg</span>
|
|
398
|
+
<sp-menu-item value="clearCache">
|
|
399
|
+
Clear Cache
|
|
400
|
+
</sp-menu-item>
|
|
401
|
+
</sp-menu-group>
|
|
402
|
+
<sp-menu-group id="vrt">
|
|
403
|
+
<span slot="header">vrt</span>
|
|
404
|
+
<sp-menu-item value="vrt-contributions">
|
|
405
|
+
Contributions
|
|
406
|
+
</sp-menu-item>
|
|
407
|
+
<sp-menu-item value="vrt-internal">
|
|
408
|
+
Internal
|
|
409
|
+
</sp-menu-item>
|
|
410
|
+
<sp-menu-item value="vrt-public">Public</sp-menu-item>
|
|
411
|
+
<sp-menu-item value="vrt-patterns">
|
|
412
|
+
Patterns
|
|
413
|
+
</sp-menu-item>
|
|
414
|
+
<sp-menu-item value="vrt">All</sp-menu-item>
|
|
415
|
+
</sp-menu-group>
|
|
416
|
+
<sp-menu-divider></sp-menu-divider>
|
|
417
|
+
<sp-menu-group id="misc">
|
|
418
|
+
<sp-menu-item value="logout">Logout</sp-menu-item>
|
|
419
|
+
</sp-menu-group>
|
|
420
|
+
</sp-action-menu>
|
|
421
|
+
</sp-action-group>
|
|
422
|
+
</sp-popover>
|
|
423
|
+
<sp-overlay ?delayed=${delayed} trigger="trigger-2@hover" type="hint">
|
|
424
|
+
<sp-tooltip>Hover</sp-tooltip>
|
|
425
|
+
</sp-overlay>
|
|
426
|
+
<sp-overlay
|
|
427
|
+
trigger="trigger-2@longpress"
|
|
428
|
+
type="auto"
|
|
429
|
+
placement="right-start"
|
|
430
|
+
.offset=${popoverOffset}
|
|
431
|
+
>
|
|
432
|
+
<sp-popover tip>
|
|
433
|
+
<sp-action-group vertical quiet>
|
|
434
|
+
<sp-action-button>
|
|
435
|
+
<sp-icon-anchor-select
|
|
436
|
+
slot="icon"
|
|
437
|
+
></sp-icon-anchor-select>
|
|
438
|
+
</sp-action-button>
|
|
439
|
+
<sp-action-button>
|
|
440
|
+
<sp-icon-polygon-select
|
|
441
|
+
slot="icon"
|
|
442
|
+
></sp-icon-polygon-select>
|
|
443
|
+
</sp-action-button>
|
|
444
|
+
<sp-action-button>
|
|
445
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
446
|
+
</sp-action-button>
|
|
447
|
+
</sp-action-group>
|
|
448
|
+
</sp-popover>
|
|
449
|
+
</sp-overlay>
|
|
450
|
+
<sp-overlay
|
|
451
|
+
trigger="trigger-3@longpress"
|
|
452
|
+
type="auto"
|
|
453
|
+
placement="right-start"
|
|
454
|
+
.offset=${popoverOffset}
|
|
455
|
+
>
|
|
456
|
+
<sp-popover tip>
|
|
457
|
+
<sp-action-group vertical quiet>
|
|
458
|
+
<sp-action-button>
|
|
459
|
+
<sp-icon-anchor-select
|
|
460
|
+
slot="icon"
|
|
461
|
+
></sp-icon-anchor-select>
|
|
462
|
+
</sp-action-button>
|
|
463
|
+
<sp-action-button>
|
|
464
|
+
<sp-icon-polygon-select
|
|
465
|
+
slot="icon"
|
|
466
|
+
></sp-icon-polygon-select>
|
|
467
|
+
</sp-action-button>
|
|
468
|
+
<sp-action-button>
|
|
469
|
+
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
470
|
+
</sp-action-button>
|
|
471
|
+
</sp-action-group>
|
|
472
|
+
</sp-popover>
|
|
473
|
+
</sp-overlay>
|
|
474
|
+
`;
|
|
475
|
+
};
|
|
476
|
+
//# sourceMappingURL=overlay-element.stories.js.map
|