@stealthscale/component-a11y 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.
@@ -0,0 +1,359 @@
1
+ import { t as __exportAll } from "../../rolldown-runtime-D7D4PA-g.js";
2
+ import { c as Item, s as Root } from "../../shared-UZQEmdYt.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { Board, Focused, Room, Sample, specimen, useWords } from "@stealthscale/specimen";
6
+ import { Button, ButtonPropsProvider } from "@stealthscale/component-actions";
7
+ import { Group, Stack } from "@stealthscale/component-layout";
8
+ //#region src/roving-focus/examples/filters.example.tsx
9
+ var filters_example_exports = /* @__PURE__ */ __exportAll({
10
+ Filters: () => Filters,
11
+ source: () => source$2
12
+ });
13
+ const SMALL = {
14
+ size: "sm",
15
+ variant: "outline"
16
+ };
17
+ const STATUSES = [
18
+ "paid",
19
+ "pending",
20
+ "overdue",
21
+ "refunded",
22
+ "disputed",
23
+ "draft",
24
+ "scheduled",
25
+ "void"
26
+ ];
27
+ function Filters() {
28
+ const $ = c(9);
29
+ const { t } = useWords("roving-focus");
30
+ let t0;
31
+ if ($[0] !== t) {
32
+ t0 = t("filters");
33
+ $[0] = t;
34
+ $[1] = t0;
35
+ } else t0 = $[1];
36
+ let t1;
37
+ if ($[2] !== t) {
38
+ t1 = STATUSES.map((status) => /* @__PURE__ */ jsx(Item, {
39
+ as: Button,
40
+ children: t(`statuses.${status}`)
41
+ }, status));
42
+ $[2] = t;
43
+ $[3] = t1;
44
+ } else t1 = $[3];
45
+ let t2;
46
+ if ($[4] !== t1) {
47
+ t2 = /* @__PURE__ */ jsx(ButtonPropsProvider, {
48
+ value: SMALL,
49
+ children: /* @__PURE__ */ jsx(Stack, {
50
+ direction: "row",
51
+ gap: "sm",
52
+ wrap: true,
53
+ children: t1
54
+ })
55
+ });
56
+ $[4] = t1;
57
+ $[5] = t2;
58
+ } else t2 = $[5];
59
+ let t3;
60
+ if ($[6] !== t0 || $[7] !== t2) {
61
+ t3 = /* @__PURE__ */ jsx(Root, {
62
+ "aria-label": t0,
63
+ orientation: "both",
64
+ role: "toolbar",
65
+ children: t2
66
+ });
67
+ $[6] = t0;
68
+ $[7] = t2;
69
+ $[8] = t3;
70
+ } else t3 = $[8];
71
+ return t3;
72
+ }
73
+ const source$2 = "import { type ReactElement } from \"react\";\n\nimport { Button, ButtonPropsProvider } from \"@stealthscale/component-actions\";\nimport { Stack } from \"@stealthscale/component-layout\";\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RovingFocus } from \"@stealthscale/component-a11y\";\n\nconst SMALL = { size: \"sm\", variant: \"outline\" } as const;\n\nconst STATUSES = [\n \"paid\",\n \"pending\",\n \"overdue\",\n \"refunded\",\n \"disputed\",\n \"draft\",\n \"scheduled\",\n \"void\",\n] as const;\n\nexport function Filters(): ReactElement {\n const { t } = useWords(\"roving-focus\");\n\n return (\n <RovingFocus.Root aria-label={t(\"filters\")} orientation=\"both\" role=\"toolbar\">\n <ButtonPropsProvider value={SMALL}>\n <Stack direction=\"row\" gap=\"sm\" wrap>\n {STATUSES.map((status) => (\n <RovingFocus.Item as={Button} key={status}>\n {t(`statuses.${status}`)}\n </RovingFocus.Item>\n ))}\n </Stack>\n </ButtonPropsProvider>\n </RovingFocus.Root>\n );\n}\n";
74
+ //#endregion
75
+ //#region src/roving-focus/examples/formatting.example.tsx
76
+ var formatting_example_exports = /* @__PURE__ */ __exportAll({
77
+ Formatting: () => Formatting,
78
+ source: () => source$1
79
+ });
80
+ const OUTLINE$1 = { variant: "outline" };
81
+ function Formatting() {
82
+ const $ = c(21);
83
+ const { t } = useWords("roving-focus");
84
+ let t0;
85
+ if ($[0] !== t) {
86
+ t0 = t("formatting");
87
+ $[0] = t;
88
+ $[1] = t0;
89
+ } else t0 = $[1];
90
+ let t1;
91
+ if ($[2] !== t) {
92
+ t1 = t("bold");
93
+ $[2] = t;
94
+ $[3] = t1;
95
+ } else t1 = $[3];
96
+ let t2;
97
+ if ($[4] !== t1) {
98
+ t2 = /* @__PURE__ */ jsx(Item, {
99
+ as: Button,
100
+ children: t1
101
+ });
102
+ $[4] = t1;
103
+ $[5] = t2;
104
+ } else t2 = $[5];
105
+ let t3;
106
+ if ($[6] !== t) {
107
+ t3 = t("italic");
108
+ $[6] = t;
109
+ $[7] = t3;
110
+ } else t3 = $[7];
111
+ let t4;
112
+ if ($[8] !== t3) {
113
+ t4 = /* @__PURE__ */ jsx(Item, {
114
+ as: Button,
115
+ children: t3
116
+ });
117
+ $[8] = t3;
118
+ $[9] = t4;
119
+ } else t4 = $[9];
120
+ let t5;
121
+ if ($[10] !== t) {
122
+ t5 = t("underline");
123
+ $[10] = t;
124
+ $[11] = t5;
125
+ } else t5 = $[11];
126
+ let t6;
127
+ if ($[12] !== t5) {
128
+ t6 = /* @__PURE__ */ jsx(Item, {
129
+ as: Button,
130
+ children: t5
131
+ });
132
+ $[12] = t5;
133
+ $[13] = t6;
134
+ } else t6 = $[13];
135
+ let t7;
136
+ if ($[14] !== t2 || $[15] !== t4 || $[16] !== t6) {
137
+ t7 = /* @__PURE__ */ jsx(ButtonPropsProvider, {
138
+ value: OUTLINE$1,
139
+ children: /* @__PURE__ */ jsxs(Group, {
140
+ attached: true,
141
+ children: [
142
+ t2,
143
+ t4,
144
+ t6
145
+ ]
146
+ })
147
+ });
148
+ $[14] = t2;
149
+ $[15] = t4;
150
+ $[16] = t6;
151
+ $[17] = t7;
152
+ } else t7 = $[17];
153
+ let t8;
154
+ if ($[18] !== t0 || $[19] !== t7) {
155
+ t8 = /* @__PURE__ */ jsx(Root, {
156
+ "aria-label": t0,
157
+ role: "toolbar",
158
+ wrap: true,
159
+ children: t7
160
+ });
161
+ $[18] = t0;
162
+ $[19] = t7;
163
+ $[20] = t8;
164
+ } else t8 = $[20];
165
+ return t8;
166
+ }
167
+ const source$1 = "import { type ReactElement } from \"react\";\n\nimport { Button, ButtonPropsProvider } from \"@stealthscale/component-actions\";\nimport { Group } from \"@stealthscale/component-layout\";\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RovingFocus } from \"@stealthscale/component-a11y\";\n\nconst OUTLINE = { variant: \"outline\" } as const;\n\nexport function Formatting(): ReactElement {\n const { t } = useWords(\"roving-focus\");\n\n return (\n <RovingFocus.Root aria-label={t(\"formatting\")} role=\"toolbar\" wrap>\n <ButtonPropsProvider value={OUTLINE}>\n <Group attached>\n <RovingFocus.Item as={Button}>{t(\"bold\")}</RovingFocus.Item>\n <RovingFocus.Item as={Button}>{t(\"italic\")}</RovingFocus.Item>\n <RovingFocus.Item as={Button}>{t(\"underline\")}</RovingFocus.Item>\n </Group>\n </ButtonPropsProvider>\n </RovingFocus.Root>\n );\n}\n";
168
+ //#endregion
169
+ //#region src/roving-focus/examples/tools.example.tsx
170
+ var tools_example_exports = /* @__PURE__ */ __exportAll({
171
+ Tools: () => Tools,
172
+ source: () => source
173
+ });
174
+ const OUTLINE = { variant: "outline" };
175
+ function Tools() {
176
+ const $ = c(21);
177
+ const { t } = useWords("roving-focus");
178
+ let t0;
179
+ if ($[0] !== t) {
180
+ t0 = t("tools");
181
+ $[0] = t;
182
+ $[1] = t0;
183
+ } else t0 = $[1];
184
+ let t1;
185
+ if ($[2] !== t) {
186
+ t1 = t("select");
187
+ $[2] = t;
188
+ $[3] = t1;
189
+ } else t1 = $[3];
190
+ let t2;
191
+ if ($[4] !== t1) {
192
+ t2 = /* @__PURE__ */ jsx(Item, {
193
+ as: Button,
194
+ children: t1
195
+ });
196
+ $[4] = t1;
197
+ $[5] = t2;
198
+ } else t2 = $[5];
199
+ let t3;
200
+ if ($[6] !== t) {
201
+ t3 = t("draw");
202
+ $[6] = t;
203
+ $[7] = t3;
204
+ } else t3 = $[7];
205
+ let t4;
206
+ if ($[8] !== t3) {
207
+ t4 = /* @__PURE__ */ jsx(Item, {
208
+ as: Button,
209
+ children: t3
210
+ });
211
+ $[8] = t3;
212
+ $[9] = t4;
213
+ } else t4 = $[9];
214
+ let t5;
215
+ if ($[10] !== t) {
216
+ t5 = t("erase");
217
+ $[10] = t;
218
+ $[11] = t5;
219
+ } else t5 = $[11];
220
+ let t6;
221
+ if ($[12] !== t5) {
222
+ t6 = /* @__PURE__ */ jsx(Item, {
223
+ as: Button,
224
+ children: t5
225
+ });
226
+ $[12] = t5;
227
+ $[13] = t6;
228
+ } else t6 = $[13];
229
+ let t7;
230
+ if ($[14] !== t2 || $[15] !== t4 || $[16] !== t6) {
231
+ t7 = /* @__PURE__ */ jsx(ButtonPropsProvider, {
232
+ value: OUTLINE,
233
+ children: /* @__PURE__ */ jsxs(Group, {
234
+ attached: true,
235
+ orientation: "vertical",
236
+ children: [
237
+ t2,
238
+ t4,
239
+ t6
240
+ ]
241
+ })
242
+ });
243
+ $[14] = t2;
244
+ $[15] = t4;
245
+ $[16] = t6;
246
+ $[17] = t7;
247
+ } else t7 = $[17];
248
+ let t8;
249
+ if ($[18] !== t0 || $[19] !== t7) {
250
+ t8 = /* @__PURE__ */ jsx(Root, {
251
+ "aria-label": t0,
252
+ orientation: "vertical",
253
+ role: "toolbar",
254
+ children: t7
255
+ });
256
+ $[18] = t0;
257
+ $[19] = t7;
258
+ $[20] = t8;
259
+ } else t8 = $[20];
260
+ return t8;
261
+ }
262
+ const source = "import { type ReactElement } from \"react\";\n\nimport { Button, ButtonPropsProvider } from \"@stealthscale/component-actions\";\nimport { Group } from \"@stealthscale/component-layout\";\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RovingFocus } from \"@stealthscale/component-a11y\";\n\nconst OUTLINE = { variant: \"outline\" } as const;\n\nexport function Tools(): ReactElement {\n const { t } = useWords(\"roving-focus\");\n\n return (\n <RovingFocus.Root aria-label={t(\"tools\")} orientation=\"vertical\" role=\"toolbar\">\n <ButtonPropsProvider value={OUTLINE}>\n <Group attached orientation=\"vertical\">\n <RovingFocus.Item as={Button}>{t(\"select\")}</RovingFocus.Item>\n <RovingFocus.Item as={Button}>{t(\"draw\")}</RovingFocus.Item>\n <RovingFocus.Item as={Button}>{t(\"erase\")}</RovingFocus.Item>\n </Group>\n </ButtonPropsProvider>\n </RovingFocus.Root>\n );\n}\n";
263
+ //#endregion
264
+ //#region src/roving-focus/roving-focus.specimen.tsx
265
+ /**
266
+ * Renders the formatting toolbar at rest and in the keyboard-focus state.
267
+ */
268
+ function Toolbar() {
269
+ const $ = c(2);
270
+ let t0;
271
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
272
+ t0 = /* @__PURE__ */ jsx(Sample, {
273
+ knob: "state",
274
+ of: "rest",
275
+ children: /* @__PURE__ */ jsx(Formatting, {})
276
+ });
277
+ $[0] = t0;
278
+ } else t0 = $[0];
279
+ let t1;
280
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
281
+ t1 = /* @__PURE__ */ jsxs(Board, { children: [t0, /* @__PURE__ */ jsx(Sample, {
282
+ knob: "state",
283
+ of: "focus",
284
+ children: /* @__PURE__ */ jsx(Focused, { children: /* @__PURE__ */ jsx(Formatting, {}) })
285
+ })] });
286
+ $[1] = t1;
287
+ } else t1 = $[1];
288
+ return t1;
289
+ }
290
+ /**
291
+ * Renders the vertical toolbar at its own width in a sample.
292
+ */
293
+ function Vertical() {
294
+ const $ = c(1);
295
+ let t0;
296
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
297
+ t0 = /* @__PURE__ */ jsx(Sample, { children: /* @__PURE__ */ jsx(Tools, {}) });
298
+ $[0] = t0;
299
+ } else t0 = $[0];
300
+ return t0;
301
+ }
302
+ /**
303
+ * Renders the filters in a 320px room, where they wrap onto three lines.
304
+ */
305
+ function Both() {
306
+ const $ = c(1);
307
+ let t0;
308
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
309
+ t0 = /* @__PURE__ */ jsx(Room, {
310
+ size: "xs",
311
+ children: /* @__PURE__ */ jsx(Filters, {})
312
+ });
313
+ $[0] = t0;
314
+ } else t0 = $[0];
315
+ return t0;
316
+ }
317
+ /**
318
+ * Hand-written scene for a horizontal group that wraps at its ends.
319
+ */
320
+ const toolbar = {
321
+ about: "roving-focus.toolbar.about",
322
+ axes: ["orientation"],
323
+ draw: Toolbar,
324
+ example: formatting_example_exports,
325
+ title: "roving-focus.toolbar.title"
326
+ };
327
+ /**
328
+ * Hand-written scene for a vertical group.
329
+ */
330
+ const vertical = {
331
+ about: "roving-focus.vertical.about",
332
+ axes: ["orientation"],
333
+ draw: Vertical,
334
+ example: tools_example_exports,
335
+ title: "roving-focus.vertical.title"
336
+ };
337
+ /**
338
+ * Hand-written scene for a group that responds to both arrow axes.
339
+ */
340
+ const both = {
341
+ about: "roving-focus.both.about",
342
+ axes: ["orientation"],
343
+ draw: Both,
344
+ example: filters_example_exports,
345
+ title: "roving-focus.both.title"
346
+ };
347
+ var roving_focus_specimen_default = specimen({
348
+ about: "roving-focus.about",
349
+ id: "components/a11y/roving-focus",
350
+ imports: "import { RovingFocus } from \"@stealthscale/component-a11y\";",
351
+ scenes: [
352
+ toolbar,
353
+ vertical,
354
+ both
355
+ ],
356
+ title: "roving-focus.title"
357
+ });
358
+ //#endregion
359
+ export { both, roving_focus_specimen_default as default, toolbar, vertical };
@@ -0,0 +1,3 @@
1
+ export const dropped = {"ItemProps": {"conditions": 284, "foreign": 1039}, "RootProps": {"conditions": 284, "foreign": 1040}};
2
+ export const parts = {"ItemProps": [{"accepts": "boolean", "fallback": "", "kind": "option", "name": "disabled", "refers": [], "required": false, "says": "Whether the arrows step past the item."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "id", "refers": [], "required": false, "says": "Identifier the group registers the item under. The item generates one when the caller omits it, and writes the DOM attribute only when the caller passes it."}, {"accepts": "Ref<HTMLElement>", "fallback": "", "kind": "option", "name": "ref", "refers": ["react.RefObject", "react.bivarianceHack"], "required": false, "says": "Ref that receives the item's element."}], "RootProps": [{"accepts": "string", "fallback": "", "kind": "option", "name": "activeId", "refers": [], "required": false, "says": "Item with the tab stop when the caller controls the group."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "children", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Items of the group."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "defaultActiveId", "refers": [], "required": false, "says": "Item that Tab enters first when the group controls itself."}, {"accepts": "((activeId: string) => void)", "fallback": "", "kind": "option", "name": "onActiveIdChange", "refers": [], "required": false, "says": "Called after the tab stop moves to another item."}, {"accepts": "Orientation", "fallback": "", "kind": "option", "name": "orientation", "refers": ["kit.Orientation"], "required": false, "says": "Axes whose arrows move focus. Defaults to `horizontal`."}, {"accepts": "boolean", "fallback": "", "kind": "option", "name": "wrap", "refers": [], "required": false, "says": "Whether a step past one end continues at the other."}]};
3
+ export const shapes = {"react.RefObject": [{"accepts": "HTMLElement | null", "name": "current", "says": "The current value of the ref."}], "react.ReactElement": [{"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "react.ReactPortal": [{"accepts": "ReactNode", "name": "children", "says": ""}, {"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "kit.Orientation": [{"accepts": "", "name": "\"both\"", "says": ""}, {"accepts": "", "name": "\"horizontal\"", "says": ""}, {"accepts": "", "name": "\"vertical\"", "says": ""}]};
@@ -0,0 +1,181 @@
1
+ import { t as __exportAll } from "../../rolldown-runtime-D7D4PA-g.js";
2
+ import { a as Link, i as Target } from "../../shared-UZQEmdYt.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Contained, Room, specimen, useWords } from "@stealthscale/specimen";
7
+ import { Button } from "@stealthscale/component-actions";
8
+ import { Group, Stack } from "@stealthscale/component-layout";
9
+ import { Text } from "@stealthscale/component-typography";
10
+ //#region src/skip-nav/examples/invoices.example.tsx
11
+ var invoices_example_exports = /* @__PURE__ */ __exportAll({
12
+ Invoices: () => Invoices,
13
+ source: () => source
14
+ });
15
+ function Invoices() {
16
+ const $ = c(35);
17
+ const { t } = useWords("skip-nav");
18
+ const results = useId();
19
+ const t0 = `#${results}`;
20
+ let t1;
21
+ if ($[0] !== t) {
22
+ t1 = t("skip");
23
+ $[0] = t;
24
+ $[1] = t1;
25
+ } else t1 = $[1];
26
+ let t2;
27
+ if ($[2] !== t0 || $[3] !== t1) {
28
+ t2 = /* @__PURE__ */ jsx(Link, {
29
+ href: t0,
30
+ children: t1
31
+ });
32
+ $[2] = t0;
33
+ $[3] = t1;
34
+ $[4] = t2;
35
+ } else t2 = $[4];
36
+ let t3;
37
+ if ($[5] !== t) {
38
+ t3 = t("filters");
39
+ $[5] = t;
40
+ $[6] = t3;
41
+ } else t3 = $[6];
42
+ let t4;
43
+ if ($[7] !== t) {
44
+ t4 = t("all");
45
+ $[7] = t;
46
+ $[8] = t4;
47
+ } else t4 = $[8];
48
+ let t5;
49
+ if ($[9] !== t4) {
50
+ t5 = /* @__PURE__ */ jsx(Button, {
51
+ size: "sm",
52
+ variant: "outline",
53
+ children: t4
54
+ });
55
+ $[9] = t4;
56
+ $[10] = t5;
57
+ } else t5 = $[10];
58
+ let t6;
59
+ if ($[11] !== t) {
60
+ t6 = t("paid");
61
+ $[11] = t;
62
+ $[12] = t6;
63
+ } else t6 = $[12];
64
+ let t7;
65
+ if ($[13] !== t6) {
66
+ t7 = /* @__PURE__ */ jsx(Button, {
67
+ size: "sm",
68
+ variant: "outline",
69
+ children: t6
70
+ });
71
+ $[13] = t6;
72
+ $[14] = t7;
73
+ } else t7 = $[14];
74
+ let t8;
75
+ if ($[15] !== t) {
76
+ t8 = t("overdue");
77
+ $[15] = t;
78
+ $[16] = t8;
79
+ } else t8 = $[16];
80
+ let t9;
81
+ if ($[17] !== t8) {
82
+ t9 = /* @__PURE__ */ jsx(Button, {
83
+ size: "sm",
84
+ variant: "outline",
85
+ children: t8
86
+ });
87
+ $[17] = t8;
88
+ $[18] = t9;
89
+ } else t9 = $[18];
90
+ let t10;
91
+ if ($[19] !== t3 || $[20] !== t5 || $[21] !== t7 || $[22] !== t9) {
92
+ t10 = /* @__PURE__ */ jsxs(Group, {
93
+ "aria-label": t3,
94
+ as: "fieldset",
95
+ children: [
96
+ t5,
97
+ t7,
98
+ t9
99
+ ]
100
+ });
101
+ $[19] = t3;
102
+ $[20] = t5;
103
+ $[21] = t7;
104
+ $[22] = t9;
105
+ $[23] = t10;
106
+ } else t10 = $[23];
107
+ let t11;
108
+ if ($[24] !== t) {
109
+ t11 = t("results");
110
+ $[24] = t;
111
+ $[25] = t11;
112
+ } else t11 = $[25];
113
+ let t12;
114
+ if ($[26] !== t11) {
115
+ t12 = /* @__PURE__ */ jsx(Text, { children: t11 });
116
+ $[26] = t11;
117
+ $[27] = t12;
118
+ } else t12 = $[27];
119
+ let t13;
120
+ if ($[28] !== results || $[29] !== t12) {
121
+ t13 = /* @__PURE__ */ jsx(Target, {
122
+ id: results,
123
+ children: t12
124
+ });
125
+ $[28] = results;
126
+ $[29] = t12;
127
+ $[30] = t13;
128
+ } else t13 = $[30];
129
+ let t14;
130
+ if ($[31] !== t10 || $[32] !== t13 || $[33] !== t2) {
131
+ t14 = /* @__PURE__ */ jsxs(Stack, {
132
+ gap: "md",
133
+ children: [
134
+ t2,
135
+ t10,
136
+ t13
137
+ ]
138
+ });
139
+ $[31] = t10;
140
+ $[32] = t13;
141
+ $[33] = t2;
142
+ $[34] = t14;
143
+ } else t14 = $[34];
144
+ return t14;
145
+ }
146
+ const source = "import { type ReactElement, useId } from \"react\";\n\nimport { Button } from \"@stealthscale/component-actions\";\nimport { Group, Stack } from \"@stealthscale/component-layout\";\nimport { Text } from \"@stealthscale/component-typography\";\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { SkipNav } from \"@stealthscale/component-a11y\";\n\nexport function Invoices(): ReactElement {\n const { t } = useWords(\"skip-nav\");\n const results = useId();\n\n return (\n <Stack gap=\"md\">\n <SkipNav.Link href={`#${results}`}>{t(\"skip\")}</SkipNav.Link>\n <Group aria-label={t(\"filters\")} as=\"fieldset\">\n <Button size=\"sm\" variant=\"outline\">\n {t(\"all\")}\n </Button>\n <Button size=\"sm\" variant=\"outline\">\n {t(\"paid\")}\n </Button>\n <Button size=\"sm\" variant=\"outline\">\n {t(\"overdue\")}\n </Button>\n </Group>\n <SkipNav.Target id={results}>\n <Text>{t(\"results\")}</Text>\n </SkipNav.Target>\n </Stack>\n );\n}\n";
147
+ //#endregion
148
+ //#region src/skip-nav/skip-nav.specimen.tsx
149
+ /**
150
+ * Renders the invoice list in a 512px room that contains its fixed link.
151
+ */
152
+ function Pair() {
153
+ const $ = c(1);
154
+ let t0;
155
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
156
+ t0 = /* @__PURE__ */ jsx(Room, {
157
+ size: "lg",
158
+ children: /* @__PURE__ */ jsx(Contained, { children: /* @__PURE__ */ jsx(Invoices, {}) })
159
+ });
160
+ $[0] = t0;
161
+ } else t0 = $[0];
162
+ return t0;
163
+ }
164
+ /**
165
+ * Hand-written scene for the link and the target.
166
+ */
167
+ const pair = {
168
+ about: "skip-nav.pair.about",
169
+ draw: Pair,
170
+ example: invoices_example_exports,
171
+ title: "skip-nav.pair.title"
172
+ };
173
+ var skip_nav_specimen_default = specimen({
174
+ about: "skip-nav.about",
175
+ id: "components/a11y/skip-nav",
176
+ imports: "import { SkipNav } from \"@stealthscale/component-a11y\";",
177
+ scenes: [pair],
178
+ title: "skip-nav.title"
179
+ });
180
+ //#endregion
181
+ export { skip_nav_specimen_default as default, pair };
@@ -0,0 +1,3 @@
1
+ export const dropped = {"LinkProps": {"conditions": 284, "foreign": 1049}, "TargetProps": {"conditions": 284, "foreign": 1041}};
2
+ export const parts = {"LinkProps": [], "TargetProps": []};
3
+ export const shapes = {};