@rockshin/tao-ui 0.0.1 → 0.0.2

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.
Files changed (59) hide show
  1. package/dist/components/breadcrumb/breadcrumb.css +1088 -0
  2. package/dist/components/breadcrumb/breadcrumb.d.ts +43 -0
  3. package/dist/components/breadcrumb/breadcrumb.js +268 -0
  4. package/dist/components/button/button.css +43 -21
  5. package/dist/components/checkbox/checkbox.css +30 -12
  6. package/dist/components/collapsible/collapsible.css +1023 -0
  7. package/dist/components/collapsible/collapsible.d.ts +39 -0
  8. package/dist/components/collapsible/collapsible.js +168 -0
  9. package/dist/components/context-menu/context-menu.css +1146 -0
  10. package/dist/components/context-menu/context-menu.d.ts +19 -0
  11. package/dist/components/context-menu/context-menu.js +104 -0
  12. package/dist/components/date-picker/date-picker.css +44 -16
  13. package/dist/components/drawer/drawer.css +123 -13
  14. package/dist/components/drawer/drawer.d.ts +36 -3
  15. package/dist/components/drawer/drawer.js +314 -121
  16. package/dist/components/dropdown/dropdown.css +996 -0
  17. package/dist/components/dropdown/dropdown.d.ts +45 -0
  18. package/dist/components/dropdown/dropdown.js +381 -0
  19. package/dist/components/form-field/form.css +30 -12
  20. package/dist/components/input/input.css +44 -14
  21. package/dist/components/menu/menu-render.d.ts +89 -0
  22. package/dist/components/menu/menu-render.js +376 -0
  23. package/dist/components/menu/menu.css +1142 -0
  24. package/dist/components/modal/confirm-dialog.d.ts +37 -0
  25. package/dist/components/modal/confirm-dialog.js +193 -0
  26. package/dist/components/modal/confirm.d.ts +13 -0
  27. package/dist/components/modal/confirm.js +56 -0
  28. package/dist/components/modal/index.d.ts +21 -0
  29. package/dist/components/modal/index.js +18 -0
  30. package/dist/components/modal/modal.css +1166 -0
  31. package/dist/components/modal/modal.d.ts +50 -0
  32. package/dist/components/modal/modal.js +353 -0
  33. package/dist/components/modal/use-modal.d.ts +21 -0
  34. package/dist/components/modal/use-modal.js +83 -0
  35. package/dist/components/pagination/pagination.css +30 -12
  36. package/dist/components/radio/radio.css +30 -12
  37. package/dist/components/scroll-area/scroll-area.css +30 -12
  38. package/dist/components/select/mobile-select.css +65 -13
  39. package/dist/components/select/mobile-select.js +17 -3
  40. package/dist/components/select/select.css +102 -15
  41. package/dist/components/select/select.d.ts +4 -0
  42. package/dist/components/select/select.js +204 -168
  43. package/dist/components/splitter/splitter.css +30 -12
  44. package/dist/components/switch/switch.css +30 -12
  45. package/dist/components/table/table.css +54 -18
  46. package/dist/components/table/table.d.ts +17 -2
  47. package/dist/components/table/table.js +214 -206
  48. package/dist/components/tabs/tabs.css +33 -17
  49. package/dist/components/tag/tag.css +30 -12
  50. package/dist/components/textarea/textarea.css +1204 -0
  51. package/dist/components/textarea/textarea.d.ts +19 -0
  52. package/dist/components/textarea/textarea.js +181 -0
  53. package/dist/index.d.ts +24 -18
  54. package/dist/index.js +21 -15
  55. package/dist/layouts/stack/layout.css +30 -12
  56. package/dist/theme/control.css +44 -13
  57. package/dist/theme/theme.css +30 -12
  58. package/llms.txt +7 -6
  59. package/package.json +6 -1
@@ -0,0 +1,43 @@
1
+ import { type CSSProperties, type MouseEvent, type ReactNode } from 'react';
2
+ import { type SemanticClassNames, type SemanticStyles } from '../../utils/semantic';
3
+ import './breadcrumb.css';
4
+ export type BreadcrumbSemanticPart = 'root' | 'list' | 'item' | 'link' | 'page' | 'separator' | 'ellipsis';
5
+ export interface BreadcrumbItemType {
6
+ /** Stable key; falls back to the item index. */
7
+ key?: string | number;
8
+ /** Content to display. */
9
+ title?: ReactNode;
10
+ /** When set, the item renders as an `<a>`. */
11
+ href?: string;
12
+ /** Click handler; turns a title-only item into an interactive link. */
13
+ onClick?: (e: MouseEvent<HTMLElement>) => void;
14
+ /** Disable interaction for this item. */
15
+ disabled?: boolean;
16
+ }
17
+ export interface BreadcrumbProps {
18
+ /** Breadcrumb path, root first. The last item renders as the current page. */
19
+ items: BreadcrumbItemType[];
20
+ /** Separator between items. Defaults to a chevron, like shadcn. */
21
+ separator?: ReactNode;
22
+ /**
23
+ * Collapse the middle of long paths into an ellipsis once the number of
24
+ * items exceeds this value. Shows the first item and the last
25
+ * `maxItems - 1` items.
26
+ */
27
+ maxItems?: number;
28
+ /**
29
+ * Custom renderer for an item's content. Return a React element (e.g. a
30
+ * router `<Link>`) and its props are merged onto the breadcrumb link via
31
+ * Radix Slot — no extra `<a>` wrapper is added.
32
+ */
33
+ itemRender?: (item: BreadcrumbItemType, info: {
34
+ index: number;
35
+ isLast: boolean;
36
+ items: BreadcrumbItemType[];
37
+ }) => ReactNode;
38
+ className?: string;
39
+ style?: CSSProperties;
40
+ classNames?: SemanticClassNames<BreadcrumbSemanticPart>;
41
+ styles?: SemanticStyles<BreadcrumbSemanticPart>;
42
+ }
43
+ export declare function Breadcrumb({ items, separator, maxItems, itemRender, className, style, classNames, styles, }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,268 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import { Fragment, isValidElement } from "react";
5
+ import { useTaoConfig } from "../../provider/tao-provider.js";
6
+ import { cx } from "../../utils/semantic.js";
7
+ import { Dropdown } from "../dropdown/dropdown.js";
8
+ import "./breadcrumb.css";
9
+ function ChevronIcon() {
10
+ const $ = c(1);
11
+ let t0;
12
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
13
+ t0 = /*#__PURE__*/ jsx("svg", {
14
+ viewBox: "0 0 16 16",
15
+ fill: "none",
16
+ "aria-hidden": true,
17
+ children: /*#__PURE__*/ jsx("path", {
18
+ d: "M6 4l4 4-4 4",
19
+ stroke: "currentColor",
20
+ strokeWidth: "1.5",
21
+ strokeLinecap: "round",
22
+ strokeLinejoin: "round"
23
+ })
24
+ });
25
+ $[0] = t0;
26
+ } else t0 = $[0];
27
+ return t0;
28
+ }
29
+ function EllipsisIcon() {
30
+ const $ = c(1);
31
+ let t0;
32
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
33
+ t0 = /*#__PURE__*/ jsxs("svg", {
34
+ viewBox: "0 0 16 16",
35
+ fill: "currentColor",
36
+ "aria-hidden": true,
37
+ children: [
38
+ /*#__PURE__*/ jsx("circle", {
39
+ cx: "3",
40
+ cy: "8",
41
+ r: "1.3"
42
+ }),
43
+ /*#__PURE__*/ jsx("circle", {
44
+ cx: "8",
45
+ cy: "8",
46
+ r: "1.3"
47
+ }),
48
+ /*#__PURE__*/ jsx("circle", {
49
+ cx: "13",
50
+ cy: "8",
51
+ r: "1.3"
52
+ })
53
+ ]
54
+ });
55
+ $[0] = t0;
56
+ } else t0 = $[0];
57
+ return t0;
58
+ }
59
+ const ELLIPSIS = Symbol('ellipsis');
60
+ function Breadcrumb(t0) {
61
+ const $ = c(55);
62
+ const { items, separator, maxItems, itemRender, className, style, classNames, styles } = t0;
63
+ const { size, disabled: ctxDisabled } = useTaoConfig();
64
+ const collapsed = null != maxItems && maxItems >= 1 && items.length > maxItems;
65
+ let t1;
66
+ if ($[0] !== collapsed || $[1] !== items || $[2] !== maxItems) {
67
+ t1 = collapsed ? [
68
+ items[0],
69
+ ELLIPSIS,
70
+ ...items.slice(items.length - Math.max(1, maxItems - 1))
71
+ ] : items;
72
+ $[0] = collapsed;
73
+ $[1] = items;
74
+ $[2] = maxItems;
75
+ $[3] = t1;
76
+ } else t1 = $[3];
77
+ const display = t1;
78
+ let t2;
79
+ if ($[4] !== separator) {
80
+ t2 = separator ?? /*#__PURE__*/ jsx(ChevronIcon, {});
81
+ $[4] = separator;
82
+ $[5] = t2;
83
+ } else t2 = $[5];
84
+ const sep = t2;
85
+ let t3;
86
+ if ($[6] !== classNames?.link || $[7] !== classNames?.page || $[8] !== ctxDisabled || $[9] !== itemRender || $[10] !== items || $[11] !== styles?.link || $[12] !== styles?.page) {
87
+ t3 = (item, index, isLast)=>{
88
+ const content = itemRender ? itemRender(item, {
89
+ index,
90
+ isLast,
91
+ items
92
+ }) : item.title;
93
+ const disabled = item.disabled || ctxDisabled;
94
+ if (isLast) return /*#__PURE__*/ jsx("span", {
95
+ "data-tao-breadcrumb-page": "",
96
+ "aria-current": "page",
97
+ className: cx(classNames?.page),
98
+ style: styles?.page,
99
+ children: content
100
+ });
101
+ const linkProps = {
102
+ "data-tao-breadcrumb-link": "",
103
+ "data-tao-disabled": disabled || void 0,
104
+ className: cx(classNames?.link),
105
+ style: styles?.link,
106
+ onClick: disabled ? void 0 : item.onClick
107
+ };
108
+ if (itemRender && /*#__PURE__*/ isValidElement(content)) return /*#__PURE__*/ jsx(Slot, {
109
+ ...linkProps,
110
+ children: content
111
+ });
112
+ if (null != item.href) return /*#__PURE__*/ jsx("a", {
113
+ href: item.href,
114
+ ...linkProps,
115
+ children: content
116
+ });
117
+ if (item.onClick) return /*#__PURE__*/ jsx("span", {
118
+ role: "link",
119
+ tabIndex: disabled ? void 0 : 0,
120
+ ...linkProps,
121
+ children: content
122
+ });
123
+ return /*#__PURE__*/ jsx("span", {
124
+ "data-tao-breadcrumb-text": "",
125
+ className: cx(classNames?.link),
126
+ style: styles?.link,
127
+ children: content
128
+ });
129
+ };
130
+ $[6] = classNames?.link;
131
+ $[7] = classNames?.page;
132
+ $[8] = ctxDisabled;
133
+ $[9] = itemRender;
134
+ $[10] = items;
135
+ $[11] = styles?.link;
136
+ $[12] = styles?.page;
137
+ $[13] = t3;
138
+ } else t3 = $[13];
139
+ const renderContent = t3;
140
+ const t4 = classNames?.root;
141
+ let t5;
142
+ if ($[14] !== className || $[15] !== t4) {
143
+ t5 = cx(t4, className);
144
+ $[14] = className;
145
+ $[15] = t4;
146
+ $[16] = t5;
147
+ } else t5 = $[16];
148
+ const t6 = styles?.root;
149
+ let t7;
150
+ if ($[17] !== style || $[18] !== t6) {
151
+ t7 = {
152
+ ...t6,
153
+ ...style
154
+ };
155
+ $[17] = style;
156
+ $[18] = t6;
157
+ $[19] = t7;
158
+ } else t7 = $[19];
159
+ const t8 = classNames?.list;
160
+ let t9;
161
+ if ($[20] !== t8) {
162
+ t9 = cx(t8);
163
+ $[20] = t8;
164
+ $[21] = t9;
165
+ } else t9 = $[21];
166
+ const t10 = styles?.list;
167
+ let t11;
168
+ if ($[22] !== classNames?.ellipsis || $[23] !== classNames?.item || $[24] !== classNames?.separator || $[25] !== display || $[26] !== items || $[27] !== maxItems || $[28] !== renderContent || $[29] !== sep || $[30] !== styles?.ellipsis || $[31] !== styles?.item || $[32] !== styles?.separator) {
169
+ let t12;
170
+ if ($[34] !== classNames?.ellipsis || $[35] !== classNames?.item || $[36] !== classNames?.separator || $[37] !== display.length || $[38] !== items || $[39] !== maxItems || $[40] !== renderContent || $[41] !== sep || $[42] !== styles?.ellipsis || $[43] !== styles?.item || $[44] !== styles?.separator) {
171
+ t12 = (entry, i)=>{
172
+ const isLast_0 = i === display.length - 1;
173
+ const isEllipsis = entry === ELLIPSIS;
174
+ const key = isEllipsis ? `ellipsis-${i}` : entry.key ?? i;
175
+ return /*#__PURE__*/ jsxs(Fragment, {
176
+ children: [
177
+ /*#__PURE__*/ jsx("li", {
178
+ "data-tao-breadcrumb-item": "",
179
+ className: cx(classNames?.item),
180
+ style: styles?.item,
181
+ children: isEllipsis ? /*#__PURE__*/ jsx(Dropdown, {
182
+ menu: {
183
+ items: items.slice(1, items.length - Math.max(1, (maxItems ?? 1) - 1)).map((hidden, hi)=>({
184
+ key: null != hidden.key ? String(hidden.key) : `breadcrumb-hidden-${hi + 1}`,
185
+ label: renderContent(hidden, hi + 1, false),
186
+ disabled: hidden.disabled
187
+ }))
188
+ },
189
+ children: /*#__PURE__*/ jsx("button", {
190
+ type: "button",
191
+ "data-tao-breadcrumb-ellipsis": "",
192
+ "aria-label": "Show more",
193
+ className: cx(classNames?.ellipsis),
194
+ style: styles?.ellipsis,
195
+ children: /*#__PURE__*/ jsx(EllipsisIcon, {})
196
+ })
197
+ }) : renderContent(entry, i, isLast_0)
198
+ }),
199
+ !isLast_0 && /*#__PURE__*/ jsx("li", {
200
+ "data-tao-breadcrumb-separator": "",
201
+ role: "presentation",
202
+ "aria-hidden": true,
203
+ className: cx(classNames?.separator),
204
+ style: styles?.separator,
205
+ children: sep
206
+ })
207
+ ]
208
+ }, key);
209
+ };
210
+ $[34] = classNames?.ellipsis;
211
+ $[35] = classNames?.item;
212
+ $[36] = classNames?.separator;
213
+ $[37] = display.length;
214
+ $[38] = items;
215
+ $[39] = maxItems;
216
+ $[40] = renderContent;
217
+ $[41] = sep;
218
+ $[42] = styles?.ellipsis;
219
+ $[43] = styles?.item;
220
+ $[44] = styles?.separator;
221
+ $[45] = t12;
222
+ } else t12 = $[45];
223
+ t11 = display.map(t12);
224
+ $[22] = classNames?.ellipsis;
225
+ $[23] = classNames?.item;
226
+ $[24] = classNames?.separator;
227
+ $[25] = display;
228
+ $[26] = items;
229
+ $[27] = maxItems;
230
+ $[28] = renderContent;
231
+ $[29] = sep;
232
+ $[30] = styles?.ellipsis;
233
+ $[31] = styles?.item;
234
+ $[32] = styles?.separator;
235
+ $[33] = t11;
236
+ } else t11 = $[33];
237
+ let t12;
238
+ if ($[46] !== t10 || $[47] !== t11 || $[48] !== t9) {
239
+ t12 = /*#__PURE__*/ jsx("ol", {
240
+ "data-tao-breadcrumb-list": "",
241
+ className: t9,
242
+ style: t10,
243
+ children: t11
244
+ });
245
+ $[46] = t10;
246
+ $[47] = t11;
247
+ $[48] = t9;
248
+ $[49] = t12;
249
+ } else t12 = $[49];
250
+ let t13;
251
+ if ($[50] !== size || $[51] !== t12 || $[52] !== t5 || $[53] !== t7) {
252
+ t13 = /*#__PURE__*/ jsx("nav", {
253
+ "data-tao-breadcrumb": "",
254
+ "data-tao-size": size,
255
+ "aria-label": "breadcrumb",
256
+ className: t5,
257
+ style: t7,
258
+ children: t12
259
+ });
260
+ $[50] = size;
261
+ $[51] = t12;
262
+ $[52] = t5;
263
+ $[53] = t7;
264
+ $[54] = t13;
265
+ } else t13 = $[54];
266
+ return t13;
267
+ }
268
+ export { Breadcrumb };
@@ -307,6 +307,8 @@
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;
@@ -529,8 +531,8 @@
529
531
  }
530
532
 
531
533
  :root, [data-tao-provider] {
532
- --tao-color-bg-container: var(--tao-color-bg-base);
533
- --tao-color-bg-elevated: var(--tao-color-bg-base);
534
+ --tao-color-bg-container: oklch(100% 0 0);
535
+ --tao-color-bg-elevated: oklch(100% 0 0);
534
536
  --tao-color-border: var(--tao-color-text-base);
535
537
  }
536
538
 
@@ -541,16 +543,7 @@
541
543
  }
542
544
 
543
545
  :root, [data-tao-provider] {
544
- --tao-color-border-secondary: var(--tao-color-text-base);
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] {
546
+ --tao-color-border-secondary: #0000170b;
554
547
  --tao-radius-xs: 2px;
555
548
  --tao-radius-sm: calc(var(--tao-radius) - 2px);
556
549
  --tao-radius-md: var(--tao-radius);
@@ -633,6 +626,10 @@
633
626
  visibility: collapse;
634
627
  }
635
628
 
629
+ .visible {
630
+ visibility: visible;
631
+ }
632
+
636
633
  .absolute {
637
634
  position: absolute;
638
635
  }
@@ -715,6 +712,10 @@
715
712
  display: inline;
716
713
  }
717
714
 
715
+ .inline-flex {
716
+ display: inline-flex;
717
+ }
718
+
718
719
  .table {
719
720
  display: table;
720
721
  }
@@ -727,6 +728,10 @@
727
728
  transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
728
729
  }
729
730
 
731
+ .resize {
732
+ resize: both;
733
+ }
734
+
730
735
  .flex-wrap {
731
736
  flex-wrap: wrap;
732
737
  }
@@ -742,6 +747,14 @@
742
747
  border-width: 1px;
743
748
  }
744
749
 
750
+ .italic {
751
+ font-style: italic;
752
+ }
753
+
754
+ .underline {
755
+ text-decoration-line: underline;
756
+ }
757
+
745
758
  .shadow {
746
759
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
747
760
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -771,21 +784,26 @@
771
784
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
772
785
  transition-duration: var(--tw-duration, var(--default-transition-duration));
773
786
  }
787
+
788
+ .select-all {
789
+ -webkit-user-select: all;
790
+ user-select: all;
791
+ }
774
792
  }
775
793
 
776
794
  button[data-tao-variant] {
795
+ justify-content: center;
796
+ align-items: center;
797
+ gap: var(--tao-padding-xs);
777
798
  font-family: var(--tao-font-family);
778
- font-weight: var(--tao-font-weight-strong);
799
+ font-weight: var(--tao-font-weight-normal);
779
800
  border: var(--tao-line-width) solid transparent;
780
801
  cursor: pointer;
781
802
  -webkit-user-select: none;
782
803
  user-select: none;
783
804
  white-space: nowrap;
784
- transition: background-color var(--tao-motion-duration-fast) var(--tao-motion-ease-out), border-color var(--tao-motion-duration-fast) var(--tao-motion-ease-out), transform var(--tao-motion-duration-fast) var(--tao-motion-ease-out);
805
+ transition: background-color var(--tao-motion-duration-fast) var(--tao-motion-ease-out), border-color var(--tao-motion-duration-fast) var(--tao-motion-ease-out);
785
806
  outline: none;
786
- justify-content: center;
787
- align-items: center;
788
- gap: 6px;
789
807
  display: inline-flex;
790
808
  }
791
809
 
@@ -798,7 +816,7 @@ button[data-tao-size="small"] {
798
816
 
799
817
  button[data-tao-size="medium"] {
800
818
  height: var(--tao-control-height);
801
- padding-inline: var(--tao-padding-sm);
819
+ padding-inline: var(--tao-padding);
802
820
  font-size: var(--tao-font-size-base);
803
821
  border-radius: var(--tao-radius-md);
804
822
  }
@@ -820,7 +838,7 @@ button[data-tao-variant="primary"]:hover:not(:disabled) {
820
838
  }
821
839
 
822
840
  button[data-tao-variant="primary"]:active:not(:disabled) {
823
- transform: scale(.98);
841
+ background: var(--tao-primary-active);
824
842
  }
825
843
 
826
844
  button[data-tao-variant="secondary"] {
@@ -835,7 +853,7 @@ button[data-tao-variant="secondary"]:hover:not(:disabled) {
835
853
  }
836
854
 
837
855
  button[data-tao-variant="secondary"]:active:not(:disabled) {
838
- transform: scale(.98);
856
+ background: var(--tao-color-fill-secondary);
839
857
  }
840
858
 
841
859
  button[data-tao-variant="ghost"] {
@@ -848,6 +866,10 @@ button[data-tao-variant="ghost"]:hover:not(:disabled) {
848
866
  color: var(--tao-color-text);
849
867
  }
850
868
 
869
+ button[data-tao-variant="ghost"]:active:not(:disabled) {
870
+ background: var(--tao-color-fill-secondary);
871
+ }
872
+
851
873
  button[data-tao-variant="destructive"] {
852
874
  background: var(--tao-error);
853
875
  color: var(--tao-error-fg);
@@ -858,7 +880,7 @@ button[data-tao-variant="destructive"]:hover:not(:disabled) {
858
880
  }
859
881
 
860
882
  button[data-tao-variant="destructive"]:active:not(:disabled) {
861
- transform: scale(.98);
883
+ background: var(--tao-error-active);
862
884
  }
863
885
 
864
886
  button[data-tao-variant]:disabled {
@@ -307,6 +307,8 @@
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;
@@ -529,8 +531,8 @@
529
531
  }
530
532
 
531
533
  :root, [data-tao-provider] {
532
- --tao-color-bg-container: var(--tao-color-bg-base);
533
- --tao-color-bg-elevated: var(--tao-color-bg-base);
534
+ --tao-color-bg-container: oklch(100% 0 0);
535
+ --tao-color-bg-elevated: oklch(100% 0 0);
534
536
  --tao-color-border: var(--tao-color-text-base);
535
537
  }
536
538
 
@@ -541,16 +543,7 @@
541
543
  }
542
544
 
543
545
  :root, [data-tao-provider] {
544
- --tao-color-border-secondary: var(--tao-color-text-base);
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] {
546
+ --tao-color-border-secondary: #0000170b;
554
547
  --tao-radius-xs: 2px;
555
548
  --tao-radius-sm: calc(var(--tao-radius) - 2px);
556
549
  --tao-radius-md: var(--tao-radius);
@@ -633,6 +626,10 @@
633
626
  visibility: collapse;
634
627
  }
635
628
 
629
+ .visible {
630
+ visibility: visible;
631
+ }
632
+
636
633
  .absolute {
637
634
  position: absolute;
638
635
  }
@@ -715,6 +712,10 @@
715
712
  display: inline;
716
713
  }
717
714
 
715
+ .inline-flex {
716
+ display: inline-flex;
717
+ }
718
+
718
719
  .table {
719
720
  display: table;
720
721
  }
@@ -727,6 +728,10 @@
727
728
  transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
728
729
  }
729
730
 
731
+ .resize {
732
+ resize: both;
733
+ }
734
+
730
735
  .flex-wrap {
731
736
  flex-wrap: wrap;
732
737
  }
@@ -742,6 +747,14 @@
742
747
  border-width: 1px;
743
748
  }
744
749
 
750
+ .italic {
751
+ font-style: italic;
752
+ }
753
+
754
+ .underline {
755
+ text-decoration-line: underline;
756
+ }
757
+
745
758
  .shadow {
746
759
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
747
760
  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 +784,11 @@
771
784
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
772
785
  transition-duration: var(--tw-duration, var(--default-transition-duration));
773
786
  }
787
+
788
+ .select-all {
789
+ -webkit-user-select: all;
790
+ user-select: all;
791
+ }
774
792
  }
775
793
 
776
794
  [data-tao-checkbox-wrapper] {