@dxos/ui-theme 0.8.4-main.6fa680abb7 → 0.8.4-main.765dc60934
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 +418 -496
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +418 -496
- 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 +1 -1
- 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 +49 -284
- 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 +14 -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/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 -29
- package/src/css/theme/animation.css +31 -0
- package/src/css/theme/palette.css +8 -0
- package/src/css/theme/semantic.css +47 -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 +1 -1
- 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 +18 -25
- 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 +112 -7
- 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
|
@@ -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,334 +314,235 @@ var mx = extendTailwindMerge({
|
|
|
318
314
|
}
|
|
319
315
|
}
|
|
320
316
|
});
|
|
321
|
-
var composableProps = ({ className, classNames, ...props }, {
|
|
317
|
+
var composableProps = ({ className, classNames, role, style, ...props }, { classNames: defaultClassNames, ...defaults } = {}) => ({
|
|
318
|
+
// Default props.
|
|
322
319
|
...defaults,
|
|
320
|
+
// Spread supplied props.
|
|
323
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.
|
|
324
330
|
className: mx(defaultClassNames, className, classNames)
|
|
325
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
|
+
}
|
|
326
366
|
|
|
327
|
-
// src/
|
|
328
|
-
var
|
|
329
|
-
|
|
330
|
-
0,
|
|
331
|
-
"
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
"px",
|
|
335
|
-
"
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
0.5,
|
|
339
|
-
"
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
1,
|
|
343
|
-
"
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
1.5,
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
2,
|
|
351
|
-
"
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
2.5,
|
|
355
|
-
"
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
3,
|
|
359
|
-
"
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
3.5,
|
|
363
|
-
"
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
4,
|
|
367
|
-
"
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
5,
|
|
371
|
-
"
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
6,
|
|
375
|
-
"
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
7,
|
|
379
|
-
"
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
8,
|
|
383
|
-
"
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
9,
|
|
387
|
-
"
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
10,
|
|
391
|
-
"
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
11,
|
|
395
|
-
"
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
12,
|
|
399
|
-
"
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
14,
|
|
403
|
-
"
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
16,
|
|
407
|
-
"
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
20,
|
|
411
|
-
"
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
24,
|
|
415
|
-
"
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
28,
|
|
419
|
-
"
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
32,
|
|
423
|
-
"
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
36,
|
|
427
|
-
"
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
40,
|
|
431
|
-
"
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
44,
|
|
435
|
-
"
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
48,
|
|
439
|
-
"
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
52,
|
|
443
|
-
"
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
56,
|
|
447
|
-
"
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
60,
|
|
451
|
-
"
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
64,
|
|
455
|
-
"
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
72,
|
|
459
|
-
"
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
80,
|
|
463
|
-
"
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
96,
|
|
467
|
-
"
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
var
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
"h-0.5"
|
|
482
|
-
],
|
|
483
|
-
[
|
|
484
|
-
1,
|
|
485
|
-
"h-1"
|
|
486
|
-
],
|
|
487
|
-
[
|
|
488
|
-
1.5,
|
|
489
|
-
"h-1.5"
|
|
490
|
-
],
|
|
491
|
-
[
|
|
492
|
-
2,
|
|
493
|
-
"h-2"
|
|
494
|
-
],
|
|
495
|
-
[
|
|
496
|
-
2.5,
|
|
497
|
-
"h-2.5"
|
|
498
|
-
],
|
|
499
|
-
[
|
|
500
|
-
3,
|
|
501
|
-
"h-3"
|
|
502
|
-
],
|
|
503
|
-
[
|
|
504
|
-
3.5,
|
|
505
|
-
"h-3.5"
|
|
506
|
-
],
|
|
507
|
-
[
|
|
508
|
-
4,
|
|
509
|
-
"h-4"
|
|
510
|
-
],
|
|
511
|
-
[
|
|
512
|
-
5,
|
|
513
|
-
"h-5"
|
|
514
|
-
],
|
|
515
|
-
[
|
|
516
|
-
6,
|
|
517
|
-
"h-6"
|
|
518
|
-
],
|
|
519
|
-
[
|
|
520
|
-
7,
|
|
521
|
-
"h-7"
|
|
522
|
-
],
|
|
523
|
-
[
|
|
524
|
-
8,
|
|
525
|
-
"h-8"
|
|
526
|
-
],
|
|
527
|
-
[
|
|
528
|
-
9,
|
|
529
|
-
"h-9"
|
|
530
|
-
],
|
|
531
|
-
[
|
|
532
|
-
10,
|
|
533
|
-
"h-10"
|
|
534
|
-
],
|
|
535
|
-
[
|
|
536
|
-
11,
|
|
537
|
-
"h-11"
|
|
538
|
-
],
|
|
539
|
-
[
|
|
540
|
-
12,
|
|
541
|
-
"h-12"
|
|
542
|
-
],
|
|
543
|
-
[
|
|
544
|
-
14,
|
|
545
|
-
"h-14"
|
|
546
|
-
],
|
|
547
|
-
[
|
|
548
|
-
16,
|
|
549
|
-
"h-16"
|
|
550
|
-
],
|
|
551
|
-
[
|
|
552
|
-
20,
|
|
553
|
-
"h-20"
|
|
554
|
-
],
|
|
555
|
-
[
|
|
556
|
-
24,
|
|
557
|
-
"h-24"
|
|
558
|
-
],
|
|
559
|
-
[
|
|
560
|
-
28,
|
|
561
|
-
"h-28"
|
|
562
|
-
],
|
|
563
|
-
[
|
|
564
|
-
32,
|
|
565
|
-
"h-32"
|
|
566
|
-
],
|
|
567
|
-
[
|
|
568
|
-
36,
|
|
569
|
-
"h-36"
|
|
570
|
-
],
|
|
571
|
-
[
|
|
572
|
-
40,
|
|
573
|
-
"h-40"
|
|
574
|
-
],
|
|
575
|
-
[
|
|
576
|
-
44,
|
|
577
|
-
"h-44"
|
|
578
|
-
],
|
|
579
|
-
[
|
|
580
|
-
48,
|
|
581
|
-
"h-48"
|
|
582
|
-
],
|
|
583
|
-
[
|
|
584
|
-
52,
|
|
585
|
-
"h-52"
|
|
586
|
-
],
|
|
587
|
-
[
|
|
588
|
-
56,
|
|
589
|
-
"h-56"
|
|
590
|
-
],
|
|
591
|
-
[
|
|
592
|
-
60,
|
|
593
|
-
"h-60"
|
|
594
|
-
],
|
|
595
|
-
[
|
|
596
|
-
64,
|
|
597
|
-
"h-64"
|
|
598
|
-
],
|
|
599
|
-
[
|
|
600
|
-
72,
|
|
601
|
-
"h-72"
|
|
602
|
-
],
|
|
603
|
-
[
|
|
604
|
-
80,
|
|
605
|
-
"h-80"
|
|
606
|
-
],
|
|
607
|
-
[
|
|
608
|
-
96,
|
|
609
|
-
"h-96"
|
|
610
|
-
]
|
|
611
|
-
]);
|
|
612
|
-
var sizes = new Set(sizeWidthMap.keys());
|
|
613
|
-
var getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);
|
|
614
|
-
var getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);
|
|
615
|
-
var getSize = (size) => mx(getSizeHeight(size), getSizeWidth(size));
|
|
616
|
-
var computeSize = (value, defaultSize) => {
|
|
617
|
-
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)) {
|
|
618
521
|
return value;
|
|
619
522
|
} else if (value <= 0) {
|
|
620
523
|
return 0;
|
|
621
|
-
} else if (value
|
|
524
|
+
} else if (value < 0.5) {
|
|
622
525
|
return "px";
|
|
623
526
|
} else {
|
|
624
527
|
const wholeSeries = Math.floor(value);
|
|
625
528
|
const halfSeries = Math.floor(value * 2) / 2;
|
|
626
529
|
const doubleSeries = Math.floor(value / 2) * 2;
|
|
627
530
|
const quadrupleSeries = Math.floor(value / 4) * 4;
|
|
628
|
-
if (
|
|
531
|
+
if (SIZE_VALUES.includes(halfSeries)) {
|
|
629
532
|
return halfSeries;
|
|
630
|
-
} else if (
|
|
533
|
+
} else if (SIZE_VALUES.includes(wholeSeries)) {
|
|
631
534
|
return wholeSeries;
|
|
632
|
-
} else if (
|
|
535
|
+
} else if (SIZE_VALUES.includes(doubleSeries)) {
|
|
633
536
|
return doubleSeries;
|
|
634
|
-
} else if (
|
|
537
|
+
} else if (SIZE_VALUES.includes(quadrupleSeries)) {
|
|
635
538
|
return quadrupleSeries;
|
|
636
539
|
} else {
|
|
637
540
|
return defaultSize;
|
|
638
541
|
}
|
|
639
542
|
}
|
|
640
543
|
};
|
|
641
|
-
var sizeValue = (size) => size === "px" ? 1 : size;
|
|
642
|
-
|
|
643
|
-
// src/fragments/text.ts
|
|
644
|
-
var textBlockWidth = "w-full max-w-text-content mx-auto";
|
|
645
|
-
var descriptionTextPrimary = "text-sm font-normal text-base-surface-text";
|
|
646
|
-
var descriptionMessage = "text-description border border-dashed border-separator rounded-sm p-4";
|
|
647
544
|
|
|
648
|
-
// src/
|
|
545
|
+
// src/util/valence.ts
|
|
649
546
|
var textValence = (valence) => {
|
|
650
547
|
switch (valence) {
|
|
651
548
|
case "success":
|
|
@@ -677,12 +574,12 @@ var messageValence = (valence) => {
|
|
|
677
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);
|
|
678
575
|
var avatarLabel = ({ srOnly }, ...etc) => mx(srOnly && "sr-only", ...etc);
|
|
679
576
|
var avatarDescription = ({ srOnly }, ...etc) => mx("text-description", srOnly && "sr-only", ...etc);
|
|
680
|
-
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);
|
|
681
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);
|
|
682
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);
|
|
683
580
|
var avatarFallbackText = (_props, ...etc) => mx("fill-white", ...etc);
|
|
684
581
|
var avatarGroup = (_props, ...etc) => mx("inline-flex items-center", ...etc);
|
|
685
|
-
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);
|
|
686
583
|
var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : "text-description", ...etc);
|
|
687
584
|
var avatarTheme = {
|
|
688
585
|
root: avatarRoot,
|
|
@@ -712,12 +609,12 @@ var breadcrumbTheme = {
|
|
|
712
609
|
};
|
|
713
610
|
|
|
714
611
|
// src/theme/components/card.ts
|
|
715
|
-
var cardRoot = ({ border, fullWidth }, ...etc) => mx("dx-card
|
|
716
|
-
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);
|
|
717
614
|
var cardTitle = (_props, ...etc) => mx("dx-card__title grow truncate", ...etc);
|
|
718
|
-
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);
|
|
719
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);
|
|
720
|
-
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);
|
|
721
618
|
var cardTextSpan = ({ variant = "default", truncate }, ...etc) => mx(variant === "description" && "text-sm text-description line-clamp-3", truncate && "truncate", ...etc);
|
|
722
619
|
var cardPoster = (_props, ...etc) => mx("dx-card__poster col-span-3 max-h-[200px]", ...etc);
|
|
723
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);
|
|
@@ -725,12 +622,14 @@ var cardAction = (_props, ...etc) => mx("dx-card__acztion col-span-3 !grid grid-
|
|
|
725
622
|
var cardActionLabel = (_props, ...etc) => mx("dx-card__action-label min-w-0 flex-1 truncate", ...etc);
|
|
726
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);
|
|
727
624
|
var cardLinkLabel = (_props, ...etc) => mx("dx-card__link-label min-w-0 flex-1 truncate", ...etc);
|
|
728
|
-
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);
|
|
729
627
|
var cardTheme = {
|
|
730
628
|
root: cardRoot,
|
|
731
629
|
toolbar: cardToolbar,
|
|
732
630
|
title: cardTitle,
|
|
733
631
|
content: cardContent,
|
|
632
|
+
row: cardRow,
|
|
734
633
|
heading: cardHeading,
|
|
735
634
|
text: cardText,
|
|
736
635
|
"text-span": cardTextSpan,
|
|
@@ -744,12 +643,12 @@ var cardTheme = {
|
|
|
744
643
|
};
|
|
745
644
|
|
|
746
645
|
// src/theme/components/button.ts
|
|
747
|
-
var primaryButtonColors = "text-accent-
|
|
748
|
-
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";
|
|
749
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");
|
|
750
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");
|
|
751
650
|
var buttonRoot = (_props, ...etc) => {
|
|
752
|
-
return mx("dx-button dx-focus-ring group
|
|
651
|
+
return mx("dx-button dx-focus-ring group [&_span]:truncate", ...etc);
|
|
753
652
|
};
|
|
754
653
|
var buttonGroup = (_props, ...etc) => {
|
|
755
654
|
return mx("inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
|
|
@@ -759,8 +658,37 @@ var buttonTheme = {
|
|
|
759
658
|
group: buttonGroup
|
|
760
659
|
};
|
|
761
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
|
+
|
|
762
690
|
// src/theme/components/dialog.ts
|
|
763
|
-
var
|
|
691
|
+
var sizeMap2 = {
|
|
764
692
|
sm: "md:max-w-[24rem]",
|
|
765
693
|
md: "md:max-w-[32rem]!",
|
|
766
694
|
lg: "md:max-w-[40rem]!",
|
|
@@ -768,11 +696,11 @@ var sizeMap = {
|
|
|
768
696
|
};
|
|
769
697
|
var dialogOverlay = (_props, ...etc) => mx("dx-dialog__overlay", ...etc);
|
|
770
698
|
var dialogContent = ({ inOverlayLayout, size = "md" }, ...etc) => {
|
|
771
|
-
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);
|
|
772
700
|
};
|
|
773
|
-
var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex pb-4 items-center justify-between", ...etc);
|
|
774
|
-
var dialogBody = (_props, ...etc) => mx("dx-dialog__body
|
|
775
|
-
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);
|
|
776
704
|
var dialogTitle = ({ srOnly }, ...etc) => mx("dx-dialog__title", srOnly && "sr-only", ...etc);
|
|
777
705
|
var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", "text-description", srOnly && "sr-only", ...etc);
|
|
778
706
|
var dialogTheme = {
|
|
@@ -785,15 +713,24 @@ var dialogTheme = {
|
|
|
785
713
|
description: dialogDescription
|
|
786
714
|
};
|
|
787
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
|
+
|
|
788
723
|
// src/theme/components/icon.ts
|
|
789
|
-
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
|
+
};
|
|
790
727
|
var iconTheme = {
|
|
791
728
|
root: iconRoot
|
|
792
729
|
};
|
|
793
730
|
|
|
794
731
|
// src/theme/components/icon-button.ts
|
|
795
|
-
var iconButtonRoot = ({ iconOnly }, ...etc) => {
|
|
796
|
-
return mx("
|
|
732
|
+
var iconButtonRoot = ({ iconOnly, square }, ...etc) => {
|
|
733
|
+
return mx("px-1.5", !iconOnly && "gap-1.5", square && "aspect-square", ...etc);
|
|
797
734
|
};
|
|
798
735
|
var iconButtonTheme = {
|
|
799
736
|
root: iconButtonRoot
|
|
@@ -818,49 +755,46 @@ var inputValence = (valence) => {
|
|
|
818
755
|
}
|
|
819
756
|
};
|
|
820
757
|
var sharedSubduedInputStyles = (props) => [
|
|
821
|
-
"py-0 w-full bg-transparent text-current placeholder-placeholder",
|
|
822
758
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
823
|
-
|
|
824
|
-
|
|
759
|
+
"py-0 w-full bg-transparent text-current placeholder-placeholder",
|
|
760
|
+
"dx-focus-subdued",
|
|
761
|
+
densityDimensions(props.density),
|
|
825
762
|
props.disabled && staticDisabled
|
|
826
763
|
];
|
|
827
764
|
var sharedDefaultInputStyles = (props) => [
|
|
828
|
-
"py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
|
|
829
765
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
766
|
+
"py-0 w-full text-base-foreground rounded-xs placeholder-placeholder",
|
|
830
767
|
textInputSurfaceFocus,
|
|
831
|
-
props.density
|
|
768
|
+
densityDimensions(props.density),
|
|
832
769
|
props.disabled ? staticDisabled : textInputSurfaceHover
|
|
833
770
|
];
|
|
834
771
|
var sharedStaticInputStyles = (props) => [
|
|
835
|
-
"py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder",
|
|
836
772
|
'[[data-drag-autoscroll="active"]_&]:pointer-events-none',
|
|
773
|
+
"py-0 w-full text-base-foreground rounded-xs placeholder-placeholder",
|
|
837
774
|
textInputSurfaceFocus,
|
|
838
775
|
textInputSurfaceHover,
|
|
839
776
|
props.focused && "bg-attention-surface",
|
|
840
777
|
inputValence(props.validationValence),
|
|
841
778
|
props.disabled && staticDisabled,
|
|
842
|
-
props.focused &&
|
|
779
|
+
props.focused && "dx-focus-static"
|
|
843
780
|
];
|
|
844
|
-
var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled &&
|
|
845
|
-
var inputTextArea = (props, ...etc) => inputInput(props, ...
|
|
846
|
-
"-mb-1.5",
|
|
847
|
-
...etc
|
|
848
|
-
]);
|
|
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);
|
|
849
783
|
var inputCheckbox = ({ size = 5 }, ...etc) => mx("dx-checkbox dx-focus-ring", getSize(size), ...etc);
|
|
850
|
-
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);
|
|
851
785
|
var inputSwitch = ({ size = 5, disabled }, ...etc) => mx(
|
|
852
|
-
|
|
853
|
-
|
|
786
|
+
getHeight(size),
|
|
787
|
+
getWidth(snapSize(sizeValue(size) * 1.75, 9)),
|
|
854
788
|
booleanInputSurface,
|
|
855
789
|
!disabled && booleanInputSurfaceHover,
|
|
856
790
|
// TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.
|
|
857
791
|
"cursor-pointer shrink-0 rounded-full px-1 mx-1 relative",
|
|
858
|
-
|
|
792
|
+
"dx-focus-ring",
|
|
859
793
|
...etc
|
|
860
794
|
);
|
|
861
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);
|
|
862
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);
|
|
863
|
-
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);
|
|
864
798
|
var inputLabel = (props, ...etc) => mx("block", inputTextLabel, props.srOnly && "sr-only", ...etc);
|
|
865
799
|
var inputDescription = (props, ...etc) => mx("text-description", props.srOnly && "sr-only", ...etc);
|
|
866
800
|
var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none my-1.5", props.srOnly && "sr-only", ...etc);
|
|
@@ -881,7 +815,7 @@ var inputTheme = {
|
|
|
881
815
|
};
|
|
882
816
|
|
|
883
817
|
// src/theme/components/link.ts
|
|
884
|
-
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);
|
|
885
819
|
var linkTheme = {
|
|
886
820
|
root: linkRoot
|
|
887
821
|
};
|
|
@@ -890,9 +824,9 @@ var linkTheme = {
|
|
|
890
824
|
var listRoot = (_, ...etc) => mx(...etc);
|
|
891
825
|
var listItem = ({ collapsible }, ...etc) => mx(!collapsible && "flex", ...etc);
|
|
892
826
|
var listItemEndcap = ({ density }, ...etc) => mx(density === "fine" ? getSize(8) : getSize(10), "shrink-0 flex items-center justify-center", ...etc);
|
|
893
|
-
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);
|
|
894
828
|
var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mt-2.5", ...etc);
|
|
895
|
-
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);
|
|
896
830
|
var listItemOpenTriggerIcon = (_props, ...etc) => {
|
|
897
831
|
return mx(getSize(5), ...etc);
|
|
898
832
|
};
|
|
@@ -931,7 +865,7 @@ var menuContent = ({ elevation }, ...etc) => mx("dx-modal-surface w-48 rounded-s
|
|
|
931
865
|
elevation: "positioned"
|
|
932
866
|
}), ...etc);
|
|
933
867
|
var menuViewport = (_props, ...etc) => mx("rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto", ...etc);
|
|
934
|
-
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);
|
|
935
869
|
var menuSeparator = (_props, ...etc) => mx("my-1 mx-2 h-px bg-separator", ...etc);
|
|
936
870
|
var menuGroupLabel = (_props, ...etc) => mx("text-description", "select-none px-2 py-2", ...etc);
|
|
937
871
|
var menuArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
@@ -946,19 +880,19 @@ var menuTheme = {
|
|
|
946
880
|
|
|
947
881
|
// src/theme/components/message.ts
|
|
948
882
|
var messageRoot = ({ valence }, etc) => {
|
|
949
|
-
return mx("grid grid-cols-[
|
|
883
|
+
return mx("grid grid-cols-[2rem_1fr_2rem] p-1 rounded-sm", messageValence(valence), etc);
|
|
950
884
|
};
|
|
951
885
|
var messageHeader = (_, etc) => {
|
|
952
|
-
return mx("col-span-
|
|
886
|
+
return mx("col-span-full grid grid-cols-subgrid items-center", etc);
|
|
953
887
|
};
|
|
954
888
|
var messageTitle = (_, etc) => {
|
|
955
|
-
return mx("col-start-2
|
|
889
|
+
return mx("col-start-2 truncate", etc);
|
|
956
890
|
};
|
|
957
891
|
var messageIcon = (_, etc) => {
|
|
958
|
-
return mx("col-start-1", etc);
|
|
892
|
+
return mx("col-start-1 grid place-items-center", etc);
|
|
959
893
|
};
|
|
960
894
|
var messageContent = (_, etc) => {
|
|
961
|
-
return mx("grid grid-cols-subgrid
|
|
895
|
+
return mx("col-start-2 grid grid-cols-subgrid inline first:font-medium", etc);
|
|
962
896
|
};
|
|
963
897
|
var messageTheme = {
|
|
964
898
|
root: messageRoot,
|
|
@@ -974,15 +908,8 @@ var popoverContent = ({ elevation }, ...etc) => mx("dx-modal-surface border bord
|
|
|
974
908
|
}), surfaceZIndex({
|
|
975
909
|
elevation,
|
|
976
910
|
level: "menu"
|
|
977
|
-
}),
|
|
978
|
-
var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx(
|
|
979
|
-
"flex flex-col min-h-0 min-w-popover-min-width",
|
|
980
|
-
(constrainBlock || constrainInline) && "overflow-hidden",
|
|
981
|
-
// Ensures it respects available height from Radix (or 100dvh).
|
|
982
|
-
constrainBlock && "max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]",
|
|
983
|
-
constrainInline && "max-w-(--radix-popover-content-available-width)",
|
|
984
|
-
...etc
|
|
985
|
-
);
|
|
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);
|
|
986
913
|
var popoverArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
987
914
|
var popoverTheme = {
|
|
988
915
|
content: popoverContent,
|
|
@@ -991,40 +918,66 @@ var popoverTheme = {
|
|
|
991
918
|
};
|
|
992
919
|
|
|
993
920
|
// src/theme/components/scroll-area.ts
|
|
994
|
-
var
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
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",
|
|
1009
939
|
...etc
|
|
1010
940
|
);
|
|
1011
|
-
var scrollAreaViewport = ({ orientation,
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
]
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
],
|
|
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
|
+
};
|
|
1028
981
|
var scrollAreaTheme = {
|
|
1029
982
|
root: scrollAreaRoot,
|
|
1030
983
|
viewport: scrollAreaViewport
|
|
@@ -1040,7 +993,7 @@ var selectContent = ({ elevation }, ...etc) => {
|
|
|
1040
993
|
}), ...etc);
|
|
1041
994
|
};
|
|
1042
995
|
var selectViewport = (_props, ...etc) => mx(...etc);
|
|
1043
|
-
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);
|
|
1044
997
|
var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
|
|
1045
998
|
var selectArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
1046
999
|
var selectSeparator = (_props, ...etc) => mx("self-stretch border-b my-1 border-separator", ...etc);
|
|
@@ -1076,8 +1029,8 @@ var skeletonTheme = {
|
|
|
1076
1029
|
};
|
|
1077
1030
|
|
|
1078
1031
|
// src/theme/components/status.ts
|
|
1079
|
-
var statusRoot = ({ variant = "default" }, ...etc) => mx("h-1 relative
|
|
1080
|
-
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);
|
|
1081
1034
|
var statusTheme = {
|
|
1082
1035
|
root: statusRoot,
|
|
1083
1036
|
bar: statusBar
|
|
@@ -1098,7 +1051,7 @@ var toastViewport = (_props, ...etc) => mx(
|
|
|
1098
1051
|
);
|
|
1099
1052
|
var toastRoot = (_props, ...etc) => mx("dx-modal-surface rounded-md flex p-2 gap-2", surfaceShadow({
|
|
1100
1053
|
elevation: "toast"
|
|
1101
|
-
}), "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);
|
|
1102
1055
|
var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pl-2", ...etc);
|
|
1103
1056
|
var toastActions = (_props, ...etc) => mx("shrink-0 flex flex-col gap-1 justify-center", ...etc);
|
|
1104
1057
|
var toastTitle = ({ srOnly }, ...etc) => mx("shrink-0 font-medium", srOnly && "sr-only", ...etc);
|
|
@@ -1117,23 +1070,16 @@ var toolbarLayout = "w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center ove
|
|
|
1117
1070
|
var toolbarRoot = ({ density, disabled, layoutManaged }, ...etc) => {
|
|
1118
1071
|
return mx("bg-toolbar-surface dx-toolbar", density === "coarse" && "h-(--dx-rail-size) px-3!", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
|
|
1119
1072
|
};
|
|
1120
|
-
var toolbarInner = ({ layoutManaged }, ...etc) => {
|
|
1121
|
-
return mx(!layoutManaged && [
|
|
1122
|
-
"flex gap-1",
|
|
1123
|
-
textBlockWidth
|
|
1124
|
-
], ...etc);
|
|
1125
|
-
};
|
|
1126
1073
|
var toolbarText = (_, ...etc) => {
|
|
1127
|
-
return mx("grow truncate items-center",
|
|
1074
|
+
return mx("px-2 grow truncate items-center", ...etc);
|
|
1128
1075
|
};
|
|
1129
1076
|
var toolbarTheme = {
|
|
1130
1077
|
root: toolbarRoot,
|
|
1131
|
-
inner: toolbarInner,
|
|
1132
1078
|
text: toolbarText
|
|
1133
1079
|
};
|
|
1134
1080
|
|
|
1135
1081
|
// src/theme/components/tooltip.ts
|
|
1136
|
-
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({
|
|
1137
1083
|
elevation: "positioned"
|
|
1138
1084
|
}), surfaceZIndex({
|
|
1139
1085
|
elevation,
|
|
@@ -1181,7 +1127,7 @@ var levelStyles = /* @__PURE__ */ new Map([
|
|
|
1181
1127
|
]
|
|
1182
1128
|
]);
|
|
1183
1129
|
var treegridRoot = (_, ...etc) => mx("grid", ...etc);
|
|
1184
|
-
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);
|
|
1185
1131
|
var treegridCell = ({ indent }, ...etc) => mx(indent && "indent", ...etc);
|
|
1186
1132
|
var treegridTheme = {
|
|
1187
1133
|
root: treegridRoot,
|
|
@@ -1189,44 +1135,22 @@ var treegridTheme = {
|
|
|
1189
1135
|
cell: treegridCell
|
|
1190
1136
|
};
|
|
1191
1137
|
|
|
1192
|
-
// src/theme/theme.ts
|
|
1193
|
-
import { getDeep } from "@dxos/util";
|
|
1194
|
-
|
|
1195
|
-
// src/theme/primitives/column.ts
|
|
1196
|
-
var columnRoot = (_, ...etc) => mx("dx-column w-full min-w-0 grid", ...etc);
|
|
1197
|
-
var columnRow = (_, ...etc) => mx("col-span-3 grid grid-cols-subgrid", ...etc);
|
|
1198
|
-
var columnSegment = (_, ...etc) => mx("col-start-2 col-span-1 min-w-0", ...etc);
|
|
1199
|
-
var columnTheme = {
|
|
1200
|
-
root: columnRoot,
|
|
1201
|
-
row: columnRow,
|
|
1202
|
-
segment: columnSegment
|
|
1203
|
-
};
|
|
1204
|
-
|
|
1205
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
|
+
};
|
|
1206
1144
|
var panelRoot = (_, ...etc) => mx(
|
|
1207
1145
|
// prettier-ignore
|
|
1208
|
-
"
|
|
1146
|
+
"dx-container grid grid-cols-[100%] overflow-hidden",
|
|
1209
1147
|
// Add uncategorized children to content slot.
|
|
1210
1148
|
"[&>*:not([data-slot])]:[grid-area:content]",
|
|
1211
1149
|
...etc
|
|
1212
1150
|
);
|
|
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
|
-
);
|
|
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);
|
|
1230
1154
|
var panelTheme = {
|
|
1231
1155
|
root: panelRoot,
|
|
1232
1156
|
toolbar: panelToolbar,
|
|
@@ -1235,6 +1159,7 @@ var panelTheme = {
|
|
|
1235
1159
|
};
|
|
1236
1160
|
|
|
1237
1161
|
// src/theme/theme.ts
|
|
1162
|
+
import { getDeep } from "@dxos/util";
|
|
1238
1163
|
var defaultTheme = {
|
|
1239
1164
|
themeName: () => "default",
|
|
1240
1165
|
//
|
|
@@ -1250,6 +1175,7 @@ var defaultTheme = {
|
|
|
1250
1175
|
button: buttonTheme,
|
|
1251
1176
|
card: cardTheme,
|
|
1252
1177
|
dialog: dialogTheme,
|
|
1178
|
+
focus: focusTheme,
|
|
1253
1179
|
icon: iconTheme,
|
|
1254
1180
|
iconButton: iconButtonTheme,
|
|
1255
1181
|
input: inputTheme,
|
|
@@ -1305,17 +1231,16 @@ export {
|
|
|
1305
1231
|
cardMinBlockSize,
|
|
1306
1232
|
cardMinInlineSize,
|
|
1307
1233
|
cardTheme,
|
|
1308
|
-
|
|
1309
|
-
|
|
1234
|
+
columnTheme,
|
|
1235
|
+
composable,
|
|
1310
1236
|
composableProps,
|
|
1311
|
-
computeSize,
|
|
1312
1237
|
dataDisabled,
|
|
1313
1238
|
defaultButtonColors,
|
|
1314
1239
|
defaultTheme,
|
|
1315
1240
|
defaultTx,
|
|
1316
1241
|
densityBlockSize,
|
|
1242
|
+
densityDimensions,
|
|
1317
1243
|
descriptionMessage,
|
|
1318
|
-
descriptionTextPrimary,
|
|
1319
1244
|
dialogActionBar,
|
|
1320
1245
|
dialogBody,
|
|
1321
1246
|
dialogContent,
|
|
@@ -1324,21 +1249,16 @@ export {
|
|
|
1324
1249
|
dialogOverlay,
|
|
1325
1250
|
dialogTheme,
|
|
1326
1251
|
dialogTitle,
|
|
1327
|
-
|
|
1328
|
-
fineDimensions,
|
|
1329
|
-
focusRing,
|
|
1252
|
+
focusTheme,
|
|
1330
1253
|
getHashHue,
|
|
1331
1254
|
getHashStyles,
|
|
1255
|
+
getHeight,
|
|
1332
1256
|
getSize,
|
|
1333
|
-
getSizeHeight,
|
|
1334
|
-
getSizeWidth,
|
|
1335
1257
|
getStyles,
|
|
1258
|
+
getWidth,
|
|
1336
1259
|
ghostButtonColors,
|
|
1337
1260
|
ghostFocusWithin,
|
|
1338
|
-
ghostHighlighted,
|
|
1339
1261
|
ghostHover,
|
|
1340
|
-
ghostSelected,
|
|
1341
|
-
ghostSelectedContainerMd,
|
|
1342
1262
|
groupHoverControlItemWithTransition,
|
|
1343
1263
|
hoverableControlItem,
|
|
1344
1264
|
hoverableControls,
|
|
@@ -1350,6 +1270,7 @@ export {
|
|
|
1350
1270
|
iconButtonRoot,
|
|
1351
1271
|
iconButtonTheme,
|
|
1352
1272
|
iconRoot,
|
|
1273
|
+
iconSize,
|
|
1353
1274
|
iconTheme,
|
|
1354
1275
|
inputTextLabel,
|
|
1355
1276
|
inputTheme,
|
|
@@ -1387,6 +1308,7 @@ export {
|
|
|
1387
1308
|
mx,
|
|
1388
1309
|
osTranslations,
|
|
1389
1310
|
palette,
|
|
1311
|
+
panelTheme,
|
|
1390
1312
|
popoverArrow,
|
|
1391
1313
|
popoverContent,
|
|
1392
1314
|
popoverTheme,
|
|
@@ -1396,6 +1318,7 @@ export {
|
|
|
1396
1318
|
scrollAreaRoot,
|
|
1397
1319
|
scrollAreaTheme,
|
|
1398
1320
|
scrollAreaViewport,
|
|
1321
|
+
scrollbar,
|
|
1399
1322
|
selectArrow,
|
|
1400
1323
|
selectContent,
|
|
1401
1324
|
selectItem,
|
|
@@ -1406,23 +1329,22 @@ export {
|
|
|
1406
1329
|
selectViewport,
|
|
1407
1330
|
separatorRoot,
|
|
1408
1331
|
separatorTheme,
|
|
1332
|
+
sizeToRem,
|
|
1409
1333
|
sizeValue,
|
|
1410
1334
|
skeletonRoot,
|
|
1411
1335
|
skeletonTheme,
|
|
1336
|
+
slottable,
|
|
1337
|
+
snapSize,
|
|
1412
1338
|
splitterTheme,
|
|
1413
1339
|
staticDefaultButtonColors,
|
|
1414
1340
|
staticDisabled,
|
|
1415
|
-
staticFocusRing,
|
|
1416
1341
|
statusBar,
|
|
1417
1342
|
statusRoot,
|
|
1418
1343
|
statusTheme,
|
|
1419
|
-
subduedFocus,
|
|
1420
|
-
subtleHover,
|
|
1421
1344
|
surfaceShadow,
|
|
1422
1345
|
surfaceZIndex,
|
|
1423
1346
|
tagRoot,
|
|
1424
1347
|
tagTheme,
|
|
1425
|
-
textBlockWidth,
|
|
1426
1348
|
textValence,
|
|
1427
1349
|
toastActions,
|
|
1428
1350
|
toastBody,
|
|
@@ -1431,7 +1353,6 @@ export {
|
|
|
1431
1353
|
toastTheme,
|
|
1432
1354
|
toastTitle,
|
|
1433
1355
|
toastViewport,
|
|
1434
|
-
toolbarInner,
|
|
1435
1356
|
toolbarLayout,
|
|
1436
1357
|
toolbarRoot,
|
|
1437
1358
|
toolbarText,
|
|
@@ -1443,6 +1364,7 @@ export {
|
|
|
1443
1364
|
treegridCell,
|
|
1444
1365
|
treegridRoot,
|
|
1445
1366
|
treegridRow,
|
|
1446
|
-
treegridTheme
|
|
1367
|
+
treegridTheme,
|
|
1368
|
+
withColumn
|
|
1447
1369
|
};
|
|
1448
1370
|
//# sourceMappingURL=index.mjs.map
|