@rookcom/monarch-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 +8 -0
- package/README.md +4 -2
- package/dist/components/alert.d.ts +17 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +17 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/avatar.d.ts +16 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +28 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +7 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +19 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +19 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +32 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +30 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.d.ts +18 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +21 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox.d.ts +15 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +23 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/combobox.d.ts +35 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +152 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/dialog.d.ts +22 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +33 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +24 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +41 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty-state.d.ts +17 -0
- package/dist/components/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state.js +10 -0
- package/dist/components/empty-state.js.map +1 -0
- package/dist/components/field.d.ts +65 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +101 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/input.d.ts +15 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +14 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/kbd.d.ts +4 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +7 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/link.d.ts +13 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +18 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/pagination.d.ts +18 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +40 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +8 -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 +14 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +12 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/select.d.ts +27 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +39 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.d.ts +12 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +10 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/spinner.d.ts +12 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +10 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.d.ts +13 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +21 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +53 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +47 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +12 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +17 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/toast.d.ts +40 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +67 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.d.ts +20 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +12 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/visually-hidden.d.ts +4 -0
- package/dist/components/visually-hidden.d.ts.map +1 -0
- package/dist/components/visually-hidden.js +7 -0
- package/dist/components/visually-hidden.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/cx.d.ts +3 -0
- package/dist/internal/cx.d.ts.map +1 -0
- package/dist/internal/cx.js +6 -0
- package/dist/internal/cx.js.map +1 -0
- package/dist/internal/icons.d.ts +12 -0
- package/dist/internal/icons.d.ts.map +1 -0
- package/dist/internal/icons.js +41 -0
- package/dist/internal/icons.js.map +1 -0
- package/dist/manifest.json +3814 -0
- package/dist/patterns/description-list.d.ts +17 -0
- package/dist/patterns/description-list.d.ts.map +1 -0
- package/dist/patterns/description-list.js +10 -0
- package/dist/patterns/description-list.js.map +1 -0
- package/dist/patterns/filter-bar.d.ts +25 -0
- package/dist/patterns/filter-bar.d.ts.map +1 -0
- package/dist/patterns/filter-bar.js +13 -0
- package/dist/patterns/filter-bar.js.map +1 -0
- package/dist/patterns/index.d.ts +9 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +9 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/page-header.d.ts +17 -0
- package/dist/patterns/page-header.d.ts.map +1 -0
- package/dist/patterns/page-header.js +7 -0
- package/dist/patterns/page-header.js.map +1 -0
- package/dist/patterns/settings.d.ts +33 -0
- package/dist/patterns/settings.d.ts.map +1 -0
- package/dist/patterns/settings.js +15 -0
- package/dist/patterns/settings.js.map +1 -0
- package/dist/patterns/split-layout.d.ts +21 -0
- package/dist/patterns/split-layout.d.ts.map +1 -0
- package/dist/patterns/split-layout.js +10 -0
- package/dist/patterns/split-layout.js.map +1 -0
- package/dist/patterns/stat-card.d.ts +19 -0
- package/dist/patterns/stat-card.d.ts.map +1 -0
- package/dist/patterns/stat-card.js +11 -0
- package/dist/patterns/stat-card.js.map +1 -0
- package/dist/patterns/states.d.ts +23 -0
- package/dist/patterns/states.d.ts.map +1 -0
- package/dist/patterns/states.js +15 -0
- package/dist/patterns/states.js.map +1 -0
- package/dist/patterns/toolbar.d.ts +20 -0
- package/dist/patterns/toolbar.d.ts.map +1 -0
- package/dist/patterns/toolbar.js +46 -0
- package/dist/patterns/toolbar.js.map +1 -0
- package/dist/styles.css +1984 -0
- package/package.json +70 -4
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
3
|
+
export interface ProgressProps extends Omit<ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>, 'value'> {
|
|
4
|
+
/** 0–`max`. Omit for indeterminate. */
|
|
5
|
+
value?: number | null;
|
|
6
|
+
max?: number;
|
|
7
|
+
/** Accessible name, e.g. "Upload progress". Required unless aria-labelledby is set. */
|
|
8
|
+
label?: string;
|
|
9
|
+
size?: 'sm' | 'md';
|
|
10
|
+
tone?: 'accent' | 'success' | 'warning' | 'danger';
|
|
11
|
+
}
|
|
12
|
+
/** Linear progress bar; `value` undefined renders an indeterminate animation. */
|
|
13
|
+
export declare const Progress: import("react").ForwardRefExoticComponent<ProgressProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAmB,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,wBAAwB,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EACvD,OAAO,CACR;IACC,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CACpD;AAED,iFAAiF;AACjF,eAAO,MAAM,QAAQ,0GA4BpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
4
|
+
import { cx } from '../internal/cx.js';
|
|
5
|
+
/** Linear progress bar; `value` undefined renders an indeterminate animation. */
|
|
6
|
+
export const Progress = forwardRef(function Progress({ value, max = 100, label, size = 'md', tone = 'accent', className, ...rest }, ref) {
|
|
7
|
+
const pct = value === undefined || value === null
|
|
8
|
+
? undefined
|
|
9
|
+
: Math.min(100, Math.max(0, (value / max) * 100));
|
|
10
|
+
return (_jsx(ProgressPrimitive.Root, { ref: ref, value: value ?? null, max: max, "aria-label": label, ...rest, "data-size": size, "data-tone": tone, "data-indeterminate": pct === undefined || undefined, className: cx('mn-progress', className), children: _jsx(ProgressPrimitive.Indicator, { className: "mn-progress__bar", style: pct === undefined ? undefined : { width: `${pct}%` } }) }));
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkD,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAevC,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,SAAS,QAAQ,CACf,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAC7E,GAAG;IAEH,MAAM,GAAG,GACP,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,CACL,KAAC,iBAAiB,CAAC,IAAI,IACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,IAAI,IAAI,EACpB,GAAG,EAAE,GAAG,gBACI,KAAK,KACb,IAAI,eACG,IAAI,eACJ,IAAI,wBACK,GAAG,KAAK,SAAS,IAAI,SAAS,EAClD,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,YAEvC,KAAC,iBAAiB,CAAC,SAAS,IAC1B,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAC3D,GACqB,CAC1B,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
3
|
+
/**
|
|
4
|
+
* Single-value select built on Radix Select: typeahead, arrow-key navigation,
|
|
5
|
+
* and screen-reader semantics come from the primitive.
|
|
6
|
+
*
|
|
7
|
+
* <Select value={v} onValueChange={setV}>
|
|
8
|
+
* <SelectTrigger placeholder="Choose a status" />
|
|
9
|
+
* <SelectContent>
|
|
10
|
+
* <SelectItem value="open">Open</SelectItem>
|
|
11
|
+
* </SelectContent>
|
|
12
|
+
* </Select>
|
|
13
|
+
*/
|
|
14
|
+
export declare const Select: import("react").FC<SelectPrimitive.SelectProps>;
|
|
15
|
+
export declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export declare const SelectValue: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
17
|
+
export interface SelectTriggerProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
size?: 'sm' | 'md' | 'lg';
|
|
20
|
+
invalid?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
export declare const SelectContent: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
24
|
+
export declare const SelectItem: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
25
|
+
export declare const SelectLabel: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export declare const SelectSeparator: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
27
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,wBAAwB,EAAmB,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,iDAAuB,CAAC;AAC3C,eAAO,MAAM,WAAW,6HAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,8HAAwB,CAAC;AAEjD,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAClE,OAAO,eAAe,CAAC,OAAO,CAC/B;IACC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,kHAuBxB,CAAC;AAEH,eAAO,MAAM,aAAa,4LAsBxB,CAAC;AAEH,eAAO,MAAM,UAAU,yLAYrB,CAAC;AAEH,eAAO,MAAM,WAAW,0LAKtB,CAAC;AAEH,eAAO,MAAM,eAAe,8LAW1B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
5
|
+
import { cx } from '../internal/cx.js';
|
|
6
|
+
import { CheckGlyph, ChevronDownGlyph } from '../internal/icons.js';
|
|
7
|
+
import { useFieldControl } from './field.js';
|
|
8
|
+
/**
|
|
9
|
+
* Single-value select built on Radix Select: typeahead, arrow-key navigation,
|
|
10
|
+
* and screen-reader semantics come from the primitive.
|
|
11
|
+
*
|
|
12
|
+
* <Select value={v} onValueChange={setV}>
|
|
13
|
+
* <SelectTrigger placeholder="Choose a status" />
|
|
14
|
+
* <SelectContent>
|
|
15
|
+
* <SelectItem value="open">Open</SelectItem>
|
|
16
|
+
* </SelectContent>
|
|
17
|
+
* </Select>
|
|
18
|
+
*/
|
|
19
|
+
export const Select = SelectPrimitive.Root;
|
|
20
|
+
export const SelectGroup = SelectPrimitive.Group;
|
|
21
|
+
export const SelectValue = SelectPrimitive.Value;
|
|
22
|
+
export const SelectTrigger = forwardRef(function SelectTrigger({ placeholder, size = 'md', invalid, className, children, ...rest }, ref) {
|
|
23
|
+
// `required` is not a valid attribute on the trigger <button>; aria-required carries the meaning.
|
|
24
|
+
const { required: _required, ...props } = useFieldControl(rest, { invalid });
|
|
25
|
+
return (_jsxs(SelectPrimitive.Trigger, { ref: ref, ...props, "data-size": size, className: cx('mn-input', 'mn-select', className), children: [children ?? _jsx(SelectPrimitive.Value, { placeholder: placeholder }), _jsx(SelectPrimitive.Icon, { className: "mn-select__icon", children: _jsx(ChevronDownGlyph, {}) })] }));
|
|
26
|
+
});
|
|
27
|
+
export const SelectContent = forwardRef(function SelectContent({ className, children, position = 'popper', sideOffset = 4, ...rest }, ref) {
|
|
28
|
+
return (_jsx(SelectPrimitive.Portal, { children: _jsx(SelectPrimitive.Content, { ref: ref, position: position, sideOffset: sideOffset, ...rest, className: cx('mn-menu', 'mn-select__content', className), children: _jsx(SelectPrimitive.Viewport, { className: "mn-select__viewport", children: children }) }) }));
|
|
29
|
+
});
|
|
30
|
+
export const SelectItem = forwardRef(function SelectItem({ className, children, ...rest }, ref) {
|
|
31
|
+
return (_jsxs(SelectPrimitive.Item, { ref: ref, ...rest, className: cx('mn-menu__item', className), children: [_jsx(SelectPrimitive.ItemText, { children: children }), _jsx(SelectPrimitive.ItemIndicator, { className: "mn-menu__indicator", children: _jsx(CheckGlyph, {}) })] }));
|
|
32
|
+
});
|
|
33
|
+
export const SelectLabel = forwardRef(function SelectLabel({ className, ...rest }, ref) {
|
|
34
|
+
return _jsx(SelectPrimitive.Label, { ref: ref, ...rest, className: cx('mn-menu__label', className) });
|
|
35
|
+
});
|
|
36
|
+
export const SelectSeparator = forwardRef(function SelectSeparator({ className, ...rest }, ref) {
|
|
37
|
+
return (_jsx(SelectPrimitive.Separator, { ref: ref, ...rest, className: cx('mn-menu__separator', className) }));
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
2
|
+
/** Visual divider. `decorative` (default) hides it from assistive technology. */
|
|
3
|
+
export declare const Separator: import("react").ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAGhE,iFAAiF;AACjF,eAAO,MAAM,SAAS,2LAapB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
4
|
+
import { cx } from '../internal/cx.js';
|
|
5
|
+
/** Visual divider. `decorative` (default) hides it from assistive technology. */
|
|
6
|
+
export const Separator = forwardRef(function Separator({ className, orientation = 'horizontal', decorative = true, ...rest }, ref) {
|
|
7
|
+
return (_jsx(SeparatorPrimitive.Root, { ref: ref, orientation: orientation, decorative: decorative, ...rest, className: cx('mn-separator', className) }));
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=separator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.js","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkD,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAGjC,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC7F,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,IACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,KAClB,IAAI,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,GACxC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CSSProperties, HTMLAttributes } from 'react';
|
|
2
|
+
export interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
shape?: 'text' | 'rect' | 'circle';
|
|
4
|
+
width?: CSSProperties['width'];
|
|
5
|
+
height?: CSSProperties['height'];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Loading placeholder. Hidden from assistive technology: mark the loading
|
|
9
|
+
* region with aria-busy="true" and announce completion separately.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Skeleton({ shape, width, height, className, style, ...rest }: SkeletonProps): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,aAAa,+BAUf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../internal/cx.js';
|
|
3
|
+
/**
|
|
4
|
+
* Loading placeholder. Hidden from assistive technology: mark the loading
|
|
5
|
+
* region with aria-busy="true" and announce completion separately.
|
|
6
|
+
*/
|
|
7
|
+
export function Skeleton({ shape = 'rect', width, height, className, style, ...rest }) {
|
|
8
|
+
return (_jsx("div", { ...rest, "aria-hidden": true, className: cx('mn-skeleton', className), "data-shape": shape, style: { width, height, ...style } }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAQvC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,GAAG,MAAM,EACd,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACO;IACd,OAAO,CACL,iBACM,IAAI,uBAER,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,gBAC3B,KAAK,EACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAClC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
export interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
3
|
+
size?: 'sm' | 'md' | 'lg';
|
|
4
|
+
/**
|
|
5
|
+
* Accessible name. With a label the spinner is announced as a status;
|
|
6
|
+
* without one it is decorative (use that inside a busy button).
|
|
7
|
+
*/
|
|
8
|
+
label?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Indeterminate progress indicator. Server-component safe. */
|
|
11
|
+
export declare function Spinner({ size, label, className, ...rest }: SpinnerProps): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACrF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,EAAE,IAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,+BAK/E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../internal/cx.js';
|
|
3
|
+
/** Indeterminate progress indicator. Server-component safe. */
|
|
4
|
+
export function Spinner({ size = 'md', label, className, ...rest }) {
|
|
5
|
+
const a11y = label
|
|
6
|
+
? { role: 'status', 'aria-label': label }
|
|
7
|
+
: { 'aria-hidden': true };
|
|
8
|
+
return _jsx("span", { ...rest, ...a11y, className: cx('mn-spinner', className), "data-size": size });
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAWvC,+DAA+D;AAC/D,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAgB;IAC9E,MAAM,IAAI,GAAG,KAAK;QAChB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,YAAY,EAAE,KAAK,EAAE;QAClD,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,CAAC;IACrC,OAAO,kBAAU,IAAI,KAAM,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,eAAa,IAAI,GAAI,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
3
|
+
export interface SwitchProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
size?: 'sm' | 'md';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An on/off setting that applies immediately. For choices that are submitted
|
|
10
|
+
* with a form, prefer Checkbox.
|
|
11
|
+
*/
|
|
12
|
+
export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,MAAM,WAAW,WAAY,SAAQ,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACxF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,2GAsClB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useId, } from 'react';
|
|
4
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
5
|
+
import { cx } from '../internal/cx.js';
|
|
6
|
+
import { useFieldControl } from './field.js';
|
|
7
|
+
/**
|
|
8
|
+
* An on/off setting that applies immediately. For choices that are submitted
|
|
9
|
+
* with a form, prefer Checkbox.
|
|
10
|
+
*/
|
|
11
|
+
export const Switch = forwardRef(function Switch({ label, description, size = 'md', className, ...rest }, ref) {
|
|
12
|
+
const auto = useId();
|
|
13
|
+
const props = useFieldControl(rest);
|
|
14
|
+
const id = props.id ?? `mn-switch-${auto}`;
|
|
15
|
+
const descriptionId = description ? `${id}-description` : undefined;
|
|
16
|
+
const control = (_jsx(SwitchPrimitive.Root, { ref: ref, ...props, id: id, "aria-describedby": cx(props['aria-describedby'], descriptionId), "data-size": size, className: cx('mn-switch', label ? undefined : className), children: _jsx(SwitchPrimitive.Thumb, { className: "mn-switch__thumb" }) }));
|
|
17
|
+
if (!label)
|
|
18
|
+
return control;
|
|
19
|
+
return (_jsxs("div", { className: cx('mn-choice', 'mn-choice--switch', className), "data-disabled": props.disabled || undefined, children: [_jsxs("div", { className: "mn-choice__text", children: [_jsx("label", { htmlFor: id, className: "mn-choice__label", children: label }), description ? (_jsx("p", { id: descriptionId, className: "mn-choice__description", children: description })) : null] }), control] }));
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,UAAU,EACV,KAAK,GAIN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ7C;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC1E,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,aAAa,IAAI,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,OAAO,GAAG,CACd,KAAC,eAAe,CAAC,IAAI,IACnB,GAAG,EAAE,GAAG,KACJ,KAAK,EACT,EAAE,EAAE,EAAE,sBACY,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,eACnD,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,YAEzD,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,GAAG,GACjC,CACxB,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,CAAC,mBAC3C,KAAK,CAAC,QAAQ,IAAI,SAAS,aAE1C,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,kBAAkB,YAC7C,KAAK,GACA,EACP,WAAW,CAAC,CAAC,CAAC,CACb,YAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,wBAAwB,YACrD,WAAW,GACV,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,OAAO,IACJ,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type HTMLAttributes, type TableHTMLAttributes, type TdHTMLAttributes, type ThHTMLAttributes } from 'react';
|
|
2
|
+
import { type CheckboxProps } from './checkbox.js';
|
|
3
|
+
export interface TableProps extends TableHTMLAttributes<HTMLTableElement> {
|
|
4
|
+
/** Row height. `compact` for dense data, `comfortable` (default) for mixed content. */
|
|
5
|
+
density?: 'compact' | 'comfortable';
|
|
6
|
+
/** Keep the header visible while the body scrolls (the wrapper needs a height). */
|
|
7
|
+
stickyHeader?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Data table primitives. Wrap in `<Card flush>` for a framed table. Pass a
|
|
11
|
+
* `<TableCaption>` or `aria-label` so the table has an accessible name.
|
|
12
|
+
*/
|
|
13
|
+
export declare const Table: import("react").ForwardRefExoticComponent<TableProps & import("react").RefAttributes<HTMLTableElement>>;
|
|
14
|
+
export declare function TableHeader({ className, ...rest }: HTMLAttributes<HTMLTableSectionElement>): import("react").JSX.Element;
|
|
15
|
+
export declare function TableBody({ className, ...rest }: HTMLAttributes<HTMLTableSectionElement>): import("react").JSX.Element;
|
|
16
|
+
export interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {
|
|
17
|
+
/** Highlights the row (also sets aria-selected). */
|
|
18
|
+
selected?: boolean;
|
|
19
|
+
/** Pointer affordance for rows that open something on click. Keep a real link or button inside. */
|
|
20
|
+
interactive?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function TableRow({ selected, interactive, className, ...rest }: TableRowProps): import("react").JSX.Element;
|
|
23
|
+
export type SortDirection = 'ascending' | 'descending' | 'none';
|
|
24
|
+
export interface TableHeadProps extends ThHTMLAttributes<HTMLTableCellElement> {
|
|
25
|
+
/** Current sort of this column. Renders a SortButton and sets aria-sort. */
|
|
26
|
+
sort?: SortDirection;
|
|
27
|
+
/** Called when the sort button is pressed. Required when `sort` is set. */
|
|
28
|
+
onSortChange?: (next: 'ascending' | 'descending') => void;
|
|
29
|
+
/** Right-align numbers. */
|
|
30
|
+
numeric?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare function TableHead({ sort, onSortChange, numeric, className, children, scope, ...rest }: TableHeadProps): import("react").JSX.Element;
|
|
33
|
+
export interface SortButtonProps {
|
|
34
|
+
direction: SortDirection;
|
|
35
|
+
onClick: () => void;
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
}
|
|
38
|
+
/** Column sort toggle; its accessible name states the current direction. */
|
|
39
|
+
export declare function SortButton({ direction, onClick, children }: SortButtonProps): import("react").JSX.Element;
|
|
40
|
+
export interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
|
|
41
|
+
numeric?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare function TableCell({ numeric, className, ...rest }: TableCellProps): import("react").JSX.Element;
|
|
44
|
+
export declare function TableCaption({ className, ...rest }: HTMLAttributes<HTMLTableCaptionElement>): import("react").JSX.Element;
|
|
45
|
+
export interface TableSelectCellProps extends Omit<CheckboxProps, 'label' | 'description'> {
|
|
46
|
+
/** Accessible name, e.g. "Select ticket 42" or "Select all". */
|
|
47
|
+
label: string;
|
|
48
|
+
/** Render as a header cell (for the select-all checkbox). */
|
|
49
|
+
header?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** Narrow checkbox column for row selection. */
|
|
52
|
+
export declare function TableSelectCell({ label, header, className, ...rest }: TableSelectCellProps): import("react").JSX.Element;
|
|
53
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,WAAW,UAAW,SAAQ,mBAAmB,CAAC,gBAAgB,CAAC;IACvE,uFAAuF;IACvF,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACpC,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,yGAehB,CAAC;AAEH,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,uBAAuB,CAAC,+BAE1F;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,uBAAuB,CAAC,+BAExF;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,mBAAmB,CAAC;IACxE,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,+BAUpF;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,cAAe,SAAQ,gBAAgB,CAAC,oBAAoB,CAAC;IAC5E,4EAA4E;IAC5E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,KAAK,IAAI,CAAC;IAC1D,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAa,EACb,GAAG,IAAI,EACR,EAAE,cAAc,+BAsBhB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAc3E;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB,CAAC,oBAAoB,CAAC;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAIxE;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,uBAAuB,CAAC,+BAE3F;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,CAAC;IACxF,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,MAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE,oBAAoB,+BAUtB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, } from 'react';
|
|
4
|
+
import { cx } from '../internal/cx.js';
|
|
5
|
+
import { ChevronDownGlyph } from '../internal/icons.js';
|
|
6
|
+
import { Checkbox } from './checkbox.js';
|
|
7
|
+
/**
|
|
8
|
+
* Data table primitives. Wrap in `<Card flush>` for a framed table. Pass a
|
|
9
|
+
* `<TableCaption>` or `aria-label` so the table has an accessible name.
|
|
10
|
+
*/
|
|
11
|
+
export const Table = forwardRef(function Table({ density = 'comfortable', stickyHeader = false, className, ...rest }, ref) {
|
|
12
|
+
return (_jsx("div", { className: "mn-table-wrap", children: _jsx("table", { ref: ref, ...rest, "data-density": density, "data-sticky": stickyHeader || undefined, className: cx('mn-table', className) }) }));
|
|
13
|
+
});
|
|
14
|
+
export function TableHeader({ className, ...rest }) {
|
|
15
|
+
return _jsx("thead", { ...rest, className: cx('mn-table__header', className) });
|
|
16
|
+
}
|
|
17
|
+
export function TableBody({ className, ...rest }) {
|
|
18
|
+
return _jsx("tbody", { ...rest, className: cx('mn-table__body', className) });
|
|
19
|
+
}
|
|
20
|
+
export function TableRow({ selected, interactive, className, ...rest }) {
|
|
21
|
+
return (_jsx("tr", { ...rest, "aria-selected": selected ?? rest['aria-selected'], "data-selected": selected || undefined, "data-interactive": interactive || undefined, className: cx('mn-table__row', className) }));
|
|
22
|
+
}
|
|
23
|
+
export function TableHead({ sort, onSortChange, numeric, className, children, scope = 'col', ...rest }) {
|
|
24
|
+
const sortable = sort !== undefined;
|
|
25
|
+
return (_jsx("th", { ...rest, scope: scope, "aria-sort": sortable && sort !== 'none' ? sort : undefined, "data-numeric": numeric || undefined, className: cx('mn-table__head', className), children: sortable ? (_jsx(SortButton, { direction: sort, onClick: () => onSortChange?.(sort === 'ascending' ? 'descending' : 'ascending'), children: children })) : (children) }));
|
|
26
|
+
}
|
|
27
|
+
/** Column sort toggle; its accessible name states the current direction. */
|
|
28
|
+
export function SortButton({ direction, onClick, children }) {
|
|
29
|
+
const state = direction === 'ascending'
|
|
30
|
+
? 'sorted ascending'
|
|
31
|
+
: direction === 'descending'
|
|
32
|
+
? 'sorted descending'
|
|
33
|
+
: 'not sorted';
|
|
34
|
+
return (_jsxs("button", { type: "button", className: "mn-table__sort", "data-direction": direction, onClick: onClick, children: [children, _jsxs("span", { className: "mn-visually-hidden", children: [", ", state] }), _jsx(ChevronDownGlyph, { className: "mn-table__sort-icon" })] }));
|
|
35
|
+
}
|
|
36
|
+
export function TableCell({ numeric, className, ...rest }) {
|
|
37
|
+
return (_jsx("td", { ...rest, "data-numeric": numeric || undefined, className: cx('mn-table__cell', className) }));
|
|
38
|
+
}
|
|
39
|
+
export function TableCaption({ className, ...rest }) {
|
|
40
|
+
return _jsx("caption", { ...rest, className: cx('mn-table__caption', className) });
|
|
41
|
+
}
|
|
42
|
+
/** Narrow checkbox column for row selection. */
|
|
43
|
+
export function TableSelectCell({ label, header = false, className, ...rest }) {
|
|
44
|
+
const Tag = header ? 'th' : 'td';
|
|
45
|
+
return (_jsx(Tag, { ...(header ? { scope: 'col' } : {}), className: cx('mn-table__select', header ? 'mn-table__head' : 'mn-table__cell', className), children: _jsx(Checkbox, { "aria-label": label, ...rest }) }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
3
|
+
/** Arrow keys move between tabs; Home/End jump to the ends. */
|
|
4
|
+
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsPrimitive.TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export interface TabsListProps extends ComponentPropsWithoutRef<typeof TabsPrimitive.List> {
|
|
6
|
+
/** `line` for page sections, `pill` for compact view switches. */
|
|
7
|
+
variant?: 'line' | 'pill';
|
|
8
|
+
}
|
|
9
|
+
export declare const TabsList: import("react").ForwardRefExoticComponent<TabsListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const TabsTrigger: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export declare const TabsContent: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,wBAAwB,EAAmB,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAGtD,+DAA+D;AAC/D,eAAO,MAAM,IAAI,oHAAqB,CAAC;AAEvC,MAAM,WAAW,aAAc,SAAQ,wBAAwB,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC;IACxF,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,QAAQ,0GAWpB,CAAC;AAEF,eAAO,MAAM,WAAW,8LAOtB,CAAC;AAEH,eAAO,MAAM,WAAW,wLAOtB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
5
|
+
import { cx } from '../internal/cx.js';
|
|
6
|
+
/** Arrow keys move between tabs; Home/End jump to the ends. */
|
|
7
|
+
export const Tabs = TabsPrimitive.Root;
|
|
8
|
+
export const TabsList = forwardRef(function TabsList({ variant = 'line', className, ...rest }, ref) {
|
|
9
|
+
return (_jsx(TabsPrimitive.List, { ref: ref, ...rest, "data-variant": variant, className: cx('mn-tabs__list', className) }));
|
|
10
|
+
});
|
|
11
|
+
export const TabsTrigger = forwardRef(function TabsTrigger({ className, ...rest }, ref) {
|
|
12
|
+
return (_jsx(TabsPrimitive.Trigger, { ref: ref, ...rest, className: cx('mn-tabs__trigger', className) }));
|
|
13
|
+
});
|
|
14
|
+
export const TabsContent = forwardRef(function TabsContent({ className, ...rest }, ref) {
|
|
15
|
+
return (_jsx(TabsPrimitive.Content, { ref: ref, ...rest, className: cx('mn-tabs__content', className) }));
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAkD,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAOvC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,SAAS,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC7D,OAAO,CACL,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,KACJ,IAAI,kBACM,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,GACzC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAGnC,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAChD,OAAO,CACL,KAAC,aAAa,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,KAAM,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAI,CAC5F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAGnC,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAChD,OAAO,CACL,KAAC,aAAa,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,KAAM,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAI,CAC5F,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export type ToastTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
3
|
+
export interface ToastOptions {
|
|
4
|
+
/** Short headline, e.g. "Ticket assigned". */
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
/** One line of detail. Keep it under ~80 characters. */
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
tone?: ToastTone;
|
|
9
|
+
/** One optional action, e.g. Undo. Rendered as a secondary button. */
|
|
10
|
+
action?: {
|
|
11
|
+
label: string;
|
|
12
|
+
onClick: () => void;
|
|
13
|
+
};
|
|
14
|
+
/** Milliseconds before auto-dismiss. Danger toasts default to 10s, others 5s. */
|
|
15
|
+
duration?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ToastHandle {
|
|
18
|
+
id: string;
|
|
19
|
+
dismiss: () => void;
|
|
20
|
+
}
|
|
21
|
+
interface ToastContextValue {
|
|
22
|
+
toast: (options: ToastOptions) => ToastHandle;
|
|
23
|
+
dismiss: (id: string) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface ToastProviderProps {
|
|
26
|
+
/** Accessible name of the toast region. */
|
|
27
|
+
label?: string;
|
|
28
|
+
/** Where toasts appear. */
|
|
29
|
+
position?: 'bottom-right' | 'bottom-center' | 'top-right';
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Mount once near the root. Provides `useToast()` and renders the viewport.
|
|
34
|
+
* Toasts pause while hovered or focused and can be dismissed with Escape.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ToastProvider({ label, position, children, }: ToastProviderProps): import("react").JSX.Element;
|
|
37
|
+
/** Returns `toast(options)` and `dismiss(id)`. Must be used inside ToastProvider. */
|
|
38
|
+
export declare function useToast(): ToastContextValue;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlG,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAChD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,UAAU,iBAAiB;IACzB,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,WAAW,CAAC;IAC9C,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAUD,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,cAAc,GAAG,eAAe,GAAG,WAAW,CAAC;IAC1D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAuB,EACvB,QAAyB,EACzB,QAAQ,GACT,EAAE,kBAAkB,+BAwDpB;AA+DD,qFAAqF;AACrF,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useMemo, useState } from 'react';
|
|
4
|
+
import * as ToastPrimitive from '@radix-ui/react-toast';
|
|
5
|
+
import { cx } from '../internal/cx.js';
|
|
6
|
+
import { CloseGlyph, InfoGlyph, SuccessGlyph, WarningGlyph } from '../internal/icons.js';
|
|
7
|
+
const ToastContext = createContext(null);
|
|
8
|
+
/** How many toasts are shown at once; older ones are dismissed first. */
|
|
9
|
+
const LIMIT = 3;
|
|
10
|
+
/** Longer than the exit animation (--mn-duration-base). */
|
|
11
|
+
const EXIT_MS = 600;
|
|
12
|
+
let counter = 0;
|
|
13
|
+
/**
|
|
14
|
+
* Mount once near the root. Provides `useToast()` and renders the viewport.
|
|
15
|
+
* Toasts pause while hovered or focused and can be dismissed with Escape.
|
|
16
|
+
*/
|
|
17
|
+
export function ToastProvider({ label = 'Notifications', position = 'bottom-right', children, }) {
|
|
18
|
+
const [toasts, setToasts] = useState([]);
|
|
19
|
+
const remove = useCallback((id) => {
|
|
20
|
+
setToasts((list) => list.filter((t) => t.id !== id));
|
|
21
|
+
}, []);
|
|
22
|
+
/** Closes a toast; the record is dropped once the exit animation has had time to run. */
|
|
23
|
+
const dismiss = useCallback((id) => {
|
|
24
|
+
setToasts((list) => list.map((t) => (t.id === id ? { ...t, open: false } : t)));
|
|
25
|
+
setTimeout(() => remove(id), EXIT_MS);
|
|
26
|
+
}, [remove]);
|
|
27
|
+
const toast = useCallback((options) => {
|
|
28
|
+
const id = `mn-toast-${++counter}`;
|
|
29
|
+
setToasts((list) => {
|
|
30
|
+
const next = [...list, { ...options, id, open: true }];
|
|
31
|
+
const openOnes = next.filter((t) => t.open);
|
|
32
|
+
const overflow = openOnes.length - LIMIT;
|
|
33
|
+
if (overflow > 0) {
|
|
34
|
+
const closing = openOnes.slice(0, overflow).map((t) => t.id);
|
|
35
|
+
for (const c of closing)
|
|
36
|
+
setTimeout(() => remove(c), EXIT_MS);
|
|
37
|
+
const set = new Set(closing);
|
|
38
|
+
return next.map((t) => (set.has(t.id) ? { ...t, open: false } : t));
|
|
39
|
+
}
|
|
40
|
+
return next;
|
|
41
|
+
});
|
|
42
|
+
return { id, dismiss: () => dismiss(id) };
|
|
43
|
+
}, [dismiss, remove]);
|
|
44
|
+
const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);
|
|
45
|
+
return (_jsx(ToastContext.Provider, { value: value, children: _jsxs(ToastPrimitive.Provider, { swipeDirection: position.endsWith('right') ? 'right' : 'down', label: label, children: [children, toasts.map((t) => (_jsx(ToastItem, { record: t, onOpenChange: (open) => (open ? undefined : dismiss(t.id)) }, t.id))), _jsx(ToastPrimitive.Viewport, { className: "mn-toast-viewport", "data-position": position })] }) }));
|
|
46
|
+
}
|
|
47
|
+
const toneIcon = {
|
|
48
|
+
neutral: null,
|
|
49
|
+
info: _jsx(InfoGlyph, {}),
|
|
50
|
+
success: _jsx(SuccessGlyph, {}),
|
|
51
|
+
warning: _jsx(WarningGlyph, {}),
|
|
52
|
+
danger: _jsx(WarningGlyph, {}),
|
|
53
|
+
};
|
|
54
|
+
function ToastItem({ record, onOpenChange, }) {
|
|
55
|
+
const tone = record.tone ?? 'neutral';
|
|
56
|
+
const duration = record.duration ?? (tone === 'danger' ? 10000 : 5000);
|
|
57
|
+
const icon = toneIcon[tone];
|
|
58
|
+
return (_jsxs(ToastPrimitive.Root, { open: record.open, onOpenChange: onOpenChange, duration: duration, type: tone === 'danger' ? 'foreground' : 'background', className: "mn-toast", "data-tone": tone, role: tone === 'danger' ? 'alert' : 'status', children: [icon ? (_jsx("span", { className: "mn-toast__icon", "aria-hidden": true, children: icon })) : null, _jsxs("div", { className: "mn-toast__body", children: [_jsx(ToastPrimitive.Title, { className: "mn-toast__title", children: record.title }), record.description ? (_jsx(ToastPrimitive.Description, { className: "mn-toast__description", children: record.description })) : null] }), record.action ? (_jsx(ToastPrimitive.Action, { asChild: true, altText: record.action.label, children: _jsx("button", { type: "button", className: cx('mn-button', 'mn-toast__action'), "data-variant": "secondary", "data-size": "xs", onClick: record.action.onClick, children: record.action.label }) })) : null, _jsx(ToastPrimitive.Close, { className: "mn-toast__close", "aria-label": "Dismiss", children: _jsx(CloseGlyph, {}) })] }));
|
|
59
|
+
}
|
|
60
|
+
/** Returns `toast(options)` and `dismiss(id)`. Must be used inside ToastProvider. */
|
|
61
|
+
export function useToast() {
|
|
62
|
+
const ctx = useContext(ToastContext);
|
|
63
|
+
if (!ctx)
|
|
64
|
+
throw new Error('useToast must be used inside <ToastProvider>');
|
|
65
|
+
return ctx;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/components/toast.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
/** Mount once near the root. Shares the open delay across tooltips. */
|
|
3
|
+
export declare function TooltipProvider({ delayDuration, children, }: {
|
|
4
|
+
delayDuration?: number;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
export interface TooltipProps {
|
|
8
|
+
/** Supplementary text. Never put essential information or interactive content here. */
|
|
9
|
+
content: ReactNode;
|
|
10
|
+
/** A single focusable element. */
|
|
11
|
+
children: ReactElement;
|
|
12
|
+
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
13
|
+
align?: 'start' | 'center' | 'end';
|
|
14
|
+
open?: boolean;
|
|
15
|
+
defaultOpen?: boolean;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
}
|
|
18
|
+
/** Shows on hover and keyboard focus; Escape dismisses it. */
|
|
19
|
+
export declare function Tooltip({ content, children, side, align, ...state }: TooltipProps): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAC9B,aAAmB,EACnB,QAAQ,GACT,EAAE;IACD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAIA;AAED,MAAM,WAAW,YAAY;IAC3B,uFAAuF;IACvF,OAAO,EAAE,SAAS,CAAC;IACnB,kCAAkC;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,QAAQ,EACR,IAAY,EACZ,KAAgB,EAChB,GAAG,KAAK,EACT,EAAE,YAAY,+BAWd"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
4
|
+
/** Mount once near the root. Shares the open delay across tooltips. */
|
|
5
|
+
export function TooltipProvider({ delayDuration = 400, children, }) {
|
|
6
|
+
return (_jsx(TooltipPrimitive.Provider, { delayDuration: delayDuration, children: children }));
|
|
7
|
+
}
|
|
8
|
+
/** Shows on hover and keyboard focus; Escape dismisses it. */
|
|
9
|
+
export function Tooltip({ content, children, side = 'top', align = 'center', ...state }) {
|
|
10
|
+
return (_jsxs(TooltipPrimitive.Root, { ...state, children: [_jsx(TooltipPrimitive.Trigger, { asChild: true, children: children }), _jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { side: side, align: align, sideOffset: 6, className: "mn-tooltip", children: content }) })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAE5D,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,EAC9B,aAAa,GAAG,GAAG,EACnB,QAAQ,GAIT;IACC,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,aAAa,EAAE,aAAa,YAAG,QAAQ,GAA6B,CAChG,CAAC;AACJ,CAAC;AAcD,8DAA8D;AAC9D,MAAM,UAAU,OAAO,CAAC,EACtB,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,QAAQ,EAChB,GAAG,KAAK,EACK;IACb,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,OAAK,KAAK,aAC9B,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAAE,QAAQ,GAA4B,EACvE,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAC,YAAY,YACtF,OAAO,GACiB,GACH,IACJ,CACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
/** Hides content visually while keeping it available to assistive technology. */
|
|
3
|
+
export declare function VisuallyHidden({ className, ...rest }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=visually-hidden.d.ts.map
|