@setsquare/ui 0.5.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 +58 -0
- package/README.md +37 -2
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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/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/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 +9 -1
- package/dist/ui/breadcrumbs.d.ts.map +1 -1
- package/dist/ui/breadcrumbs.js +5 -2
- package/dist/ui/breadcrumbs.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 +7 -1
- package/dist/ui/combo-box.d.ts.map +1 -1
- package/dist/ui/combo-box.js +9 -2
- 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/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/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/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/tree.d.ts.map +1 -1
- package/dist/ui/tree.js +5 -5
- package/dist/ui/tree.js.map +1 -1
- package/package.json +2 -1
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-shell.js","sourceRoot":"","sources":["../../src/shell/site-shell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"site-shell.js","sourceRoot":"","sources":["../../src/shell/site-shell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAY5D;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,MAAM,GAAG,MAAM,EACf,SAAS,GACM;IACf,OAAO,CACL,kCACkB,EAAE,EAClB,SAAS,EAAE,EAAE,CAAC,gEAAgE,EAAE,SAAS,CAAC,aAE1F,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,MAAM,EAAE,EAAE,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAI,EACvF,QAAQ,IACL,CACP,CAAC;AACJ,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiB;IACpF,OAAO,CACL,kBACM,KAAK,EACT,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,YAEvD,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
|
package/dist/ui/alert.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface AlertLabels {
|
|
|
6
6
|
/** The dismiss button, when there is `onDismiss`. */
|
|
7
7
|
dismiss: string;
|
|
8
8
|
}
|
|
9
|
+
export declare const alertLabels: AlertLabels;
|
|
9
10
|
export interface AlertProps {
|
|
10
11
|
tone?: AlertTone;
|
|
11
12
|
title?: ReactNode;
|
|
@@ -37,6 +38,7 @@ export interface OfflineAlertLabels {
|
|
|
37
38
|
offlineDetail: string;
|
|
38
39
|
backOnline: string;
|
|
39
40
|
}
|
|
41
|
+
export declare const offlineAlertLabels: OfflineAlertLabels;
|
|
40
42
|
/**
|
|
41
43
|
* A banner that appears when the connection drops and says so again when it returns.
|
|
42
44
|
* The live region is always in the page, so both changes are announced.
|
package/dist/ui/alert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM1F,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAiBlE,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,uFAAuF;IACvF,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sHAAsH;AACtH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,MAAiB,EACjB,IAAI,EACJ,OAAO,EAAE,KAAW,EACpB,MAAM,EACN,SAAS,GACV,EAAE,UAAU,+
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM1F,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAiBlE,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,WAAW,EAAE,WAAoC,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,uFAAuF;IACvF,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sHAAsH;AACtH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,MAAiB,EACjB,IAAI,EACJ,OAAO,EAAE,KAAW,EACpB,MAAM,EACN,SAAS,GACV,EAAE,UAAU,+BAuCZ;AAUD,mDAAmD;AACnD,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAKhC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,MAAM,EAAE,KAAK,EACb,SAAS,GACV,EAAE;IACD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwBA"}
|
package/dist/ui/alert.js
CHANGED
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useEffect, useRef, useState, useSyncExternalStore } from 'react';
|
|
4
4
|
import { CircleAlert, CircleCheck, Info, TriangleAlert, WifiOff, X } from 'lucide-react';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
-
import {
|
|
6
|
+
import { useLabels } from '../lib/locale.js';
|
|
7
7
|
import { focusAfter } from '../lib/tokens.js';
|
|
8
8
|
import { IconButton } from './icon-button.js';
|
|
9
9
|
import { renderIcon } from './icon.js';
|
|
@@ -21,12 +21,14 @@ const tones = {
|
|
|
21
21
|
Icon: CircleAlert,
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
|
+
export const alertLabels = { dismiss: 'Dismiss' };
|
|
24
25
|
/** A message about the page or task: tone ground, icon and words — never colour alone. Gains a tone border at AAA. */
|
|
25
26
|
export function Alert({ tone = 'info', title, children, actions, onDismiss, live, layout = 'inline', icon, titleAs: Title = 'p', labels, className, }) {
|
|
26
27
|
const ref = useRef(null);
|
|
27
|
-
const t =
|
|
28
|
-
const
|
|
29
|
-
|
|
28
|
+
const t = useLabels('alert', alertLabels, labels);
|
|
29
|
+
const style = tones[tone];
|
|
30
|
+
const shown = icon ?? style.Icon;
|
|
31
|
+
return (_jsxs("div", { ref: ref, role: live === 'assertive' ? 'alert' : live === 'polite' ? 'status' : undefined, className: cn('flex items-start gap-3 border border-transparent text-sm leading-5 text-foreground', layout === 'banner' ? 'border-x-0 border-t-0 px-4 py-3' : 'rounded-lg p-4', style.box, className), children: [renderIcon(shown, cn('mt-px size-5 shrink-0', style.icon)), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [title && _jsx(Title, { className: "font-semibold", children: title }), children && _jsx("div", { className: "max-w-(--measure)", children: children }), actions && (_jsx("div", { className: "mt-2 flex flex-wrap items-center gap-(--control-gap)", children: actions }))] }), onDismiss && (_jsx(IconButton, { label: t('dismiss'), icon: X, visualSize: "icon-sm", tooltip: false, className: "-mt-1 -mr-1 items-start justify-end", onPress: () => {
|
|
30
32
|
focusAfter(ref.current);
|
|
31
33
|
onDismiss();
|
|
32
34
|
} }))] }));
|
|
@@ -43,7 +45,7 @@ function subscribeOnline(cb) {
|
|
|
43
45
|
export function useOnline() {
|
|
44
46
|
return useSyncExternalStore(subscribeOnline, () => navigator.onLine, () => true);
|
|
45
47
|
}
|
|
46
|
-
const offlineAlertLabels = {
|
|
48
|
+
export const offlineAlertLabels = {
|
|
47
49
|
offline: "You're offline",
|
|
48
50
|
offlineDetail: "Changes you make now won't be saved. Keep this page open and we'll try again when you're back online.",
|
|
49
51
|
backOnline: "You're back online",
|
|
@@ -53,7 +55,7 @@ const offlineAlertLabels = {
|
|
|
53
55
|
* The live region is always in the page, so both changes are announced.
|
|
54
56
|
*/
|
|
55
57
|
export function OfflineAlert({ forceOffline, labels: given, className, }) {
|
|
56
|
-
const
|
|
58
|
+
const t = useLabels('offlineAlert', offlineAlertLabels, given);
|
|
57
59
|
const online = useOnline() && !forceOffline;
|
|
58
60
|
const [back, setBack] = useState(false);
|
|
59
61
|
const wasOffline = useRef(!online);
|
|
@@ -63,10 +65,10 @@ export function OfflineAlert({ forceOffline, labels: given, className, }) {
|
|
|
63
65
|
else if (wasOffline.current) {
|
|
64
66
|
wasOffline.current = false;
|
|
65
67
|
setBack(true);
|
|
66
|
-
const
|
|
67
|
-
return () => clearTimeout(
|
|
68
|
+
const timer = setTimeout(() => setBack(false), 4000);
|
|
69
|
+
return () => clearTimeout(timer);
|
|
68
70
|
}
|
|
69
71
|
}, [online]);
|
|
70
|
-
return (_jsxs("div", { role: "status", className: className, children: [!online && (_jsx(Alert, { tone: "warning", layout: "banner", icon: WifiOff, title:
|
|
72
|
+
return (_jsxs("div", { role: "status", className: className, children: [!online && (_jsx(Alert, { tone: "warning", layout: "banner", icon: WifiOff, title: t('offline'), children: t('offlineDetail') })), online && back && _jsx(Alert, { tone: "success", layout: "banner", title: t('backOnline') })] }));
|
|
71
73
|
}
|
|
72
74
|
//# sourceMappingURL=alert.js.map
|
package/dist/ui/alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAqC,MAAM,WAAW,CAAC;AAI1E,MAAM,KAAK,GAA0E;IACnF,IAAI,EAAE,EAAE,GAAG,EAAE,kCAAkC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IACjF,OAAO,EAAE,EAAE,GAAG,EAAE,sCAAsC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IACjG,OAAO,EAAE;QACP,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,aAAa;KACpB;IACD,MAAM,EAAE;QACN,GAAG,EAAE,8CAA8C;QACnD,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,WAAW;KAClB;CACF,CAAC;AAQF,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAuB/D,sHAAsH;AACtH,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,MAAM,GAAG,QAAQ,EACjB,IAAI,EACJ,OAAO,EAAE,KAAK,GAAG,GAAG,EACpB,MAAM,EACN,SAAS,GACE;IACX,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;IACjC,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC/E,SAAS,EAAE,EAAE,CACX,oFAAoF,EACpF,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,gBAAgB,EAC1E,KAAK,CAAC,GAAG,EACT,SAAS,CACV,aAEA,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAC3D,eAAK,SAAS,EAAC,oCAAoC,aAChD,KAAK,IAAI,KAAC,KAAK,IAAC,SAAS,EAAC,eAAe,YAAE,KAAK,GAAS,EACzD,QAAQ,IAAI,cAAK,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAO,EAC/D,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,sDAAsD,YAAE,OAAO,GAAO,CACtF,IACG,EACL,SAAS,IAAI,CACZ,KAAC,UAAU,IACT,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EACnB,IAAI,EAAE,CAAC,EACP,UAAU,EAAC,SAAS,EACpB,OAAO,EAAE,KAAK,EACd,SAAS,EAAC,qCAAqC,EAC/C,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,SAAS,EAAE,CAAC;gBACd,CAAC,GACD,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAc;IACrC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AACD,mDAAmD;AACnD,MAAM,UAAU,SAAS;IACvB,OAAO,oBAAoB,CACzB,eAAe,EACf,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EACtB,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;AACJ,CAAC;AAUD,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,OAAO,EAAE,gBAAgB;IACzB,aAAa,EACX,uGAAuG;IACzG,UAAU,EAAE,oBAAoB;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,YAAY,EACZ,MAAM,EAAE,KAAK,EACb,SAAS,GAKV;IACC,MAAM,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;aAClC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,aACpC,CAAC,MAAM,IAAI,CACV,KAAC,KAAK,IAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,YACrE,CAAC,CAAC,eAAe,CAAC,GACb,CACT,EACA,MAAM,IAAI,IAAI,IAAI,KAAC,KAAK,IAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,GAAI,IAC/E,CACP,CAAC;AACJ,CAAC"}
|
package/dist/ui/breadcrumbs.d.ts
CHANGED
|
@@ -5,10 +5,18 @@ export interface BreadcrumbItem {
|
|
|
5
5
|
lang?: string;
|
|
6
6
|
dir?: 'ltr' | 'rtl' | 'auto';
|
|
7
7
|
}
|
|
8
|
+
/** Breadcrumbs' words, for the `labels` prop. */
|
|
9
|
+
export interface BreadcrumbsLabels {
|
|
10
|
+
/** Names the navigation landmark. */
|
|
11
|
+
breadcrumbs: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const breadcrumbsLabels: BreadcrumbsLabels;
|
|
8
14
|
export interface BreadcrumbsProps {
|
|
9
15
|
/** Ancestors first; the last item is the current page and is not a link. */
|
|
10
16
|
items: BreadcrumbItem[];
|
|
17
|
+
/** @deprecated Use `labels.breadcrumbs`. Kept for one release. */
|
|
11
18
|
label?: string;
|
|
19
|
+
labels?: Partial<BreadcrumbsLabels>;
|
|
12
20
|
/**
|
|
13
21
|
* For places inside the page rather than pages (a block's parents in a page builder): called with an item's index
|
|
14
22
|
* when it's pressed. Items without an `href` are still links to a screen reader.
|
|
@@ -17,5 +25,5 @@ export interface BreadcrumbsProps {
|
|
|
17
25
|
className?: string;
|
|
18
26
|
}
|
|
19
27
|
/** Where you are (WCAG 2.4.8). Every page below the top level shows one. */
|
|
20
|
-
export declare function Breadcrumbs({ items, label, onAction, className
|
|
28
|
+
export declare function Breadcrumbs({ items, label, labels, onAction, className }: BreadcrumbsProps): import("react").JSX.Element;
|
|
21
29
|
//# sourceMappingURL=breadcrumbs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/ui/breadcrumbs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/ui/breadcrumbs.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAAiD,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAuC1F"}
|
package/dist/ui/breadcrumbs.js
CHANGED
|
@@ -3,9 +3,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { Breadcrumb, Breadcrumbs as RACBreadcrumbs, Link } from 'react-aria-components';
|
|
4
4
|
import { ChevronRight } from 'lucide-react';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
+
import { useLabels } from '../lib/locale.js';
|
|
7
|
+
export const breadcrumbsLabels = { breadcrumbs: 'Breadcrumb' };
|
|
6
8
|
/** Where you are (WCAG 2.4.8). Every page below the top level shows one. */
|
|
7
|
-
export function Breadcrumbs({ items, label
|
|
8
|
-
|
|
9
|
+
export function Breadcrumbs({ items, label, labels, onAction, className }) {
|
|
10
|
+
const t = useLabels('breadcrumbs', breadcrumbsLabels, labels);
|
|
11
|
+
return (_jsx("nav", { "aria-label": label ?? t('breadcrumbs'), className: cn('min-w-0', className), children: _jsx(RACBreadcrumbs, { className: "flex min-w-0 items-center gap-1 text-sm", onAction: onAction ? (key) => onAction(Number(key)) : undefined, children: items.map((item, i) => (_jsxs(Breadcrumb, { id: i, className: "flex min-w-0 items-center gap-1", children: [i > 0 && (_jsx(ChevronRight, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground" })), _jsx(Link, { href: item.href, className: cn(
|
|
9
12
|
// The current page is not a link to press: React Aria disables it, and it keeps the default cursor.
|
|
10
13
|
'group/crumb flex min-h-target min-w-target max-w-[20ch] cursor-pointer items-center justify-center leading-5 no-underline outline-none data-current:cursor-default'), children: _jsx("span", { lang: item.lang, dir: item.dir, className: cn('min-w-0 truncate rounded-sm text-muted-foreground underline decoration-1 underline-offset-3', 'group-data-hovered/crumb:text-foreground group-data-focus-visible/crumb:focus-ring', 'group-data-current/crumb:font-semibold group-data-current/crumb:text-foreground group-data-current/crumb:no-underline'), children: item.label }) })] }, `${i}-${item.label}`))) }) }));
|
|
11
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../src/ui/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,WAAW,IAAI,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../src/ui/breadcrumbs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,WAAW,IAAI,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAgB7C,MAAM,CAAC,MAAM,iBAAiB,GAAsB,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAgBlF,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAoB;IACzF,MAAM,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,CACL,4BAAiB,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,YAC7E,KAAC,cAAc,IACb,SAAS,EAAC,yCAAyC,EACnD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAE9D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,UAAU,IAA4B,EAAE,EAAE,CAAC,EAAE,SAAS,EAAC,iCAAiC,aACtF,CAAC,GAAG,CAAC,IAAI,CACR,KAAC,YAAY,mBAAa,MAAM,EAAC,SAAS,EAAC,uCAAuC,GAAG,CACtF,EAED,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,EAAE;wBACX,oGAAoG;wBACpG,oKAAoK,CACrK,YAGD,eACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,oFAAoF,EACpF,uHAAuH,CACxH,YAEA,IAAI,CAAC,KAAK,GACN,GACF,KAxBQ,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAyBxB,CACd,CAAC,GACa,GACb,CACP,CAAC;AACJ,CAAC"}
|
package/dist/ui/calendar.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface CalendarLabels {
|
|
|
5
5
|
previousMonth: string;
|
|
6
6
|
nextMonth: string;
|
|
7
7
|
}
|
|
8
|
+
export declare const calendarLabels: CalendarLabels;
|
|
8
9
|
export interface CalendarProps<T extends DateValue> extends Omit<RACCalendarProps<T>, 'className' | 'children'> {
|
|
9
10
|
/** Shown under the grid when the calendar is invalid. */
|
|
10
11
|
errorMessage?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAUL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,IAAI,qBAAqB,EACjD,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAUL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,IAAI,qBAAqB,EACjD,MAAM,uBAAuB,CAAC;AAY/B,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,cAG5B,CAAC;AAsGF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CAC9D,gBAAgB,CAAC,CAAC,CAAC,EACnB,WAAW,GAAG,UAAU,CACzB;IACC,yDAAyD;IACzD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAC5C,YAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,CAAC,CAAC,+BAYlB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CACnE,qBAAqB,CAAC,CAAC,CAAC,EACxB,WAAW,GAAG,UAAU,CACzB;IACC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,EACjD,YAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,+BAYvB"}
|
package/dist/ui/calendar.js
CHANGED
|
@@ -3,14 +3,20 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { Calendar as RACCalendar, CalendarCell as RACCalendarCell, CalendarGrid, CalendarGridBody, CalendarGridHeader, CalendarHeaderCell, Heading, RangeCalendar as RACRangeCalendar, Text, } from 'react-aria-components';
|
|
4
4
|
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
+
import { useLabels } from '../lib/locale.js';
|
|
6
7
|
import { IconButton } from './icon-button.js';
|
|
7
8
|
/**
|
|
8
9
|
* The calendar root is `relative`: React Aria renders a visually hidden heading and page buttons inside it,
|
|
9
10
|
* and they must be positioned against the calendar, not against whatever scrolls around it.
|
|
10
11
|
*/
|
|
11
12
|
const calendarRoot = 'relative flex w-fit max-w-full flex-col gap-3 text-sm text-foreground';
|
|
13
|
+
export const calendarLabels = {
|
|
14
|
+
previousMonth: 'Previous month',
|
|
15
|
+
nextMonth: 'Next month',
|
|
16
|
+
};
|
|
12
17
|
function CalendarHeader({ labels }) {
|
|
13
|
-
|
|
18
|
+
const t = useLabels('calendar', calendarLabels, labels);
|
|
19
|
+
return (_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx(IconButton, { slot: "previous", label: t('previousMonth'), icon: ChevronLeft, visualSize: "icon-sm", tooltip: false }), _jsx(Heading, { className: "text-sm leading-5 font-semibold" }), _jsx(IconButton, { slot: "next", label: t('nextMonth'), icon: ChevronRight, visualSize: "icon-sm", tooltip: false })] }));
|
|
14
20
|
}
|
|
15
21
|
/**
|
|
16
22
|
* Days in three layers. The cell is the target (Layer 1): --target-min square, or the painted day if that is
|
package/dist/ui/calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,YAAY,IAAI,eAAe,EAC/B,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,aAAa,IAAI,gBAAgB,EACjC,IAAI,GAIL,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,YAAY,GAAG,uEAAuE,CAAC;AAQ7F,SAAS,cAAc,CAAC,EAAE,MAAM,EAAwC;IACtE,OAAO,CACL,eAAK,SAAS,EAAC,yCAAyC,aACtD,KAAC,UAAU,IACT,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAGL,KAAK,kBAAkB,IAAI,qBAAqB,EAChD,KAAK,aAAa,IAAI,gBAAgB,EACvC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAGL,KAAK,kBAAkB,IAAI,qBAAqB,EAChD,KAAK,aAAa,IAAI,gBAAgB,EACvC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,+BAmEf;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,qBAAqB,EACrB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAqBpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,MAAM,CAClC;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,+BAiBhF"}
|
package/dist/ui/checkbox.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useContext, useId } from 'react';
|
|
|
4
4
|
import { Checkbox as RACCheckbox, CheckboxGroup as RACCheckboxGroup, } from 'react-aria-components';
|
|
5
5
|
import { Check, CircleAlert, Minus } from 'lucide-react';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
-
import { FieldDescription, FieldError, FieldLabel, NecessityContext, fieldStack, withRequired, } from './field.js';
|
|
7
|
+
import { FieldDescription, FieldError, FieldLabel, NecessityContext, fieldStack, withRequired, useFieldLabels, } from './field.js';
|
|
8
8
|
/** The visible box, shared by Checkbox and SelectionCheckbox. Checked: a tick; mixed: a dash — shape, not only fill. */
|
|
9
9
|
const boxStyles = cn('grid size-choice shrink-0 place-items-center rounded-sm border border-input bg-background text-primary-foreground', 'group-data-focus-visible/choice:focus-ring group-data-hovered/choice:border-foreground', 'group-data-selected/choice:border-primary group-data-selected/choice:bg-primary group-data-indeterminate/choice:border-primary group-data-indeterminate/choice:bg-primary', 'group-data-invalid/choice:border-destructive group-data-invalid/choice:shadow-[0_0_0_1px_var(--destructive)]', '[&_svg]:size-[calc(var(--choice-size)-4px)] [&_svg]:[stroke-width:3]');
|
|
10
10
|
/**
|
|
@@ -12,20 +12,20 @@ const boxStyles = cn('grid size-choice shrink-0 place-items-center rounded-sm bo
|
|
|
12
12
|
* The whole row — box and label — is the target, at least --target-min tall.
|
|
13
13
|
*/
|
|
14
14
|
export function Checkbox({ children, description, requiredMessage, labels, className, ...props }) {
|
|
15
|
+
const t = useFieldLabels(labels);
|
|
16
|
+
const required = requiredMessage ?? t('checkRequired');
|
|
15
17
|
const necessity = useContext(NecessityContext);
|
|
16
18
|
const autoId = useId();
|
|
17
19
|
const id = props.id ?? autoId;
|
|
18
20
|
const errorId = `${id}-error`;
|
|
19
21
|
return (_jsx(RACCheckbox, { ...props, id: id, "aria-describedby": [props['aria-describedby'], props.isRequired ? errorId : null].filter(Boolean).join(' ') ||
|
|
20
|
-
undefined, validate: props.isRequired
|
|
21
|
-
? withRequired(true, requiredMessage ?? 'Select this to continue', (v) => !v)
|
|
22
|
-
: undefined, className: cn('group/choice relative flex min-h-target cursor-pointer items-start gap-3 py-[calc((var(--target-min)-var(--choice-size))/2)] text-sm leading-5 text-foreground outline-none data-disabled:cursor-not-allowed data-disabled:opacity-60 data-readonly:cursor-default', className), children: ({ isSelected, isIndeterminate, isInvalid }) => (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: cn('mt-[calc((20px-var(--choice-size))/2)]', boxStyles), children: isIndeterminate ? _jsx(Minus, {}) : isSelected ? _jsx(Check, {}) : null }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsxs("span", { children: [children, props.isRequired && necessity === 'required' && (_jsxs("span", { "aria-hidden": "true", className: "text-muted-foreground", children: [' ', "(required)"] }))] }), description && (_jsx("span", { className: "text-[13px] text-muted-foreground", children: description })), props.isRequired && isInvalid && (_jsxs("span", { id: errorId, "aria-hidden": "true", className: "mt-1 flex items-start gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("span", { "data-field-error-text": true, children: [_jsx("span", { className: "sr-only", "data-field-error-prefix": true, children: labels?.errorPrefix ?? 'Error: ' }), requiredMessage ?? 'Select this to continue'] })] }))] })] })) }));
|
|
22
|
+
undefined, validate: props.isRequired ? withRequired(true, required, (v) => !v) : undefined, className: cn('group/choice relative flex min-h-target cursor-pointer items-start gap-3 py-[calc((var(--target-min)-var(--choice-size))/2)] text-sm leading-5 text-foreground outline-none data-disabled:cursor-not-allowed data-disabled:opacity-60 data-readonly:cursor-default', className), children: ({ isSelected, isIndeterminate, isInvalid }) => (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: cn('mt-[calc((20px-var(--choice-size))/2)]', boxStyles), children: isIndeterminate ? _jsx(Minus, {}) : isSelected ? _jsx(Check, {}) : null }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsxs("span", { children: [children, props.isRequired && necessity === 'required' && (_jsxs(_Fragment, { children: [' ', _jsx("span", { "aria-hidden": "true", className: "text-muted-foreground", children: t('requiredMarker') })] }))] }), description && (_jsx("span", { className: "text-[13px] text-muted-foreground", children: description })), props.isRequired && isInvalid && (_jsxs("span", { id: errorId, "aria-hidden": "true", className: "mt-1 flex items-start gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("span", { "data-field-error-text": true, children: [_jsx("span", { className: "sr-only", "data-field-error-prefix": true, children: t('errorPrefix') }), required] })] }))] })] })) }));
|
|
23
23
|
}
|
|
24
24
|
/** A labelled list of checkboxes, read as a group. */
|
|
25
25
|
export function CheckboxGroup({ label, description, errorMessage, requiredMessage, children, labels, className, ...props }) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const t = useFieldLabels(labels);
|
|
27
|
+
const required = requiredMessage ?? t('checkGroupRequired');
|
|
28
|
+
return (_jsxs(RACCheckboxGroup, { ...props, validate: props.isRequired ? withRequired(true, required, (v) => !v?.length) : undefined, className: cn(fieldStack, className), children: [_jsx(FieldLabel, { elementType: "span", isRequired: props.isRequired, labels: labels, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix: t('errorPrefix'), requiredMessage: required, children: errorMessage }), _jsx("div", { className: "flex flex-col", children: children })] }));
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* The box alone, for the selection column of a Table or a GridList item. React Aria wires it to the row
|
package/dist/ui/checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,aAAa,IAAI,gBAAgB,GAGlC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type CopyButtonLabels } from './copy-button.js';
|
|
3
|
+
/** A code block's words, for the `labels` prop: its copy button's, and its own. */
|
|
4
|
+
export interface CodeBlockLabels extends CopyButtonLabels {
|
|
5
|
+
/** Shown above a `terminal` block with no `label`. */
|
|
6
|
+
terminal: string;
|
|
7
|
+
/** What the copy button says it copies when there is no `label`. */
|
|
8
|
+
code: string;
|
|
9
|
+
/** Names the block while it scrolls: `{name}` is its label (or `terminal`, or `code`) and `{first}` its first line. */
|
|
10
|
+
region: string;
|
|
11
|
+
}
|
|
12
|
+
/** Its own words; its copy button's come from CopyButton's, app-wide under `copyButton`. */
|
|
13
|
+
export declare const codeBlockLabels: Omit<CodeBlockLabels, keyof CopyButtonLabels>;
|
|
14
|
+
interface CodeBlockWords {
|
|
15
|
+
label?: string;
|
|
16
|
+
terminal: boolean;
|
|
17
|
+
labels?: Partial<CodeBlockLabels>;
|
|
18
|
+
}
|
|
19
|
+
/** The line above the code: its label, and the copy button. */
|
|
20
|
+
export declare function CodeBlockCaption({ copy, copied, ...words }: CodeBlockWords & {
|
|
21
|
+
copy: boolean;
|
|
22
|
+
copied: string;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
/** The code's scroller, named by the block's label and its first line. */
|
|
25
|
+
export declare function CodeBlockRegion({ first, children, ...words }: CodeBlockWords & {
|
|
26
|
+
first: string;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=code-block-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-parts.d.ts","sourceRoot":"","sources":["../../src/ui/code-block-parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGrE,mFAAmF;AACnF,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,uHAAuH;IACvH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,gBAAgB,CAIzE,CAAC;AAEF,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC;AAQD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,EACT,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,+BAUpD;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAKzD"}
|