@hanzogui/theme-builder 8.3.0 → 8.3.2

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 (159) hide show
  1. package/dist/cjs/ThemeBuilder.js +262 -0
  2. package/dist/cjs/ThemeBuilder.js.map +1 -0
  3. package/dist/cjs/createStudioThemes.js +26 -0
  4. package/dist/cjs/createStudioThemes.js.map +1 -0
  5. package/dist/cjs/createThemes.js +402 -0
  6. package/dist/cjs/createThemes.js.map +1 -0
  7. package/dist/cjs/defaultComponentThemes.js +28 -0
  8. package/dist/cjs/defaultComponentThemes.js.map +1 -0
  9. package/dist/cjs/defaultTemplates.js +136 -0
  10. package/dist/cjs/defaultTemplates.js.map +1 -0
  11. package/dist/cjs/defaultTemplatesStronger.js +131 -0
  12. package/dist/cjs/defaultTemplatesStronger.js.map +1 -0
  13. package/dist/cjs/defaultTemplatesStrongest.js +131 -0
  14. package/dist/cjs/defaultTemplatesStrongest.js.map +1 -0
  15. package/dist/cjs/getThemeSuitePalettes.js +80 -0
  16. package/dist/cjs/getThemeSuitePalettes.js.map +1 -0
  17. package/dist/cjs/helpers.js +14 -0
  18. package/dist/cjs/helpers.js.map +1 -0
  19. package/dist/cjs/index.js +25 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/masks.js +73 -0
  22. package/dist/cjs/masks.js.map +1 -0
  23. package/dist/cjs/package.json +1 -0
  24. package/dist/cjs/types.js +3 -0
  25. package/dist/cjs/types.js.map +1 -0
  26. package/dist/esm/ThemeBuilder.js +257 -0
  27. package/dist/esm/ThemeBuilder.js.map +1 -0
  28. package/dist/esm/createStudioThemes.js +23 -0
  29. package/dist/esm/createStudioThemes.js.map +1 -0
  30. package/dist/esm/createThemes.js +392 -0
  31. package/dist/esm/createThemes.js.map +1 -0
  32. package/dist/esm/defaultComponentThemes.js +25 -0
  33. package/dist/esm/defaultComponentThemes.js.map +1 -0
  34. package/dist/esm/defaultTemplates.js +133 -0
  35. package/dist/esm/defaultTemplates.js.map +1 -0
  36. package/dist/esm/defaultTemplatesStronger.js +128 -0
  37. package/dist/esm/defaultTemplatesStronger.js.map +1 -0
  38. package/dist/esm/defaultTemplatesStrongest.js +128 -0
  39. package/dist/esm/defaultTemplatesStrongest.js.map +1 -0
  40. package/dist/esm/getThemeSuitePalettes.js +76 -0
  41. package/dist/esm/getThemeSuitePalettes.js.map +1 -0
  42. package/dist/esm/helpers.js +8 -0
  43. package/dist/esm/helpers.js.map +1 -0
  44. package/dist/esm/index.js +11 -10
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/masks.js +70 -0
  47. package/dist/esm/masks.js.map +1 -0
  48. package/dist/esm/types.js +2 -0
  49. package/dist/esm/types.js.map +1 -0
  50. package/package.json +15 -15
  51. package/src/ThemeBuilder.ts +1 -1
  52. package/src/createStudioThemes.ts +6 -6
  53. package/src/createThemes.ts +24 -17
  54. package/src/defaultComponentThemes.ts +1 -1
  55. package/src/defaultTemplates.ts +2 -2
  56. package/src/defaultTemplatesStronger.ts +2 -2
  57. package/src/defaultTemplatesStrongest.ts +2 -2
  58. package/src/getThemeSuitePalettes.ts +1 -1
  59. package/src/helpers.ts +10 -3
  60. package/src/index.ts +11 -8
  61. package/types/ThemeBuilder.d.ts +1 -1
  62. package/types/ThemeBuilder.d.ts.map +1 -1
  63. package/types/createStudioThemes.d.ts +3 -3
  64. package/types/createStudioThemes.d.ts.map +1 -1
  65. package/types/createThemes.d.ts +5 -5
  66. package/types/createThemes.d.ts.map +1 -1
  67. package/types/defaultComponentThemes.d.ts.map +1 -1
  68. package/types/defaultTemplates.d.ts +2 -2
  69. package/types/defaultTemplatesStronger.d.ts +2 -2
  70. package/types/defaultTemplatesStrongest.d.ts +2 -2
  71. package/types/getThemeSuitePalettes.d.ts +1 -1
  72. package/types/getThemeSuitePalettes.d.ts.map +1 -1
  73. package/types/helpers.d.ts.map +1 -1
  74. package/types/index.d.ts +8 -8
  75. package/types/index.d.ts.map +1 -1
  76. package/dist/cjs/ThemeBuilder.cjs +0 -248
  77. package/dist/cjs/ThemeBuilder.native.js +0 -338
  78. package/dist/cjs/ThemeBuilder.native.js.map +0 -1
  79. package/dist/cjs/createStudioThemes.cjs +0 -42
  80. package/dist/cjs/createStudioThemes.native.js +0 -45
  81. package/dist/cjs/createStudioThemes.native.js.map +0 -1
  82. package/dist/cjs/createThemes.cjs +0 -395
  83. package/dist/cjs/createThemes.native.js +0 -405
  84. package/dist/cjs/createThemes.native.js.map +0 -1
  85. package/dist/cjs/defaultComponentThemes.cjs +0 -86
  86. package/dist/cjs/defaultComponentThemes.native.js +0 -89
  87. package/dist/cjs/defaultComponentThemes.native.js.map +0 -1
  88. package/dist/cjs/defaultTemplates.cjs +0 -154
  89. package/dist/cjs/defaultTemplates.native.js +0 -162
  90. package/dist/cjs/defaultTemplates.native.js.map +0 -1
  91. package/dist/cjs/defaultTemplatesStronger.cjs +0 -152
  92. package/dist/cjs/defaultTemplatesStronger.native.js +0 -160
  93. package/dist/cjs/defaultTemplatesStronger.native.js.map +0 -1
  94. package/dist/cjs/defaultTemplatesStrongest.cjs +0 -152
  95. package/dist/cjs/defaultTemplatesStrongest.native.js +0 -160
  96. package/dist/cjs/defaultTemplatesStrongest.native.js.map +0 -1
  97. package/dist/cjs/getThemeSuitePalettes.cjs +0 -92
  98. package/dist/cjs/getThemeSuitePalettes.native.js +0 -117
  99. package/dist/cjs/getThemeSuitePalettes.native.js.map +0 -1
  100. package/dist/cjs/helpers.cjs +0 -36
  101. package/dist/cjs/helpers.native.js +0 -41
  102. package/dist/cjs/helpers.native.js.map +0 -1
  103. package/dist/cjs/index.cjs +0 -45
  104. package/dist/cjs/index.native.js +0 -48
  105. package/dist/cjs/index.native.js.map +0 -1
  106. package/dist/cjs/masks.cjs +0 -117
  107. package/dist/cjs/masks.native.js +0 -120
  108. package/dist/cjs/masks.native.js.map +0 -1
  109. package/dist/cjs/types.cjs +0 -18
  110. package/dist/cjs/types.native.js +0 -21
  111. package/dist/cjs/types.native.js.map +0 -1
  112. package/dist/esm/ThemeBuilder.mjs +0 -222
  113. package/dist/esm/ThemeBuilder.mjs.map +0 -1
  114. package/dist/esm/ThemeBuilder.native.js +0 -309
  115. package/dist/esm/ThemeBuilder.native.js.map +0 -1
  116. package/dist/esm/createStudioThemes.mjs +0 -17
  117. package/dist/esm/createStudioThemes.mjs.map +0 -1
  118. package/dist/esm/createStudioThemes.native.js +0 -17
  119. package/dist/esm/createStudioThemes.native.js.map +0 -1
  120. package/dist/esm/createThemes.mjs +0 -364
  121. package/dist/esm/createThemes.mjs.map +0 -1
  122. package/dist/esm/createThemes.native.js +0 -371
  123. package/dist/esm/createThemes.native.js.map +0 -1
  124. package/dist/esm/defaultComponentThemes.mjs +0 -61
  125. package/dist/esm/defaultComponentThemes.mjs.map +0 -1
  126. package/dist/esm/defaultComponentThemes.native.js +0 -61
  127. package/dist/esm/defaultComponentThemes.native.js.map +0 -1
  128. package/dist/esm/defaultTemplates.mjs +0 -129
  129. package/dist/esm/defaultTemplates.mjs.map +0 -1
  130. package/dist/esm/defaultTemplates.native.js +0 -134
  131. package/dist/esm/defaultTemplates.native.js.map +0 -1
  132. package/dist/esm/defaultTemplatesStronger.mjs +0 -127
  133. package/dist/esm/defaultTemplatesStronger.mjs.map +0 -1
  134. package/dist/esm/defaultTemplatesStronger.native.js +0 -132
  135. package/dist/esm/defaultTemplatesStronger.native.js.map +0 -1
  136. package/dist/esm/defaultTemplatesStrongest.mjs +0 -127
  137. package/dist/esm/defaultTemplatesStrongest.mjs.map +0 -1
  138. package/dist/esm/defaultTemplatesStrongest.native.js +0 -132
  139. package/dist/esm/defaultTemplatesStrongest.native.js.map +0 -1
  140. package/dist/esm/getThemeSuitePalettes.mjs +0 -66
  141. package/dist/esm/getThemeSuitePalettes.mjs.map +0 -1
  142. package/dist/esm/getThemeSuitePalettes.native.js +0 -88
  143. package/dist/esm/getThemeSuitePalettes.native.js.map +0 -1
  144. package/dist/esm/helpers.mjs +0 -9
  145. package/dist/esm/helpers.mjs.map +0 -1
  146. package/dist/esm/helpers.native.js +0 -11
  147. package/dist/esm/helpers.native.js.map +0 -1
  148. package/dist/esm/index.mjs +0 -10
  149. package/dist/esm/index.mjs.map +0 -1
  150. package/dist/esm/index.native.js +0 -10
  151. package/dist/esm/index.native.js.map +0 -1
  152. package/dist/esm/masks.mjs +0 -92
  153. package/dist/esm/masks.mjs.map +0 -1
  154. package/dist/esm/masks.native.js +0 -92
  155. package/dist/esm/masks.native.js.map +0 -1
  156. package/dist/esm/types.mjs +0 -2
  157. package/dist/esm/types.mjs.map +0 -1
  158. package/dist/esm/types.native.js +0 -2
  159. package/dist/esm/types.native.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ import { objectFromEntries, objectKeys } from './helpers.js';
2
+ const getTemplates = () => {
3
+ const lightTemplates = getBaseTemplates('light');
4
+ const darkTemplates = getBaseTemplates('dark');
5
+ const templates = {
6
+ ...objectFromEntries(objectKeys(lightTemplates).map((name) => [`light_${name}`, lightTemplates[name]])),
7
+ ...objectFromEntries(objectKeys(darkTemplates).map((name) => [`dark_${name}`, darkTemplates[name]])),
8
+ };
9
+ return templates;
10
+ };
11
+ const getBaseTemplates = (scheme) => {
12
+ const isLight = scheme === 'light';
13
+ // our palettes have 4 things padding each end until you get to bg/color:
14
+ // [accentBg, transparent1, transparent2, transparent3, transparent4, background, ...]
15
+ const bgIndex = 6;
16
+ const lighten = isLight ? -1 : 1;
17
+ const darken = -lighten;
18
+ const borderColor = bgIndex + 3;
19
+ const baseColors = {
20
+ color: -bgIndex,
21
+ colorHover: -bgIndex - 1,
22
+ colorPress: -bgIndex,
23
+ colorFocus: -bgIndex - 1,
24
+ placeholderColor: -bgIndex - 3,
25
+ outlineColor: -2,
26
+ };
27
+ // templates use the palette and specify index
28
+ // negative goes backwards from end so -1 is the last item
29
+ const base = {
30
+ accentBackground: 0,
31
+ accentColor: -0,
32
+ background0: 1,
33
+ background02: 2,
34
+ background04: 3,
35
+ background06: 4,
36
+ background08: 5,
37
+ color1: bgIndex,
38
+ color2: bgIndex + 1,
39
+ color3: bgIndex + 2,
40
+ color4: bgIndex + 3,
41
+ color5: bgIndex + 4,
42
+ color6: bgIndex + 5,
43
+ color7: bgIndex + 6,
44
+ color8: bgIndex + 7,
45
+ color9: bgIndex + 8,
46
+ color10: bgIndex + 9,
47
+ color11: bgIndex + 10,
48
+ color12: bgIndex + 11,
49
+ color0: -1,
50
+ color02: -2,
51
+ color04: -3,
52
+ color06: -4,
53
+ color08: -5,
54
+ // the background, color, etc keys here work like generics - they make it so you
55
+ // can publish components for others to use without mandating a specific color scale
56
+ // the @hanzogui/button Button component looks for `$background`, so you set the
57
+ // dark_red_Button theme to have a stronger background than the dark_red theme.
58
+ background: bgIndex,
59
+ backgroundHover: bgIndex + lighten, // always lighten on hover no matter the scheme
60
+ backgroundPress: bgIndex + darken, // always darken on press no matter the theme
61
+ backgroundFocus: bgIndex + darken,
62
+ borderColor,
63
+ borderColorHover: borderColor + lighten,
64
+ borderColorPress: borderColor + darken,
65
+ borderColorFocus: borderColor,
66
+ ...baseColors,
67
+ colorTransparent: -1,
68
+ };
69
+ const surface1 = {
70
+ ...baseColors,
71
+ background: base.background + 2,
72
+ backgroundHover: base.backgroundHover + 2,
73
+ backgroundPress: base.backgroundPress + 2,
74
+ backgroundFocus: base.backgroundFocus + 2,
75
+ borderColor: base.borderColor + 2,
76
+ borderColorHover: base.borderColorHover + 2,
77
+ borderColorFocus: base.borderColorFocus + 2,
78
+ borderColorPress: base.borderColorPress + 2,
79
+ };
80
+ const surface2 = {
81
+ ...baseColors,
82
+ background: base.background + 3,
83
+ backgroundHover: base.backgroundHover + 3,
84
+ backgroundPress: base.backgroundPress + 3,
85
+ backgroundFocus: base.backgroundFocus + 3,
86
+ borderColor: base.borderColor + 3,
87
+ borderColorHover: base.borderColorHover + 3,
88
+ borderColorFocus: base.borderColorFocus + 3,
89
+ borderColorPress: base.borderColorPress + 3,
90
+ };
91
+ const surface3 = {
92
+ ...baseColors,
93
+ background: base.background + 4,
94
+ backgroundHover: base.backgroundHover + 4,
95
+ backgroundPress: base.backgroundPress + 4,
96
+ backgroundFocus: base.backgroundFocus + 4,
97
+ borderColor: base.borderColor + 4,
98
+ borderColorHover: base.borderColorHover + 4,
99
+ borderColorFocus: base.borderColorFocus + 4,
100
+ borderColorPress: base.borderColorPress + 4,
101
+ };
102
+ const alt1 = {
103
+ color: base.color - 1,
104
+ colorHover: base.colorHover - 1,
105
+ colorPress: base.colorPress - 1,
106
+ colorFocus: base.colorFocus - 1,
107
+ };
108
+ const alt2 = {
109
+ color: base.color - 2,
110
+ colorHover: base.colorHover - 2,
111
+ colorPress: base.colorPress - 2,
112
+ colorFocus: base.colorFocus - 2,
113
+ };
114
+ const inverse = Object.fromEntries(Object.entries(base).map(([key, index]) => {
115
+ return [key, -index];
116
+ }));
117
+ return {
118
+ base,
119
+ surface1,
120
+ surface2,
121
+ surface3,
122
+ alt1,
123
+ alt2,
124
+ inverse,
125
+ };
126
+ };
127
+ export const defaultTemplatesStronger = getTemplates();
128
+ //# sourceMappingURL=defaultTemplatesStronger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTemplatesStronger.js","sourceRoot":"","sources":["../../src/defaultTemplatesStronger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG5D,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG;QAChB,GAAG,iBAAiB,CAClB,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAU,CAC3D,CACF;QACD,GAAG,iBAAiB,CAClB,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAU,CACzD,CACF;KACF,CAAA;IACD,OAAO,SAAuE,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,MAAwB,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAA;IAElC,yEAAyE;IACzE,sFAAsF;IACtF,MAAM,OAAO,GAAG,CAAC,CAAA;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAA;IACvB,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,CAAA;IAE/B,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,CAAC,OAAO;QACf,UAAU,EAAE,CAAC,OAAO,GAAG,CAAC;QACxB,UAAU,EAAE,CAAC,OAAO;QACpB,UAAU,EAAE,CAAC,OAAO,GAAG,CAAC;QACxB,gBAAgB,EAAE,CAAC,OAAO,GAAG,CAAC;QAC9B,YAAY,EAAE,CAAC,CAAC;KACjB,CAAA;IAED,8CAA8C;IAC9C,0DAA0D;IAC1D,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC,CAAC;QAEf,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO,GAAG,CAAC;QACnB,OAAO,EAAE,OAAO,GAAG,CAAC;QACpB,OAAO,EAAE,OAAO,GAAG,EAAE;QACrB,OAAO,EAAE,OAAO,GAAG,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,CAAC;QACX,gFAAgF;QAChF,oFAAoF;QACpF,gFAAgF;QAChF,+EAA+E;QAC/E,UAAU,EAAE,OAAO;QACnB,eAAe,EAAE,OAAO,GAAG,OAAO,EAAE,+CAA+C;QACnF,eAAe,EAAE,OAAO,GAAG,MAAM,EAAE,6CAA6C;QAChF,eAAe,EAAE,OAAO,GAAG,MAAM;QACjC,WAAW;QACX,gBAAgB,EAAE,WAAW,GAAG,OAAO;QACvC,gBAAgB,EAAE,WAAW,GAAG,MAAM;QACtC,gBAAgB,EAAE,WAAW;QAC7B,GAAG,UAAU;QACb,gBAAgB,EAAE,CAAC,CAAC;KACrB,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU;QACb,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;QACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;KAC5C,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU;QACb,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;QACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;KAC5C,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU;QACb,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;QACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;KAC5C,CAAA;IAED,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;KAChC,CAAA;IAED,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;KAChC,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAC,CACH,CAAA;IAED,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,OAAO;KACiB,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,EAAE,CAAA"}
@@ -0,0 +1,128 @@
1
+ import { objectFromEntries, objectKeys } from './helpers.js';
2
+ const getTemplates = () => {
3
+ const lightTemplates = getBaseTemplates('light');
4
+ const darkTemplates = getBaseTemplates('dark');
5
+ const templates = {
6
+ ...objectFromEntries(objectKeys(lightTemplates).map((name) => [`light_${name}`, lightTemplates[name]])),
7
+ ...objectFromEntries(objectKeys(darkTemplates).map((name) => [`dark_${name}`, darkTemplates[name]])),
8
+ };
9
+ return templates;
10
+ };
11
+ const getBaseTemplates = (scheme) => {
12
+ const isLight = scheme === 'light';
13
+ // our palettes have 4 things padding each end until you get to bg/color:
14
+ // [accentBg, transparent1, transparent2, transparent3, transparent4, background, ...]
15
+ const bgIndex = 6;
16
+ const lighten = isLight ? -1 : 1;
17
+ const darken = -lighten;
18
+ const borderColor = bgIndex + 3;
19
+ const baseColors = {
20
+ color: -bgIndex,
21
+ colorHover: -bgIndex - 1,
22
+ colorPress: -bgIndex,
23
+ colorFocus: -bgIndex - 1,
24
+ placeholderColor: -bgIndex - 3,
25
+ outlineColor: -2,
26
+ };
27
+ // templates use the palette and specify index
28
+ // negative goes backwards from end so -1 is the last item
29
+ const base = {
30
+ accentBackground: 0,
31
+ accentColor: -0,
32
+ background0: 1,
33
+ background02: 2,
34
+ background04: 3,
35
+ background06: 4,
36
+ background08: 5,
37
+ color1: bgIndex,
38
+ color2: bgIndex + 1,
39
+ color3: bgIndex + 2,
40
+ color4: bgIndex + 3,
41
+ color5: bgIndex + 4,
42
+ color6: bgIndex + 5,
43
+ color7: bgIndex + 6,
44
+ color8: bgIndex + 7,
45
+ color9: bgIndex + 8,
46
+ color10: bgIndex + 9,
47
+ color11: bgIndex + 10,
48
+ color12: bgIndex + 11,
49
+ color0: -1,
50
+ color02: -2,
51
+ color04: -3,
52
+ color06: -4,
53
+ color08: -5,
54
+ // the background, color, etc keys here work like generics - they make it so you
55
+ // can publish components for others to use without mandating a specific color scale
56
+ // the @hanzogui/button Button component looks for `$background`, so you set the
57
+ // dark_red_Button theme to have a stronger background than the dark_red theme.
58
+ background: bgIndex,
59
+ backgroundHover: bgIndex + lighten, // always lighten on hover no matter the scheme
60
+ backgroundPress: bgIndex + darken, // always darken on press no matter the theme
61
+ backgroundFocus: bgIndex + darken,
62
+ borderColor,
63
+ borderColorHover: borderColor + lighten,
64
+ borderColorPress: borderColor + darken,
65
+ borderColorFocus: borderColor,
66
+ ...baseColors,
67
+ colorTransparent: -1,
68
+ };
69
+ const surface1 = {
70
+ ...baseColors,
71
+ background: base.background + 3,
72
+ backgroundHover: base.backgroundHover + 3,
73
+ backgroundPress: base.backgroundPress + 3,
74
+ backgroundFocus: base.backgroundFocus + 3,
75
+ borderColor: base.borderColor + 3,
76
+ borderColorHover: base.borderColorHover + 3,
77
+ borderColorFocus: base.borderColorFocus + 3,
78
+ borderColorPress: base.borderColorPress + 3,
79
+ };
80
+ const surface2 = {
81
+ ...baseColors,
82
+ background: base.background + 4,
83
+ backgroundHover: base.backgroundHover + 4,
84
+ backgroundPress: base.backgroundPress + 4,
85
+ backgroundFocus: base.backgroundFocus + 4,
86
+ borderColor: base.borderColor + 4,
87
+ borderColorHover: base.borderColorHover + 4,
88
+ borderColorFocus: base.borderColorFocus + 4,
89
+ borderColorPress: base.borderColorPress + 4,
90
+ };
91
+ const surface3 = {
92
+ ...baseColors,
93
+ background: base.background + 5,
94
+ backgroundHover: base.backgroundHover + 5,
95
+ backgroundPress: base.backgroundPress + 5,
96
+ backgroundFocus: base.backgroundFocus + 5,
97
+ borderColor: base.borderColor + 5,
98
+ borderColorHover: base.borderColorHover + 5,
99
+ borderColorFocus: base.borderColorFocus + 5,
100
+ borderColorPress: base.borderColorPress + 5,
101
+ };
102
+ const alt1 = {
103
+ color: base.color - 1,
104
+ colorHover: base.colorHover - 1,
105
+ colorPress: base.colorPress - 1,
106
+ colorFocus: base.colorFocus - 1,
107
+ };
108
+ const alt2 = {
109
+ color: base.color - 2,
110
+ colorHover: base.colorHover - 2,
111
+ colorPress: base.colorPress - 2,
112
+ colorFocus: base.colorFocus - 2,
113
+ };
114
+ const inverse = Object.fromEntries(Object.entries(base).map(([key, index]) => {
115
+ return [key, -index];
116
+ }));
117
+ return {
118
+ base,
119
+ surface1,
120
+ surface2,
121
+ surface3,
122
+ alt1,
123
+ alt2,
124
+ inverse,
125
+ };
126
+ };
127
+ export const defaultTemplatesStrongest = getTemplates();
128
+ //# sourceMappingURL=defaultTemplatesStrongest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTemplatesStrongest.js","sourceRoot":"","sources":["../../src/defaultTemplatesStrongest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { hsla, parseToHsla } from 'color2k';
2
+ /**
3
+ * palette generally is:
4
+ *
5
+ * [constrastBackground, accent, backgroundTransparent, ...background, ...foreground, foregroundTransparent, accentForeground]
6
+ */
7
+ const paletteSize = 12;
8
+ // how many things come before the actual bg color (transparencies etc)
9
+ // 👋 SYNC WITH hanzogui.dev/features/studio/constants
10
+ export const PALETTE_BACKGROUND_OFFSET = 6;
11
+ const generateColorPalette = ({ palette: buildPalette, scheme, }) => {
12
+ if (!buildPalette) {
13
+ return [];
14
+ }
15
+ const { anchors } = buildPalette;
16
+ let palette = [];
17
+ const add = (h, s, l, a) => {
18
+ palette.push(hsla(h, s, l, a ?? 1));
19
+ };
20
+ const numAnchors = Object.keys(anchors).length;
21
+ for (const [anchorIndex, anchor] of anchors.entries()) {
22
+ const [h, s, l, a] = [
23
+ anchor.hue[scheme],
24
+ anchor.sat[scheme],
25
+ anchor.lum[scheme],
26
+ anchor.alpha?.[scheme] ?? 1,
27
+ ];
28
+ if (anchorIndex !== 0) {
29
+ const lastAnchor = anchors[anchorIndex - 1];
30
+ const steps = anchor.index - lastAnchor.index;
31
+ const lastHue = lastAnchor.hue[scheme];
32
+ const lastSat = lastAnchor.sat[scheme];
33
+ const lastLum = lastAnchor.lum[scheme];
34
+ const stepHue = (lastHue - h) / steps;
35
+ const stepSat = (lastSat - s) / steps;
36
+ const stepLum = (lastLum - l) / steps;
37
+ // backfill:
38
+ for (let step = lastAnchor.index + 1; step < anchor.index; step++) {
39
+ const str = anchor.index - step;
40
+ add(h + stepHue * str, s + stepSat * str, l + stepLum * str);
41
+ }
42
+ }
43
+ add(h, s, l, a);
44
+ const isLastAnchor = anchorIndex === numAnchors - 1;
45
+ if (isLastAnchor && palette.length < paletteSize) {
46
+ // forwardfill:
47
+ for (let step = anchor.index + 1; step < paletteSize; step++) {
48
+ add(h, s, l);
49
+ }
50
+ }
51
+ }
52
+ // add transparent values
53
+ const background = palette[0];
54
+ const foreground = palette[palette.length - 1];
55
+ const transparentValues = [background, foreground].map((color) => {
56
+ const [h, s, l] = parseToHsla(color);
57
+ // fully transparent to partially
58
+ return [
59
+ hsla(h, s, l, 0),
60
+ hsla(h, s, l, 0.2),
61
+ hsla(h, s, l, 0.4),
62
+ hsla(h, s, l, 0.6),
63
+ hsla(h, s, l, 0.8),
64
+ ];
65
+ });
66
+ const reverseForeground = [...transparentValues[1]].reverse();
67
+ palette = [...transparentValues[0], ...palette, ...reverseForeground];
68
+ return palette;
69
+ };
70
+ export function getThemeSuitePalettes(palette) {
71
+ return {
72
+ light: generateColorPalette({ palette, scheme: 'light' }),
73
+ dark: generateColorPalette({ palette, scheme: 'dark' }),
74
+ };
75
+ }
76
+ //# sourceMappingURL=getThemeSuitePalettes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getThemeSuitePalettes.js","sourceRoot":"","sources":["../../src/getThemeSuitePalettes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export const objectKeys = (obj) => Object.keys(obj);
2
+ export function objectEntries(obj) {
3
+ return Object.entries(obj);
4
+ }
5
+ export function objectFromEntries(arr) {
6
+ return Object.fromEntries(arr);
7
+ }
8
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAmB,GAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAmB,CAAA;AAE1F,MAAM,UAAU,aAAa,CAC3B,GAAU;IAEV,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAyB,CAAA;AACpD,CAAC;AA2BD,MAAM,UAAU,iBAAiB,CAC/B,GAAU;IAEV,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAA2B,CAAA;AAC1D,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,10 +1,11 @@
1
- export * from "./ThemeBuilder.mjs";
2
- export * from "@hanzogui/create-theme";
3
- import { createStudioThemes } from "./createStudioThemes.mjs";
4
- import { createThemes, createV4Themes, createPalettes, createV4ThemeBuilder } from "./createThemes.mjs";
5
- import { defaultTemplates } from "./defaultTemplates.mjs";
6
- import { defaultComponentThemes } from "./defaultComponentThemes.mjs";
7
- import { PALETTE_BACKGROUND_OFFSET, getThemeSuitePalettes } from "./getThemeSuitePalettes.mjs";
8
- import { masks } from "./masks.mjs";
9
- export { PALETTE_BACKGROUND_OFFSET, createPalettes, createStudioThemes, createThemes, createV4ThemeBuilder, createV4Themes, defaultComponentThemes, defaultTemplates, getThemeSuitePalettes, masks };
10
- //# sourceMappingURL=index.js.map
1
+ export * from './ThemeBuilder.js';
2
+ export * from '@hanzogui/create-theme';
3
+ export { createStudioThemes } from './createStudioThemes.js';
4
+ export { createThemes, createV4Themes, createPalettes, createV4ThemeBuilder, } from './createThemes.js';
5
+ export { defaultTemplates } from './defaultTemplates.js';
6
+ /** @deprecated component themes are no longer recommended */
7
+ export { defaultComponentThemes } from './defaultComponentThemes.js';
8
+ export { PALETTE_BACKGROUND_OFFSET, getThemeSuitePalettes, } from './getThemeSuitePalettes.js';
9
+ // copied from themes to avoid cyclic dep
10
+ export { masks } from './masks.js';
11
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createStudioThemes","createThemes","createV4Themes","createPalettes","createV4ThemeBuilder","defaultTemplates","defaultComponentThemes","PALETTE_BACKGROUND_OFFSET","getThemeSuitePalettes","masks"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AAEd,SAASA,kBAAA,QAA0B;AACnC,SACEC,YAAA,EACAC,cAAA,EACAC,cAAA,EACAC,oBAAA,QAEK;AAEP,SAASC,gBAAA,QAAwB;AAEjC,SAASC,sBAAA,QAA8B;AAEvC,SAASC,yBAAA,EAA2BC,qBAAA,QAA6B;AAGjE,SAASC,KAAA,QAAa","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,GAErB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,6DAA6D;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAa,CAAA"}
@@ -0,0 +1,70 @@
1
+ // copied from @hanzogui/themes
2
+ import { combineMasks, createIdentityMask, createInverseMask, createMask, createSoftenMask, createStrengthenMask, skipMask, } from '@hanzogui/create-theme';
3
+ export const masks = {
4
+ identity: createIdentityMask(),
5
+ soften: createSoftenMask(),
6
+ soften2: createSoftenMask({ strength: 2 }),
7
+ soften3: createSoftenMask({ strength: 3 }),
8
+ strengthen: createStrengthenMask(),
9
+ inverse: createInverseMask(),
10
+ inverseSoften: combineMasks(createInverseMask(), createSoftenMask({ strength: 2 })),
11
+ inverseSoften2: combineMasks(createInverseMask(), createSoftenMask({ strength: 3 })),
12
+ inverseSoften3: combineMasks(createInverseMask(), createSoftenMask({ strength: 4 })),
13
+ inverseStrengthen2: combineMasks(createInverseMask(), createStrengthenMask({ strength: 2 })),
14
+ strengthenButSoftenBorder: createMask((template, options) => {
15
+ const stronger = createStrengthenMask().mask(template, options);
16
+ const softer = createSoftenMask().mask(template, options);
17
+ return {
18
+ ...stronger,
19
+ borderColor: softer.borderColor,
20
+ borderColorHover: softer.borderColorHover,
21
+ borderColorPress: softer.borderColorPress,
22
+ borderColorFocus: softer.borderColorFocus,
23
+ };
24
+ }),
25
+ soften2Border1: createMask((template, options) => {
26
+ const softer2 = createSoftenMask({ strength: 2 }).mask(template, options);
27
+ const softer1 = createSoftenMask({ strength: 1 }).mask(template, options);
28
+ return {
29
+ ...softer2,
30
+ borderColor: softer1.borderColor,
31
+ borderColorHover: softer1.borderColorHover,
32
+ borderColorPress: softer1.borderColorPress,
33
+ borderColorFocus: softer1.borderColorFocus,
34
+ };
35
+ }),
36
+ soften3FlatBorder: createMask((template, options) => {
37
+ const borderMask = createSoftenMask({ strength: 2 }).mask(template, options);
38
+ const softer3 = createSoftenMask({ strength: 3 }).mask(template, options);
39
+ return {
40
+ ...softer3,
41
+ borderColor: borderMask.borderColor,
42
+ borderColorHover: borderMask.borderColorHover,
43
+ borderColorPress: borderMask.borderColorPress,
44
+ borderColorFocus: borderMask.borderColorFocus,
45
+ };
46
+ }),
47
+ softenBorder: createMask((template, options) => {
48
+ const plain = skipMask.mask(template, options);
49
+ const softer = createSoftenMask().mask(template, options);
50
+ return {
51
+ ...plain,
52
+ borderColor: softer.borderColor,
53
+ borderColorHover: softer.borderColorHover,
54
+ borderColorPress: softer.borderColorPress,
55
+ borderColorFocus: softer.borderColorFocus,
56
+ };
57
+ }),
58
+ softenBorder2: createMask((template, options) => {
59
+ const plain = skipMask.mask(template, options);
60
+ const softer = createSoftenMask({ strength: 2 }).mask(template, options);
61
+ return {
62
+ ...plain,
63
+ borderColor: softer.borderColor,
64
+ borderColorHover: softer.borderColorHover,
65
+ borderColorPress: softer.borderColorPress,
66
+ borderColorFocus: softer.borderColorFocus,
67
+ };
68
+ }),
69
+ };
70
+ //# sourceMappingURL=masks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masks.js","sourceRoot":"","sources":["../../src/masks.tsx"],"names":[],"mappings":"AAAA,+BAA+B;AAG/B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAE/B,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,EAAE,kBAAkB,EAAE;IAC9B,MAAM,EAAE,gBAAgB,EAAE;IAC1B,OAAO,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC1C,UAAU,EAAE,oBAAoB,EAAE;IAClC,OAAO,EAAE,iBAAiB,EAAE;IAC5B,aAAa,EAAE,YAAY,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACnF,cAAc,EAAE,YAAY,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,cAAc,EAAE,YAAY,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,kBAAkB,EAAE,YAAY,CAC9B,iBAAiB,EAAE,EACnB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CACtC;IACD,yBAAyB,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzD,OAAO;YACL,GAAG,QAAQ;YACX,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAA;IACH,CAAC,CAAC;IACF,cAAc,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzE,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAA;IACH,CAAC,CAAC;IACF,iBAAiB,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzE,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C,CAAA;IACH,CAAC,CAAC;IACF,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzD,OAAO;YACL,GAAG,KAAK;YACR,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAA;IACH,CAAC,CAAC;IACF,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxE,OAAO;YACL,GAAG,KAAK;YACR,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAA;IACH,CAAC,CAAC;CACuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzogui/theme-builder",
3
- "version": "8.3.0",
3
+ "version": "8.3.2",
4
4
  "source": "src/index.ts",
5
5
  "files": [
6
6
  "src",
@@ -9,26 +9,26 @@
9
9
  ],
10
10
  "type": "module",
11
11
  "sideEffects": false,
12
- "main": "dist/cjs",
13
- "module": "dist/esm",
12
+ "main": "./dist/cjs/index.js",
13
+ "module": "./dist/esm/index.js",
14
14
  "types": "./types/index.d.ts",
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "react-native": "./dist/esm/index.native.js",
20
- "browser": "./dist/esm/index.mjs",
21
- "module": "./dist/esm/index.mjs",
22
- "import": "./dist/esm/index.mjs",
23
- "require": "./dist/cjs/index.cjs",
24
- "default": "./dist/esm/index.mjs"
19
+ "react-native": "./dist/esm/index.js",
20
+ "browser": "./dist/esm/index.js",
21
+ "module": "./dist/esm/index.js",
22
+ "import": "./dist/esm/index.js",
23
+ "require": "./dist/cjs/index.js",
24
+ "default": "./dist/esm/index.js"
25
25
  }
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
30
  "scripts": {
31
- "build": "hanzogui-build",
31
+ "build": "hanzogui-build --skip-native",
32
32
  "watch": "hanzogui-build --watch",
33
33
  "clean": "hanzogui-build clean",
34
34
  "clean:build": "hanzogui-build clean:build",
@@ -37,13 +37,13 @@
37
37
  "test:watch": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@hanzogui/create-theme": "8.3.0",
41
- "@hanzogui/web": "8.3.0",
42
- "color2k": "^2.0.2"
40
+ "@hanzogui/create-theme": "8.3.2",
41
+ "@hanzogui/web": "8.3.2",
42
+ "color2k": "^2.0.4"
43
43
  },
44
44
  "devDependencies": {
45
- "@hanzogui/build": "8.3.0",
46
- "vitest": "4.0.4"
45
+ "@hanzogui/build": "8.3.2",
46
+ "vitest": "^4.1.11"
47
47
  },
48
48
  "repository": {
49
49
  "type": "git",
@@ -14,7 +14,7 @@ import {
14
14
  objectFromEntries,
15
15
  } from '@hanzogui/create-theme'
16
16
  import type { Narrow } from '@hanzogui/web'
17
- import type { GetThemeFn } from './types'
17
+ import type { GetThemeFn } from './types.ts'
18
18
 
19
19
  export type ThemeBuilderInternalState = {
20
20
  palettes?: PaletteDefinitions
@@ -1,9 +1,9 @@
1
- import { createPalettes, createSimpleThemeBuilder } from './createThemes'
2
- import { defaultComponentThemes } from './defaultComponentThemes'
3
- import { defaultTemplates } from './defaultTemplates'
4
- import { defaultTemplatesStronger } from './defaultTemplatesStronger'
5
- import { defaultTemplatesStrongest } from './defaultTemplatesStrongest'
6
- import type { BuildThemeSuiteProps } from './types'
1
+ import { createPalettes, createSimpleThemeBuilder } from './createThemes.ts'
2
+ import { defaultComponentThemes } from './defaultComponentThemes.ts'
3
+ import { defaultTemplates } from './defaultTemplates.ts'
4
+ import { defaultTemplatesStronger } from './defaultTemplatesStronger.ts'
5
+ import { defaultTemplatesStrongest } from './defaultTemplatesStrongest.ts'
6
+ import type { BuildThemeSuiteProps } from './types.ts'
7
7
 
8
8
  // for studio
9
9
  // allows more detailed configuration, used by studio
@@ -1,10 +1,13 @@
1
1
  import { parseToHsla } from 'color2k'
2
2
  import type { Template } from '@hanzogui/create-theme'
3
- import { defaultComponentThemes } from './defaultComponentThemes'
4
- import { defaultTemplates } from './defaultTemplates'
5
- import { getThemeSuitePalettes, PALETTE_BACKGROUND_OFFSET } from './getThemeSuitePalettes'
6
- import { createThemeBuilder, type ThemeBuilder } from './ThemeBuilder'
7
- import type { BuildPalettes, BuildTemplates } from './types'
3
+ import { defaultComponentThemes } from './defaultComponentThemes.ts'
4
+ import { defaultTemplates } from './defaultTemplates.ts'
5
+ import {
6
+ getThemeSuitePalettes,
7
+ PALETTE_BACKGROUND_OFFSET,
8
+ } from './getThemeSuitePalettes.ts'
9
+ import { createThemeBuilder, type ThemeBuilder } from './ThemeBuilder.ts'
10
+ import type { BuildPalettes, BuildTemplates } from './types.ts'
8
11
 
9
12
  /**
10
13
  * GrandChildren theme nesting logic implementation:
@@ -322,12 +325,14 @@ export function createSimpleThemeBuilder<
322
325
  ComponentThemes extends SimpleThemesDefinition | false = false,
323
326
  GetThemeReturn extends Record<string, string | number> = Record<string, string>,
324
327
  FullTheme extends Record<string, string | number> = {
325
- [ThemeKey in
326
- | keyof Templates['light_base']
327
- | keyof Extra['dark']
328
- | (HasAccent extends true
329
- ? `accent${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12}`
330
- : never)]: string
328
+ [
329
+ ThemeKey in
330
+ | keyof Templates['light_base']
331
+ | keyof Extra['dark']
332
+ | (HasAccent extends true
333
+ ? `accent${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12}`
334
+ : never)
335
+ ]: string
331
336
  },
332
337
  ThemeNames extends string =
333
338
  | 'light'
@@ -643,12 +648,14 @@ export function createV4ThemeBuilder<
643
648
  ComponentThemes extends SimpleThemesDefinition | false = false,
644
649
  GetThemeReturn extends Record<string, string | number> = Record<string, string>,
645
650
  FullTheme extends Record<string, string | number> = {
646
- [ThemeKey in
647
- | keyof Templates['light_base']
648
- | keyof Extra['dark']
649
- | (HasAccent extends true
650
- ? `accent${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12}`
651
- : never)]: string
651
+ [
652
+ ThemeKey in
653
+ | keyof Templates['light_base']
654
+ | keyof Extra['dark']
655
+ | (HasAccent extends true
656
+ ? `accent${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12}`
657
+ : never)
658
+ ]: string
652
659
  },
653
660
  ThemeNames extends string =
654
661
  | 'light'