@parallelworks/ui 0.53.0 → 0.55.0

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.
Files changed (55) hide show
  1. package/README.md +68 -9
  2. package/dist/access/AccessDrawer.d.ts +55 -0
  3. package/dist/access/AccessDrawer.js +445 -0
  4. package/dist/access/AccessList.d.ts +58 -0
  5. package/dist/access/AccessList.js +382 -0
  6. package/dist/access/GrantView.d.ts +35 -0
  7. package/dist/access/GrantView.js +188 -0
  8. package/dist/access/GroupPicker.d.ts +35 -0
  9. package/dist/access/GroupPicker.js +336 -0
  10. package/dist/access/focus.d.ts +10 -0
  11. package/dist/access/focus.js +27 -0
  12. package/dist/access/index.d.ts +3 -0
  13. package/dist/access/index.js +3 -0
  14. package/dist/access/model.d.ts +49 -0
  15. package/dist/access/model.js +129 -0
  16. package/dist/access/strings.d.ts +122 -0
  17. package/dist/access/strings.js +151 -0
  18. package/dist/access/types.d.ts +56 -0
  19. package/dist/ai/components/SlashMenu.js +1 -1
  20. package/dist/components/Combobox.d.ts +19 -0
  21. package/dist/components/Combobox.js +101 -50
  22. package/dist/components/DatePicker.js +4 -5
  23. package/dist/components/Drawer.d.ts +6 -1
  24. package/dist/components/Drawer.js +25 -16
  25. package/dist/components/Field.d.ts +8 -3
  26. package/dist/components/Field.js +32 -12
  27. package/dist/components/InfoTip.d.ts +3 -1
  28. package/dist/components/InfoTip.js +2 -1
  29. package/dist/components/Menu.js +4 -4
  30. package/dist/components/MenuEntries.js +1 -1
  31. package/dist/components/OptionDescription.d.ts +7 -0
  32. package/dist/components/OptionDescription.js +19 -0
  33. package/dist/components/Popover.d.ts +4 -1
  34. package/dist/components/Popover.js +2 -2
  35. package/dist/components/Provider.d.ts +7 -0
  36. package/dist/components/Provider.js +3 -0
  37. package/dist/components/Select.js +13 -11
  38. package/dist/components/comboboxItems.d.ts +10 -0
  39. package/dist/components/comboboxItems.js +8 -1
  40. package/dist/components/floating.d.ts +5 -2
  41. package/dist/components/floating.js +2 -2
  42. package/dist/editor/EditorField.js +1 -2
  43. package/dist/editor/Monaco.js +26 -2
  44. package/dist/editor/themes.d.ts +5 -0
  45. package/dist/editor/themes.js +18 -3
  46. package/dist/file-explorer/FileExplorer.js +2 -1
  47. package/dist/file-explorer/lib/paging.d.ts +1 -0
  48. package/dist/file-explorer/lib/paging.js +5 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.js +2 -2
  51. package/dist/styles/theme.css +82 -62
  52. package/dist/styles.css +1 -1
  53. package/dist/theme/derive.d.ts +5 -3
  54. package/dist/theme/derive.js +74 -4
  55. package/package.json +6 -2
@@ -1,5 +1,10 @@
1
1
  import type * as monaco from 'monaco-editor';
2
+ import { type Mode } from '../theme/index.js';
2
3
  export declare function expandShorthandHex(color: string): string;
4
+ /** The arm of a `light-dark()` value for a mode, or the value itself. A token the host leaves to
5
+ * theme.css reads as `light-dark(light, dark)`, which CSS resolves by the color-scheme of where it
6
+ * is used; Monaco takes one color per theme, so each theme takes its own mode's arm. */
7
+ export declare function forMode(value: string, mode: Mode): string;
3
8
  /**
4
9
  * Defines the light and dark Monaco themes from the document's tokens. Call it again after the
5
10
  * host applies other tokens; it returns whether anything changed.
@@ -6,11 +6,26 @@ function expandShorthandHex(color) {
6
6
  return /^#([0-9a-fA-F]{3,4})$/.test(color) ? "#" + color.slice(1).split("").map((c) => c + c).join("") : color;
7
7
  }
8
8
  var fallbacks = {};
9
+ /** The arm of a `light-dark()` value for a mode, or the value itself. A token the host leaves to
10
+ * theme.css reads as `light-dark(light, dark)`, which CSS resolves by the color-scheme of where it
11
+ * is used; Monaco takes one color per theme, so each theme takes its own mode's arm. */
12
+ function forMode(value, mode) {
13
+ const inner = /^light-dark\((.*)\)$/s.exec(value.trim())?.[1];
14
+ if (inner === void 0) return value;
15
+ let depth = 0;
16
+ for (let i = 0; i < inner.length; i++) {
17
+ const ch = inner[i];
18
+ if (ch === "(") depth++;
19
+ else if (ch === ")") depth--;
20
+ else if (ch === "," && depth === 0) return (mode === "light" ? inner.slice(0, i) : inner.slice(i + 1)).trim();
21
+ }
22
+ return value;
23
+ }
9
24
  /** A token as Monaco takes it: a 6-digit hex. Monaco can't read display-p3, so
10
25
  * a wide-gamut value is mapped back into sRGB; the default theme fills in for
11
26
  * a host that sets no tokens. */
12
27
  function token(style, name, mode) {
13
- const color = parseColor(expandShorthandHex(style?.getPropertyValue(name).trim() ?? ""));
28
+ const color = parseColor(expandShorthandHex(forMode(style?.getPropertyValue(name) ?? "", mode).trim()));
14
29
  if (color) return toHex(color);
15
30
  fallbacks[mode] ??= deriveTheme(schemeFor(DEFAULT_THEME, mode));
16
31
  return fallbacks[mode][name];
@@ -51,7 +66,7 @@ function editorTheme(style, mode) {
51
66
  "editor.background": c("--theme-panel-bg"),
52
67
  "editor.border": c("--theme-border"),
53
68
  "editorCursor.foreground": c("--theme-app"),
54
- "editor.lineHighlightBackground": c("--theme-hover"),
69
+ "editor.lineHighlightBackground": c(mode === "dark" ? "--theme-panel-hover" : "--theme-hover"),
55
70
  "editorLineNumber.foreground": c("--theme-placeholder"),
56
71
  "editorLineNumber.activeForeground": c("--theme-muted-text-color"),
57
72
  ...mode === "dark" ? {
@@ -120,4 +135,4 @@ function getThemeName(isDark) {
120
135
  return `app-${isDark ? "dark" : "light"}`;
121
136
  }
122
137
  //#endregion
123
- export { defineEditorThemes, expandShorthandHex, followThemeTokens, getThemeName };
138
+ export { defineEditorThemes, expandShorthandHex, followThemeTokens, forMode, getThemeName };
@@ -37,7 +37,7 @@ import { FilePreviewInline } from "./FilePreview/Inline.js";
37
37
  import { UserRow } from "./FileRow.js";
38
38
  import { FileTableHeaders } from "./FileTableHeaders.js";
39
39
  import { FileTable } from "./FileTable.js";
40
- import { advanceListing, beginLoadingMore, canAutoLoadMore, clearListingError, clearListingsUnder, hasMore, incompletePaths, isListed, isLoadingMore, loadMoreError, nextHydrationStep, recordListingError, replaceListing } from "./lib/paging.js";
40
+ import { advanceListing, beginLoadingMore, canAutoLoadMore, clearListingError, clearListingsUnder, hasMore, incompletePaths, isListed, isLoadingMore, loadMoreError, nextHydrationStep, recordListingError, replaceListing, retainListings } from "./lib/paging.js";
41
41
  import { TreeView } from "./TreeView.js";
42
42
  import { Menu } from "@base-ui/react/menu";
43
43
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -949,6 +949,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
949
949
  const handleRefresh = async (opts) => {
950
950
  const dirs = [...expandedPaths].map((path) => treeMap[path]).filter((node) => !!node && node.type === "directory" && !!node.storageId);
951
951
  if (selectedNode?.type === "directory" && selectedNode.storageId && !dirs.some((dir) => dir.path === selectedNode.path)) dirs.push(selectedNode);
952
+ setListings((prev) => retainListings(prev, new Set(dirs.map((dir) => dir.path))));
952
953
  if (dirs.length > 0) return { corsError: (await Promise.all(dirs.map((dir) => fetchNodeChildren(dir, {
953
954
  replace: true,
954
955
  silent: opts?.silent
@@ -47,6 +47,7 @@ export declare function recordListingError(listings: TListings, path: string, er
47
47
  /** Keeps the cursor and pages, so a retry resumes paging instead of starting over. */
48
48
  export declare function clearListingError(listings: TListings, path: string): TListings;
49
49
  export declare function clearListingsUnder(listings: TListings, path: string): TListings;
50
+ export declare function retainListings(listings: TListings, paths: ReadonlySet<string>): TListings;
50
51
  /** Tree paths whose children should keep arrival order, since sorting them would
51
52
  * reshuffle rows under the user mid-scroll. */
52
53
  export declare function incompletePaths(listings: TListings): Set<string>;
@@ -83,6 +83,10 @@ function clearListingsUnder(listings, path) {
83
83
  for (const key of listings.keys()) if (key === path || key.startsWith(prefix)) next.delete(key);
84
84
  return next;
85
85
  }
86
+ function retainListings(listings, paths) {
87
+ if ([...listings.keys()].every((path) => paths.has(path))) return listings;
88
+ return new Map([...listings].filter(([path]) => paths.has(path)));
89
+ }
86
90
  /** Tree paths whose children should keep arrival order, since sorting them would
87
91
  * reshuffle rows under the user mid-scroll. */
88
92
  function incompletePaths(listings) {
@@ -121,4 +125,4 @@ function nextHydrationStep({ targetResolved, ancestors, isListableDir, listings,
121
125
  };
122
126
  }
123
127
  //#endregion
124
- export { LIST_PAGE_SIZE, advanceListing, beginLoadingMore, canAutoLoadMore, clearListingError, clearListingsUnder, hasMore, incompletePaths, isListed, isLoadingMore, loadMoreError, nextHydrationStep, recordListingError, replaceListing };
128
+ export { LIST_PAGE_SIZE, advanceListing, beginLoadingMore, canAutoLoadMore, clearListingError, clearListingsUnder, hasMore, incompletePaths, isListed, isLoadingMore, loadMoreError, nextHydrationStep, recordListingError, replaceListing, retainListings };
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { Disclosure, DisclosurePanel, type DisclosureProps } from './components/
18
18
  export { Drawer, type DrawerProps } from './components/Drawer.js';
19
19
  export { EmptyState, type EmptyStateProps } from './components/EmptyState.js';
20
20
  export { ExternalLink, type ExternalLinkProps } from './components/ExternalLink.js';
21
- export { ErrorText, Field, type FieldControlProps, type FieldLayout, FieldOption, type FieldProps, FieldValue, type FieldValueProps, RevealToggle, useFieldControl, } from './components/Field.js';
21
+ export { ErrorText, Field, type FieldControlProps, type FieldLayout, FieldOption, type FieldProps, FieldValue, type FieldValueProps, RevealToggle, useFieldControl, useFieldLabelledControl, } from './components/Field.js';
22
22
  export { type FieldBoxOptions, type FieldBoxSize, fieldBox } from './components/fieldBox.js';
23
23
  export type { FloatingAnchor } from './components/floating.js';
24
24
  export { HoverCard, type HoverCardProps } from './components/HoverCard.js';
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import { ExternalLink } from "./components/ExternalLink.js";
28
28
  import { Popover, PopoverClose, useClosePopover } from "./components/Popover.js";
29
29
  import { InfoTip, formatInfoTipContent } from "./components/InfoTip.js";
30
30
  import { RequiredMark } from "./components/RequiredMark.js";
31
- import { ErrorText, Field, FieldOption, FieldValue, RevealToggle, useFieldControl } from "./components/Field.js";
31
+ import { ErrorText, Field, FieldOption, FieldValue, RevealToggle, useFieldControl, useFieldLabelledControl } from "./components/Field.js";
32
32
  import { Input, Textarea } from "./components/Input.js";
33
33
  import { ColorInput } from "./components/ColorInput.js";
34
34
  import { Autocomplete, Combobox } from "./components/Combobox.js";
@@ -72,4 +72,4 @@ import { ThemeEditor, ThemePreview } from "./components/ThemeEditor.js";
72
72
  import { ToggleGroup } from "./components/ToggleGroup.js";
73
73
  import { useCssIsDark } from "./components/useCssIsDark.js";
74
74
  import { useApplyTheme, useColorMode } from "./components/useTheme.js";
75
- export { ActionMenu, AppLink, Autocomplete, Avatar, Button, CODE_STYLES, Callout, Card, CardHeader, Checkbox, CheckboxGroup, ColorInput, Combobox, ConfirmModal, CopyButton, CopyCodeBlock, CreateModal, CreateModalSelect, CreateModalSwitch, DEFAULT_CONTRAST, DEFAULT_PRESET, DEFAULT_THEME, DatePicker, DescriptionList, DescriptionListGroup, DescriptionListItem, Disclosure, DisclosurePanel, Drawer, Elapsed, EmptyState, ErrorText, ExternalLink, Field, FieldOption, FieldValue, HoverCard, IconButton, InfoTip, Input, JND, LetterBadge, Loader, LoadingRegion, Markdown, MenuCheckboxItem, MenuEntries, MenuFilter, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, Meter, MethodButton, Modal, ModalDescription, ModalTitle, NumberInput, OneTimeCodeInput, Overview, PAGE_SIZES, PageHeader, PageHeaderAction, PageHeaderAddButton, PageHeaderBar, PageHeaderMenu, PageHeaderProvider, Pagination, Popover, PopoverClose, ProgressBar, Radio, RadioGroup, RefreshButton, RelativeTime, RequiredMark, RevealToggle, RunStatusIcon, SIDEBAR_TOKENS, SearchInput, Section, SegmentedControl, Select, SettingModeOption, SettingRow, SettingsCard, SettingsHeading, Skeleton, Slider, StatusBadge, StatusDot, Switch, THEME_PRESETS, THEME_TOKENS, TabPanel, Table, Tabs, Textarea, ThemeEditor, ThemePreview, ToggleGroup, Tooltip, TooltipProvider, UIProvider, apcaContrast, applyTheme, avatarInitials, buttonClasses, composite, contrastRatio, cx, deltaE, deriveTheme, fieldBox, fitSeed, formatBytes, formatCount, formatDateTime, formatDuration, formatInfoTipContent, formatTimeLeft, generateTheme, isDarkColor, isPlainClick, isTextEntryContext, levelTone, menuDivider, modalPanelClassName, modeOf, parseColor, parseTheme, prefersWideGamut, resolveMode, runStatusTone, schemeFor, serializeTheme, statusTextClass, themeStylesheet, toHex, toP3, toast, useApplyTheme, useClock, useClosePopover, useColorMode, useContextMenu, useCopy, useCssIsDark, useElapsed, useFieldControl, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRelativeTime, useRunFile, useShortcutKey, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader };
75
+ export { ActionMenu, AppLink, Autocomplete, Avatar, Button, CODE_STYLES, Callout, Card, CardHeader, Checkbox, CheckboxGroup, ColorInput, Combobox, ConfirmModal, CopyButton, CopyCodeBlock, CreateModal, CreateModalSelect, CreateModalSwitch, DEFAULT_CONTRAST, DEFAULT_PRESET, DEFAULT_THEME, DatePicker, DescriptionList, DescriptionListGroup, DescriptionListItem, Disclosure, DisclosurePanel, Drawer, Elapsed, EmptyState, ErrorText, ExternalLink, Field, FieldOption, FieldValue, HoverCard, IconButton, InfoTip, Input, JND, LetterBadge, Loader, LoadingRegion, Markdown, MenuCheckboxItem, MenuEntries, MenuFilter, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, Meter, MethodButton, Modal, ModalDescription, ModalTitle, NumberInput, OneTimeCodeInput, Overview, PAGE_SIZES, PageHeader, PageHeaderAction, PageHeaderAddButton, PageHeaderBar, PageHeaderMenu, PageHeaderProvider, Pagination, Popover, PopoverClose, ProgressBar, Radio, RadioGroup, RefreshButton, RelativeTime, RequiredMark, RevealToggle, RunStatusIcon, SIDEBAR_TOKENS, SearchInput, Section, SegmentedControl, Select, SettingModeOption, SettingRow, SettingsCard, SettingsHeading, Skeleton, Slider, StatusBadge, StatusDot, Switch, THEME_PRESETS, THEME_TOKENS, TabPanel, Table, Tabs, Textarea, ThemeEditor, ThemePreview, ToggleGroup, Tooltip, TooltipProvider, UIProvider, apcaContrast, applyTheme, avatarInitials, buttonClasses, composite, contrastRatio, cx, deltaE, deriveTheme, fieldBox, fitSeed, formatBytes, formatCount, formatDateTime, formatDuration, formatInfoTipContent, formatTimeLeft, generateTheme, isDarkColor, isPlainClick, isTextEntryContext, levelTone, menuDivider, modalPanelClassName, modeOf, parseColor, parseTheme, prefersWideGamut, resolveMode, runStatusTone, schemeFor, serializeTheme, statusTextClass, themeStylesheet, toHex, toP3, toast, useApplyTheme, useClock, useClosePopover, useColorMode, useContextMenu, useCopy, useCssIsDark, useElapsed, useFieldControl, useFieldLabelledControl, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRelativeTime, useRunFile, useShortcutKey, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader };
@@ -1,8 +1,9 @@
1
1
  /* The theme contract: `theme-*` utilities over the `--theme-*` tokens, which
2
2
  * src/theme generates from a scheme of three choices (base, accent, contrast).
3
3
  * Hosts set the tokens at runtime with applyTheme; the defaults below are the
4
- * default theme's light scheme, for standalone use, with display-p3 values for
5
- * wide-gamut screens.
4
+ * default theme's light and dark schemes, for standalone use and for any token
5
+ * a host leaves unset, with display-p3 values for wide-gamut screens. Each pairs
6
+ * its modes with light-dark(), so it follows the CSS color-scheme a host sets.
6
7
  *
7
8
  * Sidebar tokens (--theme-sidebar-*) are part of the contract but have no
8
9
  * defaults here: hosts supply per-site fallbacks at the use sites, and a global
@@ -10,75 +11,94 @@
10
11
 
11
12
  /* generated:start (src/theme/derive.test.ts checks this; UPDATE_THEME_CSS=1 rewrites it) */
12
13
  :root {
13
- --theme-app-bg: #f3f4f6;
14
- --theme-panel-bg: #fcfeff;
15
- --theme-panel-hover: #f2f5f9;
16
- --theme-muted-panel-bg: #e7eaee;
17
- --theme-hover: #e3e5e9;
18
- --theme-input-bg: #fafcfe;
19
- --theme-input-disabled-bg: #ebeef1;
20
- --theme-app: #0a101b;
21
- --theme-muted-text-color: #4e5664;
22
- --theme-placeholder: #7e8796;
23
- --theme-link: #06354f;
24
- --theme-border: #cacdd0;
25
- --theme-border-strong: #a3a6a9;
26
- --theme-accent: #06354f;
27
- --theme-accent-text: #ffffff;
28
- --theme-accent-hover: #002841;
29
- --theme-accent-subtle: #d3ebfc;
30
- --theme-focus: #06354f;
31
- --theme-focus-ring: rgba(6, 53, 79, 0.25);
32
- --theme-success: #00973d;
33
- --theme-success-text: #006226;
14
+ --theme-app-bg: light-dark(#f3f4f6, #111418);
15
+ --theme-panel-bg: light-dark(#fcfeff, #151c25);
16
+ --theme-panel-hover: light-dark(#f2f5f9, #1e262e);
17
+ --theme-muted-panel-bg: light-dark(#e7eaee, #1c242c);
18
+ --theme-hover: light-dark(#e3e5e9, #323a43);
19
+ --theme-input-bg: light-dark(#fafcfe, #182028);
20
+ --theme-input-disabled-bg: light-dark(#ebeef1, #131a22);
21
+ --theme-app: light-dark(#0a101b, #e9f1fa);
22
+ --theme-muted-text-color: light-dark(#4e5664, #c8d1d9);
23
+ --theme-placeholder: light-dark(#7e8796, #9da5ad);
24
+ --theme-link: light-dark(#06354f, #9dd7ff);
25
+ --theme-border: light-dark(#cacdd0, #30363d);
26
+ --theme-border-strong: light-dark(#a3a6a9, #4f565d);
27
+ --theme-accent: light-dark(#06354f, #5b9ccf);
28
+ --theme-accent-text: light-dark(#ffffff, #000000);
29
+ --theme-accent-hover: light-dark(#002841, #6aace0);
30
+ --theme-accent-subtle: light-dark(#d3ebfc, #0f2638);
31
+ --theme-focus: light-dark(#06354f, #5b9ccf);
32
+ --theme-focus-ring: light-dark(rgba(6, 53, 79, 0.25), rgba(91, 156, 207, 0.35));
33
+ --theme-success: light-dark(#00973d, #00bf54);
34
+ --theme-success-text: light-dark(#006226, #6be88c);
34
35
  --theme-success-solid: #00873c;
35
- --theme-success-muted: rgba(0, 151, 61, 0.1);
36
- --theme-error: #ea4841;
37
- --theme-error-text: #a11a1b;
36
+ --theme-success-muted: light-dark(rgba(0, 151, 61, 0.1), rgba(0, 191, 84, 0.15));
37
+ --theme-error: light-dark(#ea4841, #ff6056);
38
+ --theme-error-text: light-dark(#a11a1b, #ffc1b8);
38
39
  --theme-error-solid: #db3934;
39
- --theme-error-muted: rgba(234, 72, 65, 0.1);
40
- --theme-warning: #bd7100;
41
- --theme-warning-text: #7b4a00;
40
+ --theme-error-muted: light-dark(rgba(234, 72, 65, 0.1), rgba(255, 96, 86, 0.15));
41
+ --theme-warning: light-dark(#bd7100, #dd8900);
42
+ --theme-warning-text: light-dark(#7b4a00, #ffc672);
42
43
  --theme-warning-solid: #a76900;
43
- --theme-warning-muted: rgba(189, 113, 0, 0.1);
44
- --theme-info: #0681f8;
45
- --theme-info-text: #0050af;
46
- --theme-info-solid: #0073e8;
47
- --theme-info-muted: rgba(6, 129, 248, 0.1);
48
- --theme-favorite: #e7457a;
49
- --theme-favorite-text: #9e174b;
44
+ --theme-warning-muted: light-dark(rgba(189, 113, 0, 0.1), rgba(221, 137, 0, 0.15));
45
+ --theme-info: light-dark(#0681f8, #499fff);
46
+ --theme-info-text: light-dark(#0050af, #abd4ff);
47
+ --theme-info-solid: light-dark(#0073e8, #0073e9);
48
+ --theme-info-muted: light-dark(rgba(6, 129, 248, 0.1), rgba(73, 159, 255, 0.15));
49
+ --theme-favorite: light-dark(#e7457a, #fe5c8e);
50
+ --theme-favorite-text: light-dark(#9e174b, #ffbecd);
50
51
  --theme-favorite-solid: #d7366e;
51
- --theme-favorite-muted: rgba(231, 69, 122, 0.1);
52
- --theme-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.07);
53
- --theme-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.07);
54
- --theme-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.07), 0 4px 6px -4px rgba(0, 0, 0, 0.07);
55
- --theme-shadow-xl: 0 25px 80px -20px rgba(0, 0, 0, 0.2), 0 10px 30px -10px rgba(0, 0, 0, 0.1);
56
- --theme-code-bg: #e7eaee;
57
- --theme-code-text: #1c2330;
58
- --theme-code-comment: #555d6c;
59
- --theme-code-keyword: #36617d;
60
- --theme-code-string: #196a24;
61
- --theme-code-number: #944500;
62
- --theme-code-function: #6c4b9e;
63
- --theme-code-type: #006565;
64
- --theme-code-property: #5a51a5;
65
- --theme-ansi-black: #1c2330;
66
- --theme-ansi-red: #a3322d;
67
- --theme-ansi-green: #006a12;
68
- --theme-ansi-yellow: #755800;
69
- --theme-ansi-blue: #0b5aae;
70
- --theme-ansi-magenta: #8d3a88;
71
- --theme-ansi-cyan: #00666c;
72
- --theme-ansi-white: #555d6c;
52
+ --theme-favorite-muted: light-dark(rgba(231, 69, 122, 0.1), rgba(254, 92, 142, 0.15));
53
+ --theme-shadow-sm: 0 1px 2px light-dark(rgba(0, 0, 0, 0.07), rgba(0, 0, 0, 0.35));
54
+ --theme-shadow:
55
+ 0 4px 6px -1px light-dark(rgba(0, 0, 0, 0.07), rgba(0, 0, 0, 0.35)),
56
+ 0 2px 4px -2px light-dark(rgba(0, 0, 0, 0.07), rgba(0, 0, 0, 0.35));
57
+ --theme-shadow-lg:
58
+ 0 10px 15px -3px light-dark(rgba(0, 0, 0, 0.07), rgba(0, 0, 0, 0.35)),
59
+ 0 4px 6px -4px light-dark(rgba(0, 0, 0, 0.07), rgba(0, 0, 0, 0.35));
60
+ --theme-shadow-xl:
61
+ 0 25px 80px -20px light-dark(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6)),
62
+ 0 10px 30px -10px light-dark(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.4));
63
+ --theme-code-bg: light-dark(#e7eaee, #1c242c);
64
+ --theme-code-text: light-dark(#1c2330, #e1e9f2);
65
+ --theme-code-comment: light-dark(#555d6c, #c0c8d1);
66
+ --theme-code-keyword: light-dark(#36617d, #8cceff);
67
+ --theme-code-string: light-dark(#196a24, #8bd98d);
68
+ --theme-code-number: light-dark(#944500, #ffb882);
69
+ --theme-code-function: light-dark(#6c4b9e, #d3bcff);
70
+ --theme-code-type: light-dark(#006565, #31dbdb);
71
+ --theme-code-property: light-dark(#5a51a5, #31dbdb);
72
+ --theme-ansi-black: light-dark(#1c2330, #c0c8d1);
73
+ --theme-ansi-red: light-dark(#a3322d, #ffb5ab);
74
+ --theme-ansi-green: light-dark(#006a12, #7fdb83);
75
+ --theme-ansi-yellow: light-dark(#755800, #edc23e);
76
+ --theme-ansi-blue: light-dark(#0b5aae, #9ecbff);
77
+ --theme-ansi-magenta: light-dark(#8d3a88, #ffaafe);
78
+ --theme-ansi-cyan: light-dark(#00666c, #00dbe5);
79
+ --theme-ansi-white: light-dark(#555d6c, #e1e9f2);
73
80
  }
74
81
 
75
82
  @media (color-gamut: p3) {
76
83
  :root {
77
- --theme-success: color(display-p3 0.1559 0.5942 0.2459);
84
+ --theme-success: light-dark(color(display-p3 0.1559 0.5942 0.2459), #00bf54);
78
85
  --theme-success-solid: color(display-p3 0.0738 0.5422 0.1959);
79
- --theme-success-muted: color(display-p3 0.1559 0.5942 0.2459 / 0.1);
80
- --theme-warning-solid: color(display-p3 0.6474 0.4089 0);
81
- --theme-ansi-cyan: color(display-p3 0 0.4024 0.4329);
86
+ --theme-success-muted: light-dark(
87
+ color(display-p3 0.1559 0.5942 0.2459 / 0.1),
88
+ rgba(0, 191, 84, 0.15)
89
+ );
90
+ --theme-warning: light-dark(#bd7100, color(display-p3 0.8343 0.5429 0));
91
+ --theme-warning-solid: light-dark(
92
+ color(display-p3 0.6474 0.4089 0),
93
+ color(display-p3 0.6478 0.4092 0)
94
+ );
95
+ --theme-warning-muted: light-dark(
96
+ rgba(189, 113, 0, 0.1),
97
+ color(display-p3 0.8343 0.5429 0 / 0.15)
98
+ );
99
+ --theme-code-number: light-dark(#944500, color(display-p3 1 0.7209 0.5024));
100
+ --theme-ansi-red: light-dark(#a3322d, color(display-p3 1 0.7032 0.6565));
101
+ --theme-ansi-cyan: light-dark(color(display-p3 0 0.4024 0.4329), #00dbe5);
82
102
  }
83
103
  }
84
104
  /* generated:end */