@genexus/mercury 0.0.2 → 0.1.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 (254) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/package.json +4 -1
  4. package/.editorconfig +0 -16
  5. package/.prettierrc.json +0 -13
  6. package/notes.md +0 -5
  7. package/src/_mixins.scss +0 -166
  8. package/src/assets/fonts/Inter_Black.woff2 +0 -0
  9. package/src/assets/fonts/Inter_Bold.woff2 +0 -0
  10. package/src/assets/fonts/Inter_ExtraBold.woff2 +0 -0
  11. package/src/assets/fonts/Inter_ExtraLight.woff2 +0 -0
  12. package/src/assets/fonts/Inter_Light.woff2 +0 -0
  13. package/src/assets/fonts/Inter_Medium.woff2 +0 -0
  14. package/src/assets/fonts/Inter_Regular.woff2 +0 -0
  15. package/src/assets/fonts/Inter_SemiBold.woff2 +0 -0
  16. package/src/assets/fonts/Inter_Thin.woff2 +0 -0
  17. package/src/assets/icons/objects/dark/api.svg +0 -1
  18. package/src/assets/icons/objects/dark/attribute.svg +0 -1
  19. package/src/assets/icons/objects/dark/bg-color.svg +0 -1
  20. package/src/assets/icons/objects/dark/business-process-diagram.svg +0 -1
  21. package/src/assets/icons/objects/dark/calendars.svg +0 -1
  22. package/src/assets/icons/objects/dark/category.svg +0 -1
  23. package/src/assets/icons/objects/dark/conversational-flows.svg +0 -1
  24. package/src/assets/icons/objects/dark/customization.svg +0 -1
  25. package/src/assets/icons/objects/dark/dashboard.svg +0 -1
  26. package/src/assets/icons/objects/dark/data-provider.svg +0 -1
  27. package/src/assets/icons/objects/dark/data-selector.svg +0 -1
  28. package/src/assets/icons/objects/dark/data-view.svg +0 -1
  29. package/src/assets/icons/objects/dark/datastore-category.svg +0 -1
  30. package/src/assets/icons/objects/dark/datastore.svg +0 -1
  31. package/src/assets/icons/objects/dark/dataview-index.svg +0 -1
  32. package/src/assets/icons/objects/dark/deployment-unit.svg +0 -1
  33. package/src/assets/icons/objects/dark/design.svg +0 -1
  34. package/src/assets/icons/objects/dark/diagram.svg +0 -1
  35. package/src/assets/icons/objects/dark/document-workflow.svg +0 -1
  36. package/src/assets/icons/objects/dark/document.svg +0 -1
  37. package/src/assets/icons/objects/dark/domain.svg +0 -1
  38. package/src/assets/icons/objects/dark/dso.svg +0 -1
  39. package/src/assets/icons/objects/dark/environment-no-select.svg +0 -1
  40. package/src/assets/icons/objects/dark/environment-select.svg +0 -1
  41. package/src/assets/icons/objects/dark/external-object.svg +0 -1
  42. package/src/assets/icons/objects/dark/file.svg +0 -1
  43. package/src/assets/icons/objects/dark/folder-open.svg +0 -1
  44. package/src/assets/icons/objects/dark/folder.svg +0 -1
  45. package/src/assets/icons/objects/dark/generator-category.svg +0 -1
  46. package/src/assets/icons/objects/dark/generator.svg +0 -1
  47. package/src/assets/icons/objects/dark/image.svg +0 -1
  48. package/src/assets/icons/objects/dark/knowledge-base.svg +0 -1
  49. package/src/assets/icons/objects/dark/lenguage.svg +0 -1
  50. package/src/assets/icons/objects/dark/main-object.svg +0 -1
  51. package/src/assets/icons/objects/dark/masterpage.svg +0 -1
  52. package/src/assets/icons/objects/dark/menu.svg +0 -1
  53. package/src/assets/icons/objects/dark/menubar.svg +0 -1
  54. package/src/assets/icons/objects/dark/mini-app.svg +0 -1
  55. package/src/assets/icons/objects/dark/module-open.svg +0 -1
  56. package/src/assets/icons/objects/dark/module.svg +0 -1
  57. package/src/assets/icons/objects/dark/notification-templates.svg +0 -1
  58. package/src/assets/icons/objects/dark/object.svg +0 -1
  59. package/src/assets/icons/objects/dark/offline-database.svg +0 -1
  60. package/src/assets/icons/objects/dark/orphant-document.svg +0 -1
  61. package/src/assets/icons/objects/dark/panel-for-sd.svg +0 -1
  62. package/src/assets/icons/objects/dark/patterns.svg +0 -1
  63. package/src/assets/icons/objects/dark/procedure.svg +0 -1
  64. package/src/assets/icons/objects/dark/query.svg +0 -1
  65. package/src/assets/icons/objects/dark/references.svg +0 -1
  66. package/src/assets/icons/objects/dark/report.svg +0 -1
  67. package/src/assets/icons/objects/dark/roles.svg +0 -1
  68. package/src/assets/icons/objects/dark/stencil.svg +0 -1
  69. package/src/assets/icons/objects/dark/structured-data-type.svg +0 -1
  70. package/src/assets/icons/objects/dark/subtype-group.svg +0 -1
  71. package/src/assets/icons/objects/dark/super-app.svg +0 -1
  72. package/src/assets/icons/objects/dark/table.svg +0 -1
  73. package/src/assets/icons/objects/dark/theme-for-sd.svg +0 -1
  74. package/src/assets/icons/objects/dark/theme-web.svg +0 -1
  75. package/src/assets/icons/objects/dark/theme.svg +0 -1
  76. package/src/assets/icons/objects/dark/to-be-defined.svg +0 -1
  77. package/src/assets/icons/objects/dark/transaction.svg +0 -1
  78. package/src/assets/icons/objects/dark/url-rewrite.svg +0 -1
  79. package/src/assets/icons/objects/dark/version.svg +0 -1
  80. package/src/assets/icons/objects/dark/web-component.svg +0 -1
  81. package/src/assets/icons/objects/dark/webpanel.svg +0 -1
  82. package/src/assets/icons/objects/dark/work-panel.svg +0 -1
  83. package/src/assets/icons/objects/dark/workflow.svg +0 -1
  84. package/src/assets/icons/objects/light/api.svg +0 -1
  85. package/src/assets/icons/objects/light/attribute.svg +0 -1
  86. package/src/assets/icons/objects/light/bg-color.svg +0 -1
  87. package/src/assets/icons/objects/light/business-process-diagram.svg +0 -1
  88. package/src/assets/icons/objects/light/calendars.svg +0 -1
  89. package/src/assets/icons/objects/light/category.svg +0 -1
  90. package/src/assets/icons/objects/light/conversational-flows.svg +0 -1
  91. package/src/assets/icons/objects/light/customization.svg +0 -1
  92. package/src/assets/icons/objects/light/dashboard.svg +0 -1
  93. package/src/assets/icons/objects/light/data-provider.svg +0 -1
  94. package/src/assets/icons/objects/light/data-selector.svg +0 -1
  95. package/src/assets/icons/objects/light/data-view.svg +0 -1
  96. package/src/assets/icons/objects/light/datastore-category.svg +0 -1
  97. package/src/assets/icons/objects/light/datastore.svg +0 -1
  98. package/src/assets/icons/objects/light/dataview-index.svg +0 -1
  99. package/src/assets/icons/objects/light/deployment-unit.svg +0 -1
  100. package/src/assets/icons/objects/light/design.svg +0 -1
  101. package/src/assets/icons/objects/light/diagram.svg +0 -1
  102. package/src/assets/icons/objects/light/document-workflow.svg +0 -1
  103. package/src/assets/icons/objects/light/document.svg +0 -1
  104. package/src/assets/icons/objects/light/domain.svg +0 -1
  105. package/src/assets/icons/objects/light/dso.svg +0 -1
  106. package/src/assets/icons/objects/light/environment-no-select.svg +0 -1
  107. package/src/assets/icons/objects/light/environment-select.svg +0 -1
  108. package/src/assets/icons/objects/light/external-object.svg +0 -1
  109. package/src/assets/icons/objects/light/file.svg +0 -1
  110. package/src/assets/icons/objects/light/folder-open.svg +0 -1
  111. package/src/assets/icons/objects/light/folder.svg +0 -1
  112. package/src/assets/icons/objects/light/generator-category.svg +0 -1
  113. package/src/assets/icons/objects/light/generator.svg +0 -1
  114. package/src/assets/icons/objects/light/image.svg +0 -1
  115. package/src/assets/icons/objects/light/knowledge-base.svg +0 -1
  116. package/src/assets/icons/objects/light/lenguage.svg +0 -1
  117. package/src/assets/icons/objects/light/main-object.svg +0 -1
  118. package/src/assets/icons/objects/light/masterpage.svg +0 -1
  119. package/src/assets/icons/objects/light/menu.svg +0 -1
  120. package/src/assets/icons/objects/light/menubar.svg +0 -1
  121. package/src/assets/icons/objects/light/mini-app.svg +0 -1
  122. package/src/assets/icons/objects/light/module-open.svg +0 -1
  123. package/src/assets/icons/objects/light/module.svg +0 -1
  124. package/src/assets/icons/objects/light/notification-templates.svg +0 -1
  125. package/src/assets/icons/objects/light/object.svg +0 -1
  126. package/src/assets/icons/objects/light/offline-database.svg +0 -1
  127. package/src/assets/icons/objects/light/orphant-document.svg +0 -1
  128. package/src/assets/icons/objects/light/panel-for-sd.svg +0 -1
  129. package/src/assets/icons/objects/light/patterns.svg +0 -1
  130. package/src/assets/icons/objects/light/procedure.svg +0 -1
  131. package/src/assets/icons/objects/light/query.svg +0 -1
  132. package/src/assets/icons/objects/light/references.svg +0 -1
  133. package/src/assets/icons/objects/light/report.svg +0 -1
  134. package/src/assets/icons/objects/light/roles.svg +0 -1
  135. package/src/assets/icons/objects/light/stencil.svg +0 -1
  136. package/src/assets/icons/objects/light/structured-data-type.svg +0 -1
  137. package/src/assets/icons/objects/light/subtype-group.svg +0 -1
  138. package/src/assets/icons/objects/light/super-app.svg +0 -1
  139. package/src/assets/icons/objects/light/table.svg +0 -1
  140. package/src/assets/icons/objects/light/theme-for-sd.svg +0 -1
  141. package/src/assets/icons/objects/light/theme-web.svg +0 -1
  142. package/src/assets/icons/objects/light/theme.svg +0 -1
  143. package/src/assets/icons/objects/light/to-be-defined.svg +0 -1
  144. package/src/assets/icons/objects/light/transaction.svg +0 -1
  145. package/src/assets/icons/objects/light/url-rewrite.svg +0 -1
  146. package/src/assets/icons/objects/light/version.svg +0 -1
  147. package/src/assets/icons/objects/light/web-component.svg +0 -1
  148. package/src/assets/icons/objects/light/webpanel.svg +0 -1
  149. package/src/assets/icons/objects/light/work-panel.svg +0 -1
  150. package/src/assets/icons/objects/light/workflow.svg +0 -1
  151. package/src/base/button/_icons.scss +0 -139
  152. package/src/base/button/_styles-2.scss +0 -275
  153. package/src/base/button/_styles.scss +0 -50
  154. package/src/base/button/_tokens.scss +0 -85
  155. package/src/base/icons/sass/icons-selectors.scss +0 -12
  156. package/src/base/icons/sass/multicolor/_objects.scss +0 -1948
  157. package/src/components/_template/_styles.scss +0 -4
  158. package/src/components/_template/_tokens.scss +0 -2
  159. package/src/components/checkbox/_styles.scss +0 -7
  160. package/src/components/checkbox/_tokens.scss +0 -14
  161. package/src/components/shortcuts/_styles.scss +0 -30
  162. package/src/components/shortcuts/_tokens.scss +0 -21
  163. package/src/components/tree-view/_styles.scss +0 -169
  164. package/src/components/tree-view/_tokens.scss +0 -60
  165. package/src/icons/_settings/monochrome.svg.template +0 -79
  166. package/src/icons/_settings/multicolor.svg.template +0 -126
  167. package/src/icons/_settings/states-monochrome.json +0 -18
  168. package/src/icons/objects/api.svg +0 -5
  169. package/src/icons/objects/attribute.svg +0 -6
  170. package/src/icons/objects/bg-color.svg +0 -6
  171. package/src/icons/objects/business-process-diagram.svg +0 -5
  172. package/src/icons/objects/calendars.svg +0 -5
  173. package/src/icons/objects/category.svg +0 -5
  174. package/src/icons/objects/conversational-flows.svg +0 -5
  175. package/src/icons/objects/customization.svg +0 -5
  176. package/src/icons/objects/dashboard.svg +0 -5
  177. package/src/icons/objects/data-provider.svg +0 -6
  178. package/src/icons/objects/data-selector.svg +0 -6
  179. package/src/icons/objects/data-view.svg +0 -6
  180. package/src/icons/objects/datastore-category.svg +0 -6
  181. package/src/icons/objects/datastore.svg +0 -6
  182. package/src/icons/objects/dataview-index.svg +0 -6
  183. package/src/icons/objects/deployment-unit.svg +0 -5
  184. package/src/icons/objects/design.svg +0 -6
  185. package/src/icons/objects/diagram.svg +0 -5
  186. package/src/icons/objects/document-workflow.svg +0 -5
  187. package/src/icons/objects/document.svg +0 -5
  188. package/src/icons/objects/domain.svg +0 -5
  189. package/src/icons/objects/dso.svg +0 -6
  190. package/src/icons/objects/environment-no-select.svg +0 -5
  191. package/src/icons/objects/environment-select.svg +0 -6
  192. package/src/icons/objects/external-object.svg +0 -5
  193. package/src/icons/objects/file.svg +0 -5
  194. package/src/icons/objects/folder-open.svg +0 -5
  195. package/src/icons/objects/folder.svg +0 -5
  196. package/src/icons/objects/generator-category.svg +0 -6
  197. package/src/icons/objects/generator.svg +0 -6
  198. package/src/icons/objects/image.svg +0 -5
  199. package/src/icons/objects/knowledge-base.svg +0 -7
  200. package/src/icons/objects/lenguage.svg +0 -5
  201. package/src/icons/objects/main-object.svg +0 -13
  202. package/src/icons/objects/masterpage.svg +0 -5
  203. package/src/icons/objects/menu.svg +0 -5
  204. package/src/icons/objects/menubar.svg +0 -6
  205. package/src/icons/objects/mini-app.svg +0 -8
  206. package/src/icons/objects/module-open.svg +0 -5
  207. package/src/icons/objects/module.svg +0 -5
  208. package/src/icons/objects/notification-templates.svg +0 -5
  209. package/src/icons/objects/object.svg +0 -5
  210. package/src/icons/objects/offline-database.svg +0 -6
  211. package/src/icons/objects/orphant-document.svg +0 -5
  212. package/src/icons/objects/panel-for-sd.svg +0 -6
  213. package/src/icons/objects/patterns.svg +0 -6
  214. package/src/icons/objects/procedure.svg +0 -5
  215. package/src/icons/objects/query.svg +0 -6
  216. package/src/icons/objects/references.svg +0 -5
  217. package/src/icons/objects/report.svg +0 -5
  218. package/src/icons/objects/roles.svg +0 -5
  219. package/src/icons/objects/stencil.svg +0 -10
  220. package/src/icons/objects/structured-data-type.svg +0 -7
  221. package/src/icons/objects/subtype-group.svg +0 -5
  222. package/src/icons/objects/super-app.svg +0 -8
  223. package/src/icons/objects/table.svg +0 -5
  224. package/src/icons/objects/theme-for-sd.svg +0 -6
  225. package/src/icons/objects/theme-web.svg +0 -9
  226. package/src/icons/objects/theme.svg +0 -6
  227. package/src/icons/objects/to-be-defined.svg +0 -5
  228. package/src/icons/objects/transaction.svg +0 -5
  229. package/src/icons/objects/url-rewrite.svg +0 -5
  230. package/src/icons/objects/version.svg +0 -8
  231. package/src/icons/objects/web-component.svg +0 -5
  232. package/src/icons/objects/webpanel.svg +0 -6
  233. package/src/icons/objects/work-panel.svg +0 -5
  234. package/src/icons/objects/workflow.svg +0 -5
  235. package/src/tokens/primitive/_border.scss +0 -13
  236. package/src/tokens/primitive/_color.scss +0 -109
  237. package/src/tokens/primitive/_elevation.scss +0 -38
  238. package/src/tokens/primitive/_font.scss +0 -37
  239. package/src/tokens/primitive/_spacing.scss +0 -12
  240. package/src/tokens/primitive/_timing.scss +0 -6
  241. package/src/tokens/semantic/_accent.scss +0 -7
  242. package/src/tokens/semantic/_border.scss +0 -16
  243. package/src/tokens/semantic/_heading.scss +0 -3
  244. package/src/tokens/semantic/_icon.scss +0 -18
  245. package/src/tokens/semantic/_item.scss +0 -21
  246. package/src/tokens/semantic/_other.scss +0 -46
  247. package/src/tokens/semantic/_text.scss +0 -16
  248. package/src/tokens/semantic/_tokens.scss +0 -7
  249. package/svg-generator/processor-sass.js +0 -301
  250. package/svg-generator/processor-svg.js +0 -397
  251. package/svg-generator/processor-ts.js +0 -0
  252. package/temporary-tests/test-button-icons/index.html +0 -48
  253. package/temporary-tests/test-icons/index.html +0 -247
  254. package/test/test.scss +0 -3
@@ -1,37 +0,0 @@
1
- /* font weights used by mercury:
2
- - light (300)
3
- - regular (400)
4
- - semi-bold (600)
5
- - bold (700)
6
- - extra-bold (800)
7
- */
8
-
9
- @mixin font() {
10
- /*Families*/
11
- --mer-font-family--primary: "Inter", sans-serif;
12
-
13
- /*Weights*/
14
- --mer-font__weight--light: 300;
15
- --mer-font__weight--regular: 400;
16
- --mer-font__weight--semi-bold: 600;
17
- --mer-font__weight--bold: 700;
18
- --mer-font__weight--extra-bold: 800;
19
-
20
- /*Sizes*/
21
- --mer-font__size--xxs: 12px;
22
- --mer-font__size--xs: 14px;
23
- --mer-font__size--sm: 16px;
24
- --mer-font__size--md: 20px;
25
- --mer-font__size--lg: 24px;
26
- --mer-font__size--xl: 36px;
27
-
28
- /*Line Heights*/
29
- --mer-line-height--tight: 1.4em;
30
- --mer-line-height--regular: 1.6em;
31
- --mer-line-height--comfortable: 1.7em;
32
-
33
- /*Letter Spacings (to be done)*/
34
- // --mer-letter-spacing--tight: ;
35
- // --mer-letter-spacing--regular: ;
36
- // --mer-letter-spacing--comfortable: ;
37
- }
@@ -1,12 +0,0 @@
1
- @mixin spacing() {
2
- --mer-spacing--3xs: 2px;
3
- --mer-spacing--2xs: 4px;
4
- --mer-spacing--xs: 8px;
5
- --mer-spacing--sm: 12px;
6
- --mer-spacing--md: 16px;
7
- --mer-spacing--lg: 24px;
8
- --mer-spacing--xl: 32px;
9
- --mer-spacing--2xl: 40px;
10
- --mer-spacing--3xl: 48px;
11
- --mer-spacing--4xl: 64px;
12
- }
@@ -1,6 +0,0 @@
1
- @mixin timing() {
2
- --mer-timing--super-fast: 100;
3
- --mer-timing--fast: 200;
4
- --mer-timing--regular: 500;
5
- --mer-timing--slow: 1000;
6
- }
@@ -1,7 +0,0 @@
1
- @mixin semantic-accent() {
2
- --mer-accent__primary: var(--mer-color__primary-blue--200);
3
- --mer-accent__primary--hover: var(--mer-color__primary-blue--400);
4
- --mer-accent__primary--active: var(--mer-color__primary-blue--600);
5
- --mer-accent__primary--disabled: var(--mer-color__neutral-gray--700);
6
- --mer-accent__primary--destructive: var(--mer-color__message-red--100);
7
- }
@@ -1,16 +0,0 @@
1
- @mixin semantic-border() {
2
- --mer-border-color__primary: var(--mer-accent__primary);
3
- --mer-border-color__primary--hover: var(--mer-accent__primary--hover);
4
- --mer-border-color__primary--active: var(--mer-accent__primary--active);
5
- --mer-border-color__primary--disabled: var(--mer-accent__primary--disabled);
6
- --mer-border-color__primary--focused: var(--mer-color__neutral-gray--00);
7
- --mer-border-color__error: var(--mer-color__message-red--100);
8
- --mer-border-color__warning: var(--mer-color__message-yellow--100);
9
- --mer-border-color__success: var(--mer-color__message-green--100);
10
- --mer-border-color__neutral: var(--mer-color__neutral-gray--200);
11
- --mer-border-color__neutral--hover: var(--mer-color__neutral-gray--100);
12
- --mer-border-color__neutral--active: var(--mer-color__neutral-gray--00);
13
- --mer-border-color__dim: var(--mer-color__neutral-gray--600);
14
- --mer-border-color__control--focused: var(--mer-color__primary-blue--200);
15
- --mer-border-color__on-elevation--01: var(--mer-color__neutral-gray--1400);
16
- }
@@ -1,3 +0,0 @@
1
- @mixin semantic-heading() {
2
- --mer-heading__font-color: var(--mer-color__neutral-gray--100);
3
- }
@@ -1,18 +0,0 @@
1
- @mixin semantic-icon() {
2
- --mer-icon__on-surface: var(--mer-color__neutral-gray--300);
3
- --mer-icon__on-primary: var(--mer-color__neutral-gray--800);
4
- --mer-icon__on-primary--active: var(--mer-color__neutral-gray--00);
5
- --mer-icon__on-disabled: var(--mer-color__neutral-gray--500);
6
- --mer-icon__on-message: var(--mer-color__neutral-gray--700);
7
- --mer-icon__on-elevation: var(--mer-color__neutral-gray--600);
8
- --mer-icon__primary: var(--mer-accent__primary);
9
- --mer-icon__primary--hover: var(--mer-accent__primary--hover);
10
- --mer-icon__primary--active: var(--mer-accent__primary--active);
11
- --mer-icon__primary--disabled: var(--mer-accent__primary--disabled);
12
- --mer-icon__error: var(--mer-color__message-red--100);
13
- --mer-icon__warning: var(--mer-color__message-yellow--100);
14
- --mer-icon__success: var(--mer-color__message-green--100);
15
- --mer-icon__neutral: var(--mer-color__neutral-gray--200);
16
- --mer-icon__highlighted: var(--mer-color__neutral-gray--100);
17
- --mer-icon__bright: var(--mer-color__neutral-gray--00);
18
- }
@@ -1,21 +0,0 @@
1
- @mixin semantic-item() {
2
- //enabled
3
- --mer-item__color: ;
4
- --mer-item__bg-color: ;
5
- --mer-item__border-color: var(--mer-color__tinted-blue--20);
6
-
7
- //hover
8
- --mer-item__color--hover: var(--mer-color__neutral-gray--100);
9
- --mer-item__bg-color--hover: var(--mer-color__tinted-blue--5);
10
- --mer-item__border-color--hover: var(--mer-color__tinted-blue--20);
11
-
12
- //selected
13
- --mer-item__color--selected: var(--mer-color__neutral-gray--100);
14
- --mer-item__bg-color--selected: var(--mer-color__tinted-blue--10);
15
- --mer-item__border-color--selected: var(--mer-color__tinted-blue--20);
16
-
17
- //selected + hover
18
- --mer-item__color--selected-hover: var(--mer-color__neutral-gray--100);
19
- --mer-item__bg-color--selected-hover: var(--mer-color__tinted-blue--10);
20
- --mer-item__border-color--selected-hover: var(--mer-color__tinted-blue--20);
21
- }
@@ -1,46 +0,0 @@
1
- @mixin semantic-other() {
2
- /*----------------------
3
- Body
4
- ----------------------*/
5
- --mer-body__bg-color: var(--mer-color__surface);
6
- --mer-body__color: var(--mer-text__on-surface);
7
- --mer-body__font-size: var(--mer-font__size--xxs);
8
- --mer-body__line-height: var(--mer-line-height--regular);
9
-
10
- /*----------------------
11
- Scrollbar
12
- ----------------------*/
13
- // scrollbar
14
- --mer-scrollbar__size: var(--mer-spacing--xs);
15
-
16
- // scrollbar-track
17
- --mer-scrollbar-track__bg-color: var(--mer-color__elevation--03);
18
- --mer-scrollbar-track__border-radius: var(--mer-spacing--xs);
19
-
20
- // scrollbar-thumb
21
- --mer-scrollbar-thumb__bg-color: var(--mer-color__elevation--04);
22
- --mer-scrollbar-thumb__bg-color--hover: var(--mer-color__elevation--04);
23
- --mer-scrollbar-thumb__border-radius: var(--mer-spacing--xs);
24
-
25
- // scrollbar-thumb
26
- --mer-scrollbar-corner__bg: rgba(0, 0, 0, 0);
27
-
28
- /*----------------------
29
- Icon
30
- ----------------------*/
31
- // size
32
- --mer-icon-shell__size--sm: var(--mer-spacing--md);
33
- --mer-icon__size--sm: var(--mer-spacing--sm);
34
- --mer-icon-shell__size--lg: var(--mer-spacing--sm);
35
- --mer-icon__size--lg: var(--mer-spacing--xs);
36
-
37
- /*----------------------
38
- Label
39
- ----------------------*/
40
- // size
41
- // space between label and control
42
- --mer-label__space: var(--mer-spacing--xs);
43
- --mer-label__font-size: inherit;
44
- --mer-label__font-weight: var(--mer-font__weight--semi-bold);
45
- --mer-label__color: inherit;
46
- }
@@ -1,16 +0,0 @@
1
- @mixin semantic-text() {
2
- --mer-text__on-surface: var(--mer-color__neutral-gray--300);
3
- --mer-text__on-primary: var(--mer-color__neutral-gray--800);
4
- --mer-text__on-primary--active: var(--mer-color__neutral-gray--00);
5
- --mer-text__on-disabled: var(--mer-color__neutral-gray--500);
6
- --mer-text__on-message: var(--mer-color__neutral-gray--700);
7
- --mer-text__on-elevation: var(--mer-color__neutral-gray--00);
8
- --mer-text__primary: var(--mer-accent__primary);
9
- --mer-text__primary--hover: var(--mer-accent__primary--hover);
10
- --mer-text__primary--active: var(--mer-accent__primary--active);
11
- --mer-text__primary--disabled: #5b5b5b; //This color is not currently linked to any value on the grayscale scale (no primitive value).
12
- --mer-text__disabled: var(--mer-color__neutral-gray--600);
13
- --mer-text__neutral: var(--mer-color__neutral-gray--200);
14
- --mer-text__highlighted: var(--mer-color__neutral-gray--100);
15
- --mer-text__bright: var(--mer-color__neutral-gray--00);
16
- }
@@ -1,7 +0,0 @@
1
- @import "accent";
2
- @import "border";
3
- @import "heading";
4
- @import "icon";
5
- @import "item";
6
- @import "text";
7
- @import "other";
@@ -1,301 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from "fs";
4
- import path from "path";
5
-
6
- // Define the path to the parent directory containing the folders
7
- const SRC_DIRECTORY = await process.argv[2];
8
- const OUTPUT_DIRECTORY = await process.argv[3];
9
- const MONOCHROME_STATES_FILE = await process.argv[4];
10
- const MONOCHROME_ID = "monochrome";
11
- const MULTICOLOR_ID = "multicolor";
12
- let monochromeLists = [];
13
- let multicolorLists = [];
14
-
15
- function getStatesJson() {
16
- try {
17
- const statesJson = fs.readFileSync(`./${MONOCHROME_STATES_FILE}`, "utf8");
18
- return JSON.parse(statesJson);
19
- } catch (error) {
20
- if (error.code === "ENOENT") {
21
- console.error(
22
- `states.json not found in /${SRC_DIRECTORY}. All states will be generated for every icon.`
23
- );
24
- } else {
25
- console.error(
26
- `Error reading ${SRC_DIRECTORY}/states.json:`,
27
- error.message
28
- );
29
- }
30
- }
31
- }
32
-
33
- // Function to read the directories and files
34
- function readDirectoriesAndFiles(directoryPath) {
35
- // Read the contents of the directory
36
- const files = fs.readdirSync(directoryPath);
37
-
38
- // Filter out only directories
39
- const directories = files.filter((file) =>
40
- fs.statSync(path.join(directoryPath, file)).isDirectory()
41
- );
42
-
43
- // Initialize an array to store the objects
44
- const result = [];
45
-
46
- // Iterate over each directory
47
- directories.forEach((directory) => {
48
- const categoryName = directory;
49
- const icons = [];
50
-
51
- // Read the contents of the current directory
52
- const filesInDirectory = fs.readdirSync(
53
- path.join(directoryPath, directory)
54
- );
55
-
56
- // Filter out only SVG files
57
- const svgFiles = filesInDirectory.filter(
58
- (file) => path.extname(file).toLowerCase() === ".svg"
59
- );
60
-
61
- // Add each SVG file to the icons array
62
- svgFiles.forEach((svgFile) => {
63
- icons.push(path.parse(svgFile).name);
64
- });
65
-
66
- // Create an object with category and icons array and push it to the result array
67
- result.push({ categoryName, icons });
68
- });
69
-
70
- return result;
71
- }
72
-
73
- function writeSassFiles(iconsLists) {
74
- // Create the 'sass-output' directory if it doesn't exist
75
- if (!fs.existsSync(OUTPUT_DIRECTORY)) {
76
- fs.mkdirSync(OUTPUT_DIRECTORY);
77
- }
78
-
79
- iconsLists.forEach((iconsList) => {
80
- if (!iconsList.icons.length) {
81
- //only proceed if the list is not empty
82
- return;
83
- }
84
- const iconsType = getIconsType(iconsList);
85
-
86
- // Create .sass file
87
- const sassFileName = `_${iconsList.categoryName}.scss`;
88
- const sassFilePath = path.join(
89
- `${OUTPUT_DIRECTORY}/${iconsType}`,
90
- sassFileName
91
- );
92
-
93
- // Write sass list to .sass file
94
- let sassContent = `$icons-${iconsList.categoryName}: ${iconsList.icons.join(
95
- ", "
96
- )};`;
97
-
98
- if (iconsType === MONOCHROME_ID) {
99
- sassContent += monochromeStyles(iconsList);
100
- monochromeLists.push(iconsList.categoryName);
101
- } else if (iconsType === MULTICOLOR_ID) {
102
- sassContent += multicolorStyles(iconsList);
103
- multicolorLists.push(iconsList.categoryName);
104
- }
105
-
106
- createFolder(iconsType);
107
- fs.writeFileSync(sassFilePath, sassContent);
108
- });
109
- }
110
-
111
- function createFolder(type) {
112
- const path = `${OUTPUT_DIRECTORY}/${type}`;
113
- if (!fs.existsSync(path)) {
114
- fs.mkdirSync(path);
115
- }
116
- }
117
-
118
- /**
119
- * @description It returns the icon type (multicolor or monochrome). This is needed to determine how to write the sass file css selectors.
120
- */
121
- function getIconsType(iconsList) {
122
- if (statesJson === undefined) {
123
- /*If no monochrome states file is found, the category is considered as "multicolor" */
124
- return;
125
- }
126
- const categoryName = iconsList.categoryName;
127
- const categoryFound = statesJson[categoryName];
128
- if (categoryFound) {
129
- return MONOCHROME_ID;
130
- } else {
131
- return MULTICOLOR_ID;
132
- }
133
- }
134
-
135
- function monochromeStyles(iconsList) {
136
- let output = "";
137
- let list = "";
138
- const category = iconsList.categoryName;
139
- iconsList.icons.forEach((icon) => {
140
- list += `
141
- // ${icon}.svg`;
142
- const states = Object.keys(statesJson[category][icon]["states"]);
143
- states.forEach((state) => {
144
- list += `
145
- &-${icon}--${state}-light {
146
- --icon-path :url("#{$icons-path}icons/${category}/light/${icon}.svg#${state}");
147
- }
148
- &-${icon}--${state}-dark {
149
- --icon-path :url("#{$icons-path}icons/${category}/dark/${icon}.svg#${state}");
150
- }
151
- `;
152
- });
153
- });
154
- output += `
155
- %icon__${iconsList.categoryName} {
156
- ${list}
157
- }
158
- `;
159
- return output;
160
- }
161
-
162
- function multicolorStyles(iconsList) {
163
- let output = "";
164
- let list = "";
165
- const category = iconsList.categoryName;
166
- iconsList.icons.forEach((icon) => {
167
- list += `
168
- // ${icon}.svg
169
- &-${icon}--enabled-light {
170
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/light/${icon}.svg#enabled");
171
- }
172
- &-${icon}--enabled-dark {
173
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/dark/${icon}.svg#enabled");
174
- }
175
-
176
- &-${icon}--hover-light {
177
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/light/${icon}.svg#hover");
178
- }
179
- &-${icon}--hover-dark {
180
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/dark/${icon}.svg#hover");
181
- }
182
-
183
- &-${icon}--active-light {
184
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/light/${icon}.svg#active");
185
- }
186
- &-${icon}--active-dark {
187
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/dark/${icon}.svg#active");
188
- }
189
-
190
- &-${icon}--disabled-light {
191
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/light/${icon}.svg#disabled");
192
- }
193
- &-${icon}--disabled-dark {
194
- --icon-path: url("#{$icons-path}icons/${iconsList.categoryName}/dark/${icon}.svg#disabled");
195
- }
196
- `;
197
- });
198
- output += `
199
- %icon__${iconsList.categoryName} {
200
- ${list}
201
- }
202
- `;
203
- return output;
204
- }
205
-
206
- /**
207
- * @description this function writes on disk a single .scss file that imports each .scss file for each icons category. This is the only .scss file that the final user should import later. (One .scss file per icons category is more easy to understand and inspect, rather than all the icons categories on a single file)
208
- */
209
- function writeImportScss(iconsLists) {
210
- // Create .sass file
211
- const sassFileName = `icons-selectors.scss`;
212
- const sassFilePath = path.join(OUTPUT_DIRECTORY, sassFileName);
213
-
214
- let sassContentMonochrome = "";
215
-
216
- /* --------------------------
217
- Import monochrome icons lists
218
- --------------------------- */
219
-
220
- if (monochromeLists.length) {
221
- sassContentMonochrome += `//Monochrome lists
222
- `;
223
-
224
- monochromeLists.forEach((list) => {
225
- sassContentMonochrome += `
226
- @import "${MONOCHROME_ID}/${list}";`;
227
- });
228
-
229
- let allMonochromeLists = `
230
- $all-monochrome-lists: (`;
231
- monochromeLists.forEach((list, i) => {
232
- allMonochromeLists += `
233
- ${list}: $icons-${list}`;
234
-
235
- if (i === monochromeLists.length - 1) {
236
- allMonochromeLists += `
237
- );`;
238
- } else {
239
- allMonochromeLists += `,`;
240
- }
241
- });
242
-
243
- sassContentMonochrome += `
244
- ${allMonochromeLists}`;
245
- }
246
-
247
- /* --------------------------
248
- Import multicolor icons lists
249
- --------------------------- */
250
-
251
- let sassContentMulticolor = "";
252
- if (multicolorLists.length) {
253
- let iconsImports = "";
254
- sassContentMulticolor += `
255
-
256
- //Multicolor lists
257
- `;
258
- multicolorLists.forEach((list) => {
259
- iconsImports += `@import "${MULTICOLOR_ID}/${list}";\n`;
260
- });
261
- let allMulticolorLists = `
262
- @mixin icons-lists($icons-path: "./assets/icons") {
263
- ${iconsImports}
264
- $all-multicolor-lists: (`;
265
- multicolorLists.forEach((list, i) => {
266
- allMulticolorLists += `
267
- ${list}: $icons-${list}`;
268
-
269
- if (i === multicolorLists.length - 1) {
270
- allMulticolorLists += `
271
- );`;
272
- } else {
273
- allMulticolorLists += `,`;
274
- }
275
- });
276
-
277
- sassContentMulticolor += `
278
- ${allMulticolorLists}
279
- }`;
280
- }
281
-
282
- fs.writeFileSync(sassFilePath, sassContentMulticolor);
283
- }
284
-
285
- /**
286
- * @description It clears the OUTPUT_DIRECTORY
287
- */
288
- function clearOutputDir() {
289
- fs.rmSync(OUTPUT_DIRECTORY, { recursive: true, force: true }, (err) => {
290
- if (err) {
291
- throw err;
292
- }
293
- });
294
- }
295
-
296
- //run
297
- const statesJson = getStatesJson();
298
- clearOutputDir();
299
- const iconsLists = readDirectoriesAndFiles(SRC_DIRECTORY);
300
- writeSassFiles(iconsLists);
301
- writeImportScss(iconsLists);