@elastic/eui-theme-common 0.0.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 (196) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +11 -0
  3. package/lib/cjs/.tsbuildinfo +1 -0
  4. package/lib/cjs/global_styling/functions/index.d.ts +2 -0
  5. package/lib/cjs/global_styling/functions/index.d.ts.map +1 -0
  6. package/lib/cjs/global_styling/functions/index.js +22 -0
  7. package/lib/cjs/global_styling/functions/index.js.map +1 -0
  8. package/lib/cjs/global_styling/functions/size.d.ts +13 -0
  9. package/lib/cjs/global_styling/functions/size.d.ts.map +1 -0
  10. package/lib/cjs/global_styling/functions/size.js +42 -0
  11. package/lib/cjs/global_styling/functions/size.js.map +1 -0
  12. package/lib/cjs/global_styling/index.d.ts +4 -0
  13. package/lib/cjs/global_styling/index.d.ts.map +1 -0
  14. package/lib/cjs/global_styling/index.js +44 -0
  15. package/lib/cjs/global_styling/index.js.map +1 -0
  16. package/lib/cjs/global_styling/types.d.ts +66 -0
  17. package/lib/cjs/global_styling/types.d.ts.map +1 -0
  18. package/lib/cjs/global_styling/types.js +21 -0
  19. package/lib/cjs/global_styling/types.js.map +1 -0
  20. package/lib/cjs/global_styling/variables/_colors_vis.d.ts +13 -0
  21. package/lib/cjs/global_styling/variables/_colors_vis.d.ts.map +1 -0
  22. package/lib/cjs/global_styling/variables/_colors_vis.js +69 -0
  23. package/lib/cjs/global_styling/variables/_colors_vis.js.map +1 -0
  24. package/lib/cjs/global_styling/variables/animations.d.ts +36 -0
  25. package/lib/cjs/global_styling/variables/animations.d.ts.map +1 -0
  26. package/lib/cjs/global_styling/variables/animations.js +38 -0
  27. package/lib/cjs/global_styling/variables/animations.js.map +1 -0
  28. package/lib/cjs/global_styling/variables/borders.d.ts +61 -0
  29. package/lib/cjs/global_styling/variables/borders.d.ts.map +1 -0
  30. package/lib/cjs/global_styling/variables/borders.js +7 -0
  31. package/lib/cjs/global_styling/variables/borders.js.map +1 -0
  32. package/lib/cjs/global_styling/variables/breakpoint.d.ts +15 -0
  33. package/lib/cjs/global_styling/variables/breakpoint.d.ts.map +1 -0
  34. package/lib/cjs/global_styling/variables/breakpoint.js +23 -0
  35. package/lib/cjs/global_styling/variables/breakpoint.js.map +1 -0
  36. package/lib/cjs/global_styling/variables/buttons.d.ts +44 -0
  37. package/lib/cjs/global_styling/variables/buttons.d.ts.map +1 -0
  38. package/lib/cjs/global_styling/variables/buttons.js +7 -0
  39. package/lib/cjs/global_styling/variables/buttons.js.map +1 -0
  40. package/lib/cjs/global_styling/variables/colors.d.ts +245 -0
  41. package/lib/cjs/global_styling/variables/colors.d.ts.map +1 -0
  42. package/lib/cjs/global_styling/variables/colors.js +7 -0
  43. package/lib/cjs/global_styling/variables/colors.js.map +1 -0
  44. package/lib/cjs/global_styling/variables/components.d.ts +69 -0
  45. package/lib/cjs/global_styling/variables/components.d.ts.map +1 -0
  46. package/lib/cjs/global_styling/variables/components.js +7 -0
  47. package/lib/cjs/global_styling/variables/components.js.map +1 -0
  48. package/lib/cjs/global_styling/variables/forms.d.ts +20 -0
  49. package/lib/cjs/global_styling/variables/forms.d.ts.map +1 -0
  50. package/lib/cjs/global_styling/variables/forms.js +7 -0
  51. package/lib/cjs/global_styling/variables/forms.js.map +1 -0
  52. package/lib/cjs/global_styling/variables/index.d.ts +14 -0
  53. package/lib/cjs/global_styling/variables/index.d.ts.map +1 -0
  54. package/lib/cjs/global_styling/variables/index.js +154 -0
  55. package/lib/cjs/global_styling/variables/index.js.map +1 -0
  56. package/lib/cjs/global_styling/variables/levels.d.ts +39 -0
  57. package/lib/cjs/global_styling/variables/levels.d.ts.map +1 -0
  58. package/lib/cjs/global_styling/variables/levels.js +33 -0
  59. package/lib/cjs/global_styling/variables/levels.js.map +1 -0
  60. package/lib/cjs/global_styling/variables/shadow.d.ts +11 -0
  61. package/lib/cjs/global_styling/variables/shadow.d.ts.map +1 -0
  62. package/lib/cjs/global_styling/variables/shadow.js +27 -0
  63. package/lib/cjs/global_styling/variables/shadow.js.map +1 -0
  64. package/lib/cjs/global_styling/variables/size.d.ts +26 -0
  65. package/lib/cjs/global_styling/variables/size.d.ts.map +1 -0
  66. package/lib/cjs/global_styling/variables/size.js +17 -0
  67. package/lib/cjs/global_styling/variables/size.js.map +1 -0
  68. package/lib/cjs/global_styling/variables/states.d.ts +25 -0
  69. package/lib/cjs/global_styling/variables/states.d.ts.map +1 -0
  70. package/lib/cjs/global_styling/variables/states.js +7 -0
  71. package/lib/cjs/global_styling/variables/states.js.map +1 -0
  72. package/lib/cjs/global_styling/variables/typography.d.ts +93 -0
  73. package/lib/cjs/global_styling/variables/typography.d.ts.map +1 -0
  74. package/lib/cjs/global_styling/variables/typography.js +48 -0
  75. package/lib/cjs/global_styling/variables/typography.js.map +1 -0
  76. package/lib/cjs/index.d.ts +4 -0
  77. package/lib/cjs/index.d.ts.map +1 -0
  78. package/lib/cjs/index.js +44 -0
  79. package/lib/cjs/index.js.map +1 -0
  80. package/lib/cjs/types.d.ts +33 -0
  81. package/lib/cjs/types.d.ts.map +1 -0
  82. package/lib/cjs/types.js +7 -0
  83. package/lib/cjs/types.js.map +1 -0
  84. package/lib/cjs/utils.d.ts +104 -0
  85. package/lib/cjs/utils.d.ts.map +1 -0
  86. package/lib/cjs/utils.js +382 -0
  87. package/lib/cjs/utils.js.map +1 -0
  88. package/lib/cjs/utils.test.js +411 -0
  89. package/lib/cjs/utils.test.js.map +1 -0
  90. package/lib/esm/.tsbuildinfo +1 -0
  91. package/lib/esm/global_styling/functions/index.d.ts +1 -0
  92. package/lib/esm/global_styling/functions/index.js +9 -0
  93. package/lib/esm/global_styling/functions/index.js.map +1 -0
  94. package/lib/esm/global_styling/functions/size.d.ts +12 -0
  95. package/lib/esm/global_styling/functions/size.js +21 -0
  96. package/lib/esm/global_styling/functions/size.js.map +1 -0
  97. package/lib/esm/global_styling/index.d.ts +3 -0
  98. package/lib/esm/global_styling/index.js +11 -0
  99. package/lib/esm/global_styling/index.js.map +1 -0
  100. package/lib/esm/global_styling/types.d.ts +65 -0
  101. package/lib/esm/global_styling/types.js +13 -0
  102. package/lib/esm/global_styling/types.js.map +1 -0
  103. package/lib/esm/global_styling/variables/_colors_vis.d.ts +12 -0
  104. package/lib/esm/global_styling/variables/_colors_vis.js +60 -0
  105. package/lib/esm/global_styling/variables/_colors_vis.js.map +1 -0
  106. package/lib/esm/global_styling/variables/animations.d.ts +35 -0
  107. package/lib/esm/global_styling/variables/animations.js +25 -0
  108. package/lib/esm/global_styling/variables/animations.js.map +1 -0
  109. package/lib/esm/global_styling/variables/borders.d.ts +60 -0
  110. package/lib/esm/global_styling/variables/borders.js +9 -0
  111. package/lib/esm/global_styling/variables/borders.js.map +1 -0
  112. package/lib/esm/global_styling/variables/breakpoint.d.ts +14 -0
  113. package/lib/esm/global_styling/variables/breakpoint.js +9 -0
  114. package/lib/esm/global_styling/variables/breakpoint.js.map +1 -0
  115. package/lib/esm/global_styling/variables/buttons.d.ts +43 -0
  116. package/lib/esm/global_styling/variables/buttons.js +9 -0
  117. package/lib/esm/global_styling/variables/buttons.js.map +1 -0
  118. package/lib/esm/global_styling/variables/colors.d.ts +244 -0
  119. package/lib/esm/global_styling/variables/colors.js +9 -0
  120. package/lib/esm/global_styling/variables/colors.js.map +1 -0
  121. package/lib/esm/global_styling/variables/components.d.ts +68 -0
  122. package/lib/esm/global_styling/variables/components.js +9 -0
  123. package/lib/esm/global_styling/variables/components.js.map +1 -0
  124. package/lib/esm/global_styling/variables/forms.d.ts +19 -0
  125. package/lib/esm/global_styling/variables/forms.js +9 -0
  126. package/lib/esm/global_styling/variables/forms.js.map +1 -0
  127. package/lib/esm/global_styling/variables/index.d.ts +13 -0
  128. package/lib/esm/global_styling/variables/index.js +21 -0
  129. package/lib/esm/global_styling/variables/index.js.map +1 -0
  130. package/lib/esm/global_styling/variables/levels.d.ts +38 -0
  131. package/lib/esm/global_styling/variables/levels.js +34 -0
  132. package/lib/esm/global_styling/variables/levels.js.map +1 -0
  133. package/lib/esm/global_styling/variables/shadow.d.ts +10 -0
  134. package/lib/esm/global_styling/variables/shadow.js +19 -0
  135. package/lib/esm/global_styling/variables/shadow.js.map +1 -0
  136. package/lib/esm/global_styling/variables/size.d.ts +25 -0
  137. package/lib/esm/global_styling/variables/size.js +20 -0
  138. package/lib/esm/global_styling/variables/size.js.map +1 -0
  139. package/lib/esm/global_styling/variables/states.d.ts +24 -0
  140. package/lib/esm/global_styling/variables/states.js +9 -0
  141. package/lib/esm/global_styling/variables/states.js.map +1 -0
  142. package/lib/esm/global_styling/variables/typography.d.ts +92 -0
  143. package/lib/esm/global_styling/variables/typography.js +35 -0
  144. package/lib/esm/global_styling/variables/typography.js.map +1 -0
  145. package/lib/esm/index.d.ts +3 -0
  146. package/lib/esm/index.js +11 -0
  147. package/lib/esm/index.js.map +1 -0
  148. package/lib/esm/types.d.ts +32 -0
  149. package/lib/esm/types.js +9 -0
  150. package/lib/esm/types.js.map +1 -0
  151. package/lib/esm/utils.d.ts +103 -0
  152. package/lib/esm/utils.js +300 -0
  153. package/lib/esm/utils.js.map +1 -0
  154. package/lib/esm/utils.test.d.ts +1 -0
  155. package/lib/esm/utils.test.js +233 -0
  156. package/lib/esm/utils.test.js.map +1 -0
  157. package/licenses/ELASTIC-LICENSE-2.0.md +93 -0
  158. package/licenses/SSPL-LICENSE.md +557 -0
  159. package/package.json +78 -0
  160. package/src/global_styling/functions/_colors.scss +138 -0
  161. package/src/global_styling/functions/_index.scss +5 -0
  162. package/src/global_styling/functions/_math.scss +1 -0
  163. package/src/global_styling/functions/_math_pow.scss +82 -0
  164. package/src/global_styling/index.scss +18 -0
  165. package/src/global_styling/mixins/_button.scss +149 -0
  166. package/src/global_styling/mixins/_form.scss +273 -0
  167. package/src/global_styling/mixins/_helpers.scss +126 -0
  168. package/src/global_styling/mixins/_index.scss +14 -0
  169. package/src/global_styling/mixins/_link.scss +11 -0
  170. package/src/global_styling/mixins/_loading.scss +6 -0
  171. package/src/global_styling/mixins/_panel.scss +55 -0
  172. package/src/global_styling/mixins/_range.scss +62 -0
  173. package/src/global_styling/mixins/_responsive.scss +44 -0
  174. package/src/global_styling/mixins/_shadow.scss +108 -0
  175. package/src/global_styling/mixins/_size.scss +4 -0
  176. package/src/global_styling/mixins/_states.scss +50 -0
  177. package/src/global_styling/mixins/_tool_tip.scss +25 -0
  178. package/src/global_styling/mixins/_typography.scss +167 -0
  179. package/src/global_styling/react_date_picker/_date_picker.scss +772 -0
  180. package/src/global_styling/react_date_picker/_index.scss +2 -0
  181. package/src/global_styling/react_date_picker/_variables.scss +1 -0
  182. package/src/global_styling/utility/_animations.scss +55 -0
  183. package/src/global_styling/utility/_index.scss +1 -0
  184. package/src/global_styling/variables/_animations.scss +13 -0
  185. package/src/global_styling/variables/_borders.scss +11 -0
  186. package/src/global_styling/variables/_buttons.scss +18 -0
  187. package/src/global_styling/variables/_colors_vis.scss +72 -0
  188. package/src/global_styling/variables/_font_weight.scss +10 -0
  189. package/src/global_styling/variables/_form.scss +8 -0
  190. package/src/global_styling/variables/_index.scss +23 -0
  191. package/src/global_styling/variables/_responsive.scss +9 -0
  192. package/src/global_styling/variables/_shadows.scss +2 -0
  193. package/src/global_styling/variables/_size.scss +15 -0
  194. package/src/global_styling/variables/_states.scss +14 -0
  195. package/src/global_styling/variables/_typography.scss +75 -0
  196. package/src/global_styling/variables/_z_index.scss +34 -0
@@ -0,0 +1,92 @@
1
+ import { CSSProperties } from 'react';
2
+ /**
3
+ * Font units of measure
4
+ */
5
+ export declare const EuiThemeFontUnits: readonly ["rem", "px", "em"];
6
+ export declare type _EuiThemeFontUnit = (typeof EuiThemeFontUnits)[number];
7
+ export declare const EuiThemeFontScales: readonly ["xxxs", "xxs", "xs", "s", "m", "l", "xl", "xxl"];
8
+ export declare type _EuiThemeFontScale = (typeof EuiThemeFontScales)[number];
9
+ export declare type _EuiThemeFontScales = Record<_EuiThemeFontScale, number>;
10
+ export declare type _EuiThemeFontBase = {
11
+ /**
12
+ * The whole font family stack for all parts of the UI.
13
+ * We encourage only customizing the first font in the stack.
14
+ */
15
+ family: string;
16
+ /**
17
+ * The font family used for monospace UI elements like EuiCode
18
+ */
19
+ familyCode?: string;
20
+ /**
21
+ * The font family used for serif UI elements like blockquotes within EuiText
22
+ */
23
+ familySerif?: string;
24
+ /**
25
+ * Controls advanced features OpenType fonts.
26
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings
27
+ */
28
+ featureSettings?: string;
29
+ /**
30
+ * Sets the default units used for font size & line height set by UI components
31
+ * like EuiText or EuiTitle. Defaults to `rem`.
32
+ *
33
+ * NOTE: This may overridden by some internal usages, e.g.
34
+ * EuiText's `relative` size which must use `em`.
35
+ *
36
+ * @default 'rem'
37
+ */
38
+ defaultUnits: _EuiThemeFontUnit;
39
+ /**
40
+ * A computed number that is 1/4 of `base`
41
+ */
42
+ baseline: number;
43
+ /**
44
+ * Establishes the ideal line-height percentage, but it is the `baseline` integer that establishes the final pixel/rem value
45
+ */
46
+ lineHeightMultiplier: number;
47
+ };
48
+ export declare const EuiThemeFontWeights: readonly ["light", "regular", "medium", "semiBold", "bold"];
49
+ export declare type _EuiThemeFontWeight = (typeof EuiThemeFontWeights)[number];
50
+ export declare type _EuiThemeFontWeights = {
51
+ /** - Default value: 300 */
52
+ light: CSSProperties['fontWeight'];
53
+ /** - Default value: 400 */
54
+ regular: CSSProperties['fontWeight'];
55
+ /** - Default value: 500 */
56
+ medium: CSSProperties['fontWeight'];
57
+ /** - Default value: 600 */
58
+ semiBold: CSSProperties['fontWeight'];
59
+ /** - Default value: 700 */
60
+ bold: CSSProperties['fontWeight'];
61
+ };
62
+ /**
63
+ * Body / Base styles
64
+ */
65
+ export interface _EuiThemeBody {
66
+ /**
67
+ * A sizing key from one of the font scales to set as the base body font-size
68
+ */
69
+ scale: _EuiThemeFontScale;
70
+ /**
71
+ * A font weight key for setting the base body weight
72
+ */
73
+ weight: keyof _EuiThemeFontWeights;
74
+ }
75
+ /**
76
+ * Title styles
77
+ */
78
+ export interface _EuiThemeTitle {
79
+ /**
80
+ * A font weight key for setting the base weight for titles and headings
81
+ */
82
+ weight: keyof _EuiThemeFontWeights;
83
+ }
84
+ export declare type _EuiThemeFont = _EuiThemeFontBase & {
85
+ scale: _EuiThemeFontScales;
86
+ /**
87
+ * @see {@link https://eui.elastic.co/#/theming/typography/values%23font-weight | Reference} for more information
88
+ */
89
+ weight: _EuiThemeFontWeights;
90
+ body: _EuiThemeBody;
91
+ title: _EuiThemeTitle;
92
+ };
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /**
9
+ * Font units of measure
10
+ */
11
+ export const EuiThemeFontUnits = ['rem', 'px', 'em'];
12
+ /*
13
+ * Font scale
14
+ */
15
+ export const EuiThemeFontScales = [
16
+ 'xxxs',
17
+ 'xxs',
18
+ 'xs',
19
+ 's',
20
+ 'm',
21
+ 'l',
22
+ 'xl',
23
+ 'xxl',
24
+ ];
25
+ /*
26
+ * Font weights
27
+ */
28
+ export const EuiThemeFontWeights = [
29
+ 'light',
30
+ 'regular',
31
+ 'medium',
32
+ 'semiBold',
33
+ 'bold',
34
+ ];
35
+ //# sourceMappingURL=typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../../../src/global_styling/variables/typography.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAI9D;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM;IACN,KAAK;IACL,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,KAAK;CACG,CAAC;AAiDX;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;CACE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './global_styling';
2
+ export * from './types';
3
+ export * from './utils';
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ export * from './global_styling';
9
+ export * from './types';
10
+ export * from './utils';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,kBAAkB,CAAC;AAEjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Like `keyof typeof`, but for getting values instead of keys
3
+ * ValueOf<typeof {key1: 'value1', key2: 'value2'}>
4
+ * Results in `'value1' | 'value2'`
5
+ */
6
+ export declare type ValueOf<T> = T[keyof T];
7
+ /**
8
+ * Replaces all properties on any type as optional, includes nested types
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * interface Person {
13
+ * name: string;
14
+ * age?: number;
15
+ * spouse: Person;
16
+ * children: Person[];
17
+ * }
18
+ * type PartialPerson = RecursivePartial<Person>;
19
+ * // results in
20
+ * interface PartialPerson {
21
+ * name?: string;
22
+ * age?: number;
23
+ * spouse?: RecursivePartial<Person>;
24
+ * children?: RecursivePartial<Person>[]
25
+ * }
26
+ * ```
27
+ */
28
+ export declare type RecursivePartial<T> = {
29
+ [P in keyof T]?: T[P] extends NonAny[] ? T[P] : T[P] extends readonly NonAny[] ? T[P] : T[P] extends Array<infer U> ? Array<RecursivePartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<RecursivePartial<U>> : T[P] extends Set<infer V> ? Set<RecursivePartial<V>> : T[P] extends Map<infer K, infer V> ? Map<K, RecursivePartial<V>> : T[P] extends NonAny ? T[P] : RecursivePartial<T[P]>;
30
+ };
31
+ declare type NonAny = number | boolean | string | symbol | null;
32
+ export {};
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,103 @@
1
+ import { EuiThemeColorMode, EuiThemeColorModeStandard, EuiThemeSystem, EuiThemeShape, EuiThemeComputed } from './global_styling';
2
+ export declare const DEFAULT_COLOR_MODE: "LIGHT";
3
+ /**
4
+ * Returns whether the provided color mode is `inverse`
5
+ * @param {string} colorMode - `light`, `dark`, or `inverse`
6
+ */
7
+ export declare const isInverseColorMode: (colorMode?: string | undefined) => colorMode is "INVERSE";
8
+ /**
9
+ * Returns the color mode configured in the current EuiThemeProvider.
10
+ * Returns the parent color mode if none is explicity set.
11
+ * @param {string} colorMode - `light`, `dark`, or `inverse`
12
+ * @param {string} parentColorMode - `LIGHT` or `DARK`; used as the fallback
13
+ */
14
+ export declare const getColorMode: (colorMode?: EuiThemeColorMode | undefined, parentColorMode?: EuiThemeColorModeStandard | undefined) => EuiThemeColorModeStandard;
15
+ /**
16
+ * Returns a value at a given path on an object.
17
+ * If `colorMode` is provided, will scope the value to the appropriate color mode key (LIGHT\DARK)
18
+ * @param {object} model - Object
19
+ * @param {string} _path - Dot-notated string to a path on the object
20
+ * @param {string} colorMode - `light` or `dark`
21
+ */
22
+ export declare const getOn: (model: {
23
+ [key: string]: any;
24
+ }, _path: string, colorMode?: EuiThemeColorModeStandard | undefined) => {
25
+ [key: string]: any;
26
+ } | undefined;
27
+ /**
28
+ * Sets a value at a given path on an object.
29
+ * @param {object} model - Object
30
+ * @param {string} _path - Dot-notated string to a path on the object
31
+ * @param {any} string - The value to set
32
+ */
33
+ export declare const setOn: (model: {
34
+ [key: string]: any;
35
+ }, _path: string, value: any) => boolean;
36
+ /**
37
+ * Creates a class to store the `computer` method and its eventual parameters.
38
+ * Allows for on-demand computation with up-to-date parameters via `getValue` method.
39
+ * @constructor
40
+ * @param {function} computer - Function to be computed
41
+ * @param {string | array} dependencies - Dependencies passed to the `computer` as parameters
42
+ */
43
+ export declare class Computed<T> {
44
+ computer: (...values: any[]) => T;
45
+ dependencies: string | string[];
46
+ constructor(computer: (...values: any[]) => T, dependencies?: string | string[]);
47
+ /**
48
+ * Executes the `computer` method with the current state of the theme
49
+ * by taking into account previously computed values and modifications.
50
+ * @param {Proxy | object} base - Computed or uncomputed theme
51
+ * @param {Proxy | object} modifications - Theme value overrides
52
+ * @param {object} working - Partially computed theme
53
+ * @param {string} colorMode - `light` or `dark`
54
+ */
55
+ getValue(base: EuiThemeSystem | EuiThemeShape | null, modifications: import("./types").RecursivePartial<EuiThemeShape> | undefined, working: Partial<EuiThemeComputed>, colorMode?: EuiThemeColorModeStandard): T;
56
+ }
57
+ /**
58
+ * Returns a Class (`Computed`) that stores the arbitrary computer method
59
+ * and references to its optional dependecies.
60
+ * @param {function} computer - Arbitrary method to be called at compute time.
61
+ * @param {string | array} dependencies - Values that will be provided to `computer` at compute time.
62
+ */
63
+ export declare function computed<T>(computer: (value: EuiThemeComputed) => T): T;
64
+ export declare function computed<T>(computer: (value: any[]) => T, dependencies: string[]): T;
65
+ export declare function computed<T>(computer: (value: any) => T, dependencies: string): T;
66
+ /**
67
+ * Takes an uncomputed theme, and computes and returns all values taking
68
+ * into consideration value overrides and configured color mode.
69
+ * Overrides take precedence, and only values in the current color mode
70
+ * are computed and returned.
71
+ * @param {Proxy} base - Object to transform into Proxy
72
+ * @param {Proxy | object} over - Unique identifier or name
73
+ * @param {string} colorMode - `light` or `dark`
74
+ */
75
+ export declare const getComputed: <T = EuiThemeShape>(base: EuiThemeSystem<T>, over: Partial<EuiThemeSystem<T>>, colorMode: EuiThemeColorModeStandard) => EuiThemeComputed<T>;
76
+ /**
77
+ * Builds a Proxy with a custom `handler` designed to self-reference values
78
+ * and prevent arbitrary value overrides.
79
+ * @param {object} model - Object to transform into Proxy
80
+ * @param {string} key - Unique identifier or name
81
+ */
82
+ export declare const buildTheme: <T extends {}>(model: T, key: string) => {
83
+ model: T;
84
+ root: T;
85
+ key: string;
86
+ };
87
+ /**
88
+ * Deeply merges two objects, using `source` values whenever possible.
89
+ * @param {object} _target - Object with fallback values
90
+ * @param {object} source - Object with desired values
91
+ */
92
+ export declare const mergeDeep: (_target: {
93
+ [key: string]: any;
94
+ }, source?: {
95
+ [key: string]: any;
96
+ }) => {
97
+ [key: string]: any;
98
+ };
99
+ /**
100
+ * Returns token name string based on passed dynamic variants
101
+ * and additional prefix/suffix
102
+ */
103
+ export declare const getTokenName: (prefix: string, variant: string, suffix?: string | undefined) => string;
@@ -0,0 +1,300 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ import { COLOR_MODES_STANDARD, COLOR_MODES_INVERSE, } from './global_styling';
9
+ export const DEFAULT_COLOR_MODE = COLOR_MODES_STANDARD.light;
10
+ /**
11
+ * Returns whether the parameter is an object
12
+ * @param {any} obj - Anything
13
+ */
14
+ const isObject = (obj) => obj && typeof obj === 'object';
15
+ /**
16
+ * Returns whether the provided color mode is `inverse`
17
+ * @param {string} colorMode - `light`, `dark`, or `inverse`
18
+ */
19
+ export const isInverseColorMode = (colorMode) => {
20
+ return colorMode === COLOR_MODES_INVERSE;
21
+ };
22
+ /**
23
+ * Returns the color mode configured in the current EuiThemeProvider.
24
+ * Returns the parent color mode if none is explicity set.
25
+ * @param {string} colorMode - `light`, `dark`, or `inverse`
26
+ * @param {string} parentColorMode - `LIGHT` or `DARK`; used as the fallback
27
+ */
28
+ export const getColorMode = (colorMode, parentColorMode) => {
29
+ if (colorMode == null) {
30
+ return parentColorMode || DEFAULT_COLOR_MODE;
31
+ }
32
+ const mode = colorMode.toUpperCase();
33
+ if (isInverseColorMode(mode)) {
34
+ return parentColorMode === COLOR_MODES_STANDARD.dark ||
35
+ parentColorMode === undefined
36
+ ? COLOR_MODES_STANDARD.light
37
+ : COLOR_MODES_STANDARD.dark;
38
+ }
39
+ else {
40
+ return mode;
41
+ }
42
+ };
43
+ /**
44
+ * Returns a value at a given path on an object.
45
+ * If `colorMode` is provided, will scope the value to the appropriate color mode key (LIGHT\DARK)
46
+ * @param {object} model - Object
47
+ * @param {string} _path - Dot-notated string to a path on the object
48
+ * @param {string} colorMode - `light` or `dark`
49
+ */
50
+ export const getOn = (model, _path, colorMode) => {
51
+ const path = _path.split('.');
52
+ let node = model;
53
+ while (path.length) {
54
+ const segment = path.shift();
55
+ if (node.hasOwnProperty(segment) === false) {
56
+ if (colorMode &&
57
+ node.hasOwnProperty(colorMode) === true &&
58
+ node[colorMode].hasOwnProperty(segment) === true) {
59
+ if (node[colorMode][segment] instanceof Computed) {
60
+ node = node[colorMode][segment].getValue(null, {}, node, colorMode);
61
+ }
62
+ else {
63
+ node = node[colorMode][segment];
64
+ }
65
+ }
66
+ else {
67
+ return undefined;
68
+ }
69
+ }
70
+ else {
71
+ if (node[segment] instanceof Computed) {
72
+ node = node[segment].getValue(null, {}, node, colorMode);
73
+ }
74
+ else {
75
+ node = node[segment];
76
+ }
77
+ }
78
+ }
79
+ return node;
80
+ };
81
+ /**
82
+ * Sets a value at a given path on an object.
83
+ * @param {object} model - Object
84
+ * @param {string} _path - Dot-notated string to a path on the object
85
+ * @param {any} string - The value to set
86
+ */
87
+ export const setOn = (model, _path, value) => {
88
+ const path = _path.split('.');
89
+ const propertyName = path.pop();
90
+ let node = model;
91
+ while (path.length) {
92
+ const segment = path.shift();
93
+ if (node.hasOwnProperty(segment) === false) {
94
+ node[segment] = {};
95
+ }
96
+ node = node[segment];
97
+ }
98
+ node[propertyName] = value;
99
+ return true;
100
+ };
101
+ /**
102
+ * Creates a class to store the `computer` method and its eventual parameters.
103
+ * Allows for on-demand computation with up-to-date parameters via `getValue` method.
104
+ * @constructor
105
+ * @param {function} computer - Function to be computed
106
+ * @param {string | array} dependencies - Dependencies passed to the `computer` as parameters
107
+ */
108
+ export class Computed {
109
+ constructor(computer, dependencies = []) {
110
+ this.computer = computer;
111
+ this.dependencies = dependencies;
112
+ }
113
+ /**
114
+ * Executes the `computer` method with the current state of the theme
115
+ * by taking into account previously computed values and modifications.
116
+ * @param {Proxy | object} base - Computed or uncomputed theme
117
+ * @param {Proxy | object} modifications - Theme value overrides
118
+ * @param {object} working - Partially computed theme
119
+ * @param {string} colorMode - `light` or `dark`
120
+ */
121
+ getValue(base, modifications = {}, working, colorMode) {
122
+ if (!this.dependencies.length) {
123
+ return this.computer(working);
124
+ }
125
+ if (!Array.isArray(this.dependencies)) {
126
+ return this.computer(getOn(working, this.dependencies) ??
127
+ getOn(modifications, this.dependencies, colorMode) ??
128
+ (base ? getOn(base, this.dependencies, colorMode) : working));
129
+ }
130
+ return this.computer(this.dependencies.map((dependency) => {
131
+ return (getOn(working, dependency) ??
132
+ getOn(modifications, dependency, colorMode) ??
133
+ (base ? getOn(base, dependency, colorMode) : working));
134
+ }));
135
+ }
136
+ }
137
+ export function computed(comp, dep) {
138
+ return new Computed(comp, dep);
139
+ }
140
+ /**
141
+ * Type guard to check for a Computed object based on object shape
142
+ * without relying on the Computed class directly
143
+ */
144
+ const isComputedLike = (key) => {
145
+ if (typeof key !== 'object' || Array.isArray(key))
146
+ return false;
147
+ return key.hasOwnProperty('dependencies') && key.hasOwnProperty('computer');
148
+ };
149
+ /**
150
+ * Takes an uncomputed theme, and computes and returns all values taking
151
+ * into consideration value overrides and configured color mode.
152
+ * Overrides take precedence, and only values in the current color mode
153
+ * are computed and returned.
154
+ * @param {Proxy} base - Object to transform into Proxy
155
+ * @param {Proxy | object} over - Unique identifier or name
156
+ * @param {string} colorMode - `light` or `dark`
157
+ */
158
+ export const getComputed = (base, over, colorMode) => {
159
+ const output = { themeName: base.key };
160
+ function loop(base, over, checkExisting = false, path) {
161
+ Object.keys(base).forEach((key) => {
162
+ let newPath = path ? `${path}.${key}` : `${key}`;
163
+ // @ts-expect-error `key` is not necessarily a colorMode key
164
+ if ([...Object.values(COLOR_MODES_STANDARD), colorMode].includes(key)) {
165
+ if (key !== colorMode) {
166
+ return;
167
+ }
168
+ else {
169
+ const colorModeSegment = new RegExp(`(\\.${colorMode}\\b)|(\\b${colorMode}\\.)`);
170
+ newPath = newPath.replace(colorModeSegment, '');
171
+ }
172
+ }
173
+ const existing = checkExisting && getOn(output, newPath);
174
+ if (!existing || isObject(existing)) {
175
+ // NOTE: the class type check for Computed is not true for themes created externally;
176
+ // we additionally check on the object shape to confirm a Computed value
177
+ const baseValue = base[key] instanceof Computed || isComputedLike(base[key])
178
+ ? base[key].getValue(base.root, over.root, output, colorMode)
179
+ : base[key];
180
+ const overValue = over[key] instanceof Computed || isComputedLike(over[key])
181
+ ? over[key].getValue(base.root, over.root, output, colorMode)
182
+ : over[key];
183
+ if (isObject(baseValue) && !Array.isArray(baseValue)) {
184
+ loop(baseValue, overValue ?? {}, checkExisting, newPath);
185
+ }
186
+ else {
187
+ setOn(output, newPath, overValue ?? baseValue);
188
+ }
189
+ }
190
+ });
191
+ }
192
+ // Compute standard theme values and apply overrides
193
+ loop(base, over);
194
+ // Compute and apply extension values only
195
+ loop(over, {}, true);
196
+ return output;
197
+ };
198
+ /**
199
+ * Builds a Proxy with a custom `handler` designed to self-reference values
200
+ * and prevent arbitrary value overrides.
201
+ * @param {object} model - Object to transform into Proxy
202
+ * @param {string} key - Unique identifier or name
203
+ */
204
+ export const buildTheme = (model, key) => {
205
+ const handler = {
206
+ getPrototypeOf(target) {
207
+ return Reflect.getPrototypeOf(target.model);
208
+ },
209
+ setPrototypeOf(target, prototype) {
210
+ return Reflect.setPrototypeOf(target.model, prototype);
211
+ },
212
+ isExtensible(target) {
213
+ return Reflect.isExtensible(target);
214
+ },
215
+ preventExtensions(target) {
216
+ return Reflect.preventExtensions(target.model);
217
+ },
218
+ getOwnPropertyDescriptor(target, key) {
219
+ return Reflect.getOwnPropertyDescriptor(target.model, key);
220
+ },
221
+ defineProperty(target, property, attributes) {
222
+ return Reflect.defineProperty(target.model, property, attributes);
223
+ },
224
+ has(target, property) {
225
+ return Reflect.has(target.model, property);
226
+ },
227
+ get(_target, property) {
228
+ if (property === 'key') {
229
+ return _target[property];
230
+ }
231
+ // prevent Safari from locking up when the proxy is used in dev tools
232
+ // as it doesn't support getPrototypeOf
233
+ if (property === '__proto__')
234
+ return {};
235
+ const target = property === 'root' ? _target : _target.model || _target;
236
+ // @ts-ignore `string` index signature
237
+ const value = target[property];
238
+ if (isObject(value) && !Array.isArray(value)) {
239
+ return new Proxy({
240
+ model: value,
241
+ root: _target.root,
242
+ key: `_${_target.key}`,
243
+ }, handler);
244
+ }
245
+ else {
246
+ return value;
247
+ }
248
+ },
249
+ set(target) {
250
+ return target;
251
+ },
252
+ deleteProperty(target) {
253
+ return target;
254
+ },
255
+ ownKeys(target) {
256
+ return Reflect.ownKeys(target.model);
257
+ },
258
+ apply(target) {
259
+ return target;
260
+ },
261
+ construct(target) {
262
+ return target;
263
+ },
264
+ };
265
+ const themeProxy = new Proxy({ model, root: model, key }, handler);
266
+ return themeProxy;
267
+ };
268
+ /**
269
+ * Deeply merges two objects, using `source` values whenever possible.
270
+ * @param {object} _target - Object with fallback values
271
+ * @param {object} source - Object with desired values
272
+ */
273
+ export const mergeDeep = (_target, source = {}) => {
274
+ const target = { ..._target };
275
+ if (!isObject(target) || !isObject(source)) {
276
+ return source;
277
+ }
278
+ Object.keys(source).forEach((key) => {
279
+ const targetValue = target[key];
280
+ const sourceValue = source[key];
281
+ if (isObject(targetValue) && isObject(sourceValue)) {
282
+ target[key] = mergeDeep({ ...targetValue }, { ...sourceValue });
283
+ }
284
+ else {
285
+ target[key] = sourceValue;
286
+ }
287
+ });
288
+ return target;
289
+ };
290
+ /**
291
+ * Returns token name string based on passed dynamic variants
292
+ * and additional prefix/suffix
293
+ */
294
+ export const getTokenName = (prefix, variant, suffix) => {
295
+ const getCapitalized = (str) => str.charAt(0).toUpperCase() + str.slice(1);
296
+ const colorName = variant.charAt(0).toUpperCase() + variant.slice(1);
297
+ const _suffix = suffix ? getCapitalized(suffix) : '';
298
+ return `${prefix}${getCapitalized(colorName)}${_suffix}`;
299
+ };
300
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};