@multiplatform.one/theme 7.83.2 → 7.84.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 (105) hide show
  1. package/dist/cjs/expo.cjs +8 -1
  2. package/dist/cjs/expo.native.js +11 -1
  3. package/dist/cjs/expo.native.js.map +1 -1
  4. package/dist/cjs/fonts/createFontLoader.native.js +5 -4
  5. package/dist/cjs/fonts/index.cjs +1 -0
  6. package/dist/cjs/fonts/index.native.js +1 -0
  7. package/dist/cjs/fonts/index.native.js.map +1 -1
  8. package/dist/cjs/fonts/interFaces.cjs +38 -0
  9. package/dist/cjs/fonts/interFaces.native.js +41 -0
  10. package/dist/cjs/fonts/interFaces.native.js.map +1 -0
  11. package/dist/cjs/theme/colorRules.cjs +23 -0
  12. package/dist/cjs/theme/colorRules.native.js +29 -0
  13. package/dist/cjs/theme/colorRules.native.js.map +1 -1
  14. package/dist/cjs/theme/controlTiers.cjs +1 -1
  15. package/dist/cjs/theme/controlTiers.native.js +1 -1
  16. package/dist/cjs/theme/controlTiers.native.js.map +1 -1
  17. package/dist/cjs/theme/defaults/fonts.cjs +4 -17
  18. package/dist/cjs/theme/defaults/fonts.native.js +7 -17
  19. package/dist/cjs/theme/defaults/fonts.native.js.map +1 -1
  20. package/dist/cjs/theme/glyphTint.cjs +2 -25
  21. package/dist/cjs/theme/glyphTint.native.js +2 -31
  22. package/dist/cjs/theme/glyphTint.native.js.map +1 -1
  23. package/dist/cjs/theme/hairline.cjs +20 -3
  24. package/dist/cjs/theme/readableColor.cjs +36 -0
  25. package/dist/cjs/theme/readableColor.native.js +39 -0
  26. package/dist/cjs/theme/readableColor.native.js.map +1 -1
  27. package/dist/cjs/theme/resolveKnobs.cjs +162 -74
  28. package/dist/cjs/theme/resolveKnobs.native.js +170 -81
  29. package/dist/cjs/theme/resolveKnobs.native.js.map +1 -1
  30. package/dist/esm/expo.mjs +7 -1
  31. package/dist/esm/expo.mjs.map +1 -1
  32. package/dist/esm/expo.native.js +10 -1
  33. package/dist/esm/expo.native.js.map +1 -1
  34. package/dist/esm/fonts/createFontLoader.native.js +5 -4
  35. package/dist/esm/fonts/index.mjs +1 -0
  36. package/dist/esm/fonts/index.mjs.map +1 -1
  37. package/dist/esm/fonts/index.native.js +1 -0
  38. package/dist/esm/fonts/index.native.js.map +1 -1
  39. package/dist/esm/fonts/interFaces.mjs +12 -0
  40. package/dist/esm/fonts/interFaces.mjs.map +1 -0
  41. package/dist/esm/fonts/interFaces.native.js +12 -0
  42. package/dist/esm/fonts/interFaces.native.js.map +1 -0
  43. package/dist/esm/theme/colorRules.mjs +23 -1
  44. package/dist/esm/theme/colorRules.mjs.map +1 -1
  45. package/dist/esm/theme/colorRules.native.js +29 -1
  46. package/dist/esm/theme/colorRules.native.js.map +1 -1
  47. package/dist/esm/theme/controlTiers.mjs +1 -1
  48. package/dist/esm/theme/controlTiers.mjs.map +1 -1
  49. package/dist/esm/theme/controlTiers.native.js +1 -1
  50. package/dist/esm/theme/controlTiers.native.js.map +1 -1
  51. package/dist/esm/theme/defaults/fonts.mjs +4 -17
  52. package/dist/esm/theme/defaults/fonts.mjs.map +1 -1
  53. package/dist/esm/theme/defaults/fonts.native.js +7 -17
  54. package/dist/esm/theme/defaults/fonts.native.js.map +1 -1
  55. package/dist/esm/theme/glyphTint.mjs +2 -24
  56. package/dist/esm/theme/glyphTint.mjs.map +1 -1
  57. package/dist/esm/theme/glyphTint.native.js +2 -30
  58. package/dist/esm/theme/glyphTint.native.js.map +1 -1
  59. package/dist/esm/theme/hairline.mjs +20 -4
  60. package/dist/esm/theme/hairline.mjs.map +1 -1
  61. package/dist/esm/theme/readableColor.mjs +36 -2
  62. package/dist/esm/theme/readableColor.mjs.map +1 -1
  63. package/dist/esm/theme/readableColor.native.js +39 -2
  64. package/dist/esm/theme/readableColor.native.js.map +1 -1
  65. package/dist/esm/theme/resolveKnobs.mjs +162 -74
  66. package/dist/esm/theme/resolveKnobs.mjs.map +1 -1
  67. package/dist/esm/theme/resolveKnobs.native.js +170 -81
  68. package/dist/esm/theme/resolveKnobs.native.js.map +1 -1
  69. package/package.json +5 -5
  70. package/src/expo.ts +20 -0
  71. package/src/fonts/createFontLoader.ts +8 -4
  72. package/src/fonts/index.ts +1 -0
  73. package/src/fonts/interFaces.spec.ts +87 -0
  74. package/src/fonts/interFaces.ts +26 -0
  75. package/src/theme/accentButtonLabel.spec.ts +116 -0
  76. package/src/theme/colorRules.ts +41 -0
  77. package/src/theme/controlTiers.ts +6 -4
  78. package/src/theme/defaults/fonts.spec.ts +9 -2
  79. package/src/theme/defaults/fonts.ts +5 -8
  80. package/src/theme/glyphTint.spec.ts +30 -2
  81. package/src/theme/glyphTint.ts +1 -47
  82. package/src/theme/hairline.spec.ts +60 -3
  83. package/src/theme/hairline.ts +35 -5
  84. package/src/theme/readableColor.ts +49 -0
  85. package/src/theme/resolveKnobs.ts +172 -101
  86. package/types/expo.d.ts +10 -0
  87. package/types/expo.d.ts.map +1 -1
  88. package/types/fonts/createFontLoader.d.ts.map +1 -1
  89. package/types/fonts/index.d.ts +1 -0
  90. package/types/fonts/index.d.ts.map +1 -1
  91. package/types/fonts/interFaces.d.ts +23 -0
  92. package/types/fonts/interFaces.d.ts.map +1 -0
  93. package/types/theme/colorRules.d.ts +6 -0
  94. package/types/theme/colorRules.d.ts.map +1 -1
  95. package/types/theme/controlTiers.d.ts +5 -3
  96. package/types/theme/controlTiers.d.ts.map +1 -1
  97. package/types/theme/defaults/fonts.d.ts +30 -30
  98. package/types/theme/defaults/fonts.d.ts.map +1 -1
  99. package/types/theme/glyphTint.d.ts +0 -6
  100. package/types/theme/glyphTint.d.ts.map +1 -1
  101. package/types/theme/hairline.d.ts +14 -3
  102. package/types/theme/hairline.d.ts.map +1 -1
  103. package/types/theme/readableColor.d.ts +19 -0
  104. package/types/theme/readableColor.d.ts.map +1 -1
  105. package/types/theme/resolveKnobs.d.ts.map +1 -1
@@ -26,6 +26,7 @@ __export(hairline_exports, {
26
26
  hairline: () => hairline,
27
27
  hairlineBorderWidth: () => hairlineBorderWidth,
28
28
  hairlineFallbackCss: () => hairlineFallbackCss,
29
+ hairlineThickness: () => hairlineThickness,
29
30
  hairlineWidth: () => hairlineWidth
30
31
  });
31
32
  module.exports = __toCommonJS(hairline_exports);
@@ -82,15 +83,30 @@ const hairline = {
82
83
  }
83
84
  };
84
85
  const STYLE_TAG_ID = "mp-hairline-styles";
85
- const hairlineFallbackCss = `@media (max-resolution: 1.49dppx), (-webkit-max-device-pixel-ratio: 1.49) {
86
+ function hairlineThickness(devicePixelRatio) {
87
+ const ratio = Number.isFinite(devicePixelRatio) && devicePixelRatio > 0 ? devicePixelRatio : 1;
88
+ return Math.ceil(64 / ratio) / 64;
89
+ }
90
+ const hairlineFallbackCss = `.mp-hairline-h { height: var(--mp-hairline, 0.5px) !important; max-height: var(--mp-hairline, 0.5px) !important; flex-basis: var(--mp-hairline, 0.5px) !important; }
91
+ .mp-hairline-w { width: var(--mp-hairline, 0.5px) !important; max-width: var(--mp-hairline, 0.5px) !important; flex-basis: var(--mp-hairline, 0.5px) !important; }
92
+ @media (max-resolution: 1.49dppx), (-webkit-max-device-pixel-ratio: 1.49) {
86
93
  .mp-hairline-b { border-bottom-width: 1px !important; }
87
94
  .mp-hairline-t { border-top-width: 1px !important; }
88
95
  .mp-hairline-r { border-right-width: 1px !important; }
89
96
  .mp-hairline-l { border-left-width: 1px !important; }
90
- .mp-hairline-h { height: 1px !important; max-height: 1px !important; flex-basis: 1px !important; }
91
- .mp-hairline-w { width: 1px !important; max-width: 1px !important; flex-basis: 1px !important; }
97
+ .mp-hairline-h { height: max(1px, var(--mp-hairline, 1px)) !important; max-height: max(1px, var(--mp-hairline, 1px)) !important; flex-basis: max(1px, var(--mp-hairline, 1px)) !important; }
98
+ .mp-hairline-w { width: max(1px, var(--mp-hairline, 1px)) !important; max-width: max(1px, var(--mp-hairline, 1px)) !important; flex-basis: max(1px, var(--mp-hairline, 1px)) !important; }
92
99
  .mp-hairline-ie { border-inline-end-width: 1px !important; }
93
100
  }`;
101
+ let watchedRatio;
102
+ function trackDevicePixel() {
103
+ if (typeof window === "undefined") return;
104
+ const ratio = window.devicePixelRatio || 1;
105
+ document.documentElement.style.setProperty("--mp-hairline", `${hairlineThickness(ratio)}px`);
106
+ watchedRatio?.removeEventListener?.("change", trackDevicePixel);
107
+ watchedRatio = window.matchMedia?.(`(resolution: ${ratio}dppx)`);
108
+ watchedRatio?.addEventListener?.("change", trackDevicePixel);
109
+ }
94
110
  function ensureHairlineFallback() {
95
111
  if (typeof document === "undefined") return;
96
112
  if (document.getElementById(STYLE_TAG_ID)) return;
@@ -98,5 +114,6 @@ function ensureHairlineFallback() {
98
114
  tag.id = STYLE_TAG_ID;
99
115
  tag.textContent = hairlineFallbackCss;
100
116
  document.head.appendChild(tag);
117
+ trackDevicePixel();
101
118
  }
102
119
  ensureHairlineFallback();
@@ -24,10 +24,12 @@ var readableColor_exports = {};
24
24
  __export(readableColor_exports, {
25
25
  resolveAccentOnSurface: () => resolveAccentOnSurface,
26
26
  resolveAccentTintedSurface: () => resolveAccentTintedSurface,
27
+ resolveActiveTabInk: () => resolveActiveTabInk,
27
28
  resolveIdentityInk: () => resolveIdentityInk,
28
29
  resolveLegibleInkOn: () => resolveLegibleInkOn,
29
30
  useAccentOnSurface: () => useAccentOnSurface,
30
31
  useAccentTintedSurface: () => useAccentTintedSurface,
32
+ useActiveTabInk: () => useActiveTabInk,
31
33
  useIdentityHue: () => useIdentityHue,
32
34
  useIdentityInkOnSurface: () => useIdentityInkOnSurface,
33
35
  useLegibleInkOn: () => useLegibleInkOn,
@@ -37,6 +39,7 @@ module.exports = __toCommonJS(readableColor_exports);
37
39
  var import_react = require("react");
38
40
  var import_tamagui = require("tamagui");
39
41
  var import_colorRules = require("./colorRules.cjs");
42
+ var import_controlTiers = require("./controlTiers.cjs");
40
43
  var import_createThemes = require("./createThemes.cjs");
41
44
  function resolveTokenValue(theme, token) {
42
45
  const key = token.startsWith("$") ? token.slice(1) : token;
@@ -245,4 +248,37 @@ function useAccentTintedSurface() {
245
248
  solid,
246
249
  paper
247
250
  }), [solid, paper]);
251
+ }
252
+ const ACTIVE_TAB_CHROMA_FLOOR = 0.1;
253
+ function resolveActiveTabInk({
254
+ hue,
255
+ solid,
256
+ dark,
257
+ surfaces,
258
+ ink
259
+ }) {
260
+ if (hue) return hue;
261
+ const solidHex = solid ? (0, import_colorRules.normalizeToHex)(solid) : null;
262
+ if (solidHex && chromaOf(solidHex) >= ACTIVE_TAB_CHROMA_FLOOR) {
263
+ return (0, import_colorRules.holdHueToFloor)(solidHex, surfaces, dark, import_colorRules.aaTextContrastRatio);
264
+ }
265
+ return ink;
266
+ }
267
+ function useActiveTabInk() {
268
+ const dark = (0, import_controlTiers.isDarkThemeName)((0, import_tamagui.useThemeName)());
269
+ const {
270
+ hue,
271
+ c1,
272
+ c2,
273
+ ink
274
+ } = useIdentityHue();
275
+ const theme = (0, import_tamagui.useTheme)();
276
+ const solid = resolveTokenValue(theme, "accentBackground");
277
+ return (0, import_react.useMemo)(() => resolveActiveTabInk({
278
+ hue,
279
+ solid,
280
+ dark,
281
+ surfaces: [c1, c2],
282
+ ink
283
+ }), [hue, solid, dark, c1, c2, ink]);
248
284
  }
@@ -26,10 +26,12 @@ var readableColor_exports = {};
26
26
  __export(readableColor_exports, {
27
27
  resolveAccentOnSurface: () => resolveAccentOnSurface,
28
28
  resolveAccentTintedSurface: () => resolveAccentTintedSurface,
29
+ resolveActiveTabInk: () => resolveActiveTabInk,
29
30
  resolveIdentityInk: () => resolveIdentityInk,
30
31
  resolveLegibleInkOn: () => resolveLegibleInkOn,
31
32
  useAccentOnSurface: () => useAccentOnSurface,
32
33
  useAccentTintedSurface: () => useAccentTintedSurface,
34
+ useActiveTabInk: () => useActiveTabInk,
33
35
  useIdentityHue: () => useIdentityHue,
34
36
  useIdentityInkOnSurface: () => useIdentityInkOnSurface,
35
37
  useLegibleInkOn: () => useLegibleInkOn,
@@ -39,6 +41,7 @@ module.exports = __toCommonJS(readableColor_exports);
39
41
  var import_react = require("react");
40
42
  var import_tamagui = require("tamagui");
41
43
  var import_colorRules = require("./colorRules.native.js");
44
+ var import_controlTiers = require("./controlTiers.native.js");
42
45
  var import_createThemes = require("./createThemes.native.js");
43
46
  function _type_of(obj) {
44
47
  "@swc/helpers - typeof";
@@ -351,4 +354,40 @@ function useAccentTintedSurface() {
351
354
  });
352
355
  }, [solid, paper]);
353
356
  }
357
+ var ACTIVE_TAB_CHROMA_FLOOR = 0.1;
358
+ function resolveActiveTabInk(param) {
359
+ var {
360
+ hue,
361
+ solid,
362
+ dark,
363
+ surfaces,
364
+ ink
365
+ } = param;
366
+ if (hue) return hue;
367
+ var solidHex = solid ? (0, import_colorRules.normalizeToHex)(solid) : null;
368
+ if (solidHex && chromaOf(solidHex) >= ACTIVE_TAB_CHROMA_FLOOR) {
369
+ return (0, import_colorRules.holdHueToFloor)(solidHex, surfaces, dark, import_colorRules.aaTextContrastRatio);
370
+ }
371
+ return ink;
372
+ }
373
+ function useActiveTabInk() {
374
+ var dark = (0, import_controlTiers.isDarkThemeName)((0, import_tamagui.useThemeName)());
375
+ var {
376
+ hue,
377
+ c1,
378
+ c2,
379
+ ink
380
+ } = useIdentityHue();
381
+ var theme = (0, import_tamagui.useTheme)();
382
+ var solid = resolveTokenValue(theme, "accentBackground");
383
+ return (0, import_react.useMemo)(function () {
384
+ return resolveActiveTabInk({
385
+ hue,
386
+ solid,
387
+ dark,
388
+ surfaces: [c1, c2],
389
+ ink
390
+ });
391
+ }, [hue, solid, dark, c1, c2, ink]);
392
+ }
354
393
  //# sourceMappingURL=readableColor.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","readableColor_exports","__export","resolveAccentOnSurface","resolveAccentTintedSurface","resolveIdentityInk","resolveLegibleInkOn","useAccentOnSurface","useAccentTintedSurface","useIdentityHue","useIdentityInkOnSurface","useLegibleInkOn","useReadableTextOn","module","exports","import_react","require","import_tamagui","import_colorRules","import_createThemes","_type_of","obj","Symbol","constructor","resolveTokenValue","theme","token","_theme_key","key","startsWith","slice","val","fill_","useTheme","fill","paper","ink","useMemo","normalizeToHex","holdInkFloor","pickReadableForeground","param","preferred","fillHex","preferredHex","fillLum","relativeLuminance","contrastRatio","aaTextContrastRatio","anchor","preferredValue","resolved","IDENTITY_CHROMA_FLOOR","chromaOf","hex","rgb","map","offset","parseInt","Math","max","min","surfaceLuminances","surfaces","lums","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","surface","push","err","return","pickIdentityInk","candidates","surfaceLums","best","bestChroma","_loop","candidate","lum","some","chroma","_pickIdentityInk","identity","accentSteps","hued","bestMin","Number","POSITIVE_INFINITY","step","stepLum"],"sources":["../../../src/theme/readableColor.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,0BAAA,EAAAA,CAAA,KAAAA,0BAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA,kBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA,kBAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,uBAAA,EAAAA,CAAA,KAAAA,uBAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAlB,YAAwB,CAAAK,qBAAA;AACxB,IAAAc,YAAA,GAAAC,OAA0D;AAC1D,IAAAC,cAAA,GAAAD,OAOO;AACP,IAAAE,iBAAA,GAAAF,OAA6B;AAQ7B,IAAAG,mBAAS,GAAAH,OACP,CACA,0BACoB;AACpB,SAAMI,QAAMA,CAAAC,GAAM;EAClB,uBAAqB;;EACrB,OAAOA,GAAA,IAAO,OAAAC,MAAQ,gBAAiB,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACzC;AAWO,SAASG,kBAAkBC,KAAA,EAA+CC,KAAA;EAC/E,IAAAC,UAAM;EACN,IAAAC,GAAM,GAAAF,KAAO,CAAAG,UAAO,KAAW,GAAGH,KAAI,CAAAI,KAAA,MAAAJ,KAAkB;EACxD,IAAAK,GAAM,IAAAJ,UAAQ,GAAAF,KAAA,CAAAG,GAAkB,OAAO,QAAQD,UAAA,uBAAAA,UAAA,CAAAI,GAAA;EAC/C,OAAM,OAAMA,GAAA,aAAkB,GAAAA,GAAA,GAAO;AACrC;AACE,SAAKnB,iBAASA,CAASoB,KAAM;EAC7B,IAAAP,KAAI,GAAC,IAAAR,cAAA,CAAAgB,QAAA;EACL,IAAAC,IAAA,IAAAF,KAAO,aAAAA,KAAA,UAAa,UAAM,GAAAA,KAAA,CAAAH,UAAA,SAAAL,iBAAuB,CAAAC,KAAM,EAAAO,KAAU,CAAC,GAAAA,KAAA;EACpE,IAAIG,KAAA,GAAMX,iBAAW,CAAAC,KAAA;EACvB,IAAAW,GAAA,GAAAZ,iBAAA,CAAAC,KAAA;EAOO,OAAS,IAAAV,YAAA,CAAAsB,OAAoB;IAClC,KAAAH,IAAA,KAAAC,KAAA,KAAAC,GAAA;IACA,SAAAlB,iBAAA,CAAAoB,cAAA,EAAAJ,IAAA,UAAAhB,iBAAA,CAAAoB,cAAA,EAAAH,KAAA,UAAAjB,iBAAA,CAAAoB,cAAA,EAAAF,GAAA;IACA,WAAAlB,iBAAA,CAAAqB,YAAA,EAAAL,IAAA,MAAAhB,iBAAA,CAAAsB,sBAAA,EAAAN,IAAA,EAAAC,KAAA,EAAAC,GAAA;EACA,IAMqBF,IAAA,EACrBC,KAAM,EACNC,GAAA,CACA;AACA;AACA,SAAA9B,mBAAIA,CAAAmC,KAAA;EACF;IAAAP,IAAO;IAAAQ,SAAA;IAAAP,KAAA;IAAAC;EAAA,IAAAK,KAAA;EACT,IAAAE,OAAA,GAAAT,IAAA,OAAAhB,iBAAA,CAAAoB,cAAA,EAAAJ,IAAA;EACA,IAAAU,YACE,GAAAF,SAAS,OAAOxB,iBAAA,CAAAoB,cAAA,EAAeI,SAAK,QAAK;EAG3C,KAAAR,IAAA,IAAO,CAAAS,OAAA,KAAAD,SAAA,KAAAE,YAAmB,SAAMF,SAAA;EAClC,IAAAG,OAAA,OAAA3B,iBAAA,CAAA4B,iBAAA,EAAAH,OAAA;EASO,QAASzB,iBAAgB,CAAA6B,aAA2B,EAA2B,IAAA7B,iBAAA,CAAA4B,iBAAA,EAAAF,YAAA,GAAAC,OAAA,KAAA3B,iBAAA,CAAA8B,mBAAA;IACpF,OAAMN,SAAQ;EACd;EACA,IAAAO,MAAM,GAAAd,KAAA,IAAAC,GAAiB,QAAUlB,iBAAc,CAC3CoB,cAAA,EAAAH,KAAkB,KAAO,IAAAjB,iBACzB,CAAAoB,cAAA,EAAAF,GAAA,QAAAlB,iBAAA,CAAAsB,sBAAA,EAAAN,IAAA,EAAAC,KAAA,EAAAC,GAAA,IAAAM,SAAA;EACJ,OAAM,IAAAxB,iBAAQ,CAAAqB,YAAyB,EAAAL,IAAQ,EAAAe,MAAA;AAC/C;AACA,SAAAtC,eAAOA,CAAAqB,KAAA,EAAAU,SAAc;EACnB,IAAAjB,KAAM,OAAAR,cAAW,CAAAgB,QAAoB,EAAE;EACvC,IAAAC,IAAA,GAAQ,CAAAF,KAAA,KAAY,QAAAA,KAAa,mBAAiB,IAAAA,KAAA,CAAYH,UAAA,SAAAL,iBAAA,CAAAC,KAAA,EAAAO,KAAA,IAAAA,KAAA;EAChE,IAAIkB,cAAM,GAAWR,SAAA,CAAAb,UAAgB,IAAO,IAAIL,iBAAA,CAAAC,KAAA,EAAAiB,SAAA,IAAAA,SAAA;EAClD,IAAAP,KAAA,GAAAX,iBAAA,CAAAC,KAAA;EAGA,IAAMW,GAAA,GAAAZ,iBAAA,CAAwBC,KAAA;EAE9B,OAAS,IAAAV,YAA8B,CAAAsB,OAAA;IACrC,IAAMc,QAAO,GAAG7C,mBAAW;MAC3B4B,IAAO;MACTQ,SAAA,EAAAQ,cAAA;MAEAf,KAAS;MACPC;IACA;IACE,OAAM,CAAAe,QAAM,IAAAA,QAAU,KAAAD,cAAA,GAAAR,SAAA,GAAeS,QAAO;EAC5C,IACAjB,IAAA,EACFQ,SAAA,EACAQ,cAAO,EACTf,KAAA,EAEAC,GAAA,CAIE;AACA;AACA,IAAAgB,qBAAI;AACJ,SAAIC,SAAAC,GAAa;EACjB,IAAAC,GAAA,IACE,GACA,GACA,EACA,CAAAC,GAAA,CAAI,UAAAC,MAAY,EAAK;IACrB,OAAMC,QAAS,CAAAJ,GAAA,CAAAxB,KAAS,CAAA2B,MAAG,EAAAA,MAAA;EAC3B;EACE,OAAAE,IAAA,CAAAC,GAAA,IAAaL,GAAA,IAAAI,IAAA,CAAAE,GAAA,IAAAN,GAAA;AACb;AAAO,SACTO,kBAAAC,QAAA;EACF,IAAAC,IAAA;EACA,IAAAC,yBAAO;IAAAC,iBAAA;IAAAC,cAAA;EACT;IAMO,KAAS,IAAAC,SAAA,GAAAL,QAAmB,CAAAzC,MAAA,CAAA+C,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACjC,IAAAQ,OAAA,GAAAH,KAAA,CAAAtE,KAAA;MACA,IAAAsD,GAAA,GAAAmB,OAAA,OAAAvD,iBAAA,CAAAoB,cAAA,EAAAmC,OAAA;MACA,KAAAnB,GAAA;MAKSU,IAAA,CAAAU,IAAA,KAAAxD,iBAAA,CAAA4B,iBAAA,EAAAQ,GAAA;IACT;EACF,SAAAqB,GAAA;IAQOT,iBAAS;IACdC,cAAA,GAAAQ,GAAA;EACA;IACA;MACA,KAAAV,yBAAA,IAAAG,SAAA,CAAAQ,MAAA;QAMSR,SAAA,CAAAQ,MAAA;MACT;IACA,UAAU;MACV,IAAMV,iBAAc;QACf,MAAAC,cAAoB;MACrB;IACJ;EACA;EACE,OAAAH,IAAM;AACN;AACA,SAAAa,eAAgBA,CAAAC,UAAA,EAAAf,QAAA;EAChB,IAAAgB,WAAY,GAAAjB,iBAAY,CAAAC,QAAiB;EACzC,KAAAgB,WAAW;EACT,IAAAC,IAAA;EACA,IAAAC,UAAO,GAAA7B,qBAAA;EAAA,IACTa,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EACF;IACA,IAAAe,KAAO,YAAAA,CAAA,EAAQ;MACjB,IAAAC,SAAA,GAAAb,KAAA,CAAAtE,KAAA;MAEM,IAAAsD,GAAA,GAAA6B,SAAiB,IAAM,GAAAjE,iBAAkB,CAAGoB,cAAc,EAAA6C,SAAS,QAAS;MAQlF,IAAS,CAAAA,SAAA,KAAA7B,GAAA,EAAoB;MAC3B,IAAM8B,GAAA,OAAAlE,iBAAa,CAAA4B,iBAAa,EAAAQ,GAA4B;MAC5D,IAAMyB,WAAQ,CAAAM,IAAA,WAAAZ,OAAA,EAAgB;QACxB,OAAM,IAAAvD,iBAAsB,CAAA6B,aAAA,EAAAqC,GAAA,EAAAX,OAAA,IAAAvD,iBAAA,CAAA8B,mBAAA;MAClC,EAAM,SAAS,UAAQ;MACvB,IAAMsC,MAAO,GAAAjC,QAAU,CAAAC,GAAA;MACvB,IAAOgC,MAAA,GAAAL,UAAA;QACLA,UAAY,GAAKK,MAAK;QACtBN,IAAA,GAAAG,SAAa;MACb;IACA;IACA,KAAK,IAAAf,SAAA,GAAAU,UAAyB,CAAAxD,MAAA,CAAS+C,QAAK,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA,SAAAiB,KAAA;EAC9C,SAAAP,GAAA;IACFT,iBAAA;IAYOC,cAAS,GAAAQ,GAAA;EACd,UAAQ;IACR,IAAM;MACN,IAAM,CAAAV,yBAA2B,IAAGG,SAAA,CAAAQ,MAAA;QACpCR,SAAO,CAAAQ,MAAA;MACL;IAA2F;MAE1F,IAAAV,iBAAc,EAAS;QAC1B,MAAAC,cAAA;MACF;IASO;EACL;EACA,OAAMa,IAAA;AACN;AAAO,SACL3E,kBAAMA,CAAAoC,KAAqB;EAAqC;IAAAqC,UAAA;IAAAf,QAAA;IAAA3B;EAAA,IAAAK,KAAA;EAAA,IAE/D8C,gBAAc;EACjB,QAAAA,gBAAA,GAAAV,eAAA,CAAAC,UAAA,EAAAf,QAAA,eAAAwB,gBAAA,cAAAA,gBAAA,GAAAnD,GAAA;AACF;AAOO,SAASjC,sBAKdA,CAAAsC,KAAA;EACA;IAAM+C,QAAE;IAAAC,WAAgB;IAAI1B,QAAQ;IAAA3B;EAAA,IAAAK,KAAA;EACpC,IAAAiD,IAAM,GAAAb,eAAe,CAAAW,QAAW,EAAKzB,QAAG;EACxC,IAAA2B,IAAM,SAAMA,IAAA;EAAA,IACVX,WAAM,GAAAjB,iBAAgB,CAAYC,QAAQ;EAAA,KAAAgB,WAAA,SAAA3C,GAAA;EAAA,IAEzC4C,IAAA;EACH,IAAAW,OAAA,GAAAC,MAAA,CAAAC,iBAAA;EACA,IAAA5B,yBAA0B;IAAAC,iBAAA;IAAAC,cAAA;EAC5B;IAEA,IAAMe,KAAA,YAAAA,CAAA,EAAoB;MAYnB,IAASY,IAAA,GAAAxB,KAAA,CAAAtE,KAAA;MACd,IAAAsD,GAAA,GAAAwC,IAAA,OAAA5E,iBAAA,CAAAoB,cAAA,EAAAwD,IAAA;MACA,KAAAA,IAAA,KAAAxC,GAAA;MACsD,IAAAyC,OAAA,OAAA7E,iBAAA,CAAA4B,iBAAA,EAAAQ,GAAA;MACtD,IAAMO,GAAA,GAAAF,IAAW,CAAAE,GAAA,IAAAkB,WAAQ,CAAAvB,GAAA,WAAAiB,OAAA;QACnB,WAAWvD,iBAAQ,CAAA6B,aAAA,EAAAgD,OAAA,EAAAtB,OAAe;MACpC,CAAC;MACL,IAAMZ,GAAA,IAAA3C,iBAAW,CAAA8B,mBAAA,IAAAa,GAAkB,GAAA8B,OAAQ;QACrCA,OAAA,GAAA9B,GAAY;QACZmB,IAAA,GAAAc,IAAW;MACjB;IACE;IACA,SAAM1B,SAAU,GAAAqB,WACb,CAAAnE,MAAA,CAAA+C,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA,SAAAiB,KAAA;EAAA,SAAKP,GAAA,EAAS;IAIfT,iBACS;IACXC,cAAI,GAAAQ,GAAA;EACN;IACA;MACF,KAAAV,yBAAA,IAAAG,SAAA,CAAAQ,MAAA;QAGOR,SAAS,CAAAQ,MAAA;MACd;IACA,UAAM;MACN,IAAMV,iBAAQ;QACd,MAAOC,cAAA;MACT","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","readableColor_exports","__export","resolveAccentOnSurface","resolveAccentTintedSurface","resolveActiveTabInk","resolveIdentityInk","resolveLegibleInkOn","useAccentOnSurface","useAccentTintedSurface","useActiveTabInk","useIdentityHue","useIdentityInkOnSurface","useLegibleInkOn","useReadableTextOn","module","exports","import_react","require","import_tamagui","import_colorRules","import_controlTiers","import_createThemes","_type_of","obj","Symbol","constructor","resolveTokenValue","theme","token","_theme_key","key","startsWith","slice","val","fill_","useTheme","fill","paper","ink","useMemo","normalizeToHex","holdInkFloor","pickReadableForeground","param","preferred","fillHex","preferredHex","fillLum","relativeLuminance","contrastRatio","aaTextContrastRatio","anchor","preferredValue","resolved","IDENTITY_CHROMA_FLOOR","chromaOf","hex","rgb","map","offset","parseInt","Math","max","min","surfaceLuminances","surfaces","lums","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","surface","push","err","return","pickIdentityInk","candidates","surfaceLums","best","bestChroma","_loop","candidate","lum","some","chroma","_pickIdentityInk","identity","accentSteps","hued","bestMin","Number","POSITIVE_INFINITY","step","stepLum","accentStepKeys","Array","from","length","_","index","useIdentityInputs","_useThemeName","_resolveTokenValue","themeName","useThemeName","hue","split","isTint","tintHueNames","has","keys"],"sources":["../../../src/theme/readableColor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -482,6 +482,135 @@ const stateRecipes = {
482
482
  }
483
483
  }
484
484
  };
485
+ function smoothingFor(knobs) {
486
+ const smoothing = cornerSmoothingStyle[knobs.cornerSmoothing ?? "round"];
487
+ const arcless = knobs.borderRadius === "none";
488
+ return {
489
+ scaleSmoothing: arcless || knobs.borderRadius === "full" ? void 0 : smoothing,
490
+ containerSmoothing: arcless ? void 0 : smoothing
491
+ };
492
+ }
493
+ function edgeRulesFor(knobs) {
494
+ const outlined = knobs.fillStyle === "outlined";
495
+ const smallEdge = knobs.borderWidth === "small" || outlined && knobs.borderWidth === "none";
496
+ const borderWidthValue = smallEdge ? borderWidthMap.small : borderWidthMap[knobs.borderWidth];
497
+ const edge = (color, width) => smallEdge && width >= borderWidthMap.medium ? fainterEdge(color) : color;
498
+ const overlayEdgeWidth = Math.max(borderWidthValue, borderWidthMap.small);
499
+ const flooredSmall = smallEdge || knobs.borderWidth === "none";
500
+ const overlayEdge = color => flooredSmall && overlayEdgeWidth >= borderWidthMap.medium ? fainterEdge(color) : color;
501
+ return {
502
+ outlined,
503
+ smallEdge,
504
+ borderWidthValue,
505
+ edge,
506
+ overlayEdgeWidth,
507
+ overlayEdge
508
+ };
509
+ }
510
+ const nonEmpty = obj => Object.keys(obj).length > 0 ? obj : void 0;
511
+ function stateRecipesFor(knobs) {
512
+ const hover = resolveStateKnobs(knobs.hover);
513
+ const press = resolveStateKnobs(knobs.press);
514
+ const focus = resolveStateKnobs(knobs.focus);
515
+ const focusVisible = resolveStateKnobs(knobs.focusVisible);
516
+ const control = {
517
+ hoverKnobProps: (0, import_focusState.withDefaultStateLayer)(hover.control, import_focusState.STATE_LAYER_HOVER),
518
+ pressKnobProps: (0, import_focusState.withDefaultStateLayer)(press.control, import_focusState.STATE_LAYER_PRESS),
519
+ focusKnobProps: nonEmpty(focus.control),
520
+ focusVisibleKnobProps: (0, import_focusState.ensureFocusVisibleRing)(focusVisible.control)
521
+ };
522
+ const text = {
523
+ hoverKnobProps: nonEmpty(hover.text),
524
+ pressKnobProps: nonEmpty(press.text),
525
+ focusKnobProps: nonEmpty(focus.text),
526
+ focusVisibleKnobProps: nonEmpty(focusVisible.text)
527
+ };
528
+ const elevation = {
529
+ hoverKnobProps: nonEmpty(hover.elevation),
530
+ pressKnobProps: nonEmpty(press.elevation),
531
+ focusKnobProps: nonEmpty(focus.elevation),
532
+ focusVisibleKnobProps: nonEmpty(focusVisible.elevation)
533
+ };
534
+ return {
535
+ control,
536
+ text,
537
+ elevation
538
+ };
539
+ }
540
+ function boldWeight(knobs) {
541
+ return knobs.fontWeight === "bold" ? {
542
+ fontWeight: "700"
543
+ } : {};
544
+ }
545
+ function cardEdgeWidth(borderWidth) {
546
+ if (borderWidth === "none") return 0;
547
+ if (borderWidth === "large") return borderWidthMap.large;
548
+ return borderWidthMap.small;
549
+ }
550
+ function cardSurfaceFor(knobs, scheme, frame) {
551
+ const {
552
+ painted,
553
+ radius,
554
+ padding,
555
+ smoothing
556
+ } = frame;
557
+ if (painted) {
558
+ return {
559
+ backgroundColor: paintedCardFill,
560
+ borderRadius: radius,
561
+ padding,
562
+ ...smoothing
563
+ };
564
+ }
565
+ return {
566
+ backgroundColor: "$background",
567
+ borderColor: knobs.borderWidth === "large" ? "$borderColor" : edgeColorAt("$borderColor", "small"),
568
+ borderWidth: cardEdgeWidth(knobs.borderWidth),
569
+ borderRadius: radius,
570
+ padding,
571
+ ...cardLiftFor(cardElevationMap[knobs.elevation], scheme),
572
+ ...smoothing
573
+ };
574
+ }
575
+ function elevatedSurfaceFor(scheme, frame) {
576
+ const {
577
+ painted,
578
+ radius,
579
+ smoothing,
580
+ edge,
581
+ edgeWidth,
582
+ elevationToken
583
+ } = frame;
584
+ if (painted) {
585
+ return {
586
+ backgroundColor: "$background",
587
+ borderColor: edge,
588
+ borderWidth: edgeWidth,
589
+ borderRadius: radius,
590
+ elevation: void 0,
591
+ ...smoothing
592
+ };
593
+ }
594
+ if (scheme === "dark") {
595
+ return {
596
+ backgroundColor: surface2.fill,
597
+ borderColor: "transparent",
598
+ borderWidth: 0,
599
+ borderRadius: radius,
600
+ elevation: void 0,
601
+ ...smoothing
602
+ };
603
+ }
604
+ return {
605
+ backgroundColor: "$background",
606
+ borderColor: edge,
607
+ borderWidth: edgeWidth,
608
+ borderRadius: radius,
609
+ elevation: platformElevation(elevationToken),
610
+ ...elevationPaint(elevationToken),
611
+ ...smoothing
612
+ };
613
+ }
485
614
  function resolveKnobs(knobs, override, scheme = "light", environment) {
486
615
  const radiusToken = borderRadiusMap[knobs.borderRadius];
487
616
  const nestedRadiusToken = nestedRadiusMap[knobs.borderRadius];
@@ -507,44 +636,29 @@ function resolveKnobs(knobs, override, scheme = "light", environment) {
507
636
  const bodyFontValue = bodyFontMap[knobs.bodyFont] ?? "$body";
508
637
  const motion = (0, import_motion.motionFor)(knobs.animation);
509
638
  const containerRadiusValue = capContainerRadius(knobs.borderRadius);
510
- const smoothing = cornerSmoothingStyle[knobs.cornerSmoothing ?? "round"];
511
- const scaleSmoothing = knobs.borderRadius === "none" || knobs.borderRadius === "full" ? void 0 : smoothing;
512
- const containerSmoothing = knobs.borderRadius === "none" ? void 0 : smoothing;
513
- const outlined = knobs.fillStyle === "outlined";
514
- const smallEdge = knobs.borderWidth === "small" || outlined && knobs.borderWidth === "none";
515
- const borderWidthValue = smallEdge ? borderWidthMap.small : borderWidthMap[knobs.borderWidth];
516
- const edge = (color, width) => smallEdge && width >= borderWidthMap.medium ? fainterEdge(color) : color;
639
+ const {
640
+ scaleSmoothing,
641
+ containerSmoothing
642
+ } = smoothingFor(knobs);
643
+ const {
644
+ outlined,
645
+ smallEdge,
646
+ borderWidthValue,
647
+ edge,
648
+ overlayEdgeWidth,
649
+ overlayEdge
650
+ } = edgeRulesFor(knobs);
517
651
  const elevationToken = elevationMap[knobs.elevation];
518
652
  const overlayElevationToken = overlayElevationMap[knobs.elevation];
519
- const overlayPaintProps = elevationPaint(overlayElevationToken);
520
- const overlayEdgeWidth = Math.max(borderWidthValue, borderWidthMap.small);
521
- const overlayEdge = color => (smallEdge || knobs.borderWidth === "none") && overlayEdgeWidth >= borderWidthMap.medium ? fainterEdge(color) : color;
522
653
  const elevationChrome = elevationChromeFor(elevationToken);
523
654
  const textAccentColor = textAccentColorMap[knobs.textAccent] ?? "$color";
524
655
  const inputBackground = outlined ? "transparent" : "$background";
525
- const hover = resolveStateKnobs(knobs.hover);
526
- const press = resolveStateKnobs(knobs.press);
527
- const focus = resolveStateKnobs(knobs.focus);
528
- const focusVisible = resolveStateKnobs(knobs.focusVisible);
529
- const nonEmpty = obj => Object.keys(obj).length > 0 ? obj : void 0;
530
- const control = {
531
- hoverKnobProps: (0, import_focusState.withDefaultStateLayer)(hover.control, import_focusState.STATE_LAYER_HOVER),
532
- pressKnobProps: (0, import_focusState.withDefaultStateLayer)(press.control, import_focusState.STATE_LAYER_PRESS),
533
- focusKnobProps: nonEmpty(focus.control),
534
- focusVisibleKnobProps: (0, import_focusState.ensureFocusVisibleRing)(focusVisible.control)
535
- };
536
- const text = {
537
- hoverKnobProps: nonEmpty(hover.text),
538
- pressKnobProps: nonEmpty(press.text),
539
- focusKnobProps: nonEmpty(focus.text),
540
- focusVisibleKnobProps: nonEmpty(focusVisible.text)
541
- };
542
- const elevation = {
543
- hoverKnobProps: nonEmpty(hover.elevation),
544
- pressKnobProps: nonEmpty(press.elevation),
545
- focusKnobProps: nonEmpty(focus.elevation),
546
- focusVisibleKnobProps: nonEmpty(focusVisible.elevation)
547
- };
656
+ const {
657
+ control,
658
+ text,
659
+ elevation
660
+ } = stateRecipesFor(knobs);
661
+ const bold = boldWeight(knobs);
548
662
  const nestedRadius = {
549
663
  borderRadius: nestedRadiusToken,
550
664
  ...containerSmoothing
@@ -594,42 +708,20 @@ function resolveKnobs(knobs, override, scheme = "light", environment) {
594
708
  // the Card template) with a hairline edge and a hair of lift. Under a
595
709
  // painted ancestor it is one fill step off its parent, edge and lift off,
596
710
  // so a card on a card never stacks a second shadow (WP-c2).
597
- cardSurface: painted ? {
598
- backgroundColor: paintedCardFill,
599
- borderRadius: containerRadiusValue,
711
+ cardSurface: cardSurfaceFor(knobs, scheme, {
712
+ painted,
713
+ radius: containerRadiusValue,
600
714
  padding: paddingToken,
601
- ...containerSmoothing
602
- } : {
603
- backgroundColor: "$background",
604
- borderColor: knobs.borderWidth === "large" ? "$borderColor" : edgeColorAt("$borderColor", "small"),
605
- borderWidth: knobs.borderWidth === "none" ? 0 : knobs.borderWidth === "large" ? borderWidthMap.large : borderWidthMap.small,
606
- borderRadius: containerRadiusValue,
607
- padding: paddingToken,
608
- ...cardLiftFor(cardElevationMap[knobs.elevation], scheme),
609
- ...containerSmoothing
610
- },
611
- elevatedSurface: painted ? {
612
- backgroundColor: "$background",
613
- borderColor: overlayEdge("$borderColor"),
614
- borderWidth: overlayEdgeWidth,
615
- borderRadius: radiusToken,
616
- elevation: void 0,
617
- ...scaleSmoothing
618
- } : {
619
- backgroundColor: scheme === "dark" ? surface2.fill : "$background",
620
- // Light: an overlay fills the page's own white, so it always keeps at
621
- // least the hairline, even on a chromeless preset (FZ-8116).
622
- borderColor: scheme === "dark" ? "transparent" : overlayEdge("$borderColor"),
623
- // Dark draws no edge at all: on iOS a transparent border on a sheet
624
- // mounted under a light OS painted the light $borderColor (FZ-8116).
625
- borderWidth: scheme === "dark" ? 0 : overlayEdgeWidth,
626
- borderRadius: radiusToken,
627
- elevation: scheme === "dark" ? void 0 : platformElevation(overlayElevationToken),
628
- // Dark lifts an overlay by its lighter fill, as the card lift does: a
629
- // black shadow on a near-black page reads as a smudge (FZ-8116).
630
- ...(scheme === "dark" ? void 0 : overlayPaintProps),
631
- ...scaleSmoothing
632
- },
715
+ smoothing: containerSmoothing
716
+ }),
717
+ elevatedSurface: elevatedSurfaceFor(scheme, {
718
+ painted,
719
+ radius: radiusToken,
720
+ smoothing: scaleSmoothing,
721
+ edge: overlayEdge("$borderColor"),
722
+ edgeWidth: overlayEdgeWidth,
723
+ elevationToken: overlayElevationToken
724
+ }),
633
725
  featureSurface: {
634
726
  backgroundColor: "$background",
635
727
  borderRadius: featureRadiusMap[knobs.borderRadius],
@@ -667,9 +759,7 @@ function resolveKnobs(knobs, override, scheme = "light", environment) {
667
759
  label: {
668
760
  fontSize: labelFontSizeFor(sizeToken),
669
761
  fontFamily: bodyFontValue,
670
- ...(knobs.fontWeight === "bold" ? {
671
- fontWeight: "700"
672
- } : {})
762
+ ...bold
673
763
  },
674
764
  nestedControl: {
675
765
  px: nestedPx,
@@ -720,9 +810,7 @@ function resolveKnobs(knobs, override, scheme = "light", environment) {
720
810
  },
721
811
  heading: {
722
812
  fontFamily: headingFontMap[knobs.headingFont],
723
- ...(knobs.fontWeight === "bold" ? {
724
- fontWeight: "700"
725
- } : {})
813
+ ...bold
726
814
  },
727
815
  pageTitle: resolvePageTitleScale(knobs.pageTitleScale ?? "moderate"),
728
816
  textRole: resolveTextRoles(sizeToken, knobs.fontWeight === "bold"),