@astryx-vue/core 0.3.0 → 0.4.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.
- package/dist/AlertDialog/index.js +1 -1
- package/dist/{AlertDialog-RAVA_cT1.js → AlertDialog-C2inDZWG.js} +5 -5
- package/dist/AppShell/index.d.ts +1 -1
- package/dist/AppShell/index.js +1 -1
- package/dist/{AppShell-0wTvOo3H.js → AppShell-awAKicsc.js} +3 -3
- package/dist/Avatar/index.js +1 -1
- package/dist/{Avatar-pPZ4dI_s.js → Avatar-DXBjJ88C.js} +47 -34
- package/dist/AvatarGroup/index.d.ts +1 -1
- package/dist/AvatarGroup/index.js +1 -1
- package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-kpAeKLNq.js} +57 -13
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js +1 -1
- package/dist/{Banner-GbGxrqQO.js → Banner-BdvuyzAe.js} +71 -35
- package/dist/Blockquote/index.js +1 -1
- package/dist/Blockquote-DRoKdcxZ.js +27 -0
- package/dist/BottomSheet/index.d.ts +1 -1
- package/dist/BottomSheet/index.js +2 -2
- package/dist/{BottomSheet-pt7m4CvC.js → BottomSheet-B4sc3F1S.js} +286 -140
- package/dist/{BottomSheet-JYMB_Ofl.js → BottomSheet-m54uCMJN.js} +20 -4
- package/dist/Breadcrumbs/index.d.ts +2 -2
- package/dist/Breadcrumbs/index.js +2 -2
- package/dist/Breadcrumbs-D4ZzHEB0.js +223 -0
- package/dist/Button/index.d.ts +1 -1
- package/dist/Button/index.js +1 -1
- package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
- package/dist/ButtonGroup/index.d.ts +1 -1
- package/dist/ButtonGroup/index.js +1 -1
- package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
- package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
- package/dist/Calendar/index.d.ts +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/{Calendar-B7vIowKq.js → Calendar-CjK-JUDM.js} +5 -5
- package/dist/Card/index.d.ts +2 -2
- package/dist/Carousel/index.js +1 -1
- package/dist/{Carousel-CA8zpD9v.js → Carousel-D262qigj.js} +8 -8
- package/dist/Chat/index.d.ts +1 -1
- package/dist/Chat/index.js +1 -1
- package/dist/{Chat-Bmna9EOA.js → Chat-DD_mlIP3.js} +165 -101
- package/dist/CheckboxIndicator/index.js +1 -1
- package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
- package/dist/CheckboxInput/index.d.ts +1 -1
- package/dist/CheckboxInput/index.js +1 -1
- package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-D8vTmAMZ.js} +20 -12
- package/dist/CheckboxList/index.d.ts +1 -1
- package/dist/CheckboxList/index.js +1 -1
- package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-DCvHewHB.js} +155 -38
- package/dist/Citation/index.js +1 -1
- package/dist/{Citation-Djgwa0ko.js → Citation-C69BgxW3.js} +8 -3
- package/dist/ClickableCard/index.d.ts +1 -1
- package/dist/ClickableCard/index.js +1 -1
- package/dist/{ClickableCard-DUsC-j03.js → ClickableCard-ChAfiw9T.js} +9 -6
- package/dist/Code/index.d.ts +1 -1
- package/dist/Code/index.js +3 -3
- package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
- package/dist/{CodeBlock-D0BFubut.js → CodeBlock-DsbwTBiT.js} +8 -8
- package/dist/Collapsible/index.d.ts +1 -1
- package/dist/Collapsible/index.js +1 -1
- package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
- package/dist/CommandPalette/index.d.ts +1 -1
- package/dist/CommandPalette/index.js +1 -1
- package/dist/{CommandPalette-YHsUNg3V.js → CommandPalette-CZ7CZglZ.js} +147 -67
- package/dist/ComplexSelector/index.d.ts +1 -1
- package/dist/ComplexSelector/index.js +1 -1
- package/dist/{ComplexSelector-DWLdKPGI.js → ComplexSelector-CIz6DDmY.js} +114 -28
- package/dist/ContextMenu/index.d.ts +2 -2
- package/dist/ContextMenu/index.js +2 -2
- package/dist/{ContextMenu-Bq9b3Ti5.js → ContextMenu-CxoiRh_h.js} +297 -179
- package/dist/DateInput/index.d.ts +1 -1
- package/dist/DateInput/index.js +1 -1
- package/dist/{DateInput-DT518j5E.js → DateInput-C67HCOU-.js} +563 -72
- package/dist/DateRangeInput/index.d.ts +1 -1
- package/dist/DateRangeInput/index.js +1 -1
- package/dist/{DateRangeInput-Bqi5tlIA.js → DateRangeInput-Dsf5Tyf-.js} +91 -26
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.js +1 -1
- package/dist/DateTimeInput-tfM1y5nZ.js +562 -0
- package/dist/Dialog/index.d.ts +1 -1
- package/dist/Dialog/index.js +2 -2
- package/dist/{Dialog-BiOSKQso.js → Dialog-DT1GzCrB.js} +28 -11
- package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
- package/dist/Divider/index.d.ts +1 -1
- package/dist/Divider/index.js +1 -1
- package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
- package/dist/DropdownMenu/index.d.ts +2 -2
- package/dist/DropdownMenu/index.js +3 -3
- package/dist/{DropdownMenu-CoOQVlRp.js → DropdownMenu-C6wBC18g.js} +84 -56
- package/dist/{DropdownMenu-DEb2dSSP.js → DropdownMenu-G-pWSiBk.js} +479 -264
- package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
- package/dist/EmptyState/index.js +1 -1
- package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
- package/dist/Field/index.d.ts +4 -3
- package/dist/Field/index.js +4 -3
- package/dist/{Field-D5gUEGw4.js → Field-JIxT3xCh.js} +5 -4
- package/dist/FieldIcon-BFSHZEs_.js +40 -0
- package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-BbgLt4ug.js} +4 -4
- package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-CHqp1y3z.js} +13 -8
- package/dist/FieldStatus/index.d.ts +1 -1
- package/dist/FieldStatus/index.js +1 -1
- package/dist/{FieldStatus-MjY19ERl.js → FieldStatus-DaAB3TIt.js} +1 -1
- package/dist/FileInput/index.d.ts +1 -1
- package/dist/FileInput/index.js +1 -1
- package/dist/{FileInput-BpdiO1V8.js → FileInput-Bi1uty-F.js} +108 -31
- package/dist/FormLayout/index.d.ts +1 -1
- package/dist/FormLayout/index.js +1 -1
- package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
- package/dist/Heading/index.d.ts +1 -1
- package/dist/Heading/index.js +1 -1
- package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
- package/dist/HoverCard/index.js +1 -1
- package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
- package/dist/Icon/index.d.ts +4 -4
- package/dist/Icon/index.js +1 -1
- package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
- package/dist/IconButton/index.js +1 -1
- package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
- package/dist/Indicator/index.d.ts +2 -2
- package/dist/Indicator/index.js +2 -1
- package/dist/InputClearButton-CfSIqc-V.js +40 -0
- package/dist/InputGroup/index.d.ts +1 -1
- package/dist/InputGroup/index.js +2 -2
- package/dist/{InputGroup-CA03Smrs.js → InputGroup-D3F-QnET.js} +2 -2
- package/dist/InternationalizationProvider/index.d.ts +1 -1
- package/dist/InternationalizationProvider/index.js +1 -1
- package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-CVV5QDgp.js} +5 -9
- package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
- package/dist/Kbd/index.js +1 -1
- package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
- package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
- package/dist/LayerProvider/index.js +1 -1
- package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Layout/index.js +2 -2
- package/dist/{Layout-C6RHllr-.js → Layout-JJRCG7Mf.js} +1 -1
- package/dist/{LayoutPanel-DXOsaeQb.js → LayoutPanel-zM5vjrKS.js} +12 -8
- package/dist/Lightbox/index.js +1 -1
- package/dist/{Lightbox-DTF9EdTG.js → Lightbox-CjXhbDPc.js} +14 -12
- package/dist/Link/index.js +1 -1
- package/dist/{Link-BqHCtiyt.js → Link-ClNkTN1Q.js} +29 -12
- package/dist/List/index.d.ts +1 -1
- package/dist/List/index.js +2 -2
- package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
- package/dist/Markdown/index.d.ts +5 -2
- package/dist/Markdown/index.js +4 -2
- package/dist/Markdown/parser/index.d.ts +4 -0
- package/dist/Markdown/parser/index.js +2 -0
- package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
- package/dist/Markdown/plugin-protocol/index.js +107 -0
- package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
- package/dist/Markdown/plugin-renderer/index.js +42 -0
- package/dist/{Markdown-CvtN7HnF.js → Markdown-EIBrwQrb.js} +195 -524
- package/dist/MediaTheme-DlLqYhDy.js +433 -0
- package/dist/MetadataList/index.js +1 -1
- package/dist/{MetadataList-B-OelQlt.js → MetadataList-DLlSLX1n.js} +15 -7
- package/dist/MobileNav/index.js +1 -1
- package/dist/{MobileNavToggle-DxGz0xKA.js → MobileNavToggle-DgJYyzT6.js} +52 -17
- package/dist/MoreMenu/index.d.ts +1 -1
- package/dist/MoreMenu/index.js +1 -1
- package/dist/{MoreMenu-Dlb7MLlW.js → MoreMenu-C8BEt6-O.js} +74 -61
- package/dist/MultiSelector/index.d.ts +1 -1
- package/dist/MultiSelector/index.js +1 -1
- package/dist/MultiSelector-C7NCAtwW.js +1456 -0
- package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
- package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-DQXisuaX.js} +29 -26
- package/dist/NavItem/index.d.ts +1 -1
- package/dist/NavItem/index.js +2 -2
- package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
- package/dist/NavMenu/index.d.ts +1 -1
- package/dist/NavMenu/index.js +3 -3
- package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
- package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
- package/dist/NumberInput/index.d.ts +1 -1
- package/dist/NumberInput/index.js +1 -1
- package/dist/NumberInput-3u3NZWnv.js +727 -0
- package/dist/Outline/index.d.ts +2 -2
- package/dist/Outline/index.js +2 -2
- package/dist/{Outline-755h-lMP.js → Outline-8szj9eXu.js} +91 -6
- package/dist/OverflowList/index.d.ts +2 -2
- package/dist/OverflowList/index.js +1 -1
- package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BizpEwH8.js} +23 -6
- package/dist/Pagination/index.d.ts +1 -1
- package/dist/Pagination/index.js +1 -1
- package/dist/{Pagination-DqwNQFRp.js → Pagination-Cihr1CjD.js} +2 -2
- package/dist/PickerWheel-CSwUYfes.js +69 -0
- package/dist/Popover/index.d.ts +1 -1
- package/dist/Popover/index.js +1 -1
- package/dist/{Popover-DJf8POzL.js → Popover-78dFjTb9.js} +20 -15
- package/dist/PowerSearch/index.d.ts +1 -1
- package/dist/PowerSearch/index.js +1 -1
- package/dist/{PowerSearch-DvjiPqMZ.js → PowerSearch-BHx91ypY.js} +778 -590
- package/dist/ProgressBar/index.d.ts +1 -1
- package/dist/ProgressBar/index.js +1 -1
- package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
- package/dist/Radio/index.d.ts +1 -1
- package/dist/Radio/index.js +1 -1
- package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-DeSIRrgt.js} +94 -26
- package/dist/RadioList/index.d.ts +1 -1
- package/dist/RadioList/index.js +1 -1
- package/dist/{RadioList-xY1cwLdZ.js → RadioList-Co2lmetC.js} +57 -8
- package/dist/Resizable/index.d.ts +1 -1
- package/dist/Resizable/index.js +1 -1
- package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-DjLZ2pcq.js} +103 -50
- package/dist/ScrollableArea/index.d.ts +1 -1
- package/dist/ScrollableArea/index.js +1 -1
- package/dist/{ScrollableArea-D4dCJv9I.js → ScrollableArea-0u6RWtGG.js} +1 -1
- package/dist/SegmentedControl/index.d.ts +1 -1
- package/dist/SegmentedControl/index.js +1 -1
- package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
- package/dist/SelectableCard/index.d.ts +1 -1
- package/dist/SelectableCard/index.js +1 -1
- package/dist/{SelectableCard-Cku4dRzc.js → SelectableCard-BEqnhPaX.js} +16 -11
- package/dist/Selector/index.d.ts +1 -1
- package/dist/Selector/index.js +1 -1
- package/dist/Selector-swa3RNQI.js +1049 -0
- package/dist/SideNav/index.d.ts +1 -1
- package/dist/SideNav/index.js +1 -1
- package/dist/{SideNav-BF8mYDxl.js → SideNav-BH6XKsW2.js} +56 -42
- package/dist/Slider/index.d.ts +1 -1
- package/dist/Slider/index.js +1 -1
- package/dist/{Slider-DWobsPgm.js → Slider-DG2YXll8.js} +172 -46
- package/dist/Spinner/index.js +1 -1
- package/dist/Spinner-BY8iQz--.js +200 -0
- package/dist/Stack/index.js +2 -2
- package/dist/{Stack-CTsTFfar.js → Stack-Bb_h60t3.js} +1 -1
- package/dist/{Stack-kQlYbbL4.js → Stack-Bp-XN9J4.js} +12 -7
- package/dist/StatusDot/index.d.ts +1 -1
- package/dist/StatusDot/index.js +1 -1
- package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
- package/dist/Stepper/index.d.ts +1 -1
- package/dist/Stepper/index.js +1 -1
- package/dist/{Stepper-CE8dHysu.js → Stepper-FtkTq5qR.js} +127 -113
- package/dist/Switch/index.d.ts +1 -1
- package/dist/Switch/index.js +1 -1
- package/dist/{Switch-DaVPRxvN.js → Switch-0JKvJluV.js} +38 -22
- package/dist/TabList/index.d.ts +2 -2
- package/dist/TabList/index.js +1 -1
- package/dist/{TabList-DIkK9sgK.js → TabList-cpjvnbhx.js} +205 -63
- package/dist/Table/index.d.ts +3 -3
- package/dist/Table/index.js +1 -1
- package/dist/{Table-fecqnm7P.js → Table-fWs_ZQBF.js} +735 -461
- package/dist/Text/index.d.ts +1 -1
- package/dist/Text/index.js +1 -1
- package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
- package/dist/TextArea/index.d.ts +1 -1
- package/dist/TextArea/index.js +1 -1
- package/dist/{TextArea-Ab5Sw60T.js → TextArea-CwSfEjT1.js} +110 -50
- package/dist/TextInput/index.d.ts +1 -1
- package/dist/TextInput/index.js +1 -1
- package/dist/{TextInput-zFT1_qgI.js → TextInput-CavITage.js} +71 -38
- package/dist/Theme/index.d.ts +3 -3
- package/dist/Theme/index.js +3 -2
- package/dist/Theme-BbDT8B_C.js +2125 -0
- package/dist/Thumbnail/index.js +1 -1
- package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-DpJnaNbg.js} +17 -14
- package/dist/{TimeField-CoHDGmsP.js → TimeField-DefNjDIT.js} +297 -40
- package/dist/TimeInput/index.d.ts +1 -1
- package/dist/TimeInput/index.js +1 -1
- package/dist/{TimeInput-D2k3Ux3p.js → TimeInput-j5vzN8MG.js} +78 -9
- package/dist/Timer/index.js +1 -1
- package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
- package/dist/Timestamp/index.d.ts +1 -1
- package/dist/Timestamp/index.js +1 -1
- package/dist/{Timestamp-xpQKCk0d.js → Timestamp-dtT4yADD.js} +9 -9
- package/dist/Toast/index.d.ts +1 -1
- package/dist/Toast/index.js +1 -1
- package/dist/Toast-igtJYSw0.js +685 -0
- package/dist/ToggleButton/index.d.ts +1 -1
- package/dist/ToggleButton/index.js +1 -1
- package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
- package/dist/Token/index.d.ts +1 -1
- package/dist/Token/index.js +1 -1
- package/dist/{Token-DsntTYhQ.js → Token-DhsAtAH6.js} +32 -17
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.js +1 -1
- package/dist/{Tokenizer-B5C_qY7t.js → Tokenizer-BGdj78UK.js} +107 -23
- package/dist/Toolbar/index.d.ts +2 -2
- package/dist/Toolbar/index.js +1 -1
- package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.js +1 -1
- package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
- package/dist/TopNav/index.d.ts +1 -1
- package/dist/TopNav/index.js +1 -1
- package/dist/{TopNav-Ciq0l1w7.js → TopNav-Dw0m387B.js} +23 -22
- package/dist/TreeList/index.d.ts +1 -1
- package/dist/TreeList/index.js +1 -1
- package/dist/{TreeList-BUz-KZJd.js → TreeList-Bunn7u3T.js} +129 -46
- package/dist/Typeahead/index.d.ts +1 -1
- package/dist/Typeahead/index.js +2 -2
- package/dist/{Typeahead-JP9RT87x.js → Typeahead-DRyf2HEh.js} +123 -26
- package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BY5__sPC.js} +141 -51
- package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
- package/dist/characters-rcDbGt71.d.ts +29 -0
- package/dist/characters-wTnzjkkR.js +58 -0
- package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
- package/dist/composables/index.d.ts +5 -4
- package/dist/composables/index.js +23 -18
- package/dist/{composables-CbKx9C1Y.js → composables-CnsDaMuU.js} +167 -197
- package/dist/context-B6UElI5X.js +5 -0
- package/dist/context-CM-cjGg_.js +1425 -0
- package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
- package/dist/context-IvbU9c3T.js +8 -0
- package/dist/context-pjBxaMSh.js +28 -0
- package/dist/fieldParts--SyRZVQG.js +44 -0
- package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
- package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
- package/dist/hoverIntent-DMHGb85c.js +115 -0
- package/dist/{index-ClNU2Th8.d.ts → index-3t5RAfNP.d.ts} +6 -2
- package/dist/{index-B9e52paP.d.ts → index-5LVG3QyV.d.ts} +1 -1
- package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
- package/dist/{index-TXcNH86P.d.ts → index-B1eCxBCY.d.ts} +1 -1
- package/dist/{index-Cn-sSds-.d.ts → index-B1t1oQWH.d.ts} +24 -1
- package/dist/{index-BkjSF265.d.ts → index-BEZ4ezJk.d.ts} +3 -3
- package/dist/{index-yT1yiiww.d.ts → index-BI6jikpA.d.ts} +23 -11
- package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
- package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
- package/dist/{index-Crp3NFLW.d.ts → index-BZKgbyN9.d.ts} +1 -1
- package/dist/{index-Bu8NA2SD.d.ts → index-BaxM-pFP.d.ts} +12 -3
- package/dist/{index-BVKivP59.d.ts → index-Bgk1Rj2A.d.ts} +32 -3
- package/dist/index-BkUkm6Al.d.ts +11 -0
- package/dist/index-Bo-ofFyg.d.ts +166 -0
- package/dist/{index-B1WJxt-n.d.ts → index-C-tFz2Yx.d.ts} +17 -7
- package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
- package/dist/{index-CqE4Bf3Q.d.ts → index-C732aNMY.d.ts} +18 -4
- package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
- package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
- package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
- package/dist/index-CKUfpmFL.d.ts +375 -0
- package/dist/{index-CL1T2j4y.d.ts → index-CL8JvxHW.d.ts} +3 -3
- package/dist/{index-IBAInumL.d.ts → index-CMme-xmL.d.ts} +19 -6
- package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
- package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
- package/dist/{index-B42oE_F-.d.ts → index-CT5OEUxd.d.ts} +17 -4
- package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
- package/dist/{index-Cde5JvtX.d.ts → index-CUVmtB5-.d.ts} +13 -6
- package/dist/{index-DXpSFlPG.d.ts → index-CWaSYtk9.d.ts} +4 -4
- package/dist/{index-CVn0GBdB.d.ts → index-Ca8VIE4l.d.ts} +1 -1
- package/dist/{index-Cyb9Du5Z.d.ts → index-CfR2Z0uG.d.ts} +1 -1
- package/dist/{index-Byar3h1e.d.ts → index-D05JGsT3.d.ts} +6 -3
- package/dist/{index-hCpxKePE.d.ts → index-D5N9ikrS.d.ts} +1 -1
- package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
- package/dist/{index-i0tNFWfz.d.ts → index-D8lv2BiD.d.ts} +3 -1
- package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
- package/dist/{index-0QGtSf3r.d.ts → index-DFLPv9io.d.ts} +4 -3
- package/dist/{index-C2nbK2AA.d.ts → index-DLAG3m9W.d.ts} +13 -3
- package/dist/{index-D41_xqjs.d.ts → index-DTuhnqHb.d.ts} +16 -9
- package/dist/{index-B3Fomy15.d.ts → index-DbiZvj1P.d.ts} +4 -4
- package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
- package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
- package/dist/{index-BhpAUzUr.d.ts → index-Dy746dfn.d.ts} +1 -1
- package/dist/{index-GI9xIV9l.d.ts → index-JL4auphT.d.ts} +2 -2
- package/dist/{index-DVmgNb78.d.ts → index-TA1zVibb.d.ts} +4 -4
- package/dist/{index-DUaLJO7l.d.ts → index-UA93Im7H.d.ts} +155 -109
- package/dist/{index-COgrQZIL.d.ts → index-YKCx03zD.d.ts} +2 -2
- package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
- package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
- package/dist/{index-CICeEoZV.d.ts → index-pNtfr-RW.d.ts} +1 -1
- package/dist/{index-B4OOtNP8.d.ts → index-pYh4gqgl.d.ts} +1 -1
- package/dist/index.d.ts +81 -75
- package/dist/index.js +150 -136
- package/dist/inlineSize-BNe8wggI.js +66 -0
- package/dist/inputPresentation-BOyHkCDr.js +62 -0
- package/dist/interactionModality-ACpTMhak.js +44 -0
- package/dist/isApplePlatform-B1ju6F5B.js +27 -0
- package/dist/isRenderable-BnKHIqfd.js +21 -0
- package/dist/layerDepth-CNDh-IHb.js +181 -0
- package/dist/link-DuuA2eCL.js +30 -0
- package/dist/loadCatalog-CsZFr9dg.js +424 -0
- package/dist/loadCatalog-opk5hs94.d.ts +803 -0
- package/dist/locale/index.d.ts +2 -2
- package/dist/locale/index.js +4 -3
- package/dist/locale-D1Z3K290.js +343 -0
- package/dist/modalOutlet-CUOcrhIu.js +56 -0
- package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
- package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
- package/dist/protocol-DHxY0NI8.js +113 -0
- package/dist/protocol-DwUmpC5G.d.ts +240 -0
- package/dist/publicParser-B6XMcsB2.d.ts +141 -0
- package/dist/publicParser-DWUMCx7j.js +1437 -0
- package/dist/resizableChannel-3vivrEcT.js +20 -0
- package/dist/safeUrl-CsvfcZ9m.js +54 -0
- package/dist/scopedProvide-C-Df7c15.js +30 -0
- package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
- package/dist/scrollLock-C3aT4-0z.js +102 -0
- package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-DtyScdZs.js} +5 -14
- package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
- package/dist/slug-DAK6hdbr.js +17 -0
- package/dist/syntaxContext-DmIfNNtb.js +4 -0
- package/dist/triggerVariant-BsL8jMHs.js +16 -0
- package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
- package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
- package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
- package/dist/upstreamMap-ocuIRfI2.js +893 -0
- package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
- package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
- package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
- package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
- package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
- package/dist/{useIndicator-i1NORM7W.js → useIndicator-D9Y0dJsm.js} +5 -23
- package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
- package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-CWkCeMyX.js} +2 -2
- package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
- package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
- package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
- package/dist/useMenuHover-Djreu23i.js +170 -0
- package/dist/useMenuPress-8foxY8z4.js +764 -0
- package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
- package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
- package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
- package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
- package/dist/usePressFeedback-BJCpjEpv.js +319 -0
- package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
- package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
- package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
- package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
- package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
- package/dist/useScrollableArea-BE8b3qm7.js +222 -0
- package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
- package/dist/useTranslator-PEXMxDpv.js +35 -0
- package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +5 -0
- package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
- package/dist/utils-z3Q6BGIJ.js +819 -0
- package/locales/SOURCE.json +1 -1
- package/package.json +18 -2
- package/reset.css +364 -1
- package/styles/avatar-group.css +9 -1
- package/styles/badge.css +8 -5
- package/styles/banner.css +125 -26
- package/styles/blockquote.css +1 -0
- package/styles/bordered-control.css +1 -1
- package/styles/bottom-sheet.css +74 -6
- package/styles/breadcrumbs.css +16 -2
- package/styles/button-group.css +3 -1
- package/styles/button.css +53 -11
- package/styles/card.css +1 -1
- package/styles/chat.css +16 -6
- package/styles/checkbox-input.css +10 -0
- package/styles/clickable-card.css +10 -3
- package/styles/collapsible.css +12 -5
- package/styles/command-palette.css +29 -14
- package/styles/complex-selector.css +24 -5
- package/styles/context-menu.css +3 -3
- package/styles/date-input.css +111 -1
- package/styles/dialog-header.css +4 -1
- package/styles/dialog.css +7 -0
- package/styles/dropdown-menu.css +12 -3
- package/styles/field.css +5 -0
- package/styles/form-layout.css +1 -0
- package/styles/heading.css +18 -8
- package/styles/icon.css +9 -9
- package/styles/kbd.css +1 -1
- package/styles/layer.css +72 -0
- package/styles/list.css +9 -2
- package/styles/metadata-list.css +1 -0
- package/styles/mobile-nav.css +4 -1
- package/styles/multi-selector.css +48 -1
- package/styles/nav-item.css +9 -2
- package/styles/nav-menu.css +12 -2
- package/styles/number-input.css +9 -1
- package/styles/overflow-list.css +1 -1
- package/styles/popover.css +2 -1
- package/styles/power-search.css +5 -3
- package/styles/pressable.css +63 -22
- package/styles/progress-bar.css +15 -3
- package/styles/radio.css +16 -0
- package/styles/resize-handle.css +42 -0
- package/styles/segmented-control.css +12 -4
- package/styles/selector.css +53 -1
- package/styles/side-nav.css +19 -0
- package/styles/slider.css +4 -3
- package/styles/spinner.css +48 -42
- package/styles/stepper.css +58 -4
- package/styles/switch.css +26 -0
- package/styles/tab-list.css +132 -3
- package/styles/table.css +88 -11
- package/styles/text-area.css +7 -1
- package/styles/text-input.css +1 -1
- package/styles/text.css +6 -6
- package/styles/thumbnail.css +11 -3
- package/styles/time-input.css +8 -0
- package/styles/toast.css +37 -3
- package/styles/token.css +2 -2
- package/styles/tokenizer.css +1 -1
- package/styles/toolbar.css +4 -1
- package/styles/tree-list.css +1 -1
- package/styles/typeahead.css +34 -1
- package/styles.css +1 -0
- package/dist/Blockquote-DFqBv_oJ.js +0 -18
- package/dist/Breadcrumbs-DIm4figq.js +0 -141
- package/dist/ButtonGroup-ySQWanDP.js +0 -125
- package/dist/DateTimeInput-A7m2O3bg.js +0 -268
- package/dist/FieldIcon--NTgW5IU.js +0 -44
- package/dist/MultiSelector-BtAUfQ3t.js +0 -990
- package/dist/NumberInput-AZ9x3oja.js +0 -473
- package/dist/Selector-DJ2BhUTV.js +0 -677
- package/dist/Spinner-9cYUCnDy.js +0 -84
- package/dist/Theme-CtaUWo4g.js +0 -1246
- package/dist/Toast-BuqIZV5z.js +0 -322
- package/dist/context-4PuqD1Ic.js +0 -4
- package/dist/context-D5-MwxnN.js +0 -4
- package/dist/context-iABt_ueM.js +0 -976
- package/dist/index-BH9PzQ1F.d.ts +0 -87
- package/dist/link-C4_WogdF.js +0 -18
- package/dist/loadCatalog-BGHKG_9N.d.ts +0 -457
- package/dist/loadCatalog-CXKqEB9s.js +0 -877
- package/dist/locale-DgkZEMTn.js +0 -105
- package/dist/platform-B_9W_aHW.js +0 -33
- package/dist/scrollLock-BzIvIimL.js +0 -42
- package/dist/useMenuPress-D-FRNrBW.js +0 -573
- package/dist/useScrollableArea-DDk_CluT.js +0 -172
- /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
|
@@ -1,379 +1,23 @@
|
|
|
1
1
|
import { t as _sfc_main$1 } from "./VisuallyHidden-C7NN3VEP.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as _sfc_main$2 } from "./Heading-
|
|
4
|
-
import { t as _sfc_main$3 } from "./Blockquote-
|
|
5
|
-
import { t as _sfc_main$4 } from "./CheckboxIndicator-
|
|
6
|
-
import { t as useIndicator } from "./useIndicator-
|
|
7
|
-
import { d as _sfc_main$5, s as parseFenceLanguage, t as _sfc_main$6 } from "./CodeBlock-
|
|
8
|
-
import { t as _sfc_main$7 } from "./Link-
|
|
2
|
+
import { s as useAstryxMessages } from "./context-CM-cjGg_.js";
|
|
3
|
+
import { t as _sfc_main$2 } from "./Heading-BzBunfN7.js";
|
|
4
|
+
import { t as _sfc_main$3 } from "./Blockquote-DRoKdcxZ.js";
|
|
5
|
+
import { t as _sfc_main$4 } from "./CheckboxIndicator-fH4d-JE1.js";
|
|
6
|
+
import { t as useIndicator } from "./useIndicator-D9Y0dJsm.js";
|
|
7
|
+
import { d as _sfc_main$5, s as parseFenceLanguage, t as _sfc_main$6 } from "./CodeBlock-DsbwTBiT.js";
|
|
8
|
+
import { t as _sfc_main$7 } from "./Link-ClNkTN1Q.js";
|
|
9
|
+
import { _ as plainText, d as parseMarkdown, f as parseMarkdownIncremental, h as sanitizeMarkdownLinkUrl, l as applyProtocolTransforms, m as sanitizeMarkdownImageUrl, p as linkOpensInNewTab, s as applyMarkdownSyntax, u as createIncrementalMarkdownState } from "./publicParser-DWUMCx7j.js";
|
|
10
|
+
import { l as isMarkdownPluginEntry, t as collectProtocolRenderers, u as isMarkdownSourceLinesPlugin } from "./protocol-DHxY0NI8.js";
|
|
11
|
+
import { n as uniqueSlug, t as slugify } from "./slug-DAK6hdbr.js";
|
|
9
12
|
import { Fragment, computed, defineComponent, h, ref } from "vue";
|
|
10
|
-
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
11
|
-
import { gfmFromMarkdown } from "mdast-util-gfm";
|
|
12
|
-
import { gfm } from "micromark-extension-gfm";
|
|
13
13
|
import "../styles/markdown.css";
|
|
14
|
-
//#region src/Markdown/
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
function plainText(node) {
|
|
22
|
-
if (node.type === "text" || node.type === "inlineCode" || node.type === "code" || node.type === "html") return node.value ?? "";
|
|
23
|
-
if (node.type === "image" || node.type === "imageReference") return node.alt ?? node.label ?? "";
|
|
24
|
-
if (node.type === "footnoteReference") return node.label ?? node.identifier ?? "";
|
|
25
|
-
if (node.type === "break") return "\n";
|
|
26
|
-
return (node.children ?? []).map((child) => plainText(child)).join("");
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
29
|
-
//#region src/Markdown/blocks.ts
|
|
30
|
-
function splitSourceLines(source) {
|
|
31
|
-
if (source.length === 0) return [];
|
|
32
|
-
const lines = [];
|
|
33
|
-
let start = 0;
|
|
34
|
-
for (let index = 0; index < source.length; index++) {
|
|
35
|
-
if (source.charCodeAt(index) !== 10) continue;
|
|
36
|
-
const contentEnd = index > start && source.charCodeAt(index - 1) === 13 ? index - 1 : index;
|
|
37
|
-
lines.push({
|
|
38
|
-
text: source.slice(start, contentEnd),
|
|
39
|
-
start,
|
|
40
|
-
end: index + 1,
|
|
41
|
-
newline: true
|
|
42
|
-
});
|
|
43
|
-
start = index + 1;
|
|
44
|
-
}
|
|
45
|
-
if (start < source.length) lines.push({
|
|
46
|
-
text: source.slice(start),
|
|
47
|
-
start,
|
|
48
|
-
end: source.length,
|
|
49
|
-
newline: false
|
|
50
|
-
});
|
|
51
|
-
return lines;
|
|
52
|
-
}
|
|
53
|
-
function fenceOpener(text) {
|
|
54
|
-
const indent = /^ {0,3}/.exec(text);
|
|
55
|
-
const rest = text.slice(indent?.[0].length ?? 0);
|
|
56
|
-
const markerMatch = /^(`{3,}|~{3,})/.exec(rest);
|
|
57
|
-
if (markerMatch == null) return null;
|
|
58
|
-
const marker = markerMatch[1] ?? "";
|
|
59
|
-
const info = rest.slice(marker.length);
|
|
60
|
-
if (marker.startsWith("`") && info.includes("`")) return null;
|
|
61
|
-
const char = marker[0];
|
|
62
|
-
if (char == null) return null;
|
|
63
|
-
return {
|
|
64
|
-
char,
|
|
65
|
-
length: marker.length
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function isFenceClose(text, marker) {
|
|
69
|
-
const match = /^ {0,3}([`~]+)[ \t]*$/.exec(text);
|
|
70
|
-
if (match == null) return false;
|
|
71
|
-
const closing = match[1] ?? "";
|
|
72
|
-
return closing.length >= marker.length && [...closing].every((char) => char === marker.char);
|
|
73
|
-
}
|
|
74
|
-
function isAtxHeading(text) {
|
|
75
|
-
return /^ {0,3}#{1,6}(?:[ \t]|$)/.test(text);
|
|
76
|
-
}
|
|
77
|
-
function isThematicBreak(text) {
|
|
78
|
-
return /^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/.test(text);
|
|
79
|
-
}
|
|
80
|
-
function isSetextUnderline(text) {
|
|
81
|
-
return /^ {0,3}(?:=+|-+)[ \t]*$/.test(text);
|
|
82
|
-
}
|
|
83
|
-
function isListItem(text) {
|
|
84
|
-
return /^ {0,3}(?:[-+*]|\d{1,9}[.)])[ \t]/.test(text);
|
|
85
|
-
}
|
|
86
|
-
function isBlockquote(text) {
|
|
87
|
-
return /^ {0,3}>/.test(text);
|
|
88
|
-
}
|
|
89
|
-
function isBlank(text) {
|
|
90
|
-
return /^[ \t]*$/.test(text);
|
|
91
|
-
}
|
|
92
|
-
function isIndented(text) {
|
|
93
|
-
return /^[ \t]+\S/.test(text);
|
|
94
|
-
}
|
|
95
|
-
function continuesList(text) {
|
|
96
|
-
return isListItem(text) || isIndented(text);
|
|
97
|
-
}
|
|
98
|
-
function continuesQuote(text) {
|
|
99
|
-
return isBlockquote(text) || isIndented(text);
|
|
100
|
-
}
|
|
101
|
-
function hasUnsettledParagraph(lines, index, settled) {
|
|
102
|
-
const previous = lines[index - 1];
|
|
103
|
-
if (previous == null || isBlank(previous.text) || settled > previous.start) return false;
|
|
104
|
-
if (isAtxHeading(previous.text) || isListItem(previous.text) || isBlockquote(previous.text)) return false;
|
|
105
|
-
if (isThematicBreak(previous.text) || fenceOpener(previous.text) != null) return false;
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* End index of the prefix whose blocks can no longer change if text is only
|
|
110
|
-
* appended. The last open block stays after this index and is re-parsed.
|
|
111
|
-
* The index never moves backwards as `source` grows by appending.
|
|
112
|
-
*/
|
|
113
|
-
function findSettledEnd(source) {
|
|
114
|
-
const lines = splitSourceLines(source);
|
|
115
|
-
let settled = 0;
|
|
116
|
-
let container = "top";
|
|
117
|
-
let fence = null;
|
|
118
|
-
for (let index = 0; index < lines.length; index++) {
|
|
119
|
-
const line = lines[index];
|
|
120
|
-
if (line == null || !line.newline) return settled;
|
|
121
|
-
if (fence != null) {
|
|
122
|
-
if (isFenceClose(line.text, fence)) {
|
|
123
|
-
fence = null;
|
|
124
|
-
if (container === "top") settled = line.end;
|
|
125
|
-
}
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
const opener = fenceOpener(line.text);
|
|
129
|
-
if (opener != null) {
|
|
130
|
-
fence = opener;
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
if (container === "top" && isAtxHeading(line.text)) {
|
|
134
|
-
settled = line.end;
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
if (container === "top" && isSetextUnderline(line.text) && hasUnsettledParagraph(lines, index, settled)) {
|
|
138
|
-
settled = line.end;
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
if (container === "top" && isThematicBreak(line.text)) {
|
|
142
|
-
settled = line.end;
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
if (isBlank(line.text)) {
|
|
146
|
-
const next = lines[index + 1];
|
|
147
|
-
if (next == null || !next.newline) return settled;
|
|
148
|
-
if (container === "list" && continuesList(next.text)) continue;
|
|
149
|
-
if (container === "quote" && continuesQuote(next.text)) continue;
|
|
150
|
-
container = "top";
|
|
151
|
-
settled = line.end;
|
|
152
|
-
continue;
|
|
153
|
-
}
|
|
154
|
-
if (container === "top" && isListItem(line.text)) {
|
|
155
|
-
container = "list";
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
if (container === "top" && isBlockquote(line.text)) container = "quote";
|
|
159
|
-
}
|
|
160
|
-
return settled;
|
|
161
|
-
}
|
|
162
|
-
/** True when a fenced code block has been opened and not closed. */
|
|
163
|
-
function hasOpenFence(source) {
|
|
164
|
-
const lines = splitSourceLines(source);
|
|
165
|
-
let fence = null;
|
|
166
|
-
for (const line of lines) {
|
|
167
|
-
if (!line.newline) return fence != null || fenceOpener(line.text) != null;
|
|
168
|
-
if (fence != null) {
|
|
169
|
-
if (isFenceClose(line.text, fence)) fence = null;
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
const opener = fenceOpener(line.text);
|
|
173
|
-
if (opener != null) fence = opener;
|
|
174
|
-
}
|
|
175
|
-
return fence != null;
|
|
176
|
-
}
|
|
177
|
-
//#endregion
|
|
178
|
-
//#region src/Markdown/trim.ts
|
|
179
|
-
function isInsideCodeSpan(line, index) {
|
|
180
|
-
let open = false;
|
|
181
|
-
for (let cursor = 0; cursor < index; cursor++) if (line[cursor] === "`") open = !open;
|
|
182
|
-
return open;
|
|
183
|
-
}
|
|
184
|
-
function trimIncompleteLink(line) {
|
|
185
|
-
const image = line.lastIndexOf("![");
|
|
186
|
-
const bracket = line.lastIndexOf("[");
|
|
187
|
-
const start = Math.max(image, bracket);
|
|
188
|
-
if (start < 0 || isInsideCodeSpan(line, start)) return line;
|
|
189
|
-
const slice = line.slice(start);
|
|
190
|
-
if (/^!?\[[^\]]*\]\([^)]*\)$/.test(slice) || /^!?\[[^\]]*\]$/.test(slice)) return line;
|
|
191
|
-
if (/^!?\[[^\]]*\]\([^)]*$/.test(slice) || /^!?\[[^\]]*$/.test(slice)) return line.slice(0, start);
|
|
192
|
-
return line;
|
|
193
|
-
}
|
|
194
|
-
function markerRuns(line, char, maxLength) {
|
|
195
|
-
const runs = [];
|
|
196
|
-
for (let index = 0; index < line.length; index++) {
|
|
197
|
-
if (line[index] !== char) continue;
|
|
198
|
-
let length = 1;
|
|
199
|
-
while (line[index + length] === char) length += 1;
|
|
200
|
-
if (length <= maxLength) runs.push({
|
|
201
|
-
start: index,
|
|
202
|
-
length
|
|
203
|
-
});
|
|
204
|
-
index += length - 1;
|
|
205
|
-
}
|
|
206
|
-
return runs;
|
|
207
|
-
}
|
|
208
|
-
/** Pair equal-length marker runs and close or drop the ones left open. */
|
|
209
|
-
function closeRuns(line, char, maxLength) {
|
|
210
|
-
const runs = markerRuns(line, char, maxLength);
|
|
211
|
-
const openByLength = /* @__PURE__ */ new Map();
|
|
212
|
-
const closed = /* @__PURE__ */ new Set();
|
|
213
|
-
runs.forEach((run, index) => {
|
|
214
|
-
const stack = openByLength.get(run.length) ?? [];
|
|
215
|
-
const opener = stack.pop();
|
|
216
|
-
if (opener == null) {
|
|
217
|
-
stack.push(index);
|
|
218
|
-
openByLength.set(run.length, stack);
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
closed.add(opener);
|
|
222
|
-
closed.add(index);
|
|
223
|
-
openByLength.set(run.length, stack);
|
|
224
|
-
});
|
|
225
|
-
const openIndexes = runs.map((_, index) => index).filter((index) => !closed.has(index));
|
|
226
|
-
if (openIndexes.length === 0) return line;
|
|
227
|
-
let result = line;
|
|
228
|
-
for (const index of [...openIndexes].reverse()) {
|
|
229
|
-
const run = runs[index];
|
|
230
|
-
if (run == null) continue;
|
|
231
|
-
const after = result.slice(run.start + run.length);
|
|
232
|
-
if (after.trim() === "") {
|
|
233
|
-
result = result.slice(0, run.start) + result.slice(run.start + run.length);
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
const trailing = after.length - after.trimEnd().length;
|
|
237
|
-
const closer = char.repeat(run.length);
|
|
238
|
-
result = result.slice(0, result.length - trailing) + closer + result.slice(result.length - trailing);
|
|
239
|
-
}
|
|
240
|
-
return result;
|
|
241
|
-
}
|
|
242
|
-
function closeStrike(line) {
|
|
243
|
-
const positions = [];
|
|
244
|
-
let search = 0;
|
|
245
|
-
while (search < line.length) {
|
|
246
|
-
const found = line.indexOf("~~", search);
|
|
247
|
-
if (found === -1) break;
|
|
248
|
-
positions.push(found);
|
|
249
|
-
search = found + 2;
|
|
250
|
-
}
|
|
251
|
-
if (positions.length % 2 === 0) return line;
|
|
252
|
-
const start = positions[positions.length - 1];
|
|
253
|
-
if (start == null) return line;
|
|
254
|
-
const after = line.slice(start + 2);
|
|
255
|
-
if (after.trim() === "") return line.slice(0, start);
|
|
256
|
-
const trailing = after.length - after.trimEnd().length;
|
|
257
|
-
return `${line.slice(0, line.length - trailing)}~~${line.slice(line.length - trailing)}`;
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Hide unfinished link and code markers on the last line, and close emphasis
|
|
261
|
-
* that already has text so the words can render while the stream continues.
|
|
262
|
-
* An open fence is left untouched.
|
|
263
|
-
*/
|
|
264
|
-
function trimStreamingTail(tail) {
|
|
265
|
-
if (tail === "" || hasOpenFence(tail)) return tail;
|
|
266
|
-
const lastNewline = tail.lastIndexOf("\n");
|
|
267
|
-
const head = lastNewline === -1 ? "" : tail.slice(0, lastNewline + 1);
|
|
268
|
-
let line = lastNewline === -1 ? tail : tail.slice(lastNewline + 1);
|
|
269
|
-
line = trimIncompleteLink(line);
|
|
270
|
-
line = closeRuns(line, "`", Number.POSITIVE_INFINITY);
|
|
271
|
-
line = closeRuns(line, "*", 3);
|
|
272
|
-
line = closeStrike(line);
|
|
273
|
-
return head + line;
|
|
274
|
-
}
|
|
275
|
-
//#endregion
|
|
276
|
-
//#region src/Markdown/parse.ts
|
|
277
|
-
const markdownExtensions = [gfm(), { disable: { null: ["htmlFlow", "htmlText"] } }];
|
|
278
|
-
const mdastExtensions = [gfmFromMarkdown()];
|
|
279
|
-
function isAutolinkLiteral(node, source) {
|
|
280
|
-
if (node.type !== "link" || node.title != null && node.title !== "") return false;
|
|
281
|
-
const only = node.children?.length === 1 ? node.children[0] : null;
|
|
282
|
-
if (only == null || only.type !== "text" || only.value == null) return false;
|
|
283
|
-
const start = node.position?.start?.offset;
|
|
284
|
-
const end = node.position?.end?.offset;
|
|
285
|
-
if (start == null || end == null) return false;
|
|
286
|
-
const raw = source.slice(start, end);
|
|
287
|
-
if (raw.startsWith("<") || raw.startsWith("[")) return false;
|
|
288
|
-
return raw === only.value;
|
|
289
|
-
}
|
|
290
|
-
/** Turn bare autolinks back into text. Explicit links and `<url>` stay. */
|
|
291
|
-
function stripAutolinkLiterals(node, source) {
|
|
292
|
-
if (node.children == null) return node;
|
|
293
|
-
let changed = false;
|
|
294
|
-
const children = [];
|
|
295
|
-
for (const child of node.children) {
|
|
296
|
-
if (isAutolinkLiteral(child, source)) {
|
|
297
|
-
const start = child.position?.start?.offset ?? 0;
|
|
298
|
-
const end = child.position?.end?.offset ?? start;
|
|
299
|
-
children.push({
|
|
300
|
-
type: "text",
|
|
301
|
-
value: source.slice(start, end)
|
|
302
|
-
});
|
|
303
|
-
changed = true;
|
|
304
|
-
continue;
|
|
305
|
-
}
|
|
306
|
-
const next = stripAutolinkLiterals(child, source);
|
|
307
|
-
if (next !== child) changed = true;
|
|
308
|
-
children.push(next);
|
|
309
|
-
}
|
|
310
|
-
if (!changed) return node;
|
|
311
|
-
return {
|
|
312
|
-
...node,
|
|
313
|
-
children: mergeAdjacentText(children)
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
function mergeAdjacentText(children) {
|
|
317
|
-
const merged = [];
|
|
318
|
-
for (const child of children) {
|
|
319
|
-
const previous = merged[merged.length - 1];
|
|
320
|
-
if (previous?.type === "text" && child.type === "text") {
|
|
321
|
-
merged[merged.length - 1] = {
|
|
322
|
-
type: "text",
|
|
323
|
-
value: `${previous.value ?? ""}${child.value ?? ""}`
|
|
324
|
-
};
|
|
325
|
-
continue;
|
|
326
|
-
}
|
|
327
|
-
merged.push(child);
|
|
328
|
-
}
|
|
329
|
-
return merged;
|
|
330
|
-
}
|
|
331
|
-
function parseMarkdown(source, options) {
|
|
332
|
-
const root = fromMarkdown(source, {
|
|
333
|
-
extensions: markdownExtensions,
|
|
334
|
-
mdastExtensions
|
|
335
|
-
});
|
|
336
|
-
if (options?.autolink === "gfm") return root;
|
|
337
|
-
return stripAutolinkLiterals(root, source);
|
|
338
|
-
}
|
|
339
|
-
function createIncrementalMarkdownState() {
|
|
340
|
-
return {
|
|
341
|
-
settledEnd: 0,
|
|
342
|
-
settledSource: "",
|
|
343
|
-
blocks: []
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
function resetIncrementalState(state) {
|
|
347
|
-
state.settledEnd = 0;
|
|
348
|
-
state.settledSource = "";
|
|
349
|
-
state.blocks = [];
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Parse `source`, reusing the AST of every block that has already closed.
|
|
353
|
-
* Only the suffix after {@link findSettledEnd} is parsed again. When `source`
|
|
354
|
-
* is no longer an append of the previous value, the cache is dropped.
|
|
355
|
-
*/
|
|
356
|
-
function parseMarkdownIncremental(source, state, options) {
|
|
357
|
-
const settledPrefix = state.settledSource.slice(0, state.settledEnd);
|
|
358
|
-
if (settledPrefix.length > 0 && !source.startsWith(settledPrefix)) resetIncrementalState(state);
|
|
359
|
-
const end = findSettledEnd(source);
|
|
360
|
-
if (end < state.settledEnd) resetIncrementalState(state);
|
|
361
|
-
if (end > state.settledEnd) {
|
|
362
|
-
const slice = source.slice(state.settledEnd, end);
|
|
363
|
-
if (slice.trim() !== "") {
|
|
364
|
-
const children = parseMarkdown(slice, { autolink: options?.autolink }).children ?? [];
|
|
365
|
-
state.blocks = state.blocks.concat(children);
|
|
366
|
-
}
|
|
367
|
-
state.settledEnd = end;
|
|
368
|
-
}
|
|
369
|
-
state.settledSource = source;
|
|
370
|
-
const tail = source.slice(state.settledEnd);
|
|
371
|
-
const prepared = options?.trimTail === true ? trimStreamingTail(tail) : tail;
|
|
372
|
-
const tailBlocks = prepared.trim() === "" ? [] : parseMarkdown(prepared, { autolink: options?.autolink }).children ?? [];
|
|
373
|
-
return {
|
|
374
|
-
blocks: state.blocks.concat(tailBlocks),
|
|
375
|
-
settledCount: state.blocks.length
|
|
14
|
+
//#region src/Markdown/canonicalAst.ts
|
|
15
|
+
function visitMarkdownNodes(root, type, visitor) {
|
|
16
|
+
const visit = (node) => {
|
|
17
|
+
if (node.type === type) visitor(node);
|
|
18
|
+
if ("children" in node) for (const child of node.children) visit(child);
|
|
376
19
|
};
|
|
20
|
+
visit(root);
|
|
377
21
|
}
|
|
378
22
|
//#endregion
|
|
379
23
|
//#region src/Markdown/plugins.ts
|
|
@@ -491,22 +135,6 @@ function applyInlinePlugins(root, plugins) {
|
|
|
491
135
|
};
|
|
492
136
|
}
|
|
493
137
|
//#endregion
|
|
494
|
-
//#region src/Markdown/slug.ts
|
|
495
|
-
/** URL slug for a heading. Letters and numbers from any language are kept. */
|
|
496
|
-
function slugify(value) {
|
|
497
|
-
return value.trim().toLowerCase().replace(/['"]/g, "").replace(/[^\p{Letter}\p{Number}]+/gu, "-").replace(/^-+|-+$/g, "");
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* `setup`, then `setup-1`, then `setup-2`. An empty slug becomes `section`.
|
|
501
|
-
* One map covers a whole document.
|
|
502
|
-
*/
|
|
503
|
-
function uniqueSlug(baseSlug, counts) {
|
|
504
|
-
const slug = baseSlug === "" ? "section" : baseSlug;
|
|
505
|
-
const seen = counts.get(slug) ?? 0;
|
|
506
|
-
counts.set(slug, seen + 1);
|
|
507
|
-
return seen === 0 ? slug : `${slug}-${seen}`;
|
|
508
|
-
}
|
|
509
|
-
//#endregion
|
|
510
138
|
//#region src/Markdown/streaming.ts
|
|
511
139
|
/**
|
|
512
140
|
* Record the previous rendered length as a fade boundary.
|
|
@@ -563,91 +191,7 @@ function parseCssDuration(value) {
|
|
|
563
191
|
return null;
|
|
564
192
|
}
|
|
565
193
|
//#endregion
|
|
566
|
-
//#region src/Markdown/
|
|
567
|
-
function normalizeUrl(url) {
|
|
568
|
-
let result = "";
|
|
569
|
-
for (let index = 0; index < url.length; index += 1) {
|
|
570
|
-
const code = url.charCodeAt(index);
|
|
571
|
-
if (code <= 31 || code === 127) continue;
|
|
572
|
-
result += url[index];
|
|
573
|
-
}
|
|
574
|
-
return result.trim();
|
|
575
|
-
}
|
|
576
|
-
/** Lower-case the scheme and drop the spaces a browser ignores after `:`. */
|
|
577
|
-
function comparableUrl(normalized) {
|
|
578
|
-
return normalized.toLowerCase().replace(/^([a-z][a-z\d+.-]*:) +/, "$1");
|
|
579
|
-
}
|
|
580
|
-
function isBlockedNavigation(url) {
|
|
581
|
-
return url.startsWith("javascript:") || url.startsWith("vbscript:") || url.startsWith("data:text/html");
|
|
582
|
-
}
|
|
583
|
-
/**
|
|
584
|
-
* Navigation target with control characters removed.
|
|
585
|
-
* `javascript:`, `vbscript:`, and HTML `data:` URLs are dropped.
|
|
586
|
-
*/
|
|
587
|
-
function sanitizeMarkdownLinkUrl(url) {
|
|
588
|
-
const normalized = normalizeUrl(url);
|
|
589
|
-
if (normalized === "" || isBlockedNavigation(comparableUrl(normalized))) return null;
|
|
590
|
-
return normalized;
|
|
591
|
-
}
|
|
592
|
-
/**
|
|
593
|
-
* Image target. `data:` is rejected outright so an SVG payload cannot run.
|
|
594
|
-
*/
|
|
595
|
-
function sanitizeMarkdownImageUrl(url) {
|
|
596
|
-
const normalized = normalizeUrl(url);
|
|
597
|
-
if (normalized === "") return null;
|
|
598
|
-
const comparable = comparableUrl(normalized);
|
|
599
|
-
if (comparable.startsWith("javascript:") || comparable.startsWith("vbscript:") || comparable.startsWith("data:")) return null;
|
|
600
|
-
return normalized;
|
|
601
|
-
}
|
|
602
|
-
function linkOpensInNewTab(url) {
|
|
603
|
-
return /^https?:/i.test(url);
|
|
604
|
-
}
|
|
605
|
-
//#endregion
|
|
606
|
-
//#region src/Markdown/render.ts
|
|
607
|
-
function measureNode(node) {
|
|
608
|
-
switch (node.type) {
|
|
609
|
-
case "text":
|
|
610
|
-
case "inlineCode":
|
|
611
|
-
case "code":
|
|
612
|
-
case "html": return node.value?.length ?? 0;
|
|
613
|
-
case "image":
|
|
614
|
-
case "imageReference": return (node.alt ?? node.label ?? "").length;
|
|
615
|
-
case "break": return 1;
|
|
616
|
-
case "footnoteReference": return (node.label ?? node.identifier ?? "").length;
|
|
617
|
-
case "definition":
|
|
618
|
-
case "thematicBreak": return 0;
|
|
619
|
-
default: return (node.children ?? []).reduce((sum, child) => sum + measureNode(child), 0);
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
function assignHeadingSlugs(nodes) {
|
|
623
|
-
const counts = /* @__PURE__ */ new Map();
|
|
624
|
-
const slugs = /* @__PURE__ */ new Map();
|
|
625
|
-
const visit = (list) => {
|
|
626
|
-
for (const node of list) {
|
|
627
|
-
if (node.type === "heading") slugs.set(node, uniqueSlug(slugify(plainText(node)), counts));
|
|
628
|
-
if (node.children != null) visit(node.children);
|
|
629
|
-
}
|
|
630
|
-
};
|
|
631
|
-
visit(nodes);
|
|
632
|
-
return slugs;
|
|
633
|
-
}
|
|
634
|
-
function collectDefinitions(nodes) {
|
|
635
|
-
const definitions = /* @__PURE__ */ new Map();
|
|
636
|
-
const visit = (list) => {
|
|
637
|
-
for (const node of list) {
|
|
638
|
-
if (node.type === "definition" && node.identifier != null && node.url != null) definitions.set(node.identifier, {
|
|
639
|
-
url: node.url,
|
|
640
|
-
title: node.title
|
|
641
|
-
});
|
|
642
|
-
if (node.children != null) visit(node.children);
|
|
643
|
-
}
|
|
644
|
-
};
|
|
645
|
-
visit(nodes);
|
|
646
|
-
return definitions;
|
|
647
|
-
}
|
|
648
|
-
function headingLevel(depth, start) {
|
|
649
|
-
return Math.min(6, Math.max(1, depth + start - 1));
|
|
650
|
-
}
|
|
194
|
+
//#region src/Markdown/renderInline.ts
|
|
651
195
|
function renderPlainText(value, key, fade) {
|
|
652
196
|
const start = fade.offset;
|
|
653
197
|
fade.offset += value.length;
|
|
@@ -749,34 +293,11 @@ function renderCitation(id, key, start, ctx) {
|
|
|
749
293
|
target: linkOpensInNewTab(href) ? "_blank" : void 0
|
|
750
294
|
}, children);
|
|
751
295
|
}
|
|
752
|
-
function extensionRenderer(node, ctx) {
|
|
753
|
-
const owner = node.plugin;
|
|
754
|
-
if (owner == null) return null;
|
|
755
|
-
const block = ctx.plugins?.find((plugin) => plugin.name === owner && plugin.render != null);
|
|
756
|
-
if (block?.render != null) return block.render;
|
|
757
|
-
return (ctx.inlinePlugins?.find((plugin) => plugin.name === owner && plugin.render != null))?.render ?? null;
|
|
758
|
-
}
|
|
759
|
-
function renderExtension(node, key, ctx) {
|
|
760
|
-
const render = extensionRenderer(node, ctx);
|
|
761
|
-
if (render != null) {
|
|
762
|
-
const rendered = render(node, { renderChildren: () => renderChildren(node.children, key, ctx) });
|
|
763
|
-
if (rendered != null) return rendered;
|
|
764
|
-
}
|
|
765
|
-
if (node.value != null && node.value !== "") return renderText(node.value, key, ctx);
|
|
766
|
-
if (node.children != null && node.children.length > 0) return h(Fragment, { key }, renderChildren(node.children, key, ctx));
|
|
767
|
-
return null;
|
|
768
|
-
}
|
|
769
296
|
function fadeClass(start, fade) {
|
|
770
297
|
if (!fade.active || fade.boundaries.length === 0) return void 0;
|
|
771
298
|
const oldest = fade.boundaries[0];
|
|
772
299
|
return oldest != null && start >= oldest ? "astryx-markdown__fade" : void 0;
|
|
773
300
|
}
|
|
774
|
-
function renderChildren(nodes, key, ctx) {
|
|
775
|
-
return (nodes ?? []).flatMap((node, index) => {
|
|
776
|
-
const rendered = renderNode(node, `${key}-${index}`, ctx);
|
|
777
|
-
return rendered == null ? [] : [rendered];
|
|
778
|
-
});
|
|
779
|
-
}
|
|
780
301
|
function renderLink(href, key, children, title, ctx) {
|
|
781
302
|
const override = ctx.components?.link;
|
|
782
303
|
if (override != null) return h(override, {
|
|
@@ -796,6 +317,124 @@ function renderLink(href, key, children, title, ctx) {
|
|
|
796
317
|
}
|
|
797
318
|
}, () => children);
|
|
798
319
|
}
|
|
320
|
+
//#endregion
|
|
321
|
+
//#region src/Markdown/renderTree.ts
|
|
322
|
+
function measureNode(node) {
|
|
323
|
+
switch (node.type) {
|
|
324
|
+
case "text":
|
|
325
|
+
case "inlineCode":
|
|
326
|
+
case "code":
|
|
327
|
+
case "html": return node.value?.length ?? 0;
|
|
328
|
+
case "image":
|
|
329
|
+
case "imageReference": return (node.alt ?? node.label ?? "").length;
|
|
330
|
+
case "break": return 1;
|
|
331
|
+
case "footnoteReference": return (node.label ?? node.identifier ?? "").length;
|
|
332
|
+
case "definition":
|
|
333
|
+
case "thematicBreak": return 0;
|
|
334
|
+
default: return (node.children ?? []).reduce((sum, child) => sum + measureNode(child), 0);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
function assignHeadingSlugs(nodes) {
|
|
338
|
+
const counts = /* @__PURE__ */ new Map();
|
|
339
|
+
const slugs = /* @__PURE__ */ new Map();
|
|
340
|
+
const visit = (list) => {
|
|
341
|
+
for (const node of list) {
|
|
342
|
+
if (node.type === "heading") slugs.set(node, uniqueSlug(slugify(plainText(node)), counts));
|
|
343
|
+
if (node.children != null) visit(node.children);
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
visit(nodes);
|
|
347
|
+
return slugs;
|
|
348
|
+
}
|
|
349
|
+
function collectDefinitions(nodes) {
|
|
350
|
+
const definitions = /* @__PURE__ */ new Map();
|
|
351
|
+
const visit = (list) => {
|
|
352
|
+
for (const node of list) {
|
|
353
|
+
if (node.type === "definition" && node.identifier != null && node.url != null) definitions.set(node.identifier, {
|
|
354
|
+
url: node.url,
|
|
355
|
+
title: node.title
|
|
356
|
+
});
|
|
357
|
+
if (node.children != null) visit(node.children);
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
visit(nodes);
|
|
361
|
+
return definitions;
|
|
362
|
+
}
|
|
363
|
+
function slotText(nodes) {
|
|
364
|
+
if (nodes == null) return "";
|
|
365
|
+
return nodes.map((node) => {
|
|
366
|
+
if (typeof node.children === "string") return node.children;
|
|
367
|
+
return "";
|
|
368
|
+
}).join("");
|
|
369
|
+
}
|
|
370
|
+
//#endregion
|
|
371
|
+
//#region src/Markdown/render.ts
|
|
372
|
+
function headingLevel(depth, start) {
|
|
373
|
+
return Math.min(6, Math.max(1, depth + start - 1));
|
|
374
|
+
}
|
|
375
|
+
function sourceSpan(node, ctx) {
|
|
376
|
+
if (ctx.sourceLines !== true) return null;
|
|
377
|
+
const start = node.position?.start?.line;
|
|
378
|
+
if (start == null) return null;
|
|
379
|
+
return {
|
|
380
|
+
start,
|
|
381
|
+
end: node.position?.end?.line ?? start
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
function sourceLineAttrs(node, ctx) {
|
|
385
|
+
const span = sourceSpan(node, ctx);
|
|
386
|
+
if (span == null) return {};
|
|
387
|
+
return {
|
|
388
|
+
"data-source-line": String(span.start),
|
|
389
|
+
"data-source-line-end": String(span.end)
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
function sourceLineFields(node, ctx) {
|
|
393
|
+
const span = sourceSpan(node, ctx);
|
|
394
|
+
return span == null ? {} : { sourceLines: span };
|
|
395
|
+
}
|
|
396
|
+
function renderProtocol(node, ctx) {
|
|
397
|
+
if (node.plugin == null || node.name == null) return void 0;
|
|
398
|
+
const renderer = ctx.protocolRenderers?.get(`${node.plugin}\0${node.name}`);
|
|
399
|
+
if (renderer == null) return void 0;
|
|
400
|
+
const extension = node;
|
|
401
|
+
try {
|
|
402
|
+
const rendered = renderer.render({ node: extension });
|
|
403
|
+
if (typeof rendered === "string" || typeof rendered === "number") return rendered;
|
|
404
|
+
if (rendered != null && typeof rendered === "object") return rendered;
|
|
405
|
+
} catch {}
|
|
406
|
+
try {
|
|
407
|
+
return renderer.toText(extension);
|
|
408
|
+
} catch {
|
|
409
|
+
return node.source ?? node.value ?? "";
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
function extensionRenderer(node, ctx) {
|
|
413
|
+
const owner = node.plugin;
|
|
414
|
+
if (owner == null) return null;
|
|
415
|
+
const block = ctx.plugins?.find((plugin) => plugin.name === owner && plugin.render != null);
|
|
416
|
+
if (block?.render != null) return block.render;
|
|
417
|
+
return (ctx.inlinePlugins?.find((plugin) => plugin.name === owner && plugin.render != null))?.render ?? null;
|
|
418
|
+
}
|
|
419
|
+
function renderExtension(node, key, ctx) {
|
|
420
|
+
const protocol = renderProtocol(node, ctx);
|
|
421
|
+
if (protocol !== void 0) return protocol;
|
|
422
|
+
const render = extensionRenderer(node, ctx);
|
|
423
|
+
if (render != null) {
|
|
424
|
+
const rendered = render(node, { renderChildren: () => renderChildren(node.children, key, ctx) });
|
|
425
|
+
if (rendered != null) return rendered;
|
|
426
|
+
}
|
|
427
|
+
if (node.source != null && node.source !== "") return renderText(node.source, key, ctx);
|
|
428
|
+
if (node.value != null && node.value !== "") return renderText(node.value, key, ctx);
|
|
429
|
+
if (node.children != null && node.children.length > 0) return h(Fragment, { key }, renderChildren(node.children, key, ctx));
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
function renderChildren(nodes, key, ctx) {
|
|
433
|
+
return (nodes ?? []).flatMap((node, index) => {
|
|
434
|
+
const rendered = renderNode(node, `${key}-${index}`, ctx);
|
|
435
|
+
return rendered == null ? [] : [rendered];
|
|
436
|
+
});
|
|
437
|
+
}
|
|
799
438
|
function renderInline(node, key, ctx) {
|
|
800
439
|
switch (node.type) {
|
|
801
440
|
case "text": return renderText(node.value ?? "", key, ctx);
|
|
@@ -919,7 +558,8 @@ function renderList$1(node, key, ctx) {
|
|
|
919
558
|
if (override != null) return h(override, {
|
|
920
559
|
key,
|
|
921
560
|
ordered,
|
|
922
|
-
start
|
|
561
|
+
start,
|
|
562
|
+
...sourceLineFields(node, ctx)
|
|
923
563
|
}, () => renderedItems);
|
|
924
564
|
return h(ordered ? "ol" : "ul", {
|
|
925
565
|
key,
|
|
@@ -956,12 +596,14 @@ function renderListItem(node, key, taskList, marker, ctx) {
|
|
|
956
596
|
const body = renderItemBody(node, key, ctx);
|
|
957
597
|
if (!taskList && !isTaskItem(node)) return h("li", {
|
|
958
598
|
key,
|
|
959
|
-
class: "astryx-markdown__item"
|
|
599
|
+
class: "astryx-markdown__item",
|
|
600
|
+
...sourceLineAttrs(node, ctx)
|
|
960
601
|
}, [renderMarker(marker), h("div", { class: "astryx-markdown__item-body" }, body)]);
|
|
961
602
|
const checked = node.checked === true;
|
|
962
603
|
return h("li", {
|
|
963
604
|
key,
|
|
964
|
-
class: "astryx-markdown__task"
|
|
605
|
+
class: "astryx-markdown__task",
|
|
606
|
+
...sourceLineAttrs(node, ctx)
|
|
965
607
|
}, [h("span", { class: "astryx-markdown__task-check" }, [h(ctx.checkboxIndicator ?? _sfc_main$4, {
|
|
966
608
|
state: checked ? "checked" : "unchecked",
|
|
967
609
|
size: "sm"
|
|
@@ -982,24 +624,30 @@ function renderBlock(node, key, ctx) {
|
|
|
982
624
|
if (override != null) return h(override, {
|
|
983
625
|
key,
|
|
984
626
|
level,
|
|
985
|
-
id
|
|
627
|
+
id,
|
|
628
|
+
...sourceLineFields(node, ctx)
|
|
986
629
|
}, () => [...children, anchor]);
|
|
987
630
|
return h(_sfc_main$2, {
|
|
988
631
|
key,
|
|
989
632
|
level,
|
|
990
633
|
id,
|
|
991
634
|
class: "astryx-markdown__heading astryx-markdown__prose",
|
|
992
|
-
tabindex: -1
|
|
635
|
+
tabindex: -1,
|
|
636
|
+
...sourceLineAttrs(node, ctx)
|
|
993
637
|
}, () => [...children, anchor]);
|
|
994
638
|
}
|
|
995
639
|
case "paragraph": {
|
|
996
640
|
const children = renderChildren(node.children, key, ctx);
|
|
997
641
|
const imageOnly = (node.children ?? []).length === 1 && node.children?.[0]?.type === "image";
|
|
998
642
|
const override = ctx.components?.paragraph;
|
|
999
|
-
if (override != null) return h(override, {
|
|
643
|
+
if (override != null) return h(override, {
|
|
644
|
+
key,
|
|
645
|
+
...sourceLineFields(node, ctx)
|
|
646
|
+
}, () => children);
|
|
1000
647
|
if (ctx.inline) return h("span", {
|
|
1001
648
|
key,
|
|
1002
|
-
class: "astryx-markdown__paragraph"
|
|
649
|
+
class: "astryx-markdown__paragraph",
|
|
650
|
+
...sourceLineAttrs(node, ctx)
|
|
1003
651
|
}, children);
|
|
1004
652
|
return h("div", {
|
|
1005
653
|
key,
|
|
@@ -1008,7 +656,8 @@ function renderBlock(node, key, ctx) {
|
|
|
1008
656
|
"astryx-markdown__paragraph",
|
|
1009
657
|
"astryx-markdown__prose",
|
|
1010
658
|
imageOnly ? "astryx-markdown__paragraph--image" : null
|
|
1011
|
-
]
|
|
659
|
+
],
|
|
660
|
+
...sourceLineAttrs(node, ctx)
|
|
1012
661
|
}, children);
|
|
1013
662
|
}
|
|
1014
663
|
case "code": {
|
|
@@ -1020,27 +669,34 @@ function renderBlock(node, key, ctx) {
|
|
|
1020
669
|
if (override != null) return h(override, {
|
|
1021
670
|
key,
|
|
1022
671
|
code: value,
|
|
1023
|
-
language
|
|
672
|
+
language,
|
|
673
|
+
...sourceLineFields(node, ctx)
|
|
1024
674
|
}, () => value);
|
|
1025
675
|
const fence = parseFenceLanguage(language);
|
|
1026
676
|
return h("div", {
|
|
1027
677
|
key,
|
|
1028
|
-
class: ["astryx-markdown__code", fadeClass(start, ctx.fade)]
|
|
678
|
+
class: ["astryx-markdown__code", fadeClass(start, ctx.fade)],
|
|
679
|
+
...sourceLineAttrs(node, ctx)
|
|
1029
680
|
}, [h(_sfc_main$6, {
|
|
1030
681
|
code: value,
|
|
1031
682
|
language: fence.language,
|
|
1032
683
|
isDiff: fence.isDiff,
|
|
1033
684
|
width: "100%",
|
|
1034
|
-
isCollapsible: true
|
|
685
|
+
isCollapsible: true,
|
|
686
|
+
isWrapped: true
|
|
1035
687
|
})]);
|
|
1036
688
|
}
|
|
1037
689
|
case "blockquote": {
|
|
1038
690
|
const children = (node.children ?? []).map((child, index) => renderBlock(child, `${key}-${index}`, ctx)).filter((child) => child != null);
|
|
1039
691
|
const override = ctx.components?.blockquote;
|
|
1040
|
-
if (override != null) return h(override, {
|
|
692
|
+
if (override != null) return h(override, {
|
|
693
|
+
key,
|
|
694
|
+
...sourceLineFields(node, ctx)
|
|
695
|
+
}, () => children);
|
|
1041
696
|
return h(_sfc_main$3, {
|
|
1042
697
|
key,
|
|
1043
|
-
class: "astryx-markdown__blockquote astryx-markdown__prose"
|
|
698
|
+
class: "astryx-markdown__blockquote astryx-markdown__prose",
|
|
699
|
+
...sourceLineAttrs(node, ctx)
|
|
1044
700
|
}, () => children);
|
|
1045
701
|
}
|
|
1046
702
|
case "list": return renderList$1(node, key, ctx);
|
|
@@ -1064,18 +720,26 @@ function renderBlock(node, key, ctx) {
|
|
|
1064
720
|
}));
|
|
1065
721
|
const content = [header == null ? null : h("thead", { key: `${key}-head` }, [renderRow(header, `${key}-head-row`, "th")]), body.length === 0 ? null : h("tbody", { key: `${key}-body` }, body.map((row, index) => renderRow(row, `${key}-body-${index}`, "td")))].filter((child) => child != null);
|
|
1066
722
|
const override = ctx.components?.table;
|
|
1067
|
-
if (override != null) return h(override, {
|
|
723
|
+
if (override != null) return h(override, {
|
|
724
|
+
key,
|
|
725
|
+
...sourceLineFields(node, ctx)
|
|
726
|
+
}, () => content);
|
|
1068
727
|
return h("div", {
|
|
1069
728
|
key,
|
|
1070
|
-
class: "astryx-markdown__table-wrap"
|
|
729
|
+
class: "astryx-markdown__table-wrap",
|
|
730
|
+
...sourceLineAttrs(node, ctx)
|
|
1071
731
|
}, [h("table", { class: "astryx-markdown__table" }, content)]);
|
|
1072
732
|
}
|
|
1073
733
|
case "thematicBreak": {
|
|
1074
734
|
const override = ctx.components?.hr;
|
|
1075
|
-
if (override != null) return h(override, {
|
|
735
|
+
if (override != null) return h(override, {
|
|
736
|
+
key,
|
|
737
|
+
...sourceLineFields(node, ctx)
|
|
738
|
+
});
|
|
1076
739
|
return h("hr", {
|
|
1077
740
|
key,
|
|
1078
|
-
class: "astryx-markdown__hr"
|
|
741
|
+
class: "astryx-markdown__hr",
|
|
742
|
+
...sourceLineAttrs(node, ctx)
|
|
1079
743
|
});
|
|
1080
744
|
}
|
|
1081
745
|
case "footnoteDefinition": {
|
|
@@ -1114,15 +778,11 @@ function renderMarkdownBlocks(nodes, settledCount, ctx, cache) {
|
|
|
1114
778
|
for (const node of cache.keys()) if (!alive.has(node)) cache.delete(node);
|
|
1115
779
|
return vnodes;
|
|
1116
780
|
}
|
|
1117
|
-
function slotText(nodes) {
|
|
1118
|
-
if (nodes == null) return "";
|
|
1119
|
-
return nodes.map((node) => {
|
|
1120
|
-
if (typeof node.children === "string") return node.children;
|
|
1121
|
-
return "";
|
|
1122
|
-
}).join("");
|
|
1123
|
-
}
|
|
1124
781
|
//#endregion
|
|
1125
782
|
//#region src/Markdown/Markdown.vue
|
|
783
|
+
function isVueMarkdownPlugin(plugin) {
|
|
784
|
+
return !isMarkdownPluginEntry(plugin);
|
|
785
|
+
}
|
|
1126
786
|
function fadeSpanCount() {
|
|
1127
787
|
const fallback = 165;
|
|
1128
788
|
let duration = fallback;
|
|
@@ -1227,10 +887,19 @@ const _sfc_main = defineComponent({
|
|
|
1227
887
|
boundaries = [];
|
|
1228
888
|
previousLength = 0;
|
|
1229
889
|
} else boundaries = computeBoundaries(boundaries, previousLength, fadeSpanCount());
|
|
1230
|
-
const
|
|
890
|
+
const allPlugins = props.plugins ?? [];
|
|
891
|
+
const protocolPlugins = allPlugins.filter(isMarkdownPluginEntry);
|
|
892
|
+
const vuePlugins = allPlugins.filter(isVueMarkdownPlugin);
|
|
893
|
+
let rootNode = {
|
|
1231
894
|
type: "root",
|
|
1232
895
|
children: parsed.blocks
|
|
1233
|
-
}
|
|
896
|
+
};
|
|
897
|
+
if (protocolPlugins.length > 0) {
|
|
898
|
+
const isFinal = !props.isStreaming;
|
|
899
|
+
rootNode = applyMarkdownSyntax(rootNode, shown, protocolPlugins, isFinal);
|
|
900
|
+
rootNode = applyProtocolTransforms(rootNode, protocolPlugins, shown, isFinal);
|
|
901
|
+
}
|
|
902
|
+
const blocks = applyInlinePlugins(applyMarkdownPlugins(rootNode, vuePlugins), props.inlinePlugins).children ?? [];
|
|
1234
903
|
const ctx = {
|
|
1235
904
|
components: props.components,
|
|
1236
905
|
fade: {
|
|
@@ -1250,8 +919,10 @@ const _sfc_main = defineComponent({
|
|
|
1250
919
|
citationOrder: /* @__PURE__ */ new Map(),
|
|
1251
920
|
citationStyle: props.citationStyle ?? "label",
|
|
1252
921
|
citationLabel: messages.value.citation.label,
|
|
1253
|
-
plugins:
|
|
922
|
+
plugins: vuePlugins,
|
|
1254
923
|
inlinePlugins: props.inlinePlugins,
|
|
924
|
+
sourceLines: protocolPlugins.some(isMarkdownSourceLinesPlugin),
|
|
925
|
+
protocolRenderers: collectProtocolRenderers(protocolPlugins),
|
|
1255
926
|
checkboxIndicator: checkboxIndicator.value
|
|
1256
927
|
};
|
|
1257
928
|
const children = renderMarkdownBlocks(blocks, inline ? 0 : parsed.settledCount, ctx, cache);
|
|
@@ -1279,4 +950,4 @@ const _sfc_main = defineComponent({
|
|
|
1279
950
|
}
|
|
1280
951
|
});
|
|
1281
952
|
//#endregion
|
|
1282
|
-
export {
|
|
953
|
+
export { visitMarkdownNodes as a, defineMarkdownPlugin as i, applyInlinePlugins as n, applyMarkdownPlugins as r, _sfc_main as t };
|