@universal-material/web 3.0.19 → 3.0.21

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 (202) hide show
  1. package/app-bar/top-app-bar.d.ts +42 -0
  2. package/app-bar/top-app-bar.d.ts.map +1 -0
  3. package/app-bar/top-app-bar.js +139 -0
  4. package/app-bar/top-app-bar.js.map +1 -0
  5. package/{button/button-base.styles.d.ts → app-bar/top-app-bar.styles.d.ts} +1 -1
  6. package/app-bar/top-app-bar.styles.d.ts.map +1 -0
  7. package/app-bar/top-app-bar.styles.js +87 -0
  8. package/app-bar/top-app-bar.styles.js.map +1 -0
  9. package/button/button-base.d.ts +2 -30
  10. package/button/button-base.d.ts.map +1 -1
  11. package/button/button-base.js +4 -94
  12. package/button/button-base.js.map +1 -1
  13. package/button/button.d.ts +1 -1
  14. package/button/button.d.ts.map +1 -1
  15. package/button/button.js +9 -7
  16. package/button/button.js.map +1 -1
  17. package/button/button.styles.d.ts.map +1 -1
  18. package/button/button.styles.js +14 -10
  19. package/button/button.styles.js.map +1 -1
  20. package/button/fab.d.ts.map +1 -1
  21. package/button/fab.js +2 -2
  22. package/button/fab.js.map +1 -1
  23. package/button/icon-button.d.ts +2 -2
  24. package/button/icon-button.d.ts.map +1 -1
  25. package/button/icon-button.js +5 -4
  26. package/button/icon-button.js.map +1 -1
  27. package/button/icon-button.styles.js +8 -8
  28. package/button/icon-button.styles.js.map +1 -1
  29. package/card/card.d.ts +3 -3
  30. package/card/card.d.ts.map +1 -1
  31. package/card/card.js +4 -4
  32. package/card/card.js.map +1 -1
  33. package/checkbox/checkbox.d.ts.map +1 -1
  34. package/checkbox/checkbox.js +0 -1
  35. package/checkbox/checkbox.js.map +1 -1
  36. package/config.d.ts +6 -0
  37. package/config.d.ts.map +1 -0
  38. package/config.js +7 -0
  39. package/config.js.map +1 -0
  40. package/container/container.d.ts +1 -1
  41. package/container/container.d.ts.map +1 -1
  42. package/container/container.js +4 -4
  43. package/container/container.js.map +1 -1
  44. package/container/grid-base.styles.js +4 -4
  45. package/container/grid-base.styles.js.map +1 -1
  46. package/container/grid.d.ts +2 -2
  47. package/container/grid.d.ts.map +1 -1
  48. package/container/grid.js +4 -4
  49. package/container/grid.js.map +1 -1
  50. package/css/universal-material.css +1333 -0
  51. package/css/universal-material.min.css +2 -0
  52. package/custom-elements.json +2772 -814
  53. package/elevation/elevation.d.ts +1 -1
  54. package/elevation/elevation.d.ts.map +1 -1
  55. package/elevation/elevation.js +2 -2
  56. package/elevation/elevation.js.map +1 -1
  57. package/index.d.ts +41 -29
  58. package/index.d.ts.map +1 -1
  59. package/index.js +41 -29
  60. package/index.js.map +1 -1
  61. package/menu/menu-item.d.ts +26 -0
  62. package/menu/menu-item.d.ts.map +1 -0
  63. package/menu/menu-item.js +62 -0
  64. package/menu/menu-item.js.map +1 -0
  65. package/{table/table-row.styles.d.ts → menu/menu-item.styles.d.ts} +1 -1
  66. package/menu/menu-item.styles.d.ts.map +1 -0
  67. package/menu/menu-item.styles.js +37 -0
  68. package/menu/menu-item.styles.js.map +1 -0
  69. package/menu/menu.d.ts +55 -0
  70. package/menu/menu.d.ts.map +1 -0
  71. package/menu/menu.js +215 -0
  72. package/menu/menu.js.map +1 -0
  73. package/{table/table.styles.d.ts → menu/menu.styles.d.ts} +1 -1
  74. package/menu/menu.styles.d.ts.map +1 -0
  75. package/menu/menu.styles.js +95 -0
  76. package/menu/menu.styles.js.map +1 -0
  77. package/navigation/drawer-item.d.ts +39 -0
  78. package/navigation/drawer-item.d.ts.map +1 -0
  79. package/navigation/drawer-item.js +98 -0
  80. package/navigation/drawer-item.js.map +1 -0
  81. package/{table/table-body.styles.d.ts → navigation/drawer-item.styles.d.ts} +1 -1
  82. package/navigation/drawer-item.styles.d.ts.map +1 -0
  83. package/navigation/drawer-item.styles.js +43 -0
  84. package/navigation/drawer-item.styles.js.map +1 -0
  85. package/{table/table-row.d.ts → navigation/drawer.d.ts} +3 -3
  86. package/navigation/drawer.d.ts.map +1 -0
  87. package/{table/table-row.js → navigation/drawer.js} +11 -8
  88. package/navigation/drawer.js.map +1 -0
  89. package/{table/table-cell.styles.d.ts → navigation/drawer.styles.d.ts} +1 -1
  90. package/navigation/drawer.styles.d.ts.map +1 -0
  91. package/navigation/drawer.styles.js +17 -0
  92. package/navigation/drawer.styles.js.map +1 -0
  93. package/navigation/side-navigation-swiper.styles.d.ts +2 -0
  94. package/navigation/side-navigation-swiper.styles.d.ts.map +1 -0
  95. package/navigation/side-navigation-swiper.styles.js +131 -0
  96. package/navigation/side-navigation-swiper.styles.js.map +1 -0
  97. package/navigation/side-navigation.d.ts +32 -0
  98. package/navigation/side-navigation.d.ts.map +1 -0
  99. package/navigation/side-navigation.js +154 -0
  100. package/navigation/side-navigation.js.map +1 -0
  101. package/navigation/side-navigation.styles.d.ts +2 -0
  102. package/navigation/side-navigation.styles.d.ts.map +1 -0
  103. package/navigation/side-navigation.styles.js +124 -0
  104. package/navigation/side-navigation.styles.js.map +1 -0
  105. package/package.json +47 -21
  106. package/scss/_api.scss +2 -0
  107. package/scss/_common.scss +38 -0
  108. package/scss/_css-vars.scss +30 -0
  109. package/scss/_functions.scss +25 -0
  110. package/scss/_mixins.scss +3 -0
  111. package/scss/_variables.scss +110 -0
  112. package/scss/data-table/_data-table.scss +33 -0
  113. package/scss/data-table/_variables.scss +24 -0
  114. package/scss/functions/_font.scss +29 -0
  115. package/scss/mixins/_breakpoints.scss +21 -0
  116. package/scss/mixins/_colors.scss +6 -0
  117. package/scss/mixins/_text-bg.scss +33 -0
  118. package/scss/mixins/_typo.scss +26 -0
  119. package/scss/text-bg/_text-bg.scss +38 -0
  120. package/scss/text-bg/_text.scss +73 -0
  121. package/scss/typo/_font.scss +5 -0
  122. package/scss/typo/_typo.scss +19 -0
  123. package/scss/typo/_variables.scss +19 -0
  124. package/scss/universal-material.scss +7 -0
  125. package/shared/base.styles.js +1 -1
  126. package/shared/base.styles.js.map +1 -1
  127. package/shared/button-wrapper.d.ts +35 -0
  128. package/shared/button-wrapper.d.ts.map +1 -0
  129. package/shared/button-wrapper.js +110 -0
  130. package/shared/button-wrapper.js.map +1 -0
  131. package/shared/button-wrapper.styles.d.ts +2 -0
  132. package/shared/button-wrapper.styles.d.ts.map +1 -0
  133. package/{button/button-base.styles.js → shared/button-wrapper.styles.js} +27 -9
  134. package/shared/button-wrapper.styles.js.map +1 -0
  135. package/snackbar/snackbar.d.ts +38 -0
  136. package/snackbar/snackbar.d.ts.map +1 -0
  137. package/snackbar/snackbar.js +122 -0
  138. package/snackbar/snackbar.js.map +1 -0
  139. package/{table/table-head.styles.d.ts → snackbar/snackbar.styles.d.ts} +1 -1
  140. package/snackbar/snackbar.styles.d.ts.map +1 -0
  141. package/snackbar/snackbar.styles.js +81 -0
  142. package/snackbar/snackbar.styles.js.map +1 -0
  143. package/theme/css-var-builder.js +1 -1
  144. package/theme/css-var-builder.js.map +1 -1
  145. package/theme/index.d.ts +1 -1
  146. package/theme/index.d.ts.map +1 -1
  147. package/theme/index.js +1 -1
  148. package/theme/index.js.map +1 -1
  149. package/theme/neutral-colors.d.ts +1 -1
  150. package/theme/neutral-colors.d.ts.map +1 -1
  151. package/theme/neutral-colors.js +5 -0
  152. package/theme/neutral-colors.js.map +1 -1
  153. package/theme/theme-builder.d.ts +2 -3
  154. package/theme/theme-builder.d.ts.map +1 -1
  155. package/theme/theme-builder.js +41 -15
  156. package/theme/theme-builder.js.map +1 -1
  157. package/theme/theme-color.d.ts +1 -1
  158. package/theme/theme-color.d.ts.map +1 -1
  159. package/theme/theme-color.js.map +1 -1
  160. package/button/button-base.styles.d.ts.map +0 -1
  161. package/button/button-base.styles.js.map +0 -1
  162. package/table/table-body.d.ts +0 -11
  163. package/table/table-body.d.ts.map +0 -1
  164. package/table/table-body.js +0 -21
  165. package/table/table-body.js.map +0 -1
  166. package/table/table-body.styles.d.ts.map +0 -1
  167. package/table/table-body.styles.js +0 -11
  168. package/table/table-body.styles.js.map +0 -1
  169. package/table/table-cell.d.ts +0 -11
  170. package/table/table-cell.d.ts.map +0 -1
  171. package/table/table-cell.js +0 -21
  172. package/table/table-cell.js.map +0 -1
  173. package/table/table-cell.styles.d.ts.map +0 -1
  174. package/table/table-cell.styles.js +0 -11
  175. package/table/table-cell.styles.js.map +0 -1
  176. package/table/table-head.d.ts +0 -11
  177. package/table/table-head.d.ts.map +0 -1
  178. package/table/table-head.js +0 -21
  179. package/table/table-head.js.map +0 -1
  180. package/table/table-head.styles.d.ts.map +0 -1
  181. package/table/table-head.styles.js +0 -11
  182. package/table/table-head.styles.js.map +0 -1
  183. package/table/table-header-cell.d.ts +0 -11
  184. package/table/table-header-cell.d.ts.map +0 -1
  185. package/table/table-header-cell.js +0 -21
  186. package/table/table-header-cell.js.map +0 -1
  187. package/table/table-header-cell.styles.d.ts +0 -2
  188. package/table/table-header-cell.styles.d.ts.map +0 -1
  189. package/table/table-header-cell.styles.js +0 -12
  190. package/table/table-header-cell.styles.js.map +0 -1
  191. package/table/table-row.d.ts.map +0 -1
  192. package/table/table-row.js.map +0 -1
  193. package/table/table-row.styles.d.ts.map +0 -1
  194. package/table/table-row.styles.js +0 -7
  195. package/table/table-row.styles.js.map +0 -1
  196. package/table/table.d.ts +0 -16
  197. package/table/table.d.ts.map +0 -1
  198. package/table/table.js +0 -19
  199. package/table/table.js.map +0 -1
  200. package/table/table.styles.d.ts.map +0 -1
  201. package/table/table.styles.js +0 -16
  202. package/table/table.styles.js.map +0 -1
@@ -0,0 +1,122 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var UmSnackbar_1;
8
+ import { html, LitElement, nothing } from 'lit';
9
+ import { customElement, property, query } from 'lit/decorators.js';
10
+ import { styles as baseStyles } from '../shared/base.styles';
11
+ import { styles } from './snackbar.styles';
12
+ export var SnackbarDuration;
13
+ (function (SnackbarDuration) {
14
+ SnackbarDuration[SnackbarDuration["short"] = 2500] = "short";
15
+ SnackbarDuration[SnackbarDuration["long"] = 5000] = "long";
16
+ SnackbarDuration[SnackbarDuration["infinite"] = -1] = "infinite";
17
+ })(SnackbarDuration || (SnackbarDuration = {}));
18
+ let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.label = '';
22
+ this.buttonLabel = '';
23
+ this.showClose = false;
24
+ this.dismissed = false;
25
+ }
26
+ render() {
27
+ return html `
28
+ <div class="snackbar ${this.dismissed ? 'dismiss' : ''}">
29
+ <div class="label">${this.label}</div>
30
+ ${this.renderButton()}
31
+ ${this.renderCloseButton()}
32
+ </div>`;
33
+ }
34
+ renderButton() {
35
+ return this.buttonLabel
36
+ ? html `<u-button variant="text">${this.buttonLabel}</u-button>`
37
+ : nothing;
38
+ }
39
+ renderCloseButton() {
40
+ return this.showClose
41
+ ? html `<u-icon-button><i class="mdi mdi-close">X</i></u-icon-button>`
42
+ : nothing;
43
+ }
44
+ dismiss() {
45
+ if (this.dismissed) {
46
+ return;
47
+ }
48
+ this.dismissed = true;
49
+ const onAnimationEnd = () => {
50
+ this.snackbar.removeEventListener('animationend', onAnimationEnd);
51
+ this.remove();
52
+ UmSnackbar_1.showNext();
53
+ };
54
+ this.snackbar.addEventListener('animationend', onAnimationEnd);
55
+ }
56
+ static show(configOrLabel) {
57
+ if (typeof configOrLabel === 'string') {
58
+ configOrLabel = {
59
+ label: configOrLabel
60
+ };
61
+ }
62
+ configOrLabel.duration ??= SnackbarDuration.short;
63
+ const snackbar = this.createSnackbar(configOrLabel);
64
+ UmSnackbar_1._queue.push(snackbar);
65
+ if (!UmSnackbar_1._consuming) {
66
+ UmSnackbar_1.consumeQueue();
67
+ }
68
+ return snackbar;
69
+ }
70
+ static consumeQueue() {
71
+ if (UmSnackbar_1._queue.length) {
72
+ UmSnackbar_1._consuming = true;
73
+ UmSnackbar_1.showNext();
74
+ }
75
+ }
76
+ static showNext() {
77
+ if (!UmSnackbar_1._queue.length) {
78
+ UmSnackbar_1._consuming = false;
79
+ return;
80
+ }
81
+ const snackbar = UmSnackbar_1._queue[0];
82
+ UmSnackbar_1._queue = UmSnackbar_1._queue.slice(1);
83
+ document.body.appendChild(snackbar);
84
+ if (snackbar.duration === -1) {
85
+ return;
86
+ }
87
+ setTimeout(() => snackbar.dismiss(), snackbar.duration);
88
+ }
89
+ static createSnackbar(config) {
90
+ const snackbar = document.createElement("u-snackbar");
91
+ snackbar.label = config.label;
92
+ snackbar.buttonLabel = config.buttonLabel;
93
+ snackbar.showClose = config.showClose;
94
+ snackbar.duration = config.duration;
95
+ return snackbar;
96
+ }
97
+ };
98
+ UmSnackbar.styles = [
99
+ baseStyles,
100
+ styles
101
+ ];
102
+ UmSnackbar._queue = [];
103
+ __decorate([
104
+ property({ reflect: true })
105
+ ], UmSnackbar.prototype, "label", void 0);
106
+ __decorate([
107
+ property({ reflect: true })
108
+ ], UmSnackbar.prototype, "buttonLabel", void 0);
109
+ __decorate([
110
+ property({ type: Boolean, attribute: 'show-close', reflect: true })
111
+ ], UmSnackbar.prototype, "showClose", void 0);
112
+ __decorate([
113
+ property({ type: Boolean, reflect: true })
114
+ ], UmSnackbar.prototype, "dismissed", void 0);
115
+ __decorate([
116
+ query('.snackbar')
117
+ ], UmSnackbar.prototype, "snackbar", void 0);
118
+ UmSnackbar = UmSnackbar_1 = __decorate([
119
+ customElement('u-snackbar')
120
+ ], UmSnackbar);
121
+ export { UmSnackbar };
122
+ //# sourceMappingURL=snackbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snackbar.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles';\nimport { styles } from './snackbar.styles';\n\nexport interface SnackbarConfig {\n label: string;\n duration?: SnackbarDuration;\n buttonLabel?: string;\n showClose?: boolean;\n}\n\nexport enum SnackbarDuration {\n short = 2500,\n long = 5000,\n infinite = -1\n}\n\n@customElement('u-snackbar')\nexport class UmSnackbar extends LitElement {\n\n static override styles = [\n baseStyles,\n styles\n ];\n\n @property({reflect: true}) label: string = '';\n @property({reflect: true}) buttonLabel: string = '';\n @property({type: Boolean, attribute: 'show-close', reflect: true}) showClose = false;\n @property({type: Boolean, reflect: true}) dismissed = false;\n\n private duration!: SnackbarDuration;\n @query('.snackbar') private snackbar!: HTMLElement;\n\n override render(): HTMLTemplateResult {\n return html`\n <div class=\"snackbar ${this.dismissed ? 'dismiss' : ''}\">\n <div class=\"label\">${this.label}</div>\n ${this.renderButton()}\n ${this.renderCloseButton()}\n </div>`;\n }\n\n private renderButton() {\n return this.buttonLabel\n ? html`<u-button variant=\"text\">${this.buttonLabel}</u-button>`\n : nothing;\n }\n\n private renderCloseButton() {\n return this.showClose\n ? html`<u-icon-button><i class=\"mdi mdi-close\">X</i></u-icon-button>`\n : nothing;\n }\n\n dismiss(): void {\n if (this.dismissed) {\n return;\n }\n\n this.dismissed = true;\n\n const onAnimationEnd = () => {\n this.snackbar.removeEventListener('animationend', onAnimationEnd);\n this.remove();\n\n UmSnackbar.showNext();\n };\n\n this.snackbar.addEventListener('animationend', onAnimationEnd);\n }\n\n private static _queue: UmSnackbar[] = [];\n private static _consuming: boolean;\n\n static show(label: string): UmSnackbar;\n static show(config: SnackbarConfig): UmSnackbar;\n static show(configOrLabel: SnackbarConfig | string): UmSnackbar {\n\n if (typeof configOrLabel === 'string') {\n configOrLabel = {\n label: configOrLabel\n }\n }\n\n configOrLabel.duration ??= SnackbarDuration.short;\n\n const snackbar = this.createSnackbar(<SnackbarConfig>configOrLabel);\n UmSnackbar._queue.push(snackbar);\n\n if (!UmSnackbar._consuming) {\n UmSnackbar.consumeQueue();\n }\n\n return snackbar;\n }\n\n private static consumeQueue() {\n\n if (UmSnackbar._queue.length) {\n UmSnackbar._consuming = true;\n UmSnackbar.showNext();\n }\n }\n\n private static showNext() {\n if (!UmSnackbar._queue.length) {\n UmSnackbar._consuming = false;\n return;\n }\n \n const snackbar = UmSnackbar._queue[0];\n\n UmSnackbar._queue = UmSnackbar._queue.slice(1);\n\n document.body.appendChild(snackbar);\n\n if (snackbar.duration === -1) {\n return;\n }\n\n setTimeout(() => snackbar.dismiss(), snackbar.duration);\n }\n\n private static createSnackbar(config: SnackbarConfig): UmSnackbar {\n const snackbar = document.createElement(\"u-snackbar\");\n snackbar.label = config.label;\n snackbar.buttonLabel = config.buttonLabel!;\n snackbar.showClose = config.showClose!;\n snackbar.duration = config.duration!;\n\n return snackbar;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-snackbar': UmSnackbar;\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  export declare const styles: import("lit").CSSResult;
2
- //# sourceMappingURL=table-head.styles.d.ts.map
2
+ //# sourceMappingURL=snackbar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snackbar.styles.d.ts","sourceRoot":"","sources":["../../src/snackbar/snackbar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA8ElB,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ --u-elevation-level: var(--u-snackbar-elevation-level, 3);
5
+ --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-medium, 16px));
6
+ position: fixed;
7
+ inset-inline: 0;
8
+ inset-block-end: 0;
9
+ padding: var(--_snackbar-margin);
10
+ z-index: var(--u-snackbar-z-index, 1070);
11
+ display: flex;
12
+ justify-content: center;
13
+ }
14
+
15
+ .snackbar {
16
+ display: flex;
17
+ align-items: center;
18
+ min-height: var(--u-snackbar-height, 48px);
19
+ color: var(--u-snackbar-text-color, var(--u-color-on-inverse-surface, rgb(245, 239, 247)));
20
+ background-color: var(--u-snackbar-background-color, var(--u-color-inverse-surface, rgb(50, 47, 53)));
21
+ border-radius: var(--u-snackbar-shape, var(--u-shape-corner-extra-small, 4px));
22
+ animation-name: snackbar-fade-in;
23
+ animation-duration: 450ms;
24
+ animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
25
+ animation-fill-mode: forwards;
26
+ min-width: var(--u-snackbar-min-width, 100%);
27
+ max-width: var(--u-snackbar-max-width, 100%);
28
+ }
29
+ .snackbar.dismiss {
30
+ animation-name: snackbar-fade-out;
31
+ }
32
+
33
+ u-button {
34
+ color: var(--u-color-inverse-primary, );
35
+ margin-inline: var(--u-snackbar-text-button-margin, var(--u-spacing-small, 8px));
36
+ }
37
+
38
+ u-icon-button {
39
+ color: var(--u-color-on-inverse-surface, rgb(245, 239, 247));
40
+ margin-inline: var(--u-snackbar-close-button-margin, var(--u-spacing-extra-small, 4px));
41
+ }
42
+
43
+ .label {
44
+ flex: 1;
45
+ overflow: hidden;
46
+ color: var(--u-on-inverse-surface-color);
47
+ padding: var(--u-snackbar-text-margin, var(--u-spacing-medium, 16px));
48
+ line-height: 18px;
49
+ }
50
+
51
+ @media (min-width: 840px) {
52
+ :host {
53
+ --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-large, 24px));
54
+ }
55
+ .snackbar {
56
+ min-width: var(--u-snackbar-min-width, 288px);
57
+ max-width: var(--u-snackbar-max-width, 568px);
58
+ }
59
+ }
60
+ @keyframes snackbar-fade-in {
61
+ 0% {
62
+ opacity: 0;
63
+ transform: scale3d(0.5, 0.5, 1);
64
+ }
65
+ 100% {
66
+ opacity: 1;
67
+ transform: scale3d(1, 1, 1);
68
+ }
69
+ }
70
+ @keyframes snackbar-fade-out {
71
+ 0% {
72
+ opacity: 1;
73
+ transform: scale3d(1, 1, 1);
74
+ }
75
+ 100% {
76
+ opacity: 0;
77
+ transform: scale3d(0.5, 0.5, 1);
78
+ }
79
+ }
80
+ `;
81
+ //# sourceMappingURL=snackbar.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snackbar.styles.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --u-elevation-level: var(--u-snackbar-elevation-level, 3);\n --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-medium, 16px));\n position: fixed;\n inset-inline: 0;\n inset-block-end: 0;\n padding: var(--_snackbar-margin);\n z-index: var(--u-snackbar-z-index, 1070);\n display: flex;\n justify-content: center;\n }\n\n .snackbar {\n display: flex;\n align-items: center;\n min-height: var(--u-snackbar-height, 48px);\n color: var(--u-snackbar-text-color, var(--u-color-on-inverse-surface, rgb(245, 239, 247)));\n background-color: var(--u-snackbar-background-color, var(--u-color-inverse-surface, rgb(50, 47, 53)));\n border-radius: var(--u-snackbar-shape, var(--u-shape-corner-extra-small, 4px));\n animation-name: snackbar-fade-in;\n animation-duration: 450ms;\n animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\n animation-fill-mode: forwards;\n min-width: var(--u-snackbar-min-width, 100%);\n max-width: var(--u-snackbar-max-width, 100%);\n }\n .snackbar.dismiss {\n animation-name: snackbar-fade-out;\n }\n\n u-button {\n color: var(--u-color-inverse-primary, );\n margin-inline: var(--u-snackbar-text-button-margin, var(--u-spacing-small, 8px));\n }\n\n u-icon-button {\n color: var(--u-color-on-inverse-surface, rgb(245, 239, 247));\n margin-inline: var(--u-snackbar-close-button-margin, var(--u-spacing-extra-small, 4px));\n }\n\n .label {\n flex: 1;\n overflow: hidden;\n color: var(--u-on-inverse-surface-color);\n padding: var(--u-snackbar-text-margin, var(--u-spacing-medium, 16px));\n line-height: 18px;\n }\n\n @media (min-width: 840px) {\n :host {\n --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-large, 24px));\n }\n .snackbar {\n min-width: var(--u-snackbar-min-width, 288px);\n max-width: var(--u-snackbar-max-width, 568px);\n }\n }\n @keyframes snackbar-fade-in {\n 0% {\n opacity: 0;\n transform: scale3d(0.5, 0.5, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n }\n @keyframes snackbar-fade-out {\n 0% {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.5, 0.5, 1);\n }\n }\n`;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { hexFromArgb } from '@material/material-color-utilities';
2
- import { RgbColor } from './rgb-color.js';
2
+ import { RgbColor } from './rgb-color';
3
3
  export class CssVarBuilder {
4
4
  constructor() {
5
5
  this.content = '';
@@ -1 +1 @@
1
- {"version":3,"file":"css-var-builder.js","sourceRoot":"","sources":["../../src/theme/css-var-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,aAAa;IAIxB;QAFQ,YAAO,GAAG,EAAE,CAAC;IAGrB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAE7B,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK;CACrC,CAAC;QAEE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAA;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF","sourcesContent":["import { hexFromArgb } from '@material/material-color-utilities';\n\nimport { RgbColor } from './rgb-color.js';\n\nexport class CssVarBuilder {\n\n private content = '';\n\n private constructor() {\n }\n\n static create(): CssVarBuilder {\n return new CssVarBuilder();\n }\n\n add(name: string, value: string): CssVarBuilder {\n\n const cssVar = ` ${name}: ${value};\n`;\n\n this.content += cssVar\n\n return this;\n }\n\n addFromArgb(name: string, argb: number): CssVarBuilder {\n this.add(`--u-color-${name}`, hexFromArgb(argb));\n this.add(`--u-color-${name}-rgb`, RgbColor.fromArgb(argb).toString());\n\n return this;\n }\n\n build(): string {\n return this.content;\n }\n}\n"]}
1
+ {"version":3,"file":"css-var-builder.js","sourceRoot":"","sources":["../../src/theme/css-var-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,aAAa;IAIxB;QAFQ,YAAO,GAAG,EAAE,CAAC;IAGrB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAE7B,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK;CACrC,CAAC;QAEE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAA;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF","sourcesContent":["import { hexFromArgb } from '@material/material-color-utilities';\n\nimport { RgbColor } from './rgb-color';\n\nexport class CssVarBuilder {\n\n private content = '';\n\n private constructor() {\n }\n\n static create(): CssVarBuilder {\n return new CssVarBuilder();\n }\n\n add(name: string, value: string): CssVarBuilder {\n\n const cssVar = ` ${name}: ${value};\n`;\n\n this.content += cssVar\n\n return this;\n }\n\n addFromArgb(name: string, argb: number): CssVarBuilder {\n this.add(`--u-color-${name}`, hexFromArgb(argb));\n this.add(`--u-color-${name}-rgb`, RgbColor.fromArgb(argb).toString());\n\n return this;\n }\n\n build(): string {\n return this.content;\n }\n}\n"]}
package/theme/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './theme-builder.js';
1
+ export * from './theme-builder';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
package/theme/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from './theme-builder.js';
1
+ export * from './theme-builder';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './theme-builder.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './theme-builder';\n"]}
@@ -1,4 +1,4 @@
1
- import { Color } from './color.js';
1
+ import { Color } from './color';
2
2
  export declare const neutralColors: Color[];
3
3
  export declare const neutralVariantColors: Color[];
4
4
  //# sourceMappingURL=neutral-colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"neutral-colors.d.ts","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,eAAO,MAAM,aAAa,EAAE,KAAK,EAYhC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,EAIvC,CAAA"}
1
+ {"version":3,"file":"neutral-colors.d.ts","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,eAAO,MAAM,aAAa,EAAE,KAAK,EAgBhC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,EAKvC,CAAA"}
@@ -8,10 +8,15 @@ export const neutralColors = [
8
8
  { name: 'surface-container-high', lightTone: 92, darkTone: 17 },
9
9
  { name: 'surface-container-highest', lightTone: 90, darkTone: 22 },
10
10
  { name: 'on-surface', lightTone: 10, darkTone: 90 },
11
+ { name: 'light', fixedTone: 98 },
12
+ { name: 'on-light', fixedTone: 10 },
13
+ { name: 'dark', fixedTone: 6 },
14
+ { name: 'on-dark', fixedTone: 90 },
11
15
  { name: 'scrim', fixedTone: 0 },
12
16
  { name: 'shadow', fixedTone: 0 },
13
17
  ];
14
18
  export const neutralVariantColors = [
19
+ { name: 'surface-variant', lightTone: 90, darkTone: 30 },
15
20
  { name: 'on-surface-variant', lightTone: 30, darkTone: 80 },
16
21
  { name: 'outline', lightTone: 50, darkTone: 60 },
17
22
  { name: 'outline-variant', lightTone: 80, darkTone: 30 }
@@ -1 +1 @@
1
- {"version":3,"file":"neutral-colors.js","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAY;IAC3C,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;CACzD,CAAA","sourcesContent":["import {Color} from './color.js';\n\nexport const neutralColors: Color[] = [\n { name: 'surface', lightTone: 98, darkTone: 6 },\n { name: 'surface-bright', lightTone: 98, darkTone: 24 },\n { name: 'surface-dim', lightTone: 87, darkTone: 6 },\n { name: 'surface-container-lowest', lightTone: 100, darkTone: 4 },\n { name: 'surface-container-low', lightTone: 96, darkTone: 10 },\n { name: 'surface-container', lightTone: 94, darkTone: 12 },\n { name: 'surface-container-high', lightTone: 92, darkTone: 17 },\n { name: 'surface-container-highest', lightTone: 90, darkTone: 22 },\n { name: 'on-surface', lightTone: 10, darkTone: 90 },\n { name: 'scrim', fixedTone: 0 },\n { name: 'shadow', fixedTone: 0 },\n]\n\nexport const neutralVariantColors: Color[] = [\n { name: 'on-surface-variant', lightTone: 30, darkTone: 80 },\n { name: 'outline', lightTone: 50, darkTone: 60 },\n { name: 'outline-variant', lightTone: 80, darkTone: 30 }\n]\n"]}
1
+ {"version":3,"file":"neutral-colors.js","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;IAChC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;IACnC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;IAC9B,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAY;IAC3C,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxD,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;CACzD,CAAA","sourcesContent":["import {Color} from './color';\n\nexport const neutralColors: Color[] = [\n { name: 'surface', lightTone: 98, darkTone: 6 },\n { name: 'surface-bright', lightTone: 98, darkTone: 24 },\n { name: 'surface-dim', lightTone: 87, darkTone: 6 },\n { name: 'surface-container-lowest', lightTone: 100, darkTone: 4 },\n { name: 'surface-container-low', lightTone: 96, darkTone: 10 },\n { name: 'surface-container', lightTone: 94, darkTone: 12 },\n { name: 'surface-container-high', lightTone: 92, darkTone: 17 },\n { name: 'surface-container-highest', lightTone: 90, darkTone: 22 },\n { name: 'on-surface', lightTone: 10, darkTone: 90 },\n { name: 'light', fixedTone: 98 },\n { name: 'on-light', fixedTone: 10 },\n { name: 'dark', fixedTone: 6 },\n { name: 'on-dark', fixedTone: 90 },\n { name: 'scrim', fixedTone: 0 },\n { name: 'shadow', fixedTone: 0 },\n]\n\nexport const neutralVariantColors: Color[] = [\n { name: 'surface-variant', lightTone: 90, darkTone: 30 },\n { name: 'on-surface-variant', lightTone: 30, darkTone: 80 },\n { name: 'outline', lightTone: 50, darkTone: 60 },\n { name: 'outline-variant', lightTone: 80, darkTone: 30 }\n]\n"]}
@@ -1,9 +1,8 @@
1
1
  import { TonalPalette } from '@material/material-color-utilities';
2
- import { ThemeColor } from './theme-color.js';
2
+ import { ThemeColor } from './theme-color';
3
3
  export declare class ThemeBuilder {
4
4
  cssClass: string | null;
5
5
  colors: ThemeColor[];
6
- commonColors: ThemeColor[];
7
6
  neutralColorPalette: TonalPalette;
8
7
  neutralVariantColorPalette: TonalPalette;
9
8
  private partial;
@@ -12,7 +11,7 @@ export declare class ThemeBuilder {
12
11
  static createPartial(): ThemeBuilder;
13
12
  addColorFromHex(name: string, hex: string): ThemeBuilder;
14
13
  addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder;
15
- addCommonColor(name: string, hex: string): ThemeBuilder;
14
+ addFixedColor(name: string, hex: string): ThemeBuilder;
16
15
  setCssClass(cssClass: string): ThemeBuilder;
17
16
  private ensureCssClassStartsWithDot;
18
17
  private ensureThemeColors;
@@ -1 +1 @@
1
- {"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAK5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,qBAAa,YAAY;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAM;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAM;IAChC,mBAAmB,EAAG,YAAY,CAAC;IACnC,0BAA0B,EAAG,YAAY,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAKpD,MAAM,CAAC,aAAa,IAAI,YAAY;IAOpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAOxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAatE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAKvD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAK3C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,0BAA0B;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAS3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IA2BpB,KAAK,IAAI,MAAM;CAoBhB"}
1
+ {"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAK5F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,qBAAa,YAAY;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAM;IAC1B,mBAAmB,EAAG,YAAY,CAAC;IACnC,0BAA0B,EAAG,YAAY,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAKpD,MAAM,CAAC,aAAa,IAAI,YAAY;IAOpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAOxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAatE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAStD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAK3C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,0BAA0B;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAS3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IAsCpB,KAAK,IAAI,MAAM;CAoBhB"}
@@ -1,6 +1,6 @@
1
1
  import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';
2
- import { CssVarBuilder } from './css-var-builder.js';
3
- import { neutralColors, neutralVariantColors } from './neutral-colors.js';
2
+ import { CssVarBuilder } from './css-var-builder';
3
+ import { neutralColors, neutralVariantColors } from './neutral-colors';
4
4
  function getCss(selector, content) {
5
5
  return `${selector} {
6
6
  ${content}}`;
@@ -8,7 +8,6 @@ ${content}}`;
8
8
  export class ThemeBuilder {
9
9
  constructor() {
10
10
  this.colors = [];
11
- this.commonColors = [];
12
11
  this.partial = false;
13
12
  this.cssClass = null;
14
13
  }
@@ -32,13 +31,17 @@ export class ThemeBuilder {
32
31
  this.colors.push({ name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette });
33
32
  this.colors.push({ name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette });
34
33
  this.colors.push({ name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette });
35
- this.colors.push({ name: `${name}-fixed-dim`, fixedTone: 800, tonalPalette: palette });
34
+ this.colors.push({ name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette });
36
35
  this.colors.push({ name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette });
37
36
  this.colors.push({ name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette });
38
37
  return this;
39
38
  }
40
- addCommonColor(name, hex) {
41
- this.commonColors.push({ name, tonalPalette: TonalPalette.fromInt(argbFromHex(hex)) });
39
+ addFixedColor(name, hex) {
40
+ const palette = TonalPalette.fromInt(argbFromHex(hex));
41
+ this.colors.push({ name, fixedTone: 80, tonalPalette: palette });
42
+ this.colors.push({ name: `on-${name}`, fixedTone: 15, tonalPalette: palette });
43
+ this.colors.push({ name: `${name}-container`, fixedTone: 90, tonalPalette: palette });
44
+ this.colors.push({ name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette });
42
45
  return this;
43
46
  }
44
47
  setCssClass(cssClass) {
@@ -60,6 +63,18 @@ export class ThemeBuilder {
60
63
  if (!this.colors.find(c => c.name === 'tertiary')) {
61
64
  this.addColorFromPalette('tertiary', palette.a3);
62
65
  }
66
+ if (!this.colors.find(c => c.name === 'success')) {
67
+ this.addFixedColor('success', '#007e33');
68
+ }
69
+ if (!this.colors.find(c => c.name === 'info')) {
70
+ this.addFixedColor('info', '#33b5e5');
71
+ }
72
+ if (!this.colors.find(c => c.name === 'warning')) {
73
+ this.addFixedColor('warning', '#ffbb33');
74
+ }
75
+ if (!this.colors.find(c => c.name === 'error')) {
76
+ this.addColorFromHex('error', '#b3261e');
77
+ }
63
78
  if (!this.neutralColorPalette) {
64
79
  this.neutralColorPalette = palette.n1;
65
80
  }
@@ -71,10 +86,14 @@ export class ThemeBuilder {
71
86
  const builder = CssVarBuilder.create();
72
87
  this.addColors(builder, neutralColors, this.neutralColorPalette, dark);
73
88
  builder
74
- .add('--u-color-background', "var(--u-color-surface-container-highest)")
75
- .add('--u-color-inverse-background', "var(--u-color-inverse-surface-container-highest)")
76
- .add('--u-color-on-background', "var(--u-color-on-surface)")
77
- .add('--u-color-on-inverse-background', "var(--u-color-inverse-on-surface)");
89
+ .add('--u-color-body', "var(--u-color-surface)")
90
+ .add('--u-color-body-rgb', "var(--u-color-surface-rgb)")
91
+ .add('--u-color-inverse-body', "var(--u-color-inverse-surface)")
92
+ .add('--u-color-inverse-body-rgb', "var(--u-color-inverse-surface-rgb)")
93
+ .add('--u-color-on-body', "var(--u-color-on-surface)")
94
+ .add('--u-color-on-body-rgb', "var(--u-color-on-surface-rgb)")
95
+ .add('--u-color-on-inverse-body', "var(--u-color-on-inverse-surface)")
96
+ .add('--u-color-on-inverse-body-rgb', "var(--u-color-on-inverse-surface-rgb)");
78
97
  return builder.build();
79
98
  }
80
99
  getNeutralVariantVariables(dark) {
@@ -107,7 +126,9 @@ export class ThemeBuilder {
107
126
  }
108
127
  addToneColor(builder, color, palette, dark) {
109
128
  if (color.fixedTone !== undefined) {
110
- builder.addFromArgb(color.name, palette.tone(color.fixedTone));
129
+ if (!dark) {
130
+ builder.addFromArgb(color.name, palette.tone(color.fixedTone));
131
+ }
111
132
  return;
112
133
  }
113
134
  const tone = dark
@@ -116,15 +137,20 @@ export class ThemeBuilder {
116
137
  const inverseTone = dark
117
138
  ? color.lightTone
118
139
  : color.darkTone;
140
+ const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');
119
141
  builder
120
142
  .addFromArgb(color.name, palette.tone(tone))
121
- .addFromArgb(`inverse-${color.name}`, palette.tone(inverseTone));
143
+ .addFromArgb(inverseName, palette.tone(inverseTone));
144
+ if (color.name === 'surface' || color.name === 'on-surface') {
145
+ const prefix = color.name.startsWith('on-')
146
+ ? 'on-'
147
+ : '';
148
+ builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone));
149
+ builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone));
150
+ }
122
151
  if (dark) {
123
152
  return;
124
153
  }
125
- builder
126
- .addFromArgb(`light-${color.name}`, palette.tone(color.lightTone))
127
- .addFromArgb(`dark-${color.name}`, palette.tone(color.darkTone));
128
154
  }
129
155
  build() {
130
156
  this.ensureCssClassStartsWithDot();
@@ -1 +1 @@
1
- {"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color.js';\nimport { CssVarBuilder } from './css-var-builder.js';\nimport { neutralColors, neutralVariantColors } from './neutral-colors.js';\nimport { ThemeColor } from './theme-color.js';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n commonColors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n\n private constructor() {\n this.cssClass = null;\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder()\n .addColorFromHex('primary', primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({name, lightTone: 40, darkTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette});\n\n this.colors.push({name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `${name}-fixed-dim`, fixedTone: 800, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette});\n return this;\n }\n\n addCommonColor(name: string, hex: string): ThemeBuilder {\n this.commonColors.push({name, tonalPalette: TonalPalette.fromInt(argbFromHex(hex))})\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n\n const primaryColor = this.colors.find(c => c.name === 'primary')!;\n\n const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));\n\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', palette.a2);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', palette.a3);\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = palette.n1;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = palette.n2;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-background', \"var(--u-color-surface-container-highest)\")\n .add('--u-color-inverse-background', \"var(--u-color-inverse-surface-container-highest)\")\n .add('--u-color-on-background', \"var(--u-color-on-surface)\")\n .add('--u-color-on-inverse-background', \"var(--u-color-inverse-on-surface)\");\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build()\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark)\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n return;\n }\n\n const tone = dark\n ? color.darkTone!\n : color.lightTone!;\n\n const inverseTone = dark\n ? color.lightTone!\n : color.darkTone!;\n\n builder\n .addFromArgb(color.name, palette.tone(tone))\n .addFromArgb(`inverse-${color.name}`, palette.tone(inverseTone));\n\n if (dark) {\n return;\n }\n\n builder\n .addFromArgb(`light-${color.name}`, palette.tone(color.lightTone!))\n .addFromArgb(`dark-${color.name}`, palette.tone(color.darkTone!));\n }\n\n build(): string {\n\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}
1
+ {"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color';\nimport { CssVarBuilder } from './css-var-builder';\nimport { neutralColors, neutralVariantColors } from './neutral-colors';\nimport { ThemeColor } from './theme-color';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n\n private constructor() {\n this.cssClass = null;\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder()\n .addColorFromHex('primary', primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({name, lightTone: 40, darkTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette});\n\n this.colors.push({name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette});\n return this;\n }\n\n addFixedColor(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n this.colors.push({name, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, fixedTone: 15, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette});\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n\n const primaryColor = this.colors.find(c => c.name === 'primary')!;\n\n const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));\n\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', palette.a2);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', palette.a3);\n }\n\n if (!this.colors.find(c => c.name === 'success')) {\n this.addFixedColor('success', '#007e33');\n }\n\n if (!this.colors.find(c => c.name === 'info')) {\n this.addFixedColor('info', '#33b5e5');\n }\n\n if (!this.colors.find(c => c.name === 'warning')) {\n this.addFixedColor('warning', '#ffbb33');\n }\n\n if (!this.colors.find(c => c.name === 'error')) {\n this.addColorFromHex('error', '#b3261e');\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = palette.n1;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = palette.n2;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-body', \"var(--u-color-surface)\")\n .add('--u-color-body-rgb', \"var(--u-color-surface-rgb)\")\n .add('--u-color-inverse-body', \"var(--u-color-inverse-surface)\")\n .add('--u-color-inverse-body-rgb', \"var(--u-color-inverse-surface-rgb)\")\n .add('--u-color-on-body', \"var(--u-color-on-surface)\")\n .add('--u-color-on-body-rgb', \"var(--u-color-on-surface-rgb)\")\n .add('--u-color-on-inverse-body', \"var(--u-color-on-inverse-surface)\")\n .add('--u-color-on-inverse-body-rgb', \"var(--u-color-on-inverse-surface-rgb)\");\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build()\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark)\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n\n if (!dark) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n }\n\n return;\n }\n\n const tone = dark\n ? color.darkTone!\n : color.lightTone!;\n\n const inverseTone = dark\n ? color.lightTone!\n : color.darkTone!;\n\n const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');\n\n builder\n .addFromArgb(color.name, palette.tone(tone))\n .addFromArgb(inverseName, palette.tone(inverseTone));\n\n if (color.name === 'surface' || color.name === 'on-surface') {\n const prefix = color.name.startsWith('on-')\n ? 'on-'\n : '';\n\n builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone!))\n builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone!))\n }\n\n if (dark) {\n return;\n }\n }\n\n build(): string {\n\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { TonalPalette } from '@material/material-color-utilities';
2
- import { Color } from './color.js';
2
+ import { Color } from './color';
3
3
  export interface ThemeColor extends Color {
4
4
  tonalPalette: TonalPalette;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme-color.d.ts","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B"}
1
+ {"version":3,"file":"theme-color.d.ts","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-color.js","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"","sourcesContent":["import { TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color.js';\n\nexport interface ThemeColor extends Color {\n tonalPalette: TonalPalette;\n}\n"]}
1
+ {"version":3,"file":"theme-color.js","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"","sourcesContent":["import { TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color';\n\nexport interface ThemeColor extends Color {\n tonalPalette: TonalPalette;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-base.styles.d.ts","sourceRoot":"","sources":["../../src/button/button-base.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAwElB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-base.styles.js","sourceRoot":"","sources":["../../src/button/button-base.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_color-primary: var(--u-color-primary, rgb(103, 80, 164));\n -webkit-tap-highlight-color: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: baseline;\n position: relative;\n white-space: nowrap;\n font-family: var(--u-font-family-base, system-ui);\n transition: color 150ms ease-in-out, background-color 150ms ease-in-out;\n }\n\n :host([disabled]) {\n --u-elevation-level: 0 !important;\n background-color: var(--u-button-disabled-background-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), 0.12)) !important;\n color: var(--u-button-disabled-text-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), 0.38)) !important;\n }\n\n :host([disabled]) .button {\n cursor: default;\n }\n\n * {\n color: inherit;\n }\n\n u-elevation {\n z-index: -1;\n }\n\n .button {\n cursor: pointer;\n position: absolute;\n inset: 0;\n font-family: inherit;\n border-radius: inherit;\n color: inherit;\n border: none;\n margin: 0;\n padding: 0;\n text-align: center;\n white-space: nowrap;\n background: transparent;\n user-select: none;\n text-decoration: none;\n outline: 0;\n z-index: 0;\n }\n\n .button:focus-visible {\n animation: offset-pulse 400ms ease;\n animation-fill-mode: forwards;\n outline-offset: 2px;\n }\n\n ::slotted([slot=icon]) {\n display: inline-block;\n }\n\n @keyframes offset-pulse {\n 0% {\n outline: 4px solid var(--_color-primary);\n }\n 50% {\n outline: 8px solid var(--_color-primary);\n }\n 100% {\n outline: 4px solid var(--_color-primary);\n }\n }\n`;\n"]}
@@ -1,11 +0,0 @@
1
- import { HTMLTemplateResult, LitElement } from 'lit';
2
- export declare class UmTableBody extends LitElement {
3
- static styles: import("lit").CSSResult[];
4
- protected render(): HTMLTemplateResult;
5
- }
6
- declare global {
7
- interface HTMLElementTagNameMap {
8
- 'u-tbody': UmTableBody;
9
- }
10
- }
11
- //# sourceMappingURL=table-body.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-body.d.ts","sourceRoot":"","sources":["../../src/table/table-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAM3D,qBACa,WAAY,SAAQ,UAAU;IAEzC,OAAgB,MAAM,4BAAwB;cAE3B,MAAM,IAAI,kBAAkB;CAGhD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,WAAW,CAAC;KACxB;CACF"}
@@ -1,21 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { html, LitElement } from 'lit';
8
- import { customElement } from 'lit/decorators.js';
9
- import { styles as baseStyles } from '../shared/base.styles';
10
- import { styles } from './table-body.styles';
11
- let UmTableBody = class UmTableBody extends LitElement {
12
- render() {
13
- return html `<slot></slot>`;
14
- }
15
- };
16
- UmTableBody.styles = [baseStyles, styles];
17
- UmTableBody = __decorate([
18
- customElement('u-tbody')
19
- ], UmTableBody);
20
- export { UmTableBody };
21
- //# sourceMappingURL=table-body.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-body.js","sourceRoot":"","sources":["../../src/table/table-body.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAItB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAJe,kBAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;AAFnC,WAAW;IADvB,aAAa,CAAC,SAAS,CAAC;GACZ,WAAW,CAOvB","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles';\nimport { styles } from './table-body.styles';\n\n@customElement('u-tbody')\nexport class UmTableBody extends LitElement {\n\n static override styles = [baseStyles, styles];\n\n protected override render(): HTMLTemplateResult {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-tbody': UmTableBody;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-body.styles.d.ts","sourceRoot":"","sources":["../../src/table/table-body.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAQlB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `
3
- :host {
4
- display: table-row-group;
5
- }
6
-
7
- ::slotted(u-tr:not(:first-child)) {
8
- border-top: 1px solid var(--u-color-outline-variant, rgb(202, 196, 208));
9
- }
10
- `;
11
- //# sourceMappingURL=table-body.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-body.styles.js","sourceRoot":"","sources":["../../src/table/table-body.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;CAQzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: table-row-group;\n }\n\n ::slotted(u-tr:not(:first-child)) {\n border-top: 1px solid var(--u-color-outline-variant, rgb(202, 196, 208));\n }\n`;\n"]}