@master/css 2.0.0-alpha.4 → 2.0.0-alpha.41

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 (316) hide show
  1. package/color.scss +1 -1
  2. package/config/breakpoints.d.ts +12 -0
  3. package/config/breakpoints.js +13 -0
  4. package/config/breakpoints.js.map +1 -0
  5. package/config/colors.d.ts +24 -0
  6. package/config/colors.js +265 -0
  7. package/config/colors.js.map +1 -0
  8. package/config/index.d.ts +11 -0
  9. package/config/index.js +20 -0
  10. package/config/index.js.map +1 -0
  11. package/config/root-size.d.ts +1 -0
  12. package/config/root-size.js +2 -0
  13. package/config/root-size.js.map +1 -0
  14. package/config/rules.d.ts +1 -0
  15. package/config/rules.js +196 -0
  16. package/config/rules.js.map +1 -0
  17. package/config/selectors.d.ts +18 -0
  18. package/config/selectors.js +19 -0
  19. package/config/selectors.js.map +1 -0
  20. package/config/semantics.d.ts +81 -0
  21. package/config/semantics.js +82 -0
  22. package/config/semantics.js.map +1 -0
  23. package/config/themes.d.ts +1 -0
  24. package/config/themes.js +2 -0
  25. package/config/themes.js.map +1 -0
  26. package/config/values.d.ts +125 -0
  27. package/config/values.js +71 -0
  28. package/config/values.js.map +1 -0
  29. package/configure.d.ts +2 -0
  30. package/configure.js +11 -0
  31. package/configure.js.map +1 -0
  32. package/constants/css-property-keyword.d.ts +0 -7
  33. package/constants/css-property-keyword.js +211 -0
  34. package/constants/css-property-keyword.js.map +1 -0
  35. package/constants/priority-selectors.js +2 -0
  36. package/constants/priority-selectors.js.map +1 -0
  37. package/constants/start-symbol.js +6 -0
  38. package/constants/start-symbol.js.map +1 -0
  39. package/core.d.ts +68 -0
  40. package/core.js +850 -0
  41. package/core.js.map +1 -0
  42. package/fill-color-scale.d.ts +1 -0
  43. package/fill-color-scale.js +60 -0
  44. package/fill-color-scale.js.map +1 -0
  45. package/index.d.ts +9 -6
  46. package/index.js +10 -1
  47. package/index.js.map +1 -0
  48. package/init.d.ts +3 -0
  49. package/init.js +13 -0
  50. package/init.js.map +1 -0
  51. package/interfaces/config.d.ts +16 -0
  52. package/interfaces/config.js +2 -0
  53. package/interfaces/config.js.map +1 -0
  54. package/interfaces/declaration.d.ts +5 -0
  55. package/interfaces/declaration.js +2 -0
  56. package/interfaces/declaration.js.map +1 -0
  57. package/interfaces/{style-media-feature.d.ts → media-feature-rule.d.ts} +1 -1
  58. package/interfaces/media-feature-rule.js +2 -0
  59. package/interfaces/media-feature-rule.js.map +1 -0
  60. package/interfaces/media.d.ts +8 -0
  61. package/interfaces/media.js +2 -0
  62. package/interfaces/media.js.map +1 -0
  63. package/main.js +2 -0
  64. package/main.js.map +1 -0
  65. package/package.json +3 -2
  66. package/polyfills/css-escape.d.ts +2 -0
  67. package/polyfills/css-escape.js +91 -0
  68. package/polyfills/css-escape.js.map +1 -0
  69. package/render-from-html.d.ts +3 -0
  70. package/render-from-html.js +19 -0
  71. package/render-from-html.js.map +1 -0
  72. package/render-into-html.d.ts +3 -0
  73. package/render-into-html.js +10 -0
  74. package/render-into-html.js.map +1 -0
  75. package/render.d.ts +2 -7
  76. package/render.js +14 -1
  77. package/render.js.map +1 -0
  78. package/rule.d.ts +51 -0
  79. package/rule.js +540 -0
  80. package/rule.js.map +1 -0
  81. package/rules/z-index.d.ts +7 -0
  82. package/rules/z-index.js +9 -0
  83. package/rules/z-index.js.map +1 -0
  84. package/utils/concat-arrays.d.ts +1 -0
  85. package/utils/concat-arrays.js +8 -0
  86. package/utils/concat-arrays.js.map +1 -0
  87. package/utils/get-css-property-text.js +8 -0
  88. package/utils/get-css-property-text.js.map +1 -0
  89. package/utils/get-type.d.ts +7 -0
  90. package/utils/get-type.js +10 -0
  91. package/utils/get-type.js.map +1 -0
  92. package/utils/hex-to-rgb.d.ts +1 -0
  93. package/utils/hex-to-rgb.js +8 -0
  94. package/utils/hex-to-rgb.js.map +1 -0
  95. package/utils/is-plain-object.d.ts +8 -0
  96. package/utils/is-plain-object.js +13 -0
  97. package/utils/is-plain-object.js.map +1 -0
  98. package/utils/is-symbol.d.ts +7 -0
  99. package/utils/is-symbol.js +11 -0
  100. package/utils/is-symbol.js.map +1 -0
  101. package/utils/merge.d.ts +5 -0
  102. package/utils/merge.js +59 -0
  103. package/utils/merge.js.map +1 -0
  104. package/utils/normalize-css-calc-text.js +56 -0
  105. package/utils/normalize-css-calc-text.js.map +1 -0
  106. package/utils/parse-value.d.ts +3 -2
  107. package/utils/parse-value.js +86 -0
  108. package/utils/parse-value.js.map +1 -0
  109. package/utils/rgb-to-hex.d.ts +1 -0
  110. package/utils/rgb-to-hex.js +4 -0
  111. package/utils/rgb-to-hex.js.map +1 -0
  112. package/breakpoints.js +0 -1
  113. package/colors.js +0 -1
  114. package/constants/css-browser-prefix.d.ts +0 -3
  115. package/constants/direction.d.ts +0 -10
  116. package/interfaces/style-media.d.ts +0 -8
  117. package/master-css.min.js +0 -1
  118. package/sheet.d.ts +0 -55
  119. package/style.d.ts +0 -69
  120. package/styles/accent-color.d.ts +0 -6
  121. package/styles/align-content.d.ts +0 -5
  122. package/styles/align-items.d.ts +0 -5
  123. package/styles/align-self.d.ts +0 -5
  124. package/styles/animation-delay.d.ts +0 -6
  125. package/styles/animation-direction.d.ts +0 -5
  126. package/styles/animation-duration.d.ts +0 -6
  127. package/styles/animation-fill-mode.d.ts +0 -5
  128. package/styles/animation-iteration-count.d.ts +0 -6
  129. package/styles/animation-name.d.ts +0 -5
  130. package/styles/animation-play-state.d.ts +0 -5
  131. package/styles/animation-timing-function.d.ts +0 -5
  132. package/styles/animation.d.ts +0 -7
  133. package/styles/appearance.d.ts +0 -4
  134. package/styles/aspect-radio.d.ts +0 -10
  135. package/styles/backdrop-filter.d.ts +0 -9
  136. package/styles/background-attachment.d.ts +0 -5
  137. package/styles/background-blend-mode.d.ts +0 -4
  138. package/styles/background-clip.d.ts +0 -13
  139. package/styles/background-color.d.ts +0 -7
  140. package/styles/background-image.d.ts +0 -6
  141. package/styles/background-origin.d.ts +0 -10
  142. package/styles/background-position.d.ts +0 -6
  143. package/styles/background-repeat.d.ts +0 -5
  144. package/styles/background-size.d.ts +0 -5
  145. package/styles/background.d.ts +0 -7
  146. package/styles/border-collapse.d.ts +0 -5
  147. package/styles/border-color.d.ts +0 -11
  148. package/styles/border-image-outset.d.ts +0 -4
  149. package/styles/border-image-repeat.d.ts +0 -5
  150. package/styles/border-image-slice.d.ts +0 -5
  151. package/styles/border-image-source.d.ts +0 -5
  152. package/styles/border-image-width.d.ts +0 -5
  153. package/styles/border-image.d.ts +0 -5
  154. package/styles/border-radius.d.ts +0 -13
  155. package/styles/border-spacing.d.ts +0 -4
  156. package/styles/border-style.d.ts +0 -9
  157. package/styles/border-width.d.ts +0 -9
  158. package/styles/border.d.ts +0 -10
  159. package/styles/box-decoration-break.d.ts +0 -8
  160. package/styles/box-shadow.d.ts +0 -6
  161. package/styles/box-sizing.d.ts +0 -9
  162. package/styles/break-after.d.ts +0 -4
  163. package/styles/break-before.d.ts +0 -4
  164. package/styles/break-inside.d.ts +0 -4
  165. package/styles/caret-color.d.ts +0 -6
  166. package/styles/clear.d.ts +0 -4
  167. package/styles/clip-path.d.ts +0 -14
  168. package/styles/color.d.ts +0 -7
  169. package/styles/column-span.d.ts +0 -5
  170. package/styles/columns.d.ts +0 -7
  171. package/styles/contain.d.ts +0 -4
  172. package/styles/content.d.ts +0 -4
  173. package/styles/counter-increment.d.ts +0 -5
  174. package/styles/cursor.d.ts +0 -4
  175. package/styles/cx.d.ts +0 -5
  176. package/styles/cy.d.ts +0 -5
  177. package/styles/direction.d.ts +0 -4
  178. package/styles/display.d.ts +0 -29
  179. package/styles/fill.d.ts +0 -6
  180. package/styles/filter.d.ts +0 -6
  181. package/styles/flex-basis.d.ts +0 -10
  182. package/styles/flex-direction.d.ts +0 -9
  183. package/styles/flex-grow.d.ts +0 -5
  184. package/styles/flex-shrink.d.ts +0 -5
  185. package/styles/flex-wrap.d.ts +0 -5
  186. package/styles/flex.d.ts +0 -6
  187. package/styles/float.d.ts +0 -4
  188. package/styles/font-family.d.ts +0 -10
  189. package/styles/font-size.d.ts +0 -5
  190. package/styles/font-smoothing.d.ts +0 -9
  191. package/styles/font-style.d.ts +0 -10
  192. package/styles/font-variant-numeric.d.ts +0 -5
  193. package/styles/font-weight.d.ts +0 -17
  194. package/styles/font.d.ts +0 -7
  195. package/styles/gap.d.ts +0 -9
  196. package/styles/grid-area.d.ts +0 -6
  197. package/styles/grid-auto-columns.d.ts +0 -9
  198. package/styles/grid-auto-flow.d.ts +0 -5
  199. package/styles/grid-auto-rows.d.ts +0 -8
  200. package/styles/grid-column-end.d.ts +0 -6
  201. package/styles/grid-column-start.d.ts +0 -6
  202. package/styles/grid-column.d.ts +0 -8
  203. package/styles/grid-columns.d.ts +0 -9
  204. package/styles/grid-row-end.d.ts +0 -5
  205. package/styles/grid-row-start.d.ts +0 -5
  206. package/styles/grid-row.d.ts +0 -8
  207. package/styles/grid-rows.d.ts +0 -8
  208. package/styles/grid-template-areas.d.ts +0 -4
  209. package/styles/grid-template-columns.d.ts +0 -9
  210. package/styles/grid-template-rows.d.ts +0 -8
  211. package/styles/grid-template.d.ts +0 -5
  212. package/styles/grid.d.ts +0 -5
  213. package/styles/group.d.ts +0 -9
  214. package/styles/height.d.ts +0 -11
  215. package/styles/index.d.ts +0 -17
  216. package/styles/inset.d.ts +0 -8
  217. package/styles/isolation.d.ts +0 -7
  218. package/styles/justify-content.d.ts +0 -5
  219. package/styles/justify-items.d.ts +0 -5
  220. package/styles/justify-self.d.ts +0 -5
  221. package/styles/letter-spacing.d.ts +0 -6
  222. package/styles/line-height.d.ts +0 -6
  223. package/styles/lines.d.ts +0 -9
  224. package/styles/list-style-image.d.ts +0 -5
  225. package/styles/list-style-position.d.ts +0 -5
  226. package/styles/list-style-type.d.ts +0 -5
  227. package/styles/list-style.d.ts +0 -5
  228. package/styles/margin.d.ts +0 -9
  229. package/styles/mask-image.d.ts +0 -7
  230. package/styles/max-height.d.ts +0 -11
  231. package/styles/max-width.d.ts +0 -11
  232. package/styles/min-height.d.ts +0 -11
  233. package/styles/min-width.d.ts +0 -11
  234. package/styles/mix-blend-mode.d.ts +0 -5
  235. package/styles/object-fit.d.ts +0 -5
  236. package/styles/object-position.d.ts +0 -5
  237. package/styles/opacity.d.ts +0 -5
  238. package/styles/order.d.ts +0 -10
  239. package/styles/outline-color.d.ts +0 -6
  240. package/styles/outline-offset.d.ts +0 -4
  241. package/styles/outline-style.d.ts +0 -5
  242. package/styles/outline-width.d.ts +0 -5
  243. package/styles/outline.d.ts +0 -6
  244. package/styles/overflow.d.ts +0 -12
  245. package/styles/overscroll-behavior.d.ts +0 -8
  246. package/styles/padding.d.ts +0 -9
  247. package/styles/place-content.d.ts +0 -5
  248. package/styles/place-items.d.ts +0 -5
  249. package/styles/place-self.d.ts +0 -5
  250. package/styles/placement.d.ts +0 -7
  251. package/styles/pointer-events.d.ts +0 -7
  252. package/styles/position.d.ts +0 -15
  253. package/styles/quotes.d.ts +0 -4
  254. package/styles/resize.d.ts +0 -4
  255. package/styles/rx.d.ts +0 -5
  256. package/styles/ry.d.ts +0 -5
  257. package/styles/scroll-behavior.d.ts +0 -4
  258. package/styles/scroll-margin.d.ts +0 -9
  259. package/styles/scroll-padding.d.ts +0 -9
  260. package/styles/scroll-snap-align.d.ts +0 -5
  261. package/styles/scroll-snap-stop.d.ts +0 -5
  262. package/styles/scroll-snap-type.d.ts +0 -5
  263. package/styles/shape-image-threshold.d.ts +0 -5
  264. package/styles/shape-margin.d.ts +0 -5
  265. package/styles/shape-outside.d.ts +0 -11
  266. package/styles/spacing.d.ts +0 -9
  267. package/styles/stroke-dasharray.d.ts +0 -4
  268. package/styles/stroke-dashoffset.d.ts +0 -4
  269. package/styles/stroke-width.d.ts +0 -5
  270. package/styles/stroke.d.ts +0 -5
  271. package/styles/table-layout.d.ts +0 -4
  272. package/styles/text-align.d.ts +0 -5
  273. package/styles/text-decoration-color.d.ts +0 -6
  274. package/styles/text-decoration-line.d.ts +0 -5
  275. package/styles/text-decoration-style.d.ts +0 -5
  276. package/styles/text-decoration-thickness.d.ts +0 -6
  277. package/styles/text-decoration.d.ts +0 -7
  278. package/styles/text-fill-color.d.ts +0 -10
  279. package/styles/text-indent.d.ts +0 -4
  280. package/styles/text-orientation.d.ts +0 -5
  281. package/styles/text-overflow.d.ts +0 -5
  282. package/styles/text-rendering.d.ts +0 -5
  283. package/styles/text-shadow.d.ts +0 -5
  284. package/styles/text-size.d.ts +0 -8
  285. package/styles/text-stroke-color.d.ts +0 -10
  286. package/styles/text-stroke-width.d.ts +0 -8
  287. package/styles/text-stroke.d.ts +0 -8
  288. package/styles/text-transform.d.ts +0 -10
  289. package/styles/text-underline-offset.d.ts +0 -4
  290. package/styles/touch-action.d.ts +0 -4
  291. package/styles/transform-box.d.ts +0 -12
  292. package/styles/transform-origin.d.ts +0 -6
  293. package/styles/transform-style.d.ts +0 -5
  294. package/styles/transform.d.ts +0 -7
  295. package/styles/transition-delay.d.ts +0 -6
  296. package/styles/transition-duration.d.ts +0 -6
  297. package/styles/transition-property.d.ts +0 -5
  298. package/styles/transition-timing-function.d.ts +0 -5
  299. package/styles/transition.d.ts +0 -6
  300. package/styles/user-drag.d.ts +0 -7
  301. package/styles/user-select.d.ts +0 -7
  302. package/styles/utility.d.ts +0 -43
  303. package/styles/variable.d.ts +0 -9
  304. package/styles/vertical-align.d.ts +0 -5
  305. package/styles/visibility.d.ts +0 -8
  306. package/styles/white-space.d.ts +0 -5
  307. package/styles/width.d.ts +0 -11
  308. package/styles/will-change.d.ts +0 -4
  309. package/styles/word-break.d.ts +0 -5
  310. package/styles/word-spacing.d.ts +0 -4
  311. package/styles/writing-mode.d.ts +0 -5
  312. package/styles/x.d.ts +0 -5
  313. package/styles/y.d.ts +0 -5
  314. package/styles/z-index.d.ts +0 -6
  315. package/utils/get-border-props.d.ts +0 -3
  316. package/utils/parse-value-unit.d.ts +0 -1
package/rule.js ADDED
@@ -0,0 +1,540 @@
1
+ import { getCssPropertyText } from './utils/get-css-property-text';
2
+ import { parseValue } from './utils/parse-value';
3
+ import { PRIORITY_SELECTORS } from './constants/priority-selectors';
4
+ import { START_SYMBOL } from './constants/start-symbol';
5
+ const MATCHES = 'matches';
6
+ const SEMANTICS = 'semantics';
7
+ const SYMBOL = 'symbol';
8
+ const WIDTH = 'width';
9
+ const MAX_WIDTH = 'max-' + WIDTH;
10
+ const MIN_WIDTH = 'min-' + WIDTH;
11
+ const MOTION = 'motion';
12
+ const REDUCE = 'reduce';
13
+ const REDUCED_MOTION = REDUCE + 'd-' + MOTION;
14
+ const PX = 'px';
15
+ const REM = 'rem';
16
+ const selectorSymbols = ['!', '*', '>', '+', '~', ':', '[', '@', '_'];
17
+ const selectorSplitRegexp = /(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/;
18
+ const transformSelectorUnderline = (selector) => selector.split(selectorSplitRegexp)
19
+ .map((eachToken, i) => i % 3 ? eachToken : eachToken.replace(/\_/g, ' '))
20
+ .join('');
21
+ export class MasterCSSRule {
22
+ constructor(className, matching, css) {
23
+ this.className = className;
24
+ this.matching = matching;
25
+ this.at = {};
26
+ this.prioritySelectorIndex = -1;
27
+ this.natives = [];
28
+ const TargetRule = this.constructor;
29
+ let { id, unit, propName, colorful } = TargetRule;
30
+ const { breakpoints, mediaQueries, semantics, rootSize } = css.config;
31
+ const values = css.config.values[id];
32
+ const relationThemesMap = css.relationThemesMap[className];
33
+ const { themeNames, colorsThemesMap, selectors } = css;
34
+ let token = className;
35
+ // 1. value / selectorToken
36
+ let value, prefixToken, suffixToken, valueTokens;
37
+ if (matching.origin === SEMANTICS) {
38
+ suffixToken = token.slice(matching.value.length);
39
+ value = semantics[matching.value];
40
+ }
41
+ else {
42
+ let valueToken;
43
+ if (matching.origin === MATCHES) {
44
+ if (id === 'Group') {
45
+ let i = 0;
46
+ for (; i < token.length; i++) {
47
+ if (token[i] === '{' && token[i - 1] !== '\\') {
48
+ break;
49
+ }
50
+ }
51
+ prefixToken = token.slice(0, i);
52
+ valueToken = token.slice(i);
53
+ }
54
+ else {
55
+ const indexOfColon = token.indexOf(':');
56
+ this.prefix = token.slice(0, indexOfColon + 1);
57
+ if (this.prefix.includes('(')) {
58
+ this.prefix = undefined;
59
+ valueToken = token;
60
+ }
61
+ else {
62
+ valueToken = token.slice(indexOfColon + 1);
63
+ }
64
+ }
65
+ }
66
+ else if (matching.origin === SYMBOL) {
67
+ this.symbol = token[0];
68
+ valueToken = token.slice(1);
69
+ }
70
+ valueTokens = [];
71
+ let currentValueToken = '';
72
+ let i = 0;
73
+ (function analyze(end, depth, func = '') {
74
+ let varIndex;
75
+ let isString = false;
76
+ if (end) {
77
+ if (end === ')' && currentValueToken.slice(-1) === '$') {
78
+ varIndex = currentValueToken.length - 1;
79
+ }
80
+ else if (end === '\'') {
81
+ isString = true;
82
+ }
83
+ currentValueToken += valueToken[i++];
84
+ }
85
+ for (; i < valueToken.length; i++) {
86
+ const val = valueToken[i];
87
+ if (val === end) {
88
+ currentValueToken += val;
89
+ if (isString) {
90
+ let count = 0;
91
+ for (let j = currentValueToken.length - 2;; j--) {
92
+ if (currentValueToken[j] !== '\\') {
93
+ break;
94
+ }
95
+ count++;
96
+ }
97
+ if (count % 2) {
98
+ continue;
99
+ }
100
+ }
101
+ if (varIndex !== undefined) {
102
+ currentValueToken = currentValueToken.slice(0, varIndex) + currentValueToken.slice(varIndex).replace(/\$\((.*)\)/, 'var(--$1)');
103
+ }
104
+ if (!depth) {
105
+ if (isString) {
106
+ valueTokens.push(currentValueToken);
107
+ }
108
+ else {
109
+ valueTokens.push({ value: currentValueToken });
110
+ }
111
+ func = '';
112
+ currentValueToken = '';
113
+ }
114
+ break;
115
+ }
116
+ else if (!isString && val in START_SYMBOL) {
117
+ analyze(START_SYMBOL[val], depth === undefined ? 0 : depth + 1, func);
118
+ }
119
+ else if (val === '|' && end !== '}' && (!isString || func === 'path')) {
120
+ if (!end) {
121
+ valueTokens.push({ value: currentValueToken });
122
+ currentValueToken = '';
123
+ }
124
+ else {
125
+ currentValueToken += ' ';
126
+ }
127
+ }
128
+ else {
129
+ if (!end) {
130
+ if (val === '.') {
131
+ if (isNaN(+valueToken[i + 1])) {
132
+ break;
133
+ }
134
+ else if (valueToken[i - 1] === '-') {
135
+ currentValueToken += '0';
136
+ }
137
+ }
138
+ else if (val === ',') {
139
+ valueTokens.push({ value: currentValueToken }, ',');
140
+ currentValueToken = '';
141
+ continue;
142
+ }
143
+ else if (val === '#'
144
+ && (currentValueToken || valueTokens.length && valueToken[i - 1] !== '|')
145
+ || selectorSymbols.includes(val)) {
146
+ break;
147
+ }
148
+ func += val;
149
+ }
150
+ currentValueToken += val;
151
+ }
152
+ }
153
+ })();
154
+ if (currentValueToken) {
155
+ valueTokens.push({ value: currentValueToken });
156
+ }
157
+ suffixToken = valueToken.slice(i);
158
+ }
159
+ // 2. !important
160
+ if (suffixToken[0] === '!') {
161
+ this.important = true;
162
+ suffixToken = suffixToken.slice(1);
163
+ }
164
+ // 3. prefix selector
165
+ const analyzeSelectorToken = (selectorText) => {
166
+ const transformedSelectorText = transformSelectorUnderline(selectorText);
167
+ const selectors = [];
168
+ let currentSelector = '';
169
+ let symbolCount = 0;
170
+ for (let i = 0; i < transformedSelectorText.length; i++) {
171
+ const char = transformedSelectorText[i];
172
+ if (char === '\\') {
173
+ currentSelector += char + transformedSelectorText[++i];
174
+ continue;
175
+ }
176
+ if (!symbolCount && char === ',') {
177
+ selectors.push(currentSelector);
178
+ currentSelector = '';
179
+ }
180
+ else {
181
+ currentSelector += char;
182
+ if (symbolCount && char === ')') {
183
+ symbolCount--;
184
+ }
185
+ else if (char === '(') {
186
+ symbolCount++;
187
+ }
188
+ }
189
+ }
190
+ if (currentSelector) {
191
+ selectors.push(currentSelector);
192
+ }
193
+ return selectors;
194
+ };
195
+ this.prefixSelectors = prefixToken
196
+ ? analyzeSelectorToken(prefixToken)
197
+ : [''];
198
+ // 4. suffix selector
199
+ const suffixTokens = suffixToken.split('@');
200
+ let suffixSelector = suffixTokens[0];
201
+ if (suffixSelector) {
202
+ this.suffixSelectors = [];
203
+ const originalSuffixTokens = analyzeSelectorToken(suffixSelector);
204
+ for (let eachOriginalSuffixToken of originalSuffixTokens) {
205
+ for (const eachSingleSelectorEntry of selectors.single) {
206
+ eachOriginalSuffixToken = eachOriginalSuffixToken.replace(eachSingleSelectorEntry[0], eachSingleSelectorEntry[1]);
207
+ }
208
+ const transform = (selectorText) => {
209
+ for (const eachMultipleSelectorEntry of selectors.multiple) {
210
+ if (eachMultipleSelectorEntry[0].test(selectorText)) {
211
+ for (const eachSelectorText of eachMultipleSelectorEntry[1]) {
212
+ transform(selectorText.replace(eachMultipleSelectorEntry[0], eachSelectorText));
213
+ }
214
+ return;
215
+ }
216
+ }
217
+ this.suffixSelectors.push(selectorText);
218
+ };
219
+ transform(eachOriginalSuffixToken);
220
+ }
221
+ for (const eachSuffixSelector of this.suffixSelectors) {
222
+ if (this.hasWhere !== false) {
223
+ this.hasWhere = eachSuffixSelector.includes(':where(');
224
+ }
225
+ for (let i = 0; i < PRIORITY_SELECTORS.length; i++) {
226
+ if (eachSuffixSelector.includes(PRIORITY_SELECTORS[i])) {
227
+ if (this.prioritySelectorIndex === -1 || this.prioritySelectorIndex > i) {
228
+ this.prioritySelectorIndex = i;
229
+ }
230
+ break;
231
+ }
232
+ }
233
+ }
234
+ }
235
+ else {
236
+ this.suffixSelectors = [''];
237
+ }
238
+ // 5. atTokens
239
+ for (let i = 1; i < suffixTokens.length; i++) {
240
+ const atToken = suffixTokens[i];
241
+ if (atToken) {
242
+ if (themeNames.includes(atToken)) {
243
+ this.themeName = atToken;
244
+ }
245
+ else if (atToken === 'rtl'
246
+ || atToken === 'ltr') {
247
+ this.direction = atToken;
248
+ }
249
+ else {
250
+ let type;
251
+ let queryText;
252
+ const underscoreIndex = atToken.indexOf('_');
253
+ if (underscoreIndex !== -1) {
254
+ type = atToken.slice(0, underscoreIndex);
255
+ queryText = atToken.slice(underscoreIndex);
256
+ }
257
+ else {
258
+ const leftBracketIndex = atToken.indexOf('(');
259
+ if (leftBracketIndex !== -1) {
260
+ type = atToken.slice(0, leftBracketIndex);
261
+ queryText = atToken.slice(leftBracketIndex);
262
+ }
263
+ }
264
+ if (!type) {
265
+ type = 'media';
266
+ const queryTexts = [];
267
+ this.media = {
268
+ token: atToken,
269
+ features: {}
270
+ };
271
+ const typeOrFeatureTokens = atToken.split('&');
272
+ for (const typeOrFeatureToken of typeOrFeatureTokens) {
273
+ if (typeOrFeatureToken === 'all'
274
+ || typeOrFeatureToken === 'print'
275
+ || typeOrFeatureToken === 'screen'
276
+ || typeOrFeatureToken === 'speech') {
277
+ this.media.type = typeOrFeatureToken;
278
+ }
279
+ else if (typeOrFeatureToken === '🖨') {
280
+ this.media.type = 'print';
281
+ }
282
+ else {
283
+ if (typeOrFeatureToken === 'landscape' || typeOrFeatureToken === 'portrait') {
284
+ queryTexts.push('(orientation:' + typeOrFeatureToken + ')');
285
+ }
286
+ else if (typeOrFeatureToken === MOTION || typeOrFeatureToken === REDUCED_MOTION) {
287
+ queryTexts.push('(prefers-' + REDUCED_MOTION + ':'
288
+ + (typeOrFeatureToken === MOTION ? 'no-preference' : REDUCE)
289
+ + ')');
290
+ }
291
+ else if (mediaQueries && typeOrFeatureToken in mediaQueries) {
292
+ queryTexts.push(mediaQueries[typeOrFeatureToken]);
293
+ }
294
+ else {
295
+ const feature = {
296
+ token: typeOrFeatureToken
297
+ };
298
+ let featureName = '';
299
+ let extremumOperator = '';
300
+ let correction = 0;
301
+ if (typeOrFeatureToken.startsWith('<=')) {
302
+ extremumOperator = '<=';
303
+ featureName = MAX_WIDTH;
304
+ }
305
+ else if (typeOrFeatureToken.startsWith('>=') || breakpoints[typeOrFeatureToken]) {
306
+ extremumOperator = '>=';
307
+ featureName = MIN_WIDTH;
308
+ }
309
+ else if (typeOrFeatureToken.startsWith('>')) {
310
+ extremumOperator = '>';
311
+ featureName = MIN_WIDTH;
312
+ correction = .02;
313
+ }
314
+ else if (typeOrFeatureToken.startsWith('<')) {
315
+ extremumOperator = '<';
316
+ featureName = MAX_WIDTH;
317
+ correction = -.02;
318
+ }
319
+ switch (featureName) {
320
+ case MAX_WIDTH:
321
+ case MIN_WIDTH:
322
+ const conditionUnitValueToken = extremumOperator
323
+ ? typeOrFeatureToken.replace(extremumOperator, '')
324
+ : typeOrFeatureToken;
325
+ const breakpoint = breakpoints[conditionUnitValueToken];
326
+ if (breakpoint) {
327
+ Object.assign(feature, parseValue(breakpoint, PX));
328
+ }
329
+ else {
330
+ Object.assign(feature, parseValue(conditionUnitValueToken, PX));
331
+ }
332
+ if (feature.unit === PX) {
333
+ feature.value += correction;
334
+ }
335
+ this.media.features[featureName] = feature;
336
+ queryTexts.push('(' + featureName + ':' + (feature.value + feature.unit) + ')');
337
+ break;
338
+ }
339
+ }
340
+ }
341
+ }
342
+ queryText = '';
343
+ if (this.media.type) {
344
+ queryText = this.media.type;
345
+ }
346
+ if (queryTexts.length) {
347
+ queryText += (queryText ? ' and ' : '') + queryTexts.join(' and ');
348
+ }
349
+ }
350
+ if (queryText) {
351
+ this.at[type] = (type in this.at
352
+ ? this.at[type] + ' and '
353
+ : '')
354
+ + queryText.replace(/\_/g, ' ');
355
+ }
356
+ }
357
+ }
358
+ }
359
+ // 6. order
360
+ if (this.order === undefined) {
361
+ // @ts-ignore
362
+ this.order = 0;
363
+ }
364
+ // 7. value
365
+ const insertNewNative = (themeName, bypassWhenUnmatchColor) => {
366
+ let newValue, newUnit;
367
+ const generateCssText = (propertiesText, themeName) => {
368
+ let prefixText = '';
369
+ if (this.direction) {
370
+ prefixText += '[dir=' + this.direction + '] ';
371
+ }
372
+ const prefixTexts = this.prefixSelectors.map(eachPrefixSelector => eachPrefixSelector + prefixText);
373
+ const getCssText = (themeName, name) => {
374
+ const prefixThemeText = (themeName ? '.' + themeName + ' ' : '');
375
+ const esacpedName = '.' + CSS.escape(name);
376
+ return prefixTexts
377
+ .map(eachPrefixText => prefixThemeText + eachPrefixText)
378
+ .reduce((arr, eachPrefixText) => {
379
+ arr.push(this.suffixSelectors
380
+ .reduce((_arr, eachSuffixSelector) => {
381
+ _arr.push(eachPrefixText + esacpedName + eachSuffixSelector);
382
+ return _arr;
383
+ }, [])
384
+ .join(','));
385
+ return arr;
386
+ }, [])
387
+ .join(',');
388
+ };
389
+ let cssText = getCssText(themeName, className)
390
+ + (relationThemesMap
391
+ ? Object
392
+ .entries(relationThemesMap)
393
+ .filter(([relationTheme]) => this.themeName || !colorful || !themeName || !relationTheme || relationTheme === themeName)
394
+ .map(([relationTheme, classNames]) => classNames.reduce((str, className) => { var _a; return str + ',' + getCssText((_a = this.themeName) !== null && _a !== void 0 ? _a : (colorful ? themeName || relationTheme : relationTheme), className); }, ''))
395
+ .join('')
396
+ : '')
397
+ + '{'
398
+ + propertiesText
399
+ + '}';
400
+ for (const key of Object.keys(this.at).sort((a, b) => b === 'supports' ? -1 : 1)) {
401
+ cssText = '@' + key + ' ' + this.at[key] + '{' + cssText + '}';
402
+ }
403
+ return cssText;
404
+ };
405
+ const newValueTokens = [];
406
+ if (valueTokens) {
407
+ let uv, anyColorMatched = undefined;
408
+ for (const eachValueToken of valueTokens) {
409
+ if (typeof eachValueToken === 'string') {
410
+ newValueTokens.push(eachValueToken);
411
+ }
412
+ else {
413
+ uv = parseValue(eachValueToken.value, unit, colorful && colorsThemesMap, values, rootSize, this.themeName ? [this.themeName, ''] : [themeName]);
414
+ if (uv.colorMatched !== undefined && anyColorMatched !== true) {
415
+ anyColorMatched = uv.colorMatched;
416
+ }
417
+ newValueTokens.push(uv.value + uv.unit);
418
+ }
419
+ }
420
+ if (bypassWhenUnmatchColor && (anyColorMatched === undefined ? themeName : !anyColorMatched))
421
+ return;
422
+ if (newValueTokens.length === 1) {
423
+ if (uv) {
424
+ newValue = uv.value;
425
+ newUnit = uv.unit;
426
+ }
427
+ else {
428
+ newValue = newValueTokens[0];
429
+ }
430
+ }
431
+ else {
432
+ newValue = newValueTokens.reduce((previousVal, currentVal, i) => previousVal + currentVal + ((currentVal === ',' || valueTokens[i + 1] === ',' || i === valueTokens.length - 1) ? '' : ' '), '');
433
+ }
434
+ if (typeof newValue !== 'object') {
435
+ // 8. parseValue
436
+ if (this.parseValue) {
437
+ newValue = this.parseValue(newValue);
438
+ }
439
+ // 9. transform value
440
+ if (colorful && newValue === 'current') {
441
+ newValue = 'currentColor';
442
+ }
443
+ else if (values && newValue in values) {
444
+ newValue = values[newValue].toString();
445
+ }
446
+ const declaration = { unit: newUnit, value: newValue, important: this.important };
447
+ if (this.getThemeProps) {
448
+ const themeProps = this.getThemeProps(declaration, css);
449
+ for (const themeName in themeProps) {
450
+ this.natives.push({
451
+ unit: newUnit,
452
+ value: newValue,
453
+ text: generateCssText(Object
454
+ .entries(themeProps[themeName])
455
+ .map(([propertyName, propertyValue]) => getCssPropertyText(propertyName, {
456
+ important: this.important,
457
+ unit: '',
458
+ value: propertyValue
459
+ }))
460
+ .join(';'), themeName),
461
+ themeName
462
+ });
463
+ }
464
+ return;
465
+ }
466
+ else if (this.get) {
467
+ newValue = this.get(declaration);
468
+ }
469
+ }
470
+ }
471
+ else {
472
+ newValue = value;
473
+ }
474
+ this.natives.push({
475
+ unit: newUnit,
476
+ value: newValue,
477
+ text: generateCssText(typeof newValue === 'object'
478
+ ? Object
479
+ .entries(newValue)
480
+ .map(([propertyName, propertyValue]) => getCssPropertyText(propertyName, Object.assign(Object.assign({}, (typeof propertyValue === 'object'
481
+ ? propertyValue
482
+ : { unit: '', value: propertyValue })), { important: this.important })))
483
+ .join(';')
484
+ : getCssPropertyText(propName, { unit: newUnit, value: newValue, important: this.important }), themeName),
485
+ themeName
486
+ });
487
+ };
488
+ if (this.getThemeProps) {
489
+ insertNewNative(undefined, false);
490
+ }
491
+ else if (this.themeName) {
492
+ insertNewNative(this.themeName, false);
493
+ }
494
+ else if (colorful) {
495
+ for (const eachThemeName of themeNames) {
496
+ insertNewNative(eachThemeName, true);
497
+ }
498
+ }
499
+ else {
500
+ insertNewNative('', false);
501
+ }
502
+ }
503
+ static match(name, colorNames) {
504
+ /**
505
+ * STEP 1. matches
506
+ */
507
+ if (this.matches && this.matches.test(name)) {
508
+ return { origin: MATCHES };
509
+ }
510
+ /**
511
+ * STEP 2. color starts
512
+ */
513
+ // TODO: 動態 new Regex 效能問題待優化
514
+ if (this.colorStarts
515
+ && (name.match('^' + this.colorStarts + '(?:(?:#|(rgb|hsl)\\(.*\\))((?!\\|).)*$|(?:transparent|current))')
516
+ || colorNames.length
517
+ && name.match('^' + this.colorStarts + '(' + colorNames.join('|') + ')')
518
+ && name.indexOf('|') === -1)) {
519
+ return { origin: MATCHES };
520
+ }
521
+ /**
522
+ * STEP 3. symbol
523
+ */
524
+ if (this.symbol && name.startsWith(this.symbol)) {
525
+ return { origin: SYMBOL };
526
+ }
527
+ /**
528
+ * STEP 4. key full name
529
+ */
530
+ if (this.propName && name.startsWith(this.propName + ':')) {
531
+ return { origin: MATCHES };
532
+ }
533
+ }
534
+ ;
535
+ }
536
+ MasterCSSRule.unit = REM;
537
+ if (typeof window !== 'undefined') {
538
+ window.MasterCSSRule = MasterCSSRule;
539
+ }
540
+ //# sourceMappingURL=rule.js.map
package/rule.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../src/rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MasterCSSRule } from '../rule';
2
+ export default class extends MasterCSSRule {
3
+ static id: string;
4
+ static matches: RegExp;
5
+ static propName: string;
6
+ static unit: string;
7
+ }
@@ -0,0 +1,9 @@
1
+ import { Z_INDEX } from '../constants/css-property-keyword';
2
+ import { MasterCSSRule } from '../rule';
3
+ export default class default_1 extends MasterCSSRule {
4
+ }
5
+ default_1.id = 'ZIndex';
6
+ default_1.matches = /^z:./;
7
+ default_1.propName = Z_INDEX;
8
+ default_1.unit = '';
9
+ //# sourceMappingURL=z-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.js","sourceRoot":"","sources":["../../src/rules/z-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,OAAO,gBAAO,SAAQ,aAAa;;AACtB,YAAE,GAAG,QAAQ,CAAA;AACb,iBAAO,GAAG,MAAM,CAAC;AACjB,kBAAQ,GAAG,OAAO,CAAC;AACnB,cAAI,GAAG,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function concatArrays(originVal: any, newVal: any): any | any[];
@@ -0,0 +1,8 @@
1
+ export function concatArrays(originVal, newVal) {
2
+ if (Array.isArray(originVal) && Array.isArray(newVal)) {
3
+ // concat logic
4
+ return originVal.concat(newVal);
5
+ }
6
+ return newVal; // always return newVal as fallback!!
7
+ }
8
+ //# sourceMappingURL=concat-arrays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concat-arrays.js","sourceRoot":"","sources":["../../src/utils/concat-arrays.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,SAAc,EAAE,MAAW;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACnD,eAAe;QACf,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KAClC;IACD,OAAO,MAAM,CAAA,CAAC,qCAAqC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export function getCssPropertyText(name, property) {
2
+ return (name ? name + ':' : '')
3
+ + (property.unit
4
+ ? property.value + property.unit
5
+ : property.value)
6
+ + (property.important ? '!important' : '');
7
+ }
8
+ //# sourceMappingURL=get-css-property-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-css-property-text.js","sourceRoot":"","sources":["../../src/utils/get-css-property-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAA4D;IACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;UACzB,CAAC,QAAQ,CAAC,IAAI;YACZ,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI;YAChC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;UACnB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns the object type of the given payload
3
+ *
4
+ * @param {*} payload
5
+ * @returns {string}
6
+ */
7
+ export declare function getType(payload: any): string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Returns the object type of the given payload
3
+ *
4
+ * @param {*} payload
5
+ * @returns {string}
6
+ */
7
+ export function getType(payload) {
8
+ return Object.prototype.toString.call(payload).slice(8, -1);
9
+ }
10
+ //# sourceMappingURL=get-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-type.js","sourceRoot":"","sources":["../../src/utils/get-type.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,OAAY;IAChC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function hexToRgb(hex: any): number[];