@rockshin/tao-ui 0.0.1 → 0.0.3
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/components/breadcrumb/breadcrumb.css +1091 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +43 -0
- package/dist/components/breadcrumb/breadcrumb.js +268 -0
- package/dist/components/button/button.css +46 -21
- package/dist/components/checkbox/checkbox.css +33 -12
- package/dist/components/collapsible/collapsible.css +1026 -0
- package/dist/components/collapsible/collapsible.d.ts +39 -0
- package/dist/components/collapsible/collapsible.js +168 -0
- package/dist/components/context-menu/context-menu.css +1149 -0
- package/dist/components/context-menu/context-menu.d.ts +19 -0
- package/dist/components/context-menu/context-menu.js +106 -0
- package/dist/components/date-picker/calendar/month-grid.d.ts +1 -1
- package/dist/components/date-picker/calendar/time-panel.d.ts +1 -1
- package/dist/components/date-picker/calendar/year-grid.d.ts +1 -1
- package/dist/components/date-picker/date-picker.css +87 -17
- package/dist/components/date-picker/date-picker.js +9 -7
- package/dist/components/date-picker/range-picker.js +9 -7
- package/dist/components/drawer/drawer.css +128 -15
- package/dist/components/drawer/drawer.d.ts +36 -3
- package/dist/components/drawer/drawer.js +323 -121
- package/dist/components/dropdown/dropdown.css +999 -0
- package/dist/components/dropdown/dropdown.d.ts +45 -0
- package/dist/components/dropdown/dropdown.js +383 -0
- package/dist/components/form-field/form.css +33 -12
- package/dist/components/input/input.css +86 -14
- package/dist/components/menu/menu-render.d.ts +89 -0
- package/dist/components/menu/menu-render.js +379 -0
- package/dist/components/menu/menu.css +1145 -0
- package/dist/components/modal/confirm-dialog.d.ts +37 -0
- package/dist/components/modal/confirm-dialog.js +193 -0
- package/dist/components/modal/confirm.d.ts +13 -0
- package/dist/components/modal/confirm.js +56 -0
- package/dist/components/modal/index.d.ts +21 -0
- package/dist/components/modal/index.js +18 -0
- package/dist/components/modal/modal.css +1169 -0
- package/dist/components/modal/modal.d.ts +50 -0
- package/dist/components/modal/modal.js +362 -0
- package/dist/components/modal/use-modal.d.ts +21 -0
- package/dist/components/modal/use-modal.js +83 -0
- package/dist/components/pagination/pagination.css +33 -12
- package/dist/components/pagination/pagination.js +3 -1
- package/dist/components/radio/radio.css +33 -12
- package/dist/components/scroll-area/scroll-area.css +33 -12
- package/dist/components/select/mobile-select.css +75 -13
- package/dist/components/select/mobile-select.d.ts +4 -1
- package/dist/components/select/mobile-select.js +103 -107
- package/dist/components/select/select.css +167 -26
- package/dist/components/select/select.d.ts +62 -4
- package/dist/components/select/select.js +359 -377
- package/dist/components/spinner/spinner.css +1084 -0
- package/dist/components/spinner/spinner.d.ts +26 -0
- package/dist/components/spinner/spinner.js +229 -0
- package/dist/components/splitter/splitter.css +33 -12
- package/dist/components/switch/switch.css +33 -12
- package/dist/components/table/table.css +57 -18
- package/dist/components/table/table.d.ts +17 -2
- package/dist/components/table/table.js +214 -206
- package/dist/components/tabs/tabs.css +36 -17
- package/dist/components/tag/tag.css +33 -12
- package/dist/components/textarea/textarea.css +1246 -0
- package/dist/components/textarea/textarea.d.ts +19 -0
- package/dist/components/textarea/textarea.js +181 -0
- package/dist/index.d.ts +25 -18
- package/dist/index.js +22 -15
- package/dist/layouts/stack/layout.css +33 -12
- package/dist/provider/tao-provider.d.ts +17 -1
- package/dist/provider/tao-provider.js +53 -15
- package/dist/theme/control.css +86 -13
- package/dist/theme/theme.css +33 -12
- package/llms.txt +7 -6
- package/package.json +18 -13
package/dist/theme/control.css
CHANGED
|
@@ -307,11 +307,16 @@
|
|
|
307
307
|
--tao-radius: 6px;
|
|
308
308
|
--tao-font-size: 14px;
|
|
309
309
|
--tao-control-height: 36px;
|
|
310
|
+
--tao-control-width: 200px;
|
|
311
|
+
--tao-control-range-width: 360px;
|
|
310
312
|
--tao-size-unit: 4px;
|
|
311
313
|
--tao-line-width: 1px;
|
|
312
314
|
--tao-font-family: "Geist Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
313
315
|
--tao-font-family-code: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
314
316
|
--tao-motion-unit: .1s;
|
|
317
|
+
--tao-z-index-drawer: 1000;
|
|
318
|
+
--tao-z-index-modal: 1000;
|
|
319
|
+
--tao-z-index-popup: 1100;
|
|
315
320
|
--tao-primary: var(--tao-color-primary);
|
|
316
321
|
--tao-primary-hover: var(--tao-color-primary);
|
|
317
322
|
}
|
|
@@ -529,8 +534,8 @@
|
|
|
529
534
|
}
|
|
530
535
|
|
|
531
536
|
:root, [data-tao-provider] {
|
|
532
|
-
--tao-color-bg-container:
|
|
533
|
-
--tao-color-bg-elevated:
|
|
537
|
+
--tao-color-bg-container: oklch(100% 0 0);
|
|
538
|
+
--tao-color-bg-elevated: oklch(100% 0 0);
|
|
534
539
|
--tao-color-border: var(--tao-color-text-base);
|
|
535
540
|
}
|
|
536
541
|
|
|
@@ -541,16 +546,7 @@
|
|
|
541
546
|
}
|
|
542
547
|
|
|
543
548
|
:root, [data-tao-provider] {
|
|
544
|
-
--tao-color-border-secondary:
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
548
|
-
:root, [data-tao-provider] {
|
|
549
|
-
--tao-color-border-secondary: color-mix(in oklch, var(--tao-color-text-base) 10%, var(--tao-color-bg-base));
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
:root, [data-tao-provider] {
|
|
549
|
+
--tao-color-border-secondary: #0000170b;
|
|
554
550
|
--tao-radius-xs: 2px;
|
|
555
551
|
--tao-radius-sm: calc(var(--tao-radius) - 2px);
|
|
556
552
|
--tao-radius-md: var(--tao-radius);
|
|
@@ -633,6 +629,10 @@
|
|
|
633
629
|
visibility: collapse;
|
|
634
630
|
}
|
|
635
631
|
|
|
632
|
+
.visible {
|
|
633
|
+
visibility: visible;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
636
|
.absolute {
|
|
637
637
|
position: absolute;
|
|
638
638
|
}
|
|
@@ -715,6 +715,10 @@
|
|
|
715
715
|
display: inline;
|
|
716
716
|
}
|
|
717
717
|
|
|
718
|
+
.inline-flex {
|
|
719
|
+
display: inline-flex;
|
|
720
|
+
}
|
|
721
|
+
|
|
718
722
|
.table {
|
|
719
723
|
display: table;
|
|
720
724
|
}
|
|
@@ -727,6 +731,10 @@
|
|
|
727
731
|
transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
|
|
728
732
|
}
|
|
729
733
|
|
|
734
|
+
.resize {
|
|
735
|
+
resize: both;
|
|
736
|
+
}
|
|
737
|
+
|
|
730
738
|
.flex-wrap {
|
|
731
739
|
flex-wrap: wrap;
|
|
732
740
|
}
|
|
@@ -742,6 +750,14 @@
|
|
|
742
750
|
border-width: 1px;
|
|
743
751
|
}
|
|
744
752
|
|
|
753
|
+
.italic {
|
|
754
|
+
font-style: italic;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.underline {
|
|
758
|
+
text-decoration-line: underline;
|
|
759
|
+
}
|
|
760
|
+
|
|
745
761
|
.shadow {
|
|
746
762
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
|
|
747
763
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -771,6 +787,24 @@
|
|
|
771
787
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
772
788
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
773
789
|
}
|
|
790
|
+
|
|
791
|
+
.select-all {
|
|
792
|
+
-webkit-user-select: all;
|
|
793
|
+
user-select: all;
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
[data-tao-control] {
|
|
798
|
+
box-sizing: border-box;
|
|
799
|
+
width: var(--tao-control-width);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
[data-tao-control][data-tao-range-trigger] {
|
|
803
|
+
width: var(--tao-control-range-width);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
[data-tao-form-field] [data-tao-control] {
|
|
807
|
+
width: 100%;
|
|
774
808
|
}
|
|
775
809
|
|
|
776
810
|
[data-tao-control] {
|
|
@@ -778,8 +812,8 @@
|
|
|
778
812
|
}
|
|
779
813
|
|
|
780
814
|
[data-tao-control][data-tao-variant="outlined"] {
|
|
781
|
-
background: var(--tao-color-bg-container);
|
|
782
815
|
border: var(--tao-line-width) solid var(--tao-color-border);
|
|
816
|
+
background: none;
|
|
783
817
|
}
|
|
784
818
|
|
|
785
819
|
[data-tao-control][data-tao-variant="outlined"]:hover:not([data-disabled]):not(:focus-within):not([data-state="open"]) {
|
|
@@ -805,6 +839,25 @@
|
|
|
805
839
|
box-shadow: 0 0 0 2px var(--tao-color-error-outline);
|
|
806
840
|
}
|
|
807
841
|
|
|
842
|
+
[data-tao-control][data-tao-variant="outlined"][data-tao-warning] {
|
|
843
|
+
border-color: var(--tao-warning);
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
[data-tao-control][data-tao-variant="outlined"][data-tao-warning]:hover:not([data-disabled]):not(:focus-within) {
|
|
847
|
+
border-color: var(--tao-color-warning);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
851
|
+
[data-tao-control][data-tao-variant="outlined"][data-tao-warning]:hover:not([data-disabled]):not(:focus-within) {
|
|
852
|
+
border-color: color-mix(in oklch, var(--tao-color-warning) 80%, white);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
[data-tao-control][data-tao-variant="outlined"][data-tao-warning]:focus-within, [data-tao-control][data-tao-variant="outlined"][data-tao-warning][data-state="open"] {
|
|
857
|
+
border-color: var(--tao-warning);
|
|
858
|
+
box-shadow: 0 0 0 2px var(--tao-color-warning-outline);
|
|
859
|
+
}
|
|
860
|
+
|
|
808
861
|
[data-tao-control][data-tao-variant="outlined"][data-disabled], [data-tao-control][data-tao-variant="outlined"]:has(input:disabled) {
|
|
809
862
|
background: var(--tao-color-bg-disabled);
|
|
810
863
|
border-color: var(--tao-color-border);
|
|
@@ -849,6 +902,26 @@
|
|
|
849
902
|
box-shadow: 0 0 0 2px var(--tao-color-error-outline);
|
|
850
903
|
}
|
|
851
904
|
|
|
905
|
+
[data-tao-control][data-tao-variant="filled"][data-tao-warning] {
|
|
906
|
+
background: var(--tao-warning-bg);
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
[data-tao-control][data-tao-variant="filled"][data-tao-warning]:hover:not([data-disabled]):not(:focus-within) {
|
|
910
|
+
background: var(--tao-color-warning);
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
914
|
+
[data-tao-control][data-tao-variant="filled"][data-tao-warning]:hover:not([data-disabled]):not(:focus-within) {
|
|
915
|
+
background: color-mix(in oklch, var(--tao-color-warning) 10%, var(--tao-color-bg-base));
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
[data-tao-control][data-tao-variant="filled"][data-tao-warning]:focus-within, [data-tao-control][data-tao-variant="filled"][data-tao-warning][data-state="open"] {
|
|
920
|
+
background: var(--tao-color-bg-container);
|
|
921
|
+
border-color: var(--tao-warning);
|
|
922
|
+
box-shadow: 0 0 0 2px var(--tao-color-warning-outline);
|
|
923
|
+
}
|
|
924
|
+
|
|
852
925
|
[data-tao-control][data-tao-variant="filled"][data-disabled], [data-tao-control][data-tao-variant="filled"]:has(input:disabled) {
|
|
853
926
|
background: var(--tao-color-bg-disabled);
|
|
854
927
|
border-color: var(--tao-color-border);
|
package/dist/theme/theme.css
CHANGED
|
@@ -307,11 +307,16 @@
|
|
|
307
307
|
--tao-radius: 6px;
|
|
308
308
|
--tao-font-size: 14px;
|
|
309
309
|
--tao-control-height: 36px;
|
|
310
|
+
--tao-control-width: 200px;
|
|
311
|
+
--tao-control-range-width: 360px;
|
|
310
312
|
--tao-size-unit: 4px;
|
|
311
313
|
--tao-line-width: 1px;
|
|
312
314
|
--tao-font-family: "Geist Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
313
315
|
--tao-font-family-code: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
314
316
|
--tao-motion-unit: .1s;
|
|
317
|
+
--tao-z-index-drawer: 1000;
|
|
318
|
+
--tao-z-index-modal: 1000;
|
|
319
|
+
--tao-z-index-popup: 1100;
|
|
315
320
|
--tao-primary: var(--tao-color-primary);
|
|
316
321
|
--tao-primary-hover: var(--tao-color-primary);
|
|
317
322
|
}
|
|
@@ -529,8 +534,8 @@
|
|
|
529
534
|
}
|
|
530
535
|
|
|
531
536
|
:root, [data-tao-provider] {
|
|
532
|
-
--tao-color-bg-container:
|
|
533
|
-
--tao-color-bg-elevated:
|
|
537
|
+
--tao-color-bg-container: oklch(100% 0 0);
|
|
538
|
+
--tao-color-bg-elevated: oklch(100% 0 0);
|
|
534
539
|
--tao-color-border: var(--tao-color-text-base);
|
|
535
540
|
}
|
|
536
541
|
|
|
@@ -541,16 +546,7 @@
|
|
|
541
546
|
}
|
|
542
547
|
|
|
543
548
|
:root, [data-tao-provider] {
|
|
544
|
-
--tao-color-border-secondary:
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
548
|
-
:root, [data-tao-provider] {
|
|
549
|
-
--tao-color-border-secondary: color-mix(in oklch, var(--tao-color-text-base) 10%, var(--tao-color-bg-base));
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
:root, [data-tao-provider] {
|
|
549
|
+
--tao-color-border-secondary: #0000170b;
|
|
554
550
|
--tao-radius-xs: 2px;
|
|
555
551
|
--tao-radius-sm: calc(var(--tao-radius) - 2px);
|
|
556
552
|
--tao-radius-md: var(--tao-radius);
|
|
@@ -633,6 +629,10 @@
|
|
|
633
629
|
visibility: collapse;
|
|
634
630
|
}
|
|
635
631
|
|
|
632
|
+
.visible {
|
|
633
|
+
visibility: visible;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
636
|
.absolute {
|
|
637
637
|
position: absolute;
|
|
638
638
|
}
|
|
@@ -715,6 +715,10 @@
|
|
|
715
715
|
display: inline;
|
|
716
716
|
}
|
|
717
717
|
|
|
718
|
+
.inline-flex {
|
|
719
|
+
display: inline-flex;
|
|
720
|
+
}
|
|
721
|
+
|
|
718
722
|
.table {
|
|
719
723
|
display: table;
|
|
720
724
|
}
|
|
@@ -727,6 +731,10 @@
|
|
|
727
731
|
transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
|
|
728
732
|
}
|
|
729
733
|
|
|
734
|
+
.resize {
|
|
735
|
+
resize: both;
|
|
736
|
+
}
|
|
737
|
+
|
|
730
738
|
.flex-wrap {
|
|
731
739
|
flex-wrap: wrap;
|
|
732
740
|
}
|
|
@@ -742,6 +750,14 @@
|
|
|
742
750
|
border-width: 1px;
|
|
743
751
|
}
|
|
744
752
|
|
|
753
|
+
.italic {
|
|
754
|
+
font-style: italic;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.underline {
|
|
758
|
+
text-decoration-line: underline;
|
|
759
|
+
}
|
|
760
|
+
|
|
745
761
|
.shadow {
|
|
746
762
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
|
|
747
763
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -771,6 +787,11 @@
|
|
|
771
787
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
772
788
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
773
789
|
}
|
|
790
|
+
|
|
791
|
+
.select-all {
|
|
792
|
+
-webkit-user-select: all;
|
|
793
|
+
user-select: all;
|
|
794
|
+
}
|
|
774
795
|
}
|
|
775
796
|
|
|
776
797
|
@property --tw-rotate-x {
|
package/llms.txt
CHANGED
|
@@ -13,7 +13,7 @@ Module format: ESM only. Types and CSS ship alongside the JS; component CSS is i
|
|
|
13
13
|
|
|
14
14
|
## Core concepts
|
|
15
15
|
|
|
16
|
-
- **TaoProvider**: wrap the app once. Provides `size` (`'small' | '
|
|
16
|
+
- **TaoProvider**: wrap the app once. Provides `size` (`'small' | 'medium' | 'large'`), `disabled`, and `variant` (`'outlined' | 'filled' | 'borderless'`) defaults to all descendants, plus theme tokens. A local prop on a component overrides the provider value. Hook: `useTaoConfig()`.
|
|
17
17
|
- **Theming**: a small seed token set (`TaoSeedToken`) is expanded into a full theme. Pure-CSS-computable values use `calc()`/`color-mix()` with OKLCH; non-linear values (radius steps, font-size log scale, control heights) are computed in JS and injected by `TaoProvider`. CSS variables are prefixed `--tao-*`; data attributes are `data-tao-*`.
|
|
18
18
|
- **Semantic DOM**: every component takes optional `classNames?: SemanticClassNames<Part>` and `styles?: SemanticStyles<Part>`, where `Part` is a component-specific union (e.g. `'root' | 'header' | 'body'`, dotted for nested parts like `'header.cell'`). The top-level `className` prop merges into the `root` part. Helper `cx` is exported.
|
|
19
19
|
|
|
@@ -24,7 +24,7 @@ import { TaoProvider, Input, Select, Switch } from '@rockshin/tao-ui';
|
|
|
24
24
|
|
|
25
25
|
function App() {
|
|
26
26
|
return (
|
|
27
|
-
<TaoProvider size="
|
|
27
|
+
<TaoProvider size="medium">
|
|
28
28
|
<Input placeholder="Search" />
|
|
29
29
|
<Select options={[{ label: 'A', value: 'a' }]} />
|
|
30
30
|
<Switch defaultChecked />
|
|
@@ -46,10 +46,10 @@ Provider & utilities:
|
|
|
46
46
|
Components (each exports `<Name>Props` and, where applicable, `<Name>SemanticPart`):
|
|
47
47
|
- General: `Button`
|
|
48
48
|
- Layout: `Stack`, `FormLayout`, `Splitter` (+ `SplitterPanelProps`)
|
|
49
|
-
- Navigation: `Tabs` (+ `TabItem`), `Pagination`
|
|
50
|
-
- Data Entry: `Input`, `Select` (+ `SelectOption`), `Checkbox` / `CheckboxGroup` (+ `CheckboxOptionType`), `Radio` / `RadioGroup` (+ `RadioOptionType`), `Switch`, `DatePicker`, `RangePicker`, `FormField`, `FormSection`, `FormActions`
|
|
51
|
-
- Data Display: `Table` (+ `TableColumn`, `TableRowSelection`, `TableFilterItem`, `TablePagination`, `SortOrder`, `SorterResult`), `Tag` / `CheckableTag` (+ `TagColor`, `TagVariant`), `ScrollArea` (+ `ScrollAreaType`)
|
|
52
|
-
- Feedback: `Drawer` (+ `DrawerPlacement`)
|
|
49
|
+
- Navigation: `Tabs` (+ `TabItem`), `Pagination`, `Breadcrumb` (+ `BreadcrumbItemType`), `Dropdown` (+ `DropdownButtonProps`, `DropdownPlacement`, `DropdownTrigger`, and menu-config types `MenuProps`, `MenuItem`, `MenuItemType`, `MenuGroupType`, `MenuDividerType`), `ContextMenu`
|
|
50
|
+
- Data Entry: `Input`, `Textarea` (+ `AutoSizeOptions`), `Select` (+ `SelectOption`), `Checkbox` / `CheckboxGroup` (+ `CheckboxOptionType`), `Radio` / `RadioGroup` (+ `RadioOptionType`), `Switch`, `DatePicker`, `RangePicker`, `FormField`, `FormSection`, `FormActions`
|
|
51
|
+
- Data Display: `Table` (+ `TableColumn`, `TableRowSelection`, `TableFilterItem`, `TablePagination`, `SortOrder`, `SorterResult`), `Tag` / `CheckableTag` (+ `TagColor`, `TagVariant`), `ScrollArea` (+ `ScrollAreaType`), `Collapsible` (+ `CollapsibleTriggerProps`, `CollapsibleContentProps`)
|
|
52
|
+
- Feedback: `Drawer` (+ `DrawerPlacement`, `DrawerSize`, `DrawerResizableConfig`), `Modal` (+ `ModalSemanticPart`; static helpers `Modal.confirm/info/success/error/warning`, hook `Modal.useModal()`, `Modal.destroyAll()`; types `ModalHookApi`, `ModalFuncProps`, `ModalFuncReturn`, `ModalFooterRender`, `ConfirmType`)
|
|
53
53
|
|
|
54
54
|
Headless:
|
|
55
55
|
- `useNumberInput`, `NumberInput` (+ `NumberInputProps`, `UseNumberInputOptions`, `UseNumberInputReturn`, `FormatOptions`, `PadDecimalsOnBlur`)
|
|
@@ -59,6 +59,7 @@ Headless:
|
|
|
59
59
|
- Import everything from the package root `@rockshin/tao-ui`; there are no deep sub-path entry points.
|
|
60
60
|
- Do not hand-write internal class names; customize via `classNames`/`styles` semantic parts.
|
|
61
61
|
- Prefer setting `size`/`disabled`/`variant` on `TaoProvider` for app-wide defaults; override per-component only when needed.
|
|
62
|
+
- `Modal` follows the antd pattern: render `<Modal open onCancel ...>` for controlled dialogs, or call `Modal.confirm({ title, onOk })` / `Modal.info|success|error|warning` for one-off dialogs. Inside components prefer `const [modal, contextHolder] = Modal.useModal()` (render `contextHolder`) so dialogs read the surrounding `TaoProvider` context.
|
|
62
63
|
- Override theme by passing a partial seed to `TaoProvider`'s theme config rather than overriding `--tao-*` variables directly.
|
|
63
64
|
|
|
64
65
|
## Source
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockshin/tao-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A modern React 19 component library with semantic DOM customization and OKLCH-based theming.",
|
|
6
6
|
"keywords": [
|
|
@@ -49,15 +49,15 @@
|
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@biomejs/biome": "2.4.14",
|
|
52
|
-
"@rsbuild/core": "
|
|
53
|
-
"@rsbuild/plugin-babel": "^1.1
|
|
54
|
-
"@rsbuild/plugin-react": "^2.0.
|
|
55
|
-
"@rslib/core": "^0.
|
|
56
|
-
"@rspress/core": "^2.0.
|
|
57
|
-
"@rspress/plugin-api-docgen": "^2.0.
|
|
58
|
-
"@rspress/plugin-preview": "^2.0.
|
|
59
|
-
"@rstest/adapter-rslib": "^0.
|
|
60
|
-
"@rstest/core": "^0.
|
|
52
|
+
"@rsbuild/core": "^2.0.11",
|
|
53
|
+
"@rsbuild/plugin-babel": "^1.2.1",
|
|
54
|
+
"@rsbuild/plugin-react": "^2.0.1",
|
|
55
|
+
"@rslib/core": "^0.22.0",
|
|
56
|
+
"@rspress/core": "^2.0.13",
|
|
57
|
+
"@rspress/plugin-api-docgen": "^2.0.13",
|
|
58
|
+
"@rspress/plugin-preview": "^2.0.13",
|
|
59
|
+
"@rstest/adapter-rslib": "^0.10.3",
|
|
60
|
+
"@rstest/core": "^0.10.3",
|
|
61
61
|
"@storybook/addon-docs": "^10.3.6",
|
|
62
62
|
"@storybook/addon-onboarding": "^10.3.6",
|
|
63
63
|
"@storybook/react": "^10.3.6",
|
|
@@ -66,15 +66,16 @@
|
|
|
66
66
|
"@testing-library/react": "^16.3.2",
|
|
67
67
|
"@types/node": "^24.12.4",
|
|
68
68
|
"@types/react": "^19.2.14",
|
|
69
|
+
"@types/react-dom": "^19",
|
|
69
70
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
70
71
|
"happy-dom": "^20.9.0",
|
|
71
72
|
"postcss": "^8.5.15",
|
|
72
73
|
"react": "^19.2.6",
|
|
73
74
|
"react-dom": "^19.2.6",
|
|
74
|
-
"rsbuild-plugin-workspace-dev": "^0.
|
|
75
|
+
"rsbuild-plugin-workspace-dev": "^1.0.0",
|
|
75
76
|
"storybook": "^10.3.6",
|
|
76
|
-
"storybook-addon-rslib": "^3.3.
|
|
77
|
-
"storybook-react-rsbuild": "^3.3.
|
|
77
|
+
"storybook-addon-rslib": "^3.3.4",
|
|
78
|
+
"storybook-react-rsbuild": "^3.3.4",
|
|
78
79
|
"tailwindcss": "^4.3.0",
|
|
79
80
|
"typescript": "^6.0.3"
|
|
80
81
|
},
|
|
@@ -88,9 +89,13 @@
|
|
|
88
89
|
"registry": "https://registry.npmjs.org/"
|
|
89
90
|
},
|
|
90
91
|
"dependencies": {
|
|
92
|
+
"@radix-ui/react-collapsible": "^1.1.13",
|
|
93
|
+
"@radix-ui/react-context-menu": "^2.3.0",
|
|
91
94
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
95
|
+
"@radix-ui/react-dropdown-menu": "^2.1.17",
|
|
92
96
|
"@radix-ui/react-popover": "^1.1.15",
|
|
93
97
|
"@radix-ui/react-select": "^2.2.6",
|
|
98
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
94
99
|
"@tanstack/react-virtual": "^3.14.2",
|
|
95
100
|
"dayjs": "^1.11.21"
|
|
96
101
|
}
|