@astryx-vue/core 0.1.0 → 0.1.3
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/README.md +1 -1
- package/dist/AppShell/index.d.ts +2 -0
- package/dist/AppShell/index.js +2 -0
- package/dist/AppShell-b0PWt9Fz.js +249 -0
- package/dist/AspectRatio/index.d.ts +2 -0
- package/dist/AspectRatio/index.js +2 -0
- package/dist/AspectRatio-Bij7e-tq.js +40 -0
- package/dist/AvatarGroup/index.d.ts +1 -1
- package/dist/Banner/index.d.ts +1 -1
- package/dist/BottomSheet/index.d.ts +1 -1
- package/dist/Button/index.d.ts +1 -1
- package/dist/ButtonGroup/index.d.ts +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/{Calendar-DpYFXwgb.js → Calendar-CYhGDT6f.js} +2 -1
- package/dist/Chat/index.js +1 -1
- package/dist/{Chat-Bfd-YPAK.js → Chat-C1aWl5V3.js} +2 -2
- package/dist/CheckboxInput/index.d.ts +1 -1
- package/dist/CheckboxInput/index.js +1 -1
- package/dist/{CheckboxInput-C86o3XoG.js → CheckboxInput-CMsEE1_4.js} +4 -2
- package/dist/CheckboxList/index.d.ts +2 -0
- package/dist/CheckboxList/index.js +2 -0
- package/dist/CheckboxList-EsIEXjK_.js +174 -0
- package/dist/Citation/index.js +1 -1
- package/dist/{Citation-DaDd1teb.js → Citation-C1X0Rde8.js} +2 -2
- package/dist/ClickableCard/index.d.ts +2 -0
- package/dist/ClickableCard/index.js +2 -0
- package/dist/ClickableCard-Bhds4RRe.js +112 -0
- package/dist/Code/index.js +1 -1
- package/dist/{CodeBlock-CK-NWM_1.js → CodeBlock-BQdooQy2.js} +1 -1
- package/dist/Collapsible/index.d.ts +2 -2
- package/dist/Collapsible/index.js +2 -2
- package/dist/Collapsible-BS9ctCQV.js +192 -0
- package/dist/CommandPalette/index.d.ts +2 -0
- package/dist/CommandPalette/index.js +2 -0
- package/dist/CommandPalette-u5h_E05P.js +489 -0
- package/dist/ComplexSelector/index.d.ts +2 -0
- package/dist/ComplexSelector/index.js +2 -0
- package/dist/ComplexSelector-BHmGWml0.js +293 -0
- package/dist/ContextMenu/index.d.ts +1 -1
- package/dist/ContextMenu/index.js +1 -1
- package/dist/{ContextMenu-BJh99Exj.js → ContextMenu-dA-ppaRQ.js} +284 -12
- package/dist/DateInput/index.d.ts +1 -1
- package/dist/DateInput/index.js +1 -1
- package/dist/{DateInput-zJAdXByM.js → DateInput-D2ErjXYO.js} +18 -10
- package/dist/DateRangeInput/index.d.ts +2 -0
- package/dist/DateRangeInput/index.js +2 -0
- package/dist/DateRangeInput-fmQlr_A7.js +385 -0
- package/dist/DateTimeInput/index.d.ts +2 -0
- package/dist/DateTimeInput/index.js +2 -0
- package/dist/DateTimeInput-Bs1JmcIp.js +196 -0
- package/dist/Divider/index.d.ts +1 -1
- package/dist/DropdownMenu/index.d.ts +1 -1
- package/dist/DropdownMenu/index.js +1 -1
- package/dist/{DropdownMenu-C3j2zaEn.js → DropdownMenu-B0gogrvG.js} +2 -2
- package/dist/Field/index.d.ts +2 -2
- package/dist/Field/index.js +3 -4
- package/dist/{Field-VlTBsIEo.js → Field-8zRxzDHE.js} +11 -3
- package/dist/{FieldLabel-B1NRyQlS.js → FieldLabel-DmmJyX7w.js} +6 -1
- package/dist/FieldStatus/index.d.ts +2 -0
- package/dist/FieldStatus/index.js +2 -0
- package/dist/FileInput/index.d.ts +2 -0
- package/dist/FileInput/index.js +2 -0
- package/dist/FileInput-CmAfOpkA.js +238 -0
- package/dist/FormLayout/index.d.ts +2 -0
- package/dist/FormLayout/index.js +2 -0
- package/dist/FormLayout-D47FjiOq.js +40 -0
- package/dist/HoverCard/index.d.ts +1 -1
- package/dist/{Icon-B6qNgBP9.js → Icon-5MdZQ18k.js} +10 -2
- package/dist/Layout/index.d.ts +2 -0
- package/dist/Layout/index.js +3 -0
- package/dist/Layout-Bed3kP0M.js +56 -0
- package/dist/LayoutPanel-C34uOq3e.js +358 -0
- package/dist/List/index.d.ts +1 -1
- package/dist/Markdown/index.d.ts +1 -1
- package/dist/Markdown/index.js +1 -1
- package/dist/{Markdown-DyKIwAL_.js → Markdown-CwtLr3f_.js} +2 -2
- package/dist/MetadataList/index.d.ts +2 -0
- package/dist/MetadataList/index.js +2 -0
- package/dist/MetadataList-DlXQTLog.js +124 -0
- package/dist/MobileNav/index.d.ts +1 -1
- package/dist/MobileNav/index.js +1 -1
- package/dist/{MobileNavToggle-BK2iRJF-.js → MobileNavToggle-CgQamG6E.js} +19 -12
- package/dist/MoreMenu/index.d.ts +1 -1
- package/dist/MoreMenu/index.js +1 -1
- package/dist/{MoreMenu-BjUsVWWk.js → MoreMenu-BXL6Dqsu.js} +2 -2
- package/dist/MultiSelector/index.d.ts +1 -1
- package/dist/MultiSelector/index.js +1 -1
- package/dist/{MultiSelector-CKTbTj1A.js → MultiSelector-DT8ZccMI.js} +3 -3
- package/dist/NavItem/index.d.ts +1 -1
- package/dist/NavMenu/index.d.ts +1 -1
- package/dist/NumberInput/index.d.ts +1 -1
- package/dist/NumberInput/index.js +1 -1
- package/dist/{NumberInput-DU3_rw7z.js → NumberInput-DspJO6z6.js} +1 -1
- package/dist/OverflowList/index.d.ts +1 -1
- package/dist/OverflowList/index.js +1 -1
- package/dist/{OverflowList-B2T5UtiQ.js → OverflowList-zXg3g6fy.js} +1 -1
- package/dist/Overlay/index.d.ts +1 -1
- package/dist/Pagination/index.js +1 -1
- package/dist/{Pagination-qCgNwwhr.js → Pagination-DXfgMUKJ.js} +2 -2
- package/dist/Popover/index.d.ts +2 -1
- package/dist/Radio/index.d.ts +2 -2
- package/dist/Radio/index.js +2 -2
- package/dist/{Radio-BioQfwHQ.js → RadioGroup-BqjdSCfJ.js} +21 -88
- package/dist/RadioList/index.d.ts +2 -0
- package/dist/RadioList/index.js +2 -0
- package/dist/RadioList-DI8ujXcT.js +122 -0
- package/dist/Resizable/index.d.ts +2 -0
- package/dist/Resizable/index.js +2 -0
- package/dist/Resizable-BuGKvU9I.js +261 -0
- package/dist/ScrollableArea/index.d.ts +2 -0
- package/dist/ScrollableArea/index.js +2 -0
- package/dist/ScrollableArea-DQDYjnxO.js +78 -0
- package/dist/Section/index.d.ts +2 -0
- package/dist/Section/index.js +2 -0
- package/dist/Section-C48Wqfc7.js +68 -0
- package/dist/SegmentedControl/index.d.ts +1 -1
- package/dist/SelectableCard/index.d.ts +2 -0
- package/dist/SelectableCard/index.js +2 -0
- package/dist/SelectableCard-Bj5s_tIN.js +108 -0
- package/dist/Selector/index.d.ts +1 -1
- package/dist/Selector/index.js +1 -1
- package/dist/{Selector-C6sPJMtH.js → Selector-DlZpQh42.js} +1 -1
- package/dist/SideNav/index.d.ts +1 -1
- package/dist/SideNav/index.js +2 -1
- package/dist/{SideNav-D9lnn-sM.js → SideNav-Cdrigq2A.js} +49 -27
- package/dist/Slider/index.js +1 -1
- package/dist/{Slider-DTnWxtnb.js → Slider-D8h_RKcF.js} +1 -1
- package/dist/Stack/index.d.ts +1 -1
- package/dist/Stepper/index.d.ts +2 -0
- package/dist/Stepper/index.js +2 -0
- package/dist/Stepper-DxmLfh8O.js +423 -0
- package/dist/Switch/index.d.ts +1 -1
- package/dist/Switch/index.js +1 -1
- package/dist/{Switch-CNdnr5TP.js → Switch-SesQzPGZ.js} +4 -2
- package/dist/TabList/index.d.ts +2 -2
- package/dist/TabList/index.js +2 -2
- package/dist/TabList-C411uNQU.js +380 -0
- package/dist/Table/index.d.ts +3 -0
- package/dist/Table/index.js +2 -0
- package/dist/Table-7qRmlIQd.js +967 -0
- package/dist/Text/index.d.ts +1 -1
- package/dist/TextArea/index.d.ts +1 -1
- package/dist/TextArea/index.js +1 -1
- package/dist/{TextArea-BL0NuB99.js → TextArea-Cv9UVbzS.js} +5 -3
- package/dist/TextInput/index.d.ts +1 -1
- package/dist/TextInput/index.js +1 -1
- package/dist/{TextInput-B0IKC7g5.js → TextInput-BasnjVvy.js} +5 -3
- package/dist/Thumbnail/index.d.ts +2 -0
- package/dist/Thumbnail/index.js +2 -0
- package/dist/Thumbnail-BWVzLLyI.js +163 -0
- package/dist/TimeField-l3QzU6vC.js +214 -0
- package/dist/TimeInput/index.d.ts +2 -0
- package/dist/TimeInput/index.js +2 -0
- package/dist/TimeInput-OkgX-xbQ.js +121 -0
- package/dist/Timestamp/index.d.ts +2 -0
- package/dist/Timestamp/index.js +2 -0
- package/dist/Timestamp-DUoP9ari.js +465 -0
- package/dist/ToggleButton/index.d.ts +1 -1
- package/dist/Token/index.js +1 -1
- package/dist/{Token-Ctf9jekS.js → Token-C4KD0fZD.js} +1 -1
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.js +1 -1
- package/dist/{Tokenizer-D5MPgau0.js → Tokenizer-BA8sTMPZ.js} +3 -3
- package/dist/Toolbar/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/TopNav/index.d.ts +1 -1
- package/dist/TopNav/index.js +1 -1
- package/dist/{TopNav-CjbMCbkC.js → TopNav-CZokS7E_.js} +57 -31
- package/dist/TreeList/index.d.ts +2 -0
- package/dist/TreeList/index.js +2 -0
- package/dist/TreeList-CIbAGOMf.js +506 -0
- package/dist/Typeahead/index.d.ts +1 -1
- package/dist/Typeahead/index.js +1 -1
- package/dist/{Typeahead-BMoU3hfx.js → Typeahead-DIw-K4aa.js} +3 -3
- package/dist/composables/index.d.ts +3 -2
- package/dist/composables/index.js +8 -2
- package/dist/composables-CVfjp9h4.js +502 -0
- package/dist/context-BjNya0v8.js +19 -0
- package/dist/context-Cfjh8te1.js +29 -0
- package/dist/{locale-56lkR7OK.js → context-D6ECRdc5.js} +267 -18
- package/dist/index-1uRMrk63.d.ts +54 -0
- package/dist/{index-Dw21t7Uf.d.ts → index-2u4l3wq8.d.ts} +2 -2
- package/dist/{index-CvLlWLIZ.d.ts → index-B4OOtNP8.d.ts} +4 -4
- package/dist/{index-_1-uvr27.d.ts → index-B8MbfMwV.d.ts} +1 -1
- package/dist/{index-MPcg1Pm4.d.ts → index-BKr7yvVv.d.ts} +1 -1
- package/dist/index-Be1czg3M.d.ts +167 -0
- package/dist/{index-Dbmgcm8a.d.ts → index-BeR-1LgF.d.ts} +2 -0
- package/dist/{index-CnVbMebA.d.ts → index-Bqb_Fyju.d.ts} +3 -3
- package/dist/index-BrJzFA5X.d.ts +38 -0
- package/dist/{index-BDZCJ9ri.d.ts → index-BuubzuE8.d.ts} +2 -2
- package/dist/index-By2mSzUA.d.ts +67 -0
- package/dist/{index-HV6W3xCx.d.ts → index-Byar3h1e.d.ts} +1 -1
- package/dist/{index-BQuN_dWR.d.ts → index-BzqRns96.d.ts} +1 -1
- package/dist/{index-BkIgRYGz.d.ts → index-C5p2NeCr.d.ts} +2 -2
- package/dist/{index-Cc2HGODZ.d.ts → index-C6RecznD.d.ts} +3 -3
- package/dist/{index-BSRk8MFK.d.ts → index-C8wDPDcP.d.ts} +1 -1
- package/dist/index-CDdRQQF3.d.ts +170 -0
- package/dist/index-COqjznX0.d.ts +47 -0
- package/dist/{index-Cz9ZHVf6.d.ts → index-CT8KEpec.d.ts} +2 -2
- package/dist/{index-CxspvLBl.d.ts → index-CTolyeii.d.ts} +1 -1
- package/dist/index-CVn0GBdB.d.ts +115 -0
- package/dist/index-CX97hlld.d.ts +158 -0
- package/dist/index-C_2Z65Rp.d.ts +67 -0
- package/dist/index-CjtAH60j.d.ts +38 -0
- package/dist/index-CtlkhQ55.d.ts +36 -0
- package/dist/{index-JeZ0YTyd.d.ts → index-D-ZuubCK.d.ts} +4 -4
- package/dist/index-DA52oIdw.d.ts +171 -0
- package/dist/{index-C8NW9xre.d.ts → index-DGNqi2za.d.ts} +7 -7
- package/dist/{index-CCA4R0Mf.d.ts → index-DT9S92sh.d.ts} +31 -6
- package/dist/index-DXSs3rwa.d.ts +252 -0
- package/dist/{index-C0S2Xzoi.d.ts → index-DYChvBOM.d.ts} +135 -0
- package/dist/index-Da7Jm8Ht.d.ts +10 -0
- package/dist/{index-CaHXYQ_E.d.ts → index-Df2YvC8o.d.ts} +717 -147
- package/dist/{index-DjOdQv5B.d.ts → index-DfgHJE7H.d.ts} +1 -1
- package/dist/{index-CPhDtlv-.d.ts → index-FEy8qFSD.d.ts} +3 -3
- package/dist/{index-DBcbfStA.d.ts → index-SMh42NI8.d.ts} +182 -2
- package/dist/{index-Cdi82rTW.d.ts → index-ZJyk8RtQ.d.ts} +6 -2
- package/dist/{index-BeJqhW4l.d.ts → index-fa72tWIU.d.ts} +3 -3
- package/dist/{index-COxy6LEW.d.ts → index-gW0HW02U.d.ts} +1 -1
- package/dist/{index-BQa836Vz.d.ts → index-iBLzInje.d.ts} +6 -14
- package/dist/{index-BhYFxnjV.d.ts → index-kaKBOZSU.d.ts} +2 -2
- package/dist/index-nKlTsNfV.d.ts +42 -0
- package/dist/index-utZGF4GR.d.ts +79 -0
- package/dist/index.d.ts +76 -59
- package/dist/index.js +119 -78
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.js +2 -1
- package/dist/locale-Cpk_nrLA.js +18 -0
- package/dist/size-BuTzpgnR.d.ts +14 -0
- package/dist/size-xcIqExkS.js +79 -0
- package/dist/{index-Cp0NlzQv.d.ts → types-Db3Owy8Q.d.ts} +1 -36
- package/dist/types-JktRxujg.d.ts +107 -0
- package/dist/useAppShellMobile-DTsyuAJ4.js +19 -0
- package/dist/useClickableContainer-DyNpnSEa.js +112 -0
- package/dist/useFileSelection-BPtaegqK.js +58 -0
- package/dist/useMonthGrid-CmJsZTcB.js +139 -0
- package/dist/useResizable-CeESZS1v.d.ts +72 -0
- package/dist/useScrollableArea-DDk_CluT.js +172 -0
- package/dist/useTimeValue-DWk6oTAZ.js +113 -0
- package/package.json +97 -1
- package/styles/app-shell.css +151 -0
- package/styles/aspect-ratio.css +49 -0
- package/styles/bordered-control.css +87 -0
- package/styles/calendar.css +8 -2
- package/styles/card.css +5 -1
- package/styles/checkbox-list.css +15 -0
- package/styles/clickable-card.css +101 -0
- package/styles/collapsible.css +37 -0
- package/styles/command-palette.css +183 -0
- package/styles/complex-selector.css +114 -0
- package/styles/date-range-input.css +163 -0
- package/styles/date-time-input.css +40 -0
- package/styles/field.css +14 -3
- package/styles/file-input.css +87 -0
- package/styles/form-layout.css +31 -0
- package/styles/heading.css +19 -17
- package/styles/icon.css +32 -0
- package/styles/layout.css +280 -0
- package/styles/metadata-list.css +107 -0
- package/styles/number-input.css +6 -0
- package/styles/radio.css +32 -0
- package/styles/resize-handle.css +128 -0
- package/styles/scrollable-area.css +50 -0
- package/styles/section.css +60 -0
- package/styles/selector.css +10 -0
- package/styles/side-nav.css +26 -0
- package/styles/stepper.css +357 -0
- package/styles/tab-menu.css +91 -0
- package/styles/table.css +256 -0
- package/styles/text-area.css +6 -1
- package/styles/text-input.css +6 -0
- package/styles/thumbnail.css +151 -0
- package/styles/time-input.css +51 -0
- package/styles/timestamp.css +93 -0
- package/styles/tree-list.css +229 -0
- package/styles.css +23 -0
- package/dist/Collapsible-ByXCGhT8.js +0 -102
- package/dist/TabList-LV1U4ZD6.js +0 -184
- package/dist/composables-Dq9RS33w.js +0 -111
- package/dist/index-TnaIHsCS.d.ts +0 -87
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
@layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
|
|
2
|
+
|
|
3
|
+
@layer astryx.components {
|
|
4
|
+
.astryx-tree-list {
|
|
5
|
+
position: relative;
|
|
6
|
+
--tree-list-indent: var(--astryx-spacing-4, 16px);
|
|
7
|
+
--tree-list-row-gap: var(--astryx-spacing-0-5, 2px);
|
|
8
|
+
/*
|
|
9
|
+
* A nested branch only indents 16px, while the guide is centered on the
|
|
10
|
+
* parent chevron (10px margin + 10px). The 1px line therefore ends about
|
|
11
|
+
* 4.5px inside that row. The fill starts one 4px step past that edge.
|
|
12
|
+
*/
|
|
13
|
+
--_tree-guide-clearance: calc(
|
|
14
|
+
var(--astryx-spacing-2, 8px) + var(--astryx-spacing-0-5, 2px) + (var(--astryx-spacing-5, 20px) / 2) + 0.5px - var(--tree-list-indent, 16px) + var(--astryx-spacing-1, 4px)
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.astryx-tree-list__header {
|
|
19
|
+
margin-bottom: var(--astryx-spacing-2, 8px);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.astryx-tree-list__list,
|
|
23
|
+
.astryx-tree-list__group {
|
|
24
|
+
margin: 0;
|
|
25
|
+
padding: 0;
|
|
26
|
+
list-style: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.astryx-tree-list__item {
|
|
30
|
+
position: relative;
|
|
31
|
+
width: 100%;
|
|
32
|
+
margin: 0;
|
|
33
|
+
padding: 0;
|
|
34
|
+
list-style: none;
|
|
35
|
+
outline: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.astryx-tree-list__row {
|
|
39
|
+
position: relative;
|
|
40
|
+
padding-block: calc(var(--tree-list-row-gap, 0px) / 2);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.astryx-tree-list__content {
|
|
44
|
+
position: relative;
|
|
45
|
+
isolation: isolate;
|
|
46
|
+
display: flex;
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: var(--astryx-spacing-2, 8px);
|
|
50
|
+
margin-inline-start: var(--_tree-indent, 0px);
|
|
51
|
+
padding-inline: var(--astryx-spacing-2, 8px);
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
border-radius: var(--astryx-radius-element, 0.625rem);
|
|
54
|
+
font-size: var(--astryx-text-body-size, 1rem);
|
|
55
|
+
line-height: var(--astryx-text-body-leading, 1.4286);
|
|
56
|
+
text-align: start;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.astryx-tree-list__content::before {
|
|
60
|
+
content: '';
|
|
61
|
+
position: absolute;
|
|
62
|
+
z-index: -1;
|
|
63
|
+
inset: 0;
|
|
64
|
+
border-radius: inherit;
|
|
65
|
+
background-color: transparent;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
transition: background-color var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.astryx-tree-list__content[data-guide-inset]::before {
|
|
71
|
+
inset-inline-start: var(--_tree-guide-clearance, 8.5px);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.astryx-tree-list__content[data-density='compact'] {
|
|
75
|
+
padding-block: var(--astryx-spacing-1, 4px);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.astryx-tree-list__content[data-density='balanced'] {
|
|
79
|
+
padding-block: var(--astryx-spacing-2, 8px);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.astryx-tree-list__content[data-density='spacious'] {
|
|
83
|
+
padding-block: var(--astryx-spacing-3, 12px);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.astryx-tree-list__content[data-selected='true']::before {
|
|
87
|
+
background-color: var(--astryx-color-accent-muted, light-dark(#f1f1f1, #262626));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.astryx-tree-list__content[data-interactive='true'] {
|
|
91
|
+
cursor: pointer;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@media (hover: hover) {
|
|
95
|
+
.astryx-tree-list__content[data-interactive='true']:hover::before {
|
|
96
|
+
background-color: var(--astryx-color-overlay-hover, light-dark(#0000000d, #ffffff0d));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.astryx-tree-list__content[data-selected='true']:hover::before {
|
|
100
|
+
background-color: var(--astryx-color-accent-muted, light-dark(#f1f1f1, #262626));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.astryx-tree-list__item:focus-visible > .astryx-tree-list__row > .astryx-tree-list__content {
|
|
105
|
+
outline: var(--astryx-focus-outline-width, 2px) var(--astryx-focus-outline-style, solid) var(--astryx-focus-outline-color, var(--astryx-color-accent));
|
|
106
|
+
outline-offset: var(--astryx-focus-outline-offset, 3px);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.astryx-tree-list__content[data-disabled='true'] {
|
|
110
|
+
cursor: default;
|
|
111
|
+
opacity: 0.5;
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.astryx-tree-list__label {
|
|
116
|
+
color: var(--astryx-color-text-primary, light-dark(#171717, #fafafa));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.astryx-tree-list__description {
|
|
120
|
+
color: var(--astryx-color-text-secondary, light-dark(#525252, #a3a3a3));
|
|
121
|
+
font-size: var(--astryx-text-supporting-size, 0.875rem);
|
|
122
|
+
line-height: var(--astryx-text-supporting-leading, 1.6667);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.astryx-tree-list__main,
|
|
126
|
+
.astryx-tree-list__action {
|
|
127
|
+
display: flex;
|
|
128
|
+
flex: 1;
|
|
129
|
+
flex-direction: column;
|
|
130
|
+
min-width: 0;
|
|
131
|
+
padding: 0;
|
|
132
|
+
border: 0;
|
|
133
|
+
background: transparent;
|
|
134
|
+
color: inherit;
|
|
135
|
+
font: inherit;
|
|
136
|
+
text-align: start;
|
|
137
|
+
text-decoration: none;
|
|
138
|
+
outline: none;
|
|
139
|
+
cursor: inherit;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.astryx-tree-list__start,
|
|
143
|
+
.astryx-tree-list__end {
|
|
144
|
+
display: flex;
|
|
145
|
+
flex-shrink: 0;
|
|
146
|
+
align-items: center;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* External icon classes (UnoCSS and the like) size themselves to 100% of
|
|
151
|
+
* their box. The box has to be explicit or the glyph collapses to nothing.
|
|
152
|
+
* 1rem matches Icon size sm, the size the original file-tree icons use.
|
|
153
|
+
*/
|
|
154
|
+
.astryx-tree-list__icon {
|
|
155
|
+
display: inline-flex;
|
|
156
|
+
flex: none;
|
|
157
|
+
width: 1rem;
|
|
158
|
+
height: 1rem;
|
|
159
|
+
color: var(--astryx-color-text-primary, currentcolor);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.astryx-tree-list__icon > i {
|
|
163
|
+
display: block;
|
|
164
|
+
width: 100%;
|
|
165
|
+
height: 100%;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.astryx-tree-list__end {
|
|
169
|
+
margin-inline-start: auto;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.astryx-tree-list__chevron {
|
|
173
|
+
display: flex;
|
|
174
|
+
flex-shrink: 0;
|
|
175
|
+
align-items: center;
|
|
176
|
+
justify-content: center;
|
|
177
|
+
width: var(--astryx-spacing-4, 16px);
|
|
178
|
+
height: var(--astryx-spacing-4, 16px);
|
|
179
|
+
margin-inline: var(--astryx-spacing-1, 4px) calc(var(--astryx-spacing-1, 4px) * -1);
|
|
180
|
+
padding: 0;
|
|
181
|
+
border: 0;
|
|
182
|
+
border-radius: var(--astryx-radius-inner, 0.375rem);
|
|
183
|
+
background: transparent;
|
|
184
|
+
color: var(--astryx-color-icon-secondary, light-dark(#737373, #a3a3a3));
|
|
185
|
+
cursor: pointer;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.astryx-tree-list__chevron .astryx-icon {
|
|
189
|
+
width: var(--astryx-spacing-4, 16px);
|
|
190
|
+
height: var(--astryx-spacing-4, 16px);
|
|
191
|
+
font-size: var(--astryx-spacing-4, 16px);
|
|
192
|
+
transition: transform var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.astryx-tree-list__chevron[data-state='expanded'] .astryx-icon {
|
|
196
|
+
transform: rotate(90deg);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
[dir='rtl'] .astryx-tree-list__chevron .astryx-icon {
|
|
200
|
+
transform: scaleX(-1);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
[dir='rtl'] .astryx-tree-list__chevron[data-state='expanded'] .astryx-icon {
|
|
204
|
+
transform: scaleX(-1) rotate(90deg);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.astryx-tree-list__guide {
|
|
208
|
+
position: absolute;
|
|
209
|
+
width: var(--astryx-spacing-5, 20px);
|
|
210
|
+
height: 100%;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.astryx-tree-list__guide-line {
|
|
214
|
+
position: absolute;
|
|
215
|
+
inset-inline: 0;
|
|
216
|
+
width: 1px;
|
|
217
|
+
margin: auto;
|
|
218
|
+
border-radius: 1px;
|
|
219
|
+
background-color: var(--astryx-color-border-emphasized, light-dark(#d4d4d4, #525252));
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.astryx-tree-list__guide-line[data-span='full'] {
|
|
223
|
+
height: calc(100% + 1px);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.astryx-tree-list__guide-line[data-span='last'] {
|
|
227
|
+
height: calc(100% - var(--tree-list-row-gap, 0px) / 2);
|
|
228
|
+
}
|
|
229
|
+
}
|
package/styles.css
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/* 这个文件由 `pnpm sync` 生成,不要手改。 */
|
|
2
2
|
@import './styles/alert-dialog.css';
|
|
3
|
+
@import './styles/app-shell.css';
|
|
4
|
+
@import './styles/aspect-ratio.css';
|
|
3
5
|
@import './styles/avatar.css';
|
|
4
6
|
@import './styles/avatar-group.css';
|
|
5
7
|
@import './styles/badge.css';
|
|
6
8
|
@import './styles/banner.css';
|
|
7
9
|
@import './styles/blockquote.css';
|
|
10
|
+
@import './styles/bordered-control.css';
|
|
8
11
|
@import './styles/bottom-sheet.css';
|
|
9
12
|
@import './styles/breadcrumbs.css';
|
|
10
13
|
@import './styles/button.css';
|
|
@@ -14,24 +17,34 @@
|
|
|
14
17
|
@import './styles/chat.css';
|
|
15
18
|
@import './styles/checkbox-indicator.css';
|
|
16
19
|
@import './styles/checkbox-input.css';
|
|
20
|
+
@import './styles/checkbox-list.css';
|
|
17
21
|
@import './styles/citation.css';
|
|
22
|
+
@import './styles/clickable-card.css';
|
|
18
23
|
@import './styles/code.css';
|
|
19
24
|
@import './styles/collapsible.css';
|
|
25
|
+
@import './styles/command-palette.css';
|
|
26
|
+
@import './styles/complex-selector.css';
|
|
20
27
|
@import './styles/context-menu.css';
|
|
28
|
+
@import './styles/date-range-input.css';
|
|
29
|
+
@import './styles/date-time-input.css';
|
|
21
30
|
@import './styles/dialog.css';
|
|
22
31
|
@import './styles/dialog-header.css';
|
|
23
32
|
@import './styles/divider.css';
|
|
24
33
|
@import './styles/dropdown-menu.css';
|
|
25
34
|
@import './styles/empty-state.css';
|
|
26
35
|
@import './styles/field.css';
|
|
36
|
+
@import './styles/file-input.css';
|
|
37
|
+
@import './styles/form-layout.css';
|
|
27
38
|
@import './styles/grid.css';
|
|
28
39
|
@import './styles/heading.css';
|
|
29
40
|
@import './styles/hover-card.css';
|
|
30
41
|
@import './styles/icon.css';
|
|
31
42
|
@import './styles/kbd.css';
|
|
43
|
+
@import './styles/layout.css';
|
|
32
44
|
@import './styles/link.css';
|
|
33
45
|
@import './styles/list.css';
|
|
34
46
|
@import './styles/markdown.css';
|
|
47
|
+
@import './styles/metadata-list.css';
|
|
35
48
|
@import './styles/mobile-nav.css';
|
|
36
49
|
@import './styles/more-menu.css';
|
|
37
50
|
@import './styles/motion.css';
|
|
@@ -43,6 +56,9 @@
|
|
|
43
56
|
@import './styles/popover.css';
|
|
44
57
|
@import './styles/progress-bar.css';
|
|
45
58
|
@import './styles/radio.css';
|
|
59
|
+
@import './styles/resize-handle.css';
|
|
60
|
+
@import './styles/scrollable-area.css';
|
|
61
|
+
@import './styles/section.css';
|
|
46
62
|
@import './styles/segmented-control.css';
|
|
47
63
|
@import './styles/side-nav.css';
|
|
48
64
|
@import './styles/skeleton.css';
|
|
@@ -50,11 +66,17 @@
|
|
|
50
66
|
@import './styles/spinner.css';
|
|
51
67
|
@import './styles/stack.css';
|
|
52
68
|
@import './styles/status-dot.css';
|
|
69
|
+
@import './styles/stepper.css';
|
|
53
70
|
@import './styles/switch.css';
|
|
54
71
|
@import './styles/tab-list.css';
|
|
72
|
+
@import './styles/tab-menu.css';
|
|
73
|
+
@import './styles/table.css';
|
|
55
74
|
@import './styles/text.css';
|
|
56
75
|
@import './styles/text-area.css';
|
|
57
76
|
@import './styles/text-input.css';
|
|
77
|
+
@import './styles/thumbnail.css';
|
|
78
|
+
@import './styles/time-input.css';
|
|
79
|
+
@import './styles/timestamp.css';
|
|
58
80
|
@import './styles/toast.css';
|
|
59
81
|
@import './styles/toggle-button.css';
|
|
60
82
|
@import './styles/token.css';
|
|
@@ -62,5 +84,6 @@
|
|
|
62
84
|
@import './styles/toolbar.css';
|
|
63
85
|
@import './styles/tooltip.css';
|
|
64
86
|
@import './styles/top-nav.css';
|
|
87
|
+
@import './styles/tree-list.css';
|
|
65
88
|
@import './styles/typeahead.css';
|
|
66
89
|
@import './styles/visually-hidden.css';
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { t as _sfc_main$1 } from "./Icon-B6qNgBP9.js";
|
|
2
|
-
import { Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, openBlock, renderSlot, shallowRef, toDisplayString, useId, useModel, useTemplateRef, vShow, withCtx, withDirectives } from "vue";
|
|
3
|
-
import "../styles/collapsible.css";
|
|
4
|
-
//#region src/Collapsible/Collapsible.vue
|
|
5
|
-
const _hoisted_1 = [
|
|
6
|
-
"data-chevron-position",
|
|
7
|
-
"data-open",
|
|
8
|
-
"data-disabled",
|
|
9
|
-
"aria-expanded",
|
|
10
|
-
"aria-disabled",
|
|
11
|
-
"tabindex"
|
|
12
|
-
];
|
|
13
|
-
const _hoisted_2 = { class: "astryx-collapsible-trigger-label" };
|
|
14
|
-
const _hoisted_3 = ["data-open"];
|
|
15
|
-
const _hoisted_4 = { class: "astryx-collapsible-content-inner" };
|
|
16
|
-
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
17
|
-
name: "AstryxCollapsible",
|
|
18
|
-
__name: "Collapsible",
|
|
19
|
-
props: /*@__PURE__*/ mergeModels({
|
|
20
|
-
trigger: {},
|
|
21
|
-
defaultIsOpen: {
|
|
22
|
-
type: Boolean,
|
|
23
|
-
default: true
|
|
24
|
-
},
|
|
25
|
-
isDisabled: {
|
|
26
|
-
type: Boolean,
|
|
27
|
-
default: false
|
|
28
|
-
},
|
|
29
|
-
chevronPosition: { default: "end" }
|
|
30
|
-
}, {
|
|
31
|
-
"isOpen": {
|
|
32
|
-
type: Boolean,
|
|
33
|
-
default: void 0
|
|
34
|
-
},
|
|
35
|
-
"isOpenModifiers": {}
|
|
36
|
-
}),
|
|
37
|
-
emits: /*@__PURE__*/ mergeModels(["openChange"], ["update:isOpen"]),
|
|
38
|
-
setup(__props, { expose: __expose, emit: __emit }) {
|
|
39
|
-
const props = __props;
|
|
40
|
-
const emit = __emit;
|
|
41
|
-
const open = useModel(__props, "isOpen");
|
|
42
|
-
const localIsOpen = shallowRef(props.defaultIsOpen);
|
|
43
|
-
const isOpen = computed(() => open.value ?? localIsOpen.value);
|
|
44
|
-
const isChevronAtStart = computed(() => props.chevronPosition === "start");
|
|
45
|
-
const contentId = `astryx-collapsible-${useId()}`;
|
|
46
|
-
const root = useTemplateRef("root");
|
|
47
|
-
__expose({ element: computed(() => root.value ?? null) });
|
|
48
|
-
function toggle() {
|
|
49
|
-
if (props.isDisabled) return;
|
|
50
|
-
const next = !isOpen.value;
|
|
51
|
-
localIsOpen.value = next;
|
|
52
|
-
open.value = next;
|
|
53
|
-
emit("openChange", next);
|
|
54
|
-
}
|
|
55
|
-
return (_ctx, _cache) => {
|
|
56
|
-
return openBlock(), createElementBlock("div", {
|
|
57
|
-
ref_key: "root",
|
|
58
|
-
ref: root,
|
|
59
|
-
class: "astryx-collapsible"
|
|
60
|
-
}, [createElementVNode("button", {
|
|
61
|
-
type: "button",
|
|
62
|
-
class: "astryx-collapsible-trigger",
|
|
63
|
-
"data-chevron-position": __props.chevronPosition,
|
|
64
|
-
"data-open": isOpen.value ? "open" : void 0,
|
|
65
|
-
"data-disabled": __props.isDisabled ? "disabled" : void 0,
|
|
66
|
-
"aria-expanded": isOpen.value,
|
|
67
|
-
"aria-controls": contentId,
|
|
68
|
-
"aria-disabled": __props.isDisabled || void 0,
|
|
69
|
-
tabindex: __props.isDisabled ? -1 : void 0,
|
|
70
|
-
onClick: toggle
|
|
71
|
-
}, [
|
|
72
|
-
isChevronAtStart.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
73
|
-
key: 0,
|
|
74
|
-
class: "astryx-collapsible-chevron",
|
|
75
|
-
color: "secondary",
|
|
76
|
-
icon: "chevronRight",
|
|
77
|
-
size: "sm"
|
|
78
|
-
})) : createCommentVNode("v-if", true),
|
|
79
|
-
createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "trigger", {}, () => [createTextVNode(toDisplayString(__props.trigger), 1)])]),
|
|
80
|
-
!isChevronAtStart.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
81
|
-
key: 1,
|
|
82
|
-
class: "astryx-collapsible-chevron",
|
|
83
|
-
color: "secondary",
|
|
84
|
-
icon: "chevronDown",
|
|
85
|
-
size: "sm"
|
|
86
|
-
})) : createCommentVNode("v-if", true)
|
|
87
|
-
], 8, _hoisted_1), createVNode(Transition, {
|
|
88
|
-
name: "astryx-collapsible-reveal",
|
|
89
|
-
persisted: ""
|
|
90
|
-
}, {
|
|
91
|
-
default: withCtx(() => [withDirectives(createElementVNode("div", {
|
|
92
|
-
id: contentId,
|
|
93
|
-
class: "astryx-collapsible-content",
|
|
94
|
-
"data-open": isOpen.value ? "open" : void 0
|
|
95
|
-
}, [createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default")])], 8, _hoisted_3), [[vShow, isOpen.value]])]),
|
|
96
|
-
_: 3
|
|
97
|
-
})], 512);
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
//#endregion
|
|
102
|
-
export { _sfc_main as t };
|
package/dist/TabList-LV1U4ZD6.js
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { computed, createElementBlock, createElementVNode, defineComponent, inject, normalizeClass, onMounted, onUnmounted, openBlock, provide, reactive, ref, renderSlot, watch } from "vue";
|
|
2
|
-
import "../styles/tab-list.css";
|
|
3
|
-
//#region src/TabList/context.ts
|
|
4
|
-
const tabListContextKey = Symbol("tabListContext");
|
|
5
|
-
//#endregion
|
|
6
|
-
//#region src/TabList/Tab.vue
|
|
7
|
-
const _hoisted_1$1 = [
|
|
8
|
-
"id",
|
|
9
|
-
"aria-selected",
|
|
10
|
-
"aria-controls",
|
|
11
|
-
"tabindex",
|
|
12
|
-
"disabled"
|
|
13
|
-
];
|
|
14
|
-
const _hoisted_2 = { class: "astryx-tab__label" };
|
|
15
|
-
const _sfc_main$1 = /*@__PURE__*/ defineComponent({
|
|
16
|
-
__name: "Tab",
|
|
17
|
-
props: {
|
|
18
|
-
value: {},
|
|
19
|
-
panelId: {},
|
|
20
|
-
disabled: {
|
|
21
|
-
type: Boolean,
|
|
22
|
-
default: false
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
setup(__props) {
|
|
26
|
-
const props = __props;
|
|
27
|
-
const context = inject(tabListContextKey);
|
|
28
|
-
const rootRef = ref();
|
|
29
|
-
const isSelected = computed(() => context?.value.value === props.value);
|
|
30
|
-
const tabIndex = computed(() => isSelected.value && !props.disabled ? 0 : -1);
|
|
31
|
-
const classes = computed(() => [
|
|
32
|
-
"astryx-tab",
|
|
33
|
-
`astryx-tab--size-${context?.size.value ?? "md"}`,
|
|
34
|
-
isSelected.value && "astryx-tab--selected",
|
|
35
|
-
props.disabled && "astryx-tab--disabled"
|
|
36
|
-
]);
|
|
37
|
-
function handleClick() {
|
|
38
|
-
if (props.disabled || !context) return;
|
|
39
|
-
context.selectTab(props.value);
|
|
40
|
-
}
|
|
41
|
-
function handleKeydown(event) {
|
|
42
|
-
if (props.disabled || !context) return;
|
|
43
|
-
switch (event.key) {
|
|
44
|
-
case "ArrowRight":
|
|
45
|
-
case "ArrowDown":
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
context.moveFocus("next", props.value);
|
|
48
|
-
break;
|
|
49
|
-
case "ArrowLeft":
|
|
50
|
-
case "ArrowUp":
|
|
51
|
-
event.preventDefault();
|
|
52
|
-
context.moveFocus("prev", props.value);
|
|
53
|
-
break;
|
|
54
|
-
case "Home":
|
|
55
|
-
event.preventDefault();
|
|
56
|
-
context.moveFocus("first", props.value);
|
|
57
|
-
break;
|
|
58
|
-
case "End":
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
context.moveFocus("last", props.value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onMounted(() => {
|
|
64
|
-
if (!context || !rootRef.value) return;
|
|
65
|
-
context.registerTab({
|
|
66
|
-
value: props.value,
|
|
67
|
-
disabled: props.disabled,
|
|
68
|
-
el: rootRef.value
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
onUnmounted(() => {
|
|
72
|
-
context?.unregisterTab(props.value);
|
|
73
|
-
});
|
|
74
|
-
watch(() => props.disabled, (disabled) => {
|
|
75
|
-
if (!context || !rootRef.value) return;
|
|
76
|
-
context.registerTab({
|
|
77
|
-
value: props.value,
|
|
78
|
-
disabled,
|
|
79
|
-
el: rootRef.value
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
return (_ctx, _cache) => {
|
|
83
|
-
return openBlock(), createElementBlock("button", {
|
|
84
|
-
id: `astryx-tab-${__props.value}`,
|
|
85
|
-
ref_key: "rootRef",
|
|
86
|
-
ref: rootRef,
|
|
87
|
-
type: "button",
|
|
88
|
-
role: "tab",
|
|
89
|
-
class: normalizeClass(classes.value),
|
|
90
|
-
"aria-selected": isSelected.value,
|
|
91
|
-
"aria-controls": __props.panelId,
|
|
92
|
-
tabindex: tabIndex.value,
|
|
93
|
-
disabled: __props.disabled,
|
|
94
|
-
onClick: handleClick,
|
|
95
|
-
onKeydown: handleKeydown
|
|
96
|
-
}, [createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "default")])], 42, _hoisted_1$1);
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
//#endregion
|
|
101
|
-
//#region src/TabList/TabList.vue
|
|
102
|
-
const _hoisted_1 = { class: "astryx-tab-list__strip" };
|
|
103
|
-
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
104
|
-
__name: "TabList",
|
|
105
|
-
props: {
|
|
106
|
-
value: {},
|
|
107
|
-
size: { default: "md" },
|
|
108
|
-
layout: { default: "hug" },
|
|
109
|
-
hasDivider: {
|
|
110
|
-
type: Boolean,
|
|
111
|
-
default: false
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
emits: ["update:value", "change"],
|
|
115
|
-
setup(__props, { emit: __emit }) {
|
|
116
|
-
const props = __props;
|
|
117
|
-
const emit = __emit;
|
|
118
|
-
const tabs = reactive([]);
|
|
119
|
-
const focusedValue = ref(props.value);
|
|
120
|
-
const enabledTabs = computed(() => tabs.filter((tab) => !tab.disabled));
|
|
121
|
-
function selectTab(value) {
|
|
122
|
-
if (value === props.value) return;
|
|
123
|
-
emit("update:value", value);
|
|
124
|
-
emit("change", value);
|
|
125
|
-
focusedValue.value = value;
|
|
126
|
-
}
|
|
127
|
-
function moveFocus(direction, value) {
|
|
128
|
-
const stops = enabledTabs.value;
|
|
129
|
-
if (stops.length === 0) return;
|
|
130
|
-
const index = stops.findIndex((tab) => tab.value === value);
|
|
131
|
-
let nextIndex = index;
|
|
132
|
-
switch (direction) {
|
|
133
|
-
case "next":
|
|
134
|
-
nextIndex = index >= 0 ? (index + 1) % stops.length : 0;
|
|
135
|
-
break;
|
|
136
|
-
case "prev":
|
|
137
|
-
nextIndex = index >= 0 ? (index - 1 + stops.length) % stops.length : stops.length - 1;
|
|
138
|
-
break;
|
|
139
|
-
case "first":
|
|
140
|
-
nextIndex = 0;
|
|
141
|
-
break;
|
|
142
|
-
case "last": nextIndex = stops.length - 1;
|
|
143
|
-
}
|
|
144
|
-
const next = stops[nextIndex];
|
|
145
|
-
if (!next) return;
|
|
146
|
-
focusedValue.value = next.value;
|
|
147
|
-
selectTab(next.value);
|
|
148
|
-
next.el.focus();
|
|
149
|
-
}
|
|
150
|
-
function registerTab(tab) {
|
|
151
|
-
const existingIndex = tabs.findIndex((t) => t.value === tab.value);
|
|
152
|
-
if (existingIndex >= 0) tabs.splice(existingIndex, 1, tab);
|
|
153
|
-
else tabs.push(tab);
|
|
154
|
-
}
|
|
155
|
-
function unregisterTab(value) {
|
|
156
|
-
const index = tabs.findIndex((t) => t.value === value);
|
|
157
|
-
if (index >= 0) tabs.splice(index, 1);
|
|
158
|
-
}
|
|
159
|
-
provide(tabListContextKey, {
|
|
160
|
-
value: computed(() => props.value),
|
|
161
|
-
size: computed(() => props.size),
|
|
162
|
-
layout: computed(() => props.layout),
|
|
163
|
-
hasDivider: computed(() => props.hasDivider),
|
|
164
|
-
tabs,
|
|
165
|
-
focusedValue,
|
|
166
|
-
registerTab,
|
|
167
|
-
unregisterTab,
|
|
168
|
-
selectTab,
|
|
169
|
-
moveFocus
|
|
170
|
-
});
|
|
171
|
-
return (_ctx, _cache) => {
|
|
172
|
-
return openBlock(), createElementBlock("div", {
|
|
173
|
-
class: normalizeClass(["astryx-tab-list", [
|
|
174
|
-
`astryx-tab-list--size-${__props.size}`,
|
|
175
|
-
`astryx-tab-list--layout-${__props.layout}`,
|
|
176
|
-
__props.hasDivider && "astryx-tab-list--has-divider"
|
|
177
|
-
]]),
|
|
178
|
-
role: "tablist"
|
|
179
|
-
}, [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default")])], 2);
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
//#endregion
|
|
184
|
-
export { _sfc_main$1 as n, _sfc_main as t };
|