@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
package/dist/ui/grid-list.d.ts
CHANGED
|
@@ -7,8 +7,13 @@ export interface GridListProps<T extends object> extends Omit<RACGridListProps<T
|
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* A list of items people act on — members, files, integrations — where each row can hold its own buttons.
|
|
10
|
-
*
|
|
11
|
-
* gets a SelectionCheckbox; Space or a click on the row toggles it. The list is `relative` because it scrolls
|
|
10
|
+
* ↑ ↓ move between rows and → through a row's own controls; Tab leaves the list. With
|
|
11
|
+
* `selectionMode="multiple"` every row gets a SelectionCheckbox; Space or a click on the row toggles it. The list is `relative` because it scrolls,
|
|
12
|
+
* and because React Aria positions its drop indicators absolutely.
|
|
13
|
+
*
|
|
14
|
+
* Drag and drop: pass `dragAndDropHooks` from React Aria's `useDragAndDrop`, with
|
|
15
|
+
* `renderDropIndicator: (target) => <DropIndicator target={target} />`. Every draggable row then shows a drag
|
|
16
|
+
* button, which is how a keyboard or screen reader drag starts.
|
|
12
17
|
*/
|
|
13
18
|
export declare function GridList<T extends object>({ className, ...props }: GridListProps<T>): import("react").JSX.Element;
|
|
14
19
|
export interface GridListItemProps extends Omit<RACGridListItemProps, 'className' | 'children'> {
|
|
@@ -17,8 +22,10 @@ export interface GridListItemProps extends Omit<RACGridListItemProps, 'className
|
|
|
17
22
|
description?: ReactNode;
|
|
18
23
|
/** Buttons for this row only. Name them with the row ("Remove Priya Shah"). */
|
|
19
24
|
actions?: ReactNode;
|
|
25
|
+
/** Words for the drag button, when the row can be dragged. React Aria's own ("Drag {name}") by default. */
|
|
26
|
+
dragLabel?: string;
|
|
20
27
|
className?: string;
|
|
21
28
|
}
|
|
22
29
|
/** Selected: brand-subtle, the 3px sidebar-primary marker and a ticked box — the same signals as a table row. */
|
|
23
|
-
export declare function GridListItem({ children, description, actions, className, ...props }: GridListItemProps): import("react").JSX.Element;
|
|
30
|
+
export declare function GridListItem({ children, description, actions, dragLabel, className, ...props }: GridListItemProps): import("react").JSX.Element;
|
|
24
31
|
//# sourceMappingURL=grid-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-list.d.ts","sourceRoot":"","sources":["../../src/ui/grid-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"grid-list.d.ts","sourceRoot":"","sources":["../../src/ui/grid-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAIL,KAAK,iBAAiB,IAAI,oBAAoB,EAC9C,KAAK,aAAa,IAAI,gBAAgB,EACvC,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IAC7F,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,+BAWnF;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,CAAC;IAC7F,QAAQ,EAAE,SAAS,CAAC;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,KAAK,EACT,EAAE,iBAAiB,+BAgDnB"}
|
package/dist/ui/grid-list.js
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { GripVertical } from 'lucide-react';
|
|
4
|
+
import { Button as RACButton, GridList as RACGridList, GridListItem as RACGridListItem, } from 'react-aria-components';
|
|
4
5
|
import { cn } from '../lib/cn.js';
|
|
5
6
|
import { SelectionCheckbox } from './checkbox.js';
|
|
6
7
|
/**
|
|
7
8
|
* A list of items people act on — members, files, integrations — where each row can hold its own buttons.
|
|
8
|
-
*
|
|
9
|
-
* gets a SelectionCheckbox; Space or a click on the row toggles it. The list is `relative` because it scrolls
|
|
9
|
+
* ↑ ↓ move between rows and → through a row's own controls; Tab leaves the list. With
|
|
10
|
+
* `selectionMode="multiple"` every row gets a SelectionCheckbox; Space or a click on the row toggles it. The list is `relative` because it scrolls,
|
|
11
|
+
* and because React Aria positions its drop indicators absolutely.
|
|
12
|
+
*
|
|
13
|
+
* Drag and drop: pass `dragAndDropHooks` from React Aria's `useDragAndDrop`, with
|
|
14
|
+
* `renderDropIndicator: (target) => <DropIndicator target={target} />`. Every draggable row then shows a drag
|
|
15
|
+
* button, which is how a keyboard or screen reader drag starts.
|
|
10
16
|
*/
|
|
11
17
|
export function GridList({ className, ...props }) {
|
|
12
|
-
return (_jsx(RACGridList, { ...props, className: cn('relative flex max-h-[inherit] flex-col overflow-auto rounded-lg border border-border bg-card text-sm outline-none data-focus-visible:focus-ring', className) }));
|
|
18
|
+
return (_jsx(RACGridList, { ...props, className: cn('relative flex max-h-[inherit] flex-col overflow-auto rounded-lg border border-border bg-card text-sm outline-none data-focus-visible:focus-ring', 'data-drop-target:bg-brand-subtle data-drop-target:outline-2 data-drop-target:outline-solid data-drop-target:outline-brand data-drop-target:-outline-offset-2', className) }));
|
|
13
19
|
}
|
|
14
20
|
/** Selected: brand-subtle, the 3px sidebar-primary marker and a ticked box — the same signals as a table row. */
|
|
15
|
-
export function GridListItem({ children, description, actions, className, ...props }) {
|
|
21
|
+
export function GridListItem({ children, description, actions, dragLabel, className, ...props }) {
|
|
16
22
|
const textValue = props.textValue ?? (typeof children === 'string' ? children : undefined);
|
|
17
|
-
return (_jsx(RACGridListItem, { ...props, textValue: textValue, className: cn(
|
|
23
|
+
return (_jsx(RACGridListItem, { ...props, textValue: textValue, className: ({ allowsDragging }) => cn(
|
|
18
24
|
// React Aria sets data-hovered only on a row that can be selected or has an action: the pointer then.
|
|
19
|
-
'group/item relative flex min-h-[calc(var(--control-height)+12px)] cursor-default items-center gap-3 border-b border-border
|
|
25
|
+
'group/item relative flex min-h-[calc(var(--control-height)+12px)] cursor-default items-center gap-3 border-b border-border py-1.5 pe-3 outline-none last:border-b-0',
|
|
26
|
+
// A draggable row starts with its drag button, whose target is wider than its paint: the row gives it
|
|
27
|
+
// the start padding rather than the button reaching into it.
|
|
28
|
+
allowsDragging ? 'ps-1' : 'ps-3', 'data-hovered:cursor-pointer data-disabled:cursor-not-allowed data-hovered:bg-accent data-selected:bg-brand-subtle data-selected:shadow-[inset_3px_0_0_var(--sidebar-primary)] data-focus-visible:focus-ring-inset data-disabled:opacity-60', 'data-dragging:opacity-50 data-drop-target:bg-brand-subtle data-drop-target:outline-2 data-drop-target:outline-solid data-drop-target:outline-brand data-drop-target:-outline-offset-2',
|
|
29
|
+
// Forced colours drop the selected ground and the inset marker: draw the marker in Highlight instead.
|
|
30
|
+
"forced-colors:data-selected:before:absolute forced-colors:data-selected:before:inset-y-1 forced-colors:data-selected:before:start-0 forced-colors:data-selected:before:w-[3px] forced-colors:data-selected:before:bg-[Highlight] forced-colors:data-selected:before:forced-color-adjust-none forced-colors:data-selected:before:content-['']", className), children: ({ selectionMode, selectionBehavior, allowsDragging }) => (_jsxs(_Fragment, { children: [allowsDragging && (_jsx(RACButton, { slot: "drag", "aria-label": dragLabel, className: "group/grid-drag relative flex min-h-target min-w-target shrink-0 cursor-grab items-center justify-center outline-none", children: _jsx("span", { className: "flex size-control-sm items-center justify-center rounded-md text-muted-foreground group-data-focus-visible/grid-drag:focus-ring group-data-hovered/grid-drag:bg-muted group-data-hovered/grid-drag:text-foreground", children: _jsx(GripVertical, { "aria-hidden": "true", className: "size-4" }) }) })), selectionMode !== 'none' && selectionBehavior === 'toggle' && (_jsx(SelectionCheckbox, { className: "-ml-1" })), _jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "leading-5 font-medium text-foreground", children: children }), description && (_jsx("span", { className: "text-[13px] leading-5 text-muted-foreground", children: description }))] }), actions && _jsx("span", { className: "flex shrink-0 items-center gap-1", children: actions })] })) }));
|
|
20
31
|
}
|
|
21
32
|
//# sourceMappingURL=grid-list.js.map
|
package/dist/ui/grid-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-list.js","sourceRoot":"","sources":["../../src/ui/grid-list.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,YAAY,IAAI,eAAe,GAGhC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD
|
|
1
|
+
{"version":3,"file":"grid-list.js","sourceRoot":"","sources":["../../src/ui/grid-list.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,QAAQ,IAAI,WAAW,EACvB,YAAY,IAAI,eAAe,GAGhC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB;IAClF,OAAO,CACL,KAAC,WAAW,OACN,KAAK,EACT,SAAS,EAAE,EAAE,CACX,iJAAiJ,EACjJ,8JAA8J,EAC9J,SAAS,CACV,GACD,CACH,CAAC;AACJ,CAAC;AAaD,iHAAiH;AACjH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,KAAK,EACU;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3F,OAAO,CACL,KAAC,eAAe,OACV,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAChC,EAAE;QACA,sGAAsG;QACtG,qKAAqK;QACrK,sGAAsG;QACtG,6DAA6D;QAC7D,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAChC,4OAA4O,EAC5O,uLAAuL;QACvL,sGAAsG;QACtG,8UAA8U,EAC9U,SAAS,CACV,YAGF,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CACzD,8BACG,cAAc,IAAI,CACjB,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,gBACC,SAAS,EACrB,SAAS,EAAC,uHAAuH,YAEjI,eAAM,SAAS,EAAC,oNAAoN,YAClO,KAAC,YAAY,mBAAa,MAAM,EAAC,SAAS,EAAC,QAAQ,GAAG,GACjD,GACG,CACb,EACA,aAAa,KAAK,MAAM,IAAI,iBAAiB,KAAK,QAAQ,IAAI,CAC7D,KAAC,iBAAiB,IAAC,SAAS,EAAC,OAAO,GAAG,CACxC,EACD,gBAAM,SAAS,EAAC,8BAA8B,aAC5C,eAAM,SAAS,EAAC,uCAAuC,YAAE,QAAQ,GAAQ,EACxE,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,6CAA6C,YAAE,WAAW,GAAQ,CACnF,IACI,EACN,OAAO,IAAI,eAAM,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAQ,IAC9E,CACJ,GACe,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,gBAAgB,IAAI,mBAAmB,EAC7C,MAAM,uBAAuB,CAAC;AAI/B,OAAO,
|
|
1
|
+
{"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,gBAAgB,IAAI,mBAAmB,EAC7C,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EASL,KAAK,UAAU,EAEf,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,mBAAmB,EACnB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1E,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,KAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAmDlB"}
|
package/dist/ui/number-field.js
CHANGED
|
@@ -4,16 +4,18 @@ import { Group, Input, NumberField as RACNumberField, } from 'react-aria-compone
|
|
|
4
4
|
import { Minus, Plus } from 'lucide-react';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
6
|
import { Button } from './button.js';
|
|
7
|
-
import { FieldDescription, FieldError, FieldLabel, fieldBox, fieldInput, fieldStack, fieldWidths,
|
|
7
|
+
import { FieldDescription, FieldError, FieldLabel, fieldBox, fieldInput, fieldStack, fieldWidths, withRequired, useFieldLabels, } from './field.js';
|
|
8
8
|
/**
|
|
9
9
|
* A number with − and + steppers. Each stepper is its own target (Layer 1, at least --target-min) around a
|
|
10
10
|
* 28px painted button that stays 4px from the box's edge at every level. Arrow keys and typing work too;
|
|
11
11
|
* min and max clamp on blur.
|
|
12
12
|
*/
|
|
13
13
|
export function NumberField({ label, description, errorMessage, requiredMessage, validate, width = 'sm', labels, className, ...props }) {
|
|
14
|
-
|
|
14
|
+
const t = useFieldLabels(labels);
|
|
15
|
+
const required = requiredMessage ?? t('enterValue', { label });
|
|
16
|
+
return (_jsxs(RACNumberField, { ...props, validate: withRequired(props.isRequired, required, (v) => v == null || Number.isNaN(v), validate), className: cn(fieldStack, fieldWidths[width],
|
|
15
17
|
// Two stepper targets plus room for five digits. At AAA the targets are 44px, so a narrow field
|
|
16
18
|
// grows past its width rather than squeezing the number (min-width wins over max-width).
|
|
17
|
-
'min-w-[calc(2*max(var(--target-min),var(--control-height-sm))+5ch+1.5rem)]', className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix:
|
|
19
|
+
'min-w-[calc(2*max(var(--target-min),var(--control-height-sm))+5ch+1.5rem)]', className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, labels: labels, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix: t('errorPrefix'), requiredMessage: required, children: errorMessage }), _jsxs(Group, { className: fieldBox, children: [_jsx(Button, { slot: "decrement", variant: "ghost", visualSize: "icon-sm", className: "ms-1 justify-start", visualClassName: "[&_svg]:size-4", children: _jsx(Minus, { "aria-hidden": "true" }) }), _jsx(Input, { className: cn(fieldInput, 'px-2 text-center tabular-nums') }), _jsx(Button, { slot: "increment", variant: "ghost", visualSize: "icon-sm", className: "me-1 justify-end", visualClassName: "[&_svg]:size-4", children: _jsx(Plus, { "aria-hidden": "true" }) })] })] }));
|
|
18
20
|
}
|
|
19
21
|
//# sourceMappingURL=number-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.js","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,KAAK,EACL,WAAW,IAAI,cAAc,GAE9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"number-field.js","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,KAAK,EACL,WAAW,IAAI,cAAc,GAE9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEZ,cAAc,GAEf,MAAM,YAAY,CAAC;AAgBpB;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACS;IACjB,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,OAAO,CACL,MAAC,cAAc,OACT,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,QAAQ,EACR,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EACnC,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CACX,UAAU,EACV,WAAW,CAAC,KAAK,CAAC;QAClB,gGAAgG;QAChG,yFAAyF;QACzF,4EAA4E,EAC5E,SAAS,CACV,aAED,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,YACrD,KAAK,GACK,EACZ,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,QAAQ,YACjE,YAAY,GACF,EACb,MAAC,KAAK,IAAC,SAAS,EAAE,QAAQ,aACxB,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,oBAAoB,EAC9B,eAAe,EAAC,gBAAgB,YAEhC,KAAC,KAAK,mBAAa,MAAM,GAAG,GACrB,EACT,KAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,+BAA+B,CAAC,GAAI,EACrE,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,kBAAkB,EAC5B,eAAe,EAAC,gBAAgB,YAEhC,KAAC,IAAI,mBAAa,MAAM,GAAG,GACpB,IACH,IACO,CAClB,CAAC;AACJ,CAAC"}
|
package/dist/ui/pagination.d.ts
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Pagination's words, for the `labels` prop. `{noun}` is `labels.noun`, what the list holds, for English; in a
|
|
3
|
+
* language whose nouns change with the sentence, leave it out and write the noun into each label.
|
|
4
|
+
*/
|
|
2
5
|
export interface PaginationLabels {
|
|
3
6
|
/** Names the navigation landmark. */
|
|
4
7
|
pagination: string;
|
|
5
8
|
/** What the list holds: "projects". */
|
|
6
9
|
noun: string;
|
|
7
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* The range: "21–30 of 212 projects". The figures are bold, `{noun}` isn't, and what sits between `{from}` and
|
|
12
|
+
* `{to}` is shown and read as `rangeTo`. `{from}` and `{to}` are drawn in place; `{total}` is a number, so
|
|
13
|
+
* `{total, number}` formats it and it can choose a plural.
|
|
14
|
+
*/
|
|
8
15
|
range: string;
|
|
9
16
|
/** Read in place of the dash between the two figures: " to ". */
|
|
10
17
|
rangeTo: string;
|
|
11
18
|
/** The range of an empty list. */
|
|
12
19
|
empty: string;
|
|
13
20
|
rowsPerPage: string;
|
|
14
|
-
/** A page link's name around its number, which is all it shows: "Page {page} of {noun}". */
|
|
21
|
+
/** A page link's name around its number, which is all it shows: "Page {page} of {noun}". `{page}` is drawn in place. */
|
|
15
22
|
page: string;
|
|
16
23
|
previous: string;
|
|
17
24
|
next: string;
|
|
@@ -25,6 +32,7 @@ export interface PaginationLabels {
|
|
|
25
32
|
loading: string;
|
|
26
33
|
errorPrefix: string;
|
|
27
34
|
}
|
|
35
|
+
export declare const paginationLabels: PaginationLabels;
|
|
28
36
|
/**
|
|
29
37
|
* A Laravel API Resource collection's `meta`. Only these fields are read; `links` and `path` point at the API,
|
|
30
38
|
* not at the page people are on, so they are never used.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,wHAAwH;IACxH,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,gBAgB9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAC1C,CACI;IACE,gFAAgF;IAChF,IAAI,EAAE,cAAc,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,0BAA0B;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,GACD;IACE,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,cAAc,CAAC,EAAE,KAAK,CAAC;CACxB,CACJ,CAAC;AAOJ;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,sCAuMhD"}
|
package/dist/ui/pagination.js
CHANGED
|
@@ -4,15 +4,16 @@ import { useEffect, useId, useLayoutEffect, useRef, useState, } from 'react';
|
|
|
4
4
|
import { Link, useLocale } from 'react-aria-components';
|
|
5
5
|
import { ChevronLeft, ChevronRight, CircleAlert } from 'lucide-react';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
-
import {
|
|
7
|
+
import { marker, splitMarkers, substitute } from '../lib/labels.js';
|
|
8
|
+
import { useLabels } from '../lib/locale.js';
|
|
8
9
|
import { pageItems } from '../lib/page-items.js';
|
|
9
10
|
import { Button } from './button.js';
|
|
10
11
|
import { Option } from './list-box.js';
|
|
11
12
|
import { Select } from './select.js';
|
|
12
|
-
const paginationLabels = {
|
|
13
|
+
export const paginationLabels = {
|
|
13
14
|
pagination: 'Pagination',
|
|
14
15
|
noun: 'results',
|
|
15
|
-
range: '{from}–{to} of {total}',
|
|
16
|
+
range: '{from}–{to} of {total, number} {noun}',
|
|
16
17
|
rangeTo: ' to ',
|
|
17
18
|
empty: 'No {noun}',
|
|
18
19
|
rowsPerPage: 'Rows per page',
|
|
@@ -41,11 +42,11 @@ export function Pagination(props) {
|
|
|
41
42
|
const meta = props.meta;
|
|
42
43
|
const current = meta ? meta.current_page : props.page;
|
|
43
44
|
const last = Math.max(1, meta ? meta.last_page : props.pageCount);
|
|
44
|
-
const
|
|
45
|
-
const noun =
|
|
45
|
+
const t = useLabels('pagination', paginationLabels, given);
|
|
46
|
+
const noun = t('noun');
|
|
46
47
|
const { locale } = useLocale();
|
|
47
48
|
const format = (n) => new Intl.NumberFormat(locale).format(n);
|
|
48
|
-
const to = (n) => (typeof href === 'function' ? href(n) :
|
|
49
|
+
const to = (n) => (typeof href === 'function' ? href(n) : substitute(href, { page: n }));
|
|
49
50
|
// Which way the last change went, for the range's figures and the current page.
|
|
50
51
|
const [seen, setSeen] = useState({
|
|
51
52
|
page: current,
|
|
@@ -109,33 +110,39 @@ export function Pagination(props) {
|
|
|
109
110
|
const options = (meta && props.perPageOptions) || [10, 25, 50];
|
|
110
111
|
if (!meta && last <= 1)
|
|
111
112
|
return null;
|
|
112
|
-
const range = meta && (_jsx(Range, { meta: meta,
|
|
113
|
-
return (_jsxs("div", { className: cn('@container/pagination relative w-full', className), children: [_jsxs("div", { className: "flex flex-wrap items-end justify-between gap-x-6 gap-y-3 @max-[560px]/pagination:flex-col @max-[560px]/pagination:items-stretch", children: [showSelect && (meta.total > Math.min(...options) || meta.last_page > 1) && (_jsx(Select, { label:
|
|
113
|
+
const range = meta && (_jsx(Range, { meta: meta, t: t, noun: noun, format: format, moved: seen.moved, forward: seen.forward }));
|
|
114
|
+
return (_jsxs("div", { className: cn('@container/pagination relative w-full', className), children: [_jsxs("div", { className: "flex flex-wrap items-end justify-between gap-x-6 gap-y-3 @max-[560px]/pagination:flex-col @max-[560px]/pagination:items-stretch", children: [showSelect && (meta.total > Math.min(...options) || meta.last_page > 1) && (_jsx(Select, { label: t('rowsPerPage'), width: "xs", selectedKey: String(meta.per_page), onSelectionChange: (key) => {
|
|
114
115
|
const per = Number(key);
|
|
115
116
|
if (!per || per === meta.per_page)
|
|
116
117
|
return;
|
|
117
118
|
props.onPerPageChange?.(per, meta.from ? Math.floor((meta.from - 1) / per) + 1 : 1);
|
|
118
|
-
}, children: options.map((n) => (_jsx(Option, { id: String(n), children: format(n) }, n))) })), range && _jsx("div", { className: "flex min-h-control-target items-center", children: range }), last > 1 && (_jsxs("nav", { "aria-label":
|
|
119
|
+
}, children: options.map((n) => (_jsx(Option, { id: String(n), children: format(n) }, n))) })), range && _jsx("div", { className: "flex min-h-control-target items-center", children: range }), last > 1 && (_jsxs("nav", { "aria-label": t('pagination'), "aria-busy": pending ? true : undefined, "data-moved": seen.moved ? '' : undefined, className: "relative min-w-0 @max-[560px]/pagination:self-start", style: { '--pagination-slot': `calc(${String(last).length}ch + 16px)` }, children: [_jsx("span", { role: "status", className: "sr-only", children: pending && saying ? t('loading', { page: format(pending.page) }) : '' }), _jsxs("div", { className: "flex items-center gap-1", children: [current > 1 ? (_jsx(Arrow, { href: to(current - 1), rel: "prev", label: t('previous', { noun }), pending: pending?.kind === 'prev', onPress: press('prev', current - 1) })) : (_jsx("span", { "aria-hidden": "true", className: arrowSlot })), last <= fieldAbove ? (_jsx(Numbers, { current: current, last: last, to: to, t: t, noun: noun, format: format, pending: pending, press: press, currentRef: currentRef })) : (_jsx(PageField, { id: fieldId, error: error, setError: setError, current: current, last: last, to: to, pageParam: pageParam, t: t, format: format, fieldRef: fieldRef, pending: pending?.kind === 'field', onGo: (n) => {
|
|
119
120
|
intent.current = 'field';
|
|
120
121
|
setPending({ kind: 'field', page: n, from: current });
|
|
121
|
-
} })), current < last ? (_jsx(Arrow, { href: to(current + 1), rel: "next", label:
|
|
122
|
+
} })), current < last ? (_jsx(Arrow, { href: to(current + 1), rel: "next", label: t('next', { noun }), pending: pending?.kind === 'next', onPress: press('next', current + 1) })) : (_jsx("span", { "aria-hidden": "true", className: arrowSlot }))] })] }))] }), last > fieldAbove && (_jsx("div", { role: "alert", id: `${fieldId}-error`, children: error && (_jsxs("p", { className: "mt-2 flex items-center gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { "aria-hidden": "true", className: "size-4 shrink-0" }), _jsxs("span", { children: [_jsx("span", { className: "sr-only", children: t('errorPrefix') }), error] })] })) }))] }));
|
|
122
123
|
}
|
|
123
124
|
/** "21–30 of 212 projects": the figures bold, the noun muted, and the dash read as "to". */
|
|
124
|
-
function Range({ meta,
|
|
125
|
+
function Range({ meta, t, noun, format, moved, forward, }) {
|
|
125
126
|
if (!meta.total || meta.from == null || meta.to == null)
|
|
126
|
-
return (_jsx("p", { role: "status", className: "text-sm text-muted-foreground", children:
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
return (_jsx("p", { role: "status", className: "text-sm text-muted-foreground", children: t('empty', { noun }) }));
|
|
128
|
+
const pieces = splitMarkers(t('range', {
|
|
129
|
+
from: marker('from'),
|
|
130
|
+
to: marker('to'),
|
|
131
|
+
total: meta.total,
|
|
132
|
+
noun: marker('noun'),
|
|
133
|
+
}));
|
|
134
|
+
const fromAt = pieces.findIndex((p) => typeof p !== 'string' && p.marker === 'from');
|
|
135
|
+
const toAt = pieces.findIndex((p) => typeof p !== 'string' && p.marker === 'to');
|
|
136
|
+
return (_jsx("p", { role: "status", className: "text-sm text-muted-foreground tabular-nums", children: _jsx("span", { "data-direction": moved ? (forward ? 'forward' : 'back') : undefined, className: "pagination-roll font-semibold text-foreground", children: pieces.map((piece, i) => typeof piece !== 'string' ? (piece.marker === 'noun' ? (_jsx("span", { className: "font-normal text-muted-foreground", children: noun }, i)) : (format(piece.marker === 'from' ? meta.from : meta.to))) : fromAt >= 0 && i === fromAt + 1 && toAt === fromAt + 2 ? (_jsxs("span", { children: [_jsx("span", { "aria-hidden": "true", children: piece }), _jsx("span", { className: "sr-only", children: t('rangeTo') })] }, i)) : (piece)) }, `${meta.from}-${meta.to}-${meta.total}`) }));
|
|
131
137
|
}
|
|
132
|
-
function Numbers({ current, last, to,
|
|
138
|
+
function Numbers({ current, last, to, t, noun, format, pending, press, currentRef, }) {
|
|
133
139
|
// A page link shows its number; the words around it are for its name, which keeps the number (2.5.3).
|
|
134
|
-
const
|
|
135
|
-
|
|
140
|
+
const name = splitMarkers(t('page', { page: marker('page'), noun }));
|
|
141
|
+
const shown = name.some((p) => typeof p !== 'string');
|
|
142
|
+
return (_jsx("ul", { role: "list", className: "flex min-w-0 flex-wrap gap-1", children: pageItems(current, last).map((item) => (_jsx("li", { className: "flex w-[max(var(--target-min),var(--control-height),var(--pagination-slot))] justify-center", children: typeof item === 'number' ? (_jsxs(PageLink, { href: to(item), isCurrent: item === current, pending: pending?.kind === 'num' && pending.page === item, onPress: press('num', item), ref: item === current ? currentRef : undefined, children: [name.map((piece, i) => typeof piece === 'string' ? (_jsx("span", { className: "sr-only", children: piece }, i)) : (format(item))), !shown && format(item)] })) : (_jsx("span", { "aria-hidden": "true", className: "inline-flex h-control w-full items-center justify-center text-sm tracking-[1px] text-muted-foreground", children: "\u2026" })) }, typeof item === 'number' ? `page-${item}` : item))) }));
|
|
136
143
|
}
|
|
137
144
|
/** "Page [n] of N", a GET form that keeps the rest of the query. With JavaScript it goes through the router. */
|
|
138
|
-
function PageField({ id, error, setError, current, last, to, pageParam,
|
|
145
|
+
function PageField({ id, error, setError, current, last, to, pageParam, t, format, fieldRef, pending, onGo, }) {
|
|
139
146
|
const [value, setValue] = useState(String(current));
|
|
140
147
|
// A new page shows its own number; the field itself stays, so focus stays in it.
|
|
141
148
|
const [shown, setShown] = useState(current);
|
|
@@ -161,7 +168,7 @@ function PageField({ id, error, setError, current, last, to, pageParam, labels,
|
|
|
161
168
|
const raw = value.trim();
|
|
162
169
|
const n = /^\d+$/.test(raw) ? Number(raw) : NaN;
|
|
163
170
|
if (!(n >= 1 && n <= last)) {
|
|
164
|
-
setError(
|
|
171
|
+
setError(t('outOfRange', { last: format(last) }));
|
|
165
172
|
return;
|
|
166
173
|
}
|
|
167
174
|
if (n === current)
|
|
@@ -169,7 +176,7 @@ function PageField({ id, error, setError, current, last, to, pageParam, labels,
|
|
|
169
176
|
onGo(n);
|
|
170
177
|
setTarget(n);
|
|
171
178
|
};
|
|
172
|
-
return (_jsxs("form", { action: action, method: "get", noValidate: true, onSubmit: submit, className: "mx-1 inline-flex min-w-0 flex-wrap items-center gap-2", children: [hidden.map(([name, v]) => (_jsx("input", { type: "hidden", name: name, value: v }, name))), _jsx("label", { htmlFor: id, className: "text-sm font-semibold text-foreground", children:
|
|
179
|
+
return (_jsxs("form", { action: action, method: "get", noValidate: true, onSubmit: submit, className: "mx-1 inline-flex min-w-0 flex-wrap items-center gap-2", children: [hidden.map(([name, v]) => (_jsx("input", { type: "hidden", name: name, value: v }, name))), _jsx("label", { htmlFor: id, className: "text-sm font-semibold text-foreground", children: t('field') }), _jsx("div", { "data-invalid": error ? '' : undefined, className: cn('field-paint flex has-[input:focus]:before:focus-ring data-invalid:before:border-destructive data-invalid:before:shadow-[inset_0_0_0_1px_var(--destructive)]', pending && 'pagination-field-pending'), children: _jsx("input", { ref: fieldRef, id: id, name: pageParam, inputMode: "numeric", autoComplete: "off", value: value, "aria-invalid": error ? true : undefined, "aria-describedby": `${id}-of ${id}-error`, onChange: (e) => {
|
|
173
180
|
setValue(e.target.value);
|
|
174
181
|
setError('');
|
|
175
182
|
}, onKeyDown: (e) => {
|
|
@@ -178,7 +185,7 @@ function PageField({ id, error, setError, current, last, to, pageParam, labels,
|
|
|
178
185
|
e.preventDefault();
|
|
179
186
|
setValue(String(current));
|
|
180
187
|
setError('');
|
|
181
|
-
}, style: { width: `calc(${digits + 1}ch + 2 * var(--control-pad-x) + 2px)` }, className: "field-input cursor-text px-(--control-pad-x) text-center text-sm font-bold text-foreground tabular-nums" }) }), _jsx("span", { id: `${id}-of`, className: "text-sm whitespace-nowrap text-muted-foreground tabular-nums", children:
|
|
188
|
+
}, style: { width: `calc(${digits + 1}ch + 2 * var(--control-pad-x) + 2px)` }, className: "field-input cursor-text px-(--control-pad-x) text-center text-sm font-bold text-foreground tabular-nums" }) }), _jsx("span", { id: `${id}-of`, className: "text-sm whitespace-nowrap text-muted-foreground tabular-nums", children: t('of', { last: format(last) }) }), changed && (_jsx("span", { className: "pagination-go inline-flex", children: _jsx(Button, { type: "submit", isPending: pending, children: t('go') }) })), target != null && (_jsx("span", { hidden: true, children: _jsx(Link, { ref: link, href: to(target), children: format(target) }) }))] }));
|
|
182
189
|
}
|
|
183
190
|
/** Three layers: the link is the target, at least --target-min both ways; the painted box carries hover, focus and current. */
|
|
184
191
|
function PageLink({ href, rel, isCurrent, pending, onPress, ref, label, className, children, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/ui/radio-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGL,KAAK,eAAe,IAAI,kBAAkB,EAC1C,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,kBAAkB,EAClB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,eAAe,+
|
|
1
|
+
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/ui/radio-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGL,KAAK,eAAe,IAAI,kBAAkB,EAC1C,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,kBAAkB,EAClB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,eAAe,+BA6BjB;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/E,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAyB/E"}
|
package/dist/ui/radio-group.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Radio as RACRadio, RadioGroup as RACRadioGroup, } from 'react-aria-components';
|
|
4
4
|
import { cn } from '../lib/cn.js';
|
|
5
|
-
import { FieldDescription, FieldError, FieldLabel, fieldStack,
|
|
5
|
+
import { FieldDescription, FieldError, FieldLabel, fieldStack, withRequired, useFieldLabels, } from './field.js';
|
|
6
6
|
/** Choose exactly one of a few options that people should compare side by side. Arrow keys move and select. */
|
|
7
7
|
export function RadioGroup({ label, description, errorMessage, requiredMessage, children, labels, className, orientation = 'vertical', ...props }) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const t = useFieldLabels(labels);
|
|
9
|
+
const required = requiredMessage ?? t('chooseValue', { label });
|
|
10
|
+
return (_jsxs(RACRadioGroup, { ...props, orientation: orientation, validate: props.isRequired ? withRequired(true, required, (v) => !v) : 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: cn('flex', orientation === 'horizontal' ? 'flex-row flex-wrap gap-x-6' : 'flex-col'), children: children })] }));
|
|
11
11
|
}
|
|
12
12
|
/** Selected: a thick ring in `primary` — a change of shape, not only colour. */
|
|
13
13
|
export function Radio({ children, description, className, ...props }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../src/ui/radio-group.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,IAAI,QAAQ,EACjB,UAAU,IAAI,aAAa,GAG5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../src/ui/radio-group.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,IAAI,QAAQ,EACjB,UAAU,IAAI,aAAa,GAG5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GAEf,MAAM,YAAY,CAAC;AAepB,+GAA+G;AAC/G,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,WAAW,GAAG,UAAU,EACxB,GAAG,KAAK,EACQ;IAChB,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,CACL,MAAC,aAAa,OACR,KAAK,EACT,WAAW,EAAE,WAAW,EACxB,QAAQ,EACN,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAgB,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAEvF,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAEpC,KAAC,UAAU,IAAC,WAAW,EAAC,MAAM,EAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,YACxE,KAAK,GACK,EACZ,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,QAAQ,YACjE,YAAY,GACF,EACb,cACE,SAAS,EAAE,EAAE,CACX,MAAM,EACN,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,UAAU,CACzE,YAEA,QAAQ,GACL,IACQ,CACjB,CAAC;AACJ,CAAC;AAQD,gFAAgF;AAChF,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAc;IAC9E,OAAO,CAEL,MAAC,QAAQ,OACH,KAAK,EACT,SAAS,EAAE,EAAE,CACX,oQAAoQ,EACpQ,SAAS,CACV,aAED,8BACc,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,4GAA4G,EAC5G,wFAAwF,EACxF,4GAA4G,EAC5G,8CAA8C,CAC/C,GACD,EACF,gBAAM,SAAS,EAAC,uBAAuB,aACrC,yBAAO,QAAQ,GAAQ,EACtB,WAAW,IAAI,eAAM,SAAS,EAAC,mCAAmC,YAAE,WAAW,GAAQ,IACnF,IACE,CACZ,CAAC;AACJ,CAAC"}
|
package/dist/ui/search.d.ts
CHANGED
|
@@ -11,10 +11,13 @@ export interface SearchItem {
|
|
|
11
11
|
export interface SearchLabels {
|
|
12
12
|
/** The trigger's name when compact, and the dialog's and its field's. */
|
|
13
13
|
search: string;
|
|
14
|
+
/** The dialog's field before anything is typed, when there is no `placeholder`. */
|
|
15
|
+
placeholder: string;
|
|
14
16
|
noResults: string;
|
|
15
17
|
/** The key shown in the field that closes the dialog. */
|
|
16
18
|
escapeKey: string;
|
|
17
19
|
}
|
|
20
|
+
export declare const searchLabels: SearchLabels;
|
|
18
21
|
export interface SearchSection {
|
|
19
22
|
id: string;
|
|
20
23
|
title: string;
|
package/dist/ui/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/ui/search.tsx"],"names":[],"mappings":"AAGA,OAAO,EAcL,KAAK,GAAG,EACT,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKtD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/ui/search.tsx"],"names":[],"mappings":"AAGA,OAAO,EAcL,KAAK,GAAG,EACT,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKtD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EAAE,KAAK,GACd,EAAE,kBAAkB,+BAwFpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,WAAW,EACX,OAAO,EACP,MAAM,EAAE,KAAK,EACb,SAAS,GACV,EAAE,kBAAkB,+BA6BpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAmB,EACnB,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,cAAc,+BA8BhB"}
|
package/dist/ui/search.js
CHANGED
|
@@ -8,23 +8,24 @@ import { fieldBox, fieldInput } from './field.js';
|
|
|
8
8
|
import { IconButton } from './icon-button.js';
|
|
9
9
|
import { renderIcon } from './icon.js';
|
|
10
10
|
import { Kbd } from './kbd.js';
|
|
11
|
-
import {
|
|
11
|
+
import { useLabels } from '../lib/locale.js';
|
|
12
12
|
import { itemVisual, rowTarget } from './menu.js';
|
|
13
|
-
const searchLabels = {
|
|
13
|
+
export const searchLabels = {
|
|
14
14
|
search: 'Search',
|
|
15
|
+
placeholder: 'Search projects, people and settings',
|
|
15
16
|
noResults: 'No results. Try a project name, a person or a setting.',
|
|
16
17
|
escapeKey: 'Esc',
|
|
17
18
|
};
|
|
18
19
|
/** The search dialog: type to filter, arrow keys to move, Enter to go, Escape to close. */
|
|
19
|
-
export function CommandSearch({ isOpen, onOpenChange, sections, onAction, placeholder
|
|
20
|
-
const
|
|
20
|
+
export function CommandSearch({ isOpen, onOpenChange, sections, onAction, placeholder, labels: given, }) {
|
|
21
|
+
const t = useLabels('search', searchLabels, given);
|
|
21
22
|
const { contains } = useFilter({ sensitivity: 'base' });
|
|
22
|
-
return (_jsx(ModalOverlay, { isOpen: isOpen, onOpenChange: onOpenChange, isDismissable: true, "data-overlay": true, className: "fixed inset-0 z-(--z-popover) flex items-start justify-center bg-overlay px-4 pt-[12vh]", children: _jsx(Modal, { "data-sheet": "top", className: "w-full max-w-[40rem] overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-(--shadow-lg) outline-none", children: _jsx(Dialog, { "aria-label":
|
|
23
|
+
return (_jsx(ModalOverlay, { isOpen: isOpen, onOpenChange: onOpenChange, isDismissable: true, "data-overlay": true, className: "fixed inset-0 z-(--z-popover) flex items-start justify-center bg-overlay px-4 pt-[12vh]", children: _jsx(Modal, { "data-sheet": "top", className: "w-full max-w-[40rem] overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-(--shadow-lg) outline-none", children: _jsx(Dialog, { "aria-label": t('search'), className: "flex max-h-[70vh] flex-col outline-none", children: _jsxs(Autocomplete, { filter: contains, children: [_jsx(SearchField, { "aria-label": t('search'),
|
|
23
24
|
// oxlint-disable-next-line jsx-a11y/no-autofocus
|
|
24
|
-
autoFocus: true, className: "border-b border-border p-3", children: _jsxs("div", { className: fieldBox, children: [_jsx(Search, { "aria-hidden": "true", className: "pointer-events-none absolute top-1/2 left-2.5 size-5 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { placeholder: placeholder, className: cn(fieldInput, 'pr-14 pl-10 [&::-webkit-search-cancel-button]:hidden') }), _jsx(Kbd, { className: "pointer-events-none absolute top-1/2 right-2 -translate-y-1/2", children:
|
|
25
|
+
autoFocus: true, className: "border-b border-border p-3", children: _jsxs("div", { className: fieldBox, children: [_jsx(Search, { "aria-hidden": "true", className: "pointer-events-none absolute top-1/2 left-2.5 size-5 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { placeholder: placeholder ?? t('placeholder'), className: cn(fieldInput, 'pr-14 pl-10 [&::-webkit-search-cancel-button]:hidden') }), _jsx(Kbd, { className: "pointer-events-none absolute top-1/2 right-2 -translate-y-1/2", children: t('escapeKey') })] }) }), _jsx(Menu, { items: sections, onAction: (id) => {
|
|
25
26
|
onAction?.(id);
|
|
26
27
|
onOpenChange(false);
|
|
27
|
-
}, renderEmptyState: () => (_jsxs("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-muted-foreground", children: [_jsx(SearchX, { "aria-hidden": "true", className: "size-6" }),
|
|
28
|
+
}, renderEmptyState: () => (_jsxs("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-muted-foreground", children: [_jsx(SearchX, { "aria-hidden": "true", className: "size-6" }), t('noResults')] })), className: "relative min-h-0 flex-1 overflow-auto p-2 outline-none", children: (section) => (_jsxs(MenuSection, { id: section.id, className: "not-first:mt-2", children: [_jsx(Header, { className: "px-3 pt-1 pb-1 text-[13px] leading-5 font-semibold text-muted-foreground", children: section.title }), _jsx(Collection, { items: section.items, children: (item) => (_jsx(MenuItem, { id: item.id, href: item.href, textValue: item.label, className: cn('group/item', rowTarget), children: _jsxs("span", { className: itemVisual, children: [item.icon &&
|
|
28
29
|
renderIcon(item.icon, 'size-5 shrink-0 text-muted-foreground'), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsx("span", { className: "truncate font-medium", children: item.label }), item.description && (_jsx("span", { className: "truncate text-[13px] text-muted-foreground", children: item.description }))] })] }) })) })] })) })] }) }) }) }));
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
@@ -33,13 +34,13 @@ export function CommandSearch({ isOpen, onOpenChange, sections, onAction, placeh
|
|
|
33
34
|
* the visible text (2.5.3 Label in Name, as axe and the Setsquare SDK measure it).
|
|
34
35
|
*/
|
|
35
36
|
export function SearchTrigger({ onPress, placeholder, compact, labels: given, className, }) {
|
|
36
|
-
const
|
|
37
|
+
const t = useLabels('search', searchLabels, given);
|
|
37
38
|
if (compact) {
|
|
38
|
-
return (_jsx(IconButton, { label:
|
|
39
|
+
return (_jsx(IconButton, { label: t('search'), icon: Search, onPress: onPress, "aria-haspopup": "dialog", "aria-keyshortcuts": "Meta+K Control+K" }));
|
|
39
40
|
}
|
|
40
41
|
return (_jsxs(RACButton, { onPress: onPress, "aria-haspopup": "dialog", "aria-keyshortcuts": "Meta+K Control+K", className: cn(
|
|
41
42
|
// Looks like a field, so it is built like one: the button is the target, the box is painted behind it.
|
|
42
|
-
'field-paint flex h-control-target w-64 min-w-0 cursor-pointer items-center gap-2 pr-2 pl-2.5 text-left text-sm text-muted-foreground outline-none', 'data-hovered:before:bg-accent data-focus-visible:before:focus-ring', className), children: [_jsx(Search, { "aria-hidden": "true", className: "size-5 shrink-0" }), _jsx("span", { className: "min-w-0 flex-1 truncate", children: placeholder ??
|
|
43
|
+
'field-paint flex h-control-target w-64 min-w-0 cursor-pointer items-center gap-2 pr-2 pl-2.5 text-left text-sm text-muted-foreground outline-none', 'data-hovered:before:bg-accent data-focus-visible:before:focus-ring', className), children: [_jsx(Search, { "aria-hidden": "true", className: "size-5 shrink-0" }), _jsx("span", { className: "min-w-0 flex-1 truncate", children: placeholder ?? t('search') }), " ", _jsx(Kbd, { children: "\u2318K" })] }));
|
|
43
44
|
}
|
|
44
45
|
/** Trigger + dialog + the ⌘K / Ctrl+K shortcut, wired together. */
|
|
45
46
|
export function AppSearch({ sections, onAction, compact, defaultOpen = false, placeholder, labels, className, }) {
|
package/dist/ui/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/ui/search.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,MAAM,IAAI,SAAS,EACnB,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,KAAK,EACL,YAAY,EACZ,WAAW,EACX,SAAS,GAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/ui/search.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/select.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import { type Key, type SelectProps as RACSelectProps } from 'react-aria-components';
|
|
3
3
|
import { type FieldWidth, type FieldLabels } from './field.js';
|
|
4
|
+
/** A select's words, for the `labels` prop: every field's, and what it shows before a choice. */
|
|
5
|
+
export interface SelectLabels extends FieldLabels {
|
|
6
|
+
/** Shown in the button before anything is chosen, when there is no `placeholder`. */
|
|
7
|
+
placeholder: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const selectLabels: SelectLabels;
|
|
4
10
|
export interface SelectProps<T extends object> extends Omit<RACSelectProps<T>, 'className' | 'children' | 'validate'> {
|
|
5
11
|
label: string;
|
|
6
12
|
description?: ReactNode;
|
|
@@ -11,7 +17,7 @@ export interface SelectProps<T extends object> extends Omit<RACSelectProps<T>, '
|
|
|
11
17
|
items?: Iterable<T>;
|
|
12
18
|
children: ReactNode | ((item: T) => ReactNode);
|
|
13
19
|
width?: FieldWidth;
|
|
14
|
-
labels?: Partial<
|
|
20
|
+
labels?: Partial<SelectLabels>;
|
|
15
21
|
className?: string;
|
|
16
22
|
}
|
|
17
23
|
/** Choose one of a known, short list (about 5–15). Longer or searchable lists are a ComboBox. */
|