@patternfly/elements 4.0.2 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +13680 -12603
- package/package.json +17 -14
- package/pf-accordion/pf-accordion-header.css +37 -0
- package/pf-accordion/pf-accordion-header.d.ts +0 -61
- package/pf-accordion/pf-accordion-header.js +180 -2
- package/pf-accordion/pf-accordion-header.js.map +1 -1
- package/pf-accordion/pf-accordion-panel.css +12 -0
- package/pf-accordion/pf-accordion-panel.d.ts +0 -34
- package/pf-accordion/pf-accordion-panel.js +87 -2
- package/pf-accordion/pf-accordion-panel.js.map +1 -1
- package/pf-accordion/pf-accordion.css +62 -0
- package/pf-accordion/pf-accordion.d.ts +1 -64
- package/pf-accordion/pf-accordion.js +156 -2
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-avatar/pf-avatar.css +14 -0
- package/pf-avatar/pf-avatar.d.ts +1 -14
- package/pf-avatar/pf-avatar.js +82 -2
- package/pf-avatar/pf-avatar.js.map +1 -1
- package/pf-back-to-top/pf-back-to-top.css +12 -0
- package/pf-back-to-top/pf-back-to-top.d.ts +1 -17
- package/pf-back-to-top/pf-back-to-top.js +91 -4
- package/pf-back-to-top/pf-back-to-top.js.map +1 -1
- package/pf-background-image/pf-background-image.css +7 -0
- package/pf-background-image/pf-background-image.d.ts +1 -8
- package/pf-background-image/pf-background-image.js +76 -2
- package/pf-background-image/pf-background-image.js.map +1 -1
- package/pf-badge/pf-badge.css +13 -0
- package/pf-badge/pf-badge.d.ts +1 -13
- package/pf-badge/pf-badge.js +53 -2
- package/pf-badge/pf-badge.js.map +1 -1
- package/pf-banner/pf-banner.css +21 -0
- package/pf-banner/pf-banner.d.ts +1 -19
- package/pf-banner/pf-banner.js +122 -2
- package/pf-banner/pf-banner.js.map +1 -1
- package/pf-button/pf-button-tokens.css +38 -0
- package/pf-button/pf-button.d.ts +1 -106
- package/pf-button/pf-button.js +837 -4
- package/pf-button/pf-button.js.map +1 -1
- package/pf-card/pf-card.css +24 -0
- package/pf-card/pf-card.d.ts +1 -38
- package/pf-card/pf-card.js +248 -2
- package/pf-card/pf-card.js.map +1 -1
- package/pf-card/test/pf-card.e2e.js +20 -1
- package/pf-card/test/pf-card.e2e.js.map +1 -1
- package/pf-chip/pf-chip-group.css +15 -0
- package/pf-chip/pf-chip-group.d.ts +0 -15
- package/pf-chip/pf-chip-group.js +111 -2
- package/pf-chip/pf-chip-group.js.map +1 -1
- package/pf-chip/pf-chip.css +30 -1
- package/pf-chip/pf-chip.d.ts +1 -20
- package/pf-chip/pf-chip.js +135 -2
- package/pf-chip/pf-chip.js.map +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.css +25 -0
- package/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -27
- package/pf-clipboard-copy/pf-clipboard-copy.js +323 -6
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-code-block/pf-code-block.css +11 -1
- package/pf-code-block/pf-code-block.js +70 -18
- package/pf-code-block/pf-code-block.js.map +1 -1
- package/pf-dropdown/pf-dropdown-group.js +40 -2
- package/pf-dropdown/pf-dropdown-group.js.map +1 -1
- package/pf-dropdown/pf-dropdown-item.css +10 -0
- package/pf-dropdown/pf-dropdown-item.d.ts +0 -27
- package/pf-dropdown/pf-dropdown-item.js +155 -2
- package/pf-dropdown/pf-dropdown-item.js.map +1 -1
- package/pf-dropdown/pf-dropdown-menu.js +39 -2
- package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
- package/pf-dropdown/pf-dropdown.css +5 -0
- package/pf-dropdown/pf-dropdown.d.ts +1 -9
- package/pf-dropdown/pf-dropdown.js +350 -2
- package/pf-dropdown/pf-dropdown.js.map +1 -1
- package/pf-icon/pf-icon.css +1 -0
- package/pf-icon/pf-icon.d.ts +1 -3
- package/pf-icon/pf-icon.js +44 -4
- package/pf-icon/pf-icon.js.map +1 -1
- package/pf-jump-links/pf-jump-links-item.css +7 -1
- package/pf-jump-links/pf-jump-links-item.d.ts +0 -8
- package/pf-jump-links/pf-jump-links-item.js +77 -2
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.css +3 -0
- package/pf-jump-links/pf-jump-links-list.d.ts +0 -5
- package/pf-jump-links/pf-jump-links-list.js +20 -2
- package/pf-jump-links/pf-jump-links-list.js.map +1 -1
- package/pf-jump-links/pf-jump-links.css +36 -0
- package/pf-jump-links/pf-jump-links.d.ts +1 -38
- package/pf-jump-links/pf-jump-links.js +179 -2
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-label/pf-label.css +51 -1
- package/pf-label/pf-label.d.ts +1 -58
- package/pf-label/pf-label.js +257 -2
- package/pf-label/pf-label.js.map +1 -1
- package/pf-modal/pf-modal.css +11 -0
- package/pf-modal/pf-modal.d.ts +1 -24
- package/pf-modal/pf-modal.js +215 -2
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-panel/pf-panel.css +29 -0
- package/pf-panel/pf-panel.d.ts +1 -32
- package/pf-panel/pf-panel.js +204 -2
- package/pf-panel/pf-panel.js.map +1 -1
- package/pf-popover/pf-popover.css +33 -0
- package/pf-popover/pf-popover.d.ts +1 -108
- package/pf-popover/pf-popover.js +251 -3
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-progress/pf-progress.css +19 -0
- package/pf-progress/pf-progress.d.ts +1 -57
- package/pf-progress/pf-progress.js +231 -2
- package/pf-progress/pf-progress.js.map +1 -1
- package/pf-progress-stepper/pf-progress-step.js +126 -2
- package/pf-progress-stepper/pf-progress-step.js.map +1 -1
- package/pf-progress-stepper/pf-progress-stepper.css +96 -0
- package/pf-progress-stepper/pf-progress-stepper.d.ts +1 -115
- package/pf-progress-stepper/pf-progress-stepper.js +326 -2
- package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
- package/pf-search-input/pf-search-input.css +308 -0
- package/pf-search-input/pf-search-input.d.ts +75 -0
- package/pf-search-input/pf-search-input.js +630 -0
- package/pf-search-input/pf-search-input.js.map +1 -0
- package/pf-search-input/test/pf-search-input.e2e.d.ts +1 -0
- package/pf-search-input/test/pf-search-input.e2e.js +23 -0
- package/pf-search-input/test/pf-search-input.e2e.js.map +1 -0
- package/pf-search-input/test/pf-search-input.spec.d.ts +1 -0
- package/pf-search-input/test/pf-search-input.spec.js +1021 -0
- package/pf-search-input/test/pf-search-input.spec.js.map +1 -0
- package/pf-select/pf-option-group.js +27 -2
- package/pf-select/pf-option-group.js.map +1 -1
- package/pf-select/pf-option.css +9 -1
- package/pf-select/pf-option.js +83 -2
- package/pf-select/pf-option.js.map +1 -1
- package/pf-select/pf-select.css +157 -0
- package/pf-select/pf-select.d.ts +1 -158
- package/pf-select/pf-select.js +542 -5
- package/pf-select/pf-select.js.map +1 -1
- package/pf-spinner/pf-spinner.css +13 -0
- package/pf-spinner/pf-spinner.d.ts +1 -14
- package/pf-spinner/pf-spinner.js +101 -2
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-switch/pf-switch.css +22 -0
- package/pf-switch/pf-switch.d.ts +1 -30
- package/pf-switch/pf-switch.js +156 -2
- package/pf-switch/pf-switch.js.map +1 -1
- package/pf-table/context.d.ts +3 -0
- package/pf-table/context.js +3 -0
- package/pf-table/context.js.map +1 -0
- package/pf-table/pf-caption.js +10 -2
- package/pf-table/pf-caption.js.map +1 -1
- package/pf-table/pf-table.css +211 -0
- package/pf-table/pf-table.d.ts +2 -635
- package/pf-table/pf-table.js +445 -4
- package/pf-table/pf-table.js.map +1 -1
- package/pf-table/pf-tbody.js +18 -2
- package/pf-table/pf-tbody.js.map +1 -1
- package/pf-table/pf-td.js +107 -2
- package/pf-table/pf-td.js.map +1 -1
- package/pf-table/pf-th.d.ts +1 -0
- package/pf-table/pf-th.js +102 -7
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.d.ts +1 -0
- package/pf-table/pf-thead.js +26 -2
- package/pf-table/pf-thead.js.map +1 -1
- package/pf-table/pf-tr.js +89 -2
- package/pf-table/pf-tr.js.map +1 -1
- package/pf-tabs/pf-tab-panel.css +1 -0
- package/pf-tabs/pf-tab-panel.d.ts +0 -2
- package/pf-tabs/pf-tab-panel.js +19 -3
- package/pf-tabs/pf-tab-panel.js.map +1 -1
- package/pf-tabs/pf-tab.css +33 -0
- package/pf-tabs/pf-tab.d.ts +1 -41
- package/pf-tabs/pf-tab.js +234 -4
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.css +26 -0
- package/pf-tabs/pf-tabs.d.ts +1 -34
- package/pf-tabs/pf-tabs.js +307 -2
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-tabs/test/pf-tabs.spec.js +9 -0
- package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
- package/pf-text-area/pf-text-area.css +125 -0
- package/pf-text-area/pf-text-area.d.ts +1 -125
- package/pf-text-area/pf-text-area.js +320 -2
- package/pf-text-area/pf-text-area.js.map +1 -1
- package/pf-text-input/pf-text-input.css +126 -0
- package/pf-text-input/pf-text-input.d.ts +1 -126
- package/pf-text-input/pf-text-input.js +395 -2
- package/pf-text-input/pf-text-input.js.map +1 -1
- package/pf-tile/pf-tile.css +28 -8
- package/pf-tile/pf-tile.d.ts +1 -24
- package/pf-tile/pf-tile.js +156 -2
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-timestamp/pf-timestamp.d.ts +1 -0
- package/pf-timestamp/pf-timestamp.js +10 -2
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-tooltip/pf-tooltip.css +10 -0
- package/pf-tooltip/pf-tooltip.d.ts +1 -79
- package/pf-tooltip/pf-tooltip.js +115 -5
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pfe.min.js +0 -7439
- package/pfe.min.js.LEGAL.txt +0 -57
- package/pfe.min.js.map +0 -7
- package/react/pf-accordion/pf-accordion-header.d.ts +0 -5
- package/react/pf-accordion/pf-accordion-header.js +0 -12
- package/react/pf-accordion/pf-accordion-panel.d.ts +0 -5
- package/react/pf-accordion/pf-accordion-panel.js +0 -10
- package/react/pf-accordion/pf-accordion.d.ts +0 -5
- package/react/pf-accordion/pf-accordion.js +0 -13
- package/react/pf-avatar/pf-avatar.d.ts +0 -5
- package/react/pf-avatar/pf-avatar.js +0 -12
- package/react/pf-back-to-top/pf-back-to-top.d.ts +0 -5
- package/react/pf-back-to-top/pf-back-to-top.js +0 -10
- package/react/pf-background-image/pf-background-image.d.ts +0 -5
- package/react/pf-background-image/pf-background-image.js +0 -10
- package/react/pf-badge/pf-badge.d.ts +0 -5
- package/react/pf-badge/pf-badge.js +0 -10
- package/react/pf-banner/pf-banner.d.ts +0 -5
- package/react/pf-banner/pf-banner.js +0 -10
- package/react/pf-button/pf-button.d.ts +0 -5
- package/react/pf-button/pf-button.js +0 -12
- package/react/pf-card/pf-card.d.ts +0 -5
- package/react/pf-card/pf-card.js +0 -10
- package/react/pf-chip/pf-chip-group.d.ts +0 -5
- package/react/pf-chip/pf-chip-group.js +0 -13
- package/react/pf-chip/pf-chip.d.ts +0 -5
- package/react/pf-chip/pf-chip.js +0 -13
- package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +0 -5
- package/react/pf-clipboard-copy/pf-clipboard-copy.js +0 -12
- package/react/pf-code-block/pf-code-block.d.ts +0 -5
- package/react/pf-code-block/pf-code-block.js +0 -10
- package/react/pf-dropdown/pf-dropdown-group.d.ts +0 -5
- package/react/pf-dropdown/pf-dropdown-group.js +0 -10
- package/react/pf-dropdown/pf-dropdown-item.d.ts +0 -5
- package/react/pf-dropdown/pf-dropdown-item.js +0 -10
- package/react/pf-dropdown/pf-dropdown-menu.d.ts +0 -5
- package/react/pf-dropdown/pf-dropdown-menu.js +0 -10
- package/react/pf-dropdown/pf-dropdown.d.ts +0 -5
- package/react/pf-dropdown/pf-dropdown.js +0 -14
- package/react/pf-icon/pf-icon.d.ts +0 -5
- package/react/pf-icon/pf-icon.js +0 -13
- package/react/pf-jump-links/pf-jump-links-item.d.ts +0 -5
- package/react/pf-jump-links/pf-jump-links-item.js +0 -13
- package/react/pf-jump-links/pf-jump-links-list.d.ts +0 -5
- package/react/pf-jump-links/pf-jump-links-list.js +0 -10
- package/react/pf-jump-links/pf-jump-links.d.ts +0 -5
- package/react/pf-jump-links/pf-jump-links.js +0 -12
- package/react/pf-label/pf-label.d.ts +0 -5
- package/react/pf-label/pf-label.js +0 -12
- package/react/pf-modal/pf-modal.d.ts +0 -5
- package/react/pf-modal/pf-modal.js +0 -13
- package/react/pf-panel/pf-panel.d.ts +0 -5
- package/react/pf-panel/pf-panel.js +0 -10
- package/react/pf-popover/pf-popover.d.ts +0 -5
- package/react/pf-popover/pf-popover.js +0 -10
- package/react/pf-progress/pf-progress.d.ts +0 -5
- package/react/pf-progress/pf-progress.js +0 -10
- package/react/pf-progress-stepper/pf-progress-step.d.ts +0 -5
- package/react/pf-progress-stepper/pf-progress-step.js +0 -10
- package/react/pf-progress-stepper/pf-progress-stepper.d.ts +0 -5
- package/react/pf-progress-stepper/pf-progress-stepper.js +0 -10
- package/react/pf-select/pf-option-group.d.ts +0 -5
- package/react/pf-select/pf-option-group.js +0 -10
- package/react/pf-select/pf-option.d.ts +0 -5
- package/react/pf-select/pf-option.js +0 -10
- package/react/pf-select/pf-select.d.ts +0 -5
- package/react/pf-select/pf-select.js +0 -13
- package/react/pf-spinner/pf-spinner.d.ts +0 -5
- package/react/pf-spinner/pf-spinner.js +0 -10
- package/react/pf-switch/pf-switch.d.ts +0 -5
- package/react/pf-switch/pf-switch.js +0 -12
- package/react/pf-table/pf-caption.d.ts +0 -5
- package/react/pf-table/pf-caption.js +0 -10
- package/react/pf-table/pf-table.d.ts +0 -5
- package/react/pf-table/pf-table.js +0 -10
- package/react/pf-table/pf-tbody.d.ts +0 -5
- package/react/pf-table/pf-tbody.js +0 -10
- package/react/pf-table/pf-td.d.ts +0 -5
- package/react/pf-table/pf-td.js +0 -10
- package/react/pf-table/pf-th.d.ts +0 -5
- package/react/pf-table/pf-th.js +0 -10
- package/react/pf-table/pf-thead.d.ts +0 -5
- package/react/pf-table/pf-thead.js +0 -10
- package/react/pf-table/pf-tr.d.ts +0 -5
- package/react/pf-table/pf-tr.js +0 -10
- package/react/pf-tabs/pf-tab-panel.d.ts +0 -5
- package/react/pf-tabs/pf-tab-panel.js +0 -10
- package/react/pf-tabs/pf-tab.d.ts +0 -5
- package/react/pf-tabs/pf-tab.js +0 -12
- package/react/pf-tabs/pf-tabs.d.ts +0 -5
- package/react/pf-tabs/pf-tabs.js +0 -10
- package/react/pf-text-area/pf-text-area.d.ts +0 -5
- package/react/pf-text-area/pf-text-area.js +0 -10
- package/react/pf-text-input/pf-text-input.d.ts +0 -5
- package/react/pf-text-input/pf-text-input.js +0 -10
- package/react/pf-tile/pf-tile.d.ts +0 -5
- package/react/pf-tile/pf-tile.js +0 -10
- package/react/pf-timestamp/pf-timestamp.d.ts +0 -5
- package/react/pf-timestamp/pf-timestamp.js +0 -10
- package/react/pf-tooltip/pf-tooltip.d.ts +0 -5
- package/react/pf-tooltip/pf-tooltip.js +0 -10
|
@@ -5,27 +5,78 @@ import { customElement } from 'lit/decorators/custom-element.js';
|
|
|
5
5
|
import { property } from 'lit/decorators/property.js';
|
|
6
6
|
import { classMap } from 'lit/directives/class-map.js';
|
|
7
7
|
import { css } from "lit";
|
|
8
|
-
const styles = css `:host {
|
|
8
|
+
const styles = css `:host {
|
|
9
|
+
display: block;
|
|
10
|
+
/** Background color for code block */
|
|
11
|
+
background-color: var(--pf-c-code-block--BackgroundColor, #f0f0f0);
|
|
12
|
+
/** Font size for code block pre element */
|
|
13
|
+
font-size: var(--pf-c-code-block__pre--FontSize, 0.875rem);
|
|
14
|
+
/** Font family for code block pre element */
|
|
15
|
+
font-family: var(--pf-c-code-block__pre--FontFamily, "Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[hidden] {
|
|
19
|
+
display: none !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#container {
|
|
23
|
+
margin: 0;
|
|
24
|
+
/** Top padding for code block content */
|
|
25
|
+
padding-top: var(--pf-c-code-block__content--PaddingTop, 1rem);
|
|
26
|
+
/** Right padding for code block content */
|
|
27
|
+
padding-right: var(--pf-c-code-block__content--PaddingRight, 1rem);
|
|
28
|
+
/** Bottom padding for code block content */
|
|
29
|
+
padding-bottom: var(--pf-c-code-block__content--PaddingBottom, 1rem);
|
|
30
|
+
/** Left padding for code block content */
|
|
31
|
+
padding-left: var(--pf-c-code-block__content--PaddingLeft, 1rem);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#header {
|
|
35
|
+
/** Border bottom width for code block header */
|
|
36
|
+
border-bottom: var(--pf-c-code-block__header--BorderBottomWidth, 1px) solid
|
|
37
|
+
/** Border bottom color for code block header */
|
|
38
|
+
var(--pf-c-code-block__header--BorderBottomColor, #d2d2d2);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
pre {
|
|
42
|
+
margin: 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
slot[name="actions"] {
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: end;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#expanded {
|
|
51
|
+
display: inline;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
button {
|
|
55
|
+
display: flex;
|
|
56
|
+
background: none;
|
|
57
|
+
border: none;
|
|
58
|
+
padding: 6px 16px 6px 0;
|
|
59
|
+
color: #06c;
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
font-size: 16px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
button svg {
|
|
65
|
+
color: #151515;
|
|
66
|
+
margin-right: 12px;
|
|
67
|
+
transition: .2s ease-in 0s;
|
|
68
|
+
vertical-align: -0.125em;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.expanded button svg {
|
|
72
|
+
transform: rotate(-90deg);
|
|
73
|
+
}
|
|
74
|
+
`;
|
|
9
75
|
/**
|
|
10
76
|
* A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.
|
|
11
|
-
* @
|
|
12
|
-
* The slot to put the code in
|
|
13
|
-
* @slot expandable-code
|
|
14
|
-
* The slot to put the code in that should be revealed when the "Show more" button is
|
|
15
|
-
* clicked to expand the code-block
|
|
16
|
-
* @slot actions
|
|
17
|
-
* Contains the actions for the code-block. For example, copy to clipboard.
|
|
77
|
+
* @alias Code Block
|
|
18
78
|
* @attr {boolean} [expanded=false]
|
|
19
79
|
* Indicates if the code-block has been expanded
|
|
20
|
-
* @cssprop {<color>} [--pf-c-code-block--BackgroundColor=#f0f0f0]
|
|
21
|
-
* @cssprop {<length>} [--pf-c-code-block__header--BorderBottomWidth=1px]
|
|
22
|
-
* @cssprop {<color>} [--pf-c-code-block__header--BorderBottomColor=#d2d2d2]
|
|
23
|
-
* @cssprop {<length>} [--pf-c-code-block__content--PaddingTop=1rem]
|
|
24
|
-
* @cssprop {<length>} [--pf-c-code-block__content--PaddingRight=1rem]
|
|
25
|
-
* @cssprop {<length>} [--pf-c-code-block__content--PaddingBottom=1rem]
|
|
26
|
-
* @cssprop {<length>} [--pf-c-code-block__content--PaddingLeft=1rem]
|
|
27
|
-
* @cssprop {<length>} [--pf-c-code-block__pre--FontSize=0.875rem]
|
|
28
|
-
* @cssprop {<string>} [--pf-c-code-block__pre--FontFamily="Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace]
|
|
29
80
|
*/
|
|
30
81
|
function dedent(str) {
|
|
31
82
|
const stripped = str.replace(/^\n/, '');
|
|
@@ -44,6 +95,7 @@ let PfCodeBlock = class PfCodeBlock extends LitElement {
|
|
|
44
95
|
return html `
|
|
45
96
|
<div id="header">
|
|
46
97
|
<div id="actions">
|
|
98
|
+
<!-- Contains the actions for the code-block. For example, copy to clipboard. -->
|
|
47
99
|
<slot name="actions"></slot>
|
|
48
100
|
</div>
|
|
49
101
|
</div>
|
|
@@ -85,7 +137,7 @@ _PfCodeBlock_toggle = function _PfCodeBlock_toggle() {
|
|
|
85
137
|
this.expanded = !this.expanded;
|
|
86
138
|
};
|
|
87
139
|
PfCodeBlock.styles = [styles];
|
|
88
|
-
PfCodeBlock.version = "4.0
|
|
140
|
+
PfCodeBlock.version = "4.2.0";
|
|
89
141
|
__decorate([
|
|
90
142
|
property({ type: Boolean, reflect: true })
|
|
91
143
|
], PfCodeBlock.prototype, "expanded", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC
|
|
1
|
+
{"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvD;;;;;GAKG;AAEH,SAAS,MAAM,CAAC,GAAW;IACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9E,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;;QAGL,kDAAkD;QACN,aAAQ,GAAG,KAAK,CAAC;;IAgBpD,MAAM;QACb,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;;;;;mCAOoB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;kCACvB,uBAAA,IAAI,wDAAS;uBACxB,CAAC,QAAQ,KAAK,uBAAA,IAAI,gEAAiB;2BAC/B,CAAC,uBAAA,IAAI,gEAAiB;yBACxB,uBAAA,IAAI,mDAAQ;gCACL,IAAI,CAAC,QAAQ;;;;;;;;;YASjC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;;;KAGjD,CAAC;IACJ,CAAC;;;;IAxCC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,qBAAqB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;AACxE,CAAC;;IAGC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAoB,cAAc,CAAC,CAAC;IACvE,IAAI,MAAM,EAAE,IAAI,KAAK,wBAAwB;WACtC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;;IAgCC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,CAAC;AAlDe,kBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAGP;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAJlD,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './pf-code-block.css';\n\n/**\n * A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.\n * @alias Code Block\n * @attr {boolean} [expanded=false]\n * Indicates if the code-block has been expanded\n */\n\nfunction dedent(str: string): string {\n const stripped = str.replace(/^\\n/, '');\n const match = stripped.match(/^\\s+/);\n return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;\n}\n\n@customElement('pf-code-block')\nexport class PfCodeBlock extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Flag for whether the code block is expanded */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n get #expandedContent(): string {\n return this.querySelector?.('script[data-expand]')?.textContent ?? '';\n }\n\n get #content() {\n const script = this.querySelector?.<HTMLScriptElement>('script[type]');\n if (script?.type !== 'text/javascript-sample'\n && !!script?.type.match(/(j(ava)?|ecma|live)script/)) {\n return '';\n } else {\n return dedent(script?.textContent ?? '');\n }\n }\n\n override render(): TemplateResult<1> {\n const { expanded } = this;\n return html`\n <div id=\"header\">\n <div id=\"actions\">\n <!-- Contains the actions for the code-block. For example, copy to clipboard. -->\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div id=\"container\" class=\"${classMap({ expanded })}\">\n <pre><code id=\"content\">${this.#content}</code><code id=\"code-block-expand\"\n ?hidden=\"${!expanded}\">${this.#expandedContent}</code></pre>\n <button ?hidden=\"${!this.#expandedContent}\"\n @click=${this.#toggle}\n aria-expanded=${this.expanded}\n aria-controls=\"code-block-expand\">\n <svg fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 256 512\"\n aria-hidden=\"true\"\n role=\"img\"><path\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/></svg>\n ${!this.expanded ? 'Show more' : 'Show less'}\n </button>\n </div>\n `;\n }\n\n #toggle() {\n this.expanded = !this.expanded;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-code-block': PfCodeBlock;\n }\n}\n"]}
|
|
@@ -3,7 +3,45 @@ import { LitElement, html } from 'lit';
|
|
|
3
3
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
4
4
|
import { property } from 'lit/decorators/property.js';
|
|
5
5
|
import { css } from "lit";
|
|
6
|
-
const styles = css `:host {
|
|
6
|
+
const styles = css `:host {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[hidden] {
|
|
11
|
+
display: none !important;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
p {
|
|
15
|
+
margin: 0;
|
|
16
|
+
font-size: 14px;
|
|
17
|
+
font-weight: normal;
|
|
18
|
+
color: #777;
|
|
19
|
+
padding-top: 0.5rem;
|
|
20
|
+
padding-right: 1rem;
|
|
21
|
+
padding-bottom: 0.5rem;
|
|
22
|
+
padding-left: 1rem;
|
|
23
|
+
font-size: 0.75rem;
|
|
24
|
+
font-weight: 400;
|
|
25
|
+
color: #6a6e73;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
::slotted(hr) {
|
|
29
|
+
margin: 0;
|
|
30
|
+
border-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
|
|
31
|
+
border-style: solid;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
::slotted([role="separator"]:not(hr)) {
|
|
35
|
+
width: 100%;
|
|
36
|
+
height: 1px;
|
|
37
|
+
background-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
|
|
38
|
+
padding: 0px;
|
|
39
|
+
margin: 0px;
|
|
40
|
+
border: 0;
|
|
41
|
+
display: block;
|
|
42
|
+
pointer-events: none;
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
7
45
|
let PfDropdownGroup = class PfDropdownGroup extends LitElement {
|
|
8
46
|
render() {
|
|
9
47
|
return html `
|
|
@@ -17,7 +55,7 @@ PfDropdownGroup.shadowRootOptions = {
|
|
|
17
55
|
...LitElement.shadowRootOptions,
|
|
18
56
|
delegatesFocus: true,
|
|
19
57
|
};
|
|
20
|
-
PfDropdownGroup.version = "4.0
|
|
58
|
+
PfDropdownGroup.version = "4.2.0";
|
|
21
59
|
__decorate([
|
|
22
60
|
property({ reflect: true })
|
|
23
61
|
], PfDropdownGroup.prototype, "label", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-dropdown-group.js","sourceRoot":"","sources":["pf-dropdown-group.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC
|
|
1
|
+
{"version":3,"file":"pf-dropdown-group.js","sourceRoot":"","sources":["pf-dropdown-group.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU/C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAa7C,MAAM;QACJ,OAAO,IAAI,CAAA;oBACK,CAAC,IAAI,CAAC,KAAK,yBAAyB,IAAI,CAAC,KAAK;;KAE7D,CAAC;IACJ,CAAC;;AAjBe,sBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;AAE1B,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAK2B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAgB;AAXjC,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport styles from './pf-dropdown-group.css';\n\n/**\n * Represents a group of items for a dropdown component.\n * @slot\n * Content for the group of dropdown items\n */\n@customElement('pf-dropdown-group')\nexport class PfDropdownGroup extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * The label for the group of dropdown items.\n */\n @property({ reflect: true }) label?: string;\n\n render(): TemplateResult<1> {\n return html`\n <p ?hidden=\"${!this.label}\" role=\"presentation\">${this.label}</p>\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-dropdown-group': PfDropdownGroup;\n }\n}\n"]}
|
|
@@ -5,22 +5,27 @@
|
|
|
5
5
|
white-space: nowrap;
|
|
6
6
|
border: none;
|
|
7
7
|
cursor: pointer;
|
|
8
|
+
/** Dropdown item font size */
|
|
8
9
|
font-size: var(
|
|
9
10
|
--pf-c-dropdown__menu-item--FontSize,
|
|
10
11
|
var(--pf-global--FontSize--md, 1rem)
|
|
11
12
|
);
|
|
13
|
+
/** Dropdown item font weight */
|
|
12
14
|
font-weight: var(
|
|
13
15
|
--pf-c-dropdown__menu-item--FontWeight,
|
|
14
16
|
var(--pf-global--FontWeight--normal, 400)
|
|
15
17
|
);
|
|
18
|
+
/** Dropdown item line height */
|
|
16
19
|
line-height: var(
|
|
17
20
|
--pf-c-dropdown__menu-item--LineHeight,
|
|
18
21
|
var(--pf-global--LineHeight--md, 1.5)
|
|
19
22
|
);
|
|
23
|
+
/** Dropdown item color */
|
|
20
24
|
color: var(
|
|
21
25
|
--pf-c-dropdown__menu-item--Color,
|
|
22
26
|
var(--pf-global--Color--dark-100, #151515)
|
|
23
27
|
);
|
|
28
|
+
/** Dropdown item background color */
|
|
24
29
|
background-color: var(
|
|
25
30
|
--pf-c-dropdown__menu-item--BackgroundColor,
|
|
26
31
|
transparent
|
|
@@ -73,19 +78,24 @@
|
|
|
73
78
|
align-items: stretch;
|
|
74
79
|
justify-content: space-between;
|
|
75
80
|
flex-wrap: wrap;
|
|
81
|
+
/** Dropdown item padding */
|
|
76
82
|
padding: var(
|
|
83
|
+
/** Dropdown item padding top */
|
|
77
84
|
--pf-c-dropdown__menu-item--PaddingTop,
|
|
78
85
|
var(--pf-global--spacer--sm, 0.5rem)
|
|
79
86
|
)
|
|
80
87
|
var(
|
|
88
|
+
/** Dropdown item padding right */
|
|
81
89
|
--pf-c-dropdown__menu-item--PaddingRight,
|
|
82
90
|
var(--pf-global--spacer--md, 1rem)
|
|
83
91
|
)
|
|
84
92
|
var(
|
|
93
|
+
/** Dropdown item padding bottom */
|
|
85
94
|
--pf-c-dropdown__menu-item--PaddingBottom,
|
|
86
95
|
var(--pf-global--spacer--sm, 0.5rem)
|
|
87
96
|
)
|
|
88
97
|
var(
|
|
98
|
+
/** Dropdown item padding left */
|
|
89
99
|
--pf-c-dropdown__menu-item--PaddingLeft,
|
|
90
100
|
var(--pf-global--spacer--md, 1rem)
|
|
91
101
|
);
|
|
@@ -10,33 +10,6 @@ export declare class DropdownItemChange extends Event {
|
|
|
10
10
|
* Optional slot for item description
|
|
11
11
|
* @slot -
|
|
12
12
|
* Content for the dropdown item
|
|
13
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--FontSize=1rem]
|
|
14
|
-
* Dropdown item font size
|
|
15
|
-
*
|
|
16
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--FontWeight=400]
|
|
17
|
-
* Dropdown item font weight
|
|
18
|
-
*
|
|
19
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--LineHeight=1.5]
|
|
20
|
-
* Dropdown item line height
|
|
21
|
-
*
|
|
22
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--Color=#151515]
|
|
23
|
-
* Dropdown item color
|
|
24
|
-
*
|
|
25
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--BackgroundColor=transparent]
|
|
26
|
-
* Dropdown item background color
|
|
27
|
-
*
|
|
28
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--PaddingTop=0.5rem]
|
|
29
|
-
* Dropdown item padding top
|
|
30
|
-
*
|
|
31
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--PaddingRight=1rem]
|
|
32
|
-
* Dropdown item padding right
|
|
33
|
-
*
|
|
34
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--PaddingBottom=0.5rem]
|
|
35
|
-
* Dropdown item padding bottom
|
|
36
|
-
*
|
|
37
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu-item--PaddingLeft=1rem]
|
|
38
|
-
* Dropdown item padding left
|
|
39
|
-
*
|
|
40
13
|
*/
|
|
41
14
|
export declare class PfDropdownItem extends LitElement {
|
|
42
15
|
static readonly styles: CSSStyleSheet[];
|
|
@@ -7,7 +7,160 @@ import { query } from 'lit/decorators/query.js';
|
|
|
7
7
|
import { consume } from '@lit/context';
|
|
8
8
|
import { context } from './context.js';
|
|
9
9
|
import { css } from "lit";
|
|
10
|
-
const styles = css `:host {
|
|
10
|
+
const styles = css `:host {
|
|
11
|
+
display: block;
|
|
12
|
+
width: 100%;
|
|
13
|
+
text-align: left;
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
border: none;
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
/** Dropdown item font size */
|
|
18
|
+
font-size: var(
|
|
19
|
+
--pf-c-dropdown__menu-item--FontSize,
|
|
20
|
+
var(--pf-global--FontSize--md, 1rem)
|
|
21
|
+
);
|
|
22
|
+
/** Dropdown item font weight */
|
|
23
|
+
font-weight: var(
|
|
24
|
+
--pf-c-dropdown__menu-item--FontWeight,
|
|
25
|
+
var(--pf-global--FontWeight--normal, 400)
|
|
26
|
+
);
|
|
27
|
+
/** Dropdown item line height */
|
|
28
|
+
line-height: var(
|
|
29
|
+
--pf-c-dropdown__menu-item--LineHeight,
|
|
30
|
+
var(--pf-global--LineHeight--md, 1.5)
|
|
31
|
+
);
|
|
32
|
+
/** Dropdown item color */
|
|
33
|
+
color: var(
|
|
34
|
+
--pf-c-dropdown__menu-item--Color,
|
|
35
|
+
var(--pf-global--Color--dark-100, #151515)
|
|
36
|
+
);
|
|
37
|
+
/** Dropdown item background color */
|
|
38
|
+
background-color: var(
|
|
39
|
+
--pf-c-dropdown__menu-item--BackgroundColor,
|
|
40
|
+
transparent
|
|
41
|
+
);
|
|
42
|
+
border: 3px solid var(
|
|
43
|
+
--pf-c-dropdown__menu-item--BackgroundColor,
|
|
44
|
+
transparent
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:host([hidden]),
|
|
49
|
+
[hidden] {
|
|
50
|
+
display: none !important;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:host([disabled]),
|
|
54
|
+
.disabled {
|
|
55
|
+
&, & a {
|
|
56
|
+
cursor: not-allowed;
|
|
57
|
+
}
|
|
58
|
+
--pf-c-dropdown__menu-item--Color: var(
|
|
59
|
+
--pf-c-dropdown__menu-item--disabled--Color,
|
|
60
|
+
var(--pf-global--Color--dark-200, #6a6e73)
|
|
61
|
+
);
|
|
62
|
+
--pf-c-dropdown__menu-item--BackgroundColor: var(
|
|
63
|
+
--pf-c-dropdown__menu-item--disabled--BackgroundColor,
|
|
64
|
+
transparent
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:host(:hover) {
|
|
69
|
+
--pf-c-dropdown__menu-item--Color: var(
|
|
70
|
+
--pf-c-dropdown__menu-item--hover--Color,
|
|
71
|
+
var(--pf-global--Color--dark-100, #151515)
|
|
72
|
+
);
|
|
73
|
+
--pf-c-dropdown__menu-item--BackgroundColor: var(
|
|
74
|
+
--pf-c-dropdown__menu-item--hover--BackgroundColor,
|
|
75
|
+
var(--pf-global--BackgroundColor--light-300, #f0f0f0)
|
|
76
|
+
);
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:host(:focus-within) {
|
|
81
|
+
border: 3px solid var(--pf-global--link--Color, #0066cc);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
#menuitem {
|
|
85
|
+
position: relative;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: stretch;
|
|
88
|
+
justify-content: space-between;
|
|
89
|
+
flex-wrap: wrap;
|
|
90
|
+
/** Dropdown item padding */
|
|
91
|
+
padding: var(
|
|
92
|
+
/** Dropdown item padding top */
|
|
93
|
+
--pf-c-dropdown__menu-item--PaddingTop,
|
|
94
|
+
var(--pf-global--spacer--sm, 0.5rem)
|
|
95
|
+
)
|
|
96
|
+
var(
|
|
97
|
+
/** Dropdown item padding right */
|
|
98
|
+
--pf-c-dropdown__menu-item--PaddingRight,
|
|
99
|
+
var(--pf-global--spacer--md, 1rem)
|
|
100
|
+
)
|
|
101
|
+
var(
|
|
102
|
+
/** Dropdown item padding bottom */
|
|
103
|
+
--pf-c-dropdown__menu-item--PaddingBottom,
|
|
104
|
+
var(--pf-global--spacer--sm, 0.5rem)
|
|
105
|
+
)
|
|
106
|
+
var(
|
|
107
|
+
/** Dropdown item padding left */
|
|
108
|
+
--pf-c-dropdown__menu-item--PaddingLeft,
|
|
109
|
+
var(--pf-global--spacer--md, 1rem)
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
#item {
|
|
114
|
+
display: flex;
|
|
115
|
+
align-items: center;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#item:focus {
|
|
119
|
+
outline: none;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#item::after {
|
|
123
|
+
content: '';
|
|
124
|
+
position: absolute;
|
|
125
|
+
left: 0;
|
|
126
|
+
right: 0;
|
|
127
|
+
top: 0;
|
|
128
|
+
bottom: 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
#description {
|
|
132
|
+
display: block;
|
|
133
|
+
flex: 1 0 100%;
|
|
134
|
+
font-size: var(
|
|
135
|
+
--pf-c-dropdown__menu-item-description--FontSize, var(
|
|
136
|
+
--pf-global--FontSize--sm, 0.75rem
|
|
137
|
+
)
|
|
138
|
+
);
|
|
139
|
+
color: var(
|
|
140
|
+
--pf-c-dropdown__menu-item-description--Color, var(
|
|
141
|
+
--pf-global--Color--dark-200, #6a6e73
|
|
142
|
+
)
|
|
143
|
+
);
|
|
144
|
+
word-break: break-all;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
a {
|
|
148
|
+
color: var(
|
|
149
|
+
--pf-c-dropdown__menu-item--Color,
|
|
150
|
+
var(--pf-global--Color--dark-100, #151515)
|
|
151
|
+
) !important;
|
|
152
|
+
text-decoration: none !important;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
slot:not([name]){
|
|
156
|
+
flex: 1 0 44px;
|
|
157
|
+
min-height: 44px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
slot[name="icon"]::slotted(*) {
|
|
161
|
+
margin-inline-end: 0.5em;
|
|
162
|
+
}
|
|
163
|
+
`;
|
|
11
164
|
export class DropdownItemChange extends Event {
|
|
12
165
|
constructor() {
|
|
13
166
|
super('change', { bubbles: true, cancelable: true });
|
|
@@ -54,7 +207,7 @@ PfDropdownItem.shadowRootOptions = {
|
|
|
54
207
|
...LitElement.shadowRootOptions,
|
|
55
208
|
delegatesFocus: true,
|
|
56
209
|
};
|
|
57
|
-
PfDropdownItem.version = "4.0
|
|
210
|
+
PfDropdownItem.version = "4.2.0";
|
|
58
211
|
__decorate([
|
|
59
212
|
property({ reflect: true })
|
|
60
213
|
], PfDropdownItem.prototype, "value", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-dropdown-item.js","sourceRoot":"","sources":["pf-dropdown-item.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAA4C,MAAM,KAAK,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC
|
|
1
|
+
{"version":3,"file":"pf-dropdown-item.js","sourceRoot":"","sources":["pf-dropdown-item.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAA4C,MAAM,KAAK,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI/D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAYM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QAmBL;;WAEG;QACyC,WAAM,GAAG,KAAK,CAAC;QAE3D;;;WAGG;QACyC,aAAQ,GAAG,KAAK,CAAC;;IAY1C,OAAO,CAAC,OAA6B;QACtD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QAC3D,OAAO,IAAI,CAAA;8CAC+B,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;6CAC5C,IAAI,CAAC,IAAI,oBAAoB,UAAU;;;;SAI3E,CAAC,CAAC,CAAC,IAAI,CAAA;wDACwC,UAAU;;;eAGnD;oDACqC,IAAI,CAAC,WAAW,IAAI,EAAE;aAC7D,CAAC;IACZ,CAAC;;AA7De,qBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;AAE1B,gCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAM2B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAgB;AAKX;IAAhC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;4CAAe;AAKH;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAgB;AAMf;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAkB;AAGjD;IAAX,QAAQ,EAAE;mDAAsB;AAIzB;IAFP,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;2CACC;AAGhB;IAAf,KAAK,CAAC,OAAO,CAAC;gDAAwB;AAtC5B,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc","sourcesContent":["import { LitElement, html, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators/query.js';\nimport { consume } from '@lit/context';\n\nimport { context, type PfDropdownContext } from './context.js';\n\nimport styles from './pf-dropdown-item.css';\n\nexport class DropdownItemChange extends Event {\n constructor() {\n super('change', { bubbles: true, cancelable: true });\n }\n}\n\n/**\n * Represents an item for a dropdown component.\n * @slot icon\n * Optional slot for an icon\n * @slot description\n * Optional slot for item description\n * @slot -\n * Content for the dropdown item\n */\n@customElement('pf-dropdown-item')\nexport class PfDropdownItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * The value associated with the dropdown item.\n * This value can be used to identify the selected item\n */\n @property({ reflect: true }) value?: string;\n\n /**\n * href for link dropdown items\n */\n @property({ attribute: 'href' }) href?: string;\n\n /**\n * Flag indicating whether the item is active\n */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /**\n * Indicates whether the dropdown item is disabled.\n * A disabled item cannot be selected.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Item description; overridden by `description` slot */\n @property() description?: string;\n\n @consume({ context, subscribe: true })\n @property({ attribute: false })\n private ctx?: PfDropdownContext;\n\n /** @internal */\n @query('#item') menuItem!: HTMLElement;\n\n protected override updated(changed: PropertyValues<this>): void {\n if (changed.has('href')) {\n this.dispatchEvent(new DropdownItemChange());\n }\n }\n\n render(): TemplateResult<1> {\n const { disabled } = this.ctx ?? { disabled: false };\n const isDisabled = !!this.disabled || !!this.ctx?.disabled;\n return html`\n <div id=\"menuitem\" role=\"none\" class=\"${classMap({ disabled })}\">${this.href ? html`\n <a id=\"item\" role=\"menuitem\" href=\"${this.href}\" aria-disabled=\"${isDisabled}\">\n <slot name=\"icon\"></slot>\n <slot></slot>\n </a>\n ` : html`\n <div id=\"item\" role=\"menuitem\" aria-disabled=\"${isDisabled}\">\n <slot name=\"icon\"></slot>\n <slot></slot>\n </div>`}\n <slot id=\"description\" name=\"description\">${this.description ?? ''}</slot>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-dropdown-item': PfDropdownItem;\n }\n}\n"]}
|
|
@@ -10,7 +10,44 @@ import { InternalsController } from '@patternfly/pfe-core/controllers/internals-
|
|
|
10
10
|
import { PfDropdownItem, DropdownItemChange } from './pf-dropdown-item.js';
|
|
11
11
|
import { PfDropdownGroup } from './pf-dropdown-group.js';
|
|
12
12
|
import { css } from "lit";
|
|
13
|
-
const styles = css `:host {
|
|
13
|
+
const styles = css `:host {
|
|
14
|
+
background: var(--pf-c-dropdown__menu--BackgroundColor, #fff);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.disabled {
|
|
18
|
+
--pf-c-dropdown__menu-item--Color: var(
|
|
19
|
+
--pf-c-dropdown__menu-item--disabled--Color,
|
|
20
|
+
var(--pf-global--Color--dark-200, #6a6e73)
|
|
21
|
+
) !important;
|
|
22
|
+
--pf-c-dropdown__menu-item--BackgroundColor: var(
|
|
23
|
+
--pf-c-dropdown__menu-item--disabled--BackgroundColor,
|
|
24
|
+
transparent
|
|
25
|
+
) !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:host([hidden]),
|
|
29
|
+
[hidden] {
|
|
30
|
+
display: none !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
::slotted(hr) {
|
|
34
|
+
margin: 0;
|
|
35
|
+
border-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
|
|
36
|
+
border-style: solid;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
::slotted([role="separator"]:not(hr)) {
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 1px;
|
|
42
|
+
background-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
|
|
43
|
+
padding: 0px;
|
|
44
|
+
margin: 0px;
|
|
45
|
+
border: 0;
|
|
46
|
+
display: block;
|
|
47
|
+
pointer-events: none;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
`;
|
|
14
51
|
import { classMap } from 'lit/directives/class-map.js';
|
|
15
52
|
function isDisabledItemClick(event) {
|
|
16
53
|
const item = event.composedPath().find((x) => x instanceof PfDropdownItem);
|
|
@@ -120,7 +157,7 @@ PfDropdownMenu.shadowRootOptions = {
|
|
|
120
157
|
...LitElement.shadowRootOptions,
|
|
121
158
|
delegatesFocus: true,
|
|
122
159
|
};
|
|
123
|
-
PfDropdownMenu.version = "4.0
|
|
160
|
+
PfDropdownMenu.version = "4.2.0";
|
|
124
161
|
__decorate([
|
|
125
162
|
consume({ context, subscribe: true }),
|
|
126
163
|
state()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-dropdown-menu.js","sourceRoot":"","sources":["pf-dropdown-menu.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAE/F,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC
|
|
1
|
+
{"version":3,"file":"pf-dropdown-menu.js","sourceRoot":"","sources":["pf-dropdown-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { consume } from '@lit/context';\nimport { state } from 'lit/decorators/state.js';\nimport { context, type PfDropdownContext } from './context.js';\n\nimport { RovingTabindexController } from '@patternfly/pfe-core/controllers/roving-tabindex-controller.js';\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport { PfDropdownItem, DropdownItemChange } from './pf-dropdown-item.js';\nimport { PfDropdownGroup } from './pf-dropdown-group.js';\n\nimport styles from './pf-dropdown-menu.css';\nimport { classMap } from 'lit/directives/class-map.js';\n\nfunction isDisabledItemClick(event: MouseEvent) {\n const item: PfDropdownItem | undefined =\n event.composedPath().find((x): x is PfDropdownItem => x instanceof PfDropdownItem);\n return !!item?.disabled;\n}\n\n/**\n * A **dropdown** presents a menu of actions or links in a constrained space that will trigger a\n * process or navigate to a new location.\n * @slot - Must contain one or more `<pf-dropdown-item>` or `<pf-dropdown-group>`\n */\n@customElement('pf-dropdown-menu')\nexport class PfDropdownMenu extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n @consume({ context, subscribe: true })\n @state()\n private ctx?: PfDropdownContext;\n\n #internals = InternalsController.of(this, { role: 'menu' });\n\n get #items() {\n return this.items.map(x => x.menuItem);\n }\n\n #tabindex = RovingTabindexController.of(this, {\n getItems: () => this.#items,\n });\n\n /**\n * current active descendant in menu\n */\n get activeItem(): HTMLElement | null {\n return this.#tabindex.items.at(this.#tabindex.atFocusedItemIndex)\n ?? this.#tabindex.atFocusableItems.at(0)\n ?? null;\n }\n\n /**\n * index of current active descendant in menu\n */\n get activeIndex(): number {\n return this.#tabindex.atFocusedItemIndex;\n }\n\n get items(): PfDropdownItem[] {\n return this.#getSlottedItems(this.shadowRoot?.querySelector('slot'));\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('focusin', this.#onMenuitemFocusin);\n this.addEventListener('click', this.#onMenuitemClick);\n }\n\n protected override willUpdate(): void {\n this.#internals.ariaDisabled = String(!!this.ctx?.disabled);\n }\n\n render(): TemplateResult<1> {\n const { disabled = false } = this.ctx ?? {};\n return html`\n <slot class=\"${classMap({ disabled })}\"\n @slotchange=\"${this.#onSlotChange}\"\n @change=\"${this.#onItemChange}\"></slot>\n `;\n }\n\n /**\n * handles a change event from a dropdown item\n * @param event {Event}\n */\n #onItemChange(event: Event) {\n if (event instanceof DropdownItemChange) {\n this.#onSlotChange();\n }\n }\n\n /**\n * handles slot change event\n */\n #onSlotChange() {\n this.#tabindex.items = this.#items;\n }\n\n /**\n * handles focusing on an option:\n * updates roving tabindex and active descendant\n * @param event the focus event\n */\n #onMenuitemFocusin(event: FocusEvent) {\n if (this.ctx?.disabled) {\n event.preventDefault();\n event.stopPropagation();\n } else if (event.target instanceof PfDropdownItem) {\n this.#focusItem(event.target.menuItem);\n }\n }\n\n /**\n * handles clicking on a menuitem:\n * which selects an item by default\n * or toggles selection if multiselectable\n * @param event the click event\n */\n #onMenuitemClick(event: MouseEvent) {\n if (this.ctx?.disabled || isDisabledItemClick(event)) {\n event.preventDefault();\n event.stopPropagation();\n } else if (event.target instanceof PfDropdownItem) {\n this.#focusItem(event.target.menuItem);\n }\n }\n\n #focusItem(item: HTMLElement) {\n const itemIndex = this.#tabindex.items.indexOf(item);\n if (itemIndex !== this.#tabindex.atFocusedItemIndex) {\n this.#tabindex.atFocusedItemIndex = itemIndex;\n }\n }\n\n #getSlottedItems(slot?: HTMLSlotElement | null): PfDropdownItem[] {\n return slot\n ?.assignedElements()\n .flatMap(element => {\n if (element instanceof HTMLSlotElement) {\n return this.#getSlottedItems(element);\n } else if (element instanceof PfDropdownItem) {\n return [element];\n } else if (element instanceof PfDropdownGroup) {\n return Array.from(element.querySelectorAll('pf-dropdown-item'));\n } else {\n return [];\n }\n }) ?? [];\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-dropdown-menu': PfDropdownMenu;\n }\n}\n"]}
|
|
@@ -94,15 +94,20 @@
|
|
|
94
94
|
--pf-c-dropdown--m-plain__toggle-icon--Color: var(--pf-global--Color--200, #6a6e73);
|
|
95
95
|
--pf-c-dropdown--m-plain--hover__toggle-icon--Color: var(--pf-global--Color--100, #151515);
|
|
96
96
|
--pf-c-dropdown__menu--BackgroundColor: var(--pf-global--BackgroundColor--light-100, #fff);
|
|
97
|
+
/** Dropdown box shadow */
|
|
97
98
|
--pf-c-dropdown__menu--BoxShadow: var(--pf-global--BoxShadow--md, 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06));
|
|
99
|
+
/** Dropdown top padding */
|
|
98
100
|
--pf-c-dropdown__menu--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
|
|
99
101
|
--pf-c-dropdown__menu--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);
|
|
102
|
+
/** Dropdown top position */
|
|
100
103
|
--pf-c-dropdown__menu--Top: calc(100% + var(--pf-global--spacer--xs, 0.25rem));
|
|
104
|
+
/** Dropdown z-index */
|
|
101
105
|
--pf-c-dropdown__menu--ZIndex: var(--pf-global--ZIndex--sm, 200);
|
|
102
106
|
--pf-c-dropdown--m-top__menu--Top: 0;
|
|
103
107
|
--pf-c-dropdown--m-top__menu--TranslateY: calc(-100% - var(--pf-global--spacer--xs, 0.25rem));
|
|
104
108
|
--pf-c-dropdown__menu-item--BackgroundColor: transparent;
|
|
105
109
|
--pf-c-dropdown__menu-item--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
|
|
110
|
+
/** Dropdown menu item right padding */
|
|
106
111
|
--pf-c-dropdown__menu-item--PaddingRight: var(--pf-global--spacer--md, 1rem);
|
|
107
112
|
--pf-c-dropdown__menu-item--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);
|
|
108
113
|
--pf-c-dropdown__menu-item--PaddingLeft: var(--pf-global--spacer--md, 1rem);
|
|
@@ -8,15 +8,7 @@ export declare class PfDropdownSelectEvent extends Event {
|
|
|
8
8
|
/**
|
|
9
9
|
* A **dropdown** presents a menu of actions or links in a constrained space that
|
|
10
10
|
* will trigger a process or navigate to a new location.
|
|
11
|
-
* @
|
|
12
|
-
* @slot toggle - Custom toggle button
|
|
13
|
-
* @slot menu - when using a custom toggle, you must slot a `<pf-dropdown-menu>` in alongside it
|
|
14
|
-
* @csspart menu - The dropdown menu wrapper
|
|
15
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu--PaddingTop=0.5rem] Dropdown top padding
|
|
16
|
-
* @cssprop {<length>} [--pf-c-tooltip__content--PaddingRight=0.5rem] Dropdown right padding
|
|
17
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu--ZIndex=200] Dropdown z-index
|
|
18
|
-
* @cssprop [--pf-c-dropdown__menu--BoxShadow=0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)] Dropdown box shadow
|
|
19
|
-
* @cssprop {<length>} [--pf-c-dropdown__menu--Top=100% + 0.25rem] Dropdown top
|
|
11
|
+
* @alias Dropdown
|
|
20
12
|
* @fires {PfDropdownSelectEvent} select - when a user select dropdown value
|
|
21
13
|
* @fires open - when the dropdown toggles open
|
|
22
14
|
* @fires close - when the dropdown toggles closed
|