@multiplatform.one/markdown 7.4.1 → 7.6.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 (285) hide show
  1. package/dist/cjs/Aside/index.cjs +6 -4
  2. package/dist/cjs/Aside/index.native.js +6 -4
  3. package/dist/cjs/Aside/index.native.js.map +1 -1
  4. package/dist/cjs/Hr/index.cjs +2 -3
  5. package/dist/cjs/Hr/index.native.js +2 -3
  6. package/dist/cjs/Hr/index.native.js.map +1 -1
  7. package/dist/cjs/MarkdownSimpleTable/index.cjs +15 -15
  8. package/dist/cjs/MarkdownSimpleTable/index.native.js +17 -18
  9. package/dist/cjs/MarkdownSimpleTable/index.native.js.map +1 -1
  10. package/dist/cjs/MdxCodeBlock/index.cjs +9 -5
  11. package/dist/cjs/MdxCodeBlock/index.native.js +9 -5
  12. package/dist/cjs/MdxCodeBlock/index.native.js.map +1 -1
  13. package/dist/cjs/Table/index.cjs +20 -8
  14. package/dist/cjs/Table/index.native.js +20 -8
  15. package/dist/cjs/Table/index.native.js.map +1 -1
  16. package/dist/cjs/Video/index.cjs +11 -7
  17. package/dist/cjs/Video/index.native.js +12 -7
  18. package/dist/cjs/Video/index.native.js.map +1 -1
  19. package/dist/cjs/components/Blockquote.cjs +5 -4
  20. package/dist/cjs/components/Blockquote.native.js +7 -6
  21. package/dist/cjs/components/Blockquote.native.js.map +1 -1
  22. package/dist/cjs/components/CodeBlock.cjs +2 -2
  23. package/dist/cjs/components/CodeBlock.native.js +3 -3
  24. package/dist/cjs/components/CodeBlock.native.js.map +1 -1
  25. package/dist/cjs/components/Heading.cjs +1 -0
  26. package/dist/cjs/components/Heading.native.js +1 -0
  27. package/dist/cjs/components/Heading.native.js.map +1 -1
  28. package/dist/cjs/components/HorizontalRule.cjs +12 -1
  29. package/dist/cjs/components/HorizontalRule.native.js +12 -1
  30. package/dist/cjs/components/HorizontalRule.native.js.map +1 -1
  31. package/dist/cjs/components/Image.cjs +2 -2
  32. package/dist/cjs/components/Image.native.js +3 -2
  33. package/dist/cjs/components/Image.native.js.map +1 -1
  34. package/dist/cjs/components/InlineCode.cjs +2 -1
  35. package/dist/cjs/components/InlineCode.native.js +2 -1
  36. package/dist/cjs/components/InlineCode.native.js.map +1 -1
  37. package/dist/cjs/components/InlineStyles.cjs +14 -1
  38. package/dist/cjs/components/InlineStyles.native.js +14 -1
  39. package/dist/cjs/components/InlineStyles.native.js.map +1 -1
  40. package/dist/cjs/components/Link.cjs +5 -0
  41. package/dist/cjs/components/Link.native.js +5 -0
  42. package/dist/cjs/components/Link.native.js.map +1 -1
  43. package/dist/cjs/components/List.cjs +8 -1
  44. package/dist/cjs/components/List.native.js +11 -3
  45. package/dist/cjs/components/List.native.js.map +1 -1
  46. package/dist/cjs/components/Table.cjs +15 -9
  47. package/dist/cjs/components/Table.native.js +17 -12
  48. package/dist/cjs/components/Table.native.js.map +1 -1
  49. package/dist/cjs/mdxComponents.cjs +175 -108
  50. package/dist/cjs/mdxComponents.native.js +184 -113
  51. package/dist/cjs/mdxComponents.native.js.map +1 -1
  52. package/dist/cjs/mermaid/MermaidBlock.cjs +1 -1
  53. package/dist/cjs/mermaid/renderMermaidDiagram.native.js +11 -81
  54. package/dist/cjs/mermaid/renderMermaidDiagram.native.js.map +1 -1
  55. package/dist/cjs/shared/index.cjs +13 -1
  56. package/dist/cjs/shared/index.native.js +12 -0
  57. package/dist/cjs/shared/index.native.js.map +1 -1
  58. package/dist/cjs/shared/tokenPx.cjs +41 -0
  59. package/dist/cjs/shared/tokenPx.native.js +46 -0
  60. package/dist/cjs/shared/tokenPx.native.js.map +1 -0
  61. package/dist/cjs/shared/useMarkdownTableKnobs.cjs +61 -0
  62. package/dist/cjs/shared/useMarkdownTableKnobs.native.js +64 -0
  63. package/dist/cjs/shared/useMarkdownTableKnobs.native.js.map +1 -0
  64. package/dist/esm/Aside/index.mjs +6 -4
  65. package/dist/esm/Aside/index.mjs.map +1 -1
  66. package/dist/esm/Aside/index.native.js +6 -4
  67. package/dist/esm/Aside/index.native.js.map +1 -1
  68. package/dist/esm/Hr/index.mjs +2 -3
  69. package/dist/esm/Hr/index.mjs.map +1 -1
  70. package/dist/esm/Hr/index.native.js +2 -3
  71. package/dist/esm/Hr/index.native.js.map +1 -1
  72. package/dist/esm/MarkdownSimpleTable/index.mjs +15 -15
  73. package/dist/esm/MarkdownSimpleTable/index.mjs.map +1 -1
  74. package/dist/esm/MarkdownSimpleTable/index.native.js +17 -18
  75. package/dist/esm/MarkdownSimpleTable/index.native.js.map +1 -1
  76. package/dist/esm/MdxCodeBlock/index.mjs +9 -5
  77. package/dist/esm/MdxCodeBlock/index.mjs.map +1 -1
  78. package/dist/esm/MdxCodeBlock/index.native.js +9 -5
  79. package/dist/esm/MdxCodeBlock/index.native.js.map +1 -1
  80. package/dist/esm/Table/index.mjs +20 -8
  81. package/dist/esm/Table/index.mjs.map +1 -1
  82. package/dist/esm/Table/index.native.js +20 -8
  83. package/dist/esm/Table/index.native.js.map +1 -1
  84. package/dist/esm/Video/index.mjs +11 -7
  85. package/dist/esm/Video/index.mjs.map +1 -1
  86. package/dist/esm/Video/index.native.js +12 -7
  87. package/dist/esm/Video/index.native.js.map +1 -1
  88. package/dist/esm/components/Blockquote.mjs +5 -4
  89. package/dist/esm/components/Blockquote.mjs.map +1 -1
  90. package/dist/esm/components/Blockquote.native.js +7 -6
  91. package/dist/esm/components/Blockquote.native.js.map +1 -1
  92. package/dist/esm/components/CodeBlock.mjs +2 -2
  93. package/dist/esm/components/CodeBlock.mjs.map +1 -1
  94. package/dist/esm/components/CodeBlock.native.js +3 -3
  95. package/dist/esm/components/CodeBlock.native.js.map +1 -1
  96. package/dist/esm/components/Heading.mjs +1 -0
  97. package/dist/esm/components/Heading.mjs.map +1 -1
  98. package/dist/esm/components/Heading.native.js +1 -0
  99. package/dist/esm/components/Heading.native.js.map +1 -1
  100. package/dist/esm/components/HorizontalRule.mjs +13 -2
  101. package/dist/esm/components/HorizontalRule.mjs.map +1 -1
  102. package/dist/esm/components/HorizontalRule.native.js +13 -2
  103. package/dist/esm/components/HorizontalRule.native.js.map +1 -1
  104. package/dist/esm/components/Image.mjs +2 -2
  105. package/dist/esm/components/Image.mjs.map +1 -1
  106. package/dist/esm/components/Image.native.js +3 -2
  107. package/dist/esm/components/Image.native.js.map +1 -1
  108. package/dist/esm/components/InlineCode.mjs +2 -1
  109. package/dist/esm/components/InlineCode.mjs.map +1 -1
  110. package/dist/esm/components/InlineCode.native.js +2 -1
  111. package/dist/esm/components/InlineCode.native.js.map +1 -1
  112. package/dist/esm/components/InlineStyles.mjs +14 -1
  113. package/dist/esm/components/InlineStyles.mjs.map +1 -1
  114. package/dist/esm/components/InlineStyles.native.js +14 -1
  115. package/dist/esm/components/InlineStyles.native.js.map +1 -1
  116. package/dist/esm/components/Link.mjs +5 -0
  117. package/dist/esm/components/Link.mjs.map +1 -1
  118. package/dist/esm/components/Link.native.js +5 -0
  119. package/dist/esm/components/Link.native.js.map +1 -1
  120. package/dist/esm/components/List.mjs +8 -1
  121. package/dist/esm/components/List.mjs.map +1 -1
  122. package/dist/esm/components/List.native.js +11 -3
  123. package/dist/esm/components/List.native.js.map +1 -1
  124. package/dist/esm/components/Table.mjs +15 -9
  125. package/dist/esm/components/Table.mjs.map +1 -1
  126. package/dist/esm/components/Table.native.js +17 -12
  127. package/dist/esm/components/Table.native.js.map +1 -1
  128. package/dist/esm/mdxComponents.mjs +175 -108
  129. package/dist/esm/mdxComponents.mjs.map +1 -1
  130. package/dist/esm/mdxComponents.native.js +184 -113
  131. package/dist/esm/mdxComponents.native.js.map +1 -1
  132. package/dist/esm/mermaid/MermaidBlock.mjs +1 -1
  133. package/dist/esm/mermaid/MermaidBlock.mjs.map +1 -1
  134. package/dist/esm/mermaid/renderMermaidDiagram.native.js +9 -68
  135. package/dist/esm/mermaid/renderMermaidDiagram.native.js.map +1 -1
  136. package/dist/esm/shared/index.mjs +3 -0
  137. package/dist/esm/shared/index.mjs.map +1 -1
  138. package/dist/esm/shared/index.native.js +3 -0
  139. package/dist/esm/shared/index.native.js.map +1 -1
  140. package/dist/esm/shared/tokenPx.mjs +16 -0
  141. package/dist/esm/shared/tokenPx.mjs.map +1 -0
  142. package/dist/esm/shared/tokenPx.native.js +18 -0
  143. package/dist/esm/shared/tokenPx.native.js.map +1 -0
  144. package/dist/esm/shared/useMarkdownTableKnobs.mjs +36 -0
  145. package/dist/esm/shared/useMarkdownTableKnobs.mjs.map +1 -0
  146. package/dist/esm/shared/useMarkdownTableKnobs.native.js +36 -0
  147. package/dist/esm/shared/useMarkdownTableKnobs.native.js.map +1 -0
  148. package/dist/jsx/Aside/index.mjs +6 -4
  149. package/dist/jsx/Aside/index.mjs.map +1 -1
  150. package/dist/jsx/Aside/index.native.js +6 -4
  151. package/dist/jsx/Aside/index.native.js.map +1 -1
  152. package/dist/jsx/Hr/index.mjs +2 -3
  153. package/dist/jsx/Hr/index.mjs.map +1 -1
  154. package/dist/jsx/Hr/index.native.js +2 -3
  155. package/dist/jsx/Hr/index.native.js.map +1 -1
  156. package/dist/jsx/MarkdownSimpleTable/index.mjs +15 -15
  157. package/dist/jsx/MarkdownSimpleTable/index.mjs.map +1 -1
  158. package/dist/jsx/MarkdownSimpleTable/index.native.js +17 -18
  159. package/dist/jsx/MarkdownSimpleTable/index.native.js.map +1 -1
  160. package/dist/jsx/MdxCodeBlock/index.mjs +9 -5
  161. package/dist/jsx/MdxCodeBlock/index.mjs.map +1 -1
  162. package/dist/jsx/MdxCodeBlock/index.native.js +9 -5
  163. package/dist/jsx/MdxCodeBlock/index.native.js.map +1 -1
  164. package/dist/jsx/Table/index.mjs +20 -8
  165. package/dist/jsx/Table/index.mjs.map +1 -1
  166. package/dist/jsx/Table/index.native.js +20 -8
  167. package/dist/jsx/Table/index.native.js.map +1 -1
  168. package/dist/jsx/Video/index.mjs +11 -7
  169. package/dist/jsx/Video/index.mjs.map +1 -1
  170. package/dist/jsx/Video/index.native.js +12 -7
  171. package/dist/jsx/Video/index.native.js.map +1 -1
  172. package/dist/jsx/components/Blockquote.mjs +5 -4
  173. package/dist/jsx/components/Blockquote.mjs.map +1 -1
  174. package/dist/jsx/components/Blockquote.native.js +7 -6
  175. package/dist/jsx/components/Blockquote.native.js.map +1 -1
  176. package/dist/jsx/components/CodeBlock.mjs +2 -2
  177. package/dist/jsx/components/CodeBlock.mjs.map +1 -1
  178. package/dist/jsx/components/CodeBlock.native.js +3 -3
  179. package/dist/jsx/components/CodeBlock.native.js.map +1 -1
  180. package/dist/jsx/components/Heading.mjs +1 -0
  181. package/dist/jsx/components/Heading.mjs.map +1 -1
  182. package/dist/jsx/components/Heading.native.js +1 -0
  183. package/dist/jsx/components/Heading.native.js.map +1 -1
  184. package/dist/jsx/components/HorizontalRule.mjs +13 -2
  185. package/dist/jsx/components/HorizontalRule.mjs.map +1 -1
  186. package/dist/jsx/components/HorizontalRule.native.js +12 -1
  187. package/dist/jsx/components/HorizontalRule.native.js.map +1 -1
  188. package/dist/jsx/components/Image.mjs +2 -2
  189. package/dist/jsx/components/Image.mjs.map +1 -1
  190. package/dist/jsx/components/Image.native.js +3 -2
  191. package/dist/jsx/components/Image.native.js.map +1 -1
  192. package/dist/jsx/components/InlineCode.mjs +2 -1
  193. package/dist/jsx/components/InlineCode.mjs.map +1 -1
  194. package/dist/jsx/components/InlineCode.native.js +2 -1
  195. package/dist/jsx/components/InlineCode.native.js.map +1 -1
  196. package/dist/jsx/components/InlineStyles.mjs +14 -1
  197. package/dist/jsx/components/InlineStyles.mjs.map +1 -1
  198. package/dist/jsx/components/InlineStyles.native.js +14 -1
  199. package/dist/jsx/components/InlineStyles.native.js.map +1 -1
  200. package/dist/jsx/components/Link.mjs +5 -0
  201. package/dist/jsx/components/Link.mjs.map +1 -1
  202. package/dist/jsx/components/Link.native.js +5 -0
  203. package/dist/jsx/components/Link.native.js.map +1 -1
  204. package/dist/jsx/components/List.mjs +8 -1
  205. package/dist/jsx/components/List.mjs.map +1 -1
  206. package/dist/jsx/components/List.native.js +11 -3
  207. package/dist/jsx/components/List.native.js.map +1 -1
  208. package/dist/jsx/components/Table.mjs +15 -9
  209. package/dist/jsx/components/Table.mjs.map +1 -1
  210. package/dist/jsx/components/Table.native.js +17 -12
  211. package/dist/jsx/components/Table.native.js.map +1 -1
  212. package/dist/jsx/mdxComponents.mjs +175 -108
  213. package/dist/jsx/mdxComponents.mjs.map +1 -1
  214. package/dist/jsx/mdxComponents.native.js +184 -113
  215. package/dist/jsx/mdxComponents.native.js.map +1 -1
  216. package/dist/jsx/mermaid/MermaidBlock.mjs +1 -1
  217. package/dist/jsx/mermaid/MermaidBlock.mjs.map +1 -1
  218. package/dist/jsx/mermaid/renderMermaidDiagram.native.js +11 -81
  219. package/dist/jsx/mermaid/renderMermaidDiagram.native.js.map +1 -1
  220. package/dist/jsx/shared/index.mjs +3 -0
  221. package/dist/jsx/shared/index.mjs.map +1 -1
  222. package/dist/jsx/shared/index.native.js +12 -0
  223. package/dist/jsx/shared/index.native.js.map +1 -1
  224. package/dist/jsx/shared/tokenPx.mjs +16 -0
  225. package/dist/jsx/shared/tokenPx.mjs.map +1 -0
  226. package/dist/jsx/shared/tokenPx.native.js +46 -0
  227. package/dist/jsx/shared/tokenPx.native.js.map +1 -0
  228. package/dist/jsx/shared/useMarkdownTableKnobs.mjs +36 -0
  229. package/dist/jsx/shared/useMarkdownTableKnobs.mjs.map +1 -0
  230. package/dist/jsx/shared/useMarkdownTableKnobs.native.js +64 -0
  231. package/dist/jsx/shared/useMarkdownTableKnobs.native.js.map +1 -0
  232. package/package.json +14 -9
  233. package/src/Aside/index.tsx +6 -4
  234. package/src/Hr/hr.spec.tsx +11 -10
  235. package/src/Hr/index.tsx +2 -2
  236. package/src/MarkdownSimpleTable/index.tsx +10 -24
  237. package/src/MdxCodeBlock/index.tsx +10 -4
  238. package/src/Table/index.tsx +11 -11
  239. package/src/Video/index.tsx +15 -5
  240. package/src/components/Blockquote.tsx +6 -5
  241. package/src/components/CodeBlock.tsx +2 -2
  242. package/src/components/Heading.tsx +7 -1
  243. package/src/components/HorizontalRule.tsx +19 -2
  244. package/src/components/Image.tsx +3 -2
  245. package/src/components/InlineCode.tsx +2 -1
  246. package/src/components/InlineStyles.tsx +7 -3
  247. package/src/components/Link.tsx +3 -0
  248. package/src/components/List.tsx +10 -3
  249. package/src/components/Table.tsx +13 -10
  250. package/src/designLaw.spec.tsx +130 -0
  251. package/src/mdxComponents.tsx +168 -87
  252. package/src/mermaid/MermaidBlock.tsx +1 -1
  253. package/src/mermaid/nativeGraph.spec.ts +90 -0
  254. package/src/mermaid/renderMermaidDiagram.native.ts +50 -0
  255. package/src/mermaid/renderMermaidDiagram.spec.ts +23 -0
  256. package/src/shared/index.ts +2 -0
  257. package/src/shared/tokenPx.ts +29 -0
  258. package/src/shared/useMarkdownTableKnobs.ts +38 -0
  259. package/src/stories/Blocks.stories.tsx +5 -5
  260. package/types/Aside/index.d.ts.map +1 -1
  261. package/types/Hr/index.d.ts +1 -1
  262. package/types/Hr/index.d.ts.map +1 -1
  263. package/types/MarkdownSimpleTable/index.d.ts.map +1 -1
  264. package/types/MdxCodeBlock/index.d.ts.map +1 -1
  265. package/types/Table/index.d.ts.map +1 -1
  266. package/types/Video/index.d.ts.map +1 -1
  267. package/types/components/Blockquote.d.ts.map +1 -1
  268. package/types/components/Heading.d.ts.map +1 -1
  269. package/types/components/HorizontalRule.d.ts +5 -1
  270. package/types/components/HorizontalRule.d.ts.map +1 -1
  271. package/types/components/Image.d.ts.map +1 -1
  272. package/types/components/InlineCode.d.ts.map +1 -1
  273. package/types/components/InlineStyles.d.ts.map +1 -1
  274. package/types/components/Link.d.ts.map +1 -1
  275. package/types/components/List.d.ts.map +1 -1
  276. package/types/components/Table.d.ts.map +1 -1
  277. package/types/mdxComponents.d.ts.map +1 -1
  278. package/types/mermaid/renderMermaidDiagram.native.d.ts +45 -0
  279. package/types/mermaid/renderMermaidDiagram.native.d.ts.map +1 -0
  280. package/types/shared/index.d.ts +2 -0
  281. package/types/shared/index.d.ts.map +1 -1
  282. package/types/shared/tokenPx.d.ts +7 -0
  283. package/types/shared/tokenPx.d.ts.map +1 -0
  284. package/types/shared/useMarkdownTableKnobs.d.ts +39 -0
  285. package/types/shared/useMarkdownTableKnobs.d.ts.map +1 -0
@@ -4,6 +4,12 @@ var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
7
13
  var __copyProps = (to, from, except, desc) => {
8
14
  if (from && typeof from === "object" || typeof from === "function") {
9
15
  for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
@@ -18,6 +24,12 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
18
24
  value: true
19
25
  }), mod);
20
26
  var shared_exports = {};
27
+ __export(shared_exports, {
28
+ tokenPx: () => import_tokenPx.tokenPx,
29
+ useMarkdownTableKnobs: () => import_useMarkdownTableKnobs.useMarkdownTableKnobs
30
+ });
21
31
  module.exports = __toCommonJS(shared_exports);
22
32
  __reExport(shared_exports, require("./colorRamps.native.js"), module.exports);
33
+ var import_tokenPx = require("./tokenPx.native.js");
34
+ var import_useMarkdownTableKnobs = require("./useMarkdownTableKnobs.native.js");
23
35
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/shared/index.ts"],"sourcesContent":[null],"mappings":"AAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor"],"sources":["../../../src/shared/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAe;AACxB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAA6B","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { getTokens, getVariableValue } from "tamagui";
2
+ function tokenPx(token, fallback, scale = "size") {
3
+ if (typeof token === "number" && Number.isFinite(token)) return token;
4
+ if (token == null) return fallback;
5
+ try {
6
+ const tokens = getTokens();
7
+ const bucket = scale === "fontSize" ? tokens.fontSize : tokens[scale];
8
+ const raw = getVariableValue(bucket?.[String(token)] ?? token);
9
+ const n = typeof raw === "number" ? raw : Number.parseFloat(String(raw));
10
+ return Number.isFinite(n) && n > 0 ? n : fallback;
11
+ } catch {
12
+ return fallback;
13
+ }
14
+ }
15
+ export { tokenPx };
16
+ //# sourceMappingURL=tokenPx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getTokens","getVariableValue","tokenPx","token","fallback","scale","Number","isFinite","tokens","bucket","fontSize","raw","String","n","parseFloat"],"sources":["../../../src/shared/tokenPx.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,gBAAA,QAAwB;AAOrC,SAASC,QACdC,KAAA,EACAC,QAAA,EACAC,KAAA,GAAkD,QAC1C;EACR,IAAI,OAAOF,KAAA,KAAU,YAAYG,MAAA,CAAOC,QAAA,CAASJ,KAAK,GAAG,OAAOA,KAAA;EAChE,IAAIA,KAAA,IAAS,MAAM,OAAOC,QAAA;EAC1B,IAAI;IACF,MAAMI,MAAA,GAASR,SAAA,CAAU;IACzB,MAAMS,MAAA,GACJJ,KAAA,KAAU,aACLG,MAAA,CAAkDE,QAAA,GACnDF,MAAA,CAAOH,KAAK;IAClB,MAAMM,GAAA,GAAMV,gBAAA,CACTQ,MAAA,GAAiDG,MAAA,CAAOT,KAAK,CAAC,KAAKA,KACtE;IACA,MAAMU,CAAA,GAAI,OAAOF,GAAA,KAAQ,WAAWA,GAAA,GAAML,MAAA,CAAOQ,UAAA,CAAWF,MAAA,CAAOD,GAAG,CAAC;IACvE,OAAOL,MAAA,CAAOC,QAAA,CAASM,CAAC,KAAKA,CAAA,GAAI,IAAIA,CAAA,GAAIT,QAAA;EAC3C,QAAQ;IACN,OAAOA,QAAA;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var tokenPx_exports = {};
26
+ __export(tokenPx_exports, {
27
+ tokenPx: () => tokenPx
28
+ });
29
+ module.exports = __toCommonJS(tokenPx_exports);
30
+ var import_tamagui = require("tamagui");
31
+ function tokenPx(token, fallback) {
32
+ var scale = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "size";
33
+ if (typeof token === "number" && Number.isFinite(token)) return token;
34
+ if (token == null) return fallback;
35
+ try {
36
+ var _ref;
37
+ var tokens = (0, import_tamagui.getTokens)();
38
+ var bucket = scale === "fontSize" ? tokens.fontSize : tokens[scale];
39
+ var raw = (0, import_tamagui.getVariableValue)((_ref = bucket === null || bucket === void 0 ? void 0 : bucket[String(token)]) !== null && _ref !== void 0 ? _ref : token);
40
+ var n = typeof raw === "number" ? raw : Number.parseFloat(String(raw));
41
+ return Number.isFinite(n) && n > 0 ? n : fallback;
42
+ } catch (unused) {
43
+ return fallback;
44
+ }
45
+ }
46
+ //# sourceMappingURL=tokenPx.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call"],"sources":["../../../src/shared/tokenPx.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAOF,IAAAA,SAAS,GAAAC,MACd,CAAAC,cAEA;AAEA,IAAAC,gBAAW,GAAUF,MAAA,CAAAG,wBAA4B;AACjD,IAAAC,iBAAmB,GAAAJ,MAAO,CAAAK,mBAAA;AAC1B,IAAAC,YAAI,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AACF,IAAAC,QAAM,GAAAA,CAAAC,MAAS,EAAAC,GAAA,KAAU;EACzB,SAAMC,IAAA,IACJD,GAAA,EAGFZ,SAAM,CAAAW,MAAM,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAC0D,IACtEC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACA,IAAAF,IAAM,IAAI,OAAOA,IAAA,KAAQ,YAAW,OAAMA,IAAO,eAAW;IAC5D,SAAOG,GAAA,IAAOhB,iBAAmB,CAAAa,IAAI,GACvC,IAAQ,CAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACNnB,SAAO,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACT;EACF,OAAAE,EAAA","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
2
+ function useMarkdownTableKnobs() {
3
+ const {
4
+ knobProps
5
+ } = useResolvedKnobs();
6
+ const cellPad = {
7
+ paddingHorizontal: knobProps.gap.gap,
8
+ paddingVertical: knobProps.gap.gap,
9
+ borderRadius: 0
10
+ };
11
+ return {
12
+ knobProps,
13
+ frameProps: {
14
+ ...knobProps.surface,
15
+ ...knobProps.borderRadiusOuter,
16
+ overflow: "hidden",
17
+ "data-markdown-table-frame": "true",
18
+ "data-border-width": String(knobProps.surface.borderWidth)
19
+ },
20
+ headerTextProps: {
21
+ size: knobProps.sizeToken,
22
+ ...knobProps.heading
23
+ },
24
+ cellTextProps: {
25
+ size: knobProps.sizeToken,
26
+ ...knobProps.body
27
+ },
28
+ cellPad,
29
+ headRule: {
30
+ borderBottomWidth: knobProps.surface.borderWidth,
31
+ borderBottomColor: "$borderColor"
32
+ }
33
+ };
34
+ }
35
+ export { useMarkdownTableKnobs };
36
+ //# sourceMappingURL=useMarkdownTableKnobs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useResolvedKnobs","useMarkdownTableKnobs","knobProps","cellPad","paddingHorizontal","gap","paddingVertical","borderRadius","frameProps","surface","borderRadiusOuter","overflow","String","borderWidth","headerTextProps","size","sizeToken","heading","cellTextProps","body","headRule","borderBottomWidth","borderBottomColor"],"sources":["../../../src/shared/useMarkdownTableKnobs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AAO1B,SAASC,sBAAA,EAAwB;EACtC,MAAM;IAAEC;EAAU,IAAIF,gBAAA,CAAiB;EACvC,MAAMG,OAAA,GAAU;IACdC,iBAAA,EAAmBF,SAAA,CAAUG,GAAA,CAAIA,GAAA;IACjCC,eAAA,EAAiBJ,SAAA,CAAUG,GAAA,CAAIA,GAAA;IAC/BE,YAAA,EAAc;EAChB;EACA,OAAO;IACLL,SAAA;IACAM,UAAA,EAAY;MACV,GAAGN,SAAA,CAAUO,OAAA;MACb,GAAGP,SAAA,CAAUQ,iBAAA;MACbC,QAAA,EAAU;MACV,6BAA6B;MAC7B,qBAAqBC,MAAA,CAAOV,SAAA,CAAUO,OAAA,CAAQI,WAAW;IAC3D;IACAC,eAAA,EAAiB;MACfC,IAAA,EAAMb,SAAA,CAAUc,SAAA;MAChB,GAAGd,SAAA,CAAUe;IACf;IACAC,aAAA,EAAe;MACbH,IAAA,EAAMb,SAAA,CAAUc,SAAA;MAChB,GAAGd,SAAA,CAAUiB;IACf;IACAhB,OAAA;IACAiB,QAAA,EAAU;MACRC,iBAAA,EAAmBnB,SAAA,CAAUO,OAAA,CAAQI,WAAA;MACrCS,iBAAA,EAAmB;IACrB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var useMarkdownTableKnobs_exports = {};
26
+ __export(useMarkdownTableKnobs_exports, {
27
+ useMarkdownTableKnobs: () => useMarkdownTableKnobs
28
+ });
29
+ module.exports = __toCommonJS(useMarkdownTableKnobs_exports);
30
+ var import_theme = require("@multiplatform.one/theme");
31
+ function useMarkdownTableKnobs() {
32
+ var {
33
+ knobProps
34
+ } = (0, import_theme.useResolvedKnobs)();
35
+ var cellPad = {
36
+ paddingHorizontal: knobProps.gap.gap,
37
+ paddingVertical: knobProps.gap.gap,
38
+ borderRadius: 0
39
+ };
40
+ return {
41
+ knobProps,
42
+ frameProps: {
43
+ ...knobProps.surface,
44
+ ...knobProps.borderRadiusOuter,
45
+ overflow: "hidden",
46
+ "data-markdown-table-frame": "true",
47
+ "data-border-width": String(knobProps.surface.borderWidth)
48
+ },
49
+ headerTextProps: {
50
+ size: knobProps.sizeToken,
51
+ ...knobProps.heading
52
+ },
53
+ cellTextProps: {
54
+ size: knobProps.sizeToken,
55
+ ...knobProps.body
56
+ },
57
+ cellPad,
58
+ headRule: {
59
+ borderBottomWidth: knobProps.surface.borderWidth,
60
+ borderBottomColor: "$borderColor"
61
+ }
62
+ };
63
+ }
64
+ //# sourceMappingURL=useMarkdownTableKnobs.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useMarkdownTableKnobs_exports","useMarkdownTableKnobs","module","exports","import_theme","require","knobProps","useResolvedKnobs","cellPad","paddingHorizontal","gap","paddingVertical","borderRadius"],"sources":["../../../src/shared/useMarkdownTableKnobs.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAOF,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAwB;AACtC,IAAAC,gBAAkB,GAAAF,MAAI,CAAAG,wBAAiB;AACvC,IAAAC,iBAAgB,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACdC,YAAA,GAAAN,MAAmB,CAAAO,SAAU,CAAAC,cAAI;AAAA,IACjCC,QAAA,GAAAA,CAAAC,MAAiB,EAAAC,GAAA,KAAU;EAAI,KAC/B,IAAAC,IAAA,IAAcD,GAAA,EAChBZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACA;AAAO,IACLC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACAF,IAAA,WAAYA,IAAA,wBAAAA,IAAA;IAAA,KACP,IAAAG,GAAA,IAAUhB,iBAAA,CAAAa,IAAA,GACb,IAAG,CAAAX,YAAU,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACbnB,SAAU,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACmB,OAC7BE,EAAA;AAAyD;AAC3D,IACAM,YAAA,GAAAC,GAAiB,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IAAAE,6BACC;AAAAhB,QAChB,CAAGgB,6BAAU;EAAAC,qBACf,EAAAA,CAAA,KAAAA;AAAA;AACeC,MACb,CAAAC,OAAM,GAAAN,YAAU,CAAAG,6BAAA;AAAA,IAAAI,YACb,GAAUC,OAAA;AAAA,SACfJ,sBAAA;EAAA,IACA;IAAAK;EAAA,QAAAF,YAAA,CAAAG,gBAAA;EAAA,IACAC,OAAA,GAAU;IAAAC,iBACR,EAAAH,SAAmB,CAAAI,GAAU,CAAAA,GAAA;IAAQC,eACrC,EAAAL,SAAmB,CAAAI,GAAA,CAAAA,GAAA;IACrBE,YAAA;EACF;EACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/markdown",
3
- "version": "7.4.1",
3
+ "version": "7.6.0",
4
4
  "description": "Cross-platform markdown renderer with Shiki syntax highlighting for React and React Native",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -51,6 +51,11 @@
51
51
  },
52
52
  "./mermaid": {
53
53
  "source": "./src/mermaid/index.ts",
54
+ "react-native": {
55
+ "types": "./types/mermaid/index.d.ts",
56
+ "import": "./dist/esm/mermaid/index.native.js",
57
+ "require": "./dist/cjs/mermaid/index.native.js"
58
+ },
54
59
  "types": "./types/mermaid/index.d.ts",
55
60
  "import": "./dist/esm/mermaid/index.mjs",
56
61
  "require": "./dist/cjs/mermaid/index.cjs",
@@ -77,11 +82,11 @@
77
82
  "tamagui": "2.7.6",
78
83
  "unified": "^11.0.5",
79
84
  "unist-util-visit": "^5.1.0",
80
- "@multiplatform.one/components": "7.4.1",
81
- "@multiplatform.one/platform": "7.4.1",
82
- "@multiplatform.one/router": "7.4.1",
83
- "@multiplatform.one/table-primitives": "7.4.1",
84
- "@multiplatform.one/theme": "7.4.1"
85
+ "@multiplatform.one/components": "7.6.0",
86
+ "@multiplatform.one/platform": "7.6.0",
87
+ "@multiplatform.one/router": "7.6.0",
88
+ "@multiplatform.one/table-primitives": "7.6.0",
89
+ "@multiplatform.one/theme": "7.6.0"
85
90
  },
86
91
  "devDependencies": {
87
92
  "@tamagui/build": "2.7.6",
@@ -94,9 +99,9 @@
94
99
  "react": "19.2.5",
95
100
  "react-dom": "19.2.5",
96
101
  "vitest": "^4.1.5",
97
- "@multiplatform.one/config": "7.4.1",
98
- "@multiplatform.one/storybook": "7.4.1",
99
- "@multiplatform.one/test-utils": "7.4.1"
102
+ "@multiplatform.one/config": "7.6.0",
103
+ "@multiplatform.one/storybook": "7.6.0",
104
+ "@multiplatform.one/test-utils": "7.6.0"
100
105
  },
101
106
  "peerDependencies": {
102
107
  "react": "^19.1.0",
@@ -4,10 +4,10 @@ import { useResolvedKnobs } from "@multiplatform.one/theme";
4
4
  import { Children, useState, type ReactNode } from "react";
5
5
  import { Button, Paragraph, XStack, YStack } from "tamagui";
6
6
  import { useCutoffGradientColors } from "../shared/cutoffGradient";
7
+ import { tokenPx } from "../shared/tokenPx";
7
8
  import { isBareTextChild, wrapBareTextChildren } from "../shared/textRidesText";
8
9
 
9
10
  const zIndex = { localTop: 100 };
10
- const cutoffMaxHeight = 300;
11
11
 
12
12
  export interface MDXAsideProps {
13
13
  children: ReactNode;
@@ -16,6 +16,8 @@ export interface MDXAsideProps {
16
16
  export function MDXAside({ children, ...props }: MDXAsideProps & Record<string, unknown>) {
17
17
  const { knobProps } = useResolvedKnobs();
18
18
  const gradientColors = useCutoffGradientColors();
19
+ const cutoffMaxHeight = tokenPx(knobProps.sizeToken, 24) * 12;
20
+ const gradientHeight = tokenPx(knobProps.sizeToken, 24) * 8;
19
21
  // LC-82 TEXT-RIDES-TEXT: an ARRAY of bare strings is text too — treat it
20
22
  // like the singleton string path (one coalesced Paragraph, no cutoff).
21
23
  const flattened = Array.isArray(children) ? Children.toArray(children) : null;
@@ -33,7 +35,7 @@ export function MDXAside({ children, ...props }: MDXAsideProps & Record<string,
33
35
  <YStack
34
36
  render="aside"
35
37
  {...knobProps.gap}
36
- borderRadius={knobProps.borderRadius.borderRadius}
38
+ {...knobProps.containerRadius}
37
39
  {...knobProps.panelPadding}
38
40
  marginHorizontal="$-2"
39
41
  marginTop="$2"
@@ -41,7 +43,7 @@ export function MDXAside({ children, ...props }: MDXAsideProps & Record<string,
41
43
  {...(cutoff && {
42
44
  marginVertical: "$4",
43
45
  paddingHorizontal: knobProps.panelPadding.padding,
44
- borderWidth: 1,
46
+ borderWidth: knobProps.borderRadius.borderWidth,
45
47
  paddingBottom: "$10",
46
48
  backgroundColor: "$color1",
47
49
  borderColor: "$borderColor",
@@ -73,7 +75,7 @@ export function MDXAside({ children, ...props }: MDXAsideProps & Record<string,
73
75
  bottom={0}
74
76
  left={0}
75
77
  right={0}
76
- height={200}
78
+ height={gradientHeight}
77
79
  colors={gradientColors}
78
80
  pointerEvents="none"
79
81
  zIndex={zIndex.localTop}
@@ -1,18 +1,19 @@
1
+ import { Preset } from "@multiplatform.one/theme";
1
2
  import { renderWithProviders } from "@multiplatform.one/test-utils";
2
3
  import { expect, it } from "vitest";
3
4
  import { HR } from "./index";
4
5
 
5
- it("renders without crashing", () => {
6
+ it("renders a painted separator rule", () => {
6
7
  const { container } = renderWithProviders(<HR />);
7
- expect(container).toBeTruthy();
8
+ const rule = container.querySelector('[role="separator"]');
9
+ expect(rule).toBeTruthy();
8
10
  });
9
11
 
10
- it("renders outer YStack with correct basic alignment and structure", () => {
11
- const { container } = renderWithProviders(<HR />);
12
- const outerYStack = container.firstElementChild as HTMLElement;
13
- expect(outerYStack).toBeTruthy();
14
- const styleAttr = outerYStack.getAttribute("style") || "";
15
- expect(styleAttr.includes("margin-left: auto"));
16
- expect(styleAttr.includes("margin-right: auto"));
17
- expect(styleAttr.includes("max-width: 50%"));
12
+ it("hides the rule when borderWidth is none", () => {
13
+ const { container } = renderWithProviders(
14
+ <Preset overrides={{ borderWidth: "none" }}>
15
+ <HR />
16
+ </Preset>,
17
+ );
18
+ expect(container.querySelector('[role="separator"]')).toBeNull();
18
19
  });
package/src/Hr/index.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import { Separator } from "tamagui";
1
+ import { HorizontalRule } from "../components/HorizontalRule";
2
2
 
3
3
  // must match the markdown HorizontalRule's rendering exactly (SB-M-1214)
4
- export const HR = (props: any) => <Separator marginVertical="$4" {...props} />;
4
+ export const HR = (props: Record<string, unknown>) => <HorizontalRule {...(props as any)} />;
@@ -1,8 +1,9 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Paragraph, ScrollView, Text, useMedia } from "tamagui";
3
3
  import { Table } from "@multiplatform.one/table-primitives";
4
- import { useResolvedKnobs } from "@multiplatform.one/theme";
5
4
  import { Link } from "../components/Link";
5
+ import { InlineCode } from "../components/InlineCode";
6
+ import { useMarkdownTableKnobs } from "../shared/useMarkdownTableKnobs";
6
7
 
7
8
  type CellContent = ReactNode;
8
9
 
@@ -44,18 +45,7 @@ function parseCell(content: CellContent): ReactNode {
44
45
  </Text>,
45
46
  );
46
47
  } else if (match[9]) {
47
- parts.push(
48
- <Text
49
- key={key}
50
- fontFamily="$mono"
51
- backgroundColor="$color4"
52
- paddingHorizontal="$1.5"
53
- paddingVertical="$0.5"
54
- borderRadius="$2"
55
- >
56
- {match[10]}
57
- </Text>,
58
- );
48
+ parts.push(<InlineCode key={key}>{match[10]}</InlineCode>);
59
49
  }
60
50
 
61
51
  lastIndex = matchIndex + match[0].length;
@@ -81,7 +71,7 @@ export interface MarkdownSimpleTableProps {
81
71
  * `SimpleTable` from `@multiplatform.one/table`.
82
72
  */
83
73
  export function MarkdownSimpleTable({ headers, rows }: MarkdownSimpleTableProps) {
84
- const { knobProps } = useResolvedKnobs();
74
+ const { frameProps, headerTextProps, cellTextProps, cellPad, headRule } = useMarkdownTableKnobs();
85
75
  const media = useMedia();
86
76
  const isMobile = media.sm;
87
77
 
@@ -93,19 +83,16 @@ export function MarkdownSimpleTable({ headers, rows }: MarkdownSimpleTableProps)
93
83
  width="auto"
94
84
  cellWidth="auto"
95
85
  style={{ tableLayout: "auto" }}
96
- borderColor="$borderColor"
97
- borderRadius={knobProps.borderRadius.borderRadius}
98
86
  alignCells={{ x: "start", y: "center" }}
99
87
  alignHeaderCells={{ x: "start", y: "center" }}
88
+ {...frameProps}
100
89
  {...(isMobile && { minWidth: 760 })}
101
90
  >
102
- <Table.Head render="thead">
91
+ <Table.Head render="thead" {...headRule}>
103
92
  <Table.Row render="tr" rowLocation="first">
104
93
  {headers.map((header, headerIdx) => (
105
- <Table.HeaderCell render="th" key={`h-${headerIdx}`}>
106
- <Paragraph size="$4" fontWeight="600">
107
- {header}
108
- </Paragraph>
94
+ <Table.HeaderCell render="th" key={`h-${headerIdx}`} {...cellPad}>
95
+ <Paragraph {...headerTextProps}>{header}</Paragraph>
109
96
  </Table.HeaderCell>
110
97
  ))}
111
98
  </Table.Row>
@@ -118,9 +105,8 @@ export function MarkdownSimpleTable({ headers, rows }: MarkdownSimpleTableProps)
118
105
  rowLocation={rowIdx === rows.length - 1 ? "last" : "middle"}
119
106
  >
120
107
  {row.map((cell, cellIdx) => (
121
- <Table.Cell render="td" key={`c-${rowIdx}-${cellIdx}`}>
122
- {/* maxWidth caps the column's max-content contribution so long cells wrap */}
123
- <Paragraph render="span" display="block" size="$4" maxWidth={480}>
108
+ <Table.Cell render="td" key={`c-${rowIdx}-${cellIdx}`} {...cellPad}>
109
+ <Paragraph render="span" display="block" {...cellTextProps}>
124
110
  {parseCell(cell)}
125
111
  </Paragraph>
126
112
  </Table.Cell>
@@ -14,6 +14,7 @@ import { useContext, useMemo, useState } from "react";
14
14
  import { Button, ScrollView, TooltipSimple, XStack, YStack } from "tamagui";
15
15
  import { CheckCircleIcon, ClipboardIcon } from "../icons";
16
16
  import { useCutoffGradientColors } from "../shared/cutoffGradient";
17
+ import { tokenPx } from "../shared/tokenPx";
17
18
 
18
19
  const zIndex = { localTop: 100 };
19
20
  import type { MDXCodeBlockContextValue } from "./mdxCodeBlockContext";
@@ -64,6 +65,9 @@ export function MDXCodeBlock(props: MDXCodeBlockProps) {
64
65
 
65
66
  const { knobProps } = useResolvedKnobs();
66
67
  const gradientColors = useCutoffGradientColors();
68
+ const cutoffMaxHeight = tokenPx(knobProps.sizeToken, 24) * 16;
69
+ const gradientHeight = tokenPx(knobProps.sizeToken, 24) * 8;
70
+ const iconPx = tokenPx(knobProps.label.fontSize as string, 14, "fontSize");
67
71
  const codeText = useMemo(() => extractCodeText(children).replace(/\n$/, ""), [children]);
68
72
  const language = useMemo(() => extractLanguage(className), [className]);
69
73
  const tokens = useShikiTokens(codeText, language);
@@ -86,9 +90,9 @@ export function MDXCodeBlock(props: MDXCodeBlockProps) {
86
90
  <YStack
87
91
  position="relative"
88
92
  {...(isCutoff && {
89
- maxHeight: 400,
93
+ maxHeight: cutoffMaxHeight,
90
94
  overflow: "hidden",
91
- borderRadius: knobProps.borderRadius.borderRadius,
95
+ ...knobProps.borderRadiusOuter,
92
96
  })}
93
97
  >
94
98
  {(!isCollapsed || !isCollapsible) && isCutoff && (
@@ -98,7 +102,7 @@ export function MDXCodeBlock(props: MDXCodeBlockProps) {
98
102
  bottom={0}
99
103
  left={0}
100
104
  right={0}
101
- height={200}
105
+ height={gradientHeight}
102
106
  colors={gradientColors}
103
107
  pointerEvents="none"
104
108
  zIndex={zIndex.localTop}
@@ -156,7 +160,9 @@ export function MDXCodeBlock(props: MDXCodeBlockProps) {
156
160
  <Button
157
161
  aria-label="Copy code to clipboard"
158
162
  size="$2"
159
- icon={hasCopied ? <CheckCircleIcon size={14} /> : <ClipboardIcon size={14} />}
163
+ icon={
164
+ hasCopied ? <CheckCircleIcon size={iconPx} /> : <ClipboardIcon size={iconPx} />
165
+ }
160
166
  onPress={onCopy}
161
167
  $max-xs={{
162
168
  display: "none",
@@ -1,7 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Paragraph, ScrollView, YStack, styled } from "tamagui";
3
3
  import { Table as BaseTable } from "@multiplatform.one/table-primitives";
4
- import { useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import { useMarkdownTableKnobs } from "../shared/useMarkdownTableKnobs";
5
5
 
6
6
  const MDXTableFrame = styled(YStack, {
7
7
  marginVertical: "$4",
@@ -12,7 +12,7 @@ export function MDXTable({
12
12
  children,
13
13
  ...props
14
14
  }: { children?: ReactNode } & Record<string, unknown>) {
15
- const { knobProps } = useResolvedKnobs();
15
+ const { frameProps } = useMarkdownTableKnobs();
16
16
  return (
17
17
  <ScrollView horizontal showsHorizontalScrollIndicator={false}>
18
18
  <MDXTableFrame>
@@ -23,10 +23,9 @@ export function MDXTable({
23
23
  width="auto"
24
24
  cellWidth="auto"
25
25
  style={{ tableLayout: "auto" }}
26
- borderColor="$borderColor"
27
- borderRadius={knobProps.borderRadius.borderRadius}
28
26
  alignCells={{ x: "start", y: "center" }}
29
27
  alignHeaderCells={{ x: "start", y: "center" }}
28
+ {...frameProps}
30
29
  {...props}
31
30
  >
32
31
  {children}
@@ -40,8 +39,9 @@ export function MDXTableHead({
40
39
  children,
41
40
  ...props
42
41
  }: { children?: ReactNode } & Record<string, unknown>) {
42
+ const { headRule } = useMarkdownTableKnobs();
43
43
  return (
44
- <BaseTable.Head render="thead" {...props}>
44
+ <BaseTable.Head render="thead" {...headRule} {...props}>
45
45
  {children}
46
46
  </BaseTable.Head>
47
47
  );
@@ -73,11 +73,10 @@ export function MDXTableHeaderCell({
73
73
  children,
74
74
  ...props
75
75
  }: { children?: ReactNode } & Record<string, unknown>) {
76
+ const { headerTextProps, cellPad } = useMarkdownTableKnobs();
76
77
  return (
77
- <BaseTable.HeaderCell render="th" {...props}>
78
- <Paragraph size="$4" fontWeight="600">
79
- {children}
80
- </Paragraph>
78
+ <BaseTable.HeaderCell render="th" {...cellPad} {...props}>
79
+ <Paragraph {...headerTextProps}>{children}</Paragraph>
81
80
  </BaseTable.HeaderCell>
82
81
  );
83
82
  }
@@ -86,9 +85,10 @@ export function MDXTableCell({
86
85
  children,
87
86
  ...props
88
87
  }: { children?: ReactNode } & Record<string, unknown>) {
88
+ const { cellTextProps, cellPad } = useMarkdownTableKnobs();
89
89
  return (
90
- <BaseTable.Cell render="td" {...props}>
91
- <Paragraph render="span" display="block" size="$4">
90
+ <BaseTable.Cell render="td" {...cellPad} {...props}>
91
+ <Paragraph render="span" display="block" {...cellTextProps}>
92
92
  {children}
93
93
  </Paragraph>
94
94
  </BaseTable.Cell>
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { isWeb, Paragraph, YStack } from "tamagui";
3
3
  import { useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import { tokenPx } from "../shared/tokenPx";
4
5
 
5
6
  export interface VideoProps {
6
7
  src: string;
@@ -23,6 +24,8 @@ export function Video({
23
24
  ...props
24
25
  }: VideoProps & Record<string, unknown>) {
25
26
  const { knobProps } = useResolvedKnobs();
27
+ const radiusPx = tokenPx(knobProps.borderRadius.borderRadius as string, 8, "radius");
28
+ const fallbackMin = tokenPx(knobProps.sizeToken, 24) * 8;
26
29
  return (
27
30
  <YStack render="figure" marginHorizontal={0} marginVertical="$6" {...props}>
28
31
  {isWeb ? (
@@ -37,26 +40,33 @@ export function Video({
37
40
  controls={controls}
38
41
  loop={loop}
39
42
  poster={poster}
40
- style={{ width: "100%", display: "block", borderRadius: 8 }}
43
+ // R11: media radius stays UNCLAMPED and rides the radius knob.
44
+ style={{ width: "100%", display: "block", borderRadius: radiusPx }}
41
45
  />
42
46
  ) : // omit the element entirely for an empty src (SB-M-1227)
43
47
  null
44
48
  ) : (
45
49
  <YStack
46
50
  {...knobProps.panelPadding}
47
- borderRadius={knobProps.borderRadius.borderRadius}
51
+ {...knobProps.borderRadius}
48
52
  backgroundColor="$color3"
49
53
  alignItems="center"
50
54
  justifyContent="center"
51
- minHeight={200}
55
+ minHeight={fallbackMin}
52
56
  >
53
- <Paragraph color="$color9" size="$4">
57
+ <Paragraph color="$color9" size={knobProps.sizeToken as any} {...knobProps.body}>
54
58
  Video playback requires a native video player
55
59
  </Paragraph>
56
60
  </YStack>
57
61
  )}
58
62
  {children ? (
59
- <Paragraph render="figcaption" lineHeight={23} marginTop="$2" color="$color9" size="$3">
63
+ <Paragraph
64
+ render="figcaption"
65
+ marginTop="$2"
66
+ color={knobProps.textAccentColor}
67
+ size={knobProps.sizeToken as any}
68
+ {...knobProps.body}
69
+ >
60
70
  {children}
61
71
  </Paragraph>
62
72
  ) : null}
@@ -11,12 +11,13 @@ export function Blockquote({ children }: BlockquoteProps) {
11
11
  typeof padToken === "number"
12
12
  ? padToken
13
13
  : ((getTokens().space as any)?.[padToken]?.val ?? padToken);
14
+ const railWidth = knobProps.borderRadius.borderWidth;
14
15
  return (
15
16
  <View
16
17
  backgroundColor={markdownBlockquoteColors.background.base}
17
18
  // R-SCALE quote frame (spec Blockquote): the painted quote surface
18
19
  // rounds with the radius knob, capped at its own padding (Axiom 1 —
19
- // containerRadius fragment). Was radius-dead (spec conformance note).
20
+ // containerRadius fragment). Rail thickness rides borderWidth (0 hides).
20
21
  {...knobProps.containerRadius}
21
22
  paddingVertical={knobProps.gap.gap}
22
23
  marginVertical="$3"
@@ -27,14 +28,14 @@ export function Blockquote({ children }: BlockquoteProps) {
27
28
  {...(isWeb
28
29
  ? {
29
30
  style: {
30
- borderInlineStartWidth: 4,
31
- borderInlineStartStyle: "solid",
32
- borderInlineStartColor: theme.color8?.val ?? "#999",
31
+ borderInlineStartWidth: railWidth,
32
+ borderInlineStartStyle: railWidth ? "solid" : "none",
33
+ borderInlineStartColor: theme.color8?.val ?? theme.borderColor?.val,
33
34
  paddingInlineStart: pad,
34
35
  } as any,
35
36
  }
36
37
  : {
37
- borderStartWidth: 4,
38
+ borderStartWidth: railWidth,
38
39
  borderStartColor: markdownBlockquoteColors.border.base,
39
40
  paddingStart: knobProps.panelPadding.padding,
40
41
  })}
@@ -35,9 +35,9 @@ export function CodeBlock({ children, lang, theme: themeProp = "auto" }: CodeBlo
35
35
  // Full fragment spread (AGENTS.md knob rule) so the cornerSmoothing
36
36
  // class rides along with the outer radius; the fallback keeps the old
37
37
  // default when a Preset override drops the fragment.
38
- {...(knobProps.borderRadiusOuter ?? { borderRadius: "$4" })}
38
+ {...(knobProps.borderRadiusNested ?? { borderRadius: "$4" })}
39
39
  backgroundColor={markdownCodeColors.background.base}
40
- borderWidth={1}
40
+ borderWidth={knobProps.borderRadius.borderWidth}
41
41
  borderColor={markdownCodeColors.border.base}
42
42
  // SP-PAD (spec CodeBlock frame; LC-18 / UX-P07): the block inset rides
43
43
  // the space knob through the complete panelPadding fragment —