@tpc-mare/mare-ui-components-react 0.1.4 → 0.1.7
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/dist/accordion/Accordion.d.ts +2 -0
- package/dist/accordion/Accordion.types.d.ts +20 -0
- package/dist/accordion/index.d.ts +2 -0
- package/dist/accordion/index.js +4 -0
- package/dist/banner/Banner.d.ts +2 -0
- package/dist/banner/Banner.types.d.ts +15 -0
- package/dist/banner/index.d.ts +2 -0
- package/dist/banner/index.js +4 -0
- package/dist/checkbox/index.js +1 -1
- package/dist/combobox/index.js +1 -1
- package/dist/date-picker/DatePicker.d.ts +3 -0
- package/dist/date-picker/DatePicker.types.d.ts +52 -0
- package/dist/date-picker/index.d.ts +2 -0
- package/dist/date-picker/index.js +4 -0
- package/dist/dialog/index.js +1 -1
- package/dist/drawer/index.js +1 -1
- package/dist/index/index.d.ts +18 -0
- package/dist/index/index.js +66 -46
- package/dist/input-otp/InputOtp.d.ts +2 -0
- package/dist/input-otp/InputOtp.types.d.ts +27 -0
- package/dist/input-otp/index.d.ts +2 -0
- package/dist/input-otp/index.js +4 -0
- package/dist/paginator/Paginator.d.ts +2 -0
- package/dist/paginator/Paginator.types.d.ts +21 -0
- package/dist/paginator/index.d.ts +2 -0
- package/dist/paginator/index.js +4 -0
- package/dist/panel-menu/PanelMenu.d.ts +2 -0
- package/dist/panel-menu/PanelMenu.types.d.ts +12 -0
- package/dist/panel-menu/index.d.ts +2 -0
- package/dist/panel-menu/index.js +4 -0
- package/dist/password/Password.d.ts +7 -0
- package/dist/password/Password.types.d.ts +39 -0
- package/dist/password/index.d.ts +2 -0
- package/dist/password/index.js +5 -0
- package/dist/search-field/index.js +1 -1
- package/dist/select-field/index.js +1 -1
- package/dist/shared/Accordion-Cbs8KQ5v.js +63 -0
- package/dist/shared/Banner-BWyV9K8e.js +52 -0
- package/dist/shared/{Checkbox-DsM70wQl.js → Checkbox-D17WWbSe.js} +1 -1
- package/dist/shared/{Combobox-DeUG_muZ.js → Combobox-CBa1lnAd.js} +1 -1
- package/dist/shared/DatePicker-BQulFC2D.js +856 -0
- package/dist/shared/{DialogFooter-DLWy6Mln.js → DialogFooter-0gaMdpXV.js} +1 -1
- package/dist/shared/{DrawerFooter-DvUgumx0.js → DrawerFooter-CpO7chLC.js} +1 -1
- package/dist/shared/InputOtp-CUXXVP2E.js +72 -0
- package/dist/shared/Paginator-Da0XKfF3.js +164 -0
- package/dist/shared/PanelMenu-CYbr6cvz.js +123 -0
- package/dist/shared/Password-vADi8ZJz.js +94 -0
- package/dist/shared/{SearchField-CgDz_s1O.js → SearchField-9bL2s8zj.js} +1 -1
- package/dist/shared/{SelectField-BSTmWjYy.js → SelectField-dNCMdSYU.js} +1 -1
- package/dist/shared/Snackbar-C29nLHO9.js +100 -0
- package/dist/shared/Stepper-DApoMP1U.js +110 -0
- package/dist/shared/icons-bQxPPV8R.js +55 -0
- package/dist/shared/icons.d.ts +8 -0
- package/dist/shared/useMediaQuery.d.ts +5 -0
- package/dist/snackbar/Snackbar.d.ts +3 -0
- package/dist/snackbar/Snackbar.types.d.ts +42 -0
- package/dist/snackbar/index.d.ts +2 -0
- package/dist/snackbar/index.js +5 -0
- package/dist/stepper/Stepper.d.ts +2 -0
- package/dist/stepper/Stepper.types.d.ts +18 -0
- package/dist/stepper/index.d.ts +2 -0
- package/dist/stepper/index.js +4 -0
- package/dist/styles.css +1 -1
- package/dist/theme.css +1 -0
- package/dist/utilities-standalone.css +1 -0
- package/package.json +5 -6
- package/dist/shared/icons-DeVfnVLm.js +0 -37
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AccordionItemData } from '@tpc-development/mare-ui-components-core/accordion';
|
|
3
|
+
export type { AccordionItemData } from '@tpc-development/mare-ui-components-core/accordion';
|
|
4
|
+
export interface AccordionItemProperties extends AccordionItemData {
|
|
5
|
+
subtitle?: ReactNode;
|
|
6
|
+
content: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface AccordionProperties {
|
|
9
|
+
items: AccordionItemProperties[];
|
|
10
|
+
/** Controlled expanded item values. Omit to let Ark manage it. */
|
|
11
|
+
value?: string[];
|
|
12
|
+
defaultValue?: string[];
|
|
13
|
+
onValueChange?: (value: string[]) => void;
|
|
14
|
+
/** Whether multiple items can be expanded at once.
|
|
15
|
+
* @default false */
|
|
16
|
+
multiple?: boolean;
|
|
17
|
+
/** Whether an expanded item can be collapsed back by clicking it again.
|
|
18
|
+
* @default true */
|
|
19
|
+
collapsible?: boolean;
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { BannerSeverity } from '@tpc-development/mare-ui-components-core/banner';
|
|
3
|
+
export type { BannerSeverity } from '@tpc-development/mare-ui-components-core/banner';
|
|
4
|
+
export interface BannerProperties {
|
|
5
|
+
/** @default 'neutral' */
|
|
6
|
+
severity?: BannerSeverity;
|
|
7
|
+
title?: string;
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
/** @default false */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** @default false */
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
onClose?: () => void;
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
}
|
package/dist/checkbox/index.js
CHANGED
package/dist/combobox/index.js
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { DatePickerProperties } from './DatePicker.types';
|
|
3
|
+
export declare function DatePicker({ value, onValueChange, selectionMode, size, label, placeholder, disabled, invalid, minDate, maxDate, navigation, doubleMonth, inline, clearable, prices, currency, locale, showTime, timeOnly, showSeconds, footer, leadingIcon, portalContainer, onOpenChange, onVisibleMonthsChange, }: DatePickerProperties): ReactNode;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from 'react';
|
|
2
|
+
import { DatePickerSelectionMode, DatePickerValue, DatePriceData, InputTextSize } from '@tpc-development/mare-ui-components-core/date-picker';
|
|
3
|
+
export type { DatePickerSelectionMode, DatePickerValue, DatePriceData, InputTextSize, } from '@tpc-development/mare-ui-components-core/date-picker';
|
|
4
|
+
export interface DatePickerProperties {
|
|
5
|
+
value?: DatePickerValue;
|
|
6
|
+
onValueChange?: (value: DatePickerValue) => void;
|
|
7
|
+
selectionMode?: DatePickerSelectionMode;
|
|
8
|
+
size?: InputTextSize;
|
|
9
|
+
label?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
invalid?: boolean;
|
|
13
|
+
/** Inclusive bounds. Also clamps the time-of-day when `showTime`/`timeOnly`. */
|
|
14
|
+
minDate?: Date;
|
|
15
|
+
maxDate?: Date;
|
|
16
|
+
/** Show prev/next + the clickable month/year view switcher. @default true */
|
|
17
|
+
navigation?: boolean;
|
|
18
|
+
/** Two months side-by-side at/above the `sm` breakpoint. @default false */
|
|
19
|
+
doubleMonth?: boolean;
|
|
20
|
+
/** Render the calendar in normal flow — no field, no floating panel. @default false */
|
|
21
|
+
inline?: boolean;
|
|
22
|
+
/** Show the '×' clear trigger once a value is selected. @default true */
|
|
23
|
+
clearable?: boolean;
|
|
24
|
+
/** Price badge under each day — the booking-calendar use case. */
|
|
25
|
+
prices?: DatePriceData[];
|
|
26
|
+
currency?: string;
|
|
27
|
+
/** BCP 47 tag, e.g. "es-MX". @default "en-US" */
|
|
28
|
+
locale?: string;
|
|
29
|
+
/** Show a native time input under the calendar. @default false */
|
|
30
|
+
showTime?: boolean;
|
|
31
|
+
/** Time-only — the calendar view is hidden, only the time input shows. @default false */
|
|
32
|
+
timeOnly?: boolean;
|
|
33
|
+
showSeconds?: boolean;
|
|
34
|
+
/** Render prop so consumers compose their own Clear/Apply buttons (e.g. Mare's
|
|
35
|
+
* own `<Button>`) instead of Mare hardcoding a footer. */
|
|
36
|
+
footer?: (helpers: {
|
|
37
|
+
close: () => void;
|
|
38
|
+
clear: () => void;
|
|
39
|
+
}) => ReactNode;
|
|
40
|
+
leadingIcon?: ReactNode;
|
|
41
|
+
/** Passed straight through to Ark's `<Portal container>` — see the
|
|
42
|
+
* mare-migrate-component skill's Portal section for why this must be
|
|
43
|
+
* exposed (a single `data-theme` on the document root is the default,
|
|
44
|
+
* correct, common case — this is only for multi-theme layouts). */
|
|
45
|
+
portalContainer?: RefObject<HTMLElement | null>;
|
|
46
|
+
onOpenChange?: (open: boolean) => void;
|
|
47
|
+
/** Fires whenever the visible month(s) change (navigation or open). The Vue
|
|
48
|
+
* DS also had a separate `month-change` event — every real consumer just
|
|
49
|
+
* `console.log`'d both with identical payloads, so this adapter exposes
|
|
50
|
+
* the one Ark already gives us (`onVisibleRangeChange`) instead of two. */
|
|
51
|
+
onVisibleMonthsChange?: (months: Date[]) => void;
|
|
52
|
+
}
|
package/dist/dialog/index.js
CHANGED
package/dist/drawer/index.js
CHANGED
package/dist/index/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
export { Accordion } from '../accordion';
|
|
2
|
+
export type { AccordionProperties, AccordionItemProperties, AccordionItemData, } from '../accordion';
|
|
1
3
|
export { Avatar } from '../avatar';
|
|
2
4
|
export type { AvatarProperties, AvatarSize } from '../avatar';
|
|
3
5
|
export { Badge } from '../badge';
|
|
4
6
|
export type { BadgeProperties, BadgeSeverity } from '../badge';
|
|
5
7
|
export { Tag } from '../tag';
|
|
6
8
|
export type { TagProperties, TagSeverity, TagSize } from '../tag';
|
|
9
|
+
export { Banner } from '../banner';
|
|
10
|
+
export type { BannerProperties, BannerSeverity } from '../banner';
|
|
7
11
|
export { Button } from '../button';
|
|
8
12
|
export type { ButtonProperties, ButtonSeverity, ButtonSize, ButtonVariant, IconPosition, } from '../button';
|
|
9
13
|
export { SelectField } from '../select-field';
|
|
@@ -20,8 +24,12 @@ export { Textarea } from '../textarea';
|
|
|
20
24
|
export type { TextareaProperties } from '../textarea';
|
|
21
25
|
export { SearchField } from '../search-field';
|
|
22
26
|
export type { SearchFieldProperties } from '../search-field';
|
|
27
|
+
export { Password, PasswordFooterItem } from '../password';
|
|
28
|
+
export type { PasswordProperties } from '../password';
|
|
23
29
|
export { InputNumber } from '../input-number';
|
|
24
30
|
export type { InputNumberProperties, InputNumberSize, } from '../input-number';
|
|
31
|
+
export { InputOtp } from '../input-otp';
|
|
32
|
+
export type { InputOtpProperties, InputOtpSize } from '../input-otp';
|
|
25
33
|
export { Checkbox } from '../checkbox';
|
|
26
34
|
export type { CheckboxProperties, CheckboxSize, CheckedState, } from '../checkbox';
|
|
27
35
|
export { RadioGroup } from '../radio-group';
|
|
@@ -34,3 +42,13 @@ export { Drawer, DrawerHeader, DrawerFooter } from '../drawer';
|
|
|
34
42
|
export type { DrawerProperties, DrawerPosition, DrawerHeaderProperties, DrawerFooterProperties, } from '../drawer';
|
|
35
43
|
export { Menu } from '../menu';
|
|
36
44
|
export type { MenuProperties, MenuItemData, MenuSeparatorEntry, MenuGroupEntry, MenuEntry, } from '../menu';
|
|
45
|
+
export { PanelMenu } from '../panel-menu';
|
|
46
|
+
export type { PanelMenuProperties, PanelMenuItemData, } from '../panel-menu';
|
|
47
|
+
export { Snackbar, createSnackbar } from '../snackbar';
|
|
48
|
+
export type { SnackbarProperties, SnackbarController, SnackbarConfig, SnackbarShowOptions, SnackbarSeverity, SnackbarPlacement, } from '../snackbar';
|
|
49
|
+
export { Stepper } from '../stepper';
|
|
50
|
+
export type { StepperProperties, StepItemData, StepperOrientation, StepperIndicatorVariant, } from '../stepper';
|
|
51
|
+
export { DatePicker } from '../date-picker';
|
|
52
|
+
export type { DatePickerProperties, DatePickerSelectionMode, DatePickerValue, DatePriceData, } from '../date-picker';
|
|
53
|
+
export { Paginator } from '../paginator';
|
|
54
|
+
export type { PaginatorProperties } from '../paginator';
|
package/dist/index/index.js
CHANGED
|
@@ -1,48 +1,68 @@
|
|
|
1
|
-
import { A as a } from "../shared/
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { T as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
1
|
+
import { A as a } from "../shared/Accordion-Cbs8KQ5v.js";
|
|
2
|
+
import { A as t } from "../shared/Avatar-D3QlO3Tz.js";
|
|
3
|
+
import { B as p } from "../shared/Badge-WC6my4Aw.js";
|
|
4
|
+
import { T as m } from "../shared/Tag-BtbmgIwL.js";
|
|
5
|
+
import { B as n } from "../shared/Banner-BWyV9K8e.js";
|
|
6
|
+
import { B as i } from "../shared/Button-AfMqNCme.js";
|
|
7
|
+
import { S } from "../shared/SelectField-dNCMdSYU.js";
|
|
8
|
+
import { C as b } from "../shared/Combobox-CBa1lnAd.js";
|
|
9
|
+
import { T as F } from "../shared/Tabs-BqIorZYD.js";
|
|
10
|
+
import { P as u } from "../shared/ProgressSpinner-B-lrS-tu.js";
|
|
11
|
+
import { I as T, a as g } from "../shared/IconField-Dh6j6SL1.js";
|
|
12
|
+
import { C as w, F as B, a as h, H as k } from "../shared/HelperText-CVWWvLCI.js";
|
|
13
|
+
import { T as H } from "../shared/Textarea-iJhYTZos.js";
|
|
14
|
+
import { S as R } from "../shared/SearchField-9bL2s8zj.js";
|
|
15
|
+
import { P as G, a as L } from "../shared/Password-vADi8ZJz.js";
|
|
16
|
+
import { I as O } from "../shared/InputNumber-D48wsE-o.js";
|
|
17
|
+
import { I as q } from "../shared/InputOtp-CUXXVP2E.js";
|
|
18
|
+
import { C as z } from "../shared/Checkbox-D17WWbSe.js";
|
|
19
|
+
import { R as J } from "../shared/RadioGroup-lw27DCoV.js";
|
|
20
|
+
import { S as Q } from "../shared/Switch-D6E2OmgE.js";
|
|
21
|
+
import { D as V, a as W, b as X } from "../shared/DialogFooter-0gaMdpXV.js";
|
|
22
|
+
import { D as Z, a as _, b as $ } from "../shared/DrawerFooter-CpO7chLC.js";
|
|
23
|
+
import { M as or } from "../shared/Menu-Cv9dU1iA.js";
|
|
24
|
+
import { P as er } from "../shared/PanelMenu-CYbr6cvz.js";
|
|
25
|
+
import { S as sr, c as pr } from "../shared/Snackbar-C29nLHO9.js";
|
|
26
|
+
import { S as mr } from "../shared/Stepper-DApoMP1U.js";
|
|
27
|
+
import { D as nr } from "../shared/DatePicker-BQulFC2D.js";
|
|
28
|
+
import { P as ir } from "../shared/Paginator-Da0XKfF3.js";
|
|
20
29
|
export {
|
|
21
|
-
a as
|
|
22
|
-
t as
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
30
|
+
a as Accordion,
|
|
31
|
+
t as Avatar,
|
|
32
|
+
p as Badge,
|
|
33
|
+
n as Banner,
|
|
34
|
+
i as Button,
|
|
35
|
+
w as CharacterCount,
|
|
36
|
+
z as Checkbox,
|
|
37
|
+
b as Combobox,
|
|
38
|
+
nr as DatePicker,
|
|
39
|
+
V as Dialog,
|
|
40
|
+
W as DialogFooter,
|
|
41
|
+
X as DialogHeader,
|
|
42
|
+
Z as Drawer,
|
|
43
|
+
_ as DrawerFooter,
|
|
44
|
+
$ as DrawerHeader,
|
|
45
|
+
B as FloatLabel,
|
|
46
|
+
h as FormField,
|
|
47
|
+
k as HelperText,
|
|
48
|
+
T as IconField,
|
|
49
|
+
O as InputNumber,
|
|
50
|
+
q as InputOtp,
|
|
51
|
+
g as InputText,
|
|
52
|
+
or as Menu,
|
|
53
|
+
ir as Paginator,
|
|
54
|
+
er as PanelMenu,
|
|
55
|
+
G as Password,
|
|
56
|
+
L as PasswordFooterItem,
|
|
57
|
+
u as ProgressSpinner,
|
|
58
|
+
J as RadioGroup,
|
|
59
|
+
R as SearchField,
|
|
60
|
+
S as SelectField,
|
|
61
|
+
sr as Snackbar,
|
|
62
|
+
mr as Stepper,
|
|
63
|
+
Q as Switch,
|
|
64
|
+
F as Tabs,
|
|
65
|
+
m as Tag,
|
|
66
|
+
H as Textarea,
|
|
67
|
+
pr as createSnackbar
|
|
48
68
|
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { InputOtpProperties } from './InputOtp.types';
|
|
2
|
+
export declare function InputOtp({ length, value, defaultValue, onValueChange, onComplete, size, mask, integerOnly, placeholder, invalid, disabled, readOnly, required, autoFocus, name, id, }: InputOtpProperties): import("react").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { InputOtpSize } from '@tpc-development/mare-ui-components-core/input-otp';
|
|
2
|
+
export type { InputOtpSize } from '@tpc-development/mare-ui-components-core/input-otp';
|
|
3
|
+
export interface InputOtpProperties {
|
|
4
|
+
/** Number of digit boxes to render. */
|
|
5
|
+
length?: number;
|
|
6
|
+
/** Controlled value, one character per digit. Omit to let Ark manage it. */
|
|
7
|
+
value?: string;
|
|
8
|
+
defaultValue?: string;
|
|
9
|
+
onValueChange?: (value: string) => void;
|
|
10
|
+
/** Fired once all digits are filled with a valid value. */
|
|
11
|
+
onComplete?: (value: string) => void;
|
|
12
|
+
size?: InputOtpSize;
|
|
13
|
+
/** Masks each digit like `type="password"`. */
|
|
14
|
+
mask?: boolean;
|
|
15
|
+
/** Restricts input to digits only. Set `false` for alphanumeric codes. */
|
|
16
|
+
integerOnly?: boolean;
|
|
17
|
+
/** Placeholder shown in each empty box. Defaults to '' (blank box) — Ark's
|
|
18
|
+
* own default is '○', which the Mare design doesn't use. */
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
invalid?: boolean;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
required?: boolean;
|
|
24
|
+
autoFocus?: boolean;
|
|
25
|
+
name?: string;
|
|
26
|
+
id?: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { PaginatorProperties } from './Paginator.types';
|
|
2
|
+
export declare function Paginator({ count, page, defaultPage, onPageChange, pageSize, defaultPageSize, onPageSizeChange, pageLinkSize, showFirstLastLinks, rowsPerPageOptions, rowsPerPageOptionsLabel, }: PaginatorProperties): import("react").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface PaginatorProperties {
|
|
2
|
+
/** Total number of data items (rows), NOT page count. */
|
|
3
|
+
count: number;
|
|
4
|
+
/** Controlled current page, 1-indexed. Omit to let Ark manage it. */
|
|
5
|
+
page?: number;
|
|
6
|
+
defaultPage?: number;
|
|
7
|
+
onPageChange?: (page: number) => void;
|
|
8
|
+
/** Items per page. */
|
|
9
|
+
pageSize?: number;
|
|
10
|
+
defaultPageSize?: number;
|
|
11
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
12
|
+
/** Numbered buttons shown at once — shrinks to fit a narrow container. */
|
|
13
|
+
pageLinkSize?: number;
|
|
14
|
+
/** Shows the jump-to-first/last-page buttons.
|
|
15
|
+
* @default true */
|
|
16
|
+
showFirstLastLinks?: boolean;
|
|
17
|
+
/** Shows the "rows per page" select when given 1+ options. */
|
|
18
|
+
rowsPerPageOptions?: number[];
|
|
19
|
+
/** @default 'Rows per page' */
|
|
20
|
+
rowsPerPageOptionsLabel?: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PanelMenuItemData } from '@tpc-development/mare-ui-components-core/panel-menu';
|
|
3
|
+
export type { PanelMenuItemData } from '@tpc-development/mare-ui-components-core/panel-menu';
|
|
4
|
+
export interface PanelMenuProperties {
|
|
5
|
+
items: PanelMenuItemData[];
|
|
6
|
+
/** Controlled expanded branch values. Omit to let Ark manage it (uncontrolled). */
|
|
7
|
+
expandedValue?: string[];
|
|
8
|
+
defaultExpandedValue?: string[];
|
|
9
|
+
onExpandedChange?: (value: string[]) => void;
|
|
10
|
+
/** Override the default icon + label row entirely. */
|
|
11
|
+
renderItem?: (item: PanelMenuItemData) => ReactNode;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PasswordProperties } from './Password.types';
|
|
3
|
+
export declare function Password({ value, onValueChange, size, rounded, invalid, disabled, toggleMask, showIcon, hideIcon, feedback, header, footer, promptLabel, weakLabel, mediumLabel, strongLabel, mediumRegex, strongRegex, ...native }: PasswordProperties): import("react").JSX.Element;
|
|
4
|
+
/** A single requirement row for `footer` (e.g. "At least one uppercase"). */
|
|
5
|
+
export declare function PasswordFooterItem({ children }: {
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { InputTextSize } from '@tpc-development/mare-ui-components-core/input-text';
|
|
3
|
+
type ForwardedNativeProperties = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'size' | 'type' | 'className' | 'style'>;
|
|
4
|
+
export interface PasswordProperties extends ForwardedNativeProperties {
|
|
5
|
+
/** Controlled value. */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** Controlled change handler — receives the next string value. */
|
|
8
|
+
onValueChange?: (value: string) => void;
|
|
9
|
+
size?: InputTextSize;
|
|
10
|
+
rounded?: boolean;
|
|
11
|
+
invalid?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Shows a button that toggles the value between hidden/visible. @default true */
|
|
14
|
+
toggleMask?: boolean;
|
|
15
|
+
/** Icon shown when the value is hidden — click reveals it. @default an eye icon */
|
|
16
|
+
showIcon?: ReactNode;
|
|
17
|
+
/** Icon shown when the value is visible — click hides it. @default an eye-off icon */
|
|
18
|
+
hideIcon?: ReactNode;
|
|
19
|
+
/** Shows the strength-meter panel while the field has focus. @default true */
|
|
20
|
+
feedback?: boolean;
|
|
21
|
+
/** Custom content at the top of the feedback panel. */
|
|
22
|
+
header?: ReactNode;
|
|
23
|
+
/** Custom content at the bottom of the feedback panel, below a divider —
|
|
24
|
+
* e.g. a list of `PasswordFooterItem`s describing the requirements. */
|
|
25
|
+
footer?: ReactNode;
|
|
26
|
+
/** Label shown before there's a value. @default 'Please enter a password' */
|
|
27
|
+
promptLabel?: string;
|
|
28
|
+
/** @default 'Weak' */
|
|
29
|
+
weakLabel?: string;
|
|
30
|
+
/** @default 'Medium' */
|
|
31
|
+
mediumLabel?: string;
|
|
32
|
+
/** @default 'Strong' */
|
|
33
|
+
strongLabel?: string;
|
|
34
|
+
/** Regex (as a string) a value must match to count as at least 'medium'. */
|
|
35
|
+
mediumRegex?: string;
|
|
36
|
+
/** Regex (as a string) a value must match to count as 'strong'. */
|
|
37
|
+
strongRegex?: string;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as a, jsxs as m } from "react/jsx-runtime";
|
|
2
|
+
import { Accordion as r } from "@ark-ui/react/accordion";
|
|
3
|
+
import { C as c } from "./icons-bQxPPV8R.js";
|
|
4
|
+
const d = "mare:w-full", u = (t) => `
|
|
5
|
+
mare:flex mare:flex-col
|
|
6
|
+
${t ? "mare:border-b mare:border-default" : ""}
|
|
7
|
+
`, f = `
|
|
8
|
+
mare:w-full mare:flex mare:items-center mare:justify-between mare:gap-3
|
|
9
|
+
mare:bg-transparent mare:border-none mare:text-left mare:cursor-pointer
|
|
10
|
+
mare:py-4 mare:tpc-typography-label-m mare:text-default
|
|
11
|
+
mare:transition-colors mare:duration-200
|
|
12
|
+
mare:focus-visible:outline mare:focus-visible:outline-1 mare:focus-visible:outline-accent mare:focus-visible:-outline-offset-1
|
|
13
|
+
mare:disabled:cursor-not-allowed mare:disabled:opacity-50 mare:disabled:pointer-events-none
|
|
14
|
+
`, p = "mare:flex mare:flex-col mare:items-start mare:gap-0.5 mare:text-left", b = "mare:tpc-typography-body-s mare:text-weak", h = `
|
|
15
|
+
mare:flex mare:items-center mare:justify-center mare:shrink-0 mare:text-default
|
|
16
|
+
mare:transition-transform mare:ark-open:rotate-180 mare:[&>svg]:size-5
|
|
17
|
+
`, x = `
|
|
18
|
+
mare:overflow-hidden mare:pb-4
|
|
19
|
+
mare:ark-open:[animation:mare-panel-menu-branch-open_250ms_ease-out]
|
|
20
|
+
mare:ark-closed:[animation:mare-panel-menu-branch-close_200ms_ease-in]
|
|
21
|
+
`;
|
|
22
|
+
function w({
|
|
23
|
+
items: t,
|
|
24
|
+
value: n,
|
|
25
|
+
defaultValue: o,
|
|
26
|
+
onValueChange: s,
|
|
27
|
+
multiple: l = !1,
|
|
28
|
+
collapsible: i = !0
|
|
29
|
+
}) {
|
|
30
|
+
return /* @__PURE__ */ a(
|
|
31
|
+
r.Root,
|
|
32
|
+
{
|
|
33
|
+
className: d,
|
|
34
|
+
value: n,
|
|
35
|
+
defaultValue: o,
|
|
36
|
+
multiple: l,
|
|
37
|
+
collapsible: i,
|
|
38
|
+
onValueChange: (e) => s?.(e.value),
|
|
39
|
+
children: t.map((e) => /* @__PURE__ */ m(
|
|
40
|
+
r.Item,
|
|
41
|
+
{
|
|
42
|
+
value: e.value,
|
|
43
|
+
disabled: e.disabled,
|
|
44
|
+
className: u(e.divider ?? !0),
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ m(r.ItemTrigger, { className: f, children: [
|
|
47
|
+
/* @__PURE__ */ m("span", { className: p, children: [
|
|
48
|
+
/* @__PURE__ */ a("span", { children: e.title }),
|
|
49
|
+
e.subtitle && /* @__PURE__ */ a("span", { className: b, children: e.subtitle })
|
|
50
|
+
] }),
|
|
51
|
+
/* @__PURE__ */ a(r.ItemIndicator, { className: h, children: /* @__PURE__ */ a(c, {}) })
|
|
52
|
+
] }),
|
|
53
|
+
/* @__PURE__ */ a(r.ItemContent, { className: x, children: e.content })
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
e.value
|
|
57
|
+
))
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
w as A
|
|
63
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs as t, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { B as d } from "./Button-AfMqNCme.js";
|
|
3
|
+
import { a as o } from "./icons-bQxPPV8R.js";
|
|
4
|
+
const c = `
|
|
5
|
+
mare:w-full mare:max-w-md mare:rounded-tpc-container-s mare:p-4
|
|
6
|
+
mare:flex mare:items-start mare:justify-between mare:gap-4
|
|
7
|
+
mare:data-severity-neutral:bg-alternative
|
|
8
|
+
mare:data-severity-brand:bg-accent-weak
|
|
9
|
+
mare:data-severity-positive:bg-positive-weak
|
|
10
|
+
mare:data-severity-warning:bg-warning-weak
|
|
11
|
+
mare:data-severity-danger:bg-danger-weak
|
|
12
|
+
`, p = "mare:flex mare:grow mare:items-start mare:gap-4", g = "mare:shrink-0 mare:text-default mare:[&>svg]:size-3.5", f = "mare:flex mare:grow mare:flex-col mare:gap-2", v = "mare:tpc-typography-label-m mare:text-default", y = (e) => `mare:tpc-typography-body-s ${e ? "mare:text-disabled" : "mare:text-default"}`, x = (e, r) => r ? "disabled" : e;
|
|
13
|
+
function h({
|
|
14
|
+
severity: e = "neutral",
|
|
15
|
+
title: r,
|
|
16
|
+
icon: m,
|
|
17
|
+
disabled: s = !1,
|
|
18
|
+
closable: l = !1,
|
|
19
|
+
onClose: n,
|
|
20
|
+
children: i
|
|
21
|
+
}) {
|
|
22
|
+
return /* @__PURE__ */ t(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
className: c,
|
|
26
|
+
"data-severity": x(e, s),
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ t("div", { className: p, children: [
|
|
29
|
+
m && /* @__PURE__ */ a("span", { className: g, children: m }),
|
|
30
|
+
/* @__PURE__ */ t("div", { className: f, children: [
|
|
31
|
+
r && /* @__PURE__ */ a("p", { className: v, children: r }),
|
|
32
|
+
i && /* @__PURE__ */ a("div", { className: y(s), children: i })
|
|
33
|
+
] })
|
|
34
|
+
] }),
|
|
35
|
+
l && /* @__PURE__ */ a(
|
|
36
|
+
d,
|
|
37
|
+
{
|
|
38
|
+
severity: "ghost",
|
|
39
|
+
iconOnly: !0,
|
|
40
|
+
size: "xsmall",
|
|
41
|
+
icon: /* @__PURE__ */ a(o, {}),
|
|
42
|
+
onClick: n,
|
|
43
|
+
"aria-label": "Close"
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
h as B
|
|
52
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { Checkbox as a } from "@ark-ui/react/checkbox";
|
|
3
|
-
import {
|
|
3
|
+
import { b as f, M as x } from "./icons-bQxPPV8R.js";
|
|
4
4
|
const v = `
|
|
5
5
|
mare:group/checkbox
|
|
6
6
|
mare:relative mare:inline-flex mare:items-center mare:gap-2
|