@godxjp/ui 7.0.0 → 8.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/dist/app/index.d.ts +2 -2
- package/dist/{app.prop-IobwLwaM.d.ts → app.prop-DnIXFzLi.d.ts} +9 -9
- package/dist/{checkbox-CK2mYEpD.d.ts → checkbox-ChRsR7Nk.d.ts} +2 -2
- package/dist/{chunk-3UGU5TYP.js → chunk-25RYBC5T.js} +2 -2
- package/dist/{chunk-CQBADMFG.js → chunk-26CPAKUP.js} +3 -2
- package/dist/{chunk-TT2L7JM6.js → chunk-3TS3G4U3.js} +3 -3
- package/dist/{chunk-ZS6DTAM2.js → chunk-4MMIMZMK.js} +1 -1
- package/dist/{chunk-6TSU4IHV.js → chunk-4R7RQDXI.js} +23 -21
- package/dist/{chunk-OXKY5QMK.js → chunk-6QXQQAOQ.js} +6 -6
- package/dist/{chunk-JJCGMCTL.js → chunk-A22MCA3X.js} +6 -6
- package/dist/{chunk-VXXKR5U4.js → chunk-A7PKMT7Y.js} +4 -4
- package/dist/{chunk-HKQITNB3.js → chunk-AINW5WYN.js} +5 -4
- package/dist/{chunk-OGFWIXRO.js → chunk-C5H655GK.js} +218 -53
- package/dist/{chunk-ZLK5SPT6.js → chunk-EOTOCNT7.js} +1 -1
- package/dist/{chunk-ARDVPIF4.js → chunk-G2WYOCDL.js} +5 -5
- package/dist/{chunk-V6UWJKZF.js → chunk-HTEL5DQI.js} +1 -1
- package/dist/{chunk-ICM6XBST.js → chunk-IBK5D2Q6.js} +2 -1
- package/dist/{chunk-IK7I3ABN.js → chunk-IOGU3ZWF.js} +2 -2
- package/dist/chunk-KKMQLQ7F.js +137 -0
- package/dist/{chunk-HJEBRCXL.js → chunk-M4PZNAMV.js} +1 -0
- package/dist/{chunk-2QG3OVAD.js → chunk-N43OKOFT.js} +7 -5
- package/dist/{chunk-ZR2TIBPG.js → chunk-NG23LVTM.js} +4 -4
- package/dist/{chunk-E76QIYSY.js → chunk-O24Z3ULJ.js} +4 -4
- package/dist/{chunk-L6J44O74.js → chunk-OJZ6C2HM.js} +2 -2
- package/dist/{chunk-2HLWHQJA.js → chunk-P4HFJQID.js} +5 -4
- package/dist/{chunk-EXBWDW5E.js → chunk-RGIYKJPW.js} +7 -7
- package/dist/{chunk-ZKIAZDVU.js → chunk-RGPF3HU6.js} +4 -4
- package/dist/{chunk-FBHN6OO4.js → chunk-SKIRU7GC.js} +2 -2
- package/dist/{chunk-NTUHJ37K.js → chunk-SMWKD2HG.js} +9 -9
- package/dist/chunk-TILFZBTE.js +50 -0
- package/dist/{chunk-6UFKWOEW.js → chunk-TMDGV4CN.js} +15 -11
- package/dist/{chunk-7AMHT5Z5.js → chunk-UIYEAUWA.js} +30 -13
- package/dist/chunk-WFUIE252.js +61 -0
- package/dist/{chunk-25ZZ2W3M.js → chunk-WN52SCGE.js} +5 -5
- package/dist/{chunk-EQRQM6RF.js → chunk-WTVLZVBA.js} +28 -8
- package/dist/{chunk-Y3XBNUTD.js → chunk-XDUZ7JJL.js} +2 -2
- package/dist/{chunk-RVY4F7LK.js → chunk-XZM2GNAY.js} +7 -7
- package/dist/components/admin/index.d.ts +19 -19
- package/dist/components/admin/index.js +30 -30
- package/dist/components/data-display/badge.d.ts +7 -4
- package/dist/components/data-display/badge.js +2 -2
- package/dist/components/data-display/card.d.ts +2 -2
- package/dist/components/data-display/index.d.ts +18 -7
- package/dist/components/data-display/index.js +65 -12
- package/dist/components/data-display/table.js +2 -2
- package/dist/components/data-entry/autocomplete.d.ts +5 -5
- package/dist/components/data-entry/autocomplete.js +6 -6
- package/dist/components/data-entry/calendar.d.ts +5 -5
- package/dist/components/data-entry/calendar.js +3 -3
- package/dist/components/data-entry/cascader.d.ts +6 -6
- package/dist/components/data-entry/cascader.js +7 -7
- package/dist/components/data-entry/checkbox.d.ts +6 -6
- package/dist/components/data-entry/checkbox.js +2 -2
- package/dist/components/data-entry/color-picker.d.ts +6 -6
- package/dist/components/data-entry/color-picker.js +2 -2
- package/dist/components/data-entry/command.d.ts +11 -11
- package/dist/components/data-entry/command.js +2 -2
- package/dist/components/data-entry/date-picker.d.ts +6 -6
- package/dist/components/data-entry/date-picker.js +5 -5
- package/dist/components/data-entry/date-range-picker.d.ts +6 -6
- package/dist/components/data-entry/date-range-picker.js +5 -5
- package/dist/components/data-entry/index.d.ts +50 -22
- package/dist/components/data-entry/index.js +25 -83
- package/dist/components/data-entry/radio.d.ts +5 -5
- package/dist/components/data-entry/radio.js +2 -2
- package/dist/components/data-entry/select.d.ts +5 -5
- package/dist/components/data-entry/select.js +6 -6
- package/dist/components/data-entry/slider.d.ts +5 -5
- package/dist/components/data-entry/switch.d.ts +5 -5
- package/dist/components/data-entry/textarea.js +2 -2
- package/dist/components/data-entry/time-picker.d.ts +6 -6
- package/dist/components/data-entry/time-picker.js +3 -3
- package/dist/components/data-entry/transfer.d.ts +7 -7
- package/dist/components/data-entry/transfer.js +4 -4
- package/dist/components/data-entry/tree-select.d.ts +6 -6
- package/dist/components/data-entry/tree-select.js +7 -7
- package/dist/components/data-entry/upload.d.ts +7 -7
- package/dist/components/data-entry/upload.js +5 -5
- package/dist/components/feedback/alert.d.ts +7 -5
- package/dist/components/feedback/alert.js +3 -3
- package/dist/components/feedback/dialog.d.ts +9 -6
- package/dist/components/feedback/dialog.js +2 -2
- package/dist/components/feedback/index.d.ts +24 -8
- package/dist/components/feedback/index.js +7 -6
- package/dist/components/general/button.d.ts +4 -4
- package/dist/components/general/button.js +1 -1
- package/dist/components/general/index.d.ts +3 -3
- package/dist/components/general/index.js +1 -1
- package/dist/components/layout/index.d.ts +10 -9
- package/dist/components/layout/index.js +3 -3
- package/dist/components/navigation/index.d.ts +13 -13
- package/dist/components/navigation/index.js +9 -9
- package/dist/components/navigation/pagination.d.ts +5 -5
- package/dist/components/navigation/pagination.js +7 -7
- package/dist/components/navigation/steps.d.ts +6 -6
- package/dist/components/navigation/steps.js +2 -2
- package/dist/components/query/index.d.ts +12 -7
- package/dist/components/query/index.js +4 -4
- package/dist/components/ui/index.d.ts +12 -12
- package/dist/components/ui/index.js +30 -30
- package/dist/{data-display.prop-CXP9Jfdn.d.ts → data-display.prop-Cf2p9QC4.d.ts} +6 -5
- package/dist/{data-entry.prop-CpSx5dX6.d.ts → data-entry.prop-CDkOajPj.d.ts} +38 -28
- package/dist/{data-table-C5lcmAwE.d.ts → data-table-B_q7j992.d.ts} +4 -4
- package/dist/{data.prop-BmLaGLb7.d.ts → data.prop-DMYMNl6L.d.ts} +2 -2
- package/dist/{feedback.prop-BnBpUzNK.d.ts → feedback.prop-BR5JOpPl.d.ts} +8 -5
- package/dist/filter-bar-DvVXm_d1.d.ts +14 -0
- package/dist/form/index.d.ts +3 -3
- package/dist/{form.prop-BHgpuFFm.d.ts → form.prop-Bc6r6JJW.d.ts} +1 -1
- package/dist/{general.prop-D7brMPNL.d.ts → general.prop-DoHDCRmL.d.ts} +2 -2
- package/dist/index.d.ts +22 -22
- package/dist/index.js +43 -30
- package/dist/inline-DqfYlGKj.d.ts +18 -0
- package/dist/{interaction.prop-Cdn7wOtq.d.ts → interaction.prop-DSFizzP6.d.ts} +8 -6
- package/dist/{layout.prop-MwHm4-Zl.d.ts → layout.prop-Baq9muDN.d.ts} +27 -13
- package/dist/layout.prop-CXvl2rVR.d.ts +16 -0
- package/dist/{navigation.prop-DAH4ysXj.d.ts → navigation.prop-8DgElO0c.d.ts} +12 -8
- package/dist/{navigation.prop-Hu7s7MJa.d.ts → navigation.prop-BKlxd-j7.d.ts} +2 -5
- package/dist/props/components/index.d.ts +14 -14
- package/dist/props/index.d.ts +14 -14
- package/dist/props/index.js +1 -1
- package/dist/props/registry.d.ts +251 -56
- package/dist/props/registry.js +1 -1
- package/dist/props/vocabulary/index.d.ts +5 -5
- package/dist/{query.prop-hIPrk2zI.d.ts → query.prop-DuODxsiU.d.ts} +12 -8
- package/dist/{search-input-rR2XDrjv.d.ts → search-input-cezAxpgb.d.ts} +7 -2
- package/dist/{shared.prop-BNRJc9K0.d.ts → shared.prop-BsNSXeqD.d.ts} +9 -3
- package/dist/{skeleton-CqFO4dRc.d.ts → skeleton-uWAjSacg.d.ts} +4 -2
- package/dist/styles/alert-layout.css +38 -18
- package/dist/styles/badge-layout.css +2 -2
- package/dist/styles/card-layout.css +5 -5
- package/dist/styles/control.css +31 -0
- package/dist/styles/data-display-layout.css +25 -0
- package/dist/styles/density.css +10 -10
- package/dist/styles/dialog-layout.css +4 -4
- package/dist/styles/feedback-layout.css +17 -0
- package/dist/styles/index.css +6 -9
- package/dist/styles/layout.css +95 -14
- package/dist/styles/table-layout.css +3 -3
- package/dist/theme/example.service.css +0 -5
- package/dist/tokens/base.css +7 -7
- package/dist/tokens/components/badge.css +7 -0
- package/dist/tokens/{primitives → components}/card.css +2 -3
- package/dist/tokens/{primitives → components}/control.css +10 -0
- package/dist/tokens/components/feedback.css +17 -0
- package/dist/tokens/{primitives → components}/table.css +2 -2
- package/dist/tokens/foundation.css +7 -22
- package/package.json +10 -4
- package/scripts/ui-audit.mjs +22 -0
- package/dist/chunk-S66TJXJU.js +0 -33
- package/dist/filter-bar-zSKz7YCR.d.ts +0 -10
- package/dist/inline-CV3A46np.d.ts +0 -10
- package/dist/layout.prop-4TCNvyQZ.d.ts +0 -20
- package/dist/tokens/primitives/badge.css +0 -13
- package/dist/tokens/primitives/feedback.css +0 -17
- /package/dist/{chunk-LDSLS6HE.js → chunk-HKD6ERY7.js} +0 -0
- /package/dist/tokens/{primitives → components}/navigation.css +0 -0
- /package/dist/tokens/{primitives → semantic}/layout.css +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { UseQueryResult, UseInfiniteQueryResult, InfiniteData,
|
|
2
|
+
import { UseMutationResult, UseQueryResult, UseInfiniteQueryResult, InfiniteData, QueryKey } from '@tanstack/react-query';
|
|
3
3
|
import { LinkProps } from 'react-router-dom';
|
|
4
|
-
import { B as ButtonProp } from './general.prop-
|
|
5
|
-
import { H as HandlerProp, a as ClassNameProp } from './shared.prop-
|
|
4
|
+
import { B as ButtonProp } from './general.prop-DoHDCRmL.js';
|
|
5
|
+
import { H as HandlerProp, a as ClassNameProp } from './shared.prop-BsNSXeqD.js';
|
|
6
6
|
|
|
7
7
|
/** Query / async lifecycle helpers — @see docs/COMPONENTS.md#query */
|
|
8
8
|
|
|
@@ -20,8 +20,8 @@ type DataStateProp<T> = {
|
|
|
20
20
|
children: (data: NonNullable<T>) => React.ReactNode;
|
|
21
21
|
};
|
|
22
22
|
type MutationLike = Pick<UseMutationResult<unknown, unknown, unknown, unknown>, "isError" | "error" | "isPending">;
|
|
23
|
-
/** @see
|
|
24
|
-
type
|
|
23
|
+
/** @see Alert.QueryError — inline mutation error (form submit, simulator run). */
|
|
24
|
+
type AlertMutationFeedbackProp = {
|
|
25
25
|
mutation: MutationLike;
|
|
26
26
|
onRetry?: HandlerProp;
|
|
27
27
|
showRetry?: boolean;
|
|
@@ -29,12 +29,16 @@ type MutationFeedbackProp = {
|
|
|
29
29
|
pending?: React.ReactNode;
|
|
30
30
|
className?: ClassNameProp;
|
|
31
31
|
};
|
|
32
|
+
/** @see MutationFeedback — deprecated alias for AlertMutationFeedback. */
|
|
33
|
+
type MutationFeedbackProp = AlertMutationFeedbackProp;
|
|
32
34
|
type QueryRefetchLike = Pick<UseQueryResult<unknown>, "isFetching" | "refetch">;
|
|
33
|
-
/** @see
|
|
34
|
-
type
|
|
35
|
+
/** @see ButtonRefetch — Button recipe wired to `query.refetch()`. */
|
|
36
|
+
type ButtonRefetchProp = Omit<ButtonProp, "onClick" | "disabled"> & {
|
|
35
37
|
query: QueryRefetchLike;
|
|
36
38
|
label?: React.ReactNode;
|
|
37
39
|
};
|
|
40
|
+
/** @see QueryRefetchButton — deprecated alias for ButtonRefetch. */
|
|
41
|
+
type QueryRefetchButtonProp = ButtonRefetchProp;
|
|
38
42
|
type InfiniteQueryLike<TPage> = Pick<UseInfiniteQueryResult<InfiniteData<TPage>, unknown>, "isPending" | "isError" | "isFetching" | "isFetchingNextPage" | "error" | "data" | "hasNextPage" | "fetchNextPage" | "refetch">;
|
|
39
43
|
type InfiniteQueryHelpers = {
|
|
40
44
|
fetchNextPage: () => void;
|
|
@@ -68,4 +72,4 @@ type PrefetchLinkProp = LinkProps & {
|
|
|
68
72
|
staleTime?: number;
|
|
69
73
|
};
|
|
70
74
|
|
|
71
|
-
export type { DataStateProp as D, InfiniteQueryHelpers as I, MutationFeedbackProp as M, PrefetchLinkProp as P, QueryRefetchButtonProp as Q, InfiniteQueryStateProp as a };
|
|
75
|
+
export type { AlertMutationFeedbackProp as A, ButtonRefetchProp as B, DataStateProp as D, InfiniteQueryHelpers as I, MutationFeedbackProp as M, PrefetchLinkProp as P, QueryRefetchButtonProp as Q, InfiniteQueryStateProp as a };
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { l as FormFieldProp, F as FieldProp } from './data-entry.prop-CDkOajPj.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
|
|
5
5
|
declare function FormField({ id, label, required, helper, error, labelAddon, className, children, }: FormFieldProp): react_jsx_runtime.JSX.Element;
|
|
6
6
|
|
|
7
|
+
/** Label + optional description beside a checkbox/radio/switch control. */
|
|
8
|
+
declare function Field({ id, label, description, className, children }: FieldProp): react_jsx_runtime.JSX.Element;
|
|
9
|
+
/** @deprecated Use Field. */
|
|
10
|
+
declare const ChoiceField: typeof Field;
|
|
11
|
+
|
|
7
12
|
interface SearchInputProps {
|
|
8
13
|
value?: string;
|
|
9
14
|
defaultValue?: string;
|
|
@@ -19,4 +24,4 @@ interface SearchInputProps {
|
|
|
19
24
|
}
|
|
20
25
|
declare function SearchInput({ value: controlledValue, defaultValue, placeholder, debounce, onSearch, label, ariaLabel, className, inputClassName, id, disabled, }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
21
26
|
|
|
22
|
-
export {
|
|
27
|
+
export { ChoiceField as C, Field as F, SearchInput as S, FormField as a };
|
|
@@ -13,6 +13,8 @@ type ChildrenProp = React.ReactNode;
|
|
|
13
13
|
type IdProp = string;
|
|
14
14
|
/** Controlled open state for panels (Dialog, Sheet, Popover). */
|
|
15
15
|
type OpenProp = boolean;
|
|
16
|
+
/** Uncontrolled initial open state for panels (Dialog, Sheet, Popover). */
|
|
17
|
+
type DefaultOpenProp = boolean;
|
|
16
18
|
/** Callback when open state changes. */
|
|
17
19
|
type OnOpenChangeProp = (open: boolean) => void;
|
|
18
20
|
/** Async or sync handler — no return value expected. */
|
|
@@ -33,8 +35,12 @@ type ErrorProp = React.ReactNode;
|
|
|
33
35
|
type PlaceholderProp = string;
|
|
34
36
|
/** HTML input `name` attribute. */
|
|
35
37
|
type NameProp = string;
|
|
36
|
-
/**
|
|
37
|
-
type ValueProp = string;
|
|
38
|
+
/** Abstract controlled value. */
|
|
39
|
+
type ValueProp<T = string> = T;
|
|
40
|
+
/** Abstract uncontrolled initial value. */
|
|
41
|
+
type DefaultValueProp<T = string> = T;
|
|
42
|
+
/** Callback when an abstract value changes. */
|
|
43
|
+
type OnValueChangeProp<T = string> = (value: T) => void;
|
|
38
44
|
/** Change handler for text inputs. */
|
|
39
45
|
type OnChangeProp = React.ChangeEventHandler<HTMLInputElement>;
|
|
40
46
|
/** Click handler for buttons and interactive elements. */
|
|
@@ -42,4 +48,4 @@ type OnClickProp = React.MouseEventHandler<HTMLButtonElement>;
|
|
|
42
48
|
/** Radix/shadcn `asChild` polymorphism — render as child element. */
|
|
43
49
|
type AsChildProp = boolean;
|
|
44
50
|
|
|
45
|
-
export type { AsChildProp as A, ChildrenProp as C,
|
|
51
|
+
export type { AsChildProp as A, ChildrenProp as C, DefaultOpenProp as D, ErrorProp as E, HandlerProp as H, IdProp as I, LabelProp as L, NameProp as N, OnChangeProp as O, PendingProp as P, RequiredProp as R, ValueProp as V, ClassNameProp as a, DefaultValueProp as b, DisabledProp as c, HelperProp as d, OnClickProp as e, OnOpenChangeProp as f, OnValueChangeProp as g, OpenProp as h, PlaceholderProp as i };
|
|
@@ -15,6 +15,8 @@ declare function SkeletonTable({ rows, columns }: SkeletonRowsProps): react_jsx_
|
|
|
15
15
|
/** Skeleton matching a Card detail layout — title + 6 metadata rows. */
|
|
16
16
|
declare function SkeletonDetail(): react_jsx_runtime.JSX.Element;
|
|
17
17
|
/** Skeleton matching a stat card / dashboard tile. */
|
|
18
|
-
declare function
|
|
18
|
+
declare function SkeletonStat(): react_jsx_runtime.JSX.Element;
|
|
19
|
+
/** @deprecated Use SkeletonStat. */
|
|
20
|
+
declare const SkeletonCard: typeof SkeletonStat;
|
|
19
21
|
|
|
20
|
-
export { Skeleton as S, SkeletonCard as a, SkeletonDetail as b, type SkeletonProps as c, SkeletonRows as d,
|
|
22
|
+
export { Skeleton as S, SkeletonCard as a, SkeletonDetail as b, type SkeletonProps as c, SkeletonRows as d, SkeletonStat as e, SkeletonTable as f };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ALERT — inset, gaps, dismiss offset; colors via data-
|
|
2
|
+
* ALERT — inset, gaps, dismiss offset; colors via data-tone + semantic tokens.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
@layer components {
|
|
@@ -7,40 +7,48 @@
|
|
|
7
7
|
position: relative;
|
|
8
8
|
display: flex;
|
|
9
9
|
align-items: flex-start;
|
|
10
|
-
gap: var(--space-
|
|
10
|
+
gap: var(--alert-space-gap);
|
|
11
11
|
width: 100%;
|
|
12
12
|
border-radius: var(--radius-md);
|
|
13
13
|
border-width: 1px;
|
|
14
|
-
padding: var(--space-
|
|
14
|
+
padding: var(--alert-space-inset);
|
|
15
15
|
font-size: var(--font-size-sm);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
[data-slot="alert"][data-
|
|
18
|
+
[data-slot="alert"][data-tone="default"],
|
|
19
|
+
[data-slot="alert"][data-tone="muted"],
|
|
20
|
+
[data-slot="alert"][data-tone="neutral"] {
|
|
19
21
|
border-color: hsl(var(--border));
|
|
20
22
|
background-color: hsl(var(--muted) / 0.4);
|
|
21
23
|
color: hsl(var(--foreground));
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
[data-slot="alert"][data-
|
|
26
|
+
[data-slot="alert"][data-tone="destructive"] {
|
|
25
27
|
border-color: hsl(var(--destructive) / 0.3);
|
|
26
28
|
background-color: hsl(var(--destructive) / 0.05);
|
|
27
29
|
color: hsl(var(--foreground));
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
[data-slot="alert"][data-
|
|
32
|
+
[data-slot="alert"][data-tone="warning"] {
|
|
31
33
|
border-color: hsl(var(--warning) / 0.3);
|
|
32
34
|
background-color: hsl(var(--warning) / 0.05);
|
|
33
35
|
color: hsl(var(--foreground));
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
[data-slot="alert"][data-
|
|
38
|
+
[data-slot="alert"][data-tone="success"] {
|
|
37
39
|
border-color: hsl(var(--success) / 0.3);
|
|
38
40
|
background-color: hsl(var(--success) / 0.05);
|
|
39
41
|
color: hsl(var(--foreground));
|
|
40
42
|
}
|
|
41
43
|
|
|
44
|
+
[data-slot="alert"][data-tone="info"] {
|
|
45
|
+
border-color: hsl(var(--info) / 0.3);
|
|
46
|
+
background-color: hsl(var(--info) / 0.05);
|
|
47
|
+
color: hsl(var(--foreground));
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
[data-slot="alert"][data-dismissible] {
|
|
43
|
-
padding-right: calc(var(--space-
|
|
51
|
+
padding-right: calc(var(--alert-space-inset) + var(--space-8));
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
[data-slot="alert-icon"] {
|
|
@@ -50,28 +58,34 @@
|
|
|
50
58
|
margin-top: 0.125rem;
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
[data-slot="alert-icon"][data-
|
|
61
|
+
[data-slot="alert-icon"][data-tone="default"],
|
|
62
|
+
[data-slot="alert-icon"][data-tone="muted"],
|
|
63
|
+
[data-slot="alert-icon"][data-tone="neutral"] {
|
|
54
64
|
color: hsl(var(--foreground));
|
|
55
65
|
}
|
|
56
66
|
|
|
57
|
-
[data-slot="alert-icon"][data-
|
|
67
|
+
[data-slot="alert-icon"][data-tone="destructive"] {
|
|
58
68
|
color: hsl(var(--destructive));
|
|
59
69
|
}
|
|
60
70
|
|
|
61
|
-
[data-slot="alert-icon"][data-
|
|
71
|
+
[data-slot="alert-icon"][data-tone="warning"] {
|
|
62
72
|
color: hsl(var(--warning));
|
|
63
73
|
}
|
|
64
74
|
|
|
65
|
-
[data-slot="alert-icon"][data-
|
|
75
|
+
[data-slot="alert-icon"][data-tone="success"] {
|
|
66
76
|
color: hsl(var(--success));
|
|
67
77
|
}
|
|
68
78
|
|
|
79
|
+
[data-slot="alert-icon"][data-tone="info"] {
|
|
80
|
+
color: hsl(var(--info));
|
|
81
|
+
}
|
|
82
|
+
|
|
69
83
|
[data-slot="alert-body"] {
|
|
70
84
|
display: flex;
|
|
71
85
|
flex: 1;
|
|
72
86
|
min-width: 0;
|
|
73
87
|
flex-direction: column;
|
|
74
|
-
gap: var(--
|
|
88
|
+
gap: var(--alert-inner-space-gap);
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
@media (min-width: 640px) {
|
|
@@ -88,18 +102,22 @@
|
|
|
88
102
|
line-height: 1;
|
|
89
103
|
}
|
|
90
104
|
|
|
91
|
-
[data-slot="alert-title"][data-
|
|
105
|
+
[data-slot="alert-title"][data-tone="destructive"] {
|
|
92
106
|
color: hsl(var(--destructive));
|
|
93
107
|
}
|
|
94
108
|
|
|
95
|
-
[data-slot="alert-title"][data-
|
|
109
|
+
[data-slot="alert-title"][data-tone="warning"] {
|
|
96
110
|
color: hsl(var(--warning));
|
|
97
111
|
}
|
|
98
112
|
|
|
99
|
-
[data-slot="alert-title"][data-
|
|
113
|
+
[data-slot="alert-title"][data-tone="success"] {
|
|
100
114
|
color: hsl(var(--success));
|
|
101
115
|
}
|
|
102
116
|
|
|
117
|
+
[data-slot="alert-title"][data-tone="info"] {
|
|
118
|
+
color: hsl(var(--info));
|
|
119
|
+
}
|
|
120
|
+
|
|
103
121
|
[data-slot="alert-description"] {
|
|
104
122
|
margin-top: var(--space-1);
|
|
105
123
|
font-size: var(--font-size-sm);
|
|
@@ -124,8 +142,8 @@
|
|
|
124
142
|
|
|
125
143
|
[data-slot="alert-dismiss"] {
|
|
126
144
|
position: absolute;
|
|
127
|
-
top: var(--
|
|
128
|
-
right: var(--
|
|
145
|
+
top: var(--alert-dismiss-space-offset);
|
|
146
|
+
right: var(--alert-dismiss-space-offset);
|
|
129
147
|
border-radius: var(--radius-sm);
|
|
130
148
|
opacity: 0.7;
|
|
131
149
|
}
|
|
@@ -138,6 +156,7 @@
|
|
|
138
156
|
|
|
139
157
|
.ui-skeleton-rows,
|
|
140
158
|
.ui-skeleton-detail-stack,
|
|
159
|
+
.ui-skeleton-stat,
|
|
141
160
|
.ui-skeleton-card {
|
|
142
161
|
display: grid;
|
|
143
162
|
gap: var(--skeleton-row-gap);
|
|
@@ -177,6 +196,7 @@
|
|
|
177
196
|
}
|
|
178
197
|
|
|
179
198
|
.ui-skeleton-detail-box,
|
|
199
|
+
.ui-skeleton-stat,
|
|
180
200
|
.ui-skeleton-card {
|
|
181
201
|
border: 1px solid hsl(var(--border));
|
|
182
202
|
border-radius: var(--skeleton-radius);
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
[data-slot="badge"] {
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
align-items: center;
|
|
9
|
-
gap: var(--space-
|
|
10
|
-
padding: var(--space-
|
|
9
|
+
gap: var(--badge-space-gap);
|
|
10
|
+
padding: var(--badge-space-y) var(--badge-space-x);
|
|
11
11
|
border-radius: var(--radius-md);
|
|
12
12
|
border-width: 1px;
|
|
13
13
|
font-size: var(--font-size-xs);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* -----------------------------------------------------------------
|
|
4
4
|
* Card* components emit data-slot + data-* flags ONLY. All inset/gap padding lives here.
|
|
5
5
|
*
|
|
6
|
-
* Uses card
|
|
6
|
+
* Uses card component tokens from src/tokens/components/card.css.
|
|
7
7
|
* Card tokens derive from foundation/layout primitives and are coordinated by tokens/base.css.
|
|
8
8
|
*
|
|
9
9
|
* Slot ownership — one token per vertical gap:
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
[data-slot="card"] {
|
|
19
19
|
min-width: 0;
|
|
20
|
-
border-color: hsl(var(--card-border
|
|
20
|
+
border-color: hsl(var(--card-border));
|
|
21
21
|
border-radius: var(--card-radius);
|
|
22
22
|
background: hsl(var(--card-background));
|
|
23
|
-
color: hsl(var(--card-foreground
|
|
23
|
+
color: hsl(var(--card-foreground));
|
|
24
24
|
overflow: hidden;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.ui-card-header--banded {
|
|
101
|
-
border-bottom: 1px solid hsl(var(--card-border
|
|
101
|
+
border-bottom: 1px solid hsl(var(--card-border));
|
|
102
102
|
background-color: hsl(var(--card-header-background) / var(--card-header-background-alpha));
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
[data-slot="card-footer"][data-separated] {
|
|
273
|
-
border-top: 1px solid hsl(var(--card-border
|
|
273
|
+
border-top: 1px solid hsl(var(--card-border));
|
|
274
274
|
padding-block: var(--card-space-footer-y);
|
|
275
275
|
justify-content: flex-end;
|
|
276
276
|
}
|
package/dist/styles/control.css
CHANGED
|
@@ -570,3 +570,34 @@
|
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
|
+
|
|
574
|
+
/* PasswordInput */
|
|
575
|
+
.ui-password-input { position: relative; display: block; }
|
|
576
|
+
.ui-password-input-field { padding-right: 2.5rem; }
|
|
577
|
+
.ui-password-input-toggle {
|
|
578
|
+
position: absolute; inset-block: 0; inset-inline-end: 0; display: inline-flex;
|
|
579
|
+
align-items: center; justify-content: center; width: 2.5rem;
|
|
580
|
+
color: hsl(var(--muted-foreground)); background: transparent; border: 0; cursor: pointer;
|
|
581
|
+
}
|
|
582
|
+
.ui-password-input-toggle:hover { color: hsl(var(--foreground)); }
|
|
583
|
+
.ui-password-input-toggle svg { width: 1rem; height: 1rem; }
|
|
584
|
+
|
|
585
|
+
/* InputOTP */
|
|
586
|
+
.ui-otp-container { display: flex; align-items: center; gap: var(--space-2); }
|
|
587
|
+
.ui-otp-input:disabled { cursor: not-allowed; }
|
|
588
|
+
.ui-otp-group { display: flex; align-items: center; }
|
|
589
|
+
.ui-otp-slot {
|
|
590
|
+
position: relative; display: flex; width: 2.25rem; height: 2.25rem;
|
|
591
|
+
align-items: center; justify-content: center; font-size: 0.875rem;
|
|
592
|
+
border: 1px solid hsl(var(--border)); border-inline-start-width: 0;
|
|
593
|
+
background: hsl(var(--background)); transition: box-shadow 0.15s ease;
|
|
594
|
+
}
|
|
595
|
+
.ui-otp-group .ui-otp-slot:first-child {
|
|
596
|
+
border-inline-start-width: 1px; border-start-start-radius: var(--radius-md); border-end-start-radius: var(--radius-md);
|
|
597
|
+
}
|
|
598
|
+
.ui-otp-group .ui-otp-slot:last-child { border-start-end-radius: var(--radius-md); border-end-end-radius: var(--radius-md); }
|
|
599
|
+
.ui-otp-slot[data-active="true"] { z-index: 1; box-shadow: 0 0 0 2px hsl(var(--ring)); }
|
|
600
|
+
.ui-otp-caret-wrapper { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
|
|
601
|
+
.ui-otp-caret { width: 1px; height: 1rem; background: hsl(var(--foreground)); animation: ui-otp-blink 1s step-end infinite; }
|
|
602
|
+
@keyframes ui-otp-blink { 50% { opacity: 0; } }
|
|
603
|
+
.ui-otp-separator-icon { width: 1rem; height: 1rem; color: hsl(var(--muted-foreground)); }
|
|
@@ -186,3 +186,28 @@
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
}
|
|
189
|
+
|
|
190
|
+
/* Accordion */
|
|
191
|
+
.ui-accordion-item { border-bottom: 1px solid hsl(var(--border)); }
|
|
192
|
+
.ui-accordion-header { display: flex; }
|
|
193
|
+
.ui-accordion-trigger {
|
|
194
|
+
display: flex; flex: 1; align-items: center; justify-content: space-between;
|
|
195
|
+
gap: var(--space-2); padding-block: var(--space-4); font-weight: 500; text-align: left;
|
|
196
|
+
transition: color 0.15s ease;
|
|
197
|
+
}
|
|
198
|
+
.ui-accordion-trigger:hover { text-decoration: underline; }
|
|
199
|
+
.ui-accordion-chevron {
|
|
200
|
+
width: 1rem; height: 1rem; color: hsl(var(--muted-foreground));
|
|
201
|
+
transition: transform 0.2s ease; flex-shrink: 0;
|
|
202
|
+
}
|
|
203
|
+
.ui-accordion-trigger[data-state="open"] .ui-accordion-chevron { transform: rotate(180deg); }
|
|
204
|
+
.ui-accordion-content { overflow: hidden; font-size: 0.875rem; }
|
|
205
|
+
.ui-accordion-content-inner { padding-bottom: var(--space-4); }
|
|
206
|
+
|
|
207
|
+
/* HoverCard */
|
|
208
|
+
.ui-hover-card-content {
|
|
209
|
+
z-index: 50; width: 16rem; border-radius: var(--radius-md);
|
|
210
|
+
border: 1px solid hsl(var(--border)); background: hsl(var(--popover));
|
|
211
|
+
color: hsl(var(--popover-foreground)); padding: var(--space-4);
|
|
212
|
+
box-shadow: var(--shadow-md); outline: none;
|
|
213
|
+
}
|
package/dist/styles/density.css
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
--control-padding-x: var(--control-padding-x-compact);
|
|
10
10
|
--table-row-height: var(--table-row-height-compact);
|
|
11
11
|
--phi-unit: var(--space-3);
|
|
12
|
-
--checkbox-size:
|
|
13
|
-
--switch-width:
|
|
14
|
-
--switch-height:
|
|
15
|
-
--switch-thumb-size:
|
|
16
|
-
--switch-thumb-translate:
|
|
12
|
+
--checkbox-size: var(--checkbox-size-compact);
|
|
13
|
+
--switch-width: var(--switch-width-compact);
|
|
14
|
+
--switch-height: var(--switch-height-compact);
|
|
15
|
+
--switch-thumb-size: var(--switch-thumb-size-compact);
|
|
16
|
+
--switch-thumb-translate: var(--switch-thumb-translate-compact);
|
|
17
17
|
--table-cell-padding-y: var(--space-1);
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
--control-padding-x: var(--control-padding-x-comfortable);
|
|
34
34
|
--table-row-height: var(--table-row-height-comfortable);
|
|
35
35
|
--phi-unit: var(--space-6);
|
|
36
|
-
--checkbox-size:
|
|
37
|
-
--switch-width:
|
|
38
|
-
--switch-height:
|
|
39
|
-
--switch-thumb-size:
|
|
40
|
-
--switch-thumb-translate:
|
|
36
|
+
--checkbox-size: var(--checkbox-size-comfortable);
|
|
37
|
+
--switch-width: var(--switch-width-comfortable);
|
|
38
|
+
--switch-height: var(--switch-height-comfortable);
|
|
39
|
+
--switch-thumb-size: var(--switch-thumb-size-comfortable);
|
|
40
|
+
--switch-thumb-translate: var(--switch-thumb-translate-comfortable);
|
|
41
41
|
--table-cell-padding-y: var(--space-2);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
width: 100%;
|
|
20
20
|
max-width: 32rem;
|
|
21
21
|
transform: translate(-50%, -50%);
|
|
22
|
-
gap: var(--space-
|
|
22
|
+
gap: var(--dialog-space-gap);
|
|
23
23
|
border: 1px solid hsl(var(--border));
|
|
24
24
|
background-color: hsl(var(--background));
|
|
25
|
-
padding: var(--space-
|
|
25
|
+
padding: var(--dialog-space-inset);
|
|
26
26
|
box-shadow: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
|
|
61
61
|
[data-slot="dialog-close"] {
|
|
62
62
|
position: absolute;
|
|
63
|
-
inset-inline-end: var(--
|
|
64
|
-
top: var(--
|
|
63
|
+
inset-inline-end: var(--dialog-close-space-offset);
|
|
64
|
+
top: var(--dialog-close-space-offset);
|
|
65
65
|
border-radius: var(--radius-sm);
|
|
66
66
|
opacity: 0.7;
|
|
67
67
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
/* Drawer (bottom-sheet, vaul) */
|
|
3
|
+
.ui-drawer-overlay { position: fixed; inset: 0; z-index: 50; background: hsl(var(--overlay, 0 0% 0% / 0.4)); }
|
|
4
|
+
.ui-drawer-content {
|
|
5
|
+
position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 50;
|
|
6
|
+
display: flex; flex-direction: column; max-height: 82vh;
|
|
7
|
+
border-start-start-radius: var(--radius-lg); border-start-end-radius: var(--radius-lg);
|
|
8
|
+
border: 1px solid hsl(var(--border)); background: hsl(var(--background));
|
|
9
|
+
}
|
|
10
|
+
.ui-drawer-handle {
|
|
11
|
+
margin: var(--space-3) auto; height: 0.375rem; width: 6rem; flex-shrink: 0;
|
|
12
|
+
border-radius: 9999px; background: hsl(var(--muted));
|
|
13
|
+
}
|
|
14
|
+
.ui-drawer-header { display: grid; gap: var(--space-1); padding: var(--space-4); text-align: center; }
|
|
15
|
+
.ui-drawer-footer { display: flex; flex-direction: column; gap: var(--space-2); margin-top: auto; padding: var(--space-4); }
|
|
16
|
+
.ui-drawer-title { font-weight: 600; line-height: 1.2; }
|
|
17
|
+
.ui-drawer-description { font-size: 0.875rem; color: hsl(var(--muted-foreground)); }
|
package/dist/styles/index.css
CHANGED
|
@@ -47,15 +47,12 @@
|
|
|
47
47
|
--color-info-foreground: hsl(var(--info-foreground));
|
|
48
48
|
--color-attention: hsl(var(--attention));
|
|
49
49
|
--color-attention-foreground: hsl(var(--attention-foreground));
|
|
50
|
-
--color-chart-1:
|
|
51
|
-
--color-chart-2:
|
|
52
|
-
--color-chart-3:
|
|
53
|
-
--color-chart-4:
|
|
54
|
-
--color-chart-5:
|
|
55
|
-
--color-chart-6:
|
|
56
|
-
--color-tracking-internal: hsl(var(--tracking-internal));
|
|
57
|
-
--color-tracking-seller: hsl(var(--tracking-seller));
|
|
58
|
-
--color-tracking-yamato: hsl(var(--tracking-yamato));
|
|
50
|
+
--color-chart-1: var(--chart-1);
|
|
51
|
+
--color-chart-2: var(--chart-2);
|
|
52
|
+
--color-chart-3: var(--chart-3);
|
|
53
|
+
--color-chart-4: var(--chart-4);
|
|
54
|
+
--color-chart-5: var(--chart-5);
|
|
55
|
+
--color-chart-6: var(--chart-6);
|
|
59
56
|
--radius-lg: var(--radius);
|
|
60
57
|
--radius-md: calc(var(--radius) - 2px);
|
|
61
58
|
--radius-sm: calc(var(--radius) - 4px);
|