@tamagui/text 1.27.3 → 1.28.1

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.
@@ -31,7 +31,10 @@ __export(wrapChildrenInText_exports, {
31
31
  wrapChildrenInText: () => wrapChildrenInText
32
32
  });
33
33
  module.exports = __toCommonJS(wrapChildrenInText_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_jsx_runtime = (
35
+ // so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
36
+ require("react/jsx-runtime")
37
+ );
35
38
  var import_react = __toESM(require("react"));
36
39
  function wrapChildrenInText(TextComponent, propsIn, extraProps) {
37
40
  const {
@@ -50,9 +53,6 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
50
53
  if (noTextWrap || !children) {
51
54
  return [children];
52
55
  }
53
- const allChildren = import_react.default.Children.toArray(children);
54
- const nextChildren = [];
55
- let lastIsString = false;
56
56
  const props = {
57
57
  ...extraProps
58
58
  };
@@ -72,30 +72,9 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
72
72
  props.size = size;
73
73
  if (fontStyle)
74
74
  props.fontStyle = fontStyle;
75
- function concatStringChildren() {
76
- if (!lastIsString)
77
- return;
78
- const index = nextChildren.length - 1;
79
- const childrenStrings = nextChildren[index];
80
- nextChildren[index] = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TextComponent, { ...props, ...textProps, children: childrenStrings }, index);
81
- }
82
- for (const child of allChildren) {
83
- const last = nextChildren[nextChildren.length - 1];
84
- const isString = typeof child === "string";
85
- if (isString) {
86
- if (lastIsString) {
87
- last.push(child);
88
- } else {
89
- nextChildren.push([child]);
90
- }
91
- } else {
92
- concatStringChildren();
93
- nextChildren.push(child);
94
- }
95
- lastIsString = isString;
96
- }
97
- concatStringChildren();
98
- return nextChildren;
75
+ return import_react.default.Children.toArray(children).map((child, index) => {
76
+ return typeof child === "string" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TextComponent, { "data-disable-theme": true, ...props, ...textProps, children: child }, index) : child;
77
+ });
99
78
  }
100
79
  // Annotate the CommonJS export names for ESM import in node:
101
80
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapChildrenInText.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8DM;AA7DN,mBAAkB;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAOA,QAAM,cAAc,aAAAA,QAAM,SAAS,QAAQ,QAAQ;AACnD,QAAM,eAAsB,CAAC;AAC7B,MAAI,eAAe;AACnB,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,WAAS,uBAAuB;AAC9B,QAAI,CAAC;AAAc;AACnB,UAAM,QAAQ,aAAa,SAAS;AACpC,UAAM,kBAAkB,aAAa,KAAK;AAC1C,iBAAa,KAAK,IAChB,4CAAC,iBAA2B,GAAG,OAAQ,GAAG,WACvC,6BADiB,KAEpB;AAAA,EAEJ;AAEA,aAAW,SAAS,aAAa;AAC/B,UAAM,OAAO,aAAa,aAAa,SAAS,CAAC;AACjD,UAAM,WAAW,OAAO,UAAU;AAClC,QAAI,UAAU;AACZ,UAAI,cAAc;AAChB,aAAK,KAAK,KAAK;AAAA,MACjB,OAAO;AACL,qBAAa,KAAK,CAAC,KAAK,CAAC;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,2BAAqB;AACrB,mBAAa,KAAK,KAAK;AAAA,IACzB;AACA,mBAAe;AAAA,EACjB;AACA,uBAAqB;AAErB,SAAO;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoDM;AAAA;AAAA;AAAA;AAnDN,mBAAkB;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAEA,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,SAAO,aAAAA,QAAM,SAAS,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,UAAU;AAC5D,WAAO,OAAO,UAAU,WAEtB,4CAAC,iBAAc,sBAAkB,MAAc,GAAG,OAAQ,GAAG,WAC1D,mBADoC,KAEvC,IAEA;AAAA,EAEJ,CAAC;AACH;",
5
5
  "names": ["React"]
6
6
  }
@@ -17,9 +17,6 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
17
17
  if (noTextWrap || !children) {
18
18
  return [children];
19
19
  }
20
- const allChildren = React.Children.toArray(children);
21
- const nextChildren = [];
22
- let lastIsString = false;
23
20
  const props = {
24
21
  ...extraProps
25
22
  };
@@ -39,30 +36,12 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
39
36
  props.size = size;
40
37
  if (fontStyle)
41
38
  props.fontStyle = fontStyle;
42
- function concatStringChildren() {
43
- if (!lastIsString)
44
- return;
45
- const index = nextChildren.length - 1;
46
- const childrenStrings = nextChildren[index];
47
- nextChildren[index] = /* @__PURE__ */ jsx(TextComponent, { ...props, ...textProps, children: childrenStrings }, index);
48
- }
49
- for (const child of allChildren) {
50
- const last = nextChildren[nextChildren.length - 1];
51
- const isString = typeof child === "string";
52
- if (isString) {
53
- if (lastIsString) {
54
- last.push(child);
55
- } else {
56
- nextChildren.push([child]);
57
- }
58
- } else {
59
- concatStringChildren();
60
- nextChildren.push(child);
61
- }
62
- lastIsString = isString;
63
- }
64
- concatStringChildren();
65
- return nextChildren;
39
+ return React.Children.toArray(children).map((child, index) => {
40
+ return typeof child === "string" ? (
41
+ // so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
42
+ /* @__PURE__ */ jsx(TextComponent, { "data-disable-theme": true, ...props, ...textProps, children: child }, index)
43
+ ) : child;
44
+ });
66
45
  }
67
46
  export {
68
47
  wrapChildrenInText
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapChildrenInText.tsx"],
4
- "mappings": "AA8DM;AA7DN,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAOA,QAAM,cAAc,MAAM,SAAS,QAAQ,QAAQ;AACnD,QAAM,eAAsB,CAAC;AAC7B,MAAI,eAAe;AACnB,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,WAAS,uBAAuB;AAC9B,QAAI,CAAC;AAAc;AACnB,UAAM,QAAQ,aAAa,SAAS;AACpC,UAAM,kBAAkB,aAAa,KAAK;AAC1C,iBAAa,KAAK,IAChB,oBAAC,iBAA2B,GAAG,OAAQ,GAAG,WACvC,6BADiB,KAEpB;AAAA,EAEJ;AAEA,aAAW,SAAS,aAAa;AAC/B,UAAM,OAAO,aAAa,aAAa,SAAS,CAAC;AACjD,UAAM,WAAW,OAAO,UAAU;AAClC,QAAI,UAAU;AACZ,UAAI,cAAc;AAChB,aAAK,KAAK,KAAK;AAAA,MACjB,OAAO;AACL,qBAAa,KAAK,CAAC,KAAK,CAAC;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,2BAAqB;AACrB,mBAAa,KAAK,KAAK;AAAA,IACzB;AACA,mBAAe;AAAA,EACjB;AACA,uBAAqB;AAErB,SAAO;AACT;",
4
+ "mappings": "AAoDM;AAnDN,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAEA,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,SAAO,MAAM,SAAS,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,UAAU;AAC5D,WAAO,OAAO,UAAU;AAAA;AAAA,MAEtB,oBAAC,iBAAc,sBAAkB,MAAc,GAAG,OAAQ,GAAG,WAC1D,mBADoC,KAEvC;AAAA,QAEA;AAAA,EAEJ,CAAC;AACH;",
5
5
  "names": []
6
6
  }
@@ -16,9 +16,6 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
16
16
  if (noTextWrap || !children) {
17
17
  return [children];
18
18
  }
19
- const allChildren = React.Children.toArray(children);
20
- const nextChildren = [];
21
- let lastIsString = false;
22
19
  const props = {
23
20
  ...extraProps
24
21
  };
@@ -38,30 +35,12 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
38
35
  props.size = size;
39
36
  if (fontStyle)
40
37
  props.fontStyle = fontStyle;
41
- function concatStringChildren() {
42
- if (!lastIsString)
43
- return;
44
- const index = nextChildren.length - 1;
45
- const childrenStrings = nextChildren[index];
46
- nextChildren[index] = <TextComponent key={index} {...props} {...textProps}>{childrenStrings}</TextComponent>;
47
- }
48
- for (const child of allChildren) {
49
- const last = nextChildren[nextChildren.length - 1];
50
- const isString = typeof child === "string";
51
- if (isString) {
52
- if (lastIsString) {
53
- last.push(child);
54
- } else {
55
- nextChildren.push([child]);
56
- }
57
- } else {
58
- concatStringChildren();
59
- nextChildren.push(child);
60
- }
61
- lastIsString = isString;
62
- }
63
- concatStringChildren();
64
- return nextChildren;
38
+ return React.Children.toArray(children).map((child, index) => {
39
+ return typeof child === "string" ? (
40
+ // so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
41
+ <TextComponent data-disable-theme key={index} {...props} {...textProps}>{child}</TextComponent>
42
+ ) : child;
43
+ });
65
44
  }
66
45
  export {
67
46
  wrapChildrenInText
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapChildrenInText.tsx"],
4
- "mappings": "AACA,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAOA,QAAM,cAAc,MAAM,SAAS,QAAQ,QAAQ;AACnD,QAAM,eAAsB,CAAC;AAC7B,MAAI,eAAe;AACnB,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,WAAS,uBAAuB;AAC9B,QAAI,CAAC;AAAc;AACnB,UAAM,QAAQ,aAAa,SAAS;AACpC,UAAM,kBAAkB,aAAa,KAAK;AAC1C,iBAAa,KAAK,IAChB,CAAC,cAAc,KAAK,WAAW,WAAW,YACvC,gBACH,EAFC;AAAA,EAIL;AAEA,aAAW,SAAS,aAAa;AAC/B,UAAM,OAAO,aAAa,aAAa,SAAS,CAAC;AACjD,UAAM,WAAW,OAAO,UAAU;AAClC,QAAI,UAAU;AACZ,UAAI,cAAc;AAChB,aAAK,KAAK,KAAK;AAAA,MACjB,OAAO;AACL,qBAAa,KAAK,CAAC,KAAK,CAAC;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,2BAAqB;AACrB,mBAAa,KAAK,KAAK;AAAA,IACzB;AACA,mBAAe;AAAA,EACjB;AACA,uBAAqB;AAErB,SAAO;AACT;",
4
+ "mappings": "AACA,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAEA,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,SAAO,MAAM,SAAS,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,UAAU;AAC5D,WAAO,OAAO,UAAU;AAAA;AAAA,MAEtB,CAAC,cAAc,mBAAmB,KAAK,WAAW,WAAW,YAC1D,MACH,EAFC;AAAA,QAID;AAAA,EAEJ,CAAC;AACH;",
5
5
  "names": []
6
6
  }
@@ -16,9 +16,6 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
16
16
  if (noTextWrap || !children) {
17
17
  return [children];
18
18
  }
19
- const allChildren = React.Children.toArray(children);
20
- const nextChildren = [];
21
- let lastIsString = false;
22
19
  const props = {
23
20
  ...extraProps
24
21
  };
@@ -38,30 +35,12 @@ function wrapChildrenInText(TextComponent, propsIn, extraProps) {
38
35
  props.size = size;
39
36
  if (fontStyle)
40
37
  props.fontStyle = fontStyle;
41
- function concatStringChildren() {
42
- if (!lastIsString)
43
- return;
44
- const index = nextChildren.length - 1;
45
- const childrenStrings = nextChildren[index];
46
- nextChildren[index] = <TextComponent key={index} {...props} {...textProps}>{childrenStrings}</TextComponent>;
47
- }
48
- for (const child of allChildren) {
49
- const last = nextChildren[nextChildren.length - 1];
50
- const isString = typeof child === "string";
51
- if (isString) {
52
- if (lastIsString) {
53
- last.push(child);
54
- } else {
55
- nextChildren.push([child]);
56
- }
57
- } else {
58
- concatStringChildren();
59
- nextChildren.push(child);
60
- }
61
- lastIsString = isString;
62
- }
63
- concatStringChildren();
64
- return nextChildren;
38
+ return React.Children.toArray(children).map((child, index) => {
39
+ return typeof child === "string" ? (
40
+ // so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
41
+ <TextComponent data-disable-theme key={index} {...props} {...textProps}>{child}</TextComponent>
42
+ ) : child;
43
+ });
65
44
  }
66
45
  export {
67
46
  wrapChildrenInText
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapChildrenInText.tsx"],
4
- "mappings": "AACA,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAOA,QAAM,cAAc,MAAM,SAAS,QAAQ,QAAQ;AACnD,QAAM,eAAsB,CAAC;AAC7B,MAAI,eAAe;AACnB,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,WAAS,uBAAuB;AAC9B,QAAI,CAAC;AAAc;AACnB,UAAM,QAAQ,aAAa,SAAS;AACpC,UAAM,kBAAkB,aAAa,KAAK;AAC1C,iBAAa,KAAK,IAChB,CAAC,cAAc,KAAK,WAAW,WAAW,YACvC,gBACH,EAFC;AAAA,EAIL;AAEA,aAAW,SAAS,aAAa;AAC/B,UAAM,OAAO,aAAa,aAAa,SAAS,CAAC;AACjD,UAAM,WAAW,OAAO,UAAU;AAClC,QAAI,UAAU;AACZ,UAAI,cAAc;AAChB,aAAK,KAAK,KAAK;AAAA,MACjB,OAAO;AACL,qBAAa,KAAK,CAAC,KAAK,CAAC;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,2BAAqB;AACrB,mBAAa,KAAK,KAAK;AAAA,IACzB;AACA,mBAAe;AAAA,EACjB;AACA,uBAAqB;AAErB,SAAO;AACT;",
4
+ "mappings": "AACA,OAAO,WAAW;AASX,SAAS,mBACd,eACA,SAGA,YACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,cAAc,CAAC,UAAU;AAC3B,WAAO,CAAC,QAAQ;AAAA,EAClB;AAEA,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,EACL;AAGA,MAAI;AAAO,UAAM,QAAQ;AACzB,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAU,UAAM,WAAW;AAC/B,MAAI;AAAY,UAAM,aAAa;AACnC,MAAI;AAAe,UAAM,gBAAgB;AACzC,MAAI;AAAW,UAAM,YAAY;AACjC,MAAI;AAAM,UAAM,OAAO;AACvB,MAAI;AAAW,UAAM,YAAY;AAEjC,SAAO,MAAM,SAAS,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,UAAU;AAC5D,WAAO,OAAO,UAAU;AAAA;AAAA,MAEtB,CAAC,cAAc,mBAAmB,KAAK,WAAW,WAAW,YAC1D,MACH,EAFC;AAAA,QAID;AAAA,EAEJ,CAAC;AACH;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/text",
3
- "version": "1.27.3",
3
+ "version": "1.28.1",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -31,15 +31,15 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/get-font-sized": "1.27.3",
35
- "@tamagui/helpers-tamagui": "1.27.3",
36
- "@tamagui/web": "1.27.3"
34
+ "@tamagui/get-font-sized": "1.28.1",
35
+ "@tamagui/helpers-tamagui": "1.28.1",
36
+ "@tamagui/web": "1.28.1"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": "*"
40
40
  },
41
41
  "devDependencies": {
42
- "@tamagui/build": "1.27.3",
42
+ "@tamagui/build": "1.28.1",
43
43
  "react": "^18.2.0"
44
44
  },
45
45
  "publishConfig": {
package/src/types.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SizableTextProps } from './SizableText'
2
2
 
3
- export type TextParentStyles = {
3
+ export type TextContextStyles = {
4
4
  color?: SizableTextProps['color']
5
5
  fontWeight?: SizableTextProps['fontWeight']
6
6
  fontSize?: SizableTextProps['fontSize']
@@ -8,6 +8,9 @@ export type TextParentStyles = {
8
8
  fontStyle?: SizableTextProps['fontStyle']
9
9
  letterSpacing?: SizableTextProps['letterSpacing']
10
10
  textAlign?: SizableTextProps['textAlign']
11
+ }
12
+
13
+ export type TextParentStyles = TextContextStyles & {
11
14
  // all the other text controls
12
15
  textProps?: Partial<SizableTextProps>
13
16
  noTextWrap?: boolean
@@ -33,14 +33,6 @@ export function wrapChildrenInText(
33
33
  return [children]
34
34
  }
35
35
 
36
- // in the case of using variables, like so:
37
- // <ListItem>Hello, {name}</ListItem>
38
- // it gives us props.children as ['Hello, ', 'name']
39
- // but we don't want to wrap multiple SizableText around each part
40
- // so we group them
41
- const allChildren = React.Children.toArray(children)
42
- const nextChildren: any[] = []
43
- let lastIsString = false
44
36
  const props = {
45
37
  ...extraProps,
46
38
  }
@@ -55,33 +47,14 @@ export function wrapChildrenInText(
55
47
  if (size) props.size = size
56
48
  if (fontStyle) props.fontStyle = fontStyle
57
49
 
58
- function concatStringChildren() {
59
- if (!lastIsString) return
60
- const index = nextChildren.length - 1
61
- const childrenStrings = nextChildren[index]
62
- nextChildren[index] = (
63
- <TextComponent key={index} {...props} {...textProps}>
64
- {childrenStrings}
50
+ return React.Children.toArray(children).map((child, index) => {
51
+ return typeof child === 'string' ? (
52
+ // so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
53
+ <TextComponent data-disable-theme key={index} {...props} {...textProps}>
54
+ {child}
65
55
  </TextComponent>
56
+ ) : (
57
+ child
66
58
  )
67
- }
68
-
69
- for (const child of allChildren) {
70
- const last = nextChildren[nextChildren.length - 1]
71
- const isString = typeof child === 'string'
72
- if (isString) {
73
- if (lastIsString) {
74
- last.push(child)
75
- } else {
76
- nextChildren.push([child])
77
- }
78
- } else {
79
- concatStringChildren()
80
- nextChildren.push(child)
81
- }
82
- lastIsString = isString
83
- }
84
- concatStringChildren()
85
-
86
- return nextChildren
59
+ })
87
60
  }
package/types/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SizableTextProps } from './SizableText';
2
- export type TextParentStyles = {
2
+ export type TextContextStyles = {
3
3
  color?: SizableTextProps['color'];
4
4
  fontWeight?: SizableTextProps['fontWeight'];
5
5
  fontSize?: SizableTextProps['fontSize'];
@@ -7,6 +7,8 @@ export type TextParentStyles = {
7
7
  fontStyle?: SizableTextProps['fontStyle'];
8
8
  letterSpacing?: SizableTextProps['letterSpacing'];
9
9
  textAlign?: SizableTextProps['textAlign'];
10
+ };
11
+ export type TextParentStyles = TextContextStyles & {
10
12
  textProps?: Partial<SizableTextProps>;
11
13
  noTextWrap?: boolean;
12
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACjD,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAEzC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC3C,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACjD,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IAEjD,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA"}
@@ -7,6 +7,6 @@ type Props = TextParentStyles & {
7
7
  };
8
8
  export declare function wrapChildrenInText(TextComponent: any, propsIn: Props & {
9
9
  unstyled?: boolean;
10
- }, extraProps?: Record<string, any>): any[];
10
+ }, extraProps?: Record<string, any>): React.ReactNode[] | (number | React.ReactFragment | JSX.Element)[];
11
11
  export {};
12
12
  //# sourceMappingURL=wrapChildrenInText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapChildrenInText.d.ts","sourceRoot":"","sources":["../src/wrapChildrenInText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,KAAK,GAAG;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,EACD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAuEjC"}
1
+ {"version":3,"file":"wrapChildrenInText.d.ts","sourceRoot":"","sources":["../src/wrapChildrenInText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,KAAK,KAAK,GAAG,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,KAAK,GAAG;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,EACD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,sEA4CjC"}
@@ -1,40 +0,0 @@
1
- import React from 'react'
2
- import { expect, test } from 'vitest'
3
-
4
- import { wrapChildrenInText } from './wrapChildrenInText'
5
-
6
- const Comp = () => {}
7
- const re = <div data-id={Math.random()} />
8
- const reID = re.props['data-id']
9
-
10
- test('should wrap all string children, not wrap others', () => {
11
- const out = wrapChildrenInText(Comp, {
12
- children: [re, 'a', 'b', re, 'c', re, 'd'],
13
- }) as any
14
-
15
- expect(out[0].props['data-id']).toBe(reID)
16
-
17
- expect(out[1].type).toBe(Comp)
18
- expect(out[1].props.children).toStrictEqual(['a', 'b'])
19
-
20
- expect(out[2].props['data-id']).toBe(reID)
21
-
22
- expect(out[3].type).toBe(Comp)
23
- expect(out[3].props.children).toStrictEqual(['c'])
24
-
25
- expect(out[4].props['data-id']).toBe(reID)
26
-
27
- expect(out[5].type).toBe(Comp)
28
- expect(out[5].props.children).toStrictEqual(['d'])
29
- })
30
-
31
- test('should first child string', () => {
32
- const out = wrapChildrenInText(Comp, {
33
- children: ['a', re],
34
- }) as any
35
-
36
- expect(out[0].type).toBe(Comp)
37
- expect(out[0].props.children).toStrictEqual(['a'])
38
-
39
- expect(out[1].props['data-id']).toBe(reID)
40
- })