@patternfly/elements 4.1.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +14909 -12588
- package/package.json +26 -17
- 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-alert/pf-alert.css +193 -0
- package/pf-alert/pf-alert.d.ts +95 -0
- package/pf-alert/pf-alert.js +406 -0
- package/pf-alert/pf-alert.js.map +1 -0
- package/pf-alert/test/pf-alert.e2e.d.ts +1 -0
- package/pf-alert/test/pf-alert.e2e.js +45 -0
- package/pf-alert/test/pf-alert.e2e.js.map +1 -0
- package/pf-alert/test/pf-alert.spec.d.ts +1 -0
- package/pf-alert/test/pf-alert.spec.js +42 -0
- package/pf-alert/test/pf-alert.spec.js.map +1 -0
- 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 +87 -3
- package/pf-back-to-top/pf-back-to-top.js.map +1 -1
- package/pf-back-to-top/test/pf-back-to-top.spec.js +3 -2
- package/pf-back-to-top/test/pf-back-to-top.spec.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-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 +318 -3
- 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 +13 -1
- package/pf-dropdown/pf-dropdown.d.ts +1 -9
- package/pf-dropdown/pf-dropdown.js +357 -2
- package/pf-dropdown/pf-dropdown.js.map +1 -1
- package/pf-helper-text/pf-helper-text.css +35 -0
- package/pf-helper-text/pf-helper-text.d.ts +41 -0
- package/pf-helper-text/pf-helper-text.js +107 -0
- package/pf-helper-text/pf-helper-text.js.map +1 -0
- package/pf-helper-text/test/pf-helper-text.e2e.d.ts +1 -0
- package/pf-helper-text/test/pf-helper-text.e2e.js +23 -0
- package/pf-helper-text/test/pf-helper-text.e2e.js.map +1 -0
- package/pf-helper-text/test/pf-helper-text.spec.d.ts +1 -0
- package/pf-helper-text/test/pf-helper-text.spec.js +57 -0
- package/pf-helper-text/test/pf-helper-text.spec.js.map +1 -0
- package/pf-hint/pf-hint.css +120 -0
- package/pf-hint/pf-hint.d.ts +19 -0
- package/pf-hint/pf-hint.js +180 -0
- package/pf-hint/pf-hint.js.map +1 -0
- package/pf-hint/test/pf-hint.e2e.d.ts +1 -0
- package/pf-hint/test/pf-hint.e2e.js +23 -0
- package/pf-hint/test/pf-hint.e2e.js.map +1 -0
- package/pf-hint/test/pf-hint.spec.d.ts +1 -0
- package/pf-hint/test/pf-hint.spec.js +87 -0
- package/pf-hint/test/pf-hint.spec.js.map +1 -0
- 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 +2 -25
- 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/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 +1 -635
- package/pf-table/pf-table.js +437 -2
- 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.js +95 -2
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.js +20 -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 +0 -40
- package/pf-tabs/pf-tab.js +231 -2
- 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-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 +113 -3
- 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
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { expect, html } from '@open-wc/testing';
|
|
2
|
+
import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
|
|
3
|
+
import { PfHint } from '@patternfly/elements/pf-hint/pf-hint.js';
|
|
4
|
+
import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
|
|
5
|
+
describe('<pf-hint>', function () {
|
|
6
|
+
describe('simply instantiating', function () {
|
|
7
|
+
it('imperatively instantiates', function () {
|
|
8
|
+
expect(document.createElement('pf-hint')).to.be.an.instanceof(PfHint);
|
|
9
|
+
});
|
|
10
|
+
it('should upgrade', async function () {
|
|
11
|
+
const el = await createFixture(html `
|
|
12
|
+
<pf-hint>Basic hint</pf-hint>
|
|
13
|
+
`);
|
|
14
|
+
const klass = customElements.get('pf-hint');
|
|
15
|
+
expect(el)
|
|
16
|
+
.to.be.an.instanceOf(klass)
|
|
17
|
+
.and
|
|
18
|
+
.to.be.an.instanceOf(PfHint);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe('basic hint', function () {
|
|
22
|
+
let element;
|
|
23
|
+
beforeEach(async function () {
|
|
24
|
+
element = await createFixture(html `
|
|
25
|
+
<pf-hint>Welcome to the new documentation experience.</pf-hint>
|
|
26
|
+
`);
|
|
27
|
+
});
|
|
28
|
+
it('should render body content, and not title footer, or actions', async function () {
|
|
29
|
+
const snap = await a11ySnapshot();
|
|
30
|
+
expect(snap.children?.length).to.equal(1);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('hint with title', function () {
|
|
34
|
+
let element;
|
|
35
|
+
beforeEach(async function () {
|
|
36
|
+
element = await createFixture(html `
|
|
37
|
+
<pf-hint>
|
|
38
|
+
<span slot="title">Do more with Find it Fix it capabilities</span>
|
|
39
|
+
Upgrade to Red Hat Smart Management.
|
|
40
|
+
</pf-hint>
|
|
41
|
+
`);
|
|
42
|
+
await element.updateComplete;
|
|
43
|
+
});
|
|
44
|
+
it('should render title and body content', async function () {
|
|
45
|
+
const snap = await a11ySnapshot();
|
|
46
|
+
expect(snap.children?.length).to.equal(2);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('hint with footer', function () {
|
|
50
|
+
let element;
|
|
51
|
+
beforeEach(async function () {
|
|
52
|
+
element = await createFixture(html `
|
|
53
|
+
<pf-hint>
|
|
54
|
+
<span slot="title">Do more with Find it Fix it capabilities</span>
|
|
55
|
+
Upgrade to Red Hat Smart Management.
|
|
56
|
+
<a slot="footer" href="#">Try it for 90 days</a>
|
|
57
|
+
</pf-hint>
|
|
58
|
+
`);
|
|
59
|
+
await element.updateComplete;
|
|
60
|
+
});
|
|
61
|
+
it('should render footer', function () {
|
|
62
|
+
const footer = element.shadowRoot.querySelector('#footer');
|
|
63
|
+
expect(footer).to.exist;
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('hint with actions', function () {
|
|
67
|
+
let element;
|
|
68
|
+
beforeEach(async function () {
|
|
69
|
+
element = await createFixture(html `
|
|
70
|
+
<pf-hint>
|
|
71
|
+
<button slot="actions" aria-label="Actions">⋮</button>
|
|
72
|
+
<span slot="title">Do more with Find it Fix it capabilities</span>
|
|
73
|
+
Upgrade to Red Hat Smart Management.
|
|
74
|
+
</pf-hint>
|
|
75
|
+
`);
|
|
76
|
+
await element.updateComplete;
|
|
77
|
+
});
|
|
78
|
+
it('should render title, body, and actions', async function () {
|
|
79
|
+
const { children: [actions, title, body, ...rest] = [] } = await a11ySnapshot();
|
|
80
|
+
expect(actions.role).to.equal('button');
|
|
81
|
+
expect(title.role).to.equal('text');
|
|
82
|
+
expect(body.role).to.equal('text');
|
|
83
|
+
expect(rest.length).to.equal(0);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=pf-hint.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-hint.spec.js","sourceRoot":"","sources":["pf-hint.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfHint } from '@patternfly/elements/pf-hint/pf-hint.js';\nimport { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\n\ndescribe('<pf-hint>', function() {\n describe('simply instantiating', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-hint')).to.be.an.instanceof(PfHint);\n });\n\n it('should upgrade', async function() {\n const el = await createFixture<PfHint>(html`\n <pf-hint>Basic hint</pf-hint>\n `);\n const klass = customElements.get('pf-hint');\n expect(el)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfHint);\n });\n });\n\n describe('basic hint', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>Welcome to the new documentation experience.</pf-hint>\n `);\n });\n\n it('should render body content, and not title footer, or actions', async function() {\n const snap = await a11ySnapshot();\n expect(snap.children?.length).to.equal(1);\n });\n });\n\n describe('hint with title', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render title and body content', async function() {\n const snap = await a11ySnapshot();\n expect(snap.children?.length).to.equal(2);\n });\n });\n\n describe('hint with footer', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n <a slot=\"footer\" href=\"#\">Try it for 90 days</a>\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render footer', function() {\n const footer = element.shadowRoot!.querySelector('#footer');\n expect(footer).to.exist;\n });\n });\n\n describe('hint with actions', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <button slot=\"actions\" aria-label=\"Actions\">⋮</button>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render title, body, and actions', async function() {\n const { children: [actions, title, body, ...rest] = [] } = await a11ySnapshot();\n expect(actions.role).to.equal('button');\n expect(title.role).to.equal('text');\n expect(body.role).to.equal('text');\n expect(rest.length).to.equal(0);\n });\n });\n});\n"]}
|
package/pf-icon/pf-icon.css
CHANGED
|
@@ -26,6 +26,7 @@ svg {
|
|
|
26
26
|
:host([size=xl]) #container { --_size: var(--pf-global--icon--FontSize--xl, 54px); }
|
|
27
27
|
|
|
28
28
|
#container, svg {
|
|
29
|
+
/** size of the icon */
|
|
29
30
|
width: var(--pf-icon--size, var(--_size));
|
|
30
31
|
height: var(--pf-icon--size, var(--_size));
|
|
31
32
|
min-width: var(--pf-icon--size, var(--_size));
|
package/pf-icon/pf-icon.d.ts
CHANGED
|
@@ -12,11 +12,9 @@ export declare class IconResolveError extends ErrorEvent {
|
|
|
12
12
|
/**
|
|
13
13
|
* An **icon** component is a container that allows for icons of varying dimensions to
|
|
14
14
|
* seamlessly replace each other without shifting surrounding content.
|
|
15
|
-
* @
|
|
15
|
+
* @alias Icon
|
|
16
16
|
* @fires load - Fired when an icon is loaded and rendered
|
|
17
17
|
* @fires error - Fired when an icon fails to load
|
|
18
|
-
* @csspart fallback - Container for the fallback (i.e. slotted) content
|
|
19
|
-
* @cssprop {<length>} --pf-icon--size - size of the icon
|
|
20
18
|
*/
|
|
21
19
|
export declare class PfIcon extends LitElement {
|
|
22
20
|
#private;
|
package/pf-icon/pf-icon.js
CHANGED
|
@@ -6,7 +6,42 @@ import { property } from 'lit/decorators/property.js';
|
|
|
6
6
|
import { state } from 'lit/decorators/state.js';
|
|
7
7
|
import { Logger } from '@patternfly/pfe-core/controllers/logger.js';
|
|
8
8
|
import { css } from "lit";
|
|
9
|
-
const style = css `:host {
|
|
9
|
+
const style = css `:host {
|
|
10
|
+
position: relative;
|
|
11
|
+
display: inline-block;
|
|
12
|
+
line-height: 0;
|
|
13
|
+
height: fit-content !important;
|
|
14
|
+
width: fit-content !important;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
#container {
|
|
18
|
+
display: grid;
|
|
19
|
+
grid-template: 1fr / 1fr;
|
|
20
|
+
place-content: center;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
#container.content ::slotted(*) {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
svg {
|
|
28
|
+
fill: currentcolor;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:host([size=sm]) #container { --_size: var(--pf-global--icon--FontSize--sm, 10px); }
|
|
32
|
+
:host([size=md]) #container { --_size: var(--pf-global--icon--FontSize--md, 18px); }
|
|
33
|
+
:host([size=lg]) #container { --_size: var(--pf-global--icon--FontSize--lg, 24px); }
|
|
34
|
+
:host([size=xl]) #container { --_size: var(--pf-global--icon--FontSize--xl, 54px); }
|
|
35
|
+
|
|
36
|
+
#container, svg {
|
|
37
|
+
/** size of the icon */
|
|
38
|
+
width: var(--pf-icon--size, var(--_size));
|
|
39
|
+
height: var(--pf-icon--size, var(--_size));
|
|
40
|
+
min-width: var(--pf-icon--size, var(--_size));
|
|
41
|
+
min-height: var(--pf-icon--size, var(--_size));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
`;
|
|
10
45
|
/**
|
|
11
46
|
* requestIdleCallback when available, requestAnimationFrame when not
|
|
12
47
|
* @param f callback
|
|
@@ -94,8 +129,13 @@ let PfIcon = _a = class PfIcon extends LitElement {
|
|
|
94
129
|
render() {
|
|
95
130
|
const content = this.content ?? '';
|
|
96
131
|
return html `
|
|
97
|
-
<div id="container" aria-hidden="true">${content}
|
|
98
|
-
|
|
132
|
+
<div id="container" aria-hidden="true">${content}<!--
|
|
133
|
+
summary: Container for the fallback (i.e. slotted) content
|
|
134
|
+
-->
|
|
135
|
+
<span part="fallback"
|
|
136
|
+
?hidden=${!!content}><!--
|
|
137
|
+
summary: Slotted content is used as a fallback in case the icon doesn't load
|
|
138
|
+
--><slot></slot>
|
|
99
139
|
</span>
|
|
100
140
|
</div>
|
|
101
141
|
`;
|
|
@@ -187,7 +227,7 @@ PfIcon.instances = new Set();
|
|
|
187
227
|
* ```
|
|
188
228
|
*/
|
|
189
229
|
PfIcon.resolve = PfIcon.defaultResolve;
|
|
190
|
-
PfIcon.version = "4.
|
|
230
|
+
PfIcon.version = "4.3.0";
|
|
191
231
|
__decorate([
|
|
192
232
|
property()
|
|
193
233
|
], PfIcon.prototype, "set", void 0);
|
package/pf-icon/pf-icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-icon.js","sourceRoot":"","sources":["pf-icon.ts"],"names":[],"mappings":"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","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 { state } from 'lit/decorators/state.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport style from './pf-icon.css';\n\ntype Renderable = unknown;\n\nexport type IconResolverFunction = (set: string, icon: string) =>\n Renderable | Promise<Renderable>;\n\n/**\n * requestIdleCallback when available, requestAnimationFrame when not\n * @param f callback\n */\nconst ric: typeof globalThis.requestIdleCallback =\n globalThis.requestIdleCallback\n ?? globalThis.requestAnimationFrame\n ?? (async (f: () => void) => Promise.resolve().then(f));\n\n/** Fired when an icon fails to load */\nexport class IconResolveError extends ErrorEvent {\n constructor(\n set: string,\n icon: string,\n /** The original error when importing the icon module */\n public originalError: Error\n ) {\n super('error', { message: `Could not load icon \"${icon}\" from set \"${set}\".` });\n }\n}\n\n/**\n * An **icon** component is a container that allows for icons of varying dimensions to\n * seamlessly replace each other without shifting surrounding content.\n * @slot - Slotted content is used as a fallback in case the icon doesn't load\n * @fires load - Fired when an icon is loaded and rendered\n * @fires error - Fired when an icon fails to load\n * @csspart fallback - Container for the fallback (i.e. slotted) content\n * @cssprop {<length>} --pf-icon--size - size of the icon\n */\n@customElement('pf-icon')\nexport class PfIcon extends LitElement {\n public static readonly styles: CSSStyleSheet[] = [style];\n\n private static onIntersect: IntersectionObserverCallback = records =>\n records.forEach(({ isIntersecting, target }) => {\n const icon = target as PfIcon;\n icon.#intersecting = isIntersecting;\n ric(() => {\n if (icon.#intersecting) {\n icon.#load();\n }\n });\n });\n\n private static defaultResolve: IconResolverFunction = (set: string, icon: string): Renderable =>\n import(`@patternfly/icons/${set}/${icon}.js`)\n .then(mod => mod.default.cloneNode(true));\n\n private static io = new IntersectionObserver(PfIcon.onIntersect);\n\n private static resolvers = new Map<string, IconResolverFunction>();\n\n private static instances = new Set<PfIcon>();\n\n /**\n * Register a new icon set\n * @param setName - The name of the icon set\n * @param resolver - A function that returns the URL of an icon\n * @example returning a URL object\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * new URL(`./icons/${set}/${icon}.js`, import.meta.url));\n * ```\n * @example returning a string\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * `/assets/icons/${set}/${icon}.js`);\n * ```\n */\n public static addIconSet(setName: string, resolver: IconResolverFunction): void {\n if (typeof setName !== 'string') {\n Logger.warn(`[${this.name}]: the first argument to addIconSet must be a string.`);\n } else if (typeof resolver !== 'function') {\n Logger.warn(`[${this.name}]: the second argument to addIconSet must be a function.`);\n } else {\n this.resolvers.set(setName, resolver);\n for (const instance of this.instances) {\n instance.#load();\n }\n }\n }\n\n /** Removes all added icon sets and resets resolve function */\n public static reset(): void {\n this.resolvers.clear();\n this.resolve = this.defaultResolve;\n }\n\n /**\n * Gets a renderable icon. Override this to customize how icons are resolved.\n * @param set - The name of the icon set\n * @param icon - The name of the icon\n * @returns The icon content, a node or anything else which lit-html can render\n * @example resolving an icon node from an icon module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons/${set}/${icon}.js`)\n * .then(mod => mod.default.cloneNode(true));\n * ```\n * @example resolving a named export from an icon collection module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons.js`)\n * .then(module => module[icon]?.cloneNode(true));\n * ```\n * @example resolving a new node from an svg file\n * ```js\n * const iconCacne = new Map();\n * function getCachedIconOrNewNode(set, icon, svg) {\n * const key = `${set}_${icon}`;\n * if (!iconCache.has(key)) {\n * const template = document.createElement('template');\n * template.innerHTML = svg;\n * iconCache.set(key, template);\n * }\n * return iconCache.get(key);\n * }\n * PfIcon.resolve = (set, icon) =>\n * fetch(`/assets/icons/${set}/${icon}.svg`)\n * .then(response => response.text())\n * .then(svg => getCachedIconOrNewNode(set, icon, svg))\n * .then(node => node.content.cloneNode(true));\n * ```\n */\n public static resolve: IconResolverFunction = PfIcon.defaultResolve;\n\n /** Icon set */\n @property() set = 'fas';\n\n /** Icon name */\n @property({ reflect: true }) icon = '';\n\n /** Size of the icon */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Controls how eager the element will be to load the icon data\n * - `eager`: eagerly load the icon, blocking the main thread\n * - `idle`: wait for the browser to attain an idle state before loading\n * - `lazy` (default): wait for the element to enter the viewport before loading\n */\n @property() loading?: 'idle' | 'lazy' | 'eager' = 'lazy';\n\n /** Icon content. Any value that lit can render */\n @state() private content?: unknown;\n\n #intersecting = false;\n\n #logger = new Logger(this);\n\n #lazyLoad() {\n PfIcon.io.observe(this);\n if (this.#intersecting) {\n this.load();\n }\n }\n\n #load() {\n switch (this.loading) {\n case 'idle': return void ric(() => this.load());\n case 'lazy': return void this.#lazyLoad();\n case 'eager': return void this.load();\n }\n }\n\n async #contentChanged() {\n await this.updateComplete;\n this.dispatchEvent?.(new Event('load', { bubbles: true }));\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n PfIcon.instances.add(this);\n }\n\n willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('icon')) {\n this.#load();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n PfIcon.io.unobserve(this);\n PfIcon.instances.delete(this);\n }\n\n render(): TemplateResult<1> {\n const content = this.content ?? '';\n return html`\n <div id=\"container\" aria-hidden=\"true\">${content}<span part=\"fallback\"\n ?hidden=${!!content}><slot></slot>\n </span>\n </div>\n `;\n }\n\n protected async load(): Promise<void> {\n const { set, icon } = this;\n const resolver = PfIcon.resolvers.get(set) ?? PfIcon.resolve;\n if (set && icon && typeof resolver === 'function') {\n try {\n this.content = await resolver(set, icon);\n this.#contentChanged();\n } catch (error: unknown) {\n this.#logger.error((error as IconResolveError).message);\n this.dispatchEvent?.(new IconResolveError(set, icon, error as Error));\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-icon': PfIcon;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pf-icon.js","sourceRoot":"","sources":["pf-icon.ts"],"names":[],"mappings":"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","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 { state } from 'lit/decorators/state.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport style from './pf-icon.css';\n\ntype Renderable = unknown;\n\nexport type IconResolverFunction = (set: string, icon: string) =>\n Renderable | Promise<Renderable>;\n\n/**\n * requestIdleCallback when available, requestAnimationFrame when not\n * @param f callback\n */\nconst ric: typeof globalThis.requestIdleCallback =\n globalThis.requestIdleCallback\n ?? globalThis.requestAnimationFrame\n ?? (async (f: () => void) => Promise.resolve().then(f));\n\n/** Fired when an icon fails to load */\nexport class IconResolveError extends ErrorEvent {\n constructor(\n set: string,\n icon: string,\n /** The original error when importing the icon module */\n public originalError: Error\n ) {\n super('error', { message: `Could not load icon \"${icon}\" from set \"${set}\".` });\n }\n}\n\n/**\n * An **icon** component is a container that allows for icons of varying dimensions to\n * seamlessly replace each other without shifting surrounding content.\n * @alias Icon\n * @fires load - Fired when an icon is loaded and rendered\n * @fires error - Fired when an icon fails to load\n */\n@customElement('pf-icon')\nexport class PfIcon extends LitElement {\n public static readonly styles: CSSStyleSheet[] = [style];\n\n private static onIntersect: IntersectionObserverCallback = records =>\n records.forEach(({ isIntersecting, target }) => {\n const icon = target as PfIcon;\n icon.#intersecting = isIntersecting;\n ric(() => {\n if (icon.#intersecting) {\n icon.#load();\n }\n });\n });\n\n private static defaultResolve: IconResolverFunction = (set: string, icon: string): Renderable =>\n import(`@patternfly/icons/${set}/${icon}.js`)\n .then(mod => mod.default.cloneNode(true));\n\n private static io = new IntersectionObserver(PfIcon.onIntersect);\n\n private static resolvers = new Map<string, IconResolverFunction>();\n\n private static instances = new Set<PfIcon>();\n\n /**\n * Register a new icon set\n * @param setName - The name of the icon set\n * @param resolver - A function that returns the URL of an icon\n * @example returning a URL object\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * new URL(`./icons/${set}/${icon}.js`, import.meta.url));\n * ```\n * @example returning a string\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * `/assets/icons/${set}/${icon}.js`);\n * ```\n */\n public static addIconSet(setName: string, resolver: IconResolverFunction): void {\n if (typeof setName !== 'string') {\n Logger.warn(`[${this.name}]: the first argument to addIconSet must be a string.`);\n } else if (typeof resolver !== 'function') {\n Logger.warn(`[${this.name}]: the second argument to addIconSet must be a function.`);\n } else {\n this.resolvers.set(setName, resolver);\n for (const instance of this.instances) {\n instance.#load();\n }\n }\n }\n\n /** Removes all added icon sets and resets resolve function */\n public static reset(): void {\n this.resolvers.clear();\n this.resolve = this.defaultResolve;\n }\n\n /**\n * Gets a renderable icon. Override this to customize how icons are resolved.\n * @param set - The name of the icon set\n * @param icon - The name of the icon\n * @returns The icon content, a node or anything else which lit-html can render\n * @example resolving an icon node from an icon module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons/${set}/${icon}.js`)\n * .then(mod => mod.default.cloneNode(true));\n * ```\n * @example resolving a named export from an icon collection module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons.js`)\n * .then(module => module[icon]?.cloneNode(true));\n * ```\n * @example resolving a new node from an svg file\n * ```js\n * const iconCacne = new Map();\n * function getCachedIconOrNewNode(set, icon, svg) {\n * const key = `${set}_${icon}`;\n * if (!iconCache.has(key)) {\n * const template = document.createElement('template');\n * template.innerHTML = svg;\n * iconCache.set(key, template);\n * }\n * return iconCache.get(key);\n * }\n * PfIcon.resolve = (set, icon) =>\n * fetch(`/assets/icons/${set}/${icon}.svg`)\n * .then(response => response.text())\n * .then(svg => getCachedIconOrNewNode(set, icon, svg))\n * .then(node => node.content.cloneNode(true));\n * ```\n */\n public static resolve: IconResolverFunction = PfIcon.defaultResolve;\n\n /** Icon set */\n @property() set = 'fas';\n\n /** Icon name */\n @property({ reflect: true }) icon = '';\n\n /** Size of the icon */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Controls how eager the element will be to load the icon data\n * - `eager`: eagerly load the icon, blocking the main thread\n * - `idle`: wait for the browser to attain an idle state before loading\n * - `lazy` (default): wait for the element to enter the viewport before loading\n */\n @property() loading?: 'idle' | 'lazy' | 'eager' = 'lazy';\n\n /** Icon content. Any value that lit can render */\n @state() private content?: unknown;\n\n #intersecting = false;\n\n #logger = new Logger(this);\n\n #lazyLoad() {\n PfIcon.io.observe(this);\n if (this.#intersecting) {\n this.load();\n }\n }\n\n #load() {\n switch (this.loading) {\n case 'idle': return void ric(() => this.load());\n case 'lazy': return void this.#lazyLoad();\n case 'eager': return void this.load();\n }\n }\n\n async #contentChanged() {\n await this.updateComplete;\n this.dispatchEvent?.(new Event('load', { bubbles: true }));\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n PfIcon.instances.add(this);\n }\n\n willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('icon')) {\n this.#load();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n PfIcon.io.unobserve(this);\n PfIcon.instances.delete(this);\n }\n\n render(): TemplateResult<1> {\n const content = this.content ?? '';\n return html`\n <div id=\"container\" aria-hidden=\"true\">${content}<!--\n summary: Container for the fallback (i.e. slotted) content\n -->\n <span part=\"fallback\"\n ?hidden=${!!content}><!--\n summary: Slotted content is used as a fallback in case the icon doesn't load\n --><slot></slot>\n </span>\n </div>\n `;\n }\n\n protected async load(): Promise<void> {\n const { set, icon } = this;\n const resolver = PfIcon.resolvers.get(set) ?? PfIcon.resolve;\n if (set && icon && typeof resolver === 'function') {\n try {\n this.content = await resolver(set, icon);\n this.#contentChanged();\n } catch (error: unknown) {\n this.#logger.error((error as IconResolveError).message);\n this.dispatchEvent?.(new IconResolveError(set, icon, error as Error));\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-icon': PfIcon;\n }\n}\n"]}
|
|
@@ -17,17 +17,23 @@ a {
|
|
|
17
17
|
display: flex;
|
|
18
18
|
cursor: pointer;
|
|
19
19
|
flex: 1;
|
|
20
|
+
/** Top padding around the link */
|
|
20
21
|
padding-block-start: var(--pf-c-jump-links__link--PaddingTop,
|
|
21
22
|
var(--pf-global--spacer--md, 1rem));
|
|
23
|
+
/** Right padding around the link */
|
|
22
24
|
padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,
|
|
23
25
|
var(--pf-global--spacer--md, 1rem));
|
|
26
|
+
/** Bottom padding around the link */
|
|
24
27
|
padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,
|
|
25
28
|
var(--pf-global--spacer--md, 1rem));
|
|
29
|
+
/** Left padding around the link */
|
|
26
30
|
padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,
|
|
27
31
|
var(--pf-global--spacer--md, 1rem));
|
|
28
32
|
text-decoration: none;
|
|
33
|
+
/** Outline offset for jump links link */
|
|
29
34
|
outline-offset: var(--pf-c-jump-links__link--OutlineOffset,
|
|
30
35
|
calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));
|
|
36
|
+
/** Color for jump links link text */
|
|
31
37
|
color: var(--pf-c-jump-links__link-text--Color,
|
|
32
38
|
var(--pf-global--Color--200, #6a6e73));
|
|
33
39
|
}
|
|
@@ -65,5 +71,5 @@ a:focus {
|
|
|
65
71
|
--pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,
|
|
66
72
|
var(--pf-global--primary-color--100, #06c));
|
|
67
73
|
--pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,
|
|
68
|
-
|
|
74
|
+
var(--pf-global--Color--100, #151515));
|
|
69
75
|
}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { LitElement, type TemplateResult } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
|
|
4
|
-
* @cssprop --pf-c-jump-links__link--PaddingRight
|
|
5
|
-
* @cssprop --pf-c-jump-links__link--PaddingBottom
|
|
6
|
-
* @cssprop --pf-c-jump-links__link--PaddingLeft
|
|
7
|
-
* @cssprop --pf-c-jump-links__link--OutlineOffset
|
|
8
|
-
* @cssprop --pf-c-jump-links__link-text--Color
|
|
9
|
-
*/
|
|
10
2
|
export declare class PfJumpLinksItem extends LitElement {
|
|
11
3
|
#private;
|
|
12
4
|
static readonly styles: CSSStyleSheet[];
|
|
@@ -6,7 +6,82 @@ import { property } from 'lit/decorators/property.js';
|
|
|
6
6
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
7
7
|
import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
|
|
8
8
|
import { css } from "lit";
|
|
9
|
-
const style = css `:host {
|
|
9
|
+
const style = css `:host {
|
|
10
|
+
display: block;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#container {
|
|
14
|
+
display: contents;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
slot:not([name]) {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
row-gap: var(--pf-global--spacer--md, 1rem);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
a {
|
|
24
|
+
position: relative;
|
|
25
|
+
display: flex;
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
flex: 1;
|
|
28
|
+
/** Top padding around the link */
|
|
29
|
+
padding-block-start: var(--pf-c-jump-links__link--PaddingTop,
|
|
30
|
+
var(--pf-global--spacer--md, 1rem));
|
|
31
|
+
/** Right padding around the link */
|
|
32
|
+
padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,
|
|
33
|
+
var(--pf-global--spacer--md, 1rem));
|
|
34
|
+
/** Bottom padding around the link */
|
|
35
|
+
padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,
|
|
36
|
+
var(--pf-global--spacer--md, 1rem));
|
|
37
|
+
/** Left padding around the link */
|
|
38
|
+
padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,
|
|
39
|
+
var(--pf-global--spacer--md, 1rem));
|
|
40
|
+
text-decoration: none;
|
|
41
|
+
/** Outline offset for jump links link */
|
|
42
|
+
outline-offset: var(--pf-c-jump-links__link--OutlineOffset,
|
|
43
|
+
calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));
|
|
44
|
+
/** Color for jump links link text */
|
|
45
|
+
color: var(--pf-c-jump-links__link-text--Color,
|
|
46
|
+
var(--pf-global--Color--200, #6a6e73));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
a::before {
|
|
50
|
+
position: absolute;
|
|
51
|
+
inset: 0;
|
|
52
|
+
pointer-events: none;
|
|
53
|
+
content: "";
|
|
54
|
+
border-color: var(--pf-c-jump-links__link--before--BorderColor, transparent);
|
|
55
|
+
border-style: solid;
|
|
56
|
+
border-width:
|
|
57
|
+
var(--pf-c-jump-links__link--before--BorderTopWidth,
|
|
58
|
+
var(--pf-c-jump-links__list--before--BorderTopWidth,
|
|
59
|
+
var(--pf-global--BorderWidth--sm, 1px)))
|
|
60
|
+
var(--pf-c-jump-links__link--before--BorderRightWidth, 0)
|
|
61
|
+
var(--pf-c-jump-links__link--before--BorderBottomWidth, 0)
|
|
62
|
+
var(--pf-c-jump-links__link--before--BorderLeftWidth, 0);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
a:hover {
|
|
66
|
+
--pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--hover__link-text--Color,
|
|
67
|
+
var(--pf-global--Color--100, #151515));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
a:focus {
|
|
71
|
+
--pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--focus__link-text--Color,
|
|
72
|
+
var(--pf-global--Color--100, #151515));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:host([active]) {
|
|
76
|
+
--pf-c-jump-links__link--before--BorderTopWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderTopWidth,
|
|
77
|
+
var(--pf-global--BorderWidth--lg, 3px));
|
|
78
|
+
--pf-c-jump-links__link--before--BorderLeftWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth, 0);
|
|
79
|
+
--pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,
|
|
80
|
+
var(--pf-global--primary-color--100, #06c));
|
|
81
|
+
--pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,
|
|
82
|
+
var(--pf-global--Color--100, #151515));
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
10
85
|
import { observes } from '@patternfly/pfe-core/decorators/observes.js';
|
|
11
86
|
let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
|
|
12
87
|
constructor() {
|
|
@@ -43,7 +118,7 @@ PfJumpLinksItem.shadowRootOptions = {
|
|
|
43
118
|
...LitElement.shadowRootOptions,
|
|
44
119
|
delegatesFocus: true,
|
|
45
120
|
};
|
|
46
|
-
PfJumpLinksItem.version = "4.
|
|
121
|
+
PfJumpLinksItem.version = "4.3.0";
|
|
47
122
|
__decorate([
|
|
48
123
|
property({ type: Boolean, reflect: true })
|
|
49
124
|
], PfJumpLinksItem.prototype, "active", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC
|
|
1
|
+
{"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAGhE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QACS,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;;IAEhE,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;mBAClB,uBAAA,IAAI,4DAAS;mBACb,uBAAA,IAAI,4DAAS;;;;KAI3B,CAAC;IACJ,CAAC;IAGS,aAAa;QACrB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AArCe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;AAEzB,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAG0C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAgBjC;IADT,QAAQ,CAAC,QAAQ,CAAC;oDAGlB;AA9BU,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n render(): TemplateResult<1> {\n return html`\n <a href=\"${ifDefined(this.href)}\"\n @focus=\"${this.#onFocus}\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n @observes('active')\n protected activeChanged(): void {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
|
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
display: contents;
|
|
7
7
|
--pf-c-jump-links__list--PaddingTop: 0;
|
|
8
8
|
--pf-c-jump-links__list--PaddingBottom: 0;
|
|
9
|
+
/** Top padding around each link */
|
|
9
10
|
--pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,
|
|
10
11
|
var(--pf-global--spacer--sm, 0.5rem));
|
|
12
|
+
/** Bottom padding around each link */
|
|
11
13
|
--pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,
|
|
12
14
|
var(--pf-global--spacer--sm, 0.5rem));
|
|
15
|
+
/** Left padding around each link */
|
|
13
16
|
--pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,
|
|
14
17
|
var(--pf-global--spacer--lg, 1.5rem));
|
|
15
18
|
}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { LitElement, type TemplateResult } from 'lit';
|
|
2
|
-
/**
|
|
3
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
|
|
4
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
|
|
5
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingLeft
|
|
6
|
-
*/
|
|
7
2
|
export declare class PfJumpLinksList extends LitElement {
|
|
8
3
|
static readonly styles: CSSStyleSheet[];
|
|
9
4
|
render(): TemplateResult<1>;
|
|
@@ -2,7 +2,25 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { html, LitElement } from 'lit';
|
|
3
3
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
4
4
|
import { css } from "lit";
|
|
5
|
-
const style = css `:host {
|
|
5
|
+
const style = css `:host {
|
|
6
|
+
display: block;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#container {
|
|
10
|
+
display: contents;
|
|
11
|
+
--pf-c-jump-links__list--PaddingTop: 0;
|
|
12
|
+
--pf-c-jump-links__list--PaddingBottom: 0;
|
|
13
|
+
/** Top padding around each link */
|
|
14
|
+
--pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,
|
|
15
|
+
var(--pf-global--spacer--sm, 0.5rem));
|
|
16
|
+
/** Bottom padding around each link */
|
|
17
|
+
--pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,
|
|
18
|
+
var(--pf-global--spacer--sm, 0.5rem));
|
|
19
|
+
/** Left padding around each link */
|
|
20
|
+
--pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,
|
|
21
|
+
var(--pf-global--spacer--lg, 1.5rem));
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
6
24
|
let PfJumpLinksList = class PfJumpLinksList extends LitElement {
|
|
7
25
|
render() {
|
|
8
26
|
// TODO: add label
|
|
@@ -11,7 +29,7 @@ let PfJumpLinksList = class PfJumpLinksList extends LitElement {
|
|
|
11
29
|
}
|
|
12
30
|
};
|
|
13
31
|
PfJumpLinksList.styles = [style];
|
|
14
|
-
PfJumpLinksList.version = "4.
|
|
32
|
+
PfJumpLinksList.version = "4.3.0";
|
|
15
33
|
PfJumpLinksList = __decorate([
|
|
16
34
|
customElement('pf-jump-links-list')
|
|
17
35
|
], PfJumpLinksList);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC
|
|
1
|
+
{"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;AAK1D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AADvC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n render(): TemplateResult<1> {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\n }\n}\n"]}
|
|
@@ -16,14 +16,21 @@
|
|
|
16
16
|
|
|
17
17
|
slot {
|
|
18
18
|
position: relative;
|
|
19
|
+
/** Controls the display type of the list container */
|
|
19
20
|
display: var(--pf-c-jump-links__list--Display, flex);
|
|
21
|
+
/** Controls the direction of items in the list */
|
|
20
22
|
flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);
|
|
23
|
+
/** Padding around the list of links */
|
|
21
24
|
padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);
|
|
25
|
+
/** Right padding for the list */
|
|
22
26
|
padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,
|
|
23
27
|
var(--pf-global--spacer--md, 1rem));
|
|
28
|
+
/** Bottom padding for the list */
|
|
24
29
|
padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);
|
|
30
|
+
/** Left padding for the list */
|
|
25
31
|
padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,
|
|
26
32
|
var(--pf-global--spacer--md, 1rem));
|
|
33
|
+
/** Controls visibility of the list */
|
|
27
34
|
visibility: var(--pf-c-jump-links__list--Visibility, visible);
|
|
28
35
|
}
|
|
29
36
|
|
|
@@ -35,40 +42,54 @@ slot::before {
|
|
|
35
42
|
left: 0;
|
|
36
43
|
pointer-events: none;
|
|
37
44
|
content: "";
|
|
45
|
+
/** Border color for the list pseudo-element */
|
|
38
46
|
border: solid var(--pf-c-jump-links__list--before--BorderColor,
|
|
39
47
|
var(--pf-global--BorderColor--100, #d2d2d2));
|
|
40
48
|
border-width:
|
|
49
|
+
/** Top border width for the list pseudo-element */
|
|
41
50
|
var(--pf-c-jump-links__list--before--BorderTopWidth,
|
|
42
51
|
var(--pf-global--BorderWidth--sm, 1px))
|
|
52
|
+
/** Right border width for the list pseudo-element */
|
|
43
53
|
var(--pf-c-jump-links__list--before--BorderRightWidth, 0)
|
|
54
|
+
/** Bottom border width for the list pseudo-element */
|
|
44
55
|
var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)
|
|
56
|
+
/** Left border width for the list pseudo-element */
|
|
45
57
|
var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);
|
|
46
58
|
}
|
|
47
59
|
|
|
48
60
|
:host([vertical]) #container {
|
|
61
|
+
/** Top padding for vertical layout */
|
|
49
62
|
--pf-c-jump-links__list--PaddingTop:
|
|
50
63
|
var(--pf-c-jump-links--m-vertical__list--PaddingTop,
|
|
51
64
|
var(--pf-global--spacer--md, 1rem)
|
|
52
65
|
);
|
|
66
|
+
/** Right padding for vertical layout */
|
|
53
67
|
--pf-c-jump-links__list--PaddingRight:
|
|
54
68
|
var(--pf-c-jump-links--m-vertical__list--PaddingRight,0);
|
|
69
|
+
/** Bottom padding for vertical layout */
|
|
55
70
|
--pf-c-jump-links__list--PaddingBottom:
|
|
56
71
|
var(--pf-c-jump-links--m-vertical__list--PaddingBottom,
|
|
57
72
|
var(--pf-global--spacer--md, 1rem)
|
|
58
73
|
);
|
|
74
|
+
/** Left padding for vertical layout */
|
|
59
75
|
--pf-c-jump-links__list--PaddingLeft:
|
|
60
76
|
var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);
|
|
77
|
+
/** Top border width for vertical layout */
|
|
61
78
|
--pf-c-jump-links__list--before--BorderTopWidth:
|
|
62
79
|
var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);
|
|
80
|
+
/** Left border width for vertical layout */
|
|
63
81
|
--pf-c-jump-links__list--before--BorderLeftWidth:
|
|
64
82
|
var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth,
|
|
65
83
|
var(--pf-global--BorderWidth--sm, 1px));
|
|
84
|
+
/** Top border width for current item in vertical layout */
|
|
66
85
|
--pf-c-jump-links__item--m-current__link--before--BorderTopWidth:
|
|
67
86
|
var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);
|
|
87
|
+
/** Left border width for current item in vertical layout */
|
|
68
88
|
--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth:
|
|
69
89
|
var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,
|
|
70
90
|
var(--pf-global--BorderWidth--lg, 3px)
|
|
71
91
|
);
|
|
92
|
+
/** Flex direction for vertical layout */
|
|
72
93
|
--pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);
|
|
73
94
|
}
|
|
74
95
|
|
|
@@ -88,6 +109,7 @@ slot::before {
|
|
|
88
109
|
}
|
|
89
110
|
|
|
90
111
|
:host([expandable]) {
|
|
112
|
+
/** Base margin for the toggle button */
|
|
91
113
|
--pf-c-jump-links--m-expanded__toggle--MarginBottom:
|
|
92
114
|
calc(var(--pf-c-jump-links__toggle--MarginBottom--base,
|
|
93
115
|
calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))
|
|
@@ -96,43 +118,57 @@ slot::before {
|
|
|
96
118
|
|
|
97
119
|
summary {
|
|
98
120
|
display: block;
|
|
121
|
+
/** Padding around the expandable jump links disclosure widget. */
|
|
99
122
|
margin-block-start: var(--pf-c-jump-links__toggle--MarginTop,
|
|
100
123
|
calc(-1 * var(--pf-global--spacer--form-element, 0.375rem)));
|
|
124
|
+
/** Bottom margin for the toggle */
|
|
101
125
|
margin-block-end: var(--pf-c-jump-links__toggle--MarginBottom,
|
|
102
126
|
var(--pf-c-jump-links__toggle--MarginBottom--base,
|
|
103
127
|
calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))));
|
|
128
|
+
/** Left margin for the toggle */
|
|
104
129
|
margin-inline-start: var(--pf-c-jump-links__toggle--MarginLeft);
|
|
130
|
+
/** Color of the toggle text */
|
|
105
131
|
color: var(--pf-c-jump-links__toggle-text--Color,
|
|
106
132
|
var(--pf-global--Color--100, #151515));
|
|
133
|
+
/** Padding around the expandable jump links disclosure widget. */
|
|
107
134
|
padding:
|
|
108
135
|
var(--pf-c-button--PaddingTop,
|
|
109
136
|
var(--pf-global--spacer--form-element, 0.375rem))
|
|
137
|
+
/** Right padding for the button */
|
|
110
138
|
var(--pf-c-button--PaddingRight,
|
|
111
139
|
var(--pf-global--spacer--md, 1rem))
|
|
140
|
+
/** Bottom padding for the button */
|
|
112
141
|
var(--pf-c-button--PaddingBottom,
|
|
113
142
|
var(--pf-global--spacer--form-element, 0.375rem))
|
|
143
|
+
/** Left padding for the button */
|
|
114
144
|
var(--pf-c-button--PaddingLeft,
|
|
115
145
|
var(--pf-global--spacer--md, 1rem));
|
|
116
146
|
}
|
|
117
147
|
|
|
118
148
|
summary pf-icon {
|
|
149
|
+
/** Rotation angle for the toggle icon */
|
|
119
150
|
rotate: var(--pf-c-jump-links__toggle-icon--Rotate, 0);
|
|
151
|
+
/** Transition for the toggle icon */
|
|
120
152
|
transition: var(--pf-c-jump-links__toggle-icon--Transition,
|
|
121
153
|
var(--pf-global--Transition, all 250ms cubic-bezier(0.42, 0, 0.58, 1)));
|
|
122
154
|
}
|
|
123
155
|
|
|
124
156
|
summary span {
|
|
157
|
+
/** Left margin for the toggle text */
|
|
125
158
|
margin-inline-start: var(--pf-c-jump-links__toggle-text--MarginLeft,
|
|
126
159
|
var(--pf-global--spacer--md, 1rem));
|
|
127
160
|
}
|
|
128
161
|
|
|
129
162
|
:host([expanded]) #container {
|
|
163
|
+
/** Bottom margin for expanded toggle */
|
|
130
164
|
--pf-c-jump-links__toggle--MarginBottom: var(--pf-c-jump-links--m-expanded__toggle--MarginBottom,
|
|
131
165
|
calc(var(--pf-c-jump-links__toggle--MarginBottom--base,
|
|
132
166
|
calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))) +
|
|
133
167
|
var(--pf-global--spacer--md, 1rem)));
|
|
168
|
+
/** Rotation for expanded toggle icon */
|
|
134
169
|
--pf-c-jump-links__toggle-icon--Rotate: var(--pf-c-jump-links--m-expanded__toggle-icon--Rotate,
|
|
135
170
|
90deg);
|
|
171
|
+
/** Color for expanded toggle icon */
|
|
136
172
|
--pf-c-jump-links__toggle-icon--Color: var(--pf-c-jump-links--m-expanded__toggle-icon--Color,
|
|
137
173
|
var(--pf-global--Color--100, #151515));
|
|
138
174
|
--pf-c-jump-links__toggle-icon--Rotate: 90deg;
|