@spectrum-web-components/menu 0.13.0 → 0.14.2-slim.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/custom-elements.json +0 -270
- package/package.json +10 -9
- package/src/MenuDivider.js +3 -1
- package/src/MenuDivider.js.map +1 -1
- package/src/MenuItem.js +1 -1
- package/src/MenuItem.js.map +1 -1
- package/src/menu-divider.css.js +1 -3
- package/src/menu-divider.css.js.map +1 -1
- package/src/menu-item.css.js +9 -1
- package/src/menu-item.css.js.map +1 -1
- package/src/menu.css.js +0 -2
- package/src/menu.css.js.map +1 -1
- package/src/spectrum-config.js +12 -2
- package/src/spectrum-menu-divider.css.js +1 -3
- package/src/spectrum-menu-divider.css.js.map +1 -1
- package/src/spectrum-menu-item.css.js +9 -1
- package/src/spectrum-menu-item.css.js.map +1 -1
- package/src/spectrum-menu.css.js +0 -2
- package/src/spectrum-menu.css.js.map +1 -1
- package/test/submenu.test.js +40 -0
- package/test/submenu.test.js.map +1 -1
package/custom-elements.json
CHANGED
|
@@ -2373,276 +2373,6 @@
|
|
|
2373
2373
|
}
|
|
2374
2374
|
}
|
|
2375
2375
|
]
|
|
2376
|
-
},
|
|
2377
|
-
{
|
|
2378
|
-
"kind": "javascript-module",
|
|
2379
|
-
"path": "src/index.ts",
|
|
2380
|
-
"declarations": [],
|
|
2381
|
-
"exports": [
|
|
2382
|
-
{
|
|
2383
|
-
"kind": "js",
|
|
2384
|
-
"name": "*",
|
|
2385
|
-
"declaration": {
|
|
2386
|
-
"name": "*",
|
|
2387
|
-
"package": "./Menu.js"
|
|
2388
|
-
}
|
|
2389
|
-
},
|
|
2390
|
-
{
|
|
2391
|
-
"kind": "js",
|
|
2392
|
-
"name": "*",
|
|
2393
|
-
"declaration": {
|
|
2394
|
-
"name": "*",
|
|
2395
|
-
"package": "./MenuDivider.js"
|
|
2396
|
-
}
|
|
2397
|
-
},
|
|
2398
|
-
{
|
|
2399
|
-
"kind": "js",
|
|
2400
|
-
"name": "*",
|
|
2401
|
-
"declaration": {
|
|
2402
|
-
"name": "*",
|
|
2403
|
-
"package": "./MenuGroup.js"
|
|
2404
|
-
}
|
|
2405
|
-
},
|
|
2406
|
-
{
|
|
2407
|
-
"kind": "js",
|
|
2408
|
-
"name": "*",
|
|
2409
|
-
"declaration": {
|
|
2410
|
-
"name": "*",
|
|
2411
|
-
"package": "./MenuItem.js"
|
|
2412
|
-
}
|
|
2413
|
-
}
|
|
2414
|
-
]
|
|
2415
|
-
},
|
|
2416
|
-
{
|
|
2417
|
-
"kind": "javascript-module",
|
|
2418
|
-
"path": "src/menu-divider.css.ts",
|
|
2419
|
-
"declarations": [
|
|
2420
|
-
{
|
|
2421
|
-
"kind": "variable",
|
|
2422
|
-
"name": "styles",
|
|
2423
|
-
"default": "css`\n:host{border:none;box-sizing:content-box;height:var(--spectrum-listitem-texticon-divider-size);margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;padding:0}:host{background-color:var(\n--spectrum-listitem-m-texticon-divider-color,var(--spectrum-alias-border-color-extralight)\n)}:host{display:block}\n`"
|
|
2424
|
-
}
|
|
2425
|
-
],
|
|
2426
|
-
"exports": [
|
|
2427
|
-
{
|
|
2428
|
-
"kind": "js",
|
|
2429
|
-
"name": "default",
|
|
2430
|
-
"declaration": {
|
|
2431
|
-
"name": "styles",
|
|
2432
|
-
"module": "src/menu-divider.css.ts"
|
|
2433
|
-
}
|
|
2434
|
-
}
|
|
2435
|
-
]
|
|
2436
|
-
},
|
|
2437
|
-
{
|
|
2438
|
-
"kind": "javascript-module",
|
|
2439
|
-
"path": "src/menu-group.css.ts",
|
|
2440
|
-
"declarations": [
|
|
2441
|
-
{
|
|
2442
|
-
"kind": "variable",
|
|
2443
|
-
"name": "styles",
|
|
2444
|
-
"default": "css`\n.header{color:var(--spectrum-listheading-text-color);display:block;font-size:var(--spectrum-listitem-texticon-heading-text-size);font-weight:var(--spectrum-listitem-texticon-heading-text-font-weight);letter-spacing:var(\n--spectrum-listitem-texticon-heading-letter-spacing\n);line-height:var(--spectrum-listitem-texticon-heading-line-height);margin:var(--spectrum-listitem-texticon-heading-margin);padding:var(--spectrum-listitem-texticon-heading-padding);text-transform:var(--spectrum-listitem-texticon-heading-text-transform)}:host{display:inline-flex;flex-direction:column;margin:0;overflow:visible}:host([dir=ltr]) .header{padding:0 var(--spectrum-global-dimension-size-450) 0 var(--spectrum-global-dimension-size-150)}:host([dir=rtl]) .header{padding:0 var(--spectrum-global-dimension-size-150) 0 var(--spectrum-global-dimension-size-450)}sp-menu{--swc-menu-width:100%}:host(:last-child) sp-menu{margin-bottom:0}:host(:first-child) .header[hidden]+sp-menu{margin-top:0}[hidden]{display:none!important}\n`"
|
|
2445
|
-
}
|
|
2446
|
-
],
|
|
2447
|
-
"exports": [
|
|
2448
|
-
{
|
|
2449
|
-
"kind": "js",
|
|
2450
|
-
"name": "default",
|
|
2451
|
-
"declaration": {
|
|
2452
|
-
"name": "styles",
|
|
2453
|
-
"module": "src/menu-group.css.ts"
|
|
2454
|
-
}
|
|
2455
|
-
}
|
|
2456
|
-
]
|
|
2457
|
-
},
|
|
2458
|
-
{
|
|
2459
|
-
"kind": "javascript-module",
|
|
2460
|
-
"path": "src/menu-item.css.ts",
|
|
2461
|
-
"declarations": [
|
|
2462
|
-
{
|
|
2463
|
-
"kind": "variable",
|
|
2464
|
-
"name": "styles",
|
|
2465
|
-
"default": "css`\n.checkmark{align-self:flex-start;display:none;opacity:1;transform:scale(1)}:host([dir=ltr]) .checkmark{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.checkmark{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.chevron{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]){border-left:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host([dir=rtl]){border-right:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--spectrum-listitem-texticon-text-size);font-style:normal;font-weight:var(--spectrum-listitem-texticon-text-font-weight);margin:0;min-height:var(--spectrum-listitem-texticon-height);padding:var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-right) var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-left);position:relative;text-decoration:none}:host(:focus){outline:none}:host([dir=ltr][selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([selected]) .checkmark{display:block}.icon,::slotted([slot=icon]){align-self:flex-start;flex-shrink:0}:host([dir=ltr]) .icon+#label,:host([dir=ltr]) slot[name=icon]+#label{margin-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .icon+#label,:host([dir=rtl]) slot[name=icon]+#label{margin-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.icon+#label,slot[name=icon]+#label{width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap) - var(--spectrum-listitem-textthumbnail-padding-left) - var(\n--spectrum-alias-workflow-icon-size-m,\nvar(--spectrum-global-dimension-size-225)\n))}:host([no-wrap]) #label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([dir=ltr]) .checkmark,:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark,:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n);color:var(\n--spectrum-listitem-m-texticon-text-color,var(--spectrum-alias-component-text-color-default)\n)}:host([dir=ltr].focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=ltr]:focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl].focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl]:focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host(.focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(.is-highlighted),:host(.is-open),:host(:focus),:host(:hover){background-color:var(\n--spectrum-listitem-m-texticon-background-color-hover,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-hover,var(--spectrum-alias-component-text-color-hover)\n)}:host([selected]){color:var(\n--spectrum-listitem-m-texticon-text-color-selected,var(--spectrum-alias-component-text-color-default)\n)}:host([selected]) .checkmark{color:var(\n--spectrum-listitem-m-texticon-ui-icon-color-selected,var(--spectrum-alias-icon-color-selected)\n)}:host(:active),:host([active]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-down,var(--spectrum-alias-background-color-hover-overlay)\n)}:host([disabled]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)\n);background-image:none;color:var(\n--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)\n);cursor:default}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}.spectrum-Menu-itemLabel--wrapping{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([hidden]){display:none}#button{inset:0;position:absolute}::slotted([slot=value]){align-self:start}:host([dir=ltr]) ::slotted([slot=value]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=value]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=ltr]) [icon-only]::slotted(:last-of-type){margin-right:auto}:host([dir=rtl]) [icon-only]::slotted(:last-of-type){margin-left:auto}:host([dir=ltr]) ::slotted([slot=icon]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=icon]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) slot[name=icon]+#label{margin-right:0}:host([dir=ltr]) slot[name=icon]+#label{margin-left:0}:host([dir=rtl]) .chevron{padding-left:var(--spectrum-listitem-texticon-icon-gap);padding-right:0}\n`"
|
|
2466
|
-
}
|
|
2467
|
-
],
|
|
2468
|
-
"exports": [
|
|
2469
|
-
{
|
|
2470
|
-
"kind": "js",
|
|
2471
|
-
"name": "default",
|
|
2472
|
-
"declaration": {
|
|
2473
|
-
"name": "styles",
|
|
2474
|
-
"module": "src/menu-item.css.ts"
|
|
2475
|
-
}
|
|
2476
|
-
}
|
|
2477
|
-
]
|
|
2478
|
-
},
|
|
2479
|
-
{
|
|
2480
|
-
"kind": "javascript-module",
|
|
2481
|
-
"path": "src/menu.css.ts",
|
|
2482
|
-
"declarations": [
|
|
2483
|
-
{
|
|
2484
|
-
"kind": "variable",
|
|
2485
|
-
"name": "styles",
|
|
2486
|
-
"default": "css`\n:host{--spectrum-menu-margin-x:var(\n--spectrum-global-dimension-size-40\n);--spectrum-listitem-texticon-heading-text-size:var(\n--spectrum-global-dimension-font-size-50\n);--spectrum-listitem-texticon-heading-text-font-weight:400;--spectrum-listitem-texticon-heading-text-transform:uppercase;--spectrum-listitem-texticon-heading-letter-spacing:0.06em;--spectrum-listitem-texticon-heading-margin:var(\n--spectrum-global-dimension-size-75\n) 0 0 0;--spectrum-listitem-texticon-heading-padding:0 var(--spectrum-global-dimension-size-450) 0 var(--spectrum-global-dimension-size-150);--spectrum-listitem-texticon-padding-y:var(\n--spectrum-global-dimension-size-85\n);--spectrum-listitem-texticon-selectable-padding-right:calc(var(--spectrum-listitem-texticon-ui-icon-width) + var(--spectrum-listitem-texticon-ui-icon-gap) + var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n));--spectrum-listitem-texticon-label-line-height:1.3;--spectrum-listitem-texticon-heading-line-height:var(\n--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)\n)}:host{--spectrum-listitem-texticon-padding-left:var(\n--spectrum-listitem-m-texticon-padding-left\n);--spectrum-listitem-textthumbnail-padding-left:var(\n--spectrum-listitem-m-textthumbnail-padding-left\n);--spectrum-listitem-texticon-text-size:var(\n--spectrum-listitem-m-texticon-text-size,var(--spectrum-global-dimension-font-size-100)\n);--spectrum-listitem-texticon-text-font-weight:var(\n--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)\n);--spectrum-listitem-texticon-icon-gap:var(\n--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-divider-size:var(\n--spectrum-listitem-m-texticon-divider-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-divider-padding:var(\n--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)\n);--spectrum-listitem-texticon-ui-icon-margin-top:var(\n--spectrum-listitem-m-texticon-ui-icon-margin-top,var(--spectrum-global-dimension-size-125)\n);--spectrum-listitem-texticon-ui-icon-width:var(\n--spectrum-listitem-m-texticon-ui-icon-width,var(--spectrum-alias-ui-icon-checkmark-size-100)\n);--spectrum-listitem-texticon-ui-icon-gap:var(\n--spectrum-listitem-m-texticon-ui-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-padding-right:var(\n--spectrum-listitem-m-texticon-padding-right,var(--spectrum-global-dimension-size-150)\n);--spectrum-listitem-texticon-focus-indicator-size:var(\n--spectrum-listitem-m-texticon-focus-indicator-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-height:var(\n--spectrum-listitem-m-texticon-height,var(--spectrum-global-dimension-size-400)\n)}:host{box-sizing:border-box;display:inline-block;list-style-type:none;margin-bottom:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);margin-left:0;margin-right:0;margin-top:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);overflow:auto;padding:0}:host([dir=ltr][selects]) ::slotted(sp-menu-item){padding-right:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=rtl][selects]) ::slotted(sp-menu-item){padding-left:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=ltr][selects]) ::slotted(sp-menu-item[selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selects]) ::slotted(sp-menu-item[selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}::slotted(sp-menu){display:block}:host{--spectrum-listheading-text-color:var(\n--spectrum-global-color-gray-700\n)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n)}:host{--spectrum-listitem-selectable-padding-right:calc(var(--spectrum-global-dimension-size-100) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-listitem-icon-gap));width:var(--swc-menu-width)}:host(:focus){outline:none}::slotted(*){--swc-menu-width:100%}\n`"
|
|
2487
|
-
}
|
|
2488
|
-
],
|
|
2489
|
-
"exports": [
|
|
2490
|
-
{
|
|
2491
|
-
"kind": "js",
|
|
2492
|
-
"name": "default",
|
|
2493
|
-
"declaration": {
|
|
2494
|
-
"name": "styles",
|
|
2495
|
-
"module": "src/menu.css.ts"
|
|
2496
|
-
}
|
|
2497
|
-
}
|
|
2498
|
-
]
|
|
2499
|
-
},
|
|
2500
|
-
{
|
|
2501
|
-
"kind": "javascript-module",
|
|
2502
|
-
"path": "src/spectrum-checkmark.css.ts",
|
|
2503
|
-
"declarations": [
|
|
2504
|
-
{
|
|
2505
|
-
"kind": "variable",
|
|
2506
|
-
"name": "styles",
|
|
2507
|
-
"default": "css`\n.checkmark{align-self:flex-start;display:none;opacity:1;transform:scale(1)}:host([dir=ltr]) .checkmark{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.checkmark{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}\n`"
|
|
2508
|
-
}
|
|
2509
|
-
],
|
|
2510
|
-
"exports": [
|
|
2511
|
-
{
|
|
2512
|
-
"kind": "js",
|
|
2513
|
-
"name": "default",
|
|
2514
|
-
"declaration": {
|
|
2515
|
-
"name": "styles",
|
|
2516
|
-
"module": "src/spectrum-checkmark.css.ts"
|
|
2517
|
-
}
|
|
2518
|
-
}
|
|
2519
|
-
]
|
|
2520
|
-
},
|
|
2521
|
-
{
|
|
2522
|
-
"kind": "javascript-module",
|
|
2523
|
-
"path": "src/spectrum-chevron.css.ts",
|
|
2524
|
-
"declarations": [
|
|
2525
|
-
{
|
|
2526
|
-
"kind": "variable",
|
|
2527
|
-
"name": "styles",
|
|
2528
|
-
"default": "css`\n:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.chevron{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}\n`"
|
|
2529
|
-
}
|
|
2530
|
-
],
|
|
2531
|
-
"exports": [
|
|
2532
|
-
{
|
|
2533
|
-
"kind": "js",
|
|
2534
|
-
"name": "default",
|
|
2535
|
-
"declaration": {
|
|
2536
|
-
"name": "styles",
|
|
2537
|
-
"module": "src/spectrum-chevron.css.ts"
|
|
2538
|
-
}
|
|
2539
|
-
}
|
|
2540
|
-
]
|
|
2541
|
-
},
|
|
2542
|
-
{
|
|
2543
|
-
"kind": "javascript-module",
|
|
2544
|
-
"path": "src/spectrum-itemLabel.css.ts",
|
|
2545
|
-
"declarations": [
|
|
2546
|
-
{
|
|
2547
|
-
"kind": "variable",
|
|
2548
|
-
"name": "styles",
|
|
2549
|
-
"default": "css`\n#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}.spectrum-Menu-itemLabel--wrapping{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n`"
|
|
2550
|
-
}
|
|
2551
|
-
],
|
|
2552
|
-
"exports": [
|
|
2553
|
-
{
|
|
2554
|
-
"kind": "js",
|
|
2555
|
-
"name": "default",
|
|
2556
|
-
"declaration": {
|
|
2557
|
-
"name": "styles",
|
|
2558
|
-
"module": "src/spectrum-itemLabel.css.ts"
|
|
2559
|
-
}
|
|
2560
|
-
}
|
|
2561
|
-
]
|
|
2562
|
-
},
|
|
2563
|
-
{
|
|
2564
|
-
"kind": "javascript-module",
|
|
2565
|
-
"path": "src/spectrum-menu-divider.css.ts",
|
|
2566
|
-
"declarations": [
|
|
2567
|
-
{
|
|
2568
|
-
"kind": "variable",
|
|
2569
|
-
"name": "styles",
|
|
2570
|
-
"default": "css`\n:host{border:none;box-sizing:content-box;height:var(--spectrum-listitem-texticon-divider-size);margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;padding:0}:host{background-color:var(\n--spectrum-listitem-m-texticon-divider-color,var(--spectrum-alias-border-color-extralight)\n)}\n`"
|
|
2571
|
-
}
|
|
2572
|
-
],
|
|
2573
|
-
"exports": [
|
|
2574
|
-
{
|
|
2575
|
-
"kind": "js",
|
|
2576
|
-
"name": "default",
|
|
2577
|
-
"declaration": {
|
|
2578
|
-
"name": "styles",
|
|
2579
|
-
"module": "src/spectrum-menu-divider.css.ts"
|
|
2580
|
-
}
|
|
2581
|
-
}
|
|
2582
|
-
]
|
|
2583
|
-
},
|
|
2584
|
-
{
|
|
2585
|
-
"kind": "javascript-module",
|
|
2586
|
-
"path": "src/spectrum-menu-item.css.ts",
|
|
2587
|
-
"declarations": [
|
|
2588
|
-
{
|
|
2589
|
-
"kind": "variable",
|
|
2590
|
-
"name": "styles",
|
|
2591
|
-
"default": "css`\n:host([dir=ltr]){border-left:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host([dir=rtl]){border-right:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--spectrum-listitem-texticon-text-size);font-style:normal;font-weight:var(--spectrum-listitem-texticon-text-font-weight);margin:0;min-height:var(--spectrum-listitem-texticon-height);padding:var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-right) var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-left);position:relative;text-decoration:none}:host(:focus){outline:none}:host([dir=ltr][selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([selected]) .checkmark{display:block}.icon,::slotted([slot=icon]){align-self:flex-start;flex-shrink:0}:host([dir=ltr]) .icon+#label,:host([dir=ltr]) slot[name=icon]+#label{margin-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .icon+#label,:host([dir=rtl]) slot[name=icon]+#label{margin-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.icon+#label,slot[name=icon]+#label{width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap) - var(--spectrum-listitem-textthumbnail-padding-left) - var(\n--spectrum-alias-workflow-icon-size-m,\nvar(--spectrum-global-dimension-size-225)\n))}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}:host([no-wrap]) #label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([dir=ltr]) .checkmark,:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark,:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n);color:var(\n--spectrum-listitem-m-texticon-text-color,var(--spectrum-alias-component-text-color-default)\n)}:host([dir=ltr].focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=ltr]:focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl].focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl]:focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host(.focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(.is-highlighted),:host(.is-open),:host(:focus),:host(:hover){background-color:var(\n--spectrum-listitem-m-texticon-background-color-hover,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-hover,var(--spectrum-alias-component-text-color-hover)\n)}:host([selected]){color:var(\n--spectrum-listitem-m-texticon-text-color-selected,var(--spectrum-alias-component-text-color-default)\n)}:host([selected]) .checkmark{color:var(\n--spectrum-listitem-m-texticon-ui-icon-color-selected,var(--spectrum-alias-icon-color-selected)\n)}:host(:active),:host([active]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-down,var(--spectrum-alias-background-color-hover-overlay)\n)}:host([disabled]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)\n);background-image:none;color:var(\n--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)\n);cursor:default}\n`"
|
|
2592
|
-
}
|
|
2593
|
-
],
|
|
2594
|
-
"exports": [
|
|
2595
|
-
{
|
|
2596
|
-
"kind": "js",
|
|
2597
|
-
"name": "default",
|
|
2598
|
-
"declaration": {
|
|
2599
|
-
"name": "styles",
|
|
2600
|
-
"module": "src/spectrum-menu-item.css.ts"
|
|
2601
|
-
}
|
|
2602
|
-
}
|
|
2603
|
-
]
|
|
2604
|
-
},
|
|
2605
|
-
{
|
|
2606
|
-
"kind": "javascript-module",
|
|
2607
|
-
"path": "src/spectrum-menu-sectionHeading.css.ts",
|
|
2608
|
-
"declarations": [
|
|
2609
|
-
{
|
|
2610
|
-
"kind": "variable",
|
|
2611
|
-
"name": "styles",
|
|
2612
|
-
"default": "css`\n.header{color:var(--spectrum-listheading-text-color);display:block;font-size:var(--spectrum-listitem-texticon-heading-text-size);font-weight:var(--spectrum-listitem-texticon-heading-text-font-weight);letter-spacing:var(\n--spectrum-listitem-texticon-heading-letter-spacing\n);line-height:var(--spectrum-listitem-texticon-heading-line-height);margin:var(--spectrum-listitem-texticon-heading-margin);padding:var(--spectrum-listitem-texticon-heading-padding);text-transform:var(--spectrum-listitem-texticon-heading-text-transform)}\n`"
|
|
2613
|
-
}
|
|
2614
|
-
],
|
|
2615
|
-
"exports": [
|
|
2616
|
-
{
|
|
2617
|
-
"kind": "js",
|
|
2618
|
-
"name": "default",
|
|
2619
|
-
"declaration": {
|
|
2620
|
-
"name": "styles",
|
|
2621
|
-
"module": "src/spectrum-menu-sectionHeading.css.ts"
|
|
2622
|
-
}
|
|
2623
|
-
}
|
|
2624
|
-
]
|
|
2625
|
-
},
|
|
2626
|
-
{
|
|
2627
|
-
"kind": "javascript-module",
|
|
2628
|
-
"path": "src/spectrum-menu.css.ts",
|
|
2629
|
-
"declarations": [
|
|
2630
|
-
{
|
|
2631
|
-
"kind": "variable",
|
|
2632
|
-
"name": "styles",
|
|
2633
|
-
"default": "css`\n:host{--spectrum-menu-margin-x:var(\n--spectrum-global-dimension-size-40\n);--spectrum-listitem-texticon-heading-text-size:var(\n--spectrum-global-dimension-font-size-50\n);--spectrum-listitem-texticon-heading-text-font-weight:400;--spectrum-listitem-texticon-heading-text-transform:uppercase;--spectrum-listitem-texticon-heading-letter-spacing:0.06em;--spectrum-listitem-texticon-heading-margin:var(\n--spectrum-global-dimension-size-75\n) 0 0 0;--spectrum-listitem-texticon-heading-padding:0 var(--spectrum-global-dimension-size-450) 0 var(--spectrum-global-dimension-size-150);--spectrum-listitem-texticon-padding-y:var(\n--spectrum-global-dimension-size-85\n);--spectrum-listitem-texticon-selectable-padding-right:calc(var(--spectrum-listitem-texticon-ui-icon-width) + var(--spectrum-listitem-texticon-ui-icon-gap) + var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n));--spectrum-listitem-texticon-label-line-height:1.3;--spectrum-listitem-texticon-heading-line-height:var(\n--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)\n)}:host{--spectrum-listitem-texticon-padding-left:var(\n--spectrum-listitem-m-texticon-padding-left\n);--spectrum-listitem-textthumbnail-padding-left:var(\n--spectrum-listitem-m-textthumbnail-padding-left\n);--spectrum-listitem-texticon-text-size:var(\n--spectrum-listitem-m-texticon-text-size,var(--spectrum-global-dimension-font-size-100)\n);--spectrum-listitem-texticon-text-font-weight:var(\n--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)\n);--spectrum-listitem-texticon-icon-gap:var(\n--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-divider-size:var(\n--spectrum-listitem-m-texticon-divider-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-divider-padding:var(\n--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)\n);--spectrum-listitem-texticon-ui-icon-margin-top:var(\n--spectrum-listitem-m-texticon-ui-icon-margin-top,var(--spectrum-global-dimension-size-125)\n);--spectrum-listitem-texticon-ui-icon-width:var(\n--spectrum-listitem-m-texticon-ui-icon-width,var(--spectrum-alias-ui-icon-checkmark-size-100)\n);--spectrum-listitem-texticon-ui-icon-gap:var(\n--spectrum-listitem-m-texticon-ui-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-padding-right:var(\n--spectrum-listitem-m-texticon-padding-right,var(--spectrum-global-dimension-size-150)\n);--spectrum-listitem-texticon-focus-indicator-size:var(\n--spectrum-listitem-m-texticon-focus-indicator-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-height:var(\n--spectrum-listitem-m-texticon-height,var(--spectrum-global-dimension-size-400)\n)}:host{box-sizing:border-box;display:inline-block;list-style-type:none;margin-bottom:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);margin-left:0;margin-right:0;margin-top:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);overflow:auto;padding:0}:host([dir=ltr][selects]) ::slotted(sp-menu-item){padding-right:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=rtl][selects]) ::slotted(sp-menu-item){padding-left:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=ltr][selects]) ::slotted(sp-menu-item[selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selects]) ::slotted(sp-menu-item[selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}::slotted(sp-menu){display:block}:host{--spectrum-listheading-text-color:var(\n--spectrum-global-color-gray-700\n)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n)}\n`"
|
|
2634
|
-
}
|
|
2635
|
-
],
|
|
2636
|
-
"exports": [
|
|
2637
|
-
{
|
|
2638
|
-
"kind": "js",
|
|
2639
|
-
"name": "default",
|
|
2640
|
-
"declaration": {
|
|
2641
|
-
"name": "styles",
|
|
2642
|
-
"module": "src/spectrum-menu.css.ts"
|
|
2643
|
-
}
|
|
2644
|
-
}
|
|
2645
|
-
]
|
|
2646
2376
|
}
|
|
2647
2377
|
]
|
|
2648
2378
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/menu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.2-slim.2+c71efb901",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -50,21 +50,22 @@
|
|
|
50
50
|
"lit-html"
|
|
51
51
|
],
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@spectrum-web-components/action-button": "^0.8.
|
|
54
|
-
"@spectrum-web-components/base": "^0.5.
|
|
55
|
-
"@spectrum-web-components/
|
|
56
|
-
"@spectrum-web-components/
|
|
57
|
-
"@spectrum-web-components/
|
|
58
|
-
"@spectrum-web-components/
|
|
53
|
+
"@spectrum-web-components/action-button": "^0.8.5",
|
|
54
|
+
"@spectrum-web-components/base": "^0.5.6",
|
|
55
|
+
"@spectrum-web-components/divider": "^0.4.8",
|
|
56
|
+
"@spectrum-web-components/icon": "^0.11.8",
|
|
57
|
+
"@spectrum-web-components/icons-ui": "^0.8.8",
|
|
58
|
+
"@spectrum-web-components/overlay": "^0.16.3-slim.2+c71efb901",
|
|
59
|
+
"@spectrum-web-components/shared": "^0.14.1",
|
|
59
60
|
"tslib": "^2.0.0"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
|
-
"@spectrum-css/menu": "^
|
|
63
|
+
"@spectrum-css/menu": "^4.0.2"
|
|
63
64
|
},
|
|
64
65
|
"types": "./src/index.d.ts",
|
|
65
66
|
"customElements": "custom-elements.json",
|
|
66
67
|
"sideEffects": [
|
|
67
68
|
"./sp-*.js"
|
|
68
69
|
],
|
|
69
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "c71efb901d48037f76afdd4a1cd23f0ab07223b1"
|
|
70
71
|
}
|
package/src/MenuDivider.js
CHANGED
|
@@ -11,15 +11,17 @@ governing permissions and limitations under the License.
|
|
|
11
11
|
*/
|
|
12
12
|
import { SpectrumElement } from '@spectrum-web-components/base';
|
|
13
13
|
import menuDividerStyles from './menu-divider.css.js';
|
|
14
|
+
import dividerStyles from '@spectrum-web-components/divider/src/divider.css.js';
|
|
14
15
|
/**
|
|
15
16
|
* @element sp-menu-divider
|
|
16
17
|
*/
|
|
17
18
|
export class MenuDivider extends SpectrumElement {
|
|
18
19
|
static get styles() {
|
|
19
|
-
return [menuDividerStyles];
|
|
20
|
+
return [dividerStyles, menuDividerStyles];
|
|
20
21
|
}
|
|
21
22
|
firstUpdated() {
|
|
22
23
|
this.setAttribute('role', 'separator');
|
|
24
|
+
this.setAttribute('size', 'm');
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=MenuDivider.js.map
|
package/src/MenuDivider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuDivider.js","sourceRoot":"","sources":["MenuDivider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAkB,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuDivider.js","sourceRoot":"","sources":["MenuDivider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAkB,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAEhF;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IACrC,MAAM,KAAK,MAAM;QACpB,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAES,YAAY;QAClB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;CACJ","sourcesContent":["/*\nCopyright 2020 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*/\n\nimport { CSSResultArray, SpectrumElement } from '@spectrum-web-components/base';\n\nimport menuDividerStyles from './menu-divider.css.js';\nimport dividerStyles from '@spectrum-web-components/divider/src/divider.css.js';\n\n/**\n * @element sp-menu-divider\n */\nexport class MenuDivider extends SpectrumElement {\n public static get styles(): CSSResultArray {\n return [dividerStyles, menuDividerStyles];\n }\n\n protected firstUpdated(): void {\n this.setAttribute('role', 'separator');\n this.setAttribute('size', 'm');\n }\n}\n"]}
|
package/src/MenuItem.js
CHANGED
|
@@ -286,7 +286,7 @@ export class MenuItem extends LikeAnchor(Focusable) {
|
|
|
286
286
|
}
|
|
287
287
|
async openOverlay({ immediate, } = {}) {
|
|
288
288
|
var _a;
|
|
289
|
-
if (!this.hasSubmenu || this.open) {
|
|
289
|
+
if (!this.hasSubmenu || this.open || this.disabled) {
|
|
290
290
|
return;
|
|
291
291
|
}
|
|
292
292
|
this.open = true;
|
package/src/MenuItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 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*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js';\nimport { LikeAnchor } from '@spectrum-web-components/shared/src/like-anchor.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport { openOverlay } from '@spectrum-web-components/overlay/src/loader.js';\n\nimport menuItemStyles from './menu-item.css.js';\nimport checkmarkStyles from '@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js';\nimport type { Menu } from './Menu.js';\nimport type { OverlayOpenCloseDetail } from '@spectrum-web-components/overlay';\nimport { reparentChildren } from '@spectrum-web-components/shared/src/reparent-children.js';\n\n/**\n * Duration during which a pointing device can leave an `<sp-menu-item>` element\n * and return to it or to the submenu opened from it before closing that submenu.\n **/\nconst POINTERLEAVE_TIMEOUT = 100;\n\nexport class MenuItemRemovedEvent extends Event {\n constructor() {\n super('sp-menu-item-removed', {\n bubbles: true,\n composed: true,\n });\n }\n get item(): MenuItem {\n return this._item;\n }\n _item!: MenuItem;\n focused = false;\n reset(item: MenuItem): void {\n this._item = item;\n }\n}\n\nexport class MenuItemAddedOrUpdatedEvent extends Event {\n constructor() {\n super('sp-menu-item-added-or-updated', {\n bubbles: true,\n composed: true,\n });\n }\n set focusRoot(root: Menu | undefined) {\n this.item.menuData.focusRoot = this.item.menuData.focusRoot || root;\n }\n set selectionRoot(root: Menu) {\n this.item.menuData.selectionRoot =\n this.item.menuData.selectionRoot || root;\n }\n get item(): MenuItem {\n return this._item;\n }\n _item!: MenuItem;\n set currentAncestorWithSelects(ancestor: Menu | undefined) {\n this._currentAncestorWithSelects = ancestor;\n }\n get currentAncestorWithSelects(): Menu | undefined {\n return this._currentAncestorWithSelects;\n }\n _currentAncestorWithSelects?: Menu;\n reset(item: MenuItem): void {\n this._item = item;\n this._currentAncestorWithSelects = undefined;\n item.menuData = {\n focusRoot: undefined,\n selectionRoot: undefined,\n };\n }\n}\n\nexport type MenuItemChildren = { icon: Element[]; content: Node[] };\n\nconst addOrUpdateEvent = new MenuItemAddedOrUpdatedEvent();\nconst removeEvent = new MenuItemRemovedEvent();\n\n/**\n * @element sp-menu-item\n *\n * @slot - text content to display within the Menu Item\n * @slot icon - icon element to be placed at the start of the Menu Item\n * @slot value - content placed at the end of the Menu Item like values, keyboard shortcuts, etc.\n * @fires sp-menu-item-added - announces the item has been added so a parent menu can take ownerships\n * @fires sp-menu-item-removed - announces when removed from the DOM so the parent menu can remove ownership and update selected state\n */\nexport class MenuItem extends LikeAnchor(Focusable) {\n public static get styles(): CSSResultArray {\n return [menuItemStyles, checkmarkStyles, chevronStyles];\n }\n\n static instanceCount = 0;\n\n private isInSubmenu = false;\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public get value(): string {\n return this._value || this.itemText;\n }\n\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value || '';\n if (this._value) {\n this.setAttribute('value', this._value);\n } else {\n this.removeAttribute('value');\n }\n }\n\n private _value = '';\n\n /**\n * @private\n */\n public get itemText(): string {\n return this.itemChildren.content.reduce(\n (acc, node) => acc + (node.textContent || '').trim(),\n ''\n );\n }\n\n @property({ type: Boolean })\n public hasSubmenu = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'no-wrap',\n hasChanged() {\n return false;\n },\n })\n public noWrap = false;\n\n @query('.anchor')\n private anchorElement!: HTMLAnchorElement;\n\n public get focusElement(): HTMLElement {\n return this;\n }\n\n public get itemChildren(): MenuItemChildren {\n if (this._itemChildren) {\n return this._itemChildren;\n }\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]'\n ) as HTMLSlotElement;\n const icon = !iconSlot\n ? []\n : iconSlot.assignedElements().map((element) => {\n const newElement = element.cloneNode(true) as HTMLElement;\n newElement.removeAttribute('slot');\n newElement.classList.toggle('icon');\n return newElement;\n });\n const contentSlot = this.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const content = !contentSlot\n ? []\n : contentSlot.assignedNodes().map((node) => node.cloneNode(true));\n this._itemChildren = { icon, content };\n\n return this._itemChildren;\n }\n\n private _itemChildren?: MenuItemChildren;\n\n constructor() {\n super();\n this.proxyFocus = this.proxyFocus.bind(this);\n\n this.addEventListener('click', this.handleClickCapture, {\n capture: true,\n });\n }\n\n @property({ type: Boolean })\n public open = false;\n\n public click(): void {\n if (this.disabled) {\n return;\n }\n\n if (this.shouldProxyClick()) {\n return;\n }\n\n super.click();\n }\n\n private handleClickCapture(event: Event): void | boolean {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n return false;\n }\n }\n\n private proxyFocus(): void {\n this.focus();\n }\n\n private shouldProxyClick(): boolean {\n let handled = false;\n if (this.anchorElement) {\n this.anchorElement.click();\n handled = true;\n }\n return handled;\n }\n\n protected breakItemChildrenCache(): void {\n this._itemChildren = undefined;\n this.triggerUpdate();\n }\n\n protected render(): TemplateResult {\n return html`\n <slot name=\"icon\" @slotchange=${this.breakItemChildrenCache}></slot>\n <div id=\"label\">\n <slot\n id=\"slot\"\n @slotchange=${this.breakItemChildrenCache}\n ></slot>\n </div>\n <slot name=\"value\"></slot>\n ${this.selected\n ? html`\n <sp-icon-checkmark100\n id=\"selected\"\n class=\"spectrum-UIIcon-Checkmark100 icon checkmark\"\n ></sp-icon-checkmark100>\n `\n : html``}\n ${this.href && this.href.length > 0\n ? super.renderAnchor({\n id: 'button',\n ariaHidden: true,\n className: 'button anchor hidden',\n })\n : html``}\n <slot\n hidden\n name=\"submenu\"\n @slotchange=${this.manageSubmenu}\n ></slot>\n ${this.hasSubmenu\n ? html`\n <sp-icon-chevron100\n class=\"spectrum-UIIcon-ChevronRight100 chevron icon\"\n ></sp-icon-chevron100>\n `\n : html``}\n `;\n }\n\n protected manageSubmenu(event: Event & { target: HTMLSlotElement }): void {\n const assignedElements = event.target.assignedElements({\n flatten: true,\n });\n this.hasSubmenu = this.open || !!assignedElements.length;\n }\n\n private handleRemoveActive(event: Event): void {\n if (\n (event.type === 'pointerleave' && this.hasSubmenu) ||\n this.hasSubmenu ||\n this.open\n ) {\n return;\n }\n this.active = false;\n }\n\n private handlePointerdown(): void {\n this.active = true;\n }\n\n protected firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('tabindex', '-1');\n this.addEventListener('pointerdown', this.handlePointerdown);\n if (!this.hasAttribute('id')) {\n this.id = `sp-menu-item-${MenuItem.instanceCount++}`;\n }\n }\n\n public closeOverlay?: (leave?: boolean) => Promise<void>;\n\n protected handleSubmenuClick(): void {\n this.openOverlay({ immediate: true });\n }\n\n protected handlePointerenter(): void {\n if (this.leaveTimeout) {\n clearTimeout(this.leaveTimeout);\n delete this.leaveTimeout;\n return;\n }\n this.openOverlay();\n }\n\n protected leaveTimeout?: ReturnType<typeof setTimeout>;\n\n protected handlePointerleave(): void {\n if (this.hasSubmenu && this.open) {\n this.leaveTimeout = setTimeout(() => {\n delete this.leaveTimeout;\n if (this.closeOverlay) this.closeOverlay(true);\n }, POINTERLEAVE_TIMEOUT);\n }\n }\n\n /**\n * When there is a `change` event in the submenu for this item\n * then we \"click\" this item to cascade the selection up the\n * menu tree allowing all submenus between the initial selection\n * and the root of the tree to have their selection changes and\n * be closed.\n */\n protected handleSubmenuChange = (): void => {\n this.menuData.selectionRoot?.selectOrToggleItem(this);\n };\n\n protected handleSubmenuPointerenter = (): void => {\n if (this.leaveTimeout) {\n clearTimeout(this.leaveTimeout);\n delete this.leaveTimeout;\n }\n };\n\n public async openOverlay({\n immediate,\n }: { immediate?: boolean } = {}): Promise<void> {\n if (!this.hasSubmenu || this.open) {\n return;\n }\n this.open = true;\n this.active = true;\n const submenu = (\n this.shadowRoot.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement\n ).assignedElements()[0] as Menu;\n submenu.addEventListener(\n 'pointerenter',\n this.handleSubmenuPointerenter\n );\n submenu.addEventListener('change', this.handleSubmenuChange);\n const popover = document.createElement('sp-popover');\n const returnSubmenu = reparentChildren([submenu], popover, {\n position: 'beforeend',\n prepareCallback: (el) => {\n const slotName = el.slot;\n el.tabIndex = 0;\n el.removeAttribute('slot');\n return (el) => {\n el.tabIndex = -1;\n el.slot = slotName;\n };\n },\n });\n const closeOverlay = openOverlay(this, 'click', popover, {\n placement: this.isLTR ? 'right-start' : 'left-start',\n receivesFocus: 'auto',\n delayed: !immediate && false,\n });\n let closing = false;\n const closeSubmenu = async (leave = false): Promise<void> => {\n delete this.closeOverlay;\n if (submenu.hasOpenSubmenu) {\n await submenu.closeOpenSubmenu(leave);\n }\n if (!leave) {\n closing = true;\n }\n this.menuData.focusRoot?.submenuWillCloseOn(this);\n (await closeOverlay)();\n };\n this.closeOverlay = closeSubmenu;\n if (this.menuData.focusRoot?.hasOpenSubmenu) {\n this.menuData.focusRoot.closeOpenSubmenu(true);\n }\n const setup = (): void => {\n submenu.setCloseSelfAsSubmenu(closeSubmenu);\n this.menuData.focusRoot?.setCloseOpenSubmenu(closeSubmenu);\n };\n const cleanup = (event: CustomEvent<OverlayOpenCloseDetail>): void => {\n event.stopPropagation();\n returnSubmenu();\n submenu.setCloseSelfAsSubmenu(closeSubmenu);\n this.menuData.focusRoot?.setCloseOpenSubmenu(closeSubmenu);\n this.open = false;\n this.active = false;\n if (closing || event.detail.reason === 'external-click') {\n this.menuData.focusRoot?.dispatchEvent(\n new CustomEvent('close', {\n bubbles: true,\n composed: true,\n detail: { reason: 'external-click' },\n })\n );\n }\n };\n this.addEventListener('sp-opened', setup as EventListener, {\n once: true,\n });\n this.addEventListener('sp-closed', cleanup as EventListener, {\n once: true,\n });\n }\n\n updateAriaSelected(): void {\n const role = this.getAttribute('role');\n if (role === 'option') {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n } else if (role === 'menuitemcheckbox' || role === 'menuitemradio') {\n this.setAttribute('aria-checked', this.selected ? 'true' : 'false');\n }\n }\n\n public setRole(role: string): void {\n this.setAttribute('role', role);\n this.updateAriaSelected();\n }\n\n protected updated(changes: PropertyValues<this>): void {\n super.updated(changes);\n if (changes.has('label')) {\n this.setAttribute('aria-label', this.label || '');\n }\n if (changes.has('active')) {\n if (this.active) {\n this.addEventListener('pointerup', this.handleRemoveActive);\n this.addEventListener('pointerleave', this.handleRemoveActive);\n } else {\n this.removeEventListener('pointerup', this.handleRemoveActive);\n this.removeEventListener(\n 'pointerleave',\n this.handleRemoveActive\n );\n }\n }\n if (this.anchorElement) {\n this.anchorElement.addEventListener('focus', this.proxyFocus);\n this.anchorElement.tabIndex = -1;\n }\n if (changes.has('selected')) {\n this.updateAriaSelected();\n }\n if (changes.has('hasSubmenu')) {\n if (this.hasSubmenu) {\n this.addEventListener('click', this.handleSubmenuClick);\n this.addEventListener('pointerenter', this.handlePointerenter);\n this.addEventListener('pointerleave', this.handlePointerleave);\n } else if (!this.closeOverlay) {\n this.removeEventListener('click', this.handleSubmenuClick);\n this.removeEventListener(\n 'pointerenter',\n this.handlePointerenter\n );\n this.removeEventListener(\n 'pointerleave',\n this.handlePointerleave\n );\n }\n }\n }\n\n public connectedCallback(): void {\n super.connectedCallback();\n this.isInSubmenu = !!this.closest('[slot=\"submenu\"]');\n if (this.isInSubmenu) {\n return;\n }\n addOrUpdateEvent.reset(this);\n this.dispatchEvent(addOrUpdateEvent);\n this._parentElement = this.parentElement as HTMLElement;\n }\n\n _parentElement!: HTMLElement;\n\n public disconnectedCallback(): void {\n removeEvent.reset(this);\n if (!this.isInSubmenu) {\n this._parentElement?.dispatchEvent(removeEvent);\n }\n this.isInSubmenu = false;\n super.disconnectedCallback();\n }\n\n public async triggerUpdate(): Promise<void> {\n if (this.isInSubmenu) {\n return;\n }\n await new Promise((ready) => requestAnimationFrame(ready));\n addOrUpdateEvent.reset(this);\n this.dispatchEvent(addOrUpdateEvent);\n }\n\n public menuData: {\n focusRoot?: Menu;\n selectionRoot?: Menu;\n } = {\n focusRoot: undefined,\n selectionRoot: undefined,\n };\n}\n\ndeclare global {\n interface GlobalEventHandlersEventMap {\n 'sp-menu-item-added-or-updated': MenuItemAddedOrUpdatedEvent;\n 'sp-menu-item-removed': MenuItemRemovedEvent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 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*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-checkmark100.js';\nimport { LikeAnchor } from '@spectrum-web-components/shared/src/like-anchor.js';\nimport { Focusable } from '@spectrum-web-components/shared/src/focusable.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport { openOverlay } from '@spectrum-web-components/overlay/src/loader.js';\n\nimport menuItemStyles from './menu-item.css.js';\nimport checkmarkStyles from '@spectrum-web-components/icon/src/spectrum-icon-checkmark.css.js';\nimport type { Menu } from './Menu.js';\nimport type { OverlayOpenCloseDetail } from '@spectrum-web-components/overlay';\nimport { reparentChildren } from '@spectrum-web-components/shared/src/reparent-children.js';\n\n/**\n * Duration during which a pointing device can leave an `<sp-menu-item>` element\n * and return to it or to the submenu opened from it before closing that submenu.\n **/\nconst POINTERLEAVE_TIMEOUT = 100;\n\nexport class MenuItemRemovedEvent extends Event {\n constructor() {\n super('sp-menu-item-removed', {\n bubbles: true,\n composed: true,\n });\n }\n get item(): MenuItem {\n return this._item;\n }\n _item!: MenuItem;\n focused = false;\n reset(item: MenuItem): void {\n this._item = item;\n }\n}\n\nexport class MenuItemAddedOrUpdatedEvent extends Event {\n constructor() {\n super('sp-menu-item-added-or-updated', {\n bubbles: true,\n composed: true,\n });\n }\n set focusRoot(root: Menu | undefined) {\n this.item.menuData.focusRoot = this.item.menuData.focusRoot || root;\n }\n set selectionRoot(root: Menu) {\n this.item.menuData.selectionRoot =\n this.item.menuData.selectionRoot || root;\n }\n get item(): MenuItem {\n return this._item;\n }\n _item!: MenuItem;\n set currentAncestorWithSelects(ancestor: Menu | undefined) {\n this._currentAncestorWithSelects = ancestor;\n }\n get currentAncestorWithSelects(): Menu | undefined {\n return this._currentAncestorWithSelects;\n }\n _currentAncestorWithSelects?: Menu;\n reset(item: MenuItem): void {\n this._item = item;\n this._currentAncestorWithSelects = undefined;\n item.menuData = {\n focusRoot: undefined,\n selectionRoot: undefined,\n };\n }\n}\n\nexport type MenuItemChildren = { icon: Element[]; content: Node[] };\n\nconst addOrUpdateEvent = new MenuItemAddedOrUpdatedEvent();\nconst removeEvent = new MenuItemRemovedEvent();\n\n/**\n * @element sp-menu-item\n *\n * @slot - text content to display within the Menu Item\n * @slot icon - icon element to be placed at the start of the Menu Item\n * @slot value - content placed at the end of the Menu Item like values, keyboard shortcuts, etc.\n * @fires sp-menu-item-added - announces the item has been added so a parent menu can take ownerships\n * @fires sp-menu-item-removed - announces when removed from the DOM so the parent menu can remove ownership and update selected state\n */\nexport class MenuItem extends LikeAnchor(Focusable) {\n public static get styles(): CSSResultArray {\n return [menuItemStyles, checkmarkStyles, chevronStyles];\n }\n\n static instanceCount = 0;\n\n private isInSubmenu = false;\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public get value(): string {\n return this._value || this.itemText;\n }\n\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value || '';\n if (this._value) {\n this.setAttribute('value', this._value);\n } else {\n this.removeAttribute('value');\n }\n }\n\n private _value = '';\n\n /**\n * @private\n */\n public get itemText(): string {\n return this.itemChildren.content.reduce(\n (acc, node) => acc + (node.textContent || '').trim(),\n ''\n );\n }\n\n @property({ type: Boolean })\n public hasSubmenu = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'no-wrap',\n hasChanged() {\n return false;\n },\n })\n public noWrap = false;\n\n @query('.anchor')\n private anchorElement!: HTMLAnchorElement;\n\n public get focusElement(): HTMLElement {\n return this;\n }\n\n public get itemChildren(): MenuItemChildren {\n if (this._itemChildren) {\n return this._itemChildren;\n }\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]'\n ) as HTMLSlotElement;\n const icon = !iconSlot\n ? []\n : iconSlot.assignedElements().map((element) => {\n const newElement = element.cloneNode(true) as HTMLElement;\n newElement.removeAttribute('slot');\n newElement.classList.toggle('icon');\n return newElement;\n });\n const contentSlot = this.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const content = !contentSlot\n ? []\n : contentSlot.assignedNodes().map((node) => node.cloneNode(true));\n this._itemChildren = { icon, content };\n\n return this._itemChildren;\n }\n\n private _itemChildren?: MenuItemChildren;\n\n constructor() {\n super();\n this.proxyFocus = this.proxyFocus.bind(this);\n\n this.addEventListener('click', this.handleClickCapture, {\n capture: true,\n });\n }\n\n @property({ type: Boolean })\n public open = false;\n\n public click(): void {\n if (this.disabled) {\n return;\n }\n\n if (this.shouldProxyClick()) {\n return;\n }\n\n super.click();\n }\n\n private handleClickCapture(event: Event): void | boolean {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n return false;\n }\n }\n\n private proxyFocus(): void {\n this.focus();\n }\n\n private shouldProxyClick(): boolean {\n let handled = false;\n if (this.anchorElement) {\n this.anchorElement.click();\n handled = true;\n }\n return handled;\n }\n\n protected breakItemChildrenCache(): void {\n this._itemChildren = undefined;\n this.triggerUpdate();\n }\n\n protected render(): TemplateResult {\n return html`\n <slot name=\"icon\" @slotchange=${this.breakItemChildrenCache}></slot>\n <div id=\"label\">\n <slot\n id=\"slot\"\n @slotchange=${this.breakItemChildrenCache}\n ></slot>\n </div>\n <slot name=\"value\"></slot>\n ${this.selected\n ? html`\n <sp-icon-checkmark100\n id=\"selected\"\n class=\"spectrum-UIIcon-Checkmark100 icon checkmark\"\n ></sp-icon-checkmark100>\n `\n : html``}\n ${this.href && this.href.length > 0\n ? super.renderAnchor({\n id: 'button',\n ariaHidden: true,\n className: 'button anchor hidden',\n })\n : html``}\n <slot\n hidden\n name=\"submenu\"\n @slotchange=${this.manageSubmenu}\n ></slot>\n ${this.hasSubmenu\n ? html`\n <sp-icon-chevron100\n class=\"spectrum-UIIcon-ChevronRight100 chevron icon\"\n ></sp-icon-chevron100>\n `\n : html``}\n `;\n }\n\n protected manageSubmenu(event: Event & { target: HTMLSlotElement }): void {\n const assignedElements = event.target.assignedElements({\n flatten: true,\n });\n this.hasSubmenu = this.open || !!assignedElements.length;\n }\n\n private handleRemoveActive(event: Event): void {\n if (\n (event.type === 'pointerleave' && this.hasSubmenu) ||\n this.hasSubmenu ||\n this.open\n ) {\n return;\n }\n this.active = false;\n }\n\n private handlePointerdown(): void {\n this.active = true;\n }\n\n protected firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('tabindex', '-1');\n this.addEventListener('pointerdown', this.handlePointerdown);\n if (!this.hasAttribute('id')) {\n this.id = `sp-menu-item-${MenuItem.instanceCount++}`;\n }\n }\n\n public closeOverlay?: (leave?: boolean) => Promise<void>;\n\n protected handleSubmenuClick(): void {\n this.openOverlay({ immediate: true });\n }\n\n protected handlePointerenter(): void {\n if (this.leaveTimeout) {\n clearTimeout(this.leaveTimeout);\n delete this.leaveTimeout;\n return;\n }\n this.openOverlay();\n }\n\n protected leaveTimeout?: ReturnType<typeof setTimeout>;\n\n protected handlePointerleave(): void {\n if (this.hasSubmenu && this.open) {\n this.leaveTimeout = setTimeout(() => {\n delete this.leaveTimeout;\n if (this.closeOverlay) this.closeOverlay(true);\n }, POINTERLEAVE_TIMEOUT);\n }\n }\n\n /**\n * When there is a `change` event in the submenu for this item\n * then we \"click\" this item to cascade the selection up the\n * menu tree allowing all submenus between the initial selection\n * and the root of the tree to have their selection changes and\n * be closed.\n */\n protected handleSubmenuChange = (): void => {\n this.menuData.selectionRoot?.selectOrToggleItem(this);\n };\n\n protected handleSubmenuPointerenter = (): void => {\n if (this.leaveTimeout) {\n clearTimeout(this.leaveTimeout);\n delete this.leaveTimeout;\n }\n };\n\n public async openOverlay({\n immediate,\n }: { immediate?: boolean } = {}): Promise<void> {\n if (!this.hasSubmenu || this.open || this.disabled) {\n return;\n }\n this.open = true;\n this.active = true;\n const submenu = (\n this.shadowRoot.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement\n ).assignedElements()[0] as Menu;\n submenu.addEventListener(\n 'pointerenter',\n this.handleSubmenuPointerenter\n );\n submenu.addEventListener('change', this.handleSubmenuChange);\n const popover = document.createElement('sp-popover');\n const returnSubmenu = reparentChildren([submenu], popover, {\n position: 'beforeend',\n prepareCallback: (el) => {\n const slotName = el.slot;\n el.tabIndex = 0;\n el.removeAttribute('slot');\n return (el) => {\n el.tabIndex = -1;\n el.slot = slotName;\n };\n },\n });\n const closeOverlay = openOverlay(this, 'click', popover, {\n placement: this.isLTR ? 'right-start' : 'left-start',\n receivesFocus: 'auto',\n delayed: !immediate && false,\n });\n let closing = false;\n const closeSubmenu = async (leave = false): Promise<void> => {\n delete this.closeOverlay;\n if (submenu.hasOpenSubmenu) {\n await submenu.closeOpenSubmenu(leave);\n }\n if (!leave) {\n closing = true;\n }\n this.menuData.focusRoot?.submenuWillCloseOn(this);\n (await closeOverlay)();\n };\n this.closeOverlay = closeSubmenu;\n if (this.menuData.focusRoot?.hasOpenSubmenu) {\n this.menuData.focusRoot.closeOpenSubmenu(true);\n }\n const setup = (): void => {\n submenu.setCloseSelfAsSubmenu(closeSubmenu);\n this.menuData.focusRoot?.setCloseOpenSubmenu(closeSubmenu);\n };\n const cleanup = (event: CustomEvent<OverlayOpenCloseDetail>): void => {\n event.stopPropagation();\n returnSubmenu();\n submenu.setCloseSelfAsSubmenu(closeSubmenu);\n this.menuData.focusRoot?.setCloseOpenSubmenu(closeSubmenu);\n this.open = false;\n this.active = false;\n if (closing || event.detail.reason === 'external-click') {\n this.menuData.focusRoot?.dispatchEvent(\n new CustomEvent('close', {\n bubbles: true,\n composed: true,\n detail: { reason: 'external-click' },\n })\n );\n }\n };\n this.addEventListener('sp-opened', setup as EventListener, {\n once: true,\n });\n this.addEventListener('sp-closed', cleanup as EventListener, {\n once: true,\n });\n }\n\n updateAriaSelected(): void {\n const role = this.getAttribute('role');\n if (role === 'option') {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n } else if (role === 'menuitemcheckbox' || role === 'menuitemradio') {\n this.setAttribute('aria-checked', this.selected ? 'true' : 'false');\n }\n }\n\n public setRole(role: string): void {\n this.setAttribute('role', role);\n this.updateAriaSelected();\n }\n\n protected updated(changes: PropertyValues<this>): void {\n super.updated(changes);\n if (changes.has('label')) {\n this.setAttribute('aria-label', this.label || '');\n }\n if (changes.has('active')) {\n if (this.active) {\n this.addEventListener('pointerup', this.handleRemoveActive);\n this.addEventListener('pointerleave', this.handleRemoveActive);\n } else {\n this.removeEventListener('pointerup', this.handleRemoveActive);\n this.removeEventListener(\n 'pointerleave',\n this.handleRemoveActive\n );\n }\n }\n if (this.anchorElement) {\n this.anchorElement.addEventListener('focus', this.proxyFocus);\n this.anchorElement.tabIndex = -1;\n }\n if (changes.has('selected')) {\n this.updateAriaSelected();\n }\n if (changes.has('hasSubmenu')) {\n if (this.hasSubmenu) {\n this.addEventListener('click', this.handleSubmenuClick);\n this.addEventListener('pointerenter', this.handlePointerenter);\n this.addEventListener('pointerleave', this.handlePointerleave);\n } else if (!this.closeOverlay) {\n this.removeEventListener('click', this.handleSubmenuClick);\n this.removeEventListener(\n 'pointerenter',\n this.handlePointerenter\n );\n this.removeEventListener(\n 'pointerleave',\n this.handlePointerleave\n );\n }\n }\n }\n\n public connectedCallback(): void {\n super.connectedCallback();\n this.isInSubmenu = !!this.closest('[slot=\"submenu\"]');\n if (this.isInSubmenu) {\n return;\n }\n addOrUpdateEvent.reset(this);\n this.dispatchEvent(addOrUpdateEvent);\n this._parentElement = this.parentElement as HTMLElement;\n }\n\n _parentElement!: HTMLElement;\n\n public disconnectedCallback(): void {\n removeEvent.reset(this);\n if (!this.isInSubmenu) {\n this._parentElement?.dispatchEvent(removeEvent);\n }\n this.isInSubmenu = false;\n super.disconnectedCallback();\n }\n\n public async triggerUpdate(): Promise<void> {\n if (this.isInSubmenu) {\n return;\n }\n await new Promise((ready) => requestAnimationFrame(ready));\n addOrUpdateEvent.reset(this);\n this.dispatchEvent(addOrUpdateEvent);\n }\n\n public menuData: {\n focusRoot?: Menu;\n selectionRoot?: Menu;\n } = {\n focusRoot: undefined,\n selectionRoot: undefined,\n };\n}\n\ndeclare global {\n interface GlobalEventHandlersEventMap {\n 'sp-menu-item-added-or-updated': MenuItemAddedOrUpdatedEvent;\n 'sp-menu-item-removed': MenuItemRemovedEvent;\n }\n}\n"]}
|
package/src/menu-divider.css.js
CHANGED
|
@@ -11,9 +11,7 @@ governing permissions and limitations under the License.
|
|
|
11
11
|
*/
|
|
12
12
|
import { css } from '@spectrum-web-components/base';
|
|
13
13
|
const styles = css `
|
|
14
|
-
:host{
|
|
15
|
-
--spectrum-listitem-m-texticon-divider-color,var(--spectrum-alias-border-color-extralight)
|
|
16
|
-
)}:host{display:block}
|
|
14
|
+
:host{margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;width:auto}@media (forced-colors:active){:host{background-color:CanvasText;forced-color-adjust:none}}:host{display:block}
|
|
17
15
|
`;
|
|
18
16
|
export default styles;
|
|
19
17
|
//# sourceMappingURL=menu-divider.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-divider.css.js","sourceRoot":"","sources":["menu-divider.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"menu-divider.css.js","sourceRoot":"","sources":["menu-divider.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;CAEjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;width:auto}@media (forced-colors:active){:host{background-color:CanvasText;forced-color-adjust:none}}:host{display:block}\n`;\nexport default styles;"]}
|
package/src/menu-item.css.js
CHANGED
|
@@ -70,7 +70,15 @@ var(--spectrum-global-dimension-size-225)
|
|
|
70
70
|
--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)
|
|
71
71
|
);background-image:none;color:var(
|
|
72
72
|
--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)
|
|
73
|
-
);cursor:default}
|
|
73
|
+
);cursor:default}@media (forced-colors:active){:host{--spectrum-listheading-text-color:ButtonText;--spectrum-listitem-m-texticon-background-color:ButtonFace;--spectrum-listitem-m-texticon-background-color-disabled:ButtonFace;--spectrum-listitem-m-texticon-background-color-down:ButtonFace;--spectrum-listitem-m-texticon-background-color-hover:Highlight;--spectrum-listitem-m-texticon-background-color-key-focus:Highlight;--spectrum-listitem-m-texticon-focus-indicator-color:Highlight;--spectrum-listitem-m-texticon-text-color:ButtonText;--spectrum-listitem-m-texticon-text-color-disabled:GrayText;--spectrum-listitem-m-texticon-text-color-hover:HighlightText;--spectrum-listitem-m-texticon-text-color-key-focus:HighlightText;--spectrum-listitem-m-texticon-text-color-selected:ButtonText;--spectrum-listitem-m-texticon-ui-icon-color-selected:Highlight;forced-color-adjust:none}:host(:not([disabled]).focus-visible),:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(
|
|
74
|
+
--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)
|
|
75
|
+
);color:var(
|
|
76
|
+
--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)
|
|
77
|
+
)}:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):focus-visible),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(
|
|
78
|
+
--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)
|
|
79
|
+
);color:var(
|
|
80
|
+
--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)
|
|
81
|
+
)}:host(:not([disabled]).focus-visible[selected]) .checkmark,:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus-visible[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}.spectrum-Menu-itemLabel--wrapping{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([hidden]){display:none}:host([disabled]){pointer-events:none}#button{inset:0;position:absolute}::slotted([slot=value]){align-self:start}:host([dir=ltr]) ::slotted([slot=value]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=value]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=ltr]) [icon-only]::slotted(:last-of-type){margin-right:auto}:host([dir=rtl]) [icon-only]::slotted(:last-of-type){margin-left:auto}:host([dir=ltr]) ::slotted([slot=icon]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=icon]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) slot[name=icon]+#label{margin-right:0}:host([dir=ltr]) slot[name=icon]+#label{margin-left:0}:host([dir=rtl]) .chevron{padding-left:var(--spectrum-listitem-texticon-icon-gap);padding-right:0}
|
|
74
82
|
`;
|
|
75
83
|
export default styles;
|
|
76
84
|
//# sourceMappingURL=menu-item.css.js.map
|
package/src/menu-item.css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.css.js","sourceRoot":"","sources":["menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n.checkmark{align-self:flex-start;display:none;opacity:1;transform:scale(1)}:host([dir=ltr]) .checkmark{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.checkmark{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.chevron{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]){border-left:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host([dir=rtl]){border-right:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--spectrum-listitem-texticon-text-size);font-style:normal;font-weight:var(--spectrum-listitem-texticon-text-font-weight);margin:0;min-height:var(--spectrum-listitem-texticon-height);padding:var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-right) var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-left);position:relative;text-decoration:none}:host(:focus){outline:none}:host([dir=ltr][selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([selected]) .checkmark{display:block}.icon,::slotted([slot=icon]){align-self:flex-start;flex-shrink:0}:host([dir=ltr]) .icon+#label,:host([dir=ltr]) slot[name=icon]+#label{margin-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .icon+#label,:host([dir=rtl]) slot[name=icon]+#label{margin-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.icon+#label,slot[name=icon]+#label{width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap) - var(--spectrum-listitem-textthumbnail-padding-left) - var(\n--spectrum-alias-workflow-icon-size-m,\nvar(--spectrum-global-dimension-size-225)\n))}:host([no-wrap]) #label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([dir=ltr]) .checkmark,:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark,:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n);color:var(\n--spectrum-listitem-m-texticon-text-color,var(--spectrum-alias-component-text-color-default)\n)}:host([dir=ltr].focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=ltr]:focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl].focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl]:focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host(.focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(.is-highlighted),:host(.is-open),:host(:focus),:host(:hover){background-color:var(\n--spectrum-listitem-m-texticon-background-color-hover,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-hover,var(--spectrum-alias-component-text-color-hover)\n)}:host([selected]){color:var(\n--spectrum-listitem-m-texticon-text-color-selected,var(--spectrum-alias-component-text-color-default)\n)}:host([selected]) .checkmark{color:var(\n--spectrum-listitem-m-texticon-ui-icon-color-selected,var(--spectrum-alias-icon-color-selected)\n)}:host(:active),:host([active]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-down,var(--spectrum-alias-background-color-hover-overlay)\n)}:host([disabled]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)\n);background-image:none;color:var(\n--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)\n);cursor:default}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}.spectrum-Menu-itemLabel--wrapping{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([hidden]){display:none}#button{inset:0;position:absolute}::slotted([slot=value]){align-self:start}:host([dir=ltr]) ::slotted([slot=value]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=value]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=ltr]) [icon-only]::slotted(:last-of-type){margin-right:auto}:host([dir=rtl]) [icon-only]::slotted(:last-of-type){margin-left:auto}:host([dir=ltr]) ::slotted([slot=icon]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=icon]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) slot[name=icon]+#label{margin-right:0}:host([dir=ltr]) slot[name=icon]+#label{margin-left:0}:host([dir=rtl]) .chevron{padding-left:var(--spectrum-listitem-texticon-icon-gap);padding-right:0}\n`;\nexport default styles;"]}
|
|
1
|
+
{"version":3,"file":"menu-item.css.js","sourceRoot":"","sources":["menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n.checkmark{align-self:flex-start;display:none;opacity:1;transform:scale(1)}:host([dir=ltr]) .checkmark{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.checkmark{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.chevron{flex-grow:0;margin-top:calc(var(--spectrum-listitem-texticon-ui-icon-margin-top) - var(--spectrum-listitem-texticon-padding-y) + 1px)}:host([dir=ltr]){border-left:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host([dir=rtl]){border-right:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--spectrum-listitem-texticon-text-size);font-style:normal;font-weight:var(--spectrum-listitem-texticon-text-font-weight);margin:0;min-height:var(--spectrum-listitem-texticon-height);padding:var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-right) var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-left);position:relative;text-decoration:none}:host(:focus){outline:none}:host([dir=ltr][selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([selected]) .checkmark{display:block}.icon,::slotted([slot=icon]){align-self:flex-start;flex-shrink:0}:host([dir=ltr]) .icon+#label,:host([dir=ltr]) slot[name=icon]+#label{margin-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .icon+#label,:host([dir=rtl]) slot[name=icon]+#label{margin-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.icon+#label,slot[name=icon]+#label{width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap) - var(--spectrum-listitem-textthumbnail-padding-left) - var(\n--spectrum-alias-workflow-icon-size-m,\nvar(--spectrum-global-dimension-size-225)\n))}:host([no-wrap]) #label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([dir=ltr]) .checkmark,:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark,:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n);color:var(\n--spectrum-listitem-m-texticon-text-color,var(--spectrum-alias-component-text-color-default)\n)}:host([dir=ltr].focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=ltr]:focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl].focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl]:focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host(.focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(.is-highlighted),:host(.is-open),:host(:focus),:host(:hover){background-color:var(\n--spectrum-listitem-m-texticon-background-color-hover,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-hover,var(--spectrum-alias-component-text-color-hover)\n)}:host([selected]){color:var(\n--spectrum-listitem-m-texticon-text-color-selected,var(--spectrum-alias-component-text-color-default)\n)}:host([selected]) .checkmark{color:var(\n--spectrum-listitem-m-texticon-ui-icon-color-selected,var(--spectrum-alias-icon-color-selected)\n)}:host(:active),:host([active]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-down,var(--spectrum-alias-background-color-hover-overlay)\n)}:host([disabled]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)\n);background-image:none;color:var(\n--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)\n);cursor:default}@media (forced-colors:active){:host{--spectrum-listheading-text-color:ButtonText;--spectrum-listitem-m-texticon-background-color:ButtonFace;--spectrum-listitem-m-texticon-background-color-disabled:ButtonFace;--spectrum-listitem-m-texticon-background-color-down:ButtonFace;--spectrum-listitem-m-texticon-background-color-hover:Highlight;--spectrum-listitem-m-texticon-background-color-key-focus:Highlight;--spectrum-listitem-m-texticon-focus-indicator-color:Highlight;--spectrum-listitem-m-texticon-text-color:ButtonText;--spectrum-listitem-m-texticon-text-color-disabled:GrayText;--spectrum-listitem-m-texticon-text-color-hover:HighlightText;--spectrum-listitem-m-texticon-text-color-key-focus:HighlightText;--spectrum-listitem-m-texticon-text-color-selected:ButtonText;--spectrum-listitem-m-texticon-ui-icon-color-selected:Highlight;forced-color-adjust:none}:host(:not([disabled]).focus-visible),:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):focus-visible),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:not([disabled]).focus-visible[selected]) .checkmark,:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus-visible[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}.spectrum-Menu-itemLabel--wrapping{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([hidden]){display:none}:host([disabled]){pointer-events:none}#button{inset:0;position:absolute}::slotted([slot=value]){align-self:start}:host([dir=ltr]) ::slotted([slot=value]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=value]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=ltr]) [icon-only]::slotted(:last-of-type){margin-right:auto}:host([dir=rtl]) [icon-only]::slotted(:last-of-type){margin-left:auto}:host([dir=ltr]) ::slotted([slot=icon]){margin-right:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) ::slotted([slot=icon]){margin-left:var(--spectrum-listitem-texticon-icon-gap)}:host([dir=rtl]) slot[name=icon]+#label{margin-right:0}:host([dir=ltr]) slot[name=icon]+#label{margin-left:0}:host([dir=rtl]) .chevron{padding-left:var(--spectrum-listitem-texticon-icon-gap);padding-right:0}\n`;\nexport default styles;"]}
|
package/src/menu.css.js
CHANGED
|
@@ -34,8 +34,6 @@ var(--spectrum-alias-border-size-thin)
|
|
|
34
34
|
--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)
|
|
35
35
|
);--spectrum-listitem-texticon-icon-gap:var(
|
|
36
36
|
--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)
|
|
37
|
-
);--spectrum-listitem-texticon-divider-size:var(
|
|
38
|
-
--spectrum-listitem-m-texticon-divider-size,var(--spectrum-alias-border-size-thick)
|
|
39
37
|
);--spectrum-listitem-texticon-divider-padding:var(
|
|
40
38
|
--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)
|
|
41
39
|
);--spectrum-listitem-texticon-ui-icon-margin-top:var(
|
package/src/menu.css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.css.js","sourceRoot":"","sources":["menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"menu.css.js","sourceRoot":"","sources":["menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--spectrum-menu-margin-x:var(\n--spectrum-global-dimension-size-40\n);--spectrum-listitem-texticon-heading-text-size:var(\n--spectrum-global-dimension-font-size-50\n);--spectrum-listitem-texticon-heading-text-font-weight:400;--spectrum-listitem-texticon-heading-text-transform:uppercase;--spectrum-listitem-texticon-heading-letter-spacing:0.06em;--spectrum-listitem-texticon-heading-margin:var(\n--spectrum-global-dimension-size-75\n) 0 0 0;--spectrum-listitem-texticon-heading-padding:0 var(--spectrum-global-dimension-size-450) 0 var(--spectrum-global-dimension-size-150);--spectrum-listitem-texticon-padding-y:var(\n--spectrum-global-dimension-size-85\n);--spectrum-listitem-texticon-selectable-padding-right:calc(var(--spectrum-listitem-texticon-ui-icon-width) + var(--spectrum-listitem-texticon-ui-icon-gap) + var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n));--spectrum-listitem-texticon-label-line-height:1.3;--spectrum-listitem-texticon-heading-line-height:var(\n--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)\n)}:host{--spectrum-listitem-texticon-padding-left:var(\n--spectrum-listitem-m-texticon-padding-left\n);--spectrum-listitem-textthumbnail-padding-left:var(\n--spectrum-listitem-m-textthumbnail-padding-left\n);--spectrum-listitem-texticon-text-size:var(\n--spectrum-listitem-m-texticon-text-size,var(--spectrum-global-dimension-font-size-100)\n);--spectrum-listitem-texticon-text-font-weight:var(\n--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)\n);--spectrum-listitem-texticon-icon-gap:var(\n--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-divider-padding:var(\n--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)\n);--spectrum-listitem-texticon-ui-icon-margin-top:var(\n--spectrum-listitem-m-texticon-ui-icon-margin-top,var(--spectrum-global-dimension-size-125)\n);--spectrum-listitem-texticon-ui-icon-width:var(\n--spectrum-listitem-m-texticon-ui-icon-width,var(--spectrum-alias-ui-icon-checkmark-size-100)\n);--spectrum-listitem-texticon-ui-icon-gap:var(\n--spectrum-listitem-m-texticon-ui-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-padding-right:var(\n--spectrum-listitem-m-texticon-padding-right,var(--spectrum-global-dimension-size-150)\n);--spectrum-listitem-texticon-focus-indicator-size:var(\n--spectrum-listitem-m-texticon-focus-indicator-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-height:var(\n--spectrum-listitem-m-texticon-height,var(--spectrum-global-dimension-size-400)\n)}:host{box-sizing:border-box;display:inline-block;list-style-type:none;margin-bottom:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);margin-left:0;margin-right:0;margin-top:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);overflow:auto;padding:0}:host([dir=ltr][selects]) ::slotted(sp-menu-item){padding-right:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=rtl][selects]) ::slotted(sp-menu-item){padding-left:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=ltr][selects]) ::slotted(sp-menu-item[selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selects]) ::slotted(sp-menu-item[selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}::slotted(sp-menu){display:block}:host{--spectrum-listheading-text-color:var(\n--spectrum-global-color-gray-700\n)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n)}:host{--spectrum-listitem-selectable-padding-right:calc(var(--spectrum-global-dimension-size-100) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-listitem-icon-gap));width:var(--swc-menu-width)}:host(:focus){outline:none}::slotted(*){--swc-menu-width:100%}\n`;\nexport default styles;"]}
|
package/src/spectrum-config.js
CHANGED
|
@@ -51,7 +51,7 @@ const config = {
|
|
|
51
51
|
complexSelectors: [
|
|
52
52
|
{
|
|
53
53
|
replacement: '::slotted(sp-menu)',
|
|
54
|
-
selector:
|
|
54
|
+
selector: /.spectrum-Menu .spectrum-Menu(?!-)/,
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
replacement:
|
|
@@ -175,9 +175,19 @@ const config = {
|
|
|
175
175
|
{
|
|
176
176
|
name: 'menu-divider',
|
|
177
177
|
host: {
|
|
178
|
-
selector: '.spectrum-Menu
|
|
178
|
+
selector: '.spectrum-Menu',
|
|
179
179
|
},
|
|
180
180
|
exclude: [/\.spectrum-Menu(?!-divider)/],
|
|
181
|
+
complexSelectors: [
|
|
182
|
+
{
|
|
183
|
+
replacement: ':host',
|
|
184
|
+
selector: '.spectrum-Menu .spectrum-Menu-divider',
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
replacement: ':host',
|
|
188
|
+
selector: /^\.spectrum-Menu-divider/,
|
|
189
|
+
},
|
|
190
|
+
],
|
|
181
191
|
},
|
|
182
192
|
],
|
|
183
193
|
};
|
|
@@ -11,9 +11,7 @@ governing permissions and limitations under the License.
|
|
|
11
11
|
*/
|
|
12
12
|
import { css } from '@spectrum-web-components/base';
|
|
13
13
|
const styles = css `
|
|
14
|
-
:host{
|
|
15
|
-
--spectrum-listitem-m-texticon-divider-color,var(--spectrum-alias-border-color-extralight)
|
|
16
|
-
)}
|
|
14
|
+
:host{margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;width:auto}@media (forced-colors:active){:host{background-color:CanvasText;forced-color-adjust:none}}
|
|
17
15
|
`;
|
|
18
16
|
export default styles;
|
|
19
17
|
//# sourceMappingURL=spectrum-menu-divider.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spectrum-menu-divider.css.js","sourceRoot":"","sources":["spectrum-menu-divider.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"spectrum-menu-divider.css.js","sourceRoot":"","sources":["spectrum-menu-divider.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;CAEjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{margin:calc(var(--spectrum-listitem-texticon-divider-padding)/2) var(--spectrum-listitem-texticon-padding-y);overflow:visible;width:auto}@media (forced-colors:active){:host{background-color:CanvasText;forced-color-adjust:none}}\n`;\nexport default styles;"]}
|
|
@@ -62,7 +62,15 @@ var(--spectrum-global-dimension-size-225)
|
|
|
62
62
|
--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)
|
|
63
63
|
);background-image:none;color:var(
|
|
64
64
|
--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)
|
|
65
|
-
);cursor:default}
|
|
65
|
+
);cursor:default}@media (forced-colors:active){:host{--spectrum-listheading-text-color:ButtonText;--spectrum-listitem-m-texticon-background-color:ButtonFace;--spectrum-listitem-m-texticon-background-color-disabled:ButtonFace;--spectrum-listitem-m-texticon-background-color-down:ButtonFace;--spectrum-listitem-m-texticon-background-color-hover:Highlight;--spectrum-listitem-m-texticon-background-color-key-focus:Highlight;--spectrum-listitem-m-texticon-focus-indicator-color:Highlight;--spectrum-listitem-m-texticon-text-color:ButtonText;--spectrum-listitem-m-texticon-text-color-disabled:GrayText;--spectrum-listitem-m-texticon-text-color-hover:HighlightText;--spectrum-listitem-m-texticon-text-color-key-focus:HighlightText;--spectrum-listitem-m-texticon-text-color-selected:ButtonText;--spectrum-listitem-m-texticon-ui-icon-color-selected:Highlight;forced-color-adjust:none}:host(:not([disabled]).focus-visible),:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(
|
|
66
|
+
--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)
|
|
67
|
+
);color:var(
|
|
68
|
+
--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)
|
|
69
|
+
)}:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):focus-visible),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(
|
|
70
|
+
--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)
|
|
71
|
+
);color:var(
|
|
72
|
+
--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)
|
|
73
|
+
)}:host(:not([disabled]).focus-visible[selected]) .checkmark,:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus-visible[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}}
|
|
66
74
|
`;
|
|
67
75
|
export default styles;
|
|
68
76
|
//# sourceMappingURL=spectrum-menu-item.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spectrum-menu-item.css.js","sourceRoot":"","sources":["spectrum-menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"spectrum-menu-item.css.js","sourceRoot":"","sources":["spectrum-menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host([dir=ltr]){border-left:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host([dir=rtl]){border-right:var(--spectrum-listitem-texticon-focus-indicator-size) solid transparent}:host{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--spectrum-listitem-texticon-text-size);font-style:normal;font-weight:var(--spectrum-listitem-texticon-text-font-weight);margin:0;min-height:var(--spectrum-listitem-texticon-height);padding:var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-right) var(--spectrum-listitem-texticon-padding-y) var(--spectrum-listitem-texticon-padding-left);position:relative;text-decoration:none}:host(:focus){outline:none}:host([dir=ltr][selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([selected]) .checkmark{display:block}.icon,::slotted([slot=icon]){align-self:flex-start;flex-shrink:0}:host([dir=ltr]) .icon+#label,:host([dir=ltr]) slot[name=icon]+#label{margin-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .icon+#label,:host([dir=rtl]) slot[name=icon]+#label{margin-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}.icon+#label,slot[name=icon]+#label{width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap) - var(--spectrum-listitem-textthumbnail-padding-left) - var(\n--spectrum-alias-workflow-icon-size-m,\nvar(--spectrum-global-dimension-size-225)\n))}#label{flex:1 1 auto;-webkit-hyphens:auto;hyphens:auto;line-height:var(--spectrum-listitem-texticon-label-line-height);overflow-wrap:break-word;width:calc(100% - var(--spectrum-listitem-texticon-ui-icon-width) - var(--spectrum-listitem-texticon-icon-gap))}:host([no-wrap]) #label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([dir=ltr]) .checkmark,:host([dir=ltr]) .chevron{padding-left:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .checkmark,:host([dir=rtl]) .chevron{padding-right:var(\n--spectrum-listitem-texticon-icon-gap\n)}:host([dir=rtl]) .chevron{transform:matrix(-1,0,0,1,0,0)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n);color:var(\n--spectrum-listitem-m-texticon-text-color,var(--spectrum-alias-component-text-color-default)\n)}:host([dir=ltr].focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=ltr]:focus-visible),:host([dir=ltr][focused]){border-left-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl].focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host([dir=rtl]:focus-visible),:host([dir=rtl][focused]){border-right-color:var(\n--spectrum-listitem-m-texticon-focus-indicator-color,var(--spectrum-alias-border-color-key-focus)\n)}:host(.focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:focus-visible),:host([focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(.is-highlighted),:host(.is-open),:host(:focus),:host(:hover){background-color:var(\n--spectrum-listitem-m-texticon-background-color-hover,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-hover,var(--spectrum-alias-component-text-color-hover)\n)}:host([selected]){color:var(\n--spectrum-listitem-m-texticon-text-color-selected,var(--spectrum-alias-component-text-color-default)\n)}:host([selected]) .checkmark{color:var(\n--spectrum-listitem-m-texticon-ui-icon-color-selected,var(--spectrum-alias-icon-color-selected)\n)}:host(:active),:host([active]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-down,var(--spectrum-alias-background-color-hover-overlay)\n)}:host([disabled]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-disabled,var(--spectrum-alias-background-color-transparent)\n);background-image:none;color:var(\n--spectrum-listitem-m-texticon-text-color-disabled,var(--spectrum-alias-component-text-color-disabled)\n);cursor:default}@media (forced-colors:active){:host{--spectrum-listheading-text-color:ButtonText;--spectrum-listitem-m-texticon-background-color:ButtonFace;--spectrum-listitem-m-texticon-background-color-disabled:ButtonFace;--spectrum-listitem-m-texticon-background-color-down:ButtonFace;--spectrum-listitem-m-texticon-background-color-hover:Highlight;--spectrum-listitem-m-texticon-background-color-key-focus:Highlight;--spectrum-listitem-m-texticon-focus-indicator-color:Highlight;--spectrum-listitem-m-texticon-text-color:ButtonText;--spectrum-listitem-m-texticon-text-color-disabled:GrayText;--spectrum-listitem-m-texticon-text-color-hover:HighlightText;--spectrum-listitem-m-texticon-text-color-key-focus:HighlightText;--spectrum-listitem-m-texticon-text-color-selected:ButtonText;--spectrum-listitem-m-texticon-ui-icon-color-selected:Highlight;forced-color-adjust:none}:host(:not([disabled]).focus-visible),:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:not([disabled]).is-highlighted),:host(:not([disabled]).is-open),:host(:not([disabled]):focus),:host(:not([disabled]):focus-visible),:host(:not([disabled]):hover),:host(:not([disabled])[focused]){background-color:var(\n--spectrum-listitem-m-texticon-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay)\n);color:var(\n--spectrum-listitem-m-texticon-text-color-key-focus,var(--spectrum-alias-component-text-color-key-focus)\n)}:host(:not([disabled]).focus-visible[selected]) .checkmark,:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}:host(:not([disabled]).is-highlighted[selected]) .checkmark,:host(:not([disabled]).is-open[selected]) .checkmark,:host(:not([disabled]):focus-visible[selected]) .checkmark,:host(:not([disabled]):focus[selected]) .checkmark,:host(:not([disabled]):hover[selected]) .checkmark,:host(:not([disabled])[focused][selected]) .checkmark{color:HighlightText}}\n`;\nexport default styles;"]}
|
package/src/spectrum-menu.css.js
CHANGED
|
@@ -34,8 +34,6 @@ var(--spectrum-alias-border-size-thin)
|
|
|
34
34
|
--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)
|
|
35
35
|
);--spectrum-listitem-texticon-icon-gap:var(
|
|
36
36
|
--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)
|
|
37
|
-
);--spectrum-listitem-texticon-divider-size:var(
|
|
38
|
-
--spectrum-listitem-m-texticon-divider-size,var(--spectrum-alias-border-size-thick)
|
|
39
37
|
);--spectrum-listitem-texticon-divider-padding:var(
|
|
40
38
|
--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)
|
|
41
39
|
);--spectrum-listitem-texticon-ui-icon-margin-top:var(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spectrum-menu.css.js","sourceRoot":"","sources":["spectrum-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"spectrum-menu.css.js","sourceRoot":"","sources":["spectrum-menu.css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDjB,CAAC;AACF,eAAe,MAAM,CAAC","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 { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--spectrum-menu-margin-x:var(\n--spectrum-global-dimension-size-40\n);--spectrum-listitem-texticon-heading-text-size:var(\n--spectrum-global-dimension-font-size-50\n);--spectrum-listitem-texticon-heading-text-font-weight:400;--spectrum-listitem-texticon-heading-text-transform:uppercase;--spectrum-listitem-texticon-heading-letter-spacing:0.06em;--spectrum-listitem-texticon-heading-margin:var(\n--spectrum-global-dimension-size-75\n) 0 0 0;--spectrum-listitem-texticon-heading-padding:0 var(--spectrum-global-dimension-size-450) 0 var(--spectrum-global-dimension-size-150);--spectrum-listitem-texticon-padding-y:var(\n--spectrum-global-dimension-size-85\n);--spectrum-listitem-texticon-selectable-padding-right:calc(var(--spectrum-listitem-texticon-ui-icon-width) + var(--spectrum-listitem-texticon-ui-icon-gap) + var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n));--spectrum-listitem-texticon-label-line-height:1.3;--spectrum-listitem-texticon-heading-line-height:var(\n--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)\n)}:host{--spectrum-listitem-texticon-padding-left:var(\n--spectrum-listitem-m-texticon-padding-left\n);--spectrum-listitem-textthumbnail-padding-left:var(\n--spectrum-listitem-m-textthumbnail-padding-left\n);--spectrum-listitem-texticon-text-size:var(\n--spectrum-listitem-m-texticon-text-size,var(--spectrum-global-dimension-font-size-100)\n);--spectrum-listitem-texticon-text-font-weight:var(\n--spectrum-listitem-m-texticon-text-font-weight,var(--spectrum-alias-body-text-font-weight)\n);--spectrum-listitem-texticon-icon-gap:var(\n--spectrum-listitem-m-texticon-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-divider-padding:var(\n--spectrum-listitem-m-texticon-divider-padding,var(--spectrum-global-dimension-static-size-40)\n);--spectrum-listitem-texticon-ui-icon-margin-top:var(\n--spectrum-listitem-m-texticon-ui-icon-margin-top,var(--spectrum-global-dimension-size-125)\n);--spectrum-listitem-texticon-ui-icon-width:var(\n--spectrum-listitem-m-texticon-ui-icon-width,var(--spectrum-alias-ui-icon-checkmark-size-100)\n);--spectrum-listitem-texticon-ui-icon-gap:var(\n--spectrum-listitem-m-texticon-ui-icon-gap,var(--spectrum-global-dimension-size-100)\n);--spectrum-listitem-texticon-padding-right:var(\n--spectrum-listitem-m-texticon-padding-right,var(--spectrum-global-dimension-size-150)\n);--spectrum-listitem-texticon-focus-indicator-size:var(\n--spectrum-listitem-m-texticon-focus-indicator-size,var(--spectrum-alias-border-size-thick)\n);--spectrum-listitem-texticon-height:var(\n--spectrum-listitem-m-texticon-height,var(--spectrum-global-dimension-size-400)\n)}:host{box-sizing:border-box;display:inline-block;list-style-type:none;margin-bottom:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);margin-left:0;margin-right:0;margin-top:var(\n--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50)\n);overflow:auto;padding:0}:host([dir=ltr][selects]) ::slotted(sp-menu-item){padding-right:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=rtl][selects]) ::slotted(sp-menu-item){padding-left:var(\n--spectrum-listitem-texticon-selectable-padding-right\n)}:host([dir=ltr][selects]) ::slotted(sp-menu-item[selected]){padding-right:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}:host([dir=rtl][selects]) ::slotted(sp-menu-item[selected]){padding-left:calc(var(--spectrum-listitem-texticon-padding-right) - var(\n--spectrum-popover-border-size,\nvar(--spectrum-alias-border-size-thin)\n))}::slotted(sp-menu){display:block}:host{--spectrum-listheading-text-color:var(\n--spectrum-global-color-gray-700\n)}:host{background-color:var(\n--spectrum-listitem-m-texticon-background-color,var(--spectrum-alias-background-color-transparent)\n)}\n`;\nexport default styles;"]}
|
package/test/submenu.test.js
CHANGED
|
@@ -483,5 +483,45 @@ describe('Submenu', () => {
|
|
|
483
483
|
await opened;
|
|
484
484
|
expect(rootItem.open).to.be.true;
|
|
485
485
|
});
|
|
486
|
+
it('not opens if disabled', async () => {
|
|
487
|
+
const el = await styledFixture(html `
|
|
488
|
+
<sp-menu>
|
|
489
|
+
<sp-menu-item disabled class="root">
|
|
490
|
+
Has submenu
|
|
491
|
+
<sp-menu slot="submenu">
|
|
492
|
+
<sp-menu-item class="submenu-item-1">
|
|
493
|
+
One
|
|
494
|
+
</sp-menu-item>
|
|
495
|
+
<sp-menu-item class="submenu-item-2">
|
|
496
|
+
Two
|
|
497
|
+
</sp-menu-item>
|
|
498
|
+
<sp-menu-item class="submenu-item-3">
|
|
499
|
+
Three
|
|
500
|
+
</sp-menu-item>
|
|
501
|
+
</sp-menu>
|
|
502
|
+
</sp-menu-item>
|
|
503
|
+
</sp-menu>
|
|
504
|
+
`);
|
|
505
|
+
await elementUpdated(el);
|
|
506
|
+
const rootItem = el.querySelector('.root');
|
|
507
|
+
const rootItemBoundingRect = rootItem.getBoundingClientRect();
|
|
508
|
+
expect(rootItem.open).to.be.false;
|
|
509
|
+
sendMouse({
|
|
510
|
+
steps: [
|
|
511
|
+
{
|
|
512
|
+
type: 'move',
|
|
513
|
+
position: [
|
|
514
|
+
rootItemBoundingRect.left +
|
|
515
|
+
rootItemBoundingRect.width / 2,
|
|
516
|
+
rootItemBoundingRect.top +
|
|
517
|
+
rootItemBoundingRect.height / 2,
|
|
518
|
+
],
|
|
519
|
+
},
|
|
520
|
+
],
|
|
521
|
+
});
|
|
522
|
+
// wait 200ms for open
|
|
523
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
524
|
+
expect(rootItem.open).to.be.false;
|
|
525
|
+
});
|
|
486
526
|
});
|
|
487
527
|
//# sourceMappingURL=submenu.test.js.map
|
package/test/submenu.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submenu.test.js","sourceRoot":"","sources":["submenu.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 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*/\n\nimport '../sp-menu.js';\nimport '../sp-menu-item.js';\nimport { Menu, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { spy } from 'sinon';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { TemplateResult } from '@spectrum-web-components/base';\nimport { sendKeys } from '@web/test-runner-commands';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult,\n dir: 'ltr' | 'rtl' | 'auto' = 'ltr'\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme dir=${dir} scale=\"medium\" color=\"dark\">${story}</sp-theme>\n `);\n document.documentElement.dir = dir;\n return test.children[0] as T;\n}\n\ndescribe('Submenu', () => {\n it('selects - pointer', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n });\n it('closes deep tree on selection', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const subSubmenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n <sp-menu\n slot=\"submenu\"\n @change=${(\n event: Event & { target: Menu }\n ) => {\n subSubmenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"sub-submenu-item-1\">\n A\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-2\">\n B\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-3\">\n C\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n let closed = oneEvent(item2, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(item2.open).to.be.true;\n\n const itemC = document.querySelector('.sub-submenu-item-3') as MenuItem;\n const itemCBoundingRect = itemC.getBoundingClientRect();\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n itemCBoundingRect.left + itemCBoundingRect.width / 2,\n itemCBoundingRect.top + itemCBoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n expect(subSubmenuChanged.calledWith('C'), 'sub submenu changed').to.be\n .true;\n });\n (\n [\n {\n dir: 'ltr',\n openKey: 'ArrowRight',\n closeKey: 'ArrowLeft',\n },\n {\n dir: 'rtl',\n openKey: 'ArrowLeft',\n closeKey: 'ArrowRight',\n },\n ] as {\n dir: 'ltr' | 'rtl' | 'auto';\n openKey: 'ArrowRight' | 'ArrowLeft';\n closeKey: 'ArrowRight' | 'ArrowLeft';\n }[]\n ).map((testData) => {\n it(`selects - keyboard: ${testData.dir}`, async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `,\n testData.dir\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n expect(rootItem.open).to.be.false;\n el.focus();\n await elementUpdated(el);\n\n let opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n let closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: testData.closeKey,\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n\n opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n await sendKeys({\n press: 'ArrowDown',\n });\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: 'Enter',\n });\n await closed;\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be\n .true;\n });\n });\n it('closes on `pointerleave`', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n });\n it('stays open when mousing off menu item and back again', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n });\n it('stays open when mousing between menu item and submenu', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width * 1.5,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"submenu.test.js","sourceRoot":"","sources":["submenu.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 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*/\n\nimport '../sp-menu.js';\nimport '../sp-menu-item.js';\nimport { Menu, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { spy } from 'sinon';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { TemplateResult } from '@spectrum-web-components/base';\nimport { sendKeys } from '@web/test-runner-commands';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult,\n dir: 'ltr' | 'rtl' | 'auto' = 'ltr'\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme dir=${dir} scale=\"medium\" color=\"dark\">${story}</sp-theme>\n `);\n document.documentElement.dir = dir;\n return test.children[0] as T;\n}\n\ndescribe('Submenu', () => {\n it('selects - pointer', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n });\n it('closes deep tree on selection', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const subSubmenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n <sp-menu\n slot=\"submenu\"\n @change=${(\n event: Event & { target: Menu }\n ) => {\n subSubmenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"sub-submenu-item-1\">\n A\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-2\">\n B\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-3\">\n C\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n let closed = oneEvent(item2, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(item2.open).to.be.true;\n\n const itemC = document.querySelector('.sub-submenu-item-3') as MenuItem;\n const itemCBoundingRect = itemC.getBoundingClientRect();\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n itemCBoundingRect.left + itemCBoundingRect.width / 2,\n itemCBoundingRect.top + itemCBoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n expect(subSubmenuChanged.calledWith('C'), 'sub submenu changed').to.be\n .true;\n });\n (\n [\n {\n dir: 'ltr',\n openKey: 'ArrowRight',\n closeKey: 'ArrowLeft',\n },\n {\n dir: 'rtl',\n openKey: 'ArrowLeft',\n closeKey: 'ArrowRight',\n },\n ] as {\n dir: 'ltr' | 'rtl' | 'auto';\n openKey: 'ArrowRight' | 'ArrowLeft';\n closeKey: 'ArrowRight' | 'ArrowLeft';\n }[]\n ).map((testData) => {\n it(`selects - keyboard: ${testData.dir}`, async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `,\n testData.dir\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n expect(rootItem.open).to.be.false;\n el.focus();\n await elementUpdated(el);\n\n let opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n let closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: testData.closeKey,\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n\n opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n await sendKeys({\n press: 'ArrowDown',\n });\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: 'Enter',\n });\n await closed;\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be\n .true;\n });\n });\n it('closes on `pointerleave`', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n });\n it('stays open when mousing off menu item and back again', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n });\n it('stays open when mousing between menu item and submenu', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width * 1.5,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n });\n it('not opens if disabled', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item disabled class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n // wait 200ms for open\n await new Promise((r) => setTimeout(r, 200));\n\n expect(rootItem.open).to.be.false;\n });\n});\n"]}
|