@tujyane/alf 1.2.1 → 2.0.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 (81) hide show
  1. package/dist/atoms/common.d.ts +3 -33
  2. package/dist/atoms/common.d.ts.map +1 -1
  3. package/dist/atoms/common.js +3 -36
  4. package/dist/atoms/common.js.map +1 -1
  5. package/dist/atoms/index.d.ts +999 -1
  6. package/dist/atoms/index.d.ts.map +1 -1
  7. package/dist/atoms/index.js +103 -4
  8. package/dist/atoms/index.js.map +1 -1
  9. package/dist/index.d.ts +10 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +20 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/palette.d.ts +76 -33
  14. package/dist/palette.d.ts.map +1 -1
  15. package/dist/palette.js +119 -75
  16. package/dist/palette.js.map +1 -1
  17. package/dist/platform/index.d.ts +9 -40
  18. package/dist/platform/index.d.ts.map +1 -1
  19. package/dist/platform/index.js +6 -44
  20. package/dist/platform/index.js.map +1 -1
  21. package/dist/themes.d.ts +109 -0
  22. package/dist/themes.d.ts.map +1 -0
  23. package/dist/themes.js +123 -0
  24. package/dist/themes.js.map +1 -0
  25. package/dist/tokens.d.ts +1 -0
  26. package/dist/tokens.d.ts.map +1 -1
  27. package/dist/tokens.js +1 -0
  28. package/dist/tokens.js.map +1 -1
  29. package/dist/utils/index.d.ts +3 -1
  30. package/dist/utils/index.d.ts.map +1 -1
  31. package/dist/utils/index.js +4 -1
  32. package/dist/utils/index.js.map +1 -1
  33. package/dist/utils/leading.d.ts +1 -2
  34. package/dist/utils/leading.d.ts.map +1 -1
  35. package/dist/utils/leading.js +5 -14
  36. package/dist/utils/leading.js.map +1 -1
  37. package/dist/utils/select.d.ts +7 -0
  38. package/dist/utils/select.d.ts.map +1 -0
  39. package/dist/utils/select.js +14 -0
  40. package/dist/utils/select.js.map +1 -0
  41. package/package.json +1 -1
  42. package/src/atoms/common.ts +3 -38
  43. package/src/atoms/index.ts +82 -1
  44. package/src/index.tsx +31 -1
  45. package/src/palette.ts +140 -111
  46. package/src/platform/index.ts +6 -46
  47. package/src/themes.ts +231 -0
  48. package/src/tokens.ts +1 -0
  49. package/src/utils/index.ts +5 -1
  50. package/src/utils/leading.ts +5 -13
  51. package/src/utils/select.ts +17 -0
  52. package/dist/atoms/index.native.d.ts +0 -1020
  53. package/dist/atoms/index.native.d.ts.map +0 -1
  54. package/dist/atoms/index.native.js +0 -119
  55. package/dist/atoms/index.native.js.map +0 -1
  56. package/dist/platform/index.native.d.ts +0 -16
  57. package/dist/platform/index.native.d.ts.map +0 -1
  58. package/dist/platform/index.native.js +0 -20
  59. package/dist/platform/index.native.js.map +0 -1
  60. package/dist/semantic.d.ts +0 -21
  61. package/dist/semantic.d.ts.map +0 -1
  62. package/dist/semantic.js +0 -73
  63. package/dist/semantic.js.map +0 -1
  64. package/dist/utils/flatten/index.d.ts +0 -3
  65. package/dist/utils/flatten/index.d.ts.map +0 -1
  66. package/dist/utils/flatten/index.js +0 -9
  67. package/dist/utils/flatten/index.js.map +0 -1
  68. package/dist/utils/flatten/index.native.d.ts +0 -3
  69. package/dist/utils/flatten/index.native.d.ts.map +0 -1
  70. package/dist/utils/flatten/index.native.js +0 -6
  71. package/dist/utils/flatten/index.native.js.map +0 -1
  72. package/dist/utils/flatten/index.web.d.ts +0 -3
  73. package/dist/utils/flatten/index.web.d.ts.map +0 -1
  74. package/dist/utils/flatten/index.web.js +0 -6
  75. package/dist/utils/flatten/index.web.js.map +0 -1
  76. package/src/atoms/index.native.ts +0 -84
  77. package/src/platform/index.native.ts +0 -16
  78. package/src/semantic.ts +0 -91
  79. package/src/utils/flatten/index.native.ts +0 -3
  80. package/src/utils/flatten/index.ts +0 -8
  81. package/src/utils/flatten/index.web.ts +0 -3
@@ -1,55 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.platform = exports.native = exports.android = exports.ios = exports.web = exports.isFabric = exports.isWeb = exports.isNative = exports.isAndroid = exports.isIOS = void 0;
4
- exports.isIOS = false;
5
- exports.isAndroid = false;
6
- exports.isNative = false;
7
- exports.isWeb = true;
3
+ exports.platform = exports.native = exports.android = exports.ios = exports.isFabric = exports.isNative = exports.isAndroid = exports.isIOS = void 0;
4
+ const react_native_1 = require("react-native");
5
+ exports.isIOS = react_native_1.Platform.OS === "ios";
6
+ exports.isAndroid = react_native_1.Platform.OS === "android";
7
+ exports.isNative = true;
8
8
  // @ts-ignore
9
9
  exports.isFabric = Boolean(global?.nativeFabricUIManager);
10
- /**
11
- * Identity function on web. Returns nothing on other platforms.
12
- *
13
- * Note: Platform splitting does not tree-shake away the other platforms,
14
- * so don't do stuff like e.g. rely on platform-specific imports. Use
15
- * platform-split files instead.
16
- */
17
- const web = (value) => (exports.isWeb ? value : undefined);
18
- exports.web = web;
19
- /**
20
- * Identity function on iOS. Returns nothing on other platforms.
21
- *
22
- * Note: Platform splitting does not tree-shake away the other platforms,
23
- * so don't do stuff like e.g. rely on platform-specific imports. Use
24
- * platform-split files instead.
25
- */
26
10
  const ios = (value) => (exports.isIOS ? value : undefined);
27
11
  exports.ios = ios;
28
- /**
29
- * Identity function on Android. Returns nothing on other platforms..
30
- *
31
- * Note: Platform splitting does not tree-shake away the other platforms,
32
- * so don't do stuff like e.g. rely on platform-specific imports. Use
33
- * platform-split files instead.
34
- */
35
12
  const android = (value) => (exports.isAndroid ? value : undefined);
36
13
  exports.android = android;
37
- /**
38
- * Identity function on iOS and Android. Returns nothing on web.
39
- *
40
- * Note: Platform splitting does not tree-shake away the other platforms,
41
- * so don't do stuff like e.g. rely on platform-specific imports. Use
42
- * platform-split files instead.
43
- */
44
14
  const native = (value) => (exports.isNative ? value : undefined);
45
15
  exports.native = native;
46
- /**
47
- * Note: Platform splitting does not tree-shake away the other platforms,
48
- * so don't do stuff like e.g. rely on platform-specific imports. Use
49
- * platform-split files instead.
50
- */
51
- exports.platform = ((specifics) => {
52
- // @ts-ignore
53
- return specifics.web || specifics.default;
54
- });
16
+ exports.platform = react_native_1.Platform.select;
55
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":";;;AAEa,QAAA,KAAK,GAAG,KAAK,CAAC;AACd,QAAA,SAAS,GAAG,KAAK,CAAC;AAClB,QAAA,QAAQ,GAAG,KAAK,CAAC;AACjB,QAAA,KAAK,GAAG,IAAI,CAAC;AAC1B,aAAa;AACA,QAAA,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE/D;;;;;;GAMG;AACI,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,aAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAAlD,QAAA,GAAG,OAA+C;AAE/D;;;;;;GAMG;AACI,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,aAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAAlD,QAAA,GAAG,OAA+C;AAE/D;;;;;;GAMG;AACI,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,iBAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAA1D,QAAA,OAAO,WAAmD;AAEvE;;;;;;GAMG;AACI,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,gBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAAxD,QAAA,MAAM,UAAkD;AAErE;;;;GAIG;AACU,QAAA,QAAQ,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;IACrC,aAAa;IACb,OAAO,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC;AAC5C,CAAC,CAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":";;;AAAA,+CAAwC;AAE3B,QAAA,KAAK,GAAG,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC;AAC9B,QAAA,SAAS,GAAG,uBAAQ,CAAC,EAAE,KAAK,SAAS,CAAC;AACtC,QAAA,QAAQ,GAAG,IAAI,CAAC;AAE7B,aAAa;AACA,QAAA,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAExD,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,aAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAAlD,QAAA,GAAG,OAA+C;AACxD,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,iBAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAA1D,QAAA,OAAO,WAAmD;AAChE,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,gBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAAxD,QAAA,MAAM,UAAkD;AAExD,QAAA,QAAQ,GAAG,uBAAQ,CAAC,MAAM,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { Palette } from "./palette";
2
+ import { type ShadowStyle } from "./atoms/types";
3
+ export declare const themes: {
4
+ light: Theme;
5
+ dark: Theme;
6
+ };
7
+ export type ThemeAtoms = {
8
+ text: {
9
+ color: string;
10
+ };
11
+ text_contrast_low: {
12
+ color: string;
13
+ };
14
+ text_contrast_medium: {
15
+ color: string;
16
+ };
17
+ text_contrast_high: {
18
+ color: string;
19
+ };
20
+ text_inverted: {
21
+ color: string;
22
+ };
23
+ bg: {
24
+ backgroundColor: string;
25
+ };
26
+ bg_contrast_25: {
27
+ backgroundColor: string;
28
+ };
29
+ bg_contrast_50: {
30
+ backgroundColor: string;
31
+ };
32
+ bg_contrast_100: {
33
+ backgroundColor: string;
34
+ };
35
+ bg_contrast_200: {
36
+ backgroundColor: string;
37
+ };
38
+ bg_contrast_300: {
39
+ backgroundColor: string;
40
+ };
41
+ bg_contrast_400: {
42
+ backgroundColor: string;
43
+ };
44
+ bg_contrast_500: {
45
+ backgroundColor: string;
46
+ };
47
+ bg_contrast_600: {
48
+ backgroundColor: string;
49
+ };
50
+ bg_contrast_700: {
51
+ backgroundColor: string;
52
+ };
53
+ bg_contrast_800: {
54
+ backgroundColor: string;
55
+ };
56
+ bg_contrast_900: {
57
+ backgroundColor: string;
58
+ };
59
+ bg_contrast_950: {
60
+ backgroundColor: string;
61
+ };
62
+ bg_contrast_975: {
63
+ backgroundColor: string;
64
+ };
65
+ border_contrast_low: {
66
+ borderColor: string;
67
+ };
68
+ border_contrast_medium: {
69
+ borderColor: string;
70
+ };
71
+ border_contrast_high: {
72
+ borderColor: string;
73
+ };
74
+ shadow_sm: ShadowStyle;
75
+ shadow_md: ShadowStyle;
76
+ shadow_lg: ShadowStyle;
77
+ };
78
+ /**
79
+ * Categorical representation of the theme
80
+ */
81
+ export type ThemeScheme = "light" | "dark";
82
+ /**
83
+ * Specific theme name, including low-contrast variants
84
+ */
85
+ export type ThemeName = "light" | "dark";
86
+ /**
87
+ * A theme object, containing the color palette and atoms for the theme
88
+ */
89
+ export type Theme = {
90
+ scheme: ThemeScheme;
91
+ name: ThemeName;
92
+ palette: Palette;
93
+ atoms: ThemeAtoms;
94
+ };
95
+ export declare function createTheme({ scheme, name, palette, options, }: {
96
+ scheme: ThemeScheme;
97
+ name: ThemeName;
98
+ palette: Palette;
99
+ options?: {
100
+ shadowOpacity?: number;
101
+ };
102
+ }): Theme;
103
+ export declare function createThemes({ defaultPalette }: {
104
+ defaultPalette: Palette;
105
+ }): {
106
+ light: Theme;
107
+ dark: Theme;
108
+ };
109
+ //# sourceMappingURL=themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/dist/themes.js ADDED
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.themes = void 0;
4
+ exports.createTheme = createTheme;
5
+ exports.createThemes = createThemes;
6
+ const atoms_1 = require("./atoms");
7
+ const alpha_1 = require("./utils/alpha");
8
+ const palette_1 = require("./palette");
9
+ exports.themes = createThemes({
10
+ defaultPalette: palette_1.DEFAULT_PALETTE,
11
+ });
12
+ function createTheme({ scheme, name, palette, options = {}, }) {
13
+ const shadowOpacity = options.shadowOpacity ?? 0.1;
14
+ const shadowColor = (0, alpha_1.alpha)(palette.black, shadowOpacity);
15
+ return {
16
+ scheme,
17
+ name,
18
+ palette,
19
+ atoms: {
20
+ text: {
21
+ color: palette.contrast_1000,
22
+ },
23
+ text_contrast_low: {
24
+ color: palette.contrast_400,
25
+ },
26
+ text_contrast_medium: {
27
+ color: palette.contrast_700,
28
+ },
29
+ text_contrast_high: {
30
+ color: palette.contrast_900,
31
+ },
32
+ text_inverted: {
33
+ color: palette.contrast_0,
34
+ },
35
+ bg: {
36
+ backgroundColor: palette.contrast_0,
37
+ },
38
+ bg_contrast_25: {
39
+ backgroundColor: palette.contrast_25,
40
+ },
41
+ bg_contrast_50: {
42
+ backgroundColor: palette.contrast_50,
43
+ },
44
+ bg_contrast_100: {
45
+ backgroundColor: palette.contrast_100,
46
+ },
47
+ bg_contrast_200: {
48
+ backgroundColor: palette.contrast_200,
49
+ },
50
+ bg_contrast_300: {
51
+ backgroundColor: palette.contrast_300,
52
+ },
53
+ bg_contrast_400: {
54
+ backgroundColor: palette.contrast_400,
55
+ },
56
+ bg_contrast_500: {
57
+ backgroundColor: palette.contrast_500,
58
+ },
59
+ bg_contrast_600: {
60
+ backgroundColor: palette.contrast_600,
61
+ },
62
+ bg_contrast_700: {
63
+ backgroundColor: palette.contrast_700,
64
+ },
65
+ bg_contrast_800: {
66
+ backgroundColor: palette.contrast_800,
67
+ },
68
+ bg_contrast_900: {
69
+ backgroundColor: palette.contrast_900,
70
+ },
71
+ bg_contrast_950: {
72
+ backgroundColor: palette.contrast_950,
73
+ },
74
+ bg_contrast_975: {
75
+ backgroundColor: palette.contrast_975,
76
+ },
77
+ border_contrast_low: {
78
+ borderColor: palette.contrast_100,
79
+ },
80
+ border_contrast_medium: {
81
+ borderColor: palette.contrast_200,
82
+ },
83
+ border_contrast_high: {
84
+ borderColor: palette.contrast_300,
85
+ },
86
+ shadow_sm: {
87
+ ...atoms_1.atoms.shadow_sm,
88
+ shadowColor: palette.black,
89
+ boxShadow: `0 4px 6px -1px ${shadowColor}, 0 2px 4px -2px ${shadowColor}`,
90
+ },
91
+ shadow_md: {
92
+ ...atoms_1.atoms.shadow_md,
93
+ shadowColor: palette.black,
94
+ boxShadow: `0 10px 15px -3px ${shadowColor}, 0 4px 6px -4px ${shadowColor}`,
95
+ },
96
+ shadow_lg: {
97
+ ...atoms_1.atoms.shadow_lg,
98
+ shadowColor: palette.black,
99
+ boxShadow: `0 20px 25px -5px ${shadowColor}, 0 8px 10px -6px ${shadowColor}`,
100
+ },
101
+ },
102
+ };
103
+ }
104
+ function createThemes({ defaultPalette }) {
105
+ const light = createTheme({
106
+ scheme: "light",
107
+ name: "light",
108
+ palette: defaultPalette,
109
+ });
110
+ const dark = createTheme({
111
+ scheme: "dark",
112
+ name: "dark",
113
+ palette: (0, palette_1.invertPalette)(defaultPalette),
114
+ options: {
115
+ shadowOpacity: 0.4,
116
+ },
117
+ });
118
+ return {
119
+ light,
120
+ dark,
121
+ };
122
+ }
123
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/dist/tokens.d.ts CHANGED
@@ -34,6 +34,7 @@ export declare const borderRadius: {
34
34
  readonly sm: 8;
35
35
  readonly md: 12;
36
36
  readonly lg: 16;
37
+ readonly xl: 20;
37
38
  readonly full: 999;
38
39
  };
39
40
  export declare const fontWeight: {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,eAAO,MAAM,KAAK;;;;;;;;;;;CAWR,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;CAWX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,eAAO,MAAM,KAAK;;;;;;;;;;;CAWR,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;CAWX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGf,CAAC"}
package/dist/tokens.js CHANGED
@@ -37,6 +37,7 @@ exports.borderRadius = {
37
37
  sm: 8,
38
38
  md: 12,
39
39
  lg: 16,
40
+ xl: 20,
40
41
  full: 999,
41
42
  };
42
43
  exports.fontWeight = {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,CAAC;AAEb,QAAA,KAAK,GAAG;IACnB,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACA,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,IAAI,EAAE,GAAG;IACT,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,IAAI;CACF,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;CACJ,CAAC;AAEE,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,GAAG;CACD,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;CACH,CAAC;AAEE,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,eAAe;CACpB,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,CAAC;AAEb,QAAA,KAAK,GAAG;IACnB,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;CACA,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,IAAI,EAAE,GAAG;IACT,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,IAAI;CACF,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;CACJ,CAAC;AAEE,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,GAAG;CACD,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;CACH,CAAC;AAEE,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,eAAe;CACpB,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { StyleSheet } from "react-native";
1
2
  export * from "./alpha";
2
3
  export * from "./leading";
3
- export * from "./flatten";
4
+ export * from "./select";
5
+ export declare const flatten: typeof StyleSheet.flatten;
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAEzB,eAAO,MAAM,OAAO,2BAAqB,CAAC"}
@@ -14,7 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.flatten = void 0;
18
+ const react_native_1 = require("react-native");
17
19
  __exportStar(require("./alpha"), exports);
18
20
  __exportStar(require("./leading"), exports);
19
- __exportStar(require("./flatten"), exports);
21
+ __exportStar(require("./select"), exports);
22
+ exports.flatten = react_native_1.StyleSheet.flatten;
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAE1C,0CAAwB;AACxB,4CAA0B;AAC1B,2CAAyB;AAEZ,QAAA,OAAO,GAAG,yBAAU,CAAC,OAAO,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { type TextStyle } from "react-native";
2
2
  /**
3
3
  * Util to calculate lineHeight from a text size atom and a leading atom (which
4
- * are unitless). On native, this will evaluate to a rounded pixel value. On
5
- * web, it will be a unitless string.
4
+ * are unitless). this will evaluate to a rounded pixel value.
6
5
  *
7
6
  * Example:
8
7
  * `leading({
@@ -1 +1 @@
1
- {"version":3,"file":"leading.d.ts","sourceRoot":"","sources":["../../src/utils/leading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAa3E"}
1
+ {"version":3,"file":"leading.d.ts","sourceRoot":"","sources":["../../src/utils/leading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAO3E"}
@@ -34,12 +34,10 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.leading = leading;
37
- const platform_1 = require("../platform");
38
37
  const tokens = __importStar(require("../tokens"));
39
38
  /**
40
39
  * Util to calculate lineHeight from a text size atom and a leading atom (which
41
- * are unitless). On native, this will evaluate to a rounded pixel value. On
42
- * web, it will be a unitless string.
40
+ * are unitless). this will evaluate to a rounded pixel value.
43
41
  *
44
42
  * Example:
45
43
  * `leading({
@@ -49,16 +47,9 @@ const tokens = __importStar(require("../tokens"));
49
47
  */
50
48
  function leading(textStyle) {
51
49
  const lineHeight = textStyle?.lineHeight || tokens.lineHeight.snug;
52
- if (platform_1.isWeb) {
53
- return {
54
- lineHeight: String(lineHeight),
55
- };
56
- }
57
- else {
58
- const size = textStyle?.fontSize || tokens.fontSize.sm;
59
- return {
60
- lineHeight: Math.round(size * lineHeight),
61
- };
62
- }
50
+ const size = textStyle?.fontSize || tokens.fontSize.sm;
51
+ return {
52
+ lineHeight: Math.round(size * lineHeight),
53
+ };
63
54
  }
64
55
  //# sourceMappingURL=leading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leading.js","sourceRoot":"","sources":["../../src/utils/leading.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,0BAaC;AA3BD,0CAAoC;AACpC,kDAAoC;AAEpC;;;;;;;;;;GAUG;AACH,SAAgB,OAAO,CAAC,SAAoB;IAC1C,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAEnE,IAAI,gBAAK,EAAE,CAAC;QACV,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU,CAAuC;SACrE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,SAAS,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;SAC1C,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"leading.js","sourceRoot":"","sources":["../../src/utils/leading.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,0BAOC;AAnBD,kDAAoC;AAEpC;;;;;;;;;GASG;AACH,SAAgB,OAAO,CAAC,SAAoB;IAC1C,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAEnE,MAAM,IAAI,GAAG,SAAS,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ThemeName } from "../themes";
2
+ export declare function select<T>(name: ThemeName, options: (Record<ThemeName, T> & {
3
+ default?: undefined;
4
+ }) | (Partial<Record<ThemeName, T>> & {
5
+ default: T;
6
+ })): T;
7
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/utils/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,wBAAgB,MAAM,CAAC,CAAC,EACtB,IAAI,EAAE,SAAS,EACf,OAAO,EACH,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,GAChD,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,GACnD,CAAC,CASH"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.select = select;
4
+ function select(name, options) {
5
+ switch (name) {
6
+ case "light":
7
+ return options.light;
8
+ case "dark":
9
+ return options.dark;
10
+ default:
11
+ return options.default;
12
+ }
13
+ }
14
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/utils/select.ts"],"names":[],"mappings":";;AAEA,wBAcC;AAdD,SAAgB,MAAM,CACpB,IAAe,EACf,OAEoD;IAEpD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,KAAU,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAS,CAAC;QAC3B;YACE,OAAO,OAAO,CAAC,OAAY,CAAC;IAChC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tujyane/alf",
3
- "version": "1.2.1",
3
+ "version": "2.0.0",
4
4
  "description": "Tujyane's Application Layout Framework",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -123,6 +123,9 @@ export const atoms = {
123
123
  rounded_lg: {
124
124
  borderRadius: tokens.borderRadius.lg,
125
125
  },
126
+ rounded_xl: {
127
+ borderRadius: tokens.borderRadius.xl,
128
+ },
126
129
  rounded_full: {
127
130
  borderRadius: tokens.borderRadius.full,
128
131
  },
@@ -309,12 +312,6 @@ export const atoms = {
309
312
  leading_relaxed: {
310
313
  lineHeight: tokens.lineHeight.relaxed,
311
314
  },
312
- /**
313
- * @deprecated use `leading_relaxed` instead
314
- */
315
- leading_normal: {
316
- lineHeight: tokens.lineHeight.relaxed,
317
- },
318
315
  tracking_normal: {
319
316
  letterSpacing: tokens.TRACKING,
320
317
  },
@@ -989,34 +986,6 @@ export const atoms = {
989
986
  marginRight: "auto",
990
987
  },
991
988
 
992
- /*
993
- * Pointer events & user select
994
- */
995
- pointer_events_none: {
996
- pointerEvents: "none",
997
- },
998
- pointer_events_auto: {
999
- pointerEvents: "auto",
1000
- },
1001
- pointer_events_box_only: {
1002
- pointerEvents: "box-only",
1003
- },
1004
- pointer_events_box_none: {
1005
- pointerEvents: "box-none",
1006
- },
1007
- user_select_none: {
1008
- userSelect: "none",
1009
- },
1010
- user_select_text: {
1011
- userSelect: "text",
1012
- },
1013
- user_select_all: {
1014
- userSelect: "all",
1015
- },
1016
- outline_inset_1: {
1017
- outlineOffset: -1,
1018
- },
1019
-
1020
989
  /*
1021
990
  * Text decoration
1022
991
  */
@@ -1042,8 +1011,4 @@ export const atoms = {
1042
1011
  block: {
1043
1012
  display: "block",
1044
1013
  } as unknown as Pick<ViewStyle, "display">,
1045
-
1046
- pointer: {
1047
- cursor: "pointer",
1048
- },
1049
1014
  } as const;
@@ -1 +1,82 @@
1
- export * from "./common";
1
+ import { StyleSheet } from "react-native";
2
+
3
+ import * as common from "./common";
4
+ import { ios, isFabric } from "../platform";
5
+
6
+ export const atoms = {
7
+ ...common.atoms,
8
+ fixed: {
9
+ position: "absolute",
10
+ },
11
+ flex_0: {
12
+ flex: 0,
13
+ },
14
+ border: {
15
+ borderWidth: StyleSheet.hairlineWidth,
16
+ },
17
+ border_t: {
18
+ borderTopWidth: StyleSheet.hairlineWidth,
19
+ },
20
+ border_b: {
21
+ borderBottomWidth: StyleSheet.hairlineWidth,
22
+ },
23
+ border_l: {
24
+ borderLeftWidth: StyleSheet.hairlineWidth,
25
+ },
26
+ border_r: {
27
+ borderRightWidth: StyleSheet.hairlineWidth,
28
+ },
29
+ border_x: {
30
+ borderLeftWidth: StyleSheet.hairlineWidth,
31
+ borderRightWidth: StyleSheet.hairlineWidth,
32
+ },
33
+ border_y: {
34
+ borderTopWidth: StyleSheet.hairlineWidth,
35
+ borderBottomWidth: StyleSheet.hairlineWidth,
36
+ },
37
+ border_transparent: {
38
+ borderColor: "transparent",
39
+ },
40
+ curve_circular: ios({
41
+ borderCurve: "circular",
42
+ }),
43
+ curve_continuous: ios({
44
+ borderCurve: "continuous",
45
+ }),
46
+ shadow_sm: isFabric
47
+ ? {}
48
+ : {
49
+ shadowRadius: 4,
50
+ shadowOpacity: 0.1,
51
+ elevation: 8,
52
+ shadowOffset: {
53
+ width: 0,
54
+ height: 4,
55
+ },
56
+ },
57
+ shadow_md: isFabric
58
+ ? {}
59
+ : {
60
+ shadowRadius: 8,
61
+ shadowOpacity: 0.1,
62
+ elevation: 16,
63
+ shadowOffset: {
64
+ width: 0,
65
+ height: 8,
66
+ },
67
+ },
68
+ shadow_lg: isFabric
69
+ ? {}
70
+ : {
71
+ shadowRadius: 16,
72
+ shadowOpacity: 0.1,
73
+ elevation: 32,
74
+ shadowOffset: {
75
+ width: 0,
76
+ height: 16,
77
+ },
78
+ },
79
+ inline: {},
80
+ block: {},
81
+ pointer: {},
82
+ } as const;
package/src/index.tsx CHANGED
@@ -1,8 +1,11 @@
1
1
  import { type StyleProp, type TextStyle, type ViewStyle } from "react-native";
2
+ import { createContext, useContext, useMemo } from "react";
3
+
4
+ import { themes, type Theme } from "./themes";
2
5
 
3
6
  export * from "./atoms";
4
7
  export * from "./palette";
5
- export * from "./semantic";
8
+ export * from "./themes";
6
9
  export * from "./platform";
7
10
  export * as tokens from "./tokens";
8
11
  export * as utils from "./utils";
@@ -14,3 +17,30 @@ export type TextStyleProp = {
14
17
  export type ViewStyleProp = {
15
18
  style?: StyleProp<ViewStyle>;
16
19
  };
20
+
21
+ export const Context = createContext({
22
+ theme: themes.light,
23
+ });
24
+ Context.displayName = "AlfContext";
25
+
26
+ export function Provider<T extends string, A extends Record<T, Theme>>({
27
+ children,
28
+ activeTheme,
29
+ themes,
30
+ }: React.PropsWithChildren<{
31
+ activeTheme: T;
32
+ themes: A;
33
+ }>) {
34
+ const value = useMemo(
35
+ () => ({
36
+ theme: themes[activeTheme],
37
+ }),
38
+ [activeTheme, themes],
39
+ );
40
+
41
+ return <Context.Provider value={value}>{children}</Context.Provider>;
42
+ }
43
+
44
+ export function useTheme() {
45
+ return useContext(Context).theme;
46
+ }