@astryxdesign/core 0.4.6 → 0.4.7-canary.29be96d
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/CHANGELOG.md +35 -0
- package/dist/BottomSheet/BottomSheet.d.ts +1 -0
- package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheet.js +54 -15
- package/dist/BottomSheet/BottomSheetEdgeTint.d.ts +6 -0
- package/dist/BottomSheet/BottomSheetEdgeTint.d.ts.map +1 -0
- package/dist/BottomSheet/BottomSheetEdgeTint.js +62 -0
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +1 -0
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts +1 -0
- package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetSwitcher.js +10 -4
- package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
- package/dist/BottomSheet/useSheetGestures.js +23 -5
- package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/Breadcrumbs/BreadcrumbItem.js +5 -5
- package/dist/Calendar/Calendar.d.ts +3 -1
- package/dist/Calendar/Calendar.d.ts.map +1 -1
- package/dist/Calendar/Calendar.js +13 -14
- package/dist/Calendar/getInitialFocusDate.d.ts +46 -0
- package/dist/Calendar/getInitialFocusDate.d.ts.map +1 -0
- package/dist/Calendar/getInitialFocusDate.js +62 -0
- package/dist/Chat/ChatMessageList.d.ts +22 -3
- package/dist/Chat/ChatMessageList.d.ts.map +1 -1
- package/dist/Chat/ChatMessageList.js +6 -3
- package/dist/DateInput/TouchDateField.d.ts.map +1 -1
- package/dist/DateInput/TouchDateField.js +34 -1
- package/dist/Dialog/Dialog.d.ts +7 -1
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +48 -22
- package/dist/Heading/Heading.d.ts.map +1 -1
- package/dist/Heading/Heading.js +6 -2
- package/dist/Kbd/Kbd.d.ts.map +1 -1
- package/dist/Kbd/Kbd.js +10 -3
- package/dist/Markdown/index.d.ts +1 -1
- package/dist/Markdown/index.d.ts.map +1 -1
- package/dist/Markdown/parser.d.ts +38 -1
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +149 -23
- package/dist/MultiSelector/MultiSelector.d.ts +15 -1
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +17 -6
- package/dist/MultiSelector/index.d.ts +1 -1
- package/dist/MultiSelector/index.d.ts.map +1 -1
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +5 -0
- package/dist/Stepper/Step.d.ts +140 -0
- package/dist/Stepper/Step.d.ts.map +1 -0
- package/dist/Stepper/Step.js +1045 -0
- package/dist/Stepper/StepStatus.d.ts +24 -0
- package/dist/Stepper/StepStatus.d.ts.map +1 -0
- package/dist/Stepper/StepStatus.js +1 -0
- package/dist/Stepper/Stepper.d.ts +93 -0
- package/dist/Stepper/Stepper.d.ts.map +1 -0
- package/dist/Stepper/Stepper.js +184 -0
- package/dist/Stepper/StepperContext.d.ts +41 -0
- package/dist/Stepper/StepperContext.d.ts.map +1 -0
- package/dist/Stepper/StepperContext.js +34 -0
- package/dist/Stepper/index.d.ts +8 -0
- package/dist/Stepper/index.d.ts.map +1 -0
- package/dist/Stepper/index.js +7 -0
- package/dist/Stepper/stepper.stylex.d.ts +15 -0
- package/dist/Stepper/stepper.stylex.d.ts.map +1 -0
- package/dist/Stepper/stepper.stylex.js +20 -0
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +5 -1
- package/dist/Table/BaseTable.d.ts.map +1 -1
- package/dist/Table/BaseTable.js +4 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
- package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +20 -8
- package/dist/Table/plugins/rowStatus/useTableRowStatus.d.ts.map +1 -1
- package/dist/Table/plugins/rowStatus/useTableRowStatus.js +10 -3
- package/dist/Table/plugins/selection/useTableSelection.d.ts +16 -0
- package/dist/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
- package/dist/Table/plugins/selection/useTableSelection.js +19 -5
- package/dist/Table/types.d.ts +22 -4
- package/dist/Table/types.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.d.ts.map +1 -1
- package/dist/Table/useBaseTablePlugins.js +5 -0
- package/dist/Text/Text.d.ts.map +1 -1
- package/dist/Text/Text.js +6 -2
- package/dist/astryx.css +41 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useHotkeys.d.ts.map +1 -1
- package/dist/hooks/useHotkeys.js +10 -3
- package/dist/hooks/useListFocus.d.ts +5 -2
- package/dist/hooks/useListFocus.d.ts.map +1 -1
- package/dist/hooks/useListFocus.js +12 -6
- package/dist/hooks/useMergedRefs.d.ts +18 -0
- package/dist/hooks/useMergedRefs.d.ts.map +1 -0
- package/dist/hooks/useMergedRefs.js +25 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/timeParser.d.ts +1 -1
- package/dist/utils/timeParser.d.ts.map +1 -1
- package/dist/utils/timeParser.js +26 -12
- package/locales/en.json +14 -6
- package/locales/pseudo.json +6 -0
- package/package.json +8 -3
- package/src/Avatar/Avatar.doc.mjs +2 -1
- package/src/BottomSheet/BottomSheet.test.tsx +123 -0
- package/src/BottomSheet/BottomSheet.tsx +36 -4
- package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +225 -0
- package/src/BottomSheet/BottomSheetEdgeTint.tsx +82 -0
- package/src/BottomSheet/BottomSheetPanel.test.tsx +66 -0
- package/src/BottomSheet/BottomSheetPanel.tsx +19 -0
- package/src/BottomSheet/BottomSheetSwitcher.tsx +13 -0
- package/src/BottomSheet/useSheetGestures.test.ts +27 -0
- package/src/BottomSheet/useSheetGestures.ts +25 -5
- package/src/Breadcrumbs/BreadcrumbItem.tsx +2 -1
- package/src/Button/Button.doc.mjs +22 -0
- package/src/Calendar/Calendar.doc.mjs +4 -3
- package/src/Calendar/Calendar.test.tsx +52 -0
- package/src/Calendar/Calendar.tsx +18 -15
- package/src/Calendar/getInitialFocusDate.test.ts +94 -0
- package/src/Calendar/getInitialFocusDate.ts +93 -0
- package/src/Chat/ChatMessageList.doc.mjs +9 -1
- package/src/Chat/ChatMessageList.test.tsx +46 -0
- package/src/Chat/ChatMessageList.tsx +28 -4
- package/src/CodeBlock/CodeBlock.doc.mjs +6 -0
- package/src/ContextMenu/ContextMenu.doc.mjs +5 -0
- package/src/DateInput/DateInputTouch.test.tsx +36 -0
- package/src/DateInput/TouchDateField.tsx +35 -1
- package/src/Dialog/Dialog.doc.mjs +8 -3
- package/src/Dialog/Dialog.test.tsx +71 -0
- package/src/Dialog/Dialog.tsx +72 -20
- package/src/Field/Field.doc.mjs +11 -0
- package/src/Heading/Heading.test.tsx +23 -1
- package/src/Heading/Heading.tsx +6 -2
- package/src/Kbd/Kbd.test.tsx +17 -0
- package/src/Kbd/Kbd.tsx +10 -3
- package/src/Link/Link.doc.mjs +11 -0
- package/src/Markdown/index.ts +1 -0
- package/src/Markdown/parser.perf.test.ts +71 -1
- package/src/Markdown/parser.test.ts +145 -2
- package/src/Markdown/parser.ts +208 -22
- package/src/MoreMenu/MoreMenu.doc.mjs +7 -1
- package/src/MultiSelector/MultiSelector.doc.mjs +10 -0
- package/src/MultiSelector/MultiSelector.test.tsx +105 -0
- package/src/MultiSelector/MultiSelector.tsx +50 -6
- package/src/MultiSelector/index.ts +1 -0
- package/src/NumberInput/NumberInput.doc.mjs +5 -0
- package/src/Popover/Popover.test.tsx +27 -1
- package/src/PowerSearch/PowerSearch.doc.mjs +10 -0
- package/src/Selector/Selector.doc.mjs +11 -0
- package/src/Selector/Selector.test.tsx +21 -0
- package/src/Selector/Selector.tsx +11 -1
- package/src/Stepper/Step.doc.mjs +98 -0
- package/src/Stepper/Step.tsx +1638 -0
- package/src/Stepper/StepStatus.ts +26 -0
- package/src/Stepper/Stepper.doc.mjs +370 -0
- package/src/Stepper/Stepper.test.tsx +1024 -0
- package/src/Stepper/Stepper.tsx +258 -0
- package/src/Stepper/StepperContext.ts +71 -0
- package/src/Stepper/index.ts +18 -0
- package/src/Stepper/stepper.stylex.ts +19 -0
- package/src/TabList/Tab.tsx +5 -1
- package/src/TabList/TabList.test.tsx +21 -4
- package/src/Table/BaseTable.tsx +6 -3
- package/src/Table/Table.test.tsx +35 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +112 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +100 -0
- package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +17 -8
- package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +13 -7
- package/src/Table/plugins/rowStatus/useTableRowStatus.tsx +12 -3
- package/src/Table/plugins/selection/useTableSelection.test.tsx +76 -0
- package/src/Table/plugins/selection/useTableSelection.tsx +40 -7
- package/src/Table/types.ts +22 -4
- package/src/Table/useBaseTablePlugins.ts +5 -0
- package/src/Table/useTableGroupedRows.doc.mjs +5 -4
- package/src/Table/useTableRowStatus.doc.mjs +1 -1
- package/src/Table/useTableSelection.doc.mjs +31 -0
- package/src/Text/Text.test.tsx +23 -1
- package/src/Text/Text.tsx +6 -2
- package/src/TextInput/TextInput.doc.mjs +10 -0
- package/src/Toast/Toast.doc.mjs +6 -0
- package/src/Tokenizer/Tokenizer.doc.mjs +10 -0
- package/src/Toolbar/Toolbar.doc.mjs +5 -0
- package/src/__tests__/apiContractDrift.test.tsx +80 -0
- package/src/__tests__/fieldContract.test.tsx +24 -0
- package/src/__tests__/structuralComponentContract.test.tsx +39 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useHotkeys.test.ts +18 -0
- package/src/hooks/useHotkeys.ts +10 -3
- package/src/hooks/useListFocus.doc.mjs +2 -2
- package/src/hooks/useListFocus.test.tsx +65 -3
- package/src/hooks/useListFocus.ts +15 -7
- package/src/hooks/useMergedRefs.doc.mjs +79 -0
- package/src/hooks/useMergedRefs.test.tsx +62 -0
- package/src/hooks/useMergedRefs.ts +36 -0
- package/src/index.ts +1 -0
- package/src/theme/MediaTheme.doc.mjs +5 -5
- package/src/utils/timeParser.test.ts +6 -1
- package/src/utils/timeParser.ts +35 -13
|
@@ -35,7 +35,14 @@ export type InlineNode = {
|
|
|
35
35
|
} | {
|
|
36
36
|
type: 'break';
|
|
37
37
|
};
|
|
38
|
-
export type BlockNode = {
|
|
38
|
+
export type BlockNode = BlockNodeKind & {
|
|
39
|
+
/**
|
|
40
|
+
* Where this block came from in the source, when parsed with the
|
|
41
|
+
* `sourceRanges` option. Top-level blocks only.
|
|
42
|
+
*/
|
|
43
|
+
range?: SourceRange;
|
|
44
|
+
};
|
|
45
|
+
type BlockNodeKind = {
|
|
39
46
|
type: 'heading';
|
|
40
47
|
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
41
48
|
children: InlineNode[];
|
|
@@ -69,6 +76,19 @@ export type BlockNode = {
|
|
|
69
76
|
src: string;
|
|
70
77
|
alt: string;
|
|
71
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* Where a block sits in the source string handed to `parseMarkdown`:
|
|
81
|
+
* `source.slice(start, end)` is the block, and `end` excludes the block's
|
|
82
|
+
* trailing blank lines.
|
|
83
|
+
*
|
|
84
|
+
* An object rather than a `[start, end]` tuple so a second way of addressing
|
|
85
|
+
* the same block — line numbers, once a consumer needs them — can be added as
|
|
86
|
+
* optional fields without breaking anyone.
|
|
87
|
+
*/
|
|
88
|
+
export type SourceRange = {
|
|
89
|
+
readonly start: number;
|
|
90
|
+
readonly end: number;
|
|
91
|
+
};
|
|
72
92
|
export type ListItemNode = {
|
|
73
93
|
checked?: boolean;
|
|
74
94
|
children: BlockNode[];
|
|
@@ -100,6 +120,16 @@ export type ParseOptions = {
|
|
|
100
120
|
* suffix is not rejected (Astryx accepts any plausible TLD shape).
|
|
101
121
|
*/
|
|
102
122
|
autolink?: 'gfm';
|
|
123
|
+
/**
|
|
124
|
+
* When true, every top-level block carries a `range` — the offsets it
|
|
125
|
+
* occupies in the string passed in. Lets a consumer that still holds the
|
|
126
|
+
* source slice the original markdown for a block instead of reconstructing
|
|
127
|
+
* it from the parsed node (or from the rendered DOM). Off by default: the
|
|
128
|
+
* field is absent unless asked for, so nothing that compares nodes changes.
|
|
129
|
+
*
|
|
130
|
+
* Blocks nested inside a list item or a blockquote do not carry one.
|
|
131
|
+
*/
|
|
132
|
+
sourceRanges?: boolean;
|
|
103
133
|
};
|
|
104
134
|
export declare function parseInline(text: string, sourceIds?: ReadonlySet<string>): InlineNode[];
|
|
105
135
|
export declare function parseInline(text: string, options: ParseOptions): InlineNode[];
|
|
@@ -117,6 +147,12 @@ export interface IncrementalState {
|
|
|
117
147
|
* with newly-arriving content.
|
|
118
148
|
*/
|
|
119
149
|
autolink?: 'gfm';
|
|
150
|
+
/**
|
|
151
|
+
* The `sourceRanges` option the cached `settledBlocks` were parsed with.
|
|
152
|
+
* Flipping it invalidates them the same way `autolink` does: they either
|
|
153
|
+
* lack the ranges the caller now asks for, or carry ones it did not.
|
|
154
|
+
*/
|
|
155
|
+
sourceRanges?: boolean;
|
|
120
156
|
/**
|
|
121
157
|
* Signature of the link reference definitions the cached `settledBlocks`
|
|
122
158
|
* were parsed with. Definitions are document-global and typically arrive
|
|
@@ -143,4 +179,5 @@ export declare function slugify(value: string): string;
|
|
|
143
179
|
* document shares a single numbering sequence.
|
|
144
180
|
*/
|
|
145
181
|
export declare function uniqueSlug(baseSlug: string, counts: Map<string, number>): string;
|
|
182
|
+
export {};
|
|
146
183
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAMH,MAAM,MAAM,UAAU,GAClB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAC/B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACtC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACxC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GAC/C;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAC/B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAC,GACpD;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GACzC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GACpC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC;AAEpB,MAAM,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/Markdown/parser.js
CHANGED
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
// Types
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Where a block sits in the source string handed to `parseMarkdown`:
|
|
18
|
+
* `source.slice(start, end)` is the block, and `end` excludes the block's
|
|
19
|
+
* trailing blank lines.
|
|
20
|
+
*
|
|
21
|
+
* An object rather than a `[start, end]` tuple so a second way of addressing
|
|
22
|
+
* the same block — line numbers, once a consumer needs them — can be added as
|
|
23
|
+
* optional fields without breaking anyone.
|
|
24
|
+
*/
|
|
25
|
+
|
|
16
26
|
// ---------------------------------------------------------------------------
|
|
17
27
|
// Parse options
|
|
18
28
|
// ---------------------------------------------------------------------------
|
|
@@ -47,7 +57,8 @@ function resolveOptions(arg) {
|
|
|
47
57
|
const opts = arg;
|
|
48
58
|
return {
|
|
49
59
|
sourceIds: opts.sourceIds,
|
|
50
|
-
autolink: opts.autolink
|
|
60
|
+
autolink: opts.autolink,
|
|
61
|
+
sourceRanges: opts.sourceRanges
|
|
51
62
|
};
|
|
52
63
|
}
|
|
53
64
|
|
|
@@ -168,10 +179,17 @@ function extractLinkDefinitions(input) {
|
|
|
168
179
|
cleaned: input
|
|
169
180
|
};
|
|
170
181
|
}
|
|
171
|
-
const
|
|
182
|
+
const lineMap = [];
|
|
183
|
+
for (let index = 0; index < lines.length; index++) {
|
|
184
|
+
if (keep[index]) {
|
|
185
|
+
lineMap.push(index);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const cleaned = lineMap.map(index => lines[index]).join('\n');
|
|
172
189
|
return {
|
|
173
190
|
defs,
|
|
174
|
-
cleaned
|
|
191
|
+
cleaned,
|
|
192
|
+
lineMap
|
|
175
193
|
};
|
|
176
194
|
}
|
|
177
195
|
|
|
@@ -965,6 +983,19 @@ function isTableSeparator(line) {
|
|
|
965
983
|
return nonEmpty.length > 0 && nonEmpty.every(cell => /^:?-+:?$/.test(cell));
|
|
966
984
|
}
|
|
967
985
|
|
|
986
|
+
/**
|
|
987
|
+
* The same options for content parsed out of an enclosing block. Ranges are a
|
|
988
|
+
* top-level contract: a list item's or a blockquote's children are parsed from
|
|
989
|
+
* text the caller reassembled (markers and `>` prefixes stripped), so an
|
|
990
|
+
* offset into it would not address the document.
|
|
991
|
+
*/
|
|
992
|
+
function nested(opts) {
|
|
993
|
+
return opts.sourceRanges ? {
|
|
994
|
+
...opts,
|
|
995
|
+
sourceRanges: false
|
|
996
|
+
} : opts;
|
|
997
|
+
}
|
|
998
|
+
|
|
968
999
|
/**
|
|
969
1000
|
* Returns true when a line could start a new block — used to stop paragraph
|
|
970
1001
|
* continuation. Every regex here uses bounded or single-class quantifiers
|
|
@@ -1095,7 +1126,7 @@ function parseList(lines, startIndex, ordered, opts) {
|
|
|
1095
1126
|
}
|
|
1096
1127
|
items.push({
|
|
1097
1128
|
checked,
|
|
1098
|
-
children: parseMarkdownImpl(itemText, opts)
|
|
1129
|
+
children: parseMarkdownImpl(itemText, nested(opts))
|
|
1099
1130
|
});
|
|
1100
1131
|
|
|
1101
1132
|
// CommonMark loose list: blank line(s) between items of the same style
|
|
@@ -1140,7 +1171,8 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1140
1171
|
// parse.
|
|
1141
1172
|
const {
|
|
1142
1173
|
defs,
|
|
1143
|
-
cleaned
|
|
1174
|
+
cleaned,
|
|
1175
|
+
lineMap
|
|
1144
1176
|
} = extractLinkDefinitions(input);
|
|
1145
1177
|
const inherited = baseOpts.linkDefs;
|
|
1146
1178
|
let linkDefs;
|
|
@@ -1157,8 +1189,22 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1157
1189
|
} : baseOpts;
|
|
1158
1190
|
const lines = cleaned.split('\n');
|
|
1159
1191
|
const blocks = [];
|
|
1192
|
+
// The line each block started on, parallel to `blocks`. Only collected when
|
|
1193
|
+
// ranges were asked for; a block's end is resolved after the loop, since the
|
|
1194
|
+
// branch that produced it has already moved `index` past whatever it read.
|
|
1195
|
+
const blockStartLines = opts.sourceRanges ? [] : null;
|
|
1196
|
+
// Set only by a block that consumes blank lines as content, where the
|
|
1197
|
+
// positional end derivation would trim them away.
|
|
1198
|
+
const blockEndLines = opts.sourceRanges ? [] : null;
|
|
1199
|
+
let blockStartLine = 0;
|
|
1200
|
+
const pushBlock = (node, endLine) => {
|
|
1201
|
+
blocks.push(node);
|
|
1202
|
+
blockStartLines?.push(blockStartLine);
|
|
1203
|
+
blockEndLines?.push(endLine);
|
|
1204
|
+
};
|
|
1160
1205
|
let index = 0;
|
|
1161
1206
|
while (index < lines.length) {
|
|
1207
|
+
blockStartLine = index;
|
|
1162
1208
|
const line = lines[index];
|
|
1163
1209
|
if (line.trim() === '') {
|
|
1164
1210
|
index++;
|
|
@@ -1177,18 +1223,21 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1177
1223
|
index++;
|
|
1178
1224
|
}
|
|
1179
1225
|
index++; // skip closing fence
|
|
1180
|
-
|
|
1226
|
+
// A fence owns its blank lines, and an unterminated one (mid-stream)
|
|
1227
|
+
// can end on them, so it states its own end rather than letting the
|
|
1228
|
+
// positional derivation trim them off.
|
|
1229
|
+
pushBlock({
|
|
1181
1230
|
type: 'codeblock',
|
|
1182
1231
|
language,
|
|
1183
1232
|
content: codeLines.join('\n')
|
|
1184
|
-
});
|
|
1233
|
+
}, Math.min(index, lines.length) - 1);
|
|
1185
1234
|
continue;
|
|
1186
1235
|
}
|
|
1187
1236
|
|
|
1188
1237
|
// --- Heading ---
|
|
1189
1238
|
const headingMatch = line.match(/^(#{1,6}) +(.*)/);
|
|
1190
1239
|
if (headingMatch) {
|
|
1191
|
-
|
|
1240
|
+
pushBlock({
|
|
1192
1241
|
type: 'heading',
|
|
1193
1242
|
level: headingMatch[1].length,
|
|
1194
1243
|
children: parseInlineEntry(headingMatch[2], opts)
|
|
@@ -1199,7 +1248,7 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1199
1248
|
|
|
1200
1249
|
// --- HR (must precede list check to handle `- - -`, `* * *`, `_ _ _`) ---
|
|
1201
1250
|
if (isHorizontalRule(line)) {
|
|
1202
|
-
|
|
1251
|
+
pushBlock({
|
|
1203
1252
|
type: 'hr'
|
|
1204
1253
|
});
|
|
1205
1254
|
index++;
|
|
@@ -1209,7 +1258,7 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1209
1258
|
// --- Standalone image ---
|
|
1210
1259
|
const imageMatch = line.match(/^!\[([^\]]*)\]\(([^)]+)\)/);
|
|
1211
1260
|
if (imageMatch && line.trim() === imageMatch[0]) {
|
|
1212
|
-
|
|
1261
|
+
pushBlock({
|
|
1213
1262
|
type: 'image',
|
|
1214
1263
|
alt: imageMatch[1],
|
|
1215
1264
|
src: imageMatch[2]
|
|
@@ -1221,7 +1270,7 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1221
1270
|
// --- Table (with or without leading pipe) ---
|
|
1222
1271
|
if (index + 1 < lines.length && line.includes('|') && isTableSeparator(lines[index + 1])) {
|
|
1223
1272
|
const tableResult = parseTable(lines, index, opts);
|
|
1224
|
-
|
|
1273
|
+
pushBlock(tableResult.node);
|
|
1225
1274
|
index = tableResult.nextIndex;
|
|
1226
1275
|
continue;
|
|
1227
1276
|
}
|
|
@@ -1233,9 +1282,9 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1233
1282
|
quoteLines.push(lines[index].replace(/^> ?/, ''));
|
|
1234
1283
|
index++;
|
|
1235
1284
|
}
|
|
1236
|
-
|
|
1285
|
+
pushBlock({
|
|
1237
1286
|
type: 'blockquote',
|
|
1238
|
-
children: parseMarkdownImpl(quoteLines.join('\n'), opts)
|
|
1287
|
+
children: parseMarkdownImpl(quoteLines.join('\n'), nested(opts))
|
|
1239
1288
|
});
|
|
1240
1289
|
continue;
|
|
1241
1290
|
}
|
|
@@ -1243,7 +1292,7 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1243
1292
|
// --- Unordered list ---
|
|
1244
1293
|
if (/^ {0,9}[-*+] /.test(line)) {
|
|
1245
1294
|
const listResult = parseList(lines, index, false, opts);
|
|
1246
|
-
|
|
1295
|
+
pushBlock(listResult.node);
|
|
1247
1296
|
index = listResult.nextIndex;
|
|
1248
1297
|
continue;
|
|
1249
1298
|
}
|
|
@@ -1251,7 +1300,7 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1251
1300
|
// --- Ordered list ---
|
|
1252
1301
|
if (/^ {0,9}\d+[.)] /.test(line)) {
|
|
1253
1302
|
const listResult = parseList(lines, index, true, opts);
|
|
1254
|
-
|
|
1303
|
+
pushBlock(listResult.node);
|
|
1255
1304
|
index = listResult.nextIndex;
|
|
1256
1305
|
continue;
|
|
1257
1306
|
}
|
|
@@ -1263,14 +1312,63 @@ function parseMarkdownImpl(input, baseOpts) {
|
|
|
1263
1312
|
paraLines.push(lines[index]);
|
|
1264
1313
|
index++;
|
|
1265
1314
|
}
|
|
1266
|
-
|
|
1315
|
+
pushBlock({
|
|
1267
1316
|
type: 'paragraph',
|
|
1268
1317
|
children: parseInlineEntry(paraLines.join('\n'), opts)
|
|
1269
1318
|
});
|
|
1270
1319
|
}
|
|
1320
|
+
if (blockStartLines != null) {
|
|
1321
|
+
stampSourceRanges(blocks, blockStartLines, blockEndLines ?? [], lines, lineMap, input, opts);
|
|
1322
|
+
}
|
|
1271
1323
|
return blocks;
|
|
1272
1324
|
}
|
|
1273
1325
|
|
|
1326
|
+
/**
|
|
1327
|
+
* Give each block the offsets it occupies in the original input.
|
|
1328
|
+
*
|
|
1329
|
+
* Blocks are contiguous and in source order, so a block runs from its own
|
|
1330
|
+
* first line to the line before the next block starts, minus the blank lines
|
|
1331
|
+
* between them. Offsets are computed against the *input*, not the text the
|
|
1332
|
+
* block loop saw: link reference definitions are stripped before parsing, and
|
|
1333
|
+
* `lineMap` says which input line each surviving line came from.
|
|
1334
|
+
*/
|
|
1335
|
+
function stampSourceRanges(blocks, blockStartLines, blockEndLines, lines, lineMap, input, opts) {
|
|
1336
|
+
const base = opts.baseOffset ?? 0;
|
|
1337
|
+
// Offset of the first character of every line of the input.
|
|
1338
|
+
const inputLineStarts = [0];
|
|
1339
|
+
for (let i = 0; i < input.length; i++) {
|
|
1340
|
+
if (input[i] === '\n') {
|
|
1341
|
+
inputLineStarts.push(i + 1);
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
// Stripping removes whole lines and never edits one, so a parsed line's
|
|
1345
|
+
// length is its input line's length.
|
|
1346
|
+
const lineStart = line => base + inputLineStarts[lineMap != null ? lineMap[line] : line];
|
|
1347
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
1348
|
+
const startLine = blockStartLines[i];
|
|
1349
|
+
let endLine = blockEndLines[i];
|
|
1350
|
+
if (endLine == null) {
|
|
1351
|
+
const nextStart = i + 1 < blocks.length ? blockStartLines[i + 1] : lines.length;
|
|
1352
|
+
endLine = nextStart - 1;
|
|
1353
|
+
while (endLine > startLine && lines[endLine].trim() === '') {
|
|
1354
|
+
endLine--;
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
// Exactly the block's own lines, verbatim — a CRLF document's trailing
|
|
1358
|
+
// `\r` included, since the parser reads it as part of the line too and a
|
|
1359
|
+
// range that dropped it would slice to something that re-parses
|
|
1360
|
+
// differently.
|
|
1361
|
+
const end = lineStart(endLine) + lines[endLine].length;
|
|
1362
|
+
blocks[i] = {
|
|
1363
|
+
...blocks[i],
|
|
1364
|
+
range: {
|
|
1365
|
+
start: lineStart(startLine),
|
|
1366
|
+
end
|
|
1367
|
+
}
|
|
1368
|
+
};
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1274
1372
|
// ---------------------------------------------------------------------------
|
|
1275
1373
|
// Incremental parsing
|
|
1276
1374
|
// ---------------------------------------------------------------------------
|
|
@@ -1532,6 +1630,18 @@ function trimUnsettledStructural(text) {
|
|
|
1532
1630
|
return lines.join('\n');
|
|
1533
1631
|
}
|
|
1534
1632
|
|
|
1633
|
+
/**
|
|
1634
|
+
* The same options, for parsing a slice that starts at `offset` of the
|
|
1635
|
+
* document — so the slice's blocks report ranges into the whole document
|
|
1636
|
+
* rather than into the slice.
|
|
1637
|
+
*/
|
|
1638
|
+
function atOffset(opts, offset) {
|
|
1639
|
+
return opts.sourceRanges ? {
|
|
1640
|
+
...opts,
|
|
1641
|
+
baseOffset: offset
|
|
1642
|
+
} : opts;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1535
1645
|
/**
|
|
1536
1646
|
* Concatenate freshly-parsed delta blocks with previously-settled blocks,
|
|
1537
1647
|
* merging adjacent same-style lists into a single loose list. The boundary
|
|
@@ -1552,7 +1662,15 @@ function mergeSettledBlocks(prev, delta) {
|
|
|
1552
1662
|
start: prevLast.start,
|
|
1553
1663
|
delimiter: prevLast.delimiter,
|
|
1554
1664
|
loose: true,
|
|
1555
|
-
items: [...prevLast.items, ...deltaFirst.items]
|
|
1665
|
+
items: [...prevLast.items, ...deltaFirst.items],
|
|
1666
|
+
// One list now, so one range: from where the first half started to
|
|
1667
|
+
// where the second half ended.
|
|
1668
|
+
...(prevLast.range != null && deltaFirst.range != null ? {
|
|
1669
|
+
range: {
|
|
1670
|
+
start: prevLast.range.start,
|
|
1671
|
+
end: deltaFirst.range.end
|
|
1672
|
+
}
|
|
1673
|
+
} : null)
|
|
1556
1674
|
};
|
|
1557
1675
|
return [...prev.slice(0, -1), merged, ...delta.slice(1)];
|
|
1558
1676
|
}
|
|
@@ -1560,15 +1678,16 @@ function mergeSettledBlocks(prev, delta) {
|
|
|
1560
1678
|
}
|
|
1561
1679
|
export function parseMarkdownIncremental(input, state, arg) {
|
|
1562
1680
|
const opts = resolveOptions(arg);
|
|
1563
|
-
// Invalidate cache when the autolink option flips — cached
|
|
1564
|
-
// were parsed with the previous setting and would otherwise
|
|
1565
|
-
// unchanged.
|
|
1566
|
-
if (state.autolink !== opts.autolink) {
|
|
1681
|
+
// Invalidate cache when the autolink or sourceRanges option flips — cached
|
|
1682
|
+
// settled blocks were parsed with the previous setting and would otherwise
|
|
1683
|
+
// be reused unchanged.
|
|
1684
|
+
if (state.autolink !== opts.autolink || Boolean(state.sourceRanges) !== Boolean(opts.sourceRanges)) {
|
|
1567
1685
|
state.prevInput = '';
|
|
1568
1686
|
state.settledText = '';
|
|
1569
1687
|
state.settledBlocks = [];
|
|
1570
1688
|
state.settledUpTo = 0;
|
|
1571
1689
|
state.autolink = opts.autolink;
|
|
1690
|
+
state.sourceRanges = opts.sourceRanges;
|
|
1572
1691
|
}
|
|
1573
1692
|
if (input === '') {
|
|
1574
1693
|
state.prevInput = '';
|
|
@@ -1615,13 +1734,20 @@ export function parseMarkdownIncremental(input, state, arg) {
|
|
|
1615
1734
|
} else if (state.settledText.length > 0 && settledText.startsWith(state.settledText)) {
|
|
1616
1735
|
// Settled portion grew — parse only the new delta
|
|
1617
1736
|
const delta = settledText.slice(state.settledText.length);
|
|
1618
|
-
const deltaBlocks = parseMarkdownImpl(delta, parseOpts);
|
|
1737
|
+
const deltaBlocks = parseMarkdownImpl(delta, atOffset(parseOpts, state.settledText.length));
|
|
1619
1738
|
settledBlocks = mergeSettledBlocks(state.settledBlocks, deltaBlocks);
|
|
1620
1739
|
} else {
|
|
1621
1740
|
// Content before the boundary changed — full re-parse of settled portion
|
|
1622
1741
|
settledBlocks = parseMarkdownImpl(settledText, parseOpts);
|
|
1623
1742
|
}
|
|
1624
|
-
|
|
1743
|
+
|
|
1744
|
+
// The unsettled tail is trimmed before parsing, so its offset in the
|
|
1745
|
+
// document is where that trimmed text actually starts — not the boundary,
|
|
1746
|
+
// which is a line index. If it somehow can't be located, parse it without
|
|
1747
|
+
// ranges rather than report wrong ones. Only worth searching for when
|
|
1748
|
+
// ranges were asked for: this runs on every streamed chunk.
|
|
1749
|
+
const unsettledStart = unsettledText && opts.sourceRanges ? input.indexOf(unsettledText, settledText.length) : -1;
|
|
1750
|
+
const unsettledBlocks = unsettledText ? parseMarkdownImpl(unsettledText, unsettledStart >= 0 ? atOffset(parseOpts, unsettledStart) : nested(parseOpts)) : [];
|
|
1625
1751
|
state.settledText = settledText;
|
|
1626
1752
|
state.settledBlocks = settledBlocks;
|
|
1627
1753
|
state.settledUpTo = boundary;
|
|
@@ -22,6 +22,10 @@ export type MultiSelectorSize = 'sm' | 'md' | 'lg';
|
|
|
22
22
|
export type MultiSelectorVariant = 'input' | 'ghost';
|
|
23
23
|
export type MultiSelectorStatusType = 'warning' | 'error' | 'success';
|
|
24
24
|
export type { MultiSelectorStatus };
|
|
25
|
+
export interface MultiSelectorSelectedItem {
|
|
26
|
+
value: string;
|
|
27
|
+
label: string;
|
|
28
|
+
}
|
|
25
29
|
export interface MultiSelectorProps<T extends MultiSelectorOptionType = MultiSelectorOptionType> extends Omit<BaseProps, 'onChange' | 'defaultValue'> {
|
|
26
30
|
/**
|
|
27
31
|
* Label text for the multi-selector (always rendered for accessibility).
|
|
@@ -179,6 +183,16 @@ export interface MultiSelectorProps<T extends MultiSelectorOptionType = MultiSel
|
|
|
179
183
|
* @default 'count'
|
|
180
184
|
*/
|
|
181
185
|
triggerDisplay?: 'count' | 'labels' | 'badges';
|
|
186
|
+
/**
|
|
187
|
+
* Formats the trigger text when triggerDisplay is 'count' or 'labels'.
|
|
188
|
+
* Receives the selected items (value plus resolved label, in selection
|
|
189
|
+
* order) and returns the full trigger text; the count is `items.length`.
|
|
190
|
+
* Not called when nothing is selected — the placeholder shows instead — and
|
|
191
|
+
* not called for triggerDisplay 'badges', which renders Badge elements
|
|
192
|
+
* rather than text.
|
|
193
|
+
* @default items => `${items.length} selected` for 'count', "A, B, C, +N" for 'labels'
|
|
194
|
+
*/
|
|
195
|
+
formatValue?: (items: MultiSelectorSelectedItem[]) => string;
|
|
182
196
|
/**
|
|
183
197
|
* Maximum number of badges to show before showing "+N".
|
|
184
198
|
* Only used when triggerDisplay is 'badges'.
|
|
@@ -222,7 +236,7 @@ export interface MultiSelectorProps<T extends MultiSelectorOptionType = MultiSel
|
|
|
222
236
|
* />
|
|
223
237
|
* ```
|
|
224
238
|
*/
|
|
225
|
-
export declare function MultiSelector<T extends MultiSelectorOptionType>({ label, isLabelHidden, description, isOptional, isRequired, isDisabled, disabledMessage, options, value, onChange, changeAction, isLoading, placeholder: placeholderFromProps, size: sizeProp, variant, status, statusVariant, labelTooltip, startIcon, hasClear, hasSelectAll, selectAllLabel: selectAllLabelFromProps, hasSearch, searchPlaceholder: searchPlaceholderFromProps, triggerDisplay, maxBadges, renderOption, indicatorPosition, isDefaultOpen, 'data-testid': testId, htmlName, width, xstyle, className, style, }: MultiSelectorProps<T>): React.JSX.Element;
|
|
239
|
+
export declare function MultiSelector<T extends MultiSelectorOptionType>({ label, isLabelHidden, description, isOptional, isRequired, isDisabled, disabledMessage, options, value, onChange, changeAction, isLoading, placeholder: placeholderFromProps, size: sizeProp, variant, status, statusVariant, labelTooltip, startIcon, hasClear, hasSelectAll, selectAllLabel: selectAllLabelFromProps, hasSearch, searchPlaceholder: searchPlaceholderFromProps, triggerDisplay, formatValue, maxBadges, renderOption, indicatorPosition, isDefaultOpen, 'data-testid': testId, htmlName, width, xstyle, className, style, }: MultiSelectorProps<T>): React.JSX.Element;
|
|
226
240
|
export declare namespace MultiSelector {
|
|
227
241
|
var displayName: string;
|
|
228
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -276,6 +276,7 @@ export function MultiSelector({
|
|
|
276
276
|
hasSearch = false,
|
|
277
277
|
searchPlaceholder: searchPlaceholderFromProps,
|
|
278
278
|
triggerDisplay = 'count',
|
|
279
|
+
formatValue,
|
|
279
280
|
maxBadges = 3,
|
|
280
281
|
renderOption,
|
|
281
282
|
indicatorPosition = 'start',
|
|
@@ -576,12 +577,16 @@ export function MultiSelector({
|
|
|
576
577
|
}, [popover.isOpen, highlightedIndex, getItemId]);
|
|
577
578
|
|
|
578
579
|
// Build trigger display content
|
|
579
|
-
const
|
|
580
|
+
const selectedItems = useMemo(() => {
|
|
580
581
|
return optimisticValue.map(v => {
|
|
581
582
|
const item = selectableItems.find(i => i.value === v);
|
|
582
|
-
return
|
|
583
|
+
return {
|
|
584
|
+
value: v,
|
|
585
|
+
label: item?.label ?? v
|
|
586
|
+
};
|
|
583
587
|
});
|
|
584
588
|
}, [optimisticValue, selectableItems]);
|
|
589
|
+
const selectedLabels = useMemo(() => selectedItems.map(item => item.label), [selectedItems]);
|
|
585
590
|
const renderTriggerContent = useCallback(() => {
|
|
586
591
|
if (optimisticValue.length === 0) {
|
|
587
592
|
return /*#__PURE__*/_jsx("span", {
|
|
@@ -593,11 +598,11 @@ export function MultiSelector({
|
|
|
593
598
|
}
|
|
594
599
|
switch (triggerDisplay) {
|
|
595
600
|
case 'count':
|
|
596
|
-
return /*#__PURE__*/
|
|
601
|
+
return /*#__PURE__*/_jsx("span", {
|
|
597
602
|
...{
|
|
598
603
|
className: "xb3r6kr xlyipyv xuxw1ft"
|
|
599
604
|
},
|
|
600
|
-
children:
|
|
605
|
+
children: formatValue?.(selectedItems) ?? `${optimisticValue.length} selected`
|
|
601
606
|
});
|
|
602
607
|
case 'labels':
|
|
603
608
|
{
|
|
@@ -608,7 +613,7 @@ export function MultiSelector({
|
|
|
608
613
|
...{
|
|
609
614
|
className: "xb3r6kr xlyipyv xuxw1ft"
|
|
610
615
|
},
|
|
611
|
-
children: text
|
|
616
|
+
children: formatValue?.(selectedItems) ?? text
|
|
612
617
|
});
|
|
613
618
|
}
|
|
614
619
|
case 'badges':
|
|
@@ -631,7 +636,7 @@ export function MultiSelector({
|
|
|
631
636
|
});
|
|
632
637
|
}
|
|
633
638
|
}
|
|
634
|
-
}, [optimisticValue, triggerDisplay, selectedLabels, placeholder, maxBadges]);
|
|
639
|
+
}, [optimisticValue, triggerDisplay, selectedItems, selectedLabels, placeholder, formatValue, maxBadges]);
|
|
635
640
|
|
|
636
641
|
// Render search input
|
|
637
642
|
const renderSearch = useCallback(() => {
|
|
@@ -827,7 +832,13 @@ export function MultiSelector({
|
|
|
827
832
|
// A standalone divider between groups would orphan itself once its
|
|
828
833
|
// neighbors are filtered out, so skip it while searching.
|
|
829
834
|
if (!isSearching) {
|
|
835
|
+
// role="listbox" only permits option/group children; the divider
|
|
836
|
+
// carries no information the options don't, so it's hidden from
|
|
837
|
+
// the accessibility tree entirely rather than exposing
|
|
838
|
+
// role="separator" as a disallowed listbox child (axe
|
|
839
|
+
// aria-required-children).
|
|
830
840
|
elements.push(/*#__PURE__*/_jsx(Divider, {
|
|
841
|
+
"aria-hidden": "true",
|
|
831
842
|
xstyle: styles.divider
|
|
832
843
|
}, `divider-${i}`));
|
|
833
844
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @output Exports MultiSelector and types
|
|
4
4
|
* @position Public API entry point
|
|
5
5
|
*/
|
|
6
|
-
export { MultiSelector, type MultiSelectorProps, type MultiSelectorSize, type MultiSelectorStatusType, } from './MultiSelector';
|
|
6
|
+
export { MultiSelector, type MultiSelectorProps, type MultiSelectorSize, type MultiSelectorStatusType, type MultiSelectorSelectedItem, } from './MultiSelector';
|
|
7
7
|
export type { MultiSelectorOptionType, MultiSelectorOptionData, MultiSelectorDivider, MultiSelectorSection, MultiSelectorStatus, } from './types';
|
|
8
8
|
export { useMultiCombobox } from './hooks';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -756,7 +756,12 @@ export function Selector(props) {
|
|
|
756
756
|
if (isSearching) {
|
|
757
757
|
continue;
|
|
758
758
|
}
|
|
759
|
+
// role="listbox" only permits option/group children; the divider
|
|
760
|
+
// carries no information the options don't, so it's hidden from the
|
|
761
|
+
// accessibility tree entirely rather than exposing role="separator"
|
|
762
|
+
// as a disallowed listbox child (axe aria-required-children).
|
|
759
763
|
elements.push(/*#__PURE__*/_jsx(Divider, {
|
|
764
|
+
"aria-hidden": "true",
|
|
760
765
|
xstyle: styles.divider
|
|
761
766
|
}, `divider-${i}`));
|
|
762
767
|
} else if (isSection(option)) {
|