@momo-webplatform/mobase 0.0.21 → 0.0.23

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 (64) hide show
  1. package/package.json +2 -4
  2. package/publish/cjs/mobase-tw-plugin/font-sizes.js +98 -0
  3. package/publish/cjs/mobase-tw-plugin/layout.js +37 -0
  4. package/publish/cjs/mobase-tw-plugin/plugin.js +61 -17
  5. package/publish/cjs/mobase-tw-plugin/radius.js +16 -0
  6. package/publish/cjs/mobase-tw-plugin/types.js +54 -0
  7. package/publish/cjs/mobase-tw-plugin/utils/object.js +36 -17
  8. package/publish/cjs/mobase-tw-plugin/utils/theme.js +70 -0
  9. package/publish/cjs/tsconfig.lib.tsbuildinfo +1 -1
  10. package/publish/esm/mobase-tw-plugin/{foundation/font-sizes/index.d.ts → font-sizes.d.ts} +1 -1
  11. package/publish/esm/mobase-tw-plugin/font-sizes.js +94 -0
  12. package/publish/esm/mobase-tw-plugin/layout.d.ts +34 -0
  13. package/publish/esm/mobase-tw-plugin/layout.js +34 -0
  14. package/publish/esm/mobase-tw-plugin/plugin.js +58 -14
  15. package/publish/esm/mobase-tw-plugin/radius.d.ts +9 -0
  16. package/publish/esm/mobase-tw-plugin/radius.js +12 -0
  17. package/publish/esm/mobase-tw-plugin/types.d.ts +103 -0
  18. package/publish/esm/mobase-tw-plugin/types.js +51 -0
  19. package/publish/esm/mobase-tw-plugin/utils/object.d.ts +3 -18
  20. package/publish/esm/mobase-tw-plugin/utils/object.js +30 -15
  21. package/publish/esm/mobase-tw-plugin/utils/theme.d.ts +2 -0
  22. package/publish/esm/mobase-tw-plugin/utils/theme.js +65 -0
  23. package/publish/esm/tsconfig.lib.tsbuildinfo +1 -1
  24. package/publish/cjs/mobase-tw-plugin/foundation/font-sizes/index.js +0 -94
  25. package/publish/cjs/mobase-tw-plugin/foundation/index.js +0 -20
  26. package/publish/cjs/mobase-tw-plugin/foundation/shadows/index.js +0 -12
  27. package/publish/esm/mobase-tw-plugin/foundation/font-sizes/index.js +0 -91
  28. package/publish/esm/mobase-tw-plugin/foundation/index.d.ts +0 -4
  29. package/publish/esm/mobase-tw-plugin/foundation/index.js +0 -4
  30. package/publish/esm/mobase-tw-plugin/foundation/shadows/index.d.ts +0 -10
  31. package/publish/esm/mobase-tw-plugin/foundation/shadows/index.js +0 -9
  32. /package/publish/cjs/mobase-tw-plugin/{foundation/animations → animations}/index.js +0 -0
  33. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/blue.js +0 -0
  34. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/common.js +0 -0
  35. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/gray.js +0 -0
  36. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/green.js +0 -0
  37. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/index.js +0 -0
  38. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/orange.js +0 -0
  39. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/pink.js +0 -0
  40. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/purple.js +0 -0
  41. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/red.js +0 -0
  42. /package/publish/cjs/mobase-tw-plugin/{foundation/colors → colors}/yellow.js +0 -0
  43. /package/publish/esm/mobase-tw-plugin/{foundation/animations → animations}/index.d.ts +0 -0
  44. /package/publish/esm/mobase-tw-plugin/{foundation/animations → animations}/index.js +0 -0
  45. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/blue.d.ts +0 -0
  46. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/blue.js +0 -0
  47. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/common.d.ts +0 -0
  48. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/common.js +0 -0
  49. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/gray.d.ts +0 -0
  50. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/gray.js +0 -0
  51. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/green.d.ts +0 -0
  52. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/green.js +0 -0
  53. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/index.d.ts +0 -0
  54. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/index.js +0 -0
  55. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/orange.d.ts +0 -0
  56. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/orange.js +0 -0
  57. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/pink.d.ts +0 -0
  58. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/pink.js +0 -0
  59. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/purple.d.ts +0 -0
  60. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/purple.js +0 -0
  61. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/red.d.ts +0 -0
  62. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/red.js +0 -0
  63. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/yellow.d.ts +0 -0
  64. /package/publish/esm/mobase-tw-plugin/{foundation/colors → colors}/yellow.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-webplatform/mobase",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Mobase is the UI framework upon we build product experiences at MoMo.vn, base on Radix primitives, and Tailwind CSS.",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -28,7 +28,6 @@
28
28
  "homepage": "https://momo.vn/",
29
29
  "dependencies": {
30
30
  "@heroicons/react": "^2.1.1",
31
- "@momo-webplatform/mobase": "^0.0.7",
32
31
  "@radix-ui/primitive": "^1.0.1",
33
32
  "@radix-ui/react-accordion": "^1.1.2",
34
33
  "@radix-ui/react-alert-dialog": "^1.0.5",
@@ -66,13 +65,12 @@
66
65
  "class-variance-authority": "^0.7.0",
67
66
  "clsx": "^2.1.0",
68
67
  "cmdk": "^0.2.0",
68
+ "color": "^4.2.3",
69
69
  "date-fns": "^3.2.0",
70
70
  "deepmerge": "^4.3.1",
71
71
  "dlv": "^1.1.3",
72
72
  "flat": "^3.0.1",
73
- "flowbite-react": "^0.7.2",
74
73
  "framer-motion": "^11.0.3",
75
- "fs": "0.0.1-security",
76
74
  "lodash": "^4.17.21",
77
75
  "lodash.foreach": "^4.5.0",
78
76
  "lodash.omit": "^4.5.0",
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fontSizes = void 0;
4
+ function fontSizes(prefix) {
5
+ const fontSizes = {
6
+ xxs: [
7
+ `var(--${prefix}-font-size-xxs)`,
8
+ {
9
+ lineHeight: "1rem",
10
+ },
11
+ ],
12
+ xs: [
13
+ `var(--${prefix}-font-size-xs)`,
14
+ {
15
+ lineHeight: "1rem",
16
+ },
17
+ ],
18
+ sm: [
19
+ `var(--${prefix}-font-size-sm)`,
20
+ {
21
+ lineHeight: "1.25rem",
22
+ },
23
+ ],
24
+ base: [
25
+ `var(--${prefix}-font-size-base)`,
26
+ {
27
+ lineHeight: "1.5rem",
28
+ },
29
+ ],
30
+ lg: [
31
+ `var(--${prefix}-font-size-lg)`,
32
+ {
33
+ lineHeight: "1.75rem",
34
+ },
35
+ ],
36
+ xl: [
37
+ `var(--${prefix}-font-size-xl)`,
38
+ {
39
+ lineHeight: "1.75rem",
40
+ },
41
+ ],
42
+ "2xl": [
43
+ `var(--${prefix}-font-size-2xl)`,
44
+ {
45
+ lineHeight: "2rem",
46
+ },
47
+ ],
48
+ "3xl": [
49
+ `var(--${prefix}-font-size-3xl)`,
50
+ {
51
+ lineHeight: "2.25rem",
52
+ },
53
+ ],
54
+ "4xl": [
55
+ `var(--${prefix}-font-size-4xl)`,
56
+ {
57
+ lineHeight: "2.5rem",
58
+ },
59
+ ],
60
+ "5xl": [
61
+ `var(--${prefix}-font-size-5xl)`,
62
+ {
63
+ lineHeight: "3.5rem",
64
+ letterSpacing: "-0.075rem",
65
+ },
66
+ ],
67
+ "6xl": [
68
+ `var(--${prefix}-font-size-6xl)`,
69
+ {
70
+ lineHeight: "4.5rem",
71
+ letterSpacing: "-0.09375rem",
72
+ },
73
+ ],
74
+ "7xl": [
75
+ `var(--${prefix}-font-size-7xl)`,
76
+ {
77
+ lineHeight: "5rem",
78
+ letterSpacing: "-0.1125rem",
79
+ },
80
+ ],
81
+ "8xl": [
82
+ `var(--${prefix}-font-size-8xl)`,
83
+ {
84
+ lineHeight: "6.5rem",
85
+ letterSpacing: "-0.15rem",
86
+ },
87
+ ],
88
+ "9xl": [
89
+ `var(--${prefix}-font-size-9xl)`,
90
+ {
91
+ lineHeight: "8rem",
92
+ letterSpacing: "-0.2rem",
93
+ },
94
+ ],
95
+ };
96
+ return fontSizes;
97
+ }
98
+ exports.fontSizes = fontSizes;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.layout = void 0;
4
+ exports.layout = {
5
+ "spacing-unit": 4,
6
+ "disabled-opacity": 0.5, // Numeric values don't need quotes
7
+ "font-size": {
8
+ xxs: "0.625rem",
9
+ xs: "0.75rem",
10
+ sm: "0.875rem",
11
+ base: "1rem",
12
+ lg: "1.125rem",
13
+ xl: "1.25rem",
14
+ "2xl": "1.5rem",
15
+ "3xl": "1.875rem",
16
+ "4xl": "2.25rem",
17
+ "5xl": "3rem",
18
+ "6xl": "3.75rem",
19
+ "7xl": "4.5rem",
20
+ "8xl": "6rem",
21
+ "9xl": "8rem",
22
+ },
23
+ radius: {
24
+ sm: "0.125rem",
25
+ base: "0.25rem",
26
+ md: "0.375rem",
27
+ lg: "0.5rem",
28
+ xl: "0.75rem",
29
+ "2xl": "1rem",
30
+ "3xl": "1.5rem",
31
+ },
32
+ "box-shadow": {
33
+ small: "0px 0px 5px 0px rgb(0 0 0 / 0.02), 0px 2px 10px 0px rgb(0 0 0 / 0.06), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",
34
+ medium: "0px 0px 15px 0px rgb(0 0 0 / 0.03), 0px 2px 30px 0px rgb(0 0 0 / 0.08), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",
35
+ large: "0px 0px 30px 0px rgb(0 0 0 / 0.04), 0px 30px 60px 0px rgb(0 0 0 / 0.12), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",
36
+ },
37
+ };
@@ -16,27 +16,32 @@ exports.mobaseTW = void 0;
16
16
  const color_1 = __importDefault(require("color"));
17
17
  const plugin_js_1 = __importDefault(require("tailwindcss/plugin.js"));
18
18
  const utilities_1 = require("./utilities");
19
- const utils_1 = require("./utils");
20
- const foundation_1 = require("./foundation");
21
- const lodash_foreach_1 = __importDefault(require("lodash.foreach"));
22
- const parsedColorsCache = {};
23
- const resolveConfig = () => {
19
+ const object_1 = require("./utils/object");
20
+ const theme_1 = require("./utils/theme");
21
+ const colors_1 = require("./colors");
22
+ const layout_1 = require("./layout");
23
+ const animations_1 = require("./animations");
24
+ const font_sizes_1 = require("./font-sizes");
25
+ const radius_1 = require("./radius");
26
+ // import { animations } from "./animations";
27
+ // import { fontSizes } from "./font-sizes";
28
+ // import { radius } from "./radius";
29
+ const resolveConfig = (prefix) => {
24
30
  const resolved = {
25
31
  utilities: {},
26
32
  colors: {},
27
33
  };
28
- const flatColors = (0, utils_1.flattenThemeObject)(foundation_1.colors);
34
+ const flatColors = (0, object_1.flattenThemeObject)(colors_1.colors);
35
+ const flatLayout = layout_1.layout;
29
36
  const cssSelector = ":root";
30
37
  resolved.utilities[cssSelector] = {};
31
- (0, lodash_foreach_1.default)(flatColors, (colorValue, colorName) => {
38
+ // Color
39
+ Object.entries(flatColors).forEach(([colorName, colorValue]) => {
32
40
  if (!colorValue)
33
41
  return;
34
42
  try {
35
- const parsedColor = parsedColorsCache[colorValue] ||
36
- (0, color_1.default)(colorValue).rgb().round().array();
37
- parsedColorsCache[colorValue] = parsedColor;
38
- const [r, g, b] = parsedColor;
39
- const colorVar = `--${colorName}`;
43
+ const [r, g, b] = (0, color_1.default)(colorValue).rgb().array();
44
+ const colorVar = `--${prefix}-${colorName}`;
40
45
  // Set the css variable in "@layer utilities"
41
46
  resolved.utilities[cssSelector][colorVar] = `${r} ${g} ${b}`;
42
47
  resolved.colors[colorName] = `rgb(var(${colorVar}) / <alpha-value>)`;
@@ -46,10 +51,37 @@ const resolveConfig = () => {
46
51
  console.log("error", error?.message);
47
52
  }
48
53
  });
54
+ // Layout
55
+ Object.entries(flatLayout).forEach(([key, value]) => {
56
+ if (!value)
57
+ return;
58
+ const layoutVariablePrefix = `--${prefix}-${key}`;
59
+ if (typeof value === "object") {
60
+ Object.entries(value).forEach(([nestedKey, nestedValue]) => {
61
+ const nestedLayoutVariable = `${layoutVariablePrefix}-${nestedKey}`;
62
+ resolved.utilities[cssSelector][nestedLayoutVariable] = nestedValue;
63
+ });
64
+ }
65
+ else if (key === "spacing-unit") {
66
+ resolved.utilities[cssSelector][layoutVariablePrefix] = value;
67
+ const spacingScale = (0, theme_1.generateSpacingScale)(Number(value));
68
+ Object.entries(spacingScale).forEach(([scaleKey, scaleValue]) => {
69
+ const spacingVariable = `${layoutVariablePrefix}-${scaleKey}`;
70
+ resolved.utilities[cssSelector][spacingVariable] = scaleValue;
71
+ });
72
+ }
73
+ else {
74
+ const formattedValue = layoutVariablePrefix.includes("opacity") && typeof value === "number"
75
+ ? value.toString().replace(/^0\./, ".")
76
+ : value;
77
+ resolved.utilities[cssSelector][layoutVariablePrefix] = formattedValue;
78
+ }
79
+ });
49
80
  return resolved;
50
81
  };
51
82
  const mobaseTW = () => {
52
- const resolved = resolveConfig();
83
+ const prefix = "mobase";
84
+ const resolved = resolveConfig(prefix);
53
85
  return (0, plugin_js_1.default)(({ addBase, addUtilities }) => {
54
86
  addBase({
55
87
  ":root": {
@@ -67,16 +99,28 @@ const mobaseTW = () => {
67
99
  theme: {
68
100
  extend: {
69
101
  colors: {
70
- ...foundation_1.colors,
102
+ ...colors_1.colors,
71
103
  ...resolved?.colors,
72
104
  },
73
105
  boxShadow: {
74
- ...foundation_1.boxShadows,
106
+ small: `var(--${prefix}-box-shadow-small)`,
107
+ medium: `var(--${prefix}-box-shadow-medium)`,
108
+ large: `var(--${prefix}-box-shadow-large)`,
109
+ },
110
+ // fontSize: {
111
+ // ...fontSizes,
112
+ // },
113
+ borderRadius: {
114
+ ...(0, radius_1.radius)(prefix),
75
115
  },
76
116
  fontSize: {
77
- ...foundation_1.fontSizes,
117
+ ...(0, font_sizes_1.fontSizes)(prefix),
118
+ },
119
+ spacing: {
120
+ unit: `var(--${prefix}-spacing-unit)`,
121
+ ...(0, theme_1.createSpacingUnits)(prefix),
78
122
  },
79
- ...foundation_1.animations,
123
+ ...animations_1.animations,
80
124
  },
81
125
  },
82
126
  });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.radius = void 0;
4
+ function radius(prefix) {
5
+ const radius = {
6
+ sm: `var(--${prefix}-radius-sm)`,
7
+ DEFAULT: `var(--${prefix}-radius-base)`,
8
+ md: `var(--${prefix}-radius-md)`,
9
+ lg: `var(--${prefix}-radius-lg)`,
10
+ xl: `var(--${prefix}-radius-xl)`,
11
+ "2xl": `var(--${prefix}-radius-2xl)`,
12
+ "3xl": `var(--${prefix}-radius-3xl)`,
13
+ };
14
+ return radius;
15
+ }
16
+ exports.radius = radius;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mappedSpacingScaleKeys = exports.spacingScaleKeys = void 0;
4
+ exports.spacingScaleKeys = [
5
+ "0",
6
+ "xs",
7
+ "sm",
8
+ "md",
9
+ "lg",
10
+ "xl",
11
+ "2xl",
12
+ "3xl",
13
+ "4xl",
14
+ "5xl",
15
+ "6xl",
16
+ "7xl",
17
+ "8xl",
18
+ "9xl",
19
+ "1",
20
+ "2",
21
+ "3",
22
+ "3.5",
23
+ "4",
24
+ "5",
25
+ "6",
26
+ "7",
27
+ "8",
28
+ "9",
29
+ "10",
30
+ "11",
31
+ "12",
32
+ "13",
33
+ "14",
34
+ "15",
35
+ "16",
36
+ "17",
37
+ "18",
38
+ "20",
39
+ "24",
40
+ "28",
41
+ "32",
42
+ "36",
43
+ "40",
44
+ "44",
45
+ "48",
46
+ "52",
47
+ "56",
48
+ "60",
49
+ "64",
50
+ "72",
51
+ "80",
52
+ "96",
53
+ ];
54
+ exports.mappedSpacingScaleKeys = exports.spacingScaleKeys.map((key) => `unit-${key}`);
@@ -1,23 +1,44 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flattenThemeObject = exports.isBaseTheme = void 0;
4
- const flat_1 = require("flat");
5
- /**
6
- * Determines if the theme is a base theme
7
- *
8
- * @param theme string
9
- * @returns "light" | "dark
10
- */
11
- const isBaseTheme = (theme) => theme === "light" || theme === "dark";
12
- exports.isBaseTheme = isBaseTheme;
13
- const removeDefaultKeys = (obj) => {
6
+ exports.flattenThemeObject = exports.removeDefaultKeys = exports.swapColorValues = void 0;
7
+ const flat_1 = __importDefault(require("flat"));
8
+ function swapColorValues(colors) {
9
+ const swappedColors = {};
10
+ const keys = Object.keys(colors);
11
+ const length = keys.length;
12
+ for (let i = 0; i < length / 2; i++) {
13
+ const key1 = keys[i];
14
+ const key2 = keys[length - 1 - i];
15
+ // @ts-ignore
16
+ swappedColors[key1] = colors[key2];
17
+ // @ts-ignore
18
+ swappedColors[key2] = colors[key1];
19
+ }
20
+ if (length % 2 !== 0) {
21
+ const middleKey = keys[Math.floor(length / 2)];
22
+ // @ts-ignore
23
+ swappedColors[middleKey] = colors[middleKey];
24
+ }
25
+ return swappedColors;
26
+ }
27
+ exports.swapColorValues = swapColorValues;
28
+ function removeDefaultKeys(obj) {
14
29
  const newObj = {};
15
30
  for (const key in obj) {
16
- const newKey = key.endsWith("-DEFAULT") ? key.replace("-DEFAULT", "") : key;
17
- newObj[newKey] = obj[key];
31
+ if (key.endsWith("-DEFAULT")) {
32
+ // @ts-ignore
33
+ newObj[key.replace("-DEFAULT", "")] = obj[key];
34
+ continue;
35
+ }
36
+ // @ts-ignore
37
+ newObj[key] = obj[key];
18
38
  }
19
39
  return newObj;
20
- };
40
+ }
41
+ exports.removeDefaultKeys = removeDefaultKeys;
21
42
  /**
22
43
  *
23
44
  * Flatten theme object and remove default keys
@@ -25,9 +46,7 @@ const removeDefaultKeys = (obj) => {
25
46
  * @param obj theme object
26
47
  * @returns object with flattened keys
27
48
  */
28
- const flattenThemeObject = (obj) => removeDefaultKeys(
29
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
30
- (0, flat_1.flatten)(obj, {
49
+ const flattenThemeObject = (obj) => removeDefaultKeys((0, flat_1.default)(obj, {
31
50
  safe: true,
32
51
  delimiter: "-",
33
52
  }));
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSpacingUnits = exports.generateSpacingScale = void 0;
4
+ const types_1 = require("../types");
5
+ /**
6
+ * Determines if the theme is a base theme
7
+ *
8
+ * @param theme string
9
+ * @returns "light" | "dark
10
+ */
11
+ const ROOT_FONT_SIZE = 16;
12
+ const baseScale = [
13
+ 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18,
14
+ ];
15
+ const extendedScale = [
16
+ 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 96,
17
+ ];
18
+ const generateSpacingScale = (spacingUnit) => {
19
+ const scaleLabels = {
20
+ xs: 2,
21
+ sm: 3,
22
+ md: 4,
23
+ lg: 5.5,
24
+ xl: 9,
25
+ "2xl": 12,
26
+ "3xl": 20,
27
+ "4xl": 30,
28
+ "5xl": 56,
29
+ "6xl": 72,
30
+ "7xl": 96,
31
+ "8xl": 128,
32
+ "9xl": 160,
33
+ };
34
+ const scale = { 0: "0px" };
35
+ Object.entries(scaleLabels).forEach(([label, multiplier]) => {
36
+ scale[label] = multiplier
37
+ ? `${(spacingUnit * multiplier) / ROOT_FONT_SIZE}rem`
38
+ : `${spacingUnit / ROOT_FONT_SIZE}rem`;
39
+ });
40
+ baseScale.forEach((i) => {
41
+ let key = `${i}`;
42
+ // if the key has decimal e.g 3.5 change it to "3-5" format
43
+ if (key.includes(".")) {
44
+ const [first, second] = key.split(".");
45
+ key = `${first}_${second}`;
46
+ }
47
+ scale[key] = `${(spacingUnit * i) / ROOT_FONT_SIZE}rem`;
48
+ });
49
+ extendedScale.forEach((i) => {
50
+ const key = `${i}`;
51
+ scale[key] = `${(spacingUnit * i) / ROOT_FONT_SIZE}rem`;
52
+ });
53
+ return scale;
54
+ };
55
+ exports.generateSpacingScale = generateSpacingScale;
56
+ function createSpacingUnits(prefix) {
57
+ const result = types_1.spacingScaleKeys.reduce((acc, key) => {
58
+ let value = `var(--${prefix}-spacing-unit-${key})`;
59
+ if (key.includes(".")) {
60
+ const [first, second] = key.split(".");
61
+ value = `var(--${prefix}-spacing-unit-${first}_${second})`;
62
+ }
63
+ return {
64
+ ...acc,
65
+ [`${key}`]: value,
66
+ };
67
+ }, {});
68
+ return result;
69
+ }
70
+ exports.createSpacingUnits = createSpacingUnits;