@setsquare/ui 0.4.0 → 0.6.0

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.
Files changed (185) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/README.md +41 -3
  3. package/dist/index.d.ts +15 -7
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +4 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/english.d.ts +11 -0
  8. package/dist/lib/english.d.ts.map +1 -0
  9. package/dist/lib/english.js +65 -0
  10. package/dist/lib/english.js.map +1 -0
  11. package/dist/lib/labels.d.ts +38 -8
  12. package/dist/lib/labels.d.ts.map +1 -1
  13. package/dist/lib/labels.js +97 -9
  14. package/dist/lib/labels.js.map +1 -1
  15. package/dist/lib/locale.d.ts +105 -0
  16. package/dist/lib/locale.d.ts.map +1 -0
  17. package/dist/lib/locale.js +42 -0
  18. package/dist/lib/locale.js.map +1 -0
  19. package/dist/lint/index.d.ts +5 -0
  20. package/dist/lint/index.d.ts.map +1 -1
  21. package/dist/lint/index.js +80 -3
  22. package/dist/lint/index.js.map +1 -1
  23. package/dist/shell/dashboard-shell.d.ts +4 -1
  24. package/dist/shell/dashboard-shell.d.ts.map +1 -1
  25. package/dist/shell/dashboard-shell.js +3 -2
  26. package/dist/shell/dashboard-shell.js.map +1 -1
  27. package/dist/shell/landmarks.d.ts +33 -0
  28. package/dist/shell/landmarks.d.ts.map +1 -0
  29. package/dist/shell/landmarks.js +20 -0
  30. package/dist/shell/landmarks.js.map +1 -0
  31. package/dist/shell/right-panel.d.ts +7 -2
  32. package/dist/shell/right-panel.d.ts.map +1 -1
  33. package/dist/shell/right-panel.js +13 -7
  34. package/dist/shell/right-panel.js.map +1 -1
  35. package/dist/shell/sidebar.d.ts +10 -2
  36. package/dist/shell/sidebar.d.ts.map +1 -1
  37. package/dist/shell/sidebar.js +31 -14
  38. package/dist/shell/sidebar.js.map +1 -1
  39. package/dist/shell/site-menu.d.ts +11 -3
  40. package/dist/shell/site-menu.d.ts.map +1 -1
  41. package/dist/shell/site-menu.js +7 -1
  42. package/dist/shell/site-menu.js.map +1 -1
  43. package/dist/shell/site-nav.d.ts +4 -1
  44. package/dist/shell/site-nav.d.ts.map +1 -1
  45. package/dist/shell/site-nav.js +3 -3
  46. package/dist/shell/site-nav.js.map +1 -1
  47. package/dist/shell/site-shell.d.ts +4 -2
  48. package/dist/shell/site-shell.d.ts.map +1 -1
  49. package/dist/shell/site-shell.js +3 -2
  50. package/dist/shell/site-shell.js.map +1 -1
  51. package/dist/styles/theme.css +2 -0
  52. package/dist/styles/tokens.css +9 -0
  53. package/dist/testing/index.d.ts +54 -0
  54. package/dist/testing/index.d.ts.map +1 -1
  55. package/dist/testing/index.js +246 -9
  56. package/dist/testing/index.js.map +1 -1
  57. package/dist/tokens.json +25 -0
  58. package/dist/ui/alert.d.ts +2 -0
  59. package/dist/ui/alert.d.ts.map +1 -1
  60. package/dist/ui/alert.js +11 -9
  61. package/dist/ui/alert.js.map +1 -1
  62. package/dist/ui/breadcrumbs.d.ts +17 -1
  63. package/dist/ui/breadcrumbs.d.ts.map +1 -1
  64. package/dist/ui/breadcrumbs.js +6 -3
  65. package/dist/ui/breadcrumbs.js.map +1 -1
  66. package/dist/ui/button-styles.d.ts.map +1 -1
  67. package/dist/ui/button-styles.js +16 -6
  68. package/dist/ui/button-styles.js.map +1 -1
  69. package/dist/ui/calendar.d.ts +1 -0
  70. package/dist/ui/calendar.d.ts.map +1 -1
  71. package/dist/ui/calendar.js +7 -1
  72. package/dist/ui/calendar.js.map +1 -1
  73. package/dist/ui/checkbox.d.ts.map +1 -1
  74. package/dist/ui/checkbox.js +7 -7
  75. package/dist/ui/checkbox.js.map +1 -1
  76. package/dist/ui/code-block-parts.d.ts +30 -0
  77. package/dist/ui/code-block-parts.d.ts.map +1 -0
  78. package/dist/ui/code-block-parts.js +27 -0
  79. package/dist/ui/code-block-parts.js.map +1 -0
  80. package/dist/ui/code-block.d.ts +4 -10
  81. package/dist/ui/code-block.d.ts.map +1 -1
  82. package/dist/ui/code-block.js +4 -9
  83. package/dist/ui/code-block.js.map +1 -1
  84. package/dist/ui/combo-box.d.ts +13 -2
  85. package/dist/ui/combo-box.d.ts.map +1 -1
  86. package/dist/ui/combo-box.js +10 -3
  87. package/dist/ui/combo-box.js.map +1 -1
  88. package/dist/ui/copy-button.d.ts +7 -1
  89. package/dist/ui/copy-button.d.ts.map +1 -1
  90. package/dist/ui/copy-button.js +11 -10
  91. package/dist/ui/copy-button.js.map +1 -1
  92. package/dist/ui/date-field.d.ts +1 -0
  93. package/dist/ui/date-field.d.ts.map +1 -1
  94. package/dist/ui/date-field.js +20 -16
  95. package/dist/ui/date-field.js.map +1 -1
  96. package/dist/ui/dialog.d.ts +6 -1
  97. package/dist/ui/dialog.d.ts.map +1 -1
  98. package/dist/ui/dialog.js +11 -8
  99. package/dist/ui/dialog.js.map +1 -1
  100. package/dist/ui/drop-indicator.d.ts +21 -0
  101. package/dist/ui/drop-indicator.d.ts.map +1 -0
  102. package/dist/ui/drop-indicator.js +20 -0
  103. package/dist/ui/drop-indicator.js.map +1 -0
  104. package/dist/ui/error-state.d.ts +17 -2
  105. package/dist/ui/error-state.d.ts.map +1 -1
  106. package/dist/ui/error-state.js +32 -34
  107. package/dist/ui/error-state.js.map +1 -1
  108. package/dist/ui/feature-card.d.ts +18 -3
  109. package/dist/ui/feature-card.d.ts.map +1 -1
  110. package/dist/ui/feature-card.js +18 -3
  111. package/dist/ui/feature-card.js.map +1 -1
  112. package/dist/ui/field.d.ts +28 -9
  113. package/dist/ui/field.d.ts.map +1 -1
  114. package/dist/ui/field.js +22 -10
  115. package/dist/ui/field.js.map +1 -1
  116. package/dist/ui/file-upload.d.ts +23 -5
  117. package/dist/ui/file-upload.d.ts.map +1 -1
  118. package/dist/ui/file-upload.js +54 -36
  119. package/dist/ui/file-upload.js.map +1 -1
  120. package/dist/ui/form.d.ts +11 -1
  121. package/dist/ui/form.d.ts.map +1 -1
  122. package/dist/ui/form.js +7 -4
  123. package/dist/ui/form.js.map +1 -1
  124. package/dist/ui/grid-list.d.ts +10 -3
  125. package/dist/ui/grid-list.d.ts.map +1 -1
  126. package/dist/ui/grid-list.js +18 -7
  127. package/dist/ui/grid-list.js.map +1 -1
  128. package/dist/ui/number-field.d.ts.map +1 -1
  129. package/dist/ui/number-field.js +5 -3
  130. package/dist/ui/number-field.js.map +1 -1
  131. package/dist/ui/pagination.d.ts +11 -3
  132. package/dist/ui/pagination.d.ts.map +1 -1
  133. package/dist/ui/pagination.js +30 -23
  134. package/dist/ui/pagination.js.map +1 -1
  135. package/dist/ui/radio-group.d.ts.map +1 -1
  136. package/dist/ui/radio-group.js +4 -4
  137. package/dist/ui/radio-group.js.map +1 -1
  138. package/dist/ui/search.d.ts +3 -0
  139. package/dist/ui/search.d.ts.map +1 -1
  140. package/dist/ui/search.js +11 -10
  141. package/dist/ui/search.js.map +1 -1
  142. package/dist/ui/select.d.ts +7 -1
  143. package/dist/ui/select.d.ts.map +1 -1
  144. package/dist/ui/select.js +7 -3
  145. package/dist/ui/select.js.map +1 -1
  146. package/dist/ui/selection-bar.d.ts +17 -4
  147. package/dist/ui/selection-bar.d.ts.map +1 -1
  148. package/dist/ui/selection-bar.js +15 -11
  149. package/dist/ui/selection-bar.js.map +1 -1
  150. package/dist/ui/sheet.d.ts +1 -0
  151. package/dist/ui/sheet.d.ts.map +1 -1
  152. package/dist/ui/sheet.js +4 -1
  153. package/dist/ui/sheet.js.map +1 -1
  154. package/dist/ui/slider.d.ts +9 -2
  155. package/dist/ui/slider.d.ts.map +1 -1
  156. package/dist/ui/slider.js +13 -5
  157. package/dist/ui/slider.js.map +1 -1
  158. package/dist/ui/switch.d.ts +2 -1
  159. package/dist/ui/switch.d.ts.map +1 -1
  160. package/dist/ui/switch.js +5 -2
  161. package/dist/ui/switch.js.map +1 -1
  162. package/dist/ui/tabs.d.ts +1 -0
  163. package/dist/ui/tabs.d.ts.map +1 -1
  164. package/dist/ui/tabs.js +13 -12
  165. package/dist/ui/tabs.js.map +1 -1
  166. package/dist/ui/text-field.d.ts.map +1 -1
  167. package/dist/ui/text-field.js +7 -3
  168. package/dist/ui/text-field.js.map +1 -1
  169. package/dist/ui/theme-switcher.d.ts +1 -0
  170. package/dist/ui/theme-switcher.d.ts.map +1 -1
  171. package/dist/ui/theme-switcher.js +7 -7
  172. package/dist/ui/theme-switcher.js.map +1 -1
  173. package/dist/ui/toast.d.ts +1 -0
  174. package/dist/ui/toast.d.ts.map +1 -1
  175. package/dist/ui/toast.js +4 -1
  176. package/dist/ui/toast.js.map +1 -1
  177. package/dist/ui/toolbar.d.ts +22 -0
  178. package/dist/ui/toolbar.d.ts.map +1 -0
  179. package/dist/ui/toolbar.js +22 -0
  180. package/dist/ui/toolbar.js.map +1 -0
  181. package/dist/ui/tree.d.ts +57 -12
  182. package/dist/ui/tree.d.ts.map +1 -1
  183. package/dist/ui/tree.js +55 -16
  184. package/dist/ui/tree.js.map +1 -1
  185. package/package.json +4 -3
@@ -1,15 +1,103 @@
1
+ import { IntlMessageFormat } from 'intl-messageformat';
2
+ /** The English defaults with any of the product's words laid over them, later layers winning. */
3
+ export function withLabels(defaults, ...layers) {
4
+ const words = { ...defaults };
5
+ for (const layer of layers) {
6
+ if (!layer)
7
+ continue;
8
+ for (const [key, word] of Object.entries(layer))
9
+ if (word !== undefined)
10
+ words[key] = word;
11
+ }
12
+ return words;
13
+ }
14
+ // Compiled templates, by locale and template. Labels are a fixed set, so this stays small; the cap is a guard.
15
+ const compiled = new Map();
16
+ function compile(template, locale) {
17
+ const key = `${locale}\u0000${template}`;
18
+ let message = compiled.get(key);
19
+ if (!message) {
20
+ if (compiled.size >= 1000)
21
+ compiled.clear();
22
+ // ignoreTag: `<b>` is text, as PHP's ICU and a product's translators read it, not rich-text markup.
23
+ message = new IntlMessageFormat(template, locale, undefined, { ignoreTag: true });
24
+ compiled.set(key, message);
25
+ }
26
+ return message;
27
+ }
28
+ /** Formats an ICU template in `locale`. Throws if it is malformed or a value it names is missing. */
29
+ export function formatLabel(template, values, locale) {
30
+ return String(compile(template, locale).format(values));
31
+ }
1
32
  /**
2
- * The words a component shows or says, which a product can replace one component at a time through its `labels`
3
- * prop: an object of strings, any of which can be left out to keep the English default. A word that carries a
4
- * value has a `{name}` placeholder in its string ("Remove {name}") rather than being a function, so `labels`
5
- * stays plain data that a server component can pass to a client one.
33
+ * Finished text as a template that formats to itself, for handing a word one component has formatted to another
34
+ * that formats its labels: an apostrophe is doubled and each brace quoted.
6
35
  */
7
- /** The English defaults with any of the product's words laid over them. */
8
- export function withLabels(defaults, labels) {
9
- return labels ? { ...defaults, ...labels } : defaults;
36
+ export function literal(text) {
37
+ return text.replace(/'/g, "''").replace(/[{}]/g, (brace) => `'${brace}'`);
10
38
  }
11
- /** Fills `{name}` placeholders: `fill('Remove {name}', { name: 'plan.pdf' })` is "Remove plan.pdf". */
12
- export function fill(template, values) {
39
+ /** Replaces `{name}` with its value and nothing else. For a path (`/projects?page={page}`), not for words. */
40
+ export function substitute(template, values) {
13
41
  return template.replace(/\{(\w+)\}/g, (match, key) => key in values ? String(values[key]) : match);
14
42
  }
43
+ function development() {
44
+ try {
45
+ return process.env.NODE_ENV !== 'production';
46
+ }
47
+ catch {
48
+ // No `process` at all: a page with no build step, which is nobody's development server.
49
+ return false;
50
+ }
51
+ }
52
+ /**
53
+ * Formats a word: `fill('Remove {name}', { name: 'plan.pdf' }, 'en')` is "Remove plan.pdf". A word that can't
54
+ * be formatted throws in development. In production it shows `fallback` (the package's English default for the
55
+ * word) formatted with the same values, and if that fails too, `fallback` with its plain `{name}` placeholders
56
+ * replaced, so a page never breaks over a word.
57
+ */
58
+ export function fill(template, values = {}, locale = 'en', fallback) {
59
+ try {
60
+ return formatLabel(template, values, locale);
61
+ }
62
+ catch (error) {
63
+ if (development())
64
+ throw error;
65
+ const english = fallback ?? template;
66
+ try {
67
+ return formatLabel(english, values, 'en');
68
+ }
69
+ catch {
70
+ return substitute(english, values);
71
+ }
72
+ }
73
+ }
74
+ const OPEN = '';
75
+ const CLOSE = '';
76
+ /**
77
+ * Stands in for a value that a component draws itself (a bold figure, a page number), so a template can be
78
+ * formatted whole and then split around it with `splitMarkers`. Only for a plain `{name}` placeholder: a marked
79
+ * value isn't a number, so it can't choose a plural.
80
+ */
81
+ export function marker(name) {
82
+ return `${OPEN}${name}${CLOSE}`;
83
+ }
84
+ /** A formatted word in pieces: its text, and `{ marker }` where each `marker(name)` was. */
85
+ export function splitMarkers(text) {
86
+ const pieces = [];
87
+ const pattern = new RegExp(`${OPEN}([^${CLOSE}]*)${CLOSE}`, 'g');
88
+ let at = 0;
89
+ for (const match of text.matchAll(pattern)) {
90
+ if (match.index > at)
91
+ pieces.push(text.slice(at, match.index));
92
+ pieces.push({ marker: match[1] });
93
+ at = match.index + match[0].length;
94
+ }
95
+ if (at < text.length)
96
+ pieces.push(text.slice(at));
97
+ return pieces;
98
+ }
99
+ /** A list in `locale`'s words and punctuation, through `Intl.ListFormat`: "A, B, C"; "PDF, PNG or JPEG". */
100
+ export function formatList(items, locale, options = { type: 'unit', style: 'short' }) {
101
+ return new Intl.ListFormat(locale, options).format(items);
102
+ }
15
103
  //# sourceMappingURL=labels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/lib/labels.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAmB,QAAW,EAAE,MAA8B;IACtF,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,IAAI,CAAC,QAAgB,EAAE,MAAuC;IAC5E,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE,CAC3D,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/lib/labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type LabelValues } from './labels.js';
3
+ import type { ShellLabels, SiteNavLabels } from '../shell/landmarks.js';
4
+ import type { RightPanelLabels } from '../shell/right-panel.js';
5
+ import type { SidebarLabels, SidebarTriggerLabels } from '../shell/sidebar.js';
6
+ import type { SiteMenuLabels } from '../shell/site-menu.js';
7
+ import type { AlertLabels, OfflineAlertLabels } from '../ui/alert.js';
8
+ import type { BreadcrumbsLabels } from '../ui/breadcrumbs.js';
9
+ import type { CalendarLabels } from '../ui/calendar.js';
10
+ import type { CodeBlockLabels } from '../ui/code-block-parts.js';
11
+ import type { ComboBoxLabels } from '../ui/combo-box.js';
12
+ import type { CopyButtonLabels } from '../ui/copy-button.js';
13
+ import type { DateFieldLabels } from '../ui/date-field.js';
14
+ import type { ConfirmDialogLabels, DialogLabels } from '../ui/dialog.js';
15
+ import type { ErrorStateLabels } from '../ui/error-state.js';
16
+ import type { FeatureCardLabels } from '../ui/feature-card.js';
17
+ import type { FieldLabels } from '../ui/field.js';
18
+ import type { FileUploadLabels } from '../ui/file-upload.js';
19
+ import type { ErrorSummaryLabels } from '../ui/form.js';
20
+ import type { PaginationLabels } from '../ui/pagination.js';
21
+ import type { SearchLabels } from '../ui/search.js';
22
+ import type { SelectLabels } from '../ui/select.js';
23
+ import type { SelectionBarLabels } from '../ui/selection-bar.js';
24
+ import type { SheetLabels } from '../ui/sheet.js';
25
+ import type { RangeSliderLabels } from '../ui/slider.js';
26
+ import type { TabsLabels } from '../ui/tabs.js';
27
+ import type { ThemeSwitcherLabels } from '../ui/theme-switcher.js';
28
+ import type { ToasterLabels } from '../ui/toast.js';
29
+ /**
30
+ * The words every component can take app-wide, keyed by component. Each entry is that component's `labels`
31
+ * shape with every word optional; a word left out stays English.
32
+ */
33
+ export interface SetsquareLabels {
34
+ alert?: Partial<AlertLabels>;
35
+ breadcrumbs?: Partial<BreadcrumbsLabels>;
36
+ calendar?: Partial<CalendarLabels>;
37
+ /** CodeBlock's own words; its copy button's are `copyButton`'s. */
38
+ codeBlock?: Partial<Omit<CodeBlockLabels, keyof CopyButtonLabels>>;
39
+ /** ComboBox, over `field`. */
40
+ comboBox?: Partial<Omit<ComboBoxLabels, keyof FieldLabels>>;
41
+ confirmDialog?: Partial<ConfirmDialogLabels>;
42
+ copyButton?: Partial<CopyButtonLabels>;
43
+ /** DateField, TimeField, DatePicker and DateRangePicker, over `field`. */
44
+ /** DashboardShell's skip link. */
45
+ dashboardShell?: Partial<ShellLabels>;
46
+ dateField?: Partial<Omit<DateFieldLabels, keyof FieldLabels>>;
47
+ dialog?: Partial<DialogLabels>;
48
+ errorState?: Partial<ErrorStateLabels>;
49
+ /** ErrorSummary, and the one Form shows. */
50
+ errorSummary?: Partial<ErrorSummaryLabels>;
51
+ featureCard?: Partial<FeatureCardLabels>;
52
+ /** Every field. */
53
+ field?: Partial<FieldLabels>;
54
+ fileUpload?: Partial<FileUploadLabels>;
55
+ offlineAlert?: Partial<OfflineAlertLabels>;
56
+ pagination?: Partial<PaginationLabels>;
57
+ rangeSlider?: Partial<RangeSliderLabels>;
58
+ /** RightPanel and PanelToggle. */
59
+ rightPanel?: Partial<RightPanelLabels>;
60
+ search?: Partial<SearchLabels>;
61
+ selectionBar?: Partial<SelectionBarLabels>;
62
+ /** Select, over `field`. */
63
+ select?: Partial<Omit<SelectLabels, keyof FieldLabels>>;
64
+ sheet?: Partial<SheetLabels>;
65
+ sidebar?: Partial<SidebarLabels>;
66
+ sidebarTrigger?: Partial<SidebarTriggerLabels>;
67
+ /** SiteMenu's button; its navigation's name is `siteNav`'s. */
68
+ siteMenu?: Partial<Omit<SiteMenuLabels, keyof SiteNavLabels>>;
69
+ /** SiteNav, and SiteMenu's navigation. */
70
+ siteNav?: Partial<SiteNavLabels>;
71
+ /** SiteShell's skip link. */
72
+ siteShell?: Partial<ShellLabels>;
73
+ tabs?: Partial<TabsLabels>;
74
+ themeSwitcher?: Partial<ThemeSwitcherLabels>;
75
+ toaster?: Partial<ToasterLabels>;
76
+ }
77
+ export interface SetsquareLocaleProps {
78
+ /**
79
+ * A BCP 47 language tag (`en-GB`, `de`, `pl`): the language of the product's words, and of React Aria's own
80
+ * (the calendar's buttons, "Clear search", the table's "Select all"), numbers, dates and lists. Set it, or
81
+ * React Aria follows the server's default while rendering there and the browser's after hydration. Left out
82
+ * on a nested provider, it keeps the outer one's.
83
+ */
84
+ locale?: string;
85
+ /**
86
+ * Words for every component of a kind, keyed by component: `{ pagination: { previous: 'Zurück' } }`. A
87
+ * component's own `labels` prop wins over these, and these over the English defaults. A nested provider's
88
+ * words are laid over the outer one's, one component at a time.
89
+ */
90
+ labels?: SetsquareLabels;
91
+ children?: ReactNode;
92
+ }
93
+ /**
94
+ * Sets the language once for the whole product: React Aria's locale (through its I18nProvider) and every
95
+ * component's words. Put it high in the root layout, inside `<html lang>`, with the same locale.
96
+ */
97
+ export declare function SetsquareLocale({ locale, labels, children }: SetsquareLocaleProps): import("react").JSX.Element;
98
+ /** Formats one of a component's words, an ICU template, with its values: `t('remove', { name: 'plan.pdf' })`. */
99
+ export type Translate<T> = (key: keyof T & string, values?: LabelValues) => string;
100
+ /**
101
+ * A component's words: its English defaults, under the app-wide ones from `SetsquareLocale` (each name in
102
+ * `names`, later ones winning), under the instance's own `labels`. Returns a function that formats one word.
103
+ */
104
+ export declare function useLabels<T extends object>(names: keyof SetsquareLabels | (keyof SetsquareLabels)[], defaults: T, given: Partial<T> | undefined): Translate<T>;
105
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/lib/locale.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useMemo } from 'react';
4
+ import { I18nProvider, useLocale } from 'react-aria-components';
5
+ import { fill, withLabels } from './labels.js';
6
+ const LocaleContext = createContext({ locale: undefined, labels: {} });
7
+ /**
8
+ * Sets the language once for the whole product: React Aria's locale (through its I18nProvider) and every
9
+ * component's words. Put it high in the root layout, inside `<html lang>`, with the same locale.
10
+ */
11
+ export function SetsquareLocale({ locale, labels, children }) {
12
+ const outer = useContext(LocaleContext);
13
+ const resolved = locale ?? outer.locale;
14
+ const value = useMemo(() => {
15
+ if (!labels)
16
+ return { locale: resolved, labels: outer.labels };
17
+ const merged = { ...outer.labels };
18
+ for (const [key, words] of Object.entries(labels)) {
19
+ merged[key] = withLabels(merged[key] ?? {}, words);
20
+ }
21
+ return { locale: resolved, labels: merged };
22
+ }, [resolved, labels, outer.labels]);
23
+ const provided = _jsx(LocaleContext.Provider, { value: value, children: children });
24
+ return resolved ? _jsx(I18nProvider, { locale: resolved, children: provided }) : provided;
25
+ }
26
+ /**
27
+ * A component's words: its English defaults, under the app-wide ones from `SetsquareLocale` (each name in
28
+ * `names`, later ones winning), under the instance's own `labels`. Returns a function that formats one word.
29
+ */
30
+ export function useLabels(names, defaults, given) {
31
+ const { labels: appWide } = useContext(LocaleContext);
32
+ const { locale } = useLocale();
33
+ const layers = (Array.isArray(names) ? names : [names]).map((name) => appWide[name]);
34
+ // Compared by content, so `labels={{ … }}` written inline doesn't give the function a new identity each render.
35
+ const words = JSON.stringify(withLabels(defaults, ...layers, given));
36
+ return useMemo(() => {
37
+ const parsed = JSON.parse(words);
38
+ const english = defaults;
39
+ return (key, values) => fill(parsed[key], values, locale, english[key]);
40
+ }, [words, locale, defaults]);
41
+ }
42
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/lib/locale.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAkFjE,MAAM,aAAa,GAAG,aAAa,CAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAmB3F;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAwB;IAChF,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAqB,GAAG,EAAE;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAuC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAmC,EAAE,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAyB,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAC;IAC3F,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,MAAM,EAAE,QAAQ,YAAG,QAAQ,GAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzF,CAAC;AAKD;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,KAAwD,EACxD,QAAW,EACX,KAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CACzD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAA2B,CAClD,CAAC;IACF,gHAAgH;IAChH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2B,CAAC;QAC3D,MAAM,OAAO,GAAG,QAAkC,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -12,6 +12,9 @@
12
12
  * there can shrink the target below 44px at AAA; and the painted classes on their own (Layer 2) make the paint
13
13
  * the target.
14
14
  *
15
+ * One more is for products that use @setsquare/ui-blocks: Puck's `overrides` can replace the builder's own
16
+ * surfaces, and the builder's tests don't reach what replaces them.
17
+ *
15
18
  * Static analysis can only see some of it. `@setsquare/ui/testing` checks the rendered page, and finds the rest.
16
19
  */
17
20
  import type { Rule } from 'eslint';
@@ -22,6 +25,7 @@ export declare const rules: {
22
25
  'no-target-shrink': Rule.RuleModule;
23
26
  'no-visual-only-target': Rule.RuleModule;
24
27
  'client-directive': Rule.RuleModule;
28
+ 'no-builder-surface-override': Rule.RuleModule;
25
29
  };
26
30
  declare const plugin: {
27
31
  meta: {
@@ -34,6 +38,7 @@ declare const plugin: {
34
38
  'no-target-shrink': Rule.RuleModule;
35
39
  'no-visual-only-target': Rule.RuleModule;
36
40
  'client-directive': Rule.RuleModule;
41
+ 'no-builder-surface-override': Rule.RuleModule;
37
42
  };
38
43
  configs: Record<string, unknown>;
39
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA4oBnC,eAAO,MAAM,KAAK;IAChB,sBAAsB;IACtB,6BAA6B;IAC7B,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,kBAAkB;CACnB,CAAC;AAEF,QAAA,MAAM,MAAM;;QACF,IAAI;;;;;;;;;;aAEG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACvC,CAAC;eAea,MAAM"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAstBnC,eAAO,MAAM,KAAK;IAChB,sBAAsB;IACtB,6BAA6B;IAC7B,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,kBAAkB;IAClB,6BAA6B;CAC9B,CAAC;AAEF,QAAA,MAAM,MAAM;;QACF,IAAI;;;;;;;;;;;aAEG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACvC,CAAC;eAgBa,MAAM"}
@@ -538,17 +538,19 @@ const noVisualOnlyTarget = {
538
538
  /** Hooks React's server build exports (react.react-server in React 19): a server component may call these. */
539
539
  const SERVER_HOOKS = new Set(['use', 'useCallback', 'useDebugValue', 'useId', 'useMemo']);
540
540
  /** Packages that only work in the client graph: React Aria's entry imports `client-only`. */
541
- const CLIENT_PACKAGES = /^(react-aria-components|react-aria|react-stately|@react-aria\/|@react-stately\/)/;
541
+ // Puck's main entry ships no 'use client' of its own, so a module importing it has to carry one. Its /rsc entry
542
+ // is the server-safe one.
543
+ const CLIENT_PACKAGES = /^(react-aria-components|react-aria|react-stately|@react-aria\/|@react-stately\/|@puckeditor\/core$)/;
542
544
  const clientDirective = {
543
545
  meta: {
544
546
  type: 'problem',
545
547
  docs: {
546
- description: "Require 'use client' exactly when a module needs it: React Aria, a hook, a context, an event handler or a function passed as a prop",
548
+ description: "Require 'use client' exactly when a module needs it: React Aria or Puck's editor, a hook, a context, an event handler or a function passed as a prop",
547
549
  },
548
550
  schema: [],
549
551
  messages: {
550
552
  missing: "This module {{reason}}, which only a client module can do. Add 'use client' as its first line.",
551
- unneeded: "'use client' isn't needed here: nothing in this module needs the client (React Aria, a hook other than use, useCallback, useDebugValue, useId or useMemo, createContext, an event handler, or a function passed as a prop or child). Remove it, so server components can use this module without shipping it to the browser.",
553
+ unneeded: "'use client' isn't needed here: nothing in this module needs the client (React Aria, Puck's editor, a hook other than use, useCallback, useDebugValue, useId or useMemo, createContext, an event handler, or a function passed as a prop or child). Remove it, so server components can use this module without shipping it to the browser.",
552
554
  },
553
555
  },
554
556
  create(context) {
@@ -623,6 +625,79 @@ const clientDirective = {
623
625
  };
624
626
  },
625
627
  };
628
+ /**
629
+ * The parts of Puck's editor that @setsquare/ui-blocks draws itself, as Puck's `overrides` keys. Replacing one
630
+ * swaps a surface the builder's tests cover for one they don't see.
631
+ */
632
+ const BUILDER_SURFACES = new Set([
633
+ 'header',
634
+ 'headerActions',
635
+ 'actionBar',
636
+ 'componentOverlay',
637
+ 'componentItem',
638
+ 'components',
639
+ 'drawer',
640
+ 'drawerItem',
641
+ 'outline',
642
+ 'fields',
643
+ 'fieldLabel',
644
+ 'fieldTypes',
645
+ 'iframe',
646
+ 'preview',
647
+ 'puck',
648
+ ]);
649
+ const BUILDER_PACKAGES = /^(?:@setsquare\/ui-blocks|@puckeditor\/core)(?:\/|$)/;
650
+ const noBuilderSurfaceOverride = {
651
+ meta: {
652
+ type: 'suggestion',
653
+ docs: {
654
+ description: "Warn when Puck's `overrides` replace a surface @setsquare/ui-blocks draws and tests: the header, library, outline, fields, canvas and their overlays",
655
+ },
656
+ schema: [],
657
+ messages: {
658
+ override: "overrides.{{key}} replaces the builder's own {{key}}, and that surface's tests (keyboard routes, focus after each change, announcements, target size) stop applying to it. Add behaviour through useBuilder() or the builder's props instead, or ask for an option.",
659
+ },
660
+ },
661
+ create(context) {
662
+ // Only files that use the builder or Puck: elsewhere an `overrides` object is someone else's.
663
+ let builder = false;
664
+ const report = (obj) => {
665
+ if (!builder || !obj || obj.type !== 'ObjectExpression')
666
+ return;
667
+ for (const p of obj.properties) {
668
+ if (p.type !== 'Property' || p.computed)
669
+ continue;
670
+ const k = p.key;
671
+ const key = String(k.type === 'Identifier' ? k.name : k.value);
672
+ if (BUILDER_SURFACES.has(key))
673
+ context.report({ node: p, messageId: 'override', data: { key } });
674
+ }
675
+ };
676
+ return {
677
+ ImportDeclaration(node) {
678
+ const n = node;
679
+ if (BUILDER_PACKAGES.test(String(n.source.value)))
680
+ builder = true;
681
+ },
682
+ // A plugin, or any object, with `overrides: { … }`.
683
+ Property(node) {
684
+ const n = node;
685
+ const k = n.key;
686
+ if (!n.computed && (k.name === 'overrides' || k.value === 'overrides'))
687
+ report(n.value);
688
+ },
689
+ // <Puck overrides={{ … }}>
690
+ JSXAttribute(node) {
691
+ const n = node;
692
+ if (n.name.name !== 'overrides')
693
+ return;
694
+ const v = n.value;
695
+ if (v?.type === 'JSXExpressionContainer')
696
+ report(v.expression);
697
+ },
698
+ };
699
+ },
700
+ };
626
701
  export const rules = {
627
702
  'no-raw-aria-controls': noRawAriaControls,
628
703
  'positioned-scroll-container': positionedScrollContainer,
@@ -630,6 +705,7 @@ export const rules = {
630
705
  'no-target-shrink': noTargetShrink,
631
706
  'no-visual-only-target': noVisualOnlyTarget,
632
707
  'client-directive': clientDirective,
708
+ 'no-builder-surface-override': noBuilderSurfaceOverride,
633
709
  };
634
710
  const plugin = {
635
711
  meta: { name: '@setsquare/ui/lint' },
@@ -646,6 +722,7 @@ plugin.configs.recommended = {
646
722
  'setsquare-ui/no-static-control-root': 'error',
647
723
  'setsquare-ui/no-target-shrink': 'error',
648
724
  'setsquare-ui/no-visual-only-target': 'error',
725
+ 'setsquare-ui/no-builder-surface-override': 'warn',
649
726
  },
650
727
  };
651
728
  export default plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type CSSProperties, type ReactNode, type RefObject } from 'react';
2
+ import { type ShellLabels } from './landmarks.js';
2
3
  export type ShellSize = 'mobile' | 'tablet' | 'laptop' | 'desktop';
3
4
  export type PanelMode = 'inline' | 'sheet';
4
5
  export interface ShellContextValue {
@@ -29,7 +30,9 @@ export interface DashboardShellProps {
29
30
  defaultSidebarCollapsed?: boolean;
30
31
  /** Force a size instead of measuring (previews, tests, Storybook). */
31
32
  size?: ShellSize;
33
+ /** @deprecated Use `labels.skipLink`. Kept for one release. */
32
34
  skipLinkLabel?: string;
35
+ labels?: Partial<ShellLabels>;
33
36
  className?: string;
34
37
  style?: CSSProperties;
35
38
  }
@@ -39,7 +42,7 @@ export interface DashboardShellProps {
39
42
  * tablet ≥ bp-md: sidebar icons, panel as a Sheet · mobile: sidebar and panel both Sheets.
40
43
  * CSS container queries on `shell` do the first layout, so there is no flash before measuring.
41
44
  */
42
- export declare function DashboardShell({ children, productName, defaultPanelOpen, defaultMobileNavOpen, defaultSidebarCollapsed, size: forcedSize, skipLinkLabel, className, style, }: DashboardShellProps): import("react").JSX.Element;
45
+ export declare function DashboardShell({ children, productName, defaultPanelOpen, defaultMobileNavOpen, defaultSidebarCollapsed, size: forcedSize, skipLinkLabel, labels, className, style, }: DashboardShellProps): import("react").JSX.Element;
43
46
  /** The raised surface that holds the header, the page and the right panel. Edge to edge on phones. */
44
47
  export declare function ShellInset({ children, className }: {
45
48
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-shell.d.ts","sourceRoot":"","sources":["../../src/shell/dashboard-shell.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,OAAO,CAAC;CACvB;AAID,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C;AACD,wFAAwF;AACxF,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAE3D;AAeD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sEAAsE;IACtE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,oBAA4B,EAC5B,uBAAuB,EACvB,IAAI,EAAE,UAAU,EAChB,aAAsC,EACtC,SAAS,EACT,KAAK,GACN,EAAE,mBAAmB,+BAoGrB;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAY9F;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE7F;AAMD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,iBAAiB,EAAE,UAAU,GAC9B,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,+BAsDA"}
1
+ {"version":3,"file":"dashboard-shell.d.ts","sourceRoot":"","sources":["../../src/shell/dashboard-shell.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,OAAO,CAAC;CACvB;AAID,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C;AACD,wFAAwF;AACxF,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAE3D;AAeD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sEAAsE;IACtE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,oBAA4B,EAC5B,uBAAuB,EACvB,IAAI,EAAE,UAAU,EAChB,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,mBAAmB,+BA4FrB;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAY9F;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE7F;AAMD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,iBAAiB,EAAE,UAAU,GAC9B,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,+BAsDA"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
4
4
  import { cn } from '../lib/cn.js';
5
+ import { SkipLink } from './landmarks.js';
5
6
  const ShellContext = createContext(null);
6
7
  export function useShell() {
7
8
  const ctx = useContext(ShellContext);
@@ -34,7 +35,7 @@ function sizeFor(width, bp) {
34
35
  * tablet ≥ bp-md: sidebar icons, panel as a Sheet · mobile: sidebar and panel both Sheets.
35
36
  * CSS container queries on `shell` do the first layout, so there is no flash before measuring.
36
37
  */
37
- export function DashboardShell({ children, productName, defaultPanelOpen, defaultMobileNavOpen = false, defaultSidebarCollapsed, size: forcedSize, skipLinkLabel = 'Skip to main content', className, style, }) {
38
+ export function DashboardShell({ children, productName, defaultPanelOpen, defaultMobileNavOpen = false, defaultSidebarCollapsed, size: forcedSize, skipLinkLabel, labels, className, style, }) {
38
39
  const ref = useRef(null);
39
40
  const [measured, setMeasured] = useState(null);
40
41
  const size = forcedSize ?? measured ?? 'desktop';
@@ -98,7 +99,7 @@ export function DashboardShell({ children, productName, defaultPanelOpen, defaul
98
99
  productName,
99
100
  forcedSize,
100
101
  ]);
101
- return (_jsx(ShellContext.Provider, { value: value, children: _jsxs("div", { ref: ref, "data-size": size, style: style, className: cn('@container/shell relative flex h-dvh min-h-0 w-full overflow-hidden bg-sidebar text-foreground', className), children: [_jsx("a", { href: "#main", className: "group/skip absolute top-2 left-4 z-(--z-popover) inline-flex min-h-target min-w-target -translate-y-[200%] cursor-pointer items-center no-underline outline-none focus:translate-y-0", children: _jsx("span", { className: "inline-flex min-h-control items-center rounded-md bg-primary px-(--control-pad-x) text-sm font-semibold text-primary-foreground group-focus-visible/skip:focus-ring", children: skipLinkLabel }) }), children] }) }));
102
+ return (_jsx(ShellContext.Provider, { value: value, children: _jsxs("div", { ref: ref, "data-size": size, style: style, className: cn('@container/shell relative flex h-dvh min-h-0 w-full overflow-hidden bg-sidebar text-foreground', className), children: [_jsx(SkipLink, { href: "#main", shell: "dashboardShell", label: skipLinkLabel, labels: labels }), children] }) }));
102
103
  }
103
104
  /** The raised surface that holds the header, the page and the right panel. Edge to edge on phones. */
104
105
  export function ShellInset({ children, className }) {