@ciridae/ui 1.0.4 → 1.0.9
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/README.md +3 -2
- package/dist/chat/conversation-source.d.ts +1 -3
- package/dist/chat/message-text.js +6 -6
- package/dist/chat/use-chat-conversation.d.ts +7 -2
- package/dist/chat/use-chat-conversation.js +2 -1
- package/dist/components/activity-feed.d.ts +0 -1
- package/dist/components/activity-feed.js +6 -7
- package/dist/components/agent-work.d.ts +5 -1
- package/dist/components/agent-work.js +27 -13
- package/dist/components/app-frame.d.ts +3 -17
- package/dist/components/app-frame.js +11 -30
- package/dist/components/app-navigation.d.ts +5 -6
- package/dist/components/app-navigation.js +70 -40
- package/dist/components/badge.d.ts +0 -4
- package/dist/components/badge.js +17 -27
- package/dist/components/bulk-action-bar.js +2 -2
- package/dist/components/button.js +41 -50
- package/dist/components/calendar.js +5 -8
- package/dist/components/centered-page.js +4 -4
- package/dist/components/chart.js +3 -4
- package/dist/components/chat-client-source.js +55 -34
- package/dist/components/chat-page.js +1 -1
- package/dist/components/chat-sheet.d.ts +30 -20
- package/dist/components/chat-sheet.js +112 -54
- package/dist/components/chat.d.ts +27 -56
- package/dist/components/chat.js +153 -132
- package/dist/components/checkbox-item.js +4 -4
- package/dist/components/checkbox-list.js +6 -6
- package/dist/components/chip.js +2 -2
- package/dist/components/collapsible.js +3 -3
- package/dist/components/color-theme.d.ts +3 -6
- package/dist/components/color-theme.js +10 -11
- package/dist/components/column-settings.js +3 -3
- package/dist/components/command-menu.d.ts +1 -2
- package/dist/components/command-menu.js +56 -77
- package/dist/components/command-palette.js +5 -2
- package/dist/components/copyable-id.js +5 -5
- package/dist/components/data-display.d.ts +1 -7
- package/dist/components/data-display.js +32 -55
- package/dist/components/data-grid.d.ts +4 -7
- package/dist/components/data-grid.js +106 -90
- package/dist/components/date-range-picker.js +4 -5
- package/dist/components/document-viewer.js +23 -23
- package/dist/components/drawer.d.ts +2 -1
- package/dist/components/drawer.js +45 -20
- package/dist/components/dropzone.js +13 -13
- package/dist/components/editable-field.d.ts +2 -7
- package/dist/components/editable-field.js +14 -27
- package/dist/components/email-input.js +2 -3
- package/dist/components/environment-frame.js +7 -7
- package/dist/components/expandable-text.js +2 -2
- package/dist/components/feedback-screenshot.js +7 -7
- package/dist/components/feedback-sheet.js +8 -8
- package/dist/components/filter-bar.js +41 -27
- package/dist/components/form-controls.d.ts +3 -6
- package/dist/components/form-controls.js +15 -22
- package/dist/components/form-layout.d.ts +6 -6
- package/dist/components/form-layout.js +10 -16
- package/dist/components/glass-menu.d.ts +2 -0
- package/dist/components/glass-menu.js +14 -18
- package/dist/components/gradient-edge.d.ts +0 -1
- package/dist/components/gradient-edge.js +8 -9
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +18 -17
- package/dist/components/keycap.d.ts +2 -6
- package/dist/components/keycap.js +4 -12
- package/dist/components/layout.js +11 -10
- package/dist/components/lightbox.js +8 -8
- package/dist/components/link.js +1 -1
- package/dist/components/locale.d.ts +23 -7
- package/dist/components/locale.js +19 -7
- package/dist/components/log-entry.d.ts +2 -14
- package/dist/components/log-entry.js +11 -22
- package/dist/components/log-list.js +1 -1
- package/dist/components/mention-input.js +13 -14
- package/dist/components/menu.d.ts +7 -4
- package/dist/components/menu.js +23 -10
- package/dist/components/meter.d.ts +2 -3
- package/dist/components/meter.js +12 -16
- package/dist/components/navigation.d.ts +0 -7
- package/dist/components/navigation.js +3 -12
- package/dist/components/notification-tray.js +7 -7
- package/dist/components/overlays.d.ts +5 -2
- package/dist/components/overlays.js +24 -24
- package/dist/components/panel.js +3 -3
- package/dist/components/progress.js +2 -2
- package/dist/components/radio-card.d.ts +1 -1
- package/dist/components/radio-card.js +9 -9
- package/dist/components/record.d.ts +2 -4
- package/dist/components/record.js +19 -32
- package/dist/components/scroll-area.js +10 -10
- package/dist/components/segmented-bar.js +9 -9
- package/dist/components/select.d.ts +3 -5
- package/dist/components/select.js +26 -44
- package/dist/components/settings.js +1 -1
- package/dist/components/shell-skeleton.js +1 -1
- package/dist/components/shell.d.ts +1 -1
- package/dist/components/shell.js +69 -24
- package/dist/components/side-panel.js +3 -3
- package/dist/components/sidebar.d.ts +0 -5
- package/dist/components/sidebar.js +25 -33
- package/dist/components/single-line-text.js +3 -4
- package/dist/components/site-banner.js +4 -4
- package/dist/components/skeleton.js +19 -22
- package/dist/components/skeletons.d.ts +0 -3
- package/dist/components/skeletons.js +5 -10
- package/dist/components/stages.d.ts +6 -3
- package/dist/components/stages.js +77 -105
- package/dist/components/stat-card.d.ts +2 -5
- package/dist/components/stat-card.js +23 -31
- package/dist/components/status-banner.js +6 -6
- package/dist/components/status.js +3 -3
- package/dist/components/steps.js +2 -2
- package/dist/components/switch.js +1 -1
- package/dist/components/tabs.js +15 -18
- package/dist/components/theme-customizer.d.ts +5 -8
- package/dist/components/theme-customizer.js +9 -41
- package/dist/components/theme-toggle.d.ts +0 -1
- package/dist/components/theme-toggle.js +6 -11
- package/dist/components/toast.d.ts +1 -7
- package/dist/components/toast.js +19 -22
- package/dist/components/user-chip.js +8 -8
- package/dist/components/wizard.js +6 -4
- package/dist/preset.d.ts +1 -2
- package/dist/preset.js +41 -89
- package/dist/styled-system/css/conditions.mjs +1 -1
- package/dist/styled-system/css/css.mjs +1 -1
- package/dist/styled-system/styles.css +820 -1297
- package/dist/styled-system/tokens/index.mjs +78 -1926
- package/dist/styled-system/tokens/tokens.d.ts +18 -33
- package/dist/styled-system/types/conditions.d.ts +0 -74
- package/dist/styled-system/types/prop-type.d.ts +15 -40
- package/dist/styled-system/types/style-props.d.ts +705 -705
- package/dist/theme/color.d.ts +0 -1
- package/dist/theme/color.js +0 -16
- package/dist/theme/derive.d.ts +3 -3
- package/dist/theme/derive.js +9 -32
- package/dist/theme/index.d.ts +1 -2
- package/dist/theme/index.js +3 -5
- package/dist/theme/options.d.ts +2 -4
- package/dist/theme/options.js +0 -1
- package/dist/theme/{palettes.d.ts → palette.d.ts} +12 -23
- package/dist/theme/palette.js +127 -0
- package/dist/theme/tokens.d.ts +8 -13
- package/dist/theme/tokens.js +39 -92
- package/package.json +1 -1
- package/dist/theme/palettes.js +0 -254
package/dist/preset.js
CHANGED
|
@@ -4,8 +4,7 @@ import { linearGradient } from "./theme/color.js";
|
|
|
4
4
|
import { noEdge, themedGradient } from "./theme/derive.js";
|
|
5
5
|
import { deriveThemeTokens } from "./theme/tokens.js";
|
|
6
6
|
export { breakpointQuery, breakpoints } from "./theme/breakpoints.js";
|
|
7
|
-
export {
|
|
8
|
-
export { deriveThemeTokens, themeVariables } from "./theme/tokens.js";
|
|
7
|
+
export { deriveThemeTokens } from "./theme/tokens.js";
|
|
9
8
|
const appBaseCss = {
|
|
10
9
|
"html, body, #root": {
|
|
11
10
|
margin: "0",
|
|
@@ -18,12 +17,15 @@ const appBaseCss = {
|
|
|
18
17
|
":where(a)": { color: "inherit", textDecoration: "none" },
|
|
19
18
|
"*": { scrollbarWidth: "thin", scrollbarColor: "token(colors.border.control) transparent" },
|
|
20
19
|
};
|
|
21
|
-
/* The grey glass edge dark draws round a raised face, and round most of the hue glass. */
|
|
22
20
|
const darkGlassEdge = "linear-gradient(to bottom, rgba(137,136,135,.33), rgba(101,96,92,.33) 10%, rgba(43,41,39,.33) 90%, rgba(64,63,63,.33))";
|
|
23
|
-
/* An edge drawn as the grey glass in dark, and as a two-color gradient at .33 in light. */
|
|
24
21
|
function glassEdgeWithLightGradient(top, bottom) {
|
|
25
22
|
return { base: darkGlassEdge, _light: linearGradient("to bottom", [top, bottom], 0.33) };
|
|
26
23
|
}
|
|
24
|
+
// Gradient ends that more than one face or edge is drawn in, so they change together.
|
|
25
|
+
const darkSuccessGreenEnds = ["#BEE1DB", "#327A6E"];
|
|
26
|
+
const lightSuccessGlassEnds = ["#ECECEC", "#DFEFEC"];
|
|
27
|
+
const lightSuccessEdgeEnds = ["#9FCCC3", "#589D92"];
|
|
28
|
+
const lightSelectedEdgeEnds = ["#D8D8D8", "#CCCBCB"];
|
|
27
29
|
/** The kit's tokens under a theme. Anything left out takes the default, which is today's look. */
|
|
28
30
|
export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
29
31
|
const { colors, gradients, shadows, fonts } = deriveThemeTokens(theme);
|
|
@@ -111,6 +113,11 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
111
113
|
},
|
|
112
114
|
},
|
|
113
115
|
tokens: {
|
|
116
|
+
// Colours that are CSS keywords rather than palette entries, so a strict style can name them.
|
|
117
|
+
colors: {
|
|
118
|
+
transparent: { value: "transparent" },
|
|
119
|
+
currentColor: { value: "currentColor" },
|
|
120
|
+
},
|
|
114
121
|
spacing: {
|
|
115
122
|
none: { value: "0" },
|
|
116
123
|
"control.trackInset": { value: "2px" },
|
|
@@ -129,15 +136,20 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
129
136
|
"control.largeInline": { value: "20px" },
|
|
130
137
|
// Inline padding on the side of a trigger that ends in its caret.
|
|
131
138
|
"control.iconInline": { value: "10px" },
|
|
132
|
-
// The assistant launcher's padding at its end, round the shortcut keycap.
|
|
133
139
|
"control.launcherInlineEnd": { value: "7px" },
|
|
134
140
|
// The underline search field keeps its icon close to the text's left edge.
|
|
135
141
|
"search.inline": { value: "4px" },
|
|
136
142
|
"field.block": { value: "10px" },
|
|
143
|
+
"gap.4": { value: "4px" },
|
|
144
|
+
"gap.6": { value: "6px" },
|
|
145
|
+
"gap.8": { value: "8px" },
|
|
146
|
+
"gap.12": { value: "12px" },
|
|
147
|
+
"gap.16": { value: "16px" },
|
|
148
|
+
"gap.20": { value: "20px" },
|
|
149
|
+
"gap.24": { value: "24px" },
|
|
137
150
|
"layout.tightGap": { value: "4px" },
|
|
138
151
|
// Between a sidebar's groups, and the sidebar's own inset from the window edge.
|
|
139
152
|
"sidebar.groupGap": { value: "16px" },
|
|
140
|
-
// The least room between the sidebar's navigation and its footer.
|
|
141
153
|
"sidebar.footerGap": { value: "18px" },
|
|
142
154
|
"sidebar.inline": { value: "10px" },
|
|
143
155
|
"sidebar.block": { value: "14px" },
|
|
@@ -149,15 +161,12 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
149
161
|
"layout.pageGap": { value: "12px" },
|
|
150
162
|
"layout.projectListOffset": { value: "28px" },
|
|
151
163
|
"layout.sectionGap": { value: "12px" },
|
|
152
|
-
//
|
|
153
|
-
// draws no centered card; one card alone on an empty page keeps more room than the
|
|
154
|
-
// sections of an app page.
|
|
164
|
+
// The design draws no centered card; one card alone on an empty page keeps more room than the sections of an app page.
|
|
155
165
|
"layout.centeredCardGap": { value: "24px" },
|
|
156
166
|
"log.columnGap": { value: "10px" },
|
|
157
167
|
"log.detailIndent": { value: "34px" },
|
|
158
168
|
"log.detailIndentCompact": { value: "32px" },
|
|
159
169
|
"log.rowBlock": { value: "3px" },
|
|
160
|
-
// A log entry's padding: in a feed, a compact feed, and a side panel.
|
|
161
170
|
"log.entryBlock": { value: "14px" },
|
|
162
171
|
"log.entryInline": { value: "20px" },
|
|
163
172
|
"log.entryCompactBlock": { value: "8px" },
|
|
@@ -172,29 +181,24 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
172
181
|
"panel.default": { value: "12px" },
|
|
173
182
|
"panel.comfortable": { value: "16px" },
|
|
174
183
|
"panel.roomy": { value: "24px" },
|
|
175
|
-
// A card's padding, and a stat tile's.
|
|
176
184
|
"panel.card": { value: "20px" },
|
|
177
185
|
"tile.block": { value: "18px" },
|
|
178
186
|
"tile.inline": { value: "20px" },
|
|
179
|
-
// Between the bars of a stat tile's placeholder.
|
|
180
187
|
"skeleton.tileGap": { value: "10px" },
|
|
181
|
-
// An empty state's block padding on a page, and bare or in a compact spot.
|
|
182
188
|
"emptyState.pageBlock": { value: "56px" },
|
|
183
189
|
"emptyState.compactBlock": { value: "32px" },
|
|
184
|
-
// Between the stages on a stage strip.
|
|
185
190
|
"stage.connectorGap": { value: "10px" },
|
|
186
|
-
// Between a numbered list's number and its text, the kit's Numbered item.
|
|
187
191
|
"list.numberGap": { value: "10px" },
|
|
188
|
-
// Between a budget row's name and its meter, the kit's Budget row.
|
|
189
192
|
"meter.rowGap": { value: "36px" },
|
|
190
|
-
"panel.sidebarBlock": { value: "14px" },
|
|
191
193
|
"page.inline": { value: "12px" },
|
|
192
194
|
"shell.leading": { value: "28px" },
|
|
193
195
|
"table.cell": { value: "12px" },
|
|
194
|
-
"table.rowBlock": { value: "16px" },
|
|
195
196
|
"table.compactRowBlock": { value: "8px" },
|
|
196
197
|
},
|
|
197
198
|
sizes: {
|
|
199
|
+
// A flex child that may shrink below its content (`minWidth: "0"`), and its parent's whole width or height.
|
|
200
|
+
"0": { value: "0" },
|
|
201
|
+
full: { value: "100%" },
|
|
198
202
|
"border.hairline": { value: "1px" },
|
|
199
203
|
"indicator.dot": { value: "4px" },
|
|
200
204
|
"indicator.live": { value: "6px" },
|
|
@@ -203,7 +207,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
203
207
|
"indicator.count": { value: "16px" },
|
|
204
208
|
"log.caretColumn": { value: "12px" },
|
|
205
209
|
"log.minimum": { value: "320px" },
|
|
206
|
-
// A log entry's time column.
|
|
207
210
|
"log.timeColumn": { value: "64px" },
|
|
208
211
|
"log.rawMaximum": { value: "200px" },
|
|
209
212
|
"assistant.orb": { value: "28px" },
|
|
@@ -214,7 +217,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
214
217
|
"avatar.menu": { value: "24px" },
|
|
215
218
|
"avatar.agent": { value: "26px" },
|
|
216
219
|
"avatar.row": { value: "32px" },
|
|
217
|
-
// A record's owner, and the stand-in when there is none.
|
|
218
220
|
"avatar.owner": { value: "28px" },
|
|
219
221
|
"avatar.large": { value: "44px" },
|
|
220
222
|
// A mark set inline beside a name -- an icon, a provider logo, a project tile -- so
|
|
@@ -223,25 +225,19 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
223
225
|
"progress.track": { value: "6px" },
|
|
224
226
|
"progress.segment": { value: "3px" },
|
|
225
227
|
"indicator.swatch": { value: "8px" },
|
|
226
|
-
// A row in a menu or a select's list
|
|
228
|
+
// A row in a menu or a select's list.
|
|
227
229
|
"menu.item": { value: "30px" },
|
|
228
|
-
"select.compactItem": { value: "28px" },
|
|
229
230
|
"code.maximum": { value: "320px" },
|
|
230
231
|
// The Ciridae mark above a short card, as the sign-in pages show it.
|
|
231
232
|
"brand.logo": { value: "40px" },
|
|
232
233
|
"indicator.radio": { value: "6px" },
|
|
233
234
|
"skeleton.line": { value: "16px" },
|
|
234
|
-
// A skeleton's bar or pill, its small pill, and a caption line.
|
|
235
235
|
"skeleton.bar": { value: "20px" },
|
|
236
236
|
"skeleton.badge": { value: "16px" },
|
|
237
237
|
"skeleton.caption": { value: "8px" },
|
|
238
238
|
"skeleton.short": { value: "64px" },
|
|
239
|
-
// A status chip's placeholder, and the design's fixed text bar; the small one is
|
|
240
|
-
// `skeleton.caption`.
|
|
241
239
|
"skeleton.pill": { value: "84px" },
|
|
242
240
|
"skeleton.textLine": { value: "10px" },
|
|
243
|
-
// A stat tile's height, which its placeholder and its empty stand-in hold; a card's
|
|
244
|
-
// placeholder, and the band its bars sit centred in.
|
|
245
241
|
"tile.minimum": { value: "96px" },
|
|
246
242
|
"skeleton.card": { value: "300px" },
|
|
247
243
|
"skeleton.cardBody": { value: "150px" },
|
|
@@ -261,25 +257,20 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
261
257
|
"control.clear": { value: "20px" },
|
|
262
258
|
// A step chip or small badge in a row of text.
|
|
263
259
|
"control.chip": { value: "22px" },
|
|
264
|
-
// A keycap that holds a word such as Esc rather than one glyph.
|
|
265
260
|
"control.wordKeycap": { value: "35px" },
|
|
266
|
-
// The composer's send button.
|
|
267
261
|
"control.send": { value: "26px" },
|
|
268
262
|
"control.small": { value: "30px" },
|
|
269
263
|
// A tab at rest: 2px under the open one, which fills its 30px track.
|
|
270
264
|
"control.restingTab": { value: "28px" },
|
|
271
265
|
"control.row": { value: "34px" },
|
|
272
|
-
// A round icon button in the top bar or a pager, and the smaller one that closes a sheet.
|
|
273
266
|
"control.round": { value: "34px" },
|
|
267
|
+
// The collapsed sidebar's expand button, the kit's 32px round button.
|
|
268
|
+
"control.roundRail": { value: "32px" },
|
|
274
269
|
"control.roundSmall": { value: "28px" },
|
|
275
270
|
"control.sidebarSearch": { value: "36px" },
|
|
276
|
-
// The square tile an icon sits on beside a row's title.
|
|
277
|
-
// The disc a numbered list's number sits in.
|
|
278
271
|
"list.number": { value: "20px" },
|
|
279
272
|
"tile.icon": { value: "32px" },
|
|
280
|
-
// The parts rollup's line, in place of the stage strip.
|
|
281
273
|
"partsRollup.height": { value: "26px" },
|
|
282
|
-
// A stat tile's chart slot, and the line's plot at its foot, under the end point's room.
|
|
283
274
|
"sparkline.width": { value: "88px" },
|
|
284
275
|
"sparkline.height": { value: "32px" },
|
|
285
276
|
"sparkline.plotWidth": { value: "84px" },
|
|
@@ -294,11 +285,8 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
294
285
|
"workspace.avatar": { value: "34px" },
|
|
295
286
|
"control.field": { value: "46px" },
|
|
296
287
|
"sidebar.projectAction": { value: "48px" },
|
|
297
|
-
// The rule between the icon rail's sections.
|
|
298
288
|
"sidebar.railRule": { value: "24px" },
|
|
299
|
-
// A sidebar row shorter than a page's, such as the settings sidebar's Back to app.
|
|
300
289
|
"sidebar.shortRow": { value: "28px" },
|
|
301
|
-
"toast.minimum": { value: "56px" },
|
|
302
290
|
"chat.footer": { value: "60px" },
|
|
303
291
|
"shell.header": { value: "54px" },
|
|
304
292
|
"shell.collapsed": { value: "64px" },
|
|
@@ -306,7 +294,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
306
294
|
"table.headRow": { value: "44px" },
|
|
307
295
|
// A textarea at rest: two lines of body text in its well; it grows as it is dragged.
|
|
308
296
|
"field.textarea": { value: "64px" },
|
|
309
|
-
// An input set inline in a row.
|
|
310
297
|
"field.inline": { value: "28px" },
|
|
311
298
|
"chat.input": { value: "87px" },
|
|
312
299
|
"chat.inputMobile": { value: "72px" },
|
|
@@ -314,7 +301,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
314
301
|
"overlay.menu": { value: "200px" },
|
|
315
302
|
// The tallest a select's or combobox's list grows before it scrolls.
|
|
316
303
|
"overlay.menuList": { value: "320px" },
|
|
317
|
-
// A stuck step's "Not sure?" menu of ways forward.
|
|
318
304
|
"overlay.helpMenu": { value: "360px" },
|
|
319
305
|
// The notification tray as a popover from the bell, and how much of its list shows.
|
|
320
306
|
"overlay.tray": { value: "380px" },
|
|
@@ -329,10 +315,9 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
329
315
|
"search.regularPreview": { value: "250px" },
|
|
330
316
|
"search.sidebarPreview": { value: "264px" },
|
|
331
317
|
"shell.sidebar": { value: "248px" },
|
|
332
|
-
//
|
|
318
|
+
// The glass shell round each dialog and palette adds its padding.
|
|
333
319
|
"overlay.dialog": { value: "440px" },
|
|
334
320
|
"overlay.palette": { value: "640px" },
|
|
335
|
-
// The command palette's query row, a result row and its footer of key hints.
|
|
336
321
|
"commandPalette.query": { value: "56px" },
|
|
337
322
|
"commandPalette.row": { value: "40px" },
|
|
338
323
|
"commandPalette.footer": { value: "44px" },
|
|
@@ -344,7 +329,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
344
329
|
"overlay.sheetNarrow": { value: "400px" },
|
|
345
330
|
"overlay.sheetDocked": { value: "clamp(400px, 29.7vw, 488px)" },
|
|
346
331
|
"toast.width": { value: "440px" },
|
|
347
|
-
// A toast's progress track.
|
|
348
332
|
"toast.progressWidth": { value: "72px" },
|
|
349
333
|
"toast.progressHeight": { value: "4px" },
|
|
350
334
|
"chat.thread": { value: "640px" },
|
|
@@ -367,7 +351,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
367
351
|
// A locked step's dot, and a locked requirement's row, which keeps a little more.
|
|
368
352
|
"locked.step": { value: ".5" },
|
|
369
353
|
"locked.requirement": { value: ".55" },
|
|
370
|
-
// A round icon button fades further.
|
|
371
354
|
disabledRound: { value: ".25" },
|
|
372
355
|
// A ticked mark under the pointer, in dark: the face and its glyph fade a little.
|
|
373
356
|
checkedHover: { value: ".88" },
|
|
@@ -396,7 +379,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
396
379
|
body: { value: "1.4" },
|
|
397
380
|
},
|
|
398
381
|
fontSizes: {
|
|
399
|
-
// The largest figure on a page, set with `letterSpacings.display`.
|
|
400
382
|
display: { value: "36px" },
|
|
401
383
|
body: { value: "14px" },
|
|
402
384
|
caption: { value: "13px" },
|
|
@@ -438,8 +420,8 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
438
420
|
toast: { value: "90" },
|
|
439
421
|
},
|
|
440
422
|
radii: {
|
|
423
|
+
none: { value: "0" },
|
|
441
424
|
round: { value: "999px" },
|
|
442
|
-
// A sidebar nav item.
|
|
443
425
|
nav: { value: "3px" },
|
|
444
426
|
keycap: { value: "6px" },
|
|
445
427
|
// Round 2 fields -- inputs, selects, checkboxes -- are nearly square-cornered.
|
|
@@ -460,7 +442,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
460
442
|
"bg.panel": { value: colors["bg.panel"] },
|
|
461
443
|
"bg.card": { value: colors["bg.card"] },
|
|
462
444
|
"bg.avatar": { value: colors["bg.avatar"] },
|
|
463
|
-
// The modal scrim, and the overlays' glass; see `deriveThemeTokens`.
|
|
464
445
|
"bg.backdrop": { value: colors["bg.backdrop"] },
|
|
465
446
|
"bg.popover": { value: colors["bg.popover"] },
|
|
466
447
|
"bg.modalShell": { value: colors["bg.modalShell"] },
|
|
@@ -474,18 +455,18 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
474
455
|
"bg.errorSubtle": { value: colors["bg.errorSubtle"] },
|
|
475
456
|
"fg.archived": { value: colors["fg.archived"] },
|
|
476
457
|
"border.subtle": { value: colors["border.subtle"] },
|
|
477
|
-
// Focus is the palette's focus ring
|
|
458
|
+
// Focus is the palette's focus ring, Accent Blue.
|
|
478
459
|
"border.focus": { value: colors["border.focus"] },
|
|
479
460
|
// The greys, from the palette's ramp; see `deriveThemeTokens`.
|
|
480
461
|
"fg.primary": { value: colors["fg.primary"] },
|
|
481
462
|
"fg.muted": { value: colors["fg.muted"] },
|
|
482
463
|
"fg.secondary": { value: colors["fg.secondary"] },
|
|
483
464
|
"fg.subtle": { value: colors["fg.subtle"] },
|
|
484
|
-
"fg.quietGlyph": { value: colors["fg.quietGlyph"] },
|
|
485
465
|
"fg.label": { value: colors["fg.label"] },
|
|
486
466
|
"border.control": { value: colors["border.control"] },
|
|
487
467
|
"border.canvas": { value: colors["border.canvas"] },
|
|
488
468
|
"border.divider": { value: colors["border.divider"] },
|
|
469
|
+
"border.popover": { value: colors["border.popover"] },
|
|
489
470
|
"border.menuHover": { value: colors["border.menuHover"] },
|
|
490
471
|
"bg.field": { value: colors["bg.field"] },
|
|
491
472
|
"bg.formField": { value: colors["bg.formField"] },
|
|
@@ -505,24 +486,16 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
505
486
|
"border.card": { value: colors["border.card"] },
|
|
506
487
|
"border.glass": { value: colors["border.glass"] },
|
|
507
488
|
"border.hairline": { value: colors["border.hairline"] },
|
|
508
|
-
|
|
509
|
-
* The flat faces; see `deriveThemeTokens`. `bg.surface` lifts a dialog or drawer off
|
|
510
|
-
* the card; `bg.control` is what a field or tab track wears; `bg.glass` and
|
|
511
|
-
* `bg.raised` are the toolbar control and the button; `bg.hover` and `bg.pressed` are
|
|
512
|
-
* the state layers and `bg.fill` the firmer grey fill. A face the design paints as a
|
|
513
|
-
* gradient has one under `gradients` too.
|
|
514
|
-
*/
|
|
489
|
+
// A face the design paints as a gradient has one under `gradients` too.
|
|
515
490
|
"bg.surface": { value: colors["bg.surface"] },
|
|
516
491
|
"bg.control": { value: colors["bg.control"] },
|
|
517
492
|
"bg.pill": { value: colors["bg.pill"] },
|
|
518
493
|
"bg.glass": { value: colors["bg.glass"] },
|
|
519
|
-
"bg.glassHover": { value: colors["bg.glassHover"] },
|
|
520
494
|
"bg.raised": { value: colors["bg.raised"] },
|
|
521
495
|
"bg.raisedHover": { value: colors["bg.raisedHover"] },
|
|
522
496
|
"bg.check": { value: colors["bg.check"] },
|
|
523
497
|
"bg.hover": { value: colors["bg.hover"] },
|
|
524
498
|
"bg.controlHover": { value: colors["bg.controlHover"] },
|
|
525
|
-
"bg.pressed": { value: colors["bg.pressed"] },
|
|
526
499
|
"bg.fill": { value: colors["bg.fill"] },
|
|
527
500
|
/*
|
|
528
501
|
* `primary` inverts: white on a dark panel, near-black on a light one. Light has no
|
|
@@ -530,13 +503,7 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
530
503
|
*/
|
|
531
504
|
"bg.primary": { value: colors["bg.primary"] },
|
|
532
505
|
"bg.primaryHover": { value: colors["bg.primaryHover"] },
|
|
533
|
-
/* The warm glass of the tinted button. */
|
|
534
|
-
"bg.tinted": { value: colors["bg.tinted"] },
|
|
535
|
-
/* The destructive button's red. */
|
|
536
|
-
"bg.danger": { value: { base: "#F67C6A", _light: "#F36B57" } },
|
|
537
506
|
/*
|
|
538
|
-
* The solid tint of an attention block or a highlighted field, the same in every
|
|
539
|
-
* palette as the destructive red is; `border.*Tint` under `gradients` edges a block.
|
|
540
507
|
* Yellow is the design's 5% wash in dark. Dark draws a green or red block as its hue's
|
|
541
508
|
* glass, which these flatten to its middle.
|
|
542
509
|
*/
|
|
@@ -546,7 +513,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
546
513
|
// Links take the palette's accent; the four status hues keep their meaning.
|
|
547
514
|
"accent.brand": { value: colors["accent.brand"] },
|
|
548
515
|
"accent.green": { value: colors["accent.green"] },
|
|
549
|
-
"accent.greenDark": { value: colors["accent.greenDark"] },
|
|
550
516
|
"accent.red": { value: colors["accent.red"] },
|
|
551
517
|
"accent.redDark": { value: colors["accent.redDark"] },
|
|
552
518
|
"accent.yellow": { value: colors["accent.yellow"] },
|
|
@@ -583,7 +549,6 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
583
549
|
// The shadows `deriveThemeTokens` sets, most cast in the palette's greys.
|
|
584
550
|
search: { value: shadows.search },
|
|
585
551
|
inset: { value: shadows.inset },
|
|
586
|
-
// A card's elevation, and the softer one of a sheet, toast or chip, or the segment that is on.
|
|
587
552
|
card: { value: shadows.card },
|
|
588
553
|
soft: { value: shadows.soft },
|
|
589
554
|
// The faint glow round a drawer's glass shell; light only.
|
|
@@ -607,16 +572,10 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
607
572
|
"control.pressed": { value: shadows["control.pressed"] },
|
|
608
573
|
},
|
|
609
574
|
gradients: {
|
|
610
|
-
// A loading placeholder's flat fill.
|
|
611
575
|
skeletonFill: { value: gradients.skeletonFill },
|
|
612
576
|
orb: {
|
|
613
577
|
value: "radial-gradient(circle at 70% 24%, rgba(232,224,195,.9) 0 9%, transparent 11%), linear-gradient(180deg, #E8E0C3, #46361D)",
|
|
614
578
|
},
|
|
615
|
-
/*
|
|
616
|
-
* The faces the design paints as gradients, most with a flat `bg.*` sibling near its
|
|
617
|
-
* middle; see `deriveThemeTokens`. The destructive face is the same red in every palette,
|
|
618
|
-
* as `bg.danger` is.
|
|
619
|
-
*/
|
|
620
579
|
canvas: { value: gradients.canvas },
|
|
621
580
|
panel: { value: gradients.panel },
|
|
622
581
|
card: { value: gradients.card },
|
|
@@ -625,17 +584,16 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
625
584
|
selected: { value: gradients.selected },
|
|
626
585
|
rowHover: { value: gradients.rowHover },
|
|
627
586
|
primary: { value: gradients.primary },
|
|
587
|
+
primaryHover: { value: gradients.primaryHover },
|
|
628
588
|
tinted: { value: gradients.tinted },
|
|
589
|
+
// The destructive face is fixed here rather than drawn from the palette.
|
|
629
590
|
danger: {
|
|
630
591
|
value: {
|
|
631
592
|
base: "linear-gradient(to bottom, #F69385, #F7644F)",
|
|
632
593
|
_light: "linear-gradient(to bottom, #F48272, #F2533C)",
|
|
633
594
|
},
|
|
634
595
|
},
|
|
635
|
-
|
|
636
|
-
* The 1px edges a face draws as a gradient, through `[data-edge]`. Dark draws no edge
|
|
637
|
-
* on the primary or destructive face.
|
|
638
|
-
*/
|
|
596
|
+
// Dark draws no edge on the primary or destructive face.
|
|
639
597
|
"border.raised": { value: glassEdgeWithLightGradient("#BCB6B6", "#9C9A9A") },
|
|
640
598
|
"border.primary": {
|
|
641
599
|
value: {
|
|
@@ -654,36 +612,34 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
654
612
|
"border.otherWorkspaceMark": {
|
|
655
613
|
value: {
|
|
656
614
|
base: linearGradient("to bottom", ["#3C3C3C", "#3C3C3C"], 0.66),
|
|
657
|
-
_light: linearGradient("to bottom",
|
|
615
|
+
_light: linearGradient("to bottom", lightSelectedEdgeEnds, 0.66),
|
|
658
616
|
},
|
|
659
617
|
},
|
|
660
618
|
// The selected face's edge, round a user's chat bubble.
|
|
661
619
|
"border.selected": {
|
|
662
620
|
value: {
|
|
663
621
|
base: darkGlassEdge,
|
|
664
|
-
_light: linearGradient("to bottom",
|
|
622
|
+
_light: linearGradient("to bottom", lightSelectedEdgeEnds, 0.66),
|
|
665
623
|
},
|
|
666
624
|
},
|
|
667
|
-
// A chart's area under its trend line, and a progress bar on track and at risk.
|
|
668
625
|
"chart.area": { value: gradients["chart.area"] },
|
|
669
626
|
"chart.progress": { value: gradients["chart.progress"] },
|
|
670
627
|
"chart.atRisk": { value: gradients["chart.atRisk"] },
|
|
671
628
|
/*
|
|
672
629
|
* The hue glass a badge, a step or the current stage wears, each with its edge: .66 in
|
|
673
|
-
* light and .10 in dark, the done step stronger in dark.
|
|
674
|
-
* in every palette, as the destructive red is.
|
|
630
|
+
* light and .10 in dark, the done step stronger in dark.
|
|
675
631
|
*/
|
|
676
632
|
infoGlass: {
|
|
677
633
|
value: themedGradient("to bottom", { base: ["#FFFFFF", "#A4D5F8"], _light: ["#F4F5F5", "#E2F2FF"] }, { base: 0.1, _light: 0.66 }),
|
|
678
634
|
},
|
|
679
635
|
successGlass: {
|
|
680
|
-
value: themedGradient("to bottom", { base: ["#FFFFFF", "#7BF6FF"], _light:
|
|
636
|
+
value: themedGradient("to bottom", { base: ["#FFFFFF", "#7BF6FF"], _light: lightSuccessGlassEnds }, { base: 0.1, _light: 0.66 }),
|
|
681
637
|
},
|
|
682
638
|
dangerGlass: {
|
|
683
639
|
value: themedGradient("to bottom", { base: ["#FFFFFF", "#F3A69B"], _light: ["#FDFDFD", "#E8DAD9"] }, { base: 0.1, _light: 0.66 }),
|
|
684
640
|
},
|
|
685
641
|
stepDoneGlass: {
|
|
686
|
-
value: themedGradient("to bottom", { base:
|
|
642
|
+
value: themedGradient("to bottom", { base: darkSuccessGreenEnds, _light: lightSuccessGlassEnds }, { base: 0.6, _light: 0.66 }),
|
|
687
643
|
},
|
|
688
644
|
currentStageGlass: {
|
|
689
645
|
value: themedGradient("to bottom", { base: ["#FFFFFF", "#FFCD7B"], _light: ["#F3F3F3", "#FDF4DF"] }, { base: 0.1, _light: 0.66 }),
|
|
@@ -692,24 +648,20 @@ export function createCiridaePreset({ appBase = false, ...theme } = {}) {
|
|
|
692
648
|
"border.successGlass": { value: glassEdgeWithLightGradient("#AEF3E5", "#96BFB9") },
|
|
693
649
|
"border.dangerGlass": { value: glassEdgeWithLightGradient("#DABBBB", "#A68181") },
|
|
694
650
|
"border.stepDoneGlass": {
|
|
695
|
-
value: themedGradient("to bottom", { base:
|
|
651
|
+
value: themedGradient("to bottom", { base: darkSuccessGreenEnds, _light: lightSuccessEdgeEnds }, { base: 0.6, _light: 0.33 }),
|
|
696
652
|
},
|
|
697
653
|
"border.currentStageGlass": { value: glassEdgeWithLightGradient("#EEDFBA", "#E8C674") },
|
|
698
|
-
// The edge of an attention block on its `bg.*Tint`: your move, ready and stuck.
|
|
699
654
|
"border.warningTint": {
|
|
700
655
|
value: themedGradient("to bottom", { base: ["#FFF1C9", "#A47D28"], _light: ["#DBCAA9", "#987C38"] }, { base: 0.15, _light: 0.33 }),
|
|
701
656
|
},
|
|
702
657
|
"border.successTint": {
|
|
703
|
-
value: themedGradient("to bottom", { base:
|
|
658
|
+
value: themedGradient("to bottom", { base: darkSuccessGreenEnds, _light: lightSuccessEdgeEnds }, { base: 0.15, _light: 0.33 }),
|
|
704
659
|
},
|
|
705
660
|
"border.errorTint": {
|
|
706
661
|
value: themedGradient("to bottom", { base: ["#FCC9C1", "#B24839"], _light: ["#C35151", "#8E3D3D"] }, { base: 0.15, _light: 0.33 }),
|
|
707
662
|
},
|
|
708
663
|
},
|
|
709
|
-
|
|
710
|
-
* The overlays' backdrop blur, by role: a popover or menu, a modal's glass shell and its
|
|
711
|
-
* sheet, a drawer's shell. Dark blurs a modal's shell; light blurs its sheet.
|
|
712
|
-
*/
|
|
664
|
+
// Dark blurs a modal's shell; light blurs its sheet.
|
|
713
665
|
blurs: {
|
|
714
666
|
popover: { value: { base: "64px", _light: "128px" } },
|
|
715
667
|
modalShell: { value: { base: "64px", _light: "8px" } },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { withoutSpace } from '../helpers.mjs';
|
|
2
2
|
|
|
3
|
-
const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_wide,_notWide,_rail,_phone,_notPhone,
|
|
3
|
+
const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_wide,_notWide,_rail,_phone,_notPhone,base"
|
|
4
4
|
const conditions = new Set(conditionsStr.split(','))
|
|
5
5
|
|
|
6
6
|
const conditionRegex = /^@|&|&$/
|