premium-ds 0.1.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/LICENSE +21 -0
- package/README.md +113 -0
- package/dist/alert.d.ts +31 -0
- package/dist/alert.js +6 -0
- package/dist/alert.js.map +1 -0
- package/dist/avatar-group.d.ts +13 -0
- package/dist/avatar-group.js +3 -0
- package/dist/avatar-group.js.map +1 -0
- package/dist/avatar.d.ts +25 -0
- package/dist/avatar.js +3 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.d.ts +23 -0
- package/dist/badge.js +3 -0
- package/dist/badge.js.map +1 -0
- package/dist/button.d.ts +20 -0
- package/dist/button.js +3 -0
- package/dist/button.js.map +1 -0
- package/dist/checkbox.d.ts +25 -0
- package/dist/checkbox.js +3 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chunk-2OWHZ4JT.js +36 -0
- package/dist/chunk-2OWHZ4JT.js.map +1 -0
- package/dist/chunk-34SIXSYL.js +64 -0
- package/dist/chunk-34SIXSYL.js.map +1 -0
- package/dist/chunk-37O2ZXD6.js +55 -0
- package/dist/chunk-37O2ZXD6.js.map +1 -0
- package/dist/chunk-4AZL76UJ.js +89 -0
- package/dist/chunk-4AZL76UJ.js.map +1 -0
- package/dist/chunk-4HSCN5TZ.js +86 -0
- package/dist/chunk-4HSCN5TZ.js.map +1 -0
- package/dist/chunk-5DDOOT33.js +258 -0
- package/dist/chunk-5DDOOT33.js.map +1 -0
- package/dist/chunk-5FVHWIMY.js +117 -0
- package/dist/chunk-5FVHWIMY.js.map +1 -0
- package/dist/chunk-5K6KRJGX.js +147 -0
- package/dist/chunk-5K6KRJGX.js.map +1 -0
- package/dist/chunk-5PQMQBQC.js +74 -0
- package/dist/chunk-5PQMQBQC.js.map +1 -0
- package/dist/chunk-7OCTVQ7C.js +95 -0
- package/dist/chunk-7OCTVQ7C.js.map +1 -0
- package/dist/chunk-7OPMOET7.js +39 -0
- package/dist/chunk-7OPMOET7.js.map +1 -0
- package/dist/chunk-BXXS7YRC.js +270 -0
- package/dist/chunk-BXXS7YRC.js.map +1 -0
- package/dist/chunk-CV2Q4YXX.js +272 -0
- package/dist/chunk-CV2Q4YXX.js.map +1 -0
- package/dist/chunk-EIMMDWIW.js +282 -0
- package/dist/chunk-EIMMDWIW.js.map +1 -0
- package/dist/chunk-EZ2CWTBE.js +230 -0
- package/dist/chunk-EZ2CWTBE.js.map +1 -0
- package/dist/chunk-FGHDG3Y4.js +89 -0
- package/dist/chunk-FGHDG3Y4.js.map +1 -0
- package/dist/chunk-FPP2XLKX.js +127 -0
- package/dist/chunk-FPP2XLKX.js.map +1 -0
- package/dist/chunk-G6OY35DI.js +295 -0
- package/dist/chunk-G6OY35DI.js.map +1 -0
- package/dist/chunk-H6KWJNOE.js +65 -0
- package/dist/chunk-H6KWJNOE.js.map +1 -0
- package/dist/chunk-HGILYGY3.js +45 -0
- package/dist/chunk-HGILYGY3.js.map +1 -0
- package/dist/chunk-I3BCB4Z5.js +88 -0
- package/dist/chunk-I3BCB4Z5.js.map +1 -0
- package/dist/chunk-KBWNUUWM.js +582 -0
- package/dist/chunk-KBWNUUWM.js.map +1 -0
- package/dist/chunk-KN7JFAZ6.js +113 -0
- package/dist/chunk-KN7JFAZ6.js.map +1 -0
- package/dist/chunk-MEF7PI6U.js +16 -0
- package/dist/chunk-MEF7PI6U.js.map +1 -0
- package/dist/chunk-NKGMQL6I.js +310 -0
- package/dist/chunk-NKGMQL6I.js.map +1 -0
- package/dist/chunk-NMFQRGLL.js +127 -0
- package/dist/chunk-NMFQRGLL.js.map +1 -0
- package/dist/chunk-OUBWD6CX.js +433 -0
- package/dist/chunk-OUBWD6CX.js.map +1 -0
- package/dist/chunk-PFNXVBLU.js +96 -0
- package/dist/chunk-PFNXVBLU.js.map +1 -0
- package/dist/chunk-PUPZ4HME.js +165 -0
- package/dist/chunk-PUPZ4HME.js.map +1 -0
- package/dist/chunk-QFS52OK5.js +690 -0
- package/dist/chunk-QFS52OK5.js.map +1 -0
- package/dist/chunk-QNC6O3PG.js +45 -0
- package/dist/chunk-QNC6O3PG.js.map +1 -0
- package/dist/chunk-QUHOXWBK.js +82 -0
- package/dist/chunk-QUHOXWBK.js.map +1 -0
- package/dist/chunk-UIQGSTBJ.js +106 -0
- package/dist/chunk-UIQGSTBJ.js.map +1 -0
- package/dist/chunk-UJQKVP6V.js +193 -0
- package/dist/chunk-UJQKVP6V.js.map +1 -0
- package/dist/chunk-VVPGEAC6.js +11 -0
- package/dist/chunk-VVPGEAC6.js.map +1 -0
- package/dist/chunk-XA3T5KWA.js +58 -0
- package/dist/chunk-XA3T5KWA.js.map +1 -0
- package/dist/chunk-YSHJHSJM.js +19 -0
- package/dist/chunk-YSHJHSJM.js.map +1 -0
- package/dist/chunk-YVHOAVSM.js +182 -0
- package/dist/chunk-YVHOAVSM.js.map +1 -0
- package/dist/collapse.d.ts +16 -0
- package/dist/collapse.js +3 -0
- package/dist/collapse.js.map +1 -0
- package/dist/count-badge.d.ts +11 -0
- package/dist/count-badge.js +4 -0
- package/dist/count-badge.js.map +1 -0
- package/dist/date-field.d.ts +39 -0
- package/dist/date-field.js +8 -0
- package/dist/date-field.js.map +1 -0
- package/dist/date-range-field.d.ts +30 -0
- package/dist/date-range-field.js +8 -0
- package/dist/date-range-field.js.map +1 -0
- package/dist/datetime-field.d.ts +28 -0
- package/dist/datetime-field.js +10 -0
- package/dist/datetime-field.js.map +1 -0
- package/dist/dialog.d.ts +26 -0
- package/dist/dialog.js +7 -0
- package/dist/dialog.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/motion-tokens.d.ts +29 -0
- package/dist/motion-tokens.js +3 -0
- package/dist/motion-tokens.js.map +1 -0
- package/dist/multi-select.d.ts +25 -0
- package/dist/multi-select.js +7 -0
- package/dist/multi-select.js.map +1 -0
- package/dist/number-field.d.ts +24 -0
- package/dist/number-field.js +4 -0
- package/dist/number-field.js.map +1 -0
- package/dist/otp-field.d.ts +20 -0
- package/dist/otp-field.js +3 -0
- package/dist/otp-field.js.map +1 -0
- package/dist/overlay.d.ts +31 -0
- package/dist/overlay.js +4 -0
- package/dist/overlay.js.map +1 -0
- package/dist/pagination.d.ts +24 -0
- package/dist/pagination.js +5 -0
- package/dist/pagination.js.map +1 -0
- package/dist/radio-group.d.ts +46 -0
- package/dist/radio-group.js +6 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/select-core-SAyS-8w0.d.ts +16 -0
- package/dist/select.d.ts +27 -0
- package/dist/select.js +7 -0
- package/dist/select.js.map +1 -0
- package/dist/status-badge.d.ts +17 -0
- package/dist/status-badge.js +5 -0
- package/dist/status-badge.js.map +1 -0
- package/dist/table.d.ts +65 -0
- package/dist/table.js +5 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.d.ts +44 -0
- package/dist/tabs.js +5 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tag.d.ts +28 -0
- package/dist/tag.js +5 -0
- package/dist/tag.js.map +1 -0
- package/dist/text-field.d.ts +30 -0
- package/dist/text-field.js +6 -0
- package/dist/text-field.js.map +1 -0
- package/dist/textarea.d.ts +33 -0
- package/dist/textarea.js +5 -0
- package/dist/textarea.js.map +1 -0
- package/dist/time-field.d.ts +27 -0
- package/dist/time-field.js +6 -0
- package/dist/time-field.js.map +1 -0
- package/dist/toast-store.d.ts +75 -0
- package/dist/toast-store.js +3 -0
- package/dist/toast-store.js.map +1 -0
- package/dist/toast.d.ts +3 -0
- package/dist/toast.js +6 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle-tag.d.ts +24 -0
- package/dist/toggle-tag.js +4 -0
- package/dist/toggle-tag.js.map +1 -0
- package/dist/toggle.d.ts +21 -0
- package/dist/toggle.js +3 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tooltip.d.ts +27 -0
- package/dist/tooltip.js +4 -0
- package/dist/tooltip.js.map +1 -0
- package/llms.txt +165 -0
- package/package.json +205 -0
- package/src/components/alert/Alert.tsx +118 -0
- package/src/components/alert/alert.css +136 -0
- package/src/components/avatar/Avatar.tsx +128 -0
- package/src/components/avatar/AvatarGroup.tsx +50 -0
- package/src/components/avatar/avatar.css +200 -0
- package/src/components/badge/Badge.tsx +66 -0
- package/src/components/badge/CountBadge.tsx +46 -0
- package/src/components/badge/StatusBadge.tsx +132 -0
- package/src/components/badge/badge.css +243 -0
- package/src/components/button/Button.tsx +68 -0
- package/src/components/button/button.css +222 -0
- package/src/components/checkbox/Checkbox.tsx +90 -0
- package/src/components/checkbox/checkbox.css +179 -0
- package/src/components/date-picker/DateField.tsx +362 -0
- package/src/components/date-picker/DateRangeField.tsx +533 -0
- package/src/components/date-picker/DateTimeField.tsx +177 -0
- package/src/components/date-picker/TimeField.tsx +100 -0
- package/src/components/date-picker/date-picker.css +591 -0
- package/src/components/date-picker/date-utils.ts +55 -0
- package/src/components/date-picker/field-shell.tsx +78 -0
- package/src/components/date-picker/glide-pill.tsx +81 -0
- package/src/components/date-picker/time-core.tsx +305 -0
- package/src/components/dialog/Dialog.tsx +181 -0
- package/src/components/dialog/dialog.css +170 -0
- package/src/components/glass/glass.css +100 -0
- package/src/components/icon/Icon.tsx +76 -0
- package/src/components/icon/IconSlot.tsx +11 -0
- package/src/components/icon/icon.css +33 -0
- package/src/components/input/NumberField.tsx +117 -0
- package/src/components/input/OtpField.tsx +118 -0
- package/src/components/input/TextField.tsx +123 -0
- package/src/components/input/input.css +335 -0
- package/src/components/motion/Collapse.tsx +33 -0
- package/src/components/motion/collapse.css +41 -0
- package/src/components/overlay/Overlay.tsx +239 -0
- package/src/components/overlay/overlay-core.tsx +565 -0
- package/src/components/overlay/overlay.css +119 -0
- package/src/components/overlay/sheet-drag.tsx +146 -0
- package/src/components/pagination/Pagination.tsx +140 -0
- package/src/components/pagination/pagination.css +48 -0
- package/src/components/radio-group/RadioGroup.tsx +182 -0
- package/src/components/radio-group/radio-group.css +277 -0
- package/src/components/select/MultiSelect.tsx +251 -0
- package/src/components/select/Select.tsx +235 -0
- package/src/components/select/select-core.tsx +417 -0
- package/src/components/select/select.css +386 -0
- package/src/components/table/Table.tsx +433 -0
- package/src/components/table/table.css +348 -0
- package/src/components/tabs/Tabs.tsx +371 -0
- package/src/components/tabs/tabs.css +228 -0
- package/src/components/tag/Tag.tsx +145 -0
- package/src/components/tag/ToggleTag.tsx +125 -0
- package/src/components/tag/tag.css +248 -0
- package/src/components/textarea/Textarea.tsx +197 -0
- package/src/components/textarea/textarea.css +219 -0
- package/src/components/toast/Toast.tsx +349 -0
- package/src/components/toast/toast-store.ts +266 -0
- package/src/components/toast/toast.css +233 -0
- package/src/components/toggle/Toggle.tsx +94 -0
- package/src/components/toggle/toggle.css +152 -0
- package/src/components/tooltip/Tooltip.tsx +365 -0
- package/src/components/tooltip/tooltip.css +86 -0
- package/src/index.ts +42 -0
- package/src/styles.css +39 -0
- package/src/tokens/avatar.css +20 -0
- package/src/tokens/color.css +56 -0
- package/src/tokens/elevation.css +20 -0
- package/src/tokens/fonts.css +3 -0
- package/src/tokens/glass.css +21 -0
- package/src/tokens/icons.css +7 -0
- package/src/tokens/layers.css +6 -0
- package/src/tokens/motion-tokens.ts +72 -0
- package/src/tokens/motion.css +49 -0
- package/src/tokens/radius.css +11 -0
- package/src/tokens/semantic.css +75 -0
- package/src/tokens/spacing.css +26 -0
- package/src/tokens/typography.css +54 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'rows' | 'onSubmit'> {
|
|
4
|
+
id?: string;
|
|
5
|
+
/** Label text (sentence case). */
|
|
6
|
+
label?: React.ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
optional?: boolean;
|
|
9
|
+
/** Neutral helper - shown when there's no validation message. */
|
|
10
|
+
helper?: React.ReactNode;
|
|
11
|
+
/** Sets the matching state (border + icon + colour). error wins over warning/success/helper. */
|
|
12
|
+
error?: React.ReactNode;
|
|
13
|
+
warning?: React.ReactNode;
|
|
14
|
+
success?: React.ReactNode;
|
|
15
|
+
value?: string;
|
|
16
|
+
onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
17
|
+
/** Fired on ⌘/Ctrl+Enter with the current text. */
|
|
18
|
+
onSubmit?: (value: string) => void;
|
|
19
|
+
/** Soft char limit: shows the meter + over-limit highlight. Does NOT truncate (use native maxLength for a hard stop). */
|
|
20
|
+
max?: number;
|
|
21
|
+
/** Visible rows before growing (default 3) and the cap before it scrolls (default 10). */
|
|
22
|
+
minRows?: number;
|
|
23
|
+
maxRows?: number;
|
|
24
|
+
/** Remaining-chars threshold that flips the meter amber. Default 20. */
|
|
25
|
+
warnAt?: number;
|
|
26
|
+
/** Footer hint, left of the meter - e.g. a ⌘↵ affordance. */
|
|
27
|
+
hint?: React.ReactNode;
|
|
28
|
+
/** md (default) - lg (prominent composer). */
|
|
29
|
+
size?: 'md' | 'lg';
|
|
30
|
+
}
|
|
31
|
+
declare function Textarea({ id, label, required, optional, placeholder, helper, error, warning, success, value, onChange, onSubmit, max, minRows, maxRows, warnAt, hint, size, disabled, readOnly, className, ...rest }: TextareaProps): React.JSX.Element;
|
|
32
|
+
|
|
33
|
+
export { Textarea, type TextareaProps };
|
package/dist/textarea.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"textarea.js"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TimeFieldProps {
|
|
4
|
+
/** Controlled value, canonical 'HH:mm' (24h). */
|
|
5
|
+
value?: string | null;
|
|
6
|
+
defaultValue?: string | null;
|
|
7
|
+
/** Fires live - the instant both segments exist. */
|
|
8
|
+
onChange?: (value: string) => void;
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Display only; storage stays 24h. Default '24h'. */
|
|
11
|
+
format?: '24h' | '12h';
|
|
12
|
+
/** ↑/↓ step granularity in minutes (typing is exact). Default 5. */
|
|
13
|
+
minuteStep?: number;
|
|
14
|
+
/** Lower bound 'HH:mm' - saturates, never errors. */
|
|
15
|
+
min?: string;
|
|
16
|
+
/** Upper bound 'HH:mm' - saturates, never errors. */
|
|
17
|
+
max?: string;
|
|
18
|
+
required?: boolean;
|
|
19
|
+
invalid?: boolean;
|
|
20
|
+
message?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
declare function TimeField({ value, // controlled: 'HH:mm' | null
|
|
25
|
+
defaultValue, onChange, label, format, minuteStep, min, max, required, invalid, message, disabled, className, }: TimeFieldProps): React.JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { TimeField, type TimeFieldProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"time-field.js"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
type ToastTone = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading' | 'custom';
|
|
2
|
+
interface ToastAction {
|
|
3
|
+
label: string;
|
|
4
|
+
onClick: () => void;
|
|
5
|
+
}
|
|
6
|
+
interface ToastOptions {
|
|
7
|
+
id?: string | number;
|
|
8
|
+
duration?: number;
|
|
9
|
+
description?: string | null;
|
|
10
|
+
action?: ToastAction | null;
|
|
11
|
+
}
|
|
12
|
+
interface ToastRecord {
|
|
13
|
+
id: string;
|
|
14
|
+
tone: ToastTone;
|
|
15
|
+
message: string | null;
|
|
16
|
+
description: string | null;
|
|
17
|
+
action: ToastAction | null;
|
|
18
|
+
duration: number;
|
|
19
|
+
remaining: number;
|
|
20
|
+
count: number;
|
|
21
|
+
timerKey: number;
|
|
22
|
+
node: unknown;
|
|
23
|
+
dismissible: boolean;
|
|
24
|
+
expiresAt?: number;
|
|
25
|
+
}
|
|
26
|
+
interface ToastSnapshot {
|
|
27
|
+
toasts: ToastRecord[];
|
|
28
|
+
paused: boolean;
|
|
29
|
+
expanded: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface ToastStore {
|
|
32
|
+
toasts: ToastRecord[];
|
|
33
|
+
paused: boolean;
|
|
34
|
+
expanded: boolean;
|
|
35
|
+
host: null | (() => void);
|
|
36
|
+
snap: ToastSnapshot;
|
|
37
|
+
listeners: Set<() => void>;
|
|
38
|
+
subscribe(l: () => void): () => void;
|
|
39
|
+
get(): ToastSnapshot;
|
|
40
|
+
emit(): void;
|
|
41
|
+
add(t: ToastRecord): string;
|
|
42
|
+
update(id: string, patch: Partial<ToastRecord>): string;
|
|
43
|
+
dismiss(id?: string | null): void;
|
|
44
|
+
schedule(t: ToastRecord): void;
|
|
45
|
+
pause(): void;
|
|
46
|
+
resume(): void;
|
|
47
|
+
setExpanded(v: boolean): void;
|
|
48
|
+
}
|
|
49
|
+
type PromiseMsg<V> = string | ((v: V) => string);
|
|
50
|
+
interface ToastPromiseMsgs<T> {
|
|
51
|
+
loading?: string;
|
|
52
|
+
success?: PromiseMsg<T>;
|
|
53
|
+
error?: PromiseMsg<unknown>;
|
|
54
|
+
}
|
|
55
|
+
interface ToastApi {
|
|
56
|
+
(message: string, opts?: ToastOptions): string;
|
|
57
|
+
success(m: string, o?: ToastOptions): string;
|
|
58
|
+
error(m: string, o?: ToastOptions): string;
|
|
59
|
+
warning(m: string, o?: ToastOptions): string;
|
|
60
|
+
info(m: string, o?: ToastOptions): string;
|
|
61
|
+
loading(m: string, o?: ToastOptions): string;
|
|
62
|
+
dismiss(id?: string | null): void;
|
|
63
|
+
update(id: string, patch?: Partial<ToastRecord>): string;
|
|
64
|
+
promise<T>(promise: Promise<T>, msgs?: ToastPromiseMsgs<T>): Promise<T>;
|
|
65
|
+
custom(node: unknown, opts?: {
|
|
66
|
+
id?: string | number;
|
|
67
|
+
duration?: number;
|
|
68
|
+
dismissible?: boolean;
|
|
69
|
+
}): string;
|
|
70
|
+
}
|
|
71
|
+
declare const toast: ToastApi;
|
|
72
|
+
|
|
73
|
+
declare const UIToast: ToastStore;
|
|
74
|
+
|
|
75
|
+
export { type ToastAction, type ToastApi, type ToastOptions, type ToastPromiseMsgs, type ToastRecord, type ToastSnapshot, type ToastTone, UIToast, toast };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toast-store.js"}
|
package/dist/toast.d.ts
ADDED
package/dist/toast.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toast.js"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
/** ToggleTag - the on/off filter chip (<button aria-pressed>). */
|
|
4
|
+
interface ToggleTagProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'children'> {
|
|
5
|
+
/** The label. */
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
/** Controlled selected value. Omit for uncontrolled. */
|
|
8
|
+
selected?: boolean;
|
|
9
|
+
/** Uncontrolled initial value. */
|
|
10
|
+
defaultSelected?: boolean;
|
|
11
|
+
/** Fires with the next value on every toggle. */
|
|
12
|
+
onChange?: (selected: boolean) => void;
|
|
13
|
+
/** Your own icon node; replaces the tick. Selected state reads from the wash. */
|
|
14
|
+
icon?: React.ReactNode | null;
|
|
15
|
+
/** Optional result count - rendered mono/tabular. */
|
|
16
|
+
count?: React.ReactNode;
|
|
17
|
+
/** 'md' = 28px (default) - 'sm' = 24px for dense rows. */
|
|
18
|
+
size?: 'md' | 'sm';
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
declare function ToggleTag(props: ToggleTagProps): React.JSX.Element;
|
|
23
|
+
|
|
24
|
+
export { ToggleTag, type ToggleTagProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toggle-tag.js"}
|
package/dist/toggle.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
4
|
+
/** Controlled checked state. Omit for uncontrolled (use `defaultChecked`). */
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
/** Uncontrolled initial state. */
|
|
7
|
+
defaultChecked?: boolean;
|
|
8
|
+
/** Disabled - inert and de-emphasized (faded track, retains its position). */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
/** Track size: `md` 36x20 - `sm` 28x16 for dense settings/table rows. @default 'md' */
|
|
11
|
+
size?: 'sm' | 'md';
|
|
12
|
+
/** Label text beside the track. */
|
|
13
|
+
label?: React.ReactNode;
|
|
14
|
+
/** Optional secondary line under the label (settings rows). */
|
|
15
|
+
description?: React.ReactNode;
|
|
16
|
+
/** Fires on flip - read `e.target.checked`. */
|
|
17
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
18
|
+
}
|
|
19
|
+
declare function Toggle({ checked, defaultChecked, disabled, size, label, description, className, onChange, ...rest }: ToggleProps): React.JSX.Element;
|
|
20
|
+
|
|
21
|
+
export { Toggle, type ToggleProps };
|
package/dist/toggle.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toggle.js"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ReactNode, ReactElement } from 'react';
|
|
3
|
+
|
|
4
|
+
type Placement = 'top' | 'bottom' | 'left' | 'right';
|
|
5
|
+
declare function TooltipHost(): React.ReactPortal;
|
|
6
|
+
interface TooltipProps {
|
|
7
|
+
/** The hint - a string or small node; never interactive content. */
|
|
8
|
+
content: ReactNode;
|
|
9
|
+
/** Optional keyboard hint, rendered as mono metadata ("⌘↩", "S"). */
|
|
10
|
+
shortcut?: string | null;
|
|
11
|
+
/** Preferred side; flips automatically when out of viewport room. */
|
|
12
|
+
placement?: Placement;
|
|
13
|
+
/** Suppress the tooltip entirely (trigger renders untouched). */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** ms before a cold hover shows; warm hovers + focus are instant. Default 350. */
|
|
16
|
+
openDelay?: number;
|
|
17
|
+
/** ms the bubble lingers after leaving (bridges moving to a neighbour). Default 140. */
|
|
18
|
+
closeDelay?: number;
|
|
19
|
+
/** Skip the wrapper - clone the child and merge handlers + ref onto it (child must take a ref). Default false. */
|
|
20
|
+
asChild?: boolean;
|
|
21
|
+
id?: string;
|
|
22
|
+
/** Exactly one element; any element works by default, asChild requires one that accepts a ref. */
|
|
23
|
+
children: ReactElement;
|
|
24
|
+
}
|
|
25
|
+
declare function Tooltip({ content, shortcut, placement, disabled, openDelay, closeDelay, asChild, id, children, }: TooltipProps): React.JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { Tooltip, TooltipHost, type TooltipProps };
|
package/dist/tooltip.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tooltip.js"}
|
package/llms.txt
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# premium-ds - LLM usage guide
|
|
2
|
+
|
|
3
|
+
Premium React 19 design system, shipped as built ESM + types. This is a compact per-component
|
|
4
|
+
index; full prop types (with docs) live in node_modules/premium-ds/dist/*.d.ts.
|
|
5
|
+
|
|
6
|
+
Setup:
|
|
7
|
+
import { Button, toast } from 'premium-ds'; // barrel - or a subpath: premium-ds/button
|
|
8
|
+
import 'premium-ds/styles.css'; // link ONCE at the app root
|
|
9
|
+
Peers: react, react-dom, motion. (The curated Phosphor glyphs used internally are bundled in - not a peer.)
|
|
10
|
+
No bundler/transpile config - built ESM keeps 'use client' intact for the Next.js App Router.
|
|
11
|
+
|
|
12
|
+
Conventions:
|
|
13
|
+
- Sentence case everywhere; no emoji or exclamation marks in UI. One primary <Button> per view.
|
|
14
|
+
- Numbers, times, IDs, status read mono + tabular. Status words: Scheduled, Draft, Published, Failed.
|
|
15
|
+
- Status hues (info/success/warning/danger) only for genuine status; hierarchy from the neutral ramp.
|
|
16
|
+
- Icons: premium-ds renders its own glyphs from a bundled curated Phosphor set, but does NOT
|
|
17
|
+
export an Icon component. Where an example below shows <Icon name="..." />, that is YOUR OWN icon
|
|
18
|
+
node - any ReactNode you pass into the prop (e.g. an @phosphor-icons/react element).
|
|
19
|
+
|
|
20
|
+
Every named export is also a subpath: premium-ds/<kebab-name> (e.g. premium-ds/status-badge).
|
|
21
|
+
|
|
22
|
+
============================================================ PRIMITIVES
|
|
23
|
+
|
|
24
|
+
Button - premium-ds/button
|
|
25
|
+
One control for every click; exactly one primary per view. variant primary|secondary|ghost|danger|link, size sm|md|lg, iconLeft/iconRight (ReactNode), loading, disabled.
|
|
26
|
+
<Button variant="primary" iconLeft={<Icon name="plus" size="sm" />}>Schedule post</Button>
|
|
27
|
+
|
|
28
|
+
Collapse - premium-ds/collapse
|
|
29
|
+
Layout-transition primitive; eases height open/closed, never teleports.
|
|
30
|
+
<Collapse open={open}><div>...revealed content...</div></Collapse>
|
|
31
|
+
|
|
32
|
+
Badge - premium-ds/badge
|
|
33
|
+
Glass or outline chip. tone neutral|info|success|warning|danger, dot, live, variant="outline", pill, size="sm".
|
|
34
|
+
<Badge tone="success" pill>Published</Badge>
|
|
35
|
+
|
|
36
|
+
StatusBadge - premium-ds/status-badge
|
|
37
|
+
Canonical post status - tone + one-word label. status draft|scheduled|processing|published|failed; add `morph` to animate in place as status changes.
|
|
38
|
+
<StatusBadge status="published" />
|
|
39
|
+
<StatusBadge status={s} morph />
|
|
40
|
+
|
|
41
|
+
CountBadge - premium-ds/count-badge
|
|
42
|
+
Mono tabular count; `roll` animates digits like an odometer. value: number | string.
|
|
43
|
+
<CountBadge value="7 / 10" />
|
|
44
|
+
<CountBadge value={count} roll tone="info" />
|
|
45
|
+
|
|
46
|
+
============================================================ FORMS
|
|
47
|
+
(all take label, helper/error/warning/success, size sm|md|lg, disabled)
|
|
48
|
+
|
|
49
|
+
TextField - premium-ds/text-field
|
|
50
|
+
Base text input; states disclose via Collapse. leadingIcon, clearable, optional/required.
|
|
51
|
+
<TextField id="ws" label="Workspace name" required value={v} onChange={(e) => set(e.target.value)} />
|
|
52
|
+
<TextField id="h" label="Username" error="Must be at least 4 characters." value={v} onChange={...} />
|
|
53
|
+
|
|
54
|
+
NumberField - premium-ds/number-field
|
|
55
|
+
Tabular figures, caret steppers, unit suffix, clamp to [min,max]. onChange(value: number).
|
|
56
|
+
<NumberField id="seats" label="Seats" unit="users" min={1} max={50} value={n} onChange={setN} />
|
|
57
|
+
|
|
58
|
+
OtpField - premium-ds/otp-field
|
|
59
|
+
Segmented one-time code; auto-advance, paste-to-fill. length, group, error, size.
|
|
60
|
+
<OtpField length={6} group={3} value={code} onChange={setCode} />
|
|
61
|
+
|
|
62
|
+
Textarea - premium-ds/textarea
|
|
63
|
+
Auto-grow, char meter (max), ⌘/Ctrl+↵ submit (onSubmit). minRows/maxRows.
|
|
64
|
+
<Textarea id="bio" label="Bio" max={280} minRows={4} value={v} onChange={(e) => set(e.target.value)} onSubmit={save} />
|
|
65
|
+
|
|
66
|
+
Checkbox - premium-ds/checkbox
|
|
67
|
+
Stages a choice. label, description, indeterminate, invalid, required, disabled. Standard checked/onChange.
|
|
68
|
+
<Checkbox label="Email me about product updates" checked={on} onChange={(e) => set(e.target.checked)} />
|
|
69
|
+
|
|
70
|
+
Toggle - premium-ds/toggle
|
|
71
|
+
Actuates a setting on the spot. label, description; checked/onChange like a checkbox.
|
|
72
|
+
<Toggle label="Auto-save drafts" checked={on} onChange={(e) => set(e.target.checked)} />
|
|
73
|
+
|
|
74
|
+
RadioGroup - premium-ds/radio-group
|
|
75
|
+
Pick exactly one. options: RadioOption[] ({ value, label, description?, icon?, disabled? }); variant rows|cards, orientation; value/onChange(value).
|
|
76
|
+
<RadioGroup name="role" label="Member role" value={role} onChange={setRole} options={ROLES} />
|
|
77
|
+
|
|
78
|
+
Select - premium-ds/select
|
|
79
|
+
Single-select listbox. options: SelectOption[]; value: string|null, onChange(value); searchable, leadingIcon, placeholder, invalid, loading, ariaLabel.
|
|
80
|
+
<Select options={TIMEZONES} value={tz} onChange={setTz} searchable placeholder="Choose a time zone" ariaLabel="Time zone" />
|
|
81
|
+
|
|
82
|
+
MultiSelect - premium-ds/multi-select
|
|
83
|
+
Many-of listbox; stays open while toggling, trigger summarises as first +N. value: string[], onChange(string[]); searchable.
|
|
84
|
+
<MultiSelect options={PEOPLE} value={ids} onChange={setIds} placeholder="Choose members" ariaLabel="Members" />
|
|
85
|
+
|
|
86
|
+
============================================================ DATA DISPLAY
|
|
87
|
+
|
|
88
|
+
Avatar - premium-ds/avatar
|
|
89
|
+
Identity mark: image, initials, or silhouette. name, src, size xs|sm|md|lg|xl, status online|away|busy|offline, shape, paletteIndex, icon.
|
|
90
|
+
<Avatar name="Ana Ng" src="..." status="online" />
|
|
91
|
+
|
|
92
|
+
AvatarGroup - premium-ds/avatar-group
|
|
93
|
+
Overlapping avatars with +N overflow. max, size; children are <Avatar>s.
|
|
94
|
+
<AvatarGroup max={4} size="sm"><Avatar name="Ana Ng" />...</AvatarGroup>
|
|
95
|
+
|
|
96
|
+
Tag / TagGroup - premium-ds/tag
|
|
97
|
+
User-owned label (a control, not a status). icon, size, disabled, onRemove + removeLabel (removable). TagGroup wraps a labelled set.
|
|
98
|
+
<Tag icon={<Icon name="hash" />} onRemove={fn} removeLabel="Remove design">design</Tag>
|
|
99
|
+
|
|
100
|
+
ToggleTag - premium-ds/toggle-tag
|
|
101
|
+
Many-of-many filter chip. selected/onChange(next) or defaultSelected; icon, count.
|
|
102
|
+
<ToggleTag selected={on} onChange={setOn} icon={<Icon name="star" />} count={48}>Starred</ToggleTag>
|
|
103
|
+
|
|
104
|
+
Table - premium-ds/table
|
|
105
|
+
Declare columns + rows; owns sort, selection, stickiness, overflow. columns: TableColumn<T>[] ({ key, label, render?, sortable?, sortBy?, align?, mono?, strong?, grow? }); selectable, defaultSort, footer.
|
|
106
|
+
<Table<Invoice> label="Invoices" columns={COLUMNS} rows={INVOICES} selectable defaultSort={{ key: 'amount', dir: 'desc' }} />
|
|
107
|
+
|
|
108
|
+
Pagination - premium-ds/pagination
|
|
109
|
+
Cursor strip: mono range readout + prev/next pair. range: [from,to], total?, hasPrev/hasNext, onPrev/onNext.
|
|
110
|
+
<Pagination label="Rows" range={[from, to]} total={312} hasPrev hasNext onPrev={...} onNext={...} />
|
|
111
|
+
|
|
112
|
+
============================================================ DATE, TIME & TABS
|
|
113
|
+
(value is a string; onChange(value | null); timezone, min/max, disabled)
|
|
114
|
+
|
|
115
|
+
DateField - premium-ds/date-field
|
|
116
|
+
Month calendar in a popover; value 'YYYY-MM-DD'.
|
|
117
|
+
<DateField label="Start date" value={d} onChange={setD} timezone="Europe/Riga" min="2026-06-01" />
|
|
118
|
+
|
|
119
|
+
DateTimeField - premium-ds/datetime-field
|
|
120
|
+
Calendar + segmented HH:MM; value 'YYYY-MM-DDTHH:mm'. format 12h|24h, minuteStep.
|
|
121
|
+
<DateTimeField label="Due at" value={v} onChange={setV} format="12h" minuteStep={15} />
|
|
122
|
+
|
|
123
|
+
DateRangeField - premium-ds/date-range-field
|
|
124
|
+
Two-tap auto-ordering window; value DateRange { start, end } | null; commits when both ends exist.
|
|
125
|
+
<DateRangeField label="Reporting period" value={r} onChange={setR} />
|
|
126
|
+
|
|
127
|
+
TimeField - premium-ds/time-field
|
|
128
|
+
Standalone segmented time; value 'HH:mm'; bounds saturate. format, minuteStep.
|
|
129
|
+
<TimeField label="Send at" value={t} onChange={setT} format="12h" minuteStep={15} />
|
|
130
|
+
|
|
131
|
+
Tabs / TabPanel - premium-ds/tabs
|
|
132
|
+
Line tabs; the ink reaches then releases; panels enter from the side you moved toward. items: TabItem[]; value/onChange(value, dir). Pair with <TabPanel name tab dir>.
|
|
133
|
+
<Tabs name="views" label="Workspace views" value={view} onChange={(v, d) => { setView(v); setDir(d); }} items={items} />
|
|
134
|
+
<TabPanel name="views" tab={view} dir={dir}>...</TabPanel>
|
|
135
|
+
|
|
136
|
+
============================================================ OVERLAYS & FEEDBACK
|
|
137
|
+
|
|
138
|
+
Alert - premium-ds/alert
|
|
139
|
+
Persistent, in-flow status. tone, title, children (body), action { label, onClick }, dismissible, banner, open/onDismiss (controlled).
|
|
140
|
+
<Alert tone="warning" title="Your trial ends in 5 days" action={{ label: 'Upgrade', onClick: fn }}>Add a plan...</Alert>
|
|
141
|
+
|
|
142
|
+
Toast - premium-ds/toast (imperative; the host self-mounts - no <Toaster> needed)
|
|
143
|
+
toast(msg) - toast.success/error/warning/info(msg, { description, action }) - toast.promise(p, { loading, success, error }) - toast.loading - toast.dismiss().
|
|
144
|
+
import { toast } from 'premium-ds';
|
|
145
|
+
toast.success('Changes saved', { description: 'Synced to the cloud' });
|
|
146
|
+
toast.promise(save(), { loading: 'Saving...', success: (v) => `Saved - ${v.count}`, error: (e) => `Failed - ${e.message}` });
|
|
147
|
+
|
|
148
|
+
Tooltip - premium-ds/tooltip
|
|
149
|
+
Transient hint on hover/focus; wraps any child (no ref wiring needed). content, shortcut, placement top|bottom|left|right.
|
|
150
|
+
<Tooltip content="Save changes" shortcut="⌘S"><Button>Save</Button></Tooltip>
|
|
151
|
+
|
|
152
|
+
Dialog - premium-ds/dialog
|
|
153
|
+
Styled modal: scrim, focus trap, scroll lock. open/onOpenChange, tone, icon, title, description, footer: (close) => node.
|
|
154
|
+
<Dialog open={o} onOpenChange={setO} tone="danger" title="Delete this project?" footer={(close) => <>...</>}>...</Dialog>
|
|
155
|
+
|
|
156
|
+
Overlay - premium-ds/overlay
|
|
157
|
+
Headless floating surface. mode popover|sheet, side, align, trigger (node), asChild; children: ({ close }) => node.
|
|
158
|
+
<Overlay side="bottom" align="start" trigger={<Button>Actions</Button>}>{({ close }) => <menu>...</menu>}</Overlay>
|
|
159
|
+
Sheet = <Overlay mode="sheet" side="right|bottom"> - edge-docked, drag-to-dismiss.
|
|
160
|
+
|
|
161
|
+
============================================================ THEMING
|
|
162
|
+
Re-skin by overriding the CSS custom properties (tokens) in your own stylesheet, loaded after
|
|
163
|
+
premium-ds/styles.css - never fork the source. Token groups: spacing --space-*, type --type-*,
|
|
164
|
+
color (--bg-*, --text-*, --border-*, --accent), --radius-*, elevation --shadow-*, motion
|
|
165
|
+
(--duration-*, --ease-*).
|
package/package.json
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "premium-ds",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A React 19 design system: accessible, animated UI components built on a small, closed CSS design-token vocabulary. No Tailwind, no CSS-in-JS.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"react-19",
|
|
8
|
+
"design-system",
|
|
9
|
+
"component-library",
|
|
10
|
+
"react-components",
|
|
11
|
+
"ui-components",
|
|
12
|
+
"ui-kit",
|
|
13
|
+
"design-tokens",
|
|
14
|
+
"css",
|
|
15
|
+
"typescript",
|
|
16
|
+
"accessible",
|
|
17
|
+
"a11y",
|
|
18
|
+
"motion",
|
|
19
|
+
"animation",
|
|
20
|
+
"headless-ui",
|
|
21
|
+
"esm"
|
|
22
|
+
],
|
|
23
|
+
"type": "module",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"author": "Tabsir Ahammed",
|
|
26
|
+
"homepage": "https://github.com/Tabsir99/premium-ds#readme",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/Tabsir99/premium-ds.git"
|
|
30
|
+
},
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/Tabsir99/premium-ds/issues"
|
|
33
|
+
},
|
|
34
|
+
"sideEffects": [
|
|
35
|
+
"*.css"
|
|
36
|
+
],
|
|
37
|
+
"main": "./dist/index.js",
|
|
38
|
+
"module": "./dist/index.js",
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"exports": {
|
|
41
|
+
".": {
|
|
42
|
+
"types": "./dist/index.d.ts",
|
|
43
|
+
"import": "./dist/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./button": {
|
|
46
|
+
"types": "./dist/button.d.ts",
|
|
47
|
+
"import": "./dist/button.js"
|
|
48
|
+
},
|
|
49
|
+
"./collapse": {
|
|
50
|
+
"types": "./dist/collapse.d.ts",
|
|
51
|
+
"import": "./dist/collapse.js"
|
|
52
|
+
},
|
|
53
|
+
"./badge": {
|
|
54
|
+
"types": "./dist/badge.d.ts",
|
|
55
|
+
"import": "./dist/badge.js"
|
|
56
|
+
},
|
|
57
|
+
"./status-badge": {
|
|
58
|
+
"types": "./dist/status-badge.d.ts",
|
|
59
|
+
"import": "./dist/status-badge.js"
|
|
60
|
+
},
|
|
61
|
+
"./count-badge": {
|
|
62
|
+
"types": "./dist/count-badge.d.ts",
|
|
63
|
+
"import": "./dist/count-badge.js"
|
|
64
|
+
},
|
|
65
|
+
"./avatar": {
|
|
66
|
+
"types": "./dist/avatar.d.ts",
|
|
67
|
+
"import": "./dist/avatar.js"
|
|
68
|
+
},
|
|
69
|
+
"./avatar-group": {
|
|
70
|
+
"types": "./dist/avatar-group.d.ts",
|
|
71
|
+
"import": "./dist/avatar-group.js"
|
|
72
|
+
},
|
|
73
|
+
"./tag": {
|
|
74
|
+
"types": "./dist/tag.d.ts",
|
|
75
|
+
"import": "./dist/tag.js"
|
|
76
|
+
},
|
|
77
|
+
"./toggle-tag": {
|
|
78
|
+
"types": "./dist/toggle-tag.d.ts",
|
|
79
|
+
"import": "./dist/toggle-tag.js"
|
|
80
|
+
},
|
|
81
|
+
"./table": {
|
|
82
|
+
"types": "./dist/table.d.ts",
|
|
83
|
+
"import": "./dist/table.js"
|
|
84
|
+
},
|
|
85
|
+
"./pagination": {
|
|
86
|
+
"types": "./dist/pagination.d.ts",
|
|
87
|
+
"import": "./dist/pagination.js"
|
|
88
|
+
},
|
|
89
|
+
"./text-field": {
|
|
90
|
+
"types": "./dist/text-field.d.ts",
|
|
91
|
+
"import": "./dist/text-field.js"
|
|
92
|
+
},
|
|
93
|
+
"./number-field": {
|
|
94
|
+
"types": "./dist/number-field.d.ts",
|
|
95
|
+
"import": "./dist/number-field.js"
|
|
96
|
+
},
|
|
97
|
+
"./otp-field": {
|
|
98
|
+
"types": "./dist/otp-field.d.ts",
|
|
99
|
+
"import": "./dist/otp-field.js"
|
|
100
|
+
},
|
|
101
|
+
"./textarea": {
|
|
102
|
+
"types": "./dist/textarea.d.ts",
|
|
103
|
+
"import": "./dist/textarea.js"
|
|
104
|
+
},
|
|
105
|
+
"./checkbox": {
|
|
106
|
+
"types": "./dist/checkbox.d.ts",
|
|
107
|
+
"import": "./dist/checkbox.js"
|
|
108
|
+
},
|
|
109
|
+
"./toggle": {
|
|
110
|
+
"types": "./dist/toggle.d.ts",
|
|
111
|
+
"import": "./dist/toggle.js"
|
|
112
|
+
},
|
|
113
|
+
"./radio-group": {
|
|
114
|
+
"types": "./dist/radio-group.d.ts",
|
|
115
|
+
"import": "./dist/radio-group.js"
|
|
116
|
+
},
|
|
117
|
+
"./select": {
|
|
118
|
+
"types": "./dist/select.d.ts",
|
|
119
|
+
"import": "./dist/select.js"
|
|
120
|
+
},
|
|
121
|
+
"./multi-select": {
|
|
122
|
+
"types": "./dist/multi-select.d.ts",
|
|
123
|
+
"import": "./dist/multi-select.js"
|
|
124
|
+
},
|
|
125
|
+
"./date-field": {
|
|
126
|
+
"types": "./dist/date-field.d.ts",
|
|
127
|
+
"import": "./dist/date-field.js"
|
|
128
|
+
},
|
|
129
|
+
"./datetime-field": {
|
|
130
|
+
"types": "./dist/datetime-field.d.ts",
|
|
131
|
+
"import": "./dist/datetime-field.js"
|
|
132
|
+
},
|
|
133
|
+
"./date-range-field": {
|
|
134
|
+
"types": "./dist/date-range-field.d.ts",
|
|
135
|
+
"import": "./dist/date-range-field.js"
|
|
136
|
+
},
|
|
137
|
+
"./time-field": {
|
|
138
|
+
"types": "./dist/time-field.d.ts",
|
|
139
|
+
"import": "./dist/time-field.js"
|
|
140
|
+
},
|
|
141
|
+
"./tabs": {
|
|
142
|
+
"types": "./dist/tabs.d.ts",
|
|
143
|
+
"import": "./dist/tabs.js"
|
|
144
|
+
},
|
|
145
|
+
"./overlay": {
|
|
146
|
+
"types": "./dist/overlay.d.ts",
|
|
147
|
+
"import": "./dist/overlay.js"
|
|
148
|
+
},
|
|
149
|
+
"./dialog": {
|
|
150
|
+
"types": "./dist/dialog.d.ts",
|
|
151
|
+
"import": "./dist/dialog.js"
|
|
152
|
+
},
|
|
153
|
+
"./tooltip": {
|
|
154
|
+
"types": "./dist/tooltip.d.ts",
|
|
155
|
+
"import": "./dist/tooltip.js"
|
|
156
|
+
},
|
|
157
|
+
"./alert": {
|
|
158
|
+
"types": "./dist/alert.d.ts",
|
|
159
|
+
"import": "./dist/alert.js"
|
|
160
|
+
},
|
|
161
|
+
"./toast": {
|
|
162
|
+
"types": "./dist/toast.d.ts",
|
|
163
|
+
"import": "./dist/toast.js"
|
|
164
|
+
},
|
|
165
|
+
"./toast-store": {
|
|
166
|
+
"types": "./dist/toast-store.d.ts",
|
|
167
|
+
"import": "./dist/toast-store.js"
|
|
168
|
+
},
|
|
169
|
+
"./motion-tokens": {
|
|
170
|
+
"types": "./dist/motion-tokens.d.ts",
|
|
171
|
+
"import": "./dist/motion-tokens.js"
|
|
172
|
+
},
|
|
173
|
+
"./styles.css": "./src/styles.css",
|
|
174
|
+
"./package.json": "./package.json"
|
|
175
|
+
},
|
|
176
|
+
"files": [
|
|
177
|
+
"dist",
|
|
178
|
+
"src",
|
|
179
|
+
"llms.txt"
|
|
180
|
+
],
|
|
181
|
+
"scripts": {
|
|
182
|
+
"build": "tsup",
|
|
183
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.node.json",
|
|
184
|
+
"format": "prettier --write .",
|
|
185
|
+
"format:check": "prettier --check .",
|
|
186
|
+
"prepublishOnly": "pnpm build"
|
|
187
|
+
},
|
|
188
|
+
"peerDependencies": {
|
|
189
|
+
"motion": "^12",
|
|
190
|
+
"react": "^19",
|
|
191
|
+
"react-dom": "^19"
|
|
192
|
+
},
|
|
193
|
+
"devDependencies": {
|
|
194
|
+
"@phosphor-icons/react": "^2.1.10",
|
|
195
|
+
"@types/node": "^26.0.1",
|
|
196
|
+
"@types/react": "^19.2.17",
|
|
197
|
+
"@types/react-dom": "^19.2.3",
|
|
198
|
+
"motion": "^12.40.0",
|
|
199
|
+
"prettier": "^3.8.3",
|
|
200
|
+
"react": "^19.2.7",
|
|
201
|
+
"react-dom": "^19.2.7",
|
|
202
|
+
"tsup": "^8.5.0",
|
|
203
|
+
"typescript": "~6.0.3"
|
|
204
|
+
}
|
|
205
|
+
}
|