@wzrhine/react 0.0.0-stage → 0.2.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 +99 -0
- package/LICENSE +21 -0
- package/README.md +37 -3
- package/dist/advanced.css +398 -0
- package/dist/archive.css +704 -0
- package/dist/command.css +671 -0
- package/dist/components/Accordion.d.ts +82 -0
- package/dist/components/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion.js +19 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/Alert.d.ts +63 -0
- package/dist/components/Alert.d.ts.map +1 -0
- package/dist/components/Alert.js +29 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/AlertDialog.d.ts +49 -0
- package/dist/components/AlertDialog.d.ts.map +1 -0
- package/dist/components/AlertDialog.js +122 -0
- package/dist/components/AlertDialog.js.map +1 -0
- package/dist/components/ArchiveCard.d.ts +58 -0
- package/dist/components/ArchiveCard.d.ts.map +1 -0
- package/dist/components/ArchiveCard.js +40 -0
- package/dist/components/ArchiveCard.js.map +1 -0
- package/dist/components/Badge.d.ts +17 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +16 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Breadcrumb.d.ts +48 -0
- package/dist/components/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb.js +55 -0
- package/dist/components/Breadcrumb.js.map +1 -0
- package/dist/components/Button.d.ts +33 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +24 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Checkbox.d.ts +81 -0
- package/dist/components/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox.js +34 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/Collapsible.d.ts +47 -0
- package/dist/components/Collapsible.d.ts.map +1 -0
- package/dist/components/Collapsible.js +12 -0
- package/dist/components/Collapsible.js.map +1 -0
- package/dist/components/Combobox.d.ts +74 -0
- package/dist/components/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox.js +61 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/CommandPalette.d.ts +77 -0
- package/dist/components/CommandPalette.d.ts.map +1 -0
- package/dist/components/CommandPalette.js +150 -0
- package/dist/components/CommandPalette.js.map +1 -0
- package/dist/components/ContextMenu.d.ts +31 -0
- package/dist/components/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextMenu.js +25 -0
- package/dist/components/ContextMenu.js.map +1 -0
- package/dist/components/DataTable.d.ts +83 -0
- package/dist/components/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable.js +97 -0
- package/dist/components/DataTable.js.map +1 -0
- package/dist/components/Dialog.d.ts +49 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +48 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/Drawer.d.ts +56 -0
- package/dist/components/Drawer.d.ts.map +1 -0
- package/dist/components/Drawer.js +92 -0
- package/dist/components/Drawer.js.map +1 -0
- package/dist/components/EmptyState.d.ts +39 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +19 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/Field.d.ts +37 -0
- package/dist/components/Field.d.ts.map +1 -0
- package/dist/components/Field.js +12 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/Fieldset.d.ts +25 -0
- package/dist/components/Fieldset.d.ts.map +1 -0
- package/dist/components/Fieldset.js +17 -0
- package/dist/components/Fieldset.js.map +1 -0
- package/dist/components/FileDropZone.d.ts +60 -0
- package/dist/components/FileDropZone.d.ts.map +1 -0
- package/dist/components/FileDropZone.js +121 -0
- package/dist/components/FileDropZone.js.map +1 -0
- package/dist/components/Form.d.ts +22 -0
- package/dist/components/Form.d.ts.map +1 -0
- package/dist/components/Form.js +20 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/Icon.d.ts +25 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/Icon.js +38 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/IconButton.d.ts +25 -0
- package/dist/components/IconButton.d.ts.map +1 -0
- package/dist/components/IconButton.js +14 -0
- package/dist/components/IconButton.js.map +1 -0
- package/dist/components/Input.d.ts +24 -0
- package/dist/components/Input.d.ts.map +1 -0
- package/dist/components/Input.js +15 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/Menu.d.ts +66 -0
- package/dist/components/Menu.d.ts.map +1 -0
- package/dist/components/Menu.js +34 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/MetadataList.d.ts +51 -0
- package/dist/components/MetadataList.d.ts.map +1 -0
- package/dist/components/MetadataList.js +25 -0
- package/dist/components/MetadataList.js.map +1 -0
- package/dist/components/NumberField.d.ts +54 -0
- package/dist/components/NumberField.d.ts.map +1 -0
- package/dist/components/NumberField.js +27 -0
- package/dist/components/NumberField.js.map +1 -0
- package/dist/components/Pagination.d.ts +40 -0
- package/dist/components/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination.js +64 -0
- package/dist/components/Pagination.js.map +1 -0
- package/dist/components/Popover.d.ts +49 -0
- package/dist/components/Popover.d.ts.map +1 -0
- package/dist/components/Popover.js +14 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Progress.d.ts +57 -0
- package/dist/components/Progress.d.ts.map +1 -0
- package/dist/components/Progress.js +31 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/Radio.d.ts +68 -0
- package/dist/components/Radio.d.ts.map +1 -0
- package/dist/components/Radio.js +18 -0
- package/dist/components/Radio.js.map +1 -0
- package/dist/components/RecordHeader.d.ts +53 -0
- package/dist/components/RecordHeader.d.ts.map +1 -0
- package/dist/components/RecordHeader.js +19 -0
- package/dist/components/RecordHeader.js.map +1 -0
- package/dist/components/ResizeHandle.d.ts +32 -0
- package/dist/components/ResizeHandle.d.ts.map +1 -0
- package/dist/components/ResizeHandle.js +33 -0
- package/dist/components/ResizeHandle.js.map +1 -0
- package/dist/components/ScrollArea.d.ts +60 -0
- package/dist/components/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea.js +63 -0
- package/dist/components/ScrollArea.js.map +1 -0
- package/dist/components/Select.d.ts +39 -0
- package/dist/components/Select.d.ts.map +1 -0
- package/dist/components/Select.js +24 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Separator.d.ts +26 -0
- package/dist/components/Separator.d.ts.map +1 -0
- package/dist/components/Separator.js +22 -0
- package/dist/components/Separator.js.map +1 -0
- package/dist/components/Skeleton.d.ts +31 -0
- package/dist/components/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton.js +17 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Slider.d.ts +65 -0
- package/dist/components/Slider.d.ts.map +1 -0
- package/dist/components/Slider.js +30 -0
- package/dist/components/Slider.js.map +1 -0
- package/dist/components/Spinner.d.ts +23 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +13 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/SplitButton.d.ts +59 -0
- package/dist/components/SplitButton.d.ts.map +1 -0
- package/dist/components/SplitButton.js +30 -0
- package/dist/components/SplitButton.js.map +1 -0
- package/dist/components/Stat.d.ts +53 -0
- package/dist/components/Stat.d.ts.map +1 -0
- package/dist/components/Stat.js +23 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +19 -0
- package/dist/components/StatusBadge.d.ts.map +1 -0
- package/dist/components/StatusBadge.js +8 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/StatusIndicator.d.ts +29 -0
- package/dist/components/StatusIndicator.d.ts.map +1 -0
- package/dist/components/StatusIndicator.js +8 -0
- package/dist/components/StatusIndicator.js.map +1 -0
- package/dist/components/Surface.d.ts +29 -0
- package/dist/components/Surface.d.ts.map +1 -0
- package/dist/components/Surface.js +8 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Switch.d.ts +22 -0
- package/dist/components/Switch.d.ts.map +1 -0
- package/dist/components/Switch.js +11 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Tabs.d.ts +45 -0
- package/dist/components/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs.js +49 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Text.d.ts +33 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +21 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Textarea.d.ts +54 -0
- package/dist/components/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea.js +31 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/Timeline.d.ts +35 -0
- package/dist/components/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline.js +13 -0
- package/dist/components/Timeline.js.map +1 -0
- package/dist/components/Toast.d.ts +67 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +94 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/Tooltip.d.ts +26 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +15 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/Tree.d.ts +28 -0
- package/dist/components/Tree.d.ts.map +1 -0
- package/dist/components/Tree.js +129 -0
- package/dist/components/Tree.js.map +1 -0
- package/dist/components/VisuallyHidden.d.ts +17 -0
- package/dist/components/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/VisuallyHidden.js +12 -0
- package/dist/components/VisuallyHidden.js.map +1 -0
- package/dist/components/Workbench.d.ts +31 -0
- package/dist/components/Workbench.d.ts.map +1 -0
- package/dist/components/Workbench.js +71 -0
- package/dist/components/Workbench.js.map +1 -0
- package/dist/components/fieldParts.d.ts +17 -0
- package/dist/components/fieldParts.d.ts.map +1 -0
- package/dist/components/fieldParts.js +22 -0
- package/dist/components/fieldParts.js.map +1 -0
- package/dist/components/meter-utils.d.ts +15 -0
- package/dist/components/meter-utils.d.ts.map +1 -0
- package/dist/components/meter-utils.js +15 -0
- package/dist/components/meter-utils.js.map +1 -0
- package/dist/components/navigation.d.ts +38 -0
- package/dist/components/navigation.d.ts.map +1 -0
- package/dist/components/navigation.js +96 -0
- package/dist/components/navigation.js.map +1 -0
- package/dist/components/pagination-utils.d.ts +10 -0
- package/dist/components/pagination-utils.d.ts.map +1 -0
- package/dist/components/pagination-utils.js +36 -0
- package/dist/components/pagination-utils.js.map +1 -0
- package/dist/components.css +678 -0
- package/dist/data.css +600 -0
- package/dist/disclosure.css +93 -0
- package/dist/drawer.css +226 -0
- package/dist/feedback.css +454 -0
- package/dist/forms.css +533 -0
- package/dist/index.d.ts +129 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/motion/lifecycle.d.ts +44 -0
- package/dist/motion/lifecycle.d.ts.map +1 -0
- package/dist/motion/lifecycle.js +73 -0
- package/dist/motion/lifecycle.js.map +1 -0
- package/dist/motion/presence.d.ts +69 -0
- package/dist/motion/presence.d.ts.map +1 -0
- package/dist/motion/presence.js +103 -0
- package/dist/motion/presence.js.map +1 -0
- package/dist/motion/presets.d.ts +63 -0
- package/dist/motion/presets.d.ts.map +1 -0
- package/dist/motion/presets.js +30 -0
- package/dist/motion/presets.js.map +1 -0
- package/dist/motion/resolve.d.ts +31 -0
- package/dist/motion/resolve.d.ts.map +1 -0
- package/dist/motion/resolve.js +40 -0
- package/dist/motion/resolve.js.map +1 -0
- package/dist/motion/useRhineMotion.d.ts +19 -0
- package/dist/motion/useRhineMotion.d.ts.map +1 -0
- package/dist/motion/useRhineMotion.js +19 -0
- package/dist/motion/useRhineMotion.js.map +1 -0
- package/dist/motion/visibility.d.ts +6 -0
- package/dist/motion/visibility.d.ts.map +1 -0
- package/dist/motion/visibility.js +31 -0
- package/dist/motion/visibility.js.map +1 -0
- package/dist/overlays.css +465 -0
- package/dist/provider/RhineProvider.d.ts +65 -0
- package/dist/provider/RhineProvider.d.ts.map +1 -0
- package/dist/provider/RhineProvider.js +26 -0
- package/dist/provider/RhineProvider.js.map +1 -0
- package/dist/provider/messages.d.ts +209 -0
- package/dist/provider/messages.d.ts.map +1 -0
- package/dist/provider/messages.js +168 -0
- package/dist/provider/messages.js.map +1 -0
- package/dist/provider/portal.d.ts +17 -0
- package/dist/provider/portal.d.ts.map +1 -0
- package/dist/provider/portal.js +20 -0
- package/dist/provider/portal.js.map +1 -0
- package/dist/reset.css +45 -0
- package/dist/split.css +159 -0
- package/dist/status.css +353 -0
- package/dist/utils/cx.d.ts +2 -0
- package/dist/utils/cx.d.ts.map +1 -0
- package/dist/utils/cx.js +4 -0
- package/dist/utils/cx.js.map +1 -0
- package/package.json +67 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileDropZone.js","sourceRoot":"","sources":["../../src/components/FileDropZone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Form as BaseForm } from '@base-ui/react/form';
|
|
3
|
+
type BaseFormProps = React.ComponentProps<typeof BaseForm>;
|
|
4
|
+
export type FormProps = Omit<BaseFormProps, 'className' | 'style' | 'render'> & {
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* `<form>` on Base UI Form. On submit it validates every Field / CheckboxGroup / RadioGroup
|
|
11
|
+
* inside, shows their errors, moves focus to the first invalid control and only then calls
|
|
12
|
+
* `onSubmit`. `errors` maps field `name`s to server-side messages after a failed submission.
|
|
13
|
+
* A plain `<form>` still works, but then errors only appear per field on change / blur.
|
|
14
|
+
*
|
|
15
|
+
* <Form onSubmit={save} errors={serverErrors}>
|
|
16
|
+
* <Field name="title" label="标题" error="请填写标题。" errorMatch="valueMissing"><Input required /></Field>
|
|
17
|
+
* <Button type="submit">保存</Button>
|
|
18
|
+
* </Form>
|
|
19
|
+
*/
|
|
20
|
+
export declare const Form: React.ForwardRefExoticComponent<Omit<FormProps, "ref"> & React.RefAttributes<HTMLFormElement>>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGvD,KAAK,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,gGAEf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Form as BaseForm } from '@base-ui/react/form';
|
|
5
|
+
import { cx } from '../utils/cx.js';
|
|
6
|
+
/**
|
|
7
|
+
* `<form>` on Base UI Form. On submit it validates every Field / CheckboxGroup / RadioGroup
|
|
8
|
+
* inside, shows their errors, moves focus to the first invalid control and only then calls
|
|
9
|
+
* `onSubmit`. `errors` maps field `name`s to server-side messages after a failed submission.
|
|
10
|
+
* A plain `<form>` still works, but then errors only appear per field on change / blur.
|
|
11
|
+
*
|
|
12
|
+
* <Form onSubmit={save} errors={serverErrors}>
|
|
13
|
+
* <Field name="title" label="标题" error="请填写标题。" errorMatch="valueMissing"><Input required /></Field>
|
|
14
|
+
* <Button type="submit">保存</Button>
|
|
15
|
+
* </Form>
|
|
16
|
+
*/
|
|
17
|
+
export const Form = React.forwardRef(function Form({ className, style, disabled = false, children, ...rest }, ref) {
|
|
18
|
+
return _jsx(BaseForm, { ...rest, ref: ref, className: cx('rl-form', className), style: style, "data-slot": "form", "data-disabled": disabled || undefined, children: disabled ? _jsx("fieldset", { disabled: true, className: "rl-form__disabled", children: children }) : children });
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=Form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAUpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAA6B,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC3I,OAAO,KAAC,QAAQ,OAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,eAAY,MAAM,mBAAgB,QAAQ,IAAI,SAAS,YAAG,QAAQ,CAAC,CAAC,CAAC,mBAAU,QAAQ,QAAC,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAY,CAAC,CAAC,CAAC,QAAQ,GAAY,CAAC;AAC3P,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Public, dependency-free line icon entry used by consumers that need a stable icon grid.
|
|
4
|
+
* Family grammar (docs/design/ICONS.md): 24×24 master, 1.75 stroke, round cap/join, currentColor.
|
|
5
|
+
* Direction (2026-10-14, icon-review/2026-10-14-batch-02): basic icons are supplied by the
|
|
6
|
+
* consumer's Lucide layer; this registry keeps the pre-existing built-ins plus custom
|
|
7
|
+
* WzRhineLab identity glyphs that Lucide does not cover (Agent / Caliper / Sample / Index).
|
|
8
|
+
*/
|
|
9
|
+
export declare const iconNames: readonly ["Settings", "Settings2", "SlidersHorizontal", "Minus", "Maximize", "Maximize2", "Minimize2", "PanelTopClose", "PanelTopOpen", "Power", "Square", "FolderOpen", "FolderPlus", "FolderMinus", "FileCode2", "FoldVertical", "Plug", "Puzzle", "Boxes", "ShieldAlert", "ShieldHalf", "ChevronUp", "Eye", "ImagePlus", "MessagesSquare", "PinOff", "RotateCcw", "SquareChartGantt", "Users", "ChevronDown", "ChevronLeft", "ChevronRight", "Plus", "X", "Check", "Agent", "Caliper", "Sample", "Index"];
|
|
10
|
+
export type IconName = (typeof iconNames)[number];
|
|
11
|
+
export type IconProps = Omit<React.SVGAttributes<SVGSVGElement>, 'name'> & {
|
|
12
|
+
/** Built-in icon name. Any other string is accepted together with `children` (custom SVG content). */
|
|
13
|
+
name: IconName | (string & {});
|
|
14
|
+
size?: number | string;
|
|
15
|
+
/** Custom SVG inner nodes; win over the built-in path for `name`. */
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
};
|
|
18
|
+
export declare const Icon: React.ForwardRefExoticComponent<Omit<React.SVGAttributes<SVGSVGElement>, "name"> & {
|
|
19
|
+
/** Built-in icon name. Any other string is accepted together with `children` (custom SVG content). */
|
|
20
|
+
name: IconName | (string & {});
|
|
21
|
+
size?: number | string;
|
|
22
|
+
/** Custom SVG inner nodes; win over the built-in path for `name`. */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
} & React.RefAttributes<SVGSVGElement>>;
|
|
25
|
+
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,8eAOZ,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAkBlD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,GAAG;IACzE,sGAAsG;IACtG,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,IAAI;IAPf,sGAAsG;UAChG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;WACvB,MAAM,GAAG,MAAM;IACtB,qEAAqE;eAC1D,KAAK,CAAC,SAAS;uCAK1B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cx } from '../utils/cx.js';
|
|
5
|
+
/**
|
|
6
|
+
* Public, dependency-free line icon entry used by consumers that need a stable icon grid.
|
|
7
|
+
* Family grammar (docs/design/ICONS.md): 24×24 master, 1.75 stroke, round cap/join, currentColor.
|
|
8
|
+
* Direction (2026-10-14, icon-review/2026-10-14-batch-02): basic icons are supplied by the
|
|
9
|
+
* consumer's Lucide layer; this registry keeps the pre-existing built-ins plus custom
|
|
10
|
+
* WzRhineLab identity glyphs that Lucide does not cover (Agent / Caliper / Sample / Index).
|
|
11
|
+
*/
|
|
12
|
+
export const iconNames = [
|
|
13
|
+
'Settings', 'Settings2', 'SlidersHorizontal', 'Minus', 'Maximize', 'Maximize2', 'Minimize2', 'PanelTopClose', 'PanelTopOpen', 'Power', 'Square',
|
|
14
|
+
'FolderOpen', 'FolderPlus', 'FolderMinus', 'FileCode2', 'FoldVertical', 'Plug', 'Puzzle', 'Boxes',
|
|
15
|
+
'ShieldAlert', 'ShieldHalf', 'ChevronUp', 'Eye', 'ImagePlus', 'MessagesSquare', 'PinOff', 'RotateCcw',
|
|
16
|
+
'SquareChartGantt', 'Users', 'ChevronDown', 'ChevronLeft', 'ChevronRight', 'Plus', 'X', 'Check',
|
|
17
|
+
// Custom / WzRhineLab identity
|
|
18
|
+
'Agent', 'Caliper', 'Sample', 'Index',
|
|
19
|
+
];
|
|
20
|
+
const PATHS = {
|
|
21
|
+
Settings: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-1.8 1.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.1h-2.6V20a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1-1.8-1.8.1-.1A1.7 1.7 0 0 0 8 15a1.7 1.7 0 0 0-1.6-1H6v-2.6h.4A1.7 1.7 0 0 0 8 10a1.7 1.7 0 0 0-.3-1.9l-.1-.1 1.8-1.8.1.1a1.7 1.7 0 0 0 1.9.3 1.7 1.7 0 0 0 1-1.6v-.1H15V5a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1 1.8 1.8-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.1v2.6H21a1.7 1.7 0 0 0-1.6 1Z" })] }),
|
|
22
|
+
Settings2: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 6h10M18 6h2M4 12h3M11 12h9M4 18h10M18 18h2" }), _jsx("circle", { cx: "16", cy: "6", r: "2" }), _jsx("circle", { cx: "9", cy: "12", r: "2" }), _jsx("circle", { cx: "16", cy: "18", r: "2" })] }),
|
|
23
|
+
SlidersHorizontal: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 6h16M4 12h16M4 18h16" }), _jsx("circle", { cx: "9", cy: "6", r: "2" }), _jsx("circle", { cx: "15", cy: "12", r: "2" }), _jsx("circle", { cx: "11", cy: "18", r: "2" })] }),
|
|
24
|
+
Minus: _jsx("path", { d: "M5 12h14" }), Maximize: _jsx("rect", { x: "5", y: "5", width: "14", height: "14", rx: "1" }), Maximize2: _jsx("path", { d: "M8 3H3v5M3 3l5 5M16 3h5v5M21 3l-5 5M8 21H3v-5M3 21l5-5M16 21h5v-5M21 21l-5-5" }), Minimize2: _jsx("path", { d: "M8 16 16 8M8 8l8 8" }), PanelTopClose: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 5h16v14H4zM4 9h16" }), _jsx("path", { d: "m9 13 3 3 3-3" })] }), PanelTopOpen: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 5h16v14H4zM4 9h16" }), _jsx("path", { d: "m9 17 3-3 3 3" })] }), Power: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3v9" }), _jsx("path", { d: "M7.1 5.6a7 7 0 1 0 9.8 0" })] }), Square: _jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "1" }),
|
|
25
|
+
FolderOpen: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "m3 8 2 8h14l2-8" })] }), FolderPlus: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "M12 10v6M9 13h6" })] }), FolderMinus: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "M9 13h6" })] }), FileCode2: _jsxs(_Fragment, { children: [_jsx("path", { d: "M6 3h8l4 4v14H6zM14 3v5h5" }), _jsx("path", { d: "m11 13-2 2 2 2M15 13l2 2-2 2" })] }), FoldVertical: _jsx(_Fragment, { children: _jsx("path", { d: "M7 3v18M17 3v18M3 8l4 4 4-4M13 16l4-4 4 4" }) }),
|
|
26
|
+
Plug: _jsx(_Fragment, { children: _jsx("path", { d: "M9 7V3M15 7V3M6 7h12v3a6 6 0 0 1-12 0zM12 16v5" }) }), Puzzle: _jsx("path", { d: "M9 3h3a2 2 0 1 1 4 0v3h3v3a2 2 0 1 1 0 4v3h-3a2 2 0 1 1-4 0h-3v-3a2 2 0 1 1 0-4V6h3z" }), Boxes: _jsx(_Fragment, { children: _jsx("path", { d: "m4 7 4-2 4 2-4 2-4-2ZM12 7l4-2 4 2-4 2-4-2ZM4 7v6l4 2 4-2V7M12 7v6l4 2 4-2V7" }) }),
|
|
27
|
+
ShieldAlert: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3 20 6v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z" }), _jsx("path", { d: "M12 8v4M12 15v.01" })] }), ShieldHalf: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3 20 6v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z" }), _jsx("path", { d: "M12 3v18" })] }),
|
|
28
|
+
ChevronUp: _jsx("path", { d: "m5 14 7-7 7 7" }), ChevronDown: _jsx("path", { d: "m5 10 7 7 7-7" }), ChevronLeft: _jsx("path", { d: "m14 5-7 7 7 7" }), ChevronRight: _jsx("path", { d: "m10 5 7 7-7 7" }), Eye: _jsxs(_Fragment, { children: [_jsx("path", { d: "M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.5" })] }), ImagePlus: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }), _jsx("circle", { cx: "8", cy: "9", r: "1" }), _jsx("path", { d: "m4 17 5-5 3 3 2-2 5 5M17 3v6M14 6h6" })] }), MessagesSquare: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 5h14v10H8l-5 4z" }), _jsx("path", { d: "M8 19h9l4-3V7h-2" })] }), PinOff: _jsx(_Fragment, { children: _jsx("path", { d: "m3 3 18 18M15 4l5 5-3 1-4 4v4l-2-2H7l3-3V9L7 7l1-3z" }) }), RotateCcw: _jsx("path", { d: "M4 12a8 8 0 1 0 3-6.2M4 4v5h5" }), SquareChartGantt: _jsxs(_Fragment, { children: [_jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "1" }), _jsx("path", { d: "M8 8h8M8 12h5M8 16h8" })] }), Users: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "9", cy: "8", r: "3" }), _jsx("path", { d: "M3 20c0-3 2.5-5 6-5s6 2 6 5M16 11a3 3 0 1 0 0-6M17 15c2.5.2 4 1.8 4 4" })] }), Plus: _jsx("path", { d: "M12 5v14M5 12h14" }), X: _jsx("path", { d: "M5 5l14 14M19 5 5 19" }), Check: _jsx("path", { d: "m5 12 4 4L19 6" }),
|
|
29
|
+
// Custom / WzRhineLab identity
|
|
30
|
+
Agent: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3l8 5v8l-8 5-8-5V8Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.5" })] }),
|
|
31
|
+
Caliper: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 7h15M18 8.5h3M3 7v10M3 7V4h2M6 7v1.75M9 7v1.75M11 9v8" }), _jsx("rect", { x: "11", y: "4.5", width: "5", height: "4.5", rx: "1" }), _jsx("path", { d: "M13.5 4.5V3" })] }),
|
|
32
|
+
Sample: _jsxs(_Fragment, { children: [_jsx("rect", { x: "9", y: "3", width: "6", height: "3", rx: "1" }), _jsx("rect", { x: "6", y: "6", width: "12", height: "15", rx: "2" }), _jsx("path", { d: "M8 11h8" }), _jsx("circle", { cx: "12", cy: "15.5", r: "2.5" })] }),
|
|
33
|
+
Index: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "6", width: "18", height: "14", rx: "2" }), _jsx("path", { d: "M5 6V4h5v2M7 11h10M7 15h6" })] }),
|
|
34
|
+
};
|
|
35
|
+
export const Icon = React.forwardRef(function Icon({ name, size = 24, className, strokeWidth = 1.75, children, ...rest }, ref) {
|
|
36
|
+
return _jsx("svg", { ...rest, ref: ref, className: cx('rl-icon', className), width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", "data-icon": name, role: rest['aria-label'] ? 'img' : undefined, "aria-hidden": rest['aria-label'] ? undefined : true, focusable: "false", children: children ?? PATHS[name] ?? null });
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { ButtonSize } from './Button.js';
|
|
3
|
+
type MotionConflictingProps = 'onDrag' | 'onDragStart' | 'onDragEnd' | 'onAnimationStart' | 'onAnimationEnd' | 'onAnimationIteration';
|
|
4
|
+
export type IconButtonVariant = 'secondary' | 'ghost' | 'primary';
|
|
5
|
+
type NativeProps = Omit<React.ComponentPropsWithoutRef<'button'>, 'disabled' | 'children' | 'aria-label' | 'aria-labelledby' | MotionConflictingProps>;
|
|
6
|
+
/** An accessible name is mandatory: either `label` (preferred) or `aria-labelledby`. */
|
|
7
|
+
type Naming = {
|
|
8
|
+
label: string;
|
|
9
|
+
'aria-labelledby'?: never;
|
|
10
|
+
} | {
|
|
11
|
+
label?: never;
|
|
12
|
+
'aria-labelledby': string;
|
|
13
|
+
};
|
|
14
|
+
export type IconButtonProps = NativeProps & Naming & {
|
|
15
|
+
/** The icon. Rendered aria-hidden; the button's name comes from `label`. */
|
|
16
|
+
icon: React.ReactNode;
|
|
17
|
+
variant?: IconButtonVariant;
|
|
18
|
+
size?: ButtonSize;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
/** Toggle state for on/off tools (e.g. pin, grid view). Renders `aria-pressed`. */
|
|
21
|
+
pressed?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,sBAAsB,GACvB,QAAQ,GACR,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,KAAK,WAAW,GAAG,IAAI,CACrB,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EACxC,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,sBAAsB,CACpF,CAAC;AAEF,wFAAwF;AACxF,KAAK,MAAM,GACP;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,MAAM,GAAG;IACP,4EAA4E;IAC5E,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,eAAO,MAAM,UAAU,2FA2BrB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { motion } from 'motion/react';
|
|
5
|
+
import { pressScale } from '../motion/presets.js';
|
|
6
|
+
import { useRhineMotion } from '../motion/useRhineMotion.js';
|
|
7
|
+
import { cx } from '../utils/cx.js';
|
|
8
|
+
export const IconButton = React.forwardRef(function IconButton({ icon, label, variant = 'ghost', size = 'md', disabled = false, pressed, type = 'button', className, title, ...rest }, ref) {
|
|
9
|
+
const motionPrefs = useRhineMotion();
|
|
10
|
+
return (_jsx(motion.button, { ...rest, ref: ref, type: type, disabled: disabled, "aria-label": label, "aria-pressed": pressed,
|
|
11
|
+
// Mirror the name as a tooltip for sighted mouse users unless the caller overrides it.
|
|
12
|
+
title: title ?? label, "data-slot": "icon-button", "data-variant": variant, "data-size": size, className: cx('rl-icon-button', className), whileTap: !disabled && !motionPrefs.reduced ? { scale: pressScale } : undefined, transition: motionPrefs.get('press'), children: _jsx("span", { className: "rl-icon-button__icon", "aria-hidden": "true", children: icon }) }));
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=IconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAkCpC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAqC,SAAS,UAAU,CAChG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EACtH,GAAG;IAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CACL,KAAC,MAAM,CAAC,MAAM,OACR,IAAI,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,gBACN,KAAK,kBACH,OAAO;QACrB,uFAAuF;QACvF,KAAK,EAAE,KAAK,IAAI,KAAK,eACX,aAAa,kBACT,OAAO,eACV,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAC/E,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,YAEpC,eAAM,SAAS,EAAC,sBAAsB,iBAAa,MAAM,YACtD,IAAI,GACA,GACO,CACjB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Input as BaseInput } from '@base-ui/react/input';
|
|
3
|
+
export type InputSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
type BaseInputProps = React.ComponentProps<typeof BaseInput>;
|
|
5
|
+
export type InputProps = Omit<BaseInputProps, 'className' | 'style' | 'render' | 'size' | 'prefix'> & {
|
|
6
|
+
size?: InputSize;
|
|
7
|
+
/** Decorative leading adornment (icon). Hidden from assistive tech. */
|
|
8
|
+
prefix?: React.ReactNode;
|
|
9
|
+
/** Trailing adornment: unit text such as "mm" is read by screen readers via aria-describedby. */
|
|
10
|
+
suffix?: React.ReactNode;
|
|
11
|
+
/** Monospace value for IDs, codes and measurements. */
|
|
12
|
+
mono?: boolean;
|
|
13
|
+
/** Mark invalid outside a Field (inside a Field, validity comes from Field). */
|
|
14
|
+
invalid?: boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: React.CSSProperties;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Text input on Base UI Input: inside `<Field>` it picks up label, description, error and
|
|
20
|
+
* validity automatically; standalone it still needs an accessible name (`aria-label`).
|
|
21
|
+
*/
|
|
22
|
+
export declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAG7D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;IACpG,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,iGAAiG;IACjG,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,kGAsChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Input as BaseInput } from '@base-ui/react/input';
|
|
5
|
+
import { cx } from '../utils/cx.js';
|
|
6
|
+
/**
|
|
7
|
+
* Text input on Base UI Input: inside `<Field>` it picks up label, description, error and
|
|
8
|
+
* validity automatically; standalone it still needs an accessible name (`aria-label`).
|
|
9
|
+
*/
|
|
10
|
+
export const Input = React.forwardRef(function Input({ size = 'md', prefix, suffix, mono = false, invalid, className, style, disabled, readOnly, ...rest }, ref) {
|
|
11
|
+
const suffixId = React.useId();
|
|
12
|
+
const describedBy = [rest['aria-describedby'], suffix != null ? suffixId : undefined].filter(Boolean).join(' ') || undefined;
|
|
13
|
+
return (_jsxs("span", { className: cx('rl-input', className), style: style, "data-slot": "input", "data-size": size, "data-mono": mono || undefined, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": invalid || undefined, children: [prefix != null && (_jsx("span", { className: "rl-input__adornment", "data-position": "start", "aria-hidden": "true", children: prefix })), _jsx(BaseInput, { ...rest, ref: ref, disabled: disabled, readOnly: readOnly, ...(invalid ? { 'aria-invalid': true } : null), "aria-describedby": describedBy, className: "rl-input__control" }), suffix != null && (_jsx("span", { id: suffixId, className: "rl-input__adornment", "data-position": "end", children: suffix }))] }));
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAqBpC;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA+B,SAAS,KAAK,CAChF,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EACrG,GAAG;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IAC7H,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EACpC,KAAK,EAAE,KAAK,eACF,OAAO,eACN,IAAI,eACJ,IAAI,IAAI,SAAS,mBACb,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,kBACtB,OAAO,IAAI,SAAS,aAEjC,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,SAAS,EAAC,qBAAqB,mBAAe,OAAO,iBAAa,MAAM,YAC3E,MAAM,GACF,CACR,EACD,KAAC,SAAS,OACJ,IAAI,EACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KACd,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAC7B,WAAW,EAC7B,SAAS,EAAC,mBAAmB,GAC7B,EACD,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAC,qBAAqB,mBAAe,KAAK,YACpE,MAAM,GACF,CACR,IACI,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Action menu on Base UI Menu (ADR-0001): menu / menuitem semantics, arrow-key roving focus,
|
|
4
|
+
* typeahead, Home/End, Escape and outside-click dismissal, focus return to the trigger.
|
|
5
|
+
* Use for commands on an object ("导出 / 复制编号 / 归档"); use Select to choose a value
|
|
6
|
+
* and Tabs to switch views. Popup motion is a CSS transition (--rl-motion-fast).
|
|
7
|
+
*/
|
|
8
|
+
export type MenuSide = 'top' | 'bottom' | 'left' | 'right';
|
|
9
|
+
export type MenuAlign = 'start' | 'center' | 'end';
|
|
10
|
+
export type MenuProps = {
|
|
11
|
+
/** Element that opens the menu (Button / IconButton with its own accessible name). */
|
|
12
|
+
trigger: React.ReactElement<Record<string, unknown>>;
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
side?: MenuSide;
|
|
15
|
+
align?: MenuAlign;
|
|
16
|
+
open?: boolean;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
onOpenChange?: (open: boolean) => void;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
className?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function Menu({ trigger, children, side, align, open, defaultOpen, onOpenChange, disabled, className }: MenuProps): React.JSX.Element;
|
|
23
|
+
export type MenuItemProps = {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
onSelect?: () => void;
|
|
26
|
+
/** Decorative leading icon. */
|
|
27
|
+
icon?: React.ReactNode;
|
|
28
|
+
/** Keyboard hint shown on the right, e.g. "Ctrl E". Visual only; wire the shortcut yourself. */
|
|
29
|
+
shortcut?: string;
|
|
30
|
+
/** `danger` for destructive commands; pair with a confirmation Dialog. */
|
|
31
|
+
tone?: 'default' | 'danger';
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
/** Keep the menu open after selection (default closes). */
|
|
34
|
+
keepOpen?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export declare function MenuItem({ children, onSelect, icon, shortcut, tone, disabled, keepOpen }: MenuItemProps): React.JSX.Element;
|
|
37
|
+
export type MenuCheckboxItemProps = {
|
|
38
|
+
children: React.ReactNode;
|
|
39
|
+
checked?: boolean;
|
|
40
|
+
defaultChecked?: boolean;
|
|
41
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
};
|
|
44
|
+
export declare function MenuCheckboxItem({ children, checked, defaultChecked, onCheckedChange, disabled }: MenuCheckboxItemProps): React.JSX.Element;
|
|
45
|
+
export type MenuRadioGroupProps = {
|
|
46
|
+
/** Visible group heading; also names the group for assistive tech. */
|
|
47
|
+
label?: React.ReactNode;
|
|
48
|
+
value?: string;
|
|
49
|
+
defaultValue?: string;
|
|
50
|
+
onValueChange?: (value: string) => void;
|
|
51
|
+
children: React.ReactNode;
|
|
52
|
+
};
|
|
53
|
+
export declare function MenuRadioGroup({ label, value, defaultValue, onValueChange, children }: MenuRadioGroupProps): React.JSX.Element;
|
|
54
|
+
export type MenuRadioItemProps = {
|
|
55
|
+
value: string;
|
|
56
|
+
children: React.ReactNode;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
};
|
|
59
|
+
export declare function MenuRadioItem({ value, children, disabled }: MenuRadioItemProps): React.JSX.Element;
|
|
60
|
+
export type MenuGroupProps = {
|
|
61
|
+
label?: React.ReactNode;
|
|
62
|
+
children: React.ReactNode;
|
|
63
|
+
};
|
|
64
|
+
export declare function MenuGroup({ label, children }: MenuGroupProps): React.JSX.Element;
|
|
65
|
+
export declare function MenuSeparator(): React.JSX.Element;
|
|
66
|
+
//# sourceMappingURL=Menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Menu as BaseMenu } from '@base-ui/react/menu';
|
|
4
|
+
import { usePortalContainer } from '../provider/portal.js';
|
|
5
|
+
import { cx } from '../utils/cx.js';
|
|
6
|
+
function Check() {
|
|
7
|
+
return (_jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.75", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "m3 8.5 3.5 3.5L13 4.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
8
|
+
}
|
|
9
|
+
function Dot() {
|
|
10
|
+
return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("circle", { cx: "8", cy: "8", r: "3", fill: "currentColor" }) }));
|
|
11
|
+
}
|
|
12
|
+
export function Menu({ trigger, children, side = 'bottom', align = 'start', open, defaultOpen, onOpenChange, disabled, className }) {
|
|
13
|
+
const container = usePortalContainer();
|
|
14
|
+
return (_jsxs(BaseMenu.Root, { open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange ? (next) => onOpenChange(next) : undefined, disabled: disabled, children: [_jsx(BaseMenu.Trigger, { render: trigger }), _jsx(BaseMenu.Portal, { container: container, children: _jsx(BaseMenu.Positioner, { className: "rl-menu__positioner", side: side, align: align, sideOffset: 4, collisionPadding: 8, positionMethod: "fixed", children: _jsx(BaseMenu.Popup, { className: cx('rl-menu', className), "data-slot": "menu", children: children }) }) })] }));
|
|
15
|
+
}
|
|
16
|
+
export function MenuItem({ children, onSelect, icon, shortcut, tone = 'default', disabled, keepOpen = false }) {
|
|
17
|
+
return (_jsxs(BaseMenu.Item, { className: "rl-menu__item", "data-tone": tone, disabled: disabled, closeOnClick: !keepOpen, onClick: onSelect ? () => onSelect() : undefined, children: [_jsx("span", { className: "rl-menu__icon", "aria-hidden": "true", children: icon }), _jsx("span", { className: "rl-menu__label", children: children }), shortcut != null && (_jsx("kbd", { className: "rl-menu__shortcut", "aria-hidden": "true", children: shortcut }))] }));
|
|
18
|
+
}
|
|
19
|
+
export function MenuCheckboxItem({ children, checked, defaultChecked, onCheckedChange, disabled }) {
|
|
20
|
+
return (_jsxs(BaseMenu.CheckboxItem, { className: "rl-menu__item", checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange ? (next) => onCheckedChange(next) : undefined, disabled: disabled, children: [_jsx(BaseMenu.CheckboxItemIndicator, { className: "rl-menu__icon", keepMounted: true, children: _jsx("span", { className: "rl-menu__indicator", children: _jsx(Check, {}) }) }), _jsx("span", { className: "rl-menu__label", children: children })] }));
|
|
21
|
+
}
|
|
22
|
+
export function MenuRadioGroup({ label, value, defaultValue, onValueChange, children }) {
|
|
23
|
+
return (_jsxs(BaseMenu.Group, { className: "rl-menu__group", children: [label != null && _jsx(BaseMenu.GroupLabel, { className: "rl-menu__group-label", children: label }), _jsx(BaseMenu.RadioGroup, { value: value, defaultValue: defaultValue, onValueChange: onValueChange ? (next) => onValueChange(String(next)) : undefined, children: children })] }));
|
|
24
|
+
}
|
|
25
|
+
export function MenuRadioItem({ value, children, disabled }) {
|
|
26
|
+
return (_jsxs(BaseMenu.RadioItem, { className: "rl-menu__item", value: value, disabled: disabled, children: [_jsx(BaseMenu.RadioItemIndicator, { className: "rl-menu__icon", keepMounted: true, children: _jsx("span", { className: "rl-menu__indicator", children: _jsx(Dot, {}) }) }), _jsx("span", { className: "rl-menu__label", children: children })] }));
|
|
27
|
+
}
|
|
28
|
+
export function MenuGroup({ label, children }) {
|
|
29
|
+
return (_jsxs(BaseMenu.Group, { className: "rl-menu__group", children: [label != null && _jsx(BaseMenu.GroupLabel, { className: "rl-menu__group-label", children: label }), children] }));
|
|
30
|
+
}
|
|
31
|
+
export function MenuSeparator() {
|
|
32
|
+
return _jsx(BaseMenu.Separator, { className: "rl-menu__separator" });
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Archive metadata as a semantic description list (<dl>). Values come from the caller's
|
|
4
|
+
* real record; missing values are hidden by default so the component never displays
|
|
5
|
+
* invented placeholders as if they were data.
|
|
6
|
+
*/
|
|
7
|
+
export type MetadataValue = React.ReactNode;
|
|
8
|
+
export interface MetadataItem {
|
|
9
|
+
/** Stable key; defaults to the label when it is a string. */
|
|
10
|
+
key?: string;
|
|
11
|
+
label: React.ReactNode;
|
|
12
|
+
value: MetadataValue;
|
|
13
|
+
/** Monospace value for IDs, codes, measurements and timestamps. */
|
|
14
|
+
mono?: boolean;
|
|
15
|
+
/** Machine-readable date/time; wraps the value in <time dateTime>. */
|
|
16
|
+
dateTime?: string;
|
|
17
|
+
/** Short note under the value, e.g. a unit basis or provenance. */
|
|
18
|
+
hint?: React.ReactNode;
|
|
19
|
+
/** Let a long value span the full row in multi-column layouts. */
|
|
20
|
+
wide?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export type MetadataListLayout = 'inline' | 'stacked';
|
|
23
|
+
export type MetadataEmpty = 'hide' | 'placeholder';
|
|
24
|
+
export type MetadataListProps = Omit<React.HTMLAttributes<HTMLDListElement>, 'children'> & {
|
|
25
|
+
items: readonly MetadataItem[];
|
|
26
|
+
/** `inline`: label column + value; `stacked`: label above value (narrow panels). */
|
|
27
|
+
layout?: MetadataListLayout;
|
|
28
|
+
/** Number of item columns on wide containers; collapses to one on narrow ones. */
|
|
29
|
+
columns?: 1 | 2 | 3;
|
|
30
|
+
/**
|
|
31
|
+
* How to treat items whose value is null / undefined / ''. `hide` (default) omits the row;
|
|
32
|
+
* `placeholder` keeps the row with a dash announced as「未记录」.
|
|
33
|
+
*/
|
|
34
|
+
empty?: MetadataEmpty;
|
|
35
|
+
size?: 'sm' | 'md';
|
|
36
|
+
};
|
|
37
|
+
export declare function isEmptyValue(value: MetadataValue): boolean;
|
|
38
|
+
export declare const MetadataList: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDListElement>, "children"> & {
|
|
39
|
+
items: readonly MetadataItem[];
|
|
40
|
+
/** `inline`: label column + value; `stacked`: label above value (narrow panels). */
|
|
41
|
+
layout?: MetadataListLayout;
|
|
42
|
+
/** Number of item columns on wide containers; collapses to one on narrow ones. */
|
|
43
|
+
columns?: 1 | 2 | 3;
|
|
44
|
+
/**
|
|
45
|
+
* How to treat items whose value is null / undefined / ''. `hide` (default) omits the row;
|
|
46
|
+
* `placeholder` keeps the row with a dash announced as「未记录」.
|
|
47
|
+
*/
|
|
48
|
+
empty?: MetadataEmpty;
|
|
49
|
+
size?: "sm" | "md";
|
|
50
|
+
} & React.RefAttributes<HTMLDListElement>>;
|
|
51
|
+
//# sourceMappingURL=MetadataList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataList.d.ts","sourceRoot":"","sources":["../../src/components/MetadataList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG;IACzF,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,oFAAoF;IACpF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE1D;AAOD,eAAO,MAAM,YAAY;WAtBhB,SAAS,YAAY,EAAE;IAC9B,oFAAoF;aAC3E,kBAAkB;IAC3B,kFAAkF;cACxE,CAAC,GAAG,CAAC,GAAG,CAAC;IACnB;;;OAGG;YACK,aAAa;WACd,IAAI,GAAG,IAAI;0CAqDlB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useRhineMessages } from '../provider/messages.js';
|
|
5
|
+
import { cx } from '../utils/cx.js';
|
|
6
|
+
export function isEmptyValue(value) {
|
|
7
|
+
return value === null || value === undefined || value === false || (typeof value === 'string' && value.trim() === '');
|
|
8
|
+
}
|
|
9
|
+
function itemKey(item, index) {
|
|
10
|
+
if (item.key)
|
|
11
|
+
return item.key;
|
|
12
|
+
return typeof item.label === 'string' ? item.label : String(index);
|
|
13
|
+
}
|
|
14
|
+
export const MetadataList = React.forwardRef(function MetadataList({ items, layout = 'inline', columns = 1, empty = 'hide', size = 'md', className, ...rest }, ref) {
|
|
15
|
+
const messages = useRhineMessages();
|
|
16
|
+
const visible = empty === 'hide' ? items.filter((item) => !isEmptyValue(item.value)) : items;
|
|
17
|
+
if (visible.length === 0)
|
|
18
|
+
return null;
|
|
19
|
+
return (_jsx("dl", { ...rest, ref: ref, className: cx('rl-meta', className), "data-slot": "metadata-list", "data-layout": layout, "data-columns": columns, "data-size": size, children: visible.map((item, index) => {
|
|
20
|
+
const missing = isEmptyValue(item.value);
|
|
21
|
+
const content = missing ? (_jsxs("span", { className: "rl-meta__empty", children: [_jsx("span", { "aria-hidden": "true", children: "\u2014" }), _jsx("span", { className: "rl-visually-hidden", children: messages.metadataList.missing })] })) : item.dateTime ? (_jsx("time", { dateTime: item.dateTime, children: item.value })) : (item.value);
|
|
22
|
+
return (_jsxs("div", { className: "rl-meta__item", "data-wide": item.wide || undefined, children: [_jsx("dt", { className: "rl-meta__label", children: item.label }), _jsxs("dd", { className: "rl-meta__value", "data-mono": item.mono || undefined, "data-empty": missing || undefined, children: [content, item.hint != null && !missing && _jsx("span", { className: "rl-meta__hint", children: item.hint })] })] }, itemKey(item, index)));
|
|
23
|
+
}) }));
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=MetadataList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataList.js","sourceRoot":"","sources":["../../src/components/MetadataList.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AA0CpC,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,OAAO,CAAC,IAAkB,EAAE,KAAa;IAChD,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC9B,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAsC,SAAS,YAAY,CACrG,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAC1F,GAAG;IAEH,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,gBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,eACzB,eAAe,iBACZ,MAAM,kBACL,OAAO,eACV,IAAI,YAEd,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CACxB,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,8BAAkB,MAAM,uBAAS,EACjC,eAAM,SAAS,EAAC,oBAAoB,YAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,GAAQ,IACtE,CACR,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAClB,eAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,YAAG,IAAI,CAAC,KAAK,GAAQ,CACnD,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,KAAK,CACX,CAAC;YACF,OAAO,CACL,eAAgC,SAAS,EAAC,eAAe,eAAY,IAAI,CAAC,IAAI,IAAI,SAAS,aACzF,aAAI,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,KAAK,GAAM,EAChD,cAAI,SAAS,EAAC,gBAAgB,eAAY,IAAI,CAAC,IAAI,IAAI,SAAS,gBAAc,OAAO,IAAI,SAAS,aAC/F,OAAO,EACP,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,IAAI,GAAQ,IACjF,KALG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAMxB,CACP,CAAC;QACJ,CAAC,CAAC,GACC,CACN,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { InputSize } from './Input.js';
|
|
3
|
+
/**
|
|
4
|
+
* Numeric input with stepper buttons on Base UI NumberField + Field (ADR-0010 §2). Label,
|
|
5
|
+
* description and error are wired like `Field` (aria-labelledby / aria-describedby /
|
|
6
|
+
* aria-invalid). The visible text input parses and formats with the provider locale; a hidden
|
|
7
|
+
* native input carries the raw number for form submission under `name`.
|
|
8
|
+
*
|
|
9
|
+
* Keyboard (Base UI): ↑/↓ step, Shift + arrow takes `largeStep`, Alt + arrow `smallStep`,
|
|
10
|
+
* Home/End jump to min/max (when set). The stepper buttons are out of the Tab order (the
|
|
11
|
+
* arrows do the same) but stay reachable for pointer and touch; their names come from the
|
|
12
|
+
* message table (`numberField.increment` / `decrement`).
|
|
13
|
+
*
|
|
14
|
+
* <NumberField label="并发上限" min={1} max={16} defaultValue={4} name="concurrency" />
|
|
15
|
+
*/
|
|
16
|
+
export type NumberFieldProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'defaultValue' | 'onChange'> & {
|
|
17
|
+
label: React.ReactNode;
|
|
18
|
+
hideLabel?: boolean;
|
|
19
|
+
description?: React.ReactNode;
|
|
20
|
+
/** Error text: shows on native validity failure, or always together with `invalid`. */
|
|
21
|
+
error?: React.ReactNode;
|
|
22
|
+
invalid?: boolean;
|
|
23
|
+
required?: boolean;
|
|
24
|
+
optional?: boolean;
|
|
25
|
+
/** `null` means empty. */
|
|
26
|
+
value?: number | null;
|
|
27
|
+
defaultValue?: number;
|
|
28
|
+
onValueChange?: (value: number | null) => void;
|
|
29
|
+
/** Fires on blur after typing and on pointer release after stepping. */
|
|
30
|
+
onValueCommitted?: (value: number | null) => void;
|
|
31
|
+
min?: number;
|
|
32
|
+
max?: number;
|
|
33
|
+
step?: number;
|
|
34
|
+
largeStep?: number;
|
|
35
|
+
smallStep?: number;
|
|
36
|
+
/** Intl options for display and parsing (e.g. `{ style: 'percent' }`); locale comes from RhineProvider. */
|
|
37
|
+
format?: Intl.NumberFormatOptions;
|
|
38
|
+
/** Snap stepped values to multiples of `step`. */
|
|
39
|
+
snapOnStep?: boolean;
|
|
40
|
+
name?: string;
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
readOnly?: boolean;
|
|
43
|
+
size?: InputSize;
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
/** Trailing unit text (e.g. "个"), read as part of the description. */
|
|
46
|
+
unit?: React.ReactNode;
|
|
47
|
+
inherited?: string | number | boolean;
|
|
48
|
+
submitOnEnter?: boolean;
|
|
49
|
+
/** Ref to the visible text input. */
|
|
50
|
+
inputRef?: React.Ref<HTMLInputElement>;
|
|
51
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
52
|
+
};
|
|
53
|
+
export declare function NumberField({ label, hideLabel, description, error, invalid, required, optional, value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, smallStep, format, snapOnStep, name, disabled, readOnly, size, placeholder, unit, inherited, submitOnEnter, inputRef, className, style, ref, ...rest }: NumberFieldProps): React.JSX.Element;
|
|
54
|
+
//# sourceMappingURL=NumberField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../src/components/NumberField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IACpH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,uFAAuF;IACvF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,MAAM,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAClC,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC,CAAC;AAkBF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAiB,EACjB,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,QAAgB,EAChB,KAAK,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAW,EACX,WAAW,EACX,IAAI,EACJ,SAAS,EACT,aAAoB,EACpB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,qBA+ElB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Field as BaseField } from '@base-ui/react/field';
|
|
5
|
+
import { NumberField as BaseNumberField } from '@base-ui/react/number-field';
|
|
6
|
+
import { useRhineLocale } from '../provider/messages.js';
|
|
7
|
+
import { cx } from '../utils/cx.js';
|
|
8
|
+
import { FieldErrorMessage, LabelText } from './fieldParts.js';
|
|
9
|
+
function Minus() {
|
|
10
|
+
return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M3.5 8h9" }) }));
|
|
11
|
+
}
|
|
12
|
+
function Plus() {
|
|
13
|
+
return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M3.5 8h9M8 3.5v9" }) }));
|
|
14
|
+
}
|
|
15
|
+
export function NumberField({ label, hideLabel = false, description, error, invalid, required = false, optional = false, value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, smallStep, format, snapOnStep, name, disabled, readOnly, size = 'md', placeholder, unit, inherited, submitOnEnter = true, inputRef, className, style, ref, ...rest }) {
|
|
16
|
+
const { messages, locale } = useRhineLocale();
|
|
17
|
+
const unitId = React.useId();
|
|
18
|
+
const match = invalid ? true : undefined;
|
|
19
|
+
return (_jsxs(BaseField.Root, { ...rest, ref: ref, name: name, invalid: invalid, disabled: disabled, className: cx('rl-field', 'rl-number-field', className), style: style, "data-slot": "number-field", "data-required": required || undefined, children: [_jsx(BaseField.Label, { className: cx('rl-field__label', hideLabel && 'rl-visually-hidden'), children: _jsx(LabelText, { label: label, required: required, optional: optional }) }), _jsxs("div", { className: "rl-field__body", children: [_jsx(BaseNumberField.Root, { name: name, value: value, defaultValue: defaultValue, onValueChange: onValueChange ? (next) => onValueChange(next) : undefined, onValueCommitted: onValueCommitted ? (next) => onValueCommitted(next) : undefined, min: min, max: max, step: step, largeStep: largeStep, smallStep: smallStep, format: format, snapOnStep: snapOnStep, locale: locale, required: required, disabled: disabled, readOnly: readOnly, className: "rl-number-field__root", children: _jsxs(BaseNumberField.Group, { className: "rl-input rl-number-field__group", "data-size": size, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": invalid || undefined, children: [_jsx(BaseNumberField.Decrement, { className: "rl-number-field__stepper", "aria-label": messages.numberField.decrement, "data-position": "start", children: _jsx(Minus, {}) }), _jsx(BaseNumberField.Input, { ref: inputRef, className: "rl-input__control rl-number-field__input", placeholder: placeholder, "aria-roledescription": messages.numberField.roleDescription, "aria-describedby": unit != null ? unitId : undefined, "data-inherited": inherited || undefined, onKeyDown: (event) => {
|
|
20
|
+
if (submitOnEnter && event.key === 'Enter') {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
event.currentTarget.blur();
|
|
23
|
+
onValueCommitted?.(value ?? defaultValue ?? null);
|
|
24
|
+
}
|
|
25
|
+
} }), unit != null && (_jsx("span", { id: unitId, className: "rl-input__adornment rl-number-field__unit", children: unit })), _jsx(BaseNumberField.Increment, { className: "rl-number-field__stepper", "aria-label": messages.numberField.increment, "data-position": "end", children: _jsx(Plus, {}) })] }) }), description != null && _jsx(BaseField.Description, { className: "rl-field__description", children: description }), (error != null || name != null) && _jsx(FieldErrorMessage, { error: error, match: match, name: name })] })] }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=NumberField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../../src/components/NumberField.tsx"],"names":[],"mappings":"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"}
|