@ratio-ui/core 0.2.0 → 0.3.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/dist/catalogue.json +1091 -10
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +67 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert-dialog/AlertDialog.d.ts +48 -0
- package/dist/components/alert-dialog/AlertDialog.js +76 -0
- package/dist/components/alert-dialog/index.d.ts +2 -0
- package/dist/components/alert-dialog/index.js +1 -0
- package/dist/components/app-shell/AppShell.js +1 -1
- package/dist/components/calendar/Calendar.d.ts +20 -0
- package/dist/components/calendar/Calendar.js +119 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/calendar/index.js +1 -0
- package/dist/components/checkbox-list/CheckboxList.d.ts +36 -0
- package/dist/components/checkbox-list/CheckboxList.js +93 -0
- package/dist/components/checkbox-list/index.d.ts +2 -0
- package/dist/components/checkbox-list/index.js +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +24 -0
- package/dist/components/collapsible/Collapsible.js +58 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/data-table/DataTable.js +1 -1
- package/dist/components/date-picker/DatePicker.d.ts +33 -0
- package/dist/components/date-picker/DatePicker.js +104 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-range-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-range-picker/DateRangePicker.js +142 -0
- package/dist/components/date-range-picker/index.d.ts +2 -0
- package/dist/components/date-range-picker/index.js +1 -0
- package/dist/components/field/Field.d.ts +35 -0
- package/dist/components/field/Field.js +67 -0
- package/dist/components/field/Label.d.ts +8 -0
- package/dist/components/field/Label.js +13 -0
- package/dist/components/field/index.d.ts +3 -0
- package/dist/components/field/index.js +3 -0
- package/dist/components/filter-tabs/FilterTabs.js +1 -1
- package/dist/components/global-search/GlobalSearch.js +1 -1
- package/dist/components/icon/registry.d.ts +2 -2
- package/dist/components/icon/registry.js +5 -1
- package/dist/components/input-group/InputGroup.js +1 -1
- package/dist/components/link/Link.d.ts +22 -0
- package/dist/components/link/Link.js +31 -0
- package/dist/components/link/index.d.ts +2 -0
- package/dist/components/link/index.js +1 -0
- package/dist/components/media-grid/MediaGrid.d.ts +49 -0
- package/dist/components/media-grid/MediaGrid.js +303 -0
- package/dist/components/media-grid/index.d.ts +2 -0
- package/dist/components/media-grid/index.js +1 -0
- package/dist/components/money-input/MoneyInput.d.ts +30 -0
- package/dist/components/money-input/MoneyInput.js +72 -0
- package/dist/components/money-input/index.d.ts +2 -0
- package/dist/components/money-input/index.js +1 -0
- package/dist/components/page-header/PageHeader.js +1 -1
- package/dist/components/save-bar/SaveBar.d.ts +27 -0
- package/dist/components/save-bar/SaveBar.js +37 -0
- package/dist/components/save-bar/index.d.ts +2 -0
- package/dist/components/save-bar/index.js +1 -0
- package/dist/components/search-field/SearchField.js +1 -1
- package/dist/components/select/Select.d.ts +40 -0
- package/dist/components/select/Select.js +84 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/side-nav/SideNav.js +3 -3
- package/dist/components/summary-chips/SummaryChips.d.ts +17 -0
- package/dist/components/summary-chips/SummaryChips.js +19 -0
- package/dist/components/summary-chips/index.d.ts +2 -0
- package/dist/components/summary-chips/index.js +1 -0
- package/dist/components/switch/Switch.d.ts +10 -0
- package/dist/components/switch/Switch.js +20 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/table/Table.js +1 -1
- package/dist/components/tag-input/TagInput.d.ts +44 -0
- package/dist/components/tag-input/TagInput.js +102 -0
- package/dist/components/tag-input/index.d.ts +2 -0
- package/dist/components/tag-input/index.js +1 -0
- package/dist/components/textarea/Textarea.d.ts +15 -0
- package/dist/components/textarea/Textarea.js +21 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/top-bar/StoreSwitcher.js +1 -1
- package/dist/components/top-bar/TopBar.js +2 -2
- package/dist/components/unit-input/UnitInput.d.ts +33 -0
- package/dist/components/unit-input/UnitInput.js +47 -0
- package/dist/components/unit-input/index.d.ts +2 -0
- package/dist/components/unit-input/index.js +1 -0
- package/dist/index.d.ts +43 -6
- package/dist/index.js +26 -7
- package/dist/lib/cn.js +7 -1
- package/dist/lib/format.d.ts +65 -4
- package/dist/lib/format.js +163 -6
- package/dist/styles.css +1 -1
- package/package.json +78 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ShellNavContext } from "../app-shell/context.js";
|
|
2
1
|
import { cn } from "../../lib/cn.js";
|
|
3
|
-
import { Avatar } from "../avatar/Avatar.js";
|
|
4
2
|
import { Icon } from "../icon/Icon.js";
|
|
3
|
+
import { ShellNavContext } from "../app-shell/context.js";
|
|
4
|
+
import { Avatar } from "../avatar/Avatar.js";
|
|
5
5
|
import { RatioLink } from "../link-provider/RatioLink.js";
|
|
6
|
-
import { use, useState, useSyncExternalStore } from "react";
|
|
7
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { use, useState, useSyncExternalStore } from "react";
|
|
8
8
|
import { Dialog } from "@base-ui/react/dialog";
|
|
9
9
|
// src/components/side-nav/SideNav.tsx
|
|
10
10
|
const PHONE_QUERY = "(max-width: 767px)";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HTMLAttributes, JSX, Ref } from "react";
|
|
2
|
+
/** One chip: a label, with an optional value after it ("Includes GST" and "Yes"). */
|
|
3
|
+
export interface SummaryChip {
|
|
4
|
+
/** The label, such as Cost price or HSN code. */
|
|
5
|
+
label: string;
|
|
6
|
+
/** The value, shown after the label in the foreground ink. Leave out for a chip that is only a name. */
|
|
7
|
+
value?: string;
|
|
8
|
+
}
|
|
9
|
+
/** The props of SummaryChips: the HTML attributes of a list, except className and style, with the chips. */
|
|
10
|
+
export type SummaryChipsProps = Omit<HTMLAttributes<HTMLUListElement>, 'className' | 'style' | 'children'> & {
|
|
11
|
+
/** The chips, in order. Nothing is rendered when empty. */
|
|
12
|
+
items: readonly SummaryChip[];
|
|
13
|
+
/** Receives the rendered list. */
|
|
14
|
+
ref?: Ref<HTMLUListElement>;
|
|
15
|
+
};
|
|
16
|
+
/** A row of 20px chips that summarise values, such as the ones a collapsed section still shows. */
|
|
17
|
+
export declare function SummaryChips({ items, ref, ...rest }: SummaryChipsProps): JSX.Element | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
// src/components/summary-chips/SummaryChips.tsx
|
|
3
|
+
/** A row of 20px chips that summarise values, such as the ones a collapsed section still shows. */
|
|
4
|
+
function SummaryChips({ items, ref, ...rest }) {
|
|
5
|
+
if (items.length === 0) return null;
|
|
6
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
7
|
+
...rest,
|
|
8
|
+
ref,
|
|
9
|
+
className: "rt:m-0 rt:flex rt:list-none rt:flex-wrap rt:gap-1 rt:p-0",
|
|
10
|
+
children: items.map((item) => /* @__PURE__ */ jsxs("li", {
|
|
11
|
+
className: "rt:inline-flex rt:h-5 rt:items-center rt:gap-1 rt:rounded-sm rt:border rt:border-status-neutral-border rt:bg-status-neutral-background rt:px-2 rt:text-c1 rt:whitespace-nowrap rt:text-status-neutral-foreground",
|
|
12
|
+
children: [/* @__PURE__ */ jsx("span", { children: item.label }), item.value !== void 0 ? /* @__PURE__ */ jsx("span", {
|
|
13
|
+
className: "rt:text-c2 rt:text-foreground",
|
|
14
|
+
children: item.value
|
|
15
|
+
}) : null]
|
|
16
|
+
}, item.label))
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export { SummaryChips };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SummaryChips } from "./SummaryChips.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JSX } from "react";
|
|
2
|
+
import { Switch } from "@base-ui/react/switch";
|
|
3
|
+
/** The props of Switch: Base UI's switch props, except className, style and render. Give it an aria-label or a label that points to it. */
|
|
4
|
+
export type SwitchProps = Omit<Switch.Root.Props, 'className' | 'style' | 'render'>;
|
|
5
|
+
/**
|
|
6
|
+
* An on/off switch, 32px by 18px. Off it is drawn with the control hairline; on it is filled in the primary colour.
|
|
7
|
+
* In forced-colours mode the thumb keeps a system-colour outline, and its side shows the state. The thumb jumps to the other end with no slide, and colours fade over 120ms.
|
|
8
|
+
*/
|
|
9
|
+
declare function Switch$1({ ...props }: SwitchProps): JSX.Element;
|
|
10
|
+
export { Switch$1 as Switch };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { cn } from "../../lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Switch } from "@base-ui/react/switch";
|
|
4
|
+
// src/components/switch/Switch.tsx
|
|
5
|
+
/**
|
|
6
|
+
* An on/off switch, 32px by 18px. Off it is drawn with the control hairline; on it is filled in the primary colour.
|
|
7
|
+
* In forced-colours mode the thumb keeps a system-colour outline, and its side shows the state. The thumb jumps to the other end with no slide, and colours fade over 120ms.
|
|
8
|
+
*/
|
|
9
|
+
function Switch$1({ ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Switch.Root, {
|
|
11
|
+
"data-slot": "switch",
|
|
12
|
+
className: cn("rt:peer rt:relative rt:inline-flex rt:h-4.5 rt:w-8 rt:shrink-0 rt:cursor-pointer rt:items-center rt:justify-start rt:rounded-3xl rt:bg-background rt:shadow-ring-hairline rt:transition-colors rt:outline-none", "rt:after:absolute rt:after:-inset-x-1.5 rt:after:-inset-y-1.5", "rt:data-checked:justify-end rt:data-checked:bg-primary rt:data-checked:shadow-none", "rt:focus-visible:focus-ring rt:forced-outline", "rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid", "rt:data-disabled:cursor-not-allowed rt:data-disabled:opacity-50"),
|
|
13
|
+
...props,
|
|
14
|
+
children: /* @__PURE__ */ jsx(Switch.Thumb, {
|
|
15
|
+
"data-slot": "switch-thumb",
|
|
16
|
+
className: "rt:pointer-events-none rt:mx-0.5 rt:block rt:size-3.5 rt:rounded-3xl rt:forced-outline rt:bg-control rt:transition-colors rt:data-checked:bg-primary-foreground"
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export { Switch$1 as Switch };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Switch } from "./Switch.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.js";
|
|
2
|
-
import { createContext, use } from "react";
|
|
3
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, use } from "react";
|
|
4
4
|
// src/components/table/Table.tsx
|
|
5
5
|
const SectionContext = createContext("body");
|
|
6
6
|
const BoxContext = createContext(false);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { JSX, Ref } from "react";
|
|
2
|
+
/** The props of TagInput. Field's wiring (id, aria-describedby, aria-invalid, aria-required, disabled) lands on the picker. */
|
|
3
|
+
export type TagInputProps = {
|
|
4
|
+
/** The existing values the picker offers, such as S, M, L, XL and XXL. */
|
|
5
|
+
options: readonly string[];
|
|
6
|
+
/** The chosen values, in order, when the owner holds the state. */
|
|
7
|
+
value?: readonly string[];
|
|
8
|
+
/** The values chosen at first, when the component holds the state. */
|
|
9
|
+
defaultValue?: readonly string[];
|
|
10
|
+
/** Called with every new list of values: after a pick, an added value or a removal. */
|
|
11
|
+
onValueChange?: (value: string[]) => void;
|
|
12
|
+
/** Shows a small field that adds a typed value on Enter. Defaults to true. */
|
|
13
|
+
creatable?: boolean;
|
|
14
|
+
/** The placeholder and accessible name of the small field. Defaults to "Add value". */
|
|
15
|
+
addLabel?: string;
|
|
16
|
+
/** The placeholder of the picker, shown while nothing is chosen. */
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
/** The line the list shows when no value matches the typed text. Defaults to "No matching values". */
|
|
19
|
+
emptyText?: string;
|
|
20
|
+
/** The form field name: one hidden input per chosen value is submitted under it. */
|
|
21
|
+
name?: string;
|
|
22
|
+
/** Dims the component and stops every change. */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** The id of the picker's input, which a label points to. */
|
|
25
|
+
id?: string;
|
|
26
|
+
/** The accessible name of the picker, when no label points to it. */
|
|
27
|
+
'aria-label'?: string;
|
|
28
|
+
/** The id of the element that names the picker. */
|
|
29
|
+
'aria-labelledby'?: string;
|
|
30
|
+
/** The ids of the hint or error that describe the component. */
|
|
31
|
+
'aria-describedby'?: string;
|
|
32
|
+
/** Marks the values as invalid, which draws the error ring. */
|
|
33
|
+
'aria-invalid'?: boolean | 'true' | 'false';
|
|
34
|
+
/** Marks the values as required. */
|
|
35
|
+
'aria-required'?: boolean | 'true' | 'false';
|
|
36
|
+
/** Receives the picker's input element. */
|
|
37
|
+
ref?: Ref<HTMLInputElement>;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Several values as chips in one field in the input's look. The picker offers the existing values (typing filters them),
|
|
41
|
+
* a small field below adds a new one on Enter, and a chip goes with its remove button or with Backspace in the empty
|
|
42
|
+
* picker. Base UI's combobox cannot accept a value it does not list, which is why new values have their own field.
|
|
43
|
+
*/
|
|
44
|
+
export declare function TagInput({ options, value, defaultValue, onValueChange, creatable, addLabel, placeholder, emptyText, name, disabled, id, ref, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired }: TagInputProps): JSX.Element;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { cn } from "../../lib/cn.js";
|
|
2
|
+
import { Icon } from "../icon/Icon.js";
|
|
3
|
+
import { Input } from "../input/Input.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useRef, useState } from "react";
|
|
6
|
+
import { Combobox } from "@base-ui/react/combobox";
|
|
7
|
+
// src/components/tag-input/TagInput.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Several values as chips in one field in the input's look. The picker offers the existing values (typing filters them),
|
|
10
|
+
* a small field below adds a new one on Enter, and a chip goes with its remove button or with Backspace in the empty
|
|
11
|
+
* picker. Base UI's combobox cannot accept a value it does not list, which is why new values have their own field.
|
|
12
|
+
*/
|
|
13
|
+
function TagInput({ options, value, defaultValue, onValueChange, creatable = true, addLabel = "Add value", placeholder, emptyText = "No matching values", name, disabled, id, ref, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired }) {
|
|
14
|
+
const [own, setOwn] = useState(defaultValue ?? []);
|
|
15
|
+
const [draft, setDraft] = useState("");
|
|
16
|
+
const anchorRef = useRef(null);
|
|
17
|
+
const current = value ?? own;
|
|
18
|
+
const items = [...options, ...current.filter((item) => !options.includes(item))];
|
|
19
|
+
const change = (next) => {
|
|
20
|
+
if (value === void 0) setOwn(next);
|
|
21
|
+
onValueChange?.(next);
|
|
22
|
+
};
|
|
23
|
+
const add = (event) => {
|
|
24
|
+
if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
const text = draft.trim();
|
|
27
|
+
setDraft("");
|
|
28
|
+
const same = (item) => item.toLowerCase() === text.toLowerCase();
|
|
29
|
+
if (text === "" || current.some(same)) return;
|
|
30
|
+
change([...current, options.find(same) ?? text]);
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
33
|
+
className: "rt:flex rt:w-full rt:flex-col rt:gap-1.5",
|
|
34
|
+
children: [/* @__PURE__ */ jsxs(Combobox.Root, {
|
|
35
|
+
multiple: true,
|
|
36
|
+
items,
|
|
37
|
+
value: [...current],
|
|
38
|
+
onValueChange: change,
|
|
39
|
+
disabled,
|
|
40
|
+
name,
|
|
41
|
+
children: [/* @__PURE__ */ jsxs(Combobox.Chips, {
|
|
42
|
+
ref: anchorRef,
|
|
43
|
+
"data-slot": "tag-input-chips",
|
|
44
|
+
className: cn("rt:flex rt:min-h-9 rt:w-full rt:min-w-0 rt:flex-wrap rt:items-center rt:gap-1 rt:rounded-lg rt:bg-background rt:py-2 rt:pr-3 rt:shadow-ring-subtle rt:transition-colors rt:forced-outline rt:focus-within:shadow-ring-focus rt:has-aria-invalid:shadow-ring-invalid rt:has-aria-invalid:focus-within:shadow-ring-invalid rt:has-disabled:opacity-50", current.length > 0 ? "rt:pl-2" : "rt:pl-3"),
|
|
45
|
+
children: [current.map((item) => /* @__PURE__ */ jsxs(Combobox.Chip, {
|
|
46
|
+
className: "rt:inline-flex rt:h-5 rt:items-center rt:gap-1 rt:rounded-sm rt:border rt:border-status-neutral-border rt:bg-status-neutral-background rt:pr-0.5 rt:pl-2 rt:text-c1 rt:whitespace-nowrap rt:text-status-neutral-foreground rt:outline-none rt:focus-visible:focus-ring",
|
|
47
|
+
children: [item, /* @__PURE__ */ jsx(Combobox.ChipRemove, {
|
|
48
|
+
"aria-label": `Remove ${item}`,
|
|
49
|
+
className: "rt:flex rt:size-4 rt:items-center rt:justify-center rt:rounded-sm rt:text-muted-foreground rt:transition-colors rt:hover:text-foreground rt:focus-visible:focus-ring rt:disabled:pointer-events-none",
|
|
50
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "x" })
|
|
51
|
+
})]
|
|
52
|
+
}, item)), /* @__PURE__ */ jsx(Combobox.Input, {
|
|
53
|
+
ref,
|
|
54
|
+
id,
|
|
55
|
+
"aria-label": ariaLabel,
|
|
56
|
+
"aria-labelledby": ariaLabelledBy,
|
|
57
|
+
"aria-describedby": ariaDescribedBy,
|
|
58
|
+
"aria-invalid": ariaInvalid,
|
|
59
|
+
"aria-required": ariaRequired,
|
|
60
|
+
placeholder: current.length === 0 ? placeholder : void 0,
|
|
61
|
+
className: "rt:h-5 rt:min-w-16 rt:flex-1 rt:bg-transparent rt:text-b3 rt:text-foreground rt:outline-none rt:placeholder:text-muted-foreground rt:disabled:cursor-not-allowed"
|
|
62
|
+
})]
|
|
63
|
+
}), /* @__PURE__ */ jsx(Combobox.Portal, { children: /* @__PURE__ */ jsx(Combobox.Positioner, {
|
|
64
|
+
anchor: anchorRef,
|
|
65
|
+
side: "bottom",
|
|
66
|
+
sideOffset: 4,
|
|
67
|
+
align: "start",
|
|
68
|
+
className: "rt:isolate rt:z-50",
|
|
69
|
+
children: /* @__PURE__ */ jsxs(Combobox.Popup, {
|
|
70
|
+
className: "rt:max-h-available rt:w-anchor rt:max-w-available rt:overflow-y-auto rt:rounded-lg rt:border rt:border-border rt:bg-popover rt:py-1.5 rt:text-b3 rt:text-popover-foreground rt:outline-hidden rt:transition-colors",
|
|
71
|
+
children: [/* @__PURE__ */ jsx(Combobox.Empty, {
|
|
72
|
+
className: "rt:px-3 rt:py-1 rt:text-b3 rt:text-muted-foreground rt:empty:hidden",
|
|
73
|
+
children: emptyText
|
|
74
|
+
}), /* @__PURE__ */ jsx(Combobox.List, { children: (item) => /* @__PURE__ */ jsxs(Combobox.Item, {
|
|
75
|
+
value: item,
|
|
76
|
+
className: "rt:relative rt:flex rt:h-7 rt:cursor-default rt:items-center rt:gap-2 rt:pr-8 rt:pl-3 rt:text-b3 rt:text-foreground rt:outline-none rt:select-none rt:transition-colors rt:data-highlighted:bg-accent rt:data-highlighted:text-accent-foreground rt:data-disabled:pointer-events-none rt:data-disabled:opacity-50",
|
|
77
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
78
|
+
className: "rt:flex-1 rt:truncate",
|
|
79
|
+
children: item
|
|
80
|
+
}), /* @__PURE__ */ jsx(Combobox.ItemIndicator, {
|
|
81
|
+
render: /* @__PURE__ */ jsx("span", { className: "rt:pointer-events-none rt:absolute rt:right-3 rt:flex" }),
|
|
82
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "check" })
|
|
83
|
+
})]
|
|
84
|
+
}, item) })]
|
|
85
|
+
})
|
|
86
|
+
}) })]
|
|
87
|
+
}), creatable ? /* @__PURE__ */ jsx("div", {
|
|
88
|
+
className: "rt:w-40",
|
|
89
|
+
children: /* @__PURE__ */ jsx(Input, {
|
|
90
|
+
size: 32,
|
|
91
|
+
"aria-label": addLabel,
|
|
92
|
+
placeholder: addLabel,
|
|
93
|
+
"aria-describedby": ariaDescribedBy,
|
|
94
|
+
value: draft,
|
|
95
|
+
onChange: (event) => setDraft(event.target.value),
|
|
96
|
+
onKeyDown: add,
|
|
97
|
+
disabled
|
|
98
|
+
})
|
|
99
|
+
}) : null]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export { TagInput };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TagInput } from "./TagInput.js";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { JSX, Ref, TextareaHTMLAttributes } from "react";
|
|
2
|
+
/** The minimum height of the field in px: 88 for a description, 64 for a compact one. */
|
|
3
|
+
export type TextareaSize = 88 | 64;
|
|
4
|
+
/**
|
|
5
|
+
* The props of Textarea: the HTML attributes of a textarea, except className, style and the HTML size, with the height.
|
|
6
|
+
* Mark an invalid field with aria-invalid, which draws the error ring.
|
|
7
|
+
*/
|
|
8
|
+
export type TextareaProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'style'> & {
|
|
9
|
+
/** The height in px: 88 by default, 64 compact. The field can still be dragged taller. */
|
|
10
|
+
size?: TextareaSize;
|
|
11
|
+
/** Receives the textarea element. */
|
|
12
|
+
ref?: Ref<HTMLTextAreaElement>;
|
|
13
|
+
};
|
|
14
|
+
/** A multi-line text field in the input's look: 8px radius, 1px ring that turns blue on focus, 10px 12px padding, 88px tall (64px compact). */
|
|
15
|
+
export declare function Textarea({ size, ref, ...rest }: TextareaProps): JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cn } from "../../lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
// src/components/textarea/Textarea.tsx
|
|
5
|
+
const textareaVariants = cva("rt:block rt:w-full rt:min-w-0 rt:resize-y rt:rounded-lg rt:bg-background rt:border-y-2 rt:border-transparent rt:px-3 rt:py-2 rt:text-b3 rt:text-foreground rt:placeholder:text-muted-foreground rt:shadow-ring-subtle rt:outline-none rt:transition-colors rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
|
|
6
|
+
variants: { size: {
|
|
7
|
+
88: "rt:min-h-22",
|
|
8
|
+
64: "rt:min-h-16"
|
|
9
|
+
} },
|
|
10
|
+
defaultVariants: { size: 88 }
|
|
11
|
+
});
|
|
12
|
+
/** A multi-line text field in the input's look: 8px radius, 1px ring that turns blue on focus, 10px 12px padding, 88px tall (64px compact). */
|
|
13
|
+
function Textarea({ size = 88, ref, ...rest }) {
|
|
14
|
+
return /* @__PURE__ */ jsx("textarea", {
|
|
15
|
+
"data-slot": "textarea",
|
|
16
|
+
ref,
|
|
17
|
+
className: cn(textareaVariants({ size })),
|
|
18
|
+
...rest
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export { Textarea };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Textarea } from "./Textarea.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Avatar } from "../avatar/Avatar.js";
|
|
2
1
|
import { Icon } from "../icon/Icon.js";
|
|
2
|
+
import { Avatar } from "../avatar/Avatar.js";
|
|
3
3
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger } from "../dropdown-menu/DropdownMenu.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
// src/components/top-bar/StoreSwitcher.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ShellNavContext } from "../app-shell/context.js";
|
|
2
1
|
import { Icon } from "../icon/Icon.js";
|
|
3
|
-
import {
|
|
2
|
+
import { ShellNavContext } from "../app-shell/context.js";
|
|
4
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { use } from "react";
|
|
5
5
|
// src/components/top-bar/TopBar.tsx
|
|
6
6
|
/**
|
|
7
7
|
* The bar across the top of every page: logo, search, actions, the store switcher and the account. It is 60px high on a
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { InputGroupSize } from "../input-group/InputGroup.js";
|
|
2
|
+
import "../input-group/index.js";
|
|
3
|
+
import { InputHTMLAttributes, JSX, Ref } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* The props of UnitInput: the HTML attributes of an input, except className, style, size and the ones the field sets
|
|
6
|
+
* itself (type, inputMode, step, onChange), with the unit and the number in and out. Mark an invalid field with
|
|
7
|
+
* aria-invalid, which draws the error ring around the whole group.
|
|
8
|
+
*/
|
|
9
|
+
export type UnitInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style' | 'size' | 'type' | 'inputMode' | 'step' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max'> & {
|
|
10
|
+
/** The unit after the number, such as kg or cm. Screen readers read it as the field's description. */
|
|
11
|
+
unit: string;
|
|
12
|
+
/** The number, or null for an empty field. Pass it to control the field. */
|
|
13
|
+
value?: number | null;
|
|
14
|
+
/** The starting number when the field is not controlled. Defaults to empty. */
|
|
15
|
+
defaultValue?: number | null;
|
|
16
|
+
/** Called with the number as it is typed or cleared (null when empty), and with the rounded number on blur. */
|
|
17
|
+
onValueChange?: (value: number | null) => void;
|
|
18
|
+
/** The most decimals the number keeps; the field rounds to them on blur. Defaults to 3 (grams in kg). */
|
|
19
|
+
decimals?: number;
|
|
20
|
+
/** The smallest number; the field moves a smaller one up to it on blur. */
|
|
21
|
+
min?: number;
|
|
22
|
+
/** The largest number; the field moves a larger one down to it on blur. */
|
|
23
|
+
max?: number;
|
|
24
|
+
/** The height in px: 36 for forms, 32 for fields inside a table. Defaults to 36. */
|
|
25
|
+
size?: InputGroupSize;
|
|
26
|
+
/** Receives the input element. */
|
|
27
|
+
ref?: Ref<HTMLInputElement>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* A number field with its unit after it, inside one ring: a weight in kg, a length in cm. It takes and gives a number,
|
|
31
|
+
* written without thousands separators as counts are, and keeps at most `decimals` decimals.
|
|
32
|
+
*/
|
|
33
|
+
export declare function UnitInput({ unit, value, defaultValue, onValueChange, decimals, min, max, size, id, name, disabled, readOnly, required, 'aria-describedby': describedBy, ref, ...rest }: UnitInputProps): JSX.Element;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { FORMAT } from "../../lib/format.js";
|
|
2
|
+
import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText } from "../input-group/InputGroup.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
6
|
+
// src/components/unit-input/UnitInput.tsx
|
|
7
|
+
/**
|
|
8
|
+
* A number field with its unit after it, inside one ring: a weight in kg, a length in cm. It takes and gives a number,
|
|
9
|
+
* written without thousands separators as counts are, and keeps at most `decimals` decimals.
|
|
10
|
+
*/
|
|
11
|
+
function UnitInput({ unit, value, defaultValue, onValueChange, decimals = 3, min, max, size = 36, id, name, disabled, readOnly, required, "aria-describedby": describedBy, ref, ...rest }) {
|
|
12
|
+
const unitId = useId();
|
|
13
|
+
return /* @__PURE__ */ jsx(NumberField.Root, {
|
|
14
|
+
id,
|
|
15
|
+
name,
|
|
16
|
+
value,
|
|
17
|
+
defaultValue: defaultValue ?? void 0,
|
|
18
|
+
onValueChange: (next) => onValueChange?.(next),
|
|
19
|
+
locale: FORMAT.locale,
|
|
20
|
+
format: {
|
|
21
|
+
maximumFractionDigits: decimals,
|
|
22
|
+
useGrouping: false
|
|
23
|
+
},
|
|
24
|
+
min,
|
|
25
|
+
max,
|
|
26
|
+
disabled,
|
|
27
|
+
readOnly,
|
|
28
|
+
required,
|
|
29
|
+
children: /* @__PURE__ */ jsxs(InputGroup, {
|
|
30
|
+
size,
|
|
31
|
+
"aria-disabled": disabled || void 0,
|
|
32
|
+
children: [/* @__PURE__ */ jsx(NumberField.Input, {
|
|
33
|
+
render: /* @__PURE__ */ jsx(InputGroupInput, {}),
|
|
34
|
+
ref,
|
|
35
|
+
"aria-describedby": describedBy === void 0 ? unitId : `${unitId} ${describedBy}`,
|
|
36
|
+
...rest
|
|
37
|
+
}), /* @__PURE__ */ jsx(InputGroupAddon, {
|
|
38
|
+
align: "end",
|
|
39
|
+
children: /* @__PURE__ */ jsx(InputGroupText, {
|
|
40
|
+
id: unitId,
|
|
41
|
+
children: unit
|
|
42
|
+
})
|
|
43
|
+
})]
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export { UnitInput };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UnitInput } from "./UnitInput.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,35 @@
|
|
|
1
|
+
import { Button, ButtonProps, ButtonVariant } from "./components/button/Button.js";
|
|
2
|
+
import "./components/button/index.js";
|
|
3
|
+
import { AlertDialog, AlertDialogAction, AlertDialogActionProps, AlertDialogCancel, AlertDialogCancelProps, AlertDialogContent, AlertDialogContentProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogFooter, AlertDialogFooterProps, AlertDialogHeader, AlertDialogHeaderProps, AlertDialogTitle, AlertDialogTitleProps, AlertDialogTrigger, AlertDialogTriggerProps } from "./components/alert-dialog/AlertDialog.js";
|
|
4
|
+
import "./components/alert-dialog/index.js";
|
|
5
|
+
import { Alert, AlertProps, AlertTone } from "./components/alert/Alert.js";
|
|
6
|
+
import "./components/alert/index.js";
|
|
1
7
|
import { AppShell, AppShellProps } from "./components/app-shell/AppShell.js";
|
|
2
8
|
import "./components/app-shell/index.js";
|
|
3
9
|
import { Avatar, AvatarProps, AvatarShape, AvatarSize, getInitials } from "./components/avatar/Avatar.js";
|
|
4
10
|
import "./components/avatar/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import "./components/
|
|
11
|
+
import { Calendar, CalendarProps } from "./components/calendar/Calendar.js";
|
|
12
|
+
import "./components/calendar/index.js";
|
|
7
13
|
import { Card, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps } from "./components/card/Card.js";
|
|
8
14
|
import "./components/card/index.js";
|
|
15
|
+
import { CheckboxList, CheckboxListItem, CheckboxListProps } from "./components/checkbox-list/CheckboxList.js";
|
|
16
|
+
import "./components/checkbox-list/index.js";
|
|
9
17
|
import { Checkbox, CheckboxProps } from "./components/checkbox/Checkbox.js";
|
|
10
18
|
import "./components/checkbox/index.js";
|
|
19
|
+
import { SummaryChip, SummaryChips, SummaryChipsProps } from "./components/summary-chips/SummaryChips.js";
|
|
20
|
+
import "./components/summary-chips/index.js";
|
|
21
|
+
import { Collapsible, CollapsibleProps } from "./components/collapsible/Collapsible.js";
|
|
22
|
+
import "./components/collapsible/index.js";
|
|
11
23
|
import { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps } from "./components/table/Table.js";
|
|
12
24
|
import "./components/table/index.js";
|
|
13
25
|
import { DataTable, DataTableColumn, DataTableProps, DataTableSort } from "./components/data-table/DataTable.js";
|
|
14
26
|
import "./components/data-table/index.js";
|
|
27
|
+
import { InputGroup, InputGroupAddon, InputGroupAddonAlign, InputGroupAddonProps, InputGroupInput, InputGroupInputProps, InputGroupProps, InputGroupShortcut, InputGroupShortcutProps, InputGroupSize, InputGroupText, InputGroupTextProps } from "./components/input-group/InputGroup.js";
|
|
28
|
+
import "./components/input-group/index.js";
|
|
29
|
+
import { DatePicker, DatePickerProps } from "./components/date-picker/DatePicker.js";
|
|
30
|
+
import "./components/date-picker/index.js";
|
|
31
|
+
import { DateRangePicker, DateRangePickerProps, DateRangeValue } from "./components/date-range-picker/DateRangePicker.js";
|
|
32
|
+
import "./components/date-range-picker/index.js";
|
|
15
33
|
import { Definition, DefinitionProps } from "./components/definition/Definition.js";
|
|
16
34
|
import "./components/definition/index.js";
|
|
17
35
|
import { Dialog, DialogClose, DialogCloseProps, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from "./components/dialog/Dialog.js";
|
|
@@ -20,6 +38,9 @@ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemProps,
|
|
|
20
38
|
import "./components/dropdown-menu/index.js";
|
|
21
39
|
import { EmptyState, EmptyStateProps } from "./components/empty-state/EmptyState.js";
|
|
22
40
|
import "./components/empty-state/index.js";
|
|
41
|
+
import { Field, FieldControlProps, FieldProps } from "./components/field/Field.js";
|
|
42
|
+
import { Label, LabelProps } from "./components/field/Label.js";
|
|
43
|
+
import "./components/field/index.js";
|
|
23
44
|
import { FilterTabs, FilterTabsItem, FilterTabsProps } from "./components/filter-tabs/FilterTabs.js";
|
|
24
45
|
import "./components/filter-tabs/index.js";
|
|
25
46
|
import { IconName } from "./components/icon/registry.js";
|
|
@@ -30,16 +51,20 @@ import "./components/global-search/index.js";
|
|
|
30
51
|
import { Space } from "./lib/space.js";
|
|
31
52
|
import { Inline, InlineProps } from "./components/inline/Inline.js";
|
|
32
53
|
import "./components/inline/index.js";
|
|
33
|
-
import { InputGroup, InputGroupAddon, InputGroupAddonAlign, InputGroupAddonProps, InputGroupInput, InputGroupInputProps, InputGroupProps, InputGroupShortcut, InputGroupShortcutProps, InputGroupSize, InputGroupText, InputGroupTextProps } from "./components/input-group/InputGroup.js";
|
|
34
|
-
import "./components/input-group/index.js";
|
|
35
54
|
import { Input, InputProps, InputSize } from "./components/input/Input.js";
|
|
36
55
|
import "./components/input/index.js";
|
|
37
56
|
import { Kbd, KbdGroup, KbdGroupProps, KbdProps } from "./components/kbd/Kbd.js";
|
|
38
57
|
import "./components/kbd/index.js";
|
|
39
58
|
import { LinkProvider, LinkProviderProps, LinkRender, LinkRenderProps } from "./components/link-provider/LinkProvider.js";
|
|
40
59
|
import "./components/link-provider/index.js";
|
|
60
|
+
import { Link, LinkProps } from "./components/link/Link.js";
|
|
61
|
+
import "./components/link/index.js";
|
|
62
|
+
import { MediaGrid, MediaGridItem, MediaGridProps } from "./components/media-grid/MediaGrid.js";
|
|
63
|
+
import "./components/media-grid/index.js";
|
|
41
64
|
import { MetricSegment, MetricStrip, MetricStripProps } from "./components/metric-strip/MetricStrip.js";
|
|
42
65
|
import "./components/metric-strip/index.js";
|
|
66
|
+
import { MoneyInput, MoneyInputProps } from "./components/money-input/MoneyInput.js";
|
|
67
|
+
import "./components/money-input/index.js";
|
|
43
68
|
import { StatusPill, StatusPillProps, StatusPillTone } from "./components/status-pill/StatusPill.js";
|
|
44
69
|
import "./components/status-pill/index.js";
|
|
45
70
|
import { PageHeader, PageHeaderMenuItem, PageHeaderProps } from "./components/page-header/PageHeader.js";
|
|
@@ -48,8 +73,12 @@ import { Pagination, PaginationProps } from "./components/pagination/Pagination.
|
|
|
48
73
|
import "./components/pagination/index.js";
|
|
49
74
|
import { Popover, PopoverContent, PopoverContentProps, PopoverDescription, PopoverDescriptionProps, PopoverHeader, PopoverHeaderProps, PopoverProps, PopoverTitle, PopoverTitleProps, PopoverTrigger, PopoverTriggerProps } from "./components/popover/Popover.js";
|
|
50
75
|
import "./components/popover/index.js";
|
|
76
|
+
import { SaveBar, SaveBarProps } from "./components/save-bar/SaveBar.js";
|
|
77
|
+
import "./components/save-bar/index.js";
|
|
51
78
|
import { SearchField, SearchFieldProps } from "./components/search-field/SearchField.js";
|
|
52
79
|
import "./components/search-field/index.js";
|
|
80
|
+
import { Select, SelectContent, SelectContentProps, SelectGroup, SelectGroupProps, SelectItem, SelectItemProps, SelectLabel, SelectLabelProps, SelectProps, SelectSeparator, SelectSeparatorProps, SelectSize, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps } from "./components/select/Select.js";
|
|
81
|
+
import "./components/select/index.js";
|
|
53
82
|
import { SideNav, SideNavAccount, SideNavItem, SideNavProps, SideNavSection } from "./components/side-nav/SideNav.js";
|
|
54
83
|
import "./components/side-nav/index.js";
|
|
55
84
|
import { Skeleton, SkeletonProps, SkeletonShape } from "./components/skeleton/Skeleton.js";
|
|
@@ -58,12 +87,18 @@ import { Spinner, SpinnerProps } from "./components/spinner/Spinner.js";
|
|
|
58
87
|
import "./components/spinner/index.js";
|
|
59
88
|
import { Stack, StackProps } from "./components/stack/Stack.js";
|
|
60
89
|
import "./components/stack/index.js";
|
|
90
|
+
import { Switch, SwitchProps } from "./components/switch/Switch.js";
|
|
91
|
+
import "./components/switch/index.js";
|
|
61
92
|
import { TableLoader, TableLoaderColumn, TableLoaderProps } from "./components/table-loader/TableLoader.js";
|
|
62
93
|
import "./components/table-loader/index.js";
|
|
63
94
|
import { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps } from "./components/tabs/Tabs.js";
|
|
64
95
|
import "./components/tabs/index.js";
|
|
96
|
+
import { TagInput, TagInputProps } from "./components/tag-input/TagInput.js";
|
|
97
|
+
import "./components/tag-input/index.js";
|
|
65
98
|
import { Text, TextProps, TextTone, TextVariant } from "./components/text/Text.js";
|
|
66
99
|
import "./components/text/index.js";
|
|
100
|
+
import { Textarea, TextareaProps, TextareaSize } from "./components/textarea/Textarea.js";
|
|
101
|
+
import "./components/textarea/index.js";
|
|
67
102
|
import { ToastOptions, Toaster, ToasterProps, toast } from "./components/toaster/Toaster.js";
|
|
68
103
|
import "./components/toaster/index.js";
|
|
69
104
|
import { Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipTrigger, TooltipTriggerProps } from "./components/tooltip/Tooltip.js";
|
|
@@ -71,5 +106,7 @@ import "./components/tooltip/index.js";
|
|
|
71
106
|
import { TopBar, TopBarProps } from "./components/top-bar/TopBar.js";
|
|
72
107
|
import { StoreOption, StoreSwitcher, StoreSwitcherProps } from "./components/top-bar/StoreSwitcher.js";
|
|
73
108
|
import "./components/top-bar/index.js";
|
|
74
|
-
import {
|
|
75
|
-
|
|
109
|
+
import { UnitInput, UnitInputProps } from "./components/unit-input/UnitInput.js";
|
|
110
|
+
import "./components/unit-input/index.js";
|
|
111
|
+
import { DateInput, FORMAT, MONEY_NUMBER_FORMAT, amountToPaise, currencySymbol, formatCount, formatDate, formatIsoDate, formatMoney, formatPaise, formatPaiseForEditing, formatTime, numberSeparators, paiseToAmount, parseDate, parseMoney } from "./lib/format.js";
|
|
112
|
+
export { Alert, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogFooter, type AlertDialogFooterProps, AlertDialogHeader, type AlertDialogHeaderProps, AlertDialogTitle, type AlertDialogTitleProps, AlertDialogTrigger, type AlertDialogTriggerProps, type AlertProps, type AlertTone, AppShell, type AppShellProps, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, Button, type ButtonProps, type ButtonVariant, Calendar, type CalendarProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, CheckboxList, type CheckboxListItem, type CheckboxListProps, type CheckboxProps, Collapsible, type CollapsibleProps, DataTable, type DataTableColumn, type DataTableProps, type DataTableSort, DateInput, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DateRangeValue, Definition, type DefinitionProps, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, type DropdownMenuGroupProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuRadioGroup, type DropdownMenuRadioGroupProps, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuShortcut, type DropdownMenuShortcutProps, DropdownMenuSub, DropdownMenuSubContent, type DropdownMenuSubContentProps, type DropdownMenuSubProps, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, EmptyState, type EmptyStateProps, FORMAT, Field, type FieldControlProps, type FieldProps, FilterTabs, type FilterTabsItem, type FilterTabsProps, GlobalSearch, type GlobalSearchGroup, type GlobalSearchProps, type GlobalSearchResult, Icon, type IconName, type IconProps, type IconSize, type IconTone, Inline, type InlineProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonAlign, type InputGroupAddonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupShortcut, type InputGroupShortcutProps, type InputGroupSize, InputGroupText, type InputGroupTextProps, type InputProps, type InputSize, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps, Link, type LinkProps, LinkProvider, type LinkProviderProps, type LinkRender, type LinkRenderProps, MONEY_NUMBER_FORMAT, MediaGrid, type MediaGridItem, type MediaGridProps, type MetricSegment, MetricStrip, type MetricStripProps, MoneyInput, type MoneyInputProps, PageHeader, type PageHeaderMenuItem, type PageHeaderProps, Pagination, type PaginationProps, Popover, PopoverContent, type PopoverContentProps, PopoverDescription, type PopoverDescriptionProps, PopoverHeader, type PopoverHeaderProps, type PopoverProps, PopoverTitle, type PopoverTitleProps, PopoverTrigger, type PopoverTriggerProps, SaveBar, type SaveBarProps, SearchField, type SearchFieldProps, Select, SelectContent, type SelectContentProps, SelectGroup, type SelectGroupProps, SelectItem, type SelectItemProps, SelectLabel, type SelectLabelProps, type SelectProps, SelectSeparator, type SelectSeparatorProps, type SelectSize, SelectTrigger, type SelectTriggerProps, SelectValue, type SelectValueProps, SideNav, type SideNavAccount, type SideNavItem, type SideNavProps, type SideNavSection, Skeleton, type SkeletonProps, type SkeletonShape, type Space, Spinner, type SpinnerProps, Stack, type StackProps, StatusPill, type StatusPillProps, type StatusPillTone, type StoreOption, StoreSwitcher, type StoreSwitcherProps, type SummaryChip, SummaryChips, type SummaryChipsProps, Switch, type SwitchProps, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableLoader, type TableLoaderColumn, type TableLoaderProps, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagInput, type TagInputProps, Text, type TextProps, type TextTone, type TextVariant, Textarea, type TextareaProps, type TextareaSize, type ToastOptions, Toaster, type ToasterProps, Tooltip, TooltipContent, type TooltipContentProps, type TooltipProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type TooltipTriggerProps, TopBar, type TopBarProps, UnitInput, type UnitInputProps, amountToPaise, currencySymbol, formatCount, formatDate, formatIsoDate, formatMoney, formatPaise, formatPaiseForEditing, formatTime, getInitials, numberSeparators, paiseToAmount, parseDate, parseMoney, toast };
|