@dxos/ui-theme 0.8.4-main.c85a9c8dae → 0.8.4-main.e00bdcdb52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/dist/lib/browser/index.mjs +397 -471
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +397 -471
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/plugin/node-cjs/{theme.css → main.css} +122 -55
  8. package/dist/plugin/node-cjs/main.css.map +7 -0
  9. package/dist/plugin/node-cjs/meta.json +1 -1
  10. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs +8 -15
  11. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs.map +3 -3
  12. package/dist/plugin/node-esm/{theme.css → main.css} +122 -55
  13. package/dist/plugin/node-esm/main.css.map +7 -0
  14. package/dist/plugin/node-esm/meta.json +1 -1
  15. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs +8 -15
  16. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs.map +3 -3
  17. package/dist/types/src/Theme.stories.d.ts.map +1 -1
  18. package/dist/types/src/defs.d.ts +2 -2
  19. package/dist/types/src/defs.d.ts.map +1 -1
  20. package/dist/types/src/fragments/density.d.ts +1 -4
  21. package/dist/types/src/fragments/density.d.ts.map +1 -1
  22. package/dist/types/src/fragments/index.d.ts +0 -5
  23. package/dist/types/src/fragments/index.d.ts.map +1 -1
  24. package/dist/types/src/fragments/text.d.ts +0 -5
  25. package/dist/types/src/fragments/text.d.ts.map +1 -1
  26. package/dist/types/src/index.d.ts +1 -1
  27. package/dist/types/src/index.d.ts.map +1 -1
  28. package/dist/types/src/plugins/ThemePlugin.d.ts +1 -1
  29. package/dist/types/src/plugins/ThemePlugin.d.ts.map +1 -1
  30. package/dist/types/src/theme/components/avatar.d.ts.map +1 -1
  31. package/dist/types/src/theme/components/card.d.ts +3 -2
  32. package/dist/types/src/theme/components/card.d.ts.map +1 -1
  33. package/dist/types/src/theme/components/dialog.d.ts.map +1 -1
  34. package/dist/types/src/theme/components/focus.d.ts +6 -0
  35. package/dist/types/src/theme/components/focus.d.ts.map +1 -0
  36. package/dist/types/src/theme/components/icon-button.d.ts +1 -0
  37. package/dist/types/src/theme/components/icon-button.d.ts.map +1 -1
  38. package/dist/types/src/theme/components/icon.d.ts +3 -0
  39. package/dist/types/src/theme/components/icon.d.ts.map +1 -1
  40. package/dist/types/src/theme/components/index.d.ts +1 -0
  41. package/dist/types/src/theme/components/index.d.ts.map +1 -1
  42. package/dist/types/src/theme/components/input.d.ts +8 -8
  43. package/dist/types/src/theme/components/input.d.ts.map +1 -1
  44. package/dist/types/src/theme/components/link.d.ts.map +1 -1
  45. package/dist/types/src/theme/components/list.d.ts.map +1 -1
  46. package/dist/types/src/theme/components/main.d.ts.map +1 -1
  47. package/dist/types/src/theme/components/message.d.ts.map +1 -1
  48. package/dist/types/src/theme/components/popover.d.ts.map +1 -1
  49. package/dist/types/src/theme/components/scroll-area.d.ts +12 -2
  50. package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -1
  51. package/dist/types/src/theme/components/select.d.ts.map +1 -1
  52. package/dist/types/src/theme/components/status.d.ts +1 -1
  53. package/dist/types/src/theme/components/status.d.ts.map +1 -1
  54. package/dist/types/src/theme/components/toast.d.ts.map +1 -1
  55. package/dist/types/src/theme/components/toolbar.d.ts +0 -1
  56. package/dist/types/src/theme/components/toolbar.d.ts.map +1 -1
  57. package/dist/types/src/theme/components/tooltip.d.ts.map +1 -1
  58. package/dist/types/src/theme/components/treegrid.d.ts.map +1 -1
  59. package/dist/types/src/theme/index.d.ts +1 -0
  60. package/dist/types/src/theme/index.d.ts.map +1 -1
  61. package/dist/types/src/theme/primitives/column.d.ts +25 -3
  62. package/dist/types/src/theme/primitives/column.d.ts.map +1 -1
  63. package/dist/types/src/theme/primitives/panel.d.ts +9 -5
  64. package/dist/types/src/theme/primitives/panel.d.ts.map +1 -1
  65. package/dist/types/src/theme/theme.d.ts.map +1 -1
  66. package/dist/types/src/util/elevation.d.ts.map +1 -0
  67. package/dist/types/src/util/hash-styles.d.ts.map +1 -1
  68. package/dist/types/src/util/index.d.ts +3 -0
  69. package/dist/types/src/util/index.d.ts.map +1 -1
  70. package/dist/types/src/util/mx.d.ts +52 -4
  71. package/dist/types/src/util/mx.d.ts.map +1 -1
  72. package/dist/types/src/util/size.d.ts +27 -0
  73. package/dist/types/src/util/size.d.ts.map +1 -0
  74. package/dist/types/src/util/valence.d.ts +4 -0
  75. package/dist/types/src/util/valence.d.ts.map +1 -0
  76. package/dist/types/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +13 -15
  78. package/src/css/components/button.css +2 -1
  79. package/src/css/components/{focus-ring.css → focus.css} +15 -1
  80. package/src/css/components/icon.css +9 -0
  81. package/src/css/components/panel.css +22 -22
  82. package/src/css/components/selected.css +30 -0
  83. package/src/css/components/tag.css +3 -1
  84. package/src/css/integrations/codemirror.css +5 -3
  85. package/src/css/integrations/tldraw.css +1 -0
  86. package/src/css/layout/main.css +0 -7
  87. package/src/css/layout/size.css +19 -27
  88. package/src/css/theme/animation.css +31 -0
  89. package/src/css/theme/palette.css +8 -0
  90. package/src/css/theme/semantic.css +25 -9
  91. package/src/css/theme/spacing.css +36 -19
  92. package/src/css/utilities.css +114 -3
  93. package/src/defs.ts +1 -1
  94. package/src/fragments/AUDIT.md +57 -0
  95. package/src/fragments/density.ts +8 -5
  96. package/src/fragments/index.ts +1 -6
  97. package/src/fragments/text.ts +1 -6
  98. package/src/index.ts +1 -1
  99. package/src/{theme.css → main.css} +10 -6
  100. package/src/plugins/ThemePlugin.ts +12 -24
  101. package/src/plugins/main.css +45 -0
  102. package/src/theme/components/avatar.ts +3 -4
  103. package/src/theme/components/button.ts +1 -1
  104. package/src/theme/components/card.ts +19 -11
  105. package/src/theme/components/dialog.ts +4 -3
  106. package/src/theme/components/focus.ts +33 -0
  107. package/src/theme/components/icon-button.ts +6 -5
  108. package/src/theme/components/icon.ts +13 -4
  109. package/src/theme/components/index.ts +1 -0
  110. package/src/theme/components/input.ts +15 -30
  111. package/src/theme/components/link.ts +1 -2
  112. package/src/theme/components/list.ts +4 -4
  113. package/src/theme/components/menu.ts +4 -4
  114. package/src/theme/components/message.ts +2 -3
  115. package/src/theme/components/popover.ts +4 -5
  116. package/src/theme/components/scroll-area.ts +58 -46
  117. package/src/theme/components/select.ts +2 -3
  118. package/src/theme/components/status.ts +5 -5
  119. package/src/theme/components/toast.ts +2 -3
  120. package/src/theme/components/toolbar.ts +1 -7
  121. package/src/theme/components/tooltip.ts +1 -2
  122. package/src/theme/components/treegrid.ts +1 -1
  123. package/src/theme/index.ts +1 -0
  124. package/src/theme/primitives/column.ts +49 -8
  125. package/src/theme/primitives/panel.ts +19 -23
  126. package/src/theme/theme.ts +2 -0
  127. package/src/typings.d.ts +3 -0
  128. package/src/util/index.ts +3 -0
  129. package/src/util/mx.ts +119 -8
  130. package/src/util/size.ts +103 -0
  131. package/dist/plugin/node-cjs/theme.css.map +0 -7
  132. package/dist/plugin/node-esm/theme.css.map +0 -7
  133. package/dist/types/src/fragments/elevation.d.ts.map +0 -1
  134. package/dist/types/src/fragments/focus.d.ts +0 -4
  135. package/dist/types/src/fragments/focus.d.ts.map +0 -1
  136. package/dist/types/src/fragments/selected.d.ts +0 -4
  137. package/dist/types/src/fragments/selected.d.ts.map +0 -1
  138. package/dist/types/src/fragments/size.d.ts +0 -7
  139. package/dist/types/src/fragments/size.d.ts.map +0 -1
  140. package/dist/types/src/fragments/valence.d.ts +0 -4
  141. package/dist/types/src/fragments/valence.d.ts.map +0 -1
  142. package/src/fragments/focus.ts +0 -11
  143. package/src/fragments/selected.ts +0 -12
  144. package/src/fragments/size.ts +0 -117
  145. /package/dist/types/src/{fragments → util}/elevation.d.ts +0 -0
  146. /package/src/{fragments → util}/elevation.ts +0 -0
  147. /package/src/{fragments → util}/valence.ts +0 -0
@@ -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/fragments/selected.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 = '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", "ghostHighlighted", "ghostSelected", "ghostSelectedContainerMd", "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", "useComposableProps", "classNames", "className", "props", "etc", "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", "ghostHighlighted", "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"]
3
+ "sources": ["../../../src/defs.ts", "../../../src/fragments/density.ts", "../../../src/fragments/disabled.ts", "../../../src/fragments/hover.ts", "../../../src/fragments/text.ts", "../../../src/util/elevation.ts", "../../../src/util/hash-styles.ts", "../../../src/util/mx.ts", "../../../src/util/size.ts", "../../../src/util/valence.ts", "../../../src/theme/components/avatar.ts", "../../../src/theme/components/breadcrumb.ts", "../../../src/theme/components/card.ts", "../../../src/theme/components/button.ts", "../../../src/theme/primitives/column.ts", "../../../src/theme/components/dialog.ts", "../../../src/theme/components/focus.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/primitives/panel.ts", "../../../src/theme/theme.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\nconst fineBlockSize = 'min-h-[2.5rem] pointer-fine:min-h-[2rem]';\nconst coarseBlockSize = 'min-h-[2.5rem]';\n\nconst fineDimensions = `${fineBlockSize} px-2`;\nconst coarseDimensions = `${coarseBlockSize} px-3`;\n\nexport const densityDimensions = (density: Density = 'fine') =>\n density === 'fine' ? fineDimensions : coarseDimensions;\n\nexport const densityBlockSize = (density: Density = 'fine') => (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 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 2022 DXOS.org\n//\n\n// TODO(burdon): Replace with Message component.\nexport const descriptionMessage = 'text-description border border-dashed border-separator rounded-sm p-4';\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 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 {\n Children,\n createElement,\n forwardRef,\n type ForwardRefExoticComponent,\n type ForwardedRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n type RefAttributes,\n CSSProperties,\n} from 'react';\nimport { extendTailwindMerge, validators } from 'tailwind-merge';\n\nimport { log } from '@dxos/log';\nimport { ThemedClassName, type ComposableProps, type SlottableProps } 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 */\n// TODO(burdon): Move to react-ui.\nexport const composableProps = <P extends HTMLElement = HTMLElement>(\n { className, classNames, role, style, ...props }: ComposableProps,\n { classNames: defaultClassNames, ...defaults }: ThemedClassName<Partial<HTMLAttributes<P>>> | undefined = {},\n) => ({\n // Default props.\n ...(defaults as object),\n\n // Spread supplied props.\n ...props,\n\n // Prefer explicit role, then defaults role, then 'none'.\n role: role ?? defaults.role ?? 'none',\n\n // Merge styles.\n style: { ...defaults.style, ...style } as CSSProperties,\n\n // Compose classnames.\n className: mx(defaultClassNames, className, classNames),\n});\n\n/** Symbol used to mark components created by `composable()` or `slottable()`. */\nconst COMPOSABLE = Symbol.for('dxos.composable');\n\n/**\n * Factory for slottable components.\n * The implementation receives full `HTMLAttributes<E>` so it can destructure `role`, `style`, etc.\n * Consumers see only `SlottableProps<P>` — a narrow type exposing `classNames`, `className`,\n * `children`, `asChild`, and the custom props `P`.\n *\n * @example\n * ```tsx\n * const MyPanel = slottable<HTMLDivElement, { border?: boolean }>(\n * ({ children, asChild, border, ...props }, forwardedRef) => {\n * const Comp = asChild ? Slot : Primitive.div;\n * return (\n * <Comp {...composableProps(props, { classNames: border && 'border' })} ref={forwardedRef}>\n * {children}\n * </Comp>\n * );\n * },\n * );\n * ```\n */\nexport function slottable<E extends HTMLElement, P extends object = {}>(\n render: (props: SlottableProps<P> & HTMLAttributes<E>, forwardedRef: ForwardedRef<E>) => ReactNode,\n): ForwardRefExoticComponent<SlottableProps<P> & RefAttributes<E>> {\n const wrapped = (props: SlottableProps<P> & HTMLAttributes<E>, forwardedRef: ForwardedRef<E>) => {\n let warn = false;\n if (props.asChild) {\n try {\n const child = Children.only(props.children);\n if (isValidElement(child) && typeof child.type !== 'string' && !(child.type as any)[COMPOSABLE]) {\n warn = true;\n log.warn('slot child is not composable; create it with composable() or slottable()', {\n child: (child.type as any).displayName ?? (child.type as any).name,\n });\n }\n } catch {\n // Children.only throws if not exactly one child — Slot handles this.\n }\n }\n\n const result = render(props, forwardedRef);\n if (warn) {\n return createElement('div', { role: 'none', className: 'dx-slot-warning' }, result);\n }\n\n return result;\n };\n\n const component = forwardRef(wrapped as any) as any;\n (component as any)[COMPOSABLE] = true;\n return component;\n}\n\n/**\n * Factory for composable (leaf) components.\n * The implementation receives full `HTMLAttributes<E>` so it can destructure `role`, `style`, etc.\n * Consumers see only `ComposableProps<P>` — a narrow type exposing `classNames`, `className`,\n * `children`, and the custom props `P`.\n *\n * For generic components, use `any` for the type parameter inside `composable` and\n * cast the result to restore the generic signature for consumers.\n *\n * @example\n * ```tsx\n * const Leaf = composable<HTMLButtonElement>(({ children, ...props }, forwardedRef) => {\n * return (\n * <button {...composableProps(props, { classNames: 'btn' })} ref={forwardedRef}>\n * {children}\n * </button>\n * );\n * });\n * ```\n */\nexport function composable<E extends HTMLElement, P extends object = {}>(\n render: (props: ComposableProps<P> & HTMLAttributes<E>, forwardedRef: ForwardedRef<E>) => ReactNode,\n): ForwardRefExoticComponent<ComposableProps<P> & RefAttributes<E>> {\n const component = forwardRef(render as any) as any;\n (component as any)[COMPOSABLE] = true;\n return component;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type CSSProperties } from 'react';\n\nimport { type Size } from '@dxos/ui-types';\n\nimport { mx } from '../util';\n\n// NOTE: Class names must be fully-specified string literals so Tailwind's static scanner can detect them.\nconst sizeMap: Record<string, { w: string; h: string }> = {\n 0: { w: 'w-0', h: 'h-0' },\n px: { w: 'w-px', h: 'h-px' },\n 0.5: { w: 'w-0.5', h: 'h-0.5' },\n 1: { w: 'w-1', h: 'h-1' },\n 1.5: { w: 'w-1.5', h: 'h-1.5' },\n 2: { w: 'w-2', h: 'h-2' },\n 2.5: { w: 'w-2.5', h: 'h-2.5' },\n 3: { w: 'w-3', h: 'h-3' },\n 3.5: { w: 'w-3.5', h: 'h-3.5' },\n 4: { w: 'w-4', h: 'h-4' },\n 5: { w: 'w-5', h: 'h-5' },\n 6: { w: 'w-6', h: 'h-6' },\n 7: { w: 'w-7', h: 'h-7' },\n 8: { w: 'w-8', h: 'h-8' },\n 9: { w: 'w-9', h: 'h-9' },\n 10: { w: 'w-10', h: 'h-10' },\n 11: { w: 'w-11', h: 'h-11' },\n 12: { w: 'w-12', h: 'h-12' },\n 14: { w: 'w-14', h: 'h-14' },\n 16: { w: 'w-16', h: 'h-16' },\n 20: { w: 'w-20', h: 'h-20' },\n 24: { w: 'w-24', h: 'h-24' },\n 28: { w: 'w-28', h: 'h-28' },\n 32: { w: 'w-32', h: 'h-32' },\n 36: { w: 'w-36', h: 'h-36' },\n 40: { w: 'w-40', h: 'h-40' },\n 44: { w: 'w-44', h: 'h-44' },\n 48: { w: 'w-48', h: 'h-48' },\n 52: { w: 'w-52', h: 'h-52' },\n 56: { w: 'w-56', h: 'h-56' },\n 60: { w: 'w-60', h: 'h-60' },\n 64: { w: 'w-64', h: 'h-64' },\n 72: { w: 'w-72', h: 'h-72' },\n 80: { w: 'w-80', h: 'h-80' },\n 96: { w: 'w-96', h: 'h-96' },\n};\n\nconst SIZE_VALUES: Size[] = Object.keys(sizeMap).map((key) => (key === 'px' ? 'px' : (Number(key) as Size)));\n\nexport const getHeight = (size: Size) => sizeMap[size]?.h;\nexport const getWidth = (size: Size) => sizeMap[size]?.w;\nexport const getSize = (size: Size) => mx(getHeight(size), getWidth(size));\n\nexport const sizeValue = (size: Size): number => (size === 'px' ? 1 : size);\nexport const sizeToRem = (size: Size): string => (size === 'px' ? '1px' : `${(size as number) * 0.25}rem`);\n\nexport const iconSize = (size: Size | null): CSSProperties =>\n ({ '--icon-size': size ? sizeToRem(size) : 'initial' }) as CSSProperties;\n\n/**\n * Snaps an arbitrary numeric value to the nearest valid Tailwind size token.\n *\n * The function tries progressively coarser series in order until a match is found:\n * 1. Exact match — returns the value as-is if it is already a valid `Size`.\n * 2. Zero or negative — clamps to `0`.\n * 3. Sub-half values (`< 0.5`) — maps to the `'px'` token (1 px).\n * 4. Half-step series (0.5 increments, e.g. 1.5, 2.5 …).\n * 5. Whole-number series (1, 2, 3 …).\n * 6. Double series (even numbers: 2, 4, 6 …).\n * 7. Quadruple series (multiples of 4: 4, 8, 12 …).\n * 8. Falls back to `defaultSize` if no series matches.\n *\n * @param value - Numeric size to snap (in Tailwind spacing units, where 1 unit = 0.25 rem).\n * @param defaultSize - Fallback `Size` token used when no series produces a valid match.\n * @returns The nearest valid `Size` token.\n */\nexport const snapSize = (value: number, defaultSize: Size): Size => {\n if (SIZE_VALUES.includes(value as Size)) {\n return value as Size;\n } else if (value <= 0) {\n return 0;\n } else if (value < 0.5) {\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 (SIZE_VALUES.includes(halfSeries as Size)) {\n return halfSeries as Size;\n } else if (SIZE_VALUES.includes(wholeSeries as Size)) {\n return wholeSeries as Size;\n } else if (SIZE_VALUES.includes(doubleSeries as Size)) {\n return doubleSeries as Size;\n } else if (SIZE_VALUES.includes(quadrupleSeries as Size)) {\n return quadrupleSeries as Size;\n } else {\n return defaultSize;\n }\n }\n};\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 { mx, getSize, getHeight } 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('h-full w-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 && getHeight(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 Density, 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 density?: Density;\n truncate?: boolean;\n padding?: boolean;\n};\n\nconst cardRoot: ComponentFunction<CardStyleProps> = ({ border, fullWidth }, ...etc) =>\n mx(\n 'dx-card dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative 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> = (_, ...etc) =>\n mx(\n 'dx-card__toolbar dx-density-fine bg-transparent p-0! gap-0! col-span-3 grid! grid-cols-subgrid! [contain:none]',\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 pb-1 last:pb-0', ...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 items-center overflow-hidden',\n variant === 'default' && 'py-1',\n variant === 'description' && 'py-1.5 text-description',\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 cardRow: ComponentFunction<CardStyleProps> = (_, ...etc) =>\n mx('dx-card__row col-span-3 grid grid-cols-subgrid', ...etc);\n\nconst cardIconBlock: ComponentFunction<CardStyleProps> = ({ padding }, ...etc) =>\n mx(\n 'dx-card__icon-block grid h-[var(--dx-rail-item)] w-[var(--dx-rail-item)] place-items-center',\n padding && '[&>*]:p-1',\n ...etc,\n );\n\nexport const cardTheme: Theme<CardStyleProps> = {\n root: cardRoot,\n toolbar: cardToolbar,\n title: cardTitle,\n content: cardContent,\n row: cardRow,\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 [&_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 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\n/**\n * Column-aware theme utilities.\n * Components apply these in their theme functions to participate in the Column grid\n * without importing Column React components.\n *\n * CSS custom property cascade:\n * - Column.Root sets `--dx-col: 2 / span 1` (center column placement).\n * - ScrollArea.Viewport resets `--dx-col: auto` after consuming `--gutter`.\n * - Components apply `grid-column: var(--dx-col, auto)` to auto-center in Column\n * or do nothing outside Column / inside ScrollArea.\n */\nexport const withColumn = {\n /** Centers element in the Column grid via --dx-col. No-op outside Column or inside ScrollArea. */\n center: () => '[grid-column:var(--dx-col,auto)]',\n\n /** Propagates the Column grid to children via subgrid. No-op outside Column.\n * Direct children default to center column unless they are a dx-container (ScrollArea). */\n propagate: () =>\n '[.dx-column-root_&]:col-span-full [.dx-column-root_&]:grid [.dx-column-root_&]:grid-cols-subgrid [.dx-column-root_&]:[&>*:not(.dx-container)]:[grid-column:var(--dx-col,auto)]',\n\n /** Resets --dx-col after consuming --gutter. Applied by ScrollArea.Viewport. */\n consumed: () => '[--dx-col:auto]',\n};\n\nexport type ColumnStyleProps = {};\n\nconst columnRoot: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n return mx('dx-column-root grid', ...etc);\n};\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 * NOTE: Must not use overflow-hidden here since it will clip input focus rings.\n */\nconst columnRow: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n return mx('col-span-3 grid grid-cols-subgrid', ...etc);\n};\n\n/**\n * Bleed placement: spans all 3 columns of the parent Column.Root grid (gutter-to-gutter).\n * Use for `ScrollArea`, full-width dividers, tables, or any content that should ignore gutters.\n */\nconst columnBleed: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n return mx('col-span-full grid grid-cols-subgrid min-h-0', ...etc);\n};\n\n/**\n * Center placement: places the element in column 2 (the central track between gutters) of the\n * parent Column.Root grid. Does NOT use subgrid — placement is explicit on this element only.\n * Safe to nest arbitrary compound components (including those that render `display: contents`).\n */\nconst columnCenter: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n return mx(withColumn.center(), 'min-h-0', ...etc);\n};\n\nexport const columnTheme = {\n root: columnRoot,\n row: columnRow,\n bleed: columnBleed,\n center: columnCenter,\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';\nimport { withColumn } from '../primitives/column';\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', withColumn.center(), ...etc);\n\nexport const dialogBody: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__body dx-expander', withColumn.propagate(), ...etc);\n\nexport const dialogActionBar: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n mx('dx-dialog__actionbar flex items-center pt-4 gap-2 dx-density-coarse', withColumn.center(), ...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 2026 DXOS.org\n//\n\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\nexport type FocusStyleProps = {\n border?: boolean;\n};\n\n/**\n * Focus ring styles shared by Focus.Group and Focus.Item.\n * Uses a `::after` pseudo-element overlay so the ring paints above child content\n * (inset box-shadow alone is obscured by children with backgrounds).\n * The pseudo-element is `pointer-events-none` and absolutely positioned over the element.\n * When `border` is true, a subdued CSS border is always visible (e.g., for grid cell edges).\n */\nconst focusRing: ComponentFunction<FocusStyleProps> = ({ border }, ...etc) =>\n mx(\n 'dx-ring-pseudo outline-hidden',\n 'focus:after:ring-neutral-focus-indicator',\n 'data-[focus-state=active]:after:ring-neutral-focus-indicator',\n 'data-[focus-state=error]:after:ring-rose-500',\n border && 'border border-separator',\n ...etc,\n );\n\nexport const focusTheme: Theme<FocusStyleProps> = {\n group: focusRing,\n item: focusRing,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nimport { getSize, mx } from '../../util';\n\nexport type IconStyleProps = {\n size?: Size;\n};\n\n/**\n * Size can be specified directly, or inherited from a container (e.g., toolbar).\n */\nexport const iconRoot: ComponentFunction<IconStyleProps> = ({ size }, etc) => {\n return mx(\n 'shrink-0 text-[var(--icons-color,currentColor)]',\n size\n ? getSize(size)\n : '[width:var(--icon-size,var(--dx-default-icons-size))] [height:var(--icon-size,var(--dx-default-icons-size))]',\n etc,\n );\n};\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';\nimport { type ButtonStyleProps } from './button';\n\nexport type IconButtonStyleProps = ButtonStyleProps & {\n iconOnly?: boolean;\n square?: boolean;\n};\n\nexport const iconButtonRoot: ComponentFunction<IconButtonStyleProps> = ({ iconOnly, square }, ...etc) => {\n return mx('px-1.5', !iconOnly && 'gap-2', square && 'aspect-square', ...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 { densityDimensions, staticDisabled } from '../../fragments';\nimport { getSize, getHeight, getWidth, mx, snapSize, sizeValue, textValence } 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 '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n 'py-0 w-full bg-transparent text-current placeholder-placeholder',\n 'dx-focus-subdued',\n densityDimensions(props.density),\n props.disabled && staticDisabled,\n];\n\nconst sharedDefaultInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n textInputSurfaceFocus,\n densityDimensions(props.density),\n props.disabled ? staticDisabled : textInputSurfaceHover,\n];\n\nconst sharedStaticInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n 'py-0 w-full text-base-surface-text rounded-xs placeholder-placeholder',\n textInputSurfaceFocus,\n textInputSurfaceHover,\n props.focused && 'bg-attention-surface',\n inputValence(props.validationValence),\n props.disabled && staticDisabled,\n props.focused && 'dx-focus-static',\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 && 'dx-focus-ring',\n inputValence(props.validationValence),\n ...etc,\n );\n\nconst inputTextArea: ComponentFunction<InputStyleProps> = (props, ...etc) => inputInput(props, ...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(snapSize(sizeValue(size) * 0.65, 4)), !checked && 'invisible', ...etc);\n\nconst inputSwitch: ComponentFunction<InputStyleProps> = ({ size = 5, disabled }, ...etc) =>\n mx(\n getHeight(size),\n getWidth(snapSize(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 'dx-focus-ring',\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 { 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 'dx-focus-ring',\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, ghostHover } from '../../fragments';\nimport { getSize, 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 overflow-hidden [&>span]:truncate', ...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, 'dx-focus-ring', ...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 } from '../../fragments';\nimport { mx, surfaceShadow, surfaceZIndex } 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 'hover:bg-hover-surface data-[highlighted]:bg-hover-surface',\n 'dx-focus-subdued',\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 { mx, messageValence } 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 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 { mx, surfaceShadow, surfaceZIndex } 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 'dx-focus-ring',\n ...etc,\n );\n\nexport const popoverViewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>\n mx(\n 'grid grid-rows-[1fr] min-h-0 min-w-popover-min-width',\n (constrainBlock || constrainInline) && 'overflow-hidden',\n constrainBlock && 'max-h-(--radix-popover-content-available-height)',\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';\nimport { withColumn } from '../primitives/column';\n\nexport const scrollbar = {\n thin: {\n size: 4,\n padding: 4,\n },\n coarse: {\n size: 8,\n padding: 8,\n },\n};\n\nexport type ScrollAreaStyleProps = {\n orientation?: AllowedAxis;\n autoHide?: boolean;\n /** Balance left/right, top/bottom offset with scrollbar. */\n centered?: 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 }, ...etc) =>\n mx(\n // Expand\n 'dx-container',\n\n orientation === 'vertical' && 'group/scroll-v flex flex-col',\n orientation === 'horizontal' && 'group/scroll-h flex',\n orientation === 'all' && 'group/scroll-all',\n\n // Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).\n '[.dx-column-root_&]:col-span-full',\n\n ...etc,\n );\n\n/**\n * NOTE: The browser reserves space for scrollbars.\n */\nexport const scrollAreaViewport: ComponentFunction<ScrollAreaStyleProps> = (\n { orientation, centered, padding, snap, autoHide },\n ...etc\n) => {\n return mx(\n 'flex-1 min-h-0 w-full',\n\n // Reset --dx-col so nested components don't try to grid-position themselves.\n // ScrollArea has already consumed --gutter for padding.\n withColumn.consumed(),\n\n orientation === 'vertical' && 'overflow-y-scroll',\n orientation === 'horizontal' && 'flex overflow-x-scroll overscroll-x-contain',\n orientation === 'all' && 'overflow-scroll',\n\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-none',\n\n '[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]',\n\n // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).\n // If centered, left padding compensates for scrollbar width so content is visually centered.\n (orientation === 'vertical' || orientation === 'all') &&\n (padding\n ? [\n centered ? 'pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]' : 'pl-[var(--gutter,0)]',\n 'pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]',\n ]\n : centered && 'pl-[var(--scroll-width)]'),\n\n (orientation === 'horizontal' || orientation === 'all') &&\n (padding\n ? [centered && 'pt-[calc(var(--scroll-width)+var(--scroll-padding))]', 'pb-[var(--scroll-padding)]']\n : centered && 'pt-[var(--scroll-width)]'),\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 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 ...etc,\n );\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 { mx, surfaceShadow, surfaceZIndex } 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 variant?: 'default' | 'main-bottom';\n indeterminate?: boolean;\n};\n\nexport const statusRoot: ComponentFunction<StatusStyleProps> = ({ variant = 'default' }, ...etc) =>\n mx(\n 'h-1 relative rounded-full overflow-hidden',\n variant === 'main-bottom' ? 'w-full block' : 'inline-20 inline-block bg-base-surface',\n ...etc,\n );\n\nexport const statusBar: ComponentFunction<StatusStyleProps> = ({ variant = 'default', indeterminate }, ...etc) =>\n mx(\n 'absolute inset-y-0 block rounded-full',\n variant === 'main-bottom' ? 'bg-composer-300' : '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 { mx, surfaceShadow } 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 'dx-focus-ring',\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 { 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 toolbarText: ComponentFunction<ToolbarStyleProps> = (_, ...etc) => {\n return mx('px-2 grow truncate items-center', ...etc);\n};\n\nexport const toolbarTheme: Theme<ToolbarStyleProps> = {\n root: toolbarRoot,\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 { mx, surfaceShadow, surfaceZIndex } 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(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 2026 DXOS.org\n//\n\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mx } from '../../util';\n\ntype Size = 'lg' | 'md' | 'sm';\n\nexport type PanelStyleProps = {\n size?: Size;\n};\n\nconst sizes: Record<Size, string> = {\n lg: 'h-(--dx-topbar-size)',\n md: 'h-(--dx-toolbar-size)',\n sm: 'h-(--dx-statusbar-size)',\n};\n\nconst panelRoot: ComponentFunction<PanelStyleProps> = (_, ...etc) =>\n mx(\n // prettier-ignore\n 'dx-container grid grid-cols-[100%] overflow-hidden',\n // Add uncategorized children to content slot.\n '[&>*:not([data-slot])]:[grid-area:content]',\n ...etc,\n );\n\nconst panelToolbar: ComponentFunction<PanelStyleProps> = ({ size = 'md' }, ...etc) =>\n mx('[grid-area:toolbar]', 'shrink-0', sizes[size], ...etc);\n\nconst panelContent: ComponentFunction<PanelStyleProps> = (_, ...etc) => mx('[grid-area:content] min-h-0', ...etc);\n\nconst panelStatusbar: ComponentFunction<PanelStyleProps> = ({ size = 'md' }, ...etc) =>\n mx('[grid-area:statusbar]', 'shrink-0', sizes[size], ...etc);\n\nexport const panelTheme = {\n root: panelRoot,\n toolbar: panelToolbar,\n content: panelContent,\n statusbar: panelStatusbar,\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 focusTheme,\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 focus: focusTheme,\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"],
5
+ "mappings": "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",
6
+ "names": ["osTranslations", "hues", "hueShades", "roles", "cardMinInlineSize", "cardDefaultInlineSize", "cardMaxInlineSize", "cardMinBlockSize", "cardMaxBlockSize", "fineBlockSize", "coarseBlockSize", "fineDimensions", "coarseDimensions", "densityDimensions", "density", "densityBlockSize", "staticDisabled", "dataDisabled", "subtleHover", "ghostHover", "ghostFocusWithin", "hoverableControls", "groupHoverControlItemWithTransition", "hoverableFocusedKeyboardControls", "hoverableFocusedWithinControls", "hoverableOpenControlItem", "hoverableControlItem", "descriptionMessage", "surfaceShadow", "elevation", "surfaceZIndex", "level", "neutral", "hue", "fill", "surface", "surfaceText", "text", "border", "styles", "palette", "hues", "getStyles", "find", "color", "getHashStyles", "id", "getHashHue", "getHash", "length", "split", "reduce", "acc", "char", "charCodeAt", "Children", "createElement", "forwardRef", "isValidElement", "extendTailwindMerge", "validators", "log", "mx", "classGroups", "density", "defaults", "props", "role", "style", "className", "asChild", "child", "warn", "result", "component", "COMPOSABLE", "sizeMap", "w", "h", "px", "SIZE_VALUES", "Object", "keys", "map", "key", "Number", "getHeight", "size", "getWidth", "getSize", "mx", "sizeValue", "sizeToRem", "iconSize", "snapSize", "value", "defaultSize", "includes", "wholeSeries", "Math", "floor", "halfSeries", "doubleSeries", "quadrupleSeries", "textValence", "valence", "messageValence", "avatarRoot", "size", "inGroup", "etc", "mx", "getSize", "avatarLabel", "srOnly", "avatarDescription", "avatarFrame", "variant", "avatarStatusIcon", "status", "avatarRing", "animation", "avatarFallbackText", "_props", "avatarGroup", "avatarGroupLabel", "getHeight", "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", "_", "cardTitle", "_props", "cardContent", "cardHeading", "variant", "cardText", "truncate", "_truncate", "cardTextSpan", "cardPoster", "cardPosterIcon", "cardAction", "cardActionLabel", "cardLink", "cardLinkLabel", "cardRow", "cardIconBlock", "padding", "cardTheme", "root", "toolbar", "title", "content", "row", "heading", "text", "poster", "action", "link", "primaryButtonColors", "staticDefaultButtonColors", "defaultButtonColors", "mx", "ghostButtonColors", "ghostHover", "buttonRoot", "_props", "etc", "buttonGroup", "buttonTheme", "root", "group", "withColumn", "center", "propagate", "consumed", "columnRoot", "_", "etc", "mx", "columnRow", "columnBleed", "columnCenter", "columnTheme", "root", "row", "bleed", "sizeMap", "sm", "md", "lg", "xl", "dialogOverlay", "_props", "etc", "mx", "dialogContent", "inOverlayLayout", "size", "dialogHeader", "withColumn", "center", "dialogBody", "propagate", "dialogActionBar", "dialogTitle", "srOnly", "dialogDescription", "dialogTheme", "overlay", "content", "header", "body", "actionbar", "title", "description", "focusRing", "border", "etc", "mx", "focusTheme", "group", "item", "iconRoot", "size", "etc", "mx", "getSize", "iconTheme", "root", "iconButtonRoot", "iconOnly", "square", "etc", "mx", "iconButtonTheme", "root", "inputTextLabel", "textInputSurfaceFocus", "textInputSurfaceHover", "booleanInputSurface", "booleanInputSurfaceHover", "inputValence", "valence", "sharedSubduedInputStyles", "props", "densityDimensions", "density", "disabled", "staticDisabled", "sharedDefaultInputStyles", "sharedStaticInputStyles", "focused", "validationValence", "inputInput", "etc", "variant", "mx", "inputTextArea", "inputCheckbox", "size", "getSize", "inputCheckboxIndicator", "checked", "snapSize", "sizeValue", "inputSwitch", "getHeight", "getWidth", "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", "linkTheme", "root", "listRoot", "_", "etc", "mx", "listItem", "collapsible", "listItemEndcap", "density", "getSize", "listItemHeading", "densityBlockSize", "listItemDragHandleIcon", "_props", "listItemOpenTrigger", "ghostHover", "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", "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", "popoverViewport", "constrainBlock", "constrainInline", "popoverArrow", "_props", "popoverTheme", "content", "viewport", "arrow", "scrollbar", "thin", "size", "padding", "coarse", "scrollAreaRoot", "orientation", "etc", "mx", "scrollAreaViewport", "centered", "snap", "autoHide", "withColumn", "consumed", "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", "toastBody", "toastActions", "toastTitle", "srOnly", "toastDescription", "toastTheme", "viewport", "root", "body", "title", "description", "actions", "toolbarLayout", "toolbarRoot", "density", "disabled", "layoutManaged", "etc", "mx", "toolbarText", "_", "toolbarTheme", "root", "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", "sizes", "lg", "md", "sm", "panelRoot", "_", "etc", "mx", "panelToolbar", "size", "panelContent", "panelStatusbar", "panelTheme", "root", "toolbar", "content", "statusbar", "getDeep", "defaultTheme", "themeName", "column", "columnTheme", "panel", "panelTheme", "avatar", "avatarTheme", "breadcrumb", "breadcrumbTheme", "button", "buttonTheme", "card", "cardTheme", "dialog", "dialogTheme", "focus", "focusTheme", "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
  }