@redvars/peacock 3.8.2 → 3.8.3

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 (94) hide show
  1. package/dist/assets/components.css.map +1 -1
  2. package/dist/assets/styles.css.map +1 -1
  3. package/dist/babel-DBsfpl3B.js +18 -0
  4. package/dist/babel-DBsfpl3B.js.map +1 -0
  5. package/dist/button-group.js +4 -4
  6. package/dist/button-group.js.map +1 -1
  7. package/dist/button.js +5 -5
  8. package/dist/card.js +22 -7
  9. package/dist/card.js.map +1 -1
  10. package/dist/code-highlighter.js +74 -11212
  11. package/dist/code-highlighter.js.map +1 -1
  12. package/dist/color-picker.js +701 -0
  13. package/dist/color-picker.js.map +1 -0
  14. package/dist/custom-elements-jsdocs.json +96 -3
  15. package/dist/custom-elements.json +1202 -576
  16. package/dist/estree-C2LDzX4U.js +47 -0
  17. package/dist/estree-C2LDzX4U.js.map +1 -0
  18. package/dist/fab.js +1 -3
  19. package/dist/fab.js.map +1 -1
  20. package/dist/html-D22sQuVy.js +27 -0
  21. package/dist/html-D22sQuVy.js.map +1 -0
  22. package/dist/icon-button.js +5 -5
  23. package/dist/index-_g_oLekF.js +14095 -0
  24. package/dist/index-_g_oLekF.js.map +1 -0
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/item.js +3 -2
  28. package/dist/item.js.map +1 -1
  29. package/dist/{list-D6JLh1uh.js → list-H0itjRte.js} +194 -20
  30. package/dist/list-H0itjRte.js.map +1 -0
  31. package/dist/list.js +2 -2
  32. package/dist/loader.js +6 -2
  33. package/dist/loader.js.map +1 -1
  34. package/dist/menu-item.js +103 -33
  35. package/dist/menu-item.js.map +1 -1
  36. package/dist/menu.js +4 -18
  37. package/dist/menu.js.map +1 -1
  38. package/dist/navigation-rail-item.js +21 -6
  39. package/dist/navigation-rail-item.js.map +1 -1
  40. package/dist/navigation-rail.js +22 -20
  41. package/dist/navigation-rail.js.map +1 -1
  42. package/dist/pierre-dark-DFWl0m-C.js +4 -0
  43. package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
  44. package/dist/pierre-light-BEkAPImt.js +4 -0
  45. package/dist/pierre-light-BEkAPImt.js.map +1 -0
  46. package/dist/postcss-BhbitHaI.js +64 -0
  47. package/dist/postcss-BhbitHaI.js.map +1 -0
  48. package/dist/{select-Dwtk0RIU.js → select-CspawZ18.js} +13 -6
  49. package/dist/{select-Dwtk0RIU.js.map → select-CspawZ18.js.map} +1 -1
  50. package/dist/side-sheet.js +1 -1
  51. package/dist/side-sheet.js.map +1 -1
  52. package/dist/src/button/button-group/button-group.d.ts +4 -4
  53. package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
  54. package/dist/src/color-picker/color-picker.d.ts +85 -0
  55. package/dist/src/color-picker/index.d.ts +1 -0
  56. package/dist/src/index.d.ts +1 -0
  57. package/dist/src/item/item.d.ts +0 -1
  58. package/dist/src/list/list-item.d.ts +3 -1
  59. package/dist/src/list/list.d.ts +24 -0
  60. package/dist/src/menu/menu-item/menu-item.d.ts +1 -2
  61. package/dist/standalone-Ccq0tWwA.js +32 -0
  62. package/dist/standalone-Ccq0tWwA.js.map +1 -0
  63. package/dist/sub-menu.js +6 -1
  64. package/dist/sub-menu.js.map +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +1 -1
  67. package/readme.md +3 -3
  68. package/scss/mixin.scss +1 -0
  69. package/src/button/button/button-base.scss +2 -1
  70. package/src/button/button/button-layers.scss +2 -6
  71. package/src/button/button-group/button-group.ts +4 -4
  72. package/src/button/fab/fab.ts +0 -4
  73. package/src/card/card.scss +18 -5
  74. package/src/code-highlighter/code-highlighter.ts +94 -39
  75. package/src/color-picker/color-picker.scss +217 -0
  76. package/src/color-picker/color-picker.ts +478 -0
  77. package/src/color-picker/index.ts +1 -0
  78. package/src/index.ts +1 -0
  79. package/src/item/item.scss +3 -1
  80. package/src/item/item.ts +0 -1
  81. package/src/list/list-item.scss +5 -1
  82. package/src/list/list-item.ts +40 -14
  83. package/src/list/list.ts +164 -2
  84. package/src/loader.ts +4 -0
  85. package/src/menu/menu/menu.scss +4 -18
  86. package/src/menu/menu/menu.ts +0 -1
  87. package/src/menu/menu-item/menu-item.scss +73 -43
  88. package/src/menu/menu-item/menu-item.ts +60 -27
  89. package/src/menu/sub-menu/sub-menu.scss +5 -1
  90. package/src/navigation-rail/navigation-rail-item.scss +25 -8
  91. package/src/navigation-rail/navigation-rail.scss +25 -22
  92. package/src/side-sheet/side-sheet.ts +1 -1
  93. package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
  94. package/dist/list-D6JLh1uh.js.map +0 -1
@@ -99,14 +99,14 @@ var css_248z = i`* {
99
99
 
100
100
  * @example
101
101
  * ```html
102
- * <wc-button-group connected="true">
103
- * <wc-icon-button toggle="true" shaped="wide">
102
+ * <wc-button-group connected>
103
+ * <wc-icon-button toggle="true" shape="wide" selected>
104
104
  * <wc-icon name="format_bold"></wc-icon>
105
105
  * </wc-icon-button>
106
- * <wc-icon-button toggle="true" shaped="wide">
106
+ * <wc-icon-button toggle="true" shape="wide">
107
107
  * <wc-icon name="format_italic"></wc-icon>
108
108
  * </wc-icon-button>
109
- * <wc-icon-button toggle="true" shaped="wide">
109
+ * <wc-icon-button toggle="true" shape="wide">
110
110
  * <wc-icon name="format_underlined"></wc-icon>
111
111
  * </wc-icon-button>
112
112
  * </wc-button-group>
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","sources":["../../src/button/button-group/button-group.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './button-group.scss';\nimport { Button, ButtonColor } from '../button/button.js';\nimport { IconButton } from '../icon-button/icon-button.js';\n\n/**\n * @label Button Group\n * @tag wc-button-group\n * @rawTag button-group\n *\n * @summary Group a series of buttons together on a single line with the button group, and super-power.\n\n * @example\n * ```html\n * <wc-button-group connected=\"true\">\n * <wc-icon-button toggle=\"true\" shaped=\"wide\">\n * <wc-icon name=\"format_bold\"></wc-icon>\n * </wc-icon-button>\n * <wc-icon-button toggle=\"true\" shaped=\"wide\">\n * <wc-icon name=\"format_italic\"></wc-icon>\n * </wc-icon-button>\n * <wc-icon-button toggle=\"true\" shaped=\"wide\">\n * <wc-icon name=\"format_underlined\"></wc-icon>\n * </wc-icon-button>\n * </wc-button-group>\n * ```\n *\n * @tags controls\n */\n@IndividualComponent\nclass ButtonGroup extends LitElement {\n // Lit prefers CSS-in-JS for better performance and scoping.\n // If you prefer keeping the SCSS file, you'll need a build tool (like Vite or Webpack)\n // that can import .scss files as lit-css.\n static styles = [styles];\n\n static Button = Button;\n\n static IconButton = IconButton;\n\n /**\n * Button size.\n * Possible values are `\"sm\"`, `\"md\"`, `\"lg\"`. Defaults to `\"md\"`.\n */\n @property({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Layout variant of the button group.\n * `\"standard\"` shows buttons with a small gap between them.\n * `\"connected\"` places buttons with a 2px gap;\n * rounded outer corners and middle buttons keep standard rounded corners.\n * Defaults to `\"standard\"`.\n */\n @property({ type: Boolean, reflect: true }) connected = false;\n\n /**\n * Color applied to all buttons in the group.\n * Possible values are `\"primary\"`, `\"success\"`, `\"danger\"`, `\"warning\"`, `\"surface\"`, `\"on-surface\"`.\n */\n @property({ reflect: true }) color?: ButtonColor;\n\n /**\n * Visual style applied to all buttons in the group.\n * Possible values are `\"filled\"`, `\"tonal\"`, `\"outlined\"`.\n */\n @property({ attribute: 'variant', reflect: true }) variant?:\n | 'filled'\n | 'tonal'\n | 'outlined';\n\n override updated() {\n this._syncButtonProperties();\n }\n\n private _getSlottedElements(): HTMLElement[] {\n const slot = this.shadowRoot?.querySelector('slot');\n return (slot?.assignedElements({ flatten: true }) ?? []) as HTMLElement[];\n }\n\n private _syncButtonProperties() {\n const children = this._getSlottedElements();\n children.forEach((child, index) => {\n ['color', 'variant', 'toggle', 'size'].forEach(prop => {\n // @ts-ignore\n if (this[prop] && prop in child) {\n // @ts-ignore\n (child as any)[prop] = this[prop];\n }\n });\n });\n }\n\n render() {\n return html`\n <slot @slotchange=${() => this._syncButtonProperties()}></slot>\n `;\n }\n}\n\nexport default ButtonGroup;\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AAEH,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQA,GAAU,CAAA;AAApC,IAAA,WAAA,GAAA;;AAUE;;;AAGG;QAC0B,IAAA,CAAA,IAAI,GAAqC,IAAI;AAE1E;;;;;;AAMG;QACyC,IAAA,CAAA,SAAS,GAAG,KAAK;IA4C/D;IA3BW,OAAO,GAAA;QACd,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAEQ,mBAAmB,GAAA;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACnD,QAAA,QAAQ,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;IACzD;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAC3C,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAChC,YAAA,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;;gBAEpD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;;oBAE9B,KAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBACnC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA;AACW,wBAAA,EAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;KACvD;IACH;;AAjEA;AACA;AACA;AACO,WAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEjB,WAAA,CAAA,MAAM,GAAG,MAAH;AAEN,WAAA,CAAA,UAAU,GAAG,UAAH;AAMY,UAAA,CAAA;AAA5B,IAAAC,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAgD,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAS/B,UAAA,CAAA;IAA3CA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAoB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;AAA5B,IAAAA,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAsB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAME,UAAA,CAAA;IAAlDA,CAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;AAGlC,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAtCX,WAAW,GAAA,UAAA,CAAA;IADhB;AACK,CAAA,EAAA,WAAW,CAmEhB;AAED,oBAAe,WAAW;;;;"}
1
+ {"version":3,"file":"button-group.js","sources":["../../src/button/button-group/button-group.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './button-group.scss';\nimport { Button, ButtonColor } from '../button/button.js';\nimport { IconButton } from '../icon-button/icon-button.js';\n\n/**\n * @label Button Group\n * @tag wc-button-group\n * @rawTag button-group\n *\n * @summary Group a series of buttons together on a single line with the button group, and super-power.\n\n * @example\n * ```html\n * <wc-button-group connected>\n * <wc-icon-button toggle=\"true\" shape=\"wide\" selected>\n * <wc-icon name=\"format_bold\"></wc-icon>\n * </wc-icon-button>\n * <wc-icon-button toggle=\"true\" shape=\"wide\">\n * <wc-icon name=\"format_italic\"></wc-icon>\n * </wc-icon-button>\n * <wc-icon-button toggle=\"true\" shape=\"wide\">\n * <wc-icon name=\"format_underlined\"></wc-icon>\n * </wc-icon-button>\n * </wc-button-group>\n * ```\n *\n * @tags controls\n */\n@IndividualComponent\nclass ButtonGroup extends LitElement {\n // Lit prefers CSS-in-JS for better performance and scoping.\n // If you prefer keeping the SCSS file, you'll need a build tool (like Vite or Webpack)\n // that can import .scss files as lit-css.\n static styles = [styles];\n\n static Button = Button;\n\n static IconButton = IconButton;\n\n /**\n * Button size.\n * Possible values are `\"sm\"`, `\"md\"`, `\"lg\"`. Defaults to `\"md\"`.\n */\n @property({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Layout variant of the button group.\n * `\"standard\"` shows buttons with a small gap between them.\n * `\"connected\"` places buttons with a 2px gap;\n * rounded outer corners and middle buttons keep standard rounded corners.\n * Defaults to `\"standard\"`.\n */\n @property({ type: Boolean, reflect: true }) connected = false;\n\n /**\n * Color applied to all buttons in the group.\n * Possible values are `\"primary\"`, `\"success\"`, `\"danger\"`, `\"warning\"`, `\"surface\"`, `\"on-surface\"`.\n */\n @property({ reflect: true }) color?: ButtonColor;\n\n /**\n * Visual style applied to all buttons in the group.\n * Possible values are `\"filled\"`, `\"tonal\"`, `\"outlined\"`.\n */\n @property({ attribute: 'variant', reflect: true }) variant?:\n | 'filled'\n | 'tonal'\n | 'outlined';\n\n override updated() {\n this._syncButtonProperties();\n }\n\n private _getSlottedElements(): HTMLElement[] {\n const slot = this.shadowRoot?.querySelector('slot');\n return (slot?.assignedElements({ flatten: true }) ?? []) as HTMLElement[];\n }\n\n private _syncButtonProperties() {\n const children = this._getSlottedElements();\n children.forEach((child, index) => {\n ['color', 'variant', 'toggle', 'size'].forEach(prop => {\n // @ts-ignore\n if (this[prop] && prop in child) {\n // @ts-ignore\n (child as any)[prop] = this[prop];\n }\n });\n });\n }\n\n render() {\n return html`\n <slot @slotchange=${() => this._syncButtonProperties()}></slot>\n `;\n }\n}\n\nexport default ButtonGroup;\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AAEH,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQA,GAAU,CAAA;AAApC,IAAA,WAAA,GAAA;;AAUE;;;AAGG;QAC0B,IAAA,CAAA,IAAI,GAAqC,IAAI;AAE1E;;;;;;AAMG;QACyC,IAAA,CAAA,SAAS,GAAG,KAAK;IA4C/D;IA3BW,OAAO,GAAA;QACd,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAEQ,mBAAmB,GAAA;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACnD,QAAA,QAAQ,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;IACzD;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAC3C,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAChC,YAAA,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;;gBAEpD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;;oBAE9B,KAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBACnC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA;AACW,wBAAA,EAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;KACvD;IACH;;AAjEA;AACA;AACA;AACO,WAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEjB,WAAA,CAAA,MAAM,GAAG,MAAH;AAEN,WAAA,CAAA,UAAU,GAAG,UAAH;AAMY,UAAA,CAAA;AAA5B,IAAAC,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAgD,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAS/B,UAAA,CAAA;IAA3CA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAoB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;AAA5B,IAAAA,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAsB,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAME,UAAA,CAAA;IAAlDA,CAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;AAGlC,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAtCX,WAAW,GAAA,UAAA,CAAA;IADhB;AACK,CAAA,EAAA,WAAW,CAmEhB;AAED,oBAAe,WAAW;;;;"}
package/dist/button.js CHANGED
@@ -59,7 +59,7 @@ var css_248z = i`.button {
59
59
  }
60
60
 
61
61
  .focus-ring {
62
- z-index: 2;
62
+ z-index: 1;
63
63
  pointer-events: none;
64
64
  --focus-ring-container-shape-start-start: var(
65
65
  --private-button-container-shape-start-start,
@@ -98,7 +98,6 @@ var css_248z = i`.button {
98
98
  position: absolute;
99
99
  inset: 0;
100
100
  pointer-events: none;
101
- z-index: 2;
102
101
  --skeleton-container-shape-start-start: var(
103
102
  --private-button-container-shape-start-start,
104
103
  var(--private-button-container-shape)
@@ -150,7 +149,6 @@ var css_248z = i`.button {
150
149
  position: absolute;
151
150
  inset: 0;
152
151
  pointer-events: none;
153
- z-index: 0;
154
152
  border: var(--private-button-outline-width) solid var(--private-button-outline-color);
155
153
  opacity: var(--private-button-outline-opacity, 1);
156
154
  border-start-start-radius: var(--private-button-container-shape-start-start, var(--private-button-container-shape));
@@ -165,7 +163,7 @@ var css_248z = i`.button {
165
163
  }
166
164
 
167
165
  .tooltip {
168
- z-index: 3;
166
+ z-index: 1;
169
167
  }
170
168
 
171
169
  * {
@@ -226,6 +224,7 @@ var css_248z = i`.button {
226
224
  text-decoration: none;
227
225
  color: inherit;
228
226
  cursor: pointer;
227
+ outline: none;
229
228
  }
230
229
  .native-link:link, .native-link:visited, .native-link:hover, .native-link:active {
231
230
  text-decoration: none;
@@ -239,7 +238,6 @@ var css_248z = i`.button {
239
238
  height: var(--button-height);
240
239
  padding: 0 var(--button-container-padding, var(--private-button-container-padding));
241
240
  width: 100%;
242
- z-index: 0;
243
241
  }
244
242
  .button .label {
245
243
  font-family: var(--font-family-sans) !important;
@@ -250,6 +248,8 @@ var css_248z = i`.button {
250
248
  color: var(--private-button-label-text-color);
251
249
  --icon-size: var(--button-icon-size, var(--private-button-icon-size));
252
250
  --icon-color: var(--private-button-label-text-color);
251
+ opacity: var(--private-button-label-text-opacity, 1);
252
+ display: inline-flex;
253
253
  pointer-events: none;
254
254
  }
255
255
  .button .touch {
package/dist/card.js CHANGED
@@ -33,10 +33,22 @@ var css_248z$1 = i`* {
33
33
  --card-container-shape-start-end: unset;
34
34
  --card-container-shape-end-start: unset;
35
35
  --card-container-shape-end-end: unset;
36
- --_container-shape-start-start: var(--card-container-shape-start-start, var(--card-container-shape));
37
- --_container-shape-start-end: var(--card-container-shape-start-end, var(--card-container-shape));
38
- --_container-shape-end-start: var(--card-container-shape-end-start, var(--card-container-shape));
39
- --_container-shape-end-end: var(--card-container-shape-end-end, var(--card-container-shape));
36
+ --_container-shape-start-start: var(
37
+ --card-container-shape-start-start,
38
+ var(--card-container-shape)
39
+ );
40
+ --_container-shape-start-end: var(
41
+ --card-container-shape-start-end,
42
+ var(--card-container-shape)
43
+ );
44
+ --_container-shape-end-start: var(
45
+ --card-container-shape-end-start,
46
+ var(--card-container-shape)
47
+ );
48
+ --_container-shape-end-end: var(
49
+ --card-container-shape-end-end,
50
+ var(--card-container-shape)
51
+ );
40
52
  }
41
53
 
42
54
  /*
@@ -151,11 +163,14 @@ var css_248z$1 = i`* {
151
163
  corner-shape: var(--_container-corner-shape-variant);
152
164
  }
153
165
 
154
- :host([actionable]) .focus-ring,
155
- :host([actionable]) .ripple {
166
+ :host([actionable]:not([disabled])) .focus-ring,
167
+ :host([actionable]:not([disabled])) .ripple,
168
+ :host([href]) .focus-ring,
169
+ :host([href]) .ripple {
156
170
  display: block;
157
171
  }
158
- :host([actionable]) .card-content {
172
+ :host([actionable]:not([disabled])) .card-content,
173
+ :host([href]) .card-content {
159
174
  pointer-events: none;
160
175
  }
161
176
 
package/dist/card.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '../__internal/utils/dispatch-event-utils.js';\nimport { isLink } from '@/__internal/utils/is-link.js';\nimport { observerSlotChangesWithCallback } from '@/__internal/utils/observe-slot-change.js';\nimport { throttle } from '@/__internal/utils/throttle.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './card.scss';\nimport colorStyles from './card-colors.scss';\nimport NativeHyperlinkMixin from '@/__internal/mixins/NativeHyperlinkMixin.js';\n\ntype CardVariant = 'elevated' | 'filled' | 'outlined';\n\n/**\n * @label Card\n * @tag wc-card\n * @rawTag card\n * @summary A card surface for grouping related content.\n * @cssprop --card-padding - Inner padding for the card container. Defaults to 1rem.\n * @cssprop --card-shape - Corner radius for the card container. Defaults to a large radius.\n * @cssprop --card-gap - Gap between slotted children.\n *\n * @example\n * ```html\n * <wc-card variant=\"outlined\" style=\"padding-block: 1rem;\">\n * <wc-card-content>\n * <h3 class=\"text-headline\">Title</h3>\n * <p class=\"text-body\">Supportive text</p>\n * </wc-card-content>\n * </wc-card>\n * ```\n */\n@IndividualComponent\nexport class Card extends NativeHyperlinkMixin(LitElement) {\n static styles = [styles, colorStyles];\n\n #id = crypto.randomUUID();\n\n @property({ type: String, reflect: true })\n variant: CardVariant = 'elevated';\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n actionable: boolean = false;\n\n /**\n * If button is disabled, the reason why it is disabled.\n */\n @property({ attribute: 'disabled-reason' })\n disabledReason: string = '';\n\n /**\n * Sets the delay for throttle in milliseconds. When null (default), no throttle is applied.\n */\n @property() throttleDelay?: number;\n\n /**\n * States\n */\n @state()\n private slotHasContent = false;\n\n @query('.card') readonly cardElement!: HTMLElement | null;\n\n #tabindex?: number = 0;\n\n constructor() {\n super();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n }\n\n override firstUpdated() {\n if (typeof this.throttleDelay === 'number') {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n }\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot'),\n hasContent => {\n this.slotHasContent = hasContent;\n this.requestUpdate();\n },\n );\n }\n\n __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void =\n event => {\n this.__dispatchClick(event);\n };\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.disabled && this.href) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.cardElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.cardElement);\n };\n\n __getDisabledReasonID() {\n return this.disabled && this.disabledReason\n ? `disabled-reason-${this.#id}`\n : nothing;\n }\n\n __renderDisabledReason() {\n const disabledReasonID = this.__getDisabledReasonID();\n if (disabledReasonID)\n return html`<div\n id=\"disabled-reason-${this.#id}\"\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n render() {\n const isLinkElement = isLink(this);\n const disableSlotTabbing = this.actionable || isLinkElement;\n\n return html`\n <wc-focus-ring class=\"focus-ring\" for=\"card\"></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n <wc-ripple class=\"ripple\" for=\"card\"></wc-ripple>\n\n ${this.renderCardElement(isLinkElement, disableSlotTabbing)}\n `;\n }\n\n renderCardElement(isLinkElement: boolean, disableSlotTabbing: boolean) {\n const cssClasses = {\n card: true,\n 'card-element': true,\n [`variant-${this.variant}`]: true,\n actionable: (this.actionable && !this.disabled) || isLinkElement,\n disabled: this.disabled,\n 'has-content': this.slotHasContent,\n };\n\n if (!this.actionable && !isLinkElement) {\n return html`<div class=${classMap(cssClasses)} id=\"card\">\n ${this.renderCardContent(disableSlotTabbing)}\n </div>`;\n }\n\n if (!isLinkElement) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n ?disabled=${this.disabled}\n >\n ${this.renderCardContent(disableSlotTabbing)}\n </button>`;\n }\n return html`<a\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n href=${this.href}\n target=${this.target}\n role=\"button\"\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n >\n ${this.renderCardContent(disableSlotTabbing)}\n </a>`;\n }\n\n renderCardContent(disableSlotTabbing: boolean) {\n return html`\n <div class=\"card-content\">\n <div class=\"slot-container\" ?inert=${disableSlotTabbing}>\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","nothing","html","classMap","styles","colorStyles","property","state","query"],"mappings":"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"}
1
+ {"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '../__internal/utils/dispatch-event-utils.js';\nimport { isLink } from '@/__internal/utils/is-link.js';\nimport { observerSlotChangesWithCallback } from '@/__internal/utils/observe-slot-change.js';\nimport { throttle } from '@/__internal/utils/throttle.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './card.scss';\nimport colorStyles from './card-colors.scss';\nimport NativeHyperlinkMixin from '@/__internal/mixins/NativeHyperlinkMixin.js';\n\ntype CardVariant = 'elevated' | 'filled' | 'outlined';\n\n/**\n * @label Card\n * @tag wc-card\n * @rawTag card\n * @summary A card surface for grouping related content.\n * @cssprop --card-padding - Inner padding for the card container. Defaults to 1rem.\n * @cssprop --card-shape - Corner radius for the card container. Defaults to a large radius.\n * @cssprop --card-gap - Gap between slotted children.\n *\n * @example\n * ```html\n * <wc-card variant=\"outlined\" style=\"padding-block: 1rem;\">\n * <wc-card-content>\n * <h3 class=\"text-headline\">Title</h3>\n * <p class=\"text-body\">Supportive text</p>\n * </wc-card-content>\n * </wc-card>\n * ```\n */\n@IndividualComponent\nexport class Card extends NativeHyperlinkMixin(LitElement) {\n static styles = [styles, colorStyles];\n\n #id = crypto.randomUUID();\n\n @property({ type: String, reflect: true })\n variant: CardVariant = 'elevated';\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n actionable: boolean = false;\n\n /**\n * If button is disabled, the reason why it is disabled.\n */\n @property({ attribute: 'disabled-reason' })\n disabledReason: string = '';\n\n /**\n * Sets the delay for throttle in milliseconds. When null (default), no throttle is applied.\n */\n @property() throttleDelay?: number;\n\n /**\n * States\n */\n @state()\n private slotHasContent = false;\n\n @query('.card') readonly cardElement!: HTMLElement | null;\n\n #tabindex?: number = 0;\n\n constructor() {\n super();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n }\n\n override firstUpdated() {\n if (typeof this.throttleDelay === 'number') {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n }\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot'),\n hasContent => {\n this.slotHasContent = hasContent;\n this.requestUpdate();\n },\n );\n }\n\n __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void =\n event => {\n this.__dispatchClick(event);\n };\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.disabled && this.href) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.cardElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.cardElement);\n };\n\n __getDisabledReasonID() {\n return this.disabled && this.disabledReason\n ? `disabled-reason-${this.#id}`\n : nothing;\n }\n\n __renderDisabledReason() {\n const disabledReasonID = this.__getDisabledReasonID();\n if (disabledReasonID)\n return html`<div\n id=\"disabled-reason-${this.#id}\"\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n render() {\n const isLinkElement = isLink(this);\n const disableSlotTabbing = this.actionable || isLinkElement;\n\n return html`\n <wc-focus-ring class=\"focus-ring\" for=\"card\"></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n <wc-ripple class=\"ripple\" for=\"card\"></wc-ripple>\n\n ${this.renderCardElement(isLinkElement, disableSlotTabbing)}\n `;\n }\n\n renderCardElement(isLinkElement: boolean, disableSlotTabbing: boolean) {\n const cssClasses = {\n card: true,\n 'card-element': true,\n [`variant-${this.variant}`]: true,\n actionable: (this.actionable && !this.disabled) || isLinkElement,\n disabled: this.disabled,\n 'has-content': this.slotHasContent,\n };\n\n if (!this.actionable && !isLinkElement) {\n return html`<div class=${classMap(cssClasses)} id=\"card\">\n ${this.renderCardContent(disableSlotTabbing)}\n </div>`;\n }\n\n if (!isLinkElement) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n ?disabled=${this.disabled}\n >\n ${this.renderCardContent(disableSlotTabbing)}\n </button>`;\n }\n return html`<a\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n href=${this.href}\n target=${this.target}\n role=\"button\"\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n >\n ${this.renderCardContent(disableSlotTabbing)}\n </a>`;\n }\n\n renderCardContent(disableSlotTabbing: boolean) {\n return html`\n <div class=\"card-content\">\n <div class=\"slot-container\" ?inert=${disableSlotTabbing}>\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","nothing","html","classMap","styles","colorStyles","property","state","query"],"mappings":"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"}