@patternfly/elements 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/custom-elements.json +32 -65
  2. package/package.json +4 -3
  3. package/pf-accordion/BaseAccordion.d.ts +2 -1
  4. package/pf-accordion/BaseAccordion.js +239 -210
  5. package/pf-accordion/BaseAccordion.js.map +1 -1
  6. package/pf-accordion/BaseAccordionHeader.js +71 -69
  7. package/pf-accordion/BaseAccordionHeader.js.map +1 -1
  8. package/pf-accordion/BaseAccordionPanel.js +2 -2
  9. package/pf-accordion/BaseAccordionPanel.js.map +1 -1
  10. package/pf-accordion/pf-accordion-header.js +4 -9
  11. package/pf-accordion/pf-accordion-header.js.map +1 -1
  12. package/pf-accordion/pf-accordion-panel.js +1 -1
  13. package/pf-accordion/pf-accordion-panel.js.map +1 -1
  14. package/pf-accordion/pf-accordion.js +1 -1
  15. package/pf-accordion/pf-accordion.js.map +1 -1
  16. package/pf-avatar/BaseAvatar.js +1 -1
  17. package/pf-avatar/BaseAvatar.js.map +1 -1
  18. package/pf-avatar/pf-avatar.js +1 -1
  19. package/pf-avatar/pf-avatar.js.map +1 -1
  20. package/pf-badge/BaseBadge.js +1 -1
  21. package/pf-badge/BaseBadge.js.map +1 -1
  22. package/pf-badge/pf-badge.js +1 -1
  23. package/pf-badge/pf-badge.js.map +1 -1
  24. package/pf-button/BaseButton.js +16 -17
  25. package/pf-button/BaseButton.js.map +1 -1
  26. package/pf-button/pf-button.js +1 -1
  27. package/pf-button/pf-button.js.map +1 -1
  28. package/pf-card/BaseCard.js +1 -1
  29. package/pf-card/BaseCard.js.map +1 -1
  30. package/pf-card/pf-card.js +1 -1
  31. package/pf-card/pf-card.js.map +1 -1
  32. package/pf-clipboard-copy/BaseClipboardCopy.js +1 -1
  33. package/pf-clipboard-copy/BaseClipboardCopy.js.map +1 -1
  34. package/pf-clipboard-copy/pf-clipboard-copy.js +33 -36
  35. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  36. package/pf-code-block/BaseCodeBlock.js +1 -1
  37. package/pf-code-block/BaseCodeBlock.js.map +1 -1
  38. package/pf-code-block/pf-code-block.js +11 -14
  39. package/pf-code-block/pf-code-block.js.map +1 -1
  40. package/pf-icon/BaseIcon.js +41 -39
  41. package/pf-icon/BaseIcon.js.map +1 -1
  42. package/pf-icon/pf-icon.js +2 -2
  43. package/pf-icon/pf-icon.js.map +1 -1
  44. package/pf-jump-links/pf-jump-links-item.js +14 -17
  45. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  46. package/pf-jump-links/pf-jump-links-list.js +1 -1
  47. package/pf-jump-links/pf-jump-links-list.js.map +1 -1
  48. package/pf-jump-links/pf-jump-links.js +34 -37
  49. package/pf-jump-links/pf-jump-links.js.map +1 -1
  50. package/pf-label/BaseLabel.js +1 -1
  51. package/pf-label/BaseLabel.js.map +1 -1
  52. package/pf-label/pf-label.js +2 -2
  53. package/pf-label/pf-label.js.map +1 -1
  54. package/pf-modal/pf-modal.js +45 -46
  55. package/pf-modal/pf-modal.js.map +1 -1
  56. package/pf-panel/pf-panel.js +6 -7
  57. package/pf-panel/pf-panel.js.map +1 -1
  58. package/pf-popover/pf-popover.js +48 -51
  59. package/pf-popover/pf-popover.js.map +1 -1
  60. package/pf-progress-stepper/pf-progress-step.js +10 -11
  61. package/pf-progress-stepper/pf-progress-step.js.map +1 -1
  62. package/pf-progress-stepper/pf-progress-stepper.js +13 -16
  63. package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
  64. package/pf-spinner/BaseSpinner.js +1 -1
  65. package/pf-spinner/BaseSpinner.js.map +1 -1
  66. package/pf-spinner/pf-spinner.js +1 -1
  67. package/pf-spinner/pf-spinner.js.map +1 -1
  68. package/pf-switch/BaseSwitch.js +47 -44
  69. package/pf-switch/BaseSwitch.js.map +1 -1
  70. package/pf-switch/pf-switch.js +1 -1
  71. package/pf-switch/pf-switch.js.map +1 -1
  72. package/pf-tabs/BaseTab.js +31 -29
  73. package/pf-tabs/BaseTab.js.map +1 -1
  74. package/pf-tabs/BaseTabPanel.d.ts +0 -1
  75. package/pf-tabs/BaseTabPanel.js +5 -11
  76. package/pf-tabs/BaseTabPanel.js.map +1 -1
  77. package/pf-tabs/BaseTabs.js +135 -116
  78. package/pf-tabs/BaseTabs.js.map +1 -1
  79. package/pf-tabs/pf-tab-panel.js +1 -1
  80. package/pf-tabs/pf-tab-panel.js.map +1 -1
  81. package/pf-tabs/pf-tab.js +1 -1
  82. package/pf-tabs/pf-tab.js.map +1 -1
  83. package/pf-tabs/pf-tabs.js +2 -2
  84. package/pf-tabs/pf-tabs.js.map +1 -1
  85. package/pf-tile/pf-tile.js +1 -1
  86. package/pf-tile/pf-tile.js.map +1 -1
  87. package/pf-timestamp/pf-timestamp.d.ts +8 -5
  88. package/pf-timestamp/pf-timestamp.js +21 -66
  89. package/pf-timestamp/pf-timestamp.js.map +1 -1
  90. package/pf-tooltip/BaseTooltip.js +7 -13
  91. package/pf-tooltip/BaseTooltip.js.map +1 -1
  92. package/pf-tooltip/pf-tooltip.js +1 -1
  93. package/pf-tooltip/pf-tooltip.js.map +1 -1
  94. package/pfe.min.js +121 -121
  95. package/pfe.min.js.map +4 -4
  96. package/react/pf-accordion/pf-accordion-header.js +12 -0
  97. package/react/pf-accordion/pf-accordion-panel.js +10 -0
  98. package/react/pf-accordion/pf-accordion.js +13 -0
  99. package/react/pf-avatar/pf-avatar.js +10 -0
  100. package/react/pf-badge/pf-badge.js +10 -0
  101. package/react/pf-button/pf-button.js +10 -0
  102. package/react/pf-card/pf-card.js +10 -0
  103. package/react/pf-clipboard-copy/pf-clipboard-copy.js +10 -0
  104. package/react/pf-code-block/pf-code-block.js +10 -0
  105. package/react/pf-icon/pf-icon.js +13 -0
  106. package/react/pf-jump-links/pf-jump-links-item.js +13 -0
  107. package/react/pf-jump-links/pf-jump-links-list.js +10 -0
  108. package/react/pf-jump-links/pf-jump-links.js +12 -0
  109. package/react/pf-label/pf-label.js +12 -0
  110. package/react/pf-modal/pf-modal.js +13 -0
  111. package/react/pf-panel/pf-panel.js +10 -0
  112. package/react/pf-popover/pf-popover.js +10 -0
  113. package/react/pf-progress-stepper/pf-progress-step.js +10 -0
  114. package/react/pf-progress-stepper/pf-progress-stepper.js +10 -0
  115. package/react/pf-spinner/pf-spinner.js +10 -0
  116. package/react/pf-switch/pf-switch.js +12 -0
  117. package/react/pf-tabs/pf-tab-panel.js +10 -0
  118. package/react/pf-tabs/pf-tab.js +12 -0
  119. package/react/pf-tabs/pf-tabs.js +10 -0
  120. package/react/pf-tile/pf-tile.js +10 -0
  121. package/react/pf-timestamp/pf-timestamp.js +10 -0
  122. package/react/pf-tooltip/pf-tooltip.js +10 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BaseButton.js","sourceRoot":"","sources":["BaseButton.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAG/F;;;;;;;;GAQG;AACH,MAAsB,UAAW,SAAQ,UAAU;IAAnD;;;QAOE,0BAA0B;QACkB,aAAQ,GAAG,KAAK,CAAC;QAwB7D,gCAAa,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAC;IA6C7C,CAAC;IA3CC,IAAc,OAAO;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEQ,MAAM;QACb,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAA;4BACa,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;uBAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;;sBAEtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;uBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;wBACpB,uBAAA,IAAI,kDAAS;2BACV,IAAI,CAAC,QAAQ,IAAI,uBAAA,IAAI,6BAAW,CAAC,YAAY;qEACH,IAAI,CAAC,iBAAiB,EAAE;sCACvD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAqB;;KAEzE,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,oBAAoB;QAClC,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;;;IAGC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,uBAAA,IAAI,6BAAW,CAAC,KAAK,EAAE,CAAC;QACjC;YACE,OAAO,uBAAA,IAAI,6BAAW,CAAC,MAAM,EAAE,CAAC;KACnC;AACH,CAAC;AAjEe,iBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAElB,yBAAc,GAAG,IAAI,AAAP,CAAQ;AAEtB,4BAAiB,GAAmB,EAAE,GAAG,UAAU,CAAC,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,AAA5E,CAA6E;AAGlE;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAkB;AAEhC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAsC;AAGtD;IAAX,QAAQ,EAAE;yCAAgB;AAEf;IAAX,QAAQ,EAAE;yCAAgB;AAEf;IAAX,QAAQ,EAAE;wCAAe;AAGd;IAAX,QAAQ,EAAE;wCAAe;SApBN,UAAU","sourcesContent":["import type { TemplateResult } from 'lit';\nimport { LitElement, html } from 'lit';\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 { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\nimport styles from './BaseButton.css';\n\n/**\n * Base button class\n * @csspart button - Internal button element\n * @csspart icon - Container for the icon slot\n * @slot icon\n * Contains the button's icon or state indicator, e.g. a spinner.\n * @slot\n * Must contain exactly one `<button>` element as the only content not assigned to a named slot.\n */\nexport abstract class BaseButton extends LitElement {\n static readonly styles = [styles];\n\n static readonly formAssociated = true;\n\n static readonly shadowRootOptions: ShadowRootInit = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n /** Disables the button */\n @property({ reflect: true, type: Boolean }) disabled = false;\n\n @property({ reflect: true }) type?: 'button' | 'submit' | 'reset';\n\n /** Accessible name for the button, use when the button does not have slotted text */\n @property() label?: string;\n\n @property() value?: string;\n\n @property() name?: string;\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property() icon?: string;\n\n /** Changes the size of the button. */\n abstract size?: string;\n\n /**\n * Use danger buttons for actions a user can take that are potentially\n * destructive or difficult/impossible to undo, like deleting or removing\n * user data.\n */\n abstract danger: unknown;\n\n #internals = new InternalsController(this);\n\n protected get hasIcon() {\n return !!this.icon;\n }\n\n override render() {\n const { hasIcon } = this;\n return html`\n <button aria-label=\"${ifDefined(this.label)}\"\n class=\"${classMap({ hasIcon })}\"\n part=\"button\"\n type=\"${ifDefined(this.type)}\"\n value=\"${ifDefined(this.value)}\"\n @click=\"${this.#onClick}\"\n ?disabled=\"${this.disabled || this.#internals.formDisabled}\">\n <slot id=\"icon\" part=\"icon\" aria-hidden=\"true\" name=\"icon\">${this.renderDefaultIcon()}</slot>\n <slot id=\"text\" aria-hidden=${String(!!this.label) as 'true' | 'false'}></slot>\n </button>\n `;\n }\n\n protected async formDisabledCallback() {\n await this.updateComplete;\n this.requestUpdate();\n }\n\n #onClick() {\n switch (this.type) {\n case 'reset':\n return this.#internals.reset();\n default:\n return this.#internals.submit();\n }\n }\n\n /**\n * Fallback content for the icon slot. When the `icon` attribute is set, it\n * should render an icon corresponding to the value.\n *\n * @example ```html\n * <base-icon icon=${this.icon}></base-icon>\n * ```\n */\n protected abstract renderDefaultIcon(): TemplateResult;\n}\n"]}
1
+ {"version":3,"file":"BaseButton.js","sourceRoot":"","sources":["BaseButton.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAG/F;;;;;;;;GAQG;AACH,MAAsB,UAAW,SAAQ,UAAU;IAAnD;;QAOE,0BAA0B;QACkB,aAAQ,GAAG,KAAK,CAAC;QAwB7D,eAAU,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IA6C7C,CAAC;aA5EiB,WAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;aAElB,mBAAc,GAAG,IAAI,AAAP,CAAQ;aAEtB,sBAAiB,GAAmB,EAAE,GAAG,UAAU,CAAC,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,AAA5E,CAA6E;IA2B9G,UAAU,CAAiC;IAE3C,IAAc,OAAO;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEQ,MAAM;QACb,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAA;4BACa,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;uBAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;;sBAEtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;uBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;wBACpB,IAAI,CAAC,QAAQ;2BACV,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY;qEACH,IAAI,CAAC,iBAAiB,EAAE;sCACvD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAqB;;KAEzE,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,oBAAoB;QAClC,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACjC;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACnC;IACH,CAAC;;AA1D2C;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAkB;AAEhC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAsC;AAGtD;IAAX,QAAQ,EAAE;yCAAgB;AAEf;IAAX,QAAQ,EAAE;yCAAgB;AAEf;IAAX,QAAQ,EAAE;wCAAe;AAGd;IAAX,QAAQ,EAAE;wCAAe;SApBN,UAAU","sourcesContent":["import type { TemplateResult } from 'lit';\nimport { LitElement, html } from 'lit';\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 { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\nimport styles from './BaseButton.css';\n\n/**\n * Base button class\n * @csspart button - Internal button element\n * @csspart icon - Container for the icon slot\n * @slot icon\n * Contains the button's icon or state indicator, e.g. a spinner.\n * @slot\n * Must contain exactly one `<button>` element as the only content not assigned to a named slot.\n */\nexport abstract class BaseButton extends LitElement {\n static readonly styles = [styles];\n\n static readonly formAssociated = true;\n\n static readonly shadowRootOptions: ShadowRootInit = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n /** Disables the button */\n @property({ reflect: true, type: Boolean }) disabled = false;\n\n @property({ reflect: true }) type?: 'button' | 'submit' | 'reset';\n\n /** Accessible name for the button, use when the button does not have slotted text */\n @property() label?: string;\n\n @property() value?: string;\n\n @property() name?: string;\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property() icon?: string;\n\n /** Changes the size of the button. */\n abstract size?: string;\n\n /**\n * Use danger buttons for actions a user can take that are potentially\n * destructive or difficult/impossible to undo, like deleting or removing\n * user data.\n */\n abstract danger: unknown;\n\n #internals = new InternalsController(this);\n\n protected get hasIcon() {\n return !!this.icon;\n }\n\n override render() {\n const { hasIcon } = this;\n return html`\n <button aria-label=\"${ifDefined(this.label)}\"\n class=\"${classMap({ hasIcon })}\"\n part=\"button\"\n type=\"${ifDefined(this.type)}\"\n value=\"${ifDefined(this.value)}\"\n @click=\"${this.#onClick}\"\n ?disabled=\"${this.disabled || this.#internals.formDisabled}\">\n <slot id=\"icon\" part=\"icon\" aria-hidden=\"true\" name=\"icon\">${this.renderDefaultIcon()}</slot>\n <slot id=\"text\" aria-hidden=${String(!!this.label) as 'true' | 'false'}></slot>\n </button>\n `;\n }\n\n protected async formDisabledCallback() {\n await this.updateComplete;\n this.requestUpdate();\n }\n\n #onClick() {\n switch (this.type) {\n case 'reset':\n return this.#internals.reset();\n default:\n return this.#internals.submit();\n }\n }\n\n /**\n * Fallback content for the icon slot. When the `icon` attribute is set, it\n * should render an icon corresponding to the value.\n *\n * @example ```html\n * <base-icon icon=${this.icon}></base-icon>\n * ```\n */\n protected abstract renderDefaultIcon(): TemplateResult;\n}\n"]}
@@ -162,6 +162,7 @@ let PfButton = class PfButton extends BaseButton {
162
162
  */
163
163
  this.variant = 'primary';
164
164
  }
165
+ static { this.styles = [...BaseButton.styles, styles]; }
165
166
  get hasIcon() {
166
167
  return !!this.icon || !!this.loading;
167
168
  }
@@ -178,7 +179,6 @@ let PfButton = class PfButton extends BaseButton {
178
179
  `;
179
180
  }
180
181
  };
181
- PfButton.styles = [...BaseButton.styles, styles];
182
182
  __decorate([
183
183
  property({ type: Boolean, reflect: true })
184
184
  ], PfButton.prototype, "loading", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-button.js","sourceRoot":"","sources":["pf-button.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,4BAA4B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+CAA+C,CAAC;;;AAYvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIG;AAEH,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU;IAAxC;;QAGE,gDAAgD;QACJ,YAAO,GAAG,KAAK,CAAC;QAE5D,2BAA2B;QACiB,UAAK,GAAG,KAAK,CAAC;QAE1D,8BAA8B;QACc,YAAO,GAAG,KAAK,CAAC;QAOhB,WAAM,GAAG,KAAK,CAAC;QAE3D;;;;;;;;;WASG;QAC0B,YAAO,GAAkB,SAAS,CAAC;IAkBlE,CAAC;IAhBC,IAAuB,OAAO;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC,CAAC;IAEkB,iBAAiB;QAClC,OAAO,IAAI,CAAA;;kBAEG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBACrB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;qBACnB,CAAC,IAAI,CAAC,IAAI;;qBAEV,CAAC,IAAI,CAAC,OAAO;;wBAEV,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,SAAS;KAClE,CAAC;IACJ,CAAC;;AA7Ce,eAAM,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,AAAjC,CAAkC;AAGZ;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAiB;AAGhB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAe;AAGd;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAiB;AAE/B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAA0B;AAGjB;IAApC,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;yCAAkB;AAEV;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAgB;AAY9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAoC;AA7BrD,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA+CpB;SA/CY,QAAQ","sourcesContent":["import { 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';\n\nimport { BaseButton } from './BaseButton.js';\n\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-spinner/pf-spinner.js';\n\nimport styles from './pf-button.css';\n\nexport type ButtonVariant = (\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'control'\n | 'link'\n);\n\n/**\n * A **button** is a box area or text that communicates and triggers user actions when\n * clicked or selected. Buttons can be used to communicate and immediately trigger\n * actions a user can take in an application, like submitting a form, canceling a\n * process, or creating a new object. Buttons can also be used to take a user to a\n * new location, like another page inside of a web application, or an external site\n * such as help or documentation..\n *\n * @summary Allows users to perform an action when triggered\n *\n * @cssprop {<length>} --pf-c-button--FontSize {@default `1rem`}\n * @cssprop --pf-c-button--FontWeight {@default `400`}\n * @cssprop {<number>} --pf-c-button--LineHeight {@default `1.5`}\n *\n * @cssprop {<length>} --pf-c-button--PaddingTop {@default `0.375rem`}\n * @cssprop {<length>} --pf-c-button--PaddingLeft {@default `1rem`}\n * @cssprop {<length>} --pf-c-button--PaddingBottom {@default `0.375rem`}\n * @cssprop {<length>} --pf-c-button--PaddingRight {@default `1rem`}\n *\n * @cssprop {<length>|<percentage>} --pf-c-button--BorderRadius {@default `3px`}\n * @cssprop {<color>} --pf-c-button--after--BorderColor {@default `transparent`}\n * @cssprop {<length>} --pf-c-button--after--BorderRadius {@default `3px`}\n * @cssprop {<length>} --pf-c-button--after--BorderWidth {@default `1px`}\n * @cssprop {<length>} --pf-c-button--active--after--BorderWidth {@default `2px`}\n * @cssprop {<length>} --pf-c-button--hover--after--BorderWidth {@default `2px`}\n * @cssprop {<length>} --pf-c-button--focus--after--BorderWidth {@default `2px`}\n *\n * @cssprop {<color>} --pf-c-button--m-primary--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--BackgroundColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-primary--active--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--active--BackgroundColor {@default `#004080`}\n * @cssprop {<color>} --pf-c-button--m-primary--focus--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--focus--BackgroundColor {@default `#004080`}\n * @cssprop {<color>} --pf-c-button--m-primary--hover--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--hover--BackgroundColor {@default `#004080`}\n *\n * @cssprop {<color>} --pf-c-button--m-secondary--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--BorderColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--BorderColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--BorderColor {@default `#06c`}\n *\n * @cssprop {<color>} --pf-c-button--m-tertiary--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--BorderColor {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--BorderColor {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--BorderColor {@default `#151515`}\n *\n * @cssprop {<color>} --pf-c-button--m-danger--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--BackgroundColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-danger--active--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--active--BackgroundColor {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-danger--focus--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--focus--BackgroundColor {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-danger--hover--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--hover--BackgroundColor {@default `#a30000`}\n *\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--Color {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--BorderColor {@default `#c9190b`}\n *\n * @cssprop {<color>} --pf-c-button--m-control--disabled--BackgroundColor {@default `#f0f0f0`}\n * @cssprop {<length>} --pf-c-button--m-control--BorderRadius {@default `0`}\n * @cssprop {<length>} --pf-c-button--m-control--after--BorderWidth {@default `1px`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderTopColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderRightColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderBottomColor {@default `#8a8d90`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderLeftColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--active--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--active--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--active--after--BorderBottomWidth {@default `2px`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--focus--after--BorderBottomWidth {@default `2px`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--hover--after--BorderBottomWidth {@default `2px`}\n *\n * @cssprop {<color>} --pf-c-button--disabled--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-button--disabled--BackgroundColor {@default `#d2d2d2`}\n * @cssprop {<color>} --pf-c-button--disabled--after--BorderColor {@default `transparent`}\n *\n * @cssprop {<color>} --pf-c-button--m-warning--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--BackgroundColor {@default `#f0ab00`}\n * @cssprop {<color>} --pf-c-button--m-warning--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--active--BackgroundColor {@default `#c58c00`}\n * @cssprop {<color>} --pf-c-button--m-warning--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--focus--BackgroundColor {@default `#c58c00`}\n * @cssprop {<color>} --pf-c-button--m-warning--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--hover--BackgroundColor {@default `#c58c00`}\n *\n * @cssprop {<color>} --pf-c-button--m-plain--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-button--m-plain--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-plain--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-plain--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--active--Color {@default `#151515`}\n *\n * @cssprop {<color>} --pf-c-button--m-plain--disabled--Color {@default `#d2d2d2`}\n * @cssprop {<color>} --pf-c-button--m-plain--disabled--BackgroundColor {@default `transparent`}\n *\n * @attr {string} loading-label - ARIA label for the loading indicator {@default `'loading'`}\n *\n */\n@customElement('pf-button')\nexport class PfButton extends BaseButton {\n static readonly styles = [...BaseButton.styles, styles];\n\n /** Represents the state of a stateful button */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Applies plain styles */\n @property({ type: Boolean, reflect: true }) plain = false;\n\n /** Not as urgent as danger */\n @property({ type: Boolean, reflect: true }) warning = false;\n\n @property({ reflect: true }) size?: 'small' | 'large';\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n @property({ type: Boolean, reflect: true }) danger = false;\n\n /**\n * Changes the style of the button.\n * - Primary: Used for the most important call to action on a page. Try to\n * limit primary buttons to one per page.\n * - Secondary: Use secondary buttons for general actions on a page, that\n * don’t require as much emphasis as primary button actions. For example,\n * you can use secondary buttons where there are multiple actions, like in\n * toolbars or data lists.\n * - Tertiary: Tertiary buttons are flexible and can be used as needed.\n */\n @property({ reflect: true }) variant: ButtonVariant = 'primary';\n\n protected override get hasIcon() {\n return !!this.icon || !!this.loading;\n }\n\n protected override renderDefaultIcon() {\n return html`\n <pf-icon\n icon=\"${ifDefined(this.icon)}\"\n set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.icon}\"></pf-icon>\n <pf-spinner\n ?hidden=\"${!this.loading}\"\n size=\"md\"\n aria-label=\"${this.getAttribute('loading-label') ?? 'loading'}\"></pf-spinner>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-button': PfButton;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-button.js","sourceRoot":"","sources":["pf-button.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,4BAA4B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+CAA+C,CAAC;;;AAYvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIG;AAEH,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU;IAAxC;;QAGE,gDAAgD;QACJ,YAAO,GAAG,KAAK,CAAC;QAE5D,2BAA2B;QACiB,UAAK,GAAG,KAAK,CAAC;QAE1D,8BAA8B;QACc,YAAO,GAAG,KAAK,CAAC;QAOhB,WAAM,GAAG,KAAK,CAAC;QAE3D;;;;;;;;;WASG;QAC0B,YAAO,GAAkB,SAAS,CAAC;IAkBlE,CAAC;aA9CiB,WAAM,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,AAAjC,CAAkC;IA8BxD,IAAuB,OAAO;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC,CAAC;IAEkB,iBAAiB;QAClC,OAAO,IAAI,CAAA;;kBAEG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBACrB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;qBACnB,CAAC,IAAI,CAAC,IAAI;;qBAEV,CAAC,IAAI,CAAC,OAAO;;wBAEV,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,SAAS;KAClE,CAAC;IACJ,CAAC;;AA1C2C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAiB;AAGhB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAe;AAGd;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAiB;AAE/B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAA0B;AAGjB;IAApC,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;yCAAkB;AAEV;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAgB;AAY9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAoC;AA7BrD,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA+CpB;SA/CY,QAAQ","sourcesContent":["import { 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';\n\nimport { BaseButton } from './BaseButton.js';\n\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-spinner/pf-spinner.js';\n\nimport styles from './pf-button.css';\n\nexport type ButtonVariant = (\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'control'\n | 'link'\n);\n\n/**\n * A **button** is a box area or text that communicates and triggers user actions when\n * clicked or selected. Buttons can be used to communicate and immediately trigger\n * actions a user can take in an application, like submitting a form, canceling a\n * process, or creating a new object. Buttons can also be used to take a user to a\n * new location, like another page inside of a web application, or an external site\n * such as help or documentation..\n *\n * @summary Allows users to perform an action when triggered\n *\n * @cssprop {<length>} --pf-c-button--FontSize {@default `1rem`}\n * @cssprop --pf-c-button--FontWeight {@default `400`}\n * @cssprop {<number>} --pf-c-button--LineHeight {@default `1.5`}\n *\n * @cssprop {<length>} --pf-c-button--PaddingTop {@default `0.375rem`}\n * @cssprop {<length>} --pf-c-button--PaddingLeft {@default `1rem`}\n * @cssprop {<length>} --pf-c-button--PaddingBottom {@default `0.375rem`}\n * @cssprop {<length>} --pf-c-button--PaddingRight {@default `1rem`}\n *\n * @cssprop {<length>|<percentage>} --pf-c-button--BorderRadius {@default `3px`}\n * @cssprop {<color>} --pf-c-button--after--BorderColor {@default `transparent`}\n * @cssprop {<length>} --pf-c-button--after--BorderRadius {@default `3px`}\n * @cssprop {<length>} --pf-c-button--after--BorderWidth {@default `1px`}\n * @cssprop {<length>} --pf-c-button--active--after--BorderWidth {@default `2px`}\n * @cssprop {<length>} --pf-c-button--hover--after--BorderWidth {@default `2px`}\n * @cssprop {<length>} --pf-c-button--focus--after--BorderWidth {@default `2px`}\n *\n * @cssprop {<color>} --pf-c-button--m-primary--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--BackgroundColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-primary--active--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--active--BackgroundColor {@default `#004080`}\n * @cssprop {<color>} --pf-c-button--m-primary--focus--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--focus--BackgroundColor {@default `#004080`}\n * @cssprop {<color>} --pf-c-button--m-primary--hover--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--hover--BackgroundColor {@default `#004080`}\n *\n * @cssprop {<color>} --pf-c-button--m-secondary--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--active--BorderColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--focus--BorderColor {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--Color {@default `#06c`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--hover--BorderColor {@default `#06c`}\n *\n * @cssprop {<color>} --pf-c-button--m-tertiary--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--active--BorderColor {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--focus--BorderColor {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-tertiary--hover--BorderColor {@default `#151515`}\n *\n * @cssprop {<color>} --pf-c-button--m-danger--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--BackgroundColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-danger--active--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--active--BackgroundColor {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-danger--focus--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--focus--BackgroundColor {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-danger--hover--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-danger--hover--BackgroundColor {@default `#a30000`}\n *\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--Color {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--active--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--focus--BorderColor {@default `#c9190b`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--Color {@default `#a30000`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-secondary--m-danger--hover--BorderColor {@default `#c9190b`}\n *\n * @cssprop {<color>} --pf-c-button--m-control--disabled--BackgroundColor {@default `#f0f0f0`}\n * @cssprop {<length>} --pf-c-button--m-control--BorderRadius {@default `0`}\n * @cssprop {<length>} --pf-c-button--m-control--after--BorderWidth {@default `1px`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderTopColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderRightColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderBottomColor {@default `#8a8d90`}\n * @cssprop {<color>} --pf-c-button--m-control--after--BorderLeftColor {@default `#f0f0f0`}\n * @cssprop {<color>} --pf-c-button--m-control--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--active--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--active--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--active--after--BorderBottomWidth {@default `2px`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--focus--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--focus--after--BorderBottomWidth {@default `2px`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--BackgroundColor {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-control--hover--BorderBottomColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button--m-control--hover--after--BorderBottomWidth {@default `2px`}\n *\n * @cssprop {<color>} --pf-c-button--disabled--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-button--disabled--BackgroundColor {@default `#d2d2d2`}\n * @cssprop {<color>} --pf-c-button--disabled--after--BorderColor {@default `transparent`}\n *\n * @cssprop {<color>} --pf-c-button--m-warning--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--BackgroundColor {@default `#f0ab00`}\n * @cssprop {<color>} --pf-c-button--m-warning--active--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--active--BackgroundColor {@default `#c58c00`}\n * @cssprop {<color>} --pf-c-button--m-warning--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--focus--BackgroundColor {@default `#c58c00`}\n * @cssprop {<color>} --pf-c-button--m-warning--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-warning--hover--BackgroundColor {@default `#c58c00`}\n *\n * @cssprop {<color>} --pf-c-button--m-plain--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--Color {@default `#6a6e73`}\n * @cssprop {<color>} --pf-c-button--m-plain--hover--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--hover--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-plain--focus--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--focus--Color {@default `#151515`}\n * @cssprop {<color>} --pf-c-button--m-plain--active--BackgroundColor {@default `transparent`}\n * @cssprop {<color>} --pf-c-button--m-plain--active--Color {@default `#151515`}\n *\n * @cssprop {<color>} --pf-c-button--m-plain--disabled--Color {@default `#d2d2d2`}\n * @cssprop {<color>} --pf-c-button--m-plain--disabled--BackgroundColor {@default `transparent`}\n *\n * @attr {string} loading-label - ARIA label for the loading indicator {@default `'loading'`}\n *\n */\n@customElement('pf-button')\nexport class PfButton extends BaseButton {\n static readonly styles = [...BaseButton.styles, styles];\n\n /** Represents the state of a stateful button */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Applies plain styles */\n @property({ type: Boolean, reflect: true }) plain = false;\n\n /** Not as urgent as danger */\n @property({ type: Boolean, reflect: true }) warning = false;\n\n @property({ reflect: true }) size?: 'small' | 'large';\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n @property({ type: Boolean, reflect: true }) danger = false;\n\n /**\n * Changes the style of the button.\n * - Primary: Used for the most important call to action on a page. Try to\n * limit primary buttons to one per page.\n * - Secondary: Use secondary buttons for general actions on a page, that\n * don’t require as much emphasis as primary button actions. For example,\n * you can use secondary buttons where there are multiple actions, like in\n * toolbars or data lists.\n * - Tertiary: Tertiary buttons are flexible and can be used as needed.\n */\n @property({ reflect: true }) variant: ButtonVariant = 'primary';\n\n protected override get hasIcon() {\n return !!this.icon || !!this.loading;\n }\n\n protected override renderDefaultIcon() {\n return html`\n <pf-icon\n icon=\"${ifDefined(this.icon)}\"\n set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.icon}\"></pf-icon>\n <pf-spinner\n ?hidden=\"${!this.loading}\"\n size=\"md\"\n aria-label=\"${this.getAttribute('loading-label') ?? 'loading'}\"></pf-spinner>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-button': PfButton;\n }\n}\n"]}
@@ -25,6 +25,7 @@ class BaseCard extends LitElement {
25
25
  super(...arguments);
26
26
  this.slots = new SlotController(this, 'header', null, 'footer');
27
27
  }
28
+ static { this.styles = [style]; }
28
29
  render() {
29
30
  return html `
30
31
  <article>
@@ -47,6 +48,5 @@ class BaseCard extends LitElement {
47
48
  `;
48
49
  }
49
50
  }
50
- BaseCard.styles = [style];
51
51
  export { BaseCard };
52
52
  //# sourceMappingURL=BaseCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCard.js","sourceRoot":"","sources":["BaseCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;;AAIvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAsB,QAAS,SAAQ,UAAU;IAAjD;;QAGY,UAAK,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAuBvE,CAAC;IArBC,MAAM;QACJ,OAAO,IAAI,CAAA;;;;yBAIU,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;;sBAKxD,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;;;;;yBAKrD,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;KAIzE,CAAC;IACJ,CAAC;;AAxBe,eAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;SADb,QAAQ","sourcesContent":["import { LitElement, html } from 'lit';\nimport { SlotController } from '@patternfly/pfe-core/controllers/slot-controller.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport style from './BaseCard.css';\n\n/**\n * This element creates a header, body, and footer region in which to place\n * content or other components.\n *\n * @summary Gives a preview of information in a small layout\n *\n * @slot header\n * If this slot is used, we expect a heading level tag (h1, h2, h3, h4, h5, h6).\n * An icon, svg, or use of the icon component are also valid in this region.\n * @slot - Any content that is not designated for the header or footer slot, will go to this slot.\n * @slot footer\n * Use this slot for anything that you want to be stuck to the base of the card.\n *\n * @csspart header - The container for *header* content\n * @csspart body - The container for *body* content\n * @csspart footer - The container for *footer* content\n */\nexport abstract class BaseCard extends LitElement {\n static readonly styles = [style];\n\n protected slots = new SlotController(this, 'header', null, 'footer');\n\n render() {\n return html`\n <article>\n <header id=\"header\"\n part=\"header\"\n class=\"${classMap({ empty: !this.slots.hasSlotted('header') })}\">\n <slot name=\"header\"></slot>\n </header>\n <div id=\"body\"\n part=\"body\"\n class=\"${classMap({ empty: !this.querySelector(':not([slot])') })}\">\n <slot></slot>\n </div>\n <footer id=\"footer\"\n part=\"footer\"\n class=\"${classMap({ empty: !this.slots.hasSlotted('footer') })}\">\n <slot name=\"footer\"></slot>\n </footer>\n </article>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"BaseCard.js","sourceRoot":"","sources":["BaseCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;;AAIvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAsB,QAAS,SAAQ,UAAU;IAAjD;;QAGY,UAAK,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAuBvE,CAAC;aAzBiB,WAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;IAIjC,MAAM;QACJ,OAAO,IAAI,CAAA;;;;yBAIU,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;;sBAKxD,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;;;;;yBAKrD,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;KAIzE,CAAC;IACJ,CAAC;;SAzBmB,QAAQ","sourcesContent":["import { LitElement, html } from 'lit';\nimport { SlotController } from '@patternfly/pfe-core/controllers/slot-controller.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport style from './BaseCard.css';\n\n/**\n * This element creates a header, body, and footer region in which to place\n * content or other components.\n *\n * @summary Gives a preview of information in a small layout\n *\n * @slot header\n * If this slot is used, we expect a heading level tag (h1, h2, h3, h4, h5, h6).\n * An icon, svg, or use of the icon component are also valid in this region.\n * @slot - Any content that is not designated for the header or footer slot, will go to this slot.\n * @slot footer\n * Use this slot for anything that you want to be stuck to the base of the card.\n *\n * @csspart header - The container for *header* content\n * @csspart body - The container for *body* content\n * @csspart footer - The container for *footer* content\n */\nexport abstract class BaseCard extends LitElement {\n static readonly styles = [style];\n\n protected slots = new SlotController(this, 'header', null, 'footer');\n\n render() {\n return html`\n <article>\n <header id=\"header\"\n part=\"header\"\n class=\"${classMap({ empty: !this.slots.hasSlotted('header') })}\">\n <slot name=\"header\"></slot>\n </header>\n <div id=\"body\"\n part=\"body\"\n class=\"${classMap({ empty: !this.querySelector(':not([slot])') })}\">\n <slot></slot>\n </div>\n <footer id=\"footer\"\n part=\"footer\"\n class=\"${classMap({ empty: !this.slots.hasSlotted('footer') })}\">\n <slot name=\"footer\"></slot>\n </footer>\n </article>\n `;\n }\n}\n"]}
@@ -65,8 +65,8 @@ let PfCard = class PfCard extends BaseCard {
65
65
  */
66
66
  this.plain = false;
67
67
  }
68
+ static { this.styles = [...BaseCard.styles, style]; }
68
69
  };
69
- PfCard.styles = [...BaseCard.styles, style];
70
70
  __decorate([
71
71
  property({ reflect: true })
72
72
  ], PfCard.prototype, "size", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-card.js","sourceRoot":"","sources":["pf-card.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,IAAa,MAAM,GAAnB,MAAa,MAAO,SAAQ,QAAQ;IAApC;;QAWE;;UAEE;QAC0C,YAAO,GAAG,KAAK,CAAC;QAE5D;;SAEC;QACqE,eAAU,GAAG,KAAK,CAAC;QAEzF;;WAEG;QACyC,UAAK,GAAG,KAAK,CAAC;IAC5D,CAAC;;AAxBiB,aAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,AAA9B,CAA+B;AAQxB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oCAA4B;AAKZ;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAiB;AAKU;IAArE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;0CAAoB;AAK7C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAAe;AAxB/C,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAyBlB;SAzBY,MAAM","sourcesContent":["import { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport style from './pf-card.css';\nimport { BaseCard } from './BaseCard.js';\n\n/**\n * A **card** is a square or rectangular container that can contain any kind of content.\n * Cards symbolize units of information, and each one acts as an entry point for\n * users to access more details. For example, in dashboards and catalog views, cards\n * function as a preview of a detailed page. Cards may also be used in data displays\n * like card views, or for positioning content on a page.\n *\n * @summary Gives a preview of information in a small layout\n *\n * @slot header\n * If this slot is used, we expect a heading level tag (h1, h2, h3, h4, h5, h6).\n * An icon, svg, or use of the icon component are also valid in this region.\n * @slot - Any content that is not designated for the header or footer slot, will go to this slot.\n * @slot footer\n * Use this slot for anything that you want to be stuck to the base of the card.\n *\n * @csspart header - The container for *header* content\n * @csspart body - The container for *body* content\n * @csspart footer - The container for *footer* content\n *\n *\n * @cssproperty {<color>} --pf-c-card--BackgroundColor {@default `#ffffff`}\n * @cssproperty {<color>} --pf-c-card--BoxShadow {@default `0 0.0625rem 0.125rem 0 rgba(3, 3, 3, 0.12), 0 0 0.125rem 0 rgba(3, 3, 3, 0.06)`}\n * @cssproperty {<color>} --pf-c-card--size-compact__body--FontSize {@default `.875rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact__footer--FontSize {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--first-child--PaddingTop {@default `1.5rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingRight {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingBottom {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingLeft {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact__title--not--last-child--PaddingBottom {@default `.5rem`}\n * @cssproperty {<color>} --pf-c-card--size-large__title--FontSize {@default `1.25rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--first-child--PaddingTop {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingRight {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingBottom {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingLeft {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large__title--not--last-child--PaddingBottom {@default `1.5rem`}\n * @cssproperty {<color>} --pf-c-card--m-flat--BorderWidth {@default `1px solid #d2d2d2`}\n * @cssproperty {<color>} --pf-c-card--m-plain--BoxShadow {@default `none`}\n * @cssproperty {<color>} --pf-c-card--m-plain--BackgroundColor {@default `transparent`}\n * @cssproperty {<color>} --pf-c-card--m-rounded--BorderRadius {@default `3px`}\n * @cssproperty {<color>} --pf-c-card--m-full-height--Height {@default `100%`}\n * @cssproperty {<color>} --pf-c-card__title--FontFamily {@default `\"RedHatDisplayUpdated\", helvetica, arial, sans-serif`}\n * @cssproperty {<color>} --pf-c-card__title--FontSize {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card__title--FontWeight {@default `700`}\n */\n@customElement('pf-card')\nexport class PfCard extends BaseCard {\n static readonly styles = [...BaseCard.styles, style];\n\n /**\n * Optionally provide a size for the card and the card contents.\n * The default is set to `undefined` and provides default styles.\n * Compact provides styles which decreases the padding between the sections.\n * Large provides styles which increases the padding between the sections and the font size for the title, header, and footer.\n */\n @property({ reflect: true }) size?: 'compact' | 'large';\n\n /**\n * Optionally apply a border radius for the drop shadow and/or border.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n /**\n * Optionally allow the card to take up the full height of the parent element.\n */\n @property({ type: Boolean, reflect: true, attribute: 'full-height' }) fullHeight = false;\n\n /**\n * Optionally remove the border on the card container.\n */\n @property({ type: Boolean, reflect: true }) plain = false;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-card': PfCard;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-card.js","sourceRoot":"","sources":["pf-card.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,IAAa,MAAM,GAAnB,MAAa,MAAO,SAAQ,QAAQ;IAApC;;QAWE;;UAEE;QAC0C,YAAO,GAAG,KAAK,CAAC;QAE5D;;SAEC;QACqE,eAAU,GAAG,KAAK,CAAC;QAEzF;;WAEG;QACyC,UAAK,GAAG,KAAK,CAAC;IAC5D,CAAC;aAxBiB,WAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,AAA9B,CAA+B;;AAQxB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oCAA4B;AAKZ;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAiB;AAKU;IAArE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;0CAAoB;AAK7C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAAe;AAxB/C,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAyBlB;SAzBY,MAAM","sourcesContent":["import { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport style from './pf-card.css';\nimport { BaseCard } from './BaseCard.js';\n\n/**\n * A **card** is a square or rectangular container that can contain any kind of content.\n * Cards symbolize units of information, and each one acts as an entry point for\n * users to access more details. For example, in dashboards and catalog views, cards\n * function as a preview of a detailed page. Cards may also be used in data displays\n * like card views, or for positioning content on a page.\n *\n * @summary Gives a preview of information in a small layout\n *\n * @slot header\n * If this slot is used, we expect a heading level tag (h1, h2, h3, h4, h5, h6).\n * An icon, svg, or use of the icon component are also valid in this region.\n * @slot - Any content that is not designated for the header or footer slot, will go to this slot.\n * @slot footer\n * Use this slot for anything that you want to be stuck to the base of the card.\n *\n * @csspart header - The container for *header* content\n * @csspart body - The container for *body* content\n * @csspart footer - The container for *footer* content\n *\n *\n * @cssproperty {<color>} --pf-c-card--BackgroundColor {@default `#ffffff`}\n * @cssproperty {<color>} --pf-c-card--BoxShadow {@default `0 0.0625rem 0.125rem 0 rgba(3, 3, 3, 0.12), 0 0 0.125rem 0 rgba(3, 3, 3, 0.06)`}\n * @cssproperty {<color>} --pf-c-card--size-compact__body--FontSize {@default `.875rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact__footer--FontSize {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--first-child--PaddingTop {@default `1.5rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingRight {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingBottom {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact--child--PaddingLeft {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card--size-compact__title--not--last-child--PaddingBottom {@default `.5rem`}\n * @cssproperty {<color>} --pf-c-card--size-large__title--FontSize {@default `1.25rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--first-child--PaddingTop {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingRight {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingBottom {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large--child--PaddingLeft {@default `2rem`}\n * @cssproperty {<color>} --pf-c-card--size-large__title--not--last-child--PaddingBottom {@default `1.5rem`}\n * @cssproperty {<color>} --pf-c-card--m-flat--BorderWidth {@default `1px solid #d2d2d2`}\n * @cssproperty {<color>} --pf-c-card--m-plain--BoxShadow {@default `none`}\n * @cssproperty {<color>} --pf-c-card--m-plain--BackgroundColor {@default `transparent`}\n * @cssproperty {<color>} --pf-c-card--m-rounded--BorderRadius {@default `3px`}\n * @cssproperty {<color>} --pf-c-card--m-full-height--Height {@default `100%`}\n * @cssproperty {<color>} --pf-c-card__title--FontFamily {@default `\"RedHatDisplayUpdated\", helvetica, arial, sans-serif`}\n * @cssproperty {<color>} --pf-c-card__title--FontSize {@default `1rem`}\n * @cssproperty {<color>} --pf-c-card__title--FontWeight {@default `700`}\n */\n@customElement('pf-card')\nexport class PfCard extends BaseCard {\n static readonly styles = [...BaseCard.styles, style];\n\n /**\n * Optionally provide a size for the card and the card contents.\n * The default is set to `undefined` and provides default styles.\n * Compact provides styles which decreases the padding between the sections.\n * Large provides styles which increases the padding between the sections and the font size for the title, header, and footer.\n */\n @property({ reflect: true }) size?: 'compact' | 'large';\n\n /**\n * Optionally apply a border radius for the drop shadow and/or border.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n /**\n * Optionally allow the card to take up the full height of the parent element.\n */\n @property({ type: Boolean, reflect: true, attribute: 'full-height' }) fullHeight = false;\n\n /**\n * Optionally remove the border on the card container.\n */\n @property({ type: Boolean, reflect: true }) plain = false;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-card': PfCard;\n }\n}\n"]}
@@ -13,6 +13,7 @@ export class ClipboardCopyCopiedEvent extends ComposedEvent {
13
13
  * @slot - Place element content here
14
14
  */
15
15
  class BaseClipboardCopy extends LitElement {
16
+ static { this.styles = [styles]; }
16
17
  /**
17
18
  * Copy the current value to the clipboard.
18
19
  */
@@ -21,6 +22,5 @@ class BaseClipboardCopy extends LitElement {
21
22
  this.dispatchEvent(new ClipboardCopyCopiedEvent(this.value));
22
23
  }
23
24
  }
24
- BaseClipboardCopy.styles = [styles];
25
25
  export { BaseClipboardCopy };
26
26
  //# sourceMappingURL=BaseClipboardCopy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseClipboardCopy.js","sourceRoot":"","sources":["BaseClipboardCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;;;AAGrD,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD,YACS,IAAY;QAEnB,KAAK,CAAC,MAAM,CAAC,CAAC;QAFP,SAAI,GAAJ,IAAI,CAAQ;IAGrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAsB,iBAAkB,SAAQ,UAAU;IAKxD;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;;AAVe,wBAAM,GAAG,CAAC,MAAM,CAAC,CAAC;SADd,iBAAiB","sourcesContent":["import { LitElement } from 'lit';\nimport { ComposedEvent } from '@patternfly/pfe-core';\nimport styles from './BaseClipboardCopy.css';\n\nexport class ClipboardCopyCopiedEvent extends ComposedEvent {\n constructor(\n public text: string\n ) {\n super('copy');\n }\n}\n\n/**\n * Clipboard Copy\n * @slot - Place element content here\n */\nexport abstract class BaseClipboardCopy extends LitElement {\n static readonly styles = [styles];\n\n abstract value: string;\n\n /**\n * Copy the current value to the clipboard.\n */\n async copy() {\n await navigator.clipboard.writeText(this.value);\n this.dispatchEvent(new ClipboardCopyCopiedEvent(this.value));\n }\n}\n"]}
1
+ {"version":3,"file":"BaseClipboardCopy.js","sourceRoot":"","sources":["BaseClipboardCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;;;AAGrD,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD,YACS,IAAY;QAEnB,KAAK,CAAC,MAAM,CAAC,CAAC;QAFP,SAAI,GAAJ,IAAI,CAAQ;IAGrB,CAAC;CACF;AAED;;;GAGG;AACH,MAAsB,iBAAkB,SAAQ,UAAU;aACxC,WAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAIlC;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;;SAXmB,iBAAiB","sourcesContent":["import { LitElement } from 'lit';\nimport { ComposedEvent } from '@patternfly/pfe-core';\nimport styles from './BaseClipboardCopy.css';\n\nexport class ClipboardCopyCopiedEvent extends ComposedEvent {\n constructor(\n public text: string\n ) {\n super('copy');\n }\n}\n\n/**\n * Clipboard Copy\n * @slot - Place element content here\n */\nexport abstract class BaseClipboardCopy extends LitElement {\n static readonly styles = [styles];\n\n abstract value: string;\n\n /**\n * Copy the current value to the clipboard.\n */\n async copy() {\n await navigator.clipboard.writeText(this.value);\n this.dispatchEvent(new ClipboardCopyCopiedEvent(this.value));\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
- var _PfClipboardCopy_instances, _PfClipboardCopy_copied, _PfClipboardCopy_mo, _PfClipboardCopy_onClick, _PfClipboardCopy_onChange, _PfClipboardCopy_onMutation, _PfClipboardCopy_dedent;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
1
+ import { __decorate } from "tslib";
3
2
  import { html } from 'lit';
4
3
  import { customElement } from 'lit/decorators/custom-element.js';
5
4
  import { property } from 'lit/decorators/property.js';
@@ -21,7 +20,6 @@ const sleep = (ms) => new Promise(r => setTimeout(r, ms));
21
20
  let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
22
21
  constructor() {
23
22
  super(...arguments);
24
- _PfClipboardCopy_instances.add(this);
25
23
  this.clickTip = 'Copied';
26
24
  this.hoverTip = 'Copy';
27
25
  this.textAriaLabel = 'Copyable input';
@@ -42,13 +40,17 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
42
40
  this.inline = false;
43
41
  this.compact = false;
44
42
  this.value = '';
45
- _PfClipboardCopy_copied.set(this, false);
46
- _PfClipboardCopy_mo.set(this, new MutationObserver(() => __classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onMutation).call(this)));
43
+ this.#copied = false;
44
+ this.#mo = new MutationObserver(() => this.#onMutation());
47
45
  }
46
+ static { this.styles = [...BaseClipboardCopy.styles, styles]; }
47
+ static { this.shadowRootOptions = { ...BaseClipboardCopy.shadowRootOptions, delegatesFocus: true }; }
48
+ #copied;
49
+ #mo;
48
50
  connectedCallback() {
49
51
  super.connectedCallback();
50
- __classPrivateFieldGet(this, _PfClipboardCopy_mo, "f").observe(this, { characterData: true });
51
- __classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onMutation).call(this);
52
+ this.#mo.observe(this, { characterData: true });
53
+ this.#onMutation();
52
54
  }
53
55
  /**
54
56
  * @todo fix the collapsed whitespace between the end of the "inline-compact" variant and the text node.
@@ -66,7 +68,7 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
66
68
  variant="control"
67
69
  label="EXPAND"
68
70
  ?inert="${!expandable}"
69
- @click="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onClick)}">
71
+ @click="${this.#onClick}">
70
72
  <pf-icon icon="chevron-right"></pf-icon>
71
73
  </pf-button>
72
74
  </div>
@@ -75,7 +77,7 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
75
77
  ?hidden="${inline || compact}"
76
78
  ?disabled="${expanded || readonly}"
77
79
  .value="${this.value}"
78
- @input="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onChange)}"
80
+ @input="${this.#onChange}"
79
81
  aria-label="${this.textAriaLabel}">
80
82
  <pf-tooltip>
81
83
  <pf-button id="copy-button"
@@ -86,51 +88,46 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
86
88
  @click="${this.copy}">
87
89
  <pf-icon icon="copy"></pf-icon>
88
90
  </pf-button>
89
- <span slot="content">${__classPrivateFieldGet(this, _PfClipboardCopy_copied, "f") ? this.clickTip : this.hoverTip}</span>
91
+ <span slot="content">${this.#copied ? this.clickTip : this.hoverTip}</span>
90
92
  </pf-tooltip>
91
93
  <slot name="actions"></slot>
92
94
  </div>
93
95
  <textarea .value="${this.value}"
94
96
  .disabled="${this.readonly}"
95
97
  ?hidden="${!(expandable && expanded)}"
96
- @input="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onChange)}">
98
+ @input="${this.#onChange}">
97
99
  </textarea>
98
100
  </div>
99
101
  `;
100
102
  }
103
+ #onClick() {
104
+ this.expanded = !this.expanded;
105
+ }
106
+ #onChange(e) {
107
+ const { value } = e.target || HTMLTextAreaElement;
108
+ this.value = value;
109
+ }
110
+ #onMutation() {
111
+ if (this.childNodes.length > 0) {
112
+ this.value = this.getAttribute('value') ?? this.#dedent(Array.from(this.childNodes, child => (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')
113
+ .join(''));
114
+ }
115
+ }
116
+ #dedent(str) {
117
+ const stripped = str.replace(/^\n/, '');
118
+ const match = stripped.match(/^\s+/);
119
+ return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;
120
+ }
101
121
  async copy() {
102
122
  await super.copy();
103
123
  await sleep(this.entryDelay);
104
- __classPrivateFieldSet(this, _PfClipboardCopy_copied, true, "f");
124
+ this.#copied = true;
105
125
  this.requestUpdate();
106
126
  await sleep(this.exitDelay);
107
- __classPrivateFieldSet(this, _PfClipboardCopy_copied, false, "f");
127
+ this.#copied = false;
108
128
  this.requestUpdate();
109
129
  }
110
130
  };
111
- _PfClipboardCopy_copied = new WeakMap();
112
- _PfClipboardCopy_mo = new WeakMap();
113
- _PfClipboardCopy_instances = new WeakSet();
114
- _PfClipboardCopy_onClick = function _PfClipboardCopy_onClick() {
115
- this.expanded = !this.expanded;
116
- };
117
- _PfClipboardCopy_onChange = function _PfClipboardCopy_onChange(e) {
118
- const { value } = e.target || HTMLTextAreaElement;
119
- this.value = value;
120
- };
121
- _PfClipboardCopy_onMutation = function _PfClipboardCopy_onMutation() {
122
- if (this.childNodes.length > 0) {
123
- 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 ?? '') : '')
124
- .join(''));
125
- }
126
- };
127
- _PfClipboardCopy_dedent = function _PfClipboardCopy_dedent(str) {
128
- const stripped = str.replace(/^\n/, '');
129
- const match = stripped.match(/^\s+/);
130
- return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;
131
- };
132
- PfClipboardCopy.styles = [...BaseClipboardCopy.styles, styles];
133
- PfClipboardCopy.shadowRootOptions = { ...BaseClipboardCopy.shadowRootOptions, delegatesFocus: true };
134
131
  __decorate([
135
132
  property({ attribute: 'click-tip' })
136
133
  ], 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 { html } 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 { BaseClipboardCopy } from './BaseClipboardCopy.js';\n\nimport styles from './pf-clipboard-copy.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\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n *\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends BaseClipboardCopy {\n static readonly styles = [...BaseClipboardCopy.styles, styles];\n\n static shadowRootOptions: ShadowRootInit = { ...BaseClipboardCopy.shadowRootOptions, delegatesFocus: true };\n\n @property({ attribute: 'click-tip' }) clickTip = 'Copied';\n\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy';\n\n @property({ attribute: 'text-label' }) textAriaLabel = 'Copyable input';\n\n @property({ attribute: 'toggle-label' }) toggleAriaLabel = 'Show content';\n\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n @property({ type: Boolean, reflect: true }) block = false;\n\n @property({ type: Boolean, reflect: true }) code = false;\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /**\n * Implies not `inline`.\n */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * Implies not expandable. Overrules `expandable`.\n */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n @property({ type: Boolean, reflect: true }) compact = false;\n\n @property() override value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback() {\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() {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div class=\"container ${classMap({ code, expanded, inline, compact, block, })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n plain\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\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\"\n aria-label=\"${this.textAriaLabel}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n plain\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n size=\"lg\"\n @click=\"${this.copy}\">\n <pf-icon icon=\"copy\"></pf-icon>\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 override async copy() {\n await super.copy();\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 { html } 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 { BaseClipboardCopy } from './BaseClipboardCopy.js';\n\nimport styles from './pf-clipboard-copy.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\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n *\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends BaseClipboardCopy {\n static readonly styles = [...BaseClipboardCopy.styles, styles];\n\n static shadowRootOptions: ShadowRootInit = { ...BaseClipboardCopy.shadowRootOptions, delegatesFocus: true };\n\n @property({ attribute: 'click-tip' }) clickTip = 'Copied';\n\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy';\n\n @property({ attribute: 'text-label' }) textAriaLabel = 'Copyable input';\n\n @property({ attribute: 'toggle-label' }) toggleAriaLabel = 'Show content';\n\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n @property({ type: Boolean, reflect: true }) block = false;\n\n @property({ type: Boolean, reflect: true }) code = false;\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /**\n * Implies not `inline`.\n */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * Implies not expandable. Overrules `expandable`.\n */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n @property({ type: Boolean, reflect: true }) compact = false;\n\n @property() override value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback() {\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() {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div class=\"container ${classMap({ code, expanded, inline, compact, block, })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n plain\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\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\"\n aria-label=\"${this.textAriaLabel}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n plain\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n size=\"lg\"\n @click=\"${this.copy}\">\n <pf-icon icon=\"copy\"></pf-icon>\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 override async copy() {\n await super.copy();\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"]}
@@ -2,6 +2,7 @@ import { LitElement } from 'lit';
2
2
  import { css } from "lit";
3
3
  const styles = css `:host{display:block}[hidden]{display:none!important}`;
4
4
  class BaseCodeBlock extends LitElement {
5
+ static { this.styles = [styles]; }
5
6
  get content() {
6
7
  const script = this.querySelector('script[type]');
7
8
  if (script?.type !== 'text/javascript-sample' &&
@@ -18,6 +19,5 @@ class BaseCodeBlock extends LitElement {
18
19
  return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;
19
20
  }
20
21
  }
21
- BaseCodeBlock.styles = [styles];
22
22
  export { BaseCodeBlock };
23
23
  //# sourceMappingURL=BaseCodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCodeBlock.js","sourceRoot":"","sources":["BaseCodeBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;;;AAIjC,MAAsB,aAAc,SAAQ,UAAU;IAKpD,IAAc,OAAO;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAoB,cAAc,CAAC,CAAC;QACrE,IACE,MAAM,EAAE,IAAI,KAAK,wBAAwB;YACzC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE;YACnD,OAAO,EAAE,CAAC;SACX;aAAM;YACL,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;SAClC;IACH,CAAC;IAES,MAAM,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,CAAC;;AAnBe,oBAAM,GAAG,CAAC,MAAM,CAAC,CAAC;SADd,aAAa","sourcesContent":["import type { TemplateResult } from 'lit';\n\nimport { LitElement } from 'lit';\n\nimport styles from './BaseCodeBlock.css';\n\nexport abstract class BaseCodeBlock extends LitElement {\n static readonly styles = [styles];\n\n abstract render(): TemplateResult;\n\n protected get content() {\n const script = this.querySelector<HTMLScriptElement>('script[type]');\n if (\n script?.type !== 'text/javascript-sample' &&\n !!script?.type.match(/(j(ava)?|ecma|live)script/)) {\n return '';\n } else {\n return script?.textContent ?? '';\n }\n }\n\n protected 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"]}
1
+ {"version":3,"file":"BaseCodeBlock.js","sourceRoot":"","sources":["BaseCodeBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;;;AAIjC,MAAsB,aAAc,SAAQ,UAAU;aACpC,WAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAIlC,IAAc,OAAO;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAoB,cAAc,CAAC,CAAC;QACrE,IACE,MAAM,EAAE,IAAI,KAAK,wBAAwB;YACzC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE;YACnD,OAAO,EAAE,CAAC;SACX;aAAM;YACL,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;SAClC;IACH,CAAC;IAES,MAAM,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,CAAC;;SApBmB,aAAa","sourcesContent":["import type { TemplateResult } from 'lit';\n\nimport { LitElement } from 'lit';\n\nimport styles from './BaseCodeBlock.css';\n\nexport abstract class BaseCodeBlock extends LitElement {\n static readonly styles = [styles];\n\n abstract render(): TemplateResult;\n\n protected get content() {\n const script = this.querySelector<HTMLScriptElement>('script[type]');\n if (\n script?.type !== 'text/javascript-sample' &&\n !!script?.type.match(/(j(ava)?|ecma|live)script/)) {\n return '';\n } else {\n return script?.textContent ?? '';\n }\n }\n\n protected 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"]}
@@ -1,5 +1,4 @@
1
- var _PfCodeBlock_instances, _PfCodeBlock_toggle, _PfCodeBlock_expandedContent_get;
2
- import { __classPrivateFieldGet, __decorate } from "tslib";
1
+ import { __decorate } from "tslib";
3
2
  import { html } from 'lit';
4
3
  import { customElement } from 'lit/decorators/custom-element.js';
5
4
  import { property } from 'lit/decorators/property.js';
@@ -32,9 +31,15 @@ const styles = css `:host{background-color:var(--pf-c-code-block--BackgroundColo
32
31
  let PfCodeBlock = class PfCodeBlock extends BaseCodeBlock {
33
32
  constructor() {
34
33
  super(...arguments);
35
- _PfCodeBlock_instances.add(this);
36
34
  this.expanded = false;
37
35
  }
36
+ static { this.styles = [...BaseCodeBlock.styles, styles]; }
37
+ #toggle() {
38
+ this.expanded = !this.expanded;
39
+ }
40
+ get #expandedContent() {
41
+ return this.querySelector('script[data-expand]')?.textContent ?? '';
42
+ }
38
43
  render() {
39
44
  const { expanded } = this;
40
45
  return html `
@@ -45,9 +50,9 @@ let PfCodeBlock = class PfCodeBlock extends BaseCodeBlock {
45
50
  </div>
46
51
  <div id="container" class="${classMap({ expanded })}">
47
52
  <pre><code id="content">${this.content}</code><code id="code-block-expand"
48
- ?hidden="${!expanded}">${__classPrivateFieldGet(this, _PfCodeBlock_instances, "a", _PfCodeBlock_expandedContent_get)}</code></pre>
49
- <button ?hidden="${!__classPrivateFieldGet(this, _PfCodeBlock_instances, "a", _PfCodeBlock_expandedContent_get)}"
50
- @click=${__classPrivateFieldGet(this, _PfCodeBlock_instances, "m", _PfCodeBlock_toggle)}
53
+ ?hidden="${!expanded}">${this.#expandedContent}</code></pre>
54
+ <button ?hidden="${!this.#expandedContent}"
55
+ @click=${this.#toggle}
51
56
  aria-expanded=${this.expanded}
52
57
  aria-controls="code-block-expand">
53
58
  <svg fill="currentColor" height="1em" width="1em" viewBox="0 0 256 512" aria-hidden="true" role="img" style="vertical-align: -0.125em;"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg>
@@ -57,14 +62,6 @@ let PfCodeBlock = class PfCodeBlock extends BaseCodeBlock {
57
62
  `;
58
63
  }
59
64
  };
60
- _PfCodeBlock_instances = new WeakSet();
61
- _PfCodeBlock_toggle = function _PfCodeBlock_toggle() {
62
- this.expanded = !this.expanded;
63
- };
64
- _PfCodeBlock_expandedContent_get = function _PfCodeBlock_expandedContent_get() {
65
- return this.querySelector('script[data-expand]')?.textContent ?? '';
66
- };
67
- PfCodeBlock.styles = [...BaseCodeBlock.styles, styles];
68
65
  __decorate([
69
66
  property({ type: Boolean, reflect: true })
70
67
  ], PfCodeBlock.prototype, "expanded", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;;AAGnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,aAAa;IAA9C;;;QAG8C,aAAQ,GAAG,KAAK,CAAC;IA+B/D,CAAC;IArBU,MAAM;QACb,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;;;;mCAMoB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;kCACvB,IAAI,CAAC,OAAO;qBACzB,CAAC,QAAQ,KAAK,uBAAA,IAAI,gEAAiB;2BAC7B,CAAC,uBAAA,IAAI,gEAAiB;yBACxB,uBAAA,IAAI,mDAAQ;gCACL,IAAI,CAAC,QAAQ;;;YAGjC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;;;KAGjD,CAAC;IACJ,CAAC;;;;IA3BC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,CAAC;;IAGC,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;AACtE,CAAC;AAVe,kBAAM,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,AAApC,CAAqC;AAEf;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAHlD,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW,CAkCvB;SAlCY,WAAW","sourcesContent":["import { html } 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 { BaseCodeBlock } from './BaseCodeBlock.js';\nimport styles from './pf-code-block.css';\n\n/**\n * A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.\n *\n * @slot code\n * The slot to put the code in\n * @slot expandable-code\n * The slot to put the code in that should be revealed when the \"Show more\" button is\n * clicked to expand the code-block\n * @slot actions\n * Contains the actions for the code-block. For example, copy to clipboard.\n * @attr {boolean} expanded {@default `false`}\n * Indicates if the code-block has been expanded\n * @cssprop {<color>} --pf-c-code-block--BackgroundColor {@default `#f0f0f0`}\n * @cssprop {<length>} --pf-c-code-block__header--BorderBottomWidth {@default `1px`}\n * @cssprop {<color>} --pf-c-code-block__header--BorderBottomColor {@default `#d2d2d2`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingTop {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingRight {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingBottom {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingLeft {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__pre--FontSize {@default `0.875rem`}\n * @cssprop {<string>} --pf-c-code-block__pre--FontFamily {@default `\"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace`}\n */\n\n@customElement('pf-code-block')\nexport class PfCodeBlock extends BaseCodeBlock {\n static readonly styles = [...BaseCodeBlock.styles, styles];\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n #toggle() {\n this.expanded = !this.expanded;\n }\n\n get #expandedContent(): string {\n return this.querySelector('script[data-expand]')?.textContent ?? '';\n }\n\n override render() {\n const { expanded } = this;\n return html`\n <div id=\"header\">\n <div id=\"actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div id=\"container\" class=\"${classMap({ expanded })}\">\n <pre><code id=\"content\">${this.content}</code><code id=\"code-block-expand\"\n ?hidden=\"${!expanded}\">${this.#expandedContent}</code></pre>\n <button ?hidden=\"${!this.#expandedContent}\"\n @click=${this.#toggle}\n aria-expanded=${this.expanded}\n aria-controls=\"code-block-expand\">\n <svg fill=\"currentColor\" height=\"1em\" width=\"1em\" viewBox=\"0 0 256 512\" aria-hidden=\"true\" role=\"img\" style=\"vertical-align: -0.125em;\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path></svg>\n ${!this.expanded ? 'Show more' : 'Show less'}\n </button>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-code-block': PfCodeBlock;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.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,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;;AAGnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,aAAa;IAA9C;;QAG8C,aAAQ,GAAG,KAAK,CAAC;IA+B/D,CAAC;aAjCiB,WAAM,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,AAApC,CAAqC;IAI3D,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;IACtE,CAAC;IAEQ,MAAM;QACb,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;;;;mCAMoB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;kCACvB,IAAI,CAAC,OAAO;qBACzB,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB;2BAC7B,CAAC,IAAI,CAAC,gBAAgB;yBACxB,IAAI,CAAC,OAAO;gCACL,IAAI,CAAC,QAAQ;;;YAGjC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;;;KAGjD,CAAC;IACJ,CAAC;;AA9B2C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAHlD,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW,CAkCvB;SAlCY,WAAW","sourcesContent":["import { html } 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 { BaseCodeBlock } from './BaseCodeBlock.js';\nimport styles from './pf-code-block.css';\n\n/**\n * A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.\n *\n * @slot code\n * The slot to put the code in\n * @slot expandable-code\n * The slot to put the code in that should be revealed when the \"Show more\" button is\n * clicked to expand the code-block\n * @slot actions\n * Contains the actions for the code-block. For example, copy to clipboard.\n * @attr {boolean} expanded {@default `false`}\n * Indicates if the code-block has been expanded\n * @cssprop {<color>} --pf-c-code-block--BackgroundColor {@default `#f0f0f0`}\n * @cssprop {<length>} --pf-c-code-block__header--BorderBottomWidth {@default `1px`}\n * @cssprop {<color>} --pf-c-code-block__header--BorderBottomColor {@default `#d2d2d2`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingTop {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingRight {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingBottom {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__content--PaddingLeft {@default `1rem`}\n * @cssprop {<length>} --pf-c-code-block__pre--FontSize {@default `0.875rem`}\n * @cssprop {<string>} --pf-c-code-block__pre--FontFamily {@default `\"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace`}\n */\n\n@customElement('pf-code-block')\nexport class PfCodeBlock extends BaseCodeBlock {\n static readonly styles = [...BaseCodeBlock.styles, styles];\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n #toggle() {\n this.expanded = !this.expanded;\n }\n\n get #expandedContent(): string {\n return this.querySelector('script[data-expand]')?.textContent ?? '';\n }\n\n override render() {\n const { expanded } = this;\n return html`\n <div id=\"header\">\n <div id=\"actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div id=\"container\" class=\"${classMap({ expanded })}\">\n <pre><code id=\"content\">${this.content}</code><code id=\"code-block-expand\"\n ?hidden=\"${!expanded}\">${this.#expandedContent}</code></pre>\n <button ?hidden=\"${!this.#expandedContent}\"\n @click=${this.#toggle}\n aria-expanded=${this.expanded}\n aria-controls=\"code-block-expand\">\n <svg fill=\"currentColor\" height=\"1em\" width=\"1em\" viewBox=\"0 0 256 512\" aria-hidden=\"true\" role=\"img\" style=\"vertical-align: -0.125em;\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path></svg>\n ${!this.expanded ? 'Show more' : 'Show less'}\n </button>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-code-block': PfCodeBlock;\n }\n}\n"]}