@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.
- package/CHANGELOG.md +129 -0
- package/README.md +41 -3
- package/dist/index.d.ts +15 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/english.d.ts +11 -0
- package/dist/lib/english.d.ts.map +1 -0
- package/dist/lib/english.js +65 -0
- package/dist/lib/english.js.map +1 -0
- package/dist/lib/labels.d.ts +38 -8
- package/dist/lib/labels.d.ts.map +1 -1
- package/dist/lib/labels.js +97 -9
- package/dist/lib/labels.js.map +1 -1
- package/dist/lib/locale.d.ts +105 -0
- package/dist/lib/locale.d.ts.map +1 -0
- package/dist/lib/locale.js +42 -0
- package/dist/lib/locale.js.map +1 -0
- package/dist/lint/index.d.ts +5 -0
- package/dist/lint/index.d.ts.map +1 -1
- package/dist/lint/index.js +80 -3
- package/dist/lint/index.js.map +1 -1
- package/dist/shell/dashboard-shell.d.ts +4 -1
- package/dist/shell/dashboard-shell.d.ts.map +1 -1
- package/dist/shell/dashboard-shell.js +3 -2
- package/dist/shell/dashboard-shell.js.map +1 -1
- package/dist/shell/landmarks.d.ts +33 -0
- package/dist/shell/landmarks.d.ts.map +1 -0
- package/dist/shell/landmarks.js +20 -0
- package/dist/shell/landmarks.js.map +1 -0
- package/dist/shell/right-panel.d.ts +7 -2
- package/dist/shell/right-panel.d.ts.map +1 -1
- package/dist/shell/right-panel.js +13 -7
- package/dist/shell/right-panel.js.map +1 -1
- package/dist/shell/sidebar.d.ts +10 -2
- package/dist/shell/sidebar.d.ts.map +1 -1
- package/dist/shell/sidebar.js +31 -14
- package/dist/shell/sidebar.js.map +1 -1
- package/dist/shell/site-menu.d.ts +11 -3
- package/dist/shell/site-menu.d.ts.map +1 -1
- package/dist/shell/site-menu.js +7 -1
- package/dist/shell/site-menu.js.map +1 -1
- package/dist/shell/site-nav.d.ts +4 -1
- package/dist/shell/site-nav.d.ts.map +1 -1
- package/dist/shell/site-nav.js +3 -3
- package/dist/shell/site-nav.js.map +1 -1
- package/dist/shell/site-shell.d.ts +4 -2
- package/dist/shell/site-shell.d.ts.map +1 -1
- package/dist/shell/site-shell.js +3 -2
- package/dist/shell/site-shell.js.map +1 -1
- package/dist/styles/theme.css +2 -0
- package/dist/styles/tokens.css +9 -0
- package/dist/testing/index.d.ts +54 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +246 -9
- package/dist/testing/index.js.map +1 -1
- package/dist/tokens.json +25 -0
- package/dist/ui/alert.d.ts +2 -0
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +11 -9
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/breadcrumbs.d.ts +17 -1
- package/dist/ui/breadcrumbs.d.ts.map +1 -1
- package/dist/ui/breadcrumbs.js +6 -3
- package/dist/ui/breadcrumbs.js.map +1 -1
- package/dist/ui/button-styles.d.ts.map +1 -1
- package/dist/ui/button-styles.js +16 -6
- package/dist/ui/button-styles.js.map +1 -1
- package/dist/ui/calendar.d.ts +1 -0
- package/dist/ui/calendar.d.ts.map +1 -1
- package/dist/ui/calendar.js +7 -1
- package/dist/ui/calendar.js.map +1 -1
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +7 -7
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code-block-parts.d.ts +30 -0
- package/dist/ui/code-block-parts.d.ts.map +1 -0
- package/dist/ui/code-block-parts.js +27 -0
- package/dist/ui/code-block-parts.js.map +1 -0
- package/dist/ui/code-block.d.ts +4 -10
- package/dist/ui/code-block.d.ts.map +1 -1
- package/dist/ui/code-block.js +4 -9
- package/dist/ui/code-block.js.map +1 -1
- package/dist/ui/combo-box.d.ts +13 -2
- package/dist/ui/combo-box.d.ts.map +1 -1
- package/dist/ui/combo-box.js +10 -3
- package/dist/ui/combo-box.js.map +1 -1
- package/dist/ui/copy-button.d.ts +7 -1
- package/dist/ui/copy-button.d.ts.map +1 -1
- package/dist/ui/copy-button.js +11 -10
- package/dist/ui/copy-button.js.map +1 -1
- package/dist/ui/date-field.d.ts +1 -0
- package/dist/ui/date-field.d.ts.map +1 -1
- package/dist/ui/date-field.js +20 -16
- package/dist/ui/date-field.js.map +1 -1
- package/dist/ui/dialog.d.ts +6 -1
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +11 -8
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/drop-indicator.d.ts +21 -0
- package/dist/ui/drop-indicator.d.ts.map +1 -0
- package/dist/ui/drop-indicator.js +20 -0
- package/dist/ui/drop-indicator.js.map +1 -0
- package/dist/ui/error-state.d.ts +17 -2
- package/dist/ui/error-state.d.ts.map +1 -1
- package/dist/ui/error-state.js +32 -34
- package/dist/ui/error-state.js.map +1 -1
- package/dist/ui/feature-card.d.ts +18 -3
- package/dist/ui/feature-card.d.ts.map +1 -1
- package/dist/ui/feature-card.js +18 -3
- package/dist/ui/feature-card.js.map +1 -1
- package/dist/ui/field.d.ts +28 -9
- package/dist/ui/field.d.ts.map +1 -1
- package/dist/ui/field.js +22 -10
- package/dist/ui/field.js.map +1 -1
- package/dist/ui/file-upload.d.ts +23 -5
- package/dist/ui/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload.js +54 -36
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/form.d.ts +11 -1
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +7 -4
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/grid-list.d.ts +10 -3
- package/dist/ui/grid-list.d.ts.map +1 -1
- package/dist/ui/grid-list.js +18 -7
- package/dist/ui/grid-list.js.map +1 -1
- package/dist/ui/number-field.d.ts.map +1 -1
- package/dist/ui/number-field.js +5 -3
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/pagination.d.ts +11 -3
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js +30 -23
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/radio-group.d.ts.map +1 -1
- package/dist/ui/radio-group.js +4 -4
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/search.d.ts +3 -0
- package/dist/ui/search.d.ts.map +1 -1
- package/dist/ui/search.js +11 -10
- package/dist/ui/search.js.map +1 -1
- package/dist/ui/select.d.ts +7 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +7 -3
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/selection-bar.d.ts +17 -4
- package/dist/ui/selection-bar.d.ts.map +1 -1
- package/dist/ui/selection-bar.js +15 -11
- package/dist/ui/selection-bar.js.map +1 -1
- package/dist/ui/sheet.d.ts +1 -0
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +4 -1
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/slider.d.ts +9 -2
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +13 -5
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/switch.d.ts +2 -1
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +5 -2
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/tabs.d.ts +1 -0
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +13 -12
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/text-field.d.ts.map +1 -1
- package/dist/ui/text-field.js +7 -3
- package/dist/ui/text-field.js.map +1 -1
- package/dist/ui/theme-switcher.d.ts +1 -0
- package/dist/ui/theme-switcher.d.ts.map +1 -1
- package/dist/ui/theme-switcher.js +7 -7
- package/dist/ui/theme-switcher.js.map +1 -1
- package/dist/ui/toast.d.ts +1 -0
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +4 -1
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toolbar.d.ts +22 -0
- package/dist/ui/toolbar.d.ts.map +1 -0
- package/dist/ui/toolbar.js +22 -0
- package/dist/ui/toolbar.js.map +1 -0
- package/dist/ui/tree.d.ts +57 -12
- package/dist/ui/tree.d.ts.map +1 -1
- package/dist/ui/tree.js +55 -16
- package/dist/ui/tree.js.map +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-shell.js","sourceRoot":"","sources":["../../src/shell/dashboard-shell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,GAIT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-shell.js","sourceRoot":"","sources":["../../src/shell/dashboard-shell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** A shell's words, for the `labels` prop on `DashboardShell` and `SiteShell`. */
|
|
3
|
+
export interface ShellLabels {
|
|
4
|
+
/** The skip link, the first thing a keyboard reaches. */
|
|
5
|
+
skipLink: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const shellLabels: ShellLabels;
|
|
8
|
+
/**
|
|
9
|
+
* The skip link both shells start with. A client component of its own, so its words come from `SetsquareLocale`
|
|
10
|
+
* while SiteShell stays server-safe.
|
|
11
|
+
*/
|
|
12
|
+
export declare function SkipLink({ href, shell, label, labels, }: {
|
|
13
|
+
href: string;
|
|
14
|
+
shell: 'dashboardShell' | 'siteShell';
|
|
15
|
+
/** `skipLinkLabel`, kept for one release. */
|
|
16
|
+
label?: string;
|
|
17
|
+
labels?: Partial<ShellLabels>;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
/** The site's navigation's words, for the `labels` prop on `SiteNav` (and `SiteMenu`, whose nav it names too). */
|
|
20
|
+
export interface SiteNavLabels {
|
|
21
|
+
/** Names the navigation landmark. */
|
|
22
|
+
navigation: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const siteNavLabels: SiteNavLabels;
|
|
25
|
+
/** SiteNav's landmark, named from `SetsquareLocale`, so SiteNav itself stays server-safe. */
|
|
26
|
+
export declare function SiteNavLandmark({ label, labels, className, children, }: {
|
|
27
|
+
/** `label`, kept for one release. */
|
|
28
|
+
label?: string;
|
|
29
|
+
labels?: Partial<SiteNavLabels>;
|
|
30
|
+
className?: string;
|
|
31
|
+
children: ReactNode;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=landmarks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landmarks.d.ts","sourceRoot":"","sources":["../../src/shell/landmarks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,EAAE,WAAkD,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAAC;IACtC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/B,+BAaA;AAED,kHAAkH;AAClH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,aAAyC,CAAC;AAEtE,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE;IACD,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAOA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../lib/cn.js';
|
|
4
|
+
import { useLabels } from '../lib/locale.js';
|
|
5
|
+
export const shellLabels = { skipLink: 'Skip to main content' };
|
|
6
|
+
/**
|
|
7
|
+
* The skip link both shells start with. A client component of its own, so its words come from `SetsquareLocale`
|
|
8
|
+
* while SiteShell stays server-safe.
|
|
9
|
+
*/
|
|
10
|
+
export function SkipLink({ href, shell, label, labels, }) {
|
|
11
|
+
const t = useLabels(shell, shellLabels, labels);
|
|
12
|
+
return (_jsx("a", { href: href, 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: label ?? t('skipLink') }) }));
|
|
13
|
+
}
|
|
14
|
+
export const siteNavLabels = { navigation: 'Primary' };
|
|
15
|
+
/** SiteNav's landmark, named from `SetsquareLocale`, so SiteNav itself stays server-safe. */
|
|
16
|
+
export function SiteNavLandmark({ label, labels, className, children, }) {
|
|
17
|
+
const t = useLabels('siteNav', siteNavLabels, labels);
|
|
18
|
+
return (_jsx("nav", { "aria-label": label ?? t('navigation'), className: cn('hidden site-lg:block', className), children: children }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=landmarks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landmarks.js","sourceRoot":"","sources":["../../src/shell/landmarks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQ7C,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,GAOP;IACC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAEL,YACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,sLAAsL,YAEhM,eAAM,SAAS,EAAC,qKAAqK,YAClL,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,GAClB,GACL,CACL,CAAC;AACJ,CAAC;AAQD,MAAM,CAAC,MAAM,aAAa,GAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAEtE,6FAA6F;AAC7F,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,GAOT;IACC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,CACL,4BAAiB,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,YACxF,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
/** The panel's words, for the `labels` prop. */
|
|
3
3
|
export interface RightPanelLabels {
|
|
4
|
-
/** Its close button; `{title}` is the panel's title
|
|
4
|
+
/** Its close button; `{title}` is the panel's title, as written. */
|
|
5
5
|
close: string;
|
|
6
|
+
/** PanelToggle's name. */
|
|
7
|
+
toggle: string;
|
|
6
8
|
}
|
|
9
|
+
export declare const rightPanelLabels: RightPanelLabels;
|
|
7
10
|
export interface RightPanelProps {
|
|
8
11
|
/** The panel's heading; also names the landmark or dialog. */
|
|
9
12
|
title: string;
|
|
@@ -19,8 +22,10 @@ export interface RightPanelProps {
|
|
|
19
22
|
*/
|
|
20
23
|
export declare function RightPanel({ title, children, footer, labels: given, className }: RightPanelProps): import("react").JSX.Element | null;
|
|
21
24
|
/** Shows and hides the right panel. Put it in the page actions. */
|
|
22
|
-
export declare function PanelToggle({ label }: {
|
|
25
|
+
export declare function PanelToggle({ label, labels, }: {
|
|
26
|
+
/** @deprecated Use `labels.toggle`. Kept for one release. */
|
|
23
27
|
label?: string;
|
|
28
|
+
labels?: Partial<RightPanelLabels>;
|
|
24
29
|
}): import("react").JSX.Element;
|
|
25
30
|
/** A titled group inside the panel. */
|
|
26
31
|
export declare function PanelSection({ title, children, className, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"right-panel.d.ts","sourceRoot":"","sources":["../../src/shell/right-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"right-panel.d.ts","sourceRoot":"","sources":["../../src/shell/right-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAS9D,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,sCA6DhG;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,GACP,EAAE;IACD,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC,+BAcA;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAOA"}
|
|
@@ -3,35 +3,41 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useId } from 'react';
|
|
4
4
|
import { PanelRight, X } from 'lucide-react';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
-
import {
|
|
6
|
+
import { literal } from '../lib/labels.js';
|
|
7
|
+
import { useLabels } from '../lib/locale.js';
|
|
7
8
|
import { IconButton } from '../ui/icon-button.js';
|
|
8
9
|
import { Sheet } from '../ui/sheet.js';
|
|
9
10
|
import { useShell } from './dashboard-shell.js';
|
|
10
|
-
const rightPanelLabels = {
|
|
11
|
+
export const rightPanelLabels = {
|
|
12
|
+
close: 'Close {title}',
|
|
13
|
+
toggle: 'Details panel',
|
|
14
|
+
};
|
|
11
15
|
/**
|
|
12
16
|
* Extra information about the current selection. An <aside> beside main on wide shells,
|
|
13
17
|
* a Sheet (modal dialog) on narrow ones. Closing returns focus to the PanelToggle.
|
|
14
18
|
*/
|
|
15
19
|
export function RightPanel({ title, children, footer, labels: given, className }) {
|
|
16
|
-
const
|
|
20
|
+
const t = useLabels('rightPanel', rightPanelLabels, given);
|
|
21
|
+
const close = t('close', { title });
|
|
17
22
|
const { panelOpen, setPanelOpen, panelMode, panelToggleRef, isSizeForced } = useShell();
|
|
18
23
|
const headingId = useId();
|
|
19
24
|
const foot = footer ? (_jsx("div", { className: "flex gap-(--control-gap) border-t border-border px-4 py-3 *:flex-1", children: footer })) : null;
|
|
20
25
|
const body = (_jsx("div", { className: "relative flex min-h-0 flex-1 flex-col gap-5 overflow-y-auto p-4", children: children }));
|
|
21
26
|
if (panelMode === 'sheet') {
|
|
22
|
-
return (_jsx(Sheet, { side: "right", title: title, labels: { close:
|
|
27
|
+
return (_jsx(Sheet, { side: "right", title: title, labels: { close: literal(close) }, isOpen: panelOpen, onOpenChange: setPanelOpen, footer: foot, children: body }));
|
|
23
28
|
}
|
|
24
29
|
if (!panelOpen)
|
|
25
30
|
return null;
|
|
26
|
-
return (_jsxs("aside", { "aria-labelledby": headingId, style: { viewTransitionName: 'shell-panel' }, className: cn('flex w-panel shrink-0 flex-col border-l border-border bg-card text-card-foreground', !isSizeForced && '@max-[64rem]/shell:hidden', className), children: [_jsxs("div", { className: "flex min-h-[calc(var(--control-height)+1rem)] items-center justify-between gap-2 border-b border-border py-2 pr-2 pl-4", children: [_jsx("h2", { id: headingId, className: "text-subheading", children: title }), _jsx(IconButton, { label:
|
|
31
|
+
return (_jsxs("aside", { "aria-labelledby": headingId, style: { viewTransitionName: 'shell-panel' }, className: cn('flex w-panel shrink-0 flex-col border-l border-border bg-card text-card-foreground', !isSizeForced && '@max-[64rem]/shell:hidden', className), children: [_jsxs("div", { className: "flex min-h-[calc(var(--control-height)+1rem)] items-center justify-between gap-2 border-b border-border py-2 pr-2 pl-4", children: [_jsx("h2", { id: headingId, className: "text-subheading", children: title }), _jsx(IconButton, { label: close, icon: X, visualSize: "icon-sm", tooltip: false, className: "justify-end", onPress: () => {
|
|
27
32
|
setPanelOpen(false);
|
|
28
33
|
requestAnimationFrame(() => panelToggleRef.current?.focus());
|
|
29
34
|
} })] }), body, foot] }));
|
|
30
35
|
}
|
|
31
36
|
/** Shows and hides the right panel. Put it in the page actions. */
|
|
32
|
-
export function PanelToggle({ label
|
|
37
|
+
export function PanelToggle({ label, labels, }) {
|
|
38
|
+
const t = useLabels('rightPanel', rightPanelLabels, labels);
|
|
33
39
|
const { panelOpen, setPanelOpen, panelToggleRef, panelMode } = useShell();
|
|
34
|
-
return (_jsx(IconButton, { ref: panelToggleRef, label: label, icon: PanelRight, variant: "outline", "aria-expanded": panelMode === 'inline' ? panelOpen : undefined, "aria-haspopup": panelMode === 'sheet' ? 'dialog' : undefined, onPress: () => setPanelOpen(!panelOpen) }));
|
|
40
|
+
return (_jsx(IconButton, { ref: panelToggleRef, label: label ?? t('toggle'), icon: PanelRight, variant: "outline", "aria-expanded": panelMode === 'inline' ? panelOpen : undefined, "aria-haspopup": panelMode === 'sheet' ? 'dialog' : undefined, onPress: () => setPanelOpen(!panelOpen) }));
|
|
35
41
|
}
|
|
36
42
|
/** A titled group inside the panel. */
|
|
37
43
|
export function PanelSection({ title, children, className, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"right-panel.js","sourceRoot":"","sources":["../../src/shell/right-panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAkC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"right-panel.js","sourceRoot":"","sources":["../../src/shell/right-panel.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell/sidebar.d.ts
CHANGED
|
@@ -7,10 +7,17 @@ export declare const useSidebarCollapsed: () => boolean;
|
|
|
7
7
|
export interface SidebarLabels {
|
|
8
8
|
/** Names the Sheet it becomes on phones; `{product}` is the shell's `productName`. */
|
|
9
9
|
navigation: string;
|
|
10
|
+
/** Names the navigation landmark. */
|
|
11
|
+
primary: string;
|
|
12
|
+
/** Added to an item's name for its count, which shows as a number only: "Projects, 12". */
|
|
13
|
+
count: string;
|
|
14
|
+
/** A collapsed item's tooltip, with its count: "Projects (12)". */
|
|
15
|
+
tipCount: string;
|
|
10
16
|
}
|
|
17
|
+
export declare const sidebarLabels: SidebarLabels;
|
|
11
18
|
export interface SidebarProps {
|
|
12
19
|
children: ReactNode;
|
|
13
|
-
/**
|
|
20
|
+
/** @deprecated Use `labels.primary`. Kept for one release. */
|
|
14
21
|
label?: string;
|
|
15
22
|
labels?: Partial<SidebarLabels>;
|
|
16
23
|
className?: string;
|
|
@@ -19,7 +26,7 @@ export interface SidebarProps {
|
|
|
19
26
|
* The full-height sidebar. Expanded, collapsed to icons (labels stay in the accessibility tree
|
|
20
27
|
* and show as tooltips), or — on phones — a Sheet opened from the header.
|
|
21
28
|
*/
|
|
22
|
-
export declare function Sidebar({ children, label, labels: given, className }: SidebarProps): import("react").JSX.Element;
|
|
29
|
+
export declare function Sidebar({ children, label: givenLabel, labels: given, className }: SidebarProps): import("react").JSX.Element;
|
|
23
30
|
export declare function SidebarHeader({ children, className, }: {
|
|
24
31
|
children: ReactNode;
|
|
25
32
|
className?: string;
|
|
@@ -97,6 +104,7 @@ export interface SidebarTriggerLabels {
|
|
|
97
104
|
/** Wider, where it collapses the sidebar to icons and back. */
|
|
98
105
|
toggleSidebar: string;
|
|
99
106
|
}
|
|
107
|
+
export declare const sidebarTriggerLabels: SidebarTriggerLabels;
|
|
100
108
|
/** Collapses the sidebar to icons, or opens it as a Sheet on phones. */
|
|
101
109
|
export declare function SidebarTrigger({ labels: given, className, }: {
|
|
102
110
|
labels?: Partial<SidebarTriggerLabels>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell/sidebar.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useContext, useId } from 'react';
|
|
4
|
-
import { Button as RACButton, Disclosure as RACDisclosure, DisclosurePanel, Link, } from 'react-aria-components';
|
|
4
|
+
import { Button as RACButton, Disclosure as RACDisclosure, DisclosurePanel, Link, useLocale, } from 'react-aria-components';
|
|
5
5
|
import { ChevronDown, ChevronsUpDown, Menu as MenuIcon, PanelLeft } from 'lucide-react';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
-
import {
|
|
7
|
+
import { useLabels } from '../lib/locale.js';
|
|
8
8
|
import { IconButton } from '../ui/icon-button.js';
|
|
9
9
|
import { renderIcon } from '../ui/icon.js';
|
|
10
10
|
import { Menu, MenuItem, MenuTrigger, Popover } from '../ui/menu.js';
|
|
@@ -14,16 +14,22 @@ import { useShell } from './dashboard-shell.js';
|
|
|
14
14
|
const SidebarCollapsedContext = createContext(false);
|
|
15
15
|
/** True when the sidebar shows icons only (never inside the mobile Sheet). */
|
|
16
16
|
export const useSidebarCollapsed = () => useContext(SidebarCollapsedContext);
|
|
17
|
-
const sidebarLabels = {
|
|
17
|
+
export const sidebarLabels = {
|
|
18
|
+
navigation: '{product} navigation',
|
|
19
|
+
primary: 'Primary',
|
|
20
|
+
count: ', {count, number}',
|
|
21
|
+
tipCount: '{name} ({count, number})',
|
|
22
|
+
};
|
|
18
23
|
/**
|
|
19
24
|
* The full-height sidebar. Expanded, collapsed to icons (labels stay in the accessibility tree
|
|
20
25
|
* and show as tooltips), or — on phones — a Sheet opened from the header.
|
|
21
26
|
*/
|
|
22
|
-
export function Sidebar({ children, label
|
|
27
|
+
export function Sidebar({ children, label: givenLabel, labels: given, className }) {
|
|
23
28
|
const { size, sidebarCollapsed, mobileNavOpen, setMobileNavOpen, productName, isSizeForced } = useShell();
|
|
24
|
-
const
|
|
29
|
+
const t = useLabels('sidebar', sidebarLabels, given);
|
|
30
|
+
const label = givenLabel ?? t('primary');
|
|
25
31
|
if (size === 'mobile') {
|
|
26
|
-
return (_jsx(Sheet, { side: "left", isOpen: mobileNavOpen, onOpenChange: setMobileNavOpen, "aria-label":
|
|
32
|
+
return (_jsx(Sheet, { side: "left", isOpen: mobileNavOpen, onOpenChange: setMobileNavOpen, "aria-label": t('navigation', { product: productName }), children: _jsx(SidebarCollapsedContext.Provider, { value: false, children: _jsx("nav", { "aria-label": label, className: "flex h-full min-h-0 flex-col text-sidebar-foreground", children: children }) }) }));
|
|
27
33
|
}
|
|
28
34
|
return (_jsx(SidebarCollapsedContext.Provider, { value: sidebarCollapsed, children: _jsx("nav", { "aria-label": label, "data-collapsed": sidebarCollapsed || undefined, style: { viewTransitionName: 'shell-sidebar' }, className: cn('group/sidebar flex h-full min-h-0 w-sidebar shrink-0 flex-col text-sidebar-foreground', 'transition-[width] duration-(--duration-panel) ease-(--ease-standard) motion-reduce:transition-none aaa:transition-none', 'data-collapsed:w-sidebar-collapsed', !isSizeForced && '@max-[48rem]/shell:hidden', className), children: children }) }));
|
|
29
35
|
}
|
|
@@ -48,10 +54,12 @@ export function SidebarList({ children, className }) {
|
|
|
48
54
|
}
|
|
49
55
|
export function SidebarItem({ href, icon, children, isCurrent, count, onPress }) {
|
|
50
56
|
const collapsed = useSidebarCollapsed();
|
|
57
|
+
const t = useLabels('sidebar', sidebarLabels, undefined);
|
|
58
|
+
const { locale } = useLocale();
|
|
51
59
|
const link = (_jsx(Link, { href: href, onPress: onPress, "aria-current": isCurrent ? 'page' : undefined, className: cn(
|
|
52
60
|
// Layer 1: the row is the target, full width and at least --target-min tall.
|
|
53
|
-
'group/item relative flex min-h-target w-full cursor-pointer items-center text-sm font-medium text-sidebar-foreground no-underline outline-none', 'group-data-collapsed/sidebar:justify-center'), children: _jsxs("span", { className: cn('relative flex min-h-nav-item w-full min-w-0 items-center gap-3 rounded-md px-3', 'group-data-hovered/item:bg-sidebar-accent group-data-hovered/item:text-sidebar-accent-foreground group-data-focus-visible/item:focus-ring', 'group-aria-[current=page]/item:bg-brand-subtle group-aria-[current=page]/item:font-bold group-aria-[current=page]/item:text-foreground', 'group-aria-[current=page]/item:before:absolute group-aria-[current=page]/item:before:inset-y-2 group-aria-[current=page]/item:before:left-0 group-aria-[current=page]/item:before:w-[3px] group-aria-[current=page]/item:before:rounded-full group-aria-[current=page]/item:before:bg-sidebar-primary', 'group-data-collapsed/sidebar:w-nav-item group-data-collapsed/sidebar:justify-center group-data-collapsed/sidebar:px-0'), children: [renderIcon(icon, 'size-5 shrink-0 group-aria-[current=page]/item:text-brand'), _jsxs("span", { className: "min-w-0 flex-1 truncate group-data-collapsed/sidebar:sr-only", children: [children, count != null &&
|
|
54
|
-
return (_jsx("li", { children: collapsed ? (_jsxs(TooltipTrigger, { delay: 300, children: [link, _jsx(Tooltip, { placement: "right", children: count != null ?
|
|
61
|
+
'group/item relative flex min-h-target w-full cursor-pointer items-center text-sm font-medium text-sidebar-foreground no-underline outline-none', 'group-data-collapsed/sidebar:justify-center'), children: _jsxs("span", { className: cn('relative flex min-h-nav-item w-full min-w-0 items-center gap-3 rounded-md px-3', 'group-data-hovered/item:bg-sidebar-accent group-data-hovered/item:text-sidebar-accent-foreground group-data-focus-visible/item:focus-ring', 'group-aria-[current=page]/item:bg-brand-subtle group-aria-[current=page]/item:font-bold group-aria-[current=page]/item:text-foreground', 'group-aria-[current=page]/item:before:absolute group-aria-[current=page]/item:before:inset-y-2 group-aria-[current=page]/item:before:left-0 group-aria-[current=page]/item:before:w-[3px] group-aria-[current=page]/item:before:rounded-full group-aria-[current=page]/item:before:bg-sidebar-primary', 'group-data-collapsed/sidebar:w-nav-item group-data-collapsed/sidebar:justify-center group-data-collapsed/sidebar:px-0'), children: [renderIcon(icon, 'size-5 shrink-0 group-aria-[current=page]/item:text-brand'), _jsxs("span", { className: "min-w-0 flex-1 truncate group-data-collapsed/sidebar:sr-only", children: [children, count != null && _jsx("span", { className: "sr-only", children: t('count', { count }) })] }), count != null && (_jsx("span", { "aria-hidden": "true", className: "text-[13px] font-medium text-muted-foreground tabular-nums group-data-collapsed/sidebar:hidden", children: new Intl.NumberFormat(locale).format(count) }))] }) }));
|
|
62
|
+
return (_jsx("li", { children: collapsed ? (_jsxs(TooltipTrigger, { delay: 300, children: [link, _jsx(Tooltip, { placement: "right", children: count != null ? t('tipCount', { name: children, count }) : children })] })) : (link) }));
|
|
55
63
|
}
|
|
56
64
|
/**
|
|
57
65
|
* A sidebar row with rows under it. Expanded (and in the phone's Sheet), the row is a button that opens and closes
|
|
@@ -76,13 +84,22 @@ export function SidebarDisclosure({ icon, children, items, defaultExpanded, }) {
|
|
|
76
84
|
export function SidebarSwitcher({ leading, title, subtitle, menuLabel, children, onAction, selectedKey, placement = 'bottom start', }) {
|
|
77
85
|
const collapsed = useSidebarCollapsed();
|
|
78
86
|
// Named by its content, not an aria-label: the title and subtitle as shown, then the menu's purpose, so the
|
|
79
|
-
// name always contains the visible text (2.5.3).
|
|
87
|
+
// name always contains the visible text (2.5.3). They are a list in the locale's punctuation, which is for the
|
|
88
|
+
// name only; the layout already separates them.
|
|
89
|
+
const { locale } = useLocale();
|
|
90
|
+
const parts = new Intl.ListFormat(locale, { type: 'unit', style: 'short' }).formatToParts(subtitle ? [title, subtitle, menuLabel] : [title, menuLabel]);
|
|
91
|
+
let element = -1;
|
|
80
92
|
const button = (_jsx(RACButton, { className: cn(
|
|
81
93
|
// Layer 1: the target. Collapsed, it keeps at least --target-min across the rail.
|
|
82
|
-
'group/switcher flex min-h-target w-full min-w-target cursor-pointer items-center text-left outline-none', 'group-data-collapsed/sidebar:justify-center'), children: _jsxs("span", { className: cn('flex min-h-[calc(var(--nav-item-height)+12px)] w-full min-w-0 items-center gap-3 rounded-md px-2', 'group-data-hovered/switcher:bg-sidebar-accent group-data-pressed/switcher:bg-sidebar-accent group-data-focus-visible/switcher:focus-ring', 'group-data-collapsed/sidebar:w-nav-item group-data-collapsed/sidebar:justify-center group-data-collapsed/sidebar:px-0'), children: [leading,
|
|
94
|
+
'group/switcher flex min-h-target w-full min-w-target cursor-pointer items-center text-left outline-none', 'group-data-collapsed/sidebar:justify-center'), children: _jsxs("span", { className: cn('flex min-h-[calc(var(--nav-item-height)+12px)] w-full min-w-0 items-center gap-3 rounded-md px-2', 'group-data-hovered/switcher:bg-sidebar-accent group-data-pressed/switcher:bg-sidebar-accent group-data-focus-visible/switcher:focus-ring', 'group-data-collapsed/sidebar:w-nav-item group-data-collapsed/sidebar:justify-center group-data-collapsed/sidebar:px-0'), children: [leading, _jsx("span", { className: "flex min-w-0 flex-1 flex-col group-data-collapsed/sidebar:sr-only", children: parts.map((part, i) => {
|
|
95
|
+
if (part.type === 'literal')
|
|
96
|
+
return (_jsx("span", { className: "sr-only", children: part.value }, i));
|
|
97
|
+
element++;
|
|
98
|
+
return element === 0 ? (_jsx("span", { className: "truncate text-sm leading-5 font-bold", children: part.value }, i)) : subtitle && element === 1 ? (_jsx("span", { className: "truncate text-[13px] leading-5 text-muted-foreground", children: part.value }, i)) : (_jsx("span", { className: "sr-only", children: part.value }, i));
|
|
99
|
+
}) }), _jsx(ChevronsUpDown, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground group-data-collapsed/sidebar:hidden" })] }) }));
|
|
83
100
|
return (_jsxs(MenuTrigger, { children: [collapsed ? (_jsxs(TooltipTrigger, { delay: 300, children: [button, _jsx(Tooltip, { placement: "right", children: title })] })) : (button), _jsx(Popover, { placement: collapsed ? 'right top' : placement, className: "min-w-64", children: _jsx(Menu, { onAction: onAction, selectionMode: selectedKey != null ? 'single' : undefined, selectedKeys: selectedKey != null ? [selectedKey] : undefined, children: children }) })] }));
|
|
84
101
|
}
|
|
85
|
-
const sidebarTriggerLabels = {
|
|
102
|
+
export const sidebarTriggerLabels = {
|
|
86
103
|
openNavigation: 'Open navigation',
|
|
87
104
|
toggleSidebar: 'Toggle sidebar',
|
|
88
105
|
};
|
|
@@ -90,7 +107,7 @@ const sidebarTriggerLabels = {
|
|
|
90
107
|
export function SidebarTrigger({ labels: given, className, }) {
|
|
91
108
|
const { size, sidebarCollapsed, toggleSidebar, mobileNavOpen, setMobileNavOpen } = useShell();
|
|
92
109
|
const mobile = size === 'mobile';
|
|
93
|
-
const
|
|
94
|
-
return (_jsx(IconButton, { className: className, label: mobile ?
|
|
110
|
+
const t = useLabels('sidebarTrigger', sidebarTriggerLabels, given);
|
|
111
|
+
return (_jsx(IconButton, { className: className, label: mobile ? t('openNavigation') : t('toggleSidebar'), icon: mobile ? MenuIcon : PanelLeft, "aria-expanded": mobile ? mobileNavOpen : !sidebarCollapsed, "aria-haspopup": mobile ? 'dialog' : undefined, onPress: () => (mobile ? setMobileNavOpen(true) : toggleSidebar()) }));
|
|
95
112
|
}
|
|
96
113
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAC;AACzE,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,UAAU,IAAI,aAAa,EAC3B,eAAe,EACf,IAAI,
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { type SiteNavLabels } from './landmarks.js';
|
|
1
2
|
import { type SiteNavItem } from './site-path.js';
|
|
3
|
+
/** SiteMenu's words, for the `labels` prop: SiteNav's, and its button's. App-wide, `navigation` is `siteNav`'s. */
|
|
4
|
+
export interface SiteMenuLabels extends SiteNavLabels {
|
|
5
|
+
/** The button that shows and hides the navigation. */
|
|
6
|
+
menu: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const siteMenuLabels: SiteMenuLabels;
|
|
2
9
|
export interface SiteMenuProps {
|
|
3
10
|
/** The same list, in the same order, as SiteNav and the footer's full group. */
|
|
4
11
|
items: SiteNavItem[];
|
|
5
12
|
/** The current path. Default: the SitePathProvider's. */
|
|
6
13
|
current?: string;
|
|
7
|
-
/**
|
|
14
|
+
/** @deprecated Use `labels.menu`. Kept for one release. */
|
|
8
15
|
label?: string;
|
|
9
|
-
/**
|
|
16
|
+
/** @deprecated Use `labels.navigation`, the same as SiteNav's, since only one shows at a time. Kept for one release. */
|
|
10
17
|
navLabel?: string;
|
|
18
|
+
labels?: Partial<SiteMenuLabels>;
|
|
11
19
|
/**
|
|
12
20
|
* Where the control goes before the page's JavaScript runs: the footer group that lists every item
|
|
13
21
|
* (`<SiteFooterGroup id="site-nav">`). So every link can be reached with JavaScript off.
|
|
@@ -23,5 +31,5 @@ export interface SiteMenuProps {
|
|
|
23
31
|
* button (React Aria's Disclosure has no Escape of its own). Before hydration the control is a link to the
|
|
24
32
|
* footer's full navigation; hydration swaps it for the button, and keeps focus if it was there.
|
|
25
33
|
*/
|
|
26
|
-
export declare function SiteMenu({ items, current, label, navLabel, fallbackHref, defaultExpanded, className, }: SiteMenuProps): import("react").JSX.Element;
|
|
34
|
+
export declare function SiteMenu({ items, current, label: givenLabel, navLabel: givenNavLabel, labels, fallbackHref, defaultExpanded, className, }: SiteMenuProps): import("react").JSX.Element;
|
|
27
35
|
//# sourceMappingURL=site-menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-menu.d.ts","sourceRoot":"","sources":["../../src/shell/site-menu.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"site-menu.d.ts","sourceRoot":"","sources":["../../src/shell/site-menu.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D,mHAAmH;AACnH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,cAAc,EAAE,cAAmD,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,aAAa,EACvB,MAAM,EACN,YAA0B,EAC1B,eAAuB,EACvB,SAAS,GACV,EAAE,aAAa,+BAyEf"}
|
package/dist/shell/site-menu.js
CHANGED
|
@@ -4,8 +4,11 @@ import { useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } fr
|
|
|
4
4
|
import { Menu as MenuIcon, X } from 'lucide-react';
|
|
5
5
|
import { Button as RACButton, Disclosure, DisclosurePanel } from 'react-aria-components';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
+
import { useLabels } from '../lib/locale.js';
|
|
8
|
+
import { siteNavLabels } from './landmarks.js';
|
|
7
9
|
import { SiteNavLink } from './site-nav-link.js';
|
|
8
10
|
import { samePath } from './site-path.js';
|
|
11
|
+
export const siteMenuLabels = { ...siteNavLabels, menu: 'Menu' };
|
|
9
12
|
// Layer 1: the button (a link before hydration), at least --target-min both ways. The paint is the same for
|
|
10
13
|
// both, so the swap doesn't move anything. Both sets of state variants: React Aria's data-* on the button, the
|
|
11
14
|
// browser's :hover and :focus-visible on the link.
|
|
@@ -20,10 +23,13 @@ const paint = 'inline-flex min-h-control items-center gap-2 rounded-md border bo
|
|
|
20
23
|
* button (React Aria's Disclosure has no Escape of its own). Before hydration the control is a link to the
|
|
21
24
|
* footer's full navigation; hydration swaps it for the button, and keeps focus if it was there.
|
|
22
25
|
*/
|
|
23
|
-
export function SiteMenu({ items, current, label
|
|
26
|
+
export function SiteMenu({ items, current, label: givenLabel, navLabel: givenNavLabel, labels, fallbackHref = '#site-nav', defaultExpanded = false, className, }) {
|
|
24
27
|
// false while the server renders and the page hydrates, true from then on: React renders the link first and
|
|
25
28
|
// swaps in the button straight after hydration. A client-only render (no server HTML) starts at true.
|
|
26
29
|
const hydrated = useSyncExternalStore(noSubscription, onClient, onServer);
|
|
30
|
+
const t = useLabels(['siteNav', 'siteMenu'], siteMenuLabels, labels);
|
|
31
|
+
const label = givenLabel ?? t('menu');
|
|
32
|
+
const navLabel = givenNavLabel ?? t('navigation');
|
|
27
33
|
const [open, setOpen] = useState(defaultExpanded);
|
|
28
34
|
const wrapper = useRef(null);
|
|
29
35
|
const link = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-menu.js","sourceRoot":"","sources":["../../src/shell/site-menu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"site-menu.js","sourceRoot":"","sources":["../../src/shell/site-menu.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell/site-nav.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import { type SiteNavLabels } from './landmarks.js';
|
|
1
2
|
import { type SiteNavItem } from './site-path.js';
|
|
2
3
|
export interface SiteNavProps {
|
|
3
4
|
/** The site's navigation, once: the same list feeds SiteMenu and the footer, so the order never differs. */
|
|
4
5
|
items: SiteNavItem[];
|
|
5
6
|
/** The current path. Default: the SitePathProvider's. */
|
|
6
7
|
current?: string;
|
|
8
|
+
/** @deprecated Use `labels.navigation`. Kept for one release. */
|
|
7
9
|
label?: string;
|
|
10
|
+
labels?: Partial<SiteNavLabels>;
|
|
8
11
|
className?: string;
|
|
9
12
|
}
|
|
10
13
|
/** The header's navigation, from the `lg` breakpoint up; below it, SiteMenu takes over. Server-safe. */
|
|
11
|
-
export declare function SiteNav({ items, current, label, className }: SiteNavProps): import("react").JSX.Element;
|
|
14
|
+
export declare function SiteNav({ items, current, label, labels, className }: SiteNavProps): import("react").JSX.Element;
|
|
12
15
|
//# sourceMappingURL=site-nav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-nav.d.ts","sourceRoot":"","sources":["../../src/shell/site-nav.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"site-nav.d.ts","sourceRoot":"","sources":["../../src/shell/site-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,4GAA4G;IAC5G,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wGAAwG;AACxG,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,YAAY,+BAiBjF"}
|
package/dist/shell/site-nav.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { SiteNavLandmark } from './landmarks.js';
|
|
3
3
|
import { SiteNavLink } from './site-nav-link.js';
|
|
4
4
|
import { samePath } from './site-path.js';
|
|
5
5
|
/** The header's navigation, from the `lg` breakpoint up; below it, SiteMenu takes over. Server-safe. */
|
|
6
|
-
export function SiteNav({ items, current, label
|
|
7
|
-
return (_jsx(
|
|
6
|
+
export function SiteNav({ items, current, label, labels, className }) {
|
|
7
|
+
return (_jsx(SiteNavLandmark, { label: label, labels: labels, className: className, children: _jsx("ul", { className: "flex flex-wrap items-center gap-x-1 gap-y-1", children: items.map((item) => (_jsx("li", { children: _jsx(SiteNavLink, { href: item.href, isCurrent: current !== undefined ? samePath(item.href, current) : undefined, children: item.label }) }, item.href))) }) }));
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=site-nav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-nav.js","sourceRoot":"","sources":["../../src/shell/site-nav.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"site-nav.js","sourceRoot":"","sources":["../../src/shell/site-nav.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAa5D,wGAAwG;AACxG,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAgB;IAChF,OAAO,CACL,KAAC,eAAe,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,YACjE,aAAI,SAAS,EAAC,6CAA6C,YACxD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,uBACE,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,YAE1E,IAAI,CAAC,KAAK,GACC,IANP,IAAI,CAAC,IAAI,CAOb,CACN,CAAC,GACC,GACW,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { type ShellLabels } from './landmarks.js';
|
|
2
3
|
export interface SiteShellProps {
|
|
3
4
|
children: ReactNode;
|
|
4
|
-
/**
|
|
5
|
+
/** @deprecated Use `labels.skipLink`. Kept for one release. */
|
|
5
6
|
skipLinkLabel?: string;
|
|
7
|
+
labels?: Partial<ShellLabels>;
|
|
6
8
|
/** The id of the SiteMain the skip link goes to. */
|
|
7
9
|
mainId?: string;
|
|
8
10
|
className?: string;
|
|
@@ -11,7 +13,7 @@ export interface SiteShellProps {
|
|
|
11
13
|
* A public page: a skip link, then a SiteHeader, a SiteMain and a SiteFooter, one column of full-width sections.
|
|
12
14
|
* The document scrolls, not main. Server-safe: it holds no state.
|
|
13
15
|
*/
|
|
14
|
-
export declare function SiteShell({ children, skipLinkLabel, mainId, className, }: SiteShellProps): import("react").JSX.Element;
|
|
16
|
+
export declare function SiteShell({ children, skipLinkLabel, labels, mainId, className, }: SiteShellProps): import("react").JSX.Element;
|
|
15
17
|
export interface SiteMainProps extends HTMLAttributes<HTMLElement> {
|
|
16
18
|
children: ReactNode;
|
|
17
19
|
/** Match SiteShell's mainId. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-shell.d.ts","sourceRoot":"","sources":["../../src/shell/site-shell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"site-shell.d.ts","sourceRoot":"","sources":["../../src/shell/site-shell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,MAAe,EACf,SAAS,GACV,EAAE,cAAc,+BAUhB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,WAAW,CAAC;IAChE,QAAQ,EAAE,SAAS,CAAC;IACpB,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,+BAWrF"}
|
package/dist/shell/site-shell.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from '../lib/cn.js';
|
|
3
|
+
import { SkipLink } from './landmarks.js';
|
|
3
4
|
/**
|
|
4
5
|
* A public page: a skip link, then a SiteHeader, a SiteMain and a SiteFooter, one column of full-width sections.
|
|
5
6
|
* The document scrolls, not main. Server-safe: it holds no state.
|
|
6
7
|
*/
|
|
7
|
-
export function SiteShell({ children, skipLinkLabel
|
|
8
|
-
return (_jsxs("div", { "data-site-shell": "", className: cn('relative flex min-h-dvh flex-col bg-background text-foreground', className), children: [_jsx(
|
|
8
|
+
export function SiteShell({ children, skipLinkLabel, labels, mainId = 'main', className, }) {
|
|
9
|
+
return (_jsxs("div", { "data-site-shell": "", className: cn('relative flex min-h-dvh flex-col bg-background text-foreground', className), children: [_jsx(SkipLink, { href: `#${mainId}`, shell: "siteShell", label: skipLinkLabel, labels: labels }), children] }));
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* The main landmark and the skip link's target (tabIndex -1: focus lands here, Tab doesn't stop here). Not a
|