@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 @@
1
+ {"version":3,"file":"utils.js","names":["_global_styling","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","n","_classCallCheck","_defineProperties","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","DEFAULT_COLOR_MODE","exports","COLOR_MODES_STANDARD","light","isObject","obj","isInverseColorMode","colorMode","COLOR_MODES_INVERSE","getColorMode","parentColorMode","mode","toUpperCase","dark","undefined","getOn","model","_path","path","split","node","segment","shift","hasOwnProperty","Computed","getValue","setOn","propertyName","pop","computer","dependencies","base","modifications","working","_ref","_getOn","map","dependency","_ref2","_getOn2","computed","comp","dep","isComputedLike","getComputed","over","output","themeName","loop","checkExisting","newPath","concat","values","includes","colorModeSegment","RegExp","replace","existing","baseValue","root","overValue","buildTheme","handler","getPrototypeOf","target","Reflect","setPrototypeOf","isExtensible","preventExtensions","property","attributes","has","get","_target","Proxy","set","deleteProperty","construct","themeProxy","mergeDeep","source","targetValue","sourceValue","getTokenName","prefix","variant","suffix","getCapitalized","str","charAt","colorName","_suffix"],"sources":["../../src/utils.ts"],"sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0 and the Server Side Public License, v 1; you may not use this file except\n * in compliance with, at your election, the Elastic License 2.0 or the Server\n * Side Public License, v 1.\n */\n\nimport {\n EuiThemeColorMode,\n EuiThemeColorModeInverse,\n EuiThemeColorModeStandard,\n EuiThemeModifications,\n EuiThemeSystem,\n EuiThemeShape,\n EuiThemeComputed,\n COLOR_MODES_STANDARD,\n COLOR_MODES_INVERSE,\n} from './global_styling';\n\nexport const DEFAULT_COLOR_MODE = COLOR_MODES_STANDARD.light;\n\n/**\n * Returns whether the parameter is an object\n * @param {any} obj - Anything\n */\nconst isObject = (obj: any) => obj && typeof obj === 'object';\n\n/**\n * Returns whether the provided color mode is `inverse`\n * @param {string} colorMode - `light`, `dark`, or `inverse`\n */\nexport const isInverseColorMode = (\n colorMode?: string\n): colorMode is EuiThemeColorModeInverse => {\n return colorMode === COLOR_MODES_INVERSE;\n};\n\n/**\n * Returns the color mode configured in the current EuiThemeProvider.\n * Returns the parent color mode if none is explicity set.\n * @param {string} colorMode - `light`, `dark`, or `inverse`\n * @param {string} parentColorMode - `LIGHT` or `DARK`; used as the fallback\n */\nexport const getColorMode = (\n colorMode?: EuiThemeColorMode,\n parentColorMode?: EuiThemeColorModeStandard\n): EuiThemeColorModeStandard => {\n if (colorMode == null) {\n return parentColorMode || DEFAULT_COLOR_MODE;\n }\n const mode = colorMode.toUpperCase() as\n | EuiThemeColorModeInverse\n | EuiThemeColorModeStandard;\n if (isInverseColorMode(mode)) {\n return parentColorMode === COLOR_MODES_STANDARD.dark ||\n parentColorMode === undefined\n ? COLOR_MODES_STANDARD.light\n : COLOR_MODES_STANDARD.dark;\n } else {\n return mode;\n }\n};\n\n/**\n * Returns a value at a given path on an object.\n * If `colorMode` is provided, will scope the value to the appropriate color mode key (LIGHT\\DARK)\n * @param {object} model - Object\n * @param {string} _path - Dot-notated string to a path on the object\n * @param {string} colorMode - `light` or `dark`\n */\nexport const getOn = (\n model: { [key: string]: any },\n _path: string,\n colorMode?: EuiThemeColorModeStandard\n) => {\n const path = _path.split('.');\n let node = model;\n while (path.length) {\n const segment = path.shift()!;\n\n if (node.hasOwnProperty(segment) === false) {\n if (\n colorMode &&\n node.hasOwnProperty(colorMode) === true &&\n node[colorMode].hasOwnProperty(segment) === true\n ) {\n if (node[colorMode][segment] instanceof Computed) {\n node = node[colorMode][segment].getValue(null, {}, node, colorMode);\n } else {\n node = node[colorMode][segment];\n }\n } else {\n return undefined;\n }\n } else {\n if (node[segment] instanceof Computed) {\n node = node[segment].getValue(null, {}, node, colorMode);\n } else {\n node = node[segment];\n }\n }\n }\n\n return node;\n};\n\n/**\n * Sets a value at a given path on an object.\n * @param {object} model - Object\n * @param {string} _path - Dot-notated string to a path on the object\n * @param {any} string - The value to set\n */\nexport const setOn = (\n model: { [key: string]: any },\n _path: string,\n value: any\n) => {\n const path = _path.split('.');\n const propertyName = path.pop()!;\n let node = model;\n\n while (path.length) {\n const segment = path.shift()!;\n if (node.hasOwnProperty(segment) === false) {\n node[segment] = {};\n }\n node = node[segment];\n }\n\n node[propertyName] = value;\n return true;\n};\n\n/**\n * Creates a class to store the `computer` method and its eventual parameters.\n * Allows for on-demand computation with up-to-date parameters via `getValue` method.\n * @constructor\n * @param {function} computer - Function to be computed\n * @param {string | array} dependencies - Dependencies passed to the `computer` as parameters\n */\nexport class Computed<T> {\n constructor(\n public computer: (...values: any[]) => T,\n public dependencies: string | string[] = []\n ) {}\n\n /**\n * Executes the `computer` method with the current state of the theme\n * by taking into account previously computed values and modifications.\n * @param {Proxy | object} base - Computed or uncomputed theme\n * @param {Proxy | object} modifications - Theme value overrides\n * @param {object} working - Partially computed theme\n * @param {string} colorMode - `light` or `dark`\n */\n getValue(\n base: EuiThemeSystem | EuiThemeShape | null,\n modifications: EuiThemeModifications = {},\n working: Partial<EuiThemeComputed>,\n colorMode?: EuiThemeColorModeStandard\n ) {\n if (!this.dependencies.length) {\n return this.computer(working);\n }\n if (!Array.isArray(this.dependencies)) {\n return this.computer(\n getOn(working, this.dependencies) ??\n getOn(modifications, this.dependencies, colorMode) ??\n (base ? getOn(base, this.dependencies, colorMode) : working)\n );\n }\n return this.computer(\n this.dependencies.map((dependency) => {\n return (\n getOn(working, dependency) ??\n getOn(modifications, dependency, colorMode) ??\n (base ? getOn(base, dependency, colorMode) : working)\n );\n })\n );\n }\n}\n\n/**\n * Returns a Class (`Computed`) that stores the arbitrary computer method\n * and references to its optional dependecies.\n * @param {function} computer - Arbitrary method to be called at compute time.\n * @param {string | array} dependencies - Values that will be provided to `computer` at compute time.\n */\nexport function computed<T>(computer: (value: EuiThemeComputed) => T): T;\nexport function computed<T>(\n computer: (value: any[]) => T,\n dependencies: string[]\n): T;\nexport function computed<T>(\n computer: (value: any) => T,\n dependencies: string\n): T;\nexport function computed<T>(\n comp: ((value: T) => T) | ((value: any) => T) | ((value: any[]) => T),\n dep?: string | string[]\n) {\n return new Computed<T>(comp, dep);\n}\n\n/**\n * Type guard to check for a Computed object based on object shape\n * without relying on the Computed class directly\n */\nconst isComputedLike = <T>(key: object): key is Computed<T> => {\n if (typeof key !== 'object' || Array.isArray(key)) return false;\n\n return key.hasOwnProperty('dependencies') && key.hasOwnProperty('computer');\n};\n\n/**\n * Takes an uncomputed theme, and computes and returns all values taking\n * into consideration value overrides and configured color mode.\n * Overrides take precedence, and only values in the current color mode\n * are computed and returned.\n * @param {Proxy} base - Object to transform into Proxy\n * @param {Proxy | object} over - Unique identifier or name\n * @param {string} colorMode - `light` or `dark`\n */\nexport const getComputed = <T = EuiThemeShape>(\n base: EuiThemeSystem<T>,\n over: Partial<EuiThemeSystem<T>>,\n colorMode: EuiThemeColorModeStandard\n): EuiThemeComputed<T> => {\n const output: Partial<EuiThemeComputed> = { themeName: base.key };\n\n function loop(\n base: { [key: string]: any },\n over: { [key: string]: any },\n checkExisting: boolean = false,\n path?: string\n ) {\n Object.keys(base).forEach((key) => {\n let newPath = path ? `${path}.${key}` : `${key}`;\n // @ts-expect-error `key` is not necessarily a colorMode key\n if ([...Object.values(COLOR_MODES_STANDARD), colorMode].includes(key)) {\n if (key !== colorMode) {\n return;\n } else {\n const colorModeSegment = new RegExp(\n `(\\\\.${colorMode}\\\\b)|(\\\\b${colorMode}\\\\.)`\n );\n newPath = newPath.replace(colorModeSegment, '');\n }\n }\n const existing = checkExisting && getOn(output, newPath);\n if (!existing || isObject(existing)) {\n // NOTE: the class type check for Computed is not true for themes created externally;\n // we additionally check on the object shape to confirm a Computed value\n const baseValue =\n base[key] instanceof Computed || isComputedLike<T>(base[key])\n ? base[key].getValue(base.root, over.root, output, colorMode)\n : base[key];\n const overValue =\n over[key] instanceof Computed || isComputedLike<T>(over[key])\n ? over[key].getValue(base.root, over.root, output, colorMode)\n : over[key];\n if (isObject(baseValue) && !Array.isArray(baseValue)) {\n loop(baseValue, overValue ?? {}, checkExisting, newPath);\n } else {\n setOn(output, newPath, overValue ?? baseValue);\n }\n }\n });\n }\n // Compute standard theme values and apply overrides\n loop(base, over);\n // Compute and apply extension values only\n loop(over, {}, true);\n return output as EuiThemeComputed<T>;\n};\n\n/**\n * Builds a Proxy with a custom `handler` designed to self-reference values\n * and prevent arbitrary value overrides.\n * @param {object} model - Object to transform into Proxy\n * @param {string} key - Unique identifier or name\n */\nexport const buildTheme = <T extends {}>(model: T, key: string) => {\n const handler: ProxyHandler<EuiThemeSystem<T>> = {\n getPrototypeOf(target) {\n return Reflect.getPrototypeOf(target.model);\n },\n\n setPrototypeOf(target, prototype) {\n return Reflect.setPrototypeOf(target.model, prototype);\n },\n\n isExtensible(target) {\n return Reflect.isExtensible(target);\n },\n\n preventExtensions(target) {\n return Reflect.preventExtensions(target.model);\n },\n\n getOwnPropertyDescriptor(target, key) {\n return Reflect.getOwnPropertyDescriptor(target.model, key);\n },\n\n defineProperty(target, property, attributes) {\n return Reflect.defineProperty(target.model, property, attributes);\n },\n\n has(target, property) {\n return Reflect.has(target.model, property);\n },\n\n get(_target, property) {\n if (property === 'key') {\n return _target[property];\n }\n\n // prevent Safari from locking up when the proxy is used in dev tools\n // as it doesn't support getPrototypeOf\n if (property === '__proto__') return {};\n\n const target = property === 'root' ? _target : _target.model || _target;\n // @ts-ignore `string` index signature\n const value = target[property];\n if (isObject(value) && !Array.isArray(value)) {\n return new Proxy(\n {\n model: value,\n root: _target.root,\n key: `_${_target.key}`,\n },\n handler\n );\n } else {\n return value;\n }\n },\n\n set(target: any) {\n return target;\n },\n\n deleteProperty(target: any) {\n return target;\n },\n\n ownKeys(target) {\n return Reflect.ownKeys(target.model);\n },\n\n apply(target: any) {\n return target;\n },\n\n construct(target: any) {\n return target;\n },\n };\n const themeProxy = new Proxy({ model, root: model, key }, handler);\n\n return themeProxy;\n};\n\n/**\n * Deeply merges two objects, using `source` values whenever possible.\n * @param {object} _target - Object with fallback values\n * @param {object} source - Object with desired values\n */\nexport const mergeDeep = (\n _target: { [key: string]: any },\n source: { [key: string]: any } = {}\n) => {\n const target = { ..._target };\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep({ ...targetValue }, { ...sourceValue });\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n};\n\n/**\n * Returns token name string based on passed dynamic variants\n * and additional prefix/suffix\n */\nexport const getTokenName = (\n prefix: string,\n variant: string,\n suffix?: string\n) => {\n const getCapitalized = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n const colorName = variant.charAt(0).toUpperCase() + variant.slice(1);\n const _suffix = suffix ? getCapitalized(suffix) : '';\n\n return `${prefix}${getCapitalized(colorName)}${_suffix}`;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.js");
4
+ require("core-js/modules/es.symbol.description.js");
5
+ require("core-js/modules/es.symbol.iterator.js");
6
+ require("core-js/modules/es.array.from.js");
7
+ require("core-js/modules/es.array.iterator.js");
8
+ require("core-js/modules/es.array.slice.js");
9
+ require("core-js/modules/es.date.to-string.js");
10
+ require("core-js/modules/es.function.name.js");
11
+ require("core-js/modules/es.object.to-string.js");
12
+ require("core-js/modules/es.regexp.exec.js");
13
+ require("core-js/modules/es.regexp.test.js");
14
+ require("core-js/modules/es.regexp.to-string.js");
15
+ require("core-js/modules/es.string.iterator.js");
16
+ require("core-js/modules/web.dom-collections.iterator.js");
17
+ require("core-js/modules/es.array.is-array.js");
18
+ var _utils = require("./utils");
19
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
20
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
22
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
23
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
24
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /*
25
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
26
+ * or more contributor license agreements. Licensed under the Elastic License
27
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
28
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
29
+ * Side Public License, v 1.
30
+ */
31
+ describe('isInverseColorMode', function () {
32
+ it("true only if 'inverse'", function () {
33
+ expect((0, _utils.isInverseColorMode)('LIGHT')).toBe(false);
34
+ expect((0, _utils.isInverseColorMode)('DARK')).toBe(false);
35
+ expect((0, _utils.isInverseColorMode)('custom')).toBe(false);
36
+ expect((0, _utils.isInverseColorMode)()).toBe(false);
37
+ expect((0, _utils.isInverseColorMode)('INVERSE')).toBe(true);
38
+ });
39
+ });
40
+ describe('getColorMode', function () {
41
+ it("defaults to 'LIGHT'", function () {
42
+ expect((0, _utils.getColorMode)()).toEqual('LIGHT');
43
+ });
44
+ it('uses `parentMode` as fallback', function () {
45
+ expect((0, _utils.getColorMode)(undefined, 'DARK')).toEqual('DARK');
46
+ });
47
+ it("understands 'INVERSE'", function () {
48
+ expect((0, _utils.getColorMode)('INVERSE', 'DARK')).toEqual('LIGHT');
49
+ expect((0, _utils.getColorMode)('INVERSE', 'LIGHT')).toEqual('DARK');
50
+ expect((0, _utils.getColorMode)('INVERSE')).toEqual('LIGHT');
51
+ });
52
+ });
53
+ describe('getOn', function () {
54
+ var obj = {
55
+ parent: {
56
+ child: 'childVal'
57
+ },
58
+ other: {
59
+ thing: {
60
+ string: 'stringVal',
61
+ nested: ['array'],
62
+ number: 0,
63
+ func: function func() {}
64
+ }
65
+ },
66
+ colors: {
67
+ LIGHT: {
68
+ primary: '#000'
69
+ },
70
+ DARK: {
71
+ primary: '#FFF'
72
+ }
73
+ }
74
+ };
75
+ it('gets values at the given path', function () {
76
+ expect((0, _utils.getOn)(obj, 'parent')).toEqual({
77
+ child: 'childVal'
78
+ });
79
+ expect((0, _utils.getOn)(obj, 'parent.child')).toEqual('childVal');
80
+ expect((0, _utils.getOn)(obj, 'other.thing.string')).toEqual('stringVal');
81
+ });
82
+ it('gets values of various kinds', function () {
83
+ expect((0, _utils.getOn)(obj, 'other.thing.nested')).toEqual(['array']);
84
+ expect((0, _utils.getOn)(obj, 'other.thing.number')).toEqual(0);
85
+ expect((0, _utils.getOn)(obj, 'other.thing.func')).toBeInstanceOf(Function);
86
+ });
87
+ it('can shortcut color modes', function () {
88
+ expect((0, _utils.getOn)(obj, 'colors.primary', 'LIGHT')).toEqual('#000');
89
+ expect((0, _utils.getOn)(obj, 'colors.primary', 'DARK')).toEqual('#FFF');
90
+ });
91
+ it('will not error', function () {
92
+ expect((0, _utils.getOn)(obj, 'nope')).toBe(undefined);
93
+ expect((0, _utils.getOn)(obj, 'other.nope')).toBe(undefined);
94
+ expect((0, _utils.getOn)(obj, 'other.thing.nope')).toBe(undefined);
95
+ });
96
+ });
97
+ describe('setOn', function () {
98
+ var obj;
99
+ beforeEach(function () {
100
+ obj = {
101
+ existing: {
102
+ nested: {
103
+ val: 'value'
104
+ }
105
+ }
106
+ };
107
+ });
108
+ it('sets values at the given path', function () {
109
+ (0, _utils.setOn)(obj, 'existing.new', 'value');
110
+ expect(obj).toEqual({
111
+ existing: {
112
+ nested: {
113
+ val: 'value'
114
+ },
115
+ "new": 'value'
116
+ }
117
+ });
118
+ (0, _utils.setOn)(obj, 'existing.nested.new', 'value');
119
+ expect(obj).toEqual({
120
+ existing: {
121
+ nested: {
122
+ val: 'value',
123
+ "new": 'value'
124
+ },
125
+ "new": 'value'
126
+ }
127
+ });
128
+ });
129
+ it('deep arbitrary creation', function () {
130
+ (0, _utils.setOn)(obj, 'trail.blazing.happening.now', 'wow');
131
+ expect(obj).toEqual({
132
+ existing: {
133
+ nested: {
134
+ val: 'value'
135
+ }
136
+ },
137
+ trail: {
138
+ blazing: {
139
+ happening: {
140
+ now: 'wow'
141
+ }
142
+ }
143
+ }
144
+ });
145
+ });
146
+ it('overrides existing path value', function () {
147
+ (0, _utils.setOn)(obj, 'existing.nested', 'diff');
148
+ expect(obj).toEqual({
149
+ existing: {
150
+ nested: 'diff'
151
+ }
152
+ });
153
+ });
154
+ });
155
+ describe('computed', function () {
156
+ it('should transform to Computed with dependencies array', function () {
157
+ var output = (0, _utils.computed)(function (_ref) {
158
+ var _ref2 = _slicedToArray(_ref, 1),
159
+ path = _ref2[0];
160
+ return path;
161
+ }, ['path.to']);
162
+ expect(output).toBeInstanceOf(_utils.Computed);
163
+ expect(output.computer).toBeInstanceOf(Function);
164
+ expect(output.dependencies).toEqual(['path.to']);
165
+ });
166
+ it('should transform to Computed with single dependency', function () {
167
+ var output = (0, _utils.computed)(function (path) {
168
+ return path;
169
+ }, 'path.to');
170
+ expect(output).toBeInstanceOf(_utils.Computed);
171
+ expect(output.computer).toBeInstanceOf(Function);
172
+ expect(output.dependencies).toEqual('path.to');
173
+ });
174
+ it('should transform to Computed without dependencies array', function () {
175
+ var output = (0, _utils.computed)(function (path) {
176
+ return path;
177
+ });
178
+ expect(output).toBeInstanceOf(_utils.Computed);
179
+ });
180
+ });
181
+ var theme = (0, _utils.buildTheme)({
182
+ colors: {
183
+ LIGHT: {
184
+ primary: '#000',
185
+ secondary: (0, _utils.computed)(function (_ref3) {
186
+ var _ref4 = _slicedToArray(_ref3, 1),
187
+ primary = _ref4[0];
188
+ return "".concat(primary, "000");
189
+ }, ['colors.primary'])
190
+ },
191
+ DARK: {
192
+ primary: '#FFF',
193
+ secondary: (0, _utils.computed)(function (theme) {
194
+ return "".concat(theme.colors.primary, "FFF");
195
+ })
196
+ }
197
+ },
198
+ sizes: {
199
+ small: 8
200
+ }
201
+ }, 'minimal');
202
+ describe('getComputed', function () {
203
+ it('computes all values and returns only the current color mode', function () {
204
+ // @ts-expect-error intentionally not using a full EUI theme definition
205
+ expect((0, _utils.getComputed)(theme, {}, 'LIGHT')).toEqual({
206
+ colors: {
207
+ primary: '#000',
208
+ secondary: '#000000'
209
+ },
210
+ sizes: {
211
+ small: 8
212
+ },
213
+ themeName: 'minimal'
214
+ });
215
+ // @ts-expect-error intentionally not using a full EUI theme definition
216
+ expect((0, _utils.getComputed)(theme, {}, 'DARK')).toEqual({
217
+ colors: {
218
+ primary: '#FFF',
219
+ secondary: '#FFFFFF'
220
+ },
221
+ sizes: {
222
+ small: 8
223
+ },
224
+ themeName: 'minimal'
225
+ });
226
+ });
227
+ it('respects simple overrides', function () {
228
+ expect(
229
+ // @ts-expect-error intentionally not using a full EUI theme definition
230
+ (0, _utils.getComputed)(theme, (0, _utils.buildTheme)({
231
+ sizes: {
232
+ small: 4
233
+ }
234
+ }, ''), 'LIGHT')).toEqual({
235
+ colors: {
236
+ primary: '#000',
237
+ secondary: '#000000'
238
+ },
239
+ sizes: {
240
+ small: 4
241
+ },
242
+ themeName: 'minimal'
243
+ });
244
+ });
245
+ it('respects overrides in computation', function () {
246
+ expect((0, _utils.getComputed)(
247
+ // @ts-expect-error intentionally not using a full EUI theme definition
248
+ theme, (0, _utils.buildTheme)({
249
+ colors: {
250
+ LIGHT: {
251
+ primary: '#CCC'
252
+ }
253
+ }
254
+ }, ''), 'LIGHT')).toEqual({
255
+ colors: {
256
+ primary: '#CCC',
257
+ secondary: '#CCC000'
258
+ },
259
+ sizes: {
260
+ small: 8
261
+ },
262
+ themeName: 'minimal'
263
+ });
264
+ });
265
+ it('respects property extensions', function () {
266
+ expect((0, _utils.getComputed)(
267
+ // @ts-expect-error intentionally not using a full EUI theme definition
268
+ theme, (0, _utils.buildTheme)({
269
+ colors: {
270
+ LIGHT: {
271
+ tertiary: '#333'
272
+ }
273
+ }
274
+ }, ''), 'LIGHT')).toEqual({
275
+ colors: {
276
+ primary: '#000',
277
+ secondary: '#000000',
278
+ tertiary: '#333'
279
+ },
280
+ sizes: {
281
+ small: 8
282
+ },
283
+ themeName: 'minimal'
284
+ });
285
+ });
286
+ it('respects section extensions', function () {
287
+ expect((0, _utils.getComputed)(
288
+ // @ts-expect-error intentionally not using a full EUI theme definition
289
+ theme, (0, _utils.buildTheme)({
290
+ custom: {
291
+ myProp: '#333'
292
+ }
293
+ }, ''), 'LIGHT')).toEqual({
294
+ colors: {
295
+ primary: '#000',
296
+ secondary: '#000000'
297
+ },
298
+ sizes: {
299
+ small: 8
300
+ },
301
+ custom: {
302
+ myProp: '#333'
303
+ },
304
+ themeName: 'minimal'
305
+ });
306
+ });
307
+ it('respects extensions in computation', function () {
308
+ expect((0, _utils.getComputed)(
309
+ // @ts-expect-error intentionally not using a full EUI theme definition
310
+ theme, (0, _utils.buildTheme)({
311
+ colors: {
312
+ LIGHT: {
313
+ tertiary: (0, _utils.computed)(function (_ref5) {
314
+ var _ref6 = _slicedToArray(_ref5, 1),
315
+ primary = _ref6[0];
316
+ return "".concat(primary, "333");
317
+ }, ['colors.primary'])
318
+ }
319
+ }
320
+ }, ''), 'LIGHT')).toEqual({
321
+ colors: {
322
+ primary: '#000',
323
+ secondary: '#000000',
324
+ tertiary: '#000333'
325
+ },
326
+ sizes: {
327
+ small: 8
328
+ },
329
+ themeName: 'minimal'
330
+ });
331
+ });
332
+ });
333
+ describe('buildTheme', function () {
334
+ it('builds an EUI theme system', function () {
335
+ // TypeError: 'getOwnPropertyDescriptor' on proxy: trap reported non-configurability for property 'length' which is either non-existant or configurable in the proxy target
336
+ // expect(theme).toEqual(Proxy); // get() trap returns theme.model
337
+ // expect(theme.root).toEqual(Proxy);
338
+ expect(theme.key).toEqual('minimal');
339
+ });
340
+ });
341
+ describe('mergeDeep', function () {
342
+ it('merge simple objects, second into first', function () {
343
+ expect((0, _utils.mergeDeep)({
344
+ a: 1
345
+ }, {
346
+ b: 2
347
+ })).toEqual({
348
+ a: 1,
349
+ b: 2
350
+ });
351
+ expect((0, _utils.mergeDeep)({
352
+ a: 1
353
+ }, {
354
+ a: 2
355
+ })).toEqual({
356
+ a: 2
357
+ });
358
+ });
359
+ it('merge complex objects, second into first', function () {
360
+ expect((0, _utils.mergeDeep)({
361
+ a: 1,
362
+ b: {
363
+ c: {
364
+ d: 3
365
+ }
366
+ }
367
+ }, {
368
+ b: {
369
+ c: {
370
+ d: 4
371
+ }
372
+ }
373
+ })).toEqual({
374
+ a: 1,
375
+ b: {
376
+ c: {
377
+ d: 4
378
+ }
379
+ }
380
+ });
381
+ expect((0, _utils.mergeDeep)({
382
+ a: 1,
383
+ b: {
384
+ c: {
385
+ d: 3
386
+ }
387
+ }
388
+ }, {
389
+ b: {
390
+ c: {
391
+ e: 5
392
+ }
393
+ }
394
+ })).toEqual({
395
+ a: 1,
396
+ b: {
397
+ c: {
398
+ d: 3,
399
+ e: 5
400
+ }
401
+ }
402
+ });
403
+ });
404
+ });
405
+ describe('getTokenName', function () {
406
+ it('returns the correct token name', function () {
407
+ expect((0, _utils.getTokenName)('backgroundBase', 'primary')).toEqual('backgroundBasePrimary');
408
+ expect((0, _utils.getTokenName)('backgroundBase', 'primary', 'hovered')).toEqual('backgroundBasePrimaryHovered');
409
+ });
410
+ });
411
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","names":["_utils","require","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","describe","it","expect","isInverseColorMode","toBe","getColorMode","toEqual","undefined","obj","parent","child","other","thing","string","nested","number","func","colors","LIGHT","primary","DARK","getOn","toBeInstanceOf","Function","beforeEach","existing","val","setOn","trail","blazing","happening","now","output","computed","_ref","_ref2","path","Computed","computer","dependencies","theme","buildTheme","secondary","_ref3","_ref4","concat","sizes","small","getComputed","themeName","tertiary","custom","myProp","_ref5","_ref6","key","mergeDeep","b","c","d","getTokenName"],"sources":["../../src/utils.test.ts"],"sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0 and the Server Side Public License, v 1; you may not use this file except\n * in compliance with, at your election, the Elastic License 2.0 or the Server\n * Side Public License, v 1.\n */\n\nimport {\n isInverseColorMode,\n getColorMode,\n getOn,\n setOn,\n computed,\n Computed,\n getComputed,\n buildTheme,\n mergeDeep,\n getTokenName,\n} from './utils';\n\ndescribe('isInverseColorMode', () => {\n it(\"true only if 'inverse'\", () => {\n expect(isInverseColorMode('LIGHT')).toBe(false);\n expect(isInverseColorMode('DARK')).toBe(false);\n expect(isInverseColorMode('custom')).toBe(false);\n expect(isInverseColorMode()).toBe(false);\n expect(isInverseColorMode('INVERSE')).toBe(true);\n });\n});\n\ndescribe('getColorMode', () => {\n it(\"defaults to 'LIGHT'\", () => {\n expect(getColorMode()).toEqual('LIGHT');\n });\n it('uses `parentMode` as fallback', () => {\n expect(getColorMode(undefined, 'DARK')).toEqual('DARK');\n });\n it(\"understands 'INVERSE'\", () => {\n expect(getColorMode('INVERSE', 'DARK')).toEqual('LIGHT');\n expect(getColorMode('INVERSE', 'LIGHT')).toEqual('DARK');\n expect(getColorMode('INVERSE')).toEqual('LIGHT');\n });\n});\n\ndescribe('getOn', () => {\n const obj = {\n parent: {\n child: 'childVal',\n },\n other: {\n thing: {\n string: 'stringVal',\n nested: ['array'],\n number: 0,\n func: () => {},\n },\n },\n colors: {\n LIGHT: { primary: '#000' },\n DARK: { primary: '#FFF' },\n },\n };\n it('gets values at the given path', () => {\n expect(getOn(obj, 'parent')).toEqual({\n child: 'childVal',\n });\n expect(getOn(obj, 'parent.child')).toEqual('childVal');\n expect(getOn(obj, 'other.thing.string')).toEqual('stringVal');\n });\n it('gets values of various kinds', () => {\n expect(getOn(obj, 'other.thing.nested')).toEqual(['array']);\n expect(getOn(obj, 'other.thing.number')).toEqual(0);\n expect(getOn(obj, 'other.thing.func')).toBeInstanceOf(Function);\n });\n it('can shortcut color modes', () => {\n expect(getOn(obj, 'colors.primary', 'LIGHT')).toEqual('#000');\n expect(getOn(obj, 'colors.primary', 'DARK')).toEqual('#FFF');\n });\n it('will not error', () => {\n expect(getOn(obj, 'nope')).toBe(undefined);\n expect(getOn(obj, 'other.nope')).toBe(undefined);\n expect(getOn(obj, 'other.thing.nope')).toBe(undefined);\n });\n});\n\ndescribe('setOn', () => {\n let obj: {};\n beforeEach(() => {\n obj = {\n existing: {\n nested: {\n val: 'value',\n },\n },\n };\n });\n it('sets values at the given path', () => {\n setOn(obj, 'existing.new', 'value');\n expect(obj).toEqual({\n existing: { nested: { val: 'value' }, new: 'value' },\n });\n setOn(obj, 'existing.nested.new', 'value');\n expect(obj).toEqual({\n existing: { nested: { val: 'value', new: 'value' }, new: 'value' },\n });\n });\n it('deep arbitrary creation', () => {\n setOn(obj, 'trail.blazing.happening.now', 'wow');\n expect(obj).toEqual({\n existing: { nested: { val: 'value' } },\n trail: { blazing: { happening: { now: 'wow' } } },\n });\n });\n it('overrides existing path value', () => {\n setOn(obj, 'existing.nested', 'diff');\n expect(obj).toEqual({\n existing: {\n nested: 'diff',\n },\n });\n });\n});\n\ndescribe('computed', () => {\n it('should transform to Computed with dependencies array', () => {\n const output = computed(([path]) => path, ['path.to']);\n expect(output).toBeInstanceOf(Computed);\n expect(output.computer).toBeInstanceOf(Function);\n expect(output.dependencies).toEqual(['path.to']);\n });\n it('should transform to Computed with single dependency', () => {\n const output = computed((path) => path, 'path.to');\n expect(output).toBeInstanceOf(Computed);\n expect(output.computer).toBeInstanceOf(Function);\n expect(output.dependencies).toEqual('path.to');\n });\n it('should transform to Computed without dependencies array', () => {\n const output = computed((path) => path);\n expect(output).toBeInstanceOf(Computed);\n });\n});\n\nconst theme = buildTheme(\n {\n colors: {\n LIGHT: {\n primary: '#000',\n secondary: computed(([primary]) => `${primary}000`, ['colors.primary']),\n },\n DARK: {\n primary: '#FFF',\n secondary: computed((theme) => `${theme.colors.primary}FFF`),\n },\n },\n sizes: {\n small: 8,\n },\n },\n 'minimal'\n);\ndescribe('getComputed', () => {\n it('computes all values and returns only the current color mode', () => {\n // @ts-expect-error intentionally not using a full EUI theme definition\n expect(getComputed(theme, {}, 'LIGHT')).toEqual({\n colors: { primary: '#000', secondary: '#000000' },\n sizes: { small: 8 },\n themeName: 'minimal',\n });\n // @ts-expect-error intentionally not using a full EUI theme definition\n expect(getComputed(theme, {}, 'DARK')).toEqual({\n colors: { primary: '#FFF', secondary: '#FFFFFF' },\n sizes: { small: 8 },\n themeName: 'minimal',\n });\n });\n it('respects simple overrides', () => {\n expect(\n // @ts-expect-error intentionally not using a full EUI theme definition\n getComputed(theme, buildTheme({ sizes: { small: 4 } }, ''), 'LIGHT')\n ).toEqual({\n colors: { primary: '#000', secondary: '#000000' },\n sizes: { small: 4 },\n themeName: 'minimal',\n });\n });\n it('respects overrides in computation', () => {\n expect(\n getComputed(\n // @ts-expect-error intentionally not using a full EUI theme definition\n theme,\n buildTheme({ colors: { LIGHT: { primary: '#CCC' } } }, ''),\n 'LIGHT'\n )\n ).toEqual({\n colors: { primary: '#CCC', secondary: '#CCC000' },\n sizes: { small: 8 },\n themeName: 'minimal',\n });\n });\n it('respects property extensions', () => {\n expect(\n getComputed(\n // @ts-expect-error intentionally not using a full EUI theme definition\n theme,\n buildTheme({ colors: { LIGHT: { tertiary: '#333' } } }, ''),\n 'LIGHT'\n )\n ).toEqual({\n colors: { primary: '#000', secondary: '#000000', tertiary: '#333' },\n sizes: { small: 8 },\n themeName: 'minimal',\n });\n });\n it('respects section extensions', () => {\n expect(\n getComputed(\n // @ts-expect-error intentionally not using a full EUI theme definition\n theme,\n buildTheme({ custom: { myProp: '#333' } }, ''),\n 'LIGHT'\n )\n ).toEqual({\n colors: { primary: '#000', secondary: '#000000' },\n sizes: { small: 8 },\n custom: { myProp: '#333' },\n themeName: 'minimal',\n });\n });\n it('respects extensions in computation', () => {\n expect(\n getComputed(\n // @ts-expect-error intentionally not using a full EUI theme definition\n theme,\n buildTheme(\n {\n colors: {\n LIGHT: {\n tertiary: computed(\n ([primary]) => `${primary}333`,\n ['colors.primary']\n ),\n },\n },\n },\n ''\n ),\n 'LIGHT'\n )\n ).toEqual({\n colors: { primary: '#000', secondary: '#000000', tertiary: '#000333' },\n sizes: { small: 8 },\n themeName: 'minimal',\n });\n });\n});\n\ndescribe('buildTheme', () => {\n it('builds an EUI theme system', () => {\n // TypeError: 'getOwnPropertyDescriptor' on proxy: trap reported non-configurability for property 'length' which is either non-existant or configurable in the proxy target\n // expect(theme).toEqual(Proxy); // get() trap returns theme.model\n // expect(theme.root).toEqual(Proxy);\n expect(theme.key).toEqual('minimal');\n });\n});\n\ndescribe('mergeDeep', () => {\n it('merge simple objects, second into first', () => {\n expect(mergeDeep({ a: 1 }, { b: 2 })).toEqual({ a: 1, b: 2 });\n expect(mergeDeep({ a: 1 }, { a: 2 })).toEqual({ a: 2 });\n });\n it('merge complex objects, second into first', () => {\n expect(\n mergeDeep({ a: 1, b: { c: { d: 3 } } }, { b: { c: { d: 4 } } })\n ).toEqual({ a: 1, b: { c: { d: 4 } } });\n expect(\n mergeDeep({ a: 1, b: { c: { d: 3 } } }, { b: { c: { e: 5 } } })\n ).toEqual({ a: 1, b: { c: { d: 3, e: 5 } } });\n });\n});\n\ndescribe('getTokenName', () => {\n it('returns the correct token name', () => {\n expect(getTokenName('backgroundBase', 'primary')).toEqual(\n 'backgroundBasePrimary'\n );\n expect(getTokenName('backgroundBase', 'primary', 'hovered')).toEqual(\n 'backgroundBasePrimaryHovered'\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}