@ds-mo/ui 9.1.0 → 9.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/README.md +0 -79
  2. package/dist/.build-stamp +1 -1
  3. package/dist/agent-patterns.json +165 -1
  4. package/dist/agent.json +2131 -639
  5. package/dist/angular/ds-agent-activity.d.ts +12 -0
  6. package/dist/angular/ds-agent-activity.js +38 -0
  7. package/dist/angular/ds-agent-response.d.ts +12 -0
  8. package/dist/angular/ds-agent-response.js +38 -0
  9. package/dist/angular/ds-agent-source-list.d.ts +12 -0
  10. package/dist/angular/ds-agent-source-list.js +38 -0
  11. package/dist/angular/ds-agent-tool-call.d.ts +12 -0
  12. package/dist/angular/ds-agent-tool-call.js +38 -0
  13. package/dist/angular/ds-attachment-list.d.ts +12 -0
  14. package/dist/angular/ds-attachment-list.js +38 -0
  15. package/dist/angular/ds-avatar.d.ts +12 -0
  16. package/dist/angular/ds-avatar.js +38 -0
  17. package/dist/angular/ds-code-block.d.ts +12 -0
  18. package/dist/angular/ds-code-block.js +38 -0
  19. package/dist/angular/ds-conversation-list-item.d.ts +19 -0
  20. package/dist/angular/ds-conversation-list-item.js +42 -0
  21. package/dist/angular/ds-conversation-list-section.d.ts +12 -0
  22. package/dist/angular/ds-conversation-list-section.js +38 -0
  23. package/dist/angular/ds-conversation-list.d.ts +12 -0
  24. package/dist/angular/ds-conversation-list.js +37 -0
  25. package/dist/angular/ds-markdown.d.ts +12 -0
  26. package/dist/angular/ds-markdown.js +38 -0
  27. package/dist/angular/ds-menu.d.ts +6 -1
  28. package/dist/angular/ds-menu.js +7 -4
  29. package/dist/angular/ds-message-bubble.d.ts +12 -0
  30. package/dist/angular/ds-message-bubble.js +38 -0
  31. package/dist/angular/ds-message-composer.d.ts +23 -0
  32. package/dist/angular/ds-message-composer.js +49 -0
  33. package/dist/angular/ds-message-scroller.d.ts +15 -0
  34. package/dist/angular/ds-message-scroller.js +43 -0
  35. package/dist/angular/ds-message.d.ts +12 -0
  36. package/dist/angular/ds-message.js +38 -0
  37. package/dist/angular/ds-panel-nav.d.ts +1 -1
  38. package/dist/angular/ds-panel-nav.js +3 -3
  39. package/dist/angular/ds-panel-tool-header.d.ts +25 -0
  40. package/dist/angular/ds-panel-tool-header.js +49 -0
  41. package/dist/angular/ds-panel-tool-search.d.ts +19 -0
  42. package/dist/angular/ds-panel-tool-search.js +49 -0
  43. package/dist/angular/ds-panel-tools.d.ts +30 -1
  44. package/dist/angular/ds-panel-tools.js +14 -5
  45. package/dist/angular/index.d.ts +1 -1
  46. package/dist/angular/index.js +17 -0
  47. package/dist/angular/proxies.d.ts +17 -0
  48. package/dist/angular/proxies.js +17 -0
  49. package/dist/components/ds-agent-activity.d.ts +11 -0
  50. package/dist/components/ds-agent-activity.js +2 -0
  51. package/dist/components/ds-agent-activity.js.map +1 -0
  52. package/dist/components/ds-agent-response.d.ts +11 -0
  53. package/dist/components/ds-agent-response.js +2 -0
  54. package/dist/components/ds-agent-response.js.map +1 -0
  55. package/dist/components/ds-agent-source-list.d.ts +11 -0
  56. package/dist/components/ds-agent-source-list.js +2 -0
  57. package/dist/components/ds-agent-source-list.js.map +1 -0
  58. package/dist/components/ds-agent-tool-call.d.ts +11 -0
  59. package/dist/components/ds-agent-tool-call.js +2 -0
  60. package/dist/components/ds-agent-tool-call.js.map +1 -0
  61. package/dist/components/ds-app-shell.js +1 -1
  62. package/dist/components/ds-app-shell.js.map +1 -1
  63. package/dist/components/ds-attachment-list.d.ts +11 -0
  64. package/dist/components/ds-attachment-list.js +2 -0
  65. package/dist/components/ds-attachment-list.js.map +1 -0
  66. package/dist/components/ds-avatar.d.ts +11 -0
  67. package/dist/components/ds-avatar.js +2 -0
  68. package/dist/components/ds-avatar.js.map +1 -0
  69. package/dist/components/ds-badge.js +1 -1
  70. package/dist/components/ds-banner.js +1 -1
  71. package/dist/components/ds-bar-nav.js +1 -1
  72. package/dist/components/ds-bar-nav.js.map +1 -1
  73. package/dist/components/ds-button-filled.js +1 -1
  74. package/dist/components/ds-button-unfilled.js +1 -1
  75. package/dist/components/ds-card-data-viz-donut.js +1 -1
  76. package/dist/components/ds-card-setting.js +1 -1
  77. package/dist/components/ds-card-shell-data-viz.js +1 -1
  78. package/dist/components/ds-card.js +1 -1
  79. package/dist/components/ds-chart-bar.js +1 -1
  80. package/dist/components/ds-chart-bar.js.map +1 -1
  81. package/dist/components/ds-chart-donut.js +1 -1
  82. package/dist/components/ds-chart-legend.js +1 -1
  83. package/dist/components/ds-chart-line.js +1 -1
  84. package/dist/components/ds-checkbox.js +1 -1
  85. package/dist/components/ds-chip.js +1 -1
  86. package/dist/components/ds-code-block.d.ts +11 -0
  87. package/dist/components/ds-code-block.js +2 -0
  88. package/dist/components/ds-code-block.js.map +1 -0
  89. package/dist/components/ds-conversation-list-item.d.ts +11 -0
  90. package/dist/components/ds-conversation-list-item.js +2 -0
  91. package/dist/components/ds-conversation-list-item.js.map +1 -0
  92. package/dist/components/ds-conversation-list-section.d.ts +11 -0
  93. package/dist/components/ds-conversation-list-section.js +2 -0
  94. package/dist/components/ds-conversation-list-section.js.map +1 -0
  95. package/dist/components/ds-conversation-list.d.ts +11 -0
  96. package/dist/components/ds-conversation-list.js +2 -0
  97. package/dist/components/ds-conversation-list.js.map +1 -0
  98. package/dist/components/ds-divider.js +1 -1
  99. package/dist/components/ds-divider.js.map +1 -1
  100. package/dist/components/ds-empty-state.js +1 -1
  101. package/dist/components/ds-field.js +1 -1
  102. package/dist/components/ds-icon.js +1 -1
  103. package/dist/components/ds-input.js +1 -1
  104. package/dist/components/ds-markdown.d.ts +11 -0
  105. package/dist/components/ds-markdown.js +2 -0
  106. package/dist/components/ds-markdown.js.map +1 -0
  107. package/dist/components/ds-menu.js +1 -1
  108. package/dist/components/ds-message-bubble.d.ts +11 -0
  109. package/dist/components/ds-message-bubble.js +2 -0
  110. package/dist/components/ds-message-bubble.js.map +1 -0
  111. package/dist/components/ds-message-composer.d.ts +11 -0
  112. package/dist/components/ds-message-composer.js +2 -0
  113. package/dist/components/ds-message-composer.js.map +1 -0
  114. package/dist/components/ds-message-scroller.d.ts +11 -0
  115. package/dist/components/ds-message-scroller.js +2 -0
  116. package/dist/components/ds-message-scroller.js.map +1 -0
  117. package/dist/components/ds-message.d.ts +11 -0
  118. package/dist/components/ds-message.js +2 -0
  119. package/dist/components/ds-message.js.map +1 -0
  120. package/dist/components/ds-modal.js +1 -1
  121. package/dist/components/ds-panel-nav.js +1 -1
  122. package/dist/components/ds-panel-nav.js.map +1 -1
  123. package/dist/components/ds-panel-sub-nav.js +1 -1
  124. package/dist/components/ds-panel-tool-header.d.ts +11 -0
  125. package/dist/components/ds-panel-tool-header.js +2 -0
  126. package/dist/components/ds-panel-tool-header.js.map +1 -0
  127. package/dist/components/ds-panel-tool-search.d.ts +11 -0
  128. package/dist/components/ds-panel-tool-search.js +2 -0
  129. package/dist/components/ds-panel-tool-search.js.map +1 -0
  130. package/dist/components/ds-panel-tools.js +1 -1
  131. package/dist/components/ds-panel-tools.js.map +1 -1
  132. package/dist/components/ds-radio.js +1 -1
  133. package/dist/components/ds-select-multi.js +1 -1
  134. package/dist/components/ds-select-multi.js.map +1 -1
  135. package/dist/components/ds-select.js +1 -1
  136. package/dist/components/ds-select.js.map +1 -1
  137. package/dist/components/ds-shell-gradient-picker.js +1 -1
  138. package/dist/components/ds-shell-gradient-picker.js.map +1 -1
  139. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  140. package/dist/components/ds-skeleton.js +1 -1
  141. package/dist/components/ds-slider.js +1 -1
  142. package/dist/components/ds-slider.js.map +1 -1
  143. package/dist/components/ds-swatch-picker.js +1 -1
  144. package/dist/components/ds-switch.js +1 -1
  145. package/dist/components/ds-tab-group.js +1 -1
  146. package/dist/components/ds-tab-group.js.map +1 -1
  147. package/dist/components/ds-tag.js +1 -1
  148. package/dist/components/ds-tag.js.map +1 -1
  149. package/dist/components/ds-text.js +1 -1
  150. package/dist/components/ds-tooltip-data-viz.js +1 -1
  151. package/dist/components/ds-tooltip.js +1 -1
  152. package/dist/components/index.d.ts +14 -0
  153. package/dist/components/{p-HBIxvS5C.js → p-B1pWGQn1.js} +2 -2
  154. package/dist/components/p-BBu_Svz7.js +2 -0
  155. package/dist/components/p-BBu_Svz7.js.map +1 -0
  156. package/dist/components/p-BHpWYKtP.js +2 -0
  157. package/dist/components/p-BHpWYKtP.js.map +1 -0
  158. package/dist/components/{p-KRGBGTu5.js → p-BO6C8abO.js} +2 -2
  159. package/dist/components/p-BRfOCc_h.js +2 -0
  160. package/dist/components/p-BRfOCc_h.js.map +1 -0
  161. package/dist/components/{p-CbS_WWs2.js → p-BSOZXagj.js} +2 -2
  162. package/dist/components/p-BSOZXagj.js.map +1 -0
  163. package/dist/components/p-BhC1YyId.js +2 -0
  164. package/dist/components/p-BhC1YyId.js.map +1 -0
  165. package/dist/components/p-BjtXYFhw.js +2 -0
  166. package/dist/components/p-BjtXYFhw.js.map +1 -0
  167. package/dist/components/p-CBYuvZKM.js +2 -0
  168. package/dist/components/p-CBYuvZKM.js.map +1 -0
  169. package/dist/components/{p-CZ9wemOA.js → p-CJlgONwR.js} +2 -2
  170. package/dist/components/p-CKaJx0IX.js +2 -0
  171. package/dist/components/p-CKaJx0IX.js.map +1 -0
  172. package/dist/components/p-CWNdl52Y.js +2 -0
  173. package/dist/components/p-CWNdl52Y.js.map +1 -0
  174. package/dist/components/{p-DT2MK8Kt.js → p-CblAABEo.js} +2 -2
  175. package/dist/components/p-CeFBA7Dx.js +2 -0
  176. package/dist/components/p-CeFBA7Dx.js.map +1 -0
  177. package/dist/components/p-CiKGqsA2.js +2 -0
  178. package/dist/components/{p-BLzivrE3.js.map → p-CiKGqsA2.js.map} +1 -1
  179. package/dist/components/p-Ci_nVk5P.js +2 -0
  180. package/dist/components/p-Ci_nVk5P.js.map +1 -0
  181. package/dist/components/p-Cijzn3YQ.js +2 -0
  182. package/dist/components/p-Cijzn3YQ.js.map +1 -0
  183. package/dist/components/{p-BbV68F23.js → p-CiwdnKKp.js} +2 -2
  184. package/dist/components/p-DFxqk71w.js +2 -0
  185. package/dist/components/p-DFxqk71w.js.map +1 -0
  186. package/dist/components/p-DVsje4AY.js +2 -0
  187. package/dist/components/p-DVsje4AY.js.map +1 -0
  188. package/dist/components/p-DaQ0ZE_V.js +2 -0
  189. package/dist/components/p-DaQ0ZE_V.js.map +1 -0
  190. package/dist/components/p-DiooIO2B.js +2 -0
  191. package/dist/components/p-DiooIO2B.js.map +1 -0
  192. package/dist/components/p-Dj5MejHv.js +2 -0
  193. package/dist/components/p-Dj5MejHv.js.map +1 -0
  194. package/dist/components/{p-B-zhgAvL.js → p-DnMCRAwx.js} +2 -2
  195. package/dist/components/{p-DyZj3k9S.js → p-Dst-OliP.js} +2 -2
  196. package/dist/components/p-Dst-OliP.js.map +1 -0
  197. package/dist/components/p-T0Mzhv3-.js +2 -0
  198. package/dist/components/p-T0Mzhv3-.js.map +1 -0
  199. package/dist/components/p-a9nGf1s6.js +2 -0
  200. package/dist/components/p-a9nGf1s6.js.map +1 -0
  201. package/dist/components/p-gidVv1FX.js +2 -0
  202. package/dist/components/p-gidVv1FX.js.map +1 -0
  203. package/dist/components/p-kezp2_Xu.js +2 -0
  204. package/dist/components/p-kezp2_Xu.js.map +1 -0
  205. package/dist/components/p-rEe-3KR_.js +2 -0
  206. package/dist/components/p-rEe-3KR_.js.map +1 -0
  207. package/dist/components/{p-C7RObioO.js → p-xB0GPG3-.js} +2 -2
  208. package/dist/docs/components.json +8294 -4079
  209. package/dist/lib/components/Menu/menu-placement.d.ts +13 -0
  210. package/dist/lib/shell/index.d.ts +1 -1
  211. package/dist/lib/shell/index.js +8 -0
  212. package/dist/lib/shell/index.js.map +2 -2
  213. package/dist/mcp-data/registry/agent-activity.json +158 -0
  214. package/dist/mcp-data/registry/agent-response.json +211 -0
  215. package/dist/mcp-data/registry/agent-source-list.json +153 -0
  216. package/dist/mcp-data/registry/agent-tool-call.json +213 -0
  217. package/dist/mcp-data/registry/app-shell.json +2 -2
  218. package/dist/mcp-data/registry/attachment-list.json +137 -0
  219. package/dist/mcp-data/registry/avatar.json +154 -0
  220. package/dist/mcp-data/registry/bar-nav.json +2 -2
  221. package/dist/mcp-data/registry/button-unfilled.json +2 -2
  222. package/dist/mcp-data/registry/code-block.json +150 -0
  223. package/dist/mcp-data/registry/conversation-list-item.json +283 -0
  224. package/dist/mcp-data/registry/conversation-list-section.json +139 -0
  225. package/dist/mcp-data/registry/conversation-list.json +101 -0
  226. package/dist/mcp-data/registry/markdown.json +141 -0
  227. package/dist/mcp-data/registry/menu.json +43 -7
  228. package/dist/mcp-data/registry/message-bubble.json +119 -0
  229. package/dist/mcp-data/registry/message-composer.json +265 -0
  230. package/dist/mcp-data/registry/message-scroller.json +217 -0
  231. package/dist/mcp-data/registry/message.json +255 -0
  232. package/dist/mcp-data/registry/panel-nav.json +20 -2
  233. package/dist/mcp-data/registry/panel-tool-header.json +342 -0
  234. package/dist/mcp-data/registry/panel-tool-search.json +387 -0
  235. package/dist/mcp-data/registry/panel-tools.json +150 -10
  236. package/dist/mcp-data/registry/registry.json +2159 -616
  237. package/dist/mcp-data/registry/select.json +1 -1
  238. package/dist/mcp-data/registry/slider.json +4 -4
  239. package/dist/mcp-data/registry/switch.json +1 -1
  240. package/dist/mcp-data/registry/tab-group.json +2 -2
  241. package/dist/mcp-data/registry/tag.json +2 -2
  242. package/dist/mcp-data/registry/text.json +1 -1
  243. package/dist/react/components.d.ts +17 -0
  244. package/dist/react/components.js +17 -0
  245. package/dist/react/ds-agent-activity.d.ts +9 -0
  246. package/dist/react/ds-agent-activity.js +12 -0
  247. package/dist/react/ds-agent-response.d.ts +9 -0
  248. package/dist/react/ds-agent-response.js +12 -0
  249. package/dist/react/ds-agent-source-list.d.ts +9 -0
  250. package/dist/react/ds-agent-source-list.js +12 -0
  251. package/dist/react/ds-agent-tool-call.d.ts +9 -0
  252. package/dist/react/ds-agent-tool-call.js +12 -0
  253. package/dist/react/ds-attachment-list.d.ts +9 -0
  254. package/dist/react/ds-attachment-list.js +12 -0
  255. package/dist/react/ds-avatar.d.ts +9 -0
  256. package/dist/react/ds-avatar.js +12 -0
  257. package/dist/react/ds-code-block.d.ts +9 -0
  258. package/dist/react/ds-code-block.js +12 -0
  259. package/dist/react/ds-conversation-list-item.d.ts +14 -0
  260. package/dist/react/ds-conversation-list-item.js +12 -0
  261. package/dist/react/ds-conversation-list-section.d.ts +9 -0
  262. package/dist/react/ds-conversation-list-section.js +12 -0
  263. package/dist/react/ds-conversation-list.d.ts +9 -0
  264. package/dist/react/ds-conversation-list.js +12 -0
  265. package/dist/react/ds-markdown.d.ts +9 -0
  266. package/dist/react/ds-markdown.js +12 -0
  267. package/dist/react/ds-menu.d.ts +1 -0
  268. package/dist/react/ds-menu.js +1 -0
  269. package/dist/react/ds-message-bubble.d.ts +9 -0
  270. package/dist/react/ds-message-bubble.js +12 -0
  271. package/dist/react/ds-message-composer.d.ts +16 -0
  272. package/dist/react/ds-message-composer.js +16 -0
  273. package/dist/react/ds-message-scroller.d.ts +12 -0
  274. package/dist/react/ds-message-scroller.js +12 -0
  275. package/dist/react/ds-message.d.ts +9 -0
  276. package/dist/react/ds-message.js +12 -0
  277. package/dist/react/ds-panel-tool-header.d.ts +17 -0
  278. package/dist/react/ds-panel-tool-header.js +16 -0
  279. package/dist/react/ds-panel-tool-search.d.ts +14 -0
  280. package/dist/react/ds-panel-tool-search.js +16 -0
  281. package/dist/react/ds-panel-tools.d.ts +10 -0
  282. package/dist/react/ds-panel-tools.js +3 -0
  283. package/dist/types/components/AgentActivity/AgentActivity.d.ts +14 -0
  284. package/dist/types/components/AgentResponse/AgentResponse.d.ts +12 -0
  285. package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +9 -0
  286. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +13 -0
  287. package/dist/types/components/AppShell/AppShell.d.ts +4 -0
  288. package/dist/types/components/AttachmentList/AttachmentList.d.ts +8 -0
  289. package/dist/types/components/Avatar/Avatar.d.ts +11 -0
  290. package/dist/types/components/BarNav/BarNav.d.ts +2 -0
  291. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  292. package/dist/types/components/CodeBlock/CodeBlock.d.ts +11 -0
  293. package/dist/types/components/ConversationList/ConversationList.d.ts +4 -0
  294. package/dist/types/components/ConversationListItem/ConversationListItem.d.ts +24 -0
  295. package/dist/types/components/ConversationListSection/ConversationListSection.d.ts +9 -0
  296. package/dist/types/components/Markdown/Markdown.d.ts +15 -0
  297. package/dist/types/components/Menu/Menu.d.ts +9 -0
  298. package/dist/types/components/Menu/menu-placement.d.ts +13 -0
  299. package/dist/types/components/Menu/menu-types.d.ts +1 -1
  300. package/dist/types/components/Message/Message.d.ts +17 -0
  301. package/dist/types/components/MessageBubble/MessageBubble.d.ts +6 -0
  302. package/dist/types/components/MessageComposer/MessageComposer.d.ts +29 -0
  303. package/dist/types/components/MessageScroller/MessageScroller.d.ts +41 -0
  304. package/dist/types/components/PanelNav/PanelNav.d.ts +5 -0
  305. package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +34 -0
  306. package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +35 -0
  307. package/dist/types/components/PanelTools/PanelTools.d.ts +40 -1
  308. package/dist/types/components/PanelTools/panel-tools-types.d.ts +20 -0
  309. package/dist/types/components/PanelTools/panel-tools-utils.d.ts +2 -0
  310. package/dist/types/components/Slider/Slider.d.ts +1 -1
  311. package/dist/types/components/conversation-types.d.ts +55 -0
  312. package/dist/types/components.d.ts +1229 -14
  313. package/dist/types/shell/index.d.ts +1 -1
  314. package/dist/types/utils/choice-list-parts.d.ts +4 -1
  315. package/package.json +11 -11
  316. package/dist/components/p-BLzivrE3.js +0 -2
  317. package/dist/components/p-C7UFYvsO.js +0 -2
  318. package/dist/components/p-C7UFYvsO.js.map +0 -1
  319. package/dist/components/p-CXF8yd-g.js +0 -2
  320. package/dist/components/p-CXF8yd-g.js.map +0 -1
  321. package/dist/components/p-CbS_WWs2.js.map +0 -1
  322. package/dist/components/p-DyZj3k9S.js.map +0 -1
  323. package/dist/components/p-VKIsOVza.js +0 -2
  324. package/dist/components/p-VKIsOVza.js.map +0 -1
  325. package/dist/components/p-tQ1QHeOE.js +0 -2
  326. package/dist/components/p-tQ1QHeOE.js.map +0 -1
  327. /package/dist/components/{p-HBIxvS5C.js.map → p-B1pWGQn1.js.map} +0 -0
  328. /package/dist/components/{p-KRGBGTu5.js.map → p-BO6C8abO.js.map} +0 -0
  329. /package/dist/components/{p-CZ9wemOA.js.map → p-CJlgONwR.js.map} +0 -0
  330. /package/dist/components/{p-DT2MK8Kt.js.map → p-CblAABEo.js.map} +0 -0
  331. /package/dist/components/{p-BbV68F23.js.map → p-CiwdnKKp.js.map} +0 -0
  332. /package/dist/components/{p-B-zhgAvL.js.map → p-DnMCRAwx.js.map} +0 -0
  333. /package/dist/components/{p-C7RObioO.js.map → p-xB0GPG3-.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["characterReferences","encode","value","replace","sanitizeUri","url","protocol","normalizeUri","result","index","start","skip","length","code","charCodeAt","asciiAlphanumeric","test","String","fromCharCode","next","push","slice","encodeURIComponent","join","wwwPrefix","tokenize","tokenizeWwwPrefix","partial","domain","tokenizeDomain","path","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","name","tokenizeWwwAutolink","previous","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","text","gfmAutolinkLiteral","effects","ok","nok","self","this","dot","data","gfmAtext","call","previousUnbalanced","events","enter","atext","consume","emailDomain","check","emailDomainAfter","emailDomainDot","asciiAlpha","exit","wwwStart","attempt","wwwAfter","buffer","seen","protocolStart","fromCodePoint","protocolPrefixInside","toLowerCase","protocolSlashesInside","afterProtocol","asciiControl","markdownLineEndingOrSpace","unicodeWhitespace","unicodePunctuation","protocolAfter","size","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","undefined","sizeOpen","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","after","token","type","_balanced","_gfmAutolinkLiteralWalkedInto","gfmAutolinkLiteralHtml","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","anchorFromToken","sliceSerialize","tag","raw","indent","tokenizeIndent","gfmFootnote","document","tokenizeDefinitionStart","continuation","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","add","tokenizePotentialGfmFootnoteCall","resolveTo","resolveToPotentialGfmFootnoteCall","defined","parser","gfmFootnotes","labelStart","id","normalizeIdentifier","end","now","codePointAt","includes","context","Object","assign","marker","column","offset","_bufferIndex","string","chunk","contentType","replacement","splice","callStart","callData","callEscape","identifier","_container","labelAtMarker","labelInside","labelAfter","labelEscape","factorySpace","whitespaceAfter","blankLine","afterPrefix","tail","own","hasOwnProperty","emptyOptions","defaultBackLabel","referenceIndex","rereferenceIndex","gfmFootnoteHtml","options","config","label","labelTagName","labelAttributes","backLabel","clobberPrefix","gfmFootnoteDefinition","stack","getData","gfmFootnoteDefinitionLabelString","gfmFootnoteCallString","definitions","footnoteStack","tightStack","current","pop","resume","setData","calls","counts","counter","indexOf","safeId","reuseCounter","lineEndingIfNeeded","references","reference","injected","$0","gfmStrikethroughHtml","strikethrough","gfmStrikethrough","options_","single","singleTilde","tokenizer","tokenizeStrikethrough","resolveAll","resolveAllStrikethrough","insideSpan","null","attentionMarkers","_close","open","_open","nextEvents","constructs","more","before","classifyCharacter","Boolean","alignment","none","left","right","center","gfmTableHtml","table","tableAlign","_align","tableBody","tableData","tableColumn","align","tableHead","tableHeader","tableRow","codeTextData","$1","EditMap","constructor","map","remove","addImplementation","sort","a","b","vecs","element","editMap","at","gfmTableAlign","inDelimiterRow","event","alignIndex","gfmTable","flow","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","lazy","line","headRowStart","headRowBreak","markdownLineEnding","interrupt","headDelimiterStart","markdownSpace","headRowData","headRowEscape","headDelimiterBefore","disable","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","cell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","exits","related","side","reFlow","reText","RegExp","source","gfmTagfilterHtml","htmlFlowData","exitHtmlData","htmlTextData","filter","allowDangerousHtml","gfmTaskListItemHtml","taskListCheck","taskListCheckValueChecked","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","_gfmTasklistFirstContentOfListItem","inside","close","spaceThenNonSpace","gfm","combineExtensions","gfmHtml","combineHtmlExtensions"],"sources":["node_modules/micromark-util-encode/index.js","node_modules/micromark-util-sanitize-uri/index.js","node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","node_modules/micromark-extension-gfm-autolink-literal/lib/html.js","node_modules/micromark-extension-gfm-footnote/lib/syntax.js","node_modules/micromark-extension-gfm-footnote/lib/html.js","node_modules/micromark-extension-gfm-strikethrough/lib/html.js","node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","node_modules/micromark-extension-gfm-table/lib/html.js","node_modules/micromark-extension-gfm-table/lib/edit-map.js","node_modules/micromark-extension-gfm-table/lib/infer.js","node_modules/micromark-extension-gfm-table/lib/syntax.js","node_modules/micromark-extension-gfm-tagfilter/lib/index.js","node_modules/micromark-extension-gfm-task-list-item/lib/html.js","node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","node_modules/micromark-extension-gfm/index.js"],"sourcesContent":["const characterReferences = {'\"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}\n\n/**\n * Encode only the dangerous HTML characters.\n *\n * This ensures that certain characters which have special meaning in HTML are\n * dealt with.\n * Technically, we can skip `>` and `\"` in many cases, but CM includes them.\n *\n * @param {string} value\n * Value to encode.\n * @returns {string}\n * Encoded value.\n */\nexport function encode(value) {\n return value.replace(/[\"&<>]/g, replace)\n\n /**\n * @param {string} value\n * Value to replace.\n * @returns {string}\n * Encoded value.\n */\n function replace(value) {\n return (\n '&' +\n characterReferences[\n /** @type {keyof typeof characterReferences} */ (value)\n ] +\n ';'\n )\n }\n}\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // <https://github.com/github/cmark-gfm/issues/279>\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // <https://github.com/github/cmark-gfm/issues/278>.\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&amp;).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&amp;).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {CompileContext, Handle, HtmlExtension, Token} from 'micromark-util-types'\n */\n\nimport { sanitizeUri } from 'micromark-util-sanitize-uri';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub autolink literal\n * when serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GitHub autolink literal when serializing to HTML.\n */\nexport function gfmAutolinkLiteralHtml() {\n return {\n exit: {\n literalAutolinkEmail,\n literalAutolinkHttp,\n literalAutolinkWww\n }\n };\n}\n\n/**\n * @this {CompileContext}\n * @type {Handle}\n */\nfunction literalAutolinkWww(token) {\n anchorFromToken.call(this, token, 'http://');\n}\n\n/**\n * @this {CompileContext}\n * @type {Handle}\n */\nfunction literalAutolinkEmail(token) {\n anchorFromToken.call(this, token, 'mailto:');\n}\n\n/**\n * @this {CompileContext}\n * @type {Handle}\n */\nfunction literalAutolinkHttp(token) {\n anchorFromToken.call(this, token);\n}\n\n/**\n * @this CompileContext\n * @param {Token} token\n * @param {string | null | undefined} [protocol]\n * @returns {undefined}\n */\nfunction anchorFromToken(token, protocol) {\n const url = this.sliceSerialize(token);\n this.tag('<a href=\"' + sanitizeUri((protocol || '') + url) + '\">');\n this.raw(this.encode(url));\n this.tag('</a>');\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array<Event>} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > <https://github.com/github/cmark-gfm/issues/240>\n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {HtmlOptions as Options} from 'micromark-extension-gfm-footnote'\n * @import {HtmlExtension} from 'micromark-util-types'\n */\n\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { sanitizeUri } from 'micromark-util-sanitize-uri';\nconst own = {}.hasOwnProperty;\n\n/** @type {Options} */\nconst emptyOptions = {};\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Default label.\n */\nexport function defaultBackLabel(referenceIndex, rereferenceIndex) {\n return 'Back to reference ' + (referenceIndex + 1) + (rereferenceIndex > 1 ? '-' + rereferenceIndex : '');\n}\n\n/**\n * Create an extension for `micromark` to support GFM footnotes when\n * serializing to HTML.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration (optional).\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM footnotes when serializing to HTML.\n */\nexport function gfmFootnoteHtml(options) {\n const config = options || emptyOptions;\n const label = config.label || 'Footnotes';\n const labelTagName = config.labelTagName || 'h2';\n const labelAttributes = config.labelAttributes === null || config.labelAttributes === undefined ? 'class=\"sr-only\"' : config.labelAttributes;\n const backLabel = config.backLabel || defaultBackLabel;\n const clobberPrefix = config.clobberPrefix === null || config.clobberPrefix === undefined ? 'user-content-' : config.clobberPrefix;\n return {\n enter: {\n gfmFootnoteDefinition() {\n const stack = this.getData('tightStack');\n stack.push(false);\n },\n gfmFootnoteDefinitionLabelString() {\n this.buffer();\n },\n gfmFootnoteCallString() {\n this.buffer();\n }\n },\n exit: {\n gfmFootnoteDefinition() {\n let definitions = this.getData('gfmFootnoteDefinitions');\n const footnoteStack = this.getData('gfmFootnoteDefinitionStack');\n const tightStack = this.getData('tightStack');\n const current = footnoteStack.pop();\n const value = this.resume();\n if (!definitions) {\n this.setData('gfmFootnoteDefinitions', definitions = {});\n }\n if (!own.call(definitions, current)) definitions[current] = value;\n tightStack.pop();\n this.setData('slurpOneLineEnding', true);\n // “Hack” to prevent a line ending from showing up if we’re in a definition in\n // an empty list item.\n this.setData('lastWasTag');\n },\n gfmFootnoteDefinitionLabelString(token) {\n let footnoteStack = this.getData('gfmFootnoteDefinitionStack');\n if (!footnoteStack) {\n this.setData('gfmFootnoteDefinitionStack', footnoteStack = []);\n }\n footnoteStack.push(normalizeIdentifier(this.sliceSerialize(token)));\n this.resume(); // Drop the label.\n this.buffer(); // Get ready for a value.\n },\n gfmFootnoteCallString(token) {\n let calls = this.getData('gfmFootnoteCallOrder');\n let counts = this.getData('gfmFootnoteCallCounts');\n const id = normalizeIdentifier(this.sliceSerialize(token));\n /** @type {number} */\n let counter;\n this.resume();\n if (!calls) this.setData('gfmFootnoteCallOrder', calls = []);\n if (!counts) this.setData('gfmFootnoteCallCounts', counts = {});\n const index = calls.indexOf(id);\n const safeId = sanitizeUri(id.toLowerCase());\n if (index === -1) {\n calls.push(id);\n counts[id] = 1;\n counter = calls.length;\n } else {\n counts[id]++;\n counter = index + 1;\n }\n const reuseCounter = counts[id];\n this.tag('<sup><a href=\"#' + clobberPrefix + 'fn-' + safeId + '\" id=\"' + clobberPrefix + 'fnref-' + safeId + (reuseCounter > 1 ? '-' + reuseCounter : '') + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + '</a></sup>');\n },\n null() {\n const calls = this.getData('gfmFootnoteCallOrder') || [];\n const counts = this.getData('gfmFootnoteCallCounts') || {};\n const definitions = this.getData('gfmFootnoteDefinitions') || {};\n let index = -1;\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag('<section data-footnotes=\"\" class=\"footnotes\"><' + labelTagName + ' id=\"footnote-label\"' + (labelAttributes ? ' ' + labelAttributes : '') + '>');\n this.raw(this.encode(label));\n this.tag('</' + labelTagName + '>');\n this.lineEndingIfNeeded();\n this.tag('<ol>');\n }\n while (++index < calls.length) {\n // Called definitions are always defined.\n const id = calls[index];\n const safeId = sanitizeUri(id.toLowerCase());\n let referenceIndex = 0;\n /** @type {Array<string>} */\n const references = [];\n while (++referenceIndex <= counts[id]) {\n references.push('<a href=\"#' + clobberPrefix + 'fnref-' + safeId + (referenceIndex > 1 ? '-' + referenceIndex : '') + '\" data-footnote-backref=\"\" aria-label=\"' + this.encode(typeof backLabel === 'string' ? backLabel : backLabel(index, referenceIndex)) + '\" class=\"data-footnote-backref\">↩' + (referenceIndex > 1 ? '<sup>' + referenceIndex + '</sup>' : '') + '</a>');\n }\n const reference = references.join(' ');\n let injected = false;\n this.lineEndingIfNeeded();\n this.tag('<li id=\"' + clobberPrefix + 'fn-' + safeId + '\">');\n this.lineEndingIfNeeded();\n this.tag(definitions[id].replace(/<\\/p>(?:\\r?\\n|\\r)?$/, function ($0) {\n injected = true;\n return ' ' + reference + $0;\n }));\n if (!injected) {\n this.lineEndingIfNeeded();\n this.tag(reference);\n }\n this.lineEndingIfNeeded();\n this.tag('</li>');\n }\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag('</ol>');\n this.lineEndingIfNeeded();\n this.tag('</section>');\n }\n }\n }\n };\n}","/**\n * @import {HtmlExtension} from 'micromark-util-types'\n */\n\n/**\n * Create an HTML extension for `micromark` to support GFM strikethrough when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions`, to\n * support GFM strikethrough when serializing to HTML.\n */\nexport function gfmStrikethroughHtml() {\n return {\n enter: {\n strikethrough() {\n this.tag('<del>');\n }\n },\n exit: {\n strikethrough() {\n this.tag('</del>');\n }\n }\n };\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array<Event>} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {HtmlExtension} from 'micromark-util-types'\n */\n\nconst alignment = {\n none: '',\n left: ' align=\"left\"',\n right: ' align=\"right\"',\n center: ' align=\"center\"'\n};\n\n// To do: micromark@5: use `infer` here, when all events are exposed.\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GitHub tables when serializing to HTML.\n */\nexport function gfmTableHtml() {\n return {\n enter: {\n table(token) {\n const tableAlign = token._align;\n this.lineEndingIfNeeded();\n this.tag('<table>');\n this.setData('tableAlign', tableAlign);\n },\n tableBody() {\n this.tag('<tbody>');\n },\n tableData() {\n const tableAlign = this.getData('tableAlign');\n const tableColumn = this.getData('tableColumn');\n const align = alignment[tableAlign[tableColumn]];\n if (align === undefined) {\n // Capture results to ignore them.\n this.buffer();\n } else {\n this.lineEndingIfNeeded();\n this.tag('<td' + align + '>');\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag('<thead>');\n },\n tableHeader() {\n const tableAlign = this.getData('tableAlign');\n const tableColumn = this.getData('tableColumn');\n const align = alignment[tableAlign[tableColumn]];\n this.lineEndingIfNeeded();\n this.tag('<th' + align + '>');\n },\n tableRow() {\n this.setData('tableColumn', 0);\n this.lineEndingIfNeeded();\n this.tag('<tr>');\n }\n },\n exit: {\n // Overwrite the default code text data handler to unescape escaped pipes when\n // they are in tables.\n codeTextData(token) {\n let value = this.sliceSerialize(token);\n if (this.getData('tableAlign')) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n this.raw(this.encode(value));\n },\n table() {\n this.setData('tableAlign');\n // Note: we don’t set `slurpAllLineEndings` anymore, in delimiter rows,\n // but we do need to reset it to match a funky newline GH generates for\n // list items combined with tables.\n this.setData('slurpAllLineEndings');\n this.lineEndingIfNeeded();\n this.tag('</table>');\n },\n tableBody() {\n this.lineEndingIfNeeded();\n this.tag('</tbody>');\n },\n tableData() {\n const tableAlign = this.getData('tableAlign');\n const tableColumn = this.getData('tableColumn');\n if (tableColumn in tableAlign) {\n this.tag('</td>');\n this.setData('tableColumn', tableColumn + 1);\n } else {\n // Stop capturing.\n this.resume();\n }\n },\n tableHead() {\n this.lineEndingIfNeeded();\n this.tag('</thead>');\n },\n tableHeader() {\n const tableColumn = this.getData('tableColumn');\n this.tag('</th>');\n this.setData('tableColumn', tableColumn + 1);\n },\n tableRow() {\n const tableAlign = this.getData('tableAlign');\n let tableColumn = this.getData('tableColumn');\n while (tableColumn < tableAlign.length) {\n this.lineEndingIfNeeded();\n this.tag('<td' + alignment[tableAlign[tableColumn]] + '></td>');\n tableColumn++;\n }\n this.setData('tableColumn', tableColumn);\n this.lineEndingIfNeeded();\n this.tag('</tr>');\n }\n }\n };\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0;\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array<Change>}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array<Jump>} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array<Array<Event>>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array<Event>} events\n// * @param {Array<Jump>} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array<Align>}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array<Align>} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array<Event>} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n// An opening or closing tag start, followed by a case-insensitive specific tag name,\n// followed by HTML whitespace, a greater than, or a slash.\nconst reFlow =\n /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi\n\n// As HTML (text) parses tags separately (and very strictly), we don’t need to be\n// global.\nconst reText = new RegExp('^' + reFlow.source, 'i')\n\n/**\n * Create an HTML extension for `micromark` to support GitHubs weird and\n * useless tagfilter when serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to support\n * GitHubs weird and useless tagfilter when serializing to HTML.\n */\nexport function gfmTagfilterHtml() {\n return {\n exit: {\n htmlFlowData(token) {\n exitHtmlData.call(this, token, reFlow)\n },\n htmlTextData(token) {\n exitHtmlData.call(this, token, reText)\n }\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @param {Token} token\n * @param {RegExp} filter\n * @returns {undefined}\n */\nfunction exitHtmlData(token, filter) {\n let value = this.sliceSerialize(token)\n\n if (this.options.allowDangerousHtml) {\n value = value.replace(filter, '&lt;$1$2')\n }\n\n this.raw(this.encode(value))\n}\n","/**\n * @import {HtmlExtension} from 'micromark-util-types'\n */\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items when\n * serializing to HTML.\n *\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItemHtml() {\n return {\n enter: {\n taskListCheck() {\n this.tag('<input type=\"checkbox\" disabled=\"\" ');\n }\n },\n exit: {\n taskListCheck() {\n this.tag('/>');\n },\n taskListCheckValueChecked() {\n this.tag('checked=\"\" ');\n }\n }\n };\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{p as t,t as e,H as a,h as i,a as s}from"./index.js";import{d as n}from"./p-CBYuvZKM.js";import{d as r}from"./p-Cpr3K41-.js";import{d as c}from"./p-BSOZXagj.js";const d=()=>`.sc-ds-agent-activity-h{display:block}.agent-activity.sc-ds-agent-activity{margin:0}summary.sc-ds-agent-activity{align-items:center;color:var(--color-foreground-secondary);cursor:pointer;display:flex;gap:var(--dimension-space-050);list-style:none;padding:var(--dimension-space-025) 0}summary.sc-ds-agent-activity::-webkit-details-marker{display:none}details[open].sc-ds-agent-activity summary.sc-ds-agent-activity ds-icon.sc-ds-agent-activity{transform:rotate(90deg)}ds-text.agent-activity__summary-label.sc-ds-agent-activity{min-width:0}ol.sc-ds-agent-activity{display:grid;gap:var(--dimension-space-075);list-style:none;margin:0;padding:var(--dimension-space-100) 0 0 var(--dimension-space-200)}.agent-activity__item.sc-ds-agent-activity{align-items:start;display:grid;gap:var(--dimension-space-050);grid-template-columns:auto minmax(0, 1fr)}.agent-activity__marker.sc-ds-agent-activity{align-items:center;color:var(--color-foreground-faint-neutral);display:flex;padding-block-start:var(--dimension-space-025)}.agent-activity__item--active.sc-ds-agent-activity .agent-activity__marker.sc-ds-agent-activity{color:var(--color-foreground-faint-brand)}.agent-activity__item--error.sc-ds-agent-activity .agent-activity__marker.sc-ds-agent-activity{color:var(--color-foreground-bold-negative)}.agent-activity__item.sc-ds-agent-activity span.sc-ds-agent-activity:last-child{display:grid;gap:var(--dimension-space-025)}.agent-activity__pending-dot.sc-ds-agent-activity{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor}.agent-activity__state.sc-ds-agent-activity{position:absolute;width:var(--dimension-size-050);height:var(--dimension-size-050);overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (prefers-reduced-motion: no-preference){summary.sc-ds-agent-activity ds-icon.sc-ds-agent-activity{transition:transform var(--effect-motion-short-2)}}`;const o=t(class t extends a{constructor(t){super();if(t!==false){this.__registerHost()}this.items=[];this.heading="Activity";this.open=false;this.expanded=false;this.handleToggle=t=>{this.expanded=t.currentTarget.open}}componentWillLoad(){this.expanded=this.open}handleOpenChange(t){this.expanded=t}get currentItem(){return this.items.find((t=>t.state==="active"))??this.items.find((t=>t.state==="error"))??[...this.items].reverse().find((t=>t.state==="complete"))??this.items.find((t=>t.state==="pending"))}stateLabel(t){if(t.state==="active")return"In progress";if(t.state==="complete")return"Complete";if(t.state==="error")return"Error";return"Pending"}render(){return i(s,{key:"841aaff14c66886207477a1391925b33a3e0103a"},i("details",{key:"2819f5cd255166fd129412b52678e6fb5a0e030d",class:"agent-activity",open:this.open,onToggle:this.handleToggle},i("summary",{key:"81db4133d3b6aec32e4e034a6cdf01adeab0b6e4"},i("ds-icon",{key:"eac983771ff52845938d77d8761fedc731a93704",name:"ChevronRight",size:"xs",color:"inherit"}),i("ds-text",{key:"a57661d82a454a766eafd0e3c1685389a1689c26",class:"agent-activity__summary-label",variant:"text-body-small",shimmer:!this.expanded&&this.currentItem?.state==="active"},this.expanded?this.heading:this.currentItem?.label??this.heading)),i("ol",{key:"e7172b93171e8e48710e6e9862972f30bfeca0a9"},this.items.map((t=>i("li",{class:`agent-activity__item agent-activity__item--${t.state}`},i("span",{class:"agent-activity__marker","aria-hidden":"true"},t.state==="active"?i("ds-loader",{size:"xs",color:"inherit"}):t.state==="pending"?i("span",{class:"agent-activity__pending-dot"}):i("ds-icon",{name:t.state==="error"?"ErrorTriangle":"Check",size:"xs",color:"inherit"})),i("span",null,i("ds-text",{variant:"text-body-small",shimmer:t.state==="active"},t.label),t.detail?i("ds-text",{variant:"text-caption",color:"secondary"},t.detail):null,i("span",{class:"agent-activity__state"},this.stateLabel(t)))))))))}static get watchers(){return{open:[{handleOpenChange:0}]}}static get style(){return d()}},[2,"ds-agent-activity",{items:[16],heading:[1],open:[4],expanded:[32]},undefined,{open:[{handleOpenChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const t=["ds-agent-activity","ds-icon","ds-loader","ds-text"];t.forEach((t=>{switch(t){case"ds-agent-activity":if(!customElements.get(e(t))){customElements.define(e(t),o)}break;case"ds-icon":if(!customElements.get(e(t))){n()}break;case"ds-loader":if(!customElements.get(e(t))){r()}break;case"ds-text":if(!customElements.get(e(t))){c()}break}}))}l();export{o as A,l as d};
2
+ //# sourceMappingURL=p-kezp2_Xu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["agentActivityCss","AgentActivity","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","items","heading","open","expanded","handleToggle","event","currentTarget","componentWillLoad","handleOpenChange","currentItem","find","item","state","reverse","stateLabel","render","h","Host","key","class","onToggle","name","size","color","variant","shimmer","label","map","detail"],"sources":["src/wc/components/AgentActivity/AgentActivity.css?tag=ds-agent-activity&encapsulation=scoped","src/wc/components/AgentActivity/AgentActivity.tsx"],"sourcesContent":[":host {\n display: block;\n}\n.agent-activity {\n margin: 0;\n}\nsummary {\n align-items: center;\n color: var(--color-foreground-secondary);\n cursor: pointer;\n display: flex;\n gap: var(--dimension-space-050);\n list-style: none;\n padding: var(--dimension-space-025) 0;\n}\nsummary::-webkit-details-marker {\n display: none;\n}\ndetails[open] summary ds-icon {\n transform: rotate(90deg);\n}\nds-text.agent-activity__summary-label {\n min-width: 0;\n}\nol {\n display: grid;\n gap: var(--dimension-space-075);\n list-style: none;\n margin: 0;\n padding: var(--dimension-space-100) 0 0 var(--dimension-space-200);\n}\n.agent-activity__item {\n align-items: start;\n display: grid;\n gap: var(--dimension-space-050);\n grid-template-columns: auto minmax(0, 1fr);\n}\n.agent-activity__marker {\n align-items: center;\n color: var(--color-foreground-faint-neutral);\n display: flex;\n padding-block-start: var(--dimension-space-025);\n}\n.agent-activity__item--active .agent-activity__marker {\n color: var(--color-foreground-faint-brand);\n}\n.agent-activity__item--error .agent-activity__marker {\n color: var(--color-foreground-bold-negative);\n}\n.agent-activity__item span:last-child {\n display: grid;\n gap: var(--dimension-space-025);\n}\n.agent-activity__pending-dot {\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n border-radius: var(--dimension-radius-half);\n background: currentColor;\n}\n.agent-activity__state {\n position: absolute;\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n summary ds-icon {\n transition: transform var(--effect-motion-short-2);\n }\n}\n","import { Component, Prop, State, Watch, h, Host } from '@stencil/core';\nimport type { AgentActivityItem } from '../conversation-types';\n\n@Component({\n tag: 'ds-agent-activity',\n styleUrl: 'AgentActivity.css',\n scoped: true,\n})\nexport class AgentActivity {\n @Prop() items: AgentActivityItem[] = [];\n @Prop() heading: string = 'Activity';\n @Prop() open: boolean = false;\n\n @State() private expanded: boolean = false;\n\n componentWillLoad() {\n this.expanded = this.open;\n }\n\n @Watch('open')\n handleOpenChange(open: boolean) {\n this.expanded = open;\n }\n\n private get currentItem(): AgentActivityItem | undefined {\n return (\n this.items.find(item => item.state === 'active') ??\n this.items.find(item => item.state === 'error') ??\n [...this.items].reverse().find(item => item.state === 'complete') ??\n this.items.find(item => item.state === 'pending')\n );\n }\n\n private handleToggle = (event: Event) => {\n this.expanded = (event.currentTarget as HTMLDetailsElement).open;\n };\n\n private stateLabel(item: AgentActivityItem): string {\n if (item.state === 'active') return 'In progress';\n if (item.state === 'complete') return 'Complete';\n if (item.state === 'error') return 'Error';\n return 'Pending';\n }\n\n render() {\n return (\n <Host>\n <details class=\"agent-activity\" open={this.open} onToggle={this.handleToggle}>\n <summary>\n <ds-icon name=\"ChevronRight\" size=\"xs\" color=\"inherit\" />\n <ds-text\n class=\"agent-activity__summary-label\"\n variant=\"text-body-small\"\n shimmer={!this.expanded && this.currentItem?.state === 'active'}\n >\n {this.expanded ? this.heading : this.currentItem?.label ?? this.heading}\n </ds-text>\n </summary>\n <ol>\n {this.items.map(item => (\n <li class={`agent-activity__item agent-activity__item--${item.state}`}>\n <span class=\"agent-activity__marker\" aria-hidden=\"true\">\n {item.state === 'active' ? (\n <ds-loader size=\"xs\" color=\"inherit\" />\n ) : item.state === 'pending' ? (\n <span class=\"agent-activity__pending-dot\" />\n ) : (\n <ds-icon\n name={item.state === 'error' ? 'ErrorTriangle' : 'Check'}\n size=\"xs\"\n color=\"inherit\"\n />\n )}\n </span>\n <span>\n <ds-text variant=\"text-body-small\" shimmer={item.state === 'active'}>\n {item.label}\n </ds-text>\n {item.detail ? (\n <ds-text variant=\"text-caption\" color=\"secondary\">\n {item.detail}\n </ds-text>\n ) : null}\n <span class=\"agent-activity__state\">{this.stateLabel(item)}</span>\n </span>\n </li>\n ))}\n </ol>\n </details>\n </Host>\n );\n }\n}\n"],"mappings":"uKAAA,MAAMA,EAAmB,IAAM,i5D,MCQlBC,EAAaC,EAAA,MAAAD,UAAAE,EAL1B,WAAAC,CAAAC,G,4CAMUC,KAAAC,MAA6B,GAC7BD,KAAAE,QAAkB,WAClBF,KAAAG,KAAgB,MAEPH,KAAAI,SAAoB,MAoB7BJ,KAAAK,aAAgBC,IACtBN,KAAKI,SAAYE,EAAMC,cAAqCJ,IAAI,CA0DnE,CA7EC,iBAAAK,GACER,KAAKI,SAAWJ,KAAKG,I,CAIvB,gBAAAM,CAAiBN,GACfH,KAAKI,SAAWD,C,CAGlB,eAAYO,GACV,OACEV,KAAKC,MAAMU,MAAKC,GAAQA,EAAKC,QAAU,YACvCb,KAAKC,MAAMU,MAAKC,GAAQA,EAAKC,QAAU,WACvC,IAAIb,KAAKC,OAAOa,UAAUH,MAAKC,GAAQA,EAAKC,QAAU,cACtDb,KAAKC,MAAMU,MAAKC,GAAQA,EAAKC,QAAU,W,CAQnC,UAAAE,CAAWH,GACjB,GAAIA,EAAKC,QAAU,SAAU,MAAO,cACpC,GAAID,EAAKC,QAAU,WAAY,MAAO,WACtC,GAAID,EAAKC,QAAU,QAAS,MAAO,QACnC,MAAO,S,CAGT,MAAAG,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,WAAAE,IAAA,2CAASC,MAAM,iBAAiBjB,KAAMH,KAAKG,KAAMkB,SAAUrB,KAAKK,cAC9DY,EAAA,WAAAE,IAAA,4CACEF,EAAA,WAAAE,IAAA,2CAASG,KAAK,eAAeC,KAAK,KAAKC,MAAM,YAC7CP,EAAA,WAAAE,IAAA,2CACEC,MAAM,gCACNK,QAAQ,kBACRC,SAAU1B,KAAKI,UAAYJ,KAAKU,aAAaG,QAAU,UAEtDb,KAAKI,SAAWJ,KAAKE,QAAUF,KAAKU,aAAaiB,OAAS3B,KAAKE,UAGpEe,EAAA,MAAAE,IAAA,4CACGnB,KAAKC,MAAM2B,KAAIhB,GACdK,EAAA,MAAIG,MAAO,8CAA8CR,EAAKC,SAC5DI,EAAA,QAAMG,MAAM,yBAAwB,cAAa,QAC9CR,EAAKC,QAAU,SACdI,EAAA,aAAWM,KAAK,KAAKC,MAAM,YACzBZ,EAAKC,QAAU,UACjBI,EAAA,QAAMG,MAAM,gCAEZH,EAAA,WACEK,KAAMV,EAAKC,QAAU,QAAU,gBAAkB,QACjDU,KAAK,KACLC,MAAM,aAIZP,EAAA,YACEA,EAAA,WAASQ,QAAQ,kBAAkBC,QAASd,EAAKC,QAAU,UACxDD,EAAKe,OAEPf,EAAKiB,OACJZ,EAAA,WAASQ,QAAQ,eAAeD,MAAM,aACnCZ,EAAKiB,QAEN,KACJZ,EAAA,QAAMG,MAAM,yBAAyBpB,KAAKe,WAAWH,U","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ const n={};function t(t,r){const o=n;const u=typeof o.includeImageAlt==="boolean"?o.includeImageAlt:true;const i=typeof o.includeHtml==="boolean"?o.includeHtml:true;return e(t,u,i)}function e(n,t,e){if(o(n)){if("value"in n){return n.type==="html"&&!e?"":n.value}if(t&&"alt"in n&&n.alt){return n.alt}if("children"in n){return r(n.children,t,e)}}if(Array.isArray(n)){return r(n,t,e)}return""}function r(n,t,r){const o=[];let u=-1;while(++u<n.length){o[u]=e(n[u],t,r)}return o.join("")}function o(n){return Boolean(n&&typeof n==="object")}export{t};
2
+ //# sourceMappingURL=p-rEe-3KR_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["emptyOptions","toString","value","options","settings","includeImageAlt","includeHtml","one","node","type","alt","all","children","Array","isArray","values","result","index","length","join","Boolean"],"sources":["node_modules/mdast-util-to-string/lib/index.js"],"sourcesContent":["/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n"],"mappings":"AAYA,MAAMA,EAAe,GAed,SAASC,EAASC,EAAOC,GAC9B,MAAMC,EAAsBJ,EAC5B,MAAMK,SACGD,EAASC,kBAAoB,UAChCD,EAASC,gBACT,KACN,MAAMC,SACGF,EAASE,cAAgB,UAAYF,EAASE,YAAc,KAErE,OAAOC,EAAIL,EAAOG,EAAiBC,EACrC,CAcA,SAASC,EAAIL,EAAOG,EAAiBC,GACnC,GAAIE,EAAKN,GAAQ,CACf,GAAI,UAAWA,EAAO,CACpB,OAAOA,EAAMO,OAAS,SAAWH,EAAc,GAAKJ,EAAMA,KAChE,CAEI,GAAIG,GAAmB,QAASH,GAASA,EAAMQ,IAAK,CAClD,OAAOR,EAAMQ,GACnB,CAEI,GAAI,aAAcR,EAAO,CACvB,OAAOS,EAAIT,EAAMU,SAAUP,EAAiBC,EAClD,CACA,CAEE,GAAIO,MAAMC,QAAQZ,GAAQ,CACxB,OAAOS,EAAIT,EAAOG,EAAiBC,EACvC,CAEE,MAAO,EACT,CAcA,SAASK,EAAII,EAAQV,EAAiBC,GAEpC,MAAMU,EAAS,GACf,IAAIC,GAAQ,EAEZ,QAASA,EAAQF,EAAOG,OAAQ,CAC9BF,EAAOC,GAASV,EAAIQ,EAAOE,GAAQZ,EAAiBC,EACxD,CAEE,OAAOU,EAAOG,KAAK,GACrB,CAUA,SAASX,EAAKN,GACZ,OAAOkB,QAAQlB,UAAgBA,IAAU,SAC3C,Q","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as o,H as i,c as e,h as s,a as c,t as n}from"./index.js";import{d as t}from"./p-CbS_WWs2.js";const r=()=>`.ds-control-inactive.sc-ds-checkbox-h,.ds-control-inactive.sc-ds-checkbox{opacity:0.25;pointer-events:none;cursor:not-allowed}.ds-control--md.sc-ds-checkbox-h,.ds-control--md.sc-ds-checkbox{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050);--ds-control-radius:var(--dimension-radius-025)}.ds-control--sm.sc-ds-checkbox-h,.ds-control--sm.sc-ds-checkbox{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025);--ds-control-radius:var(--dimension-radius-025)}.ds-control--xs.sc-ds-checkbox-h,.ds-control--xs.sc-ds-checkbox{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0;--ds-control-radius:var(--dimension-radius-025)}.sc-ds-checkbox-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-checkbox-h:focus-visible,.ds-focus-ring.sc-ds-checkbox:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-interaction-fill.sc-ds-checkbox-h,.ds-interaction-fill.sc-ds-checkbox{position:relative;z-index:0;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before,.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;transition:none}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before{z-index:1}.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-checkbox-h,.ds-interaction-fill--bordered.sc-ds-checkbox{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-checkbox-h::before,.ds-interaction-fill--selected.sc-ds-checkbox::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-checkbox-h,.ds-interaction-fill--selected.sc-ds-checkbox{--ds-interaction-dot-ring:var(--ds-interaction-active)}.ds-interaction-fill.sc-ds-checkbox-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}.ds-interaction-fill.sc-ds-checkbox-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-checkbox-h>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill.sc-ds-checkbox>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill__content.sc-ds-checkbox{position:relative;z-index:2}.ds-interaction-fill--on-faint.sc-ds-checkbox-h,.ds-interaction-fill--on-faint.sc-ds-checkbox{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-checkbox-h,.ds-interaction-fill--on-medium.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-checkbox-h,.ds-interaction-fill--on-bold.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-checkbox-h,.ds-interaction-fill--on-strong.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-checkbox-h,.ds-interaction-fill--on-translucent.sc-ds-checkbox{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-checkbox-h,.ds-interaction-fill--on-inverted.sc-ds-checkbox{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-checkbox-h,.ds-interaction-fill--on-media.sc-ds-checkbox{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-checkbox-h,.ds-interaction-fill--on-always-dark.sc-ds-checkbox{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-checkbox-h,.ds-interaction-fill--on-navigation.sc-ds-checkbox{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.sc-ds-checkbox-h{display:inline-flex;align-items:center;box-sizing:border-box;gap:var(--ds-control-gap);height:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);border-radius:var(--ds-control-radius);cursor:pointer;user-select:none}.checkbox--presentation.sc-ds-checkbox-h{width:var(--ds-control-icon);height:var(--ds-control-icon);padding:0;gap:0;pointer-events:none}.checkbox--md.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-sm);--_checkbox-stroke:var(--dimension-stroke-width-015)}.checkbox--sm.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-xs);--_checkbox-stroke:var(--dimension-stroke-width-012)}.checkbox--xs.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-size-100);--_checkbox-stroke:calc(var(--dimension-stroke-width-base) * 3 / 32)}.checkbox__placement.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon);height:var(--ds-control-icon)}.box.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--_checkbox-box);height:var(--_checkbox-box);border:0;border-radius:var(--dimension-radius-025);box-shadow:inset 0 0 0 var(--_checkbox-stroke) var(--color-foreground-tertiary);transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.box--marked.sc-ds-checkbox{color:var(--color-foreground-on-bold-background-primary);background-color:var(--color-background-bold-brand);box-shadow:none}.checkbox__mark.sc-ds-checkbox{width:100%;height:100%;flex-shrink:0;stroke:currentColor;stroke-width:var(--_checkbox-stroke);stroke-linecap:butt;stroke-linejoin:round}.checkbox__mark--checked.sc-ds-checkbox{transform:translateY(-0.5px)}.checkbox__label.sc-ds-checkbox{flex:1;min-width:0;padding:0 var(--ds-control-label-inset)}`;const a={md:"text-body-medium",sm:"text-body-small",xs:"text-caption"};let d=0;const l=o(class o extends i{constructor(o){super();if(o!==false){this.__registerHost()}this.dsChange=e(this,"dsChange");this.internals=this.attachInternals();this.labelId=`ds-checkbox-label-${++d}`;this.checked=false;this.size="md";this.value="on";this.disabled=false;this.required=false;this.requiredMessage="This field is required.";this.indeterminate=false;this.isInactive=false;this.presentation=false;this.initialChecked=false;this.initialIndeterminate=false;this.formDisabled=false;this.handleActivate=()=>{if(this.isInactive||this.disabled||this.formDisabled||this.presentation)return;if(this.indeterminate)this.indeterminate=false;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();this.handleActivate()}}}componentWillLoad(){this.initialChecked=this.checked;this.initialIndeterminate=this.indeterminate;this.syncFormValue()}syncFormValue(){const o=this.isInactive||this.disabled||this.formDisabled||this.presentation;this.internals.setFormValue(!o&&this.checked?this.value:null);const i=this.required&&!o&&!this.checked;this.internals.setValidity(i?{valueMissing:true}:{},i?this.requiredMessage:"")}formDisabledCallback(o){this.formDisabled=o;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked;this.indeterminate=this.initialIndeterminate}render(){const o=this.isInactive||this.disabled||this.formDisabled;const i=this.checked||this.indeterminate;const e=this.required&&!o&&!this.checked;return s(c,{key:"11d6885b8c76677bad4d7c833f2f45ea5605afca",role:this.presentation?undefined:"checkbox","aria-checked":this.presentation?undefined:this.indeterminate?"mixed":String(this.checked),"aria-disabled":!this.presentation&&o?"true":undefined,"aria-required":!this.presentation&&this.required?"true":undefined,"aria-invalid":!this.presentation&&e?"true":undefined,"aria-labelledby":this.presentation?undefined:this.labelId,"aria-hidden":this.presentation?"true":undefined,tabIndex:this.presentation||o?-1:0,class:{checkbox:true,"checkbox--presentation":this.presentation,[`checkbox--${this.size}`]:true,[`ds-control--${this.size}`]:true,"ds-control-inactive":o&&!this.presentation,"ds-focus-ring-inset":!this.presentation,"ds-interaction-fill":!o&&!this.presentation},onClick:this.presentation?undefined:this.handleActivate,onKeyDown:this.presentation?undefined:this.handleKeyDown},s("span",{key:"e9c917d309aca6157ff4d6bca9b5dd0029e8718c",class:"checkbox__placement ds-interaction-fill__content","aria-hidden":"true"},s("span",{key:"2ee9449509a9f0be534fa78c7724228fb163dd55",class:{box:true,"box--marked":i}},i&&s("svg",{key:"912bc367d37c602fa826d5731190907b5357261d",class:{checkbox__mark:true,"checkbox__mark--checked":!this.indeterminate},viewBox:"0 0 16 16",fill:"none",focusable:"false"},s("path",{key:"960a209b215d181dedf6c7ed1be9d1a3f9bc37af",d:this.indeterminate?"M4 8H12":"M3.5 8.25L6.75 11.5L12.5 4.75","vector-effect":"non-scaling-stroke"})))),!this.presentation&&s("ds-text",{key:"492fe4b6fcb64f88e7ea5ae070d2e307933b6519",class:"checkbox__label ds-interaction-fill__content",as:"span",variant:a[this.size],textId:this.labelId},this.label))}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}}static get style(){return r()}},[66,"ds-checkbox",{label:[1],checked:[1028],size:[1],name:[513],value:[1],disabled:[516],required:[516],requiredMessage:[1,"required-message"],indeterminate:[1028],isInactive:[4,"is-inactive"],presentation:[4],formDisabled:[32]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}]);function h(){if(typeof customElements==="undefined"){return}const o=["ds-checkbox","ds-text"];o.forEach((o=>{switch(o){case"ds-checkbox":if(!customElements.get(n(o))){customElements.define(n(o),l)}break;case"ds-text":if(!customElements.get(n(o))){t()}break}}))}h();export{l as C,h as d};
2
- //# sourceMappingURL=p-C7RObioO.js.map
1
+ import{p as o,H as e,c as i,h as s,a as c,t as n}from"./index.js";import{d as t}from"./p-BSOZXagj.js";const r=()=>`.ds-control-inactive.sc-ds-checkbox-h,.ds-control-inactive.sc-ds-checkbox{opacity:0.25;pointer-events:none;cursor:not-allowed}.ds-control--md.sc-ds-checkbox-h,.ds-control--md.sc-ds-checkbox{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050);--ds-control-radius:var(--dimension-radius-025)}.ds-control--sm.sc-ds-checkbox-h,.ds-control--sm.sc-ds-checkbox{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025);--ds-control-radius:var(--dimension-radius-025)}.ds-control--xs.sc-ds-checkbox-h,.ds-control--xs.sc-ds-checkbox{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0;--ds-control-radius:var(--dimension-radius-025)}.sc-ds-checkbox-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-checkbox-h:focus-visible,.ds-focus-ring.sc-ds-checkbox:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-interaction-fill.sc-ds-checkbox-h,.ds-interaction-fill.sc-ds-checkbox{position:relative;z-index:0;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before,.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;transition:none}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before{z-index:1}.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-checkbox-h,.ds-interaction-fill--bordered.sc-ds-checkbox{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-checkbox-h::before,.ds-interaction-fill--selected.sc-ds-checkbox::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-checkbox-h,.ds-interaction-fill--selected.sc-ds-checkbox{--ds-interaction-dot-ring:var(--ds-interaction-active)}.ds-interaction-fill.sc-ds-checkbox-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}.ds-interaction-fill.sc-ds-checkbox-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-checkbox-h>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill.sc-ds-checkbox>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill__content.sc-ds-checkbox{position:relative;z-index:2}.ds-interaction-fill--on-faint.sc-ds-checkbox-h,.ds-interaction-fill--on-faint.sc-ds-checkbox{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-checkbox-h,.ds-interaction-fill--on-medium.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-checkbox-h,.ds-interaction-fill--on-bold.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-checkbox-h,.ds-interaction-fill--on-strong.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-checkbox-h,.ds-interaction-fill--on-translucent.sc-ds-checkbox{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-checkbox-h,.ds-interaction-fill--on-inverted.sc-ds-checkbox{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-checkbox-h,.ds-interaction-fill--on-media.sc-ds-checkbox{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-checkbox-h,.ds-interaction-fill--on-always-dark.sc-ds-checkbox{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-checkbox-h,.ds-interaction-fill--on-navigation.sc-ds-checkbox{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.sc-ds-checkbox-h{display:inline-flex;align-items:center;box-sizing:border-box;gap:var(--ds-control-gap);height:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);border-radius:var(--ds-control-radius);cursor:pointer;user-select:none}.checkbox--presentation.sc-ds-checkbox-h{width:var(--ds-control-icon);height:var(--ds-control-icon);padding:0;gap:0;pointer-events:none}.checkbox--md.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-sm);--_checkbox-stroke:var(--dimension-stroke-width-015)}.checkbox--sm.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-xs);--_checkbox-stroke:var(--dimension-stroke-width-012)}.checkbox--xs.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-size-100);--_checkbox-stroke:calc(var(--dimension-stroke-width-base) * 3 / 32)}.checkbox__placement.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon);height:var(--ds-control-icon)}.box.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--_checkbox-box);height:var(--_checkbox-box);border:0;border-radius:var(--dimension-radius-025);box-shadow:inset 0 0 0 var(--_checkbox-stroke) var(--color-foreground-tertiary);transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.box--marked.sc-ds-checkbox{color:var(--color-foreground-on-bold-background-primary);background-color:var(--color-background-bold-brand);box-shadow:none}.checkbox__mark.sc-ds-checkbox{width:100%;height:100%;flex-shrink:0;stroke:currentColor;stroke-width:var(--_checkbox-stroke);stroke-linecap:butt;stroke-linejoin:round}.checkbox__mark--checked.sc-ds-checkbox{transform:translateY(-0.5px)}.checkbox__label.sc-ds-checkbox{flex:1;min-width:0;padding:0 var(--ds-control-label-inset)}`;const a={md:"text-body-medium",sm:"text-body-small",xs:"text-caption"};let d=0;const l=o(class o extends e{constructor(o){super();if(o!==false){this.__registerHost()}this.dsChange=i(this,"dsChange");this.internals=this.attachInternals();this.labelId=`ds-checkbox-label-${++d}`;this.checked=false;this.size="md";this.value="on";this.disabled=false;this.required=false;this.requiredMessage="This field is required.";this.indeterminate=false;this.isInactive=false;this.presentation=false;this.initialChecked=false;this.initialIndeterminate=false;this.formDisabled=false;this.handleActivate=()=>{if(this.isInactive||this.disabled||this.formDisabled||this.presentation)return;if(this.indeterminate)this.indeterminate=false;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();this.handleActivate()}}}componentWillLoad(){this.initialChecked=this.checked;this.initialIndeterminate=this.indeterminate;this.syncFormValue()}syncFormValue(){const o=this.isInactive||this.disabled||this.formDisabled||this.presentation;this.internals.setFormValue(!o&&this.checked?this.value:null);const e=this.required&&!o&&!this.checked;this.internals.setValidity(e?{valueMissing:true}:{},e?this.requiredMessage:"")}formDisabledCallback(o){this.formDisabled=o;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked;this.indeterminate=this.initialIndeterminate}render(){const o=this.isInactive||this.disabled||this.formDisabled;const e=this.checked||this.indeterminate;const i=this.required&&!o&&!this.checked;return s(c,{key:"94e08c7e3d60041f460d9a668be08f57f0cde351",role:this.presentation?undefined:"checkbox","aria-checked":this.presentation?undefined:this.indeterminate?"mixed":String(this.checked),"aria-disabled":!this.presentation&&o?"true":undefined,"aria-required":!this.presentation&&this.required?"true":undefined,"aria-invalid":!this.presentation&&i?"true":undefined,"aria-labelledby":this.presentation?undefined:this.labelId,"aria-hidden":this.presentation?"true":undefined,tabIndex:this.presentation||o?-1:0,class:{checkbox:true,"checkbox--presentation":this.presentation,[`checkbox--${this.size}`]:true,[`ds-control--${this.size}`]:true,"ds-control-inactive":o&&!this.presentation,"ds-focus-ring-inset":!this.presentation,"ds-interaction-fill":!o&&!this.presentation},onClick:this.presentation?undefined:this.handleActivate,onKeyDown:this.presentation?undefined:this.handleKeyDown},s("span",{key:"190afbb7ed68a43a0744547bea789bc2e958cb7a",class:"checkbox__placement ds-interaction-fill__content","aria-hidden":"true"},s("span",{key:"177079a6d598eec30ad79263c13d3f3283065015",class:{box:true,"box--marked":e}},e&&s("svg",{key:"5afd2f4b573db84441fd91e48807683d9ecc0ee6",class:{checkbox__mark:true,"checkbox__mark--checked":!this.indeterminate},viewBox:"0 0 16 16",fill:"none",focusable:"false"},s("path",{key:"88a50952387b378297a4cc4c9db74a05b4d706a4",d:this.indeterminate?"M4 8H12":"M3.5 8.25L6.75 11.5L12.5 4.75","vector-effect":"non-scaling-stroke"})))),!this.presentation&&s("ds-text",{key:"5204a014040030faa6e762e803fd32ce2a60e0f3",class:"checkbox__label ds-interaction-fill__content",as:"span",variant:a[this.size],textId:this.labelId},this.label))}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}}static get style(){return r()}},[66,"ds-checkbox",{label:[1],checked:[1028],size:[1],name:[513],value:[1],disabled:[516],required:[516],requiredMessage:[1,"required-message"],indeterminate:[1028],isInactive:[4,"is-inactive"],presentation:[4],formDisabled:[32]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}]);function h(){if(typeof customElements==="undefined"){return}const o=["ds-checkbox","ds-text"];o.forEach((o=>{switch(o){case"ds-checkbox":if(!customElements.get(n(o))){customElements.define(n(o),l)}break;case"ds-text":if(!customElements.get(n(o))){t()}break}}))}h();export{l as C,h as d};
2
+ //# sourceMappingURL=p-xB0GPG3-.js.map