@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,8 +1,71 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
1
|
+
import { r as resetLayerScopedContext } from "./scopedProvide-C-Df7c15.js";
|
|
2
|
+
import { a as isImeKeyEvent, i as pushLayer, n as useLayerDepth, r as isTopLayer, t as provideLayerDepth } from "./layerDepth-CNDh-IHb.js";
|
|
3
|
+
import { n as useFocusTrap, r as focusForLastInput, t as useRestoreFocus } from "./useRestoreFocus-XEKs5-gp.js";
|
|
4
|
+
import { t as attachScrollKeyboardDelegation } from "./scrollKeyboardDelegation-D7cumnOl.js";
|
|
5
|
+
import { t as useScrollLock } from "./scrollLock-C3aT4-0z.js";
|
|
3
6
|
import { t as useScrollbars } from "./useScrollbars-C2NJ6Qwq.js";
|
|
4
|
-
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUpdated, openBlock, ref, renderSlot, toValue, unref, useAttrs, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
7
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUpdated, openBlock, ref, renderSlot, toValue, unref, useAttrs, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
5
8
|
import "../styles/bottom-sheet.css";
|
|
9
|
+
//#region src/BottomSheet/sheetTransition.ts
|
|
10
|
+
const BACKSTOP_BUFFER_MS = 50;
|
|
11
|
+
function parseTransitionTime(value) {
|
|
12
|
+
const normalized = value.trim();
|
|
13
|
+
if (!/^-?(?:\d+|\d*\.\d+)(?:ms|s)$/.test(normalized)) return null;
|
|
14
|
+
const time = Number.parseFloat(normalized);
|
|
15
|
+
return normalized.endsWith("ms") ? time : time * 1e3;
|
|
16
|
+
}
|
|
17
|
+
/** Longest transition duration + delay that applies to `property`, in ms. */
|
|
18
|
+
function transitionMsFor(element, property) {
|
|
19
|
+
const style = getComputedStyle(element);
|
|
20
|
+
const properties = (style.transitionProperty || "").split(",").map((value) => value.trim());
|
|
21
|
+
const durations = (style.transitionDuration || "").split(",").map(parseTransitionTime);
|
|
22
|
+
const delays = (style.transitionDelay || "").split(",").map((value) => parseTransitionTime(value) ?? 0);
|
|
23
|
+
return properties.reduce((longest, name, index) => {
|
|
24
|
+
if (name !== property && name !== "all") return longest;
|
|
25
|
+
const duration = durations[index % durations.length];
|
|
26
|
+
if (duration == null) return longest;
|
|
27
|
+
return Math.max(longest, duration + (delays[index % delays.length] ?? 0));
|
|
28
|
+
}, 0);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Calls `complete` when `element` finishes transitioning `property`: on the
|
|
32
|
+
* matching `transitionend`/`transitioncancel`, or on a timer backstop so a
|
|
33
|
+
* missed event can never strand the caller. Without a resolved duration — the
|
|
34
|
+
* case in a stylesheet-free test environment — it completes immediately.
|
|
35
|
+
*/
|
|
36
|
+
function waitForTransition(element, property, complete) {
|
|
37
|
+
if (element == null) {
|
|
38
|
+
complete();
|
|
39
|
+
return () => {};
|
|
40
|
+
}
|
|
41
|
+
let done = false;
|
|
42
|
+
let timer = null;
|
|
43
|
+
let onTransitionEnd = () => {};
|
|
44
|
+
const finish = () => {
|
|
45
|
+
if (done) return;
|
|
46
|
+
done = true;
|
|
47
|
+
if (timer != null) clearTimeout(timer);
|
|
48
|
+
element.removeEventListener("transitionend", onTransitionEnd);
|
|
49
|
+
element.removeEventListener("transitioncancel", onTransitionEnd);
|
|
50
|
+
complete();
|
|
51
|
+
};
|
|
52
|
+
onTransitionEnd = (event) => {
|
|
53
|
+
if (event.target === element && event.propertyName === property) finish();
|
|
54
|
+
};
|
|
55
|
+
const duration = transitionMsFor(element, property);
|
|
56
|
+
if (duration <= 0) {
|
|
57
|
+
finish();
|
|
58
|
+
return () => {};
|
|
59
|
+
}
|
|
60
|
+
element.addEventListener("transitionend", onTransitionEnd);
|
|
61
|
+
element.addEventListener("transitioncancel", onTransitionEnd);
|
|
62
|
+
timer = setTimeout(finish, duration + BACKSTOP_BUFFER_MS);
|
|
63
|
+
return () => {
|
|
64
|
+
if (timer != null) clearTimeout(timer);
|
|
65
|
+
element.removeEventListener("transitionend", onTransitionEnd);
|
|
66
|
+
element.removeEventListener("transitioncancel", onTransitionEnd);
|
|
67
|
+
};
|
|
68
|
+
}
|
|
6
69
|
/** Scrim opacity at the peek stop: dimmed, never clear, because the sheet stays modal. */
|
|
7
70
|
const MIN_PEEK_SCRIM_OPACITY = .3;
|
|
8
71
|
const SNAP_POINT_PATTERN = /^(\d+(?:\.\d+)?|\.\d+)(px|%)$/i;
|
|
@@ -85,9 +148,6 @@ function resolveSettleOffset(value, offsets, dir, baseOffset) {
|
|
|
85
148
|
function visibleHeightForOffset(sheetHeight, offset, offscreenBlockEndInset) {
|
|
86
149
|
return Math.max(0, sheetHeight - offscreenBlockEndInset - offset);
|
|
87
150
|
}
|
|
88
|
-
/** A throw this fast, over at least `FLICK_MIN_DISTANCE`, dismisses or expands outright. */
|
|
89
|
-
const FLICK_VELOCITY = 1.2;
|
|
90
|
-
const FLICK_MIN_DISTANCE = 48;
|
|
91
151
|
/** Below the shortest stop, dragging past it by this share of its height dismisses. */
|
|
92
152
|
const DISMISS_OVERSHOOT_RATIO = .4;
|
|
93
153
|
/** Within this many px of a stop the live drag eases toward it. */
|
|
@@ -95,68 +155,7 @@ const MAGNET_RANGE = 40;
|
|
|
95
155
|
/** Rubber-band factor and ceiling for dragging above the fully open position. */
|
|
96
156
|
const OVERSCROLL_RESISTANCE = .35;
|
|
97
157
|
const OVERSCROLL_MAX = 48;
|
|
98
|
-
/** How far a finger on the body must pull before it becomes a sheet drag. */
|
|
99
|
-
const DRAG_PROMOTION_SLOP = 8;
|
|
100
158
|
const VELOCITY_WINDOW_MS = 100;
|
|
101
|
-
const BACKSTOP_BUFFER_MS = 50;
|
|
102
|
-
function parseTransitionTime(value) {
|
|
103
|
-
const normalized = value.trim();
|
|
104
|
-
if (!/^-?(?:\d+|\d*\.\d+)(?:ms|s)$/.test(normalized)) return null;
|
|
105
|
-
const time = Number.parseFloat(normalized);
|
|
106
|
-
return normalized.endsWith("ms") ? time : time * 1e3;
|
|
107
|
-
}
|
|
108
|
-
/** Longest transition duration + delay that applies to `property`, in ms. */
|
|
109
|
-
function transitionMsFor(element, property) {
|
|
110
|
-
const style = getComputedStyle(element);
|
|
111
|
-
const properties = (style.transitionProperty || "").split(",").map((value) => value.trim());
|
|
112
|
-
const durations = (style.transitionDuration || "").split(",").map(parseTransitionTime);
|
|
113
|
-
const delays = (style.transitionDelay || "").split(",").map((value) => parseTransitionTime(value) ?? 0);
|
|
114
|
-
return properties.reduce((longest, name, index) => {
|
|
115
|
-
if (name !== property && name !== "all") return longest;
|
|
116
|
-
const duration = durations[index % durations.length];
|
|
117
|
-
if (duration == null) return longest;
|
|
118
|
-
return Math.max(longest, duration + (delays[index % delays.length] ?? 0));
|
|
119
|
-
}, 0);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Calls `complete` when `element` finishes transitioning `property`: on the
|
|
123
|
-
* matching `transitionend`/`transitioncancel`, or on a timer backstop so a
|
|
124
|
-
* missed event can never strand the caller. Without a resolved duration — the
|
|
125
|
-
* case in a stylesheet-free test environment — it completes immediately.
|
|
126
|
-
*/
|
|
127
|
-
function waitForTransition(element, property, complete) {
|
|
128
|
-
if (element == null) {
|
|
129
|
-
complete();
|
|
130
|
-
return () => {};
|
|
131
|
-
}
|
|
132
|
-
let done = false;
|
|
133
|
-
let timer = null;
|
|
134
|
-
let onTransitionEnd = () => {};
|
|
135
|
-
const finish = () => {
|
|
136
|
-
if (done) return;
|
|
137
|
-
done = true;
|
|
138
|
-
if (timer != null) clearTimeout(timer);
|
|
139
|
-
element.removeEventListener("transitionend", onTransitionEnd);
|
|
140
|
-
element.removeEventListener("transitioncancel", onTransitionEnd);
|
|
141
|
-
complete();
|
|
142
|
-
};
|
|
143
|
-
onTransitionEnd = (event) => {
|
|
144
|
-
if (event.target === element && event.propertyName === property) finish();
|
|
145
|
-
};
|
|
146
|
-
const duration = transitionMsFor(element, property);
|
|
147
|
-
if (duration <= 0) {
|
|
148
|
-
finish();
|
|
149
|
-
return () => {};
|
|
150
|
-
}
|
|
151
|
-
element.addEventListener("transitionend", onTransitionEnd);
|
|
152
|
-
element.addEventListener("transitioncancel", onTransitionEnd);
|
|
153
|
-
timer = setTimeout(finish, duration + BACKSTOP_BUFFER_MS);
|
|
154
|
-
return () => {
|
|
155
|
-
if (timer != null) clearTimeout(timer);
|
|
156
|
-
element.removeEventListener("transitionend", onTransitionEnd);
|
|
157
|
-
element.removeEventListener("transitioncancel", onTransitionEnd);
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
159
|
function magnetize(value, targets) {
|
|
161
160
|
if (targets.length === 0) return value;
|
|
162
161
|
let nearest = targets[0];
|
|
@@ -181,6 +180,104 @@ function hapticTick() {
|
|
|
181
180
|
if (typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches) return;
|
|
182
181
|
navigator.vibrate(8);
|
|
183
182
|
}
|
|
183
|
+
/** Finger speed over the last `VELOCITY_WINDOW_MS`, in px/ms. */
|
|
184
|
+
function velocityFor(samples, lastY, lastT, startY, startT) {
|
|
185
|
+
const first = samples.filter((sample) => lastT - sample.t <= VELOCITY_WINDOW_MS)[0] ?? {
|
|
186
|
+
y: startY,
|
|
187
|
+
t: startT
|
|
188
|
+
};
|
|
189
|
+
const elapsed = lastT - first.t;
|
|
190
|
+
return elapsed > 0 ? (lastY - first.y) / elapsed : 0;
|
|
191
|
+
}
|
|
192
|
+
/** Live offset for a drag, rubber-banding above fully open and easing near a stop. */
|
|
193
|
+
function dragOffsetFrom(baseOffset, delta, stops) {
|
|
194
|
+
let offset = baseOffset + delta;
|
|
195
|
+
if (offset < 0) offset = -Math.min(-offset * OVERSCROLL_RESISTANCE, OVERSCROLL_MAX);
|
|
196
|
+
return {
|
|
197
|
+
raw: offset,
|
|
198
|
+
shown: magnetize(offset, stops)
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** Offset past which a slow downward drag dismisses instead of snapping back. */
|
|
202
|
+
function dismissTravelFor(height, offsets) {
|
|
203
|
+
const maxOffset = offsets[offsets.length - 1] ?? 0;
|
|
204
|
+
return maxOffset + visibleHeightForOffset(height, maxOffset, 48) * DISMISS_OVERSHOOT_RATIO;
|
|
205
|
+
}
|
|
206
|
+
function hasBlockScroll(element) {
|
|
207
|
+
return element.scrollHeight > element.clientHeight + 1;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Whether every scroller from `target` up to `root` is at its block edge.
|
|
211
|
+
* A nested box that can still scroll keeps the gesture; the sheet does not
|
|
212
|
+
* take it until that box has nowhere left to go.
|
|
213
|
+
*/
|
|
214
|
+
function blockScrollEdges(root, target) {
|
|
215
|
+
let atTop = true;
|
|
216
|
+
let atBottom = true;
|
|
217
|
+
let node = target instanceof Element ? target : root;
|
|
218
|
+
while (node != null) {
|
|
219
|
+
if (node instanceof HTMLElement && hasBlockScroll(node)) {
|
|
220
|
+
if (node.scrollTop > 1) atTop = false;
|
|
221
|
+
if (node.scrollTop + node.clientHeight < node.scrollHeight - 1) atBottom = false;
|
|
222
|
+
}
|
|
223
|
+
if (node === root) break;
|
|
224
|
+
node = node.parentElement;
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
atTop,
|
|
228
|
+
atBottom
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
//#endregion
|
|
232
|
+
//#region src/BottomSheet/sheetPointerSession.ts
|
|
233
|
+
/** Window pointer listeners plus the body's non-passive touch listeners. */
|
|
234
|
+
function createSheetPointerSession(handlers) {
|
|
235
|
+
let body = null;
|
|
236
|
+
let listening = false;
|
|
237
|
+
function attach() {
|
|
238
|
+
if (listening || typeof window === "undefined") return;
|
|
239
|
+
listening = true;
|
|
240
|
+
window.addEventListener("pointermove", handlers.onPointerMove);
|
|
241
|
+
window.addEventListener("pointerup", handlers.onPointerUp);
|
|
242
|
+
window.addEventListener("pointercancel", handlers.onPointerCancel);
|
|
243
|
+
}
|
|
244
|
+
function detach() {
|
|
245
|
+
if (!listening || typeof window === "undefined") return;
|
|
246
|
+
listening = false;
|
|
247
|
+
window.removeEventListener("pointermove", handlers.onPointerMove);
|
|
248
|
+
window.removeEventListener("pointerup", handlers.onPointerUp);
|
|
249
|
+
window.removeEventListener("pointercancel", handlers.onPointerCancel);
|
|
250
|
+
}
|
|
251
|
+
function unbind(element) {
|
|
252
|
+
element.removeEventListener("touchstart", handlers.onTouchStart);
|
|
253
|
+
element.removeEventListener("touchmove", handlers.onTouchMove);
|
|
254
|
+
element.removeEventListener("touchend", handlers.onTouchEnd);
|
|
255
|
+
element.removeEventListener("touchcancel", handlers.onTouchEnd);
|
|
256
|
+
}
|
|
257
|
+
function setBody(element) {
|
|
258
|
+
if (body != null) unbind(body);
|
|
259
|
+
body = element;
|
|
260
|
+
if (element == null) return;
|
|
261
|
+
element.addEventListener("touchstart", handlers.onTouchStart, { passive: true });
|
|
262
|
+
element.addEventListener("touchmove", handlers.onTouchMove, { passive: false });
|
|
263
|
+
element.addEventListener("touchend", handlers.onTouchEnd);
|
|
264
|
+
element.addEventListener("touchcancel", handlers.onTouchEnd);
|
|
265
|
+
}
|
|
266
|
+
function destroy() {
|
|
267
|
+
detach();
|
|
268
|
+
setBody(null);
|
|
269
|
+
if (typeof window !== "undefined") window.removeEventListener("blur", handlers.onWindowBlur);
|
|
270
|
+
}
|
|
271
|
+
if (typeof window !== "undefined") window.addEventListener("blur", handlers.onWindowBlur);
|
|
272
|
+
return {
|
|
273
|
+
attach,
|
|
274
|
+
detach,
|
|
275
|
+
setBody,
|
|
276
|
+
destroy
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
//#endregion
|
|
280
|
+
//#region src/BottomSheet/useSheetGestures.ts
|
|
184
281
|
/** Drag, snap, and settle behavior of the sheet panel. */
|
|
185
282
|
function useSheetGestures(options) {
|
|
186
283
|
const { panel, body, isOpen, canDismiss, getSnapHeights, onScrimOpacity, onSnap, onDismiss } = options;
|
|
@@ -195,8 +292,10 @@ function useSheetGestures(options) {
|
|
|
195
292
|
const sheetHeight = ref(0);
|
|
196
293
|
let dragState = null;
|
|
197
294
|
let pendingBody = null;
|
|
295
|
+
let touchArming = null;
|
|
198
296
|
let reconcileToken = 0;
|
|
199
297
|
let observer = null;
|
|
298
|
+
let session;
|
|
200
299
|
const activeOffset = computed(() => isDragging.value ? dragOffset.value : settledOffset.value);
|
|
201
300
|
function measureNaturalHeight() {
|
|
202
301
|
const element = panel.value;
|
|
@@ -220,10 +319,6 @@ function useSheetGestures(options) {
|
|
|
220
319
|
peekOffset: peekOffsetFor(offsets, visible)
|
|
221
320
|
};
|
|
222
321
|
}
|
|
223
|
-
function dismissOffsetFor(detents) {
|
|
224
|
-
const maxOffset = detents.offsets[detents.offsets.length - 1] ?? 0;
|
|
225
|
-
return maxOffset + visibleHeightForOffset(detents.height, maxOffset, 48) * DISMISS_OVERSHOOT_RATIO;
|
|
226
|
-
}
|
|
227
322
|
async function reconcileLayout(targetLayoutOffset) {
|
|
228
323
|
const token = ++reconcileToken;
|
|
229
324
|
isReconciling.value = true;
|
|
@@ -237,7 +332,7 @@ function useSheetGestures(options) {
|
|
|
237
332
|
}
|
|
238
333
|
function settleAt(target, fromOffset, detents) {
|
|
239
334
|
const targetLayoutOffset = target === detents.peekOffset ? 0 : target;
|
|
240
|
-
const dismissOffset =
|
|
335
|
+
const dismissOffset = dismissTravelFor(detents.height, detents.offsets);
|
|
241
336
|
settledOffset.value = target;
|
|
242
337
|
scrollPreservationInset.value = Math.max(0, fromOffset - targetLayoutOffset - naturalEndGapFor(body.value));
|
|
243
338
|
scrimOpacity.value = scrimOpacityForOffset(target, detents.offsets, dismissOffset, detents.peekOffset);
|
|
@@ -258,14 +353,6 @@ function useSheetGestures(options) {
|
|
|
258
353
|
}
|
|
259
354
|
settleAt(detents.offsets[detents.offsets.length - 1] ?? 0, fromOffset, detents);
|
|
260
355
|
}
|
|
261
|
-
function velocityFor(state) {
|
|
262
|
-
const first = state.samples.filter((sample) => state.lastT - sample.t <= VELOCITY_WINDOW_MS)[0] ?? {
|
|
263
|
-
y: state.startY,
|
|
264
|
-
t: state.startT
|
|
265
|
-
};
|
|
266
|
-
const elapsed = state.lastT - first.t;
|
|
267
|
-
return elapsed > 0 ? (state.lastY - first.y) / elapsed : 0;
|
|
268
|
-
}
|
|
269
356
|
function updateDrag(clientY, timeStamp) {
|
|
270
357
|
const state = dragState;
|
|
271
358
|
if (!state) return;
|
|
@@ -278,11 +365,10 @@ function useSheetGestures(options) {
|
|
|
278
365
|
});
|
|
279
366
|
state.travel = Math.max(state.travel, Math.abs(delta));
|
|
280
367
|
state.dir = delta === 0 ? 0 : Math.sign(delta);
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
scrimOpacity.value = scrimOpacityForOffset(offset, state.offsets, dismissOffsetFor(state), state.peekOffset);
|
|
368
|
+
const next = dragOffsetFrom(state.baseOffset, delta, state.offsets);
|
|
369
|
+
state.rawOffset = next.raw;
|
|
370
|
+
dragOffset.value = next.shown;
|
|
371
|
+
scrimOpacity.value = scrimOpacityForOffset(next.raw, state.offsets, dismissTravelFor(state.height, state.offsets), state.peekOffset);
|
|
286
372
|
onScrimOpacity(scrimOpacity.value);
|
|
287
373
|
}
|
|
288
374
|
function beginDrag(pointerId, clientY, timeStamp) {
|
|
@@ -309,11 +395,11 @@ function useSheetGestures(options) {
|
|
|
309
395
|
function endDrag() {
|
|
310
396
|
const state = dragState;
|
|
311
397
|
dragState = null;
|
|
312
|
-
|
|
398
|
+
session.detach();
|
|
313
399
|
if (!state) return;
|
|
314
400
|
isDragging.value = false;
|
|
315
|
-
const velocity = velocityFor(state);
|
|
316
|
-
const isFlick = Math.abs(velocity) >
|
|
401
|
+
const velocity = velocityFor(state.samples, state.lastY, state.lastT, state.startY, state.startT);
|
|
402
|
+
const isFlick = Math.abs(velocity) > 1.2 && state.travel > 48;
|
|
317
403
|
if (state.dir > 0 && isFlick) {
|
|
318
404
|
dismissOrSettleShortest(state.baseOffset, state);
|
|
319
405
|
return;
|
|
@@ -322,7 +408,7 @@ function useSheetGestures(options) {
|
|
|
322
408
|
settleAt(0, state.baseOffset, state);
|
|
323
409
|
return;
|
|
324
410
|
}
|
|
325
|
-
if (state.rawOffset >
|
|
411
|
+
if (state.rawOffset > dismissTravelFor(state.height, state.offsets)) {
|
|
326
412
|
dismissOrSettleShortest(state.baseOffset, state);
|
|
327
413
|
return;
|
|
328
414
|
}
|
|
@@ -331,18 +417,25 @@ function useSheetGestures(options) {
|
|
|
331
417
|
function cancelDrag() {
|
|
332
418
|
const state = dragState;
|
|
333
419
|
pendingBody = null;
|
|
420
|
+
touchArming = null;
|
|
334
421
|
dragState = null;
|
|
335
|
-
|
|
422
|
+
session.detach();
|
|
336
423
|
if (!state) return;
|
|
337
424
|
isDragging.value = false;
|
|
338
425
|
dragOffset.value = state.baseOffset;
|
|
339
426
|
settledOffset.value = state.baseOffset;
|
|
340
|
-
scrimOpacity.value = scrimOpacityForOffset(state.baseOffset, state.offsets,
|
|
427
|
+
scrimOpacity.value = scrimOpacityForOffset(state.baseOffset, state.offsets, dismissTravelFor(state.height, state.offsets), state.peekOffset);
|
|
341
428
|
onScrimOpacity(scrimOpacity.value);
|
|
342
429
|
}
|
|
430
|
+
/** A second finger is a pinch. The browser keeps the zoom; the sheet lets go. */
|
|
431
|
+
function yieldToPinch(pointerId) {
|
|
432
|
+
if (dragState == null || dragState.pointerId === pointerId) return false;
|
|
433
|
+
cancelDrag();
|
|
434
|
+
return true;
|
|
435
|
+
}
|
|
343
436
|
function onPointerMove(event) {
|
|
344
437
|
if (dragState != null) {
|
|
345
|
-
if (
|
|
438
|
+
if (yieldToPinch(event.pointerId)) return;
|
|
346
439
|
if (event.cancelable) event.preventDefault();
|
|
347
440
|
updateDrag(event.clientY, event.timeStamp);
|
|
348
441
|
return;
|
|
@@ -350,12 +443,12 @@ function useSheetGestures(options) {
|
|
|
350
443
|
const pending = pendingBody;
|
|
351
444
|
if (pending == null || pending.pointerId !== event.pointerId) return;
|
|
352
445
|
const delta = event.clientY - pending.startY;
|
|
353
|
-
if (Math.abs(delta) <
|
|
446
|
+
if (Math.abs(delta) < 8) return;
|
|
354
447
|
const pullingDown = delta > 0 && pending.atTop;
|
|
355
448
|
const pullingUp = delta < 0 && pending.atBottom && activeOffset.value > 0;
|
|
356
449
|
if (!pullingDown && !pullingUp) {
|
|
357
450
|
pendingBody = null;
|
|
358
|
-
|
|
451
|
+
session.detach();
|
|
359
452
|
return;
|
|
360
453
|
}
|
|
361
454
|
pendingBody = null;
|
|
@@ -367,7 +460,7 @@ function useSheetGestures(options) {
|
|
|
367
460
|
if (dragState != null && dragState.pointerId !== event.pointerId) return;
|
|
368
461
|
pendingBody = null;
|
|
369
462
|
if (dragState == null) {
|
|
370
|
-
|
|
463
|
+
session.detach();
|
|
371
464
|
return;
|
|
372
465
|
}
|
|
373
466
|
endDrag();
|
|
@@ -376,51 +469,54 @@ function useSheetGestures(options) {
|
|
|
376
469
|
if (dragState != null && dragState.pointerId !== event.pointerId) return;
|
|
377
470
|
cancelDrag();
|
|
378
471
|
}
|
|
379
|
-
function attachPointerListeners() {
|
|
380
|
-
window.addEventListener("pointermove", onPointerMove);
|
|
381
|
-
window.addEventListener("pointerup", onPointerUp);
|
|
382
|
-
window.addEventListener("pointercancel", onPointerCancel);
|
|
383
|
-
}
|
|
384
|
-
function detachPointerListeners() {
|
|
385
|
-
window.removeEventListener("pointermove", onPointerMove);
|
|
386
|
-
window.removeEventListener("pointerup", onPointerUp);
|
|
387
|
-
window.removeEventListener("pointercancel", onPointerCancel);
|
|
388
|
-
}
|
|
389
472
|
function onHandlePointerDown(event) {
|
|
390
473
|
if (event.button != null && event.button !== 0) return;
|
|
391
|
-
|
|
474
|
+
if (yieldToPinch(event.pointerId)) return;
|
|
475
|
+
session.attach();
|
|
392
476
|
beginDrag(event.pointerId, event.clientY, event.timeStamp);
|
|
393
477
|
if (event.cancelable) event.preventDefault();
|
|
394
478
|
}
|
|
395
479
|
function onBodyPointerDown(event) {
|
|
480
|
+
if (yieldToPinch(event.pointerId)) return;
|
|
396
481
|
if (event.pointerType === "touch") return;
|
|
397
482
|
if (event.button != null && event.button !== 0) return;
|
|
398
483
|
const element = body.value;
|
|
399
484
|
if (!element) return;
|
|
485
|
+
const edges = blockScrollEdges(element, event.target);
|
|
400
486
|
pendingBody = {
|
|
401
487
|
pointerId: event.pointerId,
|
|
402
488
|
startY: event.clientY,
|
|
403
|
-
atTop:
|
|
404
|
-
atBottom:
|
|
489
|
+
atTop: edges.atTop,
|
|
490
|
+
atBottom: edges.atBottom
|
|
405
491
|
};
|
|
406
|
-
|
|
492
|
+
session.attach();
|
|
407
493
|
}
|
|
408
|
-
let touchArming = null;
|
|
409
494
|
function onTouchStart(event) {
|
|
495
|
+
if (event.touches.length > 1) {
|
|
496
|
+
touchArming = null;
|
|
497
|
+
cancelDrag();
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
410
500
|
const touch = event.changedTouches[0];
|
|
411
501
|
const element = body.value;
|
|
412
502
|
if (!touch || !element) {
|
|
413
503
|
touchArming = null;
|
|
414
504
|
return;
|
|
415
505
|
}
|
|
506
|
+
const edges = blockScrollEdges(element, event.target);
|
|
416
507
|
touchArming = {
|
|
417
508
|
identifier: touch.identifier,
|
|
418
509
|
startY: touch.clientY,
|
|
419
|
-
atTop:
|
|
420
|
-
atBottom:
|
|
510
|
+
atTop: edges.atTop,
|
|
511
|
+
atBottom: edges.atBottom
|
|
421
512
|
};
|
|
422
513
|
}
|
|
423
514
|
function onTouchMove(event) {
|
|
515
|
+
if (event.touches.length > 1) {
|
|
516
|
+
touchArming = null;
|
|
517
|
+
cancelDrag();
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
424
520
|
const element = body.value;
|
|
425
521
|
if (dragState != null) {
|
|
426
522
|
const touch = Array.from(event.changedTouches).find((item) => item.identifier === dragState?.pointerId);
|
|
@@ -434,7 +530,7 @@ function useSheetGestures(options) {
|
|
|
434
530
|
const touch = Array.from(event.changedTouches).find((item) => item.identifier === arming.identifier);
|
|
435
531
|
if (!touch) return;
|
|
436
532
|
const delta = touch.clientY - arming.startY;
|
|
437
|
-
if (Math.abs(delta) <
|
|
533
|
+
if (Math.abs(delta) < 8) return;
|
|
438
534
|
const pullingDown = delta > 0 && arming.atTop;
|
|
439
535
|
const pullingUp = delta < 0 && arming.atBottom && activeOffset.value > 0;
|
|
440
536
|
if (!pullingDown && !pullingUp) {
|
|
@@ -460,6 +556,15 @@ function useSheetGestures(options) {
|
|
|
460
556
|
const height = panel.value?.getBoundingClientRect().height ?? 0;
|
|
461
557
|
if (height > 0) sheetHeight.value = height;
|
|
462
558
|
}
|
|
559
|
+
session = createSheetPointerSession({
|
|
560
|
+
onPointerMove,
|
|
561
|
+
onPointerUp,
|
|
562
|
+
onPointerCancel,
|
|
563
|
+
onTouchStart,
|
|
564
|
+
onTouchMove,
|
|
565
|
+
onTouchEnd,
|
|
566
|
+
onWindowBlur: () => cancelDrag()
|
|
567
|
+
});
|
|
463
568
|
watch(panel, (element) => {
|
|
464
569
|
observer?.disconnect();
|
|
465
570
|
observer = null;
|
|
@@ -471,18 +576,8 @@ function useSheetGestures(options) {
|
|
|
471
576
|
observer.observe(element);
|
|
472
577
|
recordSheetHeight();
|
|
473
578
|
}, { immediate: true });
|
|
474
|
-
watch(body, (element
|
|
475
|
-
|
|
476
|
-
previous.removeEventListener("touchstart", onTouchStart);
|
|
477
|
-
previous.removeEventListener("touchmove", onTouchMove);
|
|
478
|
-
previous.removeEventListener("touchend", onTouchEnd);
|
|
479
|
-
previous.removeEventListener("touchcancel", onTouchEnd);
|
|
480
|
-
}
|
|
481
|
-
if (!element) return;
|
|
482
|
-
element.addEventListener("touchstart", onTouchStart, { passive: true });
|
|
483
|
-
element.addEventListener("touchmove", onTouchMove, { passive: false });
|
|
484
|
-
element.addEventListener("touchend", onTouchEnd);
|
|
485
|
-
element.addEventListener("touchcancel", onTouchEnd);
|
|
579
|
+
watch(body, (element) => {
|
|
580
|
+
session.setBody(element);
|
|
486
581
|
updateOverflow();
|
|
487
582
|
}, { immediate: true });
|
|
488
583
|
watch(isOpen, (open) => {
|
|
@@ -505,13 +600,10 @@ function useSheetGestures(options) {
|
|
|
505
600
|
watch(canDismiss, (allowed) => {
|
|
506
601
|
if (!allowed) cancelDrag();
|
|
507
602
|
});
|
|
508
|
-
const onWindowBlur = () => cancelDrag();
|
|
509
|
-
if (typeof window !== "undefined") window.addEventListener("blur", onWindowBlur);
|
|
510
603
|
onBeforeUnmount(() => {
|
|
511
|
-
|
|
604
|
+
session.destroy();
|
|
512
605
|
observer?.disconnect();
|
|
513
606
|
observer = null;
|
|
514
|
-
if (typeof window !== "undefined") window.removeEventListener("blur", onWindowBlur);
|
|
515
607
|
});
|
|
516
608
|
return {
|
|
517
609
|
isDragging,
|
|
@@ -548,6 +640,7 @@ const _hoisted_2$1 = [
|
|
|
548
640
|
"role",
|
|
549
641
|
"aria-label"
|
|
550
642
|
];
|
|
643
|
+
const _hoisted_3$1 = ["data-padding"];
|
|
551
644
|
const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
552
645
|
name: "AstryxBottomSheetPanel",
|
|
553
646
|
__name: "BottomSheetPanel",
|
|
@@ -572,6 +665,8 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
572
665
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
573
666
|
const props = __props;
|
|
574
667
|
const emit = __emit;
|
|
668
|
+
resetLayerScopedContext();
|
|
669
|
+
provideLayerDepth();
|
|
575
670
|
const HEIGHT_BUDGETS = {
|
|
576
671
|
hug: "92dvh",
|
|
577
672
|
capped: "62dvh",
|
|
@@ -579,6 +674,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
579
674
|
};
|
|
580
675
|
const panel = useTemplateRef("panel");
|
|
581
676
|
const body = useTemplateRef("body");
|
|
677
|
+
const content = useTemplateRef("content");
|
|
582
678
|
useScrollbars(body);
|
|
583
679
|
const isInteractive = computed(() => props.state === "open");
|
|
584
680
|
const heightKind = computed(() => {
|
|
@@ -604,10 +700,6 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
604
700
|
onSnap: (visibleHeight) => emit("snap", visibleHeight),
|
|
605
701
|
onDismiss: () => emit("dismiss")
|
|
606
702
|
});
|
|
607
|
-
const contentStyle = computed(() => {
|
|
608
|
-
if (props.padding == null) return void 0;
|
|
609
|
-
return { "--_sheet-padding": `var(--astryx-spacing-${String(props.padding).replace(".", "-")})` };
|
|
610
|
-
});
|
|
611
703
|
const panelStyle = computed(() => {
|
|
612
704
|
const style = { "--_sheet-budget": budget.value };
|
|
613
705
|
if (isInteractive.value) {
|
|
@@ -640,6 +732,10 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
640
732
|
onUpdated(() => {
|
|
641
733
|
gestures.updateOverflow();
|
|
642
734
|
});
|
|
735
|
+
watch([body, content], ([viewport, box], _previous, onCleanup) => {
|
|
736
|
+
if (viewport == null || box == null) return;
|
|
737
|
+
onCleanup(attachScrollKeyboardDelegation(viewport, box));
|
|
738
|
+
});
|
|
643
739
|
__expose({
|
|
644
740
|
element: computed(() => panel.value ?? null),
|
|
645
741
|
focus: (options) => panel.value?.focus(options),
|
|
@@ -649,7 +745,7 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
649
745
|
return openBlock(), createElementBlock("div", {
|
|
650
746
|
ref_key: "panel",
|
|
651
747
|
ref: panel,
|
|
652
|
-
class: "astryx-bottom-sheet",
|
|
748
|
+
class: "astryx-bottom-sheet astryx-layer",
|
|
653
749
|
"data-state": __props.state,
|
|
654
750
|
"data-height": heightKind.value,
|
|
655
751
|
"data-dragging": unref(gestures).isDragging.value || void 0,
|
|
@@ -671,9 +767,11 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
671
767
|
style: normalizeStyle(bodyStyle.value),
|
|
672
768
|
onPointerdown: _cache[1] || (_cache[1] = (...args) => unref(gestures).onBodyPointerDown && unref(gestures).onBodyPointerDown(...args))
|
|
673
769
|
}, [createElementVNode("div", {
|
|
770
|
+
ref_key: "content",
|
|
771
|
+
ref: content,
|
|
674
772
|
class: "astryx-bottom-sheet__content",
|
|
675
|
-
|
|
676
|
-
}, [renderSlot(_ctx.$slots, "default")],
|
|
773
|
+
"data-padding": __props.padding
|
|
774
|
+
}, [renderSlot(_ctx.$slots, "default")], 8, _hoisted_3$1)], 44, _hoisted_2$1)], 12, _hoisted_1$1);
|
|
677
775
|
};
|
|
678
776
|
}
|
|
679
777
|
});
|
|
@@ -681,6 +779,39 @@ const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
|
681
779
|
//#region src/BottomSheet/switcher.ts
|
|
682
780
|
const bottomSheetSwitcherKey = Symbol("astryx-bottom-sheet-switcher");
|
|
683
781
|
//#endregion
|
|
782
|
+
//#region src/BottomSheet/useSheetLayerDismiss.ts
|
|
783
|
+
/**
|
|
784
|
+
* 把底部面板登记进全页关闭栈。
|
|
785
|
+
*
|
|
786
|
+
* 点在外面不关:遮罩点击由对话框自己认,非模态时页面还要能点。
|
|
787
|
+
* Escape 只打最上面一层。退出动画还在屏幕上时继续占着栈,按键不会漏到后面。
|
|
788
|
+
*/
|
|
789
|
+
function useSheetLayerDismiss(options) {
|
|
790
|
+
const depth = useLayerDepth();
|
|
791
|
+
const token = {};
|
|
792
|
+
let stop = null;
|
|
793
|
+
function sync() {
|
|
794
|
+
stop?.();
|
|
795
|
+
stop = null;
|
|
796
|
+
if (!options.isActive.value) return;
|
|
797
|
+
stop = pushLayer({
|
|
798
|
+
token,
|
|
799
|
+
depth,
|
|
800
|
+
getContainer: options.getContainer,
|
|
801
|
+
dismissOnPointerOutside: false,
|
|
802
|
+
dismissOnEscape: options.escape.value,
|
|
803
|
+
isPresent: options.isPresent,
|
|
804
|
+
onDismiss: options.onDismiss
|
|
805
|
+
});
|
|
806
|
+
}
|
|
807
|
+
watch([options.isActive, options.escape], sync, { immediate: true });
|
|
808
|
+
onScopeDispose(() => {
|
|
809
|
+
stop?.();
|
|
810
|
+
stop = null;
|
|
811
|
+
});
|
|
812
|
+
return { isTop: () => options.isActive.value && isTopLayer(token) };
|
|
813
|
+
}
|
|
814
|
+
//#endregion
|
|
684
815
|
//#region src/BottomSheet/BottomSheet.vue
|
|
685
816
|
const _hoisted_1 = ["inert"];
|
|
686
817
|
const _hoisted_2 = {
|
|
@@ -820,8 +951,22 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
820
951
|
unlockScroll();
|
|
821
952
|
isPresented.value = false;
|
|
822
953
|
const target = toValue(props.finalFocusRef);
|
|
823
|
-
if (target?.isConnected) target
|
|
954
|
+
if (target?.isConnected) focusForLastInput(target);
|
|
824
955
|
}
|
|
956
|
+
const layer = useSheetLayerDismiss({
|
|
957
|
+
isActive: computed(() => !hosted.value && !props.isInline && (isOpen.value || isPresented.value)),
|
|
958
|
+
escape: computed(() => {
|
|
959
|
+
if (!isOpen.value || props.purpose === "required") return "block";
|
|
960
|
+
if (!props.hasScrim) return "ignore";
|
|
961
|
+
return "close";
|
|
962
|
+
}),
|
|
963
|
+
getContainer: () => dialog.value ?? null,
|
|
964
|
+
isPresent: () => dialog.value?.open ?? false,
|
|
965
|
+
onDismiss: () => {
|
|
966
|
+
if (!isOpen.value || props.purpose === "required") return;
|
|
967
|
+
requestClose();
|
|
968
|
+
}
|
|
969
|
+
});
|
|
825
970
|
function requestClose() {
|
|
826
971
|
if (hosted.value && props.sheetId != null) {
|
|
827
972
|
if (switcher?.activeId.value === props.sheetId) switcher.setActive(null);
|
|
@@ -836,13 +981,14 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
836
981
|
requestClose();
|
|
837
982
|
}
|
|
838
983
|
function onKeydown(event) {
|
|
839
|
-
if (event.key !== "Escape") return;
|
|
984
|
+
if (event.key !== "Escape" || !layer.isTop()) return;
|
|
840
985
|
event.preventDefault();
|
|
841
|
-
if (event
|
|
986
|
+
if (isImeKeyEvent(event)) return;
|
|
842
987
|
dismissOnEscape();
|
|
843
988
|
}
|
|
844
989
|
function onCancel(event) {
|
|
845
990
|
event.preventDefault();
|
|
991
|
+
if (!layer.isTop()) return;
|
|
846
992
|
dismissOnEscape();
|
|
847
993
|
}
|
|
848
994
|
function onDialogClick(event) {
|
|
@@ -978,4 +1124,4 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
978
1124
|
}
|
|
979
1125
|
});
|
|
980
1126
|
//#endregion
|
|
981
|
-
export {
|
|
1127
|
+
export { useSheetLayerDismiss as n, bottomSheetSwitcherKey as r, _sfc_main as t };
|