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