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