@dxos/ui-theme 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +9 -15
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +9 -15
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/plugin/node-cjs/meta.json +1 -1
- package/dist/plugin/node-cjs/theme.css +12 -2
- package/dist/plugin/node-cjs/theme.css.map +3 -3
- package/dist/plugin/node-esm/meta.json +1 -1
- package/dist/plugin/node-esm/theme.css +12 -2
- package/dist/plugin/node-esm/theme.css.map +3 -3
- package/dist/types/src/defs.d.ts +1 -1
- package/dist/types/src/fragments/index.d.ts +0 -1
- package/dist/types/src/fragments/index.d.ts.map +1 -1
- package/dist/types/src/theme/primitives/panel.d.ts.map +1 -1
- package/dist/types/src/util/mx.d.ts +287 -4
- package/dist/types/src/util/mx.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/src/css/components/selected.css +19 -0
- package/src/css/layout/size.css +5 -3
- package/src/css/theme/semantic.css +11 -0
- package/src/defs.ts +1 -1
- package/src/fragments/index.ts +0 -1
- package/src/theme/components/select.ts +2 -2
- package/src/theme/primitives/panel.ts +3 -0
- package/src/theme.css +1 -0
- package/src/util/mx.ts +14 -8
- package/dist/types/src/fragments/selected.d.ts +0 -4
- package/dist/types/src/fragments/selected.d.ts.map +0 -1
- package/src/fragments/selected.ts +0 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/defs.ts
|
|
2
|
-
var osTranslations = "dxos.
|
|
2
|
+
var osTranslations = "org.dxos.i18n.os";
|
|
3
3
|
var hues = [
|
|
4
4
|
"red",
|
|
5
5
|
"orange",
|
|
@@ -105,11 +105,6 @@ var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
|
|
|
105
105
|
var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
|
|
106
106
|
var hoverableControlItem = "opacity-(--controls-opacity)";
|
|
107
107
|
|
|
108
|
-
// src/fragments/selected.ts
|
|
109
|
-
var ghostHighlighted = "data-[highlighted]:bg-primary-100 dark:data-[highlighted]:bg-primary-600 hover:data-[highlighted]:bg-primary-150 hover:dark:data-[highlighted]:bg-primary-500";
|
|
110
|
-
var ghostSelected = "aria-selected:bg-base-surface aria-selected:text-accent-text hover:aria-selected:text-accent-text-hover aria-selected:font-semibold aria-selected:tracking-normal transition-[color,font-variation-settings,letter-spacing]";
|
|
111
|
-
var ghostSelectedContainerMd = "@md:aria-selected:bg-base-surface @md:aria-selected:text-accent-text @md:hover:aria-selected:text-accent-text-hover @md:aria-selected:font-semibold @md:aria-selected:tracking-normal @md:transition-[color,font-variation-settings,letter-spacing]";
|
|
112
|
-
|
|
113
108
|
// src/util/hash-styles.ts
|
|
114
109
|
var neutral = {
|
|
115
110
|
hue: "neutral",
|
|
@@ -318,9 +313,10 @@ var mx = extendTailwindMerge({
|
|
|
318
313
|
}
|
|
319
314
|
}
|
|
320
315
|
});
|
|
321
|
-
var
|
|
322
|
-
|
|
323
|
-
props
|
|
316
|
+
var composableProps = ({ className, classNames, ...props }, { className: defaultClassNames, ...defaults } = {}) => ({
|
|
317
|
+
...defaults,
|
|
318
|
+
...props,
|
|
319
|
+
className: mx(defaultClassNames, className, classNames)
|
|
324
320
|
});
|
|
325
321
|
|
|
326
322
|
// src/fragments/size.ts
|
|
@@ -1039,7 +1035,7 @@ var selectContent = ({ elevation }, ...etc) => {
|
|
|
1039
1035
|
}), ...etc);
|
|
1040
1036
|
};
|
|
1041
1037
|
var selectViewport = (_props, ...etc) => mx(...etc);
|
|
1042
|
-
var selectItem = (_props, ...etc) => mx("flex items-center min-h-[2rem] px-3 py-1 gap-2", "text-base-surface-text leading-none select-none outline-hidden", "[&>svg]:invisible [&[data-state=checked]>svg]:visible",
|
|
1038
|
+
var selectItem = (_props, ...etc) => mx("flex items-center min-h-[2rem] px-3 py-1 gap-2", "text-base-surface-text leading-none select-none outline-hidden", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", "dx-highlighted", ...etc);
|
|
1043
1039
|
var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
|
|
1044
1040
|
var selectArrow = (_props, ...etc) => mx("fill-separator", ...etc);
|
|
1045
1041
|
var selectSeparator = (_props, ...etc) => mx("self-stretch border-b my-1 border-separator", ...etc);
|
|
@@ -1205,6 +1201,7 @@ var columnTheme = {
|
|
|
1205
1201
|
var panelRoot = (_, ...etc) => mx(
|
|
1206
1202
|
// prettier-ignore
|
|
1207
1203
|
"h-full w-full grid grid-cols-[100%] overflow-hidden",
|
|
1204
|
+
// Add uncategorized children to content slot.
|
|
1208
1205
|
"[&>*:not([data-slot])]:[grid-area:content]",
|
|
1209
1206
|
...etc
|
|
1210
1207
|
);
|
|
@@ -1305,6 +1302,7 @@ export {
|
|
|
1305
1302
|
cardTheme,
|
|
1306
1303
|
coarseBlockSize,
|
|
1307
1304
|
coarseDimensions,
|
|
1305
|
+
composableProps,
|
|
1308
1306
|
computeSize,
|
|
1309
1307
|
dataDisabled,
|
|
1310
1308
|
defaultButtonColors,
|
|
@@ -1332,10 +1330,7 @@ export {
|
|
|
1332
1330
|
getStyles,
|
|
1333
1331
|
ghostButtonColors,
|
|
1334
1332
|
ghostFocusWithin,
|
|
1335
|
-
ghostHighlighted,
|
|
1336
1333
|
ghostHover,
|
|
1337
|
-
ghostSelected,
|
|
1338
|
-
ghostSelectedContainerMd,
|
|
1339
1334
|
groupHoverControlItemWithTransition,
|
|
1340
1335
|
hoverableControlItem,
|
|
1341
1336
|
hoverableControls,
|
|
@@ -1440,7 +1435,6 @@ export {
|
|
|
1440
1435
|
treegridCell,
|
|
1441
1436
|
treegridRoot,
|
|
1442
1437
|
treegridRow,
|
|
1443
|
-
treegridTheme
|
|
1444
|
-
useComposableProps
|
|
1438
|
+
treegridTheme
|
|
1445
1439
|
};
|
|
1446
1440
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/defs.ts", "../../../src/fragments/density.ts", "../../../src/fragments/disabled.ts", "../../../src/fragments/elevation.ts", "../../../src/fragments/focus.ts", "../../../src/fragments/hover.ts", "../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ChromaticPalette } from '@dxos/ui-types';\n\n/**\n * Translation namespace for OS-level translations.\n */\nexport const osTranslations = 'dxos.org/i18n/os';\n\n/**\n * Available color hues for UI components.\n */\nexport const hues: ChromaticPalette[] = [\n 'red',\n 'orange',\n 'amber',\n 'yellow',\n 'lime',\n 'green',\n 'emerald',\n 'teal',\n 'cyan',\n 'sky',\n 'blue',\n 'indigo',\n 'violet',\n 'purple',\n 'fuchsia',\n 'pink',\n 'rose',\n] as const;\n\nexport const hueShades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const;\n\nexport const roles = ['fill', 'surface', 'surface-text', 'text', 'border'] as const;\n\n/**\n * Card size constants (Tailwind spacing units).\n * Cards should be no larger than 320px per WCAG 2.1 SC 1.4.10.\n */\n// TODO(burdon): Replace usage of these with semantic tokens.\nexport const cardMinInlineSize = 18;\nexport const cardDefaultInlineSize = 20; // 320px\nexport const cardMaxInlineSize = 22;\nexport const cardMinBlockSize = 18;\nexport const cardMaxBlockSize = 30;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Density } from '@dxos/ui-types';\n\nexport const coarseBlockSize = 'min-h-[2.5rem]';\nexport const coarseDimensions = `${coarseBlockSize} px-3`;\n\nexport const fineBlockSize = 'min-h-[2.5rem] pointer-fine:min-h-[2rem]';\nexport const fineDimensions = `${fineBlockSize} px-2`;\n\nexport const densityBlockSize = (density: Density = 'coarse') => (density === 'fine' ? fineBlockSize : coarseBlockSize);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const staticDisabled = 'opacity-40 cursor-not-allowed shadow-none';\nexport const dataDisabled = 'data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFragment, type Elevation, type SurfaceLevel } from '@dxos/ui-types';\n\nexport const surfaceShadow: ComponentFragment<{ elevation?: Elevation }> = ({ elevation }) => [\n elevation === 'positioned'\n ? 'shadow-sm'\n : elevation === 'dialog' || elevation === 'toast'\n ? 'shadow-md'\n : 'shadow-none',\n];\n\nexport const surfaceZIndex: ComponentFragment<{ level?: SurfaceLevel; elevation?: Elevation }> = ({\n level,\n elevation,\n}) => {\n switch (level) {\n case 'tooltip':\n return elevation === 'dialog' ? ['z-[53]'] : elevation === 'toast' ? ['z-[43]'] : ['z-50'];\n case 'menu':\n return elevation === 'dialog' ? ['z-[52]'] : elevation === 'toast' ? ['z-[42]'] : ['z-20'];\n default:\n return elevation === 'dialog' ? ['z-[51]'] : elevation === 'toast' ? ['z-[41]'] : ['z-[1]'];\n }\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const focusRing = 'dx-focus-ring';\n\nexport const subduedFocus =\n 'focus:outline-hidden focus-visible:outline-hidden focus:ring-0 ring-0 focus:border-0 border-0';\n\nexport const staticFocusRing =\n 'ring-2 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const subtleHover = 'hover:bg-hover-overlay';\n\nexport const ghostHover = 'hover:bg-hover-surface';\nexport const ghostFocusWithin = 'focus-within:bg-hover-surface';\n\nexport const hoverableControls =\n '[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]';\n\nexport const groupHoverControlItemWithTransition = 'transition-opacity duration-200 opacity-0 group-hover:opacity-100';\n\nexport const hoverableFocusedKeyboardControls = 'focus-visible:[--controls-opacity:1]';\nexport const hoverableFocusedWithinControls = 'focus-within:[--controls-opacity:1]';\nexport const hoverableOpenControlItem = 'hover-hover:aria-[expanded=true]:[--controls-opacity:1]';\nexport const hoverableControlItem = 'opacity-(--controls-opacity)';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const ghostHighlighted =\n 'data-[highlighted]:bg-primary-100 dark:data-[highlighted]:bg-primary-600 hover:data-[highlighted]:bg-primary-150 hover:dark:data-[highlighted]:bg-primary-500';\n\nexport const ghostSelected =\n '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]';\n\nexport const ghostSelectedContainerMd =\n '@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]';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ChromaticPalette } from '@dxos/ui-types';\n\nexport type Hue = ChromaticPalette | 'neutral';\n\n// TODO(burdon): Reconcile with ui-theme/theme/roles.css\nexport type ColorStyles = {\n hue: Hue;\n fill: string; // -fill\n surface: string; // -surface\n surfaceText: string; // -surface-text\n text: string; // -text\n border: string; // -border\n};\n\nconst neutral: ColorStyles = {\n hue: 'neutral',\n fill: 'bg-neutral-fill',\n surface: 'bg-neutral-surface',\n surfaceText: 'text-neutral-surface-text',\n text: 'text-neutral-text',\n border: 'border-neutral-border',\n};\n\n// NOTE: Coordinated with `tag.css`.\n// https://github.com/dxos/dxos/blob/main/packages/ui/react-ui-theme/src/styles/layers/tag.css\nconst styles: ColorStyles[] = [\n {\n hue: 'red',\n fill: 'bg-red-fill',\n surface: 'bg-red-surface',\n surfaceText: 'text-red-surface-text',\n text: 'text-red-text',\n border: 'border-red-border',\n },\n {\n hue: 'orange',\n fill: 'bg-orange-fill',\n surface: 'bg-orange-surface',\n surfaceText: 'text-orange-surface-text',\n text: 'text-orange-text',\n border: 'border-orange-border',\n },\n {\n hue: 'amber',\n fill: 'bg-amber-fill',\n surface: 'bg-amber-surface',\n surfaceText: 'text-amber-surface-text',\n text: 'text-amber-text',\n border: 'border-amber-border',\n },\n {\n hue: 'yellow',\n fill: 'bg-yellow-fill',\n surface: 'bg-yellow-surface',\n surfaceText: 'text-yellow-surface-text',\n text: 'text-yellow-text',\n border: 'border-yellow-border',\n },\n {\n hue: 'lime',\n fill: 'bg-lime-fill',\n surface: 'bg-lime-surface',\n surfaceText: 'text-lime-surface-text',\n text: 'text-lime-text',\n border: 'border-lime-border',\n },\n {\n hue: 'green',\n fill: 'bg-green-fill',\n surface: 'bg-green-surface',\n surfaceText: 'text-green-surface-text',\n text: 'text-green-text',\n border: 'border-green-border',\n },\n {\n hue: 'emerald',\n fill: 'bg-emerald-fill',\n surface: 'bg-emerald-surface',\n surfaceText: 'text-emerald-surface-text',\n text: 'text-emerald-text',\n border: 'border-emerald-border',\n },\n {\n hue: 'teal',\n fill: 'bg-teal-fill',\n surface: 'bg-teal-surface',\n surfaceText: 'text-teal-surface-text',\n text: 'text-teal-text',\n border: 'border-teal-border',\n },\n {\n hue: 'cyan',\n fill: 'bg-cyan-fill',\n surface: 'bg-cyan-surface',\n surfaceText: 'text-cyan-surface-text',\n text: 'text-cyan-text',\n border: 'border-cyan-border',\n },\n {\n hue: 'sky',\n fill: 'bg-sky-fill',\n surface: 'bg-sky-surface',\n surfaceText: 'text-sky-surface-text',\n text: 'text-sky-text',\n border: 'border-sky-border',\n },\n {\n hue: 'blue',\n fill: 'bg-blue-fill',\n surface: 'bg-blue-surface',\n surfaceText: 'text-blue-surface-text',\n text: 'text-blue-text',\n border: 'border-blue-border',\n },\n {\n hue: 'indigo',\n fill: 'bg-indigo-fill',\n surface: 'bg-indigo-surface',\n surfaceText: 'text-indigo-surface-text',\n text: 'text-indigo-text',\n border: 'border-indigo-border',\n },\n {\n hue: 'violet',\n fill: 'bg-violet-fill',\n surface: 'bg-violet-surface',\n surfaceText: 'text-violet-surface-text',\n text: 'text-violet-text',\n border: 'border-violet-border',\n },\n {\n hue: 'purple',\n fill: 'bg-purple-fill',\n surface: 'bg-purple-surface',\n surfaceText: 'text-purple-surface-text',\n text: 'text-purple-text',\n border: 'border-purple-border',\n },\n {\n hue: 'fuchsia',\n fill: 'bg-fuchsia-fill',\n surface: 'bg-fuchsia-surface',\n surfaceText: 'text-fuchsia-surface-text',\n text: 'text-fuchsia-text',\n border: 'border-fuchsia-border',\n },\n {\n hue: 'pink',\n fill: 'bg-pink-fill',\n surface: 'bg-pink-surface',\n surfaceText: 'text-pink-surface-text',\n text: 'text-pink-text',\n border: 'border-pink-border',\n },\n {\n hue: 'rose',\n fill: 'bg-rose-fill',\n surface: 'bg-rose-surface',\n surfaceText: 'text-rose-surface-text',\n text: 'text-rose-text',\n border: 'border-rose-border',\n },\n];\n\nexport const palette = {\n neutral,\n hues: styles,\n};\n\n// TODO(burdon): Rename getClassNames.\nexport const getStyles = (hue: string): ColorStyles => {\n return styles.find((color) => color.hue === hue) || neutral;\n};\n\n// TODO(thure): Reconcile with `to-fallback.ts` which exports `toHue` which overlaps a lot.\nexport const getHashStyles = (id: string | undefined): ColorStyles => {\n return getStyles(getHashHue(id));\n};\n\nexport const getHashHue = (id: string | undefined): Hue => {\n return id ? styles[getHash(id) % styles.length].hue : 'neutral';\n};\n\nconst getHash = (id: string): number => id.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { extendTailwindMerge, validators } from 'tailwind-merge';\n\nimport { type ComposableProps } from '@dxos/ui-types';\n\ntype AdditionalClassGroups = 'density' | 'dx-focus-ring';\n\nexport const mx = extendTailwindMerge<AdditionalClassGroups>({\n extend: {\n classGroups: {\n 'font-family': ['font-body', 'font-mono'],\n 'font-weight': [\n // App weights\n 'font-thin',\n 'font-extralight',\n 'font-light',\n 'font-normal',\n 'font-medium',\n 'font-semibold',\n 'font-bold',\n 'font-extrabold',\n 'font-black',\n\n // Arbitrary numbers\n validators.isArbitraryNumber,\n ],\n\n density: ['dx-density-fine', 'dx-density-coarse'],\n\n 'dx-focus-ring': [\n 'dx-focus-ring',\n 'dx-focus-ring-inset',\n 'dx-focus-ring-always',\n 'dx-focus-ring-inset-always',\n 'dx-focus-ring-group',\n 'dx-focus-ring-group-x',\n 'dx-focus-ring-group-y',\n 'dx-focus-ring-group-always',\n 'dx-focus-ring-group-x-always',\n 'dx-focus-ring-group-y-always',\n 'dx-focus-ring-inset-over-all',\n 'dx-focus-ring-inset-over-all-always',\n 'dx-focus-ring-main',\n 'dx-focus-ring-main-always',\n ],\n },\n },\n});\n\n/**\n * Reconciles className properties from slot.\n */\nexport const useComposableProps = (\n { classNames, className, ...props }: Pick<ComposableProps, 'classNames' | 'className'>,\n etc?: string,\n) => ({\n className: mx(etc, classNames, className),\n props,\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Size } from '@dxos/ui-types';\n\nimport { mx } from '../util';\n\nconst sizeWidthMap = new Map<Size, string>([\n [0, 'w-0'],\n ['px', 'w-px'], // 1px\n [0.5, 'w-0.5'],\n [1, 'w-1'],\n [1.5, 'w-1.5'],\n [2, 'w-2'],\n [2.5, 'w-2.5'],\n [3, 'w-3'],\n [3.5, 'w-3.5'],\n [4, 'w-4'],\n [5, 'w-5'],\n [6, 'w-6'],\n [7, 'w-7'],\n [8, 'w-8'],\n [9, 'w-9'],\n [10, 'w-10'],\n [11, 'w-11'],\n [12, 'w-12'],\n [14, 'w-14'],\n [16, 'w-16'],\n [20, 'w-20'],\n [24, 'w-24'],\n [28, 'w-28'],\n [32, 'w-32'],\n [36, 'w-36'],\n [40, 'w-40'],\n [44, 'w-44'],\n [48, 'w-48'],\n [52, 'w-52'],\n [56, 'w-56'],\n [60, 'w-60'],\n [64, 'w-64'],\n [72, 'w-72'],\n [80, 'w-80'],\n [96, 'w-96'],\n]);\n\nconst sizeHeightMap = new Map<Size, string>([\n [0, 'h-0'],\n ['px', 'h-px'], // 1px\n [0.5, 'h-0.5'],\n [1, 'h-1'],\n [1.5, 'h-1.5'],\n [2, 'h-2'],\n [2.5, 'h-2.5'],\n [3, 'h-3'],\n [3.5, 'h-3.5'],\n [4, 'h-4'],\n [5, 'h-5'],\n [6, 'h-6'],\n [7, 'h-7'],\n [8, 'h-8'],\n [9, 'h-9'],\n [10, 'h-10'],\n [11, 'h-11'],\n [12, 'h-12'],\n [14, 'h-14'],\n [16, 'h-16'],\n [20, 'h-20'],\n [24, 'h-24'],\n [28, 'h-28'],\n [32, 'h-32'],\n [36, 'h-36'],\n [40, 'h-40'],\n [44, 'h-44'],\n [48, 'h-48'],\n [52, 'h-52'],\n [56, 'h-56'],\n [60, 'h-60'],\n [64, 'h-64'],\n [72, 'h-72'],\n [80, 'h-80'],\n [96, 'h-96'],\n]);\n\nconst sizes = new Set(sizeWidthMap.keys());\n\nexport const getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);\nexport const getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);\nexport const getSize = (size: Size) => mx(getSizeHeight(size), getSizeWidth(size));\n\nexport const computeSize = (value: number, defaultSize: Size) => {\n if (sizes.has(value as Size)) {\n return value as Size;\n } else if (value <= 0) {\n return 0;\n } else if (value === 1) {\n return 'px';\n } else {\n const wholeSeries = Math.floor(value);\n const halfSeries = Math.floor(value * 2) / 2;\n const doubleSeries = Math.floor(value / 2) * 2;\n const quadrupleSeries = Math.floor(value / 4) * 4;\n if (sizes.has(halfSeries as Size)) {\n return halfSeries as Size;\n } else if (sizes.has(wholeSeries as Size)) {\n return wholeSeries as Size;\n } else if (sizes.has(doubleSeries as Size)) {\n return doubleSeries as Size;\n } else if (sizes.has(quadrupleSeries as Size)) {\n return quadrupleSeries as Size;\n } else {\n return defaultSize;\n }\n }\n};\n\nexport const sizeValue = (size: Size): number => (size === 'px' ? 1 : size);\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Content areas that contain the text editor.\n */\nexport const textBlockWidth = 'w-full max-w-text-content mx-auto';\n\nexport const descriptionTextPrimary = 'text-sm font-normal text-base-surface-text';\nexport const descriptionMessage = 'text-description border border-dashed border-separator rounded-sm p-4';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type MessageValence } from '@dxos/ui-types';\n\nexport const textValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'font-medium text-success-text';\n case 'info':\n return 'font-medium text-info-text';\n case 'warning':\n return 'font-medium text-warning-text';\n case 'error':\n return 'font-medium text-error-text';\n }\n};\n\nexport const messageValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'font-medium text-success-text border-success-text bg-success-surface';\n case 'info':\n return 'font-medium text-info-text border-info-text bg-info-surface';\n case 'warning':\n return 'font-medium text-warning-text border-warning-text bg-warning-surface';\n case 'error':\n return 'font-medium text-error-text border-error-text bg-error-surface';\n default:\n return 'font-medium text-neutral-text border-neutral-text bg-neutral-surface';\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nimport { getSize, getSizeHeight } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type AvatarStyleProps = Partial<{\n size: Size;\n srOnly: boolean;\n status: 'active' | 'inactive' | 'current' | 'error' | 'warning' | 'internal';\n animation: 'pulse' | 'none';\n variant: 'circle' | 'square';\n inGroup: boolean;\n}>;\n\nexport const avatarRoot: ComponentFunction<AvatarStyleProps> = ({ size = 10, inGroup }, ...etc) =>\n mx(\n 'relative inline-flex shrink-0',\n getSize(size),\n inGroup && (size === 'px' || size <= 3 ? '-mr-1' : '-mr-2'),\n ...etc,\n );\n\nexport const avatarLabel: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) => mx(srOnly && 'sr-only', ...etc);\n\nexport const avatarDescription: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n mx('text-description', srOnly && 'sr-only', ...etc);\n\nexport const avatarFrame: ComponentFunction<AvatarStyleProps> = ({ variant }, ...etc) =>\n mx('w-full h-full bg-(--surface-bg)', variant === 'circle' ? 'rounded-full' : 'rounded-sm', ...etc);\n\nexport const avatarStatusIcon: ComponentFunction<AvatarStyleProps> = ({ status, size = 3 }, ...etc) =>\n mx(\n 'absolute bottom-0 end-0',\n getSize(size),\n status === 'inactive'\n ? 'text-amber-400 dark:text-amber-300'\n : status === 'active'\n ? 'text-emerald-400 dark:text-emerald-300'\n : 'text-neutral-400 dark:text-neutral-300',\n ...etc,\n );\n\nexport const avatarRing: ComponentFunction<AvatarStyleProps> = ({ status, variant, animation }, ...etc) =>\n mx(\n 'absolute inset-0 border-2',\n variant === 'circle' ? 'rounded-full' : 'rounded-sm',\n status === 'current'\n ? 'border-primary-400 dark:border-primary-500'\n : status === 'active'\n ? 'border-emerald-400 dark:border-emerald-400'\n : status === 'error'\n ? 'border-rose-400 dark:border-rose-500'\n : status === 'warning'\n ? 'border-amber-400 dark:border-amber-500'\n : status === 'inactive'\n ? 'border-separator'\n : status === 'internal'\n ? 'border-fuchsia-600'\n : 'border-[color:var(--surface-bg)]',\n animation === 'pulse' ? 'animate-halo-pulse' : '',\n ...etc,\n );\n\nexport const avatarFallbackText: ComponentFunction<AvatarStyleProps> = (_props, ...etc) => mx('fill-white', ...etc);\n\nexport const avatarGroup: ComponentFunction<AvatarStyleProps> = (_props, ...etc) =>\n mx('inline-flex items-center', ...etc);\n\nexport const avatarGroupLabel: ComponentFunction<AvatarStyleProps> = ({ size, srOnly }, ...etc) =>\n mx(\n srOnly\n ? 'sr-only'\n : 'rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center',\n size && getSizeHeight(size),\n ...etc,\n );\n\nexport const avatarGroupDescription: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n mx(srOnly ? 'sr-only' : 'text-description', ...etc);\n\nexport const avatarTheme: Theme<AvatarStyleProps> = {\n root: avatarRoot,\n label: avatarLabel,\n description: avatarDescription,\n statusIcon: avatarStatusIcon,\n frame: avatarFrame,\n ring: avatarRing,\n fallbackText: avatarFallbackText,\n group: avatarGroup,\n groupLabel: avatarGroupLabel,\n groupDescription: avatarGroupDescription,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type breadcrumbStyleProps = {};\n\nexport const breadcrumbRoot: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) =>\n mx('shrink-0 flex items-center', ...etc);\n\nexport const breadcrumbList: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nexport const breadcrumbListItem: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nexport const breadcrumbCurrent: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx(...etc);\n\nexport const breadcrumbSeparator: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) =>\n mx('opacity-50', ...etc);\n\nexport const breadcrumbTheme: Theme<breadcrumbStyleProps> = {\n root: breadcrumbRoot,\n list: breadcrumbList,\n listItem: breadcrumbListItem,\n current: breadcrumbCurrent,\n separator: breadcrumbSeparator,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type CardStyleProps = {\n border?: boolean;\n fullWidth?: boolean;\n srOnly?: boolean;\n variant?: 'default' | 'subtitle' | 'description';\n coarse?: boolean;\n truncate?: boolean;\n};\n\nconst cardRoot: ComponentFunction<CardStyleProps> = ({ border, fullWidth }, ...etc) =>\n mx(\n 'dx-card group/card relative flex flex-col w-full min-h-(--dx-rail-item) dx-card-min-width overflow-hidden',\n border &&\n 'bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator',\n fullWidth && 'max-w-none!',\n ...etc,\n );\n\nconst cardToolbar: ComponentFunction<CardStyleProps> = ({ coarse }, ...etc) =>\n mx(\n 'dx-card__toolbar dx-density-fine bg-transparent col-span-3 !grid grid-cols-subgrid [contain:none]',\n coarse && 'grid-cols-[var(--dx-l0-avatar-size)_minmax(0,1fr)_var(--dx-rail-item)]',\n ...etc,\n );\n\nconst cardTitle: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__title grow truncate', ...etc);\n\nconst cardContent: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__content contents [&>:last-child]:pb-1', ...etc);\n\nconst cardHeading: ComponentFunction<CardStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'dx-card__heading',\n variant === 'default' && 'py-1',\n variant === 'subtitle' && 'py-2 text-xs text-description font-medium uppercase',\n ...etc,\n );\n\nconst cardText: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate: _truncate }, ...etc) =>\n mx(\n 'dx-card__text flex overflow-hidden',\n variant === 'default' && 'py-1',\n variant === 'description' && 'py-1.5',\n ...etc,\n );\n\nconst cardTextSpan: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate }, ...etc) =>\n mx(variant === 'description' && 'text-sm text-description line-clamp-3', truncate && 'truncate', ...etc);\n\nconst cardPoster: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__poster col-span-3 max-h-[200px]', ...etc);\n\nconst cardPosterIcon: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]', ...etc);\n\nconst cardAction: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__acztion col-span-3 !grid grid-cols-subgrid p-0! w-full text-start overflow-hidden', ...etc);\n\nconst cardActionLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__action-label min-w-0 flex-1 truncate', ...etc);\n\nconst cardLink: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!', ...etc);\n\nconst cardLinkLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__link-label min-w-0 flex-1 truncate', ...etc);\n\nconst cardIconBlock: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center', ...etc);\n\nexport const cardTheme: Theme<CardStyleProps> = {\n root: cardRoot,\n toolbar: cardToolbar,\n title: cardTitle,\n content: cardContent,\n heading: cardHeading,\n text: cardText,\n 'text-span': cardTextSpan,\n poster: cardPoster,\n 'poster-icon': cardPosterIcon,\n action: cardAction,\n 'action-label': cardActionLabel,\n link: cardLink,\n 'link-label': cardLinkLabel,\n 'icon-block': cardIconBlock,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { ComponentFunction, Density, Elevation, Theme } from '@dxos/ui-types';\n\nimport { ghostHover } from '../../fragments';\nimport { mx } from '../../util';\n\nexport const primaryButtonColors =\n 'text-accent-surface-text 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';\n\nexport const staticDefaultButtonColors = 'bg-input-surface text-input-surface-text';\n\nexport const defaultButtonColors = mx(\n staticDefaultButtonColors,\n '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',\n);\n\nexport const ghostButtonColors = mx(\n ghostHover,\n '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',\n);\n\nexport type ButtonStyleProps = Partial<{\n inGroup?: boolean;\n textWrap?: boolean;\n density: Density;\n elevation: Elevation;\n disabled: boolean;\n variant: 'default' | 'primary' | 'ghost' | 'outline';\n}>;\n\nconst buttonRoot: ComponentFunction<ButtonStyleProps> = (_props, ...etc) => {\n return mx('dx-button dx-focus-ring group max-w-full [&_span]:truncate', ...etc);\n};\n\nconst buttonGroup: ComponentFunction<{ elevation?: Elevation }> = (_props, ...etc) => {\n return mx(\n 'inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative',\n ...etc,\n );\n};\n\nexport const buttonTheme: Theme<ButtonStyleProps> = {\n root: buttonRoot,\n group: buttonGroup,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst sizeMap: Record<DialogSize, string> = {\n sm: 'md:max-w-[24rem]',\n md: 'md:max-w-[32rem]!',\n lg: 'md:max-w-[40rem]!',\n xl: 'md:max-w-[60rem]!',\n};\n\nexport type DialogStyleProps = {\n srOnly?: boolean;\n inOverlayLayout?: boolean;\n elevation?: Elevation;\n size?: DialogSize;\n};\n\nexport const dialogOverlay: ComponentFunction<DialogStyleProps> = (_props, ...etc) => mx('dx-dialog__overlay', ...etc);\n\nexport const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size = 'md' }, ...etc) => {\n return mx(\n '@container',\n 'dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4',\n !inOverlayLayout && 'fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',\n sizeMap[size],\n ...etc,\n );\n};\n\nexport const dialogHeader: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__header flex pb-4 items-center justify-between', ...etc);\n\nexport const dialogBody: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__body flex flex-col h-full py-2 gap-2', ...etc);\n\nexport const dialogActionBar: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse', ...etc);\n\nexport const dialogTitle: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n mx('dx-dialog__title', srOnly && 'sr-only', ...etc);\n\nexport const dialogDescription: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n mx('dx-dialog__description', 'text-description', srOnly && 'sr-only', ...etc);\n\nexport const dialogTheme: Theme<DialogStyleProps> = {\n overlay: dialogOverlay,\n content: dialogContent,\n header: dialogHeader,\n body: dialogBody,\n actionbar: dialogActionBar,\n title: dialogTitle,\n description: dialogDescription,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nimport { getSize } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type IconStyleProps = {\n size?: Size;\n};\n\nexport const iconRoot: ComponentFunction<IconStyleProps> = ({ size }, etc) =>\n mx('shrink-0 h-[1em] w-[1em] text-[var(--icons-color,currentColor)]', size && getSize(size), etc);\n\nexport const iconTheme: Theme<IconStyleProps> = {\n root: iconRoot,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nimport { type ButtonStyleProps } from './button';\n\nexport type IconButtonStyleProps = ButtonStyleProps & { iconOnly?: boolean };\n\n// TODO(burdon): Gap/font size should depend on density.\nexport const iconButtonRoot: ComponentFunction<IconButtonStyleProps> = ({ iconOnly }, ...etc) => {\n return mx('gap-2', iconOnly && 'p-icon-button-padding min-h-0', ...etc);\n};\n\nexport const iconButtonTheme: Theme<IconButtonStyleProps> = {\n root: iconButtonRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type ComponentFragment,\n type ComponentFunction,\n type Density,\n type Elevation,\n type MessageValence,\n type Size,\n} from '@dxos/ui-types';\n\nimport {\n coarseBlockSize,\n coarseDimensions,\n computeSize,\n fineBlockSize,\n fineDimensions,\n focusRing,\n getSize,\n getSizeHeight,\n getSizeWidth,\n sizeValue,\n staticDisabled,\n staticFocusRing,\n subduedFocus,\n textValence,\n} from '../../fragments';\nimport { mx } from '../../util';\n\nexport type InputStyleProps = Partial<{\n variant: 'default' | 'subdued' | 'static';\n density: Density;\n disabled: boolean;\n elevation: Elevation;\n focused: boolean;\n validationValence: MessageValence;\n size: Size;\n checked: boolean;\n}>;\n\nexport type InputMetaStyleProps = Partial<{\n srOnly: boolean;\n validationValence: MessageValence;\n}>;\n\nexport const inputTextLabel = 'py-1 text-sm text-description';\n\nconst textInputSurfaceFocus =\n 'transition-colors bg-input-surface focus:bg-focus-surface border border-separator focus:border-separator';\n\nconst textInputSurfaceHover = 'hover:bg-focus-surface';\n\nconst booleanInputSurface =\n 'shadow-inner transition-colors bg-un-accent aria-checked:bg-accent-surface aria-[checked=mixed]:bg-accent-surface';\n\nconst booleanInputSurfaceHover =\n 'hover:bg-un-accent-hover hover:aria-checked:bg-accent-surface-hover hover:aria-[checked=mixed]:bg-accent-surface-hover';\n\n// TODO(burdon): Replace with semantic tokens.\nconst inputValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'shadow-emerald-500/50 dark:shadow-emerald-600/50';\n case 'info':\n return 'shadow-cyan-500/50 dark:shadow-cyan-600/50';\n case 'warning':\n return 'shadow-amber-500/50 dark:shadow-amber-600/50';\n case 'error':\n return 'shadow-rose-500/50 dark:shadow-rose-600/50';\n }\n};\n\nconst sharedSubduedInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full bg-transparent text-current placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n props.density === 'fine' ? fineBlockSize : coarseBlockSize,\n subduedFocus,\n props.disabled && staticDisabled,\n];\n\nconst sharedDefaultInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n textInputSurfaceFocus,\n props.density === 'fine' ? fineDimensions : coarseDimensions,\n props.disabled ? staticDisabled : textInputSurfaceHover,\n];\n\nconst sharedStaticInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n textInputSurfaceFocus,\n textInputSurfaceHover,\n props.focused && 'bg-attention-surface',\n inputValence(props.validationValence),\n props.disabled && staticDisabled,\n props.focused && staticFocusRing,\n];\n\nconst inputInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n props.variant === 'subdued'\n ? mx(...sharedSubduedInputStyles(props), ...etc)\n : props.variant === 'static'\n ? mx(...sharedStaticInputStyles(props), ...etc)\n : mx(\n ...sharedDefaultInputStyles(props),\n !props.disabled && focusRing,\n inputValence(props.validationValence),\n ...etc,\n );\n\nconst inputTextArea: ComponentFunction<InputStyleProps> = (props, ...etc) => inputInput(props, ...['-mb-1.5', ...etc]);\n\nconst inputCheckbox: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>\n mx('dx-checkbox dx-focus-ring', getSize(size), ...etc);\n\nconst inputCheckboxIndicator: ComponentFunction<InputStyleProps> = ({ size = 5, checked }, ...etc) =>\n mx(getSize(computeSize(sizeValue(size) * 0.65, 4)), !checked && 'invisible', ...etc);\n\nconst inputSwitch: ComponentFunction<InputStyleProps> = ({ size = 5, disabled }, ...etc) =>\n mx(\n getSizeHeight(size),\n getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),\n booleanInputSurface,\n !disabled && booleanInputSurfaceHover,\n // TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.\n 'cursor-pointer shrink-0 rounded-full px-1 mx-1 relative',\n focusRing,\n ...etc,\n );\n\nconst inputSwitchThumb: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>\n mx(\n getSize(size === 'px' ? 'px' : ((size - 2) as Size)),\n 'block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]',\n ...etc,\n );\n\nconst inputWithSegmentsInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n mx(\n 'font-mono selection:bg-transparent mx-auto',\n props.density === 'fine' ? 'text-base pointer-fine:text-sm' : 'text-lg',\n props.disabled && 'cursor-not-allowed',\n ...etc,\n );\n\nconst inputSegment: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n mx(\n 'flex items-center justify-center font-mono',\n props.density === 'fine' ? 'size-10 pointer-fine:size-8 rounded-xs' : 'size-12 rounded-xs',\n 'bg-input-surface text-base-surface-text transition-colors border border-separator',\n 'data-[focused]:bg-attention-surface data-[focused]:border-neutral-focus-indicator',\n 'data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-neutral-focus-indicator',\n inputValence(props.validationValence),\n props.disabled && staticDisabled,\n ...etc,\n );\n\nconst inputLabel: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('block', inputTextLabel, props.srOnly && 'sr-only', ...etc);\n\nconst inputDescription: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('text-description', props.srOnly && 'sr-only', ...etc);\n\nconst inputDescriptionAndValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('leading-none my-1.5', props.srOnly && 'sr-only', ...etc);\n\nconst inputValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx(inputTextLabel, props.srOnly ? 'sr-only' : textValence(props.validationValence), ...etc);\n\nexport const inputTheme = {\n input: inputInput,\n textArea: inputTextArea,\n inputWithSegments: inputWithSegmentsInput,\n segment: inputSegment,\n checkbox: inputCheckbox,\n checkboxIndicator: inputCheckboxIndicator,\n label: inputLabel,\n description: inputDescription,\n switch: inputSwitch,\n switchThumb: inputSwitchThumb,\n validation: inputValidation,\n descriptionAndValidation: inputDescriptionAndValidation,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { focusRing } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type LinkStyleProps = {\n variant?: 'accent' | 'neutral';\n};\n\nexport const linkRoot: ComponentFunction<LinkStyleProps> = ({ variant }, ...etc) =>\n mx(\n 'underline decoration-1 underline-offset-2 transition-color rounded-xs',\n variant === 'neutral'\n ? 'text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90'\n : 'text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover',\n focusRing,\n ...etc,\n );\n\nexport const linkTheme: Theme<LinkStyleProps> = {\n root: linkRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nimport { densityBlockSize, focusRing, getSize, ghostHover } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ListStyleProps = Partial<{\n density: Density;\n collapsible: boolean;\n}>;\n\nexport const listRoot: ComponentFunction<ListStyleProps> = (_, ...etc) => mx(...etc);\n\nexport const listItem: ComponentFunction<ListStyleProps> = ({ collapsible }, ...etc) =>\n mx(!collapsible && 'flex', ...etc);\n\nexport const listItemEndcap: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx(density === 'fine' ? getSize(8) : getSize(10), 'shrink-0 flex items-center justify-center', ...etc);\n\nexport const listItemHeading: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx(densityBlockSize(density), 'flex items-center', ...etc);\n\nexport const listItemDragHandleIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) =>\n mx(getSize(5), 'mt-2.5', ...etc);\n\nexport const listItemOpenTrigger: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx('w-5 rounded-sm flex justify-center items-center', densityBlockSize(density), ghostHover, focusRing, ...etc);\n\nexport const listItemOpenTriggerIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) => {\n return mx(getSize(5), ...etc);\n};\n\nexport const listTheme: Theme<ListStyleProps> = {\n root: listRoot,\n item: {\n root: listItem,\n endcap: listItemEndcap,\n heading: listItemHeading,\n dragHandleIcon: listItemDragHandleIcon,\n openTrigger: listItemOpenTrigger,\n openTriggerIcon: listItemOpenTriggerIcon,\n },\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\n// Padding to apply to in-flow elements which need to clear the fixed topbar/bottombar.\nexport const topbarBlockPaddingStart = 'py-(--dx-topbar-size) dx-sticky-top-from-topbar-bottom';\nexport const bottombarBlockPaddingEnd = 'pb-(--dx-statusbar-size) dx-sticky-bottom-from-statusbar-bottom';\n\nexport const mainPadding = 'dx-main-content-padding';\nexport const mainPaddingTransitions = 'dx-main-content-padding-transitions';\nexport const mainIntrinsicSize = 'dx-main-intrinsic-size';\n\nexport type MainStyleProps = Partial<{\n bounce: boolean;\n handlesFocus: boolean;\n}>;\n\nexport const mainContent: ComponentFunction<MainStyleProps> = ({ bounce }, ...etc) =>\n mx(mainPadding, mainPaddingTransitions, bounce && 'dx-main-bounce-layout', 'dx-focus-ring-main', ...etc);\n\nexport const mainSidebar: ComponentFunction<MainStyleProps> = (_, ...etc) =>\n mx('dx-main-sidebar', 'dx-focus-ring-inset-over-all', ...etc);\n\nexport const mainOverlay: ComponentFunction<MainStyleProps> = (_, ...etc) => mx('dx-main-overlay', ...etc);\n\nexport const mainTheme = {\n content: mainContent,\n sidebar: mainSidebar,\n overlay: mainOverlay,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { dataDisabled, subduedFocus, surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type MenuStyleProps = Partial<{\n constrainBlockSize: boolean;\n elevation: Elevation;\n}>;\n\nexport const menuContent: ComponentFunction<MenuStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'dx-modal-surface w-48 rounded-sm md:w-56 border border-separator',\n surfaceZIndex({ elevation, level: 'menu' }),\n surfaceShadow({ elevation: 'positioned' }),\n ...etc,\n );\n\nexport const menuViewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto', ...etc);\n\nexport const menuItem: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx(\n 'flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm',\n 'data-[highlighted]:bg-hover-surface',\n subduedFocus,\n dataDisabled,\n ...etc,\n );\n\nexport const menuSeparator: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('my-1 mx-2 h-px bg-separator', ...etc);\n\nexport const menuGroupLabel: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('text-description', 'select-none px-2 py-2', ...etc);\n\nexport const menuArrow: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const menuTheme: Theme<MenuStyleProps> = {\n content: menuContent,\n viewport: menuViewport,\n item: menuItem,\n separator: menuSeparator,\n groupLabel: menuGroupLabel,\n arrow: menuArrow,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type MessageValence, type Theme } from '@dxos/ui-types';\n\nimport { messageValence } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type MessageStyleProps = {\n valence?: MessageValence;\n elevation?: Elevation;\n};\n\nexport const messageRoot: ComponentFunction<MessageStyleProps> = ({ valence }, etc) => {\n return mx('grid grid-cols-[min-content_1fr] gap-x-2 p-trim-sm rounded-sm', messageValence(valence), etc);\n};\n\nexport const messageHeader: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-span-2 grid grid-cols-subgrid items-center', etc);\n};\n\nexport const messageTitle: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-start-2 text-lg gap-trim-sm [&>svg]:inline-block', etc);\n};\n\nexport const messageIcon: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-start-1', etc);\n};\n\nexport const messageContent: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('grid grid-cols-subgrid col-start-2 first:font-medium', etc);\n};\n\nexport const messageTheme: Theme<MessageStyleProps> = {\n root: messageRoot,\n header: messageHeader,\n icon: messageIcon,\n title: messageTitle,\n content: messageContent,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { focusRing, surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type PopoverStyleProps = Partial<{\n constrainBlock: boolean;\n constrainInline: boolean;\n elevation: Elevation;\n}>;\n\nexport const popoverContent: ComponentFunction<PopoverStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'dx-modal-surface border border-separator rounded-sm',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'menu' }),\n focusRing,\n ...etc,\n );\n\nexport const popoverViewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>\n mx(\n 'flex flex-col min-h-0 min-w-popover-min-width',\n (constrainBlock || constrainInline) && 'overflow-hidden',\n // Ensures it respects available height from Radix (or 100dvh).\n constrainBlock &&\n 'max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]',\n constrainInline && 'max-w-(--radix-popover-content-available-width)',\n ...etc,\n );\n\nexport const popoverArrow: ComponentFunction<PopoverStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const popoverTheme: Theme<PopoverStyleProps> = {\n content: popoverContent,\n viewport: popoverViewport,\n arrow: popoverArrow,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type AllowedAxis, type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type ScrollAreaStyleProps = {\n orientation?: AllowedAxis;\n autoHide?: boolean;\n /** Balance left/right, top/bottom \"margin\" with scrollbar. */\n margin?: boolean;\n /** Add default padding. */\n /** TODO(burdon): Integrate with Column.Root padding. */\n padding?: boolean;\n /** Use thin scrollbars. */\n /** TODO(burdon): Density fine/course. */\n thin?: boolean;\n /** Enable snap scrolling. */\n snap?: boolean;\n};\n\nexport const scrollAreaRoot: ComponentFunction<ScrollAreaStyleProps> = ({ orientation, margin, thin }, ...etc) =>\n mx(\n 'overflow-hidden',\n\n orientation === 'vertical' && 'group/scroll-v dx-container',\n orientation === 'horizontal' && 'group/scroll-h dx-container',\n orientation === 'all' && 'group/scroll-all dx-container',\n\n // TODO(burdon): Audit composition.\n // Apply col-span-full only when inside a Column.Root grid (detected via dx-column marker).\n '[.dx-column_&]:col-span-full',\n\n // NOTE: Uses --gutter CSS variable\n // If contained within Column.Root grid, the gutter is set by that component.\n margin && [\n orientation === 'vertical' &&\n (thin\n ? 'pl-[var(--gutter,4px)] pr-[calc(var(--gutter,4px)-4px)]'\n : 'pl-[var(--gutter,8px)] pr-[calc(var(--gutter,8px)-8px)]'),\n orientation === 'horizontal' && (thin ? 'py-[var(--gutter,4px)]' : 'py-[var(--gutter,8px)]'),\n orientation === 'all' &&\n (thin ? 'pl-[var(--gutter,4px)] py-[var(--gutter,8px)]' : 'pl-[var(--gutter,8px)] py-[var(--gutter,8px)]'),\n ],\n\n ...etc,\n );\n\n/**\n * NOTE: The browser reserves space for scrollbars.\n */\nexport const scrollAreaViewport: ComponentFunction<ScrollAreaStyleProps> = (\n { orientation, autoHide, padding, snap, thin },\n ...etc\n) =>\n mx(\n 'h-full w-full',\n\n orientation === 'vertical' && 'flex flex-col overflow-y-scroll',\n orientation === 'horizontal' && 'flex overflow-x-scroll',\n orientation === 'all' && 'overflow-scroll',\n\n thin\n ? '[&::-webkit-scrollbar]:w-[4px] [&::-webkit-scrollbar]:h-[4px]'\n : '[&::-webkit-scrollbar]:w-[8px] [&::-webkit-scrollbar]:h-[8px]',\n\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-none',\n\n autoHide\n ? [\n orientation === 'vertical' && 'group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'horizontal' && 'group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'all' && 'group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n ]\n : [\n orientation === 'vertical' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'horizontal' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'all' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n ],\n\n padding && [\n orientation === 'vertical' && 'px-[4px]',\n orientation === 'horizontal' && 'pb-[4px]',\n orientation === 'all' && 'pl-[4px] pb-[4px]',\n ],\n\n snap && [\n orientation === 'vertical' && 'snap-y snap-mandatory',\n orientation === 'horizontal' && 'snap-x snap-mandatory',\n orientation === 'all' && 'snap-both snap-mandatory',\n ],\n\n ...etc,\n );\n\nexport const scrollAreaTheme: Theme<ScrollAreaStyleProps> = {\n root: scrollAreaRoot,\n viewport: scrollAreaViewport,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { ghostHighlighted, surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type SelectStyleProps = Partial<{\n elevation: Elevation;\n}>;\n\nexport const selectContent: ComponentFunction<SelectStyleProps> = ({ elevation }, ...etc) => {\n return mx(\n 'dx-modal-surface rounded-sm border border-separator',\n 'min-w-(--radix-select-trigger-width) max-h-(--radix-select-content-available-height)',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'menu' }),\n ...etc,\n );\n};\n\nexport const selectViewport: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx(...etc);\n\nexport const selectItem: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx(\n 'flex items-center min-h-[2rem] px-3 py-1 gap-2',\n 'text-base-surface-text leading-none select-none outline-hidden',\n '[&>svg]:invisible [&[data-state=checked]>svg]:visible',\n ghostHighlighted,\n ...etc,\n );\n\nexport const selectItemIndicator: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('items-center', ...etc);\n\nexport const selectArrow: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const selectSeparator: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx('self-stretch border-b my-1 border-separator', ...etc);\n\nexport const selectScrollButton: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx('dx-modal-surface flex items-center justify-center cursor-default h-6 w-full', ...etc);\n\nexport const selectTheme: Theme<SelectStyleProps> = {\n content: selectContent,\n viewport: selectViewport,\n item: selectItem,\n itemIndicator: selectItemIndicator,\n arrow: selectArrow,\n separator: selectSeparator,\n scrollButton: selectScrollButton,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SplitterStyleProps = {};\n\nconst splitterRoot: ComponentFunction<SplitterStyleProps> = (_props, ...etc) =>\n mx('relative h-full overflow-hidden', ...etc);\n\nconst splitterPanel: ComponentFunction<SplitterStyleProps> = (_props, ...etc) =>\n mx('absolute inset-x-0 flex flex-col overflow-hidden', ...etc);\n\nexport const splitterTheme: Theme<SplitterStyleProps> = {\n root: splitterRoot,\n panel: splitterPanel,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SeparatorStyleProps = {\n orientation?: 'horizontal' | 'vertical';\n subdued?: boolean;\n};\n\nexport const separatorRoot: ComponentFunction<SeparatorStyleProps> = ({ orientation, subdued }, ...etc) =>\n mx(\n 'self-stretch',\n orientation === 'vertical' ? 'border-e mx-1' : 'border-b my-1',\n subdued ? 'border-subdued-separator' : 'border-separator',\n ...etc,\n );\n\nexport const separatorTheme: Theme<SeparatorStyleProps> = {\n root: separatorRoot,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SkeletonStyleProps = {\n variant?: 'default' | 'circle' | 'text';\n};\n\nexport const skeletonRoot: ComponentFunction<SkeletonStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'animate-pulse bg-neutral-300 dark:bg-neutral-700 rounded-md',\n variant === 'circle' && 'rounded-full',\n variant === 'text' && 'rounded-sm',\n ...etc,\n );\n\nexport const skeletonTheme: Theme<SkeletonStyleProps> = {\n root: skeletonRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type StatusStyleProps = {\n indeterminate?: boolean;\n variant?: 'default' | 'main-bottom';\n};\n\nexport const statusRoot: ComponentFunction<StatusStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'h-1 relative bg-hover-overlay rounded-full overflow-hidden',\n variant === 'main-bottom' ? 'w-full block' : 'inline-20 inline-block',\n ...etc,\n );\n\nexport const statusBar: ComponentFunction<StatusStyleProps> = ({ indeterminate, variant = 'default' }, ...etc) =>\n mx(\n 'absolute inset-y-0 block rounded-full',\n variant === 'main-bottom' ? 'bg-accent-surface' : 'bg-un-accent',\n indeterminate ? 'animate-progress-indeterminate' : 'start-0',\n ...etc,\n );\n\nexport const statusTheme: Theme<StatusStyleProps> = {\n root: statusRoot,\n bar: statusBar,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type ChromaticPalette,\n type ComponentFunction,\n type MessageValence,\n type NeutralPalette,\n type Theme,\n} from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type TagStyleProps = {\n palette?: ChromaticPalette | NeutralPalette | MessageValence;\n};\n\nexport const tagRoot: ComponentFunction<TagStyleProps> = (_, ...etc) => mx('dx-tag', ...etc);\n\nexport const tagTheme: Theme<TagStyleProps> = {\n root: tagRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { focusRing, surfaceShadow } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ToastStyleProps = Partial<{\n srOnly: boolean;\n}>;\n\nexport const toastViewport: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx(\n // TODO(burdon): block-end should take into account status bar.\n 'z-40 fixed bottom-[calc(env(safe-area-inset-bottom)+1rem)] inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)] w-auto md:end-[calc(env(safe-area-inset-right)+1rem)] md:left-auto md:w-full md:max-w-sm',\n 'rounded-md flex flex-col gap-2',\n ...etc,\n );\n\nexport const toastRoot: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx(\n 'dx-modal-surface rounded-md flex p-2 gap-2',\n surfaceShadow({ elevation: 'toast' }),\n 'radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right',\n 'radix-state-closed:animate-toast-hide',\n 'radix-swipe-end:animate-toast-swipe-out',\n 'translate-x-radix-toast-swipe-move-x',\n 'radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]',\n focusRing,\n ...etc,\n );\n\nexport const toastBody: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx('grow flex flex-col gap-1 justify-center pl-2', ...etc);\n\nexport const toastActions: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx('shrink-0 flex flex-col gap-1 justify-center', ...etc);\n\nexport const toastTitle: ComponentFunction<ToastStyleProps> = ({ srOnly }, ...etc) =>\n mx('shrink-0 font-medium', srOnly && 'sr-only', ...etc);\n\nexport const toastDescription: ComponentFunction<ToastStyleProps> = ({ srOnly }, ...etc) =>\n mx('text-description', 'shrink-0', srOnly && 'sr-only', ...etc);\n\nexport const toastTheme: Theme<ToastStyleProps> = {\n viewport: toastViewport,\n root: toastRoot,\n body: toastBody,\n title: toastTitle,\n description: toastDescription,\n actions: toastActions,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nimport { textBlockWidth } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ToolbarStyleProps = Partial<{\n density: Density;\n disabled: boolean;\n layoutManaged: boolean;\n}>;\n\nexport const toolbarLayout =\n 'w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout';\n\nexport const toolbarRoot: ComponentFunction<ToolbarStyleProps> = ({ density, disabled, layoutManaged }, ...etc) => {\n return mx(\n 'bg-toolbar-surface dx-toolbar',\n density === 'coarse' && 'h-(--dx-rail-size) px-3!',\n disabled && '*:opacity-20',\n !layoutManaged && toolbarLayout,\n ...etc,\n );\n};\n\nexport const toolbarInner: ComponentFunction<ToolbarStyleProps> = ({ layoutManaged }, ...etc) => {\n return mx(!layoutManaged && ['flex gap-1', textBlockWidth], ...etc);\n};\n\nexport const toolbarText: ComponentFunction<ToolbarStyleProps> = (_, ...etc) => {\n return mx('grow truncate items-center', textBlockWidth, ...etc);\n};\n\nexport const toolbarTheme: Theme<ToolbarStyleProps> = {\n root: toolbarRoot,\n inner: toolbarInner,\n text: toolbarText,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type TooltipStyleProps = Partial<{\n elevation: Elevation;\n}>;\n\nexport const tooltipContent: ComponentFunction<TooltipStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-surface-text rounded-sm',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'tooltip' }),\n ...etc,\n );\n\nexport const tooltipArrow: ComponentFunction<TooltipStyleProps> = (_props, ...etc) =>\n mx('fill-inverse-surface', ...etc);\n\nexport const tooltipTheme: Theme<TooltipStyleProps> = {\n content: tooltipContent,\n arrow: tooltipArrow,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type TreegridStyleProps = Partial<{\n level: number;\n indent: boolean;\n}>;\n\nconst levelStyles = new Map<number, string>([\n [1, '[&>.indent:first-of-type]:pl-0 font-medium'],\n [2, '[&>.indent:first-of-type]:pl-0'],\n [3, '[&>.indent:first-of-type]:pl-1'],\n [4, '[&>.indent:first-of-type]:pl-2'],\n [5, '[&>.indent:first-of-type]:pl-3'],\n [6, '[&>.indent:first-of-type]:pl-4'],\n [7, '[&>.indent:first-of-type]:pl-5'],\n [8, '[&>.indent:first-of-type]:pl-6'],\n]);\n\nexport const treegridRoot: ComponentFunction<TreegridStyleProps> = (_, ...etc) => mx('grid', ...etc);\n\nexport const treegridRow: ComponentFunction<TreegridStyleProps> = ({ level = 1 }, ...etc) =>\n mx('contents', levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);\n\nexport const treegridCell: ComponentFunction<TreegridStyleProps> = ({ indent }, ...etc) =>\n mx(indent && 'indent', ...etc);\n\nexport const treegridTheme: Theme<TreegridStyleProps> = {\n root: treegridRoot,\n row: treegridRow,\n cell: treegridCell,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ClassNameArray, type ComponentFunction, type Theme, type ThemeFunction } from '@dxos/ui-types';\nimport { getDeep } from '@dxos/util';\n\nimport {\n avatarTheme,\n breadcrumbTheme,\n buttonTheme,\n cardTheme,\n dialogTheme,\n iconButtonTheme,\n iconTheme,\n inputTheme,\n linkTheme,\n listTheme,\n mainTheme,\n menuTheme,\n messageTheme,\n popoverTheme,\n scrollAreaTheme,\n selectTheme,\n separatorTheme,\n skeletonTheme,\n splitterTheme,\n statusTheme,\n tagTheme,\n toastTheme,\n toolbarTheme,\n tooltipTheme,\n treegridTheme,\n} from './components';\nimport { columnTheme, panelTheme } from './primitives';\n\nexport const defaultTheme: Theme<Record<string, any>> = {\n themeName: () => 'default',\n\n //\n // Primitives\n //\n\n column: columnTheme,\n panel: panelTheme,\n\n //\n // Components\n //\n\n avatar: avatarTheme,\n breadcrumb: breadcrumbTheme,\n button: buttonTheme,\n card: cardTheme,\n dialog: dialogTheme,\n icon: iconTheme,\n iconButton: iconButtonTheme,\n input: inputTheme,\n link: linkTheme,\n list: listTheme,\n main: mainTheme,\n message: messageTheme,\n menu: menuTheme,\n popover: popoverTheme,\n scrollArea: scrollAreaTheme,\n select: selectTheme,\n separator: separatorTheme,\n skeleton: skeletonTheme,\n splitter: splitterTheme,\n status: statusTheme,\n tag: tagTheme,\n toast: toastTheme,\n toolbar: toolbarTheme,\n tooltip: tooltipTheme,\n treegrid: treegridTheme,\n};\n\nexport const bindTheme = <P extends Record<string, any>>(theme: Theme<Record<string, any>>): ThemeFunction<P> => {\n return (path: string, styleProps?: P, ...etc: ClassNameArray) => {\n const result = getDeep<Theme<P> | ComponentFunction<P>>(theme, path.split('.'));\n return typeof result === 'function' ? result(styleProps ?? ({} as P), ...etc) : undefined;\n };\n};\n\nexport const defaultTx = bindTheme(defaultTheme);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nconst columnRoot: ComponentFunction<Record<string, any>> = (_, ...etc) => mx('dx-column w-full min-w-0 grid', ...etc);\n\n/**\n * Three-column icon-slot row: spans all 3 columns of the parent Column.Root grid.\n * Uses CSS subgrid to inherit column sizing from the parent Column.\n * Children map to: [col-1: icon/slot] [col-2: content] [col-3: icon/action].\n */\nconst columnRow: ComponentFunction<Record<string, any>> = (_, ...etc) =>\n mx('col-span-3 grid grid-cols-subgrid', ...etc);\n\n/**\n * NOTE: Must not use overflow-hidden here since it will clip input focus rings.\n * Occupies only the center column (col-2) of the parent Column.Root grid.\n */\nconst columnSegment: ComponentFunction<Record<string, any>> = (_, ...etc) =>\n mx('col-start-2 col-span-1 min-w-0', ...etc);\n\nexport const columnTheme = {\n root: columnRoot,\n row: columnRow,\n segment: columnSegment,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type PanelProps = {};\n\nconst panelRoot: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n 'h-full w-full grid grid-cols-[100%] overflow-hidden',\n '[&>*:not([data-slot])]:[grid-area:content]',\n ...etc,\n );\n\nconst panelToolbar: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:toolbar]',\n 'border-b border-subdued-separator relative',\n '[.dx-main-mobile-layout_&]:px-3',\n ...etc,\n );\n\nconst panelContent: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:content] overflow-hidden min-h-0',\n ...etc,\n );\n\nconst panelStatusbar: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:statusbar]',\n ...etc,\n );\n\nexport const panelTheme = {\n root: panelRoot,\n toolbar: panelToolbar,\n content: panelContent,\n statusbar: panelStatusbar,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["osTranslations", "hues", "hueShades", "roles", "cardMinInlineSize", "cardDefaultInlineSize", "cardMaxInlineSize", "cardMinBlockSize", "cardMaxBlockSize", "coarseBlockSize", "coarseDimensions", "fineBlockSize", "fineDimensions", "densityBlockSize", "density", "staticDisabled", "dataDisabled", "surfaceShadow", "elevation", "surfaceZIndex", "level", "focusRing", "subduedFocus", "staticFocusRing", "subtleHover", "ghostHover", "ghostFocusWithin", "hoverableControls", "groupHoverControlItemWithTransition", "hoverableFocusedKeyboardControls", "hoverableFocusedWithinControls", "hoverableOpenControlItem", "hoverableControlItem", "
|
|
3
|
+
"sources": ["../../../src/defs.ts", "../../../src/fragments/density.ts", "../../../src/fragments/disabled.ts", "../../../src/fragments/elevation.ts", "../../../src/fragments/focus.ts", "../../../src/fragments/hover.ts", "../../../src/util/hash-styles.ts", "../../../src/util/mx.ts", "../../../src/fragments/size.ts", "../../../src/fragments/text.ts", "../../../src/fragments/valence.ts", "../../../src/theme/components/avatar.ts", "../../../src/theme/components/breadcrumb.ts", "../../../src/theme/components/card.ts", "../../../src/theme/components/button.ts", "../../../src/theme/components/dialog.ts", "../../../src/theme/components/icon.ts", "../../../src/theme/components/icon-button.ts", "../../../src/theme/components/input.ts", "../../../src/theme/components/link.ts", "../../../src/theme/components/list.ts", "../../../src/theme/components/main.ts", "../../../src/theme/components/menu.ts", "../../../src/theme/components/message.ts", "../../../src/theme/components/popover.ts", "../../../src/theme/components/scroll-area.ts", "../../../src/theme/components/select.ts", "../../../src/theme/components/splitter.ts", "../../../src/theme/components/separator.ts", "../../../src/theme/components/skeleton.ts", "../../../src/theme/components/status.ts", "../../../src/theme/components/tag.ts", "../../../src/theme/components/toast.ts", "../../../src/theme/components/toolbar.ts", "../../../src/theme/components/tooltip.ts", "../../../src/theme/components/treegrid.ts", "../../../src/theme/theme.ts", "../../../src/theme/primitives/column.ts", "../../../src/theme/primitives/panel.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ChromaticPalette } from '@dxos/ui-types';\n\n/**\n * Translation namespace for OS-level translations.\n */\nexport const osTranslations = 'org.dxos.i18n.os';\n\n/**\n * Available color hues for UI components.\n */\nexport const hues: ChromaticPalette[] = [\n 'red',\n 'orange',\n 'amber',\n 'yellow',\n 'lime',\n 'green',\n 'emerald',\n 'teal',\n 'cyan',\n 'sky',\n 'blue',\n 'indigo',\n 'violet',\n 'purple',\n 'fuchsia',\n 'pink',\n 'rose',\n] as const;\n\nexport const hueShades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const;\n\nexport const roles = ['fill', 'surface', 'surface-text', 'text', 'border'] as const;\n\n/**\n * Card size constants (Tailwind spacing units).\n * Cards should be no larger than 320px per WCAG 2.1 SC 1.4.10.\n */\n// TODO(burdon): Replace usage of these with semantic tokens.\nexport const cardMinInlineSize = 18;\nexport const cardDefaultInlineSize = 20; // 320px\nexport const cardMaxInlineSize = 22;\nexport const cardMinBlockSize = 18;\nexport const cardMaxBlockSize = 30;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Density } from '@dxos/ui-types';\n\nexport const coarseBlockSize = 'min-h-[2.5rem]';\nexport const coarseDimensions = `${coarseBlockSize} px-3`;\n\nexport const fineBlockSize = 'min-h-[2.5rem] pointer-fine:min-h-[2rem]';\nexport const fineDimensions = `${fineBlockSize} px-2`;\n\nexport const densityBlockSize = (density: Density = 'coarse') => (density === 'fine' ? fineBlockSize : coarseBlockSize);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const staticDisabled = 'opacity-40 cursor-not-allowed shadow-none';\nexport const dataDisabled = 'data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFragment, type Elevation, type SurfaceLevel } from '@dxos/ui-types';\n\nexport const surfaceShadow: ComponentFragment<{ elevation?: Elevation }> = ({ elevation }) => [\n elevation === 'positioned'\n ? 'shadow-sm'\n : elevation === 'dialog' || elevation === 'toast'\n ? 'shadow-md'\n : 'shadow-none',\n];\n\nexport const surfaceZIndex: ComponentFragment<{ level?: SurfaceLevel; elevation?: Elevation }> = ({\n level,\n elevation,\n}) => {\n switch (level) {\n case 'tooltip':\n return elevation === 'dialog' ? ['z-[53]'] : elevation === 'toast' ? ['z-[43]'] : ['z-50'];\n case 'menu':\n return elevation === 'dialog' ? ['z-[52]'] : elevation === 'toast' ? ['z-[42]'] : ['z-20'];\n default:\n return elevation === 'dialog' ? ['z-[51]'] : elevation === 'toast' ? ['z-[41]'] : ['z-[1]'];\n }\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const focusRing = 'dx-focus-ring';\n\nexport const subduedFocus =\n 'focus:outline-hidden focus-visible:outline-hidden focus:ring-0 ring-0 focus:border-0 border-0';\n\nexport const staticFocusRing =\n 'ring-2 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nexport const subtleHover = 'hover:bg-hover-overlay';\n\nexport const ghostHover = 'hover:bg-hover-surface';\nexport const ghostFocusWithin = 'focus-within:bg-hover-surface';\n\nexport const hoverableControls =\n '[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]';\n\nexport const groupHoverControlItemWithTransition = 'transition-opacity duration-200 opacity-0 group-hover:opacity-100';\n\nexport const hoverableFocusedKeyboardControls = 'focus-visible:[--controls-opacity:1]';\nexport const hoverableFocusedWithinControls = 'focus-within:[--controls-opacity:1]';\nexport const hoverableOpenControlItem = 'hover-hover:aria-[expanded=true]:[--controls-opacity:1]';\nexport const hoverableControlItem = 'opacity-(--controls-opacity)';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ChromaticPalette } from '@dxos/ui-types';\n\nexport type Hue = ChromaticPalette | 'neutral';\n\n// TODO(burdon): Reconcile with ui-theme/theme/roles.css\nexport type ColorStyles = {\n hue: Hue;\n fill: string; // -fill\n surface: string; // -surface\n surfaceText: string; // -surface-text\n text: string; // -text\n border: string; // -border\n};\n\nconst neutral: ColorStyles = {\n hue: 'neutral',\n fill: 'bg-neutral-fill',\n surface: 'bg-neutral-surface',\n surfaceText: 'text-neutral-surface-text',\n text: 'text-neutral-text',\n border: 'border-neutral-border',\n};\n\n// NOTE: Coordinated with `tag.css`.\n// https://github.com/dxos/dxos/blob/main/packages/ui/react-ui-theme/src/styles/layers/tag.css\nconst styles: ColorStyles[] = [\n {\n hue: 'red',\n fill: 'bg-red-fill',\n surface: 'bg-red-surface',\n surfaceText: 'text-red-surface-text',\n text: 'text-red-text',\n border: 'border-red-border',\n },\n {\n hue: 'orange',\n fill: 'bg-orange-fill',\n surface: 'bg-orange-surface',\n surfaceText: 'text-orange-surface-text',\n text: 'text-orange-text',\n border: 'border-orange-border',\n },\n {\n hue: 'amber',\n fill: 'bg-amber-fill',\n surface: 'bg-amber-surface',\n surfaceText: 'text-amber-surface-text',\n text: 'text-amber-text',\n border: 'border-amber-border',\n },\n {\n hue: 'yellow',\n fill: 'bg-yellow-fill',\n surface: 'bg-yellow-surface',\n surfaceText: 'text-yellow-surface-text',\n text: 'text-yellow-text',\n border: 'border-yellow-border',\n },\n {\n hue: 'lime',\n fill: 'bg-lime-fill',\n surface: 'bg-lime-surface',\n surfaceText: 'text-lime-surface-text',\n text: 'text-lime-text',\n border: 'border-lime-border',\n },\n {\n hue: 'green',\n fill: 'bg-green-fill',\n surface: 'bg-green-surface',\n surfaceText: 'text-green-surface-text',\n text: 'text-green-text',\n border: 'border-green-border',\n },\n {\n hue: 'emerald',\n fill: 'bg-emerald-fill',\n surface: 'bg-emerald-surface',\n surfaceText: 'text-emerald-surface-text',\n text: 'text-emerald-text',\n border: 'border-emerald-border',\n },\n {\n hue: 'teal',\n fill: 'bg-teal-fill',\n surface: 'bg-teal-surface',\n surfaceText: 'text-teal-surface-text',\n text: 'text-teal-text',\n border: 'border-teal-border',\n },\n {\n hue: 'cyan',\n fill: 'bg-cyan-fill',\n surface: 'bg-cyan-surface',\n surfaceText: 'text-cyan-surface-text',\n text: 'text-cyan-text',\n border: 'border-cyan-border',\n },\n {\n hue: 'sky',\n fill: 'bg-sky-fill',\n surface: 'bg-sky-surface',\n surfaceText: 'text-sky-surface-text',\n text: 'text-sky-text',\n border: 'border-sky-border',\n },\n {\n hue: 'blue',\n fill: 'bg-blue-fill',\n surface: 'bg-blue-surface',\n surfaceText: 'text-blue-surface-text',\n text: 'text-blue-text',\n border: 'border-blue-border',\n },\n {\n hue: 'indigo',\n fill: 'bg-indigo-fill',\n surface: 'bg-indigo-surface',\n surfaceText: 'text-indigo-surface-text',\n text: 'text-indigo-text',\n border: 'border-indigo-border',\n },\n {\n hue: 'violet',\n fill: 'bg-violet-fill',\n surface: 'bg-violet-surface',\n surfaceText: 'text-violet-surface-text',\n text: 'text-violet-text',\n border: 'border-violet-border',\n },\n {\n hue: 'purple',\n fill: 'bg-purple-fill',\n surface: 'bg-purple-surface',\n surfaceText: 'text-purple-surface-text',\n text: 'text-purple-text',\n border: 'border-purple-border',\n },\n {\n hue: 'fuchsia',\n fill: 'bg-fuchsia-fill',\n surface: 'bg-fuchsia-surface',\n surfaceText: 'text-fuchsia-surface-text',\n text: 'text-fuchsia-text',\n border: 'border-fuchsia-border',\n },\n {\n hue: 'pink',\n fill: 'bg-pink-fill',\n surface: 'bg-pink-surface',\n surfaceText: 'text-pink-surface-text',\n text: 'text-pink-text',\n border: 'border-pink-border',\n },\n {\n hue: 'rose',\n fill: 'bg-rose-fill',\n surface: 'bg-rose-surface',\n surfaceText: 'text-rose-surface-text',\n text: 'text-rose-text',\n border: 'border-rose-border',\n },\n];\n\nexport const palette = {\n neutral,\n hues: styles,\n};\n\n// TODO(burdon): Rename getClassNames.\nexport const getStyles = (hue: string): ColorStyles => {\n return styles.find((color) => color.hue === hue) || neutral;\n};\n\n// TODO(thure): Reconcile with `to-fallback.ts` which exports `toHue` which overlaps a lot.\nexport const getHashStyles = (id: string | undefined): ColorStyles => {\n return getStyles(getHashHue(id));\n};\n\nexport const getHashHue = (id: string | undefined): Hue => {\n return id ? styles[getHash(id) % styles.length].hue : 'neutral';\n};\n\nconst getHash = (id: string): number => id.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ElementType, type HTMLAttributes } from 'react';\nimport { type ClassNameValue, extendTailwindMerge, validators } from 'tailwind-merge';\n\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { type ComposableProps } from '@dxos/ui-types';\n\ntype AdditionalClassGroups = 'density' | 'dx-focus-ring';\n\nexport const mx = extendTailwindMerge<AdditionalClassGroups>({\n extend: {\n classGroups: {\n 'font-family': ['font-body', 'font-mono'],\n 'font-weight': [\n // App weights\n 'font-thin',\n 'font-extralight',\n 'font-light',\n 'font-normal',\n 'font-medium',\n 'font-semibold',\n 'font-bold',\n 'font-extrabold',\n 'font-black',\n // Arbitrary numbers\n validators.isArbitraryNumber,\n ],\n\n density: ['dx-density-fine', 'dx-density-coarse'],\n\n 'dx-focus-ring': [\n 'dx-focus-ring',\n 'dx-focus-ring-inset',\n 'dx-focus-ring-always',\n 'dx-focus-ring-inset-always',\n 'dx-focus-ring-group',\n 'dx-focus-ring-group-x',\n 'dx-focus-ring-group-y',\n 'dx-focus-ring-group-always',\n 'dx-focus-ring-group-x-always',\n 'dx-focus-ring-group-y-always',\n 'dx-focus-ring-inset-over-all',\n 'dx-focus-ring-inset-over-all-always',\n 'dx-focus-ring-main',\n 'dx-focus-ring-main-always',\n ],\n },\n },\n});\n\n/**\n * Reconciles className properties from a parent slot.\n * - `className` is set by the Slot merge mechanism.\n * - `classNames` is the consumer-facing prop for theming overrides.\n * Use `composableProps` to reconcile both into a single `className`.\n */\nexport const composableProps = <P extends HTMLElement = HTMLElement>(\n { className, classNames, ...props }: ComposableProps,\n { className: defaultClassNames, ...defaults }: Partial<HTMLAttributes<P>> | undefined = {},\n) => ({\n ...(defaults as object),\n ...props,\n className: mx(defaultClassNames, className, classNames),\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Size } from '@dxos/ui-types';\n\nimport { mx } from '../util';\n\nconst sizeWidthMap = new Map<Size, string>([\n [0, 'w-0'],\n ['px', 'w-px'], // 1px\n [0.5, 'w-0.5'],\n [1, 'w-1'],\n [1.5, 'w-1.5'],\n [2, 'w-2'],\n [2.5, 'w-2.5'],\n [3, 'w-3'],\n [3.5, 'w-3.5'],\n [4, 'w-4'],\n [5, 'w-5'],\n [6, 'w-6'],\n [7, 'w-7'],\n [8, 'w-8'],\n [9, 'w-9'],\n [10, 'w-10'],\n [11, 'w-11'],\n [12, 'w-12'],\n [14, 'w-14'],\n [16, 'w-16'],\n [20, 'w-20'],\n [24, 'w-24'],\n [28, 'w-28'],\n [32, 'w-32'],\n [36, 'w-36'],\n [40, 'w-40'],\n [44, 'w-44'],\n [48, 'w-48'],\n [52, 'w-52'],\n [56, 'w-56'],\n [60, 'w-60'],\n [64, 'w-64'],\n [72, 'w-72'],\n [80, 'w-80'],\n [96, 'w-96'],\n]);\n\nconst sizeHeightMap = new Map<Size, string>([\n [0, 'h-0'],\n ['px', 'h-px'], // 1px\n [0.5, 'h-0.5'],\n [1, 'h-1'],\n [1.5, 'h-1.5'],\n [2, 'h-2'],\n [2.5, 'h-2.5'],\n [3, 'h-3'],\n [3.5, 'h-3.5'],\n [4, 'h-4'],\n [5, 'h-5'],\n [6, 'h-6'],\n [7, 'h-7'],\n [8, 'h-8'],\n [9, 'h-9'],\n [10, 'h-10'],\n [11, 'h-11'],\n [12, 'h-12'],\n [14, 'h-14'],\n [16, 'h-16'],\n [20, 'h-20'],\n [24, 'h-24'],\n [28, 'h-28'],\n [32, 'h-32'],\n [36, 'h-36'],\n [40, 'h-40'],\n [44, 'h-44'],\n [48, 'h-48'],\n [52, 'h-52'],\n [56, 'h-56'],\n [60, 'h-60'],\n [64, 'h-64'],\n [72, 'h-72'],\n [80, 'h-80'],\n [96, 'h-96'],\n]);\n\nconst sizes = new Set(sizeWidthMap.keys());\n\nexport const getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);\nexport const getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);\nexport const getSize = (size: Size) => mx(getSizeHeight(size), getSizeWidth(size));\n\nexport const computeSize = (value: number, defaultSize: Size) => {\n if (sizes.has(value as Size)) {\n return value as Size;\n } else if (value <= 0) {\n return 0;\n } else if (value === 1) {\n return 'px';\n } else {\n const wholeSeries = Math.floor(value);\n const halfSeries = Math.floor(value * 2) / 2;\n const doubleSeries = Math.floor(value / 2) * 2;\n const quadrupleSeries = Math.floor(value / 4) * 4;\n if (sizes.has(halfSeries as Size)) {\n return halfSeries as Size;\n } else if (sizes.has(wholeSeries as Size)) {\n return wholeSeries as Size;\n } else if (sizes.has(doubleSeries as Size)) {\n return doubleSeries as Size;\n } else if (sizes.has(quadrupleSeries as Size)) {\n return quadrupleSeries as Size;\n } else {\n return defaultSize;\n }\n }\n};\n\nexport const sizeValue = (size: Size): number => (size === 'px' ? 1 : size);\n", "//\n// Copyright 2022 DXOS.org\n//\n\n/**\n * Content areas that contain the text editor.\n */\nexport const textBlockWidth = 'w-full max-w-text-content mx-auto';\n\nexport const descriptionTextPrimary = 'text-sm font-normal text-base-surface-text';\nexport const descriptionMessage = 'text-description border border-dashed border-separator rounded-sm p-4';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type MessageValence } from '@dxos/ui-types';\n\nexport const textValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'font-medium text-success-text';\n case 'info':\n return 'font-medium text-info-text';\n case 'warning':\n return 'font-medium text-warning-text';\n case 'error':\n return 'font-medium text-error-text';\n }\n};\n\nexport const messageValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'font-medium text-success-text border-success-text bg-success-surface';\n case 'info':\n return 'font-medium text-info-text border-info-text bg-info-surface';\n case 'warning':\n return 'font-medium text-warning-text border-warning-text bg-warning-surface';\n case 'error':\n return 'font-medium text-error-text border-error-text bg-error-surface';\n default:\n return 'font-medium text-neutral-text border-neutral-text bg-neutral-surface';\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nimport { getSize, getSizeHeight } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type AvatarStyleProps = Partial<{\n size: Size;\n srOnly: boolean;\n status: 'active' | 'inactive' | 'current' | 'error' | 'warning' | 'internal';\n animation: 'pulse' | 'none';\n variant: 'circle' | 'square';\n inGroup: boolean;\n}>;\n\nexport const avatarRoot: ComponentFunction<AvatarStyleProps> = ({ size = 10, inGroup }, ...etc) =>\n mx(\n 'relative inline-flex shrink-0',\n getSize(size),\n inGroup && (size === 'px' || size <= 3 ? '-mr-1' : '-mr-2'),\n ...etc,\n );\n\nexport const avatarLabel: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) => mx(srOnly && 'sr-only', ...etc);\n\nexport const avatarDescription: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n mx('text-description', srOnly && 'sr-only', ...etc);\n\nexport const avatarFrame: ComponentFunction<AvatarStyleProps> = ({ variant }, ...etc) =>\n mx('w-full h-full bg-(--surface-bg)', variant === 'circle' ? 'rounded-full' : 'rounded-sm', ...etc);\n\nexport const avatarStatusIcon: ComponentFunction<AvatarStyleProps> = ({ status, size = 3 }, ...etc) =>\n mx(\n 'absolute bottom-0 end-0',\n getSize(size),\n status === 'inactive'\n ? 'text-amber-400 dark:text-amber-300'\n : status === 'active'\n ? 'text-emerald-400 dark:text-emerald-300'\n : 'text-neutral-400 dark:text-neutral-300',\n ...etc,\n );\n\nexport const avatarRing: ComponentFunction<AvatarStyleProps> = ({ status, variant, animation }, ...etc) =>\n mx(\n 'absolute inset-0 border-2',\n variant === 'circle' ? 'rounded-full' : 'rounded-sm',\n status === 'current'\n ? 'border-primary-400 dark:border-primary-500'\n : status === 'active'\n ? 'border-emerald-400 dark:border-emerald-400'\n : status === 'error'\n ? 'border-rose-400 dark:border-rose-500'\n : status === 'warning'\n ? 'border-amber-400 dark:border-amber-500'\n : status === 'inactive'\n ? 'border-separator'\n : status === 'internal'\n ? 'border-fuchsia-600'\n : 'border-[color:var(--surface-bg)]',\n animation === 'pulse' ? 'animate-halo-pulse' : '',\n ...etc,\n );\n\nexport const avatarFallbackText: ComponentFunction<AvatarStyleProps> = (_props, ...etc) => mx('fill-white', ...etc);\n\nexport const avatarGroup: ComponentFunction<AvatarStyleProps> = (_props, ...etc) =>\n mx('inline-flex items-center', ...etc);\n\nexport const avatarGroupLabel: ComponentFunction<AvatarStyleProps> = ({ size, srOnly }, ...etc) =>\n mx(\n srOnly\n ? 'sr-only'\n : 'rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center',\n size && getSizeHeight(size),\n ...etc,\n );\n\nexport const avatarGroupDescription: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n mx(srOnly ? 'sr-only' : 'text-description', ...etc);\n\nexport const avatarTheme: Theme<AvatarStyleProps> = {\n root: avatarRoot,\n label: avatarLabel,\n description: avatarDescription,\n statusIcon: avatarStatusIcon,\n frame: avatarFrame,\n ring: avatarRing,\n fallbackText: avatarFallbackText,\n group: avatarGroup,\n groupLabel: avatarGroupLabel,\n groupDescription: avatarGroupDescription,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type breadcrumbStyleProps = {};\n\nexport const breadcrumbRoot: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) =>\n mx('shrink-0 flex items-center', ...etc);\n\nexport const breadcrumbList: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nexport const breadcrumbListItem: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nexport const breadcrumbCurrent: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx(...etc);\n\nexport const breadcrumbSeparator: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) =>\n mx('opacity-50', ...etc);\n\nexport const breadcrumbTheme: Theme<breadcrumbStyleProps> = {\n root: breadcrumbRoot,\n list: breadcrumbList,\n listItem: breadcrumbListItem,\n current: breadcrumbCurrent,\n separator: breadcrumbSeparator,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type CardStyleProps = {\n border?: boolean;\n fullWidth?: boolean;\n srOnly?: boolean;\n variant?: 'default' | 'subtitle' | 'description';\n coarse?: boolean;\n truncate?: boolean;\n};\n\nconst cardRoot: ComponentFunction<CardStyleProps> = ({ border, fullWidth }, ...etc) =>\n mx(\n 'dx-card group/card relative flex flex-col w-full min-h-(--dx-rail-item) dx-card-min-width overflow-hidden',\n border &&\n 'bg-card-surface border border-separator dark:border-subdued-separator rounded-xs dx-focus-ring-group-y-indicator',\n fullWidth && 'max-w-none!',\n ...etc,\n );\n\nconst cardToolbar: ComponentFunction<CardStyleProps> = ({ coarse }, ...etc) =>\n mx(\n 'dx-card__toolbar dx-density-fine bg-transparent col-span-3 !grid grid-cols-subgrid [contain:none]',\n coarse && 'grid-cols-[var(--dx-l0-avatar-size)_minmax(0,1fr)_var(--dx-rail-item)]',\n ...etc,\n );\n\nconst cardTitle: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__title grow truncate', ...etc);\n\nconst cardContent: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__content contents [&>:last-child]:pb-1', ...etc);\n\nconst cardHeading: ComponentFunction<CardStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'dx-card__heading',\n variant === 'default' && 'py-1',\n variant === 'subtitle' && 'py-2 text-xs text-description font-medium uppercase',\n ...etc,\n );\n\nconst cardText: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate: _truncate }, ...etc) =>\n mx(\n 'dx-card__text flex overflow-hidden',\n variant === 'default' && 'py-1',\n variant === 'description' && 'py-1.5',\n ...etc,\n );\n\nconst cardTextSpan: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate }, ...etc) =>\n mx(variant === 'description' && 'text-sm text-description line-clamp-3', truncate && 'truncate', ...etc);\n\nconst cardPoster: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__poster col-span-3 max-h-[200px]', ...etc);\n\nconst cardPosterIcon: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]', ...etc);\n\nconst cardAction: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__acztion col-span-3 !grid grid-cols-subgrid p-0! w-full text-start overflow-hidden', ...etc);\n\nconst cardActionLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__action-label min-w-0 flex-1 truncate', ...etc);\n\nconst cardLink: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__link col-span-3 !grid grid-cols-subgrid group p-0! dx-button dx-focus-ring min-h-1!', ...etc);\n\nconst cardLinkLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__link-label min-w-0 flex-1 truncate', ...etc);\n\nconst cardIconBlock: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n mx('dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center', ...etc);\n\nexport const cardTheme: Theme<CardStyleProps> = {\n root: cardRoot,\n toolbar: cardToolbar,\n title: cardTitle,\n content: cardContent,\n heading: cardHeading,\n text: cardText,\n 'text-span': cardTextSpan,\n poster: cardPoster,\n 'poster-icon': cardPosterIcon,\n action: cardAction,\n 'action-label': cardActionLabel,\n link: cardLink,\n 'link-label': cardLinkLabel,\n 'icon-block': cardIconBlock,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { ComponentFunction, Density, Elevation, Theme } from '@dxos/ui-types';\n\nimport { ghostHover } from '../../fragments';\nimport { mx } from '../../util';\n\nexport const primaryButtonColors =\n 'text-accent-surface-text 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';\n\nexport const staticDefaultButtonColors = 'bg-input-surface text-input-surface-text';\n\nexport const defaultButtonColors = mx(\n staticDefaultButtonColors,\n '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',\n);\n\nexport const ghostButtonColors = mx(\n ghostHover,\n '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',\n);\n\nexport type ButtonStyleProps = Partial<{\n inGroup?: boolean;\n textWrap?: boolean;\n density: Density;\n elevation: Elevation;\n disabled: boolean;\n variant: 'default' | 'primary' | 'ghost' | 'outline';\n}>;\n\nconst buttonRoot: ComponentFunction<ButtonStyleProps> = (_props, ...etc) => {\n return mx('dx-button dx-focus-ring group max-w-full [&_span]:truncate', ...etc);\n};\n\nconst buttonGroup: ComponentFunction<{ elevation?: Elevation }> = (_props, ...etc) => {\n return mx(\n 'inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative',\n ...etc,\n );\n};\n\nexport const buttonTheme: Theme<ButtonStyleProps> = {\n root: buttonRoot,\n group: buttonGroup,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst sizeMap: Record<DialogSize, string> = {\n sm: 'md:max-w-[24rem]',\n md: 'md:max-w-[32rem]!',\n lg: 'md:max-w-[40rem]!',\n xl: 'md:max-w-[60rem]!',\n};\n\nexport type DialogStyleProps = {\n srOnly?: boolean;\n inOverlayLayout?: boolean;\n elevation?: Elevation;\n size?: DialogSize;\n};\n\nexport const dialogOverlay: ComponentFunction<DialogStyleProps> = (_props, ...etc) => mx('dx-dialog__overlay', ...etc);\n\nexport const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size = 'md' }, ...etc) => {\n return mx(\n '@container',\n 'dx-dialog__content dx-focus-ring dx-modal-surface dx-density-coarse py-4',\n !inOverlayLayout && 'fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',\n sizeMap[size],\n ...etc,\n );\n};\n\nexport const dialogHeader: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__header flex pb-4 items-center justify-between', ...etc);\n\nexport const dialogBody: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__body flex flex-col h-full py-2 gap-2', ...etc);\n\nexport const dialogActionBar: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse', ...etc);\n\nexport const dialogTitle: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n mx('dx-dialog__title', srOnly && 'sr-only', ...etc);\n\nexport const dialogDescription: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n mx('dx-dialog__description', 'text-description', srOnly && 'sr-only', ...etc);\n\nexport const dialogTheme: Theme<DialogStyleProps> = {\n overlay: dialogOverlay,\n content: dialogContent,\n header: dialogHeader,\n body: dialogBody,\n actionbar: dialogActionBar,\n title: dialogTitle,\n description: dialogDescription,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nimport { getSize } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type IconStyleProps = {\n size?: Size;\n};\n\nexport const iconRoot: ComponentFunction<IconStyleProps> = ({ size }, etc) =>\n mx('shrink-0 h-[1em] w-[1em] text-[var(--icons-color,currentColor)]', size && getSize(size), etc);\n\nexport const iconTheme: Theme<IconStyleProps> = {\n root: iconRoot,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nimport { type ButtonStyleProps } from './button';\n\nexport type IconButtonStyleProps = ButtonStyleProps & { iconOnly?: boolean };\n\n// TODO(burdon): Gap/font size should depend on density.\nexport const iconButtonRoot: ComponentFunction<IconButtonStyleProps> = ({ iconOnly }, ...etc) => {\n return mx('gap-2', iconOnly && 'p-icon-button-padding min-h-0', ...etc);\n};\n\nexport const iconButtonTheme: Theme<IconButtonStyleProps> = {\n root: iconButtonRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type ComponentFragment,\n type ComponentFunction,\n type Density,\n type Elevation,\n type MessageValence,\n type Size,\n} from '@dxos/ui-types';\n\nimport {\n coarseBlockSize,\n coarseDimensions,\n computeSize,\n fineBlockSize,\n fineDimensions,\n focusRing,\n getSize,\n getSizeHeight,\n getSizeWidth,\n sizeValue,\n staticDisabled,\n staticFocusRing,\n subduedFocus,\n textValence,\n} from '../../fragments';\nimport { mx } from '../../util';\n\nexport type InputStyleProps = Partial<{\n variant: 'default' | 'subdued' | 'static';\n density: Density;\n disabled: boolean;\n elevation: Elevation;\n focused: boolean;\n validationValence: MessageValence;\n size: Size;\n checked: boolean;\n}>;\n\nexport type InputMetaStyleProps = Partial<{\n srOnly: boolean;\n validationValence: MessageValence;\n}>;\n\nexport const inputTextLabel = 'py-1 text-sm text-description';\n\nconst textInputSurfaceFocus =\n 'transition-colors bg-input-surface focus:bg-focus-surface border border-separator focus:border-separator';\n\nconst textInputSurfaceHover = 'hover:bg-focus-surface';\n\nconst booleanInputSurface =\n 'shadow-inner transition-colors bg-un-accent aria-checked:bg-accent-surface aria-[checked=mixed]:bg-accent-surface';\n\nconst booleanInputSurfaceHover =\n 'hover:bg-un-accent-hover hover:aria-checked:bg-accent-surface-hover hover:aria-[checked=mixed]:bg-accent-surface-hover';\n\n// TODO(burdon): Replace with semantic tokens.\nconst inputValence = (valence?: MessageValence) => {\n switch (valence) {\n case 'success':\n return 'shadow-emerald-500/50 dark:shadow-emerald-600/50';\n case 'info':\n return 'shadow-cyan-500/50 dark:shadow-cyan-600/50';\n case 'warning':\n return 'shadow-amber-500/50 dark:shadow-amber-600/50';\n case 'error':\n return 'shadow-rose-500/50 dark:shadow-rose-600/50';\n }\n};\n\nconst sharedSubduedInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full bg-transparent text-current placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n props.density === 'fine' ? fineBlockSize : coarseBlockSize,\n subduedFocus,\n props.disabled && staticDisabled,\n];\n\nconst sharedDefaultInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n textInputSurfaceFocus,\n props.density === 'fine' ? fineDimensions : coarseDimensions,\n props.disabled ? staticDisabled : textInputSurfaceHover,\n];\n\nconst sharedStaticInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n textInputSurfaceFocus,\n textInputSurfaceHover,\n props.focused && 'bg-attention-surface',\n inputValence(props.validationValence),\n props.disabled && staticDisabled,\n props.focused && staticFocusRing,\n];\n\nconst inputInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n props.variant === 'subdued'\n ? mx(...sharedSubduedInputStyles(props), ...etc)\n : props.variant === 'static'\n ? mx(...sharedStaticInputStyles(props), ...etc)\n : mx(\n ...sharedDefaultInputStyles(props),\n !props.disabled && focusRing,\n inputValence(props.validationValence),\n ...etc,\n );\n\nconst inputTextArea: ComponentFunction<InputStyleProps> = (props, ...etc) => inputInput(props, ...['-mb-1.5', ...etc]);\n\nconst inputCheckbox: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>\n mx('dx-checkbox dx-focus-ring', getSize(size), ...etc);\n\nconst inputCheckboxIndicator: ComponentFunction<InputStyleProps> = ({ size = 5, checked }, ...etc) =>\n mx(getSize(computeSize(sizeValue(size) * 0.65, 4)), !checked && 'invisible', ...etc);\n\nconst inputSwitch: ComponentFunction<InputStyleProps> = ({ size = 5, disabled }, ...etc) =>\n mx(\n getSizeHeight(size),\n getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),\n booleanInputSurface,\n !disabled && booleanInputSurfaceHover,\n // TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.\n 'cursor-pointer shrink-0 rounded-full px-1 mx-1 relative',\n focusRing,\n ...etc,\n );\n\nconst inputSwitchThumb: ComponentFunction<InputStyleProps> = ({ size = 5 }, ...etc) =>\n mx(\n getSize(size === 'px' ? 'px' : ((size - 2) as Size)),\n 'block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]',\n ...etc,\n );\n\nconst inputWithSegmentsInput: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n mx(\n 'font-mono selection:bg-transparent mx-auto',\n props.density === 'fine' ? 'text-base pointer-fine:text-sm' : 'text-lg',\n props.disabled && 'cursor-not-allowed',\n ...etc,\n );\n\nconst inputSegment: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n mx(\n 'flex items-center justify-center font-mono',\n props.density === 'fine' ? 'size-10 pointer-fine:size-8 rounded-xs' : 'size-12 rounded-xs',\n 'bg-input-surface text-base-surface-text transition-colors border border-separator',\n 'data-[focused]:bg-attention-surface data-[focused]:border-neutral-focus-indicator',\n 'data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-neutral-focus-indicator',\n inputValence(props.validationValence),\n props.disabled && staticDisabled,\n ...etc,\n );\n\nconst inputLabel: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('block', inputTextLabel, props.srOnly && 'sr-only', ...etc);\n\nconst inputDescription: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('text-description', props.srOnly && 'sr-only', ...etc);\n\nconst inputDescriptionAndValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx('leading-none my-1.5', props.srOnly && 'sr-only', ...etc);\n\nconst inputValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n mx(inputTextLabel, props.srOnly ? 'sr-only' : textValence(props.validationValence), ...etc);\n\nexport const inputTheme = {\n input: inputInput,\n textArea: inputTextArea,\n inputWithSegments: inputWithSegmentsInput,\n segment: inputSegment,\n checkbox: inputCheckbox,\n checkboxIndicator: inputCheckboxIndicator,\n label: inputLabel,\n description: inputDescription,\n switch: inputSwitch,\n switchThumb: inputSwitchThumb,\n validation: inputValidation,\n descriptionAndValidation: inputDescriptionAndValidation,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { focusRing } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type LinkStyleProps = {\n variant?: 'accent' | 'neutral';\n};\n\nexport const linkRoot: ComponentFunction<LinkStyleProps> = ({ variant }, ...etc) =>\n mx(\n 'underline decoration-1 underline-offset-2 transition-color rounded-xs',\n variant === 'neutral'\n ? 'text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90'\n : 'text-accent-text hover:text-accent-text-hover visited:text-accent-text visited:hover:text-accent-text-hover',\n focusRing,\n ...etc,\n );\n\nexport const linkTheme: Theme<LinkStyleProps> = {\n root: linkRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nimport { densityBlockSize, focusRing, getSize, ghostHover } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ListStyleProps = Partial<{\n density: Density;\n collapsible: boolean;\n}>;\n\nexport const listRoot: ComponentFunction<ListStyleProps> = (_, ...etc) => mx(...etc);\n\nexport const listItem: ComponentFunction<ListStyleProps> = ({ collapsible }, ...etc) =>\n mx(!collapsible && 'flex', ...etc);\n\nexport const listItemEndcap: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx(density === 'fine' ? getSize(8) : getSize(10), 'shrink-0 flex items-center justify-center', ...etc);\n\nexport const listItemHeading: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx(densityBlockSize(density), 'flex items-center', ...etc);\n\nexport const listItemDragHandleIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) =>\n mx(getSize(5), 'mt-2.5', ...etc);\n\nexport const listItemOpenTrigger: ComponentFunction<ListStyleProps> = ({ density }, ...etc) =>\n mx('w-5 rounded-sm flex justify-center items-center', densityBlockSize(density), ghostHover, focusRing, ...etc);\n\nexport const listItemOpenTriggerIcon: ComponentFunction<ListStyleProps> = (_props, ...etc) => {\n return mx(getSize(5), ...etc);\n};\n\nexport const listTheme: Theme<ListStyleProps> = {\n root: listRoot,\n item: {\n root: listItem,\n endcap: listItemEndcap,\n heading: listItemHeading,\n dragHandleIcon: listItemDragHandleIcon,\n openTrigger: listItemOpenTrigger,\n openTriggerIcon: listItemOpenTriggerIcon,\n },\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\n// Padding to apply to in-flow elements which need to clear the fixed topbar/bottombar.\nexport const topbarBlockPaddingStart = 'py-(--dx-topbar-size) dx-sticky-top-from-topbar-bottom';\nexport const bottombarBlockPaddingEnd = 'pb-(--dx-statusbar-size) dx-sticky-bottom-from-statusbar-bottom';\n\nexport const mainPadding = 'dx-main-content-padding';\nexport const mainPaddingTransitions = 'dx-main-content-padding-transitions';\nexport const mainIntrinsicSize = 'dx-main-intrinsic-size';\n\nexport type MainStyleProps = Partial<{\n bounce: boolean;\n handlesFocus: boolean;\n}>;\n\nexport const mainContent: ComponentFunction<MainStyleProps> = ({ bounce }, ...etc) =>\n mx(mainPadding, mainPaddingTransitions, bounce && 'dx-main-bounce-layout', 'dx-focus-ring-main', ...etc);\n\nexport const mainSidebar: ComponentFunction<MainStyleProps> = (_, ...etc) =>\n mx('dx-main-sidebar', 'dx-focus-ring-inset-over-all', ...etc);\n\nexport const mainOverlay: ComponentFunction<MainStyleProps> = (_, ...etc) => mx('dx-main-overlay', ...etc);\n\nexport const mainTheme = {\n content: mainContent,\n sidebar: mainSidebar,\n overlay: mainOverlay,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { dataDisabled, subduedFocus, surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type MenuStyleProps = Partial<{\n constrainBlockSize: boolean;\n elevation: Elevation;\n}>;\n\nexport const menuContent: ComponentFunction<MenuStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'dx-modal-surface w-48 rounded-sm md:w-56 border border-separator',\n surfaceZIndex({ elevation, level: 'menu' }),\n surfaceShadow({ elevation: 'positioned' }),\n ...etc,\n );\n\nexport const menuViewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto', ...etc);\n\nexport const menuItem: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx(\n 'flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm',\n 'data-[highlighted]:bg-hover-surface',\n subduedFocus,\n dataDisabled,\n ...etc,\n );\n\nexport const menuSeparator: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('my-1 mx-2 h-px bg-separator', ...etc);\n\nexport const menuGroupLabel: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n mx('text-description', 'select-none px-2 py-2', ...etc);\n\nexport const menuArrow: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const menuTheme: Theme<MenuStyleProps> = {\n content: menuContent,\n viewport: menuViewport,\n item: menuItem,\n separator: menuSeparator,\n groupLabel: menuGroupLabel,\n arrow: menuArrow,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type MessageValence, type Theme } from '@dxos/ui-types';\n\nimport { messageValence } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type MessageStyleProps = {\n valence?: MessageValence;\n elevation?: Elevation;\n};\n\nexport const messageRoot: ComponentFunction<MessageStyleProps> = ({ valence }, etc) => {\n return mx('grid grid-cols-[min-content_1fr] gap-x-2 p-trim-sm rounded-sm', messageValence(valence), etc);\n};\n\nexport const messageHeader: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-span-2 grid grid-cols-subgrid items-center', etc);\n};\n\nexport const messageTitle: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-start-2 text-lg gap-trim-sm [&>svg]:inline-block', etc);\n};\n\nexport const messageIcon: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('col-start-1', etc);\n};\n\nexport const messageContent: ComponentFunction<MessageStyleProps> = (_, etc) => {\n return mx('grid grid-cols-subgrid col-start-2 first:font-medium', etc);\n};\n\nexport const messageTheme: Theme<MessageStyleProps> = {\n root: messageRoot,\n header: messageHeader,\n icon: messageIcon,\n title: messageTitle,\n content: messageContent,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { focusRing, surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type PopoverStyleProps = Partial<{\n constrainBlock: boolean;\n constrainInline: boolean;\n elevation: Elevation;\n}>;\n\nexport const popoverContent: ComponentFunction<PopoverStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'dx-modal-surface border border-separator rounded-sm',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'menu' }),\n focusRing,\n ...etc,\n );\n\nexport const popoverViewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>\n mx(\n 'flex flex-col min-h-0 min-w-popover-min-width',\n (constrainBlock || constrainInline) && 'overflow-hidden',\n // Ensures it respects available height from Radix (or 100dvh).\n constrainBlock &&\n 'max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]',\n constrainInline && 'max-w-(--radix-popover-content-available-width)',\n ...etc,\n );\n\nexport const popoverArrow: ComponentFunction<PopoverStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const popoverTheme: Theme<PopoverStyleProps> = {\n content: popoverContent,\n viewport: popoverViewport,\n arrow: popoverArrow,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type AllowedAxis, type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type ScrollAreaStyleProps = {\n orientation?: AllowedAxis;\n autoHide?: boolean;\n /** Balance left/right, top/bottom \"margin\" with scrollbar. */\n margin?: boolean;\n /** Add default padding. */\n /** TODO(burdon): Integrate with Column.Root padding. */\n padding?: boolean;\n /** Use thin scrollbars. */\n /** TODO(burdon): Density fine/course. */\n thin?: boolean;\n /** Enable snap scrolling. */\n snap?: boolean;\n};\n\nexport const scrollAreaRoot: ComponentFunction<ScrollAreaStyleProps> = ({ orientation, margin, thin }, ...etc) =>\n mx(\n 'overflow-hidden',\n\n orientation === 'vertical' && 'group/scroll-v dx-container',\n orientation === 'horizontal' && 'group/scroll-h dx-container',\n orientation === 'all' && 'group/scroll-all dx-container',\n\n // TODO(burdon): Audit composition.\n // Apply col-span-full only when inside a Column.Root grid (detected via dx-column marker).\n '[.dx-column_&]:col-span-full',\n\n // NOTE: Uses --gutter CSS variable\n // If contained within Column.Root grid, the gutter is set by that component.\n margin && [\n orientation === 'vertical' &&\n (thin\n ? 'pl-[var(--gutter,4px)] pr-[calc(var(--gutter,4px)-4px)]'\n : 'pl-[var(--gutter,8px)] pr-[calc(var(--gutter,8px)-8px)]'),\n orientation === 'horizontal' && (thin ? 'py-[var(--gutter,4px)]' : 'py-[var(--gutter,8px)]'),\n orientation === 'all' &&\n (thin ? 'pl-[var(--gutter,4px)] py-[var(--gutter,8px)]' : 'pl-[var(--gutter,8px)] py-[var(--gutter,8px)]'),\n ],\n\n ...etc,\n );\n\n/**\n * NOTE: The browser reserves space for scrollbars.\n */\nexport const scrollAreaViewport: ComponentFunction<ScrollAreaStyleProps> = (\n { orientation, autoHide, padding, snap, thin },\n ...etc\n) =>\n mx(\n 'h-full w-full',\n\n orientation === 'vertical' && 'flex flex-col overflow-y-scroll',\n orientation === 'horizontal' && 'flex overflow-x-scroll',\n orientation === 'all' && 'overflow-scroll',\n\n thin\n ? '[&::-webkit-scrollbar]:w-[4px] [&::-webkit-scrollbar]:h-[4px]'\n : '[&::-webkit-scrollbar]:w-[8px] [&::-webkit-scrollbar]:h-[8px]',\n\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-none',\n\n autoHide\n ? [\n orientation === 'vertical' && 'group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'horizontal' && 'group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'all' && 'group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n ]\n : [\n orientation === 'vertical' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'horizontal' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n orientation === 'all' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n ],\n\n padding && [\n orientation === 'vertical' && 'px-[4px]',\n orientation === 'horizontal' && 'pb-[4px]',\n orientation === 'all' && 'pl-[4px] pb-[4px]',\n ],\n\n snap && [\n orientation === 'vertical' && 'snap-y snap-mandatory',\n orientation === 'horizontal' && 'snap-x snap-mandatory',\n orientation === 'all' && 'snap-both snap-mandatory',\n ],\n\n ...etc,\n );\n\nexport const scrollAreaTheme: Theme<ScrollAreaStyleProps> = {\n root: scrollAreaRoot,\n viewport: scrollAreaViewport,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type SelectStyleProps = Partial<{\n elevation: Elevation;\n}>;\n\nexport const selectContent: ComponentFunction<SelectStyleProps> = ({ elevation }, ...etc) => {\n return mx(\n 'dx-modal-surface rounded-sm border border-separator',\n 'min-w-(--radix-select-trigger-width) max-h-(--radix-select-content-available-height)',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'menu' }),\n ...etc,\n );\n};\n\nexport const selectViewport: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx(...etc);\n\nexport const selectItem: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx(\n 'flex items-center min-h-[2rem] px-3 py-1 gap-2',\n 'text-base-surface-text leading-none select-none outline-hidden',\n '[&>svg]:invisible [&[data-state=checked]>svg]:visible',\n 'dx-highlighted',\n ...etc,\n );\n\nexport const selectItemIndicator: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('items-center', ...etc);\n\nexport const selectArrow: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const selectSeparator: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx('self-stretch border-b my-1 border-separator', ...etc);\n\nexport const selectScrollButton: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n mx('dx-modal-surface flex items-center justify-center cursor-default h-6 w-full', ...etc);\n\nexport const selectTheme: Theme<SelectStyleProps> = {\n content: selectContent,\n viewport: selectViewport,\n item: selectItem,\n itemIndicator: selectItemIndicator,\n arrow: selectArrow,\n separator: selectSeparator,\n scrollButton: selectScrollButton,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SplitterStyleProps = {};\n\nconst splitterRoot: ComponentFunction<SplitterStyleProps> = (_props, ...etc) =>\n mx('relative h-full overflow-hidden', ...etc);\n\nconst splitterPanel: ComponentFunction<SplitterStyleProps> = (_props, ...etc) =>\n mx('absolute inset-x-0 flex flex-col overflow-hidden', ...etc);\n\nexport const splitterTheme: Theme<SplitterStyleProps> = {\n root: splitterRoot,\n panel: splitterPanel,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SeparatorStyleProps = {\n orientation?: 'horizontal' | 'vertical';\n subdued?: boolean;\n};\n\nexport const separatorRoot: ComponentFunction<SeparatorStyleProps> = ({ orientation, subdued }, ...etc) =>\n mx(\n 'self-stretch',\n orientation === 'vertical' ? 'border-e mx-1' : 'border-b my-1',\n subdued ? 'border-subdued-separator' : 'border-separator',\n ...etc,\n );\n\nexport const separatorTheme: Theme<SeparatorStyleProps> = {\n root: separatorRoot,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type SkeletonStyleProps = {\n variant?: 'default' | 'circle' | 'text';\n};\n\nexport const skeletonRoot: ComponentFunction<SkeletonStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'animate-pulse bg-neutral-300 dark:bg-neutral-700 rounded-md',\n variant === 'circle' && 'rounded-full',\n variant === 'text' && 'rounded-sm',\n ...etc,\n );\n\nexport const skeletonTheme: Theme<SkeletonStyleProps> = {\n root: skeletonRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type StatusStyleProps = {\n indeterminate?: boolean;\n variant?: 'default' | 'main-bottom';\n};\n\nexport const statusRoot: ComponentFunction<StatusStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'h-1 relative bg-hover-overlay rounded-full overflow-hidden',\n variant === 'main-bottom' ? 'w-full block' : 'inline-20 inline-block',\n ...etc,\n );\n\nexport const statusBar: ComponentFunction<StatusStyleProps> = ({ indeterminate, variant = 'default' }, ...etc) =>\n mx(\n 'absolute inset-y-0 block rounded-full',\n variant === 'main-bottom' ? 'bg-accent-surface' : 'bg-un-accent',\n indeterminate ? 'animate-progress-indeterminate' : 'start-0',\n ...etc,\n );\n\nexport const statusTheme: Theme<StatusStyleProps> = {\n root: statusRoot,\n bar: statusBar,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type ChromaticPalette,\n type ComponentFunction,\n type MessageValence,\n type NeutralPalette,\n type Theme,\n} from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type TagStyleProps = {\n palette?: ChromaticPalette | NeutralPalette | MessageValence;\n};\n\nexport const tagRoot: ComponentFunction<TagStyleProps> = (_, ...etc) => mx('dx-tag', ...etc);\n\nexport const tagTheme: Theme<TagStyleProps> = {\n root: tagRoot,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { focusRing, surfaceShadow } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ToastStyleProps = Partial<{\n srOnly: boolean;\n}>;\n\nexport const toastViewport: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx(\n // TODO(burdon): block-end should take into account status bar.\n 'z-40 fixed bottom-[calc(env(safe-area-inset-bottom)+1rem)] inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)] w-auto md:end-[calc(env(safe-area-inset-right)+1rem)] md:left-auto md:w-full md:max-w-sm',\n 'rounded-md flex flex-col gap-2',\n ...etc,\n );\n\nexport const toastRoot: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx(\n 'dx-modal-surface rounded-md flex p-2 gap-2',\n surfaceShadow({ elevation: 'toast' }),\n 'radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right',\n 'radix-state-closed:animate-toast-hide',\n 'radix-swipe-end:animate-toast-swipe-out',\n 'translate-x-radix-toast-swipe-move-x',\n 'radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]',\n focusRing,\n ...etc,\n );\n\nexport const toastBody: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx('grow flex flex-col gap-1 justify-center pl-2', ...etc);\n\nexport const toastActions: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n mx('shrink-0 flex flex-col gap-1 justify-center', ...etc);\n\nexport const toastTitle: ComponentFunction<ToastStyleProps> = ({ srOnly }, ...etc) =>\n mx('shrink-0 font-medium', srOnly && 'sr-only', ...etc);\n\nexport const toastDescription: ComponentFunction<ToastStyleProps> = ({ srOnly }, ...etc) =>\n mx('text-description', 'shrink-0', srOnly && 'sr-only', ...etc);\n\nexport const toastTheme: Theme<ToastStyleProps> = {\n viewport: toastViewport,\n root: toastRoot,\n body: toastBody,\n title: toastTitle,\n description: toastDescription,\n actions: toastActions,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nimport { textBlockWidth } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type ToolbarStyleProps = Partial<{\n density: Density;\n disabled: boolean;\n layoutManaged: boolean;\n}>;\n\nexport const toolbarLayout =\n 'w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout';\n\nexport const toolbarRoot: ComponentFunction<ToolbarStyleProps> = ({ density, disabled, layoutManaged }, ...etc) => {\n return mx(\n 'bg-toolbar-surface dx-toolbar',\n density === 'coarse' && 'h-(--dx-rail-size) px-3!',\n disabled && '*:opacity-20',\n !layoutManaged && toolbarLayout,\n ...etc,\n );\n};\n\nexport const toolbarInner: ComponentFunction<ToolbarStyleProps> = ({ layoutManaged }, ...etc) => {\n return mx(!layoutManaged && ['flex gap-1', textBlockWidth], ...etc);\n};\n\nexport const toolbarText: ComponentFunction<ToolbarStyleProps> = (_, ...etc) => {\n return mx('grow truncate items-center', textBlockWidth, ...etc);\n};\n\nexport const toolbarTheme: Theme<ToolbarStyleProps> = {\n root: toolbarRoot,\n inner: toolbarInner,\n text: toolbarText,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { surfaceShadow, surfaceZIndex } from '../../fragments';\nimport { mx } from '../../util';\n\nexport type TooltipStyleProps = Partial<{\n elevation: Elevation;\n}>;\n\nexport const tooltipContent: ComponentFunction<TooltipStyleProps> = ({ elevation }, ...etc) =>\n mx(\n 'inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-surface-text rounded-sm',\n surfaceShadow({ elevation: 'positioned' }),\n surfaceZIndex({ elevation, level: 'tooltip' }),\n ...etc,\n );\n\nexport const tooltipArrow: ComponentFunction<TooltipStyleProps> = (_props, ...etc) =>\n mx('fill-inverse-surface', ...etc);\n\nexport const tooltipTheme: Theme<TooltipStyleProps> = {\n content: tooltipContent,\n arrow: tooltipArrow,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type TreegridStyleProps = Partial<{\n level: number;\n indent: boolean;\n}>;\n\nconst levelStyles = new Map<number, string>([\n [1, '[&>.indent:first-of-type]:pl-0 font-medium'],\n [2, '[&>.indent:first-of-type]:pl-0'],\n [3, '[&>.indent:first-of-type]:pl-1'],\n [4, '[&>.indent:first-of-type]:pl-2'],\n [5, '[&>.indent:first-of-type]:pl-3'],\n [6, '[&>.indent:first-of-type]:pl-4'],\n [7, '[&>.indent:first-of-type]:pl-5'],\n [8, '[&>.indent:first-of-type]:pl-6'],\n]);\n\nexport const treegridRoot: ComponentFunction<TreegridStyleProps> = (_, ...etc) => mx('grid', ...etc);\n\nexport const treegridRow: ComponentFunction<TreegridStyleProps> = ({ level = 1 }, ...etc) =>\n mx('contents', levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);\n\nexport const treegridCell: ComponentFunction<TreegridStyleProps> = ({ indent }, ...etc) =>\n mx(indent && 'indent', ...etc);\n\nexport const treegridTheme: Theme<TreegridStyleProps> = {\n root: treegridRoot,\n row: treegridRow,\n cell: treegridCell,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ClassNameArray, type ComponentFunction, type Theme, type ThemeFunction } from '@dxos/ui-types';\nimport { getDeep } from '@dxos/util';\n\nimport {\n avatarTheme,\n breadcrumbTheme,\n buttonTheme,\n cardTheme,\n dialogTheme,\n iconButtonTheme,\n iconTheme,\n inputTheme,\n linkTheme,\n listTheme,\n mainTheme,\n menuTheme,\n messageTheme,\n popoverTheme,\n scrollAreaTheme,\n selectTheme,\n separatorTheme,\n skeletonTheme,\n splitterTheme,\n statusTheme,\n tagTheme,\n toastTheme,\n toolbarTheme,\n tooltipTheme,\n treegridTheme,\n} from './components';\nimport { columnTheme, panelTheme } from './primitives';\n\nexport const defaultTheme: Theme<Record<string, any>> = {\n themeName: () => 'default',\n\n //\n // Primitives\n //\n\n column: columnTheme,\n panel: panelTheme,\n\n //\n // Components\n //\n\n avatar: avatarTheme,\n breadcrumb: breadcrumbTheme,\n button: buttonTheme,\n card: cardTheme,\n dialog: dialogTheme,\n icon: iconTheme,\n iconButton: iconButtonTheme,\n input: inputTheme,\n link: linkTheme,\n list: listTheme,\n main: mainTheme,\n message: messageTheme,\n menu: menuTheme,\n popover: popoverTheme,\n scrollArea: scrollAreaTheme,\n select: selectTheme,\n separator: separatorTheme,\n skeleton: skeletonTheme,\n splitter: splitterTheme,\n status: statusTheme,\n tag: tagTheme,\n toast: toastTheme,\n toolbar: toolbarTheme,\n tooltip: tooltipTheme,\n treegrid: treegridTheme,\n};\n\nexport const bindTheme = <P extends Record<string, any>>(theme: Theme<Record<string, any>>): ThemeFunction<P> => {\n return (path: string, styleProps?: P, ...etc: ClassNameArray) => {\n const result = getDeep<Theme<P> | ComponentFunction<P>>(theme, path.split('.'));\n return typeof result === 'function' ? result(styleProps ?? ({} as P), ...etc) : undefined;\n };\n};\n\nexport const defaultTx = bindTheme(defaultTheme);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nconst columnRoot: ComponentFunction<Record<string, any>> = (_, ...etc) => mx('dx-column w-full min-w-0 grid', ...etc);\n\n/**\n * Three-column icon-slot row: spans all 3 columns of the parent Column.Root grid.\n * Uses CSS subgrid to inherit column sizing from the parent Column.\n * Children map to: [col-1: icon/slot] [col-2: content] [col-3: icon/action].\n */\nconst columnRow: ComponentFunction<Record<string, any>> = (_, ...etc) =>\n mx('col-span-3 grid grid-cols-subgrid', ...etc);\n\n/**\n * NOTE: Must not use overflow-hidden here since it will clip input focus rings.\n * Occupies only the center column (col-2) of the parent Column.Root grid.\n */\nconst columnSegment: ComponentFunction<Record<string, any>> = (_, ...etc) =>\n mx('col-start-2 col-span-1 min-w-0', ...etc);\n\nexport const columnTheme = {\n root: columnRoot,\n row: columnRow,\n segment: columnSegment,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type PanelProps = {};\n\nconst panelRoot: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n 'h-full w-full grid grid-cols-[100%] overflow-hidden',\n // Add uncategorized children to content slot.\n '[&>*:not([data-slot])]:[grid-area:content]',\n ...etc,\n );\n\n// TODO(burdon): Drop asChild (or make it not necessary).\n\nconst panelToolbar: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:toolbar]',\n 'border-b border-subdued-separator relative',\n '[.dx-main-mobile-layout_&]:px-3',\n ...etc,\n );\n\nconst panelContent: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:content] overflow-hidden min-h-0',\n ...etc,\n );\n\nconst panelStatusbar: ComponentFunction<PanelProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n '[grid-area:statusbar]',\n ...etc,\n );\n\nexport const panelTheme = {\n root: panelRoot,\n toolbar: panelToolbar,\n content: panelContent,\n statusbar: panelStatusbar,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["osTranslations", "hues", "hueShades", "roles", "cardMinInlineSize", "cardDefaultInlineSize", "cardMaxInlineSize", "cardMinBlockSize", "cardMaxBlockSize", "coarseBlockSize", "coarseDimensions", "fineBlockSize", "fineDimensions", "densityBlockSize", "density", "staticDisabled", "dataDisabled", "surfaceShadow", "elevation", "surfaceZIndex", "level", "focusRing", "subduedFocus", "staticFocusRing", "subtleHover", "ghostHover", "ghostFocusWithin", "hoverableControls", "groupHoverControlItemWithTransition", "hoverableFocusedKeyboardControls", "hoverableFocusedWithinControls", "hoverableOpenControlItem", "hoverableControlItem", "neutral", "hue", "fill", "surface", "surfaceText", "text", "border", "styles", "palette", "hues", "getStyles", "find", "color", "getHashStyles", "id", "getHashHue", "getHash", "length", "split", "reduce", "acc", "char", "charCodeAt", "extendTailwindMerge", "validators", "mx", "extendTailwindMerge", "extend", "classGroups", "validators", "isArbitraryNumber", "density", "composableProps", "className", "classNames", "props", "defaultClassNames", "defaults", "sizeWidthMap", "Map", "sizeHeightMap", "sizes", "Set", "keys", "getSizeHeight", "get", "bind", "getSizeWidth", "getSize", "size", "mx", "computeSize", "value", "defaultSize", "has", "wholeSeries", "Math", "floor", "halfSeries", "doubleSeries", "quadrupleSeries", "sizeValue", "textBlockWidth", "descriptionTextPrimary", "descriptionMessage", "textValence", "valence", "messageValence", "avatarRoot", "size", "inGroup", "etc", "mx", "getSize", "avatarLabel", "srOnly", "avatarDescription", "avatarFrame", "variant", "avatarStatusIcon", "status", "avatarRing", "animation", "avatarFallbackText", "_props", "avatarGroup", "avatarGroupLabel", "getSizeHeight", "avatarGroupDescription", "avatarTheme", "root", "label", "description", "statusIcon", "frame", "ring", "fallbackText", "group", "groupLabel", "groupDescription", "breadcrumbRoot", "_props", "etc", "mx", "breadcrumbList", "breadcrumbListItem", "breadcrumbCurrent", "breadcrumbSeparator", "breadcrumbTheme", "root", "list", "listItem", "current", "separator", "cardRoot", "border", "fullWidth", "etc", "mx", "cardToolbar", "coarse", "cardTitle", "_props", "cardContent", "cardHeading", "variant", "cardText", "truncate", "_truncate", "cardTextSpan", "cardPoster", "cardPosterIcon", "cardAction", "cardActionLabel", "cardLink", "cardLinkLabel", "cardIconBlock", "cardTheme", "root", "toolbar", "title", "content", "heading", "text", "poster", "action", "link", "primaryButtonColors", "staticDefaultButtonColors", "defaultButtonColors", "mx", "ghostButtonColors", "ghostHover", "buttonRoot", "_props", "etc", "buttonGroup", "buttonTheme", "root", "group", "sizeMap", "sm", "md", "lg", "xl", "dialogOverlay", "_props", "etc", "mx", "dialogContent", "inOverlayLayout", "size", "dialogHeader", "dialogBody", "dialogActionBar", "dialogTitle", "srOnly", "dialogDescription", "dialogTheme", "overlay", "content", "header", "body", "actionbar", "title", "description", "iconRoot", "size", "etc", "mx", "getSize", "iconTheme", "root", "iconButtonRoot", "iconOnly", "etc", "mx", "iconButtonTheme", "root", "inputTextLabel", "textInputSurfaceFocus", "textInputSurfaceHover", "booleanInputSurface", "booleanInputSurfaceHover", "inputValence", "valence", "sharedSubduedInputStyles", "props", "density", "fineBlockSize", "coarseBlockSize", "subduedFocus", "disabled", "staticDisabled", "sharedDefaultInputStyles", "fineDimensions", "coarseDimensions", "sharedStaticInputStyles", "focused", "validationValence", "staticFocusRing", "inputInput", "etc", "variant", "mx", "focusRing", "inputTextArea", "inputCheckbox", "size", "getSize", "inputCheckboxIndicator", "checked", "computeSize", "sizeValue", "inputSwitch", "getSizeHeight", "getSizeWidth", "inputSwitchThumb", "inputWithSegmentsInput", "inputSegment", "inputLabel", "srOnly", "inputDescription", "inputDescriptionAndValidation", "inputValidation", "textValence", "inputTheme", "input", "textArea", "inputWithSegments", "segment", "checkbox", "checkboxIndicator", "label", "description", "switch", "switchThumb", "validation", "descriptionAndValidation", "linkRoot", "variant", "etc", "mx", "focusRing", "linkTheme", "root", "listRoot", "_", "etc", "mx", "listItem", "collapsible", "listItemEndcap", "density", "getSize", "listItemHeading", "densityBlockSize", "listItemDragHandleIcon", "_props", "listItemOpenTrigger", "ghostHover", "focusRing", "listItemOpenTriggerIcon", "listTheme", "root", "item", "endcap", "heading", "dragHandleIcon", "openTrigger", "openTriggerIcon", "topbarBlockPaddingStart", "bottombarBlockPaddingEnd", "mainPadding", "mainPaddingTransitions", "mainIntrinsicSize", "mainContent", "bounce", "etc", "mx", "mainSidebar", "_", "mainOverlay", "mainTheme", "content", "sidebar", "overlay", "menuContent", "elevation", "etc", "mx", "surfaceZIndex", "level", "surfaceShadow", "menuViewport", "_props", "menuItem", "subduedFocus", "dataDisabled", "menuSeparator", "menuGroupLabel", "menuArrow", "menuTheme", "content", "viewport", "item", "separator", "groupLabel", "arrow", "messageRoot", "valence", "etc", "mx", "messageValence", "messageHeader", "_", "messageTitle", "messageIcon", "messageContent", "messageTheme", "root", "header", "icon", "title", "content", "popoverContent", "elevation", "etc", "mx", "surfaceShadow", "surfaceZIndex", "level", "focusRing", "popoverViewport", "constrainBlock", "constrainInline", "popoverArrow", "_props", "popoverTheme", "content", "viewport", "arrow", "scrollAreaRoot", "orientation", "margin", "thin", "etc", "mx", "scrollAreaViewport", "autoHide", "padding", "snap", "scrollAreaTheme", "root", "viewport", "selectContent", "elevation", "etc", "mx", "surfaceShadow", "surfaceZIndex", "level", "selectViewport", "_props", "selectItem", "selectItemIndicator", "selectArrow", "selectSeparator", "selectScrollButton", "selectTheme", "content", "viewport", "item", "itemIndicator", "arrow", "separator", "scrollButton", "splitterRoot", "_props", "etc", "mx", "splitterPanel", "splitterTheme", "root", "panel", "separatorRoot", "orientation", "subdued", "etc", "mx", "separatorTheme", "root", "skeletonRoot", "variant", "etc", "mx", "skeletonTheme", "root", "statusRoot", "variant", "etc", "mx", "statusBar", "indeterminate", "statusTheme", "root", "bar", "tagRoot", "_", "etc", "mx", "tagTheme", "root", "toastViewport", "_props", "etc", "mx", "toastRoot", "surfaceShadow", "elevation", "focusRing", "toastBody", "toastActions", "toastTitle", "srOnly", "toastDescription", "toastTheme", "viewport", "root", "body", "title", "description", "actions", "toolbarLayout", "toolbarRoot", "density", "disabled", "layoutManaged", "etc", "mx", "toolbarInner", "textBlockWidth", "toolbarText", "_", "toolbarTheme", "root", "inner", "text", "tooltipContent", "elevation", "etc", "mx", "surfaceShadow", "surfaceZIndex", "level", "tooltipArrow", "_props", "tooltipTheme", "content", "arrow", "levelStyles", "Map", "treegridRoot", "_", "etc", "mx", "treegridRow", "level", "get", "Math", "min", "max", "round", "treegridCell", "indent", "treegridTheme", "root", "row", "cell", "getDeep", "columnRoot", "_", "etc", "mx", "columnRow", "columnSegment", "columnTheme", "root", "row", "segment", "panelRoot", "_", "etc", "mx", "panelToolbar", "panelContent", "panelStatusbar", "panelTheme", "root", "toolbar", "content", "statusbar", "defaultTheme", "themeName", "column", "columnTheme", "panel", "panelTheme", "avatar", "avatarTheme", "breadcrumb", "breadcrumbTheme", "button", "buttonTheme", "card", "cardTheme", "dialog", "dialogTheme", "icon", "iconTheme", "iconButton", "iconButtonTheme", "input", "inputTheme", "link", "linkTheme", "list", "listTheme", "main", "mainTheme", "message", "messageTheme", "menu", "menuTheme", "popover", "popoverTheme", "scrollArea", "scrollAreaTheme", "select", "selectTheme", "separator", "separatorTheme", "skeleton", "skeletonTheme", "splitter", "splitterTheme", "status", "statusTheme", "tag", "tagTheme", "toast", "toastTheme", "toolbar", "toolbarTheme", "tooltip", "tooltipTheme", "treegrid", "treegridTheme", "bindTheme", "theme", "path", "styleProps", "etc", "result", "getDeep", "split", "undefined", "defaultTx"]
|
|
7
7
|
}
|