@patternfly/elements 2.2.2 → 2.3.1
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 +32 -45
- package/package.json +4 -3
- package/pf-accordion/BaseAccordion.d.ts +2 -1
- package/pf-accordion/BaseAccordion.js +239 -210
- package/pf-accordion/BaseAccordion.js.map +1 -1
- package/pf-accordion/BaseAccordionHeader.js +71 -69
- package/pf-accordion/BaseAccordionHeader.js.map +1 -1
- package/pf-accordion/BaseAccordionPanel.js +2 -2
- package/pf-accordion/BaseAccordionPanel.js.map +1 -1
- package/pf-accordion/pf-accordion-header.js +4 -9
- package/pf-accordion/pf-accordion-header.js.map +1 -1
- package/pf-accordion/pf-accordion-panel.js +1 -1
- package/pf-accordion/pf-accordion-panel.js.map +1 -1
- package/pf-accordion/pf-accordion.js +1 -1
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-avatar/BaseAvatar.js +1 -1
- package/pf-avatar/BaseAvatar.js.map +1 -1
- package/pf-avatar/pf-avatar.js +1 -1
- package/pf-avatar/pf-avatar.js.map +1 -1
- package/pf-badge/BaseBadge.js +1 -1
- package/pf-badge/BaseBadge.js.map +1 -1
- package/pf-badge/pf-badge.js +1 -1
- package/pf-badge/pf-badge.js.map +1 -1
- package/pf-button/BaseButton.js +16 -17
- package/pf-button/BaseButton.js.map +1 -1
- package/pf-button/pf-button.js +1 -1
- package/pf-button/pf-button.js.map +1 -1
- package/pf-card/BaseCard.js +1 -1
- package/pf-card/BaseCard.js.map +1 -1
- package/pf-card/pf-card.js +1 -1
- package/pf-card/pf-card.js.map +1 -1
- package/pf-clipboard-copy/BaseClipboardCopy.js +1 -1
- package/pf-clipboard-copy/BaseClipboardCopy.js.map +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.js +33 -36
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-code-block/BaseCodeBlock.js +1 -1
- package/pf-code-block/BaseCodeBlock.js.map +1 -1
- package/pf-code-block/pf-code-block.js +11 -14
- package/pf-code-block/pf-code-block.js.map +1 -1
- package/pf-icon/BaseIcon.js +41 -39
- package/pf-icon/BaseIcon.js.map +1 -1
- package/pf-icon/pf-icon.js +2 -2
- package/pf-icon/pf-icon.js.map +1 -1
- package/pf-jump-links/pf-jump-links-item.js +14 -17
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.js +1 -1
- package/pf-jump-links/pf-jump-links-list.js.map +1 -1
- package/pf-jump-links/pf-jump-links.js +34 -37
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-label/BaseLabel.js +1 -1
- package/pf-label/BaseLabel.js.map +1 -1
- package/pf-label/pf-label.js +2 -2
- package/pf-label/pf-label.js.map +1 -1
- package/pf-modal/pf-modal.js +45 -46
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-panel/pf-panel.js +6 -7
- package/pf-panel/pf-panel.js.map +1 -1
- package/pf-popover/pf-popover.js +48 -51
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-progress-stepper/pf-progress-step.js +10 -11
- package/pf-progress-stepper/pf-progress-step.js.map +1 -1
- package/pf-progress-stepper/pf-progress-stepper.js +13 -16
- package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
- package/pf-spinner/BaseSpinner.js +1 -1
- package/pf-spinner/BaseSpinner.js.map +1 -1
- package/pf-spinner/pf-spinner.js +1 -1
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-switch/BaseSwitch.js +47 -44
- package/pf-switch/BaseSwitch.js.map +1 -1
- package/pf-switch/pf-switch.js +1 -1
- package/pf-switch/pf-switch.js.map +1 -1
- package/pf-tabs/BaseTab.js +31 -29
- package/pf-tabs/BaseTab.js.map +1 -1
- package/pf-tabs/BaseTabPanel.js +5 -11
- package/pf-tabs/BaseTabPanel.js.map +1 -1
- package/pf-tabs/BaseTabs.js +135 -116
- package/pf-tabs/BaseTabs.js.map +1 -1
- package/pf-tabs/pf-tab-panel.js +1 -1
- package/pf-tabs/pf-tab-panel.js.map +1 -1
- package/pf-tabs/pf-tab.js +1 -1
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.js +2 -2
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-tile/pf-tile.js +1 -1
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-timestamp/pf-timestamp.d.ts +8 -5
- package/pf-timestamp/pf-timestamp.js +21 -66
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-tooltip/BaseTooltip.js +7 -13
- package/pf-tooltip/BaseTooltip.js.map +1 -1
- package/pf-tooltip/pf-tooltip.js +1 -1
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pfe.min.js +120 -120
- package/pfe.min.js.map +4 -4
- package/react/pf-accordion/pf-accordion-header.d.ts +6 -0
- package/react/pf-accordion/pf-accordion-header.js +12 -0
- package/react/pf-accordion/pf-accordion-panel.d.ts +6 -0
- package/react/pf-accordion/pf-accordion-panel.js +10 -0
- package/react/pf-accordion/pf-accordion.d.ts +6 -0
- package/react/pf-accordion/pf-accordion.js +13 -0
- package/react/pf-avatar/pf-avatar.d.ts +6 -0
- package/react/pf-avatar/pf-avatar.js +10 -0
- package/react/pf-badge/pf-badge.d.ts +6 -0
- package/react/pf-badge/pf-badge.js +10 -0
- package/react/pf-button/pf-button.d.ts +6 -0
- package/react/pf-button/pf-button.js +10 -0
- package/react/pf-card/pf-card.d.ts +6 -0
- package/react/pf-card/pf-card.js +10 -0
- package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +6 -0
- package/react/pf-clipboard-copy/pf-clipboard-copy.js +10 -0
- package/react/pf-code-block/pf-code-block.d.ts +6 -0
- package/react/pf-code-block/pf-code-block.js +10 -0
- package/react/pf-icon/pf-icon.d.ts +6 -0
- package/react/pf-icon/pf-icon.js +13 -0
- package/react/pf-jump-links/pf-jump-links-item.d.ts +6 -0
- package/react/pf-jump-links/pf-jump-links-item.js +13 -0
- package/react/pf-jump-links/pf-jump-links-list.d.ts +6 -0
- package/react/pf-jump-links/pf-jump-links-list.js +10 -0
- package/react/pf-jump-links/pf-jump-links.d.ts +6 -0
- package/react/pf-jump-links/pf-jump-links.js +12 -0
- package/react/pf-label/pf-label.d.ts +6 -0
- package/react/pf-label/pf-label.js +12 -0
- package/react/pf-modal/pf-modal.d.ts +6 -0
- package/react/pf-modal/pf-modal.js +13 -0
- package/react/pf-panel/pf-panel.d.ts +6 -0
- package/react/pf-panel/pf-panel.js +10 -0
- package/react/pf-popover/pf-popover.d.ts +6 -0
- package/react/pf-popover/pf-popover.js +10 -0
- package/react/pf-progress-stepper/pf-progress-step.d.ts +6 -0
- package/react/pf-progress-stepper/pf-progress-step.js +10 -0
- package/react/pf-progress-stepper/pf-progress-stepper.d.ts +6 -0
- package/react/pf-progress-stepper/pf-progress-stepper.js +10 -0
- package/react/pf-spinner/pf-spinner.d.ts +6 -0
- package/react/pf-spinner/pf-spinner.js +10 -0
- package/react/pf-switch/pf-switch.d.ts +6 -0
- package/react/pf-switch/pf-switch.js +12 -0
- package/react/pf-tabs/pf-tab-panel.d.ts +6 -0
- package/react/pf-tabs/pf-tab-panel.js +10 -0
- package/react/pf-tabs/pf-tab.d.ts +6 -0
- package/react/pf-tabs/pf-tab.js +12 -0
- package/react/pf-tabs/pf-tabs.d.ts +6 -0
- package/react/pf-tabs/pf-tabs.js +10 -0
- package/react/pf-tile/pf-tile.d.ts +6 -0
- package/react/pf-tile/pf-tile.js +10 -0
- package/react/pf-timestamp/pf-timestamp.d.ts +6 -0
- package/react/pf-timestamp/pf-timestamp.js +10 -0
- package/react/pf-tooltip/pf-tooltip.d.ts +6 -0
- package/react/pf-tooltip/pf-tooltip.js +10 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
var _PfProgressStep_slots, _PfProgressStep_internals;
|
|
2
1
|
var PfProgressStep_1;
|
|
3
|
-
import {
|
|
2
|
+
import { __decorate } from "tslib";
|
|
4
3
|
import { LitElement, html } from 'lit';
|
|
5
4
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
6
5
|
import { property } from 'lit/decorators/property.js';
|
|
@@ -30,13 +29,17 @@ let PfProgressStep = PfProgressStep_1 = class PfProgressStep extends LitElement
|
|
|
30
29
|
super(...arguments);
|
|
31
30
|
/** Indicates if this item is the current active item. */
|
|
32
31
|
this.current = false;
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
this.#slots = new SlotController(this, 'title', 'description');
|
|
33
|
+
this.#internals = new InternalsController(this, {
|
|
35
34
|
role: 'listitem',
|
|
36
|
-
})
|
|
35
|
+
});
|
|
37
36
|
}
|
|
37
|
+
static { this.parentTagName = 'pf-progress-stepper'; }
|
|
38
|
+
static { this.styles = [style]; }
|
|
39
|
+
#slots;
|
|
40
|
+
#internals;
|
|
38
41
|
render() {
|
|
39
|
-
const hasDescription = !!this.description ??
|
|
42
|
+
const hasDescription = !!this.description ?? this.#slots.hasSlotted('description');
|
|
40
43
|
const icon = this.icon ?? ICONS.get(this.variant ?? 'default')?.icon;
|
|
41
44
|
const set = this.iconSet ?? ICONS.get(this.variant ?? 'default')?.set;
|
|
42
45
|
const { parentTagName } = this.constructor;
|
|
@@ -58,14 +61,10 @@ let PfProgressStep = PfProgressStep_1 = class PfProgressStep extends LitElement
|
|
|
58
61
|
updated(changed) {
|
|
59
62
|
super.updated?.(changed);
|
|
60
63
|
if (changed.has('current')) {
|
|
61
|
-
|
|
64
|
+
this.#internals.ariaCurrent = String(!!this.current);
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
|
-
_PfProgressStep_slots = new WeakMap();
|
|
66
|
-
_PfProgressStep_internals = new WeakMap();
|
|
67
|
-
PfProgressStep.parentTagName = 'pf-progress-stepper';
|
|
68
|
-
PfProgressStep.styles = [style];
|
|
69
68
|
__decorate([
|
|
70
69
|
property()
|
|
71
70
|
], PfProgressStep.prototype, "description", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-progress-step.js","sourceRoot":"","sources":["pf-progress-step.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pf-progress-step.js","sourceRoot":"","sources":["pf-progress-step.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyValues } from 'lit';\nimport type { PfProgressStepper } from './pf-progress-stepper.js';\n\nimport { LitElement, html } 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';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { SlotController } from '@patternfly/pfe-core/controllers/slot-controller.js';\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-progress-step.css';\n\nconst ICONS = new Map(Object.entries({\n success: { icon: 'circle-check' },\n danger: { icon: 'circle-exclamation' },\n warning: { icon: 'triangle-exclamation' },\n info: { icon: 'resources-full', set: 'patternfly' },\n}));\n\n/**\n * @slot -\n * Short description of the current step.\n * @slot description\n * Longer description of the current step.\n * @slot icon\n * Overrides the icon property\n *\n */\n@customElement('pf-progress-step')\nexport class PfProgressStep extends LitElement {\n protected static parentTagName = 'pf-progress-stepper';\n\n static readonly styles = [style];\n\n /** Optional extended description of the step */\n @property() description?: string;\n\n /** Step Icon */\n @property() icon?: string;\n\n /** Step icon set */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Describes the state of the current item */\n @property({ reflect: true }) variant?: 'pending' | 'info' | 'success' | 'warning' | 'danger';\n\n /** Indicates if this item is the current active item. */\n @property({ type: Boolean, reflect: true }) current = false;\n\n #slots = new SlotController(this, 'title', 'description');\n\n #internals = new InternalsController(this, {\n role: 'listitem',\n });\n\n render() {\n const hasDescription = !!this.description ?? this.#slots.hasSlotted('description');\n const icon = this.icon ?? ICONS.get(this.variant ?? 'default')?.icon;\n const set = this.iconSet ?? ICONS.get(this.variant ?? 'default')?.set;\n const { parentTagName } = (this.constructor as typeof PfProgressStep);\n const { compact = false } = this.closest<PfProgressStepper>(parentTagName) ?? {};\n return html`\n <div id=\"connector\" class=\"${classMap({ compact })}\">\n <slot id=\"icon\" name=\"icon\">\n <pf-icon ?hidden=\"${!icon}\"\n icon=\"${ifDefined(icon)}\"\n set=\"${ifDefined(set)}\"></pf-icon>\n </slot>\n </div>\n <div id=\"main\" class=\"${classMap({ compact })}\">\n <slot id=\"title\"></slot>\n <slot id=\"description\" name=\"description\" ?hidden=\"${!hasDescription}\">${this.description}</slot>\n </div>\n `;\n }\n\n updated(changed: PropertyValues<this>) {\n super.updated?.(changed);\n if (changed.has('current')) {\n this.#internals.ariaCurrent = String(!!this.current);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-progress-step': PfProgressStep;\n }\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
var _PfProgressStepper_instances, _PfProgressStepper_internals, _PfProgressStepper_mo, _PfProgressStepper_onMutation;
|
|
2
1
|
var PfProgressStepper_1;
|
|
3
|
-
import {
|
|
2
|
+
import { __decorate } from "tslib";
|
|
4
3
|
import { LitElement, html } from 'lit';
|
|
5
4
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
6
5
|
import { property } from 'lit/decorators/property.js';
|
|
@@ -14,6 +13,11 @@ import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
|
14
13
|
* A **progress stepper** displays a timeline of tasks in a workflow and tracks the user's current progress through this workflow.
|
|
15
14
|
*/
|
|
16
15
|
let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends LitElement {
|
|
16
|
+
static { this.childTagName = 'pf-progress-step'; }
|
|
17
|
+
static { this.styles = [style]; }
|
|
18
|
+
static { this.formAssociated = true; }
|
|
19
|
+
#internals;
|
|
20
|
+
#mo;
|
|
17
21
|
get value() {
|
|
18
22
|
const { childTagName } = this.constructor;
|
|
19
23
|
const steps = this.querySelectorAll(childTagName);
|
|
@@ -23,19 +27,21 @@ let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends Li
|
|
|
23
27
|
}
|
|
24
28
|
constructor() {
|
|
25
29
|
super();
|
|
26
|
-
_PfProgressStepper_instances.add(this);
|
|
27
30
|
/** Whether to use the vertical layout */
|
|
28
31
|
this.vertical = false;
|
|
29
32
|
/** Whether to use the center alignment */
|
|
30
33
|
this.center = false;
|
|
31
34
|
/** Whether to use the compact layout */
|
|
32
35
|
this.compact = false;
|
|
33
|
-
|
|
36
|
+
this.#internals = new InternalsController(this, {
|
|
34
37
|
role: 'progressbar',
|
|
35
38
|
ariaValueNow: this.value.toString(),
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
});
|
|
40
|
+
this.#mo = new MutationObserver(() => this.#onMutation());
|
|
41
|
+
this.#mo.observe(this, { childList: true });
|
|
42
|
+
}
|
|
43
|
+
#onMutation() {
|
|
44
|
+
this.#internals.ariaValueNow = this.value.toString();
|
|
39
45
|
}
|
|
40
46
|
render() {
|
|
41
47
|
return html `
|
|
@@ -43,15 +49,6 @@ let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends Li
|
|
|
43
49
|
`;
|
|
44
50
|
}
|
|
45
51
|
};
|
|
46
|
-
_PfProgressStepper_internals = new WeakMap();
|
|
47
|
-
_PfProgressStepper_mo = new WeakMap();
|
|
48
|
-
_PfProgressStepper_instances = new WeakSet();
|
|
49
|
-
_PfProgressStepper_onMutation = function _PfProgressStepper_onMutation() {
|
|
50
|
-
__classPrivateFieldGet(this, _PfProgressStepper_internals, "f").ariaValueNow = this.value.toString();
|
|
51
|
-
};
|
|
52
|
-
PfProgressStepper.childTagName = 'pf-progress-step';
|
|
53
|
-
PfProgressStepper.styles = [style];
|
|
54
|
-
PfProgressStepper.formAssociated = true;
|
|
55
52
|
__decorate([
|
|
56
53
|
property({ type: Boolean, reflect: true })
|
|
57
54
|
], PfProgressStepper.prototype, "vertical", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-progress-stepper.js","sourceRoot":"","sources":["pf-progress-stepper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pf-progress-stepper.js","sourceRoot":"","sources":["pf-progress-stepper.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;;;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAE/F,OAAO,yCAAyC,CAAC;AAEjD;;GAEG;AAEH,IAAa,iBAAiB,yBAA9B,MAAa,iBAAkB,SAAQ,UAAU;aAC9B,iBAAY,GAAG,kBAAkB,AAArB,CAAsB;aAEnC,WAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;aAE1B,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAe7B,UAAU,CAGP;IAEH,GAAG,CAAkD;IAErD,IAAI,KAAK;QACP,MAAM,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,WAAwC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAiB,YAAY,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAyB,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAClC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QA7BV,yCAAyC;QACG,aAAQ,GAAG,KAAK,CAAC;QAE7D,0CAA0C;QACE,WAAM,GAAG,KAAK,CAAC;QAE3D,wCAAwC;QAKI,YAAO,GAAG,KAAK,CAAC;QAE5D,eAAU,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;SACpC,CAAC,CAAC;QAEH,QAAG,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAYnD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;;AAxC2C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAAkB;AAGjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAgB;AAOf;IAJ3C,QAAQ,CAAC;QACR,MAAM,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,WAAwC,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAiB,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IACD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAiB;AAlBjD,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAiD7B;SAjDY,iBAAiB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { observed } from '@patternfly/pfe-core/decorators/observed.js';\n\nimport style from './pf-progress-stepper.css';\n\nimport { PfProgressStep } from './pf-progress-step.js';\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\n/**\n * A **progress stepper** displays a timeline of tasks in a workflow and tracks the user's current progress through this workflow.\n */\n@customElement('pf-progress-stepper')\nexport class PfProgressStepper extends LitElement {\n protected static childTagName = 'pf-progress-step';\n\n static readonly styles = [style];\n\n static formAssociated = true;\n\n /** Whether to use the vertical layout */\n @property({ type: Boolean, reflect: true }) vertical = false;\n\n /** Whether to use the center alignment */\n @property({ type: Boolean, reflect: true }) center = false;\n\n /** Whether to use the compact layout */\n @observed(function(this: PfProgressStepper) {\n const { childTagName } = (this.constructor as typeof PfProgressStepper);\n this.querySelectorAll<PfProgressStep>(childTagName).forEach(step => step.requestUpdate());\n })\n @property({ type: Boolean, reflect: true }) compact = false;\n\n #internals = new InternalsController(this, {\n role: 'progressbar',\n ariaValueNow: this.value.toString(),\n });\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n get value() {\n const { childTagName } = (this.constructor as typeof PfProgressStepper);\n const steps = this.querySelectorAll<PfProgressStep>(childTagName);\n const current = this.querySelector(`${childTagName}[current]`);\n const n = Array.from(steps).indexOf(current as PfProgressStep) + 1;\n return (n / steps.length) * 100;\n }\n\n constructor() {\n super();\n this.#mo.observe(this, { childList: true });\n }\n\n #onMutation() {\n this.#internals.ariaValueNow = this.value.toString();\n }\n\n render() {\n return html`\n <slot role=\"listbox\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-progress-stepper': PfProgressStepper;\n }\n}\n"]}
|
|
@@ -27,6 +27,7 @@ class BaseSpinner extends LitElement {
|
|
|
27
27
|
/** Preset sizes for the spinner */
|
|
28
28
|
this.size = 'xl';
|
|
29
29
|
}
|
|
30
|
+
static { this.styles = [styles]; }
|
|
30
31
|
render() {
|
|
31
32
|
return html `
|
|
32
33
|
<svg role="progressbar" viewBox="0 0 100 100">
|
|
@@ -35,7 +36,6 @@ class BaseSpinner extends LitElement {
|
|
|
35
36
|
`;
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
|
-
BaseSpinner.styles = [styles];
|
|
39
39
|
__decorate([
|
|
40
40
|
property({ reflect: true })
|
|
41
41
|
], BaseSpinner.prototype, "size", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSpinner.js","sourceRoot":"","sources":["BaseSpinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAWtD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAsB,WAAY,SAAQ,UAAU;IAApD;;QAGE,mCAAmC;QACN,SAAI,GAAgB,IAAI,CAAC;IAYxD,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseSpinner.js","sourceRoot":"","sources":["BaseSpinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAWtD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAsB,WAAY,SAAQ,UAAU;IAApD;;QAGE,mCAAmC;QACN,SAAI,GAAgB,IAAI,CAAC;IAYxD,CAAC;aAfiB,WAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;IAQzB,MAAM;QACb,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAX4B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAA0B;AAGzB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkE;SAP1E,WAAW","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\n\nimport styles from './BaseSpinner.css';\n\nexport type SpinnerSize = (\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n);\n\n/**\n * Base spinner class\n *\n * @cssprop {<length>} --pf-c-spinner--diameter {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Width {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Height {@default `3.375rem`}\n * @cssprop {<color>} --pf-c-spinner--Color {@default `#06c`}\n * @cssprop {<length>} --pf-c-spinner--m-sm--diameter {@default `0.625rem`}\n * @cssprop {<length>} --pf-c-spinner--m-md--diameter {@default `1.125rem`}\n * @cssprop {<length>} --pf-c-spinner--m-lg--diameter {@default `1.5rem`}\n * @cssprop {<length>} --pf-c-spinner--m-xl--diameter {@default `3.375rem`}\n * @cssprop {<time>} --pf-c-spinner--AnimationDuration {@default `1.4s`}\n * @cssprop {<string>} --pf-c-spinner--AnimationTimingFunction {@default `linear`}\n * @cssprop {<number>} --pf-c-spinner--stroke-width {@default `10`}\n * @cssprop {<color>} --pf-c-spinner__path--Stroke {@default `#06c`}\n * @cssprop {<number>} --pf-c-spinner__path--StrokeWidth {@default `10`}\n * @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}\n */\n\nexport abstract class BaseSpinner extends LitElement {\n static readonly styles = [styles];\n\n /** Preset sizes for the spinner */\n @property({ reflect: true }) size: SpinnerSize = 'xl';\n\n /** Custom diameter of spinner set as CSS variable */\n @property({ reflect: true }) diameter?: `${string}${'px' | '%' | 'rem' | 'em' | 'fr' | 'pt'}`;\n\n override render() {\n return html`\n <svg role=\"progressbar\" viewBox=\"0 0 100 100\">\n <circle cx=\"50\" cy=\"50\" r=\"45\" fill=\"none\" />\n </svg>\n `;\n }\n}\n"]}
|
package/pf-spinner/pf-spinner.js
CHANGED
|
@@ -25,11 +25,11 @@ const styles = css `[hidden]{display:none!important}div{display:contents}svg{wid
|
|
|
25
25
|
* @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}
|
|
26
26
|
*/
|
|
27
27
|
let PfSpinner = class PfSpinner extends BaseSpinner {
|
|
28
|
+
static { this.styles = [...BaseSpinner.styles, styles]; }
|
|
28
29
|
render() {
|
|
29
30
|
return html `<div style=${styleMap({ '--pf-c-spinner--diameter': this.diameter })}>${super.render()}</div>`;
|
|
30
31
|
}
|
|
31
32
|
};
|
|
32
|
-
PfSpinner.styles = [...BaseSpinner.styles, styles];
|
|
33
33
|
PfSpinner = __decorate([
|
|
34
34
|
customElement('pf-spinner')
|
|
35
35
|
], PfSpinner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-spinner.js","sourceRoot":"","sources":["pf-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;;;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AAGH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"pf-spinner.js","sourceRoot":"","sources":["pf-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;;;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AAGH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;aACxB,WAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAAlC,CAAmC;IACzD,MAAM;QACJ,OAAO,IAAI,CAAA,cAAc,QAAQ,CAAC,EAAE,0BAA0B,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7G,CAAC;;AAJU,SAAS;IADrB,aAAa,CAAC,YAAY,CAAC;GACf,SAAS,CAKrB;SALY,SAAS","sourcesContent":["import { html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport { BaseSpinner } from './BaseSpinner.js';\nimport styles from './pf-spinner.css';\n\n/**\n * A **spinner** is used to indicate to users that an action is in progress. For actions\n * that may take a long time, use a progress bar instead.\n *\n * @cssprop {<length>} --pf-c-spinner--diameter {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Width {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Height {@default `3.375rem`}\n * @cssprop {<color>} --pf-c-spinner--Color {@default `#06c`}\n * @cssprop {<length>} --pf-c-spinner--m-sm--diameter {@default `0.625rem`}\n * @cssprop {<length>} --pf-c-spinner--m-md--diameter {@default `1.125rem`}\n * @cssprop {<length>} --pf-c-spinner--m-lg--diameter {@default `1.5rem`}\n * @cssprop {<length>} --pf-c-spinner--m-xl--diameter {@default `3.375rem`}\n * @cssprop {<time>} --pf-c-spinner--AnimationDuration {@default `1.4s`}\n * @cssprop {<string>} --pf-c-spinner--AnimationTimingFunction {@default `linear`}\n * @cssprop {<number>} --pf-c-spinner--stroke-width {@default `10`}\n * @cssprop {<color>} --pf-c-spinner__path--Stroke {@default `#06c`}\n * @cssprop {<number>} --pf-c-spinner__path--StrokeWidth {@default `10`}\n * @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}\n */\n\n@customElement('pf-spinner')\nexport class PfSpinner extends BaseSpinner {\n static readonly styles = [...BaseSpinner.styles, styles];\n render() {\n return html`<div style=${styleMap({ '--pf-c-spinner--diameter': this.diameter })}>${super.render()}</div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-spinner': PfSpinner;\n }\n}\n"]}
|
package/pf-switch/BaseSwitch.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
1
|
+
import { __decorate } from "tslib";
|
|
3
2
|
import { LitElement, html } from 'lit';
|
|
4
3
|
import { property } from 'lit/decorators/property.js';
|
|
5
4
|
import { css } from "lit";
|
|
@@ -10,22 +9,26 @@ const styles = css `:host{display:inline-block}svg{fill:currentcolor}[hidden]{di
|
|
|
10
9
|
class BaseSwitch extends LitElement {
|
|
11
10
|
constructor() {
|
|
12
11
|
super(...arguments);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
_BaseSwitch_initiallyDisabled.set(this, this.hasAttribute('disabled'));
|
|
12
|
+
this.#internals = this.attachInternals();
|
|
13
|
+
this.#initiallyDisabled = this.hasAttribute('disabled');
|
|
16
14
|
this.showCheckIcon = false;
|
|
17
15
|
this.checked = false;
|
|
18
|
-
this.disabled =
|
|
16
|
+
this.disabled = this.#initiallyDisabled;
|
|
19
17
|
}
|
|
18
|
+
static { this.styles = [styles]; }
|
|
19
|
+
static { this.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true, }; }
|
|
20
|
+
static { this.formAssociated = true; }
|
|
21
|
+
#internals;
|
|
22
|
+
#initiallyDisabled;
|
|
20
23
|
get labels() {
|
|
21
|
-
return
|
|
24
|
+
return this.#internals.labels;
|
|
22
25
|
}
|
|
23
26
|
connectedCallback() {
|
|
24
27
|
super.connectedCallback();
|
|
25
28
|
this.setAttribute('role', 'checkbox');
|
|
26
|
-
this.addEventListener('click',
|
|
27
|
-
this.addEventListener('keyup',
|
|
28
|
-
|
|
29
|
+
this.addEventListener('click', this.#onClick);
|
|
30
|
+
this.addEventListener('keyup', this.#onKeyup);
|
|
31
|
+
this.#updateLabels();
|
|
29
32
|
}
|
|
30
33
|
formDisabledCallback(disabled) {
|
|
31
34
|
this.disabled = disabled;
|
|
@@ -41,47 +44,47 @@ class BaseSwitch extends LitElement {
|
|
|
41
44
|
`;
|
|
42
45
|
}
|
|
43
46
|
updated() {
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
this.#internals.ariaChecked = String(this.checked);
|
|
48
|
+
this.#internals.ariaDisabled = String(this.disabled);
|
|
46
49
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
#onClick(event) {
|
|
51
|
+
// @ts-expect-error: firefox workarounds for double-firing in the case of switch nested in label
|
|
52
|
+
const { originalTarget, explicitOriginalTarget } = event;
|
|
53
|
+
if (explicitOriginalTarget) {
|
|
54
|
+
let labels;
|
|
55
|
+
if (originalTarget === event.target &&
|
|
56
|
+
!(labels = Array.from(this.labels)).includes(explicitOriginalTarget) &&
|
|
57
|
+
labels.includes(this.closest('label'))) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
57
60
|
}
|
|
61
|
+
this.#toggle();
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
#onKeyup(event) {
|
|
64
|
+
switch (event.key) {
|
|
65
|
+
case ' ':
|
|
66
|
+
case 'Enter':
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
this.#toggle();
|
|
69
|
+
}
|
|
66
70
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
#toggle() {
|
|
72
|
+
if (this.disabled) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.checked = !this.checked;
|
|
76
|
+
this.#updateLabels();
|
|
77
|
+
this.dispatchEvent(new Event('change', { bubbles: true }));
|
|
70
78
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for (const label of this.labels) {
|
|
78
|
-
label.hidden = label.dataset.state !== labelState;
|
|
79
|
+
#updateLabels() {
|
|
80
|
+
const labelState = this.checked ? 'on' : 'off';
|
|
81
|
+
if (this.labels.length > 1) {
|
|
82
|
+
for (const label of this.labels) {
|
|
83
|
+
label.hidden = label.dataset.state !== labelState;
|
|
84
|
+
}
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
|
-
}
|
|
82
|
-
BaseSwitch.styles = [styles];
|
|
83
|
-
BaseSwitch.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true, };
|
|
84
|
-
BaseSwitch.formAssociated = true;
|
|
87
|
+
}
|
|
85
88
|
__decorate([
|
|
86
89
|
property({ reflect: true })
|
|
87
90
|
], BaseSwitch.prototype, "label", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSwitch.js","sourceRoot":"","sources":["BaseSwitch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseSwitch.js","sourceRoot":"","sources":["BaseSwitch.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport styles from './BaseSwitch.css';\n\n/**\n * Switch\n */\nexport abstract class BaseSwitch extends LitElement {\n static readonly styles = [styles];\n\n static readonly shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true, };\n\n static readonly formAssociated = true;\n\n declare shadowRoot: ShadowRoot;\n\n #internals = this.attachInternals();\n\n #initiallyDisabled = this.hasAttribute('disabled');\n\n @property({ reflect: true }) label?: string;\n\n @property({ reflect: true, type: Boolean, attribute: 'show-check-icon' }) showCheckIcon = false;\n\n @property({ reflect: true, type: Boolean }) checked = false;\n\n disabled = this.#initiallyDisabled;\n\n get labels(): NodeListOf<HTMLLabelElement> {\n return this.#internals.labels as NodeListOf<HTMLLabelElement>;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'checkbox');\n this.addEventListener('click', this.#onClick);\n this.addEventListener('keyup', this.#onKeyup);\n this.#updateLabels();\n }\n\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n this.requestUpdate();\n }\n\n override render() {\n return html`\n <div id=\"container\" tabindex=\"0\">\n <svg id=\"toggle\" fill=\"currentColor\" height=\"1em\" width=\"1em\" viewBox=\"0 0 512 512\">\n <path ?hidden=${!this.showCheckIcon} d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\" />\n </svg>\n </div>\n `;\n }\n\n override updated() {\n this.#internals.ariaChecked = String(this.checked);\n this.#internals.ariaDisabled = String(this.disabled);\n }\n\n #onClick(event: Event) {\n // @ts-expect-error: firefox workarounds for double-firing in the case of switch nested in label\n const { originalTarget, explicitOriginalTarget } = event;\n if (explicitOriginalTarget) {\n let labels: HTMLLabelElement[];\n if (\n originalTarget === event.target &&\n !(labels = Array.from(this.labels)).includes(explicitOriginalTarget) &&\n labels.includes(this.closest('label') as HTMLLabelElement)\n ) {\n return;\n }\n }\n this.#toggle();\n }\n\n #onKeyup(event: KeyboardEvent) {\n switch (event.key) {\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.#toggle();\n }\n }\n\n #toggle() {\n if (this.disabled) {\n return;\n }\n\n this.checked = !this.checked;\n this.#updateLabels();\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #updateLabels() {\n const labelState = this.checked ? 'on' : 'off';\n if (this.labels.length > 1) {\n for (const label of this.labels) {\n label.hidden = label.dataset.state !== labelState;\n }\n }\n }\n}\n"]}
|
package/pf-switch/pf-switch.js
CHANGED
|
@@ -42,8 +42,8 @@ const styles = css `:host([checked]) #container{color:var(--pf-c-switch__input--
|
|
|
42
42
|
* @cssprop {<length>} --pf-c-switch__toggle--Width {@default `calc(calc(1rem * 1.5) + 0.125rem + calc(1rem - 0.125rem))`}
|
|
43
43
|
*/
|
|
44
44
|
let PfSwitch = class PfSwitch extends BaseSwitch {
|
|
45
|
+
static { this.styles = [...BaseSwitch.styles, styles]; }
|
|
45
46
|
};
|
|
46
|
-
PfSwitch.styles = [...BaseSwitch.styles, styles];
|
|
47
47
|
PfSwitch = __decorate([
|
|
48
48
|
customElement('pf-switch')
|
|
49
49
|
], PfSwitch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-switch.js","sourceRoot":"","sources":["pf-switch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;;;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU
|
|
1
|
+
{"version":3,"file":"pf-switch.js","sourceRoot":"","sources":["pf-switch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;;;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU;aACtB,WAAM,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,AAAjC,CAAkC;;AAD7C,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAEpB;SAFY,QAAQ","sourcesContent":["import { customElement } from 'lit/decorators/custom-element.js';\n\nimport { BaseSwitch } from './BaseSwitch.js';\nimport styles from './pf-switch.css';\n\n/**\n * A **switch** toggles the state of a setting (between on and off). Switches and\n * checkboxes can often be used interchangeably, but the switch provides a more\n * explicit, visible representation on a setting.\n *\n * @fires {Event} change - Fires when the switch selection changes.\n *\n * @cssprop --pf-c-switch--FontSize {@default `1rem`}\n * @cssprop {<length>} --pf-c-switch--ColumnGap {@default `1rem`}\n * @cssprop --pf-c-switch__toggle-icon--FontSize {@default `calc(1rem * .625)`}\n * @cssprop {<color>} --pf-c-switch__toggle-icon--Color {@default `#fff`}\n * @cssprop {<length>} --pf-c-switch__toggle-icon--Left {@default `1rem`}\n * @cssprop {<length>} --pf-c-switch__toggle-icon--Offset {@default `0.125rem`}\n * @cssprop {<number>} --pf-c-switch--LineHeight {@default `1.5`}\n * @cssprop {<length>} --pf-c-switch--Height {@default `auto`}\n * @cssprop {<color>} --pf-c-switch__input--checked__toggle--BackgroundColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-switch__input--checked__toggle--before--TranslateX {@default `calc(100% + 0.125rem)`}\n * @cssprop {<color>} --pf-c-switch__input--checked__label--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-switch__input--not-checked__label--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-switch__input--disabled__label--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-switch__input--disabled__toggle--BackgroundColor {@default `#d2d2d2`}\n * @cssprop {<color>} --pf-c-switch__input--disabled__toggle--before--BackgroundColor {@default `#f5f5f5`}\n * @cssprop {<length>} --pf-c-switch__input--focus__toggle--OutlineWidth {@default `2px`}\n * @cssprop {<length>} --pf-c-switch__input--focus__toggle--OutlineOffset {@default `0.5rem`}\n * @cssprop {<color>} --pf-c-switch__input--focus__toggle--OutlineColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-switch__toggle--Height {@default `calc(1rem * 1.5)`}\n * @cssprop {<color>} --pf-c-switch__toggle--BackgroundColor {@default `#8a8d90`}\n * @cssprop {<length>} --pf-c-switch__toggle--BorderRadius {@default `calc(1rem * 1.5)`}\n * @cssprop {<length>} --pf-c-switch__toggle--before--Width {@default `calc(1rem - 0.125rem)`}\n * @cssprop {<length>} --pf-c-switch__toggle--before--Height {@default `calc(1rem - 0.125rem)`}\n * @cssprop {<length>} --pf-c-switch__toggle--before--Top {@default calc((calc(1rem * 1.5) - calc(1rem - 0.125rem)) / 2)`}\n * @cssprop {<length>} --pf-c-switch__toggle--before--Left {@default `calc((calc(1rem * 1.5) - calc(1rem - 0.125rem)) / 2)`}\n * @cssprop {<color>} --pf-c-switch__toggle--before--BackgroundColor {@default `#fff`}\n * @cssprop {<length>} --pf-c-switch__toggle--before--BorderRadius {@default `30em`}\n * @cssprop --pf-c-switch__toggle--before--BoxShadow {@default `0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)`}\n * @cssprop --pf-c-switch__toggle--before--Transition {@default `transform .25s ease 0s`}\n * @cssprop {<length>} --pf-c-switch__toggle--Width {@default `calc(calc(1rem * 1.5) + 0.125rem + calc(1rem - 0.125rem))`}\n */\n\n@customElement('pf-switch')\nexport class PfSwitch extends BaseSwitch {\n static readonly styles = [...BaseSwitch.styles, styles];\n}\n\n declare global {\n interface HTMLElementTagNameMap {\n 'pf-switch': PfSwitch;\n }\n}\n"]}
|
package/pf-tabs/BaseTab.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
1
|
+
import { __decorate } from "tslib";
|
|
3
2
|
import { LitElement, html } from 'lit';
|
|
4
3
|
import { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';
|
|
5
4
|
import { query } from 'lit/decorators/query.js';
|
|
@@ -15,16 +14,14 @@ export class TabExpandEvent extends ComposedEvent {
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
class BaseTab extends LitElement {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_BaseTab_internals.set(this, this.attachInternals());
|
|
22
|
-
}
|
|
17
|
+
static { this.styles = [style]; }
|
|
18
|
+
static { this.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }; }
|
|
19
|
+
#internals = this.attachInternals();
|
|
23
20
|
connectedCallback() {
|
|
24
21
|
super.connectedCallback();
|
|
25
|
-
this.id
|
|
26
|
-
this.addEventListener('click',
|
|
27
|
-
|
|
22
|
+
this.id ||= getRandomId(this.localName);
|
|
23
|
+
this.addEventListener('click', this.#clickHandler);
|
|
24
|
+
this.#internals.role = 'tab';
|
|
28
25
|
}
|
|
29
26
|
render() {
|
|
30
27
|
return html `
|
|
@@ -38,36 +35,41 @@ class BaseTab extends LitElement {
|
|
|
38
35
|
`;
|
|
39
36
|
}
|
|
40
37
|
updated(changed) {
|
|
41
|
-
|
|
38
|
+
this.#internals.ariaSelected = String(this.ariaSelected);
|
|
42
39
|
if (changed.has('active')) {
|
|
43
|
-
|
|
40
|
+
this.#activeChanged();
|
|
44
41
|
}
|
|
45
42
|
if (changed.has('disabled')) {
|
|
46
|
-
|
|
43
|
+
this.#disabledChanged();
|
|
47
44
|
}
|
|
48
45
|
}
|
|
49
46
|
focus() {
|
|
50
47
|
this.button.focus();
|
|
51
48
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
#clickHandler() {
|
|
50
|
+
if (!this.disabled && this.#internals.ariaDisabled !== 'true' && this.ariaDisabled !== 'true') {
|
|
51
|
+
this.active = true;
|
|
52
|
+
this.focus(); // safari fix
|
|
53
|
+
}
|
|
57
54
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
#activeChanged() {
|
|
56
|
+
if (this.active && !this.disabled) {
|
|
57
|
+
this.#internals.ariaSelected = 'true';
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.#internals.ariaSelected = 'false';
|
|
61
|
+
}
|
|
62
|
+
this.dispatchEvent(new TabExpandEvent(this.active, this));
|
|
61
63
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
/**
|
|
65
|
+
* if a tab is disabled, then it is also aria-disabled
|
|
66
|
+
* if a tab is removed from disabled its not necessarily
|
|
67
|
+
* not still aria-disabled so we don't remove the aria-disabled
|
|
68
|
+
*/
|
|
69
|
+
#disabledChanged() {
|
|
70
|
+
this.#internals.ariaDisabled = String(!!this.disabled);
|
|
64
71
|
}
|
|
65
|
-
|
|
66
|
-
}, _BaseTab_disabledChanged = function _BaseTab_disabledChanged() {
|
|
67
|
-
__classPrivateFieldGet(this, _BaseTab_internals, "f").ariaDisabled = String(!!this.disabled);
|
|
68
|
-
};
|
|
69
|
-
BaseTab.styles = [style];
|
|
70
|
-
BaseTab.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };
|
|
72
|
+
}
|
|
71
73
|
__decorate([
|
|
72
74
|
queryAssignedElements({ slot: 'icon', flatten: true })
|
|
73
75
|
], BaseTab.prototype, "icons", void 0);
|
package/pf-tabs/BaseTab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["BaseTab.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["BaseTab.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;;;AAIrD,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YACS,MAAe,EACf,GAAY;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;QAHT,WAAM,GAAN,MAAM,CAAS;QACf,QAAG,GAAH,GAAG,CAAS;IAGrB,CAAC;CACF;AAED,MAAsB,OAAQ,SAAQ,UAAU;aAC9B,WAAM,GAAG,CAAC,KAAK,CAAC,CAAC;aAE1B,sBAAiB,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAarF,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAEpC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;yCAC0B,IAAI,CAAC,QAAQ;;;yBAG7B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;6BACd,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;KAGlD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;YAC7F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa;SAC5B;IACH,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;SACxC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;;AApEO;IADP,qBAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCACpB;AAEV;IAAxB,KAAK,CAAC,QAAQ,CAAC;uCAAoC;SARhC,OAAO","sourcesContent":["import type { PropertyValues } from 'lit';\n\nimport { LitElement, html } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { query } from 'lit/decorators/query.js';\n\nimport { getRandomId } from '@patternfly/pfe-core/functions/random.js';\nimport { ComposedEvent } from '@patternfly/pfe-core';\n\nimport style from './BaseTab.css';\n\nexport class TabExpandEvent extends ComposedEvent {\n constructor(\n public active: boolean,\n public tab: BaseTab,\n ) {\n super('expand');\n }\n}\n\nexport abstract class BaseTab extends LitElement {\n static readonly styles = [style];\n\n static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n @queryAssignedElements({ slot: 'icon', flatten: true })\n private icons!: Array<HTMLElement>;\n\n @query('button') private button!: HTMLButtonElement;\n\n /** `active` should be observed, and true when the tab is selected */\n abstract active: boolean;\n\n /** `active` should be observed, and true when the tab is disabled */\n abstract disabled: boolean;\n\n #internals = this.attachInternals();\n\n connectedCallback() {\n super.connectedCallback();\n this.id ||= getRandomId(this.localName);\n this.addEventListener('click', this.#clickHandler);\n this.#internals.role = 'tab';\n }\n\n render() {\n return html`\n <button part=\"button\" ?disabled=\"${this.disabled}\">\n <slot name=\"icon\"\n part=\"icon\"\n ?hidden=\"${!this.icons.length}\"\n @slotchange=\"${() => this.requestUpdate()}\"></slot>\n <slot part=\"text\"></slot>\n </button>\n `;\n }\n\n updated(changed: PropertyValues<this>) {\n this.#internals.ariaSelected = String(this.ariaSelected);\n if (changed.has('active')) {\n this.#activeChanged();\n }\n if (changed.has('disabled')) {\n this.#disabledChanged();\n }\n }\n\n focus() {\n this.button.focus();\n }\n\n #clickHandler() {\n if (!this.disabled && this.#internals.ariaDisabled !== 'true' && this.ariaDisabled !== 'true') {\n this.active = true;\n this.focus(); // safari fix\n }\n }\n\n #activeChanged() {\n if (this.active && !this.disabled) {\n this.#internals.ariaSelected = 'true';\n } else {\n this.#internals.ariaSelected = 'false';\n }\n this.dispatchEvent(new TabExpandEvent(this.active, this));\n }\n\n /**\n * if a tab is disabled, then it is also aria-disabled\n * if a tab is removed from disabled its not necessarily\n * not still aria-disabled so we don't remove the aria-disabled\n */\n #disabledChanged() {\n this.#internals.ariaDisabled = String(!!this.disabled);\n }\n}\n"]}
|
package/pf-tabs/BaseTabPanel.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
var _BaseTabPanel_internals;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
1
|
import { LitElement, html } from 'lit';
|
|
4
2
|
import { css } from "lit";
|
|
5
3
|
const style = css `:host{display:block}:host([hidden]){display:none}`;
|
|
6
4
|
import { getRandomId } from '@patternfly/pfe-core/functions/random.js';
|
|
7
5
|
class BaseTabPanel extends LitElement {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
_BaseTabPanel_internals.set(this, this.attachInternals());
|
|
11
|
-
}
|
|
6
|
+
static { this.styles = [style]; }
|
|
7
|
+
#internals = this.attachInternals();
|
|
12
8
|
render() {
|
|
13
9
|
return html `
|
|
14
10
|
<slot></slot>
|
|
@@ -16,9 +12,9 @@ class BaseTabPanel extends LitElement {
|
|
|
16
12
|
}
|
|
17
13
|
connectedCallback() {
|
|
18
14
|
super.connectedCallback();
|
|
19
|
-
this.id
|
|
20
|
-
this.hidden
|
|
21
|
-
|
|
15
|
+
this.id ||= getRandomId('pf-tab-panel');
|
|
16
|
+
this.hidden ??= true;
|
|
17
|
+
this.#internals.role = 'tabpanel';
|
|
22
18
|
/*
|
|
23
19
|
To make it easy for screen reader users to navigate from a tab
|
|
24
20
|
to the beginning of content in the active tabpanel, the tabpanel
|
|
@@ -31,7 +27,5 @@ class BaseTabPanel extends LitElement {
|
|
|
31
27
|
this.tabIndex = 0;
|
|
32
28
|
}
|
|
33
29
|
}
|
|
34
|
-
_BaseTabPanel_internals = new WeakMap();
|
|
35
|
-
BaseTabPanel.styles = [style];
|
|
36
30
|
export { BaseTabPanel };
|
|
37
31
|
//# sourceMappingURL=BaseTabPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTabPanel.js","sourceRoot":"","sources":["BaseTabPanel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseTabPanel.js","sourceRoot":"","sources":["BaseTabPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;;;AAIvC,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAEvE,MAAsB,YAAa,SAAQ,UAAU;aACnC,WAAM,GAAG,CAAC,KAAK,CAAC,CAAC;IAEjC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAEpC,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;QAElC;;;;;;;;UAQE;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;;SA3BmB,YAAY","sourcesContent":["import { LitElement, html } from 'lit';\n\nimport style from './BaseTabPanel.css';\n\nimport { getRandomId } from '@patternfly/pfe-core/functions/random.js';\n\nexport abstract class BaseTabPanel extends LitElement {\n static readonly styles = [style];\n\n #internals = this.attachInternals();\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.id ||= getRandomId('pf-tab-panel');\n this.hidden ??= true;\n this.#internals.role = 'tabpanel';\n\n /*\n To make it easy for screen reader users to navigate from a tab\n to the beginning of content in the active tabpanel, the tabpanel\n element has tabindex=\"0\" to include the panel in the page Tab sequence.\n It is recommended that all tabpanel elements in a tab set are focusable\n if there are any panels in the set that contain content where the first\n element in the panel is not focusable.\n https://www.w3.org/WAI/ARIA/apg/example-index/tabs/tabs-automatic\n */\n this.tabIndex = 0;\n }\n}\n"]}
|