@redvars/peacock 3.4.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/BaseButton-DuASuVth.js +219 -0
  2. package/dist/BaseButton-DuASuVth.js.map +1 -0
  3. package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
  4. package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
  5. package/dist/assets/components.css +1 -1
  6. package/dist/assets/components.css.map +1 -1
  7. package/dist/assets/styles.css +1 -1
  8. package/dist/assets/styles.css.map +1 -1
  9. package/dist/banner.js +187 -0
  10. package/dist/banner.js.map +1 -0
  11. package/dist/bottom-sheet.js +2 -2
  12. package/dist/{button-COYCtuA8.js → button-DouvOfEU.js} +92 -283
  13. package/dist/button-DouvOfEU.js.map +1 -0
  14. package/dist/{button-group-DsXquZQn.js → button-group-CEdMwvJJ.js} +72 -48
  15. package/dist/button-group-CEdMwvJJ.js.map +1 -0
  16. package/dist/button-group.js +8 -5
  17. package/dist/button-group.js.map +1 -1
  18. package/dist/button.js +7 -4
  19. package/dist/button.js.map +1 -1
  20. package/dist/card.js +29 -74
  21. package/dist/card.js.map +1 -1
  22. package/dist/chart-bar.js +2 -2
  23. package/dist/chart-bar.js.map +1 -1
  24. package/dist/chart-doughnut.js +2 -2
  25. package/dist/chart-doughnut.js.map +1 -1
  26. package/dist/chart-pie.js +2 -2
  27. package/dist/chart-pie.js.map +1 -1
  28. package/dist/chart-stacked-bar.js +2 -2
  29. package/dist/chart-stacked-bar.js.map +1 -1
  30. package/dist/{class-map-3TAnCMAX.js → class-map-YU7g0o3B.js} +2 -2
  31. package/dist/{class-map-3TAnCMAX.js.map → class-map-YU7g0o3B.js.map} +1 -1
  32. package/dist/clock.js.map +1 -1
  33. package/dist/code-editor.js +4 -4
  34. package/dist/code-editor.js.map +1 -1
  35. package/dist/code-highlighter.js +5 -4
  36. package/dist/code-highlighter.js.map +1 -1
  37. package/dist/custom-elements-jsdocs.json +6627 -3477
  38. package/dist/custom-elements.json +10954 -7810
  39. package/dist/directive-ZPhl09Yt.js +9 -0
  40. package/dist/directive-ZPhl09Yt.js.map +1 -0
  41. package/dist/dispatch-event-utils-CuEqjlPT.js +127 -0
  42. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -0
  43. package/dist/fab.js +423 -0
  44. package/dist/fab.js.map +1 -0
  45. package/dist/index.js +17 -9
  46. package/dist/index.js.map +1 -1
  47. package/dist/{observe-theme-change-DKAIv5BB.js → is-dark-mode-DicqGkCJ.js} +6 -2
  48. package/dist/is-dark-mode-DicqGkCJ.js.map +1 -0
  49. package/dist/{select-C3XAzenC.js → navigation-rail-Lxetd5-Z.js} +2426 -898
  50. package/dist/navigation-rail-Lxetd5-Z.js.map +1 -0
  51. package/dist/notification.js +418 -0
  52. package/dist/notification.js.map +1 -0
  53. package/dist/number-counter.js +2 -2
  54. package/dist/number-counter.js.map +1 -1
  55. package/dist/observe-slot-change-BGJfgg2E.js +31 -0
  56. package/dist/observe-slot-change-BGJfgg2E.js.map +1 -0
  57. package/dist/peacock-loader.js +48 -13
  58. package/dist/peacock-loader.js.map +1 -1
  59. package/dist/search.js +456 -0
  60. package/dist/search.js.map +1 -0
  61. package/dist/side-sheet.js +2 -2
  62. package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
  63. package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
  64. package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
  65. package/dist/src/__utils/cache-fetch.d.ts +1 -0
  66. package/dist/src/__utils/is-dark-mode.d.ts +1 -0
  67. package/dist/src/__utils/is-in-viewport.d.ts +1 -0
  68. package/dist/src/__utils/observe-slot-change.d.ts +1 -0
  69. package/dist/src/__utils/sanitize-svg.d.ts +1 -0
  70. package/dist/src/__utils/throttle.d.ts +4 -0
  71. package/dist/src/accordion/accordion-item.d.ts +33 -9
  72. package/dist/src/accordion/accordion.d.ts +21 -5
  73. package/dist/src/banner/banner.d.ts +43 -0
  74. package/dist/src/banner/index.d.ts +1 -0
  75. package/dist/src/button/BaseButton.d.ts +7 -57
  76. package/dist/src/button/button/button.d.ts +32 -3
  77. package/dist/src/button/button-group/button-group.d.ts +4 -4
  78. package/dist/src/button/icon-button/icon-button.d.ts +33 -8
  79. package/dist/src/card/card.d.ts +4 -15
  80. package/dist/src/empty-state/empty-state.d.ts +1 -1
  81. package/dist/src/fab/fab.d.ts +80 -0
  82. package/dist/src/fab/index.d.ts +1 -0
  83. package/dist/src/focus-ring/focus-ring.d.ts +11 -5
  84. package/dist/src/index.d.ts +8 -1
  85. package/dist/src/link/link.d.ts +3 -10
  86. package/dist/src/menu/menu/menu.d.ts +3 -2
  87. package/dist/src/menu/sub-menu/sub-menu.d.ts +1 -0
  88. package/dist/src/navigation-rail/index.d.ts +2 -0
  89. package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
  90. package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
  91. package/dist/src/notification/index.d.ts +1 -0
  92. package/dist/src/notification/notification.d.ts +69 -0
  93. package/dist/src/pagination/pagination.d.ts +8 -1
  94. package/dist/src/search/index.d.ts +1 -0
  95. package/dist/src/search/search.d.ts +76 -0
  96. package/dist/src/select/select.d.ts +3 -5
  97. package/dist/src/sidebar-menu/index.d.ts +3 -0
  98. package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
  99. package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
  100. package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
  101. package/dist/src/slider/slider.d.ts +4 -0
  102. package/dist/src/snackbar/snackbar.d.ts +14 -1
  103. package/dist/src/toolbar/index.d.ts +1 -0
  104. package/dist/src/toolbar/toolbar.d.ts +86 -0
  105. package/dist/src/tooltip/tooltip.d.ts +3 -0
  106. package/dist/src/url-field/index.d.ts +1 -0
  107. package/dist/src/url-field/url-field.d.ts +48 -0
  108. package/dist/{style-map-CRFEoCEg.js → style-map-DVmWOuYy.js} +2 -2
  109. package/dist/{style-map-CRFEoCEg.js.map → style-map-DVmWOuYy.js.map} +1 -1
  110. package/dist/test/banner.test.d.ts +1 -0
  111. package/dist/test/search.test.d.ts +1 -0
  112. package/dist/test/sidebar-menu.test.d.ts +1 -0
  113. package/dist/test/toolbar.test.d.ts +1 -0
  114. package/dist/toolbar.js +306 -0
  115. package/dist/toolbar.js.map +1 -0
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/dist/{unsafe-html-D3GHRaGQ.js → unsafe-html-BsGUjx94.js} +2 -2
  118. package/dist/{unsafe-html-D3GHRaGQ.js.map → unsafe-html-BsGUjx94.js.map} +1 -1
  119. package/package.json +1 -1
  120. package/readme.md +73 -65
  121. package/scss/mixin.scss +16 -0
  122. package/scss/styles.scss +4 -0
  123. package/src/__mixins/BaseButtonMixin.ts +83 -0
  124. package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
  125. package/src/__mixins/MixinConstructor.ts +1 -0
  126. package/src/__mixins/README.md +19 -0
  127. package/src/__utils/cache-fetch.ts +65 -0
  128. package/src/__utils/is-dark-mode.ts +3 -0
  129. package/src/__utils/is-in-viewport.ts +6 -0
  130. package/src/__utils/observe-slot-change.ts +38 -0
  131. package/src/__utils/sanitize-svg.ts +27 -0
  132. package/src/__utils/throttle.ts +27 -0
  133. package/src/accordion/accordion-item.scss +136 -65
  134. package/src/accordion/accordion-item.ts +117 -44
  135. package/src/accordion/accordion.scss +24 -5
  136. package/src/accordion/accordion.ts +29 -23
  137. package/src/accordion/demo/index.html +74 -35
  138. package/src/banner/banner.scss +83 -0
  139. package/src/banner/banner.ts +101 -0
  140. package/src/banner/index.ts +1 -0
  141. package/src/button/BaseButton.ts +13 -115
  142. package/src/button/button/button-colors.scss +14 -14
  143. package/src/button/button/button-sizes.scss +4 -2
  144. package/src/button/button/button.ts +80 -26
  145. package/src/button/button-group/button-group.ts +5 -5
  146. package/src/button/icon-button/icon-button.ts +79 -44
  147. package/src/card/card.ts +50 -100
  148. package/src/chart-bar/chart-bar.ts +10 -15
  149. package/src/chart-bar/chart-stacked-bar.ts +15 -19
  150. package/src/chart-doughnut/chart-doughnut.ts +24 -28
  151. package/src/chart-pie/chart-pie.ts +20 -24
  152. package/src/checkbox/checkbox.scss +17 -34
  153. package/src/checkbox/checkbox.ts +4 -2
  154. package/src/clock/clock.ts +1 -1
  155. package/src/code-editor/code-editor.ts +4 -4
  156. package/src/code-highlighter/code-highlighter.scss +1 -0
  157. package/src/code-highlighter/code-highlighter.ts +3 -3
  158. package/src/date-picker/date-picker.ts +6 -3
  159. package/src/divider/divider.ts +3 -1
  160. package/src/elevation/elevation.scss +5 -5
  161. package/src/empty-state/empty-state.scss +7 -9
  162. package/src/empty-state/empty-state.ts +1 -1
  163. package/src/fab/fab-colors.scss +49 -0
  164. package/src/fab/fab-sizes.scss +47 -0
  165. package/src/fab/fab.scss +137 -0
  166. package/src/fab/fab.ts +214 -0
  167. package/src/fab/index.ts +1 -0
  168. package/src/field/field.ts +3 -1
  169. package/src/focus-ring/focus-ring.ts +47 -40
  170. package/src/icon/datasource.ts +1 -1
  171. package/src/icon/icon.ts +3 -1
  172. package/src/image/image.ts +3 -2
  173. package/src/index.ts +8 -1
  174. package/src/input/input.ts +8 -3
  175. package/src/link/link.ts +2 -15
  176. package/src/menu/menu/menu.scss +7 -0
  177. package/src/menu/menu/menu.ts +7 -4
  178. package/src/menu/menu-item/menu-item.ts +3 -1
  179. package/src/menu/sub-menu/sub-menu.ts +1 -0
  180. package/src/navigation-rail/index.ts +2 -0
  181. package/src/navigation-rail/navigation-rail-item.scss +216 -0
  182. package/src/navigation-rail/navigation-rail-item.ts +223 -0
  183. package/src/navigation-rail/navigation-rail.scss +72 -0
  184. package/src/navigation-rail/navigation-rail.ts +149 -0
  185. package/src/notification/index.ts +1 -0
  186. package/src/notification/notification.scss +201 -0
  187. package/src/notification/notification.ts +207 -0
  188. package/src/number-counter/number-counter.ts +3 -1
  189. package/src/number-field/number-field.ts +10 -6
  190. package/src/pagination/pagination.scss +33 -24
  191. package/src/pagination/pagination.ts +115 -60
  192. package/src/peacock-loader.ts +42 -5
  193. package/src/radio/radio.ts +3 -1
  194. package/src/search/index.ts +1 -0
  195. package/src/search/search-colors.scss +14 -0
  196. package/src/search/search.scss +204 -0
  197. package/src/search/search.ts +244 -0
  198. package/src/select/option.ts +1 -1
  199. package/src/select/select.scss +5 -0
  200. package/src/select/select.ts +71 -37
  201. package/src/sidebar-menu/demo/index.html +68 -0
  202. package/src/sidebar-menu/index.ts +3 -0
  203. package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
  204. package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
  205. package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
  206. package/src/sidebar-menu/sidebar-menu.ts +182 -0
  207. package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
  208. package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
  209. package/src/skeleton/skeleton.scss +18 -24
  210. package/src/slider/slider.scss +19 -0
  211. package/src/slider/slider.ts +30 -19
  212. package/src/snackbar/snackbar.scss +62 -31
  213. package/src/snackbar/snackbar.ts +91 -11
  214. package/src/switch/switch.ts +3 -1
  215. package/src/table/table.ts +3 -1
  216. package/src/tabs/tab.ts +10 -6
  217. package/src/text/text.css-component.scss +7 -1
  218. package/src/textarea/textarea.ts +4 -2
  219. package/src/time-picker/time-picker.ts +5 -3
  220. package/src/toolbar/index.ts +1 -0
  221. package/src/toolbar/toolbar-colors.scss +16 -0
  222. package/src/toolbar/toolbar.scss +165 -0
  223. package/src/toolbar/toolbar.ts +137 -0
  224. package/src/tooltip/tooltip.ts +24 -0
  225. package/src/url-field/index.ts +1 -0
  226. package/src/url-field/url-field.scss +50 -0
  227. package/src/url-field/url-field.ts +239 -0
  228. package/dist/button-COYCtuA8.js.map +0 -1
  229. package/dist/button-group-DsXquZQn.js.map +0 -1
  230. package/dist/directive-Cuw6h7YA.js +0 -9
  231. package/dist/directive-Cuw6h7YA.js.map +0 -1
  232. package/dist/dispatch-event-utils-B4odODQf.js +0 -277
  233. package/dist/dispatch-event-utils-B4odODQf.js.map +0 -1
  234. package/dist/observe-theme-change-DKAIv5BB.js.map +0 -1
  235. package/dist/select-C3XAzenC.js.map +0 -1
  236. package/dist/src/styleMixins.css.d.ts +0 -9
  237. package/dist/src/tree-view/index.d.ts +0 -2
  238. package/dist/src/tree-view/tree-node.d.ts +0 -69
  239. package/dist/src/tree-view/tree-view.d.ts +0 -40
  240. package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
  241. package/dist/src/utils.d.ts +0 -9
  242. package/dist/test/tree-view.test.d.ts +0 -1
  243. package/src/styleMixins.css.ts +0 -55
  244. package/src/tree-view/demo/index.html +0 -57
  245. package/src/tree-view/index.ts +0 -2
  246. package/src/tree-view/tree-node.scss +0 -101
  247. package/src/tree-view/tree-node.ts +0 -268
  248. package/src/tree-view/tree-view.ts +0 -182
  249. package/src/tree-view/wc-tree-view.ts +0 -9
  250. package/src/utils.ts +0 -193
  251. /package/dist/src/{spread.d.ts → __directive/spread.d.ts} +0 -0
  252. /package/dist/src/{utils → __utils}/copy-to-clipboard.d.ts +0 -0
  253. /package/dist/src/{utils → __utils}/dispatch-event-utils.d.ts +0 -0
  254. /package/dist/src/{utils → __utils}/observe-theme-change.d.ts +0 -0
  255. /package/src/{spread.ts → __directive/spread.ts} +0 -0
  256. /package/src/{utils → __utils}/copy-to-clipboard.ts +0 -0
  257. /package/src/{utils → __utils}/dispatch-event-utils.ts +0 -0
  258. /package/src/{utils → __utils}/observe-theme-change.ts +0 -0
@@ -1,10 +1,10 @@
1
- import { a as i, _ as __decorate, i as i$2, A, c as __classPrivateFieldGet, b, I as IndividualComponent } from './IndividualComponent-DUINtMGK.js';
1
+ import { a as i, _ as __decorate, I as IndividualComponent, b } from './IndividualComponent-DUINtMGK.js';
2
2
  import { n } from './property-1psGvXOq.js';
3
3
  import { r } from './state-DwbEjqVk.js';
4
- import { e as e$2 } from './class-map-3TAnCMAX.js';
5
- import { i as isActivationClick, d as dispatchActivationClick, t as throttle, o as observerSlotChangesWithCallback } from './dispatch-event-utils-B4odODQf.js';
6
- import { e, i as i$1, t } from './directive-Cuw6h7YA.js';
7
- import { e as e$1 } from './query-QBcUV-L_.js';
4
+ import { e } from './class-map-YU7g0o3B.js';
5
+ import { B as BaseButton, o, s as spread } from './BaseButton-DuASuVth.js';
6
+ import { o as observerSlotChangesWithCallback } from './observe-slot-change-BGJfgg2E.js';
7
+ import { t as throttle } from './BaseHyperlinkMixin-BNuwbiEf.js';
8
8
 
9
9
  var css_248z$2 = i`* {
10
10
  box-sizing: border-box;
@@ -535,13 +535,13 @@ var css_248z$1 = i`:host([color=primary]:not([toggle])) {
535
535
  --outlined-button-label-text-color: var(--color-error);
536
536
  }
537
537
 
538
- :host([color=dark]) {
538
+ :host([color=on-surface]) {
539
539
  --filled-button-container-color: var(--color-on-surface);
540
540
  --filled-button-label-text-color: var(--color-surface);
541
- --tonal-button-container-color: var(--color-surface-container);
542
- --tonal-button-label-text-color: var(--color-on-surface-container);
543
- --elevated-button-container-color: var(--color-surface-container-low);
544
- --elevated-button-label-text-color: var(--color-on-surface);
541
+ --tonal-button-container-color: var(--color-on-surface-container);
542
+ --tonal-button-label-text-color: var(--color-surface-container-high);
543
+ --elevated-button-container-color: var(--color-on-surface);
544
+ --elevated-button-label-text-color: var(--color-surface);
545
545
  --outlined-button-outline-color: var(--color-on-surface);
546
546
  --outlined-button-label-text-color: var(--color-on-surface);
547
547
  --text-button-label-text-color: var(--color-on-surface);
@@ -549,16 +549,16 @@ var css_248z$1 = i`:host([color=primary]:not([toggle])) {
549
549
  --neo-button-label-text-color: var(--color-surface);
550
550
  }
551
551
 
552
- :host([color=light]) {
553
- --filled-button-container-color: var(--color-surface);
552
+ :host([color=surface]) {
553
+ --filled-button-container-color: var(--color-surface-container-high);
554
554
  --filled-button-label-text-color: var(--color-on-surface);
555
- --tonal-button-container-color: var(--color-on-surface-container);
556
- --tonal-button-label-text-color: var(--color-surface-container);
557
- --elevated-button-container-color: var(--color-surface-container-low);
558
- --elevated-button-label-text-color: var(--color-white);
559
- --outlined-button-outline-color: var(--color-surface);
560
- --outlined-button-label-text-color: var(--color-surface);
561
- --text-button-label-text-color: var(--color-surface);
555
+ --tonal-button-container-color: var(--color-surface-container-high);
556
+ --tonal-button-label-text-color: var(--color-on-surface-container);
557
+ --elevated-button-container-color: var(--color-surface);
558
+ --elevated-button-label-text-color: var(--color-on-surface);
559
+ --outlined-button-outline-color: var(--color-on-surface);
560
+ --outlined-button-label-text-color: var(--color-on-surface);
561
+ --text-button-label-text-color: var(--color-on-surface);
562
562
  --neo-button-container-color: var(--color-surface);
563
563
  --neo-button-label-text-color: var(--color-on-surface);
564
564
  }`;
@@ -624,11 +624,13 @@ var css_248z = i`:host([size=xs]),
624
624
  letter-spacing: 0 !important;
625
625
  }
626
626
 
627
- :host([size=xl]) {
627
+ :host([size=xl]),
628
+ :host([size=extra-large]) {
628
629
  --button-height: 8.5rem;
629
630
  }
630
631
 
631
- :host([size=xl]) .button {
632
+ :host([size=xl]) .button,
633
+ :host([size=extra-large]) .button {
632
634
  --_button-icon-size: 2.5rem;
633
635
  --_button_container-padding: 4rem;
634
636
  font-size: 2rem !important;
@@ -637,243 +639,6 @@ var css_248z = i`:host([size=xs]),
637
639
  letter-spacing: 0 !important;
638
640
  }`;
639
641
 
640
- class SpreadDirective extends i$1 {
641
- constructor(partInfo) {
642
- super(partInfo);
643
- if (partInfo.type !== t.ELEMENT) {
644
- throw new Error('spread() can only be used on elements');
645
- }
646
- }
647
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
648
- render(_props) {
649
- return '';
650
- }
651
- update(part, [props]) {
652
- if (!props)
653
- return;
654
- // eslint-disable-next-line guard-for-in,no-restricted-syntax
655
- for (const key in props) {
656
- const value = props[key];
657
- if (value === undefined || value === null) {
658
- part.element.removeAttribute(key);
659
- }
660
- else {
661
- part.element.setAttribute(key, value);
662
- }
663
- }
664
- }
665
- }
666
- const spread = e(SpreadDirective);
667
-
668
- var _BaseButton_id;
669
- class BaseButton extends i$2 {
670
- constructor() {
671
- super(...arguments);
672
- _BaseButton_id.set(this, crypto.randomUUID());
673
- this.htmlType = 'button';
674
- /**
675
- * The visual style of the button.
676
- *
677
- * Possible variant values:
678
- * `"filled"` is a filled button.
679
- * `"outlined"` is an outlined button.
680
- * `"text"` is a transparent button.
681
- * `"tonal"` is a light color button.
682
- * `"elevated"` is elevated button
683
- */
684
- this.variant = 'filled';
685
- /**
686
- * Defines the primary color of the button. This can be set to predefined color names to apply specific color themes.
687
- */
688
- this.color = 'primary';
689
- /**
690
- * Button size.
691
- * Possible values are `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
692
- */
693
- this.size = 'sm';
694
- /**
695
- * If true, the user cannot interact with the button. Defaults to `false`.
696
- */
697
- this.disabled = false;
698
- this.skeleton = false;
699
- /**
700
- * If true, the user cannot interact with the button and the button is visually styled as disabled. But the button is still focusable. Defaults to `false`.
701
- */
702
- this.softDisabled = false;
703
- /**
704
- * If button is disabled, the reason why it is disabled.
705
- */
706
- this.disabledReason = '';
707
- /**
708
- * Sets or retrieves the window or frame at which to target content.
709
- */
710
- this.target = '_self';
711
- this.toggle = false;
712
- this.selected = false;
713
- /**
714
- * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
715
- */
716
- this.throttleDelay = 200;
717
- /**
718
- * States
719
- */
720
- this.isPressed = false;
721
- this.__handlePress = (event) => {
722
- if (this.disabled || this.skeleton || this.softDisabled)
723
- return;
724
- if (event instanceof KeyboardEvent &&
725
- event.type === 'keydown' &&
726
- (event.key === 'Enter' || event.key === ' ')) {
727
- this.isPressed = true;
728
- }
729
- else if (event.type === 'mousedown') {
730
- this.isPressed = true;
731
- }
732
- else {
733
- this.isPressed = false;
734
- }
735
- };
736
- this.__dispatchClickWithThrottle = event => {
737
- this.__dispatchClick(event);
738
- };
739
- this.__dispatchClick = (event) => {
740
- // If the button is soft-disabled or a disabled link, we need to explicitly
741
- // prevent the click from propagating to other event listeners as well as
742
- // prevent the default action.
743
- if (this.softDisabled || (this.disabled && this.href) || this.skeleton) {
744
- event.stopImmediatePropagation();
745
- event.preventDefault();
746
- return;
747
- }
748
- if (!isActivationClick(event) || !this.buttonElement) {
749
- return;
750
- }
751
- if (this.toggle) {
752
- this.selected = !this.selected;
753
- }
754
- this.focus();
755
- dispatchActivationClick(this.buttonElement);
756
- };
757
- }
758
- focus() {
759
- this.buttonElement?.focus();
760
- }
761
- blur() {
762
- this.buttonElement?.blur();
763
- }
764
- connectedCallback() {
765
- super.connectedCallback();
766
- this.addEventListener('click', this.__dispatchClickWithThrottle);
767
- window.addEventListener('mouseup', this.__handlePress);
768
- }
769
- disconnectedCallback() {
770
- window.removeEventListener('mouseup', this.__handlePress);
771
- this.removeEventListener('click', this.__dispatchClickWithThrottle);
772
- super.disconnectedCallback();
773
- }
774
- __isLink() {
775
- return !!this.href;
776
- }
777
- __convertTypeToVariantAndColor() {
778
- if (this.type === 'primary') {
779
- this.color = 'primary';
780
- this.variant = 'filled';
781
- }
782
- else if (this.type === 'secondary') {
783
- this.color = 'dark';
784
- this.variant = 'outlined';
785
- }
786
- else if (this.type === 'tertiary') {
787
- this.color = 'primary';
788
- this.variant = 'text';
789
- }
790
- else if (this.type === 'danger') {
791
- this.color = 'danger';
792
- this.variant = 'filled';
793
- }
794
- }
795
- __getDisabledReasonID() {
796
- return this.disabled && this.disabledReason
797
- ? `disabled-reason-${__classPrivateFieldGet(this, _BaseButton_id, "f")}`
798
- : A;
799
- }
800
- __renderDisabledReason() {
801
- const disabledReasonID = this.__getDisabledReasonID();
802
- if (disabledReasonID)
803
- return b `<div
804
- id="disabled-reason-${__classPrivateFieldGet(this, _BaseButton_id, "f")}"
805
- role="tooltip"
806
- aria-label=${this.disabledReason}
807
- class="screen-reader-only"
808
- >
809
- {this.disabledReason}
810
- </div>`;
811
- return A;
812
- }
813
- __renderTooltip() {
814
- if (this.tooltip) {
815
- return b `<wc-tooltip for="button">${this.tooltip}</wc-tooltip>`;
816
- }
817
- return A;
818
- }
819
- }
820
- _BaseButton_id = new WeakMap();
821
- __decorate([
822
- n({ type: String })
823
- ], BaseButton.prototype, "htmlType", void 0);
824
- __decorate([
825
- n({ type: String })
826
- ], BaseButton.prototype, "type", void 0);
827
- __decorate([
828
- n()
829
- ], BaseButton.prototype, "variant", void 0);
830
- __decorate([
831
- n({ reflect: true })
832
- ], BaseButton.prototype, "color", void 0);
833
- __decorate([
834
- n({ reflect: true })
835
- ], BaseButton.prototype, "size", void 0);
836
- __decorate([
837
- n({ type: Boolean, reflect: true })
838
- ], BaseButton.prototype, "disabled", void 0);
839
- __decorate([
840
- n({ type: Boolean, reflect: true })
841
- ], BaseButton.prototype, "skeleton", void 0);
842
- __decorate([
843
- n({ type: Boolean, reflect: true, attribute: 'soft-disabled' })
844
- ], BaseButton.prototype, "softDisabled", void 0);
845
- __decorate([
846
- n({ attribute: 'disabled-reason' })
847
- ], BaseButton.prototype, "disabledReason", void 0);
848
- __decorate([
849
- n({ reflect: true })
850
- ], BaseButton.prototype, "href", void 0);
851
- __decorate([
852
- n()
853
- ], BaseButton.prototype, "target", void 0);
854
- __decorate([
855
- n({ reflect: true })
856
- ], BaseButton.prototype, "configAria", void 0);
857
- __decorate([
858
- n({ type: Boolean, reflect: true })
859
- ], BaseButton.prototype, "toggle", void 0);
860
- __decorate([
861
- n({ type: Boolean, reflect: true })
862
- ], BaseButton.prototype, "selected", void 0);
863
- __decorate([
864
- n()
865
- ], BaseButton.prototype, "throttleDelay", void 0);
866
- __decorate([
867
- n()
868
- ], BaseButton.prototype, "tooltip", void 0);
869
- __decorate([
870
- r()
871
- ], BaseButton.prototype, "isPressed", void 0);
872
- __decorate([
873
- e$1('.button')
874
- ], BaseButton.prototype, "buttonElement", void 0);
875
-
876
- var _Button_tabindex;
877
642
  /**
878
643
  * @label Button
879
644
  * @tag wc-button
@@ -919,12 +684,31 @@ var _Button_tabindex;
919
684
  let Button = class Button extends BaseButton {
920
685
  constructor() {
921
686
  super(...arguments);
922
- _Button_tabindex.set(this, 0);
923
687
  /**
924
688
  * Icon alignment.
925
689
  * Possible values are `"start"`, `"end"`. Defaults to `"end"`.
926
690
  */
927
691
  this.iconAlign = 'end';
692
+ /**
693
+ * Button size.
694
+ * Possible values are `"xs"`, `"sm"`, `"md"`, `"lg"`, `"xl"`. Defaults to `"sm"`.
695
+ */
696
+ this.size = 'sm';
697
+ /**
698
+ * The visual style of the button.
699
+ *
700
+ * Possible variant values:
701
+ * `"filled"` is a filled button.
702
+ * `"outlined"` is an outlined button.
703
+ * `"text"` is a transparent button.
704
+ * `"tonal"` is a light color button.
705
+ * `"elevated"` is elevated button
706
+ */
707
+ this.variant = 'filled';
708
+ /**
709
+ * Defines the primary color of the button. This can be set to predefined color names to apply specific color themes.
710
+ */
711
+ this.color = 'primary';
928
712
  this.slotHasContent = false;
929
713
  }
930
714
  focus() {
@@ -933,16 +717,6 @@ let Button = class Button extends BaseButton {
933
717
  blur() {
934
718
  this.buttonElement?.blur();
935
719
  }
936
- connectedCallback() {
937
- super.connectedCallback();
938
- this.addEventListener('click', this.__dispatchClickWithThrottle);
939
- window.addEventListener('mouseup', this.__handlePress);
940
- }
941
- disconnectedCallback() {
942
- window.removeEventListener('mouseup', this.__handlePress);
943
- this.removeEventListener('click', this.__dispatchClickWithThrottle);
944
- super.disconnectedCallback();
945
- }
946
720
  firstUpdated() {
947
721
  this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
948
722
  observerSlotChangesWithCallback(this.renderRoot.querySelector('slot'), hasContent => {
@@ -951,6 +725,24 @@ let Button = class Button extends BaseButton {
951
725
  });
952
726
  this.__convertTypeToVariantAndColor();
953
727
  }
728
+ __convertTypeToVariantAndColor() {
729
+ if (this.type === 'primary') {
730
+ this.color = 'primary';
731
+ this.variant = 'filled';
732
+ }
733
+ else if (this.type === 'secondary') {
734
+ this.color = 'surface';
735
+ this.variant = 'filled';
736
+ }
737
+ else if (this.type === 'tertiary') {
738
+ this.color = 'primary';
739
+ this.variant = 'text';
740
+ }
741
+ else if (this.type === 'danger') {
742
+ this.color = 'danger';
743
+ this.variant = 'filled';
744
+ }
745
+ }
954
746
  render() {
955
747
  const isLink = this.__isLink();
956
748
  const cssClasses = {
@@ -967,16 +759,17 @@ let Button = class Button extends BaseButton {
967
759
  };
968
760
  if (!isLink) {
969
761
  return b `<button
970
- class=${e$2(cssClasses)}
762
+ class=${e(cssClasses)}
971
763
  id="button"
972
- tabindex=${__classPrivateFieldGet(this, _Button_tabindex, "f")}
973
764
  type=${this.htmlType}
974
765
  @click=${this.__dispatchClickWithThrottle}
975
766
  @mousedown=${this.__handlePress}
976
767
  @keydown=${this.__handlePress}
977
768
  @keyup=${this.__handlePress}
978
- ?aria-describedby=${this.__getDisabledReasonID()}
979
- aria-disabled=${`${this.disabled || this.softDisabled}`}
769
+
770
+ aria-describedby=${o(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}
771
+ ?aria-disabled=${this.softDisabled}
772
+
980
773
  ?disabled=${this.disabled}
981
774
  ${spread(this.configAria)}
982
775
  >
@@ -985,18 +778,20 @@ let Button = class Button extends BaseButton {
985
778
  ${this.__renderTooltip()}`;
986
779
  }
987
780
  return b `<a
988
- class=${e$2(cssClasses)}
781
+ class=${e(cssClasses)}
989
782
  id="button"
990
- tabindex=${__classPrivateFieldGet(this, _Button_tabindex, "f")}
991
783
  href=${this.href}
992
784
  target=${this.target}
993
- @click=${this.__dispatchClickWithThrottle}
785
+ tabindex=${this.disabled ? '-1' : '0'}
786
+ @click=${this.__dispatchClick}
994
787
  @mousedown=${this.__handlePress}
995
788
  @keydown=${this.__handlePress}
996
789
  @keyup=${this.__handlePress}
997
790
  role="button"
998
- ?aria-describedby=${this.__getDisabledReasonID()}
999
- aria-disabled=${`${this.disabled}`}
791
+
792
+ aria-describedby=${o(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}
793
+ ?aria-disabled=${this.softDisabled}
794
+
1000
795
  ${spread(this.configAria)}
1001
796
  >
1002
797
  ${this.renderButtonContent()}
@@ -1005,7 +800,7 @@ let Button = class Button extends BaseButton {
1005
800
  }
1006
801
  renderButtonContent() {
1007
802
  return b `
1008
- <wc-focus-ring class="focus-ring" .control=${this} .forElement=${this.buttonElement}></wc-focus-ring>
803
+ <wc-focus-ring class="focus-ring" for='button'></wc-focus-ring>
1009
804
  <wc-elevation class="elevation"></wc-elevation>
1010
805
  <div class="neo-background"></div>
1011
806
  <div class="background"></div>
@@ -1021,15 +816,29 @@ let Button = class Button extends BaseButton {
1021
816
  <slot name="icon"></slot>
1022
817
  </div>
1023
818
 
1024
- ${this.__renderDisabledReason()}
819
+ ${this.__renderDisabledReason(this.softDisabled)}
1025
820
  `;
1026
821
  }
1027
822
  };
1028
- _Button_tabindex = new WeakMap();
1029
823
  Button.styles = [css_248z$2, css_248z$1, css_248z];
1030
824
  __decorate([
1031
825
  n({ attribute: 'icon-align' })
1032
826
  ], Button.prototype, "iconAlign", void 0);
827
+ __decorate([
828
+ n({ reflect: true })
829
+ ], Button.prototype, "size", void 0);
830
+ __decorate([
831
+ n({ type: String })
832
+ ], Button.prototype, "type", void 0);
833
+ __decorate([
834
+ n()
835
+ ], Button.prototype, "variant", void 0);
836
+ __decorate([
837
+ n({ reflect: true })
838
+ ], Button.prototype, "color", void 0);
839
+ __decorate([
840
+ n({ reflect: true })
841
+ ], Button.prototype, "configAria", void 0);
1033
842
  __decorate([
1034
843
  r()
1035
844
  ], Button.prototype, "slotHasContent", void 0);
@@ -1037,5 +846,5 @@ Button = __decorate([
1037
846
  IndividualComponent
1038
847
  ], Button);
1039
848
 
1040
- export { Button as B, css_248z$1 as a, BaseButton as b, css_248z$2 as c, spread as s };
1041
- //# sourceMappingURL=button-COYCtuA8.js.map
849
+ export { Button as B, css_248z$1 as a, css_248z$2 as c };
850
+ //# sourceMappingURL=button-DouvOfEU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-DouvOfEU.js","sources":["../../src/button/button/button.ts"],"sourcesContent":["import { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './button.scss';\nimport colorStyles from './button-colors.scss';\nimport sizeStyles from './button-sizes.scss';\nimport { observerSlotChangesWithCallback } from '@/__utils/observe-slot-change.js';\nimport { throttle } from '@/__utils/throttle.js';\nimport { spread } from '@/__directive/spread.js';\nimport { BaseButton } from '../BaseButton.js';\n\n/**\n * @label Button\n * @tag wc-button\n * @rawTag button\n *\n * @summary Buttons help people initiate actions, from sending an email, to sharing a document, to liking a post.\n * @overview\n * <p>Buttons are clickable elements that are used to trigger actions. They communicate calls to action to the user and allow users to interact with pages in a variety of ways. Button labels express what action will occur when the user interacts with it.</p>\n *\n * @cssprop --button-container-shape: Defines the border radius of the button container shape.\n *\n * @cssprop --button-container-shape-start-start: Defines the start position of the button container shape.\n * @cssprop --button-container-shape-start-end: Defines the end position of the button container shape.\n * @cssprop --button-container-shape-end-start: Defines the start position of the button container shape.\n * @cssprop --button-container-shape-end-end: Defines the end position of the button container shape.\n *\n *\n * @cssprop --filled-button-container-color: Color of the filled button container.\n * @cssprop --filled-button-label-text-color: Text color of the filled button label.\n *\n * @cssprop --outlined-button-container-color: Color of the outlined button container.\n * @cssprop --outlined-button-label-text-color: Text color of the outlined button label.\n *\n * @cssprop --text-button-label-text-color: Text color of the text button label.\n *\n * @cssprop --tonal-button-container-color: Color of the tonal button container.\n * @cssprop --tonal-button-label-text-color: Text color of the tonal button label.\n *\n * @cssprop --elevated-button-container-color: Color of the elevated button container.\n * @cssprop --elevated-button-label-text-color: Text color of the elevated button label.\n *\n * @cssprop --neo-button-container-color: Color of the neo button container.\n * @cssprop --neo-button-label-text-color: Text color of the neo button label.\n *\n * @fires {MouseEvent} click - Dispatched when the button is clicked.\n *\n * @example\n * ```html\n * <wc-button>Button</wc-button>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Button extends BaseButton {\n static override styles = [styles, colorStyles, sizeStyles];\n\n /**\n * Icon alignment.\n * Possible values are `\"start\"`, `\"end\"`. Defaults to `\"end\"`.\n */\n @property({ attribute: 'icon-align' })\n iconAlign: 'start' | 'end' = 'end';\n\n /**\n * Button size.\n * Possible values are `\"xs\"`, `\"sm\"`, `\"md\"`, `\"lg\"`, `\"xl\"`. Defaults to `\"sm\"`.\n */\n @property({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Type is preset of color and variant. Type will be only applied.\n *\n */\n @property({ type: String }) type?: 'primary' | 'secondary' | 'tertiary';\n \n /**\n * The visual style of the button.\n *\n * Possible variant values:\n * `\"filled\"` is a filled button.\n * `\"outlined\"` is an outlined button.\n * `\"text\"` is a transparent button.\n * `\"tonal\"` is a light color button.\n * `\"elevated\"` is elevated button\n */\n @property() variant:\n | 'elevated'\n | 'filled'\n | 'tonal'\n | 'outlined'\n | 'text'\n | 'neo' = 'filled';\n \n /**\n * Defines the primary color of the button. This can be set to predefined color names to apply specific color themes.\n */\n @property({ reflect: true }) color:\n | 'primary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'surface'\n | 'on-surface' = 'primary';\n\n /**\n * Additional ARIA attributes to pass to the inner button/anchor element.\n */\n @property({ reflect: true })\n configAria?: { [key: string]: any };\n\n @state()\n private slotHasContent = false;\n\n override focus() {\n this.buttonElement?.focus();\n }\n\n override blur() {\n this.buttonElement?.blur();\n }\n\n override firstUpdated() {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot'),\n hasContent => {\n this.slotHasContent = hasContent;\n this.requestUpdate();\n },\n );\n\n this.__convertTypeToVariantAndColor();\n }\n\n __convertTypeToVariantAndColor() {\n if (this.type === 'primary') {\n this.color = 'primary';\n this.variant = 'filled';\n } else if (this.type === 'secondary') {\n this.color = 'surface';\n this.variant = 'filled';\n } else if (this.type === 'tertiary') {\n this.color = 'primary';\n this.variant = 'text';\n } else if (this.type === 'danger') {\n this.color = 'danger';\n this.variant = 'filled';\n }\n }\n\n override render() {\n const isLink = this.__isLink();\n\n const cssClasses = {\n button: true,\n 'button-element': true,\n [`size-${this.size}`]: true,\n [`variant-${this.variant}`]: true,\n [`color-${this.color}`]: true,\n disabled: this.disabled || this.softDisabled,\n pressed: this.isPressed,\n 'has-content': this.slotHasContent,\n 'show-skeleton': this.skeleton,\n [`icon-align-${this.iconAlign}`]: true,\n };\n\n if (!isLink) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\n type=${this.htmlType}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n\n aria-describedby=${ifDefined(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}\n ?aria-disabled=${this.softDisabled}\n\n ?disabled=${this.disabled}\n ${spread(this.configAria)}\n >\n ${this.renderButtonContent()}\n </button>\n ${this.__renderTooltip()}`;\n }\n return html`<a\n class=${classMap(cssClasses)}\n id=\"button\"\n href=${this.href}\n target=${this.target}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this.__dispatchClick}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n role=\"button\"\n\n aria-describedby=${ifDefined(this.softDisabled ? BaseButton.DISABLED_REASON_ID : undefined)}\n ?aria-disabled=${this.softDisabled}\n\n ${spread(this.configAria)}\n >\n ${this.renderButtonContent()}\n </a>\n ${this.__renderTooltip()}`;\n }\n\n renderButtonContent() {\n return html`\n <wc-focus-ring class=\"focus-ring\" for='button'></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"neo-background\"></div>\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n <wc-ripple class=\"ripple\"></wc-ripple>\n <wc-skeleton class=\"skeleton\"></wc-skeleton>\n\n <div class=\"button-content\">\n <div class=\"slot-container\">\n <slot></slot>\n </div>\n\n <slot name=\"icon\"></slot>\n </div>\n\n ${this.__renderDisabledReason(this.softDisabled)}\n `;\n }\n}\n"],"names":["html","classMap","ifDefined","styles","colorStyles","sizeStyles","property","state"],"mappings":"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"}