@godxjp/ui 9.1.0 → 10.0.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/README.md +58 -29
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.js +4 -4
- package/dist/{app.prop-DnIXFzLi.d.ts → app.prop-Cy6dJnU8.d.ts} +18 -35
- package/dist/aspect-ratio-CZZJd9Km.d.ts +9 -0
- package/dist/{checkbox-ChRsR7Nk.d.ts → checkbox-em-oFM5D.d.ts} +1 -1
- package/dist/{chunk-LJLGABFV.js → chunk-2HXZT2WJ.js} +17 -9
- package/dist/{chunk-QLMXEJSY.js → chunk-3Q4A4U2P.js} +24 -1
- package/dist/{chunk-26CPAKUP.js → chunk-44YRPSZ7.js} +1 -2
- package/dist/{chunk-HB2OHB5X.js → chunk-5NCFLCM7.js} +27 -16
- package/dist/{chunk-FXFJF4YA.js → chunk-6CSBMMZS.js} +262 -31
- package/dist/{chunk-ZRRLOOBX.js → chunk-6HHSU6RG.js} +8 -6
- package/dist/{chunk-INSF6K3Y.js → chunk-7Q45MBFW.js} +7 -5
- package/dist/{chunk-O24Z3ULJ.js → chunk-BE6GJGKJ.js} +1 -1
- package/dist/{chunk-5D42MFB4.js → chunk-BG5RNXTH.js} +71 -2
- package/dist/{chunk-AINW5WYN.js → chunk-COD66MFF.js} +1 -2
- package/dist/{chunk-IOGU3ZWF.js → chunk-DNGJHWJZ.js} +3 -3
- package/dist/{chunk-3TS3G4U3.js → chunk-EE5DKOHX.js} +3 -1
- package/dist/{chunk-KXOAZGPA.js → chunk-EQZP53KI.js} +33 -8
- package/dist/{chunk-BHV2FUOA.js → chunk-EZHHJQWQ.js} +1 -1
- package/dist/{chunk-N3JPLJ3B.js → chunk-GDDCSKCB.js} +12 -5
- package/dist/{chunk-RLGHEV4A.js → chunk-HTG5VHU7.js} +10 -1
- package/dist/{chunk-R2W2FX5Q.js → chunk-I7NQ2LIL.js} +1 -9
- package/dist/{chunk-XQMPK4GM.js → chunk-IHRMOJXD.js} +86 -39
- package/dist/{chunk-TILFZBTE.js → chunk-INIIF7F7.js} +1 -4
- package/dist/{chunk-UIYEAUWA.js → chunk-IY347EQA.js} +2 -2
- package/dist/{chunk-HCM4JAC2.js → chunk-JWGLJXQU.js} +39 -11
- package/dist/{chunk-TO33OY4L.js → chunk-LMKUKCTN.js} +1 -1
- package/dist/chunk-NXVCI6YB.js +453 -0
- package/dist/{chunk-JBHXILI4.js → chunk-O6DQZYNI.js} +63 -44
- package/dist/{chunk-O2OUNXV4.js → chunk-P5KPCT6R.js} +3 -3
- package/dist/{chunk-56NYZNVY.js → chunk-PDXFQS7M.js} +112 -49
- package/dist/{chunk-F7PG4OEV.js → chunk-QSGW3ZWK.js} +12 -4
- package/dist/{chunk-25RYBC5T.js → chunk-S2IJKT3D.js} +1 -1
- package/dist/{chunk-OJZ6C2HM.js → chunk-SARQRCKO.js} +54 -48
- package/dist/chunk-T2QO2S65.js +126 -0
- package/dist/{chunk-442ULAA6.js → chunk-TGNBXS7H.js} +142 -62
- package/dist/{chunk-6J7GRCDA.js → chunk-UNVRNJCB.js} +71 -11
- package/dist/{chunk-6YBYAEXD.js → chunk-VSM44AYE.js} +94 -24
- package/dist/chunk-VSUYVT2Q.js +163 -0
- package/dist/{chunk-4R7QL3MW.js → chunk-X2VY4MOW.js} +14 -29
- package/dist/{chunk-FRU44GA2.js → chunk-XK3M3VRR.js} +16 -2
- package/dist/{chunk-6YK3IJXW.js → chunk-Z46J47FY.js} +73 -77
- package/dist/components/admin/index.d.ts +23 -13
- package/dist/components/admin/index.js +29 -30
- package/dist/components/data-display/badge.js +3 -3
- package/dist/components/data-display/card.d.ts +3 -3
- package/dist/components/data-display/card.js +1 -1
- package/dist/components/data-display/carousel.js +3 -1
- package/dist/components/data-display/index.js +55 -33
- package/dist/components/data-entry/calendar.d.ts +1 -1
- package/dist/components/data-entry/calendar.js +1 -1
- package/dist/components/data-entry/cascader.d.ts +1 -1
- package/dist/components/data-entry/cascader.js +5 -5
- package/dist/components/data-entry/checkbox.d.ts +2 -2
- package/dist/components/data-entry/checkbox.js +2 -2
- package/dist/components/data-entry/color-picker.d.ts +1 -1
- package/dist/components/data-entry/color-picker.js +3 -3
- package/dist/components/data-entry/date-picker.d.ts +2 -2
- package/dist/components/data-entry/date-picker.js +4 -4
- package/dist/components/data-entry/date-range-picker.d.ts +2 -2
- package/dist/components/data-entry/date-range-picker.js +4 -4
- package/dist/components/data-entry/index.d.ts +9 -25
- package/dist/components/data-entry/index.js +22 -26
- package/dist/components/data-entry/radio.d.ts +1 -1
- package/dist/components/data-entry/radio.js +2 -2
- package/dist/components/data-entry/select.d.ts +2 -2
- package/dist/components/data-entry/select.js +3 -4
- package/dist/components/data-entry/slider.d.ts +1 -1
- package/dist/components/data-entry/switch.d.ts +2 -2
- package/dist/components/data-entry/switch.js +1 -1
- package/dist/components/data-entry/time-input.js +2 -2
- package/dist/components/data-entry/time-picker.d.ts +3 -1
- package/dist/components/data-entry/time-picker.js +3 -3
- package/dist/components/data-entry/transfer.d.ts +2 -2
- package/dist/components/data-entry/transfer.js +5 -5
- package/dist/components/data-entry/tree-select.d.ts +1 -1
- package/dist/components/data-entry/tree-select.js +5 -5
- package/dist/components/data-entry/upload.d.ts +2 -2
- package/dist/components/data-entry/upload.js +5 -5
- package/dist/components/feedback/alert.js +5 -5
- package/dist/components/feedback/dialog.d.ts +20 -1
- package/dist/components/feedback/dialog.js +3 -3
- package/dist/components/feedback/index.d.ts +10 -18
- package/dist/components/feedback/index.js +9 -9
- package/dist/components/feedback/sheet.js +1 -1
- package/dist/components/layout/index.d.ts +27 -15
- package/dist/components/layout/index.js +7 -5
- package/dist/components/navigation/dropdown-menu.js +1 -1
- package/dist/components/navigation/index.d.ts +15 -17
- package/dist/components/navigation/index.js +7 -8
- package/dist/components/navigation/pagination.d.ts +25 -4
- package/dist/components/navigation/pagination.js +4 -5
- package/dist/components/navigation/steps.d.ts +3 -3
- package/dist/components/navigation/steps.js +3 -1
- package/dist/components/query/index.d.ts +1 -5
- package/dist/components/query/index.js +6 -8
- package/dist/components/ui/index.d.ts +13 -12
- package/dist/components/ui/index.js +30 -32
- package/dist/{data-entry.prop-CDkOajPj.d.ts → data-entry.prop-BR4vNA1j.d.ts} +7 -35
- package/dist/filter-bar-BxjSJJnQ.d.ts +7 -0
- package/dist/{inline-DCqn4O29.d.ts → flex-D_EXRFSW.d.ts} +2 -8
- package/dist/form/index.js +1 -1
- package/dist/i18n/index.d.ts +82 -10
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +7 -7
- package/dist/index.js +41 -44
- package/dist/{layout.prop-DwJKI6ka.d.ts → layout.prop-JE2TcRyL.d.ts} +8 -2
- package/dist/lib/datetime/index.js +1 -1
- package/dist/{navigation.prop-8DgElO0c.d.ts → navigation.prop-DMcXkR-J.d.ts} +9 -11
- package/dist/{toggle-group-BulJgKh3.d.ts → password-strength-DVRvXEOK.d.ts} +24 -3
- package/dist/props/components/index.d.ts +4 -4
- package/dist/props/index.d.ts +4 -4
- package/dist/props/index.js +1 -1
- package/dist/props/registry.d.ts +84 -39
- package/dist/props/registry.js +1 -1
- package/dist/{search-input-cezAxpgb.d.ts → search-input-DpqDMXcn.d.ts} +2 -4
- package/dist/{skeleton-uWAjSacg.d.ts → skeleton-cj9kh5wo.d.ts} +1 -3
- package/dist/styles/control.css +176 -41
- package/dist/styles/data-display-layout.css +41 -15
- package/dist/styles/data-entry-layout.css +71 -0
- package/dist/styles/feedback-layout.css +44 -12
- package/dist/styles/index.css +45 -1
- package/dist/styles/layout.css +66 -17
- package/dist/styles/navigation-layout.css +3 -1
- package/dist/styles/shell-layout.css +3 -3
- package/dist/styles/table-layout.css +13 -0
- package/dist/tokens/foundation.css +12 -1
- package/dist/tokens/semantic/layout.css +2 -2
- package/dist/tooltip-Bf2KjRy8.d.ts +14 -0
- package/package.json +7 -7
- package/scripts/ui-audit.mjs +31 -2
- package/dist/aspect-ratio-DGoYrOry.d.ts +0 -6
- package/dist/chunk-CAEL2ZD2.js +0 -222
- package/dist/chunk-FYM3MJSK.js +0 -59
- package/dist/chunk-GKXPALFT.js +0 -32
- package/dist/chunk-JKHWLPM5.js +0 -101
- package/dist/chunk-KDBGFJJI.js +0 -220
- package/dist/chunk-VN72SWHX.js +0 -189
- package/dist/components/data-entry/autocomplete.d.ts +0 -24
- package/dist/components/data-entry/autocomplete.js +0 -10
- package/dist/components/data-entry/combobox.d.ts +0 -22
- package/dist/components/data-entry/combobox.js +0 -6
- package/dist/filter-bar-BycYH10i.d.ts +0 -14
- /package/dist/{chunk-LDSLS6HE.js → chunk-7CFO5FFE.js} +0 -0
package/dist/props/registry.d.ts
CHANGED
|
@@ -322,22 +322,7 @@ declare const COMPONENT_PROP_REGISTRY: {
|
|
|
322
322
|
readonly file: "components/app.prop.ts";
|
|
323
323
|
readonly vocabulary: readonly ["ChildrenProp"];
|
|
324
324
|
};
|
|
325
|
-
readonly
|
|
326
|
-
readonly group: "app";
|
|
327
|
-
readonly file: "components/app.prop.ts";
|
|
328
|
-
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "IdProp", "ClassNameProp"];
|
|
329
|
-
};
|
|
330
|
-
readonly TimezonePickerProp: {
|
|
331
|
-
readonly group: "app";
|
|
332
|
-
readonly file: "components/app.prop.ts";
|
|
333
|
-
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "IdProp", "ClassNameProp"];
|
|
334
|
-
};
|
|
335
|
-
readonly TimeFormatPickerProp: {
|
|
336
|
-
readonly group: "app";
|
|
337
|
-
readonly file: "components/app.prop.ts";
|
|
338
|
-
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "IdProp", "ClassNameProp"];
|
|
339
|
-
};
|
|
340
|
-
readonly DateFormatPickerProp: {
|
|
325
|
+
readonly AppSettingPickerProp: {
|
|
341
326
|
readonly group: "app";
|
|
342
327
|
readonly file: "components/app.prop.ts";
|
|
343
328
|
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "IdProp", "ClassNameProp"];
|
|
@@ -509,26 +494,6 @@ declare const COMPONENT_PROP_REGISTRY: {
|
|
|
509
494
|
readonly file: "components/data-entry.prop.ts";
|
|
510
495
|
readonly vocabulary: readonly ["IdProp", "LabelProp", "DescriptionProp", "ClassNameProp", "ChildrenProp"];
|
|
511
496
|
};
|
|
512
|
-
readonly ChoiceFieldProp: {
|
|
513
|
-
readonly group: "data-entry";
|
|
514
|
-
readonly file: "components/data-entry.prop.ts";
|
|
515
|
-
readonly vocabulary: readonly ["IdProp", "LabelProp", "ClassNameProp"];
|
|
516
|
-
};
|
|
517
|
-
readonly CountryOptionProp: {
|
|
518
|
-
readonly group: "data-entry";
|
|
519
|
-
readonly file: "components/data-entry.prop.ts";
|
|
520
|
-
readonly vocabulary: readonly ["LabelProp", "ValueProp"];
|
|
521
|
-
};
|
|
522
|
-
readonly CountryOptionLabelProp: {
|
|
523
|
-
readonly group: "data-entry";
|
|
524
|
-
readonly file: "components/data-entry.prop.ts";
|
|
525
|
-
readonly vocabulary: readonly ["ClassNameProp"];
|
|
526
|
-
};
|
|
527
|
-
readonly CountrySelectProp: {
|
|
528
|
-
readonly group: "data-entry";
|
|
529
|
-
readonly file: "components/data-entry.prop.ts";
|
|
530
|
-
readonly vocabulary: readonly ["IdProp", "NameProp", "DefaultValueProp", "RequiredProp", "PlaceholderProp"];
|
|
531
|
-
};
|
|
532
497
|
readonly SliderProp: {
|
|
533
498
|
readonly group: "data-entry";
|
|
534
499
|
readonly file: "components/data-entry.prop.ts";
|
|
@@ -794,17 +759,17 @@ declare const COMPONENT_PROP_REGISTRY: {
|
|
|
794
759
|
readonly PaginationProp: {
|
|
795
760
|
readonly group: "navigation";
|
|
796
761
|
readonly file: "components/navigation.prop.ts";
|
|
797
|
-
readonly vocabulary: readonly ["DisabledProp", "ClassNameProp"];
|
|
762
|
+
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "ClassNameProp"];
|
|
798
763
|
};
|
|
799
764
|
readonly StepsProp: {
|
|
800
765
|
readonly group: "navigation";
|
|
801
766
|
readonly file: "components/navigation.prop.ts";
|
|
802
|
-
readonly vocabulary: readonly ["SizeProp", "OnValueChangeProp", "ClassNameProp"];
|
|
767
|
+
readonly vocabulary: readonly ["ValueProp", "DefaultValueProp", "SizeProp", "OnValueChangeProp", "ClassNameProp"];
|
|
803
768
|
};
|
|
804
769
|
readonly StepItemProp: {
|
|
805
770
|
readonly group: "navigation";
|
|
806
771
|
readonly file: "components/navigation.prop.ts";
|
|
807
|
-
readonly vocabulary: readonly ["TitleProp", "DescriptionProp", "IconProp", "DisabledProp"];
|
|
772
|
+
readonly vocabulary: readonly ["TitleProp", "SubtitleProp", "DescriptionProp", "IconProp", "DisabledProp"];
|
|
808
773
|
};
|
|
809
774
|
readonly StepStatusProp: {
|
|
810
775
|
readonly group: "navigation";
|
|
@@ -851,6 +816,86 @@ declare const COMPONENT_PROP_REGISTRY: {
|
|
|
851
816
|
readonly file: "components/form.prop.ts";
|
|
852
817
|
readonly vocabulary: readonly ["ZodSchemaProp"];
|
|
853
818
|
};
|
|
819
|
+
readonly ToggleProp: {
|
|
820
|
+
readonly group: "data-entry";
|
|
821
|
+
readonly file: "components/ui/toggle.tsx";
|
|
822
|
+
readonly vocabulary: readonly ["SizeProp", "ClassNameProp"];
|
|
823
|
+
};
|
|
824
|
+
readonly RatingProp: {
|
|
825
|
+
readonly group: "data-entry";
|
|
826
|
+
readonly file: "components/ui/rating.tsx";
|
|
827
|
+
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "DisabledProp", "ClassNameProp"];
|
|
828
|
+
};
|
|
829
|
+
readonly TagInputProp: {
|
|
830
|
+
readonly group: "data-entry";
|
|
831
|
+
readonly file: "components/ui/tag-input.tsx";
|
|
832
|
+
readonly vocabulary: readonly ["ValueProp", "OnValueChangeProp", "PlaceholderProp", "IdProp", "ClassNameProp"];
|
|
833
|
+
};
|
|
834
|
+
readonly PasswordInputProp: {
|
|
835
|
+
readonly group: "data-entry";
|
|
836
|
+
readonly file: "components/ui/password-input.tsx";
|
|
837
|
+
readonly vocabulary: readonly ["ClassNameProp"];
|
|
838
|
+
};
|
|
839
|
+
readonly PasswordStrengthProp: {
|
|
840
|
+
readonly group: "data-entry";
|
|
841
|
+
readonly file: "components/data-entry/password-strength.tsx";
|
|
842
|
+
readonly vocabulary: readonly ["ValueProp", "ClassNameProp"];
|
|
843
|
+
};
|
|
844
|
+
readonly ProgressProp: {
|
|
845
|
+
readonly group: "data-display";
|
|
846
|
+
readonly file: "components/data-display/progress.tsx";
|
|
847
|
+
readonly vocabulary: readonly ["ValueProp", "LabelProp", "ClassNameProp"];
|
|
848
|
+
};
|
|
849
|
+
readonly TimelineProp: {
|
|
850
|
+
readonly group: "data-display";
|
|
851
|
+
readonly file: "components/data-display/timeline.tsx";
|
|
852
|
+
readonly vocabulary: readonly ["ClassNameProp"];
|
|
853
|
+
};
|
|
854
|
+
readonly TreeListProp: {
|
|
855
|
+
readonly group: "data-display";
|
|
856
|
+
readonly file: "components/data-display/tree-list.tsx";
|
|
857
|
+
readonly vocabulary: readonly ["ClassNameProp"];
|
|
858
|
+
};
|
|
859
|
+
readonly CardProp: {
|
|
860
|
+
readonly group: "data-display";
|
|
861
|
+
readonly file: "components/data-display/card.tsx";
|
|
862
|
+
readonly vocabulary: readonly ["ToneProp", "ClassNameProp", "ChildrenProp"];
|
|
863
|
+
};
|
|
864
|
+
readonly CardCoverProp: {
|
|
865
|
+
readonly group: "data-display";
|
|
866
|
+
readonly file: "components/data-display/card.tsx";
|
|
867
|
+
readonly vocabulary: readonly ["ClassNameProp", "ChildrenProp"];
|
|
868
|
+
};
|
|
869
|
+
readonly CardHeaderProp: {
|
|
870
|
+
readonly group: "data-display";
|
|
871
|
+
readonly file: "components/data-display/card.tsx";
|
|
872
|
+
readonly vocabulary: readonly ["TitleProp", "DescriptionProp", "ClassNameProp", "ChildrenProp"];
|
|
873
|
+
};
|
|
874
|
+
readonly CardContentProp: {
|
|
875
|
+
readonly group: "data-display";
|
|
876
|
+
readonly file: "components/data-display/card.tsx";
|
|
877
|
+
readonly vocabulary: readonly ["ClassNameProp", "ChildrenProp"];
|
|
878
|
+
};
|
|
879
|
+
readonly CardFooterProp: {
|
|
880
|
+
readonly group: "data-display";
|
|
881
|
+
readonly file: "components/data-display/card.tsx";
|
|
882
|
+
readonly vocabulary: readonly ["ClassNameProp", "ChildrenProp"];
|
|
883
|
+
};
|
|
884
|
+
readonly StatCardProp: {
|
|
885
|
+
readonly group: "data-display";
|
|
886
|
+
readonly file: "components/data-display/card.tsx";
|
|
887
|
+
readonly vocabulary: readonly ["TitleProp", "ToneProp", "ClassNameProp"];
|
|
888
|
+
};
|
|
889
|
+
readonly ResponsiveGridProp: {
|
|
890
|
+
readonly group: "layout";
|
|
891
|
+
readonly file: "components/layout/responsive-grid.tsx";
|
|
892
|
+
readonly vocabulary: readonly ["GapProp", "ClassNameProp", "ChildrenProp"];
|
|
893
|
+
};
|
|
894
|
+
readonly SplitPaneProp: {
|
|
895
|
+
readonly group: "layout";
|
|
896
|
+
readonly file: "components/layout/split-pane.tsx";
|
|
897
|
+
readonly vocabulary: readonly ["ClassNameProp", "ChildrenProp"];
|
|
898
|
+
};
|
|
854
899
|
};
|
|
855
900
|
type ComponentPropName = keyof typeof COMPONENT_PROP_REGISTRY;
|
|
856
901
|
/** Forbidden duplicate concepts — use the canonical name on the left. */
|
package/dist/props/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-
|
|
1
|
+
export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-IHRMOJXD.js';
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { h as FormFieldProp, F as FieldProp } from './data-entry.prop-BR4vNA1j.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
7
|
/** Label + optional description beside a checkbox/radio/switch control. */
|
|
8
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
9
|
|
|
12
10
|
interface SearchInputProps {
|
|
13
11
|
value?: string;
|
|
@@ -24,4 +22,4 @@ interface SearchInputProps {
|
|
|
24
22
|
}
|
|
25
23
|
declare function SearchInput({ value: controlledValue, defaultValue, placeholder, debounce, onSearch, label, ariaLabel, className, inputClassName, id, disabled, }: SearchInputProps): react_jsx_runtime.JSX.Element;
|
|
26
24
|
|
|
27
|
-
export {
|
|
25
|
+
export { Field as F, SearchInput as S, FormField as a };
|
|
@@ -16,7 +16,5 @@ declare function SkeletonTable({ rows, columns }: SkeletonRowsProps): react_jsx_
|
|
|
16
16
|
declare function SkeletonDetail(): react_jsx_runtime.JSX.Element;
|
|
17
17
|
/** Skeleton matching a stat card / dashboard tile. */
|
|
18
18
|
declare function SkeletonStat(): react_jsx_runtime.JSX.Element;
|
|
19
|
-
/** @deprecated Use SkeletonStat. */
|
|
20
|
-
declare const SkeletonCard: typeof SkeletonStat;
|
|
21
19
|
|
|
22
|
-
export { Skeleton as S,
|
|
20
|
+
export { Skeleton as S, SkeletonDetail as a, type SkeletonProps as b, SkeletonRows as c, SkeletonStat as d, SkeletonTable as e };
|
package/dist/styles/control.css
CHANGED
|
@@ -572,59 +572,194 @@
|
|
|
572
572
|
}
|
|
573
573
|
|
|
574
574
|
/* PasswordInput */
|
|
575
|
-
.ui-password-input {
|
|
576
|
-
|
|
575
|
+
.ui-password-input {
|
|
576
|
+
position: relative;
|
|
577
|
+
display: block;
|
|
578
|
+
}
|
|
579
|
+
.ui-password-input-field {
|
|
580
|
+
padding-right: 2.5rem;
|
|
581
|
+
}
|
|
577
582
|
.ui-password-input-toggle {
|
|
578
|
-
position: absolute;
|
|
579
|
-
|
|
580
|
-
|
|
583
|
+
position: absolute;
|
|
584
|
+
inset-block: 0;
|
|
585
|
+
inset-inline-end: 0;
|
|
586
|
+
display: inline-flex;
|
|
587
|
+
align-items: center;
|
|
588
|
+
justify-content: center;
|
|
589
|
+
width: 2.5rem;
|
|
590
|
+
color: hsl(var(--muted-foreground));
|
|
591
|
+
background: transparent;
|
|
592
|
+
border: 0;
|
|
593
|
+
cursor: pointer;
|
|
594
|
+
}
|
|
595
|
+
.ui-password-input-toggle:hover {
|
|
596
|
+
color: hsl(var(--foreground));
|
|
597
|
+
}
|
|
598
|
+
.ui-password-input-toggle svg {
|
|
599
|
+
width: 1rem;
|
|
600
|
+
height: 1rem;
|
|
581
601
|
}
|
|
582
|
-
.ui-password-input-toggle:hover { color: hsl(var(--foreground)); }
|
|
583
|
-
.ui-password-input-toggle svg { width: 1rem; height: 1rem; }
|
|
584
602
|
|
|
585
603
|
/* InputOTP */
|
|
586
|
-
.ui-otp-container {
|
|
587
|
-
|
|
588
|
-
|
|
604
|
+
.ui-otp-container {
|
|
605
|
+
display: flex;
|
|
606
|
+
align-items: center;
|
|
607
|
+
gap: var(--space-2);
|
|
608
|
+
}
|
|
609
|
+
.ui-otp-input:disabled {
|
|
610
|
+
cursor: not-allowed;
|
|
611
|
+
}
|
|
612
|
+
.ui-otp-group {
|
|
613
|
+
display: flex;
|
|
614
|
+
align-items: center;
|
|
615
|
+
}
|
|
589
616
|
.ui-otp-slot {
|
|
590
|
-
position: relative;
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
617
|
+
position: relative;
|
|
618
|
+
display: flex;
|
|
619
|
+
width: 2.25rem;
|
|
620
|
+
height: 2.25rem;
|
|
621
|
+
align-items: center;
|
|
622
|
+
justify-content: center;
|
|
623
|
+
font-size: 0.875rem;
|
|
624
|
+
border: 1px solid hsl(var(--border));
|
|
625
|
+
border-inline-start-width: 0;
|
|
626
|
+
background: hsl(var(--background));
|
|
627
|
+
transition: box-shadow 0.15s ease;
|
|
594
628
|
}
|
|
595
629
|
.ui-otp-group .ui-otp-slot:first-child {
|
|
596
|
-
border-inline-start-width: 1px;
|
|
630
|
+
border-inline-start-width: 1px;
|
|
631
|
+
border-start-start-radius: var(--radius-md);
|
|
632
|
+
border-end-start-radius: var(--radius-md);
|
|
633
|
+
}
|
|
634
|
+
.ui-otp-group .ui-otp-slot:last-child {
|
|
635
|
+
border-start-end-radius: var(--radius-md);
|
|
636
|
+
border-end-end-radius: var(--radius-md);
|
|
637
|
+
}
|
|
638
|
+
.ui-otp-slot[data-active="true"] {
|
|
639
|
+
z-index: 1;
|
|
640
|
+
box-shadow: 0 0 0 2px hsl(var(--ring));
|
|
641
|
+
}
|
|
642
|
+
.ui-otp-caret-wrapper {
|
|
643
|
+
position: absolute;
|
|
644
|
+
inset: 0;
|
|
645
|
+
display: flex;
|
|
646
|
+
align-items: center;
|
|
647
|
+
justify-content: center;
|
|
648
|
+
}
|
|
649
|
+
.ui-otp-caret {
|
|
650
|
+
width: 1px;
|
|
651
|
+
height: 1rem;
|
|
652
|
+
background: hsl(var(--foreground));
|
|
653
|
+
animation: ui-otp-blink 1s step-end infinite;
|
|
654
|
+
}
|
|
655
|
+
@keyframes ui-otp-blink {
|
|
656
|
+
50% {
|
|
657
|
+
opacity: 0;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
.ui-otp-separator-icon {
|
|
661
|
+
width: 1rem;
|
|
662
|
+
height: 1rem;
|
|
663
|
+
color: hsl(var(--muted-foreground));
|
|
597
664
|
}
|
|
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)); }
|
|
604
665
|
|
|
605
666
|
/* Rating */
|
|
606
|
-
.ui-rating {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
.ui-rating-star
|
|
612
|
-
|
|
667
|
+
.ui-rating {
|
|
668
|
+
display: inline-flex;
|
|
669
|
+
align-items: center;
|
|
670
|
+
gap: var(--space-1);
|
|
671
|
+
}
|
|
672
|
+
.ui-rating-star {
|
|
673
|
+
/* ≥24px hit area (WCAG 2.5.8) around the 20px glyph */
|
|
674
|
+
display: inline-flex;
|
|
675
|
+
align-items: center;
|
|
676
|
+
justify-content: center;
|
|
677
|
+
min-width: 1.5rem;
|
|
678
|
+
min-height: 1.5rem;
|
|
679
|
+
background: transparent;
|
|
680
|
+
border: 0;
|
|
681
|
+
padding: 0;
|
|
682
|
+
cursor: pointer;
|
|
683
|
+
color: hsl(var(--muted-foreground) / 0.45);
|
|
684
|
+
line-height: 0;
|
|
685
|
+
}
|
|
686
|
+
.ui-rating-star:disabled {
|
|
687
|
+
cursor: default;
|
|
688
|
+
}
|
|
689
|
+
.ui-rating-star svg {
|
|
690
|
+
width: 1.25rem;
|
|
691
|
+
height: 1.25rem;
|
|
692
|
+
}
|
|
693
|
+
.ui-rating-star-filled {
|
|
694
|
+
color: hsl(var(--warning));
|
|
695
|
+
}
|
|
696
|
+
.ui-rating-star-filled svg {
|
|
697
|
+
fill: currentColor;
|
|
698
|
+
}
|
|
699
|
+
.ui-rating-star:focus-visible {
|
|
700
|
+
outline: 2px solid hsl(var(--ring));
|
|
701
|
+
outline-offset: 2px;
|
|
702
|
+
border-radius: var(--radius-sm);
|
|
703
|
+
}
|
|
613
704
|
|
|
614
705
|
/* TagInput */
|
|
615
706
|
.ui-tag-input {
|
|
616
|
-
display: flex;
|
|
617
|
-
|
|
618
|
-
|
|
707
|
+
display: flex;
|
|
708
|
+
flex-wrap: wrap;
|
|
709
|
+
align-items: center;
|
|
710
|
+
gap: var(--space-1);
|
|
711
|
+
min-height: 2.25rem;
|
|
712
|
+
padding: var(--space-1) var(--space-2);
|
|
713
|
+
border: 1px solid hsl(var(--input));
|
|
714
|
+
border-radius: var(--radius-md);
|
|
715
|
+
background: hsl(var(--background));
|
|
716
|
+
}
|
|
717
|
+
.ui-tag-input:focus-within {
|
|
718
|
+
box-shadow: 0 0 0 2px hsl(var(--ring));
|
|
719
|
+
border-color: hsl(var(--ring));
|
|
720
|
+
}
|
|
721
|
+
.ui-tag-input-disabled {
|
|
722
|
+
opacity: 0.6;
|
|
723
|
+
cursor: not-allowed;
|
|
619
724
|
}
|
|
620
|
-
.ui-tag-input:focus-within { box-shadow: 0 0 0 2px hsl(var(--ring)); border-color: hsl(var(--ring)); }
|
|
621
|
-
.ui-tag-input-disabled { opacity: 0.6; cursor: not-allowed; }
|
|
622
725
|
.ui-tag-input-chip {
|
|
623
|
-
display: inline-flex;
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
726
|
+
display: inline-flex;
|
|
727
|
+
align-items: center;
|
|
728
|
+
gap: var(--space-1);
|
|
729
|
+
font-size: 0.8125rem;
|
|
730
|
+
padding: 0.0625rem var(--space-2);
|
|
731
|
+
border-radius: var(--radius-sm);
|
|
732
|
+
background: hsl(var(--secondary));
|
|
733
|
+
color: hsl(var(--secondary-foreground));
|
|
734
|
+
}
|
|
735
|
+
.ui-tag-input-remove {
|
|
736
|
+
/* ≥24px hit area (WCAG 2.5.8) around the 12px glyph; negative inline margin keeps the chip tight */
|
|
737
|
+
display: inline-flex;
|
|
738
|
+
align-items: center;
|
|
739
|
+
justify-content: center;
|
|
740
|
+
min-width: 1.5rem;
|
|
741
|
+
min-height: 1.5rem;
|
|
742
|
+
margin-inline-end: -0.25rem;
|
|
743
|
+
background: transparent;
|
|
744
|
+
border: 0;
|
|
745
|
+
padding: 0;
|
|
746
|
+
cursor: pointer;
|
|
747
|
+
color: inherit;
|
|
748
|
+
opacity: 0.7;
|
|
749
|
+
}
|
|
750
|
+
.ui-tag-input-remove:hover {
|
|
751
|
+
opacity: 1;
|
|
752
|
+
}
|
|
753
|
+
.ui-tag-input-remove svg {
|
|
754
|
+
width: 0.75rem;
|
|
755
|
+
height: 0.75rem;
|
|
756
|
+
}
|
|
757
|
+
.ui-tag-input-field {
|
|
758
|
+
flex: 1;
|
|
759
|
+
min-width: 6rem;
|
|
760
|
+
border: 0;
|
|
761
|
+
outline: none;
|
|
762
|
+
background: transparent;
|
|
763
|
+
font-size: 0.875rem;
|
|
764
|
+
color: inherit;
|
|
765
|
+
}
|
|
@@ -184,32 +184,58 @@
|
|
|
184
184
|
margin-top: var(--space-1);
|
|
185
185
|
font-size: var(--font-size-sm);
|
|
186
186
|
}
|
|
187
|
-
|
|
188
187
|
}
|
|
189
188
|
|
|
190
189
|
/* Accordion */
|
|
191
|
-
.ui-accordion-item {
|
|
192
|
-
|
|
190
|
+
.ui-accordion-item {
|
|
191
|
+
border-bottom: 1px solid hsl(var(--border));
|
|
192
|
+
}
|
|
193
|
+
.ui-accordion-header {
|
|
194
|
+
display: flex;
|
|
195
|
+
}
|
|
193
196
|
.ui-accordion-trigger {
|
|
194
|
-
display: flex;
|
|
195
|
-
|
|
197
|
+
display: flex;
|
|
198
|
+
flex: 1;
|
|
199
|
+
align-items: center;
|
|
200
|
+
justify-content: space-between;
|
|
201
|
+
gap: var(--space-2);
|
|
202
|
+
padding-block: var(--space-4);
|
|
203
|
+
font-weight: 500;
|
|
204
|
+
text-align: left;
|
|
196
205
|
transition: color 0.15s ease;
|
|
197
206
|
}
|
|
198
|
-
.ui-accordion-trigger:hover {
|
|
207
|
+
.ui-accordion-trigger:hover {
|
|
208
|
+
text-decoration: underline;
|
|
209
|
+
}
|
|
199
210
|
.ui-accordion-chevron {
|
|
200
|
-
width: 1rem;
|
|
201
|
-
|
|
211
|
+
width: 1rem;
|
|
212
|
+
height: 1rem;
|
|
213
|
+
color: hsl(var(--muted-foreground));
|
|
214
|
+
transition: transform 0.2s ease;
|
|
215
|
+
flex-shrink: 0;
|
|
216
|
+
}
|
|
217
|
+
.ui-accordion-trigger[data-state="open"] .ui-accordion-chevron {
|
|
218
|
+
transform: rotate(180deg);
|
|
219
|
+
}
|
|
220
|
+
.ui-accordion-content {
|
|
221
|
+
overflow: hidden;
|
|
222
|
+
font-size: 0.875rem;
|
|
223
|
+
}
|
|
224
|
+
.ui-accordion-content-inner {
|
|
225
|
+
padding-bottom: var(--space-4);
|
|
202
226
|
}
|
|
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
227
|
|
|
207
228
|
/* HoverCard */
|
|
208
229
|
.ui-hover-card-content {
|
|
209
|
-
z-index: 50;
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
230
|
+
z-index: 50;
|
|
231
|
+
width: 16rem;
|
|
232
|
+
border-radius: var(--radius-md);
|
|
233
|
+
border: 1px solid hsl(var(--border));
|
|
234
|
+
background: hsl(var(--popover));
|
|
235
|
+
color: hsl(var(--popover-foreground));
|
|
236
|
+
padding: var(--space-4);
|
|
237
|
+
box-shadow: var(--shadow-md);
|
|
238
|
+
outline: none;
|
|
213
239
|
}
|
|
214
240
|
|
|
215
241
|
.ui-carousel {
|
|
@@ -90,4 +90,75 @@
|
|
|
90
90
|
.ui-time-input[aria-invalid="true"] {
|
|
91
91
|
border-color: hsl(var(--destructive));
|
|
92
92
|
}
|
|
93
|
+
|
|
94
|
+
.ui-password-strength {
|
|
95
|
+
display: grid;
|
|
96
|
+
gap: var(--space-1);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.ui-password-strength-track {
|
|
100
|
+
display: grid;
|
|
101
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
102
|
+
gap: var(--space-1);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.ui-password-strength-segment {
|
|
106
|
+
height: 0.5rem;
|
|
107
|
+
border-radius: var(--radius-sm);
|
|
108
|
+
background: hsl(var(--muted));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.ui-password-strength-segment[data-tone="destructive"] {
|
|
112
|
+
background: hsl(var(--destructive));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.ui-password-strength-segment[data-tone="warning"] {
|
|
116
|
+
background: hsl(var(--warning));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.ui-password-strength-segment[data-tone="success"] {
|
|
120
|
+
background: hsl(var(--success));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.ui-password-strength-meta {
|
|
124
|
+
display: flex;
|
|
125
|
+
justify-content: space-between;
|
|
126
|
+
align-items: baseline;
|
|
127
|
+
gap: var(--space-2);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.ui-password-strength-label {
|
|
131
|
+
color: hsl(var(--foreground));
|
|
132
|
+
font-size: var(--font-size-sm);
|
|
133
|
+
font-weight: var(--font-weight-medium);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.ui-password-strength-score {
|
|
137
|
+
color: hsl(var(--muted-foreground));
|
|
138
|
+
font-size: var(--font-size-xs);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.ui-password-strength-checklist {
|
|
142
|
+
margin: 0;
|
|
143
|
+
display: grid;
|
|
144
|
+
gap: var(--space-1);
|
|
145
|
+
padding-inline: 0;
|
|
146
|
+
list-style: none;
|
|
147
|
+
color: hsl(var(--muted-foreground));
|
|
148
|
+
font-size: var(--font-size-xs);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.ui-password-strength-checklist-item {
|
|
152
|
+
display: inline-flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
gap: var(--space-2);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.ui-password-strength-checklist-item[data-state="passed"] svg {
|
|
158
|
+
color: hsl(var(--success));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.ui-password-strength-checklist-item[data-state="failed"] svg {
|
|
162
|
+
color: hsl(var(--destructive));
|
|
163
|
+
}
|
|
93
164
|
}
|
|
@@ -1,17 +1,49 @@
|
|
|
1
|
-
|
|
2
1
|
/* Drawer (bottom-sheet, vaul) */
|
|
3
|
-
.ui-drawer-overlay {
|
|
2
|
+
.ui-drawer-overlay {
|
|
3
|
+
position: fixed;
|
|
4
|
+
inset: 0;
|
|
5
|
+
z-index: 50;
|
|
6
|
+
background: hsl(var(--overlay, 0 0% 0% / 0.4));
|
|
7
|
+
}
|
|
4
8
|
.ui-drawer-content {
|
|
5
|
-
position: fixed;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
position: fixed;
|
|
10
|
+
inset-inline: 0;
|
|
11
|
+
inset-block-end: 0;
|
|
12
|
+
z-index: 50;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
max-height: 82vh;
|
|
16
|
+
border-start-start-radius: var(--radius-lg);
|
|
17
|
+
border-start-end-radius: var(--radius-lg);
|
|
18
|
+
border: 1px solid hsl(var(--border));
|
|
19
|
+
background: hsl(var(--background));
|
|
9
20
|
}
|
|
10
21
|
.ui-drawer-handle {
|
|
11
|
-
margin: var(--space-3) auto;
|
|
12
|
-
|
|
22
|
+
margin: var(--space-3) auto;
|
|
23
|
+
height: 0.375rem;
|
|
24
|
+
width: 6rem;
|
|
25
|
+
flex-shrink: 0;
|
|
26
|
+
border-radius: 9999px;
|
|
27
|
+
background: hsl(var(--muted));
|
|
28
|
+
}
|
|
29
|
+
.ui-drawer-header {
|
|
30
|
+
display: grid;
|
|
31
|
+
gap: var(--space-1);
|
|
32
|
+
padding: var(--space-4);
|
|
33
|
+
text-align: center;
|
|
34
|
+
}
|
|
35
|
+
.ui-drawer-footer {
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
gap: var(--space-2);
|
|
39
|
+
margin-top: auto;
|
|
40
|
+
padding: var(--space-4);
|
|
41
|
+
}
|
|
42
|
+
.ui-drawer-title {
|
|
43
|
+
font-weight: var(--font-weight-medium);
|
|
44
|
+
line-height: 1.2;
|
|
45
|
+
}
|
|
46
|
+
.ui-drawer-description {
|
|
47
|
+
font-size: 0.875rem;
|
|
48
|
+
color: hsl(var(--muted-foreground));
|
|
13
49
|
}
|
|
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)); }
|