@astryxdesign/core 0.6.2 → 0.6.3-canary.0949cb1

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 (384) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/dist/BottomSheet/BottomSheet.d.ts +1 -1
  3. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  4. package/dist/BottomSheet/BottomSheet.js +3 -1
  5. package/dist/BottomSheet/BottomSheetPanel.d.ts +7 -5
  6. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  7. package/dist/BottomSheet/BottomSheetPanel.js +56 -19
  8. package/dist/Chat/ChatComposer.d.ts.map +1 -1
  9. package/dist/Chat/ChatComposer.js +10 -5
  10. package/dist/Chat/ChatComposerDrawer.d.ts +19 -5
  11. package/dist/Chat/ChatComposerDrawer.d.ts.map +1 -1
  12. package/dist/Chat/ChatComposerDrawer.js +48 -23
  13. package/dist/Chat/ChatComposerInput.d.ts +11 -3
  14. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  15. package/dist/Chat/ChatComposerInput.js +63 -16
  16. package/dist/Chat/ChatDictationButton.d.ts +3 -2
  17. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  18. package/dist/Chat/ChatDictationButton.js +6 -4
  19. package/dist/Chat/ChatSendButton.js +1 -1
  20. package/dist/Chat/index.d.ts +1 -1
  21. package/dist/Chat/index.d.ts.map +1 -1
  22. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  23. package/dist/CheckboxInput/CheckboxInput.js +12 -2
  24. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  25. package/dist/Collapsible/Collapsible.js +6 -1
  26. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  27. package/dist/CommandPalette/CommandPaletteInput.js +1 -1
  28. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  29. package/dist/ComplexSelector/ComplexSelector.js +1 -1
  30. package/dist/DateInput/DateInput.d.ts.map +1 -1
  31. package/dist/DateInput/DateInput.js +4 -4
  32. package/dist/DateInput/NativeDateField.d.ts.map +1 -1
  33. package/dist/DateInput/NativeDateField.js +16 -16
  34. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  35. package/dist/DateInput/TouchDateField.js +2 -2
  36. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  37. package/dist/DateRangeInput/DateRangeInput.js +4 -4
  38. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  39. package/dist/DateTimeInput/DateTimeInput.js +8 -8
  40. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  41. package/dist/DateTimeInput/TouchDateTimeField.js +4 -4
  42. package/dist/DateTimeInput/nativePickerSegmentStyles.d.ts +9 -3
  43. package/dist/DateTimeInput/nativePickerSegmentStyles.d.ts.map +1 -1
  44. package/dist/DateTimeInput/nativePickerSegmentStyles.js +3 -3
  45. package/dist/Dialog/DialogHeader.d.ts +8 -1
  46. package/dist/Dialog/DialogHeader.d.ts.map +1 -1
  47. package/dist/Dialog/DialogHeader.js +10 -1
  48. package/dist/Field/InputClearButton.d.ts +4 -2
  49. package/dist/Field/InputClearButton.d.ts.map +1 -1
  50. package/dist/Field/InputClearButton.js +4 -2
  51. package/dist/Field/PanelSearchInput.d.ts.map +1 -1
  52. package/dist/Field/PanelSearchInput.js +1 -1
  53. package/dist/FileInput/FileInput.d.ts.map +1 -1
  54. package/dist/FileInput/FileInput.js +7 -7
  55. package/dist/Kbd/Kbd.d.ts +5 -3
  56. package/dist/Kbd/Kbd.d.ts.map +1 -1
  57. package/dist/Kbd/Kbd.js +36 -42
  58. package/dist/Link/Link.d.ts.map +1 -1
  59. package/dist/Link/Link.js +6 -2
  60. package/dist/Markdown/Markdown.d.ts +8 -2
  61. package/dist/Markdown/Markdown.d.ts.map +1 -1
  62. package/dist/Markdown/Markdown.fr23.bench.d.ts +2 -0
  63. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +1 -0
  64. package/dist/Markdown/Markdown.fr23.bench.js +150 -0
  65. package/dist/Markdown/Markdown.fr23.sampling.d.ts +2 -0
  66. package/dist/Markdown/Markdown.fr23.sampling.d.ts.map +1 -0
  67. package/dist/Markdown/Markdown.fr23.sampling.js +43 -0
  68. package/dist/Markdown/Markdown.js +262 -109
  69. package/dist/Markdown/ast.d.ts +162 -0
  70. package/dist/Markdown/ast.d.ts.map +1 -0
  71. package/dist/Markdown/ast.js +74 -0
  72. package/dist/Markdown/index.d.ts +5 -3
  73. package/dist/Markdown/index.d.ts.map +1 -1
  74. package/dist/Markdown/index.js +3 -2
  75. package/dist/Markdown/parser/index.d.ts +10 -0
  76. package/dist/Markdown/parser/index.d.ts.map +1 -0
  77. package/dist/Markdown/parser/index.js +10 -0
  78. package/dist/Markdown/parser.d.ts +126 -58
  79. package/dist/Markdown/parser.d.ts.map +1 -1
  80. package/dist/Markdown/parser.js +716 -167
  81. package/dist/Markdown/plugins/frontmatter.d.ts +32 -0
  82. package/dist/Markdown/plugins/frontmatter.d.ts.map +1 -0
  83. package/dist/Markdown/plugins/frontmatter.js +132 -0
  84. package/dist/Markdown/plugins/index.d.ts +16 -0
  85. package/dist/Markdown/plugins/index.d.ts.map +1 -0
  86. package/dist/Markdown/plugins/index.js +13 -0
  87. package/dist/Markdown/plugins/protocol.d.ts +191 -0
  88. package/dist/Markdown/plugins/protocol.d.ts.map +1 -0
  89. package/dist/Markdown/plugins/protocol.js +957 -0
  90. package/dist/Markdown/plugins/semanticFence.d.ts +36 -0
  91. package/dist/Markdown/plugins/semanticFence.d.ts.map +1 -0
  92. package/dist/Markdown/plugins/semanticFence.js +213 -0
  93. package/dist/Markdown/plugins/sourceDecoration.d.ts +76 -0
  94. package/dist/Markdown/plugins/sourceDecoration.d.ts.map +1 -0
  95. package/dist/Markdown/plugins/sourceDecoration.js +393 -0
  96. package/dist/Markdown/plugins/textTransform.d.ts +30 -0
  97. package/dist/Markdown/plugins/textTransform.d.ts.map +1 -0
  98. package/dist/Markdown/plugins/textTransform.js +374 -0
  99. package/dist/Markdown/remark.d.ts +196 -0
  100. package/dist/Markdown/remark.d.ts.map +1 -0
  101. package/dist/Markdown/remark.js +1062 -0
  102. package/dist/Markdown/url.d.ts +4 -0
  103. package/dist/Markdown/url.d.ts.map +1 -0
  104. package/dist/Markdown/url.js +25 -0
  105. package/dist/Markdown/utils.d.ts +4 -2
  106. package/dist/Markdown/utils.d.ts.map +1 -1
  107. package/dist/Markdown/utils.js +2 -1
  108. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  109. package/dist/NumberInput/NumberInput.js +4 -4
  110. package/dist/Outline/index.d.ts +1 -0
  111. package/dist/Outline/index.d.ts.map +1 -1
  112. package/dist/Outline/parseOutlineFromMarkdown.d.ts +7 -1
  113. package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
  114. package/dist/Outline/parseOutlineFromMarkdown.js +14 -8
  115. package/dist/Outline/useOutlineFromMarkdown.d.ts +3 -1
  116. package/dist/Outline/useOutlineFromMarkdown.d.ts.map +1 -1
  117. package/dist/Outline/useOutlineFromMarkdown.js +8 -3
  118. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  119. package/dist/PowerSearch/PowerSearchEditPopover.js +46 -30
  120. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  121. package/dist/ProgressBar/ProgressBar.js +36 -31
  122. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  123. package/dist/RadioList/RadioListItem.js +13 -1
  124. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  125. package/dist/SegmentedControl/SegmentedControlItem.js +5 -5
  126. package/dist/Selector/Selector.d.ts +9 -7
  127. package/dist/Selector/Selector.d.ts.map +1 -1
  128. package/dist/Selector/Selector.js +7 -5
  129. package/dist/SideNav/SideNav.d.ts +2 -1
  130. package/dist/SideNav/SideNav.d.ts.map +1 -1
  131. package/dist/SideNav/SideNav.js +9 -3
  132. package/dist/Slider/Slider.d.ts.map +1 -1
  133. package/dist/Slider/Slider.js +28 -12
  134. package/dist/Spinner/Spinner.d.ts.map +1 -1
  135. package/dist/Spinner/Spinner.js +23 -7
  136. package/dist/Switch/Switch.d.ts.map +1 -1
  137. package/dist/Switch/Switch.js +11 -0
  138. package/dist/TabList/Tab.d.ts +1 -1
  139. package/dist/TabList/Tab.d.ts.map +1 -1
  140. package/dist/TabList/Tab.js +20 -7
  141. package/dist/Table/Table.d.ts +1 -0
  142. package/dist/Table/Table.d.ts.map +1 -1
  143. package/dist/Table/Table.js +29 -13
  144. package/dist/TextArea/TextArea.d.ts.map +1 -1
  145. package/dist/TextArea/TextArea.js +1 -1
  146. package/dist/TextInput/TextInput.d.ts.map +1 -1
  147. package/dist/TextInput/TextInput.js +2 -2
  148. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  149. package/dist/TimeInput/TimeInput.js +4 -4
  150. package/dist/ToggleButton/ToggleButton.d.ts +9 -6
  151. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  152. package/dist/ToggleButton/ToggleButton.js +15 -27
  153. package/dist/TreeList/TreeList.d.ts.map +1 -1
  154. package/dist/TreeList/TreeList.js +3 -0
  155. package/dist/TreeList/TreeListItem.d.ts +6 -1
  156. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  157. package/dist/TreeList/TreeListItem.js +12 -2
  158. package/dist/TreeList/TreeListTypes.d.ts +8 -1
  159. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  160. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  161. package/dist/Typeahead/BaseTypeahead.js +16 -7
  162. package/dist/astryx.css +18 -7
  163. package/dist/hooks/scrollKeyboardDelegation.d.ts +3 -0
  164. package/dist/hooks/scrollKeyboardDelegation.d.ts.map +1 -0
  165. package/dist/hooks/scrollKeyboardDelegation.js +146 -0
  166. package/dist/hooks/useScrollableArea.d.ts +6 -2
  167. package/dist/hooks/useScrollableArea.d.ts.map +1 -1
  168. package/dist/hooks/useScrollableArea.js +17 -5
  169. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  170. package/dist/theme/generateThemeRules.js +10 -0
  171. package/dist/utils/interactionOverlay.stylex.d.ts +8 -0
  172. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  173. package/dist/utils/interactionOverlay.stylex.js +9 -0
  174. package/locales/af-ZA.json +530 -1
  175. package/locales/ar-SA.json +490 -1
  176. package/locales/ca-ES.json +514 -1
  177. package/locales/cs-CZ.json +498 -1
  178. package/locales/da-DK.json +522 -1
  179. package/locales/de-DE.json +522 -1
  180. package/locales/el-GR.json +498 -1
  181. package/locales/es-ES.json +510 -1
  182. package/locales/fi-FI.json +498 -1
  183. package/locales/fr-FR.json +534 -1
  184. package/locales/he-IL.json +498 -1
  185. package/locales/hu-HU.json +498 -1
  186. package/locales/it-IT.json +510 -1
  187. package/locales/ja-JP.json +490 -1
  188. package/locales/ko-KR.json +498 -1
  189. package/locales/nl-NL.json +534 -1
  190. package/locales/no-NO.json +510 -1
  191. package/locales/pl-PL.json +506 -1
  192. package/locales/pt-BR.json +506 -1
  193. package/locales/pt-PT.json +506 -1
  194. package/locales/ro-RO.json +506 -1
  195. package/locales/ru-RU.json +498 -1
  196. package/locales/sr-SP.json +498 -1
  197. package/locales/sv-SE.json +502 -1
  198. package/locales/tr-TR.json +498 -1
  199. package/locales/uk-UA.json +498 -1
  200. package/locales/vi-VN.json +502 -1
  201. package/locales/zh-CN.json +490 -1
  202. package/locales/zh-TW.json +490 -1
  203. package/package.json +19 -4
  204. package/src/BottomSheet/BottomSheet.doc.mjs +8 -1
  205. package/src/BottomSheet/BottomSheet.spec.md +46 -20
  206. package/src/BottomSheet/BottomSheet.test.tsx +6 -3
  207. package/src/BottomSheet/BottomSheet.tsx +3 -1
  208. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +195 -0
  209. package/src/BottomSheet/BottomSheetPanel.test.tsx +11 -1
  210. package/src/BottomSheet/BottomSheetPanel.tsx +49 -16
  211. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +344 -0
  212. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +17 -1
  213. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -29
  214. package/src/Button/__tests__/Button.a11y.renders.tsx +9 -2
  215. package/src/Button/__tests__/Button.a11y.states.ts +9 -0
  216. package/src/Chat/ChatComposer.doc.mjs +14 -0
  217. package/src/Chat/ChatComposer.spec.md +230 -0
  218. package/src/Chat/ChatComposer.test.tsx +57 -0
  219. package/src/Chat/ChatComposer.tsx +21 -9
  220. package/src/Chat/ChatComposerDrawer.doc.mjs +63 -5
  221. package/src/Chat/ChatComposerDrawer.spec.md +267 -0
  222. package/src/Chat/ChatComposerDrawer.test.tsx +81 -12
  223. package/src/Chat/ChatComposerDrawer.tsx +38 -9
  224. package/src/Chat/ChatComposerInput.doc.mjs +114 -26
  225. package/src/Chat/ChatComposerInput.spec.md +185 -0
  226. package/src/Chat/ChatComposerInput.test.tsx +113 -3
  227. package/src/Chat/ChatComposerInput.tsx +78 -13
  228. package/src/Chat/ChatComposerTokenElement.spec.md +152 -0
  229. package/src/Chat/ChatComposerTokenElement.test.tsx +85 -0
  230. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  231. package/src/Chat/ChatDictationButton.spec.md +160 -0
  232. package/src/Chat/ChatDictationButton.test.tsx +92 -27
  233. package/src/Chat/ChatDictationButton.tsx +8 -6
  234. package/src/Chat/ChatSendButton.test.tsx +1 -4
  235. package/src/Chat/ChatSendButton.tsx +1 -1
  236. package/src/Chat/index.ts +1 -0
  237. package/src/CheckboxInput/CheckboxInput.doc.mjs +11 -0
  238. package/src/CheckboxInput/CheckboxInput.test.tsx +34 -0
  239. package/src/CheckboxInput/CheckboxInput.tsx +21 -1
  240. package/src/ClickableCard/ClickableCard.test.tsx +102 -5
  241. package/src/Collapsible/Collapsible.doc.mjs +11 -0
  242. package/src/Collapsible/Collapsible.test.tsx +21 -0
  243. package/src/Collapsible/Collapsible.tsx +5 -0
  244. package/src/CommandPalette/CommandPaletteInput.tsx +6 -1
  245. package/src/ComplexSelector/ComplexSelector.tsx +6 -1
  246. package/src/DateInput/DateInput.tsx +6 -1
  247. package/src/DateInput/NativeDateField.tsx +24 -8
  248. package/src/DateInput/TouchDateField.tsx +6 -2
  249. package/src/DateRangeInput/DateRangeInput.tsx +6 -1
  250. package/src/DateTimeInput/DateTimeInput.tsx +6 -1
  251. package/src/DateTimeInput/TouchDateTimeField.tsx +6 -1
  252. package/src/DateTimeInput/nativePickerSegmentStyles.ts +24 -8
  253. package/src/Dialog/DialogHeader.doc.mjs +12 -0
  254. package/src/Dialog/DialogHeader.test.tsx +97 -0
  255. package/src/Dialog/DialogHeader.tsx +25 -3
  256. package/src/Dialog/modules/DialogHeader.spec.md +75 -38
  257. package/src/Field/InputClearButton.test.tsx +17 -3
  258. package/src/Field/InputClearButton.tsx +5 -2
  259. package/src/Field/PanelSearchInput.tsx +5 -2
  260. package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +1 -1
  261. package/src/FileInput/FileInput.tsx +11 -2
  262. package/src/Kbd/Kbd.doc.mjs +3 -3
  263. package/src/Kbd/Kbd.test.tsx +57 -1
  264. package/src/Kbd/Kbd.tsx +57 -37
  265. package/src/Layout/LayoutFooter.doc.mjs +17 -0
  266. package/src/Link/Link.doc.mjs +11 -0
  267. package/src/Link/Link.test.tsx +24 -0
  268. package/src/Link/Link.tsx +5 -0
  269. package/src/List/List.spec.md +200 -0
  270. package/src/Markdown/Markdown.doc.mjs +272 -0
  271. package/src/Markdown/Markdown.fr23.bench.ts +174 -0
  272. package/src/Markdown/Markdown.fr23.perf.test.ts +249 -0
  273. package/src/Markdown/Markdown.fr23.sampling.ts +49 -0
  274. package/src/Markdown/Markdown.helpers.perf.test.ts +489 -0
  275. package/src/Markdown/Markdown.public.test.ts +126 -3
  276. package/src/Markdown/Markdown.spec.md +197 -44
  277. package/src/Markdown/Markdown.test.tsx +11 -0
  278. package/src/Markdown/Markdown.tsx +414 -135
  279. package/src/Markdown/ast.test.ts +307 -0
  280. package/src/Markdown/ast.ts +337 -0
  281. package/src/Markdown/incremental.test.ts +12 -0
  282. package/src/Markdown/index.ts +37 -1
  283. package/src/Markdown/modules/remark.spec.md +269 -0
  284. package/src/Markdown/parser/index.ts +64 -0
  285. package/src/Markdown/parser.public.test.ts +103 -0
  286. package/src/Markdown/parser.ts +1180 -235
  287. package/src/Markdown/plugins/frontmatter.test.tsx +125 -0
  288. package/src/Markdown/plugins/frontmatter.ts +198 -0
  289. package/src/Markdown/plugins/index.ts +53 -0
  290. package/src/Markdown/plugins/protocol.test.tsx +1022 -0
  291. package/src/Markdown/plugins/protocol.ts +1618 -0
  292. package/src/Markdown/plugins/semanticFence.test.tsx +546 -0
  293. package/src/Markdown/plugins/semanticFence.ts +424 -0
  294. package/src/Markdown/plugins/sourceDecoration.test.tsx +799 -0
  295. package/src/Markdown/plugins/sourceDecoration.ts +539 -0
  296. package/src/Markdown/plugins/textTransform.test.ts +467 -0
  297. package/src/Markdown/plugins/textTransform.ts +554 -0
  298. package/src/Markdown/remark.test.tsx +1877 -0
  299. package/src/Markdown/remark.ts +1574 -0
  300. package/src/Markdown/url.ts +30 -0
  301. package/src/Markdown/utils.ts +13 -1
  302. package/src/MultiSelector/MultiSelector.test.tsx +1 -35
  303. package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +128 -0
  304. package/src/NumberInput/NumberInput.tsx +6 -1
  305. package/src/Outline/Outline.doc.mjs +7 -5
  306. package/src/Outline/Outline.spec.md +1 -1
  307. package/src/Outline/index.ts +1 -0
  308. package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +142 -0
  309. package/src/Outline/parseOutlineFromMarkdown.ts +40 -10
  310. package/src/Outline/useOutlineFromMarkdown.ts +15 -3
  311. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  312. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +150 -1
  313. package/src/PowerSearch/PowerSearchEditPopover.tsx +51 -28
  314. package/src/ProgressBar/ProgressBar.test.tsx +29 -11
  315. package/src/ProgressBar/ProgressBar.tsx +59 -72
  316. package/src/RadioList/RadioList.doc.mjs +11 -0
  317. package/src/RadioList/RadioList.test.tsx +32 -0
  318. package/src/RadioList/RadioListItem.tsx +25 -1
  319. package/src/ScrollableArea/modules/useScrollableArea.spec.md +50 -22
  320. package/src/SegmentedControl/SegmentedControl.doc.mjs +2 -2
  321. package/src/SegmentedControl/SegmentedControl.test.tsx +31 -0
  322. package/src/SegmentedControl/SegmentedControlItem.tsx +6 -9
  323. package/src/Selector/Selector.doc.mjs +2 -2
  324. package/src/Selector/Selector.spec.md +51 -49
  325. package/src/Selector/Selector.test.tsx +61 -55
  326. package/src/Selector/Selector.tsx +23 -14
  327. package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +130 -0
  328. package/src/Selector/__tests__/Listbox.a11y.dom.ts +38 -0
  329. package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +63 -0
  330. package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +37 -0
  331. package/src/Selector/__tests__/Listbox.a11y.states.ts +232 -0
  332. package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +121 -0
  333. package/src/SideNav/SideNav.doc.mjs +1 -1
  334. package/src/SideNav/SideNav.test.tsx +10 -0
  335. package/src/SideNav/SideNav.tsx +14 -2
  336. package/src/Slider/Slider.doc.mjs +17 -3
  337. package/src/Slider/Slider.test.tsx +221 -0
  338. package/src/Slider/Slider.tsx +40 -9
  339. package/src/Spinner/Spinner.test.tsx +4 -0
  340. package/src/Spinner/Spinner.tsx +31 -18
  341. package/src/Switch/Switch.doc.mjs +11 -0
  342. package/src/Switch/Switch.test.tsx +16 -0
  343. package/src/Switch/Switch.tsx +28 -0
  344. package/src/TabList/Tab.tsx +35 -7
  345. package/src/TabList/TabList.doc.mjs +11 -0
  346. package/src/TabList/TabList.spec.md +204 -0
  347. package/src/TabList/TabList.test.tsx +66 -0
  348. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +1 -34
  349. package/src/Table/Table.doc.mjs +1 -1
  350. package/src/Table/Table.spec.md +54 -40
  351. package/src/Table/Table.test.tsx +83 -10
  352. package/src/Table/Table.tsx +30 -22
  353. package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +137 -0
  354. package/src/TextArea/TextArea.tsx +6 -1
  355. package/src/TextInput/TextInput.test.tsx +20 -1
  356. package/src/TextInput/TextInput.tsx +6 -1
  357. package/src/TimeInput/TimeInput.tsx +6 -1
  358. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  359. package/src/ToggleButton/ToggleButton.test.tsx +299 -4
  360. package/src/ToggleButton/ToggleButton.tsx +26 -33
  361. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +3 -3
  362. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +209 -0
  363. package/src/Tokenizer/Tokenizer.spec.md +142 -75
  364. package/src/TreeList/TreeList.doc.mjs +3 -3
  365. package/src/TreeList/TreeList.spec.md +123 -75
  366. package/src/TreeList/TreeList.test.tsx +29 -0
  367. package/src/TreeList/TreeList.tsx +3 -0
  368. package/src/TreeList/TreeListItem.tsx +15 -1
  369. package/src/TreeList/TreeListTypes.ts +11 -1
  370. package/src/Typeahead/BaseTypeahead.spec.md +4 -3
  371. package/src/Typeahead/BaseTypeahead.tsx +21 -7
  372. package/src/Typeahead/Typeahead.test.tsx +53 -0
  373. package/src/__tests__/PressedState.a11y.chromium.spec.ts +813 -0
  374. package/src/__tests__/pressState.ts +93 -0
  375. package/src/hooks/scrollKeyboardDelegation.test.ts +155 -0
  376. package/src/hooks/scrollKeyboardDelegation.ts +233 -0
  377. package/src/hooks/useScrollableArea.doc.mjs +15 -3
  378. package/src/hooks/useScrollableArea.test.tsx +59 -1
  379. package/src/hooks/useScrollableArea.ts +34 -10
  380. package/src/inputFontFloor.test.ts +106 -0
  381. package/src/tailwind-theme.css +0 -6
  382. package/src/theme/generateThemeRules.test.ts +30 -0
  383. package/src/theme/generateThemeRules.ts +10 -0
  384. package/src/utils/interactionOverlay.stylex.ts +20 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @file frontmatter.ts
3
+ * @input Document-start frontmatter delimiters and a typed metadata decoder
4
+ * @output A Markdown plugin plus a typed metadata reader for later transforms
5
+ * @position Optional first-party document metadata helper
6
+ */
7
+ import type { MarkdownAstRoot } from '../ast';
8
+ import { type MarkdownExtensionNode, type MarkdownPluginData, type MarkdownPluginEntry } from './protocol';
9
+ type FrontmatterRecord = Readonly<Record<string, string>>;
10
+ export interface MarkdownFrontmatterOptions<Metadata extends MarkdownPluginData> {
11
+ /** Stable plugin and metadata namespace. */
12
+ readonly name: string;
13
+ /** Converts validated key/value fields into typed document metadata. */
14
+ readonly parse: (fields: FrontmatterRecord) => Metadata;
15
+ }
16
+ export type MarkdownFrontmatterParseResult<Metadata extends MarkdownPluginData> = {
17
+ readonly status: 'none';
18
+ } | {
19
+ readonly status: 'defer';
20
+ } | {
21
+ readonly status: 'match';
22
+ readonly contentStart: number;
23
+ readonly metadata: Metadata;
24
+ };
25
+ export interface MarkdownFrontmatter<Metadata extends MarkdownPluginData> {
26
+ readonly plugin: MarkdownPluginEntry<never>;
27
+ parse(source: string, isFinal?: boolean): MarkdownFrontmatterParseResult<Metadata>;
28
+ getMetadata(document: MarkdownAstRoot<MarkdownExtensionNode>): Metadata | undefined;
29
+ }
30
+ export declare function createMarkdownFrontmatter<Metadata extends MarkdownPluginData>(options: MarkdownFrontmatterOptions<Metadata>): MarkdownFrontmatter<Metadata>;
31
+ export {};
32
+ //# sourceMappingURL=frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/frontmatter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAMpB,KAAK,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAO1D,MAAM,WAAW,0BAA0B,CACzC,QAAQ,SAAS,kBAAkB;IAEnC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,QAAQ,CAAC;CACzD;AAED,MAAM,MAAM,8BAA8B,CACxC,QAAQ,SAAS,kBAAkB,IAEjC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACzB;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,kBAAkB;IACtE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5C,WAAW,CACT,QAAQ,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC/C,QAAQ,GAAG,SAAS,CAAC;CACzB;AAkED,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,kBAAkB,EAC3E,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC5C,mBAAmB,CAAC,QAAQ,CAAC,CAoE/B"}
@@ -0,0 +1,132 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file frontmatter.ts
5
+ * @input Document-start frontmatter delimiters and a typed metadata decoder
6
+ * @output A Markdown plugin plus a typed metadata reader for later transforms
7
+ * @position Optional first-party document metadata helper
8
+ */
9
+
10
+ import { createMarkdownPlugin, freezeMarkdownPluginData, isMarkdownPluginData, markMarkdownTransformTrusted } from "./protocol.js";
11
+ const ENVELOPE_KEY = 'astryx:frontmatter';
12
+ const ENVELOPE_BRAND = 'astryx.markdown.frontmatter';
13
+ const ENVELOPE_VERSION = 1;
14
+ function asDataRecord(value) {
15
+ return value != null && typeof value === 'object' && !Array.isArray(value) ? value : {};
16
+ }
17
+ function parseEnvelope(value) {
18
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
19
+ return;
20
+ }
21
+ const candidate = value;
22
+ return candidate.brand === ENVELOPE_BRAND && candidate.version === ENVELOPE_VERSION && candidate.values != null && typeof candidate.values === 'object' && !Array.isArray(candidate.values) ? candidate : undefined;
23
+ }
24
+ function readFrontmatter(source) {
25
+ const openingLength = source.startsWith('---\r\n') ? 5 : source.startsWith('---\n') ? 4 : 0;
26
+ if (openingLength === 0) {
27
+ return {
28
+ status: 'none'
29
+ };
30
+ }
31
+ const body = source.slice(openingLength);
32
+ const close = /(?:^|\r?\n)---(?=\r?\n|$)/.exec(body);
33
+ if (close == null) {
34
+ return {
35
+ status: 'defer'
36
+ };
37
+ }
38
+ const fields = Object.create(null);
39
+ for (const line of body.slice(0, close.index).split(/\r?\n/)) {
40
+ if (line.trim() === '') {
41
+ continue;
42
+ }
43
+ const separator = line.indexOf(':');
44
+ const key = line.slice(0, separator).trim();
45
+ if (separator <= 0 || key === '' || Object.hasOwn(fields, key)) {
46
+ return {
47
+ status: 'none'
48
+ };
49
+ }
50
+ fields[key] = line.slice(separator + 1).trim();
51
+ }
52
+ let end = openingLength + close.index + close[0].length;
53
+ if (source.startsWith('\r\n', end)) {
54
+ end += 2;
55
+ } else if (source[end] === '\n') {
56
+ end += 1;
57
+ }
58
+ return {
59
+ status: 'match',
60
+ end,
61
+ fields: Object.freeze(fields)
62
+ };
63
+ }
64
+ export function createMarkdownFrontmatter(options) {
65
+ if (options.name.trim() === '') {
66
+ throw new TypeError('Markdown frontmatter name must be non-empty');
67
+ }
68
+ const name = options.name;
69
+ const parse = (source, isFinal = true) => {
70
+ const parsed = readFrontmatter(source);
71
+ if (parsed.status === 'defer') {
72
+ return isFinal ? {
73
+ status: 'none'
74
+ } : parsed;
75
+ }
76
+ if (parsed.status === 'none') {
77
+ return parsed;
78
+ }
79
+ const metadata = options.parse(parsed.fields);
80
+ if (!isMarkdownPluginData(metadata)) {
81
+ throw new TypeError('Markdown frontmatter metadata must be finite JSON-like data');
82
+ }
83
+ return {
84
+ status: 'match',
85
+ contentStart: parsed.end,
86
+ metadata: freezeMarkdownPluginData(metadata)
87
+ };
88
+ };
89
+ const transform = (document, context) => {
90
+ const parsed = parse(context.source, context.isFinal);
91
+ if (parsed.status === 'none') {
92
+ return document;
93
+ }
94
+ if (parsed.status === 'defer') {
95
+ return {
96
+ ...document,
97
+ children: []
98
+ };
99
+ }
100
+ const documentData = asDataRecord(document.data);
101
+ const prior = parseEnvelope(documentData[ENVELOPE_KEY]);
102
+ const envelope = Object.freeze({
103
+ brand: ENVELOPE_BRAND,
104
+ version: ENVELOPE_VERSION,
105
+ values: Object.freeze({
106
+ ...prior?.values,
107
+ [name]: parsed.metadata
108
+ })
109
+ });
110
+ return {
111
+ ...document,
112
+ data: Object.freeze({
113
+ ...documentData,
114
+ [ENVELOPE_KEY]: envelope
115
+ }),
116
+ children: document.children.filter(node => (node.position?.end.offset ?? Infinity) > parsed.contentStart)
117
+ };
118
+ };
119
+ const plugin = createMarkdownPlugin({
120
+ name,
121
+ apiVersion: 1,
122
+ transform: markMarkdownTransformTrusted(transform)
123
+ });
124
+ return Object.freeze({
125
+ plugin,
126
+ parse,
127
+ getMetadata(document) {
128
+ const data = asDataRecord(document.data);
129
+ return parseEnvelope(data[ENVELOPE_KEY])?.values[name];
130
+ }
131
+ });
132
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @file index.ts
3
+ * @output Public Markdown plugin protocol, factory, and types
4
+ * @position Subpath entry point: `@astryxdesign/core/Markdown/plugins`
5
+ */
6
+ export { createMarkdownPlugin, isMarkdownExtensionNode } from './protocol';
7
+ export { createMarkdownTextTransform } from './textTransform';
8
+ export type { MarkdownTextTransformContext, MarkdownTextTransformOptions, } from './textTransform';
9
+ export { createMarkdownFenceTransform } from './semanticFence';
10
+ export type { MarkdownFenceContext, MarkdownFenceNode, MarkdownFenceTransformOptions, } from './semanticFence';
11
+ export { createMarkdownSourceDecoration, getMarkdownSourceDecorations, } from './sourceDecoration';
12
+ export type { MarkdownSourceDecoration, MarkdownSourceDecorationOptions, MarkdownSourceDecorationRange, } from './sourceDecoration';
13
+ export { createMarkdownFrontmatter } from './frontmatter';
14
+ export type { MarkdownFrontmatter, MarkdownFrontmatterOptions, MarkdownFrontmatterParseResult, } from './frontmatter';
15
+ export type { MarkdownPluginData, MarkdownExtensionNode, MarkdownTokenizerInput, MarkdownTokenizeResult, MarkdownSyntaxContribution, MarkdownSyntaxCapability, MarkdownTransformContext, MarkdownTransform, MarkdownExtensionRenderer, MarkdownExtensionRenderers, MarkdownSyntaxPluginDefinition, MarkdownTransformPluginDefinition, MarkdownPluginDefinition, MarkdownPluginEntry, MarkdownNodeOf, MarkdownExtensionsOf, } from './protocol';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,iCAAiC,EACjC,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file index.ts
5
+ * @output Public Markdown plugin protocol, factory, and types
6
+ * @position Subpath entry point: `@astryxdesign/core/Markdown/plugins`
7
+ */
8
+
9
+ export { createMarkdownPlugin, isMarkdownExtensionNode } from "./protocol.js";
10
+ export { createMarkdownTextTransform } from "./textTransform.js";
11
+ export { createMarkdownFenceTransform } from "./semanticFence.js";
12
+ export { createMarkdownSourceDecoration, getMarkdownSourceDecorations } from "./sourceDecoration.js";
13
+ export { createMarkdownFrontmatter } from "./frontmatter.js";
@@ -0,0 +1,191 @@
1
+ /**
2
+ * @file protocol.ts
3
+ * @input Markdown plugin definitions, syntax tokenizers, immutable transforms, and renderers
4
+ * @output Public plugin protocol plus validated internal preparation and execution
5
+ * @position Shared Markdown extension boundary consumed by the parser and renderer
6
+ */
7
+ import type React from 'react';
8
+ import type { MarkdownAstDataValue, MarkdownAstExtensionNode, MarkdownAstNodeBase, MarkdownAstRoot } from '../ast';
9
+ export type MarkdownPluginData = MarkdownAstDataValue;
10
+ export type MarkdownExtensionNode<PluginName extends string = string, NodeName extends string = string, Data extends MarkdownPluginData = MarkdownPluginData, Display extends 'inline' | 'block' = 'inline' | 'block'> = MarkdownAstExtensionNode<PluginName, NodeName, Data, Display>;
11
+ export declare function isMarkdownExtensionNode<Node extends MarkdownExtensionNode>(node: MarkdownAstNodeBase & {
12
+ readonly type: string;
13
+ }, plugin: Node['plugin'], name: Node['name']): node is Node;
14
+ export interface MarkdownTokenizerInput {
15
+ readonly source: string;
16
+ /** UTF-16 offset into `source`. */
17
+ readonly offset: number;
18
+ /** Exclusive UTF-16 bound visible to this tokenizer. */
19
+ readonly end: number;
20
+ readonly isFinal: boolean;
21
+ readonly context: 'inline' | 'block';
22
+ readonly lineStart: number;
23
+ readonly column: number;
24
+ }
25
+ type ExtensionNodeWithoutProvenance<Node extends MarkdownExtensionNode> = Omit<Node, 'source' | 'position'>;
26
+ export type MarkdownTokenizeResult<Node extends MarkdownExtensionNode> = {
27
+ readonly status: 'no-match';
28
+ } | {
29
+ readonly status: 'defer';
30
+ } | {
31
+ readonly status: 'match';
32
+ readonly end: number;
33
+ readonly node: ExtensionNodeWithoutProvenance<Node>;
34
+ };
35
+ export interface MarkdownSyntaxContribution<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
36
+ readonly startsWith: readonly [string, ...string[]];
37
+ /** Maximum UTF-16 span Core exposes from a candidate offset. */
38
+ readonly maxSpan: number;
39
+ tokenize(input: MarkdownTokenizerInput): MarkdownTokenizeResult<Node>;
40
+ }
41
+ type ExtensionForDisplay<Node extends MarkdownExtensionNode, Display extends 'inline' | 'block'> = Display extends Node['display'] ? Node & {
42
+ readonly display: Display;
43
+ } : never;
44
+ export interface MarkdownSyntaxCapability<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
45
+ readonly inline?: readonly [
46
+ MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'inline'>>,
47
+ ...MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'inline'>>[]
48
+ ];
49
+ readonly block?: readonly [
50
+ MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'block'>>,
51
+ ...MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'block'>>[]
52
+ ];
53
+ }
54
+ export interface MarkdownTransformContext {
55
+ readonly source: string;
56
+ readonly isFinal: boolean;
57
+ readonly display: 'inline' | 'block';
58
+ report(message: string): void;
59
+ }
60
+ /** @internal Reads the owning plugin name without expanding the public context. */
61
+ export declare function getMarkdownTransformPluginName(context: MarkdownTransformContext): string | undefined;
62
+ /**
63
+ * @internal The ownership facts a Core helper needs to validate the nodes a
64
+ * caller's callback handed it, without seeing the rest of the pipeline.
65
+ */
66
+ export interface MarkdownHelperOwnership {
67
+ readonly pluginName: string;
68
+ readonly hasRenderer: (nodeName: string) => boolean;
69
+ /** Whether source text still describes the current transform input. */
70
+ readonly sourceUnchanged: boolean;
71
+ }
72
+ /** @internal Reads this transform's ownership, when Core is running it. */
73
+ export declare function getMarkdownHelperOwnership(context: MarkdownTransformContext): MarkdownHelperOwnership | undefined;
74
+ declare const markdownTransformNode: unique symbol;
75
+ export interface MarkdownTransform<Node extends MarkdownExtensionNode = never> {
76
+ (document: MarkdownAstRoot<MarkdownExtensionNode>, context: MarkdownTransformContext): MarkdownAstRoot<MarkdownExtensionNode>;
77
+ readonly [markdownTransformNode]?: Node;
78
+ }
79
+ /**
80
+ * @internal Marks a Core-authored transform whose OUTPUT STRUCTURE is entirely
81
+ * Core-computed — it never inserts a caller-supplied node, never edits an
82
+ * existing node's meaning, provenance, or ownership, and never mutates its
83
+ * input. Core then skips the validation and immutability guards it applies to
84
+ * plugin-authored output, whose purpose is to contain untrusted structure.
85
+ *
86
+ * Only helpers in this package may be marked, and only when every node they
87
+ * emit is built here from validated inputs. A helper that inserts anything the
88
+ * caller supplied — the text helper's replacement nodes, for example — is NOT
89
+ * trusted: Core must still validate the tree it returns.
90
+ */
91
+ export declare function markMarkdownTransformTrusted(transform: MarkdownTransform<never>): MarkdownTransform<never>;
92
+ /** @internal Registers a cheap source-level claim check for a helper transform. */
93
+ export declare function markMarkdownTransformClaim<Node extends MarkdownExtensionNode = never>(transform: MarkdownTransform<Node>, claims: (source: string) => boolean): MarkdownTransform<Node>;
94
+ export interface MarkdownExtensionRenderer<Node extends MarkdownExtensionNode> {
95
+ /** Pure render callback. Hooks belong in components returned by this callback. */
96
+ readonly render: (props: {
97
+ node: Node;
98
+ }) => React.ReactNode;
99
+ readonly toText: (node: Node) => string;
100
+ }
101
+ export type MarkdownExtensionRenderers<Node extends MarkdownExtensionNode> = Readonly<{
102
+ [NodeName in Node['name']]: MarkdownExtensionRenderer<Extract<Node, {
103
+ name: NodeName;
104
+ }>>;
105
+ }>;
106
+ interface MarkdownPluginDefinitionBase<Name extends string> {
107
+ readonly name: Name;
108
+ readonly apiVersion: 1;
109
+ }
110
+ export interface MarkdownSyntaxPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name>> extends MarkdownPluginDefinitionBase<Name> {
111
+ readonly parseKey: string;
112
+ readonly syntax: MarkdownSyntaxCapability<Node>;
113
+ readonly transform?: MarkdownTransform<Node>;
114
+ readonly renderers: MarkdownExtensionRenderers<Node>;
115
+ }
116
+ export type MarkdownTransformPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name> = never> = MarkdownPluginDefinitionBase<Name> & {
117
+ readonly transform: MarkdownTransform<Node>;
118
+ readonly parseKey?: never;
119
+ readonly syntax?: never;
120
+ } & ([Node] extends [never] ? {
121
+ readonly renderers?: never;
122
+ } : {
123
+ readonly renderers: MarkdownExtensionRenderers<Node>;
124
+ });
125
+ export type MarkdownPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name> = never> = MarkdownSyntaxPluginDefinition<Name, Node> | MarkdownTransformPluginDefinition<Name, Node>;
126
+ declare const markdownPluginNode: unique symbol;
127
+ /** Opaque, covariant entry safe to store in heterogeneous plugin lists. */
128
+ export interface MarkdownPluginEntry<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
129
+ readonly name: string;
130
+ readonly apiVersion: 1;
131
+ readonly [markdownPluginNode]: Node;
132
+ }
133
+ export type MarkdownNodeOf<Entry> = Entry extends MarkdownPluginEntry<infer Node> ? Node : never;
134
+ export type MarkdownExtensionsOf<Plugins extends ReadonlyArray<MarkdownPluginEntry>> = MarkdownNodeOf<Plugins[number]>;
135
+ export declare function createMarkdownPlugin<const Name extends string, const Node extends MarkdownExtensionNode<Name>>(definition: MarkdownSyntaxPluginDefinition<Name, Node>): MarkdownPluginEntry<Node>;
136
+ export declare function createMarkdownPlugin<const Name extends string>(definition: MarkdownTransformPluginDefinition<Name, never>): MarkdownPluginEntry<never>;
137
+ export declare function createMarkdownPlugin<const Name extends string, const Node extends MarkdownExtensionNode<Name>>(definition: MarkdownTransformPluginDefinition<Name, Node>): MarkdownPluginEntry<Node>;
138
+ export interface PreparedSyntaxContribution {
139
+ readonly pluginName: string;
140
+ readonly display: 'inline' | 'block';
141
+ readonly contribution: MarkdownSyntaxContribution;
142
+ }
143
+ interface PreparedTransform {
144
+ readonly pluginName: string;
145
+ readonly transform: MarkdownTransform<MarkdownExtensionNode>;
146
+ readonly claims?: (source: string) => boolean;
147
+ /** Core-authored helper whose output needs no plugin-output validation. */
148
+ readonly trusted: boolean;
149
+ }
150
+ interface PreparedRenderer {
151
+ readonly pluginName: string;
152
+ readonly renderer: MarkdownExtensionRenderer<MarkdownExtensionNode>;
153
+ }
154
+ export interface PreparedMarkdownPlugins {
155
+ readonly entries: ReadonlyArray<MarkdownPluginEntry>;
156
+ readonly syntaxEntries: ReadonlyArray<MarkdownPluginEntry>;
157
+ readonly inlineByFirstCharacter: ReadonlyMap<string, ReadonlyArray<PreparedSyntaxContribution>>;
158
+ readonly blockByFirstCharacter: ReadonlyMap<string, ReadonlyArray<PreparedSyntaxContribution>>;
159
+ readonly transforms: ReadonlyArray<PreparedTransform>;
160
+ /** Whether any transform is plugin-authored and needs Core's guards. */
161
+ readonly hasUntrustedTransform: boolean;
162
+ readonly syntaxIdentity: string;
163
+ readonly renderers: ReadonlyMap<string, PreparedRenderer>;
164
+ }
165
+ export declare function prepareMarkdownPlugins(plugins: ReadonlyArray<MarkdownPluginEntry>): PreparedMarkdownPlugins | undefined;
166
+ export declare function isMarkdownPluginData(value: unknown, seen?: Set<object>): value is MarkdownPluginData;
167
+ export declare function freezeMarkdownPluginData<T extends MarkdownPluginData>(value: T): T;
168
+ /**
169
+ * @internal Validates and freezes phrasing nodes a Core helper's caller just
170
+ * authored, so the helper may put them straight into its output tree.
171
+ * applying exactly the rules `validateAst` applies to newly-introduced nodes:
172
+ * representable typed data only, no authored provenance, no foreign extension
173
+ * ownership, no unrenderable extension, revalidated destinations, no nested
174
+ * link, no block content, no cycles, and a bounded node count.
175
+ *
176
+ * A helper that validates and freezes its callback's output this way has
177
+ * nothing left for Core to check, because every other node it returns is one
178
+ * Core already validated. That is what lets such a helper run on the trusted
179
+ * path while keeping FR10 and FR11 intact.
180
+ *
181
+ * Returns the frozen nodes, or throws — the caller reports the failure
182
+ * through the ordinary transform failure path.
183
+ */
184
+ export declare function adoptMarkdownHelperNode(node: unknown, ownership: MarkdownHelperOwnership, insideLink?: boolean): void;
185
+ export declare function adoptMarkdownHelperNodes(nodes: ReadonlyArray<unknown>, ownership: MarkdownHelperOwnership, insideLink?: boolean): void;
186
+ export declare function reportMarkdownPluginFailure(pluginName: string, phase: 'syntax' | 'transform' | 'render', error: unknown): void;
187
+ export declare function applyMarkdownTransforms<Node extends MarkdownExtensionNode>(root: MarkdownAstRoot<Node>, plugins: PreparedMarkdownPlugins | undefined, source: string, isFinal: boolean, display: 'inline' | 'block'): MarkdownAstRoot<Node>;
188
+ export declare function getMarkdownExtensionRenderer(plugins: PreparedMarkdownPlugins | undefined, node: MarkdownExtensionNode): MarkdownExtensionRenderer<MarkdownExtensionNode> | undefined;
189
+ export declare function markdownExtensionText(plugins: PreparedMarkdownPlugins | undefined, node: MarkdownExtensionNode): string;
190
+ export {};
191
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/protocol.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EAEnB,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,EACpD,OAAO,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,IACrD,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAElE,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,qBAAqB,EACxE,IAAI,EAAE,mBAAmB,GAAG;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAC,EACnD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GACjB,IAAI,IAAI,IAAI,CAMd;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,8BAA8B,CAAC,IAAI,SAAS,qBAAqB,IAAI,IAAI,CAC5E,IAAI,EACJ,QAAQ,GAAG,UAAU,CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,IAAI,SAAS,qBAAqB,IACjE;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAC,GAC7B;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAEN,MAAM,WAAW,0BAA0B,CACzC,IAAI,SAAS,qBAAqB,GAAG,qBAAqB;IAE1D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,KAAK,mBAAmB,CACtB,IAAI,SAAS,qBAAqB,EAClC,OAAO,SAAS,QAAQ,GAAG,OAAO,IAChC,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,GAC/B,IAAI,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAClC,KAAK,CAAC;AAEV,MAAM,WAAW,wBAAwB,CACvC,IAAI,SAAS,qBAAqB,GAAG,qBAAqB;IAE1D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QACzB,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/D,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE;KACrE,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QACxB,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;KACpE,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAcD,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,wBAAwB,GAChC,MAAM,GAAG,SAAS,CAIpB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,uEAAuE;IACvE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,GAAG,SAAS,CAUrC;AAED,OAAO,CAAC,MAAM,qBAAqB,EAAE,OAAO,MAAM,CAAC;AAEnD,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,qBAAqB,GAAG,KAAK;IAC3E,CACE,QAAQ,EAAE,eAAe,CAAC,qBAAqB,CAAC,EAChD,OAAO,EAAE,wBAAwB,GAChC,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC1C,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC;CACzC;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAClC,iBAAiB,CAAC,KAAK,CAAC,CAQ1B;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CACxC,IAAI,SAAS,qBAAqB,GAAG,KAAK,EAE1C,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,GAClC,iBAAiB,CAAC,IAAI,CAAC,CAQzB;AAED,MAAM,WAAW,yBAAyB,CAAC,IAAI,SAAS,qBAAqB;IAC3E,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;QAAC,IAAI,EAAE,IAAI,CAAA;KAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;CACzC;AAED,MAAM,MAAM,0BAA0B,CAAC,IAAI,SAAS,qBAAqB,IACvE,QAAQ,CAAC;KACN,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,yBAAyB,CACnD,OAAO,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAC,CAAC,CAChC;CACF,CAAC,CAAC;AAEL,UAAU,4BAA4B,CAAC,IAAI,SAAS,MAAM;IACxD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B,CAC7C,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,qBAAqB,CAAC,IAAI,CAAC,CACxC,SAAQ,4BAA4B,CAAC,IAAI,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,iCAAiC,CAC3C,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,IAC9C,4BAA4B,CAAC,IAAI,CAAC,GAAG;IACvC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CACzB,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACrB;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAC,GAC5B;IAAC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,wBAAwB,CAClC,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,IAE9C,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,GAC1C,iCAAiC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAElD,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEhD,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB,CAClC,IAAI,SAAS,qBAAqB,GAAG,qBAAqB;IAE1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,IAC9B,KAAK,SAAS,mBAAmB,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE/D,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,aAAa,CAAC,mBAAmB,CAAC,IAChD,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AA0FpC,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAE9C,UAAU,EAAE,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,GACrD,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC7B,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAC5D,UAAU,EAAE,iCAAiC,CAAC,IAAI,EAAE,KAAK,CAAC,GACzD,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9B,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAE9C,UAAU,EAAE,iCAAiC,CAAC,IAAI,EAAE,IAAI,CAAC,GACxD,mBAAmB,CAAC,IAAI,CAAC,CAAC;AA2C7B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC;CACnD;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC3D,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAC1C,MAAM,EACN,aAAa,CAAC,0BAA0B,CAAC,CAC1C,CAAC;IACF,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CACzC,MAAM,EACN,aAAa,CAAC,0BAA0B,CAAC,CAC1C,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACtD,wEAAwE;IACxE,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3D;AAoCD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAC1C,uBAAuB,GAAG,SAAS,CA+FrC;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,KAAK,IAAI,kBAAkB,CA2B7B;AAED,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,kBAAkB,EACnE,KAAK,EAAE,CAAC,GACP,CAAC,CAQH;AAgnBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,uBAAuB,EAClC,UAAU,UAAQ,GACjB,IAAI,CAEN;AAkBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,uBAAuB,EAClC,UAAU,UAAQ,GACjB,IAAI,CAyJN;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,EACxC,KAAK,EAAE,OAAO,GACb,IAAI,CAWN;AAED,wBAAgB,uBAAuB,CAAC,IAAI,SAAS,qBAAqB,EACxE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAC3B,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,QAAQ,GAAG,OAAO,GAC1B,eAAe,CAAC,IAAI,CAAC,CAkHvB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,IAAI,EAAE,qBAAqB,GAC1B,yBAAyB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAE9D;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,IAAI,EAAE,qBAAqB,GAC1B,MAAM,CAWR"}