hd-garden 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/.agents/skills/garden-ui/SKILL.md +2 -2
  2. package/.env.en.example +67 -0
  3. package/README.en.md +2 -2
  4. package/README.md +2 -2
  5. package/app/a2/[slug]/page.tsx +4 -3
  6. package/app/a2/page.tsx +4 -3
  7. package/app/about/page.tsx +8 -9
  8. package/app/admin/page.tsx +7 -6
  9. package/app/admin/preview/[...path]/page.tsx +2 -1
  10. package/app/admin/ui/blocks/page.tsx +2 -1
  11. package/app/admin/ui/catalog/page.tsx +2 -1
  12. package/app/admin/ui/evals/page.tsx +2 -1
  13. package/app/admin/ui/page.tsx +2 -1
  14. package/app/blog/[...path]/page.tsx +7 -6
  15. package/app/blog/page.tsx +4 -2
  16. package/app/columns/[column]/[...path]/page.tsx +8 -7
  17. package/app/columns/page.tsx +12 -8
  18. package/app/components/AdminUiShell.tsx +4 -3
  19. package/app/components/ArticleMeasure.tsx +6 -3
  20. package/app/components/ArticleReferences.tsx +4 -1
  21. package/app/components/ArticleTags.tsx +3 -2
  22. package/app/components/BlogArchive.tsx +20 -16
  23. package/app/components/Comments.tsx +16 -10
  24. package/app/components/ContentEmptyState.tsx +29 -28
  25. package/app/components/ExternalEmbed.tsx +15 -14
  26. package/app/components/GardenContentGuide.tsx +10 -2
  27. package/app/components/GardenDocsNav.tsx +4 -2
  28. package/app/components/GiscusComments.tsx +2 -1
  29. package/app/components/GithubLiveOverview.tsx +10 -8
  30. package/app/components/GithubProfile.tsx +31 -21
  31. package/app/components/HandbookLangSwitch.tsx +8 -4
  32. package/app/components/HandbookView.tsx +92 -9
  33. package/app/components/MarkdownArticle.tsx +31 -7
  34. package/app/components/MermaidDiagram.tsx +4 -3
  35. package/app/components/SiteChrome.tsx +3 -3
  36. package/app/components/SiteFooter.tsx +1 -1
  37. package/app/components/SiteHeader.tsx +13 -4
  38. package/app/components/ThoughtCard.tsx +16 -14
  39. package/app/components/UiBlock.tsx +3 -2
  40. package/app/components/Webmentions.tsx +11 -11
  41. package/app/components/WidgetChart.tsx +8 -6
  42. package/app/components/garden/FilePreview.tsx +2 -2
  43. package/app/components/garden/GardenBlock.tsx +7 -0
  44. package/app/components/garden/GardenFile.tsx +2 -2
  45. package/app/components/garden/RefDemo.tsx +62 -0
  46. package/app/components/garden/blocks.tsx +56 -8
  47. package/app/components/garden/patterns.tsx +497 -0
  48. package/app/garden/[...slug]/page.tsx +3 -2
  49. package/app/garden/en/page.tsx +7 -7
  50. package/app/garden/page.tsx +3 -2
  51. package/app/globals.css +49 -1
  52. package/app/lib/a2-meta.ts +26 -3
  53. package/app/lib/content.ts +2 -2
  54. package/app/lib/garden-docs-meta.ts +24 -0
  55. package/app/lib/github-id.mjs +8 -0
  56. package/app/lib/handbook-switch.mjs +12 -0
  57. package/app/lib/i18n.ts +401 -2
  58. package/app/lib/rehype-field-tables.mjs +47 -0
  59. package/app/lib/remark-a2.mjs +18 -8
  60. package/app/lib/remark-link-card.mjs +22 -0
  61. package/app/lib/remark-ref-demos.mjs +42 -0
  62. package/app/lib/tag-filter.ts +9 -2
  63. package/app/not-found.tsx +32 -4
  64. package/app/page.tsx +17 -14
  65. package/app/rss.xml/route.ts +2 -1
  66. package/app/styles/a2.css +338 -0
  67. package/app/styles/shell.css +15 -2
  68. package/app/tags/page.tsx +7 -5
  69. package/app/thoughts/[slug]/page.tsx +2 -1
  70. package/app/thoughts/page/[n]/page.tsx +1 -1
  71. package/app/thoughts/page.tsx +2 -1
  72. package/app/ui-parity/page.tsx +38 -22
  73. package/bin/garden.mjs +129 -19
  74. package/docs/handbook/ai-writing.md +2 -2
  75. package/docs/handbook/assets/reading-layout-en.svg +26 -0
  76. package/docs/handbook/components/card.md +43 -22
  77. package/docs/handbook/components/chart.md +10 -26
  78. package/docs/handbook/components/choice.md +42 -0
  79. package/docs/handbook/components/compare.md +32 -17
  80. package/docs/handbook/components/figure.md +33 -46
  81. package/docs/handbook/components/file.md +10 -15
  82. package/docs/handbook/components/html.md +10 -30
  83. package/docs/handbook/components/interactive.md +9 -35
  84. package/docs/handbook/components/list.md +65 -0
  85. package/docs/handbook/components/relations.md +95 -0
  86. package/docs/handbook/components/stat.md +10 -28
  87. package/docs/handbook/components/timeline.md +13 -28
  88. package/docs/handbook/components.md +210 -19
  89. package/docs/handbook/config.md +5 -3
  90. package/docs/handbook/deploy.md +1 -1
  91. package/docs/handbook/design.md +20 -12
  92. package/docs/handbook/en/ai-writing.md +2 -2
  93. package/docs/handbook/en/components/card.md +42 -21
  94. package/docs/handbook/en/components/chart.md +10 -26
  95. package/docs/handbook/en/components/choice.md +42 -0
  96. package/docs/handbook/en/components/compare.md +30 -15
  97. package/docs/handbook/en/components/figure.md +29 -42
  98. package/docs/handbook/en/components/file.md +9 -14
  99. package/docs/handbook/en/components/html.md +9 -29
  100. package/docs/handbook/en/components/interactive.md +8 -34
  101. package/docs/handbook/en/components/list.md +65 -0
  102. package/docs/handbook/en/components/relations.md +95 -0
  103. package/docs/handbook/en/components/stat.md +9 -27
  104. package/docs/handbook/en/components/timeline.md +9 -24
  105. package/docs/handbook/en/components.md +211 -19
  106. package/docs/handbook/en/config.md +32 -30
  107. package/docs/handbook/en/deploy.md +12 -12
  108. package/docs/handbook/en/design.md +19 -12
  109. package/docs/handbook/en/index.md +2 -2
  110. package/docs/handbook/en/reference/card.md +85 -0
  111. package/docs/handbook/en/reference/chart.md +68 -0
  112. package/docs/handbook/en/reference/choice.md +69 -0
  113. package/docs/handbook/en/reference/compare.md +59 -0
  114. package/docs/handbook/en/reference/figure.md +84 -0
  115. package/docs/handbook/en/reference/file/checklist.md +17 -0
  116. package/docs/handbook/en/reference/file.md +50 -0
  117. package/docs/handbook/en/reference/html.md +62 -0
  118. package/docs/handbook/en/reference/interactive.md +71 -0
  119. package/docs/handbook/en/reference/list.md +72 -0
  120. package/docs/handbook/en/reference/relations.md +113 -0
  121. package/docs/handbook/en/reference/stat.md +60 -0
  122. package/docs/handbook/en/reference/timeline.md +56 -0
  123. package/docs/handbook/en/reference.md +26 -0
  124. package/docs/handbook/en/start.md +2 -2
  125. package/docs/handbook/en/workflow.md +6 -5
  126. package/docs/handbook/en/writing.md +3 -2
  127. package/docs/handbook/index.md +1 -1
  128. package/docs/handbook/reference/card.md +85 -0
  129. package/docs/handbook/reference/chart.md +68 -0
  130. package/docs/handbook/reference/choice.md +69 -0
  131. package/docs/handbook/reference/compare.md +59 -0
  132. package/docs/handbook/reference/figure.md +84 -0
  133. package/docs/handbook/reference/file/checklist.md +17 -0
  134. package/docs/handbook/reference/file.md +50 -0
  135. package/docs/handbook/reference/html.md +62 -0
  136. package/docs/handbook/reference/interactive.md +71 -0
  137. package/docs/handbook/reference/list.md +72 -0
  138. package/docs/handbook/reference/relations.md +113 -0
  139. package/docs/handbook/reference/stat.md +60 -0
  140. package/docs/handbook/reference/timeline.md +56 -0
  141. package/docs/handbook/reference.md +26 -0
  142. package/docs/handbook/start.md +1 -1
  143. package/docs/handbook/workflow.md +6 -5
  144. package/docs/handbook/writing.md +3 -2
  145. package/next.config.ts +6 -0
  146. package/package.json +2 -1
  147. package/public/images/garden/ref-card-book.svg +1 -0
  148. package/public/images/garden/ref-card-lamp.svg +1 -0
  149. package/scripts/build-content.mjs +37 -16
  150. package/scripts/favicon-ico.mjs +9 -6
  151. package/scripts/file-preview.mjs +10 -7
  152. package/scripts/handbook-allowlist.mjs +18 -0
  153. package/scripts/handbook-facts.mjs +305 -11
  154. package/scripts/link-assets.mjs +7 -0
  155. package/scripts/new-post.mjs +18 -9
  156. package/scripts/prepare-pages-output.mjs +30 -18
  157. package/scripts/redirects.mjs +17 -6
  158. package/templates/garden-blocks.md +67 -0
  159. package/templates/garden-snippets.plist +61 -0
  160. package/templates/site/Makefile.en +45 -0
  161. package/templates/site/README.en.md +15 -0
  162. package/templates/site/site.config.en.yaml +55 -0
  163. package/templates/skills-en/garden-interactive-chart/SKILL.md +84 -0
  164. package/templates/skills-en/garden-interactive-chart/references/shell.html +49 -0
  165. package/templates/skills-en/garden-interactive-chart/references/style.md +61 -0
  166. package/templates/skills-en/garden-post-review/SKILL.md +63 -0
  167. package/templates/skills-en/garden-ui/SKILL.md +118 -0
  168. package/templates/workflows/pages.en.yml +195 -0
  169. package/templates/workflows/pages.yml +195 -0
  170. package/ui/garden/catalog.mjs +205 -4
  171. package/ui/garden/check.mjs +6 -0
  172. package/ui/garden/file-block.mjs +8 -7
  173. package/ui/garden/html-lang.mjs +73 -1
  174. package/ui/garden/markdown-links.mjs +7 -4
  175. package/ui/garden/parse.mjs +45 -0
  176. package/ui/garden/relations.mjs +252 -0
  177. package/ui/garden/search-index.mjs +6 -4
  178. package/ui/garden/source-icon.mjs +54 -0
  179. package/ui/parity-fixtures.mjs +77 -0
  180. package/ui/preview/dist/garden-ui.esm.js +41 -4
  181. package/ui/preview/dist/garden-ui.iife.js +41 -4
  182. package/ui/prompt/rules.md +28 -1
  183. package/ui/react/components/chart.tsx +1 -1
  184. package/ui/react/components/display.tsx +1 -1
  185. package/ui/react/lang.tsx +4 -0
  186. package/ui/react/parity.tsx +8 -6
  187. package/worker/index.ts +8 -2
@@ -246,7 +246,7 @@ Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=1
246
246
  ${n.text}
247
247
  ${t}${r}`}case"image":return`${t}![${Fk(n.alt)}](${n.src})`;default:return""}}).filter(Boolean).join(`
248
248
 
249
- `)}function K0(e){return e.map(t=>{switch(t.k){case"p":return J0(t.inl);case"list":return t.items.map(n=>K0(n)).join(" ");case"quote":return K0(t.blocks);case"table":return[...t.head??[],...t.rows.flat()].join(" ");case"code":return t.text;case"image":return t.alt;default:return""}}).filter(Boolean).join(" ")}function Q0(e,t="html"){let n=u4(e);return t==="markdown"?Y0(n):t==="text"?K0(n):G0(n)}var La=String.raw`\\.`,c4=String.raw`<((?:[^<>\n\\]|${La})*)>`,f4=String.raw`(?:[^\s()<\\]|${La})`,X0=String.raw`(?:[^\s()\\]|${La})`,Pk=[1,2,3].reduce(e=>String.raw`\((?:${X0}|${e})*\)`,String.raw`\((?:${X0})*\)`),h4=String.raw`((?:${f4}|${Pk})(?:${X0}|${Pk})*)`,p4=String.raw`(?:[^\[\]\\]|${La}|\[(?:[^\[\]\\]|${La})*\])*`,Gk=String.raw`(!?)\[(${p4})\]\(\s*(?:${c4}|${h4})((?:\s+(?:"(?:[^"\\]|${La})*"|'(?:[^'\\]|${La})*'|\((?:[^()\\]|${La})*\)))?)\s*\)`;var _U=new RegExp(`${Gk}(\\{card\\})?`,"giu");function Yk(e){let t=new Set;for(let n of Iw(e))if(n.lang==="ui")for(let i of n.body.matchAll(/<Data\b[^>]*\bsrc\s*=\s*"([^"]+)"/gu))t.add(i[1]);return[...t]}function ty(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var vs=ty();function eE(e){vs=e}var Uu={exec:()=>null};function Be(e,t=""){let n=typeof e=="string"?e:e.source,i={replace:(r,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(yn.caret,"$1"),n=n.replace(r,s),i},getRegex:()=>new RegExp(n,t)};return i}var d4=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),yn={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},m4=/^(?:[ \t]*(?:\n|$))+/,g4=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,y4=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Vu=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,x4=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ny=/(?:[*+-]|\d{1,9}[.)])/,tE=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nE=Be(tE).replace(/bull/g,ny).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),b4=Be(tE).replace(/bull/g,ny).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),iy=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,v4=/^[^\n]+/,ry=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,S4=Be(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ry).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),w4=Be(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,ny).getRegex(),ep="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ay=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,k4=Be("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ay).replace("tag",ep).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),iE=Be(iy).replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex(),E4=Be(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",iE).getRegex(),sy={blockquote:E4,code:g4,def:S4,fences:y4,heading:x4,hr:Vu,html:k4,lheading:nE,list:w4,newline:m4,paragraph:iE,table:Uu,text:v4},Kk=Be("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex(),T4={...sy,lheading:b4,table:Kk,paragraph:Be(iy).replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Kk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex()},A4={...sy,html:Be(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ay).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Uu,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Be(iy).replace("hr",Vu).replace("heading",` *#{1,6} *[^
249
+ `)}function K0(e){return e.map(t=>{switch(t.k){case"p":return J0(t.inl);case"list":return t.items.map(n=>K0(n)).join(" ");case"quote":return K0(t.blocks);case"table":return[...t.head??[],...t.rows.flat()].join(" ");case"code":return t.text;case"image":return t.alt;default:return""}}).filter(Boolean).join(" ")}function Q0(e,t="html"){let n=u4(e);return t==="markdown"?Y0(n):t==="text"?K0(n):G0(n)}var La=String.raw`\\.`,c4=String.raw`<((?:[^<>\n\\]|${La})*)>`,f4=String.raw`(?:[^\s()<\\]|${La})`,X0=String.raw`(?:[^\s()\\]|${La})`,Pk=[1,2,3].reduce(e=>String.raw`\((?:${X0}|${e})*\)`,String.raw`\((?:${X0})*\)`),h4=String.raw`((?:${f4}|${Pk})(?:${X0}|${Pk})*)`,p4=String.raw`(?:[^\[\]\\]|${La}|\[(?:[^\[\]\\]|${La})*\])*`,Gk=String.raw`(!?)\[(${p4})\]\(\s*(?:${c4}|${h4})((?:\s+(?:"(?:[^"\\]|${La})*"|'(?:[^'\\]|${La})*'|\((?:[^()\\]|${La})*\)))?)\s*\)`;var _U=new RegExp(`${Gk}(\\{card\\}|\\{source\\})?`,"giu");function Yk(e){let t=new Set;for(let n of Iw(e))if(n.lang==="ui")for(let i of n.body.matchAll(/<Data\b[^>]*\bsrc\s*=\s*"([^"]+)"/gu))t.add(i[1]);return[...t]}function ty(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var vs=ty();function eE(e){vs=e}var Uu={exec:()=>null};function Be(e,t=""){let n=typeof e=="string"?e:e.source,i={replace:(r,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(yn.caret,"$1"),n=n.replace(r,s),i},getRegex:()=>new RegExp(n,t)};return i}var d4=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),yn={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},m4=/^(?:[ \t]*(?:\n|$))+/,g4=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,y4=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Vu=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,x4=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ny=/(?:[*+-]|\d{1,9}[.)])/,tE=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nE=Be(tE).replace(/bull/g,ny).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),b4=Be(tE).replace(/bull/g,ny).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),iy=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,v4=/^[^\n]+/,ry=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,S4=Be(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ry).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),w4=Be(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,ny).getRegex(),ep="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ay=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,k4=Be("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ay).replace("tag",ep).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),iE=Be(iy).replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex(),E4=Be(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",iE).getRegex(),sy={blockquote:E4,code:g4,def:S4,fences:y4,heading:x4,hr:Vu,html:k4,lheading:nE,list:w4,newline:m4,paragraph:iE,table:Uu,text:v4},Kk=Be("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex(),T4={...sy,lheading:b4,table:Kk,paragraph:Be(iy).replace("hr",Vu).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Kk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ep).getRegex()},A4={...sy,html:Be(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ay).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Uu,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Be(iy).replace("hr",Vu).replace("heading",` *#{1,6} *[^
250
250
  ]`).replace("lheading",nE).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},C4=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,N4=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,rE=/^( {2,}|\\)\n(?!\s*$)/,_4=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,tp=/[\p{P}\p{S}]/u,ly=/[\s\p{P}\p{S}]/u,aE=/[^\s\p{P}\p{S}]/u,O4=Be(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,ly).getRegex(),sE=/(?!~)[\p{P}\p{S}]/u,M4=/(?!~)[\s\p{P}\p{S}]/u,L4=/(?:[^\s\p{P}\p{S}]|~)/u,R4=Be(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",d4?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),lE=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,z4=Be(lE,"u").replace(/punct/g,tp).getRegex(),D4=Be(lE,"u").replace(/punct/g,sE).getRegex(),oE="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",B4=Be(oE,"gu").replace(/notPunctSpace/g,aE).replace(/punctSpace/g,ly).replace(/punct/g,tp).getRegex(),I4=Be(oE,"gu").replace(/notPunctSpace/g,L4).replace(/punctSpace/g,M4).replace(/punct/g,sE).getRegex(),U4=Be("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,aE).replace(/punctSpace/g,ly).replace(/punct/g,tp).getRegex(),V4=Be(/\\(punct)/,"gu").replace(/punct/g,tp).getRegex(),$4=Be(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),q4=Be(ay).replace("(?:-->|$)","-->").getRegex(),j4=Be("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",q4).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Xh=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,H4=Be(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Xh).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),uE=Be(/^!?\[(label)\]\[(ref)\]/).replace("label",Xh).replace("ref",ry).getRegex(),cE=Be(/^!?\[(ref)\](?:\[\])?/).replace("ref",ry).getRegex(),F4=Be("reflink|nolink(?!\\()","g").replace("reflink",uE).replace("nolink",cE).getRegex(),Jk=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,oy={_backpedal:Uu,anyPunctuation:V4,autolink:$4,blockSkip:R4,br:rE,code:N4,del:Uu,emStrongLDelim:z4,emStrongRDelimAst:B4,emStrongRDelimUnd:U4,escape:C4,link:H4,nolink:cE,punctuation:O4,reflink:uE,reflinkSearch:F4,tag:j4,text:_4,url:Uu},P4={...oy,link:Be(/^!?\[(label)\]\((.*?)\)/).replace("label",Xh).getRegex(),reflink:Be(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Xh).getRegex()},Z0={...oy,emStrongRDelimAst:I4,emStrongLDelim:D4,url:Be(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Jk).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Be(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Jk).getRegex()},G4={...Z0,br:Be(rE).replace("{2,}","*").getRegex(),text:Be(Z0.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Jh={normal:sy,gfm:T4,pedantic:A4},Du={normal:oy,gfm:Z0,breaks:G4,pedantic:P4},Y4={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Qk=e=>Y4[e];function ur(e,t){if(t){if(yn.escapeTest.test(e))return e.replace(yn.escapeReplace,Qk)}else if(yn.escapeTestNoEncode.test(e))return e.replace(yn.escapeReplaceNoEncode,Qk);return e}function Xk(e){try{e=encodeURI(e).replace(yn.percentDecode,"%")}catch{return null}return e}function Zk(e,t){let n=e.replace(yn.findPipe,(a,s,l)=>{let o=!1,u=s;for(;--u>=0&&l[u]==="\\";)o=!o;return o?"|":" |"}),i=n.split(yn.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length<t;)i.push("");for(;r<i.length;r++)i[r]=i[r].trim().replace(yn.slashPipe,"|");return i}function Bu(e,t,n){let i=e.length;if(i===0)return"";let r=0;for(;r<i;){let a=e.charAt(i-r-1);if(a===t&&!n)r++;else if(a!==t&&n)r++;else break}return e.slice(0,i-r)}function K4(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let i=0;i<e.length;i++)if(e[i]==="\\")i++;else if(e[i]===t[0])n++;else if(e[i]===t[1]&&(n--,n<0))return i;return n>0?-2:-1}function Wk(e,t,n,i,r){let a=t.href,s=t.title||null,l=e[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let o={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:a,title:s,text:l,tokens:i.inlineTokens(l)};return i.state.inLink=!1,o}function J4(e,t,n){let i=e.match(n.other.indentCodeCompensation);if(i===null)return t;let r=i[1];return t.split(`
251
251
  `).map(a=>{let s=a.match(n.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=r.length?a.slice(r.length):a}).join(`
252
252
  `)}var Zh=class{constructor(e){Ze(this,"options");Ze(this,"rules");Ze(this,"lexer");this.options=e||vs}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Bu(n,`
@@ -305,7 +305,7 @@ ${e}</tr>
305
305
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
306
306
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${ur(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let i=this.parser.parseInline(n),r=Xk(e);if(r===null)return i;e=r;let a='<a href="'+e+'"';return t&&(a+=' title="'+ur(t)+'"'),a+=">"+i+"</a>",a}image({href:e,title:t,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=Xk(e);if(r===null)return ur(n);e=r;let a=`<img src="${e}" alt="${n}"`;return t&&(a+=` title="${ur(t)}"`),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:ur(e.text)}},uy=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},Ri=class ey{constructor(t){Ze(this,"options");Ze(this,"renderer");Ze(this,"textRenderer");this.options=t||vs,this.options.renderer=this.options.renderer||new Wh,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new uy}static parse(t,n){return new ey(n).parse(t)}static parseInline(t,n){return new ey(n).parseInline(t)}parse(t,n=!0){let i="";for(let r=0;r<t.length;r++){let a=t[r];if(this.options.extensions?.renderers?.[a.type]){let l=a,o=this.options.extensions.renderers[l.type].call({parser:this},l);if(o!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){i+=o||"";continue}}let s=a;switch(s.type){case"space":{i+=this.renderer.space(s);continue}case"hr":{i+=this.renderer.hr(s);continue}case"heading":{i+=this.renderer.heading(s);continue}case"code":{i+=this.renderer.code(s);continue}case"table":{i+=this.renderer.table(s);continue}case"blockquote":{i+=this.renderer.blockquote(s);continue}case"list":{i+=this.renderer.list(s);continue}case"html":{i+=this.renderer.html(s);continue}case"def":{i+=this.renderer.def(s);continue}case"paragraph":{i+=this.renderer.paragraph(s);continue}case"text":{let l=s,o=this.renderer.text(l);for(;r+1<t.length&&t[r+1].type==="text";)l=t[++r],o+=`
307
307
  `+this.renderer.text(l);n?i+=this.renderer.paragraph({type:"paragraph",raw:o,text:o,tokens:[{type:"text",raw:o,text:o,escaped:!0}]}):i+=o;continue}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return i}parseInline(t,n=this.renderer){let i="";for(let r=0;r<t.length;r++){let a=t[r];if(this.options.extensions?.renderers?.[a.type]){let l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){i+=l||"";continue}}let s=a;switch(s.type){case"escape":{i+=n.text(s);break}case"html":{i+=n.html(s);break}case"link":{i+=n.link(s);break}case"image":{i+=n.image(s);break}case"strong":{i+=n.strong(s);break}case"em":{i+=n.em(s);break}case"codespan":{i+=n.codespan(s);break}case"br":{i+=n.br(s);break}case"del":{i+=n.del(s);break}case"text":{i+=n.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return i}},Qh,Iu=(Qh=class{constructor(e){Ze(this,"options");Ze(this,"block");this.options=e||vs}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?Li.lex:Li.lexInline}provideParser(){return this.block?Ri.parse:Ri.parseInline}},Ze(Qh,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),Ze(Qh,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Qh),Q4=class{constructor(...e){Ze(this,"defaults",ty());Ze(this,"options",this.setOptions);Ze(this,"parse",this.parseMarkdown(!0));Ze(this,"parseInline",this.parseMarkdown(!1));Ze(this,"Parser",Ri);Ze(this,"Renderer",Wh);Ze(this,"TextRenderer",uy);Ze(this,"Lexer",Li);Ze(this,"Tokenizer",Zh);Ze(this,"Hooks",Iu);this.use(...e)}walkTokens(e,t){let n=[];for(let i of e)switch(n=n.concat(t.call(this,i)),i.type){case"table":{let r=i;for(let a of r.header)n=n.concat(this.walkTokens(a.tokens,t));for(let a of r.rows)for(let s of a)n=n.concat(this.walkTokens(s.tokens,t));break}case"list":{let r=i;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=i;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(a=>{let s=r[a].flat(1/0);n=n.concat(this.walkTokens(s,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let a=t.renderers[r.name];a?t.renderers[r.name]=function(...s){let l=r.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=t[r.level];a?a.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),n.renderer){let r=this.defaults.renderer||new Wh(this.defaults);for(let a in n.renderer){if(!(a in r))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let s=a,l=n.renderer[s],o=r[s];r[s]=(...u)=>{let h=l.apply(r,u);return h===!1&&(h=o.apply(r,u)),h||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Zh(this.defaults);for(let a in n.tokenizer){if(!(a in r))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let s=a,l=n.tokenizer[s],o=r[s];r[s]=(...u)=>{let h=l.apply(r,u);return h===!1&&(h=o.apply(r,u)),h}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Iu;for(let a in n.hooks){if(!(a in r))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let s=a,l=n.hooks[s],o=r[s];Iu.passThroughHooks.has(a)?r[s]=u=>{if(this.defaults.async&&Iu.passThroughHooksRespectAsync.has(a))return(async()=>{let f=await l.call(r,u);return o.call(r,f)})();let h=l.call(r,u);return o.call(r,h)}:r[s]=(...u)=>{if(this.defaults.async)return(async()=>{let f=await l.apply(r,u);return f===!1&&(f=await o.apply(r,u)),f})();let h=l.apply(r,u);return h===!1&&(h=o.apply(r,u)),h}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,a=n.walkTokens;i.walkTokens=function(s){let l=[];return l.push(a.call(this,s)),r&&(l=l.concat(r.call(this,s))),l}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Li.lex(e,t??this.defaults)}parser(e,t){return Ri.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let i={...n},r={...this.defaults,...i},a=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=e),r.async)return(async()=>{let s=r.hooks?await r.hooks.preprocess(t):t,l=await(r.hooks?await r.hooks.provideLexer():e?Li.lex:Li.lexInline)(s,r),o=r.hooks?await r.hooks.processAllTokens(l):l;r.walkTokens&&await Promise.all(this.walkTokens(o,r.walkTokens));let u=await(r.hooks?await r.hooks.provideParser():e?Ri.parse:Ri.parseInline)(o,r);return r.hooks?await r.hooks.postprocess(u):u})().catch(a);try{r.hooks&&(t=r.hooks.preprocess(t));let s=(r.hooks?r.hooks.provideLexer():e?Li.lex:Li.lexInline)(t,r);r.hooks&&(s=r.hooks.processAllTokens(s)),r.walkTokens&&this.walkTokens(s,r.walkTokens);let l=(r.hooks?r.hooks.provideParser():e?Ri.parse:Ri.parseInline)(s,r);return r.hooks&&(l=r.hooks.postprocess(l)),l}catch(s){return a(s)}}}onError(e,t){return n=>{if(n.message+=`
308
- Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error occurred:</p><pre>"+ur(n.message+"",!0)+"</pre>";return t?Promise.resolve(i):i}if(t)return Promise.reject(n);throw n}}},bs=new Q4;function Ge(e,t){return bs.parse(e,t)}Ge.options=Ge.setOptions=function(e){return bs.setOptions(e),Ge.defaults=bs.defaults,eE(Ge.defaults),Ge};Ge.getDefaults=ty;Ge.defaults=vs;Ge.use=function(...e){return bs.use(...e),Ge.defaults=bs.defaults,eE(Ge.defaults),Ge};Ge.walkTokens=function(e,t){return bs.walkTokens(e,t)};Ge.parseInline=bs.parseInline;Ge.Parser=Ri;Ge.parser=Ri.parse;Ge.Renderer=Wh;Ge.TextRenderer=uy;Ge.Lexer=Li;Ge.lexer=Li.lex;Ge.Tokenizer=Zh;Ge.Hooks=Iu;Ge.parse=Ge;var FU=Ge.options,PU=Ge.setOptions,GU=Ge.use,YU=Ge.walkTokens,KU=Ge.parseInline;var JU=Ri.parse,QU=Li.lex;var Da=ze(Ln(),1);var fE=["card","stat","compare","timeline","chart","figure","html","interactive","file"];var hE={card:{label:"\u8D44\u6E90\u5361",when:"\u4E00\u7BC7\u8BBA\u6587\u3001\u4E00\u4E2A\u4ED3\u5E93\u6216\u4E00\u672C\u4E66\uFF0C\u8BFB\u8005\u9700\u8981\u6807\u9898\u3001\u94FE\u63A5\u548C\u4E00\u53E5\u8BF4\u660E\u3002",whenNot:"\u6B63\u6587\u91CC\u5DF2\u7ECF\u6709\u8FD9\u53E5\u8BDD\u65F6\uFF0C\u4E0D\u8981\u518D\u5305\u4E00\u5F20\u5361\u3002",keys:["url","title","description","image","alt","points","meta","text","source","site","items"],example:"```garden card\nurl: https://arxiv.org/abs/2309.06180\ntitle: PagedAttention\ndescription: vLLM \u7684\u5206\u9875 KV \u7BA1\u7406\u3002\n```",triggers:["gcard"]},stat:{label:"\u6307\u6807",when:"\u4E00\u4E2A\u77ED\u6307\u6807\uFF1A\u6807\u7B7E\u3001\u6570\u5B57\u3001\u53EF\u9009\u7684\u4E00\u53E5\u8BF4\u660E\u548C\u6765\u6E90\u3002",whenNot:"\u6570\u5B57\u9700\u8981\u8BFB\u8005\u81EA\u5DF1\u4EE3\u5165\u53C2\u6570\u65F6\uFF0C\u5199\u6210\u60F3\u6CD5\uFF0C\u4E0D\u8981\u505A\u9759\u6001\u6307\u6807\u3002",keys:["items","label","value","unit","caption","source","text"],example:"```garden stat\nitems:\n - label: Llama-2-13B \xB7 4K \u4E0A\u4E0B\u6587\n value: 3.2\n unit: GiB\n source: https://arxiv.org/abs/2309.06180\n```",triggers:["gstat"]},compare:{label:"\u5BF9\u6BD4",when:"\u4E24\u4E09\u4EF6\u4E1C\u897F\u5E76\u6392\uFF0C\u6BCF\u683C\u7EA6 60 \u5B57\u4EE5\u5185\u3002\u539F\u6587\u662F\u300CX\uFF1AY\u300D\u5217\u8868\u65F6\uFF0C\u6BCF\u683C\u5199\u6210\u4E00\u884C\u5E26\u5F15\u53F7\u7684\u300CX\uFF1AY\u300D\u3002",whenNot:"\u4EFB\u4F55\u4E00\u683C\u8D85\u8FC7\u7EA6 60 \u5B57\u65F6\uFF0C\u7528\u539F\u6587\u7684\u5217\u8868\uFF0C\u4E0D\u8981\u5E76\u6392\u3002",keys:["items"],itemKeys:["title","text"],example:"```garden compare\nitems:\n - title: \u81EA\u65CB\u9501\n text: \u4E34\u754C\u533A\u6781\u77ED\u65F6\u5FD9\u7B49\uFF0C\u4E0D\u8FDB\u5165\u4F11\u7720\u3002\n - title: \u4E92\u65A5\u9501\n text: \u4E89\u7528\u4E45\u5C31\u4F11\u7720\uFF0C\u907F\u514D\u7A7A\u8F6C\u5360\u6EE1 CPU\u3002\n```",triggers:["gcompare"]},timeline:{label:"\u65F6\u95F4\u7EBF",when:"\u7248\u672C\u6F14\u8FDB\u6216\u4E00\u6BB5\u5386\u53F2\uFF0C\u6BCF\u6761\u6709\u65E5\u671F\u548C\u4E00\u53E5\u8BF4\u660E\u3002",whenNot:"\u6CA1\u6709\u65F6\u95F4\u987A\u5E8F\u65F6\uFF0C\u7528\u666E\u901A\u5217\u8868\u3002",keys:["title","items"],itemKeys:["date","title","text","source"],example:`\`\`\`garden timeline
308
+ Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error occurred:</p><pre>"+ur(n.message+"",!0)+"</pre>";return t?Promise.resolve(i):i}if(t)return Promise.reject(n);throw n}}},bs=new Q4;function Ge(e,t){return bs.parse(e,t)}Ge.options=Ge.setOptions=function(e){return bs.setOptions(e),Ge.defaults=bs.defaults,eE(Ge.defaults),Ge};Ge.getDefaults=ty;Ge.defaults=vs;Ge.use=function(...e){return bs.use(...e),Ge.defaults=bs.defaults,eE(Ge.defaults),Ge};Ge.walkTokens=function(e,t){return bs.walkTokens(e,t)};Ge.parseInline=bs.parseInline;Ge.Parser=Ri;Ge.parser=Ri.parse;Ge.Renderer=Wh;Ge.TextRenderer=uy;Ge.Lexer=Li;Ge.lexer=Li.lex;Ge.Tokenizer=Zh;Ge.Hooks=Iu;Ge.parse=Ge;var FU=Ge.options,PU=Ge.setOptions,GU=Ge.use,YU=Ge.walkTokens,KU=Ge.parseInline;var JU=Ri.parse,QU=Li.lex;var Da=ze(Ln(),1);var fE=["card","stat","compare","timeline","chart","figure","html","interactive","file","relations","list","choice"];var hE={card:{label:"\u8D44\u6E90\u5361",when:"\u4E00\u7BC7\u8BBA\u6587\u3001\u4E00\u4E2A\u4ED3\u5E93\u6216\u4E00\u672C\u4E66\uFF0C\u8BFB\u8005\u9700\u8981\u6807\u9898\u3001\u94FE\u63A5\u548C\u4E00\u53E5\u8BF4\u660E\u3002",whenNot:"\u6B63\u6587\u91CC\u5DF2\u7ECF\u6709\u8FD9\u53E5\u8BDD\u65F6\uFF0C\u4E0D\u8981\u518D\u5305\u4E00\u5F20\u5361\u3002",keys:["url","title","description","image","alt","points","meta","text","source","site","items","takeaway","cards"],itemKeys:["url","title","description","image","alt","meta","text","source","takeaway"],example:"```garden card\nurl: https://arxiv.org/abs/2309.06180\ntitle: PagedAttention\ndescription: vLLM \u7684\u5206\u9875 KV \u7BA1\u7406\u3002\n```",triggers:["gcard"]},stat:{label:"\u6307\u6807",when:"\u4E00\u4E2A\u77ED\u6307\u6807\uFF1A\u6807\u7B7E\u3001\u6570\u5B57\u3001\u53EF\u9009\u7684\u4E00\u53E5\u8BF4\u660E\u548C\u6765\u6E90\u3002",whenNot:"\u6570\u5B57\u9700\u8981\u8BFB\u8005\u81EA\u5DF1\u4EE3\u5165\u53C2\u6570\u65F6\uFF0C\u5199\u6210\u60F3\u6CD5\uFF0C\u4E0D\u8981\u505A\u9759\u6001\u6307\u6807\u3002",keys:["items","label","value","unit","caption","source","text"],example:"```garden stat\nitems:\n - label: Llama-2-13B \xB7 4K \u4E0A\u4E0B\u6587\n value: 3.2\n unit: GiB\n source: https://arxiv.org/abs/2309.06180\n```",triggers:["gstat"]},compare:{label:"\u5BF9\u6BD4",when:"\u4E24\u4E09\u4EF6\u4E1C\u897F\u5E76\u6392\uFF0C\u6BCF\u683C\u7EA6 60 \u5B57\u4EE5\u5185\u3002\u539F\u6587\u662F\u300CX\uFF1AY\u300D\u5217\u8868\u65F6\uFF0C\u6BCF\u683C\u5199\u6210\u4E00\u884C\u5E26\u5F15\u53F7\u7684\u300CX\uFF1AY\u300D\u3002",whenNot:"\u4EFB\u4F55\u4E00\u683C\u8D85\u8FC7\u7EA6 60 \u5B57\u65F6\uFF0C\u7528\u539F\u6587\u7684\u5217\u8868\uFF0C\u4E0D\u8981\u5E76\u6392\u3002",keys:["items"],itemKeys:["title","text","verdict"],example:"```garden compare\nitems:\n - title: \u81EA\u65CB\u9501\n text: \u4E34\u754C\u533A\u6781\u77ED\u65F6\u5FD9\u7B49\uFF0C\u4E0D\u8FDB\u5165\u4F11\u7720\u3002\n - title: \u4E92\u65A5\u9501\n text: \u4E89\u7528\u4E45\u5C31\u4F11\u7720\uFF0C\u907F\u514D\u7A7A\u8F6C\u5360\u6EE1 CPU\u3002\n```",triggers:["gcompare"]},timeline:{label:"\u65F6\u95F4\u7EBF",when:"\u7248\u672C\u6F14\u8FDB\u6216\u4E00\u6BB5\u5386\u53F2\uFF0C\u6BCF\u6761\u6709\u65E5\u671F\u548C\u4E00\u53E5\u8BF4\u660E\u3002",whenNot:"\u6CA1\u6709\u65F6\u95F4\u987A\u5E8F\u65F6\uFF0C\u7528\u666E\u901A\u5217\u8868\u3002",keys:["title","items"],itemKeys:["date","title","text","source"],example:`\`\`\`garden timeline
309
309
  items:
310
310
  - date: 2015
311
311
  title: \u5E76\u53D1\u6807\u8BB0
@@ -331,7 +331,44 @@ parts:
331
331
  text: \u6574\u5F20\u56FE\u3002
332
332
  - name: \u6807\u8BB0
333
333
  text: \u8FD9\u4E00\u6B65\u53EA\u505A\u6807\u8BB0\u3002
334
- \`\`\``,triggers:["gfigure"]},html:{label:"\u81EA\u5B9A\u4E49 HTML",when:"\u76EE\u5F55\u91CC\u7684\u7EC4\u4EF6\u753B\u4E0D\u51FA\u6765\u7684\u793A\u610F\u56FE\u6216\u5C0F\u5DE5\u5177\uFF0C\u5199\u5728\u540C\u540D\u76EE\u5F55\u7684 HTML \u91CC\u3002",whenNot:"\u80FD\u7528 card\u3001chart\u3001figure \u6216\u6B63\u6587\u8BF4\u6E05\u65F6\uFF0C\u4E0D\u8981\u5199 HTML\u3002",keys:["src","code","title","height"],example:"```garden html\nsrc: ./demo.html\ntitle: \u793A\u610F\u56FE\n```",triggers:["ghtml"]},interactive:{label:"\u4EA4\u4E92",when:"\u8BFB\u8005\u9700\u8981\u62E7\u53C2\u6570\u6216\u7FFB\u72B6\u6001\u624D\u80FD\u770B\u61C2\uFF0C\u7531\u60F3\u6CD5\u7F16\u8BD1\u800C\u6765\u3002",whenNot:"\u4E00\u6B21\u4E58\u6CD5\u3001\u628A\u6563\u6587\u5207\u6210\u6B65\u9AA4\uFF0C\u90FD\u4E0D\u8981\u505A\u6210\u4EA4\u4E92\u3002",keys:["id","caption","intent","expect"],example:"```garden interactive #kv-memory\ncaption: \u663E\u5B58\u4E0E batch\u3001\u5E8F\u5217\u957F\u5EA6\u90FD\u6210\u6B63\u6BD4\u3002\nintent: |\n \u8BA9\u8BFB\u8005\u62E7 batch\uFF0C\u770B KV \u663E\u5B58\u3002\n---\n<State batch={1} />\n```",triggers:["ginteractive"]},file:{label:"\u6587\u4EF6",when:"\u7ED9\u8BFB\u8005\u4E00\u4EFD\u53EF\u4EE5\u4E0B\u8F7D\u7684\u6587\u4EF6\uFF1A\u89C4\u683C\u5305\u3001PDF\u3001\u793A\u4F8B\u4EE3\u7801\u3002Markdown\u3001HTML\u3001PDF \u8FD8\u80FD\u5728\u9875\u9762\u91CC\u9884\u89C8\u3002",whenNot:"\u53EA\u662F\u5F15\u7528\u4E00\u4E2A\u7F51\u9875\u65F6\u7528 card\uFF1B\u8981\u5728\u6B63\u6587\u91CC\u76F4\u63A5\u5C55\u793A\u7684\u56FE\u8868\u6216\u9875\u9762\u7528 html\u3002",keys:["src","title","note","files"],itemKeys:["src","title","note"],builtKeys:["resolved"],example:"```garden file\nsrc: ./post-name/spec.zip\nnote: \u4E00\u53E5\u8BDD\u8BF4\u660E\u91CC\u9762\u6709\u4EC0\u4E48\n```",triggers:["gfile"]}},cy={label:"\u60F3\u6CD5",when:"\u8FD8\u4E0D\u786E\u5B9A\u7528\u54EA\u4E2A\u7EC4\u4EF6\u65F6\uFF0C\u5199\u4E00\u53E5\u60F3\u8BA9\u8BFB\u8005\u770B\u51FA\u4EC0\u4E48\u3002",whenNot:"\u53D1\u5E03\u524D\u5FC5\u987B\u7F16\u8BD1\u6389\u3002\u8349\u7A3F\u91CC\u53EF\u4EE5\u7559\u7740\u3002",example:"```garden\n\u8BA9\u8BFB\u8005\u2026\u2026\uFF1B\u60F3\u8BA9\u8BFB\u8005\u770B\u51FA\u2026\u2026\n```",triggers:["garden\u60F3\u6CD5","gidea"]};var fy={State:{caption:"State \u58F0\u660E\u53EF\u8C03\u7684\u91CF\uFF0CSlider \u7ED1\u4E0A\u53BB\u5C31\u80FD\u62E7\u3002",body:`<State batch={1} />
334
+ \`\`\``,triggers:["gfigure"]},html:{label:"\u81EA\u5B9A\u4E49 HTML",when:"\u76EE\u5F55\u91CC\u7684\u7EC4\u4EF6\u753B\u4E0D\u51FA\u6765\u7684\u793A\u610F\u56FE\u6216\u5C0F\u5DE5\u5177\uFF0C\u5199\u5728\u540C\u540D\u76EE\u5F55\u7684 HTML \u91CC\u3002",whenNot:"\u80FD\u7528 card\u3001chart\u3001figure \u6216\u6B63\u6587\u8BF4\u6E05\u65F6\uFF0C\u4E0D\u8981\u5199 HTML\u3002",keys:["src","code","title","height"],example:"```garden html\nsrc: ./demo.html\ntitle: \u793A\u610F\u56FE\n```",triggers:["ghtml"]},interactive:{label:"\u4EA4\u4E92",when:"\u8BFB\u8005\u9700\u8981\u62E7\u53C2\u6570\u6216\u7FFB\u72B6\u6001\u624D\u80FD\u770B\u61C2\uFF0C\u7531\u60F3\u6CD5\u7F16\u8BD1\u800C\u6765\u3002",whenNot:"\u4E00\u6B21\u4E58\u6CD5\u3001\u628A\u6563\u6587\u5207\u6210\u6B65\u9AA4\uFF0C\u90FD\u4E0D\u8981\u505A\u6210\u4EA4\u4E92\u3002",keys:["id","caption","intent","expect"],example:"```garden interactive #kv-memory\ncaption: \u663E\u5B58\u4E0E batch\u3001\u5E8F\u5217\u957F\u5EA6\u90FD\u6210\u6B63\u6BD4\u3002\nintent: |\n \u8BA9\u8BFB\u8005\u62E7 batch\uFF0C\u770B KV \u663E\u5B58\u3002\n---\n<State batch={1} />\n```",triggers:["ginteractive"]},file:{label:"\u6587\u4EF6",when:"\u7ED9\u8BFB\u8005\u4E00\u4EFD\u53EF\u4EE5\u4E0B\u8F7D\u7684\u6587\u4EF6\uFF1A\u89C4\u683C\u5305\u3001PDF\u3001\u793A\u4F8B\u4EE3\u7801\u3002Markdown\u3001HTML\u3001PDF \u8FD8\u80FD\u5728\u9875\u9762\u91CC\u9884\u89C8\u3002",whenNot:"\u53EA\u662F\u5F15\u7528\u4E00\u4E2A\u7F51\u9875\u65F6\u7528 card\uFF1B\u8981\u5728\u6B63\u6587\u91CC\u76F4\u63A5\u5C55\u793A\u7684\u56FE\u8868\u6216\u9875\u9762\u7528 html\u3002",keys:["src","title","note","files"],itemKeys:["src","title","note"],builtKeys:["resolved"],example:"```garden file\nsrc: ./post-name/spec.zip\nnote: \u4E00\u53E5\u8BDD\u8BF4\u660E\u91CC\u9762\u6709\u4EC0\u4E48\n```",triggers:["gfile"]},relations:{label:"\u5173\u7CFB\u56FE",when:"\u4E09\u5230\u516D\u4E2A\u5173\u952E\u8981\u7D20\uFF0C\u8BFB\u8005\u9700\u8981\u770B\u6E05\u8C01\u5F71\u54CD\u8C01\u3001\u54EA\u4E9B\u662F\u53CC\u5411\u7684\uFF1B\u9996\u5C3E\u76F8\u63A5\u7684\u5FAA\u73AF\u4E5F\u7528\u5B83\uFF0C\u628A\u6BCF\u4E00\u6B65\u5199\u6210\u4E00\u6761 link\u3002",whenNot:"\u8981\u7D20\u66F4\u591A\u3001\u6709\u5206\u652F\u6216\u5148\u540E\u987A\u5E8F\u65F6\uFF0C\u7528 ```mermaid \u6D41\u7A0B\u56FE\uFF1B\u53EA\u8D70\u4E00\u904D\u7684\u6B65\u9AA4\u7528 garden list\u3002",keys:["title","items","center","links","caption"],itemKeys:["title","text"],linkKeys:["from","to","style","direction","label"],example:`\`\`\`garden relations
335
+ items:
336
+ - title: \u89C2\u5BDF
337
+ text: \u8BB0\u4E0B\u53D1\u751F\u4E86\u4EC0\u4E48
338
+ - title: \u5047\u8BBE
339
+ text: \u731C\u4E00\u4E2A\u539F\u56E0
340
+ - title: \u5B9E\u9A8C
341
+ text: \u53EA\u6539\u4E00\u4E2A\u53D8\u91CF
342
+ - title: \u590D\u76D8
343
+ text: \u7559\u4E0B\u80FD\u590D\u7528\u7684\u7ED3\u8BBA
344
+ links:
345
+ - from: 1
346
+ to: 2
347
+ - from: 2
348
+ to: 3
349
+ - from: 3
350
+ to: 4
351
+ - from: 4
352
+ to: 1
353
+ - from: 4
354
+ to: 2
355
+ style: dashed
356
+ label: \u6539\u5199
357
+ caption: \u590D\u76D8\u7684\u7ED3\u8BBA\u4F1A\u6539\u5199\u4E0B\u4E00\u8F6E\u7684\u5047\u8BBE\u3002
358
+ \`\`\``,triggers:["grel"]},list:{label:"\u56FE\u6807\u5217\u8868",when:"\u51E0\u6761\u5E76\u5217\u7684\u884C\u4E3A\u3001\u4FE1\u53F7\u6216\u505A\u6CD5\uFF0C\u6BCF\u6761\u914D\u4E00\u4E2A\u7EBF\u6761\u56FE\u6807\uFF1B\u5E26\u6807\u9898\u65F6\u6BCF\u6761\u53EF\u4EE5\u5199\u51E0\u6BB5\u8BF4\u660E\u3002",whenNot:"\u6761\u76EE\u4E4B\u95F4\u6709\u5148\u540E\u987A\u5E8F\u6216\u8981\u7F16\u53F7\u65F6\uFF0C\u7528\u666E\u901A\u6709\u5E8F\u5217\u8868\u3002",keys:["title","items","caption"],itemKeys:["icon","title","text"],example:"```garden list\nitems:\n - icon: search\n text: \u641C\u7D22\u300C\u964D\u566A\u8033\u673A\u300D\n - icon: eye\n text: \u770B\u4E86 5 \u4E2A\u5546\u54C1\u8BE6\u60C5\n```",triggers:["glist"]},choice:{label:"\u9009\u62E9\u5361",when:"\u7ED9\u8BFB\u8005\u4E24\u4E09\u4E2A\u5177\u4F53\u9009\u9879\u8BA9\u4ED6\u9009\u4E00\u4E2A\uFF0C\u6BCF\u4E2A\u9009\u9879\u6709\u56FE\u6807\u3001\u4E00\u4E2A\u9192\u76EE\u7684\u6570\u5B57\u548C\u4E00\u53E5\u8BF4\u660E\u3002",whenNot:"\u9009\u9879\u4F1A\u6539\u53D8\u540E\u9762\u7684\u8BA1\u7B97\u7ED3\u679C\u65F6\uFF0C\u5199\u6210\u60F3\u6CD5\uFF0C\u7F16\u8BD1\u6210 interactive\u3002",keys:["title","items","none","caption"],itemKeys:["icon","value","text","label","reply"],example:`\`\`\`garden choice
359
+ title: \u4F60\u66F4\u503E\u5411\u54EA\u4E00\u79CD\uFF1F
360
+ items:
361
+ - icon: shield
362
+ value: \xA52,950
363
+ text: \u539F\u88C5\uFF0C\u4EF7\u683C\u7565\u9AD8
364
+ label: \u66F4\u770B\u91CD\u53EF\u9760
365
+ - icon: wallet
366
+ value: \xA52,450
367
+ text: \u6362\u8FC7\u7535\u6C60\uFF0C\u4EF7\u683C\u66F4\u4F4E
368
+ label: \u66F4\u770B\u91CD\u4EF7\u683C
369
+ none:
370
+ label: \u90FD\u4E0D\u5408\u9002
371
+ \`\`\``,triggers:["gchoice"]}},cy={label:"\u60F3\u6CD5",when:"\u8FD8\u4E0D\u786E\u5B9A\u7528\u54EA\u4E2A\u7EC4\u4EF6\u65F6\uFF0C\u5199\u4E00\u53E5\u60F3\u8BA9\u8BFB\u8005\u770B\u51FA\u4EC0\u4E48\u3002",whenNot:"\u53D1\u5E03\u524D\u5FC5\u987B\u7F16\u8BD1\u6389\u3002\u8349\u7A3F\u91CC\u53EF\u4EE5\u7559\u7740\u3002",example:"```garden\n\u8BA9\u8BFB\u8005\u2026\u2026\uFF1B\u60F3\u8BA9\u8BFB\u8005\u770B\u51FA\u2026\u2026\n```",triggers:["garden\u60F3\u6CD5","gidea"]};var fy={State:{caption:"State \u58F0\u660E\u53EF\u8C03\u7684\u91CF\uFF0CSlider \u7ED1\u4E0A\u53BB\u5C31\u80FD\u62E7\u3002",body:`<State batch={1} />
335
372
  <Slider bind="batch" label="batch" min={1} max={32} />
336
373
  \u73B0\u5728 batch \u662F **{batch}**\u3002`},Let:{caption:"Let \u4ECE\u72B6\u6001\u7B97\u51FA\u6D3E\u751F\u503C\uFF0C\u72B6\u6001\u4E00\u53D8\u5C31\u8DDF\u7740\u91CD\u7B97\u3002",body:`<State seq={4096} />
337
374
  <Let mem={2 * 32 * 8 * 128 * seq * 2} />
@@ -431,7 +468,7 @@ id: ${`demo-${e.toLowerCase()}`}
431
468
  caption: ${t.caption}
432
469
  ---
433
470
  ${t.body}
434
- \`\`\``:null}var qt=ze(Ln(),1);var gt=ze(Ln(),1);var ip=ze(Ln(),1),i6=ze(mt(),1),W4={unknownComponent:e=>`\u9884\u89C8\u9700\u8981\u66F4\u65B0 Garden \u63D2\u4EF6\uFF08\u4E0D\u8BA4\u8BC6 <${e}>\uFF09`,errorTitle:"\u8FD9\u5757\u4EA4\u4E92\u6709\u9519\u8BEF",lineN:e=>`\u7B2C ${e} \u884C`,missingCaption:"\uFF08\u7F3A\u5C11 caption\uFF09",idea:"\u60F3\u6CD5",uncompiled:"\u672A\u7F16\u8BD1",copyCompilePrompt:"\u590D\u5236\u7F16\u8BD1\u63D0\u793A\u8BCD",ideaNote:"\u7F16\u8BD1\u540E\u8FD9\u91CC\u4F1A\u53D8\u6210\u53EF\u4EA4\u4E92\u7684\u7EC4\u4EF6\u3002",interactive:"\u4EA4\u4E92",tapNumbers:"\u70B9\u56FE\u4E0A\u7684\u5E8F\u53F7\u770B\u8BF4\u660E\u3002",mermaidFailed:"\u56FE\u6CA1\u80FD\u753B\u51FA\u6765\uFF08\u8BED\u6CD5\u6709\u8BEF\uFF0C\u6216\u8FD9\u91CC\u6CA1\u6709 Mermaid\uFF09\u3002\u4E0B\u9762\u662F\u6E90\u7801\u3002",drawing:"\u6B63\u5728\u7ED8\u5236\u56FE\u2026",highlighted:e=>`\u5F53\u524D\u9AD8\u4EAE\uFF1A${e.join("\u3001")}`,prevStep:"\u4E0A\u4E00\u6B65",nextStep:"\u4E0B\u4E00\u6B65",stepN:(e,t)=>`\u7B2C ${e} \u6B65\uFF1A${t}`,pause:"\u6682\u505C",play:"\u64AD\u653E",badSlider:e=>`\u6ED1\u6746 ${e} \u7684\u8303\u56F4\u65E0\u6548`,decrease:"\u51CF\u5C11",increase:"\u589E\u52A0",over:e=>` \u8D85\u51FA ${e}`,rowN:e=>`\u7B2C ${e} \u884C`,tapCell:"\u70B9\u4E00\u683C\u770B\u8BF4\u660E\u3002",cellNote:(e,t,n)=>`${e} \xB7 ${t}\uFF1A${n}`,seriesN:e=>`\u7CFB\u5217 ${e}`,badChart:"\u56FE\u8868\u7F3A\u5C11\u6709\u6548\u7684\u8303\u56F4\u6216\u6570\u636E",chart:"\u56FE\u8868",chartKeys:e=>`${e}\uFF0C\u5DE6\u53F3\u65B9\u5411\u952E\u67E5\u770B\u5404\u70B9`,donut:"\u5706\u73AF\u56FE"},e6={unknownComponent:e=>`This preview needs a newer Garden plugin (unknown <${e}>)`,errorTitle:"This interactive block has errors",lineN:e=>`Line ${e}`,missingCaption:"(missing caption)",idea:"Idea",uncompiled:"Not compiled",copyCompilePrompt:"Copy compile prompt",ideaNote:"Once compiled, an interactive component appears here.",interactive:"Interactive",tapNumbers:"Tap a number on the figure for its note.",mermaidFailed:"The diagram could not be drawn (a syntax error, or Mermaid is not available here). The source is below.",drawing:"Drawing the diagram\u2026",highlighted:e=>`Highlighted: ${e.join(", ")}`,prevStep:"Previous step",nextStep:"Next step",stepN:(e,t)=>`Step ${e}: ${t}`,pause:"Pause",play:"Play",badSlider:e=>`Slider ${e} has an invalid range`,decrease:"Decrease",increase:"Increase",over:e=>` ${e} over`,rowN:e=>`Row ${e}`,tapCell:"Tap a cell for its note.",cellNote:(e,t,n)=>`${e} \xB7 ${t}: ${n}`,seriesN:e=>`Series ${e}`,badChart:"The chart has no valid range or data",chart:"Chart",chartKeys:e=>`${e}, use the left and right arrow keys to read each point`,donut:"Donut chart"},t6={zh:W4,en:e6},n6=(0,ip.createContext)("zh");var At=()=>t6[(0,ip.useContext)(n6)];var Ie=ze(mt(),1),yE=(0,gt.createContext)(null),xE=(0,gt.createContext)({});function bE(){return(0,gt.useContext)(xE)}function Ue(){let e=(0,gt.useContext)(yE);if(!e)throw new Error("Garden UI component outside UiRuntime");return e}var r6=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function rp(e,t,n=e.scope){return Kn(...t.locals,n)}function Ss(e,t){try{return je(e,t,Rr(2e5))}catch{return}}function $(e,t,n,i,r){let a=t.p?.[n];if(a)return a.k==="lit"?a.v:Ss(a.e,rp(e,i,r))}function $u(e,t,n,i){if(t)return t.k==="lit"?t.v:Ss(t.e,Kn(r6(n)?n:{},...i.locals,e.scope))}var ee=(e,t="")=>e==null?t:typeof e=="string"?e:fe(e),He=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function xn(e,t,n){let i=[];for(let r of t??[])if(r.t==="el")if(r.n==="If")$(e,r,"test",n)&&i.push(...xn(e,r.c,n));else if(r.n==="Each"){let a=$(e,r,"of",n);if(!Array.isArray(a))continue;let s=r.p?.as?.k==="lit"?String(r.p.as.v):"item",l=r.p?.index?.k==="lit"?String(r.p.index.v):null;a.slice(0,200).forEach((o,u)=>{let h={[s]:o};l&&(h[l]=u),i.push(...xn(e,r.c,{locals:[h,...n.locals]}))})}else i.push({node:r,env:n});return i}var vE=new Map;function hi(e){for(let[t,n]of Object.entries(e))vE.set(t,n)}function a6({node:e,env:t}){let n=Ue(),i=e.e?Ss(e.e,rp(n,t)):void 0;return(0,Ie.jsx)("span",{className:"garden-ui-value",children:fe(i)})}var SE=e=>(e??[]).some(t=>t.t==="x"||SE(t.c)),s6=e=>/^(?:https:\/\/|\.{0,2}\/|#)/u.test(e)||/^[\w\u3400-\u9fff./-]+$/u.test(e)?e:"#";function wE({node:e,env:t}){let n=Ue(),i=At();switch(e.t){case"text":return e.v??"";case"x":return(0,Ie.jsx)(a6,{node:e,env:t});case"p":return(0,Ie.jsx)("p",{"aria-live":SE(e.c)?"polite":void 0,children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"strong":return(0,Ie.jsx)("strong",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"em":return(0,Ie.jsx)("em",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"code":return(0,Ie.jsx)("code",{children:e.v});case"br":return(0,Ie.jsx)("br",{});case"hr":return(0,Ie.jsx)("hr",{});case"link":{let r=s6(e.u??""),a=r.startsWith("https://");return(0,Ie.jsx)("a",{href:r,...a?{target:"_blank",rel:"noopener noreferrer"}:{},children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})})}case"list":{let r=e.o?"ol":"ul";return(0,Ie.jsx)(r,{start:e.o&&e.s&&e.s!==1?e.s:void 0,children:(e.c??[]).map((a,s)=>(0,Ie.jsx)("li",{children:(0,Ie.jsx)(Ot,{nodes:a.c,env:t})},s))})}case"quote":return(0,Ie.jsx)("blockquote",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"el":{if(e.n==="State"||e.n==="Let"||e.n==="Data")return null;if(e.n==="If"||e.n==="Each")return(0,Ie.jsx)(Ie.Fragment,{children:xn(n,[e],t).map((a,s)=>(0,Ie.jsx)(wE,{node:a.node,env:a.env},s))});let r=e.n?vE.get(e.n):void 0;return r?(0,gt.createElement)(r,{node:e,env:t}):(0,Ie.jsx)("span",{className:"garden-ui-unknown",children:i.unknownComponent(String(e.n))})}default:return null}}function Ot({nodes:e,env:t}){return(0,Ie.jsx)(Ie.Fragment,{children:(e??[]).map((n,i)=>(0,Ie.jsx)(gt.Fragment,{children:(0,Ie.jsx)(wE,{node:n,env:t})},i))})}function l6(e){let t=new Map,n=i=>{i.t==="el"&&i.n==="Slider"&&i.p?.bind?.k==="lit"&&t.set(String(i.p.bind.v),i),i.c?.forEach(n)};return n(e),t}var o6={};function u6(e,t){let n={...e};for(let[i,r]of Object.entries(t))Object.hasOwn(e,i)&&typeof e[i]==typeof r&&(n[i]=r);return n}var c6={};function hy({payload:e,host:t}){let n=(0,gt.useMemo)(()=>$l(e.root),[e.root]),i=(0,gt.useMemo)(()=>xs(n),[n]),[r,a]=(0,gt.useState)(i),[s,l]=(0,gt.useState)(e.root);s!==e.root&&(l(e.root),a(u6(i,r)));let o=e.data??o6,u=(0,gt.useMemo)(()=>Vr(n,{stateValues:r,dataValues:o,onError:()=>{}}),[n,r,o]),h=(0,gt.useMemo)(()=>l6(e.root),[e.root]),f=(0,gt.useCallback)(x=>a(w=>({...w,...x})),[]),c=(0,gt.useCallback)(()=>a(i),[i]),p=(0,gt.useCallback)(x=>Vr(n,{stateValues:x,dataValues:o,onError:()=>{}}),[n,o]),m=(0,gt.useMemo)(()=>({blockId:e.id,root:e.root,decls:n,data:o,defaults:i,state:r,scope:u,sliders:h,setState:f,reset:c,scopeFor:p}),[e.id,e.root,n,o,i,r,u,h,f,c,p]);return(0,Ie.jsx)(xE.Provider,{value:t??c6,children:(0,Ie.jsx)(yE.Provider,{value:m,children:(0,Ie.jsx)("div",{className:"garden-ui-body",children:(0,Ie.jsx)(Ot,{nodes:e.root.c,env:{locals:[]}})})})})}var Re=ze(mt(),1),f6=[0,4,8,12,16],kE=(e,t=3)=>f6[typeof e=="number"&&e>=0&&e<=4?e:t];function h6(e){if(typeof window>"u"||!window.matchMedia)return()=>{};let t=window.matchMedia("(prefers-reduced-motion: reduce)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function p6(){return(0,qt.useSyncExternalStore)(h6,()=>typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-reduced-motion: reduce)").matches:!1,()=>!1)}function d6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"direction",t),"col")==="row"?"row":"col";return(0,Re.jsx)("div",{className:"garden-ui-stack","data-direction":i,style:{gap:kE($(n,e,"gap",t))},children:(0,Re.jsx)(Ot,{nodes:e.c,env:t})})}function m6({node:e,env:t}){let n=Ue(),i=He($(n,e,"min",t))??220;return(0,Re.jsx)("div",{className:"garden-ui-columns",style:{gap:kE($(n,e,"gap",t)),"--garden-ui-col-min":`${i}px`},children:(e.c??[]).map((r,a)=>(0,Re.jsx)("div",{className:"garden-ui-column",children:(0,Re.jsx)(Ot,{nodes:[r],env:t})},a))})}function g6({node:e,env:t}){let n=Ue(),i=$(n,e,"title",t),r=ee($(n,e,"tone",t),"plain");return(0,Re.jsxs)("section",{className:`garden-ui-card garden-ui-tone-${r}`,children:[i!==void 0?(0,Re.jsx)("p",{className:"garden-ui-card-title",children:ee(i)}):null,(0,Re.jsx)(Ot,{nodes:e.c,env:t})]})}function EE(e,t){let n=Ue(),i=e.p?.bind?.k==="lit"?String(e.p.bind.v):null,[r,a]=(0,qt.useState)(0),s=i?He(n.state[i])??0:r;return[Math.max(0,Math.min(t-1,Math.trunc(s))),u=>{let h=Math.max(0,Math.min(t-1,u));i?n.setState({[i]:h}):a(h)}]}function y6({node:e,env:t}){let n=Ue(),i=xn(n,e.c,t).filter(u=>u.node.n==="Tab"),[r,a]=EE(e,i.length),s=(0,qt.useId)().replaceAll(":",""),l=(0,qt.useRef)([]),o=(u,h)=>{u.preventDefault();let f=(h+i.length)%i.length;a(f),l.current[f]?.focus()};return(0,Re.jsxs)("div",{className:"garden-ui-tabs",children:[(0,Re.jsx)("div",{className:"garden-ui-tablist",role:"tablist",children:i.map((u,h)=>(0,Re.jsx)("button",{ref:f=>{l.current[h]=f},type:"button",role:"tab",id:`${s}-tab-${h}`,"aria-selected":h===r,"aria-controls":`${s}-panel-${h}`,tabIndex:h===r?0:-1,onClick:()=>a(h),onKeyDown:f=>{f.key==="ArrowRight"&&o(f,h+1),f.key==="ArrowLeft"&&o(f,h-1),f.key==="Home"&&o(f,0),f.key==="End"&&o(f,i.length-1)},children:ee($(n,u.node,"title",u.env))},h))}),i.map((u,h)=>(0,Re.jsx)("div",{role:"tabpanel",id:`${s}-panel-${h}`,"aria-labelledby":`${s}-tab-${h}`,hidden:h!==r,className:"garden-ui-tabpanel",children:(0,Re.jsx)(Ot,{nodes:u.node.c,env:u.env})},h))]})}function x6({node:e,env:t}){let n=Ue(),i=At(),r=xn(n,e.c,t).filter(A=>A.node.n==="Step"),[a,s]=EE(e,r.length),l=He($(n,e,"autoplay",t)),o=p6(),[u,h]=(0,qt.useState)(!!l),[f,c]=(0,qt.useState)(!0),p=(0,qt.useRef)(null),m=(0,qt.useRef)(a),x=(0,qt.useRef)(s);(0,qt.useEffect)(()=>{m.current=a,x.current=s}),(0,qt.useEffect)(()=>{let A=p.current;if(!A||typeof IntersectionObserver>"u")return;let E=new IntersectionObserver(([T])=>c(T.isIntersecting),{threshold:.2});return E.observe(A),()=>E.disconnect()},[]);let w=!!l&&u&&f&&!o;(0,qt.useEffect)(()=>{if(!w||!l)return;let A=window.setInterval(()=>{if(m.current>=r.length-1){h(!1);return}x.current(m.current+1)},Math.max(800,l));return()=>window.clearInterval(A)},[w,l,r.length]);let[d,g]=(0,qt.useState)(!1),y=A=>{h(!1),g(!0),s(A)},k=r[a];return(0,Re.jsxs)("div",{ref:p,className:"garden-ui-steps","data-animate":d||w?"true":void 0,tabIndex:-1,onKeyDown:A=>{A.target!==A.currentTarget&&A.target.tagName==="INPUT"||(A.key==="ArrowRight"&&y(a+1),A.key==="ArrowLeft"&&y(a-1))},children:[(0,Re.jsxs)("div",{className:"garden-ui-steps-head",children:[(0,Re.jsx)("strong",{children:k?ee($(n,k.node,"title",k.env)):""}),(0,Re.jsx)("span",{children:r.length?`${a+1} / ${r.length}`:""})]}),(0,Re.jsx)("div",{className:"garden-ui-progress","aria-hidden":"true",children:(0,Re.jsx)("span",{style:{width:`${r.length?(a+1)/r.length*100:0}%`}})}),(0,Re.jsx)("div",{className:"garden-ui-steps-stage",children:r.map((A,E)=>(0,Re.jsx)("div",{className:"garden-ui-step","data-active":E===a?"true":void 0,"aria-hidden":E!==a,inert:E!==a,children:(0,Re.jsx)(Ot,{nodes:A.node.c,env:A.env})},E))}),(0,Re.jsxs)("div",{className:"garden-ui-steps-controls",children:[(0,Re.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.prevStep,onClick:()=>y(a-1),disabled:a===0,children:(0,Re.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:(0,Re.jsx)("path",{d:"M10 3.5 5.5 8l4.5 4.5"})})}),(0,Re.jsx)("span",{className:"garden-ui-steps-dots",children:r.map((A,E)=>(0,Re.jsx)("button",{type:"button","aria-label":i.stepN(E+1,ee($(n,A.node,"title",A.env))),"aria-current":E===a?"step":void 0,onClick:()=>y(E)},E))}),(0,Re.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.nextStep,onClick:()=>y(a+1),disabled:a>=r.length-1,children:(0,Re.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:(0,Re.jsx)("path",{d:"M6 3.5 10.5 8 6 12.5"})})}),l&&!o?(0,Re.jsx)("button",{type:"button",className:"garden-ui-button",onClick:()=>h(A=>!A),children:u?i.pause:i.play}):null]})]})}hi({Stack:d6,Columns:m6,Card:g6,Tabs:y6,Steps:x6});var qu=ze(Ln(),1);var de=ze(mt(),1),dy=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function TE(e,t,n){let i=He($(e,t,"min",n)),r=He($(e,t,"max",n));if(i===void 0||r===void 0||i>=r)return null;let a=$(e,t,"scale",n)==="log"&&i>0?"log":"linear",s=$(e,t,"snap",n),l=s==="int"||s==="pow2"||s==="none"?s:a==="log"&&gn(i)&&gn(r)?"pow2":"none",o=He($(e,t,"step",n))??(Number.isInteger(i)&&Number.isInteger(r)?1:(r-i)/100);return{min:i,max:r,scale:a,snap:l,step:o}}function AE(e,t){let n=Math.min(e.max,Math.max(e.min,t));return e.snap==="pow2"?n=2**Math.round(Math.log2(n)):(e.snap==="int"||e.scale==="linear"&&Number.isInteger(e.step)&&Number.isInteger(e.min))&&(n=Math.round(n)),Math.min(e.max,Math.max(e.min,n))}var py=1e3;function b6({node:e,env:t}){let n=Ue(),i=At(),r=(0,qu.useId)(),a=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),s=TE(n,e,t),l=ee($(n,e,"label",t)),o=$(n,e,"format",t),u=ee($(n,e,"unit",t)),h=He(n.state[a])??s?.min??0;if(!s)return(0,de.jsx)("p",{className:"garden-ui-error-inline",children:i.badSlider(String(l))});let f,c=s.min,p=s.max,m=s.step;s.snap==="pow2"?(c=Math.log2(s.min),p=Math.log2(s.max),m=1,f=Math.round(Math.log2(h))):s.scale==="log"?(c=0,p=py,m=1,f=Math.round((Math.log(h)-Math.log(s.min))/(Math.log(s.max)-Math.log(s.min))*py)):(f=h,m=s.step>0?s.step:"any");let x=w=>s.snap==="pow2"?2**w:s.scale==="log"?Math.exp(Math.log(s.min)+w/py*(Math.log(s.max)-Math.log(s.min))):w;return(0,de.jsxs)("div",{className:"garden-ui-slider",children:[(0,de.jsxs)("label",{htmlFor:r,children:[(0,de.jsx)("span",{children:l}),(0,de.jsxs)("output",{htmlFor:r,"aria-live":"polite",children:[fe(h,o),u?` ${u}`:""]})]}),(0,de.jsx)("div",{className:"garden-ui-slider-track",children:(0,de.jsx)("input",{id:r,type:"range",min:c,max:p,step:m,value:f,"aria-valuetext":`${fe(h,o)}${u?` ${u}`:""}`,onChange:w=>n.setState({[a]:AE(s,x(Number(w.target.value)))})})})]})}function v6({node:e,env:t}){let n=Ue(),i=(0,qu.useId)(),r=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),a=ee($(n,e,"label",t)),s=$(n,e,"options",t),l=(Array.isArray(s)?s:[]).map(h=>dy(h)?{value:h.value,label:ee(h.label??h.value)}:{value:h,label:ee(h)}),o=$(n,e,"style",t)??(l.length<=5?"segmented":"select"),u=n.state[r];return o==="select"?(0,de.jsxs)("div",{className:"garden-ui-choice",children:[(0,de.jsx)("label",{htmlFor:i,children:a}),(0,de.jsx)("select",{id:i,value:String(l.findIndex(h=>h.value===u)),onChange:h=>n.setState({[r]:l[Number(h.target.value)]?.value}),children:l.map((h,f)=>(0,de.jsx)("option",{value:String(f),children:h.label},f))})]}):(0,de.jsxs)("div",{className:"garden-ui-choice",role:"group","aria-labelledby":`${i}-label`,children:[(0,de.jsx)("span",{id:`${i}-label`,children:a}),(0,de.jsx)("span",{className:"garden-ui-segmented",children:l.map((h,f)=>(0,de.jsx)("button",{type:"button","aria-pressed":h.value===u,onClick:()=>n.setState({[r]:h.value}),children:h.label},f))})]})}function S6({node:e,env:t}){let n=Ue(),i=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),r=!!n.state[i];return(0,de.jsxs)("button",{type:"button",role:"switch","aria-checked":r,className:"garden-ui-toggle",onClick:()=>n.setState({[i]:!r}),children:[(0,de.jsx)("span",{className:"garden-ui-switch","aria-hidden":"true"}),(0,de.jsx)("span",{children:ee($(n,e,"label",t))})]})}function w6(e,t,n){if(typeof n!="number")return n;let i=e.sliders.get(t);if(i){let s=TE(e,i,{locals:[]});if(s)return AE(s,n)}let r=null,a=s=>{if(r===null){if(s.t==="el"&&(s.n==="Steps"||s.n==="Tabs")&&s.p?.bind?.k==="lit"&&s.p.bind.v===t){r=xn(e,s.c,{locals:[]}).length;return}s.c?.forEach(a)}};return a(e.root),r===null?n:Math.max(0,Math.min(r-1,Math.trunc(n)))}function k6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"tone",t),"plain"),r=()=>{if(e.p?.reset){n.reset();return}let a=e.p?.set;if(!a||a.k!=="expr")return;let s=Ss(a.e,rp(n,t));if(!dy(s))return;let l={};for(let[o,u]of Object.entries(s))!Object.hasOwn(n.defaults,o)||typeof n.defaults[o]!=typeof u||(l[o]=w6(n,o,u));n.setState(l)};return(0,de.jsx)("button",{type:"button",className:`garden-ui-button garden-ui-tone-${i}`,onClick:r,children:(0,de.jsx)(Ot,{nodes:e.c,env:t})})}function E6({node:e,env:t}){let n=Ue(),i=At(),r=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),a=He($(n,e,"min",t))??0,s=He($(n,e,"max",t))??a,l=He($(n,e,"step",t))??1,o=$(n,e,"label",t),u=$(n,e,"unit",t),h=He(n.state[r])??a,f=c=>n.setState({[r]:Math.max(a,Math.min(s,c))});return(0,de.jsxs)("div",{className:"garden-ui-stepper",children:[o!==void 0?(0,de.jsx)("span",{className:"garden-ui-stepper-label",children:ee(o)}):null,(0,de.jsxs)("div",{className:"garden-ui-stepper-row",children:[(0,de.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.decrease,onClick:()=>f(h-l),disabled:h<=a,children:"\u2212"}),(0,de.jsx)("span",{className:"garden-ui-stepper-value","aria-live":"polite",children:h}),u!==void 0?(0,de.jsx)("span",{className:"garden-ui-stepper-unit",children:ee(u)}):null,(0,de.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.increase,onClick:()=>f(h+l),disabled:h>=s,children:"+"})]})]})}function T6({node:e,env:t}){let n=Ue(),i=$(n,e,"items",t),r=(Array.isArray(i)?i:[]).map(f=>dy(f)?f:{title:f}),a=$(n,e,"title",t),[s,l]=(0,qu.useState)(()=>new Set),o=f=>l(c=>{let p=new Set(c);return p.has(f)?p.delete(f):p.add(f),p}),u=r.some(f=>f.time!==void 0||f.note!==void 0),h=r.length?s.size/r.length*100:0;return(0,de.jsxs)("div",{className:`garden-ui-checklist${u?" garden-ui-checklist-detailed":""}`,children:[(0,de.jsxs)("div",{className:"garden-ui-checklist-head",children:[a!==void 0?(0,de.jsx)("strong",{children:ee(a)}):(0,de.jsx)("span",{}),(0,de.jsxs)("span",{"aria-live":"polite",children:[s.size," / ",r.length]})]}),(0,de.jsx)("div",{className:"garden-ui-progress","aria-hidden":"true",children:(0,de.jsx)("span",{style:{width:`${h}%`}})}),(0,de.jsx)("ul",{children:r.map((f,c)=>(0,de.jsx)("li",{"data-done":s.has(c)?"true":void 0,children:(0,de.jsxs)("label",{children:[(0,de.jsx)("input",{type:"checkbox",checked:s.has(c),onChange:()=>o(c)}),(0,de.jsxs)("span",{className:"garden-ui-checklist-text",children:[f.time!==void 0?(0,de.jsx)("span",{className:"garden-ui-checklist-time",children:ee(f.time)}):null,(0,de.jsx)("span",{className:"garden-ui-checklist-title",children:ee(f.title)}),f.note!==void 0?(0,de.jsx)("span",{className:"garden-ui-checklist-note",children:ee(f.note)}):null]})]})},c))})]})}hi({Slider:b6,Choice:v6,Toggle:S6,Button:k6,Checklist:T6,Stepper:E6});var Ra=ze(Ln(),1);var ne=ze(mt(),1),ap=e=>!!e&&typeof e=="object"&&!Array.isArray(e),ql=(e,t="plain")=>typeof e=="string"&&Cr.includes(e)?e:t;function A6({node:e,env:t}){let n=Ue(),i=$(n,e,"format",t),r=$(n,e,"unit",t),a=$(n,e,"hint",t),s=ee($(n,e,"size",t),"md"),l=ql($(n,e,"tone",t));return(0,ne.jsxs)("div",{className:`garden-ui-stat garden-ui-stat-${s} garden-ui-tone-${l}`,children:[(0,ne.jsx)("span",{className:"garden-ui-stat-label",children:ee($(n,e,"label",t))}),(0,ne.jsxs)("span",{className:"garden-ui-stat-value","aria-live":"polite",children:[fe($(n,e,"value",t),i),r!==void 0?(0,ne.jsx)("small",{children:` ${ee(r)}`}):null]}),a!==void 0?(0,ne.jsx)("span",{className:"garden-ui-stat-hint",children:fe(a)}):null]})}function C6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"format",t),a=He($(n,e,"max",t))??0,s=$(n,e,"parts",t),l=Array.isArray(s)?s.filter(ap).map(p=>({label:ee(p.label),value:He(p.value)??0,tone:ql(p.tone,"muted")})):null,o=l?l.reduce((p,m)=>p+m.value,0):He($(n,e,"value",t))??0,u=a>0&&o>a,h=$(n,e,"label",t),f=p=>`${a>0?Math.max(0,Math.min(100,p/a*100)):0}%`,c=ql($(n,e,"tone",t),"accent");return(0,ne.jsxs)("div",{className:"garden-ui-meter","data-over":u?"true":void 0,children:[(0,ne.jsxs)("div",{className:"garden-ui-meter-head","aria-live":"polite",children:[(0,ne.jsx)("span",{children:h!==void 0?ee(h):""}),(0,ne.jsxs)("span",{children:[fe(o,r)," / ",fe(a,r),u?(0,ne.jsx)("strong",{children:i.over(fe(o-a,r))}):null]})]}),(0,ne.jsx)("div",{className:"garden-ui-meter-track",role:"meter","aria-valuemin":0,"aria-valuemax":a,"aria-valuenow":o,"aria-label":h!==void 0?ee(h):void 0,children:u?(0,ne.jsx)("span",{className:"garden-ui-meter-fill garden-ui-tone-accent",style:{width:"100%"}}):l?l.map((p,m)=>(0,ne.jsx)("span",{className:`garden-ui-meter-fill garden-ui-tone-${p.tone}`,style:{width:f(p.value)}},m)):(0,ne.jsx)("span",{className:`garden-ui-meter-fill garden-ui-tone-${c}`,style:{width:f(o)}})}),l?(0,ne.jsx)("ul",{className:"garden-ui-legend",children:l.map((p,m)=>(0,ne.jsxs)("li",{children:[(0,ne.jsx)("span",{className:`garden-ui-swatch garden-ui-tone-${p.tone}`}),p.label," ",fe(p.value,r)]},m))}):null]})}function N6({node:e,env:t}){let n=Ue();return(0,ne.jsx)("span",{className:`garden-ui-badge garden-ui-tone-${ql($(n,e,"tone",t),"muted")}`,children:(0,ne.jsx)(Ot,{nodes:e.c,env:t})})}function CE(e,t,n){return xn(e,t.c,n).filter(i=>i.node.n==="Row").map(i=>{let r=$(e,i.node,"cells",i.env),a=Array.isArray(r)?r:[],s=$(e,i.node,"tones",i.env),l=$(e,i.node,"notes",i.env),o=$(e,i.node,"label",i.env);return{label:o===void 0?null:ee(o),cells:a,tones:a.map((u,h)=>ql(Array.isArray(s)?s[h]:s)),notes:a.map((u,h)=>Array.isArray(l)&&typeof l[h]=="string"?l[h]:"")}})}function _6({text:e}){return(0,ne.jsx)("p",{className:"garden-ui-note","aria-live":"polite",children:e})}function O6({node:e,env:t}){let n=Ue(),i=$(n,e,"columns",t),r=(Array.isArray(i)?i:[]).map(c=>ap(c)?{label:ee(c.label??c.key),key:typeof c.key=="string"?c.key:null,format:c.format,align:c.align}:{label:ee(c),key:null,format:void 0,align:void 0}),[a,s]=(0,Ra.useState)(null),l;if(e.p?.data){let c=$(n,e,"data",t);l=(Array.isArray(c)?c.slice(0,50):[]).map(p=>{let m=ql($u(n,e.p?.rowTone,p,t));return{label:null,cells:r.map(x=>x.key&&ap(p)?p[x.key]:void 0),tones:r.map(()=>m),notes:r.map(()=>"")}})}else l=CE(n,e,t);let o=l.some(c=>c.label!==null),u=r.map((c,p)=>(p>0||o)&&l.length>0&&l.every(m=>typeof m.cells[p]=="number")),h=a?l[a.row]?.notes[a.col]:"",f=o&&r.length===1;return(0,ne.jsxs)("div",{className:"garden-ui-table-wrap",children:[(0,ne.jsxs)("table",{className:`garden-ui-table${f?" garden-ui-table-kv":""}`,children:[(0,ne.jsx)("thead",{children:(0,ne.jsxs)("tr",{children:[o?(0,ne.jsx)("th",{"aria-hidden":"true"}):null,r.map((c,p)=>(0,ne.jsx)("th",{scope:"col","data-align":c.align??(u[p]?"right":"left"),children:c.label},p))]})}),(0,ne.jsx)("tbody",{children:l.map((c,p)=>{let m=c.tones.length>0&&c.tones.every(x=>x===c.tones[0])&&c.tones[0]!=="plain"?c.tones[0]:null;return(0,ne.jsxs)("tr",{className:m?`garden-ui-tone-${m}`:void 0,"data-tone":m?"row":void 0,children:[o?(0,ne.jsx)("th",{scope:"row",children:c.label??""}):null,c.cells.map((x,w)=>{let d=fe(x,r[w]?.format),g=!!c.notes[w];return(0,ne.jsx)("td",{className:`garden-ui-tone-${c.tones[w]}`,"data-align":r[w]?.align??(u[w]?"right":"left"),children:g?(0,ne.jsx)("button",{type:"button",className:"garden-ui-note-trigger","aria-pressed":a?.row===p&&a?.col===w,onClick:()=>s({row:p,col:w}),children:d}):d},w)})]},p)})})]}),l.some(c=>c.notes.some(Boolean))?(0,ne.jsx)(_6,{text:h??""}):null]})}function M6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"cols",t),a=(Array.isArray(r)?r:[]).map(y=>ee(y)),s=$(n,e,"legend",t),l=ap(s)?s:{},o=CE(n,e,t),[u,h]=(0,Ra.useState)({row:0,col:0}),[f,c]=(0,Ra.useState)(null),p=(0,Ra.useRef)(new Map),m=(0,Ra.useId)().replaceAll(":",""),x=[...new Set(o.flatMap(y=>y.tones))].filter(y=>y!=="plain"),w=(y,k,A)=>{let E={row:Math.max(0,Math.min(o.length-1,k)),col:Math.max(0,Math.min(a.length-1,A))};y.preventDefault(),h(E),p.current.get(`${E.row}:${E.col}`)?.focus()},d=f?o[f.row]:null,g=d&&f?i.cellNote(d.label??i.rowN(f.row+1),a[f.col]??"",d.notes[f.col]||fe(d.cells[f.col])):"";return(0,ne.jsxs)("div",{className:"garden-ui-grid-wrap",children:[(0,ne.jsxs)("table",{className:"garden-ui-grid",role:"grid","aria-describedby":`${m}-note`,children:[(0,ne.jsx)("thead",{children:(0,ne.jsxs)("tr",{children:[(0,ne.jsx)("th",{"aria-hidden":"true"}),a.map((y,k)=>(0,ne.jsx)("th",{scope:"col",children:y},k))]})}),(0,ne.jsx)("tbody",{children:o.map((y,k)=>(0,ne.jsxs)("tr",{children:[(0,ne.jsx)("th",{scope:"row",children:y.label??""}),y.cells.map((A,E)=>{let T=u.row===k&&u.col===E;return(0,ne.jsx)("td",{children:(0,ne.jsx)("button",{ref:v=>{v&&p.current.set(`${k}:${E}`,v)},type:"button",className:`garden-ui-cell garden-ui-tone-${y.tones[E]}`,tabIndex:T?0:-1,"aria-pressed":f?.row===k&&f?.col===E,"aria-label":`${y.label??""} ${a[E]??""}\uFF1A${fe(A)}${y.tones[E]!=="plain"?`\uFF0C${ee(l[y.tones[E]],Qo[y.tones[E]])}`:""}`,onFocus:()=>h({row:k,col:E}),onClick:()=>c({row:k,col:E}),onKeyDown:v=>{v.key==="ArrowRight"&&w(v,k,E+1),v.key==="ArrowLeft"&&w(v,k,E-1),v.key==="ArrowDown"&&w(v,k+1,E),v.key==="ArrowUp"&&w(v,k-1,E)},children:fe(A)})},E)})]},k))})]}),(0,ne.jsx)("p",{className:"garden-ui-note",id:`${m}-note`,"aria-live":"polite",children:g||i.tapCell}),x.length?(0,ne.jsx)("ul",{className:"garden-ui-legend",children:x.map(y=>(0,ne.jsxs)("li",{children:[(0,ne.jsx)("span",{className:`garden-ui-swatch garden-ui-tone-${y}`}),ee(l[y],Qo[y])]},y))}):null]})}function L6({node:e,env:t}){return(0,ne.jsx)("p",{className:"garden-ui-caption",children:(0,ne.jsx)(Ot,{nodes:e.c,env:t})})}function R6(){return(0,ne.jsx)("hr",{className:"garden-ui-divider"})}function z6(e){try{let t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"?null:`https://www.google.com/s2/favicons?domain=${encodeURIComponent(t.hostname)}&sz=32`}catch{return null}}function D6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"label",t)),r=ee($(n,e,"href",t),""),a=r?z6(r):null,s=(0,ne.jsxs)(ne.Fragment,{children:[a?(0,ne.jsx)("span",{className:"garden-ui-cite-icon","aria-hidden":"true",style:{backgroundImage:`url("${a}")`}}):null,i]});return r?(0,ne.jsx)("a",{className:"garden-ui-cite",href:r,children:s}):(0,ne.jsx)("span",{className:"garden-ui-cite",children:s})}hi({Stat:A6,Meter:C6,Badge:N6,Table:O6,Grid:M6,Caption:L6,Divider:R6,Cite:D6});var zi=ze(Ln(),1);var se=ze(mt(),1),B6=new Set(["Line","Area","Bar","Point"]),NE=["accent","muted","new","same"],it={top:14,right:16,bottom:30,left:60};function my(e,t,n=5){if(!Number.isFinite(e)||!Number.isFinite(t))return[];e===t&&(e-=1,t+=1);let i=(t-e)/n,r=10**Math.floor(Math.log10(i)),a=i/r,s=(a>=7.5?10:a>=3.5?5:a>=1.5?2:1)*r,l=[];for(let o=Math.ceil(e/s)*s;o<=t+s*1e-9;o+=s)l.push(Math.abs(o)<s*1e-9?0:Number(o.toPrecision(12)));return l}function _E(e,t,n,i){if(i!=="bytes"||t<=0)return my(e,t,n);let r=1;for(;t/r>=1024&&r<1024**5;)r*=1024;return my(e/r,t/r,n).map(a=>a*r)}function I6(e,t){let n=[];for(let r=Math.ceil(Math.log10(e));10**r<=t*(1+1e-9);r+=1)n.push(10**r);if(n.length>=3)return n;let i=[];for(let r=Math.ceil(Math.log2(e));2**r<=t*(1+1e-9);r+=1)i.push(2**r);return i.length>7?i.filter((r,a)=>a%Math.ceil(i.length/6)===0):i}var U6=6.8,V6=6,$6=e=>[...e].reduce((t,n)=>t+((n.codePointAt(0)??0)>11904?2:1),0)*U6;function q6(e,t,n,i){let r=a=>{let s=t(a),l=$6(n(a)),o=i(s);return o==="start"?[s,s+l]:o==="end"?[s-l,s]:[s-l/2,s+l/2]};for(let a=1;a<e.length;a+=1){let s=e.filter((l,o)=>o%a===0);if(s.every((l,o)=>o===0||r(s[o-1])[1]+V6<=r(l)[0]))return s}return e.slice(0,1)}function OE(e,t,n,i,r){if(r==="log"&&e>0&&t>e){let s=Math.log(e),l=Math.log(t);return{map:o=>n+(Math.log(o)-s)/(l-s)*(i-n),ticks:I6(e,t)}}let a=t-e||1;return{map:s=>n+(s-e)/a*(i-n),ticks:my(e,t,5)}}function j6({node:e,env:t}){let n=Ue(),i=At(),r=(0,zi.useId)().replaceAll(":",""),a=(0,zi.useRef)(null),[s,l]=(0,zi.useState)(640),[o,u]=(0,zi.useState)(null),[h,f]=(0,zi.useState)(!1);(0,zi.useEffect)(()=>{let U=a.current;if(!U||typeof ResizeObserver>"u")return;let te=new ResizeObserver(([Q])=>l(Math.max(240,Math.round(Q.contentRect.width))));return te.observe(U),()=>te.disconnect()},[]),(0,zi.useEffect)(()=>{let U=a.current;if(!U||typeof IntersectionObserver>"u")return;let te=new IntersectionObserver(([Q])=>{Q.isIntersecting&&(f(!0),te.disconnect())},{threshold:.3});return te.observe(U),()=>te.disconnect()},[]);let c=U=>$(n,e,U,t),p=Math.max(120,Math.min(480,He(c("height"))??200)),m=s<480?Math.max(140,Math.round(p*.8)):p,x=xn(n,e.c,t).filter(U=>B6.has(U.node.n??"")),w=(()=>{let U=(Z,ie)=>({kind:Z.node.n??"Line",label:ee($(n,Z.node,"label",Z.env),i.seriesN(ie+1)),tone:(()=>{let be=$(n,Z.node,"tone",Z.env);return typeof be=="string"&&Cr.includes(be)?be:NE[ie%NE.length]})(),format:$(n,Z.node,"format",Z.env)??c("yFormat")});if(e.p?.data){let Z=c("data"),ie=Array.isArray(Z)?Z.slice(0,2e3):[],be=ie.map(Xe=>$u(n,e.p?.x,Xe,t)),yt=x.some(Xe=>Xe.node.n==="Bar")||be.some(Xe=>typeof Xe!="number"),kt=ie.map((Xe,di)=>di);return yt||kt.sort((Xe,di)=>be[Xe]-be[di]),{categorical:yt,xs:yt?kt.map((Xe,di)=>di):kt.map(Xe=>be[Xe]),categories:kt.map(Xe=>fe(be[Xe],c("xFormat"))),series:x.map((Xe,di)=>({...U(Xe,di),ys:kt.map(qr=>{let rt=$u(n,Xe.node.p?.y,ie[qr],Xe.env);return typeof rt=="number"?rt:Number.NaN})})),marker:null,xScaleKind:"linear",xFormat:c("xFormat")}}let te=c("sweep");if(typeof te!="string")return null;let Q=n.sliders.get(te),z=Z=>Q?$(n,Q,Z,{locals:[]}):void 0,B=He(c("from"))??He(z("min")),P=He(c("to"))??He(z("max"));if(B===void 0||P===void 0||B>=P)return null;let G=(c("scale")??z("scale"))==="log"&&B>0?"log":"linear",Zt=z("snap")??(G==="log"&&gn(B)&&gn(P)?"pow2":"none"),F=Lu({from:B,to:P,scale:G,samples:He(c("samples"))??64,pow2:Zt==="pow2"});return{categorical:!1,xs:F,categories:[],series:x.map((Z,ie)=>({...U(Z,ie),ys:F.map(be=>{let yt=n.scopeFor({...n.state,[te]:be}),kt=Z.node.p?.y,Xe=kt?.k==="expr"?Ss(kt.e,Kn(...Z.env.locals,yt)):kt?.v;return typeof Xe=="number"?Xe:Number.NaN})})),marker:He(n.state[te])??null,xScaleKind:G,xFormat:c("xFormat")??z("format")}})();if(!w||!w.series.length)return(0,se.jsx)("p",{className:"garden-ui-error-inline",children:i.badChart});let d=s-it.left-it.right,g=m-it.top-it.bottom,y=w.series.flatMap(U=>U.ys.filter(te=>Number.isFinite(te))),k=c("yScale")==="log"?"log":"linear",A=w.series.some(U=>U.kind==="Bar"||U.kind==="Area"),E=He(c("yMin"))??(k==="log"?Math.min(...y.filter(U=>U>0)):Math.min(A?0:1/0,...y,0)),T=He(c("yMax"))??Math.max(...y,E+1);Number.isFinite(E)||(E=0);let v=OE(E,T,it.top+g,it.top,k),O=c("yFormat")??w.series[0]?.format,L=k==="linear"?_E(E,T,4,O):v.ticks,I=w.categories.length||1,V=d/I,R=w.categorical?{map:U=>it.left+V*U+V/2,ticks:w.xs}:OE(w.xs[0],w.xs[w.xs.length-1],it.left,it.left+d,w.xScaleKind),H=U=>U>it.left+d-24?"end":U<it.left+24?"start":"middle",K=U=>w.categorical?String(w.categories[U]??""):fe(U,w.xFormat),le=q6(w.categorical?w.xs:w.xScaleKind==="log"?R.ticks:_E(w.xs[0],w.xs[w.xs.length-1],5,w.xFormat),R.map,K,H),ae=c("yFormat")??w.series[0]?.format,et=U=>w.categorical?w.categories[U]:fe(w.xs[U],w.xFormat),_=U=>{let te="",Q=!1;return U.forEach((z,B)=>{if(!Number.isFinite(z)||k==="log"&&z<=0){Q=!1;return}te+=`${Q?"L":"M"}${R.map(w.xs[B]).toFixed(1)},${v.map(z).toFixed(1)}`,Q=!0}),te},C=w.series.filter(U=>U.kind==="Bar"),j=Math.max(2,(V-8)/Math.max(1,C.length)-2),Se=U=>{let te=a.current?.getBoundingClientRect();if(!te)return null;let Q=(U-te.left)/te.width*s,z=0;return w.xs.forEach((B,P)=>{Math.abs(R.map(B)-Q)<Math.abs(R.map(w.xs[z])-Q)&&(z=P)}),z},N=w.marker!==null?R.map(w.marker):null,me=w.marker!==null?w.xs.reduce((U,te,Q)=>Math.abs(te-w.marker)<Math.abs(w.xs[U]-w.marker)?Q:U,0):null,Ae=o;return(0,se.jsxs)("div",{className:"garden-ui-chart",children:[w.series.length>1?(0,se.jsx)("ul",{className:"garden-ui-legend",children:w.series.map((U,te)=>(0,se.jsxs)("li",{children:[(0,se.jsx)("span",{className:`garden-ui-swatch garden-ui-series-${U.tone}`}),U.label]},te))}):null,(0,se.jsxs)("div",{ref:a,className:"garden-ui-chart-canvas",tabIndex:0,role:"group","aria-label":i.chartKeys(ee(c("yLabel"),i.chart)),"aria-describedby":`${r}-table`,onPointerMove:U=>u(Se(U.clientX)),onPointerLeave:()=>u(null),onBlur:()=>u(null),onKeyDown:U=>{if(U.key!=="ArrowRight"&&U.key!=="ArrowLeft")return;U.preventDefault();let te=o??me??0;u(Math.max(0,Math.min(w.xs.length-1,te+(U.key==="ArrowRight"?1:-1))))},children:[(0,se.jsxs)("svg",{viewBox:`0 0 ${s} ${m}`,width:"100%",height:m,"aria-hidden":"true",className:h?"garden-ui-chart-drawn":void 0,children:[L.map(U=>(0,se.jsxs)("g",{children:[(0,se.jsx)("line",{className:"garden-ui-chart-grid",x1:it.left,x2:it.left+d,y1:v.map(U),y2:v.map(U)}),(0,se.jsx)("text",{className:"garden-ui-chart-tick",x:it.left-6,y:v.map(U),textAnchor:"end",dominantBaseline:"middle",children:fe(U,ae)})]},`y${U}`)),le.map(U=>(0,se.jsx)("text",{className:"garden-ui-chart-tick",x:R.map(U),y:it.top+g+18,textAnchor:H(R.map(U)),children:K(U)},`x${U}`)),(0,se.jsx)("line",{className:"garden-ui-chart-axis",x1:it.left,x2:it.left+d,y1:it.top+g,y2:it.top+g}),c("yLabel")!==void 0?(0,se.jsx)("text",{className:"garden-ui-chart-label",x:it.left,y:10,children:ee(c("yLabel"))}):null,c("xLabel")!==void 0?(0,se.jsx)("text",{className:"garden-ui-chart-label",x:it.left+d,y:m-2,textAnchor:"end",children:ee(c("xLabel"))}):null,w.series.map((U,te)=>{if(U.kind==="Line"){let Q=U.ys.length<=16;return(0,se.jsxs)("g",{children:[(0,se.jsx)("path",{className:`garden-ui-chart-line garden-ui-series-${U.tone}`,d:_(U.ys),pathLength:1}),Q?U.ys.map((z,B)=>Number.isFinite(z)&&!(k==="log"&&z<=0)?(0,se.jsx)("circle",{className:`garden-ui-chart-point garden-ui-series-${U.tone}`,cx:R.map(w.xs[B]),cy:v.map(z),r:3.5},B):null):null]},te)}if(U.kind==="Area"){let Q=_(U.ys),z=v.map(k==="log"?E:Math.max(E,0)),B=R.map(w.xs[0]),P=R.map(w.xs[w.xs.length-1]);return(0,se.jsxs)("g",{children:[(0,se.jsx)("path",{className:`garden-ui-chart-area garden-ui-series-${U.tone}`,d:`${Q}L${P},${z}L${B},${z}Z`}),(0,se.jsx)("path",{className:`garden-ui-chart-line garden-ui-series-${U.tone}`,d:Q,pathLength:1})]},te)}if(U.kind==="Bar"){let Q=C.indexOf(U);return U.ys.map((z,B)=>{if(!Number.isFinite(z))return null;let W=R.map(w.xs[B])-(j+2)*C.length/2+Q*(j+2),G=v.map(Math.max(z,E)),Zt=v.map(k==="log"?E:Math.max(E,0));return(0,se.jsx)("rect",{className:`garden-ui-chart-bar garden-ui-series-${U.tone}`,x:W,y:Math.min(G,Zt),width:j,height:Math.abs(Zt-G),rx:Math.min(4,j/4)},`${te}-${B}`)})}return U.ys.map((Q,z)=>Number.isFinite(Q)?(0,se.jsx)("circle",{className:`garden-ui-chart-point garden-ui-series-${U.tone}`,cx:R.map(w.xs[z]),cy:v.map(Q),r:3},`${te}-${z}`):null)}),N!==null&&me!==null?(0,se.jsxs)("g",{children:[(0,se.jsx)("line",{className:"garden-ui-chart-marker",x1:N,x2:N,y1:it.top,y2:it.top+g}),w.series.map((U,te)=>{let Q=U.ys[me];return Number.isFinite(Q)?(0,se.jsxs)("g",{children:[(0,se.jsx)("circle",{className:`garden-ui-chart-dot garden-ui-series-${U.tone}`,cx:R.map(w.xs[me]),cy:v.map(Q),r:4}),(0,se.jsx)("text",{className:"garden-ui-chart-value",x:R.map(w.xs[me])+(N>it.left+d*.7?-8:8),y:v.map(Q)-8,textAnchor:N>it.left+d*.7?"end":"start",children:fe(Q,U.format)})]},te):null})]}):null,Ae!==null?(0,se.jsx)("line",{className:"garden-ui-chart-cross",x1:R.map(w.xs[Ae]),x2:R.map(w.xs[Ae]),y1:it.top,y2:it.top+g}):null]}),Ae!==null?(0,se.jsxs)("div",{className:"garden-ui-chart-tooltip",style:{left:`${R.map(w.xs[Ae])/s*100}%`},"data-side":R.map(w.xs[Ae])>s*.6?"left":"right",children:[(0,se.jsx)("strong",{children:et(Ae)}),w.series.map((U,te)=>(0,se.jsxs)("span",{children:[w.series.length>1?`${U.label}\uFF1A`:"",fe(U.ys[Ae],U.format)]},te))]}):null]}),(0,se.jsx)("div",{className:"garden-ui-sr-only",children:(0,se.jsxs)("table",{id:`${r}-table`,children:[(0,se.jsx)("thead",{children:(0,se.jsxs)("tr",{children:[(0,se.jsx)("th",{children:ee(c("xLabel"),"x")}),w.series.map((U,te)=>(0,se.jsx)("th",{children:U.label},te))]})}),(0,se.jsx)("tbody",{children:w.xs.slice(0,200).map((U,te)=>(0,se.jsxs)("tr",{children:[(0,se.jsx)("td",{children:et(te)}),w.series.map((Q,z)=>(0,se.jsx)("td",{children:fe(Q.ys[te],Q.format)},z))]},te))})]})})]})}var ME=["#539af8","#6bc67f","#ef8b57","#0d0d0d","#8f8f8f"],jl={width:742,height:400,cx:371,cy:181,inner:70.4,outer:137.28};function gy(e,t,n,i,r,a){let s=Math.PI*2,l=a-r;if(l>=s-1e-4){let g=r+Math.PI;return`${gy(e,t,n,i,r,g)} ${gy(e,t,n,i,g,r+s)}`}let o=(g,y)=>[e+g*Math.cos(y),t+g*Math.sin(y)],[u,h]=o(i,r),[f,c]=o(i,a),[p,m]=o(n,a),[x,w]=o(n,r),d=l>Math.PI?1:0;return`M ${u} ${h} A ${i} ${i} 0 ${d} 1 ${f} ${c} L ${p} ${m} A ${n} ${n} 0 ${d} 0 ${x} ${w} Z`}function H6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"title",t),a=xn(n,e.c,t).filter(u=>u.node.n==="Slice").map(u=>({label:ee($(n,u.node,"label",u.env)),value:Math.max(0,He($(n,u.node,"value",u.env))??0)})).filter(u=>u.value>0),s=a.reduce((u,h)=>u+h.value,0),l=-Math.PI/2,o=[];for(let[u,h]of a.entries()){let f=s>0?h.value/s*Math.PI*2:0,c=gy(jl.cx,jl.cy,jl.inner,jl.outer,l,l+f);l+=f,o.push({...h,path:c,color:ME[u%ME.length]})}return(0,se.jsxs)("figure",{className:"garden-ui-pie",children:[r!==void 0?(0,se.jsx)("p",{className:"garden-ui-pie-title",children:ee(r)}):null,(0,se.jsxs)("div",{className:"garden-ui-pie-chart",children:[(0,se.jsx)("svg",{viewBox:`0 0 ${jl.width} ${jl.height}`,role:"img","aria-label":r!==void 0?ee(r):i.donut,children:o.map(u=>(0,se.jsx)("path",{d:u.path,fill:u.color},u.label))}),(0,se.jsx)("ul",{className:"garden-ui-legend",children:o.map(u=>(0,se.jsxs)("li",{children:[(0,se.jsx)("span",{className:"garden-ui-swatch",style:{background:u.color}}),u.label]},u.label))})]})]})}function F6(){return null}hi({Chart:j6,Pie:H6,Slice:F6});var pi=ze(Ln(),1);var P6={py:"python",python3:"python",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"jsx",ts:"typescript",mts:"typescript",tsx:"tsx",sh:"shell",zsh:"shell",bash:"shell",shell:"shell",console:"shell",golang:"go",rs:"rust",rb:"ruby",kt:"kotlin",yml:"yaml",md:"markdown",htm:"html","c++":"cpp","c#":"csharp",cc:"cpp",hpp:"cpp",cs:"csharp",docker:"dockerfile",ps1:"powershell",plaintext:"text",txt:"text"},G6={javascript:"JS",typescript:"TS",cpp:"C++",csharp:"C#"};function LE(e){let t=String(e??"").trim().toLowerCase();if(!t)return"";let n=P6[t]??t;return G6[n]??n.toUpperCase()}var pt=ze(mt(),1);function Q6({node:e,env:t}){let n=Ue(),i=At(),r=ee($(n,e,"src",t)),a=ee($(n,e,"alt",t)),s=ee($(n,e,"ratio",t)),l=xn(n,e.c,t).filter(p=>p.node.n==="Hotspot"),[o,u]=(0,pi.useState)(null),h=(0,pi.useRef)([]),f=/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?)$/u.exec(s),c=o!==null?l[o]:null;return(0,pt.jsxs)("div",{className:"garden-ui-image",children:[(0,pt.jsxs)("div",{className:"garden-ui-image-stage",style:f?{aspectRatio:`${f[1]} / ${f[2]}`}:void 0,children:[(0,pt.jsx)("img",{src:r,alt:a}),l.map((p,m)=>{let x=Math.max(0,Math.min(1,He($(n,p.node,"x",p.env))??0)),w=Math.max(0,Math.min(1,He($(n,p.node,"y",p.env))??0));return(0,pt.jsx)("button",{ref:d=>{h.current[m]=d},type:"button",className:"garden-ui-hotspot",style:{left:`${x*100}%`,top:`${w*100}%`},"aria-pressed":o===m,"aria-label":`${m+1}. ${ee($(n,p.node,"title",p.env))}`,onClick:()=>u(m),onKeyDown:d=>{if(d.key!=="ArrowRight"&&d.key!=="ArrowLeft")return;d.preventDefault();let g=(m+(d.key==="ArrowRight"?1:-1)+l.length)%l.length;u(g),h.current[g]?.focus()},children:m+1},m)})]}),(0,pt.jsx)("div",{className:"garden-ui-note","aria-live":"polite",children:c?(0,pt.jsxs)(pt.Fragment,{children:[(0,pt.jsx)("strong",{children:`${(o??0)+1}. ${ee($(n,c.node,"title",c.env))}`}),(0,pt.jsx)(Ot,{nodes:c.node.c,env:c.env})]}):(0,pt.jsx)("p",{children:i.tapNumbers})})]})}function X6(e){let t=new Set;for(let n of String(e??"").split(",")){let i=/^\s*(\d+)\s*(?:-\s*(\d+))?\s*$/u.exec(n);if(!i)continue;let r=Number(i[1]),a=Number(i[2]??i[1]);for(let s=r;s<=a&&s-r<200;s+=1)t.add(s)}return t}function Z6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"lang",t)),r=ee($(n,e,"code",t)).replace(/^\n/u,""),a=X6($(n,e,"highlight",t));return(0,pt.jsx)("pre",{className:"garden-ui-code","data-language":LE(i)||void 0,children:(0,pt.jsx)("code",{children:r.split(`
471
+ \`\`\``:null}var qt=ze(Ln(),1);var gt=ze(Ln(),1);var ip=ze(Ln(),1),i6=ze(mt(),1),W4={unknownComponent:e=>`\u9884\u89C8\u9700\u8981\u66F4\u65B0 Garden \u63D2\u4EF6\uFF08\u4E0D\u8BA4\u8BC6 <${e}>\uFF09`,errorTitle:"\u8FD9\u5757\u4EA4\u4E92\u6709\u9519\u8BEF",lineN:e=>`\u7B2C ${e} \u884C`,missingCaption:"\uFF08\u7F3A\u5C11 caption\uFF09",idea:"\u60F3\u6CD5",uncompiled:"\u672A\u7F16\u8BD1",copyCompilePrompt:"\u590D\u5236\u7F16\u8BD1\u63D0\u793A\u8BCD",ideaNote:"\u7F16\u8BD1\u540E\u8FD9\u91CC\u4F1A\u53D8\u6210\u53EF\u4EA4\u4E92\u7684\u7EC4\u4EF6\u3002",interactive:"\u4EA4\u4E92",tapNumbers:"\u70B9\u56FE\u4E0A\u7684\u5E8F\u53F7\u770B\u8BF4\u660E\u3002",mermaidFailed:"\u56FE\u6CA1\u80FD\u753B\u51FA\u6765\uFF08\u8BED\u6CD5\u6709\u8BEF\uFF0C\u6216\u8FD9\u91CC\u6CA1\u6709 Mermaid\uFF09\u3002\u4E0B\u9762\u662F\u6E90\u7801\u3002",drawing:"\u6B63\u5728\u7ED8\u5236\u56FE\u2026",highlighted:e=>`\u5F53\u524D\u9AD8\u4EAE\uFF1A${e.join("\u3001")}`,prevStep:"\u4E0A\u4E00\u6B65",nextStep:"\u4E0B\u4E00\u6B65",stepN:(e,t)=>`\u7B2C ${e} \u6B65\uFF1A${t}`,pause:"\u6682\u505C",play:"\u64AD\u653E",badSlider:e=>`\u6ED1\u6746 ${e} \u7684\u8303\u56F4\u65E0\u6548`,decrease:"\u51CF\u5C11",increase:"\u589E\u52A0",over:e=>` \u8D85\u51FA ${e}`,rowN:e=>`\u7B2C ${e} \u884C`,tapCell:"\u70B9\u4E00\u683C\u770B\u8BF4\u660E\u3002",cellNote:(e,t,n)=>`${e} \xB7 ${t}\uFF1A${n}`,cellAria:(e,t,n,i)=>`${e} ${t}\uFF1A${n}${i?`\uFF0C${i}`:""}`,seriesTooltip:e=>`${e}\uFF1A`,seriesN:e=>`\u7CFB\u5217 ${e}`,badChart:"\u56FE\u8868\u7F3A\u5C11\u6709\u6548\u7684\u8303\u56F4\u6216\u6570\u636E",chart:"\u56FE\u8868",chartKeys:e=>`${e}\uFF0C\u5DE6\u53F3\u65B9\u5411\u952E\u67E5\u770B\u5404\u70B9`,donut:"\u5706\u73AF\u56FE"},e6={unknownComponent:e=>`This preview needs a newer Garden plugin (unknown <${e}>)`,errorTitle:"This interactive block has errors",lineN:e=>`Line ${e}`,missingCaption:"(missing caption)",idea:"Idea",uncompiled:"Not compiled",copyCompilePrompt:"Copy compile prompt",ideaNote:"Once compiled, an interactive component appears here.",interactive:"Interactive",tapNumbers:"Tap a number on the figure for its note.",mermaidFailed:"The diagram could not be drawn (a syntax error, or Mermaid is not available here). The source is below.",drawing:"Drawing the diagram\u2026",highlighted:e=>`Highlighted: ${e.join(", ")}`,prevStep:"Previous step",nextStep:"Next step",stepN:(e,t)=>`Step ${e}: ${t}`,pause:"Pause",play:"Play",badSlider:e=>`Slider ${e} has an invalid range`,decrease:"Decrease",increase:"Increase",over:e=>` ${e} over`,rowN:e=>`Row ${e}`,tapCell:"Tap a cell for its note.",cellNote:(e,t,n)=>`${e} \xB7 ${t}: ${n}`,cellAria:(e,t,n,i)=>`${e} ${t}: ${n}${i?`, ${i}`:""}`,seriesTooltip:e=>`${e}: `,seriesN:e=>`Series ${e}`,badChart:"The chart has no valid range or data",chart:"Chart",chartKeys:e=>`${e}, use the left and right arrow keys to read each point`,donut:"Donut chart"},t6={zh:W4,en:e6},n6=(0,ip.createContext)("zh");var At=()=>t6[(0,ip.useContext)(n6)];var Ie=ze(mt(),1),yE=(0,gt.createContext)(null),xE=(0,gt.createContext)({});function bE(){return(0,gt.useContext)(xE)}function Ue(){let e=(0,gt.useContext)(yE);if(!e)throw new Error("Garden UI component outside UiRuntime");return e}var r6=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function rp(e,t,n=e.scope){return Kn(...t.locals,n)}function Ss(e,t){try{return je(e,t,Rr(2e5))}catch{return}}function $(e,t,n,i,r){let a=t.p?.[n];if(a)return a.k==="lit"?a.v:Ss(a.e,rp(e,i,r))}function $u(e,t,n,i){if(t)return t.k==="lit"?t.v:Ss(t.e,Kn(r6(n)?n:{},...i.locals,e.scope))}var ee=(e,t="")=>e==null?t:typeof e=="string"?e:fe(e),He=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function xn(e,t,n){let i=[];for(let r of t??[])if(r.t==="el")if(r.n==="If")$(e,r,"test",n)&&i.push(...xn(e,r.c,n));else if(r.n==="Each"){let a=$(e,r,"of",n);if(!Array.isArray(a))continue;let s=r.p?.as?.k==="lit"?String(r.p.as.v):"item",l=r.p?.index?.k==="lit"?String(r.p.index.v):null;a.slice(0,200).forEach((o,u)=>{let h={[s]:o};l&&(h[l]=u),i.push(...xn(e,r.c,{locals:[h,...n.locals]}))})}else i.push({node:r,env:n});return i}var vE=new Map;function hi(e){for(let[t,n]of Object.entries(e))vE.set(t,n)}function a6({node:e,env:t}){let n=Ue(),i=e.e?Ss(e.e,rp(n,t)):void 0;return(0,Ie.jsx)("span",{className:"garden-ui-value",children:fe(i)})}var SE=e=>(e??[]).some(t=>t.t==="x"||SE(t.c)),s6=e=>/^(?:https:\/\/|\.{0,2}\/|#)/u.test(e)||/^[\w\u3400-\u9fff./-]+$/u.test(e)?e:"#";function wE({node:e,env:t}){let n=Ue(),i=At();switch(e.t){case"text":return e.v??"";case"x":return(0,Ie.jsx)(a6,{node:e,env:t});case"p":return(0,Ie.jsx)("p",{"aria-live":SE(e.c)?"polite":void 0,children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"strong":return(0,Ie.jsx)("strong",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"em":return(0,Ie.jsx)("em",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"code":return(0,Ie.jsx)("code",{children:e.v});case"br":return(0,Ie.jsx)("br",{});case"hr":return(0,Ie.jsx)("hr",{});case"link":{let r=s6(e.u??""),a=r.startsWith("https://");return(0,Ie.jsx)("a",{href:r,...a?{target:"_blank",rel:"noopener noreferrer"}:{},children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})})}case"list":{let r=e.o?"ol":"ul";return(0,Ie.jsx)(r,{start:e.o&&e.s&&e.s!==1?e.s:void 0,children:(e.c??[]).map((a,s)=>(0,Ie.jsx)("li",{children:(0,Ie.jsx)(Ot,{nodes:a.c,env:t})},s))})}case"quote":return(0,Ie.jsx)("blockquote",{children:(0,Ie.jsx)(Ot,{nodes:e.c,env:t})});case"el":{if(e.n==="State"||e.n==="Let"||e.n==="Data")return null;if(e.n==="If"||e.n==="Each")return(0,Ie.jsx)(Ie.Fragment,{children:xn(n,[e],t).map((a,s)=>(0,Ie.jsx)(wE,{node:a.node,env:a.env},s))});let r=e.n?vE.get(e.n):void 0;return r?(0,gt.createElement)(r,{node:e,env:t}):(0,Ie.jsx)("span",{className:"garden-ui-unknown",children:i.unknownComponent(String(e.n))})}default:return null}}function Ot({nodes:e,env:t}){return(0,Ie.jsx)(Ie.Fragment,{children:(e??[]).map((n,i)=>(0,Ie.jsx)(gt.Fragment,{children:(0,Ie.jsx)(wE,{node:n,env:t})},i))})}function l6(e){let t=new Map,n=i=>{i.t==="el"&&i.n==="Slider"&&i.p?.bind?.k==="lit"&&t.set(String(i.p.bind.v),i),i.c?.forEach(n)};return n(e),t}var o6={};function u6(e,t){let n={...e};for(let[i,r]of Object.entries(t))Object.hasOwn(e,i)&&typeof e[i]==typeof r&&(n[i]=r);return n}var c6={};function hy({payload:e,host:t}){let n=(0,gt.useMemo)(()=>$l(e.root),[e.root]),i=(0,gt.useMemo)(()=>xs(n),[n]),[r,a]=(0,gt.useState)(i),[s,l]=(0,gt.useState)(e.root);s!==e.root&&(l(e.root),a(u6(i,r)));let o=e.data??o6,u=(0,gt.useMemo)(()=>Vr(n,{stateValues:r,dataValues:o,onError:()=>{}}),[n,r,o]),h=(0,gt.useMemo)(()=>l6(e.root),[e.root]),f=(0,gt.useCallback)(x=>a(w=>({...w,...x})),[]),c=(0,gt.useCallback)(()=>a(i),[i]),p=(0,gt.useCallback)(x=>Vr(n,{stateValues:x,dataValues:o,onError:()=>{}}),[n,o]),m=(0,gt.useMemo)(()=>({blockId:e.id,root:e.root,decls:n,data:o,defaults:i,state:r,scope:u,sliders:h,setState:f,reset:c,scopeFor:p}),[e.id,e.root,n,o,i,r,u,h,f,c,p]);return(0,Ie.jsx)(xE.Provider,{value:t??c6,children:(0,Ie.jsx)(yE.Provider,{value:m,children:(0,Ie.jsx)("div",{className:"garden-ui-body",children:(0,Ie.jsx)(Ot,{nodes:e.root.c,env:{locals:[]}})})})})}var Re=ze(mt(),1),f6=[0,4,8,12,16],kE=(e,t=3)=>f6[typeof e=="number"&&e>=0&&e<=4?e:t];function h6(e){if(typeof window>"u"||!window.matchMedia)return()=>{};let t=window.matchMedia("(prefers-reduced-motion: reduce)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function p6(){return(0,qt.useSyncExternalStore)(h6,()=>typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-reduced-motion: reduce)").matches:!1,()=>!1)}function d6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"direction",t),"col")==="row"?"row":"col";return(0,Re.jsx)("div",{className:"garden-ui-stack","data-direction":i,style:{gap:kE($(n,e,"gap",t))},children:(0,Re.jsx)(Ot,{nodes:e.c,env:t})})}function m6({node:e,env:t}){let n=Ue(),i=He($(n,e,"min",t))??220;return(0,Re.jsx)("div",{className:"garden-ui-columns",style:{gap:kE($(n,e,"gap",t)),"--garden-ui-col-min":`${i}px`},children:(e.c??[]).map((r,a)=>(0,Re.jsx)("div",{className:"garden-ui-column",children:(0,Re.jsx)(Ot,{nodes:[r],env:t})},a))})}function g6({node:e,env:t}){let n=Ue(),i=$(n,e,"title",t),r=ee($(n,e,"tone",t),"plain");return(0,Re.jsxs)("section",{className:`garden-ui-card garden-ui-tone-${r}`,children:[i!==void 0?(0,Re.jsx)("p",{className:"garden-ui-card-title",children:ee(i)}):null,(0,Re.jsx)(Ot,{nodes:e.c,env:t})]})}function EE(e,t){let n=Ue(),i=e.p?.bind?.k==="lit"?String(e.p.bind.v):null,[r,a]=(0,qt.useState)(0),s=i?He(n.state[i])??0:r;return[Math.max(0,Math.min(t-1,Math.trunc(s))),u=>{let h=Math.max(0,Math.min(t-1,u));i?n.setState({[i]:h}):a(h)}]}function y6({node:e,env:t}){let n=Ue(),i=xn(n,e.c,t).filter(u=>u.node.n==="Tab"),[r,a]=EE(e,i.length),s=(0,qt.useId)().replaceAll(":",""),l=(0,qt.useRef)([]),o=(u,h)=>{u.preventDefault();let f=(h+i.length)%i.length;a(f),l.current[f]?.focus()};return(0,Re.jsxs)("div",{className:"garden-ui-tabs",children:[(0,Re.jsx)("div",{className:"garden-ui-tablist",role:"tablist",children:i.map((u,h)=>(0,Re.jsx)("button",{ref:f=>{l.current[h]=f},type:"button",role:"tab",id:`${s}-tab-${h}`,"aria-selected":h===r,"aria-controls":`${s}-panel-${h}`,tabIndex:h===r?0:-1,onClick:()=>a(h),onKeyDown:f=>{f.key==="ArrowRight"&&o(f,h+1),f.key==="ArrowLeft"&&o(f,h-1),f.key==="Home"&&o(f,0),f.key==="End"&&o(f,i.length-1)},children:ee($(n,u.node,"title",u.env))},h))}),i.map((u,h)=>(0,Re.jsx)("div",{role:"tabpanel",id:`${s}-panel-${h}`,"aria-labelledby":`${s}-tab-${h}`,hidden:h!==r,className:"garden-ui-tabpanel",children:(0,Re.jsx)(Ot,{nodes:u.node.c,env:u.env})},h))]})}function x6({node:e,env:t}){let n=Ue(),i=At(),r=xn(n,e.c,t).filter(A=>A.node.n==="Step"),[a,s]=EE(e,r.length),l=He($(n,e,"autoplay",t)),o=p6(),[u,h]=(0,qt.useState)(!!l),[f,c]=(0,qt.useState)(!0),p=(0,qt.useRef)(null),m=(0,qt.useRef)(a),x=(0,qt.useRef)(s);(0,qt.useEffect)(()=>{m.current=a,x.current=s}),(0,qt.useEffect)(()=>{let A=p.current;if(!A||typeof IntersectionObserver>"u")return;let E=new IntersectionObserver(([T])=>c(T.isIntersecting),{threshold:.2});return E.observe(A),()=>E.disconnect()},[]);let w=!!l&&u&&f&&!o;(0,qt.useEffect)(()=>{if(!w||!l)return;let A=window.setInterval(()=>{if(m.current>=r.length-1){h(!1);return}x.current(m.current+1)},Math.max(800,l));return()=>window.clearInterval(A)},[w,l,r.length]);let[d,g]=(0,qt.useState)(!1),y=A=>{h(!1),g(!0),s(A)},k=r[a];return(0,Re.jsxs)("div",{ref:p,className:"garden-ui-steps","data-animate":d||w?"true":void 0,tabIndex:-1,onKeyDown:A=>{A.target!==A.currentTarget&&A.target.tagName==="INPUT"||(A.key==="ArrowRight"&&y(a+1),A.key==="ArrowLeft"&&y(a-1))},children:[(0,Re.jsxs)("div",{className:"garden-ui-steps-head",children:[(0,Re.jsx)("strong",{children:k?ee($(n,k.node,"title",k.env)):""}),(0,Re.jsx)("span",{children:r.length?`${a+1} / ${r.length}`:""})]}),(0,Re.jsx)("div",{className:"garden-ui-progress","aria-hidden":"true",children:(0,Re.jsx)("span",{style:{width:`${r.length?(a+1)/r.length*100:0}%`}})}),(0,Re.jsx)("div",{className:"garden-ui-steps-stage",children:r.map((A,E)=>(0,Re.jsx)("div",{className:"garden-ui-step","data-active":E===a?"true":void 0,"aria-hidden":E!==a,inert:E!==a,children:(0,Re.jsx)(Ot,{nodes:A.node.c,env:A.env})},E))}),(0,Re.jsxs)("div",{className:"garden-ui-steps-controls",children:[(0,Re.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.prevStep,onClick:()=>y(a-1),disabled:a===0,children:(0,Re.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:(0,Re.jsx)("path",{d:"M10 3.5 5.5 8l4.5 4.5"})})}),(0,Re.jsx)("span",{className:"garden-ui-steps-dots",children:r.map((A,E)=>(0,Re.jsx)("button",{type:"button","aria-label":i.stepN(E+1,ee($(n,A.node,"title",A.env))),"aria-current":E===a?"step":void 0,onClick:()=>y(E)},E))}),(0,Re.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.nextStep,onClick:()=>y(a+1),disabled:a>=r.length-1,children:(0,Re.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:(0,Re.jsx)("path",{d:"M6 3.5 10.5 8 6 12.5"})})}),l&&!o?(0,Re.jsx)("button",{type:"button",className:"garden-ui-button",onClick:()=>h(A=>!A),children:u?i.pause:i.play}):null]})]})}hi({Stack:d6,Columns:m6,Card:g6,Tabs:y6,Steps:x6});var qu=ze(Ln(),1);var de=ze(mt(),1),dy=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function TE(e,t,n){let i=He($(e,t,"min",n)),r=He($(e,t,"max",n));if(i===void 0||r===void 0||i>=r)return null;let a=$(e,t,"scale",n)==="log"&&i>0?"log":"linear",s=$(e,t,"snap",n),l=s==="int"||s==="pow2"||s==="none"?s:a==="log"&&gn(i)&&gn(r)?"pow2":"none",o=He($(e,t,"step",n))??(Number.isInteger(i)&&Number.isInteger(r)?1:(r-i)/100);return{min:i,max:r,scale:a,snap:l,step:o}}function AE(e,t){let n=Math.min(e.max,Math.max(e.min,t));return e.snap==="pow2"?n=2**Math.round(Math.log2(n)):(e.snap==="int"||e.scale==="linear"&&Number.isInteger(e.step)&&Number.isInteger(e.min))&&(n=Math.round(n)),Math.min(e.max,Math.max(e.min,n))}var py=1e3;function b6({node:e,env:t}){let n=Ue(),i=At(),r=(0,qu.useId)(),a=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),s=TE(n,e,t),l=ee($(n,e,"label",t)),o=$(n,e,"format",t),u=ee($(n,e,"unit",t)),h=He(n.state[a])??s?.min??0;if(!s)return(0,de.jsx)("p",{className:"garden-ui-error-inline",children:i.badSlider(String(l))});let f,c=s.min,p=s.max,m=s.step;s.snap==="pow2"?(c=Math.log2(s.min),p=Math.log2(s.max),m=1,f=Math.round(Math.log2(h))):s.scale==="log"?(c=0,p=py,m=1,f=Math.round((Math.log(h)-Math.log(s.min))/(Math.log(s.max)-Math.log(s.min))*py)):(f=h,m=s.step>0?s.step:"any");let x=w=>s.snap==="pow2"?2**w:s.scale==="log"?Math.exp(Math.log(s.min)+w/py*(Math.log(s.max)-Math.log(s.min))):w;return(0,de.jsxs)("div",{className:"garden-ui-slider",children:[(0,de.jsxs)("label",{htmlFor:r,children:[(0,de.jsx)("span",{children:l}),(0,de.jsxs)("output",{htmlFor:r,"aria-live":"polite",children:[fe(h,o),u?` ${u}`:""]})]}),(0,de.jsx)("div",{className:"garden-ui-slider-track",children:(0,de.jsx)("input",{id:r,type:"range",min:c,max:p,step:m,value:f,"aria-valuetext":`${fe(h,o)}${u?` ${u}`:""}`,onChange:w=>n.setState({[a]:AE(s,x(Number(w.target.value)))})})})]})}function v6({node:e,env:t}){let n=Ue(),i=(0,qu.useId)(),r=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),a=ee($(n,e,"label",t)),s=$(n,e,"options",t),l=(Array.isArray(s)?s:[]).map(h=>dy(h)?{value:h.value,label:ee(h.label??h.value)}:{value:h,label:ee(h)}),o=$(n,e,"style",t)??(l.length<=5?"segmented":"select"),u=n.state[r];return o==="select"?(0,de.jsxs)("div",{className:"garden-ui-choice",children:[(0,de.jsx)("label",{htmlFor:i,children:a}),(0,de.jsx)("select",{id:i,value:String(l.findIndex(h=>h.value===u)),onChange:h=>n.setState({[r]:l[Number(h.target.value)]?.value}),children:l.map((h,f)=>(0,de.jsx)("option",{value:String(f),children:h.label},f))})]}):(0,de.jsxs)("div",{className:"garden-ui-choice",role:"group","aria-labelledby":`${i}-label`,children:[(0,de.jsx)("span",{id:`${i}-label`,children:a}),(0,de.jsx)("span",{className:"garden-ui-segmented",children:l.map((h,f)=>(0,de.jsx)("button",{type:"button","aria-pressed":h.value===u,onClick:()=>n.setState({[r]:h.value}),children:h.label},f))})]})}function S6({node:e,env:t}){let n=Ue(),i=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),r=!!n.state[i];return(0,de.jsxs)("button",{type:"button",role:"switch","aria-checked":r,className:"garden-ui-toggle",onClick:()=>n.setState({[i]:!r}),children:[(0,de.jsx)("span",{className:"garden-ui-switch","aria-hidden":"true"}),(0,de.jsx)("span",{children:ee($(n,e,"label",t))})]})}function w6(e,t,n){if(typeof n!="number")return n;let i=e.sliders.get(t);if(i){let s=TE(e,i,{locals:[]});if(s)return AE(s,n)}let r=null,a=s=>{if(r===null){if(s.t==="el"&&(s.n==="Steps"||s.n==="Tabs")&&s.p?.bind?.k==="lit"&&s.p.bind.v===t){r=xn(e,s.c,{locals:[]}).length;return}s.c?.forEach(a)}};return a(e.root),r===null?n:Math.max(0,Math.min(r-1,Math.trunc(n)))}function k6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"tone",t),"plain"),r=()=>{if(e.p?.reset){n.reset();return}let a=e.p?.set;if(!a||a.k!=="expr")return;let s=Ss(a.e,rp(n,t));if(!dy(s))return;let l={};for(let[o,u]of Object.entries(s))!Object.hasOwn(n.defaults,o)||typeof n.defaults[o]!=typeof u||(l[o]=w6(n,o,u));n.setState(l)};return(0,de.jsx)("button",{type:"button",className:`garden-ui-button garden-ui-tone-${i}`,onClick:r,children:(0,de.jsx)(Ot,{nodes:e.c,env:t})})}function E6({node:e,env:t}){let n=Ue(),i=At(),r=String(e.p?.bind&&e.p.bind.k==="lit"?e.p.bind.v:""),a=He($(n,e,"min",t))??0,s=He($(n,e,"max",t))??a,l=He($(n,e,"step",t))??1,o=$(n,e,"label",t),u=$(n,e,"unit",t),h=He(n.state[r])??a,f=c=>n.setState({[r]:Math.max(a,Math.min(s,c))});return(0,de.jsxs)("div",{className:"garden-ui-stepper",children:[o!==void 0?(0,de.jsx)("span",{className:"garden-ui-stepper-label",children:ee(o)}):null,(0,de.jsxs)("div",{className:"garden-ui-stepper-row",children:[(0,de.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.decrease,onClick:()=>f(h-l),disabled:h<=a,children:"\u2212"}),(0,de.jsx)("span",{className:"garden-ui-stepper-value","aria-live":"polite",children:h}),u!==void 0?(0,de.jsx)("span",{className:"garden-ui-stepper-unit",children:ee(u)}):null,(0,de.jsx)("button",{type:"button",className:"garden-ui-round","aria-label":i.increase,onClick:()=>f(h+l),disabled:h>=s,children:"+"})]})]})}function T6({node:e,env:t}){let n=Ue(),i=$(n,e,"items",t),r=(Array.isArray(i)?i:[]).map(f=>dy(f)?f:{title:f}),a=$(n,e,"title",t),[s,l]=(0,qu.useState)(()=>new Set),o=f=>l(c=>{let p=new Set(c);return p.has(f)?p.delete(f):p.add(f),p}),u=r.some(f=>f.time!==void 0||f.note!==void 0),h=r.length?s.size/r.length*100:0;return(0,de.jsxs)("div",{className:`garden-ui-checklist${u?" garden-ui-checklist-detailed":""}`,children:[(0,de.jsxs)("div",{className:"garden-ui-checklist-head",children:[a!==void 0?(0,de.jsx)("strong",{children:ee(a)}):(0,de.jsx)("span",{}),(0,de.jsxs)("span",{"aria-live":"polite",children:[s.size," / ",r.length]})]}),(0,de.jsx)("div",{className:"garden-ui-progress","aria-hidden":"true",children:(0,de.jsx)("span",{style:{width:`${h}%`}})}),(0,de.jsx)("ul",{children:r.map((f,c)=>(0,de.jsx)("li",{"data-done":s.has(c)?"true":void 0,children:(0,de.jsxs)("label",{children:[(0,de.jsx)("input",{type:"checkbox",checked:s.has(c),onChange:()=>o(c)}),(0,de.jsxs)("span",{className:"garden-ui-checklist-text",children:[f.time!==void 0?(0,de.jsx)("span",{className:"garden-ui-checklist-time",children:ee(f.time)}):null,(0,de.jsx)("span",{className:"garden-ui-checklist-title",children:ee(f.title)}),f.note!==void 0?(0,de.jsx)("span",{className:"garden-ui-checklist-note",children:ee(f.note)}):null]})]})},c))})]})}hi({Slider:b6,Choice:v6,Toggle:S6,Button:k6,Checklist:T6,Stepper:E6});var Ra=ze(Ln(),1);var ne=ze(mt(),1),ap=e=>!!e&&typeof e=="object"&&!Array.isArray(e),ql=(e,t="plain")=>typeof e=="string"&&Cr.includes(e)?e:t;function A6({node:e,env:t}){let n=Ue(),i=$(n,e,"format",t),r=$(n,e,"unit",t),a=$(n,e,"hint",t),s=ee($(n,e,"size",t),"md"),l=ql($(n,e,"tone",t));return(0,ne.jsxs)("div",{className:`garden-ui-stat garden-ui-stat-${s} garden-ui-tone-${l}`,children:[(0,ne.jsx)("span",{className:"garden-ui-stat-label",children:ee($(n,e,"label",t))}),(0,ne.jsxs)("span",{className:"garden-ui-stat-value","aria-live":"polite",children:[fe($(n,e,"value",t),i),r!==void 0?(0,ne.jsx)("small",{children:` ${ee(r)}`}):null]}),a!==void 0?(0,ne.jsx)("span",{className:"garden-ui-stat-hint",children:fe(a)}):null]})}function C6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"format",t),a=He($(n,e,"max",t))??0,s=$(n,e,"parts",t),l=Array.isArray(s)?s.filter(ap).map(p=>({label:ee(p.label),value:He(p.value)??0,tone:ql(p.tone,"muted")})):null,o=l?l.reduce((p,m)=>p+m.value,0):He($(n,e,"value",t))??0,u=a>0&&o>a,h=$(n,e,"label",t),f=p=>`${a>0?Math.max(0,Math.min(100,p/a*100)):0}%`,c=ql($(n,e,"tone",t),"accent");return(0,ne.jsxs)("div",{className:"garden-ui-meter","data-over":u?"true":void 0,children:[(0,ne.jsxs)("div",{className:"garden-ui-meter-head","aria-live":"polite",children:[(0,ne.jsx)("span",{children:h!==void 0?ee(h):""}),(0,ne.jsxs)("span",{children:[fe(o,r)," / ",fe(a,r),u?(0,ne.jsx)("strong",{children:i.over(fe(o-a,r))}):null]})]}),(0,ne.jsx)("div",{className:"garden-ui-meter-track",role:"meter","aria-valuemin":0,"aria-valuemax":a,"aria-valuenow":o,"aria-label":h!==void 0?ee(h):void 0,children:u?(0,ne.jsx)("span",{className:"garden-ui-meter-fill garden-ui-tone-accent",style:{width:"100%"}}):l?l.map((p,m)=>(0,ne.jsx)("span",{className:`garden-ui-meter-fill garden-ui-tone-${p.tone}`,style:{width:f(p.value)}},m)):(0,ne.jsx)("span",{className:`garden-ui-meter-fill garden-ui-tone-${c}`,style:{width:f(o)}})}),l?(0,ne.jsx)("ul",{className:"garden-ui-legend",children:l.map((p,m)=>(0,ne.jsxs)("li",{children:[(0,ne.jsx)("span",{className:`garden-ui-swatch garden-ui-tone-${p.tone}`}),p.label," ",fe(p.value,r)]},m))}):null]})}function N6({node:e,env:t}){let n=Ue();return(0,ne.jsx)("span",{className:`garden-ui-badge garden-ui-tone-${ql($(n,e,"tone",t),"muted")}`,children:(0,ne.jsx)(Ot,{nodes:e.c,env:t})})}function CE(e,t,n){return xn(e,t.c,n).filter(i=>i.node.n==="Row").map(i=>{let r=$(e,i.node,"cells",i.env),a=Array.isArray(r)?r:[],s=$(e,i.node,"tones",i.env),l=$(e,i.node,"notes",i.env),o=$(e,i.node,"label",i.env);return{label:o===void 0?null:ee(o),cells:a,tones:a.map((u,h)=>ql(Array.isArray(s)?s[h]:s)),notes:a.map((u,h)=>Array.isArray(l)&&typeof l[h]=="string"?l[h]:"")}})}function _6({text:e}){return(0,ne.jsx)("p",{className:"garden-ui-note","aria-live":"polite",children:e})}function O6({node:e,env:t}){let n=Ue(),i=$(n,e,"columns",t),r=(Array.isArray(i)?i:[]).map(c=>ap(c)?{label:ee(c.label??c.key),key:typeof c.key=="string"?c.key:null,format:c.format,align:c.align}:{label:ee(c),key:null,format:void 0,align:void 0}),[a,s]=(0,Ra.useState)(null),l;if(e.p?.data){let c=$(n,e,"data",t);l=(Array.isArray(c)?c.slice(0,50):[]).map(p=>{let m=ql($u(n,e.p?.rowTone,p,t));return{label:null,cells:r.map(x=>x.key&&ap(p)?p[x.key]:void 0),tones:r.map(()=>m),notes:r.map(()=>"")}})}else l=CE(n,e,t);let o=l.some(c=>c.label!==null),u=r.map((c,p)=>(p>0||o)&&l.length>0&&l.every(m=>typeof m.cells[p]=="number")),h=a?l[a.row]?.notes[a.col]:"",f=o&&r.length===1;return(0,ne.jsxs)("div",{className:"garden-ui-table-wrap",children:[(0,ne.jsxs)("table",{className:`garden-ui-table${f?" garden-ui-table-kv":""}`,children:[(0,ne.jsx)("thead",{children:(0,ne.jsxs)("tr",{children:[o?(0,ne.jsx)("th",{"aria-hidden":"true"}):null,r.map((c,p)=>(0,ne.jsx)("th",{scope:"col","data-align":c.align??(u[p]?"right":"left"),children:c.label},p))]})}),(0,ne.jsx)("tbody",{children:l.map((c,p)=>{let m=c.tones.length>0&&c.tones.every(x=>x===c.tones[0])&&c.tones[0]!=="plain"?c.tones[0]:null;return(0,ne.jsxs)("tr",{className:m?`garden-ui-tone-${m}`:void 0,"data-tone":m?"row":void 0,children:[o?(0,ne.jsx)("th",{scope:"row",children:c.label??""}):null,c.cells.map((x,w)=>{let d=fe(x,r[w]?.format),g=!!c.notes[w];return(0,ne.jsx)("td",{className:`garden-ui-tone-${c.tones[w]}`,"data-align":r[w]?.align??(u[w]?"right":"left"),children:g?(0,ne.jsx)("button",{type:"button",className:"garden-ui-note-trigger","aria-pressed":a?.row===p&&a?.col===w,onClick:()=>s({row:p,col:w}),children:d}):d},w)})]},p)})})]}),l.some(c=>c.notes.some(Boolean))?(0,ne.jsx)(_6,{text:h??""}):null]})}function M6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"cols",t),a=(Array.isArray(r)?r:[]).map(y=>ee(y)),s=$(n,e,"legend",t),l=ap(s)?s:{},o=CE(n,e,t),[u,h]=(0,Ra.useState)({row:0,col:0}),[f,c]=(0,Ra.useState)(null),p=(0,Ra.useRef)(new Map),m=(0,Ra.useId)().replaceAll(":",""),x=[...new Set(o.flatMap(y=>y.tones))].filter(y=>y!=="plain"),w=(y,k,A)=>{let E={row:Math.max(0,Math.min(o.length-1,k)),col:Math.max(0,Math.min(a.length-1,A))};y.preventDefault(),h(E),p.current.get(`${E.row}:${E.col}`)?.focus()},d=f?o[f.row]:null,g=d&&f?i.cellNote(d.label??i.rowN(f.row+1),a[f.col]??"",d.notes[f.col]||fe(d.cells[f.col])):"";return(0,ne.jsxs)("div",{className:"garden-ui-grid-wrap",children:[(0,ne.jsxs)("table",{className:"garden-ui-grid",role:"grid","aria-describedby":`${m}-note`,children:[(0,ne.jsx)("thead",{children:(0,ne.jsxs)("tr",{children:[(0,ne.jsx)("th",{"aria-hidden":"true"}),a.map((y,k)=>(0,ne.jsx)("th",{scope:"col",children:y},k))]})}),(0,ne.jsx)("tbody",{children:o.map((y,k)=>(0,ne.jsxs)("tr",{children:[(0,ne.jsx)("th",{scope:"row",children:y.label??""}),y.cells.map((A,E)=>{let T=u.row===k&&u.col===E;return(0,ne.jsx)("td",{children:(0,ne.jsx)("button",{ref:v=>{v&&p.current.set(`${k}:${E}`,v)},type:"button",className:`garden-ui-cell garden-ui-tone-${y.tones[E]}`,tabIndex:T?0:-1,"aria-pressed":f?.row===k&&f?.col===E,"aria-label":i.cellAria(y.label??"",a[E]??"",fe(A),y.tones[E]!=="plain"?ee(l[y.tones[E]],Qo[y.tones[E]]):""),onFocus:()=>h({row:k,col:E}),onClick:()=>c({row:k,col:E}),onKeyDown:v=>{v.key==="ArrowRight"&&w(v,k,E+1),v.key==="ArrowLeft"&&w(v,k,E-1),v.key==="ArrowDown"&&w(v,k+1,E),v.key==="ArrowUp"&&w(v,k-1,E)},children:fe(A)})},E)})]},k))})]}),(0,ne.jsx)("p",{className:"garden-ui-note",id:`${m}-note`,"aria-live":"polite",children:g||i.tapCell}),x.length?(0,ne.jsx)("ul",{className:"garden-ui-legend",children:x.map(y=>(0,ne.jsxs)("li",{children:[(0,ne.jsx)("span",{className:`garden-ui-swatch garden-ui-tone-${y}`}),ee(l[y],Qo[y])]},y))}):null]})}function L6({node:e,env:t}){return(0,ne.jsx)("p",{className:"garden-ui-caption",children:(0,ne.jsx)(Ot,{nodes:e.c,env:t})})}function R6(){return(0,ne.jsx)("hr",{className:"garden-ui-divider"})}function z6(e){try{let t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"?null:`https://www.google.com/s2/favicons?domain=${encodeURIComponent(t.hostname)}&sz=32`}catch{return null}}function D6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"label",t)),r=ee($(n,e,"href",t),""),a=r?z6(r):null,s=(0,ne.jsxs)(ne.Fragment,{children:[a?(0,ne.jsx)("span",{className:"garden-ui-cite-icon","aria-hidden":"true",style:{backgroundImage:`url("${a}")`}}):null,i]});return r?(0,ne.jsx)("a",{className:"garden-ui-cite",href:r,children:s}):(0,ne.jsx)("span",{className:"garden-ui-cite",children:s})}hi({Stat:A6,Meter:C6,Badge:N6,Table:O6,Grid:M6,Caption:L6,Divider:R6,Cite:D6});var zi=ze(Ln(),1);var se=ze(mt(),1),B6=new Set(["Line","Area","Bar","Point"]),NE=["accent","muted","new","same"],it={top:14,right:16,bottom:30,left:60};function my(e,t,n=5){if(!Number.isFinite(e)||!Number.isFinite(t))return[];e===t&&(e-=1,t+=1);let i=(t-e)/n,r=10**Math.floor(Math.log10(i)),a=i/r,s=(a>=7.5?10:a>=3.5?5:a>=1.5?2:1)*r,l=[];for(let o=Math.ceil(e/s)*s;o<=t+s*1e-9;o+=s)l.push(Math.abs(o)<s*1e-9?0:Number(o.toPrecision(12)));return l}function _E(e,t,n,i){if(i!=="bytes"||t<=0)return my(e,t,n);let r=1;for(;t/r>=1024&&r<1024**5;)r*=1024;return my(e/r,t/r,n).map(a=>a*r)}function I6(e,t){let n=[];for(let r=Math.ceil(Math.log10(e));10**r<=t*(1+1e-9);r+=1)n.push(10**r);if(n.length>=3)return n;let i=[];for(let r=Math.ceil(Math.log2(e));2**r<=t*(1+1e-9);r+=1)i.push(2**r);return i.length>7?i.filter((r,a)=>a%Math.ceil(i.length/6)===0):i}var U6=6.8,V6=6,$6=e=>[...e].reduce((t,n)=>t+((n.codePointAt(0)??0)>11904?2:1),0)*U6;function q6(e,t,n,i){let r=a=>{let s=t(a),l=$6(n(a)),o=i(s);return o==="start"?[s,s+l]:o==="end"?[s-l,s]:[s-l/2,s+l/2]};for(let a=1;a<e.length;a+=1){let s=e.filter((l,o)=>o%a===0);if(s.every((l,o)=>o===0||r(s[o-1])[1]+V6<=r(l)[0]))return s}return e.slice(0,1)}function OE(e,t,n,i,r){if(r==="log"&&e>0&&t>e){let s=Math.log(e),l=Math.log(t);return{map:o=>n+(Math.log(o)-s)/(l-s)*(i-n),ticks:I6(e,t)}}let a=t-e||1;return{map:s=>n+(s-e)/a*(i-n),ticks:my(e,t,5)}}function j6({node:e,env:t}){let n=Ue(),i=At(),r=(0,zi.useId)().replaceAll(":",""),a=(0,zi.useRef)(null),[s,l]=(0,zi.useState)(640),[o,u]=(0,zi.useState)(null),[h,f]=(0,zi.useState)(!1);(0,zi.useEffect)(()=>{let U=a.current;if(!U||typeof ResizeObserver>"u")return;let te=new ResizeObserver(([Q])=>l(Math.max(240,Math.round(Q.contentRect.width))));return te.observe(U),()=>te.disconnect()},[]),(0,zi.useEffect)(()=>{let U=a.current;if(!U||typeof IntersectionObserver>"u")return;let te=new IntersectionObserver(([Q])=>{Q.isIntersecting&&(f(!0),te.disconnect())},{threshold:.3});return te.observe(U),()=>te.disconnect()},[]);let c=U=>$(n,e,U,t),p=Math.max(120,Math.min(480,He(c("height"))??200)),m=s<480?Math.max(140,Math.round(p*.8)):p,x=xn(n,e.c,t).filter(U=>B6.has(U.node.n??"")),w=(()=>{let U=(Z,ie)=>({kind:Z.node.n??"Line",label:ee($(n,Z.node,"label",Z.env),i.seriesN(ie+1)),tone:(()=>{let be=$(n,Z.node,"tone",Z.env);return typeof be=="string"&&Cr.includes(be)?be:NE[ie%NE.length]})(),format:$(n,Z.node,"format",Z.env)??c("yFormat")});if(e.p?.data){let Z=c("data"),ie=Array.isArray(Z)?Z.slice(0,2e3):[],be=ie.map(Xe=>$u(n,e.p?.x,Xe,t)),yt=x.some(Xe=>Xe.node.n==="Bar")||be.some(Xe=>typeof Xe!="number"),kt=ie.map((Xe,di)=>di);return yt||kt.sort((Xe,di)=>be[Xe]-be[di]),{categorical:yt,xs:yt?kt.map((Xe,di)=>di):kt.map(Xe=>be[Xe]),categories:kt.map(Xe=>fe(be[Xe],c("xFormat"))),series:x.map((Xe,di)=>({...U(Xe,di),ys:kt.map(qr=>{let rt=$u(n,Xe.node.p?.y,ie[qr],Xe.env);return typeof rt=="number"?rt:Number.NaN})})),marker:null,xScaleKind:"linear",xFormat:c("xFormat")}}let te=c("sweep");if(typeof te!="string")return null;let Q=n.sliders.get(te),z=Z=>Q?$(n,Q,Z,{locals:[]}):void 0,B=He(c("from"))??He(z("min")),P=He(c("to"))??He(z("max"));if(B===void 0||P===void 0||B>=P)return null;let G=(c("scale")??z("scale"))==="log"&&B>0?"log":"linear",Zt=z("snap")??(G==="log"&&gn(B)&&gn(P)?"pow2":"none"),F=Lu({from:B,to:P,scale:G,samples:He(c("samples"))??64,pow2:Zt==="pow2"});return{categorical:!1,xs:F,categories:[],series:x.map((Z,ie)=>({...U(Z,ie),ys:F.map(be=>{let yt=n.scopeFor({...n.state,[te]:be}),kt=Z.node.p?.y,Xe=kt?.k==="expr"?Ss(kt.e,Kn(...Z.env.locals,yt)):kt?.v;return typeof Xe=="number"?Xe:Number.NaN})})),marker:He(n.state[te])??null,xScaleKind:G,xFormat:c("xFormat")??z("format")}})();if(!w||!w.series.length)return(0,se.jsx)("p",{className:"garden-ui-error-inline",children:i.badChart});let d=s-it.left-it.right,g=m-it.top-it.bottom,y=w.series.flatMap(U=>U.ys.filter(te=>Number.isFinite(te))),k=c("yScale")==="log"?"log":"linear",A=w.series.some(U=>U.kind==="Bar"||U.kind==="Area"),E=He(c("yMin"))??(k==="log"?Math.min(...y.filter(U=>U>0)):Math.min(A?0:1/0,...y,0)),T=He(c("yMax"))??Math.max(...y,E+1);Number.isFinite(E)||(E=0);let v=OE(E,T,it.top+g,it.top,k),O=c("yFormat")??w.series[0]?.format,L=k==="linear"?_E(E,T,4,O):v.ticks,I=w.categories.length||1,V=d/I,R=w.categorical?{map:U=>it.left+V*U+V/2,ticks:w.xs}:OE(w.xs[0],w.xs[w.xs.length-1],it.left,it.left+d,w.xScaleKind),H=U=>U>it.left+d-24?"end":U<it.left+24?"start":"middle",K=U=>w.categorical?String(w.categories[U]??""):fe(U,w.xFormat),le=q6(w.categorical?w.xs:w.xScaleKind==="log"?R.ticks:_E(w.xs[0],w.xs[w.xs.length-1],5,w.xFormat),R.map,K,H),ae=c("yFormat")??w.series[0]?.format,et=U=>w.categorical?w.categories[U]:fe(w.xs[U],w.xFormat),_=U=>{let te="",Q=!1;return U.forEach((z,B)=>{if(!Number.isFinite(z)||k==="log"&&z<=0){Q=!1;return}te+=`${Q?"L":"M"}${R.map(w.xs[B]).toFixed(1)},${v.map(z).toFixed(1)}`,Q=!0}),te},C=w.series.filter(U=>U.kind==="Bar"),j=Math.max(2,(V-8)/Math.max(1,C.length)-2),Se=U=>{let te=a.current?.getBoundingClientRect();if(!te)return null;let Q=(U-te.left)/te.width*s,z=0;return w.xs.forEach((B,P)=>{Math.abs(R.map(B)-Q)<Math.abs(R.map(w.xs[z])-Q)&&(z=P)}),z},N=w.marker!==null?R.map(w.marker):null,me=w.marker!==null?w.xs.reduce((U,te,Q)=>Math.abs(te-w.marker)<Math.abs(w.xs[U]-w.marker)?Q:U,0):null,Ae=o;return(0,se.jsxs)("div",{className:"garden-ui-chart",children:[w.series.length>1?(0,se.jsx)("ul",{className:"garden-ui-legend",children:w.series.map((U,te)=>(0,se.jsxs)("li",{children:[(0,se.jsx)("span",{className:`garden-ui-swatch garden-ui-series-${U.tone}`}),U.label]},te))}):null,(0,se.jsxs)("div",{ref:a,className:"garden-ui-chart-canvas",tabIndex:0,role:"group","aria-label":i.chartKeys(ee(c("yLabel"),i.chart)),"aria-describedby":`${r}-table`,onPointerMove:U=>u(Se(U.clientX)),onPointerLeave:()=>u(null),onBlur:()=>u(null),onKeyDown:U=>{if(U.key!=="ArrowRight"&&U.key!=="ArrowLeft")return;U.preventDefault();let te=o??me??0;u(Math.max(0,Math.min(w.xs.length-1,te+(U.key==="ArrowRight"?1:-1))))},children:[(0,se.jsxs)("svg",{viewBox:`0 0 ${s} ${m}`,width:"100%",height:m,"aria-hidden":"true",className:h?"garden-ui-chart-drawn":void 0,children:[L.map(U=>(0,se.jsxs)("g",{children:[(0,se.jsx)("line",{className:"garden-ui-chart-grid",x1:it.left,x2:it.left+d,y1:v.map(U),y2:v.map(U)}),(0,se.jsx)("text",{className:"garden-ui-chart-tick",x:it.left-6,y:v.map(U),textAnchor:"end",dominantBaseline:"middle",children:fe(U,ae)})]},`y${U}`)),le.map(U=>(0,se.jsx)("text",{className:"garden-ui-chart-tick",x:R.map(U),y:it.top+g+18,textAnchor:H(R.map(U)),children:K(U)},`x${U}`)),(0,se.jsx)("line",{className:"garden-ui-chart-axis",x1:it.left,x2:it.left+d,y1:it.top+g,y2:it.top+g}),c("yLabel")!==void 0?(0,se.jsx)("text",{className:"garden-ui-chart-label",x:it.left,y:10,children:ee(c("yLabel"))}):null,c("xLabel")!==void 0?(0,se.jsx)("text",{className:"garden-ui-chart-label",x:it.left+d,y:m-2,textAnchor:"end",children:ee(c("xLabel"))}):null,w.series.map((U,te)=>{if(U.kind==="Line"){let Q=U.ys.length<=16;return(0,se.jsxs)("g",{children:[(0,se.jsx)("path",{className:`garden-ui-chart-line garden-ui-series-${U.tone}`,d:_(U.ys),pathLength:1}),Q?U.ys.map((z,B)=>Number.isFinite(z)&&!(k==="log"&&z<=0)?(0,se.jsx)("circle",{className:`garden-ui-chart-point garden-ui-series-${U.tone}`,cx:R.map(w.xs[B]),cy:v.map(z),r:3.5},B):null):null]},te)}if(U.kind==="Area"){let Q=_(U.ys),z=v.map(k==="log"?E:Math.max(E,0)),B=R.map(w.xs[0]),P=R.map(w.xs[w.xs.length-1]);return(0,se.jsxs)("g",{children:[(0,se.jsx)("path",{className:`garden-ui-chart-area garden-ui-series-${U.tone}`,d:`${Q}L${P},${z}L${B},${z}Z`}),(0,se.jsx)("path",{className:`garden-ui-chart-line garden-ui-series-${U.tone}`,d:Q,pathLength:1})]},te)}if(U.kind==="Bar"){let Q=C.indexOf(U);return U.ys.map((z,B)=>{if(!Number.isFinite(z))return null;let W=R.map(w.xs[B])-(j+2)*C.length/2+Q*(j+2),G=v.map(Math.max(z,E)),Zt=v.map(k==="log"?E:Math.max(E,0));return(0,se.jsx)("rect",{className:`garden-ui-chart-bar garden-ui-series-${U.tone}`,x:W,y:Math.min(G,Zt),width:j,height:Math.abs(Zt-G),rx:Math.min(4,j/4)},`${te}-${B}`)})}return U.ys.map((Q,z)=>Number.isFinite(Q)?(0,se.jsx)("circle",{className:`garden-ui-chart-point garden-ui-series-${U.tone}`,cx:R.map(w.xs[z]),cy:v.map(Q),r:3},`${te}-${z}`):null)}),N!==null&&me!==null?(0,se.jsxs)("g",{children:[(0,se.jsx)("line",{className:"garden-ui-chart-marker",x1:N,x2:N,y1:it.top,y2:it.top+g}),w.series.map((U,te)=>{let Q=U.ys[me];return Number.isFinite(Q)?(0,se.jsxs)("g",{children:[(0,se.jsx)("circle",{className:`garden-ui-chart-dot garden-ui-series-${U.tone}`,cx:R.map(w.xs[me]),cy:v.map(Q),r:4}),(0,se.jsx)("text",{className:"garden-ui-chart-value",x:R.map(w.xs[me])+(N>it.left+d*.7?-8:8),y:v.map(Q)-8,textAnchor:N>it.left+d*.7?"end":"start",children:fe(Q,U.format)})]},te):null})]}):null,Ae!==null?(0,se.jsx)("line",{className:"garden-ui-chart-cross",x1:R.map(w.xs[Ae]),x2:R.map(w.xs[Ae]),y1:it.top,y2:it.top+g}):null]}),Ae!==null?(0,se.jsxs)("div",{className:"garden-ui-chart-tooltip",style:{left:`${R.map(w.xs[Ae])/s*100}%`},"data-side":R.map(w.xs[Ae])>s*.6?"left":"right",children:[(0,se.jsx)("strong",{children:et(Ae)}),w.series.map((U,te)=>(0,se.jsxs)("span",{children:[w.series.length>1?i.seriesTooltip(U.label):"",fe(U.ys[Ae],U.format)]},te))]}):null]}),(0,se.jsx)("div",{className:"garden-ui-sr-only",children:(0,se.jsxs)("table",{id:`${r}-table`,children:[(0,se.jsx)("thead",{children:(0,se.jsxs)("tr",{children:[(0,se.jsx)("th",{children:ee(c("xLabel"),"x")}),w.series.map((U,te)=>(0,se.jsx)("th",{children:U.label},te))]})}),(0,se.jsx)("tbody",{children:w.xs.slice(0,200).map((U,te)=>(0,se.jsxs)("tr",{children:[(0,se.jsx)("td",{children:et(te)}),w.series.map((Q,z)=>(0,se.jsx)("td",{children:fe(Q.ys[te],Q.format)},z))]},te))})]})})]})}var ME=["#539af8","#6bc67f","#ef8b57","#0d0d0d","#8f8f8f"],jl={width:742,height:400,cx:371,cy:181,inner:70.4,outer:137.28};function gy(e,t,n,i,r,a){let s=Math.PI*2,l=a-r;if(l>=s-1e-4){let g=r+Math.PI;return`${gy(e,t,n,i,r,g)} ${gy(e,t,n,i,g,r+s)}`}let o=(g,y)=>[e+g*Math.cos(y),t+g*Math.sin(y)],[u,h]=o(i,r),[f,c]=o(i,a),[p,m]=o(n,a),[x,w]=o(n,r),d=l>Math.PI?1:0;return`M ${u} ${h} A ${i} ${i} 0 ${d} 1 ${f} ${c} L ${p} ${m} A ${n} ${n} 0 ${d} 0 ${x} ${w} Z`}function H6({node:e,env:t}){let n=Ue(),i=At(),r=$(n,e,"title",t),a=xn(n,e.c,t).filter(u=>u.node.n==="Slice").map(u=>({label:ee($(n,u.node,"label",u.env)),value:Math.max(0,He($(n,u.node,"value",u.env))??0)})).filter(u=>u.value>0),s=a.reduce((u,h)=>u+h.value,0),l=-Math.PI/2,o=[];for(let[u,h]of a.entries()){let f=s>0?h.value/s*Math.PI*2:0,c=gy(jl.cx,jl.cy,jl.inner,jl.outer,l,l+f);l+=f,o.push({...h,path:c,color:ME[u%ME.length]})}return(0,se.jsxs)("figure",{className:"garden-ui-pie",children:[r!==void 0?(0,se.jsx)("p",{className:"garden-ui-pie-title",children:ee(r)}):null,(0,se.jsxs)("div",{className:"garden-ui-pie-chart",children:[(0,se.jsx)("svg",{viewBox:`0 0 ${jl.width} ${jl.height}`,role:"img","aria-label":r!==void 0?ee(r):i.donut,children:o.map(u=>(0,se.jsx)("path",{d:u.path,fill:u.color},u.label))}),(0,se.jsx)("ul",{className:"garden-ui-legend",children:o.map(u=>(0,se.jsxs)("li",{children:[(0,se.jsx)("span",{className:"garden-ui-swatch",style:{background:u.color}}),u.label]},u.label))})]})]})}function F6(){return null}hi({Chart:j6,Pie:H6,Slice:F6});var pi=ze(Ln(),1);var P6={py:"python",python3:"python",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"jsx",ts:"typescript",mts:"typescript",tsx:"tsx",sh:"shell",zsh:"shell",bash:"shell",shell:"shell",console:"shell",golang:"go",rs:"rust",rb:"ruby",kt:"kotlin",yml:"yaml",md:"markdown",htm:"html","c++":"cpp","c#":"csharp",cc:"cpp",hpp:"cpp",cs:"csharp",docker:"dockerfile",ps1:"powershell",plaintext:"text",txt:"text"},G6={javascript:"JS",typescript:"TS",cpp:"C++",csharp:"C#"};function LE(e){let t=String(e??"").trim().toLowerCase();if(!t)return"";let n=P6[t]??t;return G6[n]??n.toUpperCase()}var pt=ze(mt(),1);function Q6({node:e,env:t}){let n=Ue(),i=At(),r=ee($(n,e,"src",t)),a=ee($(n,e,"alt",t)),s=ee($(n,e,"ratio",t)),l=xn(n,e.c,t).filter(p=>p.node.n==="Hotspot"),[o,u]=(0,pi.useState)(null),h=(0,pi.useRef)([]),f=/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?)$/u.exec(s),c=o!==null?l[o]:null;return(0,pt.jsxs)("div",{className:"garden-ui-image",children:[(0,pt.jsxs)("div",{className:"garden-ui-image-stage",style:f?{aspectRatio:`${f[1]} / ${f[2]}`}:void 0,children:[(0,pt.jsx)("img",{src:r,alt:a}),l.map((p,m)=>{let x=Math.max(0,Math.min(1,He($(n,p.node,"x",p.env))??0)),w=Math.max(0,Math.min(1,He($(n,p.node,"y",p.env))??0));return(0,pt.jsx)("button",{ref:d=>{h.current[m]=d},type:"button",className:"garden-ui-hotspot",style:{left:`${x*100}%`,top:`${w*100}%`},"aria-pressed":o===m,"aria-label":`${m+1}. ${ee($(n,p.node,"title",p.env))}`,onClick:()=>u(m),onKeyDown:d=>{if(d.key!=="ArrowRight"&&d.key!=="ArrowLeft")return;d.preventDefault();let g=(m+(d.key==="ArrowRight"?1:-1)+l.length)%l.length;u(g),h.current[g]?.focus()},children:m+1},m)})]}),(0,pt.jsx)("div",{className:"garden-ui-note","aria-live":"polite",children:c?(0,pt.jsxs)(pt.Fragment,{children:[(0,pt.jsx)("strong",{children:`${(o??0)+1}. ${ee($(n,c.node,"title",c.env))}`}),(0,pt.jsx)(Ot,{nodes:c.node.c,env:c.env})]}):(0,pt.jsx)("p",{children:i.tapNumbers})})]})}function X6(e){let t=new Set;for(let n of String(e??"").split(",")){let i=/^\s*(\d+)\s*(?:-\s*(\d+))?\s*$/u.exec(n);if(!i)continue;let r=Number(i[1]),a=Number(i[2]??i[1]);for(let s=r;s<=a&&s-r<200;s+=1)t.add(s)}return t}function Z6({node:e,env:t}){let n=Ue(),i=ee($(n,e,"lang",t)),r=ee($(n,e,"code",t)).replace(/^\n/u,""),a=X6($(n,e,"highlight",t));return(0,pt.jsx)("pre",{className:"garden-ui-code","data-language":LE(i)||void 0,children:(0,pt.jsx)("code",{children:r.split(`
435
472
  `).map((s,l)=>(0,pt.jsxs)("span",{className:"garden-ui-code-line","data-highlight":a.has(l+1)?"true":void 0,children:[(0,pt.jsx)("span",{className:"garden-ui-code-number","aria-hidden":"true",children:l+1}),s||" ",`
436
473
  `]},l))})})}var DE=Promise.resolve(),BE='ui-sans-serif, -apple-system, system-ui, "Segoe UI", Helvetica, Arial, "PingFang SC", sans-serif',W6={light:{background:"#FAF9F5",primaryColor:"#FFFFFF",primaryBorderColor:"#D6D2C9",primaryTextColor:"#1B1A18",lineColor:"#6E6B64",secondaryColor:"#F0EEE6",tertiaryColor:"#F0EEE6",fontSize:"14px"},dark:{background:"#1F1E1D",primaryColor:"#262624",primaryBorderColor:"#45423C",primaryTextColor:"#EEECE7",lineColor:"#A09B91",secondaryColor:"#30302E",tertiaryColor:"#30302E",fontSize:"14px"}};function eM(e,t,n){let i=DE.then(async()=>{let r=(await Promise.resolve().then(()=>(zE(),RE))).default;return r.initialize({startOnLoad:!1,theme:"base",themeVariables:{...W6[n?"dark":"light"],fontFamily:BE,fontSize:"14px"},fontFamily:BE,flowchart:{htmlLabels:!0,padding:16},securityLevel:"strict",suppressErrorRendering:!0}),r.render(t,e)});return DE=i.then(()=>{},()=>{}),i}function tM({node:e,env:t}){let n=Ue(),i=At(),r=ee($(n,e,"mermaid",t)).trim(),a=$(n,e,"highlight",t),s=$(n,e,"edges",t),l=(Array.isArray(a)?a:[]).map(String),o=(Array.isArray(s)?s:[]).map(String),u=(0,pi.useId)().replaceAll(":",""),[h,f]=(0,pi.useState)(""),[c,p]=(0,pi.useState)(!1),m=(0,pi.useRef)(null);(0,pi.useEffect)(()=>{let d=!0,g=m.current?.closest("[data-theme]")?.getAttribute("data-theme")==="dark";return eM(r,`garden-ui-mermaid-${u}`,g).then(y=>{d&&(f(y.svg),p(!1))},()=>{d&&p(!0)}),()=>{d=!1}},[r,u]);let x=l.join("|"),w=o.join("|");return(0,pi.useEffect)(()=>{let d=m.current;if(!d)return;d.querySelectorAll(".garden-ui-diagram-on").forEach(y=>y.classList.remove("garden-ui-diagram-on"));let g=y=>y.replace(/[^\w-]/gu,"");for(let y of x.split("|").map(g).filter(Boolean))d.querySelectorAll(`[id*="-${y}-"], [id$="-${y}"], [data-id="${y}"]`).forEach(k=>{(k.closest(".node, .statediagram-state")??k).classList.add("garden-ui-diagram-on")});for(let y of w.split("|").filter(Boolean)){let[k,A]=y.split("->").map(E=>g(E.trim()));!k||!A||d.querySelectorAll(`[id*="L-${k}-${A}"], [id*="L_${k}_${A}"], [data-id*="${k}_${A}"]`).forEach(E=>E.classList.add("garden-ui-diagram-on"))}},[h,x,w]),(0,pt.jsxs)("div",{className:"garden-ui-diagram",children:[c?(0,pt.jsx)("p",{className:"garden-ui-error-inline",children:i.mermaidFailed}):null,c?(0,pt.jsx)("pre",{className:"garden-ui-code",children:(0,pt.jsx)("code",{children:r})}):null,!h&&!c?(0,pt.jsx)("p",{className:"garden-ui-note",children:i.drawing}):null,(0,pt.jsx)("div",{ref:m,className:"garden-ui-diagram-canvas",dangerouslySetInnerHTML:{__html:h}}),l.length?(0,pt.jsx)("p",{className:"garden-ui-sr-only","aria-live":"polite",children:i.highlighted(l)}):null]})}hi({Image:Q6,Code:Z6,Diagram:tM});var za=ze(Ln(),1);var yy=ze(mt(),1);function nM({node:e,env:t}){let n=Ue(),i=At(),r=bE(),a=(0,za.useRef)(null),[s,l]=(0,za.useState)(180),[o,u]=(0,za.useState)(""),h=ee($(n,e,"html",t)),f=ee($(n,e,"css",t)),c=ee($(n,e,"js",t)),p=ee($(n,e,"title",t),i.interactive),m=Rl(h)||Rl(f)||Rl(c);return(0,za.useEffect)(()=>{if(m)return;let x=()=>{let d=document.documentElement.getAttribute("data-theme")==="dark"?"dark":"light";u(qw({html:h,css:f,js:c,canPrompt:typeof r.issuePrompt=="function",theme:d}))};x();let w=new MutationObserver(x);return w.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>w.disconnect()},[m,h,f,c,r]),(0,za.useEffect)(()=>{let x=w=>{let d=a.current;if(!d||w.source!==d.contentWindow)return;let g=jw(w.data);g&&(g.type==="height"&&l(g.height),g.type==="openUrl"&&Pg(g.url)&&(r.openUrl?r.openUrl(g.url):window.open(g.url,"_blank","noopener,noreferrer")),g.type==="issuePrompt"&&r.issuePrompt?.(g.text),g.type==="copy"&&(r.copy?r.copy(g.text):navigator.clipboard?.writeText(g.text)))};return window.addEventListener("message",x),()=>window.removeEventListener("message",x)},[r]),m?(0,yy.jsx)("p",{className:"garden-ui-error-inline",children:m}):(0,yy.jsx)("iframe",{ref:a,className:"garden-ui-sandbox",title:p,sandbox:"allow-scripts",referrerPolicy:"no-referrer",srcDoc:o,style:{height:s}})}hi({Sandbox:nM});var wt=ze(mt(),1);function sp({payload:e,host:t}){return(0,wt.jsxs)("figure",{className:"garden-ui",lang:"en-US",id:`ui-${e.id}`,children:[(0,wt.jsx)(hy,{payload:e,host:t}),(0,wt.jsx)("figcaption",{children:e.caption})]})}function IE({caption:e,diagnostics:t,id:n}){let i=At();return(0,wt.jsxs)("figure",{className:"garden-ui garden-ui-error",lang:"en-US",id:n?`ui-${n}`:void 0,children:[(0,wt.jsxs)("div",{className:"garden-ui-body",children:[(0,wt.jsx)("p",{className:"garden-ui-error-title",children:i.errorTitle}),(0,wt.jsx)("ul",{className:"garden-ui-diagnostics",children:t.map((r,a)=>(0,wt.jsxs)("li",{children:[(0,wt.jsx)("code",{children:r.code}),(0,wt.jsx)("span",{children:i.lineN(r.line)}),(0,wt.jsx)("span",{children:r.message})]},a))})]}),(0,wt.jsx)("figcaption",{children:e||i.missingCaption})]})}function UE({text:e,id:t,onCopyPrompt:n}){let i=At();return(0,wt.jsxs)("figure",{className:"garden-ui garden-ui-intent",children:[(0,wt.jsxs)("div",{className:"garden-ui-body",children:[(0,wt.jsxs)("div",{className:"garden-ui-intent-head",children:[(0,wt.jsxs)("strong",{children:[i.idea,t?` \xB7 ${t}`:""]}),(0,wt.jsx)("span",{className:"garden-ui-badge garden-ui-tone-accent",children:i.uncompiled})]}),(0,wt.jsx)("p",{className:"garden-ui-intent-text",children:e}),n?(0,wt.jsx)("button",{type:"button",className:"garden-ui-button",onClick:n,children:i.copyCompilePrompt}):null]}),(0,wt.jsx)("figcaption",{children:i.ideaNote})]})}function VE(e){let t=/^#\s+(?:配方:)?(.+)$/mu.exec(e.markdown)?.[1]?.trim()??e.file,n=Lr(e.markdown),i=null;for(let s of n){if(s.lang==="ui"){i=s.raw;break}let l=Lr(s.body).find(o=>o.lang==="ui");if(l){i=l.raw;break}}let r=n[0]?.start??e.markdown.length,a=e.markdown.slice(0,r).replace(/^#.+$/mu,"").trim();return{file:e.file,title:t,intro:a,fence:i}}var xe=ze(mt(),1);function iM(e){if(!e)return null;let t=Lr(e)[0]?.body;return t?zu(t).payload??null:null}function rM({fence:e,onStart:t}){let[n,i]=(0,Da.useState)(!1);return t?(0,xe.jsx)("button",{type:"button",className:"garden-ui-button garden-ui-tone-accent",onClick:()=>t(e),children:"\u7528\u5B83\u5F00\u59CB"}):(0,xe.jsx)("button",{type:"button",className:"garden-ui-button",onClick:()=>{navigator.clipboard?.writeText(e).then(()=>i(!0))},children:n?"\u5DF2\u590D\u5236\u56F4\u680F":"\u590D\u5236\u56F4\u680F"})}function aM({spec:e}){let t=Object.entries(e.props);return t.length?(0,xe.jsxs)("table",{className:"garden-catalog-props",children:[(0,xe.jsx)("thead",{children:(0,xe.jsxs)("tr",{children:[(0,xe.jsx)("th",{children:"\u5C5E\u6027"}),(0,xe.jsx)("th",{children:"\u8BF4\u660E"})]})}),(0,xe.jsx)("tbody",{children:t.map(([n,i])=>{let r=i;return(0,xe.jsxs)("tr",{children:[(0,xe.jsxs)("td",{children:[(0,xe.jsx)("code",{children:n}),r.required?" \xB7 \u5FC5\u586B":"",r.literal?" \xB7 \u5B57\u9762\u91CF":""]}),(0,xe.jsxs)("td",{children:[r.desc,r.values?`\uFF08${r.values.join(" / ")}\uFF09`:"",r.default!==void 0?`\uFF0C\u9ED8\u8BA4 ${JSON.stringify(r.default)}`:""]})]},n)})})]}):null}var $E=["\u914D\u65B9",...HS],xy=new Set;function sM(e){return xy.add(e),window.addEventListener("hashchange",e),()=>{xy.delete(e),window.removeEventListener("hashchange",e)}}function lM(e){let t=e.replace(/^#/,"");if(t.startsWith("component-")){let n=Cn[t.slice(10)];if(n?.group)return n.group}else{if(t==="\u914D\u65B9"||t.startsWith("recipe-"))return"\u914D\u65B9";try{let n=decodeURIComponent(t);if($E.includes(n))return n}catch{}}return"\u5C55\u793A"}function oM(e){window.history.replaceState(null,"",`#${encodeURIComponent(e)}`);for(let t of xy)t()}function qE({recipes:e=[],onStart:t}){let n=(0,Da.useMemo)(()=>e.map(VE).filter(d=>d.fence),[e]),[i,r]=(0,Da.useState)(""),a=(0,Da.useSyncExternalStore)(sM,()=>window.location.hash,()=>""),s=lM(a),[l,o]=(0,Da.useState)(null),u=i.trim().toLowerCase(),h=d=>{if(!u)return!0;let g=Cn[d];return[d,g.summary,...g.phrases].some(y=>y.toLowerCase().includes(u))},f=(d,g)=>!u||d.toLowerCase().includes(u)||g.toLowerCase().includes(u),c=d=>d==="\u914D\u65B9"?n.filter(g=>f(g.title,g.intro)).map(g=>({id:`recipe-${g.file}`,title:g.title.replace(/^配方:/,""),fence:g.fence,spec:null,intro:g.intro})):Object.keys(Cn).filter(g=>Cn[g].group===d&&g in fy&&h(g)).map(g=>({id:`component-${g}`,title:g,fence:pE(g),spec:Cn[g],intro:""})),p=$E.filter(d=>u?c(d).length>0:d==="\u914D\u65B9"?n.length>0:!0),m=p.includes(s)?s:p[0],x=m?c(m):[],w=d=>{o(null),oM(d)};return(0,xe.jsxs)("div",{className:"garden-catalog",children:[(0,xe.jsxs)("section",{className:"garden-author-catalog",children:[(0,xe.jsx)("h2",{children:"\u5199\u4F5C\u5757"}),(0,xe.jsxs)("p",{children:["\u6587\u7AE0\u91CC\u53EA\u5199 ",(0,xe.jsx)("code",{children:"garden"})," \u56F4\u680F\u3002\u4E0B\u9762\u662F\u540D\u5B57\u3002\u518D\u5F80\u4E0B\u7684\u6E05\u5355\u662F interactive \u7684\u5185\u90E8\u96F6\u4EF6\uFF0C\u4E0D\u662F\u6587\u7AE0\u91CC\u7684\u540D\u5B57\u3002"]}),(0,xe.jsxs)("ul",{children:[(0,xe.jsxs)("li",{children:[(0,xe.jsx)("code",{children:"garden"})," \xB7 ",cy.label,"\u3002",cy.when]}),fE.map(d=>{let g=hE[d];return(0,xe.jsxs)("li",{children:[(0,xe.jsxs)("code",{children:["garden ",d]})," \xB7 ",g.label,"\u3002",g.when]},d)})]})]}),(0,xe.jsxs)("nav",{className:"garden-catalog-nav","aria-label":"\u5927\u7C7B",children:[(0,xe.jsx)("input",{type:"search",placeholder:"\u641C\u7D22",value:i,onChange:d=>r(d.target.value),"aria-label":"\u641C\u7D22\u7EC4\u4EF6"}),p.map(d=>(0,xe.jsx)("button",{type:"button","aria-current":d===m?"page":void 0,onClick:()=>w(d),children:d},d))]}),x.length?(0,xe.jsx)("div",{className:"garden-catalog-grid",children:x.map(d=>{let g=iM(d.fence),y=l===d.id;return(0,xe.jsxs)("article",{className:"garden-catalog-card",id:d.id,children:[(0,xe.jsx)("button",{type:"button",className:"garden-catalog-card-name","aria-expanded":y,onClick:()=>o(y?null:d.id),children:d.title}),(0,xe.jsx)("div",{className:"garden-catalog-well",children:g?(0,xe.jsx)(sp,{payload:g}):(0,xe.jsx)("p",{className:"garden-catalog-empty",children:"\u6CA1\u6709\u9884\u89C8"})}),y?(0,xe.jsxs)("div",{className:"garden-catalog-more",children:[d.spec?(0,xe.jsx)("p",{children:d.spec.summary}):null,d.spec?.phrases.length?(0,xe.jsxs)("p",{className:"garden-catalog-phrases",children:["\u53EF\u4EE5\u8FD9\u6837\u8BF4\uFF1A",d.spec.phrases.map(k=>`\u201C${k}\u201D`).join("\u3001")]}):null,d.intro?(0,xe.jsx)("div",{className:"garden-catalog-intro",dangerouslySetInnerHTML:{__html:Ge.parse(d.intro,{async:!1})}}):null,d.spec?(0,xe.jsx)(aM,{spec:d.spec}):null,d.fence?(0,xe.jsx)("pre",{children:(0,xe.jsx)("code",{children:d.fence})}):null,d.fence&&g?(0,xe.jsx)(rM,{fence:d.fence,onStart:t}):null]}):null]},d.id)})}):(0,xe.jsx)("p",{className:"garden-catalog-empty",children:"\u6CA1\u6709\u7B26\u5408\u7684\u7EC4\u4EF6\u3002"})]})}var jE=[{id:"knob",label:"\u8BA9\u8BFB\u8005\u62E7\u4E00\u4E2A\u6570",text:"\u8BA9\u8BFB\u8005\u62D6\u52A8\u300C\u300D\uFF0C\u770B\u300C\u300D\u600E\u4E48\u8DDF\u7740\u53D8\u3002"},{id:"steps",label:"\u8BA9\u8BFB\u8005\u4E00\u6B65\u6B65\u8D70\u5B8C",text:"\u5206\u51E0\u6B65\u6F14\u793A\u300C\u300D\uFF0C\u6BCF\u4E00\u6B65\u9AD8\u4EAE\u300C\u300D\uFF0C\u8BFB\u8005\u53EF\u4EE5\u524D\u540E\u7FFB\u3002"},{id:"compare",label:"\u5E76\u6392\u5BF9\u6BD4\u4E24\u79CD\u505A\u6CD5",text:"\u628A\u300C\u300D\u548C\u300C\u300D\u5E76\u6392\u5BF9\u6BD4\uFF0C\u8BFB\u8005\u5207\u6362\u65F6\u80FD\u770B\u51FA\u300C\u300D\u7684\u5DEE\u522B\u3002"},{id:"grid",label:"\u8BA9\u8BFB\u8005\u70B9\u683C\u5B50\u770B\u89E3\u91CA",text:"\u753B\u4E00\u5F20\u300C\u300D\u7684\u683C\u5B50\u56FE\uFF0C\u8BFB\u8005\u70B9\u6BCF\u4E00\u683C\uFF0C\u663E\u793A\u300C\u300D\u3002"},{id:"flow",label:"\u6CBF\u7740\u6D41\u7A0B\u8D70",text:"\u6CBF\u7740\u300C\u300D\u7684\u6D41\u7A0B\u8D70\u4E00\u904D\uFF0C\u6BCF\u4E00\u6B65\u8BF4\u660E\u300C\u300D\u3002"},{id:"checklist",label:"\u7ED9\u4E00\u5F20\u53EF\u52FE\u9009\u7684\u6E05\u5355",text:"\u5217\u4E00\u5F20\u300C\u300D\u7684\u6E05\u5355\uFF0C\u8BFB\u8005\u53EF\u4EE5\u52FE\u9009\uFF0C\u663E\u793A\u5B8C\u6210\u4E86\u51E0\u9879\u3002"},{id:"data",label:"\u7528\u8FD9\u4EFD\u6570\u636E\u753B\u56FE",text:"\u7528\u540C\u540D\u76EE\u5F55\u91CC\u7684\u300C.csv\u300D\u753B\u56FE\uFF0C\u6A2A\u8F74\u662F\u300C\u300D\uFF0C\u7EB5\u8F74\u662F\u300C\u300D\u3002"}];function HE(e=""){return`\`\`\`intent
437
474
  ${e}
@@ -1,6 +1,6 @@
1
1
  # 把作者的想法编译成 Garden 块
2
2
 
3
- 文章里只有一种写法:`garden` 围栏。名字只有 card、stat、compare、timeline、chart、figure、html、interactive。裸 `garden` 围栏是作者的想法,发布前编译掉。不要再写 `ui`、`widget`、`embed`、`intent` 或 `garden:名字`。
3
+ 文章里只有一种写法:`garden` 围栏。名字只有 card、stat、compare、timeline、chart、figure、html、interactive、file、relations、list、choice。裸 `garden` 围栏是作者的想法,发布前编译掉。不要再写 `ui`、`widget`、`embed`、`intent` 或 `garden:名字`。
4
4
 
5
5
  ## 只用作者的原文
6
6
 
@@ -12,6 +12,33 @@
12
12
  - 保留作者自己的 mermaid。全局概览图保持一整张,不要拆开。
13
13
  - 正文已经读得清楚时,不要再套一个组件。
14
14
 
15
+ ## 静态 garden 组件字段与校验规则
16
+
17
+ 除 `interactive` 外,其余 11 个 `garden <name>` 组件都用 YAML 书写:
18
+
19
+ - `garden card`:
20
+ - 单卡模式:支持 `title`、`url`、`meta`、`description`(或别名 `text`)、`points`(字符串数组或 `{ title, text? }[]`,别名 `items`)、`image`、`alt`、`source`、`site`、`takeaway`(`description`、`points`、`cards` 至少填一项)。
21
+ - 多卡模式(`cards:` 数组):每项支持 `url`、`title`、`description`(或 `text`)、`image`、`alt`、`meta`、`source`、`takeaway`(如 `"**可借鉴:** ……"`)。
22
+ - `source` 支持单个链接、`{ url, site?, icon? }` 或链接数组;单个来源显示去掉 `www.` 的域名,多个来源自动折叠为第一个域名加 `+N`(如 `gutenberg.org +1`)。构建期下载到的 Favicon 优先于手写的 `icon`;都没有时取可注册域名主体的首字母大写(如 `en.wikipedia.org` -> `W`,`bbc.co.uk` -> `B`)。
23
+ - 正文行内链接末尾紧跟 `{source}`(如 `[wikipedia.org](https://en.wikipedia.org/wiki/Book_discussion_club){source}`)渲染为不带 `↗` 的行内来源胶囊。
24
+ - `garden stat`:`items` 数组(建议 2~4 项,单项也可直接把字段写在顶层),每项必填 `label` 与 `value`,可选 `unit`、`caption`、`text`、`source`。
25
+ - `garden compare`:`items` 数组(至少 2 项),每项含 `title`、`text`(也可写一行 `"标题:说明"` 字符串)。
26
+ - 并排模式:每格文字不超过约 60 字,超出报 `compare-long` 错误;额外键值渲染为底部属性标签。
27
+ - 正反对照模式:给条目加 `verdict: bad` 或 `verdict: good`,改为上下堆叠并显示红叉或绿勾,不受 60 字 `compare-long` 限制。
28
+ - `garden timeline`:可选 `title`,必填 `items` 数组(至少 2 项,每项含可选 `date`、必填 `title`、可选 `text`、`source`)。
29
+ - `garden chart`:可选 `type`(`"bar"`)、`title`、`unit`、`x`、`xLabel`、`yLabel`、`caption`,必填 `data`(`{ x, y, label? }[]`,至少 2 项)或 `series`(配 `x` 标签数组)。自带可展开数据表,同节不要重复手写相同数据的 Markdown 表。
30
+ - `garden figure`:`svg`(内联 `<svg>`,在可切换元素上标 `data-p="<id>"`)、`image`(配可选 `alt`)或 `mermaid` 三选一,配 `parts`(`{ id, label, text }[]`,`label` 也支持写 `name`)与可选 `caption`。
31
+ - `garden html`:`src`(同名子目录下的本地 `.html`)或 `code` 二选一,配 `title`、可选 `height`。
32
+ - `garden file`:单文件填 `src`(可选 `title`、`note`),多文件填 `files` 数组(每项含 `src`、可选 `title`、`note`)。本地路径相对当前 Markdown 且不能越出 `content/`(否则报 `file-outside`),文件不存在报 `missing-asset`,单文件超过 `5 MB` 报 `file-large` 警告;不要手写 `resolved`(报 `garden-file`)。
33
+ - `garden relations`:可选 `title`、`caption`,必填 `items`(3~6 项,每项含 `title`、`text`,节点无强调色选项),在 `items` 与 `links` 之间可选 `center: <序号|标题>`,可选 `links` 数组。
34
+ - `center`:把指定要素(1..N 序号或节点 `title`)放在正中,其余要素从正上方起顺时针均布在外圈;不做自动识别,写了不存在的 `center` 会使构建与检查失败(报 `garden-relations`)。
35
+ - `links` 每项必填 `from`、`to`(1..N 序号或节点 `title`,不能相同),可选 `style: solid | dashed`、`direction: one | both`、`label`。
36
+ - 首尾相接的循环把每一步写成一条 `link`(`1->2`、`2->3`、`3->4`、`4->1`)。任何宽度都画同一张关系图;`label` 写短一些,放不下时会变成圆圈序号并在图下列出。
37
+ - 要素不在 3~6 个之间、`center` 找不到对应要素或 `links` 不合法时报 `garden-relations` 错误(要素更多或有分支改用 ```mermaid 流程图,只走一遍的步骤用 `garden list`)。
38
+ - `garden list`:可选 `title`、`caption`,必填 `items` 数组(每项含 `icon`、可选 `title`、`text` 字符串或字符串数组)。全不带 `title` 时为紧凑图标列表;任一项带 `title` 时为带分隔线的步骤列表。
39
+ - 可用 `icon` 名(23 个):`search`、`eye`、`heart`、`chat`、`shield`、`wallet`、`bell`、`check`、`x`、`star`、`flag`、`clock`、`idea`、`book`、`link`、`user`、`chart`、`gear`、`file`、`pin`、`flask`、`target`、`question`。
40
+ - `garden choice`:可选 `title`、`caption`,必填 `items` 数组(2~3 项,每项含 `icon`、`value`、`text`、`label`、`reply`),可选 `none: { label, reply }`(在卡片下方渲染为单行兜底文字按钮)。整组支持键盘方向键切换,窄屏下卡片单列纵向堆叠。
41
+
15
42
  interactive 的正文仍用下面的组件和属性。那是 interactive 的内部零件,不是文章里的名字。
16
43
 
17
44
  # 把作者的意图写成 Garden 的 interactive 块
@@ -379,7 +379,7 @@ function Chart({ node, env }: { node: UiNode; env: Env }) {
379
379
  >
380
380
  <strong>{xLabel(tooltipIndex)}</strong>
381
381
  {model.series.map((series, index) => (
382
- <span key={index}>{model.series.length > 1 ? `${series.label}:` : ""}{formatValue(series.ys[tooltipIndex], series.format)}</span>
382
+ <span key={index}>{model.series.length > 1 ? tx.seriesTooltip(series.label) : ""}{formatValue(series.ys[tooltipIndex], series.format)}</span>
383
383
  ))}
384
384
  </div>
385
385
  ) : null}
@@ -225,7 +225,7 @@ function Grid({ node, env }: { node: UiNode; env: Env }) {
225
225
  className={`garden-ui-cell garden-ui-tone-${row.tones[colIndex]}`}
226
226
  tabIndex={isFocus ? 0 : -1}
227
227
  aria-pressed={selected?.row === rowIndex && selected?.col === colIndex}
228
- aria-label={`${row.label ?? ""} ${cols[colIndex] ?? ""}:${formatValue(cell)}${row.tones[colIndex] !== "plain" ? `,${asString(legend[row.tones[colIndex]], TONE_LABELS[row.tones[colIndex] as keyof typeof TONE_LABELS])}` : ""}`}
228
+ aria-label={tx.cellAria(row.label ?? "", cols[colIndex] ?? "", formatValue(cell), row.tones[colIndex] !== "plain" ? asString(legend[row.tones[colIndex]], TONE_LABELS[row.tones[colIndex] as keyof typeof TONE_LABELS]) : "")}
229
229
  onFocus={() => setFocus({ row: rowIndex, col: colIndex })}
230
230
  onClick={() => setSelected({ row: rowIndex, col: colIndex })}
231
231
  onKeyDown={(event) => {
package/ui/react/lang.tsx CHANGED
@@ -35,6 +35,8 @@ const zh = {
35
35
  rowN: (n: number) => `第 ${n} 行`,
36
36
  tapCell: "点一格看说明。",
37
37
  cellNote: (row: string, col: string, text: string) => `${row} · ${col}:${text}`,
38
+ cellAria: (row: string, col: string, val: string, tone: string) => `${row} ${col}:${val}${tone ? `,${tone}` : ""}`,
39
+ seriesTooltip: (label: string) => `${label}:`,
38
40
  seriesN: (n: number) => `系列 ${n}`,
39
41
  badChart: "图表缺少有效的范围或数据",
40
42
  chart: "图表",
@@ -68,6 +70,8 @@ const en: typeof zh = {
68
70
  rowN: (n: number) => `Row ${n}`,
69
71
  tapCell: "Tap a cell for its note.",
70
72
  cellNote: (row: string, col: string, text: string) => `${row} · ${col}: ${text}`,
73
+ cellAria: (row: string, col: string, val: string, tone: string) => `${row} ${col}: ${val}${tone ? `, ${tone}` : ""}`,
74
+ seriesTooltip: (label: string) => `${label}: `,
71
75
  seriesN: (n: number) => `Series ${n}`,
72
76
  badChart: "The chart has no valid range or data",
73
77
  chart: "Chart",
@@ -1,25 +1,27 @@
1
1
  "use client";
2
2
 
3
3
  import { compileUiBlock } from "../core/compile.mjs";
4
- import { PARITY_FIXTURES } from "../parity-fixtures.mjs";
5
- import { UiFigure } from "./index";
4
+ import { PARITY_FIXTURES, PARITY_FIXTURES_EN } from "../parity-fixtures.mjs";
5
+ import { RuntimeLangProvider, UiFigure } from "./index";
6
6
  import type { UiPayload } from "./types";
7
7
 
8
8
  function payloadFor(body: string): UiPayload | null {
9
9
  return compileUiBlock(body).payload as UiPayload | null;
10
10
  }
11
11
 
12
- export function ParityInteractions() {
13
- return (
12
+ export function ParityInteractions({ lang = "zh" }: { lang?: "zh" | "en" }) {
13
+ const fixtures = lang === "en" ? PARITY_FIXTURES_EN : PARITY_FIXTURES;
14
+ const content = (
14
15
  <>
15
- {PARITY_FIXTURES.map((fixture) => {
16
+ {fixtures.map((fixture) => {
16
17
  const payload = payloadFor(fixture.body);
17
18
  return (
18
19
  <section id={fixture.id} key={fixture.id} style={{ width: fixture.width, marginBottom: 32 }}>
19
- {payload ? <UiFigure payload={payload} /> : <p>对照块没有通过检查。</p>}
20
+ {payload ? <UiFigure payload={payload} /> : <p>{lang === "en" ? "Parity block failed validation." : "对照块没有通过检查。"}</p>}
20
21
  </section>
21
22
  );
22
23
  })}
23
24
  </>
24
25
  );
26
+ return lang === "en" ? <RuntimeLangProvider lang="en">{content}</RuntimeLangProvider> : content;
25
27
  }
package/worker/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** Cloudflare Worker entry point for the vinext-starter template. */
2
2
  import { handleImageOptimization, DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES } from "vinext/server/image-optimization";
3
3
  import handler from "vinext/server/app-router-entry";
4
- import { handbookHtmlLang, withHtmlLang } from "../ui/garden/html-lang.mjs";
4
+ import { handbookHtmlLang, withEnglishNotFoundHead, withHtmlLang } from "../ui/garden/html-lang.mjs";
5
5
 
6
6
  interface Env {
7
7
  ASSETS: Fetcher;
@@ -53,7 +53,13 @@ const worker = {
53
53
  if (!lang || !/^text\/html\b/iu.test(response.headers.get("content-type") ?? "")) return response;
54
54
  const headers = new Headers(response.headers);
55
55
  headers.delete("content-length");
56
- return new Response(withHtmlLang(await response.text(), lang), { status: response.status, statusText: response.statusText, headers });
56
+ const rawHtml = await response.text();
57
+ const html = response.status === 404 ? withEnglishNotFoundHead(rawHtml) : withHtmlLang(rawHtml, lang);
58
+ return new Response(html, {
59
+ status: response.status,
60
+ statusText: response.statusText,
61
+ headers,
62
+ });
57
63
  },
58
64
  };
59
65