@dxos/ui-theme 0.8.4-main.c85a9c8dae → 0.8.4-main.d05539e30a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/index.mjs +423 -499
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +423 -499
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/plugin/node-cjs/{theme.css → main.css} +204 -125
- package/dist/plugin/node-cjs/main.css.map +7 -0
- package/dist/plugin/node-cjs/meta.json +1 -1
- package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs +8 -15
- package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs.map +3 -3
- package/dist/plugin/node-esm/{theme.css → main.css} +204 -125
- package/dist/plugin/node-esm/main.css.map +7 -0
- package/dist/plugin/node-esm/meta.json +1 -1
- package/dist/plugin/node-esm/plugins/ThemePlugin.mjs +8 -15
- package/dist/plugin/node-esm/plugins/ThemePlugin.mjs.map +3 -3
- package/dist/types/src/Theme.stories.d.ts.map +1 -1
- package/dist/types/src/defs.d.ts +2 -2
- package/dist/types/src/defs.d.ts.map +1 -1
- package/dist/types/src/fragments/density.d.ts +1 -4
- package/dist/types/src/fragments/density.d.ts.map +1 -1
- package/dist/types/src/fragments/hover.d.ts +0 -1
- package/dist/types/src/fragments/hover.d.ts.map +1 -1
- package/dist/types/src/fragments/index.d.ts +0 -5
- package/dist/types/src/fragments/index.d.ts.map +1 -1
- package/dist/types/src/fragments/text.d.ts +0 -5
- package/dist/types/src/fragments/text.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugins/ThemePlugin.d.ts +1 -1
- package/dist/types/src/plugins/ThemePlugin.d.ts.map +1 -1
- package/dist/types/src/theme/components/avatar.d.ts.map +1 -1
- package/dist/types/src/theme/components/button.d.ts +2 -2
- package/dist/types/src/theme/components/button.d.ts.map +1 -1
- package/dist/types/src/theme/components/card.d.ts +3 -2
- package/dist/types/src/theme/components/card.d.ts.map +1 -1
- package/dist/types/src/theme/components/dialog.d.ts.map +1 -1
- package/dist/types/src/theme/components/focus.d.ts +6 -0
- package/dist/types/src/theme/components/focus.d.ts.map +1 -0
- package/dist/types/src/theme/components/icon-button.d.ts +1 -0
- package/dist/types/src/theme/components/icon-button.d.ts.map +1 -1
- package/dist/types/src/theme/components/icon.d.ts +3 -0
- package/dist/types/src/theme/components/icon.d.ts.map +1 -1
- package/dist/types/src/theme/components/index.d.ts +1 -0
- package/dist/types/src/theme/components/index.d.ts.map +1 -1
- package/dist/types/src/theme/components/input.d.ts +8 -8
- package/dist/types/src/theme/components/input.d.ts.map +1 -1
- package/dist/types/src/theme/components/link.d.ts.map +1 -1
- package/dist/types/src/theme/components/list.d.ts.map +1 -1
- package/dist/types/src/theme/components/main.d.ts.map +1 -1
- package/dist/types/src/theme/components/message.d.ts.map +1 -1
- package/dist/types/src/theme/components/popover.d.ts.map +1 -1
- package/dist/types/src/theme/components/scroll-area.d.ts +12 -2
- package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -1
- package/dist/types/src/theme/components/select.d.ts.map +1 -1
- package/dist/types/src/theme/components/status.d.ts +1 -1
- package/dist/types/src/theme/components/status.d.ts.map +1 -1
- package/dist/types/src/theme/components/toast.d.ts.map +1 -1
- package/dist/types/src/theme/components/toolbar.d.ts +0 -1
- package/dist/types/src/theme/components/toolbar.d.ts.map +1 -1
- package/dist/types/src/theme/components/tooltip.d.ts.map +1 -1
- package/dist/types/src/theme/components/treegrid.d.ts.map +1 -1
- package/dist/types/src/theme/index.d.ts +1 -0
- package/dist/types/src/theme/index.d.ts.map +1 -1
- package/dist/types/src/theme/primitives/column.d.ts +25 -3
- package/dist/types/src/theme/primitives/column.d.ts.map +1 -1
- package/dist/types/src/theme/primitives/panel.d.ts +9 -5
- package/dist/types/src/theme/primitives/panel.d.ts.map +1 -1
- package/dist/types/src/theme/theme.d.ts.map +1 -1
- package/dist/types/src/util/elevation.d.ts.map +1 -0
- package/dist/types/src/util/hash-styles.d.ts +1 -1
- package/dist/types/src/util/hash-styles.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +3 -0
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/mx.d.ts +52 -4
- package/dist/types/src/util/mx.d.ts.map +1 -1
- package/dist/types/src/util/size.d.ts +27 -0
- package/dist/types/src/util/size.d.ts.map +1 -0
- package/dist/types/src/util/valence.d.ts +4 -0
- package/dist/types/src/util/valence.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -18
- package/src/Theme.stories.tsx +5 -5
- package/src/css/DESIGN_SYSTEM.md +159 -0
- package/src/css/base/base.css +2 -2
- package/src/css/components/button.css +4 -3
- package/src/css/components/checkbox.css +1 -1
- package/src/css/components/{focus-ring.css → focus.css} +27 -13
- package/src/css/components/icon.css +9 -0
- package/src/css/components/link.css +3 -0
- package/src/css/components/panel.css +45 -45
- package/src/css/components/selected.css +76 -0
- package/src/css/components/selected.md +101 -0
- package/src/css/components/surface.css +4 -4
- package/src/css/components/tag.css +25 -23
- package/src/css/integrations/codemirror.css +5 -3
- package/src/css/integrations/tldraw.css +1 -0
- package/src/css/layout/main.css +0 -7
- package/src/css/layout/size.css +19 -27
- package/src/css/theme/animation.css +31 -0
- package/src/css/theme/palette.css +8 -0
- package/src/css/theme/semantic.css +48 -36
- package/src/css/theme/spacing.css +37 -20
- package/src/css/theme/styles.css +22 -22
- package/src/css/utilities.css +114 -3
- package/src/defs.ts +2 -2
- package/src/fragments/AUDIT.md +55 -0
- package/src/fragments/density.ts +8 -5
- package/src/fragments/hover.ts +0 -2
- package/src/fragments/index.ts +1 -6
- package/src/fragments/text.ts +1 -6
- package/src/index.ts +1 -1
- package/src/{theme.css → main.css} +48 -10
- package/src/plugins/ThemePlugin.ts +12 -24
- package/src/plugins/main.css +45 -0
- package/src/theme/components/avatar.ts +3 -4
- package/src/theme/components/button.ts +3 -3
- package/src/theme/components/card.ts +19 -11
- package/src/theme/components/dialog.ts +4 -3
- package/src/theme/components/focus.ts +33 -0
- package/src/theme/components/icon-button.ts +6 -5
- package/src/theme/components/icon.ts +13 -4
- package/src/theme/components/index.ts +1 -0
- package/src/theme/components/input.ts +18 -33
- package/src/theme/components/link.ts +1 -2
- package/src/theme/components/list.ts +4 -4
- package/src/theme/components/menu.ts +4 -4
- package/src/theme/components/message.ts +6 -7
- package/src/theme/components/popover.ts +4 -5
- package/src/theme/components/scroll-area.ts +58 -46
- package/src/theme/components/select.ts +3 -4
- package/src/theme/components/status.ts +5 -5
- package/src/theme/components/toast.ts +2 -3
- package/src/theme/components/toolbar.ts +1 -7
- package/src/theme/components/tooltip.ts +2 -3
- package/src/theme/components/treegrid.ts +1 -1
- package/src/theme/index.ts +1 -0
- package/src/theme/primitives/column.ts +49 -8
- package/src/theme/primitives/panel.ts +19 -23
- package/src/theme/theme.ts +2 -0
- package/src/typings.d.ts +3 -0
- package/src/util/hash-styles.ts +19 -19
- package/src/util/index.ts +3 -0
- package/src/util/mx.ts +119 -8
- package/src/util/size.ts +103 -0
- package/dist/plugin/node-cjs/theme.css.map +0 -7
- package/dist/plugin/node-esm/theme.css.map +0 -7
- package/dist/types/src/fragments/elevation.d.ts.map +0 -1
- package/dist/types/src/fragments/focus.d.ts +0 -4
- package/dist/types/src/fragments/focus.d.ts.map +0 -1
- package/dist/types/src/fragments/selected.d.ts +0 -4
- package/dist/types/src/fragments/selected.d.ts.map +0 -1
- package/dist/types/src/fragments/size.d.ts +0 -7
- package/dist/types/src/fragments/size.d.ts.map +0 -1
- package/dist/types/src/fragments/valence.d.ts +0 -4
- package/dist/types/src/fragments/valence.d.ts.map +0 -1
- package/src/fragments/focus.ts +0 -11
- package/src/fragments/selected.ts +0 -12
- package/src/fragments/size.ts +0 -117
- /package/dist/types/src/{fragments → util}/elevation.d.ts +0 -0
- /package/src/{fragments → util}/elevation.ts +0 -0
- /package/src/{fragments → util}/valence.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/defs.ts
|
|
4
|
-
var osTranslations = "dxos.
|
|
4
|
+
var osTranslations = "org.dxos.i18n.os";
|
|
5
5
|
var hues = [
|
|
6
6
|
"red",
|
|
7
7
|
"orange",
|
|
@@ -37,7 +37,7 @@ var hueShades = [
|
|
|
37
37
|
var roles = [
|
|
38
38
|
"fill",
|
|
39
39
|
"surface",
|
|
40
|
-
"
|
|
40
|
+
"foreground",
|
|
41
41
|
"text",
|
|
42
42
|
"border"
|
|
43
43
|
];
|
|
@@ -48,17 +48,31 @@ var cardMinBlockSize = 18;
|
|
|
48
48
|
var cardMaxBlockSize = 30;
|
|
49
49
|
|
|
50
50
|
// src/fragments/density.ts
|
|
51
|
-
var coarseBlockSize = "min-h-[2.5rem]";
|
|
52
|
-
var coarseDimensions = `${coarseBlockSize} px-3`;
|
|
53
51
|
var fineBlockSize = "min-h-[2.5rem] pointer-fine:min-h-[2rem]";
|
|
52
|
+
var coarseBlockSize = "min-h-[2.5rem]";
|
|
54
53
|
var fineDimensions = `${fineBlockSize} px-2`;
|
|
55
|
-
var
|
|
54
|
+
var coarseDimensions = `${coarseBlockSize} px-3`;
|
|
55
|
+
var densityDimensions = (density = "fine") => density === "fine" ? fineDimensions : coarseDimensions;
|
|
56
|
+
var densityBlockSize = (density = "fine") => density === "fine" ? fineBlockSize : coarseBlockSize;
|
|
56
57
|
|
|
57
58
|
// src/fragments/disabled.ts
|
|
58
59
|
var staticDisabled = "opacity-40 cursor-not-allowed shadow-none";
|
|
59
60
|
var dataDisabled = "data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed";
|
|
60
61
|
|
|
61
|
-
// src/fragments/
|
|
62
|
+
// src/fragments/hover.ts
|
|
63
|
+
var ghostHover = "hover:bg-hover-surface";
|
|
64
|
+
var ghostFocusWithin = "focus-within:bg-hover-surface";
|
|
65
|
+
var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
|
|
66
|
+
var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
|
|
67
|
+
var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
|
|
68
|
+
var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
|
|
69
|
+
var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
|
|
70
|
+
var hoverableControlItem = "opacity-(--controls-opacity)";
|
|
71
|
+
|
|
72
|
+
// src/fragments/text.ts
|
|
73
|
+
var descriptionMessage = "text-description border border-dashed border-separator rounded-sm p-4";
|
|
74
|
+
|
|
75
|
+
// src/util/elevation.ts
|
|
62
76
|
var surfaceShadow = ({ elevation }) => [
|
|
63
77
|
elevation === "positioned" ? "shadow-sm" : elevation === "dialog" || elevation === "toast" ? "shadow-md" : "shadow-none"
|
|
64
78
|
];
|
|
@@ -91,33 +105,12 @@ var surfaceZIndex = ({ level, elevation }) => {
|
|
|
91
105
|
}
|
|
92
106
|
};
|
|
93
107
|
|
|
94
|
-
// src/fragments/focus.ts
|
|
95
|
-
var focusRing = "dx-focus-ring";
|
|
96
|
-
var subduedFocus = "focus:outline-hidden focus-visible:outline-hidden focus:ring-0 ring-0 focus:border-0 border-0";
|
|
97
|
-
var staticFocusRing = "ring-2 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black";
|
|
98
|
-
|
|
99
|
-
// src/fragments/hover.ts
|
|
100
|
-
var subtleHover = "hover:bg-hover-overlay";
|
|
101
|
-
var ghostHover = "hover:bg-hover-surface";
|
|
102
|
-
var ghostFocusWithin = "focus-within:bg-hover-surface";
|
|
103
|
-
var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
|
|
104
|
-
var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
|
|
105
|
-
var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
|
|
106
|
-
var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
|
|
107
|
-
var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
|
|
108
|
-
var hoverableControlItem = "opacity-(--controls-opacity)";
|
|
109
|
-
|
|
110
|
-
// src/fragments/selected.ts
|
|
111
|
-
var ghostHighlighted = "data-[highlighted]:bg-primary-100 dark:data-[highlighted]:bg-primary-600 hover:data-[highlighted]:bg-primary-150 hover:dark:data-[highlighted]:bg-primary-500";
|
|
112
|
-
var ghostSelected = "aria-selected:bg-base-surface aria-selected:text-accent-text hover:aria-selected:text-accent-text-hover aria-selected:font-semibold aria-selected:tracking-normal transition-[color,font-variation-settings,letter-spacing]";
|
|
113
|
-
var ghostSelectedContainerMd = "@md:aria-selected:bg-base-surface @md:aria-selected:text-accent-text @md:hover:aria-selected:text-accent-text-hover @md:aria-selected:font-semibold @md:aria-selected:tracking-normal @md:transition-[color,font-variation-settings,letter-spacing]";
|
|
114
|
-
|
|
115
108
|
// src/util/hash-styles.ts
|
|
116
109
|
var neutral = {
|
|
117
110
|
hue: "neutral",
|
|
118
111
|
fill: "bg-neutral-fill",
|
|
119
112
|
surface: "bg-neutral-surface",
|
|
120
|
-
|
|
113
|
+
foreground: "text-neutral-foreground",
|
|
121
114
|
text: "text-neutral-text",
|
|
122
115
|
border: "border-neutral-border"
|
|
123
116
|
};
|
|
@@ -126,7 +119,7 @@ var styles = [
|
|
|
126
119
|
hue: "red",
|
|
127
120
|
fill: "bg-red-fill",
|
|
128
121
|
surface: "bg-red-surface",
|
|
129
|
-
|
|
122
|
+
foreground: "text-red-foreground",
|
|
130
123
|
text: "text-red-text",
|
|
131
124
|
border: "border-red-border"
|
|
132
125
|
},
|
|
@@ -134,7 +127,7 @@ var styles = [
|
|
|
134
127
|
hue: "orange",
|
|
135
128
|
fill: "bg-orange-fill",
|
|
136
129
|
surface: "bg-orange-surface",
|
|
137
|
-
|
|
130
|
+
foreground: "text-orange-foreground",
|
|
138
131
|
text: "text-orange-text",
|
|
139
132
|
border: "border-orange-border"
|
|
140
133
|
},
|
|
@@ -142,7 +135,7 @@ var styles = [
|
|
|
142
135
|
hue: "amber",
|
|
143
136
|
fill: "bg-amber-fill",
|
|
144
137
|
surface: "bg-amber-surface",
|
|
145
|
-
|
|
138
|
+
foreground: "text-amber-foreground",
|
|
146
139
|
text: "text-amber-text",
|
|
147
140
|
border: "border-amber-border"
|
|
148
141
|
},
|
|
@@ -150,7 +143,7 @@ var styles = [
|
|
|
150
143
|
hue: "yellow",
|
|
151
144
|
fill: "bg-yellow-fill",
|
|
152
145
|
surface: "bg-yellow-surface",
|
|
153
|
-
|
|
146
|
+
foreground: "text-yellow-foreground",
|
|
154
147
|
text: "text-yellow-text",
|
|
155
148
|
border: "border-yellow-border"
|
|
156
149
|
},
|
|
@@ -158,7 +151,7 @@ var styles = [
|
|
|
158
151
|
hue: "lime",
|
|
159
152
|
fill: "bg-lime-fill",
|
|
160
153
|
surface: "bg-lime-surface",
|
|
161
|
-
|
|
154
|
+
foreground: "text-lime-foreground",
|
|
162
155
|
text: "text-lime-text",
|
|
163
156
|
border: "border-lime-border"
|
|
164
157
|
},
|
|
@@ -166,7 +159,7 @@ var styles = [
|
|
|
166
159
|
hue: "green",
|
|
167
160
|
fill: "bg-green-fill",
|
|
168
161
|
surface: "bg-green-surface",
|
|
169
|
-
|
|
162
|
+
foreground: "text-green-foreground",
|
|
170
163
|
text: "text-green-text",
|
|
171
164
|
border: "border-green-border"
|
|
172
165
|
},
|
|
@@ -174,7 +167,7 @@ var styles = [
|
|
|
174
167
|
hue: "emerald",
|
|
175
168
|
fill: "bg-emerald-fill",
|
|
176
169
|
surface: "bg-emerald-surface",
|
|
177
|
-
|
|
170
|
+
foreground: "text-emerald-foreground",
|
|
178
171
|
text: "text-emerald-text",
|
|
179
172
|
border: "border-emerald-border"
|
|
180
173
|
},
|
|
@@ -182,7 +175,7 @@ var styles = [
|
|
|
182
175
|
hue: "teal",
|
|
183
176
|
fill: "bg-teal-fill",
|
|
184
177
|
surface: "bg-teal-surface",
|
|
185
|
-
|
|
178
|
+
foreground: "text-teal-foreground",
|
|
186
179
|
text: "text-teal-text",
|
|
187
180
|
border: "border-teal-border"
|
|
188
181
|
},
|
|
@@ -190,7 +183,7 @@ var styles = [
|
|
|
190
183
|
hue: "cyan",
|
|
191
184
|
fill: "bg-cyan-fill",
|
|
192
185
|
surface: "bg-cyan-surface",
|
|
193
|
-
|
|
186
|
+
foreground: "text-cyan-foreground",
|
|
194
187
|
text: "text-cyan-text",
|
|
195
188
|
border: "border-cyan-border"
|
|
196
189
|
},
|
|
@@ -198,7 +191,7 @@ var styles = [
|
|
|
198
191
|
hue: "sky",
|
|
199
192
|
fill: "bg-sky-fill",
|
|
200
193
|
surface: "bg-sky-surface",
|
|
201
|
-
|
|
194
|
+
foreground: "text-sky-foreground",
|
|
202
195
|
text: "text-sky-text",
|
|
203
196
|
border: "border-sky-border"
|
|
204
197
|
},
|
|
@@ -206,7 +199,7 @@ var styles = [
|
|
|
206
199
|
hue: "blue",
|
|
207
200
|
fill: "bg-blue-fill",
|
|
208
201
|
surface: "bg-blue-surface",
|
|
209
|
-
|
|
202
|
+
foreground: "text-blue-foreground",
|
|
210
203
|
text: "text-blue-text",
|
|
211
204
|
border: "border-blue-border"
|
|
212
205
|
},
|
|
@@ -214,7 +207,7 @@ var styles = [
|
|
|
214
207
|
hue: "indigo",
|
|
215
208
|
fill: "bg-indigo-fill",
|
|
216
209
|
surface: "bg-indigo-surface",
|
|
217
|
-
|
|
210
|
+
foreground: "text-indigo-foreground",
|
|
218
211
|
text: "text-indigo-text",
|
|
219
212
|
border: "border-indigo-border"
|
|
220
213
|
},
|
|
@@ -222,7 +215,7 @@ var styles = [
|
|
|
222
215
|
hue: "violet",
|
|
223
216
|
fill: "bg-violet-fill",
|
|
224
217
|
surface: "bg-violet-surface",
|
|
225
|
-
|
|
218
|
+
foreground: "text-violet-foreground",
|
|
226
219
|
text: "text-violet-text",
|
|
227
220
|
border: "border-violet-border"
|
|
228
221
|
},
|
|
@@ -230,7 +223,7 @@ var styles = [
|
|
|
230
223
|
hue: "purple",
|
|
231
224
|
fill: "bg-purple-fill",
|
|
232
225
|
surface: "bg-purple-surface",
|
|
233
|
-
|
|
226
|
+
foreground: "text-purple-foreground",
|
|
234
227
|
text: "text-purple-text",
|
|
235
228
|
border: "border-purple-border"
|
|
236
229
|
},
|
|
@@ -238,7 +231,7 @@ var styles = [
|
|
|
238
231
|
hue: "fuchsia",
|
|
239
232
|
fill: "bg-fuchsia-fill",
|
|
240
233
|
surface: "bg-fuchsia-surface",
|
|
241
|
-
|
|
234
|
+
foreground: "text-fuchsia-foreground",
|
|
242
235
|
text: "text-fuchsia-text",
|
|
243
236
|
border: "border-fuchsia-border"
|
|
244
237
|
},
|
|
@@ -246,7 +239,7 @@ var styles = [
|
|
|
246
239
|
hue: "pink",
|
|
247
240
|
fill: "bg-pink-fill",
|
|
248
241
|
surface: "bg-pink-surface",
|
|
249
|
-
|
|
242
|
+
foreground: "text-pink-foreground",
|
|
250
243
|
text: "text-pink-text",
|
|
251
244
|
border: "border-pink-border"
|
|
252
245
|
},
|
|
@@ -254,7 +247,7 @@ var styles = [
|
|
|
254
247
|
hue: "rose",
|
|
255
248
|
fill: "bg-rose-fill",
|
|
256
249
|
surface: "bg-rose-surface",
|
|
257
|
-
|
|
250
|
+
foreground: "text-rose-foreground",
|
|
258
251
|
text: "text-rose-text",
|
|
259
252
|
border: "border-rose-border"
|
|
260
253
|
}
|
|
@@ -275,7 +268,10 @@ var getHashHue = (id) => {
|
|
|
275
268
|
var getHash = (id) => id.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0);
|
|
276
269
|
|
|
277
270
|
// src/util/mx.ts
|
|
271
|
+
import { Children, createElement, forwardRef, isValidElement } from "react";
|
|
278
272
|
import { extendTailwindMerge, validators } from "tailwind-merge";
|
|
273
|
+
import { log } from "@dxos/log";
|
|
274
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/ui/ui-theme/src/util/mx.ts";
|
|
279
275
|
var mx = extendTailwindMerge({
|
|
280
276
|
extend: {
|
|
281
277
|
classGroups: {
|
|
@@ -320,333 +316,235 @@ var mx = extendTailwindMerge({
|
|
|
320
316
|
}
|
|
321
317
|
}
|
|
322
318
|
});
|
|
323
|
-
var
|
|
324
|
-
|
|
325
|
-
|
|
319
|
+
var composableProps = ({ className, classNames, role, style, ...props }, { classNames: defaultClassNames, ...defaults } = {}) => ({
|
|
320
|
+
// Default props.
|
|
321
|
+
...defaults,
|
|
322
|
+
// Spread supplied props.
|
|
323
|
+
...props,
|
|
324
|
+
// Prefer explicit role, then defaults role, then 'none'.
|
|
325
|
+
role: role ?? defaults.role ?? "none",
|
|
326
|
+
// Merge styles.
|
|
327
|
+
style: {
|
|
328
|
+
...defaults.style,
|
|
329
|
+
...style
|
|
330
|
+
},
|
|
331
|
+
// Compose classnames.
|
|
332
|
+
className: mx(defaultClassNames, className, classNames)
|
|
326
333
|
});
|
|
334
|
+
var COMPOSABLE = /* @__PURE__ */ Symbol.for("dxos.composable");
|
|
335
|
+
function slottable(render) {
|
|
336
|
+
const wrapped = (props, forwardedRef) => {
|
|
337
|
+
let warn = false;
|
|
338
|
+
if (props.asChild) {
|
|
339
|
+
try {
|
|
340
|
+
const child = Children.only(props.children);
|
|
341
|
+
if (isValidElement(child) && typeof child.type !== "string" && !child.type[COMPOSABLE]) {
|
|
342
|
+
warn = true;
|
|
343
|
+
log.warn("slot child is not composable; create it with composable() or slottable()", {
|
|
344
|
+
child: child.type.displayName ?? child.type.name
|
|
345
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 100, S: this });
|
|
346
|
+
}
|
|
347
|
+
} catch {
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
const result = render(props, forwardedRef);
|
|
351
|
+
if (warn) {
|
|
352
|
+
return createElement("div", {
|
|
353
|
+
role: "none",
|
|
354
|
+
className: "dx-slot-warning"
|
|
355
|
+
}, result);
|
|
356
|
+
}
|
|
357
|
+
return result;
|
|
358
|
+
};
|
|
359
|
+
const component = forwardRef(wrapped);
|
|
360
|
+
component[COMPOSABLE] = true;
|
|
361
|
+
return component;
|
|
362
|
+
}
|
|
363
|
+
function composable(render) {
|
|
364
|
+
const component = forwardRef(render);
|
|
365
|
+
component[COMPOSABLE] = true;
|
|
366
|
+
return component;
|
|
367
|
+
}
|
|
327
368
|
|
|
328
|
-
// src/
|
|
329
|
-
var
|
|
330
|
-
|
|
331
|
-
0,
|
|
332
|
-
"
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
"px",
|
|
336
|
-
"
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
0.5,
|
|
340
|
-
"
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
1,
|
|
344
|
-
"
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
1.5,
|
|
348
|
-
"
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
2,
|
|
352
|
-
"
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
2.5,
|
|
356
|
-
"
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
3,
|
|
360
|
-
"
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
3.5,
|
|
364
|
-
"
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
4,
|
|
368
|
-
"
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
5,
|
|
372
|
-
"
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
6,
|
|
376
|
-
"
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
7,
|
|
380
|
-
"
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
8,
|
|
384
|
-
"
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
9,
|
|
388
|
-
"
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
10,
|
|
392
|
-
"
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
11,
|
|
396
|
-
"
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
12,
|
|
400
|
-
"
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
14,
|
|
404
|
-
"
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
16,
|
|
408
|
-
"
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
20,
|
|
412
|
-
"
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
24,
|
|
416
|
-
"
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
28,
|
|
420
|
-
"
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
32,
|
|
424
|
-
"
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
36,
|
|
428
|
-
"
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
40,
|
|
432
|
-
"
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
44,
|
|
436
|
-
"
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
48,
|
|
440
|
-
"
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
52,
|
|
444
|
-
"
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
56,
|
|
448
|
-
"
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
60,
|
|
452
|
-
"
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
64,
|
|
456
|
-
"
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
72,
|
|
460
|
-
"
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
80,
|
|
464
|
-
"
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
96,
|
|
468
|
-
"
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
var
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
"h-0.5"
|
|
483
|
-
],
|
|
484
|
-
[
|
|
485
|
-
1,
|
|
486
|
-
"h-1"
|
|
487
|
-
],
|
|
488
|
-
[
|
|
489
|
-
1.5,
|
|
490
|
-
"h-1.5"
|
|
491
|
-
],
|
|
492
|
-
[
|
|
493
|
-
2,
|
|
494
|
-
"h-2"
|
|
495
|
-
],
|
|
496
|
-
[
|
|
497
|
-
2.5,
|
|
498
|
-
"h-2.5"
|
|
499
|
-
],
|
|
500
|
-
[
|
|
501
|
-
3,
|
|
502
|
-
"h-3"
|
|
503
|
-
],
|
|
504
|
-
[
|
|
505
|
-
3.5,
|
|
506
|
-
"h-3.5"
|
|
507
|
-
],
|
|
508
|
-
[
|
|
509
|
-
4,
|
|
510
|
-
"h-4"
|
|
511
|
-
],
|
|
512
|
-
[
|
|
513
|
-
5,
|
|
514
|
-
"h-5"
|
|
515
|
-
],
|
|
516
|
-
[
|
|
517
|
-
6,
|
|
518
|
-
"h-6"
|
|
519
|
-
],
|
|
520
|
-
[
|
|
521
|
-
7,
|
|
522
|
-
"h-7"
|
|
523
|
-
],
|
|
524
|
-
[
|
|
525
|
-
8,
|
|
526
|
-
"h-8"
|
|
527
|
-
],
|
|
528
|
-
[
|
|
529
|
-
9,
|
|
530
|
-
"h-9"
|
|
531
|
-
],
|
|
532
|
-
[
|
|
533
|
-
10,
|
|
534
|
-
"h-10"
|
|
535
|
-
],
|
|
536
|
-
[
|
|
537
|
-
11,
|
|
538
|
-
"h-11"
|
|
539
|
-
],
|
|
540
|
-
[
|
|
541
|
-
12,
|
|
542
|
-
"h-12"
|
|
543
|
-
],
|
|
544
|
-
[
|
|
545
|
-
14,
|
|
546
|
-
"h-14"
|
|
547
|
-
],
|
|
548
|
-
[
|
|
549
|
-
16,
|
|
550
|
-
"h-16"
|
|
551
|
-
],
|
|
552
|
-
[
|
|
553
|
-
20,
|
|
554
|
-
"h-20"
|
|
555
|
-
],
|
|
556
|
-
[
|
|
557
|
-
24,
|
|
558
|
-
"h-24"
|
|
559
|
-
],
|
|
560
|
-
[
|
|
561
|
-
28,
|
|
562
|
-
"h-28"
|
|
563
|
-
],
|
|
564
|
-
[
|
|
565
|
-
32,
|
|
566
|
-
"h-32"
|
|
567
|
-
],
|
|
568
|
-
[
|
|
569
|
-
36,
|
|
570
|
-
"h-36"
|
|
571
|
-
],
|
|
572
|
-
[
|
|
573
|
-
40,
|
|
574
|
-
"h-40"
|
|
575
|
-
],
|
|
576
|
-
[
|
|
577
|
-
44,
|
|
578
|
-
"h-44"
|
|
579
|
-
],
|
|
580
|
-
[
|
|
581
|
-
48,
|
|
582
|
-
"h-48"
|
|
583
|
-
],
|
|
584
|
-
[
|
|
585
|
-
52,
|
|
586
|
-
"h-52"
|
|
587
|
-
],
|
|
588
|
-
[
|
|
589
|
-
56,
|
|
590
|
-
"h-56"
|
|
591
|
-
],
|
|
592
|
-
[
|
|
593
|
-
60,
|
|
594
|
-
"h-60"
|
|
595
|
-
],
|
|
596
|
-
[
|
|
597
|
-
64,
|
|
598
|
-
"h-64"
|
|
599
|
-
],
|
|
600
|
-
[
|
|
601
|
-
72,
|
|
602
|
-
"h-72"
|
|
603
|
-
],
|
|
604
|
-
[
|
|
605
|
-
80,
|
|
606
|
-
"h-80"
|
|
607
|
-
],
|
|
608
|
-
[
|
|
609
|
-
96,
|
|
610
|
-
"h-96"
|
|
611
|
-
]
|
|
612
|
-
]);
|
|
613
|
-
var sizes = new Set(sizeWidthMap.keys());
|
|
614
|
-
var getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);
|
|
615
|
-
var getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);
|
|
616
|
-
var getSize = (size) => mx(getSizeHeight(size), getSizeWidth(size));
|
|
617
|
-
var computeSize = (value, defaultSize) => {
|
|
618
|
-
if (sizes.has(value)) {
|
|
369
|
+
// src/util/size.ts
|
|
370
|
+
var sizeMap = {
|
|
371
|
+
0: {
|
|
372
|
+
w: "w-0",
|
|
373
|
+
h: "h-0"
|
|
374
|
+
},
|
|
375
|
+
px: {
|
|
376
|
+
w: "w-px",
|
|
377
|
+
h: "h-px"
|
|
378
|
+
},
|
|
379
|
+
0.5: {
|
|
380
|
+
w: "w-0.5",
|
|
381
|
+
h: "h-0.5"
|
|
382
|
+
},
|
|
383
|
+
1: {
|
|
384
|
+
w: "w-1",
|
|
385
|
+
h: "h-1"
|
|
386
|
+
},
|
|
387
|
+
1.5: {
|
|
388
|
+
w: "w-1.5",
|
|
389
|
+
h: "h-1.5"
|
|
390
|
+
},
|
|
391
|
+
2: {
|
|
392
|
+
w: "w-2",
|
|
393
|
+
h: "h-2"
|
|
394
|
+
},
|
|
395
|
+
2.5: {
|
|
396
|
+
w: "w-2.5",
|
|
397
|
+
h: "h-2.5"
|
|
398
|
+
},
|
|
399
|
+
3: {
|
|
400
|
+
w: "w-3",
|
|
401
|
+
h: "h-3"
|
|
402
|
+
},
|
|
403
|
+
3.5: {
|
|
404
|
+
w: "w-3.5",
|
|
405
|
+
h: "h-3.5"
|
|
406
|
+
},
|
|
407
|
+
4: {
|
|
408
|
+
w: "w-4",
|
|
409
|
+
h: "h-4"
|
|
410
|
+
},
|
|
411
|
+
5: {
|
|
412
|
+
w: "w-5",
|
|
413
|
+
h: "h-5"
|
|
414
|
+
},
|
|
415
|
+
6: {
|
|
416
|
+
w: "w-6",
|
|
417
|
+
h: "h-6"
|
|
418
|
+
},
|
|
419
|
+
7: {
|
|
420
|
+
w: "w-7",
|
|
421
|
+
h: "h-7"
|
|
422
|
+
},
|
|
423
|
+
8: {
|
|
424
|
+
w: "w-8",
|
|
425
|
+
h: "h-8"
|
|
426
|
+
},
|
|
427
|
+
9: {
|
|
428
|
+
w: "w-9",
|
|
429
|
+
h: "h-9"
|
|
430
|
+
},
|
|
431
|
+
10: {
|
|
432
|
+
w: "w-10",
|
|
433
|
+
h: "h-10"
|
|
434
|
+
},
|
|
435
|
+
11: {
|
|
436
|
+
w: "w-11",
|
|
437
|
+
h: "h-11"
|
|
438
|
+
},
|
|
439
|
+
12: {
|
|
440
|
+
w: "w-12",
|
|
441
|
+
h: "h-12"
|
|
442
|
+
},
|
|
443
|
+
14: {
|
|
444
|
+
w: "w-14",
|
|
445
|
+
h: "h-14"
|
|
446
|
+
},
|
|
447
|
+
16: {
|
|
448
|
+
w: "w-16",
|
|
449
|
+
h: "h-16"
|
|
450
|
+
},
|
|
451
|
+
20: {
|
|
452
|
+
w: "w-20",
|
|
453
|
+
h: "h-20"
|
|
454
|
+
},
|
|
455
|
+
24: {
|
|
456
|
+
w: "w-24",
|
|
457
|
+
h: "h-24"
|
|
458
|
+
},
|
|
459
|
+
28: {
|
|
460
|
+
w: "w-28",
|
|
461
|
+
h: "h-28"
|
|
462
|
+
},
|
|
463
|
+
32: {
|
|
464
|
+
w: "w-32",
|
|
465
|
+
h: "h-32"
|
|
466
|
+
},
|
|
467
|
+
36: {
|
|
468
|
+
w: "w-36",
|
|
469
|
+
h: "h-36"
|
|
470
|
+
},
|
|
471
|
+
40: {
|
|
472
|
+
w: "w-40",
|
|
473
|
+
h: "h-40"
|
|
474
|
+
},
|
|
475
|
+
44: {
|
|
476
|
+
w: "w-44",
|
|
477
|
+
h: "h-44"
|
|
478
|
+
},
|
|
479
|
+
48: {
|
|
480
|
+
w: "w-48",
|
|
481
|
+
h: "h-48"
|
|
482
|
+
},
|
|
483
|
+
52: {
|
|
484
|
+
w: "w-52",
|
|
485
|
+
h: "h-52"
|
|
486
|
+
},
|
|
487
|
+
56: {
|
|
488
|
+
w: "w-56",
|
|
489
|
+
h: "h-56"
|
|
490
|
+
},
|
|
491
|
+
60: {
|
|
492
|
+
w: "w-60",
|
|
493
|
+
h: "h-60"
|
|
494
|
+
},
|
|
495
|
+
64: {
|
|
496
|
+
w: "w-64",
|
|
497
|
+
h: "h-64"
|
|
498
|
+
},
|
|
499
|
+
72: {
|
|
500
|
+
w: "w-72",
|
|
501
|
+
h: "h-72"
|
|
502
|
+
},
|
|
503
|
+
80: {
|
|
504
|
+
w: "w-80",
|
|
505
|
+
h: "h-80"
|
|
506
|
+
},
|
|
507
|
+
96: {
|
|
508
|
+
w: "w-96",
|
|
509
|
+
h: "h-96"
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
var SIZE_VALUES = Object.keys(sizeMap).map((key) => key === "px" ? "px" : Number(key));
|
|
513
|
+
var getHeight = (size) => sizeMap[size]?.h;
|
|
514
|
+
var getWidth = (size) => sizeMap[size]?.w;
|
|
515
|
+
var getSize = (size) => mx(getHeight(size), getWidth(size));
|
|
516
|
+
var sizeValue = (size) => size === "px" ? 1 : size;
|
|
517
|
+
var sizeToRem = (size) => size === "px" ? "1px" : `${size * 0.25}rem`;
|
|
518
|
+
var iconSize = (size) => ({
|
|
519
|
+
"--icon-size": size ? sizeToRem(size) : "initial"
|
|
520
|
+
});
|
|
521
|
+
var snapSize = (value, defaultSize) => {
|
|
522
|
+
if (SIZE_VALUES.includes(value)) {
|
|
619
523
|
return value;
|
|
620
524
|
} else if (value <= 0) {
|
|
621
525
|
return 0;
|
|
622
|
-
} else if (value
|
|
526
|
+
} else if (value < 0.5) {
|
|
623
527
|
return "px";
|
|
624
528
|
} else {
|
|
625
529
|
const wholeSeries = Math.floor(value);
|
|
626
530
|
const halfSeries = Math.floor(value * 2) / 2;
|
|
627
531
|
const doubleSeries = Math.floor(value / 2) * 2;
|
|
628
532
|
const quadrupleSeries = Math.floor(value / 4) * 4;
|
|
629
|
-
if (
|
|
533
|
+
if (SIZE_VALUES.includes(halfSeries)) {
|
|
630
534
|
return halfSeries;
|
|
631
|
-
} else if (
|
|
535
|
+
} else if (SIZE_VALUES.includes(wholeSeries)) {
|
|
632
536
|
return wholeSeries;
|
|
633
|
-
} else if (
|
|
537
|
+
} else if (SIZE_VALUES.includes(doubleSeries)) {
|
|
634
538
|
return doubleSeries;
|
|
635
|
-
} else if (
|
|
539
|
+
} else if (SIZE_VALUES.includes(quadrupleSeries)) {
|
|
636
540
|
return quadrupleSeries;
|
|
637
541
|
} else {
|
|
638
542
|
return defaultSize;
|
|
639
543
|
}
|
|
640
544
|
}
|
|
641
545
|
};
|
|
642
|
-
var sizeValue = (size) => size === "px" ? 1 : size;
|
|
643
|
-
|
|
644
|
-
// src/fragments/text.ts
|
|
645
|
-
var textBlockWidth = "w-full max-w-text-content mx-auto";
|
|
646
|
-
var descriptionTextPrimary = "text-sm font-normal text-base-surface-text";
|
|
647
|
-
var descriptionMessage = "text-description border border-dashed border-separator rounded-sm p-4";
|
|
648
546
|
|
|
649
|
-
// src/
|
|
547
|
+
// src/util/valence.ts
|
|
650
548
|
var textValence = (valence) => {
|
|
651
549
|
switch (valence) {
|
|
652
550
|
case "success":
|
|
@@ -678,12 +576,12 @@ var messageValence = (valence) => {
|
|
|
678
576
|
var avatarRoot = ({ size = 10, inGroup }, ...etc) => mx("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mr-1" : "-mr-2"), ...etc);
|
|
679
577
|
var avatarLabel = ({ srOnly }, ...etc) => mx(srOnly && "sr-only", ...etc);
|
|
680
578
|
var avatarDescription = ({ srOnly }, ...etc) => mx("text-description", srOnly && "sr-only", ...etc);
|
|
681
|
-
var avatarFrame = ({ variant }, ...etc) => mx("
|
|
579
|
+
var avatarFrame = ({ variant }, ...etc) => mx("h-full w-full bg-(--surface-bg)", variant === "circle" ? "rounded-full" : "rounded-sm", ...etc);
|
|
682
580
|
var avatarStatusIcon = ({ status, size = 3 }, ...etc) => mx("absolute bottom-0 end-0", getSize(size), status === "inactive" ? "text-amber-400 dark:text-amber-300" : status === "active" ? "text-emerald-400 dark:text-emerald-300" : "text-neutral-400 dark:text-neutral-300", ...etc);
|
|
683
581
|
var avatarRing = ({ status, variant, animation }, ...etc) => mx("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded-sm", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
|
|
684
582
|
var avatarFallbackText = (_props, ...etc) => mx("fill-white", ...etc);
|
|
685
583
|
var avatarGroup = (_props, ...etc) => mx("inline-flex items-center", ...etc);
|
|
686
|
-
var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center", size &&
|
|
584
|
+
var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center", size && getHeight(size), ...etc);
|
|
687
585
|
var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : "text-description", ...etc);
|
|
688
586
|
var avatarTheme = {
|
|
689
587
|
root: avatarRoot,
|
|
@@ -713,12 +611,12 @@ var breadcrumbTheme = {
|
|
|
713
611
|
};
|
|
714
612
|
|
|
715
613
|
// src/theme/components/card.ts
|
|
716
|
-
var cardRoot = ({ border, fullWidth }, ...etc) => mx("dx-card
|
|
717
|
-
var cardToolbar = (
|
|
614
|
+
var cardRoot = ({ border, fullWidth }, ...etc) => mx("dx-card dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative overflow-hidden", border && "bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator", fullWidth && "max-w-none!", ...etc);
|
|
615
|
+
var cardToolbar = (_, ...etc) => mx("dx-card__toolbar dx-density-fine bg-transparent p-0! gap-0! col-span-3 grid! grid-cols-subgrid! [contain:none]", ...etc);
|
|
718
616
|
var cardTitle = (_props, ...etc) => mx("dx-card__title grow truncate", ...etc);
|
|
719
|
-
var cardContent = (_props, ...etc) => mx("dx-card__content contents
|
|
617
|
+
var cardContent = (_props, ...etc) => mx("dx-card__content contents pb-1 last:pb-0", ...etc);
|
|
720
618
|
var cardHeading = ({ variant = "default" }, ...etc) => mx("dx-card__heading", variant === "default" && "py-1", variant === "subtitle" && "py-2 text-xs text-description font-medium uppercase", ...etc);
|
|
721
|
-
var cardText = ({ variant = "default", truncate: _truncate }, ...etc) => mx("dx-card__text
|
|
619
|
+
var cardText = ({ variant = "default", truncate: _truncate }, ...etc) => mx("dx-card__text items-center overflow-hidden", variant === "default" && "py-1", variant === "description" && "py-1.5 text-description", ...etc);
|
|
722
620
|
var cardTextSpan = ({ variant = "default", truncate }, ...etc) => mx(variant === "description" && "text-sm text-description line-clamp-3", truncate && "truncate", ...etc);
|
|
723
621
|
var cardPoster = (_props, ...etc) => mx("dx-card__poster col-span-3 max-h-[200px]", ...etc);
|
|
724
622
|
var cardPosterIcon = (_props, ...etc) => mx("dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]", ...etc);
|
|
@@ -726,12 +624,14 @@ var cardAction = (_props, ...etc) => mx("dx-card__acztion col-span-3 !grid grid-
|
|
|
726
624
|
var cardActionLabel = (_props, ...etc) => mx("dx-card__action-label min-w-0 flex-1 truncate", ...etc);
|
|
727
625
|
var cardLink = (_props, ...etc) => mx("dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!", ...etc);
|
|
728
626
|
var cardLinkLabel = (_props, ...etc) => mx("dx-card__link-label min-w-0 flex-1 truncate", ...etc);
|
|
729
|
-
var
|
|
627
|
+
var cardRow = (_, ...etc) => mx("dx-card__row col-span-3 grid grid-cols-subgrid", ...etc);
|
|
628
|
+
var cardIconBlock = ({ padding }, ...etc) => mx("dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center", padding && "[&>*]:p-1", ...etc);
|
|
730
629
|
var cardTheme = {
|
|
731
630
|
root: cardRoot,
|
|
732
631
|
toolbar: cardToolbar,
|
|
733
632
|
title: cardTitle,
|
|
734
633
|
content: cardContent,
|
|
634
|
+
row: cardRow,
|
|
735
635
|
heading: cardHeading,
|
|
736
636
|
text: cardText,
|
|
737
637
|
"text-span": cardTextSpan,
|
|
@@ -745,12 +645,12 @@ var cardTheme = {
|
|
|
745
645
|
};
|
|
746
646
|
|
|
747
647
|
// src/theme/components/button.ts
|
|
748
|
-
var primaryButtonColors = "text-accent-
|
|
749
|
-
var staticDefaultButtonColors = "bg-input-surface text-input-
|
|
648
|
+
var primaryButtonColors = "text-accent-foreground bg-accent-surface hover:bg-accent-surface-hover aria-pressed:bg-primary-500 dark:aria-pressed:bg-primary-500 data-[state=open]:bg-primary-500 dark:data-[state=open]:bg-primary-500 aria-checked:bg-primary-500 dark:aria-checked:bg-primary-500 aria-checked:text-primary-100";
|
|
649
|
+
var staticDefaultButtonColors = "bg-input-surface text-input-foreground";
|
|
750
650
|
var defaultButtonColors = mx(staticDefaultButtonColors, "data-[state=open]:bg-input-surface aria-pressed:text-accent-text aria-pressed:bg-base-surface aria-checked:text-accent-text aria-checked:bg-base-surface");
|
|
751
651
|
var ghostButtonColors = mx(ghostHover, "hover:text-inherit data-[state=open]:bg-input-surface aria-pressed:text-accent-text aria-pressed:bg-base-surface aria-checked:text-accent-text aria-checked:bg-base-surface");
|
|
752
652
|
var buttonRoot = (_props, ...etc) => {
|
|
753
|
-
return mx("dx-button dx-focus-ring group
|
|
653
|
+
return mx("dx-button dx-focus-ring group [&_span]:truncate", ...etc);
|
|
754
654
|
};
|
|
755
655
|
var buttonGroup = (_props, ...etc) => {
|
|
756
656
|
return mx("inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
|
|
@@ -760,8 +660,37 @@ var buttonTheme = {
|
|
|
760
660
|
group: buttonGroup
|
|
761
661
|
};
|
|
762
662
|
|
|
663
|
+
// src/theme/primitives/column.ts
|
|
664
|
+
var withColumn = {
|
|
665
|
+
/** Centers element in the Column grid via --dx-col. No-op outside Column or inside ScrollArea. */
|
|
666
|
+
center: () => "[grid-column:var(--dx-col,auto)]",
|
|
667
|
+
/** Propagates the Column grid to children via subgrid. No-op outside Column.
|
|
668
|
+
* Direct children default to center column unless they are a dx-container (ScrollArea). */
|
|
669
|
+
propagate: () => "[.dx-column-root_&]:col-span-full [.dx-column-root_&]:grid [.dx-column-root_&]:grid-cols-subgrid [.dx-column-root_&]:[&>*:not(.dx-container)]:[grid-column:var(--dx-col,auto)]",
|
|
670
|
+
/** Resets --dx-col after consuming --gutter. Applied by ScrollArea.Viewport. */
|
|
671
|
+
consumed: () => "[--dx-col:auto]"
|
|
672
|
+
};
|
|
673
|
+
var columnRoot = (_, ...etc) => {
|
|
674
|
+
return mx("dx-column-root grid", ...etc);
|
|
675
|
+
};
|
|
676
|
+
var columnRow = (_, ...etc) => {
|
|
677
|
+
return mx("col-span-3 grid grid-cols-subgrid", ...etc);
|
|
678
|
+
};
|
|
679
|
+
var columnBleed = (_, ...etc) => {
|
|
680
|
+
return mx("col-span-full grid grid-cols-subgrid min-h-0", ...etc);
|
|
681
|
+
};
|
|
682
|
+
var columnCenter = (_, ...etc) => {
|
|
683
|
+
return mx(withColumn.center(), "min-h-0", ...etc);
|
|
684
|
+
};
|
|
685
|
+
var columnTheme = {
|
|
686
|
+
root: columnRoot,
|
|
687
|
+
row: columnRow,
|
|
688
|
+
bleed: columnBleed,
|
|
689
|
+
center: columnCenter
|
|
690
|
+
};
|
|
691
|
+
|
|
763
692
|
// src/theme/components/dialog.ts
|
|
764
|
-
var
|
|
693
|
+
var sizeMap2 = {
|
|
765
694
|
sm: "md:max-w-[24rem]",
|
|
766
695
|
md: "md:max-w-[32rem]!",
|
|
767
696
|
lg: "md:max-w-[40rem]!",
|
|
@@ -769,11 +698,11 @@ var sizeMap = {
|
|
|
769
698
|
};
|
|
770
699
|
var dialogOverlay = (_props, ...etc) => mx("dx-dialog__overlay", ...etc);
|
|
771
700
|
var dialogContent = ({ inOverlayLayout, size = "md" }, ...etc) => {
|
|
772
|
-
return mx("@container", "dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]",
|
|
701
|
+
return mx("@container", "dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]", sizeMap2[size], ...etc);
|
|
773
702
|
};
|
|
774
|
-
var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex pb-4 items-center justify-between", ...etc);
|
|
775
|
-
var dialogBody = (_props, ...etc) => mx("dx-dialog__body
|
|
776
|
-
var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse", ...etc);
|
|
703
|
+
var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex pb-4 items-center justify-between", withColumn.center(), ...etc);
|
|
704
|
+
var dialogBody = (_props, ...etc) => mx("dx-dialog__body dx-expander", withColumn.propagate(), ...etc);
|
|
705
|
+
var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse", withColumn.center(), ...etc);
|
|
777
706
|
var dialogTitle = ({ srOnly }, ...etc) => mx("dx-dialog__title", srOnly && "sr-only", ...etc);
|
|
778
707
|
var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", "text-description", srOnly && "sr-only", ...etc);
|
|
779
708
|
var dialogTheme = {
|
|
@@ -786,15 +715,24 @@ var dialogTheme = {
|
|
|
786
715
|
description: dialogDescription
|
|
787
716
|
};
|
|
788
717
|
|
|
718
|
+
// src/theme/components/focus.ts
|
|
719
|
+
var focusRing = ({ border }, ...etc) => mx("dx-ring-pseudo outline-hidden", "focus:after:ring-focus-ring-subtle", "data-[focus-state=active]:after:ring-focus-ring-subtle", "data-[focus-state=error]:after:ring-rose-500", border && "border border-separator", ...etc);
|
|
720
|
+
var focusTheme = {
|
|
721
|
+
group: focusRing,
|
|
722
|
+
item: focusRing
|
|
723
|
+
};
|
|
724
|
+
|
|
789
725
|
// src/theme/components/icon.ts
|
|
790
|
-
var iconRoot = ({ size }, etc) =>
|
|
726
|
+
var iconRoot = ({ size }, etc) => {
|
|
727
|
+
return mx("shrink-0 text-[var(--icons-color,currentColor)]", size ? getSize(size) : "[width:var(--icon-size,var(--dx-default-icons-size))] [height:var(--icon-size,var(--dx-default-icons-size))]", etc);
|
|
728
|
+
};
|
|
791
729
|
var iconTheme = {
|
|
792
730
|
root: iconRoot
|
|
793
731
|
};
|
|
794
732
|
|
|
795
733
|
// src/theme/components/icon-button.ts
|
|
796
|
-
var iconButtonRoot = ({ iconOnly }, ...etc) => {
|
|
797
|
-
return mx("
|
|
734
|
+
var iconButtonRoot = ({ iconOnly, square }, ...etc) => {
|
|
735
|
+
return mx("px-1.5", !iconOnly && "gap-1.5", square && "aspect-square", ...etc);
|
|
798
736
|
};
|
|
799
737
|
var iconButtonTheme = {
|
|
800
738
|
root: iconButtonRoot
|
|
@@ -819,49 +757,46 @@ var inputValence = (valence) => {
|
|
|
819
757
|
}
|
|
820
758
|
};
|
|
821
759
|
var sharedSubduedInputStyles = (props) => [
|
|
822
|
-
"py-0 w-full bg-transparent text-current placeholder-placeholder",
|
|
823
760
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
824
|
-
|
|
825
|
-
|
|
761
|
+
"py-0 w-full bg-transparent text-current placeholder-placeholder",
|
|
762
|
+
"dx-focus-subdued",
|
|
763
|
+
densityDimensions(props.density),
|
|
826
764
|
props.disabled && staticDisabled
|
|
827
765
|
];
|
|
828
766
|
var sharedDefaultInputStyles = (props) => [
|
|
829
|
-
"py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
|
|
830
767
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
768
|
+
"py-0 w-full text-base-foreground rounded-xs placeholder-placeholder",
|
|
831
769
|
textInputSurfaceFocus,
|
|
832
|
-
props.density
|
|
770
|
+
densityDimensions(props.density),
|
|
833
771
|
props.disabled ? staticDisabled : textInputSurfaceHover
|
|
834
772
|
];
|
|
835
773
|
var sharedStaticInputStyles = (props) => [
|
|
836
|
-
"py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
|
|
837
774
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
775
|
+
"py-0 w-full text-base-foreground rounded-xs placeholder-placeholder",
|
|
838
776
|
textInputSurfaceFocus,
|
|
839
777
|
textInputSurfaceHover,
|
|
840
778
|
props.focused && "bg-attention-surface",
|
|
841
779
|
inputValence(props.validationValence),
|
|
842
780
|
props.disabled && staticDisabled,
|
|
843
|
-
props.focused &&
|
|
781
|
+
props.focused && "dx-focus-static"
|
|
844
782
|
];
|
|
845
|
-
var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled &&
|
|
846
|
-
var inputTextArea = (props, ...etc) => inputInput(props, ...
|
|
847
|
-
"-mb-1.5",
|
|
848
|
-
...etc
|
|
849
|
-
]);
|
|
783
|
+
var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled && "dx-focus-ring", inputValence(props.validationValence), ...etc);
|
|
784
|
+
var inputTextArea = (props, ...etc) => inputInput(props, ...etc);
|
|
850
785
|
var inputCheckbox = ({ size = 5 }, ...etc) => mx("dx-checkbox dx-focus-ring", getSize(size), ...etc);
|
|
851
|
-
var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(
|
|
786
|
+
var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(snapSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
|
|
852
787
|
var inputSwitch = ({ size = 5, disabled }, ...etc) => mx(
|
|
853
|
-
|
|
854
|
-
|
|
788
|
+
getHeight(size),
|
|
789
|
+
getWidth(snapSize(sizeValue(size) * 1.75, 9)),
|
|
855
790
|
booleanInputSurface,
|
|
856
791
|
!disabled && booleanInputSurfaceHover,
|
|
857
792
|
// TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.
|
|
858
793
|
"cursor-pointer shrink-0 rounded-full px-1 mx-1 relative",
|
|
859
|
-
|
|
794
|
+
"dx-focus-ring",
|
|
860
795
|
...etc
|
|
861
796
|
);
|
|
862
797
|
var inputSwitchThumb = ({ size = 5 }, ...etc) => mx(getSize(size === "px" ? "px" : size - 2), "block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]", ...etc);
|
|
863
798
|
var inputWithSegmentsInput = (props, ...etc) => mx("font-mono selection:bg-transparent mx-auto", props.density === "fine" ? "text-base pointer-fine:text-sm" : "text-lg", props.disabled && "cursor-not-allowed", ...etc);
|
|
864
|
-
var inputSegment = (props, ...etc) => mx("flex items-center justify-center font-mono", props.density === "fine" ? "size-10 pointer-fine:size-8 rounded-xs" : "size-12 rounded-xs", "bg-input-surface text-base-
|
|
799
|
+
var inputSegment = (props, ...etc) => mx("flex items-center justify-center font-mono", props.density === "fine" ? "size-10 pointer-fine:size-8 rounded-xs" : "size-12 rounded-xs", "bg-input-surface text-base-foreground transition-colors border border-separator", "data-[focused]:bg-attention-surface data-[focused]:border-focus-ring-subtle", "data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-focus-ring-subtle", inputValence(props.validationValence), props.disabled && staticDisabled, ...etc);
|
|
865
800
|
var inputLabel = (props, ...etc) => mx("block", inputTextLabel, props.srOnly && "sr-only", ...etc);
|
|
866
801
|
var inputDescription = (props, ...etc) => mx("text-description", props.srOnly && "sr-only", ...etc);
|
|
867
802
|
var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none my-1.5", props.srOnly && "sr-only", ...etc);
|
|
@@ -882,7 +817,7 @@ var inputTheme = {
|
|
|
882
817
|
};
|
|
883
818
|
|
|
884
819
|
// src/theme/components/link.ts
|
|
885
|
-
var linkRoot = ({ variant }, ...etc) => mx("underline decoration-1 underline-offset-2 transition-color rounded-xs", variant === "neutral" ? "text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90" : "text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover",
|
|
820
|
+
var linkRoot = ({ variant }, ...etc) => mx("underline decoration-1 underline-offset-2 transition-color rounded-xs", variant === "neutral" ? "text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90" : "text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover", "dx-focus-ring", ...etc);
|
|
886
821
|
var linkTheme = {
|
|
887
822
|
root: linkRoot
|
|
888
823
|
};
|
|
@@ -891,9 +826,9 @@ var linkTheme = {
|
|
|
891
826
|
var listRoot = (_, ...etc) => mx(...etc);
|
|
892
827
|
var listItem = ({ collapsible }, ...etc) => mx(!collapsible && "flex", ...etc);
|
|
893
828
|
var listItemEndcap = ({ density }, ...etc) => mx(density === "fine" ? getSize(8) : getSize(10), "shrink-0 flex items-center justify-center", ...etc);
|
|
894
|
-
var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center", ...etc);
|
|
829
|
+
var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center overflow-hidden [&>span]:truncate", ...etc);
|
|
895
830
|
var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mt-2.5", ...etc);
|
|
896
|
-
var listItemOpenTrigger = ({ density }, ...etc) => mx("w-5 rounded-sm flex justify-center items-center", densityBlockSize(density), ghostHover,
|
|
831
|
+
var listItemOpenTrigger = ({ density }, ...etc) => mx("w-5 rounded-sm flex justify-center items-center", densityBlockSize(density), ghostHover, "dx-focus-ring", ...etc);
|
|
897
832
|
var listItemOpenTriggerIcon = (_props, ...etc) => {
|
|
898
833
|
return mx(getSize(5), ...etc);
|
|
899
834
|
};
|
|
@@ -932,7 +867,7 @@ var menuContent = ({ elevation }, ...etc) => mx("dx-modal-surface w-48 rounded-s
|
|
|
932
867
|
elevation: "positioned"
|
|
933
868
|
}), ...etc);
|
|
934
869
|
var menuViewport = (_props, ...etc) => mx("rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto", ...etc);
|
|
935
|
-
var menuItem = (_props, ...etc) => mx("flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm", "data-[highlighted]:bg-hover-surface",
|
|
870
|
+
var menuItem = (_props, ...etc) => mx("flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm", "hover:bg-hover-surface data-[highlighted]:bg-hover-surface", "dx-focus-subdued", dataDisabled, ...etc);
|
|
936
871
|
var menuSeparator = (_props, ...etc) => mx("my-1 mx-2 h-px bg-separator", ...etc);
|
|
937
872
|
var menuGroupLabel = (_props, ...etc) => mx("text-description", "select-none px-2 py-2", ...etc);
|
|
938
873
|
var menuArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
@@ -947,19 +882,19 @@ var menuTheme = {
|
|
|
947
882
|
|
|
948
883
|
// src/theme/components/message.ts
|
|
949
884
|
var messageRoot = ({ valence }, etc) => {
|
|
950
|
-
return mx("grid grid-cols-[
|
|
885
|
+
return mx("grid grid-cols-[2rem_1fr_2rem] p-1 rounded-sm", messageValence(valence), etc);
|
|
951
886
|
};
|
|
952
887
|
var messageHeader = (_, etc) => {
|
|
953
|
-
return mx("col-span-
|
|
888
|
+
return mx("col-span-full grid grid-cols-subgrid items-center", etc);
|
|
954
889
|
};
|
|
955
890
|
var messageTitle = (_, etc) => {
|
|
956
|
-
return mx("col-start-2
|
|
891
|
+
return mx("col-start-2 truncate", etc);
|
|
957
892
|
};
|
|
958
893
|
var messageIcon = (_, etc) => {
|
|
959
|
-
return mx("col-start-1", etc);
|
|
894
|
+
return mx("col-start-1 grid place-items-center", etc);
|
|
960
895
|
};
|
|
961
896
|
var messageContent = (_, etc) => {
|
|
962
|
-
return mx("grid grid-cols-subgrid
|
|
897
|
+
return mx("col-start-2 grid grid-cols-subgrid inline first:font-medium", etc);
|
|
963
898
|
};
|
|
964
899
|
var messageTheme = {
|
|
965
900
|
root: messageRoot,
|
|
@@ -975,15 +910,8 @@ var popoverContent = ({ elevation }, ...etc) => mx("dx-modal-surface border bord
|
|
|
975
910
|
}), surfaceZIndex({
|
|
976
911
|
elevation,
|
|
977
912
|
level: "menu"
|
|
978
|
-
}),
|
|
979
|
-
var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx(
|
|
980
|
-
"flex flex-col min-h-0 min-w-popover-min-width",
|
|
981
|
-
(constrainBlock || constrainInline) && "overflow-hidden",
|
|
982
|
-
// Ensures it respects available height from Radix (or 100dvh).
|
|
983
|
-
constrainBlock && "max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]",
|
|
984
|
-
constrainInline && "max-w-(--radix-popover-content-available-width)",
|
|
985
|
-
...etc
|
|
986
|
-
);
|
|
913
|
+
}), "dx-focus-ring", ...etc);
|
|
914
|
+
var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx("grid grid-rows-[1fr] min-h-0 min-w-popover-min-width", (constrainBlock || constrainInline) && "overflow-hidden", constrainBlock && "max-h-(--radix-popover-content-available-height)", constrainBlock && "max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]", constrainInline && "max-w-(--radix-popover-content-available-width)", ...etc);
|
|
987
915
|
var popoverArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
988
916
|
var popoverTheme = {
|
|
989
917
|
content: popoverContent,
|
|
@@ -992,40 +920,66 @@ var popoverTheme = {
|
|
|
992
920
|
};
|
|
993
921
|
|
|
994
922
|
// src/theme/components/scroll-area.ts
|
|
995
|
-
var
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
923
|
+
var scrollbar = {
|
|
924
|
+
thin: {
|
|
925
|
+
size: 4,
|
|
926
|
+
padding: 4
|
|
927
|
+
},
|
|
928
|
+
coarse: {
|
|
929
|
+
size: 8,
|
|
930
|
+
padding: 8
|
|
931
|
+
}
|
|
932
|
+
};
|
|
933
|
+
var scrollAreaRoot = ({ orientation }, ...etc) => mx(
|
|
934
|
+
// Expand
|
|
935
|
+
"dx-container",
|
|
936
|
+
orientation === "vertical" && "group/scroll-v flex flex-col",
|
|
937
|
+
orientation === "horizontal" && "group/scroll-h flex",
|
|
938
|
+
orientation === "all" && "group/scroll-all",
|
|
939
|
+
// Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).
|
|
940
|
+
"[.dx-column-root_&]:col-span-full",
|
|
1010
941
|
...etc
|
|
1011
942
|
);
|
|
1012
|
-
var scrollAreaViewport = ({ orientation,
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
]
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
],
|
|
943
|
+
var scrollAreaViewport = ({ orientation, centered, padding, snap, autoHide }, ...etc) => {
|
|
944
|
+
return mx(
|
|
945
|
+
"flex-1 min-h-0 w-full",
|
|
946
|
+
// Reset --dx-col so nested components don't try to grid-position themselves.
|
|
947
|
+
// ScrollArea has already consumed --gutter for padding.
|
|
948
|
+
withColumn.consumed(),
|
|
949
|
+
orientation === "vertical" && "overflow-y-scroll",
|
|
950
|
+
orientation === "horizontal" && "flex overflow-x-scroll overscroll-x-contain",
|
|
951
|
+
orientation === "all" && "overflow-scroll",
|
|
952
|
+
"[&::-webkit-scrollbar-corner]:bg-transparent",
|
|
953
|
+
"[&::-webkit-scrollbar-track]:bg-transparent",
|
|
954
|
+
"[&::-webkit-scrollbar-thumb]:rounded-none",
|
|
955
|
+
"[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]",
|
|
956
|
+
// If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).
|
|
957
|
+
// If centered, left padding compensates for scrollbar width so content is visually centered.
|
|
958
|
+
(orientation === "vertical" || orientation === "all") && (padding ? [
|
|
959
|
+
centered ? "pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]" : "pl-[var(--gutter,0)]",
|
|
960
|
+
"pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]"
|
|
961
|
+
] : centered && "pl-[var(--scroll-width)]"),
|
|
962
|
+
(orientation === "horizontal" || orientation === "all") && (padding ? [
|
|
963
|
+
centered && "pt-[calc(var(--scroll-width)+var(--scroll-padding))]",
|
|
964
|
+
"pb-[var(--scroll-padding)]"
|
|
965
|
+
] : centered && "pt-[var(--scroll-width)]"),
|
|
966
|
+
snap && [
|
|
967
|
+
orientation === "vertical" && "snap-y snap-mandatory",
|
|
968
|
+
orientation === "horizontal" && "snap-x snap-mandatory",
|
|
969
|
+
orientation === "all" && "snap-both snap-mandatory"
|
|
970
|
+
],
|
|
971
|
+
autoHide ? [
|
|
972
|
+
orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
|
|
973
|
+
orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
|
|
974
|
+
orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
|
|
975
|
+
] : [
|
|
976
|
+
orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
|
|
977
|
+
orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb",
|
|
978
|
+
orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"
|
|
979
|
+
],
|
|
980
|
+
...etc
|
|
981
|
+
);
|
|
982
|
+
};
|
|
1029
983
|
var scrollAreaTheme = {
|
|
1030
984
|
root: scrollAreaRoot,
|
|
1031
985
|
viewport: scrollAreaViewport
|
|
@@ -1041,7 +995,7 @@ var selectContent = ({ elevation }, ...etc) => {
|
|
|
1041
995
|
}), ...etc);
|
|
1042
996
|
};
|
|
1043
997
|
var selectViewport = (_props, ...etc) => mx(...etc);
|
|
1044
|
-
var selectItem = (_props, ...etc) => mx("flex items-center min-h-[2rem] px-3 py-1 gap-2", "text-base-
|
|
998
|
+
var selectItem = (_props, ...etc) => mx("flex items-center min-h-[2rem] px-3 py-1 gap-2", "text-base-foreground leading-none select-none outline-hidden", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", "dx-highlighted", ...etc);
|
|
1045
999
|
var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
|
|
1046
1000
|
var selectArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
1047
1001
|
var selectSeparator = (_props, ...etc) => mx("self-stretch border-b my-1 border-separator", ...etc);
|
|
@@ -1077,8 +1031,8 @@ var skeletonTheme = {
|
|
|
1077
1031
|
};
|
|
1078
1032
|
|
|
1079
1033
|
// src/theme/components/status.ts
|
|
1080
|
-
var statusRoot = ({ variant = "default" }, ...etc) => mx("h-1 relative
|
|
1081
|
-
var statusBar = ({
|
|
1034
|
+
var statusRoot = ({ variant = "default" }, ...etc) => mx("h-1 relative rounded-full overflow-hidden", variant === "main-bottom" ? "w-full block" : "inline-20 inline-block bg-base-surface", ...etc);
|
|
1035
|
+
var statusBar = ({ variant = "default", indeterminate }, ...etc) => mx("absolute inset-y-0 block rounded-full", variant === "main-bottom" ? "bg-composer-300" : "bg-un-accent", indeterminate ? "animate-progress-indeterminate" : "start-0", ...etc);
|
|
1082
1036
|
var statusTheme = {
|
|
1083
1037
|
root: statusRoot,
|
|
1084
1038
|
bar: statusBar
|
|
@@ -1099,7 +1053,7 @@ var toastViewport = (_props, ...etc) => mx(
|
|
|
1099
1053
|
);
|
|
1100
1054
|
var toastRoot = (_props, ...etc) => mx("dx-modal-surface rounded-md flex p-2 gap-2", surfaceShadow({
|
|
1101
1055
|
elevation: "toast"
|
|
1102
|
-
}), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]",
|
|
1056
|
+
}), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]", "dx-focus-ring", ...etc);
|
|
1103
1057
|
var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pl-2", ...etc);
|
|
1104
1058
|
var toastActions = (_props, ...etc) => mx("shrink-0 flex flex-col gap-1 justify-center", ...etc);
|
|
1105
1059
|
var toastTitle = ({ srOnly }, ...etc) => mx("shrink-0 font-medium", srOnly && "sr-only", ...etc);
|
|
@@ -1118,23 +1072,16 @@ var toolbarLayout = "w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center ove
|
|
|
1118
1072
|
var toolbarRoot = ({ density, disabled, layoutManaged }, ...etc) => {
|
|
1119
1073
|
return mx("bg-toolbar-surface dx-toolbar", density === "coarse" && "h-(--dx-rail-size) px-3!", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
|
|
1120
1074
|
};
|
|
1121
|
-
var toolbarInner = ({ layoutManaged }, ...etc) => {
|
|
1122
|
-
return mx(!layoutManaged && [
|
|
1123
|
-
"flex gap-1",
|
|
1124
|
-
textBlockWidth
|
|
1125
|
-
], ...etc);
|
|
1126
|
-
};
|
|
1127
1075
|
var toolbarText = (_, ...etc) => {
|
|
1128
|
-
return mx("grow truncate items-center",
|
|
1076
|
+
return mx("px-2 grow truncate items-center", ...etc);
|
|
1129
1077
|
};
|
|
1130
1078
|
var toolbarTheme = {
|
|
1131
1079
|
root: toolbarRoot,
|
|
1132
|
-
inner: toolbarInner,
|
|
1133
1080
|
text: toolbarText
|
|
1134
1081
|
};
|
|
1135
1082
|
|
|
1136
1083
|
// src/theme/components/tooltip.ts
|
|
1137
|
-
var tooltipContent = ({ elevation }, ...etc) => mx("inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-
|
|
1084
|
+
var tooltipContent = ({ elevation }, ...etc) => mx("inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-foreground rounded-sm", surfaceShadow({
|
|
1138
1085
|
elevation: "positioned"
|
|
1139
1086
|
}), surfaceZIndex({
|
|
1140
1087
|
elevation,
|
|
@@ -1182,7 +1129,7 @@ var levelStyles = /* @__PURE__ */ new Map([
|
|
|
1182
1129
|
]
|
|
1183
1130
|
]);
|
|
1184
1131
|
var treegridRoot = (_, ...etc) => mx("grid", ...etc);
|
|
1185
|
-
var treegridRow = ({ level = 1 }, ...etc) => mx(
|
|
1132
|
+
var treegridRow = ({ level = 1 }, ...etc) => mx(levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);
|
|
1186
1133
|
var treegridCell = ({ indent }, ...etc) => mx(indent && "indent", ...etc);
|
|
1187
1134
|
var treegridTheme = {
|
|
1188
1135
|
root: treegridRoot,
|
|
@@ -1190,43 +1137,22 @@ var treegridTheme = {
|
|
|
1190
1137
|
cell: treegridCell
|
|
1191
1138
|
};
|
|
1192
1139
|
|
|
1193
|
-
// src/theme/theme.ts
|
|
1194
|
-
import { getDeep } from "@dxos/util";
|
|
1195
|
-
|
|
1196
|
-
// src/theme/primitives/column.ts
|
|
1197
|
-
var columnRoot = (_, ...etc) => mx("dx-column w-full min-w-0 grid", ...etc);
|
|
1198
|
-
var columnRow = (_, ...etc) => mx("col-span-3 grid grid-cols-subgrid", ...etc);
|
|
1199
|
-
var columnSegment = (_, ...etc) => mx("col-start-2 col-span-1 min-w-0", ...etc);
|
|
1200
|
-
var columnTheme = {
|
|
1201
|
-
root: columnRoot,
|
|
1202
|
-
row: columnRow,
|
|
1203
|
-
segment: columnSegment
|
|
1204
|
-
};
|
|
1205
|
-
|
|
1206
1140
|
// src/theme/primitives/panel.ts
|
|
1141
|
+
var sizes = {
|
|
1142
|
+
lg: "h-(--dx-topbar-size)",
|
|
1143
|
+
md: "h-(--dx-toolbar-size)",
|
|
1144
|
+
sm: "h-(--dx-statusbar-size)"
|
|
1145
|
+
};
|
|
1207
1146
|
var panelRoot = (_, ...etc) => mx(
|
|
1208
1147
|
// prettier-ignore
|
|
1209
|
-
"
|
|
1148
|
+
"dx-container grid grid-cols-[100%] overflow-hidden",
|
|
1149
|
+
// Add uncategorized children to content slot.
|
|
1210
1150
|
"[&>*:not([data-slot])]:[grid-area:content]",
|
|
1211
1151
|
...etc
|
|
1212
1152
|
);
|
|
1213
|
-
var panelToolbar = (
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
"border-b border-subdued-separator relative",
|
|
1217
|
-
"[.dx-main-mobile-layout_&]:px-3",
|
|
1218
|
-
...etc
|
|
1219
|
-
);
|
|
1220
|
-
var panelContent = (_, ...etc) => mx(
|
|
1221
|
-
// prettier-ignore
|
|
1222
|
-
"[grid-area:content] overflow-hidden min-h-0",
|
|
1223
|
-
...etc
|
|
1224
|
-
);
|
|
1225
|
-
var panelStatusbar = (_, ...etc) => mx(
|
|
1226
|
-
// prettier-ignore
|
|
1227
|
-
"[grid-area:statusbar]",
|
|
1228
|
-
...etc
|
|
1229
|
-
);
|
|
1153
|
+
var panelToolbar = ({ size = "md" }, ...etc) => mx("[grid-area:toolbar]", "shrink-0", sizes[size], ...etc);
|
|
1154
|
+
var panelContent = (_, ...etc) => mx("[grid-area:content] min-h-0", ...etc);
|
|
1155
|
+
var panelStatusbar = ({ size = "md" }, ...etc) => mx("[grid-area:statusbar]", "shrink-0", sizes[size], ...etc);
|
|
1230
1156
|
var panelTheme = {
|
|
1231
1157
|
root: panelRoot,
|
|
1232
1158
|
toolbar: panelToolbar,
|
|
@@ -1235,6 +1161,7 @@ var panelTheme = {
|
|
|
1235
1161
|
};
|
|
1236
1162
|
|
|
1237
1163
|
// src/theme/theme.ts
|
|
1164
|
+
import { getDeep } from "@dxos/util";
|
|
1238
1165
|
var defaultTheme = {
|
|
1239
1166
|
themeName: () => "default",
|
|
1240
1167
|
//
|
|
@@ -1250,6 +1177,7 @@ var defaultTheme = {
|
|
|
1250
1177
|
button: buttonTheme,
|
|
1251
1178
|
card: cardTheme,
|
|
1252
1179
|
dialog: dialogTheme,
|
|
1180
|
+
focus: focusTheme,
|
|
1253
1181
|
icon: iconTheme,
|
|
1254
1182
|
iconButton: iconButtonTheme,
|
|
1255
1183
|
input: inputTheme,
|
|
@@ -1305,16 +1233,16 @@ export {
|
|
|
1305
1233
|
cardMinBlockSize,
|
|
1306
1234
|
cardMinInlineSize,
|
|
1307
1235
|
cardTheme,
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1236
|
+
columnTheme,
|
|
1237
|
+
composable,
|
|
1238
|
+
composableProps,
|
|
1311
1239
|
dataDisabled,
|
|
1312
1240
|
defaultButtonColors,
|
|
1313
1241
|
defaultTheme,
|
|
1314
1242
|
defaultTx,
|
|
1315
1243
|
densityBlockSize,
|
|
1244
|
+
densityDimensions,
|
|
1316
1245
|
descriptionMessage,
|
|
1317
|
-
descriptionTextPrimary,
|
|
1318
1246
|
dialogActionBar,
|
|
1319
1247
|
dialogBody,
|
|
1320
1248
|
dialogContent,
|
|
@@ -1323,21 +1251,16 @@ export {
|
|
|
1323
1251
|
dialogOverlay,
|
|
1324
1252
|
dialogTheme,
|
|
1325
1253
|
dialogTitle,
|
|
1326
|
-
|
|
1327
|
-
fineDimensions,
|
|
1328
|
-
focusRing,
|
|
1254
|
+
focusTheme,
|
|
1329
1255
|
getHashHue,
|
|
1330
1256
|
getHashStyles,
|
|
1257
|
+
getHeight,
|
|
1331
1258
|
getSize,
|
|
1332
|
-
getSizeHeight,
|
|
1333
|
-
getSizeWidth,
|
|
1334
1259
|
getStyles,
|
|
1260
|
+
getWidth,
|
|
1335
1261
|
ghostButtonColors,
|
|
1336
1262
|
ghostFocusWithin,
|
|
1337
|
-
ghostHighlighted,
|
|
1338
1263
|
ghostHover,
|
|
1339
|
-
ghostSelected,
|
|
1340
|
-
ghostSelectedContainerMd,
|
|
1341
1264
|
groupHoverControlItemWithTransition,
|
|
1342
1265
|
hoverableControlItem,
|
|
1343
1266
|
hoverableControls,
|
|
@@ -1349,6 +1272,7 @@ export {
|
|
|
1349
1272
|
iconButtonRoot,
|
|
1350
1273
|
iconButtonTheme,
|
|
1351
1274
|
iconRoot,
|
|
1275
|
+
iconSize,
|
|
1352
1276
|
iconTheme,
|
|
1353
1277
|
inputTextLabel,
|
|
1354
1278
|
inputTheme,
|
|
@@ -1386,6 +1310,7 @@ export {
|
|
|
1386
1310
|
mx,
|
|
1387
1311
|
osTranslations,
|
|
1388
1312
|
palette,
|
|
1313
|
+
panelTheme,
|
|
1389
1314
|
popoverArrow,
|
|
1390
1315
|
popoverContent,
|
|
1391
1316
|
popoverTheme,
|
|
@@ -1395,6 +1320,7 @@ export {
|
|
|
1395
1320
|
scrollAreaRoot,
|
|
1396
1321
|
scrollAreaTheme,
|
|
1397
1322
|
scrollAreaViewport,
|
|
1323
|
+
scrollbar,
|
|
1398
1324
|
selectArrow,
|
|
1399
1325
|
selectContent,
|
|
1400
1326
|
selectItem,
|
|
@@ -1405,23 +1331,22 @@ export {
|
|
|
1405
1331
|
selectViewport,
|
|
1406
1332
|
separatorRoot,
|
|
1407
1333
|
separatorTheme,
|
|
1334
|
+
sizeToRem,
|
|
1408
1335
|
sizeValue,
|
|
1409
1336
|
skeletonRoot,
|
|
1410
1337
|
skeletonTheme,
|
|
1338
|
+
slottable,
|
|
1339
|
+
snapSize,
|
|
1411
1340
|
splitterTheme,
|
|
1412
1341
|
staticDefaultButtonColors,
|
|
1413
1342
|
staticDisabled,
|
|
1414
|
-
staticFocusRing,
|
|
1415
1343
|
statusBar,
|
|
1416
1344
|
statusRoot,
|
|
1417
1345
|
statusTheme,
|
|
1418
|
-
subduedFocus,
|
|
1419
|
-
subtleHover,
|
|
1420
1346
|
surfaceShadow,
|
|
1421
1347
|
surfaceZIndex,
|
|
1422
1348
|
tagRoot,
|
|
1423
1349
|
tagTheme,
|
|
1424
|
-
textBlockWidth,
|
|
1425
1350
|
textValence,
|
|
1426
1351
|
toastActions,
|
|
1427
1352
|
toastBody,
|
|
@@ -1430,7 +1355,6 @@ export {
|
|
|
1430
1355
|
toastTheme,
|
|
1431
1356
|
toastTitle,
|
|
1432
1357
|
toastViewport,
|
|
1433
|
-
toolbarInner,
|
|
1434
1358
|
toolbarLayout,
|
|
1435
1359
|
toolbarRoot,
|
|
1436
1360
|
toolbarText,
|
|
@@ -1443,6 +1367,6 @@ export {
|
|
|
1443
1367
|
treegridRoot,
|
|
1444
1368
|
treegridRow,
|
|
1445
1369
|
treegridTheme,
|
|
1446
|
-
|
|
1370
|
+
withColumn
|
|
1447
1371
|
};
|
|
1448
1372
|
//# sourceMappingURL=index.mjs.map
|