beercss 3.13.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +331 -328
  3. package/custom-element/index.d.ts +18 -18
  4. package/custom-element/index.js +7 -7
  5. package/dist/cdn/arch.svg +3 -3
  6. package/dist/cdn/arrow.svg +3 -3
  7. package/dist/cdn/beer.css +5904 -4792
  8. package/dist/cdn/beer.custom-element.js +37 -38
  9. package/dist/cdn/beer.custom-element.min.js +1 -1
  10. package/dist/cdn/beer.js +636 -635
  11. package/dist/cdn/beer.min.css +1 -1
  12. package/dist/cdn/beer.min.js +1 -1
  13. package/dist/cdn/beer.scoped.css +5909 -4793
  14. package/dist/cdn/beer.scoped.min.css +2 -1
  15. package/dist/cdn/boom.svg +3 -3
  16. package/dist/cdn/bun.svg +3 -3
  17. package/dist/cdn/burst.svg +3 -3
  18. package/dist/cdn/circle.svg +3 -3
  19. package/dist/cdn/clamshell.svg +3 -3
  20. package/dist/cdn/diamond.svg +3 -3
  21. package/dist/cdn/fan.svg +3 -3
  22. package/dist/cdn/flower.svg +3 -3
  23. package/dist/cdn/gem.svg +3 -3
  24. package/dist/cdn/ghost-ish.svg +3 -3
  25. package/dist/cdn/heart.svg +3 -3
  26. package/dist/cdn/leaf-clover4.svg +3 -3
  27. package/dist/cdn/leaf-clover8.svg +3 -3
  28. package/dist/cdn/loading-indicator.svg +18 -18
  29. package/dist/cdn/oval.svg +3 -3
  30. package/dist/cdn/pentagon.svg +3 -3
  31. package/dist/cdn/pill.svg +3 -3
  32. package/dist/cdn/pixel-circle.svg +3 -3
  33. package/dist/cdn/pixel-triangle.svg +3 -3
  34. package/dist/cdn/puffy-diamond.svg +3 -3
  35. package/dist/cdn/puffy.svg +3 -3
  36. package/dist/cdn/semicircle.svg +3 -3
  37. package/dist/cdn/sided-cookie12.svg +3 -3
  38. package/dist/cdn/sided-cookie4.svg +3 -3
  39. package/dist/cdn/sided-cookie6.svg +3 -3
  40. package/dist/cdn/sided-cookie7.svg +3 -3
  41. package/dist/cdn/sided-cookie9.svg +3 -3
  42. package/dist/cdn/slanted.svg +3 -3
  43. package/dist/cdn/soft-boom.svg +3 -3
  44. package/dist/cdn/soft-burst.svg +3 -3
  45. package/dist/cdn/square.svg +3 -3
  46. package/dist/cdn/sunny.svg +3 -3
  47. package/dist/cdn/triangle.svg +3 -3
  48. package/dist/cdn/very-sunny.svg +3 -3
  49. package/dist/cdn/wavy-circle.svg +3 -3
  50. package/dist/cdn/wavy.svg +4 -4
  51. package/index.d.ts +18 -18
  52. package/index.js +6 -6
  53. package/package.json +76 -76
  54. package/scoped/index.d.ts +18 -18
  55. package/scoped/index.js +6 -6
  56. package/src/cdn/beer.css +54 -52
  57. package/src/cdn/beer.ts +120 -120
  58. package/src/cdn/customElement.js +37 -38
  59. package/src/cdn/elements/badges.css +74 -74
  60. package/src/cdn/elements/bars.css +91 -91
  61. package/src/cdn/elements/buttons.css +105 -106
  62. package/src/cdn/elements/cards.css +26 -26
  63. package/src/cdn/elements/chips.css +37 -38
  64. package/src/cdn/elements/dialogs.css +145 -151
  65. package/src/cdn/elements/dialogs.ts +69 -69
  66. package/src/cdn/elements/dividers.css +48 -48
  67. package/src/cdn/elements/expansions.css +17 -10
  68. package/src/cdn/elements/fields.css +438 -439
  69. package/src/cdn/elements/fields.ts +165 -165
  70. package/src/cdn/elements/grids.css +171 -171
  71. package/src/cdn/elements/icons.css +77 -77
  72. package/src/cdn/elements/layouts.css +35 -35
  73. package/src/cdn/elements/lists.css +75 -71
  74. package/src/cdn/elements/mainLayouts.css +57 -57
  75. package/src/cdn/elements/media.css +112 -112
  76. package/src/cdn/elements/menus.css +294 -294
  77. package/src/cdn/elements/menus.ts +40 -40
  78. package/src/cdn/elements/navigations.css +461 -462
  79. package/src/cdn/elements/overlays.css +31 -31
  80. package/src/cdn/elements/pages.css +41 -41
  81. package/src/cdn/elements/pages.ts +6 -6
  82. package/src/cdn/elements/progress.css +207 -207
  83. package/src/cdn/elements/progress.ts +36 -34
  84. package/src/cdn/elements/selections.css +256 -256
  85. package/src/cdn/elements/shapes.css +258 -258
  86. package/src/cdn/elements/sliders.css +353 -357
  87. package/src/cdn/elements/sliders.ts +74 -74
  88. package/src/cdn/elements/snackbars.css +47 -47
  89. package/src/cdn/elements/snackbars.ts +26 -26
  90. package/src/cdn/elements/tables.css +65 -65
  91. package/src/cdn/elements/tabs.css +52 -52
  92. package/src/cdn/elements/tooltips.css +131 -131
  93. package/src/cdn/helpers/alignments.css +29 -29
  94. package/src/cdn/helpers/blurs.css +21 -21
  95. package/src/cdn/helpers/colors.css +930 -930
  96. package/src/cdn/helpers/directions.css +28 -28
  97. package/src/cdn/helpers/elevates.css +16 -16
  98. package/src/cdn/helpers/forms.css +75 -75
  99. package/src/cdn/helpers/margins.css +49 -49
  100. package/src/cdn/helpers/opacities.css +19 -19
  101. package/src/cdn/helpers/paddings.css +45 -45
  102. package/src/cdn/helpers/positions.css +45 -45
  103. package/src/cdn/helpers/responsive.css +22 -22
  104. package/src/cdn/helpers/ripples.css +33 -33
  105. package/src/cdn/helpers/ripples.ts +30 -30
  106. package/src/cdn/helpers/scrolls.css +7 -8
  107. package/src/cdn/helpers/shadows.css +23 -23
  108. package/src/cdn/helpers/sizes.css +45 -45
  109. package/src/cdn/helpers/spaces.css +19 -19
  110. package/src/cdn/helpers/typography.css +226 -225
  111. package/src/cdn/helpers/waves.css +43 -43
  112. package/src/cdn/helpers/zoom.css +19 -19
  113. package/src/cdn/interfaces.ts +3 -3
  114. package/src/cdn/settings/dark.css +38 -38
  115. package/src/cdn/settings/fonts.css +35 -35
  116. package/src/cdn/settings/globals.css +55 -18
  117. package/src/cdn/settings/light.css +39 -39
  118. package/src/cdn/{helpers → settings}/reset.css +76 -94
  119. package/src/cdn/{helpers → settings}/theme.css +186 -186
  120. package/src/cdn/{helpers → settings}/theme.ts +83 -83
  121. package/src/cdn/shapes/arch.svg +3 -3
  122. package/src/cdn/shapes/arrow.svg +3 -3
  123. package/src/cdn/shapes/boom.svg +3 -3
  124. package/src/cdn/shapes/bun.svg +3 -3
  125. package/src/cdn/shapes/burst.svg +3 -3
  126. package/src/cdn/shapes/circle.svg +3 -3
  127. package/src/cdn/shapes/clamshell.svg +3 -3
  128. package/src/cdn/shapes/diamond.svg +3 -3
  129. package/src/cdn/shapes/fan.svg +3 -3
  130. package/src/cdn/shapes/flower.svg +3 -3
  131. package/src/cdn/shapes/gem.svg +3 -3
  132. package/src/cdn/shapes/ghost-ish.svg +3 -3
  133. package/src/cdn/shapes/heart.svg +3 -3
  134. package/src/cdn/shapes/leaf-clover4.svg +3 -3
  135. package/src/cdn/shapes/leaf-clover8.svg +3 -3
  136. package/src/cdn/shapes/loading-indicator.svg +18 -18
  137. package/src/cdn/shapes/oval.svg +3 -3
  138. package/src/cdn/shapes/pentagon.svg +3 -3
  139. package/src/cdn/shapes/pill.svg +3 -3
  140. package/src/cdn/shapes/pixel-circle.svg +3 -3
  141. package/src/cdn/shapes/pixel-triangle.svg +3 -3
  142. package/src/cdn/shapes/puffy-diamond.svg +3 -3
  143. package/src/cdn/shapes/puffy.svg +3 -3
  144. package/src/cdn/shapes/semicircle.svg +3 -3
  145. package/src/cdn/shapes/sided-cookie12.svg +3 -3
  146. package/src/cdn/shapes/sided-cookie4.svg +3 -3
  147. package/src/cdn/shapes/sided-cookie6.svg +3 -3
  148. package/src/cdn/shapes/sided-cookie7.svg +3 -3
  149. package/src/cdn/shapes/sided-cookie9.svg +3 -3
  150. package/src/cdn/shapes/slanted.svg +3 -3
  151. package/src/cdn/shapes/soft-boom.svg +3 -3
  152. package/src/cdn/shapes/soft-burst.svg +3 -3
  153. package/src/cdn/shapes/square.svg +3 -3
  154. package/src/cdn/shapes/sunny.svg +3 -3
  155. package/src/cdn/shapes/triangle.svg +3 -3
  156. package/src/cdn/shapes/very-sunny.svg +3 -3
  157. package/src/cdn/shapes/wavy-circle.svg +3 -3
  158. package/src/cdn/shapes/wavy.svg +4 -4
  159. package/src/cdn/utils.ts +154 -154
package/src/cdn/utils.ts CHANGED
@@ -1,154 +1,154 @@
1
- const _emptyNodeList = [] as unknown as NodeListOf<Element>;
2
- const _weakElements = new WeakSet<HTMLElement>();
3
-
4
- export const isChrome = navigator.userAgent.includes("Chrome");
5
-
6
- export const isFirefox = navigator.userAgent.includes("Firefox") && !isChrome;
7
-
8
- export const isSafari = navigator.userAgent.includes("Safari") && !isChrome;
9
-
10
- export const isWindows = navigator.userAgent.includes("Windows");
11
-
12
- export const isMac = navigator.userAgent.includes("Macintosh");
13
-
14
- export const isLinux = navigator.userAgent.includes("Linux");
15
-
16
- export const isAndroid = navigator.userAgent.includes("Android");
17
-
18
- export const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
19
-
20
- export function isTouchable(): boolean {
21
- return window?.matchMedia("(pointer: coarse)").matches;
22
- }
23
-
24
- export function isDark(): boolean {
25
- return window?.matchMedia("(prefers-color-scheme: dark)").matches;
26
- }
27
-
28
- export async function wait(milliseconds: number) {
29
- await new Promise((resolve) => setTimeout(resolve, milliseconds));
30
- }
31
-
32
- export function guid(): string {
33
- return "fxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c: string) => {
34
- const r = (Math.random() * 16) | 0;
35
- const v = c === "x" ? r : (r & 0x3) | 0x8;
36
- return v.toString(16);
37
- });
38
- }
39
-
40
- export function query(selector: string | Element | null, element?: Element | null): Element | null {
41
- try {
42
- return (typeof selector === "string")
43
- ? (element ?? document).querySelector(selector)
44
- : selector;
45
- } catch {
46
- return null;
47
- }
48
- }
49
-
50
- export function queryAll(selector: string | NodeListOf<Element> | null, element?: Element | null): NodeListOf<Element> {
51
- try {
52
- return (typeof selector === "string")
53
- ? (element ?? document).querySelectorAll(selector)
54
- : selector ?? _emptyNodeList;
55
- } catch {
56
- return _emptyNodeList;
57
- }
58
- }
59
-
60
- export function hasClass(element: Element | null, name: string): boolean {
61
- return element?.classList.contains(name) ?? false;
62
- }
63
-
64
- export function hasTag(element: Element | null, name: string): boolean {
65
- return element?.tagName?.toLowerCase() === name;
66
- }
67
-
68
- export function hasType(element: HTMLInputElement | null, name: string): boolean {
69
- return element?.type?.toLowerCase() === name;
70
- }
71
-
72
- export function addClass(element: Element | null | NodeListOf<Element>, name: string) {
73
- if (element instanceof NodeList) for(let i=0; i<element.length; i++) element[i].classList.add(name);
74
- else element?.classList.add(name);
75
- }
76
-
77
- export function removeClass(element: Element | null | NodeListOf<Element>, name: string) {
78
- if (element instanceof NodeList) for(let i=0; i<element.length; i++) element[i].classList.remove(name);
79
- else element?.classList.remove(name);
80
- }
81
-
82
- export function on(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
83
- if (element?.addEventListener) element.addEventListener(name, callback, useCapture);
84
- }
85
-
86
- export function onWeak(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
87
- addWeakElement(element as HTMLElement);
88
- on(element, name, callback, useCapture);
89
- }
90
-
91
- export function off(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
92
- if (element?.removeEventListener) element.removeEventListener(name, callback, useCapture);
93
- }
94
-
95
- export function insertBefore(newElement: Element, element: Element | null) {
96
- element?.parentNode?.insertBefore(newElement, element);
97
- }
98
-
99
- export function prev(element: Element): Element | null {
100
- return element?.previousElementSibling;
101
- }
102
-
103
- export function next(element: Element): Element | null {
104
- return element?.nextElementSibling;
105
- }
106
-
107
- export function parent(element: Element): Element | null {
108
- return element?.parentElement;
109
- }
110
-
111
- export function create(htmlAttributesAsJson: any): HTMLElement {
112
- const element = document.createElement("div");
113
- for (let i = 0, keys = Object.keys(htmlAttributesAsJson), n = keys.length; i < n; i++) {
114
- const key = keys[i];
115
- const value = htmlAttributesAsJson[key] as string;
116
- element.setAttribute(key, value);
117
- }
118
- return element;
119
- }
120
-
121
- export function blurActiveElement() {
122
- (document.activeElement as HTMLElement)?.blur();
123
- }
124
-
125
- export function queryAllDataUi(id: string): NodeListOf<Element> {
126
- return queryAll("[data-ui=\"#"+id+"\"]");
127
- }
128
-
129
- export function queryDataUi(id: string): Element | null {
130
- return query("[data-ui=\"#"+id+"\"]");
131
- }
132
-
133
- export function updateAllClickable(element: Element) {
134
- if (element.id && hasClass(element, "page")) element = queryDataUi(element.id) ?? element;
135
-
136
- const container = parent(element);
137
- if (!hasClass(container, "tabs") && !hasClass(container, "tabbed") && !hasTag(container, "nav")) return;
138
-
139
- const as = queryAll("a", container);
140
- for(let i=0; i<as.length; i++) removeClass(as[i], "active");
141
- if (!hasTag(element, "button") && !hasClass(element, "button") && !hasClass(element, "chip")) addClass(element, "active");
142
- }
143
-
144
- export function addWeakElement(element: HTMLElement) {
145
- if (_weakElements.has(element)) return;
146
- _weakElements.add(element);
147
- }
148
-
149
- export function rootSizeInPixels(): number {
150
- const size = getComputedStyle(document.documentElement).getPropertyValue("--size") || "16px";
151
- if (size.includes("%")) return (parseInt(size) * 16) / 100;
152
- if (size.includes("em")) return parseInt(size) * 16;
153
- return parseInt(size);
154
- }
1
+ const _emptyNodeList = [] as unknown as NodeListOf<Element>;
2
+ const _weakElements = new WeakSet<HTMLElement>();
3
+
4
+ export const isChrome = navigator.userAgent.includes("Chrome");
5
+
6
+ export const isFirefox = navigator.userAgent.includes("Firefox") && !isChrome;
7
+
8
+ export const isSafari = navigator.userAgent.includes("Safari") && !isChrome;
9
+
10
+ export const isWindows = navigator.userAgent.includes("Windows");
11
+
12
+ export const isMac = navigator.userAgent.includes("Macintosh");
13
+
14
+ export const isLinux = navigator.userAgent.includes("Linux");
15
+
16
+ export const isAndroid = navigator.userAgent.includes("Android");
17
+
18
+ export const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
19
+
20
+ export function isTouchable(): boolean {
21
+ return window?.matchMedia("(pointer: coarse)").matches;
22
+ }
23
+
24
+ export function isDark(): boolean {
25
+ return window?.matchMedia("(prefers-color-scheme: dark)").matches;
26
+ }
27
+
28
+ export async function wait(milliseconds: number) {
29
+ await new Promise((resolve) => setTimeout(resolve, milliseconds));
30
+ }
31
+
32
+ export function guid(): string {
33
+ return "fxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c: string) => {
34
+ const r = (Math.random() * 16) | 0;
35
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
36
+ return v.toString(16);
37
+ });
38
+ }
39
+
40
+ export function query(selector: string | Element | null, element?: Element | null): Element | null {
41
+ try {
42
+ return (typeof selector === "string")
43
+ ? (element ?? document).querySelector(selector)
44
+ : selector;
45
+ } catch {
46
+ return null;
47
+ }
48
+ }
49
+
50
+ export function queryAll(selector: string | NodeListOf<Element> | null, element?: Element | null): NodeListOf<Element> {
51
+ try {
52
+ return (typeof selector === "string")
53
+ ? (element ?? document).querySelectorAll(selector)
54
+ : selector ?? _emptyNodeList;
55
+ } catch {
56
+ return _emptyNodeList;
57
+ }
58
+ }
59
+
60
+ export function hasClass(element: Element | null, name: string): boolean {
61
+ return element?.classList.contains(name) ?? false;
62
+ }
63
+
64
+ export function hasTag(element: Element | null, name: string): boolean {
65
+ return element?.tagName?.toLowerCase() === name;
66
+ }
67
+
68
+ export function hasType(element: HTMLInputElement | null, name: string): boolean {
69
+ return element?.type?.toLowerCase() === name;
70
+ }
71
+
72
+ export function addClass(element: Element | null | NodeListOf<Element>, name: string) {
73
+ if (element instanceof NodeList) for(let i=0; i<element.length; i++) element[i].classList.add(name);
74
+ else element?.classList.add(name);
75
+ }
76
+
77
+ export function removeClass(element: Element | null | NodeListOf<Element>, name: string) {
78
+ if (element instanceof NodeList) for(let i=0; i<element.length; i++) element[i].classList.remove(name);
79
+ else element?.classList.remove(name);
80
+ }
81
+
82
+ export function on(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
83
+ if (element?.addEventListener) element.addEventListener(name, callback, useCapture);
84
+ }
85
+
86
+ export function onWeak(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
87
+ addWeakElement(element as HTMLElement);
88
+ on(element, name, callback, useCapture);
89
+ }
90
+
91
+ export function off(element: Element | null, name: string, callback: any, useCapture: boolean = true) {
92
+ if (element?.removeEventListener) element.removeEventListener(name, callback, useCapture);
93
+ }
94
+
95
+ export function insertBefore(newElement: Element, element: Element | null) {
96
+ element?.parentNode?.insertBefore(newElement, element);
97
+ }
98
+
99
+ export function prev(element: Element): Element | null {
100
+ return element?.previousElementSibling;
101
+ }
102
+
103
+ export function next(element: Element): Element | null {
104
+ return element?.nextElementSibling;
105
+ }
106
+
107
+ export function parent(element: Element): Element | null {
108
+ return element?.parentElement;
109
+ }
110
+
111
+ export function create(htmlAttributesAsJson: any): HTMLElement {
112
+ const element = document.createElement("div");
113
+ for (let i = 0, keys = Object.keys(htmlAttributesAsJson), n = keys.length; i < n; i++) {
114
+ const key = keys[i];
115
+ const value = htmlAttributesAsJson[key] as string;
116
+ element.setAttribute(key, value);
117
+ }
118
+ return element;
119
+ }
120
+
121
+ export function blurActiveElement() {
122
+ (document.activeElement as HTMLElement)?.blur();
123
+ }
124
+
125
+ export function queryAllDataUi(id: string): NodeListOf<Element> {
126
+ return queryAll("[data-ui=\"#"+id+"\"]");
127
+ }
128
+
129
+ export function queryDataUi(id: string): Element | null {
130
+ return query("[data-ui=\"#"+id+"\"]");
131
+ }
132
+
133
+ export function updateAllClickable(element: Element) {
134
+ if (element.id && hasClass(element, "page")) element = queryDataUi(element.id) ?? element;
135
+
136
+ const container = parent(element);
137
+ if (!hasClass(container, "tabs") && !hasClass(container, "tabbed") && !hasTag(container, "nav")) return;
138
+
139
+ const as = queryAll("a", container);
140
+ for(let i=0; i<as.length; i++) removeClass(as[i], "active");
141
+ if (!hasTag(element, "button") && !hasClass(element, "button") && !hasClass(element, "chip")) addClass(element, "active");
142
+ }
143
+
144
+ export function addWeakElement(element: HTMLElement) {
145
+ if (_weakElements.has(element)) return;
146
+ _weakElements.add(element);
147
+ }
148
+
149
+ export function rootSizeInPixels(): number {
150
+ const size = getComputedStyle(document.documentElement).getPropertyValue("--size") || "16px";
151
+ if (size.includes("%")) return (parseInt(size) * 16) / 100;
152
+ if (size.includes("em")) return parseInt(size) * 16;
153
+ return parseInt(size);
154
+ }