@patternfly/elements 4.0.1 → 4.1.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 +34 -1
- package/package.json +3 -3
- package/pf-accordion/pf-accordion-header.js +1 -1
- package/pf-accordion/pf-accordion-panel.js +1 -1
- package/pf-accordion/pf-accordion.js +1 -1
- package/pf-avatar/pf-avatar.js +1 -1
- package/pf-back-to-top/pf-back-to-top.js +5 -2
- package/pf-back-to-top/pf-back-to-top.js.map +1 -1
- package/pf-background-image/pf-background-image.js +1 -1
- package/pf-badge/pf-badge.js +1 -1
- package/pf-banner/pf-banner.js +1 -1
- package/pf-button/pf-button.js +1 -1
- package/pf-card/pf-card.js +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.js +1 -1
- package/pf-chip/pf-chip.js +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.js +6 -4
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-code-block/pf-code-block.js +1 -1
- package/pf-dropdown/pf-dropdown-group.js +1 -1
- package/pf-dropdown/pf-dropdown-item.js +1 -1
- package/pf-dropdown/pf-dropdown-menu.js +1 -1
- package/pf-dropdown/pf-dropdown.js +1 -1
- package/pf-icon/pf-icon.js +1 -1
- package/pf-jump-links/pf-jump-links-item.js +1 -1
- package/pf-jump-links/pf-jump-links-list.js +1 -1
- package/pf-jump-links/pf-jump-links.css +22 -11
- package/pf-jump-links/pf-jump-links.js +2 -2
- package/pf-label/pf-label.js +1 -1
- package/pf-modal/pf-modal.js +1 -1
- package/pf-panel/pf-panel.js +1 -1
- package/pf-popover/pf-popover.js +1 -1
- package/pf-progress/pf-progress.js +1 -1
- package/pf-progress-stepper/pf-progress-step.js +1 -1
- package/pf-progress-stepper/pf-progress-stepper.js +1 -1
- package/pf-select/pf-option-group.js +1 -1
- package/pf-select/pf-option.js +1 -1
- package/pf-select/pf-select.js +1 -1
- package/pf-spinner/pf-spinner.js +1 -1
- package/pf-switch/pf-switch.js +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 +1 -1
- package/pf-table/pf-table.d.ts +1 -0
- package/pf-table/pf-table.js +9 -3
- package/pf-table/pf-table.js.map +1 -1
- package/pf-table/pf-tbody.js +1 -1
- package/pf-table/pf-td.js +1 -1
- package/pf-table/pf-th.d.ts +1 -0
- package/pf-table/pf-th.js +8 -6
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.d.ts +1 -0
- package/pf-table/pf-thead.js +7 -1
- package/pf-table/pf-thead.js.map +1 -1
- package/pf-table/pf-tr.js +1 -1
- package/pf-tabs/pf-tab-panel.js +1 -1
- package/pf-tabs/pf-tab.d.ts +1 -1
- package/pf-tabs/pf-tab.js +4 -3
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.js +1 -1
- package/pf-tabs/test/pf-tabs.spec.js +10 -1
- package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
- package/pf-text-area/pf-text-area.js +1 -1
- package/pf-text-input/pf-text-input.js +1 -1
- package/pf-tile/pf-tile.js +1 -1
- package/pf-timestamp/pf-timestamp.js +1 -1
- package/pf-tooltip/pf-tooltip.js +3 -3
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pfe.min.js +293 -282
- package/pfe.min.js.map +4 -4
package/custom-elements.json
CHANGED
|
@@ -4324,6 +4324,12 @@
|
|
|
4324
4324
|
"href": "https://github.com/patternfly/patternfly-elements/tree/main/elements/pf-card/demo/modifiers.html"
|
|
4325
4325
|
}
|
|
4326
4326
|
},
|
|
4327
|
+
{
|
|
4328
|
+
"url": "https://patternflyelements.org/components/card/demo/ssr/",
|
|
4329
|
+
"source": {
|
|
4330
|
+
"href": "https://github.com/patternfly/patternfly-elements/tree/main/elements/pf-card/demo/ssr.html"
|
|
4331
|
+
}
|
|
4332
|
+
},
|
|
4327
4333
|
{
|
|
4328
4334
|
"url": "https://patternflyelements.org/components/card/demo/title-inline-with-images-and-actions/",
|
|
4329
4335
|
"source": {
|
|
@@ -14835,6 +14841,15 @@
|
|
|
14835
14841
|
"privacy": "private",
|
|
14836
14842
|
"default": "0"
|
|
14837
14843
|
},
|
|
14844
|
+
{
|
|
14845
|
+
"kind": "field",
|
|
14846
|
+
"name": "thRowContext",
|
|
14847
|
+
"type": {
|
|
14848
|
+
"text": "string"
|
|
14849
|
+
},
|
|
14850
|
+
"privacy": "private",
|
|
14851
|
+
"default": "'rowheader'"
|
|
14852
|
+
},
|
|
14838
14853
|
{
|
|
14839
14854
|
"kind": "method",
|
|
14840
14855
|
"name": "#onRequestExpand",
|
|
@@ -15239,6 +15254,15 @@
|
|
|
15239
15254
|
},
|
|
15240
15255
|
"attribute": "key"
|
|
15241
15256
|
},
|
|
15257
|
+
{
|
|
15258
|
+
"kind": "field",
|
|
15259
|
+
"name": "contextualRole",
|
|
15260
|
+
"type": {
|
|
15261
|
+
"text": "'colheader' | 'rowheader'"
|
|
15262
|
+
},
|
|
15263
|
+
"privacy": "private",
|
|
15264
|
+
"default": "'rowheader'"
|
|
15265
|
+
},
|
|
15242
15266
|
{
|
|
15243
15267
|
"kind": "method",
|
|
15244
15268
|
"name": "#onClick",
|
|
@@ -15336,6 +15360,15 @@
|
|
|
15336
15360
|
}
|
|
15337
15361
|
],
|
|
15338
15362
|
"members": [
|
|
15363
|
+
{
|
|
15364
|
+
"kind": "field",
|
|
15365
|
+
"name": "thRowContext",
|
|
15366
|
+
"type": {
|
|
15367
|
+
"text": "string"
|
|
15368
|
+
},
|
|
15369
|
+
"privacy": "private",
|
|
15370
|
+
"default": "'colheader'"
|
|
15371
|
+
},
|
|
15339
15372
|
{
|
|
15340
15373
|
"kind": "method",
|
|
15341
15374
|
"name": "#onSlotchange",
|
|
@@ -15838,7 +15871,7 @@
|
|
|
15838
15871
|
"kind": "field",
|
|
15839
15872
|
"name": "icons",
|
|
15840
15873
|
"type": {
|
|
15841
|
-
"text": "HTMLElement[]"
|
|
15874
|
+
"text": "HTMLElement[] | undefined"
|
|
15842
15875
|
},
|
|
15843
15876
|
"privacy": "private"
|
|
15844
15877
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/elements",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "4.0
|
|
4
|
+
"version": "4.1.0",
|
|
5
5
|
"description": "PatternFly Elements",
|
|
6
6
|
"customElements": "custom-elements.json",
|
|
7
7
|
"type": "module",
|
|
@@ -130,8 +130,8 @@
|
|
|
130
130
|
"dependencies": {
|
|
131
131
|
"@lit/context": "^1.1.2",
|
|
132
132
|
"@patternfly/icons": "^1.0.3",
|
|
133
|
-
"@patternfly/pfe-core": "^
|
|
134
|
-
"lit": "^3.2.
|
|
133
|
+
"@patternfly/pfe-core": "^5.0.0",
|
|
134
|
+
"lit": "^3.2.1",
|
|
135
135
|
"tslib": "^2.6.3"
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -131,7 +131,7 @@ PfAccordionHeader.shadowRootOptions = {
|
|
|
131
131
|
...LitElement.shadowRootOptions,
|
|
132
132
|
delegatesFocus: true,
|
|
133
133
|
};
|
|
134
|
-
PfAccordionHeader.version = "4.0
|
|
134
|
+
PfAccordionHeader.version = "4.1.0";
|
|
135
135
|
__decorate([
|
|
136
136
|
property({ reflect: true })
|
|
137
137
|
], PfAccordionHeader.prototype, "bordered", void 0);
|
|
@@ -28,7 +28,7 @@ let PfAccordionPanel = class PfAccordionPanel extends LitElement {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
PfAccordionPanel.styles = [style];
|
|
31
|
-
PfAccordionPanel.version = "4.0
|
|
31
|
+
PfAccordionPanel.version = "4.1.0";
|
|
32
32
|
__decorate([
|
|
33
33
|
property({ type: Boolean, reflect: true })
|
|
34
34
|
], PfAccordionPanel.prototype, "expanded", void 0);
|
|
@@ -300,7 +300,7 @@ _PfAccordion_getIndex = function _PfAccordion_getIndex(el) {
|
|
|
300
300
|
return -1;
|
|
301
301
|
};
|
|
302
302
|
PfAccordion.styles = [style];
|
|
303
|
-
PfAccordion.version = "4.0
|
|
303
|
+
PfAccordion.version = "4.1.0";
|
|
304
304
|
__decorate([
|
|
305
305
|
property({ reflect: true, type: Boolean })
|
|
306
306
|
], PfAccordion.prototype, "single", void 0);
|
package/pf-avatar/pf-avatar.js
CHANGED
|
@@ -49,7 +49,7 @@ _PfAvatar_onLoad = function _PfAvatar_onLoad(event) {
|
|
|
49
49
|
this.dispatchEvent(new PfAvatarLoadEvent(event));
|
|
50
50
|
};
|
|
51
51
|
PfAvatar.styles = [style];
|
|
52
|
-
PfAvatar.version = "4.0
|
|
52
|
+
PfAvatar.version = "4.1.0";
|
|
53
53
|
__decorate([
|
|
54
54
|
property()
|
|
55
55
|
], PfAvatar.prototype, "src", void 0);
|
|
@@ -132,7 +132,10 @@ _PfBackToTop_addScrollListener = function _PfBackToTop_addScrollListener() {
|
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
134
|
__classPrivateFieldSet(this, _PfBackToTop_scrollSpy, !!this.scrollableSelector, "f");
|
|
135
|
-
if (
|
|
135
|
+
if (isServer) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
else if (__classPrivateFieldGet(this, _PfBackToTop_scrollSpy, "f") && this.scrollableSelector) {
|
|
136
139
|
const scrollableElement = __classPrivateFieldGet(this, _PfBackToTop_instances, "a", _PfBackToTop_rootNode_get)?.querySelector?.(this.scrollableSelector);
|
|
137
140
|
if (!scrollableElement) {
|
|
138
141
|
__classPrivateFieldGet(this, _PfBackToTop_logger, "f").error(`unable to find element with selector ${this.scrollableSelector}`);
|
|
@@ -147,7 +150,7 @@ _PfBackToTop_addScrollListener = function _PfBackToTop_addScrollListener() {
|
|
|
147
150
|
__classPrivateFieldGet(this, _PfBackToTop_toggleVisibility, "f").call(this);
|
|
148
151
|
};
|
|
149
152
|
PfBackToTop.styles = [styles];
|
|
150
|
-
PfBackToTop.version = "4.0
|
|
153
|
+
PfBackToTop.version = "4.1.0";
|
|
151
154
|
__decorate([
|
|
152
155
|
property({ reflect: true })
|
|
153
156
|
], PfBackToTop.prototype, "icon", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-back-to-top.js","sourceRoot":"","sources":["pf-back-to-top.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, isServer, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport styles from './pf-back-to-top.css';\n\n/**\n * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @csspart trigger - The `<a>` or `<pf-button>` element\n * @slot icon\n * Contains the prefix icon to display before the link or button.\n * @slot\n * Text to display inside the link or button.\n * @cssprop {<length>} [--pf-c-back-to-top--Right=3rem`]\n * @cssprop {<length>} [--pf-c-back-to-top--Bottom=1.5rem`]\n * @cssprop [--pf-c-back-to-top--c-button--BoxShadow=0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)]\n * @cssprop {<length>} [--pf-c-button--FontSize=0.75rem]\n * @cssprop {<length>|<percentage>} [--pf-c-button--BorderRadius=30em]\n * @cssprop {<length>} [--pf-c-button--PaddingTop=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingRight=0.5rem]\n * @cssprop {<length>} [--pf-c-button--PaddingBottom=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingLeft=0.5rem]\n * @cssprop {<color>} [--pf-c-button--m-primary--Color=#fff]\n * @cssprop {<color>} [--pf-c-button--m-primary--BackgroundColor=#06c]\n * @cssprop {<length>} [--pf-c-button__icon--m-end--MarginLeft=0.25rem]\n */\n@customElement('pf-back-to-top')\nexport class PfBackToTop extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property({ reflect: true }) icon?: string;\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Flag to always show back to top button, defaults to false. */\n @property({ reflect: true, type: Boolean, attribute: 'always-visible' }) alwaysVisible = false;\n\n /** Element selector to spy on for scrolling. Not passing a selector defaults to spying on window scroll events */\n @property({ reflect: true, attribute: 'scrollable-selector' }) scrollableSelector?: string;\n\n /** Distance from the top of the scrollable element to trigger the visibility of the back to top button */\n @property({ type: Number, attribute: 'scroll-distance' }) scrollDistance = 400;\n\n /** Accessible name for the back-to-top link, use when component does not have slotted text */\n @property() label?: string;\n\n /** Page fragment link to target element, must include hash ex: #top */\n @property({ reflect: true }) href?: string;\n\n #scrollSpy = false;\n\n #visible = false;\n\n #scrollElement?: Element | Window;\n\n #hasSlottedText = false;\n\n #logger = new Logger(this);\n\n get #rootNode(): Document | ShadowRoot | null {\n let root = null;\n if (isServer) {\n return null;\n } else if ((root = this.getRootNode()) instanceof Document || root instanceof ShadowRoot) {\n return root;\n } else {\n return document;\n }\n }\n\n get #ariaLabel(): string | undefined {\n if (this.#hasSlottedText) {\n return undefined;\n }\n return this.label ?? 'Back to top';\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#addScrollListener();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#removeScrollListener();\n }\n\n override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('scrollableSelector')) {\n this.#addScrollListener();\n }\n if (changed.has('alwaysVisible')) {\n this.#toggleVisibility();\n }\n }\n\n render(): TemplateResult<1> {\n // ensure href has a hash\n if (this.href && this.href.charAt(0) !== '#') {\n this.href = `#${this.href}`;\n this.#logger.warn(`missing hash in href fragment link`);\n }\n\n if (this.href) {\n return html`\n <a href=\"${this.href}\" ?hidden=\"${!this.#visible}\" part=\"trigger\" aria-label=\"${ifDefined(this.#ariaLabel)}\">\n <slot name=\"icon\"></slot>\n <slot @slotchange=\"${this.#onSlotchange}\"></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </a>\n `;\n } else {\n return html`\n <pf-button\n icon=\"${ifDefined(this.icon)}\"\n icon-set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.#visible}\"\n tabindex=\"${this.#visible ? '0' : '-1'}\"\n part=\"trigger\"\n label=\"${ifDefined(this.#ariaLabel)}\"\n >\n <slot name=\"icon\" slot=\"icon\"></slot>\n <span>\n <slot></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </span>\n </pf-button>\n `;\n }\n }\n\n #onSlotchange(event: Event) {\n const slot = event.currentTarget as HTMLSlotElement;\n const nodes = slot.assignedNodes();\n this.#hasSlottedText = nodes.length > 0 ? true : false;\n this.requestUpdate();\n }\n\n #removeScrollListener() {\n this.#scrollElement?.removeEventListener('scroll', this.#toggleVisibility);\n }\n\n #addScrollListener() {\n this.#removeScrollListener();\n\n if (this.scrollableSelector?.trim() === '') {\n this.#logger.error(`scrollable-selector attribute cannot be empty`);\n return;\n }\n\n this.#scrollSpy = !!this.scrollableSelector;\n if (this.#scrollSpy && this.scrollableSelector) {\n const scrollableElement = this.#rootNode?.querySelector?.(this.scrollableSelector);\n if (!scrollableElement) {\n this.#logger.error(`unable to find element with selector ${this.scrollableSelector}`);\n return;\n }\n this.#scrollElement = scrollableElement;\n } else {\n this.#scrollElement = window;\n }\n\n this.#scrollElement.addEventListener('scroll', this.#toggleVisibility, { passive: true });\n this.#toggleVisibility();\n }\n\n #toggleVisibility = () => {\n if (this.alwaysVisible) {\n this.#visible = true;\n this.requestUpdate();\n return;\n }\n const previousVisibility = this.#visible;\n if (this.#scrollElement) {\n const scrolled =\n (this.#scrollElement instanceof Window) ?\n this.#scrollElement.scrollY\n : this.#scrollElement.scrollTop;\n this.#visible = (scrolled > this.scrollDistance);\n if (previousVisibility !== this.#visible) {\n this.requestUpdate();\n }\n }\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-back-to-top': PfBackToTop;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pf-back-to-top.js","sourceRoot":"","sources":["pf-back-to-top.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, isServer, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport styles from './pf-back-to-top.css';\n\n/**\n * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @csspart trigger - The `<a>` or `<pf-button>` element\n * @slot icon\n * Contains the prefix icon to display before the link or button.\n * @slot\n * Text to display inside the link or button.\n * @cssprop {<length>} [--pf-c-back-to-top--Right=3rem`]\n * @cssprop {<length>} [--pf-c-back-to-top--Bottom=1.5rem`]\n * @cssprop [--pf-c-back-to-top--c-button--BoxShadow=0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)]\n * @cssprop {<length>} [--pf-c-button--FontSize=0.75rem]\n * @cssprop {<length>|<percentage>} [--pf-c-button--BorderRadius=30em]\n * @cssprop {<length>} [--pf-c-button--PaddingTop=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingRight=0.5rem]\n * @cssprop {<length>} [--pf-c-button--PaddingBottom=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingLeft=0.5rem]\n * @cssprop {<color>} [--pf-c-button--m-primary--Color=#fff]\n * @cssprop {<color>} [--pf-c-button--m-primary--BackgroundColor=#06c]\n * @cssprop {<length>} [--pf-c-button__icon--m-end--MarginLeft=0.25rem]\n */\n@customElement('pf-back-to-top')\nexport class PfBackToTop extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property({ reflect: true }) icon?: string;\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Flag to always show back to top button, defaults to false. */\n @property({ reflect: true, type: Boolean, attribute: 'always-visible' }) alwaysVisible = false;\n\n /** Element selector to spy on for scrolling. Not passing a selector defaults to spying on window scroll events */\n @property({ reflect: true, attribute: 'scrollable-selector' }) scrollableSelector?: string;\n\n /** Distance from the top of the scrollable element to trigger the visibility of the back to top button */\n @property({ type: Number, attribute: 'scroll-distance' }) scrollDistance = 400;\n\n /** Accessible name for the back-to-top link, use when component does not have slotted text */\n @property() label?: string;\n\n /** Page fragment link to target element, must include hash ex: #top */\n @property({ reflect: true }) href?: string;\n\n #scrollSpy = false;\n\n #visible = false;\n\n #scrollElement?: Element | Window;\n\n #hasSlottedText = false;\n\n #logger = new Logger(this);\n\n get #rootNode(): Document | ShadowRoot | null {\n let root = null;\n if (isServer) {\n return null;\n } else if ((root = this.getRootNode()) instanceof Document || root instanceof ShadowRoot) {\n return root;\n } else {\n return document;\n }\n }\n\n get #ariaLabel(): string | undefined {\n if (this.#hasSlottedText) {\n return undefined;\n }\n return this.label ?? 'Back to top';\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#addScrollListener();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#removeScrollListener();\n }\n\n override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('scrollableSelector')) {\n this.#addScrollListener();\n }\n if (changed.has('alwaysVisible')) {\n this.#toggleVisibility();\n }\n }\n\n render(): TemplateResult<1> {\n // ensure href has a hash\n if (this.href && this.href.charAt(0) !== '#') {\n this.href = `#${this.href}`;\n this.#logger.warn(`missing hash in href fragment link`);\n }\n\n if (this.href) {\n return html`\n <a href=\"${this.href}\" ?hidden=\"${!this.#visible}\" part=\"trigger\" aria-label=\"${ifDefined(this.#ariaLabel)}\">\n <slot name=\"icon\"></slot>\n <slot @slotchange=\"${this.#onSlotchange}\"></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </a>\n `;\n } else {\n return html`\n <pf-button\n icon=\"${ifDefined(this.icon)}\"\n icon-set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.#visible}\"\n tabindex=\"${this.#visible ? '0' : '-1'}\"\n part=\"trigger\"\n label=\"${ifDefined(this.#ariaLabel)}\"\n >\n <slot name=\"icon\" slot=\"icon\"></slot>\n <span>\n <slot></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </span>\n </pf-button>\n `;\n }\n }\n\n #onSlotchange(event: Event) {\n const slot = event.currentTarget as HTMLSlotElement;\n const nodes = slot.assignedNodes();\n this.#hasSlottedText = nodes.length > 0 ? true : false;\n this.requestUpdate();\n }\n\n #removeScrollListener() {\n this.#scrollElement?.removeEventListener('scroll', this.#toggleVisibility);\n }\n\n #addScrollListener() {\n this.#removeScrollListener();\n\n if (this.scrollableSelector?.trim() === '') {\n this.#logger.error(`scrollable-selector attribute cannot be empty`);\n return;\n }\n\n this.#scrollSpy = !!this.scrollableSelector;\n if (isServer) {\n return;\n } else if (this.#scrollSpy && this.scrollableSelector) {\n const scrollableElement = this.#rootNode?.querySelector?.(this.scrollableSelector);\n if (!scrollableElement) {\n this.#logger.error(`unable to find element with selector ${this.scrollableSelector}`);\n return;\n }\n this.#scrollElement = scrollableElement;\n } else {\n this.#scrollElement = window;\n }\n\n this.#scrollElement.addEventListener('scroll', this.#toggleVisibility, { passive: true });\n this.#toggleVisibility();\n }\n\n #toggleVisibility = () => {\n if (this.alwaysVisible) {\n this.#visible = true;\n this.requestUpdate();\n return;\n }\n const previousVisibility = this.#visible;\n if (this.#scrollElement) {\n const scrolled =\n (this.#scrollElement instanceof Window) ?\n this.#scrollElement.scrollY\n : this.#scrollElement.scrollTop;\n this.#visible = (scrolled > this.scrollDistance);\n if (previousVisibility !== this.#visible) {\n this.requestUpdate();\n }\n }\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-back-to-top': PfBackToTop;\n }\n}\n"]}
|
|
@@ -74,7 +74,7 @@ _PfBackgroundImage_onSlotChange = function _PfBackgroundImage_onSlotChange() {
|
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
76
|
PfBackgroundImage.styles = [styles];
|
|
77
|
-
PfBackgroundImage.version = "4.0
|
|
77
|
+
PfBackgroundImage.version = "4.1.0";
|
|
78
78
|
__decorate([
|
|
79
79
|
property({ reflect: true })
|
|
80
80
|
], PfBackgroundImage.prototype, "src", void 0);
|
package/pf-badge/pf-badge.js
CHANGED
package/pf-banner/pf-banner.js
CHANGED
|
@@ -36,7 +36,7 @@ let PfBanner = class PfBanner extends LitElement {
|
|
|
36
36
|
};
|
|
37
37
|
_PfBanner_slots = new WeakMap();
|
|
38
38
|
PfBanner.styles = [styles];
|
|
39
|
-
PfBanner.version = "4.0
|
|
39
|
+
PfBanner.version = "4.1.0";
|
|
40
40
|
__decorate([
|
|
41
41
|
property({ reflect: true })
|
|
42
42
|
], PfBanner.prototype, "variant", void 0);
|
package/pf-button/pf-button.js
CHANGED
package/pf-card/pf-card.js
CHANGED
|
@@ -49,7 +49,7 @@ let PfCard = class PfCard extends LitElement {
|
|
|
49
49
|
};
|
|
50
50
|
_PfCard_slots = new WeakMap();
|
|
51
51
|
PfCard.styles = [style];
|
|
52
|
-
PfCard.version = "4.0
|
|
52
|
+
PfCard.version = "4.1.0";
|
|
53
53
|
__decorate([
|
|
54
54
|
property({ reflect: true })
|
|
55
55
|
], PfCard.prototype, "size", void 0);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { test } from '@playwright/test';
|
|
1
|
+
import { test, expect } from '@playwright/test';
|
|
2
2
|
import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
|
|
3
3
|
import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
|
|
4
4
|
const tagName = 'pf-card';
|
|
5
|
+
const html = String.raw;
|
|
5
6
|
test.describe(tagName, () => {
|
|
6
7
|
test('snapshot', async ({ page }) => {
|
|
7
8
|
const componentPage = new PfeDemoPage(page, tagName);
|
|
@@ -19,5 +20,23 @@ test.describe(tagName, () => {
|
|
|
19
20
|
});
|
|
20
21
|
await fixture.snapshots();
|
|
21
22
|
});
|
|
23
|
+
test('ssr hints', async ({ browser }) => {
|
|
24
|
+
const fixture = new SSRPage({
|
|
25
|
+
tagName,
|
|
26
|
+
browser,
|
|
27
|
+
importSpecifiers: [`@patternfly/elements/${tagName}/${tagName}.js`],
|
|
28
|
+
demoContent: html `
|
|
29
|
+
<pf-card ssr-hint-has-slotted-default
|
|
30
|
+
ssr-hint-has-slotted="header,footer">
|
|
31
|
+
<h2 slot="header">Header</h2>
|
|
32
|
+
<span>Body</span>
|
|
33
|
+
<span slot="footer">Footer</span>
|
|
34
|
+
</pf-card>
|
|
35
|
+
`,
|
|
36
|
+
});
|
|
37
|
+
await fixture.updateCompleteFor('pf-card');
|
|
38
|
+
await expect(fixture.page.locator('pf-card #title')).toHaveAttribute('hidden');
|
|
39
|
+
await expect(fixture.page.locator('pf-card #header')).not.toHaveAttribute('hidden');
|
|
40
|
+
});
|
|
22
41
|
});
|
|
23
42
|
//# sourceMappingURL=pf-card.e2e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-card.e2e.js","sourceRoot":"","sources":["pf-card.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"pf-card.e2e.js","sourceRoot":"","sources":["pf-card.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAExB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,gBAAgB,EAAE,CAAC,wBAAwB,OAAO,IAAI,OAAO,KAAK,CAAC;YACnE,WAAW,EAAE,IAAI,CAAA;;;;;;;OAOhB;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/E,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-card';\n\nconst html = String.raw;\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n\n test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n\n test('ssr hints', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n importSpecifiers: [`@patternfly/elements/${tagName}/${tagName}.js`],\n demoContent: html`\n <pf-card ssr-hint-has-slotted-default\n ssr-hint-has-slotted=\"header,footer\">\n <h2 slot=\"header\">Header</h2>\n <span>Body</span>\n <span slot=\"footer\">Footer</span>\n </pf-card>\n `,\n });\n await fixture.updateCompleteFor('pf-card');\n await expect(fixture.page.locator('pf-card #title')).toHaveAttribute('hidden');\n await expect(fixture.page.locator('pf-card #header')).not.toHaveAttribute('hidden');\n });\n});\n"]}
|
package/pf-chip/pf-chip-group.js
CHANGED
|
@@ -190,7 +190,7 @@ PfChipGroup.shadowRootOptions = {
|
|
|
190
190
|
...LitElement.shadowRootOptions,
|
|
191
191
|
delegatesFocus: true,
|
|
192
192
|
};
|
|
193
|
-
PfChipGroup.version = "4.0
|
|
193
|
+
PfChipGroup.version = "4.1.0";
|
|
194
194
|
__decorate([
|
|
195
195
|
property({ attribute: 'accessible-label', type: String })
|
|
196
196
|
], PfChipGroup.prototype, "accessibleLabel", void 0);
|
package/pf-chip/pf-chip.js
CHANGED
|
@@ -64,7 +64,7 @@ PfChip.shadowRootOptions = {
|
|
|
64
64
|
...LitElement.shadowRootOptions,
|
|
65
65
|
delegatesFocus: true,
|
|
66
66
|
};
|
|
67
|
-
PfChip.version = "4.0
|
|
67
|
+
PfChip.version = "4.1.0";
|
|
68
68
|
__decorate([
|
|
69
69
|
property({ attribute: 'accessible-close-label', type: String })
|
|
70
70
|
], PfChip.prototype, "accessibleCloseLabel", void 0);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _PfClipboardCopy_instances, _PfClipboardCopy_copied, _PfClipboardCopy_mo, _PfClipboardCopy_onClick, _PfClipboardCopy_onChange, _PfClipboardCopy_onMutation, _PfClipboardCopy_dedent;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
|
|
3
|
-
import { LitElement, html } from 'lit';
|
|
3
|
+
import { LitElement, html, isServer } from 'lit';
|
|
4
4
|
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';
|
|
@@ -56,7 +56,9 @@ let PfClipboardCopy = class PfClipboardCopy extends LitElement {
|
|
|
56
56
|
connectedCallback() {
|
|
57
57
|
super.connectedCallback();
|
|
58
58
|
__classPrivateFieldGet(this, _PfClipboardCopy_mo, "f").observe(this, { characterData: true });
|
|
59
|
-
|
|
59
|
+
if (!isServer) {
|
|
60
|
+
__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onMutation).call(this);
|
|
61
|
+
}
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
64
|
* @todo fix the collapsed whitespace between the end of the "inline-compact" variant and the text node.
|
|
@@ -128,7 +130,7 @@ _PfClipboardCopy_onChange = function _PfClipboardCopy_onChange(e) {
|
|
|
128
130
|
this.value = value;
|
|
129
131
|
};
|
|
130
132
|
_PfClipboardCopy_onMutation = function _PfClipboardCopy_onMutation() {
|
|
131
|
-
if (this.childNodes
|
|
133
|
+
if (this.childNodes?.length > 0) {
|
|
132
134
|
this.value = this.getAttribute('value') ?? __classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_dedent).call(this, Array.from(this.childNodes, child => (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')
|
|
133
135
|
.join(''));
|
|
134
136
|
}
|
|
@@ -143,7 +145,7 @@ PfClipboardCopy.shadowRootOptions = {
|
|
|
143
145
|
...LitElement.shadowRootOptions,
|
|
144
146
|
delegatesFocus: true,
|
|
145
147
|
};
|
|
146
|
-
PfClipboardCopy.version = "4.0
|
|
148
|
+
PfClipboardCopy.version = "4.1.0";
|
|
147
149
|
__decorate([
|
|
148
150
|
property({ attribute: 'click-tip' })
|
|
149
151
|
], PfClipboardCopy.prototype, "clickTip", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-clipboard-copy.js","sourceRoot":"","sources":["pf-clipboard-copy.ts"],"names":[],"mappings":"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","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 { ifDefined } from 'lit/directives/if-defined.js';\n\nimport styles from './pf-clipboard-copy.css';\nimport formControlStyles from '../form-control.css';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-tooltip/pf-tooltip.js';\n\nconst sleep = (ms?: number) => new Promise(r => setTimeout(r, ms));\n\nexport class PfClipboardCopyCopiedEvent extends Event {\n constructor(public text: string) {\n super('copy', { bubbles: true });\n }\n}\n\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n * @fires {PfClipboardCopyCopiedEvent} copy - when the text snippet is successfully copied.\n * @cssprop [--pf-c-clipboard-copy__toggle-icon--Transition=.2s ease-in 0s]\n * @cssprop [--pf-c-clipboard-copy--m-expanded__toggle-icon--Rotate=90deg]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingTop=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingRight=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingBottom=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingLeft=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BackgroundColor=var(--pf-global--BackgroundColor--light-100, #fff)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderTopWidth=0]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderRightWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderBottomWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderLeftWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderColor=var(--pf-global--BorderColor--100, #d2d2d2)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--OutlineOffset=calc(-1 * var(--pf-global--spacer--xs, 0.25rem))]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingTop=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingBottom=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingLeft=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy--m-inline--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontFamily=var(--pf-global--FontFamily--monospace, \"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontSize=var(--pf-global--FontSize--sm, 0.875rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginTop=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginBottom=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingRight=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends LitElement {\n static readonly styles: CSSStyleSheet[] = [formControlStyles, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Tooltip message to display when clicking the copy button */\n @property({ attribute: 'click-tip' }) clickTip = 'Successfully copied to clipboard!';\n\n /** Tooltip message to display when hover the copy button */\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy to clipboard';\n\n /** Accessible label to use on the text input. */\n @property({ attribute: 'accessible-text-label' }) accessibleTextLabel = 'Copyable input';\n\n /** Accessible label to use on the toggle button. */\n @property({ attribute: 'accessible-toggle-label' }) accessibleToggleLabel = 'Show content';\n\n /** Delay in ms before the tooltip appears. */\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n /** Delay in ms before the tooltip disappears. */\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n /** Flag to determine if inline clipboard copy should be block styling */\n @property({ type: Boolean, reflect: true }) block = false;\n\n /** Flag to determine if clipboard copy content includes code */\n @property({ type: Boolean, reflect: true }) code = false;\n\n /** Flag to determine if clipboard copy is in the expanded state */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /** Implies not `inline`. */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n /** Flag to show if the input is read only. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Implies not expandable. Overrules `expandable`. */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /** Flag to determine if inline clipboard copy should have compact styling */\n @property({ type: Boolean, reflect: true }) compact = false;\n\n /** String to copy */\n @property() value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback(): void {\n super.connectedCallback();\n this.#mo.observe(this, { characterData: true });\n this.#onMutation();\n }\n\n /**\n * @todo fix the collapsed whitespace between the end of the \"inline-compact\" variant and the text node.\n * This demonstrates the collapsed whitespace issue.\n * The extra space between the closing slot tag and the closing template literal results in a collapsed whitespace.\n */\n render(): TemplateResult<1> {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div id=\"container\" class=\"${classMap({ code, expanded, inline, compact, block })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n variant=\"control\"\n label=\"EXPAND\"\n ?inert=\"${!expandable}\"\n @click=\"${this.#onClick}\">\n <pf-icon icon=\"chevron-right\"></pf-icon>\n </pf-button>\n </div>\n <span ?hidden=\"${!(inline || compact)}\">${this.value}</span>\n <input aria-label=\"${this.accessibleTextLabel}\"\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n icon=\"copy\"\n ?plain=\"${inline || compact}\"\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n @click=\"${this.copy}\">\n </pf-button>\n <span slot=\"content\">${this.#copied ? this.clickTip : this.hoverTip}</span>\n </pf-tooltip>\n <slot name=\"actions\"></slot>\n </div>\n <textarea .value=\"${this.value}\"\n .disabled=\"${this.readonly}\"\n ?hidden=\"${!(expandable && expanded)}\"\n @input=\"${this.#onChange}\">\n </textarea>\n </div>\n `;\n }\n\n #onClick() {\n this.expanded = !this.expanded;\n }\n\n #onChange(e: Event) {\n const { value } = e.target as HTMLInputElement || HTMLTextAreaElement;\n this.value = value;\n }\n\n #onMutation() {\n if (this.childNodes.length > 0) {\n this.value = this.getAttribute('value') ?? this.#dedent(Array.from(this.childNodes, child =>\n (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')\n .join(''));\n }\n }\n\n #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 /**\n * Copy the current value to the clipboard.\n */\n async copy(): Promise<void> {\n await navigator.clipboard.writeText(this.value);\n this.dispatchEvent(new PfClipboardCopyCopiedEvent(this.value));\n await sleep(this.entryDelay);\n this.#copied = true;\n this.requestUpdate();\n await sleep(this.exitDelay);\n this.#copied = false;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-clipboard-copy': PfClipboardCopy;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pf-clipboard-copy.js","sourceRoot":"","sources":["pf-clipboard-copy.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, isServer, 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 { ifDefined } from 'lit/directives/if-defined.js';\n\nimport styles from './pf-clipboard-copy.css';\nimport formControlStyles from '../form-control.css';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-tooltip/pf-tooltip.js';\n\nconst sleep = (ms?: number) => new Promise(r => setTimeout(r, ms));\n\nexport class PfClipboardCopyCopiedEvent extends Event {\n constructor(public text: string) {\n super('copy', { bubbles: true });\n }\n}\n\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n * @fires {PfClipboardCopyCopiedEvent} copy - when the text snippet is successfully copied.\n * @cssprop [--pf-c-clipboard-copy__toggle-icon--Transition=.2s ease-in 0s]\n * @cssprop [--pf-c-clipboard-copy--m-expanded__toggle-icon--Rotate=90deg]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingTop=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingRight=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingBottom=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingLeft=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BackgroundColor=var(--pf-global--BackgroundColor--light-100, #fff)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderTopWidth=0]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderRightWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderBottomWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderLeftWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderColor=var(--pf-global--BorderColor--100, #d2d2d2)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--OutlineOffset=calc(-1 * var(--pf-global--spacer--xs, 0.25rem))]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingTop=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingBottom=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingLeft=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy--m-inline--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontFamily=var(--pf-global--FontFamily--monospace, \"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontSize=var(--pf-global--FontSize--sm, 0.875rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginTop=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginBottom=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingRight=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends LitElement {\n static readonly styles: CSSStyleSheet[] = [formControlStyles, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Tooltip message to display when clicking the copy button */\n @property({ attribute: 'click-tip' }) clickTip = 'Successfully copied to clipboard!';\n\n /** Tooltip message to display when hover the copy button */\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy to clipboard';\n\n /** Accessible label to use on the text input. */\n @property({ attribute: 'accessible-text-label' }) accessibleTextLabel = 'Copyable input';\n\n /** Accessible label to use on the toggle button. */\n @property({ attribute: 'accessible-toggle-label' }) accessibleToggleLabel = 'Show content';\n\n /** Delay in ms before the tooltip appears. */\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n /** Delay in ms before the tooltip disappears. */\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n /** Flag to determine if inline clipboard copy should be block styling */\n @property({ type: Boolean, reflect: true }) block = false;\n\n /** Flag to determine if clipboard copy content includes code */\n @property({ type: Boolean, reflect: true }) code = false;\n\n /** Flag to determine if clipboard copy is in the expanded state */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /** Implies not `inline`. */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n /** Flag to show if the input is read only. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Implies not expandable. Overrules `expandable`. */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /** Flag to determine if inline clipboard copy should have compact styling */\n @property({ type: Boolean, reflect: true }) compact = false;\n\n /** String to copy */\n @property() value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback(): void {\n super.connectedCallback();\n this.#mo.observe(this, { characterData: true });\n if (!isServer) {\n this.#onMutation();\n }\n }\n\n /**\n * @todo fix the collapsed whitespace between the end of the \"inline-compact\" variant and the text node.\n * This demonstrates the collapsed whitespace issue.\n * The extra space between the closing slot tag and the closing template literal results in a collapsed whitespace.\n */\n render(): TemplateResult<1> {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div id=\"container\" class=\"${classMap({ code, expanded, inline, compact, block })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n variant=\"control\"\n label=\"EXPAND\"\n ?inert=\"${!expandable}\"\n @click=\"${this.#onClick}\">\n <pf-icon icon=\"chevron-right\"></pf-icon>\n </pf-button>\n </div>\n <span ?hidden=\"${!(inline || compact)}\">${this.value}</span>\n <input aria-label=\"${this.accessibleTextLabel}\"\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n icon=\"copy\"\n ?plain=\"${inline || compact}\"\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n @click=\"${this.copy}\">\n </pf-button>\n <span slot=\"content\">${this.#copied ? this.clickTip : this.hoverTip}</span>\n </pf-tooltip>\n <slot name=\"actions\"></slot>\n </div>\n <textarea .value=\"${this.value}\"\n .disabled=\"${this.readonly}\"\n ?hidden=\"${!(expandable && expanded)}\"\n @input=\"${this.#onChange}\">\n </textarea>\n </div>\n `;\n }\n\n #onClick() {\n this.expanded = !this.expanded;\n }\n\n #onChange(e: Event) {\n const { value } = e.target as HTMLInputElement || HTMLTextAreaElement;\n this.value = value;\n }\n\n #onMutation() {\n if (this.childNodes?.length > 0) {\n this.value = this.getAttribute('value') ?? this.#dedent(Array.from(this.childNodes, child =>\n (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')\n .join(''));\n }\n }\n\n #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 /**\n * Copy the current value to the clipboard.\n */\n async copy(): Promise<void> {\n await navigator.clipboard.writeText(this.value);\n this.dispatchEvent(new PfClipboardCopyCopiedEvent(this.value));\n await sleep(this.entryDelay);\n this.#copied = true;\n this.requestUpdate();\n await sleep(this.exitDelay);\n this.#copied = false;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-clipboard-copy': PfClipboardCopy;\n }\n}\n"]}
|
|
@@ -85,7 +85,7 @@ _PfCodeBlock_toggle = function _PfCodeBlock_toggle() {
|
|
|
85
85
|
this.expanded = !this.expanded;
|
|
86
86
|
};
|
|
87
87
|
PfCodeBlock.styles = [styles];
|
|
88
|
-
PfCodeBlock.version = "4.0
|
|
88
|
+
PfCodeBlock.version = "4.1.0";
|
|
89
89
|
__decorate([
|
|
90
90
|
property({ type: Boolean, reflect: true })
|
|
91
91
|
], PfCodeBlock.prototype, "expanded", void 0);
|
|
@@ -17,7 +17,7 @@ PfDropdownGroup.shadowRootOptions = {
|
|
|
17
17
|
...LitElement.shadowRootOptions,
|
|
18
18
|
delegatesFocus: true,
|
|
19
19
|
};
|
|
20
|
-
PfDropdownGroup.version = "4.0
|
|
20
|
+
PfDropdownGroup.version = "4.1.0";
|
|
21
21
|
__decorate([
|
|
22
22
|
property({ reflect: true })
|
|
23
23
|
], PfDropdownGroup.prototype, "label", void 0);
|
|
@@ -54,7 +54,7 @@ PfDropdownItem.shadowRootOptions = {
|
|
|
54
54
|
...LitElement.shadowRootOptions,
|
|
55
55
|
delegatesFocus: true,
|
|
56
56
|
};
|
|
57
|
-
PfDropdownItem.version = "4.0
|
|
57
|
+
PfDropdownItem.version = "4.1.0";
|
|
58
58
|
__decorate([
|
|
59
59
|
property({ reflect: true })
|
|
60
60
|
], PfDropdownItem.prototype, "value", void 0);
|
|
@@ -120,7 +120,7 @@ PfDropdownMenu.shadowRootOptions = {
|
|
|
120
120
|
...LitElement.shadowRootOptions,
|
|
121
121
|
delegatesFocus: true,
|
|
122
122
|
};
|
|
123
|
-
PfDropdownMenu.version = "4.0
|
|
123
|
+
PfDropdownMenu.version = "4.1.0";
|
|
124
124
|
__decorate([
|
|
125
125
|
consume({ context, subscribe: true }),
|
|
126
126
|
state()
|
|
@@ -214,7 +214,7 @@ PfDropdown.shadowRootOptions = {
|
|
|
214
214
|
...LitElement.shadowRootOptions,
|
|
215
215
|
delegatesFocus: true,
|
|
216
216
|
};
|
|
217
|
-
PfDropdown.version = "4.0
|
|
217
|
+
PfDropdown.version = "4.1.0";
|
|
218
218
|
__decorate([
|
|
219
219
|
property({ type: Boolean, reflect: true })
|
|
220
220
|
], PfDropdown.prototype, "disabled", void 0);
|
package/pf-icon/pf-icon.js
CHANGED
|
@@ -43,7 +43,7 @@ PfJumpLinksItem.shadowRootOptions = {
|
|
|
43
43
|
...LitElement.shadowRootOptions,
|
|
44
44
|
delegatesFocus: true,
|
|
45
45
|
};
|
|
46
|
-
PfJumpLinksItem.version = "4.0
|
|
46
|
+
PfJumpLinksItem.version = "4.1.0";
|
|
47
47
|
__decorate([
|
|
48
48
|
property({ type: Boolean, reflect: true })
|
|
49
49
|
], PfJumpLinksItem.prototype, "active", void 0);
|
|
@@ -11,7 +11,7 @@ let PfJumpLinksList = class PfJumpLinksList extends LitElement {
|
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
PfJumpLinksList.styles = [style];
|
|
14
|
-
PfJumpLinksList.version = "4.0
|
|
14
|
+
PfJumpLinksList.version = "4.1.0";
|
|
15
15
|
PfJumpLinksList = __decorate([
|
|
16
16
|
customElement('pf-jump-links-list')
|
|
17
17
|
], PfJumpLinksList);
|
|
@@ -46,18 +46,29 @@ slot::before {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
:host([vertical]) #container {
|
|
49
|
-
--pf-c-jump-links__list--PaddingTop:
|
|
50
|
-
var(--pf-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
--pf-c-jump-links__list--
|
|
56
|
-
|
|
49
|
+
--pf-c-jump-links__list--PaddingTop:
|
|
50
|
+
var(--pf-c-jump-links--m-vertical__list--PaddingTop,
|
|
51
|
+
var(--pf-global--spacer--md, 1rem)
|
|
52
|
+
);
|
|
53
|
+
--pf-c-jump-links__list--PaddingRight:
|
|
54
|
+
var(--pf-c-jump-links--m-vertical__list--PaddingRight,0);
|
|
55
|
+
--pf-c-jump-links__list--PaddingBottom:
|
|
56
|
+
var(--pf-c-jump-links--m-vertical__list--PaddingBottom,
|
|
57
|
+
var(--pf-global--spacer--md, 1rem)
|
|
58
|
+
);
|
|
59
|
+
--pf-c-jump-links__list--PaddingLeft:
|
|
60
|
+
var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);
|
|
61
|
+
--pf-c-jump-links__list--before--BorderTopWidth:
|
|
62
|
+
var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);
|
|
63
|
+
--pf-c-jump-links__list--before--BorderLeftWidth:
|
|
64
|
+
var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth,
|
|
57
65
|
var(--pf-global--BorderWidth--sm, 1px));
|
|
58
|
-
--pf-c-jump-links__item--m-current__link--before--BorderTopWidth:
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
--pf-c-jump-links__item--m-current__link--before--BorderTopWidth:
|
|
67
|
+
var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);
|
|
68
|
+
--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth:
|
|
69
|
+
var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,
|
|
70
|
+
var(--pf-global--BorderWidth--lg, 3px)
|
|
71
|
+
);
|
|
61
72
|
--pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);
|
|
62
73
|
}
|
|
63
74
|
|
|
@@ -8,7 +8,7 @@ import { RovingTabindexController } from '@patternfly/pfe-core/controllers/rovin
|
|
|
8
8
|
import { PfJumpLinksItem } from './pf-jump-links-item.js';
|
|
9
9
|
import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
10
10
|
import { css } from "lit";
|
|
11
|
-
const style = css `[hidden] {\n display: none !important;\n}\n\n:host {\n display: block;\n}\n\n#container {\n display: flex;\n flex-wrap: wrap;\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--md, 16px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n}\n\nslot {\n position: relative;\n display: var(--pf-c-jump-links__list--Display, flex);\n flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);\n padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);\n padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);\n padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n visibility: var(--pf-c-jump-links__list--Visibility, visible);\n}\n\nslot::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n content: "";\n border: solid var(--pf-c-jump-links__list--before--BorderColor,\n var(--pf-global--BorderColor--100, #d2d2d2));\n border-width:\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px))\n var(--pf-c-jump-links__list--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);\n}\n\n:host([vertical]) #container {\n --pf-c-jump-links__list--PaddingTop
|
|
11
|
+
const style = css `[hidden] {\n display: none !important;\n}\n\n:host {\n display: block;\n}\n\n#container {\n display: flex;\n flex-wrap: wrap;\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--md, 16px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n}\n\nslot {\n position: relative;\n display: var(--pf-c-jump-links__list--Display, flex);\n flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);\n padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);\n padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);\n padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n visibility: var(--pf-c-jump-links__list--Visibility, visible);\n}\n\nslot::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n content: "";\n border: solid var(--pf-c-jump-links__list--before--BorderColor,\n var(--pf-global--BorderColor--100, #d2d2d2));\n border-width:\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px))\n var(--pf-c-jump-links__list--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);\n}\n\n:host([vertical]) #container {\n --pf-c-jump-links__list--PaddingTop:\n var(--pf-c-jump-links--m-vertical__list--PaddingTop,\n var(--pf-global--spacer--md, 1rem)\n );\n --pf-c-jump-links__list--PaddingRight:\n var(--pf-c-jump-links--m-vertical__list--PaddingRight,0);\n --pf-c-jump-links__list--PaddingBottom:\n var(--pf-c-jump-links--m-vertical__list--PaddingBottom,\n var(--pf-global--spacer--md, 1rem)\n );\n --pf-c-jump-links__list--PaddingLeft:\n var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);\n --pf-c-jump-links__list--before--BorderTopWidth:\n var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);\n --pf-c-jump-links__list--before--BorderLeftWidth:\n var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth,\n var(--pf-global--BorderWidth--sm, 1px));\n --pf-c-jump-links__item--m-current__link--before--BorderTopWidth:\n var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);\n --pf-c-jump-links__item--m-current__link--before--BorderLeftWidth:\n var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,\n var(--pf-global--BorderWidth--lg, 3px)\n );\n --pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);\n}\n\n:host([centered]) #container {\n justify-content: center;\n}\n\n:host([centered]) #label {\n text-align: center;\n}\n\n:host(:not([expandable])) #label {\n display: block;\n width: 100%;\n margin-block-end: var(--pf-c-jump-links__label--MarginBottom,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expandable]) {\n --pf-c-jump-links--m-expanded__toggle--MarginBottom:\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))\n ) + var(--pf-global--spacer--md, 1rem));\n}\n\nsummary {\n display: block;\n margin-block-start: var(--pf-c-jump-links__toggle--MarginTop,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem)));\n margin-block-end: var(--pf-c-jump-links__toggle--MarginBottom,\n var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))));\n margin-inline-start: var(--pf-c-jump-links__toggle--MarginLeft);\n color: var(--pf-c-jump-links__toggle-text--Color,\n var(--pf-global--Color--100, #151515));\n padding:\n var(--pf-c-button--PaddingTop,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingRight,\n var(--pf-global--spacer--md, 1rem))\n var(--pf-c-button--PaddingBottom,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\nsummary pf-icon {\n rotate: var(--pf-c-jump-links__toggle-icon--Rotate, 0);\n transition: var(--pf-c-jump-links__toggle-icon--Transition,\n var(--pf-global--Transition, all 250ms cubic-bezier(0.42, 0, 0.58, 1)));\n}\n\nsummary span {\n margin-inline-start: var(--pf-c-jump-links__toggle-text--MarginLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expanded]) #container {\n --pf-c-jump-links__toggle--MarginBottom: var(--pf-c-jump-links--m-expanded__toggle--MarginBottom,\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))) +\n var(--pf-global--spacer--md, 1rem)));\n --pf-c-jump-links__toggle-icon--Rotate: var(--pf-c-jump-links--m-expanded__toggle-icon--Rotate,\n 90deg);\n --pf-c-jump-links__toggle-icon--Color: var(--pf-c-jump-links--m-expanded__toggle-icon--Color,\n var(--pf-global--Color--100, #151515));\n --pf-c-jump-links__toggle-icon--Rotate: 90deg;\n}\n`;
|
|
12
12
|
let PfJumpLinks = class PfJumpLinks extends LitElement {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
@@ -106,7 +106,7 @@ _PfJumpLinks_onToggle = function _PfJumpLinks_onToggle(event) {
|
|
|
106
106
|
this.dispatchEvent(new Event('toggle'));
|
|
107
107
|
};
|
|
108
108
|
PfJumpLinks.styles = [style];
|
|
109
|
-
PfJumpLinks.version = "4.0
|
|
109
|
+
PfJumpLinks.version = "4.1.0";
|
|
110
110
|
__decorate([
|
|
111
111
|
property({ reflect: true, type: Boolean })
|
|
112
112
|
], PfJumpLinks.prototype, "expandable", void 0);
|
package/pf-label/pf-label.js
CHANGED