@lumx/core 3.0.7 → 3.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 (291) hide show
  1. package/{CONTRIBUTING.md → dist/CONTRIBUTING.md} +0 -0
  2. package/{LICENSE.md → dist/LICENSE.md} +0 -0
  3. package/{css → dist/css}/_retro-compat-v2.css +0 -0
  4. package/{css → dist/css}/design-tokens.css +0 -0
  5. package/{css → dist/css}/material.css +0 -0
  6. package/{js → dist/js}/constants/design-tokens.js +0 -0
  7. package/{js → dist/js}/constants/design-tokens.min.js +0 -0
  8. package/{js → dist/js}/constants/design-tokens.min.js.map +0 -0
  9. package/{js → dist/js}/constants/design-tokens.ts +0 -0
  10. package/{js → dist/js}/constants/index.js +0 -0
  11. package/{js → dist/js}/constants/index.min.js +0 -0
  12. package/{js → dist/js}/constants/index.min.js.map +0 -0
  13. package/{js → dist/js}/constants/index.ts +0 -0
  14. package/{js → dist/js}/constants/keycodes.js +0 -0
  15. package/{js → dist/js}/constants/keycodes.min.js +0 -0
  16. package/{js → dist/js}/constants/keycodes.min.js.map +0 -0
  17. package/{js → dist/js}/constants/keycodes.ts +0 -0
  18. package/{js → dist/js}/custom-colors.js +0 -0
  19. package/{js → dist/js}/custom-colors.min.js +0 -0
  20. package/dist/js/custom-colors.min.js.map +1 -0
  21. package/{js → dist/js}/custom-colors.ts +0 -0
  22. package/{js → dist/js}/date-picker.js +0 -0
  23. package/{js → dist/js}/date-picker.min.js +0 -0
  24. package/dist/js/date-picker.min.js.map +1 -0
  25. package/{js → dist/js}/date-picker.ts +0 -0
  26. package/{js → dist/js}/utils.js +0 -0
  27. package/{js → dist/js}/utils.min.js +0 -0
  28. package/dist/js/utils.min.js.map +1 -0
  29. package/{js → dist/js}/utils.ts +0 -0
  30. package/{lumx.css → dist/lumx.css} +1 -1
  31. package/{lumx.min.css → dist/lumx.min.css} +1 -1
  32. package/dist/package.json +81 -0
  33. package/{scss → dist/scss}/_components.scss +0 -0
  34. package/{scss → dist/scss}/_core.scss +0 -0
  35. package/{scss → dist/scss}/_design-tokens.scss +0 -0
  36. package/{scss → dist/scss}/_retro-compat-v2.scss +0 -0
  37. package/{scss → dist/scss}/components/avatar/_index.scss +0 -0
  38. package/{scss → dist/scss}/components/badge/_index.scss +0 -0
  39. package/{scss → dist/scss}/components/button/_index.scss +0 -0
  40. package/{scss → dist/scss}/components/button/_mixins.scss +0 -0
  41. package/{scss → dist/scss}/components/button/_variables.scss +0 -0
  42. package/{scss → dist/scss}/components/checkbox/_index.scss +0 -0
  43. package/{scss → dist/scss}/components/checkbox/_mixins.scss +0 -0
  44. package/{scss → dist/scss}/components/chip/_index.scss +0 -0
  45. package/{scss → dist/scss}/components/chip/_mixins.scss +0 -0
  46. package/{scss → dist/scss}/components/chip/_variables.scss +0 -0
  47. package/{scss → dist/scss}/components/comment-block/_index.scss +0 -0
  48. package/{scss → dist/scss}/components/date-picker/_index.scss +0 -0
  49. package/{scss → dist/scss}/components/dialog/_index.scss +0 -0
  50. package/{scss → dist/scss}/components/dialog/_variables.scss +0 -0
  51. package/{scss → dist/scss}/components/divider/_index.scss +0 -0
  52. package/{scss → dist/scss}/components/divider/_mixins.scss +0 -0
  53. package/{scss → dist/scss}/components/divider/_variables.scss +0 -0
  54. package/{scss → dist/scss}/components/drag-handle/_index.scss +0 -0
  55. package/{scss → dist/scss}/components/dropdown/_index.scss +0 -0
  56. package/{scss → dist/scss}/components/expansion-panel/_index.scss +0 -0
  57. package/{scss → dist/scss}/components/expansion-panel/_variables.scss +0 -0
  58. package/{scss → dist/scss}/components/flag/_index.scss +0 -0
  59. package/{scss → dist/scss}/components/flex-box/_index.scss +0 -0
  60. package/{scss → dist/scss}/components/generic-block/_index.scss +0 -0
  61. package/{scss → dist/scss}/components/grid/_index.scss +0 -0
  62. package/dist/scss/components/grid-column/_index.scss +18 -0
  63. package/{scss → dist/scss}/components/icon/_index.scss +0 -0
  64. package/{scss → dist/scss}/components/icon/_mixins.scss +0 -0
  65. package/{scss → dist/scss}/components/icon/_variables.scss +0 -0
  66. package/{scss → dist/scss}/components/image-block/_index.scss +0 -0
  67. package/{scss → dist/scss}/components/inline-list/_index.scss +0 -0
  68. package/{scss → dist/scss}/components/input-helper/_index.scss +0 -0
  69. package/{scss → dist/scss}/components/input-helper/_mixins.scss +0 -0
  70. package/{scss → dist/scss}/components/input-helper/_variables.scss +0 -0
  71. package/{scss → dist/scss}/components/input-label/_index.scss +0 -0
  72. package/{scss → dist/scss}/components/input-label/_mixins.scss +0 -0
  73. package/{scss → dist/scss}/components/lightbox/_index.scss +0 -0
  74. package/{scss → dist/scss}/components/lightbox/_variables.scss +0 -0
  75. package/{scss → dist/scss}/components/link/_index.scss +0 -0
  76. package/{scss → dist/scss}/components/link/_mixins.scss +0 -0
  77. package/{scss → dist/scss}/components/link-preview/_index.scss +0 -0
  78. package/{scss → dist/scss}/components/list/_index.scss +0 -0
  79. package/{scss → dist/scss}/components/list/_mixins.scss +0 -0
  80. package/{scss → dist/scss}/components/list/_variables.scss +0 -0
  81. package/{scss → dist/scss}/components/message/_index.scss +0 -0
  82. package/{scss → dist/scss}/components/mosaic/_index.scss +0 -0
  83. package/{scss → dist/scss}/components/notification/_index.scss +0 -0
  84. package/{scss → dist/scss}/components/notification/_variables.scss +0 -0
  85. package/{scss → dist/scss}/components/notification-block/_index.scss +0 -0
  86. package/{scss → dist/scss}/components/popover/_index.scss +0 -0
  87. package/{scss → dist/scss}/components/popover/_variables.scss +0 -0
  88. package/{scss → dist/scss}/components/post-block/_index.scss +0 -0
  89. package/{scss → dist/scss}/components/progress/_index.scss +20 -0
  90. package/dist/scss/components/progress/_variables.scss +12 -0
  91. package/{scss → dist/scss}/components/progress-tracker/_index.scss +0 -0
  92. package/{scss → dist/scss}/components/progress-tracker/_variables.scss +0 -0
  93. package/{scss → dist/scss}/components/radio-button/_index.scss +0 -0
  94. package/{scss → dist/scss}/components/radio-button/_mixins.scss +0 -0
  95. package/{scss → dist/scss}/components/select/_index.scss +0 -0
  96. package/{scss → dist/scss}/components/select/_mixins.scss +0 -0
  97. package/{scss → dist/scss}/components/side-navigation/_index.scss +0 -0
  98. package/{scss → dist/scss}/components/side-navigation/_mixins.scss +0 -0
  99. package/{scss → dist/scss}/components/skeleton/_index.scss +0 -0
  100. package/{scss → dist/scss}/components/skeleton/_mixins.scss +0 -0
  101. package/{scss → dist/scss}/components/slider/_index.scss +0 -0
  102. package/{scss → dist/scss}/components/slideshow/_index.scss +0 -0
  103. package/{scss → dist/scss}/components/slideshow/_variables.scss +0 -0
  104. package/{scss → dist/scss}/components/switch/_index.scss +0 -0
  105. package/{scss → dist/scss}/components/switch/_mixins.scss +0 -0
  106. package/{scss → dist/scss}/components/table/_index.scss +0 -0
  107. package/{scss → dist/scss}/components/table/_mixins.scss +0 -0
  108. package/{scss → dist/scss}/components/tabs/_index.scss +0 -0
  109. package/{scss → dist/scss}/components/tabs/_mixins.scss +0 -0
  110. package/{scss → dist/scss}/components/text/_index.scss +0 -0
  111. package/{scss → dist/scss}/components/text-field/_index.scss +0 -0
  112. package/{scss → dist/scss}/components/text-field/_mixins.scss +0 -0
  113. package/{scss → dist/scss}/components/text-field/_variables.scss +0 -0
  114. package/{scss → dist/scss}/components/thumbnail/_index.scss +0 -0
  115. package/{scss → dist/scss}/components/thumbnail/_variables.scss +0 -0
  116. package/{scss → dist/scss}/components/toolbar/_index.scss +0 -0
  117. package/{scss → dist/scss}/components/toolbar/_variables.scss +0 -0
  118. package/{scss → dist/scss}/components/tooltip/_index.scss +0 -0
  119. package/{scss → dist/scss}/components/tooltip/_variables.scss +0 -0
  120. package/{scss → dist/scss}/components/uploader/_index.scss +0 -0
  121. package/{scss → dist/scss}/components/user-block/_index.scss +0 -0
  122. package/{scss → dist/scss}/core/base/_functions.scss +0 -0
  123. package/{scss → dist/scss}/core/base/_helpers.scss +0 -0
  124. package/{scss → dist/scss}/core/base/_index.scss +0 -0
  125. package/{scss → dist/scss}/core/base/_normalize.scss +0 -0
  126. package/{scss → dist/scss}/core/base/_variables.scss +0 -0
  127. package/{scss → dist/scss}/core/color/_functions.scss +0 -0
  128. package/{scss → dist/scss}/core/color/_index.scss +0 -0
  129. package/{scss → dist/scss}/core/color/_variables.scss +0 -0
  130. package/{scss → dist/scss}/core/elevation/_mixins.scss +0 -0
  131. package/{scss → dist/scss}/core/elevation/_variables.scss +0 -0
  132. package/{scss → dist/scss}/core/size/_variables.scss +0 -0
  133. package/{scss → dist/scss}/core/spacing/_index.scss +0 -0
  134. package/{scss → dist/scss}/core/spacing/_variables.scss +0 -0
  135. package/{scss → dist/scss}/core/state/_mixins.scss +0 -0
  136. package/{scss → dist/scss}/core/state/_variables.scss +0 -0
  137. package/{scss → dist/scss}/core/typography/_index.scss +0 -0
  138. package/{scss → dist/scss}/core/typography/_mixins.scss +0 -0
  139. package/{scss → dist/scss}/core/typography/_variables.scss +0 -0
  140. package/{scss → dist/scss}/lumx.scss +1 -0
  141. package/package.json +4 -8
  142. package/src/css/_retro-compat-v2.css +117 -0
  143. package/src/css/design-tokens.css +544 -0
  144. package/src/css/material.css +62 -0
  145. package/src/js/constants/design-tokens.ts +2157 -0
  146. package/src/js/constants/index.ts +35 -0
  147. package/src/js/constants/keycodes.ts +44 -0
  148. package/src/js/custom-colors.ts +56 -0
  149. package/src/js/date-picker.ts +71 -0
  150. package/src/js/utils.ts +296 -0
  151. package/src/scss/_components.scss +35 -0
  152. package/src/scss/_core.scss +12 -0
  153. package/src/scss/_design-tokens.scss +1667 -0
  154. package/src/scss/_retro-compat-v2.scss +95 -0
  155. package/src/scss/components/avatar/_index.scss +42 -0
  156. package/src/scss/components/badge/_index.scss +47 -0
  157. package/src/scss/components/button/_index.scss +166 -0
  158. package/src/scss/components/button/_mixins.scss +271 -0
  159. package/src/scss/components/button/_variables.scss +6 -0
  160. package/src/scss/components/checkbox/_index.scss +231 -0
  161. package/src/scss/components/checkbox/_mixins.scss +69 -0
  162. package/src/scss/components/chip/_index.scss +156 -0
  163. package/src/scss/components/chip/_mixins.scss +37 -0
  164. package/src/scss/components/chip/_variables.scss +1 -0
  165. package/src/scss/components/comment-block/_index.scss +170 -0
  166. package/src/scss/components/date-picker/_index.scss +67 -0
  167. package/src/scss/components/dialog/_index.scss +169 -0
  168. package/src/scss/components/dialog/_variables.scss +8 -0
  169. package/src/scss/components/divider/_index.scss +39 -0
  170. package/src/scss/components/divider/_mixins.scss +60 -0
  171. package/src/scss/components/divider/_variables.scss +7 -0
  172. package/src/scss/components/drag-handle/_index.scss +7 -0
  173. package/src/scss/components/dropdown/_index.scss +22 -0
  174. package/src/scss/components/expansion-panel/_index.scss +80 -0
  175. package/src/scss/components/expansion-panel/_variables.scss +2 -0
  176. package/src/scss/components/flag/_index.scss +41 -0
  177. package/src/scss/components/flex-box/_index.scss +132 -0
  178. package/src/scss/components/generic-block/_index.scss +11 -0
  179. package/src/scss/components/grid/_index.scss +147 -0
  180. package/src/scss/components/grid-column/_index.scss +18 -0
  181. package/src/scss/components/icon/_index.scss +106 -0
  182. package/src/scss/components/icon/_mixins.scss +42 -0
  183. package/src/scss/components/icon/_variables.scss +6 -0
  184. package/src/scss/components/image-block/_index.scss +108 -0
  185. package/src/scss/components/inline-list/_index.scss +15 -0
  186. package/src/scss/components/input-helper/_index.scss +27 -0
  187. package/src/scss/components/input-helper/_mixins.scss +12 -0
  188. package/src/scss/components/input-helper/_variables.scss +1 -0
  189. package/src/scss/components/input-label/_index.scss +23 -0
  190. package/src/scss/components/input-label/_mixins.scss +12 -0
  191. package/src/scss/components/lightbox/_index.scss +59 -0
  192. package/src/scss/components/lightbox/_variables.scss +1 -0
  193. package/src/scss/components/link/_index.scss +35 -0
  194. package/src/scss/components/link/_mixins.scss +25 -0
  195. package/src/scss/components/link-preview/_index.scss +95 -0
  196. package/src/scss/components/list/_index.scss +96 -0
  197. package/src/scss/components/list/_mixins.scss +128 -0
  198. package/src/scss/components/list/_variables.scss +7 -0
  199. package/src/scss/components/message/_index.scss +36 -0
  200. package/src/scss/components/mosaic/_index.scss +120 -0
  201. package/src/scss/components/notification/_index.scss +78 -0
  202. package/src/scss/components/notification/_variables.scss +3 -0
  203. package/src/scss/components/notification-block/_index.scss +42 -0
  204. package/src/scss/components/popover/_index.scss +64 -0
  205. package/src/scss/components/popover/_variables.scss +1 -0
  206. package/src/scss/components/post-block/_index.scss +101 -0
  207. package/src/scss/components/progress/_index.scss +190 -0
  208. package/src/scss/components/progress/_variables.scss +12 -0
  209. package/src/scss/components/progress-tracker/_index.scss +131 -0
  210. package/src/scss/components/progress-tracker/_variables.scss +2 -0
  211. package/src/scss/components/radio-button/_index.scss +180 -0
  212. package/src/scss/components/radio-button/_mixins.scss +82 -0
  213. package/src/scss/components/select/_index.scss +295 -0
  214. package/src/scss/components/select/_mixins.scss +36 -0
  215. package/src/scss/components/side-navigation/_index.scss +69 -0
  216. package/src/scss/components/side-navigation/_mixins.scss +61 -0
  217. package/src/scss/components/skeleton/_index.scss +143 -0
  218. package/src/scss/components/skeleton/_mixins.scss +9 -0
  219. package/src/scss/components/slider/_index.scss +209 -0
  220. package/src/scss/components/slideshow/_index.scss +171 -0
  221. package/src/scss/components/slideshow/_variables.scss +1 -0
  222. package/src/scss/components/switch/_index.scss +257 -0
  223. package/src/scss/components/switch/_mixins.scss +77 -0
  224. package/src/scss/components/table/_index.scss +138 -0
  225. package/src/scss/components/table/_mixins.scss +115 -0
  226. package/src/scss/components/tabs/_index.scss +111 -0
  227. package/src/scss/components/tabs/_mixins.scss +104 -0
  228. package/src/scss/components/text/_index.scss +29 -0
  229. package/src/scss/components/text-field/_index.scss +323 -0
  230. package/src/scss/components/text-field/_mixins.scss +149 -0
  231. package/src/scss/components/text-field/_variables.scss +2 -0
  232. package/src/scss/components/thumbnail/_index.scss +227 -0
  233. package/src/scss/components/thumbnail/_variables.scss +6 -0
  234. package/src/scss/components/toolbar/_index.scss +38 -0
  235. package/src/scss/components/toolbar/_variables.scss +1 -0
  236. package/src/scss/components/tooltip/_index.scss +91 -0
  237. package/src/scss/components/tooltip/_variables.scss +4 -0
  238. package/src/scss/components/uploader/_index.scss +115 -0
  239. package/src/scss/components/user-block/_index.scss +106 -0
  240. package/src/scss/core/base/_functions.scss +3 -0
  241. package/src/scss/core/base/_helpers.scss +21 -0
  242. package/src/scss/core/base/_index.scss +54 -0
  243. package/src/scss/core/base/_normalize.scss +353 -0
  244. package/src/scss/core/base/_variables.scss +39 -0
  245. package/src/scss/core/color/_functions.scss +7 -0
  246. package/src/scss/core/color/_index.scss +15 -0
  247. package/src/scss/core/color/_variables.scss +4 -0
  248. package/src/scss/core/elevation/_mixins.scss +10 -0
  249. package/src/scss/core/elevation/_variables.scss +7 -0
  250. package/src/scss/core/size/_variables.scss +3 -0
  251. package/src/scss/core/spacing/_index.scss +15 -0
  252. package/src/scss/core/spacing/_variables.scss +22 -0
  253. package/src/scss/core/state/_mixins.scss +127 -0
  254. package/src/scss/core/state/_variables.scss +1 -0
  255. package/src/scss/core/typography/_index.scss +16 -0
  256. package/src/scss/core/typography/_mixins.scss +25 -0
  257. package/src/scss/core/typography/_variables.scss +6 -0
  258. package/src/scss/lumx.scss +69 -0
  259. package/style-dictionary/.eslintignore +1 -0
  260. package/style-dictionary/README.md +19 -0
  261. package/style-dictionary/config/_run.js +12 -0
  262. package/style-dictionary/config/_transform-group.js +16 -0
  263. package/style-dictionary/config/gen-css-variables.js +25 -0
  264. package/style-dictionary/config/gen-scss-variables.js +65 -0
  265. package/style-dictionary/config/gen-ts-variables.js +52 -0
  266. package/style-dictionary/config/utils/_color-attributes.js +24 -0
  267. package/style-dictionary/config/utils/_color-rgba-value.js +22 -0
  268. package/style-dictionary/config/utils/_css-prefer-variable.js +24 -0
  269. package/style-dictionary/config/utils/_genHeader.js +3 -0
  270. package/style-dictionary/config/utils/_lumx-variables.js +12 -0
  271. package/style-dictionary/config/utils/_pickFieldsInTree.js +22 -0
  272. package/style-dictionary/config/utils/_prettier-scss.js +13 -0
  273. package/style-dictionary/config/utils/_prettier-ts.js +13 -0
  274. package/style-dictionary/config/utils/_resolve-structure-alias.js +76 -0
  275. package/style-dictionary/index.js +11 -0
  276. package/style-dictionary/properties/components/button.json +206 -0
  277. package/style-dictionary/properties/components/material.json +64 -0
  278. package/style-dictionary/properties/components/navigation.json +207 -0
  279. package/style-dictionary/properties/components/tabs.json +168 -0
  280. package/style-dictionary/properties/components/text-field.json +167 -0
  281. package/style-dictionary/properties/core/border-radius.json +3 -0
  282. package/style-dictionary/properties/core/color.json +421 -0
  283. package/style-dictionary/properties/core/size.json +11 -0
  284. package/style-dictionary/properties/core/spacing.json +11 -0
  285. package/style-dictionary/properties/core/typography.json +127 -0
  286. package/tsconfig.json +3 -0
  287. package/webpack.config.js +202 -0
  288. package/js/custom-colors.min.js.map +0 -1
  289. package/js/date-picker.min.js.map +0 -1
  290. package/js/utils.min.js.map +0 -1
  291. package/scss/components/progress/_variables.scss +0 -2
@@ -0,0 +1,295 @@
1
+ /* ==========================================================================
2
+ Select
3
+ ========================================================================== */
4
+
5
+ .#{$lumx-base-prefix}-select {
6
+ $self: &;
7
+
8
+ --lumx-text-field-wrapper-padding-vertical:
9
+ calc(
10
+ (var(--lumx-text-field-input-min-height) - var(--lumx-material-text-field-input-content-line-height)) / 2
11
+ );
12
+
13
+ padding-top: var(--lumx-material-text-field-padding-top);
14
+ padding-bottom: var(--lumx-material-text-field-padding-bottom);
15
+
16
+ &__header {
17
+ margin-bottom: var(--lumx-material-text-field-header-wrapper-margin-bottom);
18
+ }
19
+
20
+ &__label {
21
+ @include lumx-text-field-label;
22
+
23
+ #{$self}--theme-light & {
24
+ @include lumx-text-field-label-color(
25
+ lumx-base-const("state", "DEFAULT"),
26
+ lumx-base-const("theme", "LIGHT")
27
+ );
28
+ }
29
+
30
+ #{$self}--theme-dark & {
31
+ @include lumx-text-field-label-color(lumx-base-const("state", "DEFAULT"), lumx-base-const("theme", "DARK"));
32
+ }
33
+ }
34
+
35
+ &__wrapper {
36
+ cursor: pointer;
37
+
38
+ #{$self}--theme-light & {
39
+ @include lumx-text-field-wrapper(lumx-base-const("theme", "LIGHT"));
40
+ }
41
+
42
+ #{$self}--theme-dark & {
43
+ @include lumx-text-field-wrapper(lumx-base-const("theme", "DARK"));
44
+ }
45
+ }
46
+
47
+ &__input-icon {
48
+ #{$self}--theme-light & {
49
+ @include lumx-text-field-input-icon(lumx-base-const("theme", "LIGHT"));
50
+ @include lumx-text-field-input-content-color(
51
+ lumx-base-const("state", "DEFAULT"),
52
+ lumx-base-const("theme", "LIGHT")
53
+ );
54
+ }
55
+
56
+ #{$self}--theme-dark & {
57
+ @include lumx-text-field-input-icon(lumx-base-const("theme", "DARK"));
58
+ @include lumx-text-field-input-content-color(
59
+ lumx-base-const("state", "DEFAULT"),
60
+ lumx-base-const("theme", "DARK")
61
+ );
62
+ }
63
+ }
64
+
65
+ &__chips {
66
+ @include lumx-text-field-chips;
67
+ }
68
+
69
+ &__input-native {
70
+ #{$self}--theme-light & {
71
+ @include lumx-text-field-input-native(lumx-base-const("theme", "LIGHT"));
72
+ @include lumx-text-field-input-content-color(
73
+ lumx-base-const("state", "DEFAULT"),
74
+ lumx-base-const("theme", "LIGHT")
75
+ );
76
+ }
77
+
78
+ #{$self}--theme-dark & {
79
+ @include lumx-text-field-input-native(lumx-base-const("theme", "DARK"));
80
+ @include lumx-text-field-input-content-color(
81
+ lumx-base-const("state", "DEFAULT"),
82
+ lumx-base-const("theme", "DARK")
83
+ );
84
+ }
85
+
86
+ &--placeholder {
87
+ #{$self}--theme-light & {
88
+ @include lumx-text-field-input-placeholder-color(
89
+ lumx-base-const("state", "DEFAULT"),
90
+ lumx-base-const("theme", "LIGHT")
91
+ );
92
+ }
93
+
94
+ #{$self}--theme-dark & {
95
+ @include lumx-text-field-input-placeholder-color(
96
+ lumx-base-const("state", "DEFAULT"),
97
+ lumx-base-const("theme", "DARK")
98
+ );
99
+ }
100
+ }
101
+
102
+ span {
103
+ display: block;
104
+ margin: var(--lumx-text-field-wrapper-padding-vertical) 0;
105
+ word-break: break-word;
106
+ }
107
+ }
108
+
109
+ &__input-clear {
110
+ @include lumx-text-field-input-clear;
111
+ }
112
+
113
+ &__input-indicator {
114
+ #{$self}--theme-light & {
115
+ @include lumx-select-input-indicator(lumx-base-const("theme", "LIGHT"));
116
+ }
117
+
118
+ #{$self}--theme-dark & {
119
+ @include lumx-select-input-indicator(lumx-base-const("theme", "DARK"));
120
+ }
121
+ }
122
+
123
+ &__helper {
124
+ margin-top: $lumx-spacing-unit;
125
+ }
126
+
127
+ &__choices-filter {
128
+ @include lumx-select-choices-filter;
129
+
130
+ i {
131
+ @include lumx-text-field-input-icon(lumx-base-const("theme", "LIGHT"));
132
+ }
133
+
134
+ input {
135
+ @include lumx-text-field-input-native(lumx-base-const("theme", "LIGHT"));
136
+
137
+ &::placeholder {
138
+ color: lumx-color-variant("dark", "L2");
139
+ }
140
+ }
141
+ }
142
+
143
+ &__choices-loader {
144
+ @include lumx-select-choices-loader;
145
+ }
146
+
147
+ &__choices-helper {
148
+ @include lumx-select-choices-helper;
149
+ }
150
+ }
151
+
152
+ /* Select states
153
+ ========================================================================== */
154
+
155
+ // Disabled state
156
+ .#{$lumx-base-prefix}-select--is-disabled {
157
+ .#{$lumx-base-prefix}-select__wrapper {
158
+ @include lumx-state-disabled-input;
159
+ }
160
+
161
+ &.#{$lumx-base-prefix}-select--theme-light {
162
+ .#{$lumx-base-prefix}-select__label {
163
+ @include lumx-state-disabled-text(lumx-base-const("theme", "LIGHT"));
164
+ }
165
+ }
166
+
167
+ &.#{$lumx-base-prefix}-select--theme-dark {
168
+ .#{$lumx-base-prefix}-select__label {
169
+ @include lumx-state-disabled-text(lumx-base-const("theme", "DARK"));
170
+ }
171
+ }
172
+ }
173
+
174
+ // Hover state
175
+ .#{$lumx-base-prefix}-select--theme-light {
176
+ .#{$lumx-base-prefix}-select__wrapper:hover {
177
+ @include lumx-text-field-wrapper-state(lumx-base-const("state", "HOVER"), lumx-base-const("theme", "LIGHT"));
178
+ }
179
+
180
+ .#{$lumx-base-prefix}-text-field__input-native {
181
+ @include lumx-text-field-input-content-color(
182
+ lumx-base-const("state", "HOVER"),
183
+ lumx-base-const("theme", "LIGHT")
184
+ );
185
+
186
+ &--placeholder {
187
+ @include lumx-text-field-input-placeholder-color(
188
+ lumx-base-const("state", "HOVER"),
189
+ lumx-base-const("theme", "LIGHT")
190
+ );
191
+ }
192
+ }
193
+ }
194
+
195
+ .#{$lumx-base-prefix}-select--theme-dark {
196
+ .#{$lumx-base-prefix}-select__wrapper:hover {
197
+ @include lumx-text-field-wrapper-state(lumx-base-const("state", "HOVER"), lumx-base-const("theme", "DARK"));
198
+ }
199
+
200
+ .#{$lumx-base-prefix}-text-field__input-native {
201
+ @include lumx-text-field-input-content-color(
202
+ lumx-base-const("state", "HOVER"),
203
+ lumx-base-const("theme", "DARK")
204
+ );
205
+
206
+ &--placeholder {
207
+ @include lumx-text-field-input-placeholder-color(
208
+ lumx-base-const("state", "HOVER"),
209
+ lumx-base-const("theme", "DARK")
210
+ );
211
+ }
212
+ }
213
+ }
214
+
215
+ // Focus state
216
+ .#{$lumx-base-prefix}-select--theme-light.#{$lumx-base-prefix}-select--is-open .#{$lumx-base-prefix}-select__wrapper,
217
+ .#{$lumx-base-prefix}-select--theme-light .#{$lumx-base-prefix}-select__wrapper:focus {
218
+ @include lumx-text-field-wrapper-state(lumx-base-const("state", "FOCUS"), lumx-base-const("theme", "LIGHT"));
219
+
220
+ .#{$lumx-base-prefix}-text-field__input-native {
221
+ @include lumx-text-field-input-content-color(
222
+ lumx-base-const("state", "FOCUS"),
223
+ lumx-base-const("theme", "LIGHT")
224
+ );
225
+
226
+ &--placeholder {
227
+ @include lumx-text-field-input-placeholder-color(
228
+ lumx-base-const("state", "FOCUS"),
229
+ lumx-base-const("theme", "LIGHT")
230
+ );
231
+ }
232
+ }
233
+ }
234
+
235
+ .#{$lumx-base-prefix}-select--theme-dark.#{$lumx-base-prefix}-select--is-open .#{$lumx-base-prefix}-select__wrapper,
236
+ .#{$lumx-base-prefix}-select--theme-dark .#{$lumx-base-prefix}-select__wrapper:focus {
237
+ @include lumx-text-field-wrapper-state(lumx-base-const("state", "FOCUS"), lumx-base-const("theme", "DARK"));
238
+
239
+ .#{$lumx-base-prefix}-text-field__input-native {
240
+ @include lumx-text-field-input-content-color(
241
+ lumx-base-const("state", "FOCUS"),
242
+ lumx-base-const("theme", "DARK")
243
+ );
244
+
245
+ &--placeholder {
246
+ @include lumx-text-field-input-placeholder-color(
247
+ lumx-base-const("state", "FOCUS"),
248
+ lumx-base-const("theme", "DARK")
249
+ );
250
+ }
251
+ }
252
+ }
253
+
254
+ /* Select validity
255
+ ========================================================================== */
256
+
257
+ .#{$lumx-base-prefix}-select--theme-light.#{$lumx-base-prefix}-select--is-valid {
258
+ .#{$lumx-base-prefix}-select__wrapper {
259
+ @include lumx-text-field-wrapper-validity("valid", lumx-base-const("theme", "LIGHT"));
260
+ }
261
+
262
+ .#{$lumx-base-prefix}-select__input-validity {
263
+ @include lumx-text-field-input-validity("valid", lumx-base-const("theme", "LIGHT"));
264
+ }
265
+ }
266
+
267
+ .#{$lumx-base-prefix}-select--theme-light.#{$lumx-base-prefix}-select--has-error {
268
+ .#{$lumx-base-prefix}-select__wrapper {
269
+ @include lumx-text-field-wrapper-validity("error", lumx-base-const("theme", "LIGHT"));
270
+ }
271
+
272
+ .#{$lumx-base-prefix}-select__input-validity {
273
+ @include lumx-text-field-input-validity("error", lumx-base-const("theme", "LIGHT"));
274
+ }
275
+ }
276
+
277
+ .#{$lumx-base-prefix}-select--theme-dark.#{$lumx-base-prefix}-select--is-valid {
278
+ .#{$lumx-base-prefix}-select__wrapper {
279
+ @include lumx-text-field-wrapper-validity("valid", lumx-base-const("theme", "DARK"));
280
+ }
281
+
282
+ .#{$lumx-base-prefix}-select__input-validity {
283
+ @include lumx-text-field-input-validity("valid", lumx-base-const("theme", "DARK"));
284
+ }
285
+ }
286
+
287
+ .#{$lumx-base-prefix}-select--theme-dark.#{$lumx-base-prefix}-select--has-error {
288
+ .#{$lumx-base-prefix}-select__wrapper {
289
+ @include lumx-text-field-wrapper-validity("error", lumx-base-const("theme", "DARK"));
290
+ }
291
+
292
+ .#{$lumx-base-prefix}-select__input-validity {
293
+ @include lumx-text-field-input-validity("error", lumx-base-const("theme", "DARK"));
294
+ }
295
+ }
@@ -0,0 +1,36 @@
1
+ @use "sass:math";
2
+
3
+ @mixin lumx-select-input-indicator($theme) {
4
+ flex-shrink: 0;
5
+ margin-top: calc(var(--lumx-text-field-wrapper-padding-vertical) + ((var(--lumx-material-text-field-input-content-line-height) - var(--lumx-size-s)) / 2));
6
+ margin-left: math.div($lumx-spacing-unit, 2);
7
+
8
+ @if $theme == lumx-base-const("theme", "LIGHT") {
9
+ color: lumx-color-variant("dark", "N");
10
+ } @else if $theme == lumx-base-const("theme", "DARK") {
11
+ color: lumx-color-variant("light", "N");
12
+ }
13
+ }
14
+
15
+ @mixin lumx-select-choices-filter() {
16
+ @include lumx-has-divider(lumx-base-const("theme", "LIGHT"));
17
+
18
+ display: flex;
19
+ align-items: center;
20
+ padding: $lumx-spacing-unit $lumx-spacing-unit * 2;
21
+ }
22
+
23
+ @mixin lumx-select-choices-loader() {
24
+ display: flex;
25
+ justify-content: center;
26
+ padding: $lumx-spacing-unit * 2 0;
27
+ }
28
+
29
+ @mixin lumx-select-choices-helper() {
30
+ @include lumx-typography("body1");
31
+
32
+ display: flex;
33
+ justify-content: center;
34
+ padding: $lumx-spacing-unit * 2 0;
35
+ color: lumx-color-variant("dark", "L3");
36
+ }
@@ -0,0 +1,69 @@
1
+ /* ==========================================================================
2
+ Side navigation
3
+ ========================================================================== */
4
+
5
+ .#{$lumx-base-prefix}-side-navigation {
6
+ @include lumx-list;
7
+ }
8
+
9
+ /* Item
10
+ ========================================================================== */
11
+
12
+ .#{$lumx-base-prefix}-side-navigation-item {
13
+ $self: &;
14
+
15
+ @include lumx-side-navigation-item;
16
+
17
+ &__wrapper {
18
+ @include lumx-side-navigation-wrapper;
19
+ }
20
+
21
+ &__link {
22
+ @include lumx-side-navigation-link;
23
+
24
+ & > i:first-child {
25
+ @include lumx-side-navigation-link-icon(lumx-base-const("position", "LEFT"));
26
+ }
27
+
28
+ & > i:last-child {
29
+ @include lumx-side-navigation-link-icon(lumx-base-const("position", "RIGHT"));
30
+ }
31
+
32
+ & > span {
33
+ #{$self}--emphasis-high & {
34
+ @include lumx-side-navigation-link-label(lumx-base-const("emphasis", "HIGH"));
35
+ }
36
+
37
+ #{$self}--emphasis-medium & {
38
+ @include lumx-side-navigation-link-label(lumx-base-const("emphasis", "MEDIUM"));
39
+ }
40
+
41
+ #{$self}--emphasis-low & {
42
+ @include lumx-side-navigation-link-label(lumx-base-const("emphasis", "LOW"));
43
+ }
44
+ }
45
+ }
46
+
47
+ &__toggle {
48
+ @include lumx-side-navigation-link-toggle;
49
+ }
50
+
51
+ &__children {
52
+ @include lumx-side-navigation-children;
53
+ }
54
+
55
+ &:not(#{$self}--is-open) #{$self}__children {
56
+ display: none;
57
+ }
58
+ }
59
+
60
+ /* Item link states
61
+ ========================================================================== */
62
+
63
+ .#{$lumx-base-prefix}-side-navigation-item .#{$lumx-base-prefix}-side-navigation-item__link {
64
+ @include lumx-list-item-clickable;
65
+ }
66
+
67
+ .#{$lumx-base-prefix}-side-navigation-item--is-selected .#{$lumx-base-prefix}-side-navigation-item__link {
68
+ @include lumx-list-item-selected;
69
+ }
@@ -0,0 +1,61 @@
1
+ @use "sass:map";
2
+
3
+ /**
4
+ * 1. https://github.com/philipwalton/flexbugs/blob/master/README.md#flexbug-3
5
+ */
6
+
7
+ @mixin lumx-side-navigation-item() {
8
+ display: flex; /* [1] */
9
+ flex-direction: column; /* [1] */
10
+ }
11
+
12
+ @mixin lumx-side-navigation-wrapper() {
13
+ display: flex;
14
+ flex-direction: row;
15
+ align-items: center;
16
+ }
17
+
18
+ @mixin lumx-side-navigation-link() {
19
+ display: flex;
20
+ flex: 1 1 auto;
21
+ flex-direction: row;
22
+ align-items: center;
23
+ min-height: map.get($lumx-sizes, lumx-base-const("size", "M"));
24
+ padding: 0 $lumx-spacing-unit;
25
+ text-decoration: none;
26
+ border-radius: var(--lumx-border-radius);
27
+ outline: none;
28
+ }
29
+
30
+ @mixin lumx-side-navigation-link-icon($position) {
31
+ flex-shrink: 0;
32
+
33
+ @if $position == lumx-base-const("position", "LEFT") {
34
+ margin-right: $lumx-spacing-unit * 2;
35
+ } @else if $position == lumx-base-const("position", "RIGHT") {
36
+ margin-left: $lumx-spacing-unit * 2;
37
+ }
38
+ }
39
+
40
+ @mixin lumx-side-navigation-link-label($emphasis) {
41
+ flex: 1 1 auto;
42
+
43
+ @if $emphasis == lumx-base-const("emphasis", "HIGH") {
44
+ @include lumx-typography("title");
45
+ } @else if $emphasis == lumx-base-const("emphasis", "MEDIUM") {
46
+ @include lumx-typography("subtitle1");
47
+ } @else if $emphasis == lumx-base-const("emphasis", "LOW") {
48
+ @include lumx-typography("body1");
49
+ }
50
+ }
51
+
52
+ @mixin lumx-side-navigation-link-toggle() {
53
+ flex-shrink: 0;
54
+ margin-left: $lumx-spacing-unit;
55
+ }
56
+
57
+ @mixin lumx-side-navigation-children() {
58
+ @include lumx-list;
59
+
60
+ margin-left: $lumx-spacing-unit * 4.5;
61
+ }
@@ -0,0 +1,143 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+
4
+ /* ==========================================================================
5
+ Skeleton
6
+ ========================================================================== */
7
+
8
+ @keyframes skeleton-loading {
9
+ 0% {
10
+ opacity: 1;
11
+ }
12
+
13
+ 50% {
14
+ opacity: 0.5;
15
+ }
16
+
17
+ 100% {
18
+ opacity: 1;
19
+ }
20
+ }
21
+
22
+ /* Circle
23
+ ========================================================================== */
24
+
25
+ .#{$lumx-base-prefix}-skeleton-circle {
26
+ border-radius: 50%;
27
+
28
+ &--theme-light {
29
+ @include lumx-skeleton("light");
30
+ }
31
+
32
+ &--theme-dark {
33
+ @include lumx-skeleton("dark");
34
+ }
35
+ }
36
+
37
+ @each $key, $size in $lumx-sizes {
38
+ .#{$lumx-base-prefix}-skeleton-circle--size-#{$key} {
39
+ width: map.get($lumx-sizes, $key);
40
+ height: map.get($lumx-sizes, $key);
41
+ }
42
+ }
43
+
44
+ @each $key, $color in $lumx-color-palette {
45
+ .#{$lumx-base-prefix}-skeleton-circle--color-#{$key} {
46
+ background-color: lumx-color-variant($key, "L5");
47
+ }
48
+ }
49
+
50
+ /* Rectangle
51
+ ========================================================================== */
52
+
53
+ .#{$lumx-base-prefix}-skeleton-rectangle {
54
+ &--variant-rounded {
55
+ border-radius: var(--lumx-border-radius);
56
+ }
57
+
58
+ &--theme-light {
59
+ @include lumx-skeleton("light");
60
+ }
61
+
62
+ &--theme-dark {
63
+ @include lumx-skeleton("dark");
64
+ }
65
+ }
66
+
67
+ @each $key, $size in $lumx-sizes {
68
+ .#{$lumx-base-prefix}-skeleton-rectangle--width-#{$key} {
69
+ width: map.get($lumx-sizes, $key);
70
+ }
71
+
72
+ .#{$lumx-base-prefix}-skeleton-rectangle--height-#{$key} {
73
+ height: map.get($lumx-sizes, $key);
74
+ }
75
+
76
+ .#{$lumx-base-prefix}-skeleton-rectangle--variant-pill.#{$lumx-base-prefix}-skeleton-rectangle--height-#{$key} {
77
+ border-radius: math.div(map.get($lumx-sizes, $key), 2);
78
+ }
79
+ }
80
+
81
+ @each $key, $aspect-ratio in $lumx-thumbnail-aspect-ratio {
82
+ .#{$lumx-base-prefix}-skeleton-rectangle--aspect-ratio-#{$key} .#{$lumx-base-prefix}-skeleton-rectangle__inner {
83
+ padding-top: $aspect-ratio;
84
+ }
85
+ }
86
+
87
+ @each $key, $color in $lumx-color-palette {
88
+ .#{$lumx-base-prefix}-skeleton-rectangle--color-#{$key} {
89
+ background-color: lumx-color-variant($key, "L5");
90
+ }
91
+ }
92
+
93
+ /* Typography
94
+ ========================================================================== */
95
+
96
+ $typography-skeleton-size: (
97
+ "display1": 24px,
98
+ "headline": 20px,
99
+ "title": 14px,
100
+ "subtitle2": 12px,
101
+ "subtitle1": 10px,
102
+ "body2": 12px,
103
+ "body1": 10px,
104
+ "caption": 8px,
105
+ "overline": 8px,
106
+ );
107
+
108
+ .#{$lumx-base-prefix}-skeleton-typography {
109
+ $self: &;
110
+
111
+ display: flex;
112
+ align-items: center;
113
+
114
+ &__inner {
115
+ width: 100%;
116
+ border-radius: var(--lumx-border-radius);
117
+ animation: skeleton-loading 1s ease-in-out 0s infinite;
118
+
119
+ #{$self}--theme-light & {
120
+ background-color: lumx-color-variant("dark", "L5");
121
+ }
122
+
123
+ #{$self}--theme-dark & {
124
+ background-color: lumx-color-variant("light", "L5");
125
+ }
126
+ }
127
+ }
128
+
129
+ @each $key, $style in $lumx-typography-interface {
130
+ .#{$lumx-base-prefix}-skeleton-typography--typography-#{$key} {
131
+ height: map.get(map.get($lumx-typography-interface, $key), "line-height");
132
+ }
133
+
134
+ .#{$lumx-base-prefix}-skeleton-typography--typography-#{$key} .#{$lumx-base-prefix}-skeleton-typography__inner {
135
+ height: map.get($typography-skeleton-size, $key);
136
+ }
137
+ }
138
+
139
+ @each $key, $color in $lumx-color-palette {
140
+ .#{$lumx-base-prefix}-skeleton-typography--color-#{$key} .#{$lumx-base-prefix}-skeleton-typography__inner {
141
+ background-color: lumx-color-variant($key, "L5");
142
+ }
143
+ }
@@ -0,0 +1,9 @@
1
+ @mixin lumx-skeleton($theme: "light") {
2
+ animation: skeleton-loading 1s ease-in-out 0s infinite;
3
+
4
+ @if $theme == "light" {
5
+ background-color: lumx-color-variant("dark", "L5");
6
+ } @else {
7
+ background-color: lumx-color-variant("light", "L5");
8
+ }
9
+ }