@dxos/react-ui 0.6.6 → 0.6.7-staging.1976059

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 (108) hide show
  1. package/dist/lib/browser/index.mjs.map +2 -2
  2. package/dist/lib/browser/meta.json +1 -1
  3. package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +2 -2
  4. package/dist/types/src/components/Avatars/Avatar.d.ts +5 -5
  5. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +10 -10
  6. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  7. package/dist/types/src/components/Avatars/AvatarGroup.d.ts +4 -4
  8. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +2 -2
  9. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  10. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +6 -6
  11. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +2 -2
  12. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  13. package/dist/types/src/components/Buttons/Button.d.ts +2 -2
  14. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
  15. package/dist/types/src/components/Buttons/Button.stories.d.ts +6 -6
  16. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Buttons/Toggle.d.ts +1 -1
  18. package/dist/types/src/components/Buttons/Toggle.d.ts.map +1 -1
  19. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +2 -2
  20. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
  21. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +12 -12
  22. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +1 -1
  23. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +2 -2
  24. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  26. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  27. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +10 -9
  28. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +10 -9
  30. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  32. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  33. package/dist/types/src/components/Input/Input.d.ts +8 -8
  34. package/dist/types/src/components/Input/Input.stories.d.ts +13 -12
  35. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Link/Link.d.ts +1 -1
  37. package/dist/types/src/components/Link/Link.d.ts.map +1 -1
  38. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/Lists/List.d.ts +1 -1
  40. package/dist/types/src/components/Lists/List.d.ts.map +1 -1
  41. package/dist/types/src/components/Lists/List.stories.d.ts +6 -6
  42. package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
  43. package/dist/types/src/components/Lists/Tree.d.ts +3 -3
  44. package/dist/types/src/components/Lists/Tree.d.ts.map +1 -1
  45. package/dist/types/src/components/Lists/Tree.stories.d.ts +2 -2
  46. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/Lists/Treegrid.d.ts +3 -3
  48. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +3 -3
  49. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
  50. package/dist/types/src/components/Main/Main.d.ts +6 -6
  51. package/dist/types/src/components/Main/Main.stories.d.ts +2 -2
  52. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  54. package/dist/types/src/components/Menus/ContextMenu.d.ts +2 -2
  55. package/dist/types/src/components/Menus/ContextMenu.d.ts.map +1 -1
  56. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +2 -2
  57. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/Menus/DropdownMenu.d.ts +2 -2
  59. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  60. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +2 -2
  61. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Message/Message.d.ts +3 -3
  63. package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
  64. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  65. package/dist/types/src/components/Popover/Popover.d.ts +1 -1
  66. package/dist/types/src/components/Popover/Popover.stories.d.ts +5 -5
  67. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +1 -1
  69. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  70. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +2 -4
  71. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Select/Select.d.ts +2 -2
  73. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  74. package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
  75. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  76. package/dist/types/src/components/Separator/Separator.d.ts +2 -2
  77. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
  78. package/dist/types/src/components/Status/Status.d.ts +1 -1
  79. package/dist/types/src/components/Status/Status.d.ts.map +1 -1
  80. package/dist/types/src/components/Status/Status.stories.d.ts +3 -3
  81. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Tag/Tag.d.ts +1 -1
  83. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  84. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  86. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  87. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +17 -16
  88. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  89. package/dist/types/src/components/Toast/Toast.d.ts +2 -2
  90. package/dist/types/src/components/Toast/Toast.stories.d.ts +10 -9
  91. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/Toolbar/Toolbar.d.ts +15 -15
  93. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +2 -2
  94. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
  96. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  97. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  98. package/dist/types/src/playground/Controls.stories.d.ts +3 -3
  99. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  100. package/dist/types/src/playground/Surfaces.stories.d.ts +2 -2
  101. package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -1
  102. package/dist/types/src/playground/Typography.stories.d.ts +2 -2
  103. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  104. package/dist/types/src/playground/helpers.d.ts +2 -2
  105. package/dist/types/src/playground/helpers.d.ts.map +1 -1
  106. package/package.json +11 -11
  107. package/src/components/Lists/Tree.tsx +11 -16
  108. package/src/components/Select/Select.tsx +2 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/index.ts", "../../../src/components/AnchoredOverflow/AnchoredOverflow.tsx", "../../../src/hooks/useDensityContext.ts", "../../../src/hooks/useElevationContext.ts", "../../../src/hooks/useTranslationsContext.ts", "../../../src/components/ThemeProvider/TranslationsProvider.tsx", "../../../src/hooks/useThemeContext.ts", "../../../src/hooks/useVisualViewport.ts", "../../../src/components/Avatars/Avatar.tsx", "../../../src/components/Avatars/AvatarGroup.tsx", "../../../src/components/Breadcrumb/Breadcrumb.tsx", "../../../src/components/Link/Link.tsx", "../../../src/components/Buttons/Button.tsx", "../../../src/components/Buttons/Toggle.tsx", "../../../src/components/Buttons/ToggleGroup.tsx", "../../../src/components/Dialogs/Dialog.tsx", "../../../src/components/ElevationProvider/ElevationProvider.tsx", "../../../src/components/Dialogs/AlertDialog.tsx", "../../../src/components/Menus/ContextMenu.tsx", "../../../src/components/Menus/DropdownMenu.tsx", "../../../src/components/Input/Input.tsx", "../../../src/components/Lists/List.tsx", "../../../src/components/DensityProvider/DensityProvider.tsx", "../../../src/components/Lists/Tree.tsx", "../../../src/components/Lists/Treegrid.tsx", "../../../src/components/Main/Main.tsx", "../../../src/components/Main/useSwipeToDismiss.ts", "../../../src/components/Message/Message.tsx", "../../../src/components/Popover/Popover.tsx", "../../../src/components/Status/Status.tsx", "../../../src/components/ScrollArea/ScrollArea.tsx", "../../../src/components/Select/Select.tsx", "../../../src/components/Separator/Separator.tsx", "../../../src/components/Tag/Tag.tsx", "../../../src/components/Toast/Toast.tsx", "../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/Tooltip/Tooltip.tsx", "../../../src/components/ThemeProvider/ThemeProvider.tsx", "../../../src/util/hasIosKeyboard.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport type { TFunction } from 'i18next';\nexport { Trans } from 'react-i18next';\nexport * from '@dxos/react-ui-types';\nexport * from '@dxos/react-hooks';\n\nexport * from './components';\nexport * from './hooks';\nexport * from './util';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AnchoredOverflowRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst AnchoredOverflowRoot = forwardRef<HTMLDivElement, AnchoredOverflowRootProps>(\n ({ asChild, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('anchoredOverflow.root', 'overflow-anchored', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\ntype AnchoredOverflowAnchorProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst AnchoredOverflowAnchor = forwardRef<HTMLDivElement, AnchoredOverflowAnchorProps>(\n ({ asChild, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('anchoredOverflow.anchor', 'overflow-anchor', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nexport const AnchoredOverflow = {\n Root: AnchoredOverflowRoot,\n Anchor: AnchoredOverflowAnchor,\n};\n\nexport type { AnchoredOverflowRootProps, AnchoredOverflowAnchorProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { DensityContext } from '../components';\n\nexport const useDensityContext = (propsDensity?: Density) => {\n const { density } = useContext(DensityContext);\n return propsDensity ?? density;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nimport { ElevationContext } from '../components';\n\nexport const useElevationContext = (propsElevation?: Elevation) => {\n const { elevation } = useContext(ElevationContext);\n return propsElevation ?? elevation;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { TranslationsContext } from '../components/ThemeProvider/TranslationsProvider';\n\nexport const useTranslationsContext = () => useContext(TranslationsContext);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { enUS as dtLocaleEnUs, type Locale } from 'date-fns/locale';\nimport i18Next, { type TFunction, type Resource } from 'i18next';\nimport React, { type ReactNode, useEffect, createContext, useState, Suspense, useContext } from 'react';\nimport { initReactI18next, useTranslation as useI18NextTranslation } from 'react-i18next';\n\nconst initialLng = 'en-US';\nconst initialNs = 'dxos-common';\nconst initialDtLocale = dtLocaleEnUs;\n\n// TODO(thure): `Parameters<TFunction>` causes typechecking issues because `TFunction` has so many signatures.\nexport type Label = string | [string, { ns: string; count?: number }];\n\nexport const isLabel = (o: any): o is Label =>\n typeof o === 'string' ||\n (Array.isArray(o) &&\n o.length === 2 &&\n typeof o[0] === 'string' &&\n !!o[1] &&\n typeof o[1] === 'object' &&\n 'ns' in o[1] &&\n typeof o[1].ns === 'string');\n\nexport const toLocalizedString = (label: Label, t: TFunction) => (Array.isArray(label) ? t(...label) : label);\n\nexport const resources = {\n [initialLng]: {\n [initialNs]: {\n 'loading translations': 'Loading translations…',\n },\n },\n} as const;\n\nvoid i18Next.use(initReactI18next).init({\n resources,\n lng: initialLng,\n defaultNS: initialNs,\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport interface TranslationsProviderProps {\n children?: ReactNode;\n // TODO(wittjosiah): Rename to `placeholder` to match ClientProvider?\n // Placeholder => loading, fallback => error.\n fallback?: ReactNode;\n resourceExtensions?: Resource[];\n appNs?: string;\n dtLocale?: Locale;\n}\n\nexport const TranslationsContext = createContext({\n appNs: initialNs,\n dtLocale: initialDtLocale,\n});\n\nexport const useTranslation = (...args: Parameters<typeof useI18NextTranslation>) => {\n const result = useI18NextTranslation(...args);\n const { dtLocale } = useContext(TranslationsContext);\n return { ...result, dtLocale };\n};\n\nexport const TranslationsProvider = ({\n fallback,\n resourceExtensions,\n children,\n appNs,\n dtLocale,\n}: TranslationsProviderProps) => {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(false);\n if (resourceExtensions && resourceExtensions.length) {\n resourceExtensions.forEach((resource) => {\n Object.keys(resource).forEach((language) => {\n Object.keys(resource[language]).forEach((ns) => {\n i18Next.addResourceBundle(language, ns, resource[language][ns]);\n });\n });\n });\n }\n\n setLoaded(true);\n }, [resourceExtensions]);\n\n // TODO(thure): This is not ideal, but i18next was causing `Suspense` to not render the fallback even when the child was asking for namespaces yet to be added.\n // TODO(burdon): Fallbacks should only appear after a short delay, and if the displayed then be visible for 500mx to avoid startup flickering.\n return (\n <TranslationsContext.Provider value={{ appNs: appNs ?? initialNs, dtLocale: dtLocale ?? initialDtLocale }}>\n <Suspense fallback={fallback}>{loaded ? children : fallback}</Suspense>\n </TranslationsContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { ThemeContext } from '../components';\n\nexport const useThemeContext = () => useContext(ThemeContext);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nexport const useVisualViewport = (deps?: Parameters<typeof useEffect>[1]) => {\n const [width, setWidth] = useState<number | null>(null);\n const [height, setHeight] = useState<number | null>(null);\n\n useEffect(() => {\n const handleResize = () => {\n if (window.visualViewport) {\n setWidth(window.visualViewport.width);\n setHeight(window.visualViewport.height);\n }\n };\n window.visualViewport?.addEventListener('resize', handleResize);\n handleResize();\n return () => window.visualViewport?.removeEventListener('resize', handleResize);\n }, deps ?? []);\n\n return { width, height };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as AvatarRootPrimitive,\n type AvatarProps as AvatarRootPrimitiveProps,\n type ImageLoadingStatus,\n Fallback as AvatarFallbackPrimitive,\n} from '@radix-ui/react-avatar';\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef, type PropsWithChildren } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type Size } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarVariant = 'square' | 'circle';\ntype AvatarStatus = 'active' | 'inactive' | 'current' | 'error' | 'warning' | 'internal';\ntype AvatarAnimation = 'pulse' | 'none';\n\nexport type AvatarRootProps = PropsWithChildren<Partial<AvatarContextValue>>;\n\ntype AvatarContextValue = {\n labelId: string;\n descriptionId: string;\n maskId: string;\n size: Size;\n variant: AvatarVariant;\n status?: AvatarStatus;\n animation?: AvatarAnimation;\n inGroup?: boolean;\n hue?: string;\n};\n\nconst AVATAR_NAME = 'Avatar';\nconst [AvatarProvider, useAvatarContext] = createContext<AvatarContextValue>(AVATAR_NAME);\n\nconst AvatarRoot = ({\n size = 10,\n variant = 'circle',\n status,\n animation,\n children,\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n maskId: propsMaskId,\n inGroup,\n hue,\n}: AvatarRootProps) => {\n const labelId = useId('avatar__label', propsLabelId);\n const descriptionId = useId('avatar__description', propsDescriptionId);\n const maskId = useId('avatar__mask', propsMaskId);\n return (\n <AvatarProvider {...{ labelId, descriptionId, maskId, size, variant, status, animation, inGroup, hue }}>\n {children}\n </AvatarProvider>\n );\n};\n\ntype AvatarFrameProps = ThemedClassName<AvatarRootPrimitiveProps>;\n\nconst rx = '0.25rem';\n\nconst AvatarFrame = forwardRef<HTMLSpanElement, AvatarFrameProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { size, variant, labelId, descriptionId, maskId, inGroup, status, animation, hue } =\n useAvatarContext('AvatarFrame');\n\n const { tx } = useThemeContext();\n const numericSize = size === 'px' ? 1 : Number(size);\n const sizePx = numericSize * 4;\n const ringWidth = status ? (numericSize > 4 ? 2 : numericSize > 3 ? 1 : 1) : 0;\n const ringGap = status ? (numericSize > 12 ? 3 : numericSize > 4 ? 2 : numericSize > 3 ? 1 : 0) : 0;\n const r = sizePx / 2 - ringGap - ringWidth;\n return (\n <AvatarRootPrimitive\n role='img'\n {...props}\n className={tx('avatar.root', 'avatar', { size, variant, inGroup }, classNames)}\n ref={forwardedRef}\n {...(!inGroup && {\n 'aria-labelledby': labelId,\n 'aria-describedby': descriptionId,\n })}\n >\n <svg\n viewBox={`0 0 ${sizePx} ${sizePx}`}\n width={sizePx}\n height={sizePx}\n className={tx('avatar.frame', 'avatar__frame', { variant })}\n >\n <defs>\n <mask id={maskId}>\n {variant === 'circle' ? (\n <circle fill='white' cx='50%' cy='50%' r={r} />\n ) : (\n <rect\n fill='white'\n width={2 * r}\n height={2 * r}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n rx={rx}\n />\n )}\n </mask>\n </defs>\n {variant === 'circle' ? (\n <circle\n className={hue ? tx('hue.fill', 'avatar__frame__circle', { hue }) : 'fill-[var(--surface-bg)]'}\n cx='50%'\n cy='50%'\n r={r}\n />\n ) : (\n <rect\n className={hue ? tx('hue.fill', 'avatar__frame__rect', { hue }) : 'fill-[var(--surface-bg)]'}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n width={2 * r}\n height={2 * r}\n rx={rx}\n />\n )}\n {children}\n {/* {variant === 'circle' ? (\n <circle\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-text)]'\n strokeWidth={strokeWidth}\n fill='none'\n opacity={0.1}\n cx={'50%'}\n cy={'50%'}\n r={r - 0.5 * strokeWidth}\n />\n ) : (\n <rect\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-text)]'\n strokeWidth={strokeWidth}\n opacity={0.1}\n fill='none'\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n width={2 * r}\n height={2 * r}\n rx={rx}\n />\n )} */}\n </svg>\n <span\n role='none'\n className={tx('avatar.ring', 'avatar__ring', { size, variant, status, animation })}\n style={{ borderWidth: ringWidth + 'px' }}\n />\n </AvatarRootPrimitive>\n );\n },\n);\n\ntype AvatarLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarLabel = forwardRef<HTMLSpanElement, AvatarLabelProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { labelId } = useAvatarContext('AvatarLabel');\n return (\n <Root\n {...props}\n id={labelId}\n ref={forwardedRef}\n className={tx('avatar.label', 'avatar__label', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarDescription = forwardRef<HTMLSpanElement, AvatarDescriptionProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { descriptionId } = useAvatarContext('AvatarDescription');\n return (\n <Root\n {...props}\n id={descriptionId}\n ref={forwardedRef}\n className={tx('avatar.description', 'avatar__description', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarMaskedImageProps = ComponentPropsWithRef<'image'>;\n\nconst AvatarMaskedImage = forwardRef<SVGImageElement, AvatarMaskedImageProps>((props, forwardedRef) => {\n const { maskId } = useAvatarContext('AvatarFallback');\n return (\n <image\n width='100%'\n height='100%'\n {...props}\n mask={`url(#${maskId})`}\n ref={forwardedRef}\n preserveAspectRatio='xMidYMid slice'\n />\n );\n});\n\ntype AvatarMaskedTextProps = PropsWithChildren<{ large?: boolean }>;\n\nconst AvatarMaskedText = (props: AvatarMaskedTextProps) => {\n const { maskId, size } = useAvatarContext('AvatarFallback');\n const { large } = props;\n const fontScale = (large ? 4 : 3) * (1 / 1.612);\n const { tx } = useThemeContext();\n return (\n <text\n x='50%'\n y='50%'\n className={tx('avatar.fallbackText', 'avatar__fallback-text')}\n textAnchor='middle'\n alignmentBaseline='central'\n fontSize={size === 'px' ? '200%' : size * fontScale}\n mask={`url(#${maskId})`}\n >\n {props.children}\n </text>\n );\n};\n\ntype AvatarImageProps = ComponentPropsWithRef<'image'> & {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n};\n\nconst AvatarImage = forwardRef<SVGImageElement, AvatarImageProps>(\n ({ onLoadingStatusChange, ...props }, forwardedRef) => {\n const { size } = useAvatarContext('AvatarImage');\n const pxSize = size === 'px' ? 1 : size * 4;\n if (pxSize <= 20) {\n return null;\n }\n return (\n <AvatarFallbackPrimitive asChild>\n <AvatarMaskedImage {...props} ref={forwardedRef} />\n </AvatarFallbackPrimitive>\n );\n },\n);\n\ntype AvatarFallbackProps = ComponentPropsWithRef<'image'> & {\n delayMs?: number;\n text?: string;\n};\n\nconst AvatarFallback = forwardRef<SVGImageElement, AvatarFallbackProps>(({ delayMs, text, ...props }, forwardedRef) => {\n const isTextOnly = Boolean(text && /[0-9a-zA-Z]+/.test(text));\n const { size } = useAvatarContext('AvatarFallback');\n const numericSize = size === 'px' ? 1 : Number(size);\n return (\n <AvatarFallbackPrimitive delayMs={delayMs} asChild>\n <>\n {numericSize >= 6 && <AvatarMaskedImage {...props} ref={forwardedRef} />}\n {text && <AvatarMaskedText large={!isTextOnly}>{text.toLocaleUpperCase()}</AvatarMaskedText>}\n </>\n </AvatarFallbackPrimitive>\n );\n});\n\nexport const Avatar = {\n Root: AvatarRoot,\n Frame: AvatarFrame,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Label: AvatarLabel,\n Description: AvatarDescription,\n};\n\nexport { useAvatarContext };\n\nexport type {\n AvatarStatus,\n AvatarVariant,\n AvatarAnimation,\n AvatarFrameProps,\n AvatarImageProps,\n AvatarFallbackProps,\n AvatarLabelProps,\n AvatarDescriptionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { Avatar, type AvatarRootProps, useAvatarContext } from './Avatar';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarGroupRootProps = Omit<AvatarRootProps, 'status' | 'maskId' | 'inGroup'> &\n ThemedClassName<ComponentPropsWithRef<'div'>>;\n\nconst AvatarGroupRoot = forwardRef<HTMLDivElement, AvatarGroupRootProps>(\n (\n {\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n size,\n variant,\n children,\n classNames,\n }: AvatarGroupRootProps,\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const labelId = useId('avatar-group__label', propsLabelId);\n const descriptionId = useId('avatar-group__description', propsDescriptionId);\n return (\n <Avatar.Root {...{ labelId, descriptionId, size, variant, inGroup: true }}>\n <div\n role='group'\n className={tx('avatar.group', 'avatar-group', {}, classNames)}\n aria-labelledby={labelId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </div>\n </Avatar.Root>\n );\n },\n);\n\ntype AvatarGroupItemRootProps = Omit<AvatarRootProps, 'labelId' | 'descriptionId' | 'inGroup'>;\n\nconst AvatarGroupItemRoot = ({ maskId, size, variant, status, children, ...rest }: AvatarGroupItemRootProps) => {\n const {\n labelId,\n descriptionId,\n size: contextSize,\n variant: contextVariant,\n } = useAvatarContext('AvatarGroupItemRoot');\n return (\n <Avatar.Root\n {...{\n labelId,\n descriptionId,\n maskId,\n status,\n size: size ?? contextSize,\n variant: variant ?? contextVariant,\n inGroup: true,\n ...rest,\n }}\n >\n {children}\n </Avatar.Root>\n );\n};\n\ntype AvatarGroupLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupLabel = forwardRef<HTMLSpanElement, AvatarGroupLabelProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { labelId, size } = useAvatarContext('AvatarGroupLabel');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={labelId}\n className={tx('avatar.groupLabel', 'avatar-group__label', { srOnly, size }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\ntype AvatarGroupDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupDescription = forwardRef<HTMLSpanElement, AvatarGroupDescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { descriptionId } = useAvatarContext('AvatarGroupDescription');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={descriptionId}\n className={tx('avatar.groupDescription', 'avatar-group__description', { srOnly }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\nexport const AvatarGroup = { Root: AvatarGroupRoot, Label: AvatarGroupLabel, Description: AvatarGroupDescription };\nexport const AvatarGroupItem = { Root: AvatarGroupItemRoot };\nexport type { AvatarGroupRootProps, AvatarGroupItemRootProps, AvatarGroupLabelProps, AvatarGroupDescriptionProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Dot } from '@phosphor-icons/react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Link, type LinkProps } from '../Link';\n\ntype BreadcrumbRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n 'aria-label': string;\n asChild?: boolean;\n};\n\nconst BreadcrumbRoot = forwardRef<HTMLDivElement, BreadcrumbRootProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='navigation'\n {...props}\n className={tx('breadcrumb.root', 'breadcrumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbListProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.ol>> & { asChild?: boolean };\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.ol;\n return (\n <Root\n role='list'\n {...props}\n className={tx('breadcrumb.list', 'breadcrumb__list', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbListItemProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.li>> & { asChild?: boolean };\n\nconst BreadcrumbListItem = forwardRef<HTMLLIElement, BreadcrumbListItemProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.li;\n return (\n <Root\n role='listitem'\n {...props}\n className={tx('breadcrumb.listItem', 'breadcrumb__list__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbLinkProps = LinkProps;\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(({ asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Link;\n return <Root {...props} ref={forwardedRef} />;\n});\n\ntype BreadcrumbCurrentProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & { asChild?: boolean };\n\nconst BreadcrumbCurrent = forwardRef<HTMLHeadingElement, BreadcrumbCurrentProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'h1';\n return (\n <Root\n {...props}\n aria-current='page'\n className={tx('breadcrumb.current', 'breadcrumb__item__heading--current', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof Primitive.span>>;\n\nconst BreadcrumbSeparator = ({ children, classNames, ...props }: BreadcrumbSeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <Primitive.span\n role='separator'\n aria-hidden='true'\n {...props}\n className={tx('breadcrumb.separator', 'breadcrumb__separator', {}, classNames)}\n >\n {children ?? <Dot weight='bold' />}\n </Primitive.span>\n );\n};\n\nexport const Breadcrumb = {\n Root: BreadcrumbRoot,\n List: BreadcrumbList,\n ListItem: BreadcrumbListItem,\n Link: BreadcrumbLink,\n Current: BreadcrumbCurrent,\n Separator: BreadcrumbSeparator,\n};\n\nexport type {\n BreadcrumbRootProps,\n BreadcrumbListProps,\n BreadcrumbListItemProps,\n BreadcrumbLinkProps,\n BreadcrumbCurrentProps,\n BreadcrumbSeparatorProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type LinkProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.a>> &\n Partial<{\n asChild: boolean;\n variant: 'accent' | 'neutral';\n }>;\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n ({ asChild, variant, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.a;\n return <Root {...props} className={tx('link.root', 'link', { variant }, classNames)} ref={forwardedRef} />;\n },\n);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type Density, type Elevation } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ninterface ButtonProps extends ThemedClassName<ComponentPropsWithRef<typeof Primitive.button>> {\n variant?: 'default' | 'primary' | 'outline' | 'ghost' | 'destructive';\n density?: Density;\n elevation?: Elevation;\n asChild?: boolean;\n}\n\ntype ButtonGroupContextValue = { inGroup?: boolean };\n\nconst BUTTON_GROUP_NAME = 'ButtonGroup';\nconst BUTTON_NAME = 'Button';\nconst [ButtonGroupProvider, useButtonGroupContext] = createContext<ButtonGroupContextValue>(BUTTON_GROUP_NAME, {\n inGroup: false,\n});\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { classNames, children, density: propsDensity, elevation: propsElevation, variant = 'default', asChild, ...props },\n ref,\n ) => {\n const { inGroup } = useButtonGroupContext(BUTTON_NAME);\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const density = useDensityContext(propsDensity);\n const Root = asChild ? Slot : Primitive.button;\n return (\n <Root\n ref={ref}\n {...props}\n data-variant={variant}\n data-density={density}\n data-props={inGroup ? 'grouped' : ''}\n className={tx(\n 'button.root',\n 'button',\n {\n variant,\n inGroup,\n disabled: props.disabled,\n density,\n elevation,\n },\n classNames,\n )}\n {...(props.disabled && { disabled: true })}\n >\n {children}\n </Root>\n );\n },\n);\n\nButton.displayName = BUTTON_NAME;\n\ntype ButtonGroupProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n elevation?: Elevation;\n asChild?: boolean;\n};\n\nconst ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('button.group', 'button-group', { elevation }, classNames)}\n ref={forwardedRef}\n >\n <ButtonGroupProvider inGroup>{children}</ButtonGroupProvider>\n </Root>\n );\n },\n);\n\nButtonGroup.displayName = BUTTON_GROUP_NAME;\n\nexport { Button, ButtonGroup, BUTTON_GROUP_NAME, useButtonGroupContext };\n\nexport type { ButtonProps, ButtonGroupProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Toggle as TogglePrimitive, type ToggleProps as TogglePrimitiveProps } from '@radix-ui/react-toggle';\nimport React, { forwardRef } from 'react';\n\nimport { Button, type ButtonProps } from './Button';\n\ntype ToggleProps = Omit<TogglePrimitiveProps, 'asChild'> & ButtonProps;\n\nconst Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {\n return (\n <TogglePrimitive {...{ defaultPressed, pressed, onPressedChange }} asChild>\n <Button {...props} ref={forwardedRef} />\n </TogglePrimitive>\n );\n },\n);\n\nexport { Toggle };\nexport type { ToggleProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n ToggleGroup as ToggleGroupPrimitive,\n type ToggleGroupSingleProps,\n type ToggleGroupMultipleProps,\n type ToggleGroupItemProps as ToggleGroupItemPrimitiveProps,\n ToggleGroupItem as ToggleGroupItemPrimitive,\n} from '@radix-ui/react-toggle-group';\nimport React, { forwardRef } from 'react';\n\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps } from './Button';\n\ntype ToggleGroupProps = Omit<ToggleGroupSingleProps, 'className'> | Omit<ToggleGroupMultipleProps, 'className'>;\n\nconst ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps & ButtonGroupProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupPrimitive {...props} asChild>\n <ButtonGroup {...{ classNames, children }} ref={forwardedRef} />\n </ToggleGroupPrimitive>\n );\n },\n);\n\ntype ToggleGroupItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & ButtonProps;\n\nconst ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(\n ({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupItemPrimitive {...props} asChild>\n <Button {...{ variant, elevation, density, classNames, children }} ref={forwardedRef} />\n </ToggleGroupItemPrimitive>\n );\n },\n);\n\nexport { ToggleGroup, ToggleGroupItem };\nexport type { ToggleGroupProps, ToggleGroupItemProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n type DialogProps as DialogRootPrimitiveProps,\n Root as DialogRootPrimitive,\n DialogTrigger as DialogTriggerPrimitive,\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\n DialogPortal as DialogPortalPrimitive,\n type DialogPortalProps as DialogPortalPrimitiveProps,\n DialogOverlay as DialogOverlayPrimitive,\n type DialogOverlayProps as DialogOverlayPrimitiveProps,\n DialogTitle as DialogTitlePrimitive,\n type DialogTitleProps as DialogTitlePrimitiveProps,\n DialogDescription as DialogDescriptionPrimitive,\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\n DialogClose as DialogClosePrimitive,\n type DialogCloseProps as DialogClosePrimitiveProps,\n DialogContent as DialogContentPrimitive,\n type DialogContentProps as DialogContentPrimitiveProps,\n} from '@radix-ui/react-dialog';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DialogRootProps = DialogRootPrimitiveProps;\n\nconst DialogRoot: FunctionComponent<DialogRootProps> = DialogRootPrimitive;\n\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\n\nconst DialogTrigger: FunctionComponent<DialogTriggerProps> = DialogTriggerPrimitive;\n\ntype DialogPortalProps = DialogPortalPrimitiveProps;\n\nconst DialogPortal: FunctionComponent<DialogPortalProps> = DialogPortalPrimitive;\n\ntype DialogTitleProps = ThemedClassName<DialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst DialogTitle: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DialogDescriptionProps = ThemedClassName<DialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst DialogDescription: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n DialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype DialogCloseProps = DialogClosePrimitiveProps;\n\nconst DialogClose: FunctionComponent<DialogCloseProps> = DialogClosePrimitive;\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst DIALOG_OVERLAY_NAME = 'DialogOverlay';\nconst DIALOG_CONTENT_NAME = 'DialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(DIALOG_OVERLAY_NAME, {\n inOverlayLayout: false,\n});\n\ntype DialogOverlayProps = ThemedClassName<DialogOverlayPrimitiveProps> & { blockAlign?: 'center' | 'start' };\n\nconst DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<HTMLDivElement, DialogOverlayProps>(\n ({ classNames, children, blockAlign, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <DialogOverlayPrimitive\n {...props}\n className={tx(\n 'dialog.overlay',\n 'dialog__overlay',\n {},\n classNames,\n 'data-[block-align=start]:justify-center',\n 'data-[block-align=start]:items-start',\n 'data-[block-align=center]:place-content-center',\n )}\n ref={forwardedRef}\n data-block-align={blockAlign}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </DialogOverlayPrimitive>\n );\n },\n);\n\nDialogOverlay.displayName = DIALOG_OVERLAY_NAME;\n\ntype DialogContentProps = ThemedClassName<DialogContentPrimitiveProps>;\n\nconst DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<HTMLDivElement, DialogContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);\n\n return (\n <DialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DialogContentPrimitive>\n );\n },\n);\n\nDialogContent.displayName = DIALOG_CONTENT_NAME;\n\nexport const Dialog = {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n\nexport type {\n DialogRootProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nexport interface ElevationContextValue {\n elevation?: Elevation;\n}\n\nexport type ElevationProviderProps = PropsWithChildren<{\n elevation?: Elevation;\n}>;\n\nexport const ElevationContext = createContext<ElevationContextValue>({ elevation: 'base' });\n\nexport const ElevationProvider = ({ elevation, children }: ElevationProviderProps) => (\n <ElevationContext.Provider value={{ elevation }}>{children}</ElevationContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type AlertDialogProps as AlertDialogRootPrimitiveProps,\n Root as AlertDialogRootPrimitive,\n AlertDialogTrigger as AlertDialogTriggerPrimitive,\n type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,\n AlertDialogPortal as AlertDialogPortalPrimitive,\n type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,\n AlertDialogOverlay as AlertDialogOverlayPrimitive,\n type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,\n AlertDialogTitle as AlertDialogTitlePrimitive,\n type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,\n AlertDialogDescription as AlertDialogDescriptionPrimitive,\n type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,\n AlertDialogAction as AlertDialogActionPrimitive,\n type AlertDialogActionProps as AlertDialogActionPrimitiveProps,\n AlertDialogCancel as AlertDialogCancelPrimitive,\n type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,\n AlertDialogContent as AlertDialogContentPrimitive,\n type AlertDialogContentProps as AlertDialogContentPrimitiveProps,\n} from '@radix-ui/react-alert-dialog';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype AlertDialogRootProps = AlertDialogRootPrimitiveProps;\n\nconst AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = AlertDialogRootPrimitive;\n\ntype AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;\n\nconst AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;\n\ntype AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;\n\nconst AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;\n\ntype AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;\n\nconst AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;\n\ntype AlertDialogActionProps = AlertDialogActionPrimitiveProps;\n\nconst AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;\n\ntype AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLHeadingElement,\n AlertDialogTitleProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n AlertDialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';\nconst ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(\n ALERT_DIALOG_OVERLAY_NAME,\n {\n inOverlayLayout: false,\n },\n);\n\ntype AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps>;\n\nconst AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<\n HTMLDivElement,\n AlertDialogOverlayProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogOverlayPrimitive\n {...props}\n className={tx('dialog.overlay', 'dialog--alert__overlay', {}, classNames)}\n ref={forwardedRef}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </AlertDialogOverlayPrimitive>\n );\n});\n\nAlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;\n\ntype AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps>;\n\nconst AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<\n HTMLDivElement,\n AlertDialogContentProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);\n return (\n <AlertDialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog--alert', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </AlertDialogContentPrimitive>\n );\n});\n\nAlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;\n\nexport const AlertDialog = {\n Root: AlertDialogRoot,\n Trigger: AlertDialogTrigger,\n Portal: AlertDialogPortal,\n Overlay: AlertDialogOverlay,\n Content: AlertDialogContent,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Cancel: AlertDialogCancel,\n Action: AlertDialogAction,\n};\n\nexport type {\n AlertDialogRootProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n AlertDialogCancelProps,\n AlertDialogActionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype ContextMenuRootProps = ContextMenuPrimitive.ContextMenuProps;\n\nconst ContextMenuRoot = ContextMenuPrimitive.ContextMenu;\n\ntype ContextMenuTriggerProps = ContextMenuPrimitive.ContextMenuTriggerProps;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\ntype ContextMenuPortalProps = ContextMenuPrimitive.ContextMenuPortalProps;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\ntype ContextMenuContentProps = ThemedClassName<ContextMenuPrimitive.ContextMenuContentProps> & {\n constrainBlockSize?: boolean;\n};\n\nconst ContextMenuContent = forwardRef<HTMLDivElement, ContextMenuContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Content\n collisionPadding={8}\n {...props}\n className={tx('menu.content', 'menu', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </ContextMenuPrimitive.Content>\n );\n },\n);\n\ntype ContextMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst ContextMenuViewport = forwardRef<HTMLDivElement, ContextMenuViewportProps>(\n ({ classNames, asChild, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ContextMenuArrowProps = ThemedClassName<ContextMenuPrimitive.ContextMenuArrowProps>;\n\nconst ContextMenuArrow = forwardRef<SVGSVGElement, ContextMenuArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Arrow\n {...props}\n className={tx('menu.arrow', 'menu__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ContextMenuGroupProps = ContextMenuPrimitive.ContextMenuGroupProps;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\ntype ContextMenuItemIndicatorProps = ContextMenuPrimitive.ContextMenuItemIndicatorProps;\n\nconst ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;\n\ntype ContextMenuItemProps = ThemedClassName<ContextMenuPrimitive.ContextMenuItemProps>;\n\nconst ContextMenuItem = forwardRef<HTMLDivElement, ContextMenuItemProps>(\n ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Item\n {...props}\n className={tx('menu.item', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuCheckboxItemProps = ThemedClassName<ContextMenuPrimitive.ContextMenuCheckboxItemProps>;\n\nconst ContextMenuCheckboxItem = forwardRef<HTMLDivElement, ContextMenuCheckboxItemProps>(\n ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.CheckboxItem\n {...props}\n className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuSeparatorProps = ThemedClassName<ContextMenuPrimitive.ContextMenuSeparatorProps>;\n\nconst ContextMenuSeparator = forwardRef<HTMLDivElement, ContextMenuSeparatorProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Separator\n {...props}\n className={tx('menu.separator', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuGroupLabelProps = ThemedClassName<ContextMenuPrimitive.ContextMenuLabelProps>;\n\nconst ContextMenuGroupLabel = forwardRef<HTMLDivElement, ContextMenuGroupLabelProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Label\n {...props}\n className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport const ContextMenu = {\n Root: ContextMenuRoot,\n Trigger: ContextMenuTrigger,\n Portal: ContextMenuPortal,\n Content: ContextMenuContent,\n Viewport: ContextMenuViewport,\n Arrow: ContextMenuArrow,\n Group: ContextMenuGroup,\n Item: ContextMenuItem,\n CheckboxItem: ContextMenuCheckboxItem,\n ItemIndicator: ContextMenuItemIndicator,\n Separator: ContextMenuSeparator,\n GroupLabel: ContextMenuGroupLabel,\n};\n\nexport type {\n ContextMenuRootProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuViewportProps,\n ContextMenuArrowProps,\n ContextMenuGroupProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuGroupLabelProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport { type Scope, type ScopeHook } from '@radix-ui/react-context';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { type DropdownMenuContextValue } from '@radix-ui/react-dropdown-menu';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DropdownMenuRootProps = DropdownMenuPrimitive.DropdownMenuProps;\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.DropdownMenu;\n\ntype DropdownMenuTriggerProps = DropdownMenuPrimitive.DropdownMenuTriggerProps;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\ntype DropdownMenuPortalProps = DropdownMenuPrimitive.DropdownMenuPortalProps;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\ntype DropdownMenuContentProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuContentProps> & {\n constrainBlockSize?: boolean;\n};\n\n// @ts-ignore\nconst useDropdownMenuContext: (\n consumerName: string,\n scope: Scope<DropdownMenuContextValue | undefined>,\n) => DropdownMenuContextValue = DropdownMenuPrimitive.useDropdownMenuContext;\n// @ts-ignore\nconst useDropdownMenuMenuScope: ScopeHook = DropdownMenuPrimitive.useDropdownMenuMenuScope;\n\nconst DropdownMenuContent = forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Content\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('menu.content', 'menu', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DropdownMenuPrimitive.Content>\n );\n },\n);\n\ntype DropdownMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProps>(\n ({ classNames, asChild, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype DropdownMenuArrowProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuArrowProps>;\n\nconst DropdownMenuArrow = forwardRef<SVGSVGElement, DropdownMenuArrowProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Arrow\n {...props}\n className={tx('menu.arrow', 'menu__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupProps = DropdownMenuPrimitive.DropdownMenuGroupProps;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\ntype DropdownMenuItemIndicatorProps = DropdownMenuPrimitive.DropdownMenuItemIndicatorProps;\n\nconst DropdownMenuItemIndicator = DropdownMenuPrimitive.ItemIndicator;\n\ntype DropdownMenuItemProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuItemProps>;\n\nconst DropdownMenuItem = forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ classNames, ...props }: DropdownMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Item\n {...props}\n className={tx('menu.item', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuCheckboxItemProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps>;\n\nconst DropdownMenuCheckboxItem = forwardRef<HTMLDivElement, DropdownMenuCheckboxItemProps>(\n ({ classNames, ...props }: DropdownMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.CheckboxItem\n {...props}\n className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuSeparatorProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuSeparatorProps>;\n\nconst DropdownMenuSeparator = forwardRef<HTMLDivElement, DropdownMenuSeparatorProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n className={tx('menu.separator', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupLabelProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuLabelProps>;\n\nconst DropdownMenuGroupLabel = forwardRef<HTMLDivElement, DropdownMenuGroupLabelProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport const DropdownMenu = {\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Portal: DropdownMenuPortal,\n Content: DropdownMenuContent,\n Viewport: DropdownMenuViewport,\n Arrow: DropdownMenuArrow,\n Group: DropdownMenuGroup,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n ItemIndicator: DropdownMenuItemIndicator,\n Separator: DropdownMenuSeparator,\n GroupLabel: DropdownMenuGroupLabel,\n};\n\nexport { useDropdownMenuContext, useDropdownMenuMenuScope };\n\nexport type {\n DropdownMenuRootProps,\n DropdownMenuTriggerProps,\n DropdownMenuPortalProps,\n DropdownMenuContentProps,\n DropdownMenuViewportProps,\n DropdownMenuArrowProps,\n DropdownMenuGroupProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuSeparatorProps,\n DropdownMenuGroupLabelProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Check, type IconWeight, Minus } from '@phosphor-icons/react';\nimport {\n Root as CheckboxPrimitive,\n type CheckboxProps as CheckboxPrimitiveProps,\n Indicator as CheckboxIndicatorPrimitive,\n} from '@radix-ui/react-checkbox';\nimport {\n Root as SwitchPrimitive,\n Thumb as SwitchThumbPrimitive,\n type SwitchProps as SwitchPrimitiveProps,\n} from '@radix-ui/react-switch';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { forwardRef, type ForwardRefExoticComponent, Fragment, useCallback } from 'react';\n\nimport {\n InputRoot,\n type InputRootProps,\n PinInput as PinInputPrimitive,\n type PinInputProps as PinInputPrimitiveProps,\n TextInput as TextInputPrimitive,\n type TextInputProps as TextInputPrimitiveProps,\n TextArea as TextAreaPrimitive,\n type TextAreaProps as TextAreaPrimitiveProps,\n useInputContext,\n INPUT_NAME,\n type InputScopedProps,\n Description as DescriptionPrimitive,\n DescriptionAndValidation as DescriptionAndValidationPrimitive,\n type DescriptionAndValidationProps as DescriptionAndValidationPrimitiveProps,\n type DescriptionProps as DescriptionPrimitiveProps,\n Label as LabelPrimitive,\n type LabelProps as LabelPrimitiveProps,\n Validation as ValidationPrimitive,\n type ValidationProps as ValidationPrimitiveProps,\n} from '@dxos/react-input';\nimport { type Density, type Elevation, type ClassNameValue, type Size } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype InputVariant = 'default' | 'subdued';\n\ntype InputSharedProps = Partial<{ density: Density; elevation: Elevation; variant: InputVariant }>;\n\ntype LabelProps = ThemedClassName<LabelPrimitiveProps> & { srOnly?: boolean };\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <LabelPrimitive {...props} className={tx('input.label', 'input__label', { srOnly }, classNames)} ref={forwardedRef}>\n {children}\n </LabelPrimitive>\n );\n});\n\ntype DescriptionProps = ThemedClassName<DescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst Description = forwardRef<HTMLSpanElement, DescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionPrimitive\n {...props}\n className={tx('input.description', 'input__description', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionPrimitive>\n );\n },\n);\n\ntype ValidationProps = ThemedClassName<ValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst Validation = forwardRef<HTMLSpanElement, InputScopedProps<ValidationProps>>(\n ({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n return (\n <ValidationPrimitive\n {...props}\n className={tx(\n 'input.validation',\n `input__validation-message input__validation-message--${validationValence}`,\n { srOnly, validationValence },\n classNames,\n )}\n ref={forwardedRef}\n >\n {children}\n </ValidationPrimitive>\n );\n },\n);\n\ntype DescriptionAndValidationProps = ThemedClassName<DescriptionAndValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst DescriptionAndValidation = forwardRef<HTMLParagraphElement, DescriptionAndValidationProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionAndValidationPrimitive\n {...props}\n className={tx('input.descriptionAndValidation', 'input__description-and-validation', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionAndValidationPrimitive>\n );\n },\n);\n\ntype PinInputProps = InputSharedProps &\n Omit<PinInputPrimitiveProps, 'segmentClassName' | 'inputClassName'> & {\n segmentClassName?: ClassNameValue;\n inputClassName?: ClassNameValue;\n };\n\nconst PinInput = forwardRef<HTMLInputElement, PinInputProps>(\n (\n {\n density: propsDensity,\n elevation: propsElevation,\n segmentClassName: propsSegmentClassName,\n inputClassName,\n variant,\n ...props\n },\n forwardedRef,\n ) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n\n const segmentClassName = useCallback(\n ({ focused, validationValence }: Parameters<Exclude<PinInputPrimitiveProps['segmentClassName'], undefined>>[0]) =>\n tx(\n 'input.input',\n 'input--pin-segment',\n {\n variant: 'static',\n focused,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n propsSegmentClassName,\n ),\n [tx, props.disabled, elevation, propsElevation, density],\n );\n return (\n <PinInputPrimitive\n {...{\n ...props,\n segmentClassName,\n ...(props.autoFocus && !hasIosKeyboard && { autoFocus: true }),\n }}\n inputClassName={tx('input.inputWithSegments', 'input input--pin', { disabled: props.disabled }, inputClassName)}\n ref={forwardedRef}\n />\n );\n },\n);\n\n// TODO(burdon): Implement inline icon within button: e.g., https://www.radix-ui.com/themes/playground#text-field\n\ntype TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps>;\n\nconst TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const themeContextValue = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n const { tx } = themeContextValue;\n\n return (\n <TextInputPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype TextAreaProps = InputSharedProps & ThemedClassName<TextAreaPrimitiveProps>;\n\nconst TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n return (\n <TextAreaPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input--text-area',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & { size?: Size; weight?: IconWeight };\n\nconst Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<\n HTMLButtonElement,\n InputScopedProps<CheckboxProps>\n>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size,\n weight = 'bold',\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n const { tx } = useThemeContext();\n const Icon = checked === 'indeterminate' ? Minus : checked ? Check : Fragment;\n return (\n <CheckboxPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n className: tx('input.checkbox', 'input--checkbox', { size }, 'shrink-0', classNames),\n }}\n ref={forwardedRef}\n >\n <CheckboxIndicatorPrimitive asChild>\n <Icon\n {...(checked && {\n weight,\n className: tx('input.checkboxIndicator', 'input--checkbox__indicator', { size }),\n })}\n />\n </CheckboxIndicatorPrimitive>\n </CheckboxPrimitive>\n );\n },\n);\n\ntype SwitchProps = ThemedClassName<Omit<SwitchPrimitiveProps, 'children'>> & { size?: Size };\n\nconst Switch: ForwardRefExoticComponent<SwitchProps> = forwardRef<HTMLButtonElement, InputScopedProps<SwitchProps>>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size = 5,\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n return (\n <SwitchPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n className: tx('input.switch', 'input--switch', { size }, classNames),\n }}\n ref={forwardedRef}\n >\n {/* TODO(wittjosiah): Embed icons/text for on/off states.\n e.g., https://codepen.io/alvarotrigo/pen/oNoJePo (#13) */}\n <SwitchThumbPrimitive className={tx('input.switchThumb', 'input--switch__thumb', { size })} />\n </SwitchPrimitive>\n );\n },\n);\n\nexport const Input = {\n Root: InputRoot,\n PinInput,\n TextInput,\n TextArea,\n Checkbox,\n Switch,\n Label,\n Description,\n Validation,\n DescriptionAndValidation,\n};\n\nexport type {\n InputVariant,\n InputRootProps,\n PinInputProps,\n TextInputProps,\n TextAreaProps,\n CheckboxProps,\n SwitchProps,\n LabelProps,\n DescriptionProps,\n ValidationProps,\n DescriptionAndValidationProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretRight } from '@phosphor-icons/react';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List as ListPrimitive,\n type ListProps as ListPrimitiveProps,\n type ListScopedProps,\n ListItemHeading as ListPrimitiveItemHeading,\n type ListItemHeadingProps as ListPrimitiveItemHeadingProps,\n ListItemOpenTrigger as ListPrimitiveItemOpenTrigger,\n type ListItemOpenTriggerProps as ListPrimitiveItemOpenTriggerProps,\n ListItemCollapsibleContent,\n type ListItemCollapsibleContentProps,\n ListItem as ListPrimitiveItem,\n type ListItemProps as ListPrimitiveItemProps,\n type ListItemScopedProps,\n LIST_NAME,\n LIST_ITEM_NAME,\n useListContext,\n useListItemContext,\n} from '@dxos/react-list';\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\n\ntype ListProps = ThemedClassName<ListPrimitiveProps> & { density?: Density };\n\nconst List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext(props.density);\n\n return (\n <DensityProvider density={density}>\n <ListPrimitive {...props} className={tx('list.root', 'list', {}, classNames)} ref={forwardedRef}>\n {children}\n </ListPrimitive>\n </DensityProvider>\n );\n});\n\ntype ListItemEndcapProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { asChild?: boolean };\n\nconst ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(\n ({ children, classNames, asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : 'div';\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <Root\n {...(!asChild && { role: 'none' })}\n {...props}\n className={tx('list.item.endcap', 'list__listItem__endcap', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nconst MockListItemOpenTrigger = ({\n classNames,\n ...props\n}: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <div\n role='none'\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}\n />\n );\n};\n\ntype ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItemHeading\n {...props}\n className={tx('list.item.heading', 'list__listItem__heading', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItemHeading>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ThemedClassName<ListPrimitiveItemOpenTriggerProps>;\n\nconst ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerProps>(\n ({ __listItemScope, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Icon = open ? CaretDown : CaretRight;\n return (\n <ListPrimitiveItemOpenTrigger\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger', { density }, classNames)}\n ref={forwardedRef}\n >\n {children || (\n <Icon\n {...{\n weight: 'bold',\n className: tx('list.item.openTriggerIcon', 'list__listItem__openTrigger__icon', {}),\n }}\n />\n )}\n </ListPrimitiveItemOpenTrigger>\n );\n },\n);\n\ntype ListItemRootProps = ThemedClassName<ListPrimitiveItemProps>;\n\nconst ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItem\n {...props}\n className={tx('list.item.root', 'list__listItem', { density, collapsible: props.collapsible }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItem>\n );\n },\n);\n\nexport const ListItem: {\n Root: ForwardRefExoticComponent<ListItemRootProps>;\n Endcap: ForwardRefExoticComponent<ListItemEndcapProps>;\n Heading: ForwardRefExoticComponent<ListItemHeadingProps>;\n OpenTrigger: ForwardRefExoticComponent<ListItemOpenTriggerProps>;\n CollapsibleContent: ForwardRefExoticComponent<ListItemCollapsibleContentProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: ListItemRoot,\n Endcap: ListItemEndcap,\n Heading: ListItemHeading,\n OpenTrigger: ListItemOpenTrigger,\n CollapsibleContent: ListItemCollapsibleContent,\n MockOpenTrigger: MockListItemOpenTrigger,\n};\n\nexport { List, useListContext, useListItemContext, LIST_NAME, LIST_ITEM_NAME };\n\nexport type {\n ListProps,\n ListScopedProps,\n ListItemRootProps,\n ListItemScopedProps,\n ListItemEndcapProps,\n ListItemHeadingProps,\n ListItemOpenTriggerProps,\n ListItemCollapsibleContentProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nexport interface DensityContextValue {\n density?: Density;\n}\n\nexport type DensityProviderProps = PropsWithChildren<{\n density?: Density;\n}>;\n\nexport const DensityContext = createContext<DensityContextValue>({ density: 'coarse' });\n\nexport const DensityProvider = ({ density, children }: DensityProviderProps) => (\n <DensityContext.Provider value={{ density }}>{children}</DensityContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List,\n ListItem,\n type ListItemCollapsibleContentProps,\n type ListItemHeadingProps,\n type ListItemOpenTriggerProps,\n type ListItemRootProps,\n type ListProps,\n type ListScopedProps,\n LIST_ITEM_NAME,\n useListItemContext,\n} from './List';\nimport { type ThemedClassName } from '../../util';\n\ntype TreeRootProps = ListProps;\n\ntype TreeItemProps = ListItemRootProps;\n\nconst TreeRoot: ForwardRefExoticComponent<TreeRootProps> = forwardRef<HTMLOListElement, TreeRootProps>(\n (props, forwardedRef) => {\n return <List {...props} ref={forwardedRef} />;\n },\n);\n\ntype TreeBranchProps = TreeRootProps;\n\nconst TreeBranch: ForwardRefExoticComponent<TreeBranchProps> = forwardRef<\n HTMLOListElement,\n ListScopedProps<TreeBranchProps>\n>(({ __listScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listScope);\n return <List {...props} aria-labelledby={headingId} ref={forwardedRef} />;\n});\n\nconst TreeItemRoot: ForwardRefExoticComponent<ListItemRootProps> = forwardRef<HTMLLIElement, ListItemRootProps>(\n (props, forwardedRef) => {\n return <ListItem.Root role='treeitem' {...props} ref={forwardedRef} />;\n },\n);\n\ntype TreeItemHeadingProps = ListItemHeadingProps;\n\nconst TreeItemHeading = ListItem.Heading;\n\ntype TreeItemOpenTriggerProps = ListItemOpenTriggerProps;\n\nconst TreeItemOpenTrigger = ListItem.OpenTrigger;\n\nconst MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;\n\ntype TreeItemBodyProps = ListItemCollapsibleContentProps;\n\nconst TreeItemBody: ForwardRefExoticComponent<TreeItemBodyProps> = ListItem.CollapsibleContent;\n\nexport const Tree = { Root: TreeRoot, Branch: TreeBranch };\nexport const TreeItem: {\n Root: ForwardRefExoticComponent<TreeItemProps>;\n Heading: ForwardRefExoticComponent<TreeItemHeadingProps>;\n Body: ForwardRefExoticComponent<TreeItemBodyProps>;\n OpenTrigger: ForwardRefExoticComponent<TreeItemOpenTriggerProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: TreeItemRoot,\n Heading: TreeItemHeading,\n Body: TreeItemBody,\n OpenTrigger: TreeItemOpenTrigger,\n MockOpenTrigger: MockTreeItemOpenTrigger,\n};\n\nexport type { TreeRootProps, TreeItemProps, TreeItemHeadingProps, TreeItemBodyProps, TreeItemOpenTriggerProps };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { type ComponentPropsWithRef, type CSSProperties, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/treegrid_role\n\nconst TREEGRID_ROW_NAME = 'TreegridRow';\n\ntype TreegridRowScopedProps<P> = P & { __treegridRowScope?: Scope };\n\nconst [createTreegridRowContext, createTreegridRowScope] = createContextScope(TREEGRID_ROW_NAME, []);\n\ntype TreegridRowContextValue = {\n open?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n};\n\nconst [TreegridRowProvider, useTreegridRowContext] =\n createTreegridRowContext<TreegridRowContextValue>(TREEGRID_ROW_NAME);\n\nconst PATH_SEPARATOR = '~';\nconst PARENT_OF_SEPARATOR = ' ';\n\ntype TreegridRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n gridTemplateColumns: CSSProperties['gridTemplateColumns'];\n asChild?: boolean;\n};\n\nconst TreegridRoot = forwardRef<HTMLDivElement, TreegridRootProps>(\n ({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n const arrowNavigationAttrs = useArrowNavigationGroup({ axis: 'vertical' });\n return (\n <Root\n role='treegrid'\n {...arrowNavigationAttrs}\n {...props}\n className={tx('treegrid.root', 'treegrid', {}, classNames)}\n style={{ ...style, gridTemplateColumns }}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\ntype TreegridRowProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n id: string;\n asChild?: boolean;\n parentOf?: string;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n};\n\nconst TreegridRow = forwardRef<HTMLDivElement, TreegridRowScopedProps<TreegridRowProps>>(\n (\n {\n __treegridRowScope,\n asChild,\n classNames,\n children,\n id,\n parentOf,\n open: propsOpen,\n defaultOpen,\n onOpenChange: propsOnOpenChange,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n const pathParts = id.split(PATH_SEPARATOR);\n const level = pathParts.length - 1;\n const [open, onOpenChange] = useControllableState({\n prop: propsOpen,\n onChange: propsOnOpenChange,\n defaultProp: defaultOpen,\n });\n const focusableGroupAttrs = useFocusableGroup();\n const arrowGroupAttrs = useArrowNavigationGroup({ axis: 'horizontal', tabbable: true, circular: false });\n return (\n <TreegridRowProvider open={open} onOpenChange={onOpenChange} scope={__treegridRowScope}>\n <Root\n role='row'\n aria-level={level}\n className={tx('treegrid.row', 'treegrid__row', { level }, classNames)}\n {...(parentOf && { 'aria-expanded': open, 'aria-owns': parentOf })}\n tabIndex={0}\n {...focusableGroupAttrs}\n {...props}\n id={id}\n ref={forwardedRef}\n >\n <div role='none' className='contents' {...arrowGroupAttrs}>\n {children}\n </div>\n </Root>\n </TreegridRowProvider>\n );\n },\n);\n\ntype TreegridCellProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & { indent?: boolean };\n\nconst TreegridCell = forwardRef<HTMLDivElement, TreegridCellProps>(\n ({ classNames, children, indent, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <div\n role='gridcell'\n className={tx('treegrid.cell', 'treegrid__cell', { indent }, classNames)}\n {...props}\n ref={forwardedRef}\n >\n {children}\n </div>\n );\n },\n);\n\nexport type { TreegridRootProps, TreegridRowProps };\n\nexport const Treegrid = {\n Root: TreegridRoot,\n Row: TreegridRow,\n Cell: TreegridCell,\n PARENT_OF_SEPARATOR,\n PATH_SEPARATOR,\n createTreegridRowScope,\n useTreegridRowContext,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Root as DialogRoot, DialogContent } from '@radix-ui/react-dialog';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n type ComponentPropsWithRef,\n type Dispatch,\n forwardRef,\n type PropsWithChildren,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { log } from '@dxos/log';\nimport { useMediaQuery, useForwardedRef } from '@dxos/react-hooks';\n\nimport { useSwipeToDismiss } from './useSwipeToDismiss';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\nconst MAIN_ROOT_NAME = 'MainRoot';\nconst NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';\nconst COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';\nconst MAIN_NAME = 'Main';\nconst GENERIC_CONSUMER_NAME = 'GenericConsumer';\n\ntype MainContextValue = {\n resizing: boolean;\n navigationSidebarOpen: boolean;\n setNavigationSidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n complementarySidebarOpen: boolean;\n setComplementarySidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n};\n\nconst [MainProvider, useMainContext] = createContext<MainContextValue>(MAIN_NAME, {\n resizing: false,\n navigationSidebarOpen: false,\n setNavigationSidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n log.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n complementarySidebarOpen: false,\n setComplementarySidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n log.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n});\n\nconst useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {\n const { setNavigationSidebarOpen, navigationSidebarOpen, setComplementarySidebarOpen, complementarySidebarOpen } =\n useMainContext(consumerName);\n return {\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n toggleNavigationSidebar: useCallback(\n () => setNavigationSidebarOpen(!navigationSidebarOpen),\n [navigationSidebarOpen, setNavigationSidebarOpen],\n ),\n openNavigationSidebar: useCallback(() => setNavigationSidebarOpen(true), [setNavigationSidebarOpen]),\n closeNavigationSidebar: useCallback(() => setNavigationSidebarOpen(false), [setNavigationSidebarOpen]),\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n toggleComplementarySidebar: useCallback(\n () => setComplementarySidebarOpen(!complementarySidebarOpen),\n [complementarySidebarOpen, setComplementarySidebarOpen],\n ),\n openComplementarySidebar: useCallback(() => setComplementarySidebarOpen(true), [setComplementarySidebarOpen]),\n closeComplementarySidebar: useCallback(() => setComplementarySidebarOpen(false), [setComplementarySidebarOpen]),\n };\n};\n\ntype MainRootProps = PropsWithChildren<{\n navigationSidebarOpen?: boolean;\n defaultNavigationSidebarOpen?: boolean;\n onNavigationSidebarOpenChange?: (nextOpen: boolean) => void;\n complementarySidebarOpen?: boolean;\n defaultComplementarySidebarOpen?: boolean;\n onComplementarySidebarOpenChange?: (nextOpen: boolean) => void;\n}>;\n\nconst resizeDebounce = 3000;\n\nconst MainRoot = ({\n navigationSidebarOpen: propsNavigationSidebarOpen,\n defaultNavigationSidebarOpen,\n onNavigationSidebarOpenChange,\n complementarySidebarOpen: propsComplementarySidebarOpen,\n defaultComplementarySidebarOpen,\n onComplementarySidebarOpenChange,\n children,\n ...props\n}: MainRootProps) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState<boolean>({\n prop: propsNavigationSidebarOpen,\n defaultProp: defaultNavigationSidebarOpen,\n onChange: onNavigationSidebarOpenChange,\n });\n const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState<boolean>({\n prop: propsComplementarySidebarOpen,\n defaultProp: defaultComplementarySidebarOpen,\n onChange: onComplementarySidebarOpenChange,\n });\n\n const [resizing, setResizing] = useState(false);\n const resizeInterval = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const handleResize = useCallback(() => {\n setResizing(true);\n if (resizeInterval.current) {\n clearTimeout(resizeInterval.current);\n }\n resizeInterval.current = setTimeout(() => {\n setResizing(false);\n resizeInterval.current = null;\n }, resizeDebounce);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n return (\n <MainProvider\n {...props}\n {...{\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n }}\n resizing={resizing}\n >\n {children}\n </MainProvider>\n );\n};\n\nMainRoot.displayName = MAIN_ROOT_NAME;\n\nconst handleOpenAutoFocus = (event: Event) => {\n !document.body.hasAttribute('data-is-keyboard') && event.preventDefault();\n};\n\ntype MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {\n swipeToDismiss?: boolean;\n open: boolean;\n resizing?: boolean;\n setOpen: Dispatch<SetStateAction<boolean | undefined>>;\n side: 'inline-start' | 'inline-end';\n};\n\nconst MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(\n (\n { classNames, children, swipeToDismiss, onOpenAutoFocus, open, resizing, setOpen, side, ...props },\n forwardedRef,\n ) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { tx } = useThemeContext();\n const ref = useForwardedRef(forwardedRef);\n const noopRef = useRef(null);\n useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {\n onDismiss: () => setOpen(false),\n });\n const Root = isLg ? Primitive.div : DialogContent;\n return (\n <DialogRoot open={open} modal={false}>\n <Root\n {...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}\n {...props}\n data-side={side === 'inline-end' ? 'ie' : 'is'}\n data-state={open ? 'open' : 'closed'}\n data-resizing={resizing ? 'true' : 'false'}\n className={tx('main.sidebar', 'main__sidebar', {}, classNames)}\n {...(!open && { inert: 'true' })}\n ref={ref}\n >\n <ElevationProvider elevation='group'>{children}</ElevationProvider>\n </Root>\n </DialogRoot>\n );\n },\n);\n\ntype MainNavigationSidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {\n const { navigationSidebarOpen, setNavigationSidebarOpen, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={navigationSidebarOpen}\n setOpen={setNavigationSidebarOpen}\n resizing={resizing}\n side='inline-start'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainComplementarySidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {\n const { complementarySidebarOpen, setComplementarySidebarOpen, resizing } =\n useMainContext(COMPLEMENTARY_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={complementarySidebarOpen}\n setOpen={setComplementarySidebarOpen}\n resizing={resizing}\n side='inline-end'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & { asChild?: boolean; bounce?: boolean };\n\nconst MainContent = forwardRef<HTMLDivElement, MainProps>(\n ({ asChild, classNames, bounce, children, ...props }: MainProps, forwardedRef) => {\n const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'main';\n\n return (\n <Root\n {...props}\n data-sidebar-inline-start-state={navigationSidebarOpen ? 'open' : 'closed'}\n data-sidebar-inline-end-state={complementarySidebarOpen ? 'open' : 'closed'}\n className={tx('main.content', 'main', { bounce }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMainContent.displayName = MAIN_NAME;\n\ntype MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children'>>;\n\nconst MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { navigationSidebarOpen, setNavigationSidebarOpen, complementarySidebarOpen, setComplementarySidebarOpen } =\n useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n return (\n <div\n onClick={() => {\n setNavigationSidebarOpen(false);\n setComplementarySidebarOpen(false);\n }}\n {...props}\n className={tx(\n 'main.overlay',\n 'main__overlay',\n { isLg, inlineStartSidebarOpen: navigationSidebarOpen, inlineEndSidebarOpen: complementarySidebarOpen },\n classNames,\n )}\n data-state={navigationSidebarOpen || complementarySidebarOpen ? 'open' : 'closed'}\n aria-hidden='true'\n ref={forwardedRef}\n />\n );\n});\n\ntype MainNotchProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst MainNotch = forwardRef<HTMLDivElement, MainNotchProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { navigationSidebarOpen } = useMainContext(MAIN_NAME);\n // Notch is concerned with the nav sidebar, whichever side it might be on.\n return (\n <nav\n {...props}\n data-nav-sidebar-state={navigationSidebarOpen ? 'open' : 'closed'}\n className={tx('main.notch', 'main__notch', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Main = {\n Root: MainRoot,\n Content: MainContent,\n Overlay: MainOverlay,\n NavigationSidebar: MainNavigationSidebar,\n ComplementarySidebar: MainComplementarySidebar,\n Notch: MainNotch,\n};\n\nexport { useMainContext, useSidebars };\n\nexport type { MainRootProps, MainProps, MainOverlayProps, MainNavigationSidebarProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// This implementation is based upon https://github.com/hosembafer/react-swipe-to-dismiss, commit d88deafe910a6bd1400cf8fa90459a76cf4f71d3\n\nimport { type RefObject, useCallback, useEffect, useState } from 'react';\n\nenum MotionState {\n IDLE,\n DEBOUNCING,\n FOLLOWING,\n}\n\ntype Options = Partial<{\n onDismiss: () => void;\n dismissThreshold: number;\n debounceThreshold: number;\n side: 'inline-start' | 'inline-end';\n offset: number;\n}>;\n\nexport const useSwipeToDismiss = (\n ref: RefObject<HTMLElement | null>,\n { onDismiss, dismissThreshold = 64, debounceThreshold = 8, offset = 0 /* side = 'inline-start' */ }: Options,\n) => {\n const $root = ref.current;\n // todo(thure): Implement other sides.\n // const dK = direction === 'inline-start' ? 1 : -1;\n\n const [motionState, setMotionState] = useState<MotionState>(MotionState.IDLE);\n const [gestureStartX, setGestureStartX] = useState(0);\n\n const setIdle = useCallback(() => {\n setMotionState(MotionState.IDLE);\n $root?.style.removeProperty('inset-inline-start');\n $root?.style.setProperty('transition-duration', '200ms');\n }, [$root]);\n\n const setFollowing = useCallback(() => {\n setMotionState(MotionState.FOLLOWING);\n $root?.style.setProperty('transition-duration', '0ms');\n }, [$root]);\n\n const handlePointerDown = useCallback(\n ({ screenX }: PointerEvent) => {\n if (motionState === MotionState.IDLE) {\n setMotionState(MotionState.DEBOUNCING);\n setGestureStartX(screenX);\n }\n },\n [motionState],\n );\n\n const handlePointerMove = useCallback(\n ({ screenX }: PointerEvent) => {\n if ($root) {\n const delta = Math.min(screenX - gestureStartX, 0);\n switch (motionState) {\n case MotionState.FOLLOWING:\n if (Math.abs(delta) > dismissThreshold) {\n setIdle();\n onDismiss?.();\n } else {\n $root.style.setProperty('inset-inline-start', `${offset + delta}px`);\n }\n break;\n case MotionState.DEBOUNCING:\n if (Math.abs(delta) > debounceThreshold) {\n setFollowing();\n }\n break;\n }\n }\n },\n [$root, motionState, gestureStartX],\n );\n\n const handlePointerUp = useCallback(() => {\n setIdle();\n }, [setIdle]);\n\n useEffect(() => {\n $root?.addEventListener('pointerdown', handlePointerDown);\n return () => {\n $root?.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [$root, handlePointerDown]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointermove', handlePointerMove);\n return () => {\n document.documentElement.removeEventListener('pointermove', handlePointerMove);\n };\n }, [$root, handlePointerMove]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointerup', handlePointerUp);\n return () => {\n document.documentElement.removeEventListener('pointerup', handlePointerUp);\n };\n }, [$root, handlePointerUp]);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type MessageValence, type Elevation } from '@dxos/react-ui-types';\n\nimport { useElevationContext, useThemeContext } from '../../hooks';\n\ntype MessageRootProps = ComponentPropsWithRef<typeof Primitive.div> & {\n valence?: MessageValence;\n elevation?: Elevation;\n asChild?: boolean;\n titleId?: string;\n descriptionId?: string;\n};\n\ntype MessageContextValue = { titleId?: string; descriptionId: string };\nconst MESSAGE_NAME = 'Message';\nconst [MessageProvider, useMessageContext] = createContext<MessageContextValue>(MESSAGE_NAME);\n\nconst MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(\n (\n {\n asChild,\n valence,\n elevation: propsElevation,\n className,\n titleId: propsTitleId,\n descriptionId: propsDescriptionId,\n children,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const titleId = useId('message__title', propsTitleId);\n const descriptionId = useId('message__description', propsDescriptionId);\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <MessageProvider {...{ titleId, descriptionId }}>\n <Root\n {...props}\n className={tx('message.root', 'message', { valence, elevation }, className)}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n </MessageProvider>\n );\n },\n);\n\nMessageRoot.displayName = MESSAGE_NAME;\n\ntype MessageTitleProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_TITLE_NAME = 'MessageTitle';\n\nconst MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);\n const Root = asChild ? Slot : Primitive.h2;\n return (\n <Root {...props} className={tx('message.title', 'message__title', {}, className)} id={titleId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\nMessageTitle.displayName = MESSAGE_TITLE_NAME;\n\ntype MessageBodyProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_BODY_NAME = 'MessageBody';\n\nconst MessageBody = forwardRef<HTMLParagraphElement, MessageBodyProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root\n {...props}\n className={tx('message.body', 'message__body', {}, className)}\n id={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMessageBody.displayName = MESSAGE_BODY_NAME;\n\nexport const Message = { Root: MessageRoot, Title: MessageTitle, Body: MessageBody };\n\nexport type { MessageRootProps, MessageTitleProps, MessageBodyProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as PopoverRootPrimitive,\n type PopoverProps as PopoverRootPrimitiveProps,\n type PopoverContentProps as PopoverContentPrimitiveProps,\n PopoverContent as PopoverContentPrimitive,\n type PopoverTriggerProps as PopoverTriggerPrimitiveProps,\n PopoverTrigger as PopoverTriggerPrimitive,\n type PopoverAnchorProps as PopoverAnchorPrimitiveProps,\n PopoverAnchor as PopoverAnchorPrimitive,\n type PopoverPortalProps as PopoverPortalPrimitiveProps,\n PopoverPortal as PopoverPortalPrimitive,\n type PopoverArrowProps as PopoverArrowPrimitiveProps,\n PopoverArrow as PopoverArrowPrimitive,\n type PopoverCloseProps as PopoverClosePrimitiveProps,\n PopoverClose as PopoverClosePrimitive,\n} from '@radix-ui/react-popover';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype PopoverRootProps = PopoverRootPrimitiveProps;\n\nconst PopoverRoot: FunctionComponent<PopoverRootProps> = PopoverRootPrimitive;\n\ntype PopoverPortalProps = PopoverPortalPrimitiveProps;\n\nconst PopoverPortal = PopoverPortalPrimitive;\n\ntype PopoverTriggerProps = PopoverTriggerPrimitiveProps;\n\nconst PopoverTrigger = PopoverTriggerPrimitive;\n\ntype PopoverAnchorProps = PopoverAnchorPrimitiveProps;\n\nconst PopoverAnchor = PopoverAnchorPrimitive;\n\ntype PopoverCloseProps = PopoverClosePrimitiveProps;\n\nconst PopoverClose = PopoverClosePrimitive;\n\ntype PopoverArrowProps = ThemedClassName<PopoverArrowPrimitiveProps>;\n\nconst PopoverArrow = forwardRef<SVGSVGElement, PopoverArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverArrowPrimitive\n {...props}\n className={tx('popover.arrow', 'popover__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype PopoverContentProps = ThemedClassName<PopoverContentPrimitiveProps>;\n\nconst PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('popover.content', 'popover', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </PopoverContentPrimitive>\n );\n },\n);\n\ntype PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n constrainInline?: boolean;\n constrainBlock?: boolean;\n};\n\nconst PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(\n ({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n {...props}\n className={tx('popover.viewport', 'popover__viewport', { constrainInline, constrainBlock }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nexport const Popover = {\n Root: PopoverRoot,\n Portal: PopoverPortal,\n Trigger: PopoverTrigger,\n Anchor: PopoverAnchor,\n Arrow: PopoverArrow,\n Close: PopoverClose,\n Content: PopoverContent,\n Viewport: PopoverViewport,\n};\n\nexport type {\n PopoverRootProps,\n PopoverPortalProps,\n PopoverTriggerProps,\n PopoverAnchorProps,\n PopoverArrowProps,\n PopoverCloseProps,\n PopoverContentProps,\n PopoverViewportProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype StatusProps = ThemedClassName<ComponentPropsWithRef<'span'>> & {\n indeterminate?: boolean;\n progress?: number;\n};\n\nconst Status = forwardRef<HTMLSpanElement, StatusProps>(\n ({ classNames, children, progress = 0, indeterminate, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <span\n role='status'\n {...props}\n className={tx('status.root', 'status', { indeterminate }, classNames)}\n ref={forwardedRef}\n >\n <span\n role='none'\n className={tx('status.bar', 'status__bar', { indeterminate }, classNames)}\n {...(!indeterminate && { style: { width: `${Math.round(progress * 100)}%` } })}\n />\n {children}\n </span>\n );\n },\n);\n\nexport { Status };\n\nexport type { StatusProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as ScrollAreaPrimitiveRoot,\n type ScrollAreaProps as ScrollAreaPrimitiveRootProps,\n Viewport as ScrollAreaPrimitiveViewport,\n type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,\n Scrollbar as ScrollAreaPrimitiveScrollbar,\n type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,\n Thumb as ScrollAreaPrimitiveThumb,\n type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,\n Corner as ScrollAreaPrimitiveCorner,\n type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,\n} from '@radix-ui/react-scroll-area';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype ScrollAreaVariant = 'coarse' | 'fine';\n\ntype ScrollAreaRootProps = ThemedClassName<ScrollAreaPrimitiveRootProps>;\n\nconst ScrollAreaRoot = forwardRef<HTMLDivElement, ScrollAreaRootProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveRoot\n {...props}\n className={tx('scrollArea.root', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaViewportProps = ThemedClassName<ScrollAreaPrimitiveViewportProps>;\n\nconst ScrollAreaViewport = forwardRef<HTMLDivElement, ScrollAreaViewportProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveViewport\n {...props}\n className={tx('scrollArea.viewport', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaScrollbarProps = ThemedClassName<ScrollAreaPrimitiveScrollbarProps> & { variant?: ScrollAreaVariant };\n\nconst ScrollAreaScrollbar = forwardRef<HTMLDivElement, ScrollAreaScrollbarProps>(\n ({ classNames, variant = 'fine', ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveScrollbar\n data-variant={variant}\n {...props}\n className={tx('scrollArea.scrollbar', 'scroll-area__scrollbar', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaThumbProps = ThemedClassName<ScrollAreaPrimitiveThumbProps>;\n\nconst ScrollAreaThumb = forwardRef<HTMLDivElement, ScrollAreaThumbProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveThumb\n {...props}\n className={tx('scrollArea.thumb', 'scroll-area__thumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaCornerProps = ThemedClassName<ScrollAreaPrimitiveCornerProps>;\n\nconst ScrollAreaCorner = forwardRef<HTMLDivElement, ScrollAreaCornerProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveCorner\n {...props}\n className={tx('scrollArea.corner', 'scroll-area__corner', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const ScrollArea = {\n Root: ScrollAreaRoot,\n Viewport: ScrollAreaViewport,\n Scrollbar: ScrollAreaScrollbar,\n Thumb: ScrollAreaThumb,\n Corner: ScrollAreaCorner,\n};\n\nexport type {\n ScrollAreaRootProps,\n ScrollAreaViewportProps,\n ScrollAreaScrollbarProps,\n ScrollAreaThumbProps,\n ScrollAreaCornerProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretUp, Check } from '@phosphor-icons/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, type ButtonProps } from '../Buttons';\n\ntype SelectRootProps = SelectPrimitive.SelectProps;\n\nconst SelectRoot = SelectPrimitive.Root;\n\ntype SelectTriggerProps = SelectPrimitive.SelectTriggerProps;\n\nconst SelectTrigger = SelectPrimitive.Trigger;\n\ntype SelectValueProps = SelectPrimitive.SelectValueProps;\n\nconst SelectValue = SelectPrimitive.Value;\n\ntype SelectIconProps = SelectPrimitive.SelectIconProps;\n\nconst SelectIcon = SelectPrimitive.Icon;\n\ntype SelectPortalProps = SelectPrimitive.SelectPortalProps;\n\nconst SelectPortal = SelectPrimitive.Portal;\n\ntype SelectTriggerButtonProps = Omit<ButtonProps, 'children'> & Pick<SelectValueProps, 'placeholder'>;\n\nconst SelectTriggerButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, placeholder, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Trigger asChild ref={forwardedRef}>\n <Button {...props}>\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n <SelectPrimitive.Icon asChild>\n <>\n <span className='w-1' />\n <CaretDown className={tx('select.triggerIcon', 'select__trigger__icon', {})} weight='bold' />\n </>\n </SelectPrimitive.Icon>\n </Button>\n </SelectPrimitive.Trigger>\n );\n },\n);\n\ntype SelectContentProps = ThemedClassName<SelectPrimitive.SelectContentProps>;\n\nconst SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Content\n {...props}\n className={tx('select.content', 'select__content', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.Content>\n );\n },\n);\n\ntype SelectScrollUpButtonProps = ThemedClassName<SelectPrimitive.SelectScrollUpButtonProps>;\n\nconst SelectScrollUpButton = forwardRef<HTMLDivElement, SelectScrollUpButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollUpButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--up', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretUp weight='bold' />}\n </SelectPrimitive.SelectScrollUpButton>\n );\n },\n);\n\ntype SelectScrollDownButtonProps = ThemedClassName<SelectPrimitive.SelectScrollDownButtonProps>;\n\nconst SelectScrollDownButton = forwardRef<HTMLDivElement, SelectScrollDownButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollDownButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--down', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretDown weight='bold' />}\n </SelectPrimitive.SelectScrollDownButton>\n );\n },\n);\n\ntype SelectViewportProps = SelectPrimitive.SelectViewportProps;\n\nconst SelectViewport = SelectPrimitive.Viewport;\n\ntype SelectItemProps = ThemedClassName<SelectPrimitive.SelectItemProps>;\n\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype SelectItemTextProps = SelectPrimitive.SelectItemTextProps;\n\nconst SelectItemText = SelectPrimitive.ItemText;\n\ntype SelectItemIndicatorProps = ThemedClassName<SelectPrimitive.SelectItemIndicatorProps>;\n\nconst SelectItemIndicator = forwardRef<HTMLDivElement, SelectItemIndicatorProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.ItemIndicator\n {...props}\n className={tx('select.itemIndicator', 'option__indicator', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.ItemIndicator>\n );\n },\n);\n\ntype SelectOptionProps = SelectItemProps;\n\nconst SelectOption = forwardRef<HTMLDivElement, SelectItemProps>(({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={tx('select.itemIndicator', 'option__indicator', {})}>\n <Check weight='bold' />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n});\n\ntype SelectGroupProps = SelectPrimitive.SelectGroupProps;\n\nconst SelectGroup = SelectPrimitive.Group;\n\ntype SelectLabelProps = SelectPrimitive.SelectLabelProps;\n\nconst SelectLabel = SelectPrimitive.Label;\n\ntype SelectSeparatorProps = ThemedClassName<SelectPrimitive.SelectSeparatorProps>;\n\nconst SelectSeparator = forwardRef<HTMLDivElement, SelectSeparatorProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Separator\n {...props}\n className={tx('select.separator', 'select__separator', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype SelectArrowProps = ThemedClassName<SelectPrimitive.SelectArrowProps>;\n\nconst SelectArrow = forwardRef<SVGSVGElement, SelectArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Arrow\n {...props}\n className={tx('select.arrow', 'select__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Select = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n TriggerButton: SelectTriggerButton,\n Value: SelectValue,\n Icon: SelectIcon,\n Portal: SelectPortal,\n Content: SelectContent,\n ScrollUpButton: SelectScrollUpButton,\n ScrollDownButton: SelectScrollDownButton,\n Viewport: SelectViewport,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n Option: SelectOption,\n Group: SelectGroup,\n Label: SelectLabel,\n Separator: SelectSeparator,\n Arrow: SelectArrow,\n};\n\nexport type {\n SelectRootProps,\n SelectTriggerProps,\n SelectTriggerButtonProps,\n SelectValueProps,\n SelectIconProps,\n SelectPortalProps,\n SelectContentProps,\n SelectScrollUpButtonProps,\n SelectScrollDownButtonProps,\n SelectViewportProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectItemIndicatorProps,\n SelectOptionProps,\n SelectGroupProps,\n SelectLabelProps,\n SelectSeparatorProps,\n SelectArrowProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport {\n Separator as SeparatorPrimitive,\n type SeparatorProps as SeparatorPrimitiveProps,\n} from '@radix-ui/react-separator';\nimport React from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype SeparatorProps = ThemedClassName<SeparatorPrimitiveProps>;\n\nconst Separator = ({ classNames, orientation = 'horizontal', ...props }: SeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <SeparatorPrimitive\n orientation={orientation}\n {...props}\n className={tx('separator.root', 'separator', { orientation }, classNames)}\n />\n );\n};\n\nexport type { SeparatorProps };\n\nexport { Separator };\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ChromaticPalette, type MessageValence, type NeutralPalette } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type TagProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.span>> & {\n palette?: NeutralPalette | ChromaticPalette | MessageValence;\n asChild?: boolean;\n};\n\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({ asChild, palette, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.span;\n return <Root {...props} className={tx('tag.root', 'tag', { palette }, classNames)} ref={forwardedRef} />;\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n ToastProvider as ToastProviderPrimitive,\n type ToastProviderProps as ToastProviderPrimitiveProps,\n ToastViewport as ToastViewportPrimitive,\n type ToastViewportProps as ToastViewportPrimitiveProps,\n Root as ToastRootPrimitive,\n type ToastProps as ToastRootPrimitiveProps,\n ToastTitle as ToastTitlePrimitive,\n type ToastTitleProps as ToastTitlePrimitiveProps,\n ToastDescription as ToastDescriptionPrimitive,\n type ToastDescriptionProps as ToastDescriptionPrimitiveProps,\n ToastAction as ToastActionPrimitive,\n type ToastActionProps as ToastActionPrimitiveProps,\n ToastClose as ToastClosePrimitive,\n type ToastCloseProps as ToastClosePrimitiveProps,\n} from '@radix-ui/react-toast';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype ToastProviderProps = ToastProviderPrimitiveProps;\n\nconst ToastProvider: FunctionComponent<ToastProviderProps> = ToastProviderPrimitive;\n\ntype ToastViewportProps = ThemedClassName<ToastViewportPrimitiveProps>;\n\nconst ToastViewport = forwardRef<HTMLOListElement, ToastViewportProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastViewportPrimitive className={tx('toast.viewport', 'toast-viewport', {}, classNames)} ref={forwardedRef} />\n );\n});\n\ntype ToastRootProps = ThemedClassName<ToastRootPrimitiveProps>;\n\nconst ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastRootPrimitive {...props} className={tx('toast.root', 'toast', {}, classNames)} ref={forwardedRef}>\n <ElevationProvider elevation='chrome'>\n <DensityProvider density='fine'>{children}</DensityProvider>\n </ElevationProvider>\n </ToastRootPrimitive>\n );\n});\n\ntype ToastBodyProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.body', 'toast__body', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype ToastTitleProps = ThemedClassName<ToastTitlePrimitiveProps>;\n\nconst ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastTitlePrimitive;\n return <Root {...props} className={tx('toast.title', 'toast__title', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastDescriptionProps = ThemedClassName<ToastDescriptionPrimitiveProps>;\n\nconst ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastDescriptionPrimitive;\n return (\n <Root {...props} className={tx('toast.description', 'toast__description', {}, classNames)} ref={forwardedRef} />\n );\n },\n);\n\ntype ToastActionsProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.actions', 'toast__actions', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastActionProps = ToastActionPrimitiveProps;\n\nconst ToastAction: FunctionComponent<ToastActionProps> = ToastActionPrimitive;\n\ntype ToastCloseProps = ToastClosePrimitiveProps;\n\nconst ToastClose: FunctionComponent<ToastCloseProps> = ToastClosePrimitive;\n\nexport const Toast = {\n Provider: ToastProvider,\n Viewport: ToastViewport,\n Root: ToastRoot,\n Body: ToastBody,\n Title: ToastTitle,\n Description: ToastDescription,\n Actions: ToastActions,\n Action: ToastAction,\n Close: ToastClose,\n};\n\nexport type {\n ToastProviderProps,\n ToastViewportProps,\n ToastRootProps,\n ToastBodyProps,\n ToastTitleProps,\n ToastDescriptionProps,\n ToastActionsProps,\n ToastActionProps,\n ToastCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as ToolbarPrimitive from '@radix-ui/react-toolbar';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ToggleGroupItemProps } from '../Buttons';\nimport { Link, type LinkProps } from '../Link';\nimport { Separator, type SeparatorProps } from '../Separator';\n\ntype ToolbarRootProps = ThemedClassName<ToolbarPrimitive.ToolbarProps>;\n\nconst ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToolbarPrimitive.Root {...props} className={tx('toolbar.root', 'toolbar', {}, classNames)} ref={forwardedRef}>\n {children}\n </ToolbarPrimitive.Root>\n );\n});\n\ntype ToolbarButtonProps = ButtonProps;\n\nconst ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Button asChild>\n <Button {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Button>\n );\n});\n\ntype ToolbarLinkProps = LinkProps;\n\nconst ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Link asChild>\n <Link {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Link>\n );\n});\n\ntype ToolbarToggleGroupProps = (\n | Omit<ToolbarPrimitive.ToolbarToggleGroupSingleProps, 'className'>\n | Omit<ToolbarPrimitive.ToolbarToggleGroupMultipleProps, 'className'>\n) &\n ButtonGroupProps;\n\nconst ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(\n ({ classNames, children, elevation, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleGroup {...props} asChild>\n <ButtonGroup {...{ classNames, children, elevation }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleGroup>\n );\n },\n);\n\ntype ToolbarToggleGroupItemProps = ToggleGroupItemProps;\n\nconst ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupItemProps>(\n ({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleItem {...props} asChild>\n <Button {...{ variant, density, elevation, classNames, children }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleItem>\n );\n },\n);\n\ntype ToolbarSeparatorProps = SeparatorProps;\n\nconst ToolbarSeparator = (props: SeparatorProps) => {\n return (\n <ToolbarPrimitive.Separator asChild>\n <Separator orientation='vertical' {...props} />\n </ToolbarPrimitive.Separator>\n );\n};\n\nexport const Toolbar = {\n Root: ToolbarRoot,\n Button: ToolbarButton,\n Link: ToolbarLink,\n ToggleGroup: ToolbarToggleGroup,\n ToggleGroupItem: ToolbarToggleGroupItem,\n Separator: ToolbarSeparator,\n};\n\nexport type {\n ToolbarRootProps,\n ToolbarButtonProps,\n ToolbarLinkProps,\n ToolbarToggleGroupProps,\n ToolbarToggleGroupItemProps,\n ToolbarSeparatorProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Provider as TooltipProviderPrimitive,\n type TooltipProviderProps as TooltipProviderPrimitiveProps,\n Root as TooltipRootPrimitive,\n type TooltipProps as TooltipRootPrimitiveProps,\n type TooltipContentProps as TooltipContentPrimitiveProps,\n TooltipContent as TooltipContentPrimitive,\n type TooltipTriggerProps as TooltipTriggerPrimitiveProps,\n TooltipTrigger as TooltipTriggerPrimitive,\n type TooltipPortalProps as TooltipPortalPrimitiveProps,\n TooltipPortal as TooltipPortalPrimitive,\n type TooltipArrowProps as TooltipArrowPrimitiveProps,\n TooltipArrow as TooltipArrowPrimitive,\n} from '@radix-ui/react-tooltip';\nimport React, { forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype TooltipProviderProps = TooltipProviderPrimitiveProps;\n\nconst TooltipProvider: FunctionComponent<TooltipProviderProps> = TooltipProviderPrimitive;\n\ntype TooltipRootProps = TooltipRootPrimitiveProps;\n\nconst TooltipRoot: FunctionComponent<TooltipRootProps> = TooltipRootPrimitive;\n\ntype TooltipPortalProps = TooltipPortalPrimitiveProps;\n\nconst TooltipPortal = TooltipPortalPrimitive;\n\ntype TooltipTriggerProps = TooltipTriggerPrimitiveProps;\n\nconst TooltipTrigger = TooltipTriggerPrimitive;\n\ntype TooltipArrowProps = ThemedClassName<TooltipArrowPrimitiveProps>;\n\nconst TooltipArrow = forwardRef<SVGSVGElement, TooltipArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipArrowPrimitive\n {...props}\n className={tx('tooltip.arrow', 'tooltip__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype TooltipContentProps = ThemedClassName<TooltipContentPrimitiveProps>;\n\nconst TooltipContent = forwardRef<HTMLDivElement, TooltipContentProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('tooltip.content', 'tooltip', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Tooltip = {\n Provider: TooltipProvider,\n Root: TooltipRoot,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n};\n\nexport type {\n TooltipProviderProps,\n TooltipRootProps,\n TooltipPortalProps,\n TooltipTriggerProps,\n TooltipArrowProps,\n TooltipContentProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createKeyborg } from 'keyborg';\nimport React, { createContext, type PropsWithChildren, useEffect } from 'react';\n\nimport { type Density, type Elevation, type ThemeFunction } from '@dxos/react-ui-types';\n\nimport { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';\nimport { hasIosKeyboard } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\nexport type ThemeMode = 'light' | 'dark';\n\nexport interface ThemeContextValue {\n tx: ThemeFunction<any>;\n themeMode: ThemeMode;\n hasIosKeyboard: boolean;\n}\n\nexport type ThemeProviderProps = Omit<TranslationsProviderProps, 'children'> &\n Partial<ThemeContextValue> &\n PropsWithChildren<{\n rootElevation?: Elevation;\n rootDensity?: Density;\n }>;\n\nexport const ThemeContext = createContext<ThemeContextValue>({\n tx: (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode: 'dark',\n hasIosKeyboard: false,\n});\n\nconst handleInputModalityChange = (isUsingKeyboard: boolean) => {\n if (isUsingKeyboard) {\n document.body.setAttribute('data-is-keyboard', 'true');\n } else {\n document.body.removeAttribute('data-is-keyboard');\n }\n};\n\nexport const ThemeProvider = ({\n children,\n fallback = null,\n resourceExtensions,\n appNs,\n tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode = 'dark',\n rootElevation = 'base',\n rootDensity = 'coarse',\n}: ThemeProviderProps) => {\n useEffect(() => {\n if (document.defaultView) {\n const kb = createKeyborg(document.defaultView);\n kb.subscribe(handleInputModalityChange);\n return () => kb.unsubscribe(handleInputModalityChange);\n }\n }, []);\n\n return (\n <ThemeContext.Provider value={{ tx, themeMode, hasIosKeyboard: hasIosKeyboard() }}>\n <TranslationsProvider\n {...{\n fallback,\n resourceExtensions,\n appNs,\n }}\n >\n <ElevationProvider elevation={rootElevation}>\n <DensityProvider density={rootDensity}>{children}</DensityProvider>\n </ElevationProvider>\n </TranslationsProvider>\n </ThemeContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport type { TFunction } from 'i18next';\nexport { Trans } from 'react-i18next';\nexport * from '@dxos/react-ui-types';\nexport * from '@dxos/react-hooks';\n\nexport * from './components';\nexport * from './hooks';\nexport * from './util';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AnchoredOverflowRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst AnchoredOverflowRoot = forwardRef<HTMLDivElement, AnchoredOverflowRootProps>(\n ({ asChild, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('anchoredOverflow.root', 'overflow-anchored', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\ntype AnchoredOverflowAnchorProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst AnchoredOverflowAnchor = forwardRef<HTMLDivElement, AnchoredOverflowAnchorProps>(\n ({ asChild, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('anchoredOverflow.anchor', 'overflow-anchor', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nexport const AnchoredOverflow = {\n Root: AnchoredOverflowRoot,\n Anchor: AnchoredOverflowAnchor,\n};\n\nexport type { AnchoredOverflowRootProps, AnchoredOverflowAnchorProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { DensityContext } from '../components';\n\nexport const useDensityContext = (propsDensity?: Density) => {\n const { density } = useContext(DensityContext);\n return propsDensity ?? density;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nimport { ElevationContext } from '../components';\n\nexport const useElevationContext = (propsElevation?: Elevation) => {\n const { elevation } = useContext(ElevationContext);\n return propsElevation ?? elevation;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { TranslationsContext } from '../components/ThemeProvider/TranslationsProvider';\n\nexport const useTranslationsContext = () => useContext(TranslationsContext);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { enUS as dtLocaleEnUs, type Locale } from 'date-fns/locale';\nimport i18Next, { type TFunction, type Resource } from 'i18next';\nimport React, { type ReactNode, useEffect, createContext, useState, Suspense, useContext } from 'react';\nimport { initReactI18next, useTranslation as useI18NextTranslation } from 'react-i18next';\n\nconst initialLng = 'en-US';\nconst initialNs = 'dxos-common';\nconst initialDtLocale = dtLocaleEnUs;\n\n// TODO(thure): `Parameters<TFunction>` causes typechecking issues because `TFunction` has so many signatures.\nexport type Label = string | [string, { ns: string; count?: number }];\n\nexport const isLabel = (o: any): o is Label =>\n typeof o === 'string' ||\n (Array.isArray(o) &&\n o.length === 2 &&\n typeof o[0] === 'string' &&\n !!o[1] &&\n typeof o[1] === 'object' &&\n 'ns' in o[1] &&\n typeof o[1].ns === 'string');\n\nexport const toLocalizedString = (label: Label, t: TFunction) => (Array.isArray(label) ? t(...label) : label);\n\nexport const resources = {\n [initialLng]: {\n [initialNs]: {\n 'loading translations': 'Loading translations…',\n },\n },\n} as const;\n\nvoid i18Next.use(initReactI18next).init({\n resources,\n lng: initialLng,\n defaultNS: initialNs,\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport interface TranslationsProviderProps {\n children?: ReactNode;\n // TODO(wittjosiah): Rename to `placeholder` to match ClientProvider?\n // Placeholder => loading, fallback => error.\n fallback?: ReactNode;\n resourceExtensions?: Resource[];\n appNs?: string;\n dtLocale?: Locale;\n}\n\nexport const TranslationsContext = createContext({\n appNs: initialNs,\n dtLocale: initialDtLocale,\n});\n\nexport const useTranslation = (...args: Parameters<typeof useI18NextTranslation>) => {\n const result = useI18NextTranslation(...args);\n const { dtLocale } = useContext(TranslationsContext);\n return { ...result, dtLocale };\n};\n\nexport const TranslationsProvider = ({\n fallback,\n resourceExtensions,\n children,\n appNs,\n dtLocale,\n}: TranslationsProviderProps) => {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(false);\n if (resourceExtensions && resourceExtensions.length) {\n resourceExtensions.forEach((resource) => {\n Object.keys(resource).forEach((language) => {\n Object.keys(resource[language]).forEach((ns) => {\n i18Next.addResourceBundle(language, ns, resource[language][ns]);\n });\n });\n });\n }\n\n setLoaded(true);\n }, [resourceExtensions]);\n\n // TODO(thure): This is not ideal, but i18next was causing `Suspense` to not render the fallback even when the child was asking for namespaces yet to be added.\n // TODO(burdon): Fallbacks should only appear after a short delay, and if the displayed then be visible for 500mx to avoid startup flickering.\n return (\n <TranslationsContext.Provider value={{ appNs: appNs ?? initialNs, dtLocale: dtLocale ?? initialDtLocale }}>\n <Suspense fallback={fallback}>{loaded ? children : fallback}</Suspense>\n </TranslationsContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { ThemeContext } from '../components';\n\nexport const useThemeContext = () => useContext(ThemeContext);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nexport const useVisualViewport = (deps?: Parameters<typeof useEffect>[1]) => {\n const [width, setWidth] = useState<number | null>(null);\n const [height, setHeight] = useState<number | null>(null);\n\n useEffect(() => {\n const handleResize = () => {\n if (window.visualViewport) {\n setWidth(window.visualViewport.width);\n setHeight(window.visualViewport.height);\n }\n };\n window.visualViewport?.addEventListener('resize', handleResize);\n handleResize();\n return () => window.visualViewport?.removeEventListener('resize', handleResize);\n }, deps ?? []);\n\n return { width, height };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as AvatarRootPrimitive,\n type AvatarProps as AvatarRootPrimitiveProps,\n type ImageLoadingStatus,\n Fallback as AvatarFallbackPrimitive,\n} from '@radix-ui/react-avatar';\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef, type PropsWithChildren } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type Size } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarVariant = 'square' | 'circle';\ntype AvatarStatus = 'active' | 'inactive' | 'current' | 'error' | 'warning' | 'internal';\ntype AvatarAnimation = 'pulse' | 'none';\n\nexport type AvatarRootProps = PropsWithChildren<Partial<AvatarContextValue>>;\n\ntype AvatarContextValue = {\n labelId: string;\n descriptionId: string;\n maskId: string;\n size: Size;\n variant: AvatarVariant;\n status?: AvatarStatus;\n animation?: AvatarAnimation;\n inGroup?: boolean;\n hue?: string;\n};\n\nconst AVATAR_NAME = 'Avatar';\nconst [AvatarProvider, useAvatarContext] = createContext<AvatarContextValue>(AVATAR_NAME);\n\nconst AvatarRoot = ({\n size = 10,\n variant = 'circle',\n status,\n animation,\n children,\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n maskId: propsMaskId,\n inGroup,\n hue,\n}: AvatarRootProps) => {\n const labelId = useId('avatar__label', propsLabelId);\n const descriptionId = useId('avatar__description', propsDescriptionId);\n const maskId = useId('avatar__mask', propsMaskId);\n return (\n <AvatarProvider {...{ labelId, descriptionId, maskId, size, variant, status, animation, inGroup, hue }}>\n {children}\n </AvatarProvider>\n );\n};\n\ntype AvatarFrameProps = ThemedClassName<AvatarRootPrimitiveProps>;\n\nconst rx = '0.25rem';\n\nconst AvatarFrame = forwardRef<HTMLSpanElement, AvatarFrameProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { size, variant, labelId, descriptionId, maskId, inGroup, status, animation, hue } =\n useAvatarContext('AvatarFrame');\n\n const { tx } = useThemeContext();\n const numericSize = size === 'px' ? 1 : Number(size);\n const sizePx = numericSize * 4;\n const ringWidth = status ? (numericSize > 4 ? 2 : numericSize > 3 ? 1 : 1) : 0;\n const ringGap = status ? (numericSize > 12 ? 3 : numericSize > 4 ? 2 : numericSize > 3 ? 1 : 0) : 0;\n const r = sizePx / 2 - ringGap - ringWidth;\n return (\n <AvatarRootPrimitive\n role='img'\n {...props}\n className={tx('avatar.root', 'avatar', { size, variant, inGroup }, classNames)}\n ref={forwardedRef}\n {...(!inGroup && {\n 'aria-labelledby': labelId,\n 'aria-describedby': descriptionId,\n })}\n >\n <svg\n viewBox={`0 0 ${sizePx} ${sizePx}`}\n width={sizePx}\n height={sizePx}\n className={tx('avatar.frame', 'avatar__frame', { variant })}\n >\n <defs>\n <mask id={maskId}>\n {variant === 'circle' ? (\n <circle fill='white' cx='50%' cy='50%' r={r} />\n ) : (\n <rect\n fill='white'\n width={2 * r}\n height={2 * r}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n rx={rx}\n />\n )}\n </mask>\n </defs>\n {variant === 'circle' ? (\n <circle\n className={hue ? tx('hue.fill', 'avatar__frame__circle', { hue }) : 'fill-[var(--surface-bg)]'}\n cx='50%'\n cy='50%'\n r={r}\n />\n ) : (\n <rect\n className={hue ? tx('hue.fill', 'avatar__frame__rect', { hue }) : 'fill-[var(--surface-bg)]'}\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n width={2 * r}\n height={2 * r}\n rx={rx}\n />\n )}\n {children}\n {/* {variant === 'circle' ? (\n <circle\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-text)]'\n strokeWidth={strokeWidth}\n fill='none'\n opacity={0.1}\n cx={'50%'}\n cy={'50%'}\n r={r - 0.5 * strokeWidth}\n />\n ) : (\n <rect\n className='avatarFrameStroke fill-transparent stroke-[var(--surface-text)]'\n strokeWidth={strokeWidth}\n opacity={0.1}\n fill='none'\n x={ringGap + ringWidth}\n y={ringGap + ringWidth}\n width={2 * r}\n height={2 * r}\n rx={rx}\n />\n )} */}\n </svg>\n <span\n role='none'\n className={tx('avatar.ring', 'avatar__ring', { size, variant, status, animation })}\n style={{ borderWidth: ringWidth + 'px' }}\n />\n </AvatarRootPrimitive>\n );\n },\n);\n\ntype AvatarLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarLabel = forwardRef<HTMLSpanElement, AvatarLabelProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { labelId } = useAvatarContext('AvatarLabel');\n return (\n <Root\n {...props}\n id={labelId}\n ref={forwardedRef}\n className={tx('avatar.label', 'avatar__label', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.span>, 'id'>> & {\n asChild?: boolean;\n srOnly?: boolean;\n};\n\nconst AvatarDescription = forwardRef<HTMLSpanElement, AvatarDescriptionProps>(\n ({ asChild, srOnly, classNames, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Primitive.span;\n const { tx } = useThemeContext();\n const { descriptionId } = useAvatarContext('AvatarDescription');\n return (\n <Root\n {...props}\n id={descriptionId}\n ref={forwardedRef}\n className={tx('avatar.description', 'avatar__description', { srOnly }, classNames)}\n />\n );\n },\n);\n\ntype AvatarMaskedImageProps = ComponentPropsWithRef<'image'>;\n\nconst AvatarMaskedImage = forwardRef<SVGImageElement, AvatarMaskedImageProps>((props, forwardedRef) => {\n const { maskId } = useAvatarContext('AvatarFallback');\n return (\n <image\n width='100%'\n height='100%'\n {...props}\n mask={`url(#${maskId})`}\n ref={forwardedRef}\n preserveAspectRatio='xMidYMid slice'\n />\n );\n});\n\ntype AvatarMaskedTextProps = PropsWithChildren<{ large?: boolean }>;\n\nconst AvatarMaskedText = (props: AvatarMaskedTextProps) => {\n const { maskId, size } = useAvatarContext('AvatarFallback');\n const { large } = props;\n const fontScale = (large ? 4 : 3) * (1 / 1.612);\n const { tx } = useThemeContext();\n return (\n <text\n x='50%'\n y='50%'\n className={tx('avatar.fallbackText', 'avatar__fallback-text')}\n textAnchor='middle'\n alignmentBaseline='central'\n fontSize={size === 'px' ? '200%' : size * fontScale}\n mask={`url(#${maskId})`}\n >\n {props.children}\n </text>\n );\n};\n\ntype AvatarImageProps = ComponentPropsWithRef<'image'> & {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n};\n\nconst AvatarImage = forwardRef<SVGImageElement, AvatarImageProps>(\n ({ onLoadingStatusChange, ...props }, forwardedRef) => {\n const { size } = useAvatarContext('AvatarImage');\n const pxSize = size === 'px' ? 1 : size * 4;\n if (pxSize <= 20) {\n return null;\n }\n return (\n <AvatarFallbackPrimitive asChild>\n <AvatarMaskedImage {...props} ref={forwardedRef} />\n </AvatarFallbackPrimitive>\n );\n },\n);\n\ntype AvatarFallbackProps = ComponentPropsWithRef<'image'> & {\n delayMs?: number;\n text?: string;\n};\n\nconst AvatarFallback = forwardRef<SVGImageElement, AvatarFallbackProps>(({ delayMs, text, ...props }, forwardedRef) => {\n const isTextOnly = Boolean(text && /[0-9a-zA-Z]+/.test(text));\n const { size } = useAvatarContext('AvatarFallback');\n const numericSize = size === 'px' ? 1 : Number(size);\n return (\n <AvatarFallbackPrimitive delayMs={delayMs} asChild>\n <>\n {numericSize >= 6 && <AvatarMaskedImage {...props} ref={forwardedRef} />}\n {text && <AvatarMaskedText large={!isTextOnly}>{text.toLocaleUpperCase()}</AvatarMaskedText>}\n </>\n </AvatarFallbackPrimitive>\n );\n});\n\nexport const Avatar = {\n Root: AvatarRoot,\n Frame: AvatarFrame,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Label: AvatarLabel,\n Description: AvatarDescription,\n};\n\nexport { useAvatarContext };\n\nexport type {\n AvatarStatus,\n AvatarVariant,\n AvatarAnimation,\n AvatarFrameProps,\n AvatarImageProps,\n AvatarFallbackProps,\n AvatarLabelProps,\n AvatarDescriptionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { Avatar, type AvatarRootProps, useAvatarContext } from './Avatar';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype AvatarGroupRootProps = Omit<AvatarRootProps, 'status' | 'maskId' | 'inGroup'> &\n ThemedClassName<ComponentPropsWithRef<'div'>>;\n\nconst AvatarGroupRoot = forwardRef<HTMLDivElement, AvatarGroupRootProps>(\n (\n {\n labelId: propsLabelId,\n descriptionId: propsDescriptionId,\n size,\n variant,\n children,\n classNames,\n }: AvatarGroupRootProps,\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const labelId = useId('avatar-group__label', propsLabelId);\n const descriptionId = useId('avatar-group__description', propsDescriptionId);\n return (\n <Avatar.Root {...{ labelId, descriptionId, size, variant, inGroup: true }}>\n <div\n role='group'\n className={tx('avatar.group', 'avatar-group', {}, classNames)}\n aria-labelledby={labelId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </div>\n </Avatar.Root>\n );\n },\n);\n\ntype AvatarGroupItemRootProps = Omit<AvatarRootProps, 'labelId' | 'descriptionId' | 'inGroup'>;\n\nconst AvatarGroupItemRoot = ({ maskId, size, variant, status, children, ...rest }: AvatarGroupItemRootProps) => {\n const {\n labelId,\n descriptionId,\n size: contextSize,\n variant: contextVariant,\n } = useAvatarContext('AvatarGroupItemRoot');\n return (\n <Avatar.Root\n {...{\n labelId,\n descriptionId,\n maskId,\n status,\n size: size ?? contextSize,\n variant: variant ?? contextVariant,\n inGroup: true,\n ...rest,\n }}\n >\n {children}\n </Avatar.Root>\n );\n};\n\ntype AvatarGroupLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupLabel = forwardRef<HTMLSpanElement, AvatarGroupLabelProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { labelId, size } = useAvatarContext('AvatarGroupLabel');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={labelId}\n className={tx('avatar.groupLabel', 'avatar-group__label', { srOnly, size }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\ntype AvatarGroupDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };\n\nconst AvatarGroupDescription = forwardRef<HTMLSpanElement, AvatarGroupDescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { descriptionId } = useAvatarContext('AvatarGroupDescription');\n const { tx } = useThemeContext();\n return (\n <span\n {...props}\n id={descriptionId}\n className={tx('avatar.groupDescription', 'avatar-group__description', { srOnly }, classNames)}\n >\n {children}\n </span>\n );\n },\n);\n\nexport const AvatarGroup = { Root: AvatarGroupRoot, Label: AvatarGroupLabel, Description: AvatarGroupDescription };\nexport const AvatarGroupItem = { Root: AvatarGroupItemRoot };\nexport type { AvatarGroupRootProps, AvatarGroupItemRootProps, AvatarGroupLabelProps, AvatarGroupDescriptionProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Dot } from '@phosphor-icons/react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Link, type LinkProps } from '../Link';\n\ntype BreadcrumbRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n 'aria-label': string;\n asChild?: boolean;\n};\n\nconst BreadcrumbRoot = forwardRef<HTMLDivElement, BreadcrumbRootProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='navigation'\n {...props}\n className={tx('breadcrumb.root', 'breadcrumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbListProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.ol>> & { asChild?: boolean };\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.ol;\n return (\n <Root\n role='list'\n {...props}\n className={tx('breadcrumb.list', 'breadcrumb__list', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbListItemProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.li>> & { asChild?: boolean };\n\nconst BreadcrumbListItem = forwardRef<HTMLLIElement, BreadcrumbListItemProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.li;\n return (\n <Root\n role='listitem'\n {...props}\n className={tx('breadcrumb.listItem', 'breadcrumb__list__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbLinkProps = LinkProps;\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(({ asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : Link;\n return <Root {...props} ref={forwardedRef} />;\n});\n\ntype BreadcrumbCurrentProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & { asChild?: boolean };\n\nconst BreadcrumbCurrent = forwardRef<HTMLHeadingElement, BreadcrumbCurrentProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'h1';\n return (\n <Root\n {...props}\n aria-current='page'\n className={tx('breadcrumb.current', 'breadcrumb__item__heading--current', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype BreadcrumbSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof Primitive.span>>;\n\nconst BreadcrumbSeparator = ({ children, classNames, ...props }: BreadcrumbSeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <Primitive.span\n role='separator'\n aria-hidden='true'\n {...props}\n className={tx('breadcrumb.separator', 'breadcrumb__separator', {}, classNames)}\n >\n {children ?? <Dot weight='bold' />}\n </Primitive.span>\n );\n};\n\nexport const Breadcrumb = {\n Root: BreadcrumbRoot,\n List: BreadcrumbList,\n ListItem: BreadcrumbListItem,\n Link: BreadcrumbLink,\n Current: BreadcrumbCurrent,\n Separator: BreadcrumbSeparator,\n};\n\nexport type {\n BreadcrumbRootProps,\n BreadcrumbListProps,\n BreadcrumbListItemProps,\n BreadcrumbLinkProps,\n BreadcrumbCurrentProps,\n BreadcrumbSeparatorProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type LinkProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.a>> &\n Partial<{\n asChild: boolean;\n variant: 'accent' | 'neutral';\n }>;\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n ({ asChild, variant, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.a;\n return <Root {...props} className={tx('link.root', 'link', { variant }, classNames)} ref={forwardedRef} />;\n },\n);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type Density, type Elevation } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ninterface ButtonProps extends ThemedClassName<ComponentPropsWithRef<typeof Primitive.button>> {\n variant?: 'default' | 'primary' | 'outline' | 'ghost' | 'destructive';\n density?: Density;\n elevation?: Elevation;\n asChild?: boolean;\n}\n\ntype ButtonGroupContextValue = { inGroup?: boolean };\n\nconst BUTTON_GROUP_NAME = 'ButtonGroup';\nconst BUTTON_NAME = 'Button';\nconst [ButtonGroupProvider, useButtonGroupContext] = createContext<ButtonGroupContextValue>(BUTTON_GROUP_NAME, {\n inGroup: false,\n});\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { classNames, children, density: propsDensity, elevation: propsElevation, variant = 'default', asChild, ...props },\n ref,\n ) => {\n const { inGroup } = useButtonGroupContext(BUTTON_NAME);\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const density = useDensityContext(propsDensity);\n const Root = asChild ? Slot : Primitive.button;\n return (\n <Root\n ref={ref}\n {...props}\n data-variant={variant}\n data-density={density}\n data-props={inGroup ? 'grouped' : ''}\n className={tx(\n 'button.root',\n 'button',\n {\n variant,\n inGroup,\n disabled: props.disabled,\n density,\n elevation,\n },\n classNames,\n )}\n {...(props.disabled && { disabled: true })}\n >\n {children}\n </Root>\n );\n },\n);\n\nButton.displayName = BUTTON_NAME;\n\ntype ButtonGroupProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n elevation?: Elevation;\n asChild?: boolean;\n};\n\nconst ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n role='none'\n {...props}\n className={tx('button.group', 'button-group', { elevation }, classNames)}\n ref={forwardedRef}\n >\n <ButtonGroupProvider inGroup>{children}</ButtonGroupProvider>\n </Root>\n );\n },\n);\n\nButtonGroup.displayName = BUTTON_GROUP_NAME;\n\nexport { Button, ButtonGroup, BUTTON_GROUP_NAME, useButtonGroupContext };\n\nexport type { ButtonProps, ButtonGroupProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Toggle as TogglePrimitive, type ToggleProps as TogglePrimitiveProps } from '@radix-ui/react-toggle';\nimport React, { forwardRef } from 'react';\n\nimport { Button, type ButtonProps } from './Button';\n\ntype ToggleProps = Omit<TogglePrimitiveProps, 'asChild'> & ButtonProps;\n\nconst Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {\n return (\n <TogglePrimitive {...{ defaultPressed, pressed, onPressedChange }} asChild>\n <Button {...props} ref={forwardedRef} />\n </TogglePrimitive>\n );\n },\n);\n\nexport { Toggle };\nexport type { ToggleProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n ToggleGroup as ToggleGroupPrimitive,\n type ToggleGroupSingleProps,\n type ToggleGroupMultipleProps,\n type ToggleGroupItemProps as ToggleGroupItemPrimitiveProps,\n ToggleGroupItem as ToggleGroupItemPrimitive,\n} from '@radix-ui/react-toggle-group';\nimport React, { forwardRef } from 'react';\n\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps } from './Button';\n\ntype ToggleGroupProps = Omit<ToggleGroupSingleProps, 'className'> | Omit<ToggleGroupMultipleProps, 'className'>;\n\nconst ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps & ButtonGroupProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupPrimitive {...props} asChild>\n <ButtonGroup {...{ classNames, children }} ref={forwardedRef} />\n </ToggleGroupPrimitive>\n );\n },\n);\n\ntype ToggleGroupItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & ButtonProps;\n\nconst ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(\n ({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToggleGroupItemPrimitive {...props} asChild>\n <Button {...{ variant, elevation, density, classNames, children }} ref={forwardedRef} />\n </ToggleGroupItemPrimitive>\n );\n },\n);\n\nexport { ToggleGroup, ToggleGroupItem };\nexport type { ToggleGroupProps, ToggleGroupItemProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n type DialogProps as DialogRootPrimitiveProps,\n Root as DialogRootPrimitive,\n DialogTrigger as DialogTriggerPrimitive,\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\n DialogPortal as DialogPortalPrimitive,\n type DialogPortalProps as DialogPortalPrimitiveProps,\n DialogOverlay as DialogOverlayPrimitive,\n type DialogOverlayProps as DialogOverlayPrimitiveProps,\n DialogTitle as DialogTitlePrimitive,\n type DialogTitleProps as DialogTitlePrimitiveProps,\n DialogDescription as DialogDescriptionPrimitive,\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\n DialogClose as DialogClosePrimitive,\n type DialogCloseProps as DialogClosePrimitiveProps,\n DialogContent as DialogContentPrimitive,\n type DialogContentProps as DialogContentPrimitiveProps,\n} from '@radix-ui/react-dialog';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DialogRootProps = DialogRootPrimitiveProps;\n\nconst DialogRoot: FunctionComponent<DialogRootProps> = DialogRootPrimitive;\n\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\n\nconst DialogTrigger: FunctionComponent<DialogTriggerProps> = DialogTriggerPrimitive;\n\ntype DialogPortalProps = DialogPortalPrimitiveProps;\n\nconst DialogPortal: FunctionComponent<DialogPortalProps> = DialogPortalPrimitive;\n\ntype DialogTitleProps = ThemedClassName<DialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst DialogTitle: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DialogDescriptionProps = ThemedClassName<DialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst DialogDescription: ForwardRefExoticComponent<DialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n DialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype DialogCloseProps = DialogClosePrimitiveProps;\n\nconst DialogClose: FunctionComponent<DialogCloseProps> = DialogClosePrimitive;\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst DIALOG_OVERLAY_NAME = 'DialogOverlay';\nconst DIALOG_CONTENT_NAME = 'DialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(DIALOG_OVERLAY_NAME, {\n inOverlayLayout: false,\n});\n\ntype DialogOverlayProps = ThemedClassName<DialogOverlayPrimitiveProps> & { blockAlign?: 'center' | 'start' };\n\nconst DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<HTMLDivElement, DialogOverlayProps>(\n ({ classNames, children, blockAlign, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <DialogOverlayPrimitive\n {...props}\n className={tx(\n 'dialog.overlay',\n 'dialog__overlay',\n {},\n classNames,\n 'data-[block-align=start]:justify-center',\n 'data-[block-align=start]:items-start',\n 'data-[block-align=center]:place-content-center',\n )}\n ref={forwardedRef}\n data-block-align={blockAlign}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </DialogOverlayPrimitive>\n );\n },\n);\n\nDialogOverlay.displayName = DIALOG_OVERLAY_NAME;\n\ntype DialogContentProps = ThemedClassName<DialogContentPrimitiveProps>;\n\nconst DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<HTMLDivElement, DialogContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);\n\n return (\n <DialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DialogContentPrimitive>\n );\n },\n);\n\nDialogContent.displayName = DIALOG_CONTENT_NAME;\n\nexport const Dialog = {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n\nexport type {\n DialogRootProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Elevation } from '@dxos/react-ui-types';\n\nexport interface ElevationContextValue {\n elevation?: Elevation;\n}\n\nexport type ElevationProviderProps = PropsWithChildren<{\n elevation?: Elevation;\n}>;\n\nexport const ElevationContext = createContext<ElevationContextValue>({ elevation: 'base' });\n\nexport const ElevationProvider = ({ elevation, children }: ElevationProviderProps) => (\n <ElevationContext.Provider value={{ elevation }}>{children}</ElevationContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type AlertDialogProps as AlertDialogRootPrimitiveProps,\n Root as AlertDialogRootPrimitive,\n AlertDialogTrigger as AlertDialogTriggerPrimitive,\n type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,\n AlertDialogPortal as AlertDialogPortalPrimitive,\n type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,\n AlertDialogOverlay as AlertDialogOverlayPrimitive,\n type AlertDialogOverlayProps as AlertDialogOverlayPrimitiveProps,\n AlertDialogTitle as AlertDialogTitlePrimitive,\n type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,\n AlertDialogDescription as AlertDialogDescriptionPrimitive,\n type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,\n AlertDialogAction as AlertDialogActionPrimitive,\n type AlertDialogActionProps as AlertDialogActionPrimitiveProps,\n AlertDialogCancel as AlertDialogCancelPrimitive,\n type AlertDialogCancelProps as AlertDialogCancelPrimitiveProps,\n AlertDialogContent as AlertDialogContentPrimitive,\n type AlertDialogContentProps as AlertDialogContentPrimitiveProps,\n} from '@radix-ui/react-alert-dialog';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { forwardRef, type ForwardRefExoticComponent, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype AlertDialogRootProps = AlertDialogRootPrimitiveProps;\n\nconst AlertDialogRoot: FunctionComponent<AlertDialogRootProps> = AlertDialogRootPrimitive;\n\ntype AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;\n\nconst AlertDialogTrigger: FunctionComponent<AlertDialogTriggerProps> = AlertDialogTriggerPrimitive;\n\ntype AlertDialogPortalProps = AlertDialogPortalPrimitiveProps;\n\nconst AlertDialogPortal: FunctionComponent<AlertDialogPortalProps> = AlertDialogPortalPrimitive;\n\ntype AlertDialogCancelProps = AlertDialogCancelPrimitiveProps;\n\nconst AlertDialogCancel: FunctionComponent<AlertDialogCancelProps> = AlertDialogCancelPrimitive;\n\ntype AlertDialogActionProps = AlertDialogActionPrimitiveProps;\n\nconst AlertDialogAction: FunctionComponent<AlertDialogActionProps> = AlertDialogActionPrimitive;\n\ntype AlertDialogTitleProps = ThemedClassName<AlertDialogTitlePrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogTitle: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLHeadingElement,\n AlertDialogTitleProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogTitlePrimitive\n {...props}\n className={tx('dialog.title', 'dialog--alert__title', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype AlertDialogDescriptionProps = ThemedClassName<AlertDialogDescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst AlertDialogDescription: ForwardRefExoticComponent<AlertDialogTitleProps> = forwardRef<\n HTMLParagraphElement,\n AlertDialogDescriptionProps\n>(({ classNames, srOnly, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogDescriptionPrimitive\n {...props}\n className={tx('dialog.description', 'dialog--alert__description', { srOnly }, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype OverlayLayoutContextValue = { inOverlayLayout?: boolean };\nconst ALERT_DIALOG_OVERLAY_NAME = 'AlertDialogOverlay';\nconst ALERT_DIALOG_CONTENT_NAME = 'AlertDialogContent';\nconst [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLayoutContextValue>(\n ALERT_DIALOG_OVERLAY_NAME,\n {\n inOverlayLayout: false,\n },\n);\n\ntype AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps>;\n\nconst AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<\n HTMLDivElement,\n AlertDialogOverlayProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <AlertDialogOverlayPrimitive\n {...props}\n className={tx('dialog.overlay', 'dialog--alert__overlay', {}, classNames)}\n ref={forwardedRef}\n >\n <OverlayLayoutProvider inOverlayLayout>{children}</OverlayLayoutProvider>\n </AlertDialogOverlayPrimitive>\n );\n});\n\nAlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;\n\ntype AlertDialogContentProps = ThemedClassName<AlertDialogContentPrimitiveProps>;\n\nconst AlertDialogContent: ForwardRefExoticComponent<AlertDialogContentProps> = forwardRef<\n HTMLDivElement,\n AlertDialogContentProps\n>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { inOverlayLayout } = useOverlayLayoutContext(ALERT_DIALOG_CONTENT_NAME);\n return (\n <AlertDialogContentPrimitive\n {...props}\n className={tx('dialog.content', 'dialog--alert', { inOverlayLayout }, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </AlertDialogContentPrimitive>\n );\n});\n\nAlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;\n\nexport const AlertDialog = {\n Root: AlertDialogRoot,\n Trigger: AlertDialogTrigger,\n Portal: AlertDialogPortal,\n Overlay: AlertDialogOverlay,\n Content: AlertDialogContent,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Cancel: AlertDialogCancel,\n Action: AlertDialogAction,\n};\n\nexport type {\n AlertDialogRootProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n AlertDialogCancelProps,\n AlertDialogActionProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype ContextMenuRootProps = ContextMenuPrimitive.ContextMenuProps;\n\nconst ContextMenuRoot = ContextMenuPrimitive.ContextMenu;\n\ntype ContextMenuTriggerProps = ContextMenuPrimitive.ContextMenuTriggerProps;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\ntype ContextMenuPortalProps = ContextMenuPrimitive.ContextMenuPortalProps;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\ntype ContextMenuContentProps = ThemedClassName<ContextMenuPrimitive.ContextMenuContentProps> & {\n constrainBlockSize?: boolean;\n};\n\nconst ContextMenuContent = forwardRef<HTMLDivElement, ContextMenuContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Content\n collisionPadding={8}\n {...props}\n className={tx('menu.content', 'menu', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </ContextMenuPrimitive.Content>\n );\n },\n);\n\ntype ContextMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst ContextMenuViewport = forwardRef<HTMLDivElement, ContextMenuViewportProps>(\n ({ classNames, asChild, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ContextMenuArrowProps = ThemedClassName<ContextMenuPrimitive.ContextMenuArrowProps>;\n\nconst ContextMenuArrow = forwardRef<SVGSVGElement, ContextMenuArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Arrow\n {...props}\n className={tx('menu.arrow', 'menu__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ContextMenuGroupProps = ContextMenuPrimitive.ContextMenuGroupProps;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\ntype ContextMenuItemIndicatorProps = ContextMenuPrimitive.ContextMenuItemIndicatorProps;\n\nconst ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;\n\ntype ContextMenuItemProps = ThemedClassName<ContextMenuPrimitive.ContextMenuItemProps>;\n\nconst ContextMenuItem = forwardRef<HTMLDivElement, ContextMenuItemProps>(\n ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Item\n {...props}\n className={tx('menu.item', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuCheckboxItemProps = ThemedClassName<ContextMenuPrimitive.ContextMenuCheckboxItemProps>;\n\nconst ContextMenuCheckboxItem = forwardRef<HTMLDivElement, ContextMenuCheckboxItemProps>(\n ({ classNames, ...props }: ContextMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.CheckboxItem\n {...props}\n className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuSeparatorProps = ThemedClassName<ContextMenuPrimitive.ContextMenuSeparatorProps>;\n\nconst ContextMenuSeparator = forwardRef<HTMLDivElement, ContextMenuSeparatorProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Separator\n {...props}\n className={tx('menu.separator', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ContextMenuGroupLabelProps = ThemedClassName<ContextMenuPrimitive.ContextMenuLabelProps>;\n\nconst ContextMenuGroupLabel = forwardRef<HTMLDivElement, ContextMenuGroupLabelProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ContextMenuPrimitive.Label\n {...props}\n className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport const ContextMenu = {\n Root: ContextMenuRoot,\n Trigger: ContextMenuTrigger,\n Portal: ContextMenuPortal,\n Content: ContextMenuContent,\n Viewport: ContextMenuViewport,\n Arrow: ContextMenuArrow,\n Group: ContextMenuGroup,\n Item: ContextMenuItem,\n CheckboxItem: ContextMenuCheckboxItem,\n ItemIndicator: ContextMenuItemIndicator,\n Separator: ContextMenuSeparator,\n GroupLabel: ContextMenuGroupLabel,\n};\n\nexport type {\n ContextMenuRootProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuViewportProps,\n ContextMenuArrowProps,\n ContextMenuGroupProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuGroupLabelProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport { type Scope, type ScopeHook } from '@radix-ui/react-context';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { type DropdownMenuContextValue } from '@radix-ui/react-dropdown-menu';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype DropdownMenuRootProps = DropdownMenuPrimitive.DropdownMenuProps;\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.DropdownMenu;\n\ntype DropdownMenuTriggerProps = DropdownMenuPrimitive.DropdownMenuTriggerProps;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\ntype DropdownMenuPortalProps = DropdownMenuPrimitive.DropdownMenuPortalProps;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\ntype DropdownMenuContentProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuContentProps> & {\n constrainBlockSize?: boolean;\n};\n\n// @ts-ignore\nconst useDropdownMenuContext: (\n consumerName: string,\n scope: Scope<DropdownMenuContextValue | undefined>,\n) => DropdownMenuContextValue = DropdownMenuPrimitive.useDropdownMenuContext;\n// @ts-ignore\nconst useDropdownMenuMenuScope: ScopeHook = DropdownMenuPrimitive.useDropdownMenuMenuScope;\n\nconst DropdownMenuContent = forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Content\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('menu.content', 'menu', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </DropdownMenuPrimitive.Content>\n );\n },\n);\n\ntype DropdownMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n};\n\nconst DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProps>(\n ({ classNames, asChild, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root {...props} className={tx('menu.viewport', 'menu__viewport', {}, classNames)} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype DropdownMenuArrowProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuArrowProps>;\n\nconst DropdownMenuArrow = forwardRef<SVGSVGElement, DropdownMenuArrowProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Arrow\n {...props}\n className={tx('menu.arrow', 'menu__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupProps = DropdownMenuPrimitive.DropdownMenuGroupProps;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\ntype DropdownMenuItemIndicatorProps = DropdownMenuPrimitive.DropdownMenuItemIndicatorProps;\n\nconst DropdownMenuItemIndicator = DropdownMenuPrimitive.ItemIndicator;\n\ntype DropdownMenuItemProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuItemProps>;\n\nconst DropdownMenuItem = forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ classNames, ...props }: DropdownMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Item\n {...props}\n className={tx('menu.item', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuCheckboxItemProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps>;\n\nconst DropdownMenuCheckboxItem = forwardRef<HTMLDivElement, DropdownMenuCheckboxItemProps>(\n ({ classNames, ...props }: DropdownMenuItemProps, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.CheckboxItem\n {...props}\n className={tx('menu.item', 'menu__item--checkbox', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuSeparatorProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuSeparatorProps>;\n\nconst DropdownMenuSeparator = forwardRef<HTMLDivElement, DropdownMenuSeparatorProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n className={tx('menu.separator', 'menu__item', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype DropdownMenuGroupLabelProps = ThemedClassName<DropdownMenuPrimitive.DropdownMenuLabelProps>;\n\nconst DropdownMenuGroupLabel = forwardRef<HTMLDivElement, DropdownMenuGroupLabelProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n className={tx('menu.groupLabel', 'menu__group__label', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport const DropdownMenu = {\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Portal: DropdownMenuPortal,\n Content: DropdownMenuContent,\n Viewport: DropdownMenuViewport,\n Arrow: DropdownMenuArrow,\n Group: DropdownMenuGroup,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n ItemIndicator: DropdownMenuItemIndicator,\n Separator: DropdownMenuSeparator,\n GroupLabel: DropdownMenuGroupLabel,\n};\n\nexport { useDropdownMenuContext, useDropdownMenuMenuScope };\n\nexport type {\n DropdownMenuRootProps,\n DropdownMenuTriggerProps,\n DropdownMenuPortalProps,\n DropdownMenuContentProps,\n DropdownMenuViewportProps,\n DropdownMenuArrowProps,\n DropdownMenuGroupProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuSeparatorProps,\n DropdownMenuGroupLabelProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Check, type IconWeight, Minus } from '@phosphor-icons/react';\nimport {\n Root as CheckboxPrimitive,\n type CheckboxProps as CheckboxPrimitiveProps,\n Indicator as CheckboxIndicatorPrimitive,\n} from '@radix-ui/react-checkbox';\nimport {\n Root as SwitchPrimitive,\n Thumb as SwitchThumbPrimitive,\n type SwitchProps as SwitchPrimitiveProps,\n} from '@radix-ui/react-switch';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { forwardRef, type ForwardRefExoticComponent, Fragment, useCallback } from 'react';\n\nimport {\n InputRoot,\n type InputRootProps,\n PinInput as PinInputPrimitive,\n type PinInputProps as PinInputPrimitiveProps,\n TextInput as TextInputPrimitive,\n type TextInputProps as TextInputPrimitiveProps,\n TextArea as TextAreaPrimitive,\n type TextAreaProps as TextAreaPrimitiveProps,\n useInputContext,\n INPUT_NAME,\n type InputScopedProps,\n Description as DescriptionPrimitive,\n DescriptionAndValidation as DescriptionAndValidationPrimitive,\n type DescriptionAndValidationProps as DescriptionAndValidationPrimitiveProps,\n type DescriptionProps as DescriptionPrimitiveProps,\n Label as LabelPrimitive,\n type LabelProps as LabelPrimitiveProps,\n Validation as ValidationPrimitive,\n type ValidationProps as ValidationPrimitiveProps,\n} from '@dxos/react-input';\nimport { type Density, type Elevation, type ClassNameValue, type Size } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype InputVariant = 'default' | 'subdued';\n\ntype InputSharedProps = Partial<{ density: Density; elevation: Elevation; variant: InputVariant }>;\n\ntype LabelProps = ThemedClassName<LabelPrimitiveProps> & { srOnly?: boolean };\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <LabelPrimitive {...props} className={tx('input.label', 'input__label', { srOnly }, classNames)} ref={forwardedRef}>\n {children}\n </LabelPrimitive>\n );\n});\n\ntype DescriptionProps = ThemedClassName<DescriptionPrimitiveProps> & { srOnly?: boolean };\n\nconst Description = forwardRef<HTMLSpanElement, DescriptionProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionPrimitive\n {...props}\n className={tx('input.description', 'input__description', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionPrimitive>\n );\n },\n);\n\ntype ValidationProps = ThemedClassName<ValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst Validation = forwardRef<HTMLSpanElement, InputScopedProps<ValidationProps>>(\n ({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n return (\n <ValidationPrimitive\n {...props}\n className={tx(\n 'input.validation',\n `input__validation-message input__validation-message--${validationValence}`,\n { srOnly, validationValence },\n classNames,\n )}\n ref={forwardedRef}\n >\n {children}\n </ValidationPrimitive>\n );\n },\n);\n\ntype DescriptionAndValidationProps = ThemedClassName<DescriptionAndValidationPrimitiveProps> & { srOnly?: boolean };\n\nconst DescriptionAndValidation = forwardRef<HTMLParagraphElement, DescriptionAndValidationProps>(\n ({ srOnly, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <DescriptionAndValidationPrimitive\n {...props}\n className={tx('input.descriptionAndValidation', 'input__description-and-validation', { srOnly }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </DescriptionAndValidationPrimitive>\n );\n },\n);\n\ntype PinInputProps = InputSharedProps &\n Omit<PinInputPrimitiveProps, 'segmentClassName' | 'inputClassName'> & {\n segmentClassName?: ClassNameValue;\n inputClassName?: ClassNameValue;\n };\n\nconst PinInput = forwardRef<HTMLInputElement, PinInputProps>(\n (\n {\n density: propsDensity,\n elevation: propsElevation,\n segmentClassName: propsSegmentClassName,\n inputClassName,\n variant,\n ...props\n },\n forwardedRef,\n ) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n\n const segmentClassName = useCallback(\n ({ focused, validationValence }: Parameters<Exclude<PinInputPrimitiveProps['segmentClassName'], undefined>>[0]) =>\n tx(\n 'input.input',\n 'input--pin-segment',\n {\n variant: 'static',\n focused,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n propsSegmentClassName,\n ),\n [tx, props.disabled, elevation, propsElevation, density],\n );\n return (\n <PinInputPrimitive\n {...{\n ...props,\n segmentClassName,\n ...(props.autoFocus && !hasIosKeyboard && { autoFocus: true }),\n }}\n inputClassName={tx('input.inputWithSegments', 'input input--pin', { disabled: props.disabled }, inputClassName)}\n ref={forwardedRef}\n />\n );\n },\n);\n\n// TODO(burdon): Implement inline icon within button: e.g., https://www.radix-ui.com/themes/playground#text-field\n\ntype TextInputProps = InputSharedProps & ThemedClassName<TextInputPrimitiveProps>;\n\nconst TextInput = forwardRef<HTMLInputElement, InputScopedProps<TextInputProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const themeContextValue = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n const { tx } = themeContextValue;\n\n return (\n <TextInputPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype TextAreaProps = InputSharedProps & ThemedClassName<TextAreaPrimitiveProps>;\n\nconst TextArea = forwardRef<HTMLTextAreaElement, InputScopedProps<TextAreaProps>>(\n ({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {\n const { hasIosKeyboard } = useThemeContext();\n const { tx } = useThemeContext();\n const density = useDensityContext(propsDensity);\n const elevation = useElevationContext(propsElevation);\n const { validationValence } = useInputContext(INPUT_NAME, __inputScope);\n\n return (\n <TextAreaPrimitive\n {...props}\n className={tx(\n 'input.input',\n 'input--text-area',\n {\n variant,\n disabled: props.disabled,\n density,\n elevation,\n validationValence,\n },\n classNames,\n )}\n {...(props.autoFocus && !hasIosKeyboard && { autoFocus: true })}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype CheckboxProps = ThemedClassName<Omit<CheckboxPrimitiveProps, 'children'>> & { size?: Size; weight?: IconWeight };\n\nconst Checkbox: ForwardRefExoticComponent<CheckboxProps> = forwardRef<\n HTMLButtonElement,\n InputScopedProps<CheckboxProps>\n>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size,\n weight = 'bold',\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n const { tx } = useThemeContext();\n const Icon = checked === 'indeterminate' ? Minus : checked ? Check : Fragment;\n return (\n <CheckboxPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n className: tx('input.checkbox', 'input--checkbox', { size }, 'shrink-0', classNames),\n }}\n ref={forwardedRef}\n >\n <CheckboxIndicatorPrimitive asChild>\n <Icon\n {...(checked && {\n weight,\n className: tx('input.checkboxIndicator', 'input--checkbox__indicator', { size }),\n })}\n />\n </CheckboxIndicatorPrimitive>\n </CheckboxPrimitive>\n );\n },\n);\n\ntype SwitchProps = ThemedClassName<Omit<SwitchPrimitiveProps, 'children'>> & { size?: Size };\n\nconst Switch: ForwardRefExoticComponent<SwitchProps> = forwardRef<HTMLButtonElement, InputScopedProps<SwitchProps>>(\n (\n {\n __inputScope,\n checked: propsChecked,\n defaultChecked: propsDefaultChecked,\n onCheckedChange: propsOnCheckedChange,\n size = 5,\n classNames,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n\n const [checked, onCheckedChange] = useControllableState({\n prop: propsChecked,\n defaultProp: propsDefaultChecked,\n onChange: propsOnCheckedChange,\n });\n\n const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);\n return (\n <SwitchPrimitive\n {...{\n ...props,\n checked,\n onCheckedChange,\n id,\n 'aria-describedby': descriptionId,\n ...(validationValence === 'error' && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId,\n }),\n className: tx('input.switch', 'input--switch', { size }, classNames),\n }}\n ref={forwardedRef}\n >\n {/* TODO(wittjosiah): Embed icons/text for on/off states.\n e.g., https://codepen.io/alvarotrigo/pen/oNoJePo (#13) */}\n <SwitchThumbPrimitive className={tx('input.switchThumb', 'input--switch__thumb', { size })} />\n </SwitchPrimitive>\n );\n },\n);\n\nexport const Input = {\n Root: InputRoot,\n PinInput,\n TextInput,\n TextArea,\n Checkbox,\n Switch,\n Label,\n Description,\n Validation,\n DescriptionAndValidation,\n};\n\nexport type {\n InputVariant,\n InputRootProps,\n PinInputProps,\n TextInputProps,\n TextAreaProps,\n CheckboxProps,\n SwitchProps,\n LabelProps,\n DescriptionProps,\n ValidationProps,\n DescriptionAndValidationProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretRight } from '@phosphor-icons/react';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List as ListPrimitive,\n type ListProps as ListPrimitiveProps,\n type ListScopedProps,\n ListItemHeading as ListPrimitiveItemHeading,\n type ListItemHeadingProps as ListPrimitiveItemHeadingProps,\n ListItemOpenTrigger as ListPrimitiveItemOpenTrigger,\n type ListItemOpenTriggerProps as ListPrimitiveItemOpenTriggerProps,\n ListItemCollapsibleContent,\n type ListItemCollapsibleContentProps,\n ListItem as ListPrimitiveItem,\n type ListItemProps as ListPrimitiveItemProps,\n type ListItemScopedProps,\n LIST_NAME,\n LIST_ITEM_NAME,\n useListContext,\n useListItemContext,\n} from '@dxos/react-list';\nimport { type Density } from '@dxos/react-ui-types';\n\nimport { useDensityContext, useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\n\ntype ListProps = ThemedClassName<ListPrimitiveProps> & { density?: Density };\n\nconst List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext(props.density);\n\n return (\n <DensityProvider density={density}>\n <ListPrimitive {...props} className={tx('list.root', 'list', {}, classNames)} ref={forwardedRef}>\n {children}\n </ListPrimitive>\n </DensityProvider>\n );\n});\n\ntype ListItemEndcapProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & { asChild?: boolean };\n\nconst ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(\n ({ children, classNames, asChild, ...props }, forwardedRef) => {\n const Root = asChild ? Slot : 'div';\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <Root\n {...(!asChild && { role: 'none' })}\n {...props}\n className={tx('list.item.endcap', 'list__listItem__endcap', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nconst MockListItemOpenTrigger = ({\n classNames,\n ...props\n}: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {\n const density = useDensityContext();\n const { tx } = useThemeContext();\n return (\n <div\n role='none'\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}\n />\n );\n};\n\ntype ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItemHeading\n {...props}\n className={tx('list.item.heading', 'list__listItem__heading', { density }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItemHeading>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ThemedClassName<ListPrimitiveItemOpenTriggerProps>;\n\nconst ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerProps>(\n ({ __listItemScope, classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Icon = open ? CaretDown : CaretRight;\n return (\n <ListPrimitiveItemOpenTrigger\n {...props}\n className={tx('list.item.openTrigger', 'list__listItem__openTrigger', { density }, classNames)}\n ref={forwardedRef}\n >\n {children || (\n <Icon\n {...{\n weight: 'bold',\n className: tx('list.item.openTriggerIcon', 'list__listItem__openTrigger__icon', {}),\n }}\n />\n )}\n </ListPrimitiveItemOpenTrigger>\n );\n },\n);\n\ntype ListItemRootProps = ThemedClassName<ListPrimitiveItemProps>;\n\nconst ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const density = useDensityContext();\n return (\n <ListPrimitiveItem\n {...props}\n className={tx('list.item.root', 'list__listItem', { density, collapsible: props.collapsible }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </ListPrimitiveItem>\n );\n },\n);\n\nexport const ListItem: {\n Root: ForwardRefExoticComponent<ListItemRootProps>;\n Endcap: ForwardRefExoticComponent<ListItemEndcapProps>;\n Heading: ForwardRefExoticComponent<ListItemHeadingProps>;\n OpenTrigger: ForwardRefExoticComponent<ListItemOpenTriggerProps>;\n CollapsibleContent: ForwardRefExoticComponent<ListItemCollapsibleContentProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: ListItemRoot,\n Endcap: ListItemEndcap,\n Heading: ListItemHeading,\n OpenTrigger: ListItemOpenTrigger,\n CollapsibleContent: ListItemCollapsibleContent,\n MockOpenTrigger: MockListItemOpenTrigger,\n};\n\nexport { List, useListContext, useListItemContext, LIST_NAME, LIST_ITEM_NAME };\n\nexport type {\n ListProps,\n ListScopedProps,\n ListItemRootProps,\n ListItemScopedProps,\n ListItemEndcapProps,\n ListItemHeadingProps,\n ListItemOpenTriggerProps,\n ListItemCollapsibleContentProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren } from 'react';\n\nimport { type Density } from '@dxos/react-ui-types';\n\nexport interface DensityContextValue {\n density?: Density;\n}\n\nexport type DensityProviderProps = PropsWithChildren<{\n density?: Density;\n}>;\n\nexport const DensityContext = createContext<DensityContextValue>({ density: 'coarse' });\n\nexport const DensityProvider = ({ density, children }: DensityProviderProps) => (\n <DensityContext.Provider value={{ density }}>{children}</DensityContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithoutRef, type FC, forwardRef, type ForwardRefExoticComponent } from 'react';\n\nimport {\n List,\n ListItem,\n type ListItemCollapsibleContentProps,\n type ListItemHeadingProps,\n type ListItemOpenTriggerProps,\n type ListItemRootProps,\n type ListProps,\n type ListScopedProps,\n LIST_ITEM_NAME,\n useListItemContext,\n} from './List';\nimport { type ThemedClassName } from '../../util';\n\ntype TreeRootProps = ListProps;\n\ntype TreeItemProps = ListItemRootProps;\n\nconst TreeRoot = forwardRef<HTMLOListElement, TreeRootProps>((props, forwardedRef) => {\n return <List {...props} ref={forwardedRef} />;\n});\n\ntype TreeBranchProps = TreeRootProps;\n\nconst TreeBranch = forwardRef<HTMLOListElement, ListScopedProps<TreeBranchProps>>(\n ({ __listScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listScope);\n return <List {...props} aria-labelledby={headingId} ref={forwardedRef} />;\n },\n);\n\nconst TreeItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>((props, forwardedRef) => {\n return <ListItem.Root role='treeitem' {...props} ref={forwardedRef} />;\n});\n\ntype TreeItemHeadingProps = ListItemHeadingProps;\n\nconst TreeItemHeading = ListItem.Heading;\n\ntype TreeItemOpenTriggerProps = ListItemOpenTriggerProps;\n\nconst TreeItemOpenTrigger = ListItem.OpenTrigger;\n\nconst MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;\n\ntype TreeItemBodyProps = ListItemCollapsibleContentProps;\n\nconst TreeItemBody: ForwardRefExoticComponent<TreeItemBodyProps> = ListItem.CollapsibleContent;\n\nexport const Tree = { Root: TreeRoot, Branch: TreeBranch };\nexport const TreeItem: {\n Root: ForwardRefExoticComponent<TreeItemProps>;\n Heading: ForwardRefExoticComponent<TreeItemHeadingProps>;\n Body: ForwardRefExoticComponent<TreeItemBodyProps>;\n OpenTrigger: ForwardRefExoticComponent<TreeItemOpenTriggerProps>;\n MockOpenTrigger: FC<ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>>;\n} = {\n Root: TreeItemRoot,\n Heading: TreeItemHeading,\n Body: TreeItemBody,\n OpenTrigger: TreeItemOpenTrigger,\n MockOpenTrigger: MockTreeItemOpenTrigger,\n};\n\nexport type { TreeRootProps, TreeItemProps, TreeItemHeadingProps, TreeItemBodyProps, TreeItemOpenTriggerProps };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { type ComponentPropsWithRef, type CSSProperties, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/treegrid_role\n\nconst TREEGRID_ROW_NAME = 'TreegridRow';\n\ntype TreegridRowScopedProps<P> = P & { __treegridRowScope?: Scope };\n\nconst [createTreegridRowContext, createTreegridRowScope] = createContextScope(TREEGRID_ROW_NAME, []);\n\ntype TreegridRowContextValue = {\n open?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n};\n\nconst [TreegridRowProvider, useTreegridRowContext] =\n createTreegridRowContext<TreegridRowContextValue>(TREEGRID_ROW_NAME);\n\nconst PATH_SEPARATOR = '~';\nconst PARENT_OF_SEPARATOR = ' ';\n\ntype TreegridRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n gridTemplateColumns: CSSProperties['gridTemplateColumns'];\n asChild?: boolean;\n};\n\nconst TreegridRoot = forwardRef<HTMLDivElement, TreegridRootProps>(\n ({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n const arrowNavigationAttrs = useArrowNavigationGroup({ axis: 'vertical' });\n return (\n <Root\n role='treegrid'\n {...arrowNavigationAttrs}\n {...props}\n className={tx('treegrid.root', 'treegrid', {}, classNames)}\n style={{ ...style, gridTemplateColumns }}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\ntype TreegridRowProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n id: string;\n asChild?: boolean;\n parentOf?: string;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n};\n\nconst TreegridRow = forwardRef<HTMLDivElement, TreegridRowScopedProps<TreegridRowProps>>(\n (\n {\n __treegridRowScope,\n asChild,\n classNames,\n children,\n id,\n parentOf,\n open: propsOpen,\n defaultOpen,\n onOpenChange: propsOnOpenChange,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n const pathParts = id.split(PATH_SEPARATOR);\n const level = pathParts.length - 1;\n const [open, onOpenChange] = useControllableState({\n prop: propsOpen,\n onChange: propsOnOpenChange,\n defaultProp: defaultOpen,\n });\n const focusableGroupAttrs = useFocusableGroup();\n const arrowGroupAttrs = useArrowNavigationGroup({ axis: 'horizontal', tabbable: true, circular: false });\n return (\n <TreegridRowProvider open={open} onOpenChange={onOpenChange} scope={__treegridRowScope}>\n <Root\n role='row'\n aria-level={level}\n className={tx('treegrid.row', 'treegrid__row', { level }, classNames)}\n {...(parentOf && { 'aria-expanded': open, 'aria-owns': parentOf })}\n tabIndex={0}\n {...focusableGroupAttrs}\n {...props}\n id={id}\n ref={forwardedRef}\n >\n <div role='none' className='contents' {...arrowGroupAttrs}>\n {children}\n </div>\n </Root>\n </TreegridRowProvider>\n );\n },\n);\n\ntype TreegridCellProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & { indent?: boolean };\n\nconst TreegridCell = forwardRef<HTMLDivElement, TreegridCellProps>(\n ({ classNames, children, indent, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <div\n role='gridcell'\n className={tx('treegrid.cell', 'treegrid__cell', { indent }, classNames)}\n {...props}\n ref={forwardedRef}\n >\n {children}\n </div>\n );\n },\n);\n\nexport type { TreegridRootProps, TreegridRowProps };\n\nexport const Treegrid = {\n Root: TreegridRoot,\n Row: TreegridRow,\n Cell: TreegridCell,\n PARENT_OF_SEPARATOR,\n PATH_SEPARATOR,\n createTreegridRowScope,\n useTreegridRowContext,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Root as DialogRoot, DialogContent } from '@radix-ui/react-dialog';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n type ComponentPropsWithRef,\n type Dispatch,\n forwardRef,\n type PropsWithChildren,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { log } from '@dxos/log';\nimport { useMediaQuery, useForwardedRef } from '@dxos/react-hooks';\n\nimport { useSwipeToDismiss } from './useSwipeToDismiss';\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\nconst MAIN_ROOT_NAME = 'MainRoot';\nconst NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';\nconst COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';\nconst MAIN_NAME = 'Main';\nconst GENERIC_CONSUMER_NAME = 'GenericConsumer';\n\ntype MainContextValue = {\n resizing: boolean;\n navigationSidebarOpen: boolean;\n setNavigationSidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n complementarySidebarOpen: boolean;\n setComplementarySidebarOpen: Dispatch<SetStateAction<boolean | undefined>>;\n};\n\nconst [MainProvider, useMainContext] = createContext<MainContextValue>(MAIN_NAME, {\n resizing: false,\n navigationSidebarOpen: false,\n setNavigationSidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n log.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n complementarySidebarOpen: false,\n setComplementarySidebarOpen: (nextOpen) => {\n // TODO(burdon): Standardize with other context missing errors using raise.\n log.warn('Attempt to set sidebar state without initializing `MainRoot`');\n },\n});\n\nconst useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {\n const { setNavigationSidebarOpen, navigationSidebarOpen, setComplementarySidebarOpen, complementarySidebarOpen } =\n useMainContext(consumerName);\n return {\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n toggleNavigationSidebar: useCallback(\n () => setNavigationSidebarOpen(!navigationSidebarOpen),\n [navigationSidebarOpen, setNavigationSidebarOpen],\n ),\n openNavigationSidebar: useCallback(() => setNavigationSidebarOpen(true), [setNavigationSidebarOpen]),\n closeNavigationSidebar: useCallback(() => setNavigationSidebarOpen(false), [setNavigationSidebarOpen]),\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n toggleComplementarySidebar: useCallback(\n () => setComplementarySidebarOpen(!complementarySidebarOpen),\n [complementarySidebarOpen, setComplementarySidebarOpen],\n ),\n openComplementarySidebar: useCallback(() => setComplementarySidebarOpen(true), [setComplementarySidebarOpen]),\n closeComplementarySidebar: useCallback(() => setComplementarySidebarOpen(false), [setComplementarySidebarOpen]),\n };\n};\n\ntype MainRootProps = PropsWithChildren<{\n navigationSidebarOpen?: boolean;\n defaultNavigationSidebarOpen?: boolean;\n onNavigationSidebarOpenChange?: (nextOpen: boolean) => void;\n complementarySidebarOpen?: boolean;\n defaultComplementarySidebarOpen?: boolean;\n onComplementarySidebarOpenChange?: (nextOpen: boolean) => void;\n}>;\n\nconst resizeDebounce = 3000;\n\nconst MainRoot = ({\n navigationSidebarOpen: propsNavigationSidebarOpen,\n defaultNavigationSidebarOpen,\n onNavigationSidebarOpenChange,\n complementarySidebarOpen: propsComplementarySidebarOpen,\n defaultComplementarySidebarOpen,\n onComplementarySidebarOpenChange,\n children,\n ...props\n}: MainRootProps) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState<boolean>({\n prop: propsNavigationSidebarOpen,\n defaultProp: defaultNavigationSidebarOpen,\n onChange: onNavigationSidebarOpenChange,\n });\n const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState<boolean>({\n prop: propsComplementarySidebarOpen,\n defaultProp: defaultComplementarySidebarOpen,\n onChange: onComplementarySidebarOpenChange,\n });\n\n const [resizing, setResizing] = useState(false);\n const resizeInterval = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const handleResize = useCallback(() => {\n setResizing(true);\n if (resizeInterval.current) {\n clearTimeout(resizeInterval.current);\n }\n resizeInterval.current = setTimeout(() => {\n setResizing(false);\n resizeInterval.current = null;\n }, resizeDebounce);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n return (\n <MainProvider\n {...props}\n {...{\n navigationSidebarOpen,\n setNavigationSidebarOpen,\n complementarySidebarOpen,\n setComplementarySidebarOpen,\n }}\n resizing={resizing}\n >\n {children}\n </MainProvider>\n );\n};\n\nMainRoot.displayName = MAIN_ROOT_NAME;\n\nconst handleOpenAutoFocus = (event: Event) => {\n !document.body.hasAttribute('data-is-keyboard') && event.preventDefault();\n};\n\ntype MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {\n swipeToDismiss?: boolean;\n open: boolean;\n resizing?: boolean;\n setOpen: Dispatch<SetStateAction<boolean | undefined>>;\n side: 'inline-start' | 'inline-end';\n};\n\nconst MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(\n (\n { classNames, children, swipeToDismiss, onOpenAutoFocus, open, resizing, setOpen, side, ...props },\n forwardedRef,\n ) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { tx } = useThemeContext();\n const ref = useForwardedRef(forwardedRef);\n const noopRef = useRef(null);\n useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {\n onDismiss: () => setOpen(false),\n });\n const Root = isLg ? Primitive.div : DialogContent;\n return (\n <DialogRoot open={open} modal={false}>\n <Root\n {...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}\n {...props}\n data-side={side === 'inline-end' ? 'ie' : 'is'}\n data-state={open ? 'open' : 'closed'}\n data-resizing={resizing ? 'true' : 'false'}\n className={tx('main.sidebar', 'main__sidebar', {}, classNames)}\n {...(!open && { inert: 'true' })}\n ref={ref}\n >\n <ElevationProvider elevation='group'>{children}</ElevationProvider>\n </Root>\n </DialogRoot>\n );\n },\n);\n\ntype MainNavigationSidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {\n const { navigationSidebarOpen, setNavigationSidebarOpen, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={navigationSidebarOpen}\n setOpen={setNavigationSidebarOpen}\n resizing={resizing}\n side='inline-start'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainComplementarySidebarProps = Omit<MainSidebarProps, 'open' | 'setOpen' | 'side'>;\n\nconst MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {\n const { complementarySidebarOpen, setComplementarySidebarOpen, resizing } =\n useMainContext(COMPLEMENTARY_SIDEBAR_NAME);\n return (\n <MainSidebar\n {...props}\n open={complementarySidebarOpen}\n setOpen={setComplementarySidebarOpen}\n resizing={resizing}\n side='inline-end'\n ref={forwardedRef}\n />\n );\n});\n\nMainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;\n\ntype MainProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & { asChild?: boolean; bounce?: boolean };\n\nconst MainContent = forwardRef<HTMLDivElement, MainProps>(\n ({ asChild, classNames, bounce, children, ...props }: MainProps, forwardedRef) => {\n const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : 'main';\n\n return (\n <Root\n {...props}\n data-sidebar-inline-start-state={navigationSidebarOpen ? 'open' : 'closed'}\n data-sidebar-inline-end-state={complementarySidebarOpen ? 'open' : 'closed'}\n className={tx('main.content', 'main', { bounce }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMainContent.displayName = MAIN_NAME;\n\ntype MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children'>>;\n\nconst MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { navigationSidebarOpen, setNavigationSidebarOpen, complementarySidebarOpen, setComplementarySidebarOpen } =\n useMainContext(MAIN_NAME);\n const { tx } = useThemeContext();\n return (\n <div\n onClick={() => {\n setNavigationSidebarOpen(false);\n setComplementarySidebarOpen(false);\n }}\n {...props}\n className={tx(\n 'main.overlay',\n 'main__overlay',\n { isLg, inlineStartSidebarOpen: navigationSidebarOpen, inlineEndSidebarOpen: complementarySidebarOpen },\n classNames,\n )}\n data-state={navigationSidebarOpen || complementarySidebarOpen ? 'open' : 'closed'}\n aria-hidden='true'\n ref={forwardedRef}\n />\n );\n});\n\ntype MainNotchProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst MainNotch = forwardRef<HTMLDivElement, MainNotchProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { navigationSidebarOpen } = useMainContext(MAIN_NAME);\n // Notch is concerned with the nav sidebar, whichever side it might be on.\n return (\n <nav\n {...props}\n data-nav-sidebar-state={navigationSidebarOpen ? 'open' : 'closed'}\n className={tx('main.notch', 'main__notch', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Main = {\n Root: MainRoot,\n Content: MainContent,\n Overlay: MainOverlay,\n NavigationSidebar: MainNavigationSidebar,\n ComplementarySidebar: MainComplementarySidebar,\n Notch: MainNotch,\n};\n\nexport { useMainContext, useSidebars };\n\nexport type { MainRootProps, MainProps, MainOverlayProps, MainNavigationSidebarProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// This implementation is based upon https://github.com/hosembafer/react-swipe-to-dismiss, commit d88deafe910a6bd1400cf8fa90459a76cf4f71d3\n\nimport { type RefObject, useCallback, useEffect, useState } from 'react';\n\nenum MotionState {\n IDLE,\n DEBOUNCING,\n FOLLOWING,\n}\n\ntype Options = Partial<{\n onDismiss: () => void;\n dismissThreshold: number;\n debounceThreshold: number;\n side: 'inline-start' | 'inline-end';\n offset: number;\n}>;\n\nexport const useSwipeToDismiss = (\n ref: RefObject<HTMLElement | null>,\n { onDismiss, dismissThreshold = 64, debounceThreshold = 8, offset = 0 /* side = 'inline-start' */ }: Options,\n) => {\n const $root = ref.current;\n // todo(thure): Implement other sides.\n // const dK = direction === 'inline-start' ? 1 : -1;\n\n const [motionState, setMotionState] = useState<MotionState>(MotionState.IDLE);\n const [gestureStartX, setGestureStartX] = useState(0);\n\n const setIdle = useCallback(() => {\n setMotionState(MotionState.IDLE);\n $root?.style.removeProperty('inset-inline-start');\n $root?.style.setProperty('transition-duration', '200ms');\n }, [$root]);\n\n const setFollowing = useCallback(() => {\n setMotionState(MotionState.FOLLOWING);\n $root?.style.setProperty('transition-duration', '0ms');\n }, [$root]);\n\n const handlePointerDown = useCallback(\n ({ screenX }: PointerEvent) => {\n if (motionState === MotionState.IDLE) {\n setMotionState(MotionState.DEBOUNCING);\n setGestureStartX(screenX);\n }\n },\n [motionState],\n );\n\n const handlePointerMove = useCallback(\n ({ screenX }: PointerEvent) => {\n if ($root) {\n const delta = Math.min(screenX - gestureStartX, 0);\n switch (motionState) {\n case MotionState.FOLLOWING:\n if (Math.abs(delta) > dismissThreshold) {\n setIdle();\n onDismiss?.();\n } else {\n $root.style.setProperty('inset-inline-start', `${offset + delta}px`);\n }\n break;\n case MotionState.DEBOUNCING:\n if (Math.abs(delta) > debounceThreshold) {\n setFollowing();\n }\n break;\n }\n }\n },\n [$root, motionState, gestureStartX],\n );\n\n const handlePointerUp = useCallback(() => {\n setIdle();\n }, [setIdle]);\n\n useEffect(() => {\n $root?.addEventListener('pointerdown', handlePointerDown);\n return () => {\n $root?.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [$root, handlePointerDown]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointermove', handlePointerMove);\n return () => {\n document.documentElement.removeEventListener('pointermove', handlePointerMove);\n };\n }, [$root, handlePointerMove]);\n\n useEffect(() => {\n $root && document.documentElement.addEventListener('pointerup', handlePointerUp);\n return () => {\n document.documentElement.removeEventListener('pointerup', handlePointerUp);\n };\n }, [$root, handlePointerUp]);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useId } from '@dxos/react-hooks';\nimport { type MessageValence, type Elevation } from '@dxos/react-ui-types';\n\nimport { useElevationContext, useThemeContext } from '../../hooks';\n\ntype MessageRootProps = ComponentPropsWithRef<typeof Primitive.div> & {\n valence?: MessageValence;\n elevation?: Elevation;\n asChild?: boolean;\n titleId?: string;\n descriptionId?: string;\n};\n\ntype MessageContextValue = { titleId?: string; descriptionId: string };\nconst MESSAGE_NAME = 'Message';\nconst [MessageProvider, useMessageContext] = createContext<MessageContextValue>(MESSAGE_NAME);\n\nconst MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(\n (\n {\n asChild,\n valence,\n elevation: propsElevation,\n className,\n titleId: propsTitleId,\n descriptionId: propsDescriptionId,\n children,\n ...props\n },\n forwardedRef,\n ) => {\n const { tx } = useThemeContext();\n const titleId = useId('message__title', propsTitleId);\n const descriptionId = useId('message__description', propsDescriptionId);\n const elevation = useElevationContext(propsElevation);\n const Root = asChild ? Slot : Primitive.div;\n return (\n <MessageProvider {...{ titleId, descriptionId }}>\n <Root\n {...props}\n className={tx('message.root', 'message', { valence, elevation }, className)}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n </MessageProvider>\n );\n },\n);\n\nMessageRoot.displayName = MESSAGE_NAME;\n\ntype MessageTitleProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_TITLE_NAME = 'MessageTitle';\n\nconst MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);\n const Root = asChild ? Slot : Primitive.h2;\n return (\n <Root {...props} className={tx('message.title', 'message__title', {}, className)} id={titleId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\nMessageTitle.displayName = MESSAGE_TITLE_NAME;\n\ntype MessageBodyProps = Omit<ComponentPropsWithRef<typeof Primitive.h2>, 'id'> & { asChild?: boolean };\n\nconst MESSAGE_BODY_NAME = 'MessageBody';\n\nconst MessageBody = forwardRef<HTMLParagraphElement, MessageBodyProps>(\n ({ asChild, className, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root\n {...props}\n className={tx('message.body', 'message__body', {}, className)}\n id={descriptionId}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nMessageBody.displayName = MESSAGE_BODY_NAME;\n\nexport const Message = { Root: MessageRoot, Title: MessageTitle, Body: MessageBody };\n\nexport type { MessageRootProps, MessageTitleProps, MessageBodyProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as PopoverRootPrimitive,\n type PopoverProps as PopoverRootPrimitiveProps,\n type PopoverContentProps as PopoverContentPrimitiveProps,\n PopoverContent as PopoverContentPrimitive,\n type PopoverTriggerProps as PopoverTriggerPrimitiveProps,\n PopoverTrigger as PopoverTriggerPrimitive,\n type PopoverAnchorProps as PopoverAnchorPrimitiveProps,\n PopoverAnchor as PopoverAnchorPrimitive,\n type PopoverPortalProps as PopoverPortalPrimitiveProps,\n PopoverPortal as PopoverPortalPrimitive,\n type PopoverArrowProps as PopoverArrowPrimitiveProps,\n PopoverArrow as PopoverArrowPrimitive,\n type PopoverCloseProps as PopoverClosePrimitiveProps,\n PopoverClose as PopoverClosePrimitive,\n} from '@radix-ui/react-popover';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype PopoverRootProps = PopoverRootPrimitiveProps;\n\nconst PopoverRoot: FunctionComponent<PopoverRootProps> = PopoverRootPrimitive;\n\ntype PopoverPortalProps = PopoverPortalPrimitiveProps;\n\nconst PopoverPortal = PopoverPortalPrimitive;\n\ntype PopoverTriggerProps = PopoverTriggerPrimitiveProps;\n\nconst PopoverTrigger = PopoverTriggerPrimitive;\n\ntype PopoverAnchorProps = PopoverAnchorPrimitiveProps;\n\nconst PopoverAnchor = PopoverAnchorPrimitive;\n\ntype PopoverCloseProps = PopoverClosePrimitiveProps;\n\nconst PopoverClose = PopoverClosePrimitive;\n\ntype PopoverArrowProps = ThemedClassName<PopoverArrowPrimitiveProps>;\n\nconst PopoverArrow = forwardRef<SVGSVGElement, PopoverArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverArrowPrimitive\n {...props}\n className={tx('popover.arrow', 'popover__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype PopoverContentProps = ThemedClassName<PopoverContentPrimitiveProps>;\n\nconst PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <PopoverContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('popover.content', 'popover', {}, classNames)}\n ref={forwardedRef}\n >\n <ElevationProvider elevation='chrome'>{children}</ElevationProvider>\n </PopoverContentPrimitive>\n );\n },\n);\n\ntype PopoverViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {\n asChild?: boolean;\n constrainInline?: boolean;\n constrainBlock?: boolean;\n};\n\nconst PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(\n ({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return (\n <Root\n {...props}\n className={tx('popover.viewport', 'popover__viewport', { constrainInline, constrainBlock }, classNames)}\n ref={forwardedRef}\n >\n {children}\n </Root>\n );\n },\n);\n\nexport const Popover = {\n Root: PopoverRoot,\n Portal: PopoverPortal,\n Trigger: PopoverTrigger,\n Anchor: PopoverAnchor,\n Arrow: PopoverArrow,\n Close: PopoverClose,\n Content: PopoverContent,\n Viewport: PopoverViewport,\n};\n\nexport type {\n PopoverRootProps,\n PopoverPortalProps,\n PopoverTriggerProps,\n PopoverAnchorProps,\n PopoverArrowProps,\n PopoverCloseProps,\n PopoverContentProps,\n PopoverViewportProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype StatusProps = ThemedClassName<ComponentPropsWithRef<'span'>> & {\n indeterminate?: boolean;\n progress?: number;\n};\n\nconst Status = forwardRef<HTMLSpanElement, StatusProps>(\n ({ classNames, children, progress = 0, indeterminate, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <span\n role='status'\n {...props}\n className={tx('status.root', 'status', { indeterminate }, classNames)}\n ref={forwardedRef}\n >\n <span\n role='none'\n className={tx('status.bar', 'status__bar', { indeterminate }, classNames)}\n {...(!indeterminate && { style: { width: `${Math.round(progress * 100)}%` } })}\n />\n {children}\n </span>\n );\n },\n);\n\nexport { Status };\n\nexport type { StatusProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Root as ScrollAreaPrimitiveRoot,\n type ScrollAreaProps as ScrollAreaPrimitiveRootProps,\n Viewport as ScrollAreaPrimitiveViewport,\n type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,\n Scrollbar as ScrollAreaPrimitiveScrollbar,\n type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,\n Thumb as ScrollAreaPrimitiveThumb,\n type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,\n Corner as ScrollAreaPrimitiveCorner,\n type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,\n} from '@radix-ui/react-scroll-area';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype ScrollAreaVariant = 'coarse' | 'fine';\n\ntype ScrollAreaRootProps = ThemedClassName<ScrollAreaPrimitiveRootProps>;\n\nconst ScrollAreaRoot = forwardRef<HTMLDivElement, ScrollAreaRootProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveRoot\n {...props}\n className={tx('scrollArea.root', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaViewportProps = ThemedClassName<ScrollAreaPrimitiveViewportProps>;\n\nconst ScrollAreaViewport = forwardRef<HTMLDivElement, ScrollAreaViewportProps>(\n ({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveViewport\n {...props}\n className={tx('scrollArea.viewport', 'scroll-area', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaScrollbarProps = ThemedClassName<ScrollAreaPrimitiveScrollbarProps> & { variant?: ScrollAreaVariant };\n\nconst ScrollAreaScrollbar = forwardRef<HTMLDivElement, ScrollAreaScrollbarProps>(\n ({ classNames, variant = 'fine', ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveScrollbar\n data-variant={variant}\n {...props}\n className={tx('scrollArea.scrollbar', 'scroll-area__scrollbar', {}, classNames)}\n ref={forwardedRef}\n />\n );\n },\n);\n\ntype ScrollAreaThumbProps = ThemedClassName<ScrollAreaPrimitiveThumbProps>;\n\nconst ScrollAreaThumb = forwardRef<HTMLDivElement, ScrollAreaThumbProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveThumb\n {...props}\n className={tx('scrollArea.thumb', 'scroll-area__thumb', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype ScrollAreaCornerProps = ThemedClassName<ScrollAreaPrimitiveCornerProps>;\n\nconst ScrollAreaCorner = forwardRef<HTMLDivElement, ScrollAreaCornerProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ScrollAreaPrimitiveCorner\n {...props}\n className={tx('scrollArea.corner', 'scroll-area__corner', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const ScrollArea = {\n Root: ScrollAreaRoot,\n Viewport: ScrollAreaViewport,\n Scrollbar: ScrollAreaScrollbar,\n Thumb: ScrollAreaThumb,\n Corner: ScrollAreaCorner,\n};\n\nexport type {\n ScrollAreaRootProps,\n ScrollAreaViewportProps,\n ScrollAreaScrollbarProps,\n ScrollAreaThumbProps,\n ScrollAreaCornerProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CaretDown, CaretUp, Check } from '@phosphor-icons/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, type ButtonProps } from '../Buttons';\n\ntype SelectRootProps = SelectPrimitive.SelectProps;\n\nconst SelectRoot = SelectPrimitive.Root;\n\ntype SelectTriggerProps = SelectPrimitive.SelectTriggerProps;\n\nconst SelectTrigger = SelectPrimitive.Trigger;\n\ntype SelectValueProps = SelectPrimitive.SelectValueProps;\n\nconst SelectValue = SelectPrimitive.Value;\n\ntype SelectIconProps = SelectPrimitive.SelectIconProps;\n\nconst SelectIcon = SelectPrimitive.Icon;\n\ntype SelectPortalProps = SelectPrimitive.SelectPortalProps;\n\nconst SelectPortal = SelectPrimitive.Portal;\n\ntype SelectTriggerButtonProps = Omit<ButtonProps, 'children'> & Pick<SelectValueProps, 'placeholder' | 'children'>;\n\nconst SelectTriggerButton = forwardRef<HTMLButtonElement, SelectTriggerButtonProps>(\n ({ children, placeholder, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Trigger asChild ref={forwardedRef}>\n <Button {...props}>\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n <SelectPrimitive.Icon asChild>\n <>\n <span className='w-1' />\n <CaretDown className={tx('select.triggerIcon', 'select__trigger__icon', {})} weight='bold' />\n </>\n </SelectPrimitive.Icon>\n </Button>\n </SelectPrimitive.Trigger>\n );\n },\n);\n\ntype SelectContentProps = ThemedClassName<SelectPrimitive.SelectContentProps>;\n\nconst SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Content\n {...props}\n className={tx('select.content', 'select__content', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.Content>\n );\n },\n);\n\ntype SelectScrollUpButtonProps = ThemedClassName<SelectPrimitive.SelectScrollUpButtonProps>;\n\nconst SelectScrollUpButton = forwardRef<HTMLDivElement, SelectScrollUpButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollUpButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--up', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretUp weight='bold' />}\n </SelectPrimitive.SelectScrollUpButton>\n );\n },\n);\n\ntype SelectScrollDownButtonProps = ThemedClassName<SelectPrimitive.SelectScrollDownButtonProps>;\n\nconst SelectScrollDownButton = forwardRef<HTMLDivElement, SelectScrollDownButtonProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.SelectScrollDownButton\n {...props}\n className={tx('select.scrollButton', 'select__scroll-button--down', {}, classNames)}\n ref={forwardedRef}\n >\n {children ?? <CaretDown weight='bold' />}\n </SelectPrimitive.SelectScrollDownButton>\n );\n },\n);\n\ntype SelectViewportProps = SelectPrimitive.SelectViewportProps;\n\nconst SelectViewport = SelectPrimitive.Viewport;\n\ntype SelectItemProps = ThemedClassName<SelectPrimitive.SelectItemProps>;\n\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype SelectItemTextProps = SelectPrimitive.SelectItemTextProps;\n\nconst SelectItemText = SelectPrimitive.ItemText;\n\ntype SelectItemIndicatorProps = ThemedClassName<SelectPrimitive.SelectItemIndicatorProps>;\n\nconst SelectItemIndicator = forwardRef<HTMLDivElement, SelectItemIndicatorProps>(\n ({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.ItemIndicator\n {...props}\n className={tx('select.itemIndicator', 'option__indicator', {}, classNames)}\n ref={forwardedRef}\n >\n {children}\n </SelectPrimitive.ItemIndicator>\n );\n },\n);\n\ntype SelectOptionProps = SelectItemProps;\n\nconst SelectOption = forwardRef<HTMLDivElement, SelectItemProps>(({ children, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Item {...props} className={tx('select.item', 'option', {}, classNames)} ref={forwardedRef}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className={tx('select.itemIndicator', 'option__indicator', {})}>\n <Check weight='bold' />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n});\n\ntype SelectGroupProps = SelectPrimitive.SelectGroupProps;\n\nconst SelectGroup = SelectPrimitive.Group;\n\ntype SelectLabelProps = SelectPrimitive.SelectLabelProps;\n\nconst SelectLabel = SelectPrimitive.Label;\n\ntype SelectSeparatorProps = ThemedClassName<SelectPrimitive.SelectSeparatorProps>;\n\nconst SelectSeparator = forwardRef<HTMLDivElement, SelectSeparatorProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <SelectPrimitive.Separator\n {...props}\n className={tx('select.separator', 'select__separator', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype SelectArrowProps = ThemedClassName<SelectPrimitive.SelectArrowProps>;\n\nconst SelectArrow = forwardRef<SVGSVGElement, SelectArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n\n return (\n <SelectPrimitive.Arrow\n {...props}\n className={tx('select.arrow', 'select__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Select = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n TriggerButton: SelectTriggerButton,\n Value: SelectValue,\n Icon: SelectIcon,\n Portal: SelectPortal,\n Content: SelectContent,\n ScrollUpButton: SelectScrollUpButton,\n ScrollDownButton: SelectScrollDownButton,\n Viewport: SelectViewport,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n Option: SelectOption,\n Group: SelectGroup,\n Label: SelectLabel,\n Separator: SelectSeparator,\n Arrow: SelectArrow,\n};\n\nexport type {\n SelectRootProps,\n SelectTriggerProps,\n SelectTriggerButtonProps,\n SelectValueProps,\n SelectIconProps,\n SelectPortalProps,\n SelectContentProps,\n SelectScrollUpButtonProps,\n SelectScrollDownButtonProps,\n SelectViewportProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectItemIndicatorProps,\n SelectOptionProps,\n SelectGroupProps,\n SelectLabelProps,\n SelectSeparatorProps,\n SelectArrowProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\nimport {\n Separator as SeparatorPrimitive,\n type SeparatorProps as SeparatorPrimitiveProps,\n} from '@radix-ui/react-separator';\nimport React from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype SeparatorProps = ThemedClassName<SeparatorPrimitiveProps>;\n\nconst Separator = ({ classNames, orientation = 'horizontal', ...props }: SeparatorProps) => {\n const { tx } = useThemeContext();\n return (\n <SeparatorPrimitive\n orientation={orientation}\n {...props}\n className={tx('separator.root', 'separator', { orientation }, classNames)}\n />\n );\n};\n\nexport type { SeparatorProps };\n\nexport { Separator };\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { type ChromaticPalette, type MessageValence, type NeutralPalette } from '@dxos/react-ui-types';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\nexport type TagProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.span>> & {\n palette?: NeutralPalette | ChromaticPalette | MessageValence;\n asChild?: boolean;\n};\n\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({ asChild, palette, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.span;\n return <Root {...props} className={tx('tag.root', 'tag', { palette }, classNames)} ref={forwardedRef} />;\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n ToastProvider as ToastProviderPrimitive,\n type ToastProviderProps as ToastProviderPrimitiveProps,\n ToastViewport as ToastViewportPrimitive,\n type ToastViewportProps as ToastViewportPrimitiveProps,\n Root as ToastRootPrimitive,\n type ToastProps as ToastRootPrimitiveProps,\n ToastTitle as ToastTitlePrimitive,\n type ToastTitleProps as ToastTitlePrimitiveProps,\n ToastDescription as ToastDescriptionPrimitive,\n type ToastDescriptionProps as ToastDescriptionPrimitiveProps,\n ToastAction as ToastActionPrimitive,\n type ToastActionProps as ToastActionPrimitiveProps,\n ToastClose as ToastClosePrimitive,\n type ToastCloseProps as ToastClosePrimitiveProps,\n} from '@radix-ui/react-toast';\nimport React, { type ComponentPropsWithRef, forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\ntype ToastProviderProps = ToastProviderPrimitiveProps;\n\nconst ToastProvider: FunctionComponent<ToastProviderProps> = ToastProviderPrimitive;\n\ntype ToastViewportProps = ThemedClassName<ToastViewportPrimitiveProps>;\n\nconst ToastViewport = forwardRef<HTMLOListElement, ToastViewportProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastViewportPrimitive className={tx('toast.viewport', 'toast-viewport', {}, classNames)} ref={forwardedRef} />\n );\n});\n\ntype ToastRootProps = ThemedClassName<ToastRootPrimitiveProps>;\n\nconst ToastRoot = forwardRef<HTMLLIElement, ToastRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToastRootPrimitive {...props} className={tx('toast.root', 'toast', {}, classNames)} ref={forwardedRef}>\n <ElevationProvider elevation='chrome'>\n <DensityProvider density='fine'>{children}</DensityProvider>\n </ElevationProvider>\n </ToastRootPrimitive>\n );\n});\n\ntype ToastBodyProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastBody = forwardRef<HTMLDivElement, ToastBodyProps>(({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.body', 'toast__body', {}, classNames)} ref={forwardedRef} />;\n});\n\ntype ToastTitleProps = ThemedClassName<ToastTitlePrimitiveProps>;\n\nconst ToastTitle = forwardRef<HTMLHeadingElement, ToastTitleProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastTitlePrimitive;\n return <Root {...props} className={tx('toast.title', 'toast__title', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastDescriptionProps = ThemedClassName<ToastDescriptionPrimitiveProps>;\n\nconst ToastDescription = forwardRef<HTMLParagraphElement, ToastDescriptionProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : ToastDescriptionPrimitive;\n return (\n <Root {...props} className={tx('toast.description', 'toast__description', {}, classNames)} ref={forwardedRef} />\n );\n },\n);\n\ntype ToastActionsProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>>;\n\nconst ToastActions = forwardRef<HTMLDivElement, ToastActionsProps>(\n ({ asChild, classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n const Root = asChild ? Slot : Primitive.div;\n return <Root {...props} className={tx('toast.actions', 'toast__actions', {}, classNames)} ref={forwardedRef} />;\n },\n);\n\ntype ToastActionProps = ToastActionPrimitiveProps;\n\nconst ToastAction: FunctionComponent<ToastActionProps> = ToastActionPrimitive;\n\ntype ToastCloseProps = ToastClosePrimitiveProps;\n\nconst ToastClose: FunctionComponent<ToastCloseProps> = ToastClosePrimitive;\n\nexport const Toast = {\n Provider: ToastProvider,\n Viewport: ToastViewport,\n Root: ToastRoot,\n Body: ToastBody,\n Title: ToastTitle,\n Description: ToastDescription,\n Actions: ToastActions,\n Action: ToastAction,\n Close: ToastClose,\n};\n\nexport type {\n ToastProviderProps,\n ToastViewportProps,\n ToastRootProps,\n ToastBodyProps,\n ToastTitleProps,\n ToastDescriptionProps,\n ToastActionsProps,\n ToastActionProps,\n ToastCloseProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as ToolbarPrimitive from '@radix-ui/react-toolbar';\nimport React, { forwardRef } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\nimport { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ToggleGroupItemProps } from '../Buttons';\nimport { Link, type LinkProps } from '../Link';\nimport { Separator, type SeparatorProps } from '../Separator';\n\ntype ToolbarRootProps = ThemedClassName<ToolbarPrimitive.ToolbarProps>;\n\nconst ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(({ classNames, children, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <ToolbarPrimitive.Root {...props} className={tx('toolbar.root', 'toolbar', {}, classNames)} ref={forwardedRef}>\n {children}\n </ToolbarPrimitive.Root>\n );\n});\n\ntype ToolbarButtonProps = ButtonProps;\n\nconst ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Button asChild>\n <Button {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Button>\n );\n});\n\ntype ToolbarLinkProps = LinkProps;\n\nconst ToolbarLink = forwardRef<HTMLAnchorElement, ToolbarLinkProps>((props, forwardedRef) => {\n return (\n <ToolbarPrimitive.Link asChild>\n <Link {...props} ref={forwardedRef} />\n </ToolbarPrimitive.Link>\n );\n});\n\ntype ToolbarToggleGroupProps = (\n | Omit<ToolbarPrimitive.ToolbarToggleGroupSingleProps, 'className'>\n | Omit<ToolbarPrimitive.ToolbarToggleGroupMultipleProps, 'className'>\n) &\n ButtonGroupProps;\n\nconst ToolbarToggleGroup = forwardRef<HTMLDivElement, ToolbarToggleGroupProps>(\n ({ classNames, children, elevation, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleGroup {...props} asChild>\n <ButtonGroup {...{ classNames, children, elevation }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleGroup>\n );\n },\n);\n\ntype ToolbarToggleGroupItemProps = ToggleGroupItemProps;\n\nconst ToolbarToggleGroupItem = forwardRef<HTMLButtonElement, ToolbarToggleGroupItemProps>(\n ({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {\n return (\n <ToolbarPrimitive.ToolbarToggleItem {...props} asChild>\n <Button {...{ variant, density, elevation, classNames, children }} ref={forwardedRef} />\n </ToolbarPrimitive.ToolbarToggleItem>\n );\n },\n);\n\ntype ToolbarSeparatorProps = SeparatorProps;\n\nconst ToolbarSeparator = (props: SeparatorProps) => {\n return (\n <ToolbarPrimitive.Separator asChild>\n <Separator orientation='vertical' {...props} />\n </ToolbarPrimitive.Separator>\n );\n};\n\nexport const Toolbar = {\n Root: ToolbarRoot,\n Button: ToolbarButton,\n Link: ToolbarLink,\n ToggleGroup: ToolbarToggleGroup,\n ToggleGroupItem: ToolbarToggleGroupItem,\n Separator: ToolbarSeparator,\n};\n\nexport type {\n ToolbarRootProps,\n ToolbarButtonProps,\n ToolbarLinkProps,\n ToolbarToggleGroupProps,\n ToolbarToggleGroupItemProps,\n ToolbarSeparatorProps,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n Provider as TooltipProviderPrimitive,\n type TooltipProviderProps as TooltipProviderPrimitiveProps,\n Root as TooltipRootPrimitive,\n type TooltipProps as TooltipRootPrimitiveProps,\n type TooltipContentProps as TooltipContentPrimitiveProps,\n TooltipContent as TooltipContentPrimitive,\n type TooltipTriggerProps as TooltipTriggerPrimitiveProps,\n TooltipTrigger as TooltipTriggerPrimitive,\n type TooltipPortalProps as TooltipPortalPrimitiveProps,\n TooltipPortal as TooltipPortalPrimitive,\n type TooltipArrowProps as TooltipArrowPrimitiveProps,\n TooltipArrow as TooltipArrowPrimitive,\n} from '@radix-ui/react-tooltip';\nimport React, { forwardRef, type FunctionComponent } from 'react';\n\nimport { useThemeContext } from '../../hooks';\nimport { type ThemedClassName } from '../../util';\n\ntype TooltipProviderProps = TooltipProviderPrimitiveProps;\n\nconst TooltipProvider: FunctionComponent<TooltipProviderProps> = TooltipProviderPrimitive;\n\ntype TooltipRootProps = TooltipRootPrimitiveProps;\n\nconst TooltipRoot: FunctionComponent<TooltipRootProps> = TooltipRootPrimitive;\n\ntype TooltipPortalProps = TooltipPortalPrimitiveProps;\n\nconst TooltipPortal = TooltipPortalPrimitive;\n\ntype TooltipTriggerProps = TooltipTriggerPrimitiveProps;\n\nconst TooltipTrigger = TooltipTriggerPrimitive;\n\ntype TooltipArrowProps = ThemedClassName<TooltipArrowPrimitiveProps>;\n\nconst TooltipArrow = forwardRef<SVGSVGElement, TooltipArrowProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipArrowPrimitive\n {...props}\n className={tx('tooltip.arrow', 'tooltip__arrow', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\ntype TooltipContentProps = ThemedClassName<TooltipContentPrimitiveProps>;\n\nconst TooltipContent = forwardRef<HTMLDivElement, TooltipContentProps>(({ classNames, ...props }, forwardedRef) => {\n const { tx } = useThemeContext();\n return (\n <TooltipContentPrimitive\n sideOffset={4}\n collisionPadding={8}\n {...props}\n className={tx('tooltip.content', 'tooltip', {}, classNames)}\n ref={forwardedRef}\n />\n );\n});\n\nexport const Tooltip = {\n Provider: TooltipProvider,\n Root: TooltipRoot,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n};\n\nexport type {\n TooltipProviderProps,\n TooltipRootProps,\n TooltipPortalProps,\n TooltipTriggerProps,\n TooltipArrowProps,\n TooltipContentProps,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createKeyborg } from 'keyborg';\nimport React, { createContext, type PropsWithChildren, useEffect } from 'react';\n\nimport { type Density, type Elevation, type ThemeFunction } from '@dxos/react-ui-types';\n\nimport { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';\nimport { hasIosKeyboard } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\n\nexport type ThemeMode = 'light' | 'dark';\n\nexport interface ThemeContextValue {\n tx: ThemeFunction<any>;\n themeMode: ThemeMode;\n hasIosKeyboard: boolean;\n}\n\nexport type ThemeProviderProps = Omit<TranslationsProviderProps, 'children'> &\n Partial<ThemeContextValue> &\n PropsWithChildren<{\n rootElevation?: Elevation;\n rootDensity?: Density;\n }>;\n\nexport const ThemeContext = createContext<ThemeContextValue>({\n tx: (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode: 'dark',\n hasIosKeyboard: false,\n});\n\nconst handleInputModalityChange = (isUsingKeyboard: boolean) => {\n if (isUsingKeyboard) {\n document.body.setAttribute('data-is-keyboard', 'true');\n } else {\n document.body.removeAttribute('data-is-keyboard');\n }\n};\n\nexport const ThemeProvider = ({\n children,\n fallback = null,\n resourceExtensions,\n appNs,\n tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,\n themeMode = 'dark',\n rootElevation = 'base',\n rootDensity = 'coarse',\n}: ThemeProviderProps) => {\n useEffect(() => {\n if (document.defaultView) {\n const kb = createKeyborg(document.defaultView);\n kb.subscribe(handleInputModalityChange);\n return () => kb.unsubscribe(handleInputModalityChange);\n }\n }, []);\n\n return (\n <ThemeContext.Provider value={{ tx, themeMode, hasIosKeyboard: hasIosKeyboard() }}>\n <TranslationsProvider\n {...{\n fallback,\n resourceExtensions,\n appNs,\n }}\n >\n <ElevationProvider elevation={rootElevation}>\n <DensityProvider density={rootDensity}>{children}</DensityProvider>\n </ElevationProvider>\n </TranslationsProvider>\n </ThemeContext.Provider>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const hasIosKeyboard = () => {\n // TODO(thure): UA sniffing is never good, however I haven’t found a better way to query for whether the on-screen keyboard will appear on `focus` outside of a click handler.\n return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["Trans", "Primitive", "Slot", "React", "forwardRef", "useContext", "useDensityContext", "propsDensity", "density", "useContext", "DensityContext", "useContext", "useElevationContext", "propsElevation", "elevation", "useContext", "ElevationContext", "useContext", "enUS", "dtLocaleEnUs", "i18Next", "React", "useEffect", "createContext", "useState", "Suspense", "useContext", "initReactI18next", "useTranslation", "useI18NextTranslation", "initialLng", "initialNs", "initialDtLocale", "dtLocaleEnUs", "isLabel", "o", "Array", "isArray", "length", "ns", "toLocalizedString", "label", "t", "resources", "i18Next", "use", "initReactI18next", "init", "lng", "defaultNS", "interpolation", "escapeValue", "TranslationsContext", "createContext", "appNs", "dtLocale", "useTranslation", "args", "result", "useI18NextTranslation", "useContext", "TranslationsProvider", "fallback", "resourceExtensions", "children", "loaded", "setLoaded", "useState", "useEffect", "forEach", "resource", "Object", "keys", "language", "addResourceBundle", "Provider", "value", "Suspense", "useTranslationsContext", "useContext", "TranslationsContext", "useContext", "useThemeContext", "useContext", "ThemeContext", "useEffect", "useState", "useVisualViewport", "deps", "width", "setWidth", "useState", "height", "setHeight", "useEffect", "handleResize", "window", "visualViewport", "addEventListener", "removeEventListener", "AnchoredOverflowRoot", "forwardRef", "asChild", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "div", "React", "role", "className", "ref", "AnchoredOverflowAnchor", "AnchoredOverflow", "Anchor", "Root", "AvatarRootPrimitive", "Fallback", "AvatarFallbackPrimitive", "createContext", "Primitive", "Slot", "React", "forwardRef", "useId", "AVATAR_NAME", "AvatarProvider", "useAvatarContext", "createContext", "AvatarRoot", "size", "variant", "status", "animation", "children", "labelId", "propsLabelId", "descriptionId", "propsDescriptionId", "maskId", "propsMaskId", "inGroup", "hue", "useId", "React", "rx", "AvatarFrame", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "numericSize", "Number", "sizePx", "ringWidth", "ringGap", "r", "AvatarRootPrimitive", "role", "className", "ref", "svg", "viewBox", "width", "height", "defs", "mask", "id", "circle", "fill", "cx", "cy", "rect", "x", "y", "span", "style", "borderWidth", "AvatarLabel", "asChild", "srOnly", "Root", "Slot", "Primitive", "AvatarDescription", "AvatarMaskedImage", "image", "preserveAspectRatio", "AvatarMaskedText", "large", "fontScale", "text", "textAnchor", "alignmentBaseline", "fontSize", "AvatarImage", "onLoadingStatusChange", "pxSize", "AvatarFallbackPrimitive", "AvatarFallback", "delayMs", "isTextOnly", "Boolean", "test", "toLocaleUpperCase", "Avatar", "Frame", "Image", "Fallback", "Label", "Description", "React", "forwardRef", "useId", "AvatarGroupRoot", "forwardRef", "labelId", "propsLabelId", "descriptionId", "propsDescriptionId", "size", "variant", "children", "classNames", "forwardedRef", "tx", "useThemeContext", "useId", "React", "Avatar", "Root", "inGroup", "div", "role", "className", "aria-labelledby", "aria-describedby", "ref", "AvatarGroupItemRoot", "maskId", "status", "rest", "contextSize", "contextVariant", "useAvatarContext", "AvatarGroupLabel", "srOnly", "props", "span", "id", "AvatarGroupDescription", "AvatarGroup", "Label", "Description", "AvatarGroupItem", "Dot", "Primitive", "Slot", "React", "forwardRef", "Primitive", "Slot", "React", "forwardRef", "Link", "forwardRef", "asChild", "variant", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "a", "React", "className", "ref", "BreadcrumbRoot", "forwardRef", "asChild", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "div", "React", "role", "className", "ref", "BreadcrumbList", "ol", "BreadcrumbListItem", "li", "BreadcrumbLink", "Link", "BreadcrumbCurrent", "aria-current", "BreadcrumbSeparator", "children", "span", "aria-hidden", "Dot", "weight", "Breadcrumb", "List", "ListItem", "Current", "Separator", "createContext", "Primitive", "Slot", "React", "forwardRef", "BUTTON_GROUP_NAME", "BUTTON_NAME", "ButtonGroupProvider", "useButtonGroupContext", "createContext", "inGroup", "Button", "forwardRef", "classNames", "children", "density", "propsDensity", "elevation", "propsElevation", "variant", "asChild", "props", "ref", "tx", "useThemeContext", "useElevationContext", "useDensityContext", "Root", "Slot", "Primitive", "button", "React", "data-variant", "data-density", "data-props", "className", "disabled", "displayName", "ButtonGroup", "forwardedRef", "div", "role", "Toggle", "TogglePrimitive", "React", "forwardRef", "Toggle", "forwardRef", "defaultPressed", "pressed", "onPressedChange", "props", "forwardedRef", "React", "TogglePrimitive", "asChild", "Button", "ref", "ToggleGroup", "ToggleGroupPrimitive", "ToggleGroupItem", "ToggleGroupItemPrimitive", "React", "forwardRef", "ToggleGroup", "forwardRef", "classNames", "children", "props", "forwardedRef", "React", "ToggleGroupPrimitive", "asChild", "ButtonGroup", "ref", "ToggleGroupItem", "variant", "elevation", "density", "ToggleGroupItemPrimitive", "Button", "createContext", "Root", "DialogRootPrimitive", "DialogTrigger", "DialogTriggerPrimitive", "DialogPortal", "DialogPortalPrimitive", "DialogOverlay", "DialogOverlayPrimitive", "DialogTitle", "DialogTitlePrimitive", "DialogDescription", "DialogDescriptionPrimitive", "DialogClose", "DialogClosePrimitive", "DialogContent", "DialogContentPrimitive", "React", "forwardRef", "React", "createContext", "ElevationContext", "createContext", "elevation", "ElevationProvider", "children", "React", "Provider", "value", "DialogRoot", "DialogRootPrimitive", "DialogTrigger", "DialogTriggerPrimitive", "DialogPortal", "DialogPortalPrimitive", "DialogTitle", "forwardRef", "classNames", "srOnly", "props", "forwardedRef", "tx", "useThemeContext", "React", "DialogTitlePrimitive", "className", "ref", "DialogDescription", "DialogDescriptionPrimitive", "DialogClose", "DialogClosePrimitive", "DIALOG_OVERLAY_NAME", "DIALOG_CONTENT_NAME", "OverlayLayoutProvider", "useOverlayLayoutContext", "createContext", "inOverlayLayout", "DialogOverlay", "children", "blockAlign", "DialogOverlayPrimitive", "data-block-align", "displayName", "DialogContent", "DialogContentPrimitive", "ElevationProvider", "elevation", "Dialog", "Root", "Trigger", "Portal", "Overlay", "Content", "Title", "Description", "Close", "Root", "AlertDialogRootPrimitive", "AlertDialogTrigger", "AlertDialogTriggerPrimitive", "AlertDialogPortal", "AlertDialogPortalPrimitive", "AlertDialogOverlay", "AlertDialogOverlayPrimitive", "AlertDialogTitle", "AlertDialogTitlePrimitive", "AlertDialogDescription", "AlertDialogDescriptionPrimitive", "AlertDialogAction", "AlertDialogActionPrimitive", "AlertDialogCancel", "AlertDialogCancelPrimitive", "AlertDialogContent", "AlertDialogContentPrimitive", "createContext", "React", "forwardRef", "AlertDialogRoot", "AlertDialogRootPrimitive", "AlertDialogTrigger", "AlertDialogTriggerPrimitive", "AlertDialogPortal", "AlertDialogPortalPrimitive", "AlertDialogCancel", "AlertDialogCancelPrimitive", "AlertDialogAction", "AlertDialogActionPrimitive", "AlertDialogTitle", "forwardRef", "classNames", "srOnly", "props", "forwardedRef", "tx", "useThemeContext", "React", "AlertDialogTitlePrimitive", "className", "ref", "AlertDialogDescription", "AlertDialogDescriptionPrimitive", "ALERT_DIALOG_OVERLAY_NAME", "ALERT_DIALOG_CONTENT_NAME", "OverlayLayoutProvider", "useOverlayLayoutContext", "createContext", "inOverlayLayout", "AlertDialogOverlay", "children", "AlertDialogOverlayPrimitive", "displayName", "AlertDialogContent", "AlertDialogContentPrimitive", "ElevationProvider", "elevation", "AlertDialog", "Root", "Trigger", "Portal", "Overlay", "Content", "Title", "Description", "Cancel", "Action", "ContextMenuPrimitive", "Primitive", "Slot", "React", "forwardRef", "ContextMenuRoot", "ContextMenu", "ContextMenuTrigger", "Trigger", "ContextMenuPortal", "Portal", "ContextMenuContent", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "Content", "collisionPadding", "className", "ref", "ElevationProvider", "elevation", "ContextMenuViewport", "asChild", "Root", "Slot", "Primitive", "div", "ContextMenuArrow", "Arrow", "ContextMenuGroup", "Group", "ContextMenuItemIndicator", "ItemIndicator", "ContextMenuItem", "Item", "ContextMenuCheckboxItem", "CheckboxItem", "ContextMenuSeparator", "Separator", "ContextMenuGroupLabel", "Label", "Viewport", "GroupLabel", "DropdownMenuPrimitive", "Primitive", "Slot", "React", "forwardRef", "DropdownMenuRoot", "DropdownMenu", "DropdownMenuTrigger", "Trigger", "DropdownMenuPortal", "Portal", "useDropdownMenuContext", "useDropdownMenuMenuScope", "DropdownMenuContent", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "Content", "sideOffset", "collisionPadding", "className", "ref", "ElevationProvider", "elevation", "DropdownMenuViewport", "asChild", "Root", "Slot", "Primitive", "div", "DropdownMenuArrow", "Arrow", "DropdownMenuGroup", "Group", "DropdownMenuItemIndicator", "ItemIndicator", "DropdownMenuItem", "Item", "DropdownMenuCheckboxItem", "CheckboxItem", "DropdownMenuSeparator", "Separator", "DropdownMenuGroupLabel", "Label", "Viewport", "GroupLabel", "Check", "Minus", "Root", "CheckboxPrimitive", "Indicator", "CheckboxIndicatorPrimitive", "SwitchPrimitive", "Thumb", "SwitchThumbPrimitive", "useControllableState", "React", "forwardRef", "Fragment", "useCallback", "InputRoot", "PinInput", "PinInputPrimitive", "TextInput", "TextInputPrimitive", "TextArea", "TextAreaPrimitive", "useInputContext", "INPUT_NAME", "Description", "DescriptionPrimitive", "DescriptionAndValidation", "DescriptionAndValidationPrimitive", "Label", "LabelPrimitive", "Validation", "ValidationPrimitive", "Label", "forwardRef", "srOnly", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "LabelPrimitive", "className", "ref", "Description", "DescriptionPrimitive", "Validation", "__inputScope", "validationValence", "useInputContext", "INPUT_NAME", "ValidationPrimitive", "DescriptionAndValidation", "DescriptionAndValidationPrimitive", "PinInput", "density", "propsDensity", "elevation", "propsElevation", "segmentClassName", "propsSegmentClassName", "inputClassName", "variant", "hasIosKeyboard", "useDensityContext", "useElevationContext", "useCallback", "focused", "disabled", "PinInputPrimitive", "autoFocus", "TextInput", "themeContextValue", "TextInputPrimitive", "TextArea", "TextAreaPrimitive", "Checkbox", "checked", "propsChecked", "defaultChecked", "propsDefaultChecked", "onCheckedChange", "propsOnCheckedChange", "size", "weight", "useControllableState", "prop", "defaultProp", "onChange", "id", "descriptionId", "errorMessageId", "Icon", "Minus", "Check", "Fragment", "CheckboxPrimitive", "CheckboxIndicatorPrimitive", "asChild", "Switch", "SwitchPrimitive", "SwitchThumbPrimitive", "Input", "Root", "InputRoot", "CaretDown", "CaretRight", "Slot", "React", "forwardRef", "List", "ListPrimitive", "ListItemHeading", "ListPrimitiveItemHeading", "ListItemOpenTrigger", "ListPrimitiveItemOpenTrigger", "ListItemCollapsibleContent", "ListItem", "ListPrimitiveItem", "LIST_NAME", "LIST_ITEM_NAME", "useListContext", "useListItemContext", "React", "createContext", "DensityContext", "createContext", "density", "DensityProvider", "children", "React", "Provider", "value", "List", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "density", "useDensityContext", "React", "DensityProvider", "ListPrimitive", "className", "ref", "ListItemEndcap", "asChild", "Root", "Slot", "role", "MockListItemOpenTrigger", "div", "ListItemHeading", "ListPrimitiveItemHeading", "ListItemOpenTrigger", "__listItemScope", "open", "useListItemContext", "LIST_ITEM_NAME", "Icon", "CaretDown", "CaretRight", "ListPrimitiveItemOpenTrigger", "weight", "ListItemRoot", "ListPrimitiveItem", "collapsible", "ListItem", "Endcap", "Heading", "OpenTrigger", "CollapsibleContent", "ListItemCollapsibleContent", "MockOpenTrigger", "React", "forwardRef", "TreeRoot", "forwardRef", "props", "forwardedRef", "React", "List", "ref", "TreeBranch", "__listScope", "headingId", "useListItemContext", "LIST_ITEM_NAME", "aria-labelledby", "TreeItemRoot", "ListItem", "Root", "role", "TreeItemHeading", "Heading", "TreeItemOpenTrigger", "OpenTrigger", "MockTreeItemOpenTrigger", "MockOpenTrigger", "TreeItemBody", "CollapsibleContent", "Tree", "Branch", "TreeItem", "Body", "useFocusableGroup", "useArrowNavigationGroup", "createContextScope", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "TREEGRID_ROW_NAME", "createTreegridRowContext", "createTreegridRowScope", "createContextScope", "TreegridRowProvider", "useTreegridRowContext", "PATH_SEPARATOR", "PARENT_OF_SEPARATOR", "TreegridRoot", "forwardRef", "asChild", "classNames", "children", "style", "gridTemplateColumns", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "div", "arrowNavigationAttrs", "useArrowNavigationGroup", "axis", "React", "role", "className", "ref", "TreegridRow", "__treegridRowScope", "id", "parentOf", "open", "propsOpen", "defaultOpen", "onOpenChange", "propsOnOpenChange", "pathParts", "split", "level", "length", "useControllableState", "prop", "onChange", "defaultProp", "focusableGroupAttrs", "useFocusableGroup", "arrowGroupAttrs", "tabbable", "circular", "scope", "aria-level", "tabIndex", "TreegridCell", "indent", "Treegrid", "Row", "Cell", "createContext", "Root", "DialogRoot", "DialogContent", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "useCallback", "useEffect", "useRef", "useState", "log", "useMediaQuery", "useForwardedRef", "useCallback", "useEffect", "useState", "MotionState", "useSwipeToDismiss", "ref", "onDismiss", "dismissThreshold", "debounceThreshold", "offset", "$root", "current", "motionState", "setMotionState", "useState", "gestureStartX", "setGestureStartX", "setIdle", "useCallback", "style", "removeProperty", "setProperty", "setFollowing", "handlePointerDown", "screenX", "handlePointerMove", "delta", "Math", "min", "abs", "handlePointerUp", "useEffect", "addEventListener", "removeEventListener", "document", "documentElement", "MAIN_ROOT_NAME", "NAVIGATION_SIDEBAR_NAME", "COMPLEMENTARY_SIDEBAR_NAME", "MAIN_NAME", "GENERIC_CONSUMER_NAME", "MainProvider", "useMainContext", "createContext", "resizing", "navigationSidebarOpen", "setNavigationSidebarOpen", "nextOpen", "log", "warn", "complementarySidebarOpen", "setComplementarySidebarOpen", "useSidebars", "consumerName", "toggleNavigationSidebar", "useCallback", "openNavigationSidebar", "closeNavigationSidebar", "toggleComplementarySidebar", "openComplementarySidebar", "closeComplementarySidebar", "resizeDebounce", "MainRoot", "propsNavigationSidebarOpen", "defaultNavigationSidebarOpen", "onNavigationSidebarOpenChange", "propsComplementarySidebarOpen", "defaultComplementarySidebarOpen", "onComplementarySidebarOpenChange", "children", "props", "isLg", "useMediaQuery", "ssr", "useControllableState", "prop", "defaultProp", "onChange", "setResizing", "useState", "resizeInterval", "useRef", "handleResize", "current", "clearTimeout", "setTimeout", "useEffect", "window", "addEventListener", "removeEventListener", "React", "displayName", "handleOpenAutoFocus", "event", "document", "body", "hasAttribute", "preventDefault", "MainSidebar", "forwardRef", "classNames", "swipeToDismiss", "onOpenAutoFocus", "open", "setOpen", "side", "forwardedRef", "tx", "useThemeContext", "ref", "useForwardedRef", "noopRef", "useSwipeToDismiss", "onDismiss", "Root", "Primitive", "div", "DialogContent", "DialogRoot", "modal", "forceMount", "tabIndex", "data-side", "data-state", "data-resizing", "className", "inert", "ElevationProvider", "elevation", "MainNavigationSidebar", "MainComplementarySidebar", "MainContent", "asChild", "bounce", "Slot", "data-sidebar-inline-start-state", "data-sidebar-inline-end-state", "MainOverlay", "onClick", "inlineStartSidebarOpen", "inlineEndSidebarOpen", "aria-hidden", "MainNotch", "nav", "data-nav-sidebar-state", "Main", "Content", "Overlay", "NavigationSidebar", "ComplementarySidebar", "Notch", "createContext", "Primitive", "Slot", "React", "forwardRef", "useId", "MESSAGE_NAME", "MessageProvider", "useMessageContext", "createContext", "MessageRoot", "forwardRef", "asChild", "valence", "elevation", "propsElevation", "className", "titleId", "propsTitleId", "descriptionId", "propsDescriptionId", "children", "props", "forwardedRef", "tx", "useThemeContext", "useId", "useElevationContext", "Root", "Slot", "Primitive", "div", "React", "aria-labelledby", "aria-describedby", "ref", "displayName", "MESSAGE_TITLE_NAME", "MessageTitle", "h2", "id", "MESSAGE_BODY_NAME", "MessageBody", "p", "Message", "Title", "Body", "Root", "PopoverRootPrimitive", "PopoverContent", "PopoverContentPrimitive", "PopoverTrigger", "PopoverTriggerPrimitive", "PopoverAnchor", "PopoverAnchorPrimitive", "PopoverPortal", "PopoverPortalPrimitive", "PopoverArrow", "PopoverArrowPrimitive", "PopoverClose", "PopoverClosePrimitive", "Primitive", "Slot", "React", "forwardRef", "PopoverRoot", "PopoverRootPrimitive", "PopoverPortal", "PopoverPortalPrimitive", "PopoverTrigger", "PopoverTriggerPrimitive", "PopoverAnchor", "PopoverAnchorPrimitive", "PopoverClose", "PopoverClosePrimitive", "PopoverArrow", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "PopoverArrowPrimitive", "className", "ref", "PopoverContent", "children", "PopoverContentPrimitive", "sideOffset", "collisionPadding", "ElevationProvider", "elevation", "PopoverViewport", "asChild", "constrainInline", "constrainBlock", "Root", "Slot", "Primitive", "div", "Popover", "Portal", "Trigger", "Anchor", "Arrow", "Close", "Content", "Viewport", "React", "forwardRef", "Status", "forwardRef", "classNames", "children", "progress", "indeterminate", "props", "forwardedRef", "tx", "useThemeContext", "React", "span", "role", "className", "ref", "style", "width", "Math", "round", "Root", "ScrollAreaPrimitiveRoot", "Viewport", "ScrollAreaPrimitiveViewport", "Scrollbar", "ScrollAreaPrimitiveScrollbar", "Thumb", "ScrollAreaPrimitiveThumb", "Corner", "ScrollAreaPrimitiveCorner", "React", "forwardRef", "ScrollAreaRoot", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "ScrollAreaPrimitiveRoot", "className", "ref", "ScrollAreaViewport", "ScrollAreaPrimitiveViewport", "ScrollAreaScrollbar", "variant", "ScrollAreaPrimitiveScrollbar", "data-variant", "ScrollAreaThumb", "ScrollAreaPrimitiveThumb", "ScrollAreaCorner", "ScrollAreaPrimitiveCorner", "ScrollArea", "Root", "Viewport", "Scrollbar", "Thumb", "Corner", "CaretDown", "CaretUp", "Check", "SelectPrimitive", "React", "forwardRef", "SelectRoot", "Root", "SelectTrigger", "Trigger", "SelectValue", "Value", "SelectIcon", "Icon", "SelectPortal", "Portal", "SelectTriggerButton", "forwardRef", "children", "placeholder", "props", "forwardedRef", "tx", "useThemeContext", "React", "asChild", "ref", "Button", "span", "className", "CaretDown", "weight", "SelectContent", "classNames", "Content", "SelectScrollUpButton", "CaretUp", "SelectScrollDownButton", "SelectViewport", "Viewport", "SelectItem", "Item", "SelectItemText", "ItemText", "SelectItemIndicator", "ItemIndicator", "SelectOption", "Check", "SelectGroup", "Group", "SelectLabel", "Label", "SelectSeparator", "Separator", "SelectArrow", "Arrow", "Select", "TriggerButton", "ScrollUpButton", "ScrollDownButton", "Option", "Separator", "SeparatorPrimitive", "React", "Separator", "classNames", "orientation", "props", "tx", "useThemeContext", "React", "SeparatorPrimitive", "className", "Primitive", "Slot", "React", "forwardRef", "Tag", "forwardRef", "asChild", "palette", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "Root", "Slot", "Primitive", "span", "React", "className", "ref", "Primitive", "Slot", "ToastProvider", "ToastProviderPrimitive", "ToastViewport", "ToastViewportPrimitive", "Root", "ToastRootPrimitive", "ToastTitle", "ToastTitlePrimitive", "ToastDescription", "ToastDescriptionPrimitive", "ToastAction", "ToastActionPrimitive", "ToastClose", "ToastClosePrimitive", "React", "forwardRef", "ToastProvider", "ToastProviderPrimitive", "ToastViewport", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "ToastViewportPrimitive", "className", "ref", "ToastRoot", "children", "ToastRootPrimitive", "ElevationProvider", "elevation", "DensityProvider", "density", "ToastBody", "asChild", "Root", "Slot", "Primitive", "div", "ToastTitle", "ToastTitlePrimitive", "ToastDescription", "ToastDescriptionPrimitive", "ToastActions", "ToastAction", "ToastActionPrimitive", "ToastClose", "ToastClosePrimitive", "Toast", "Provider", "Viewport", "Body", "Title", "Description", "Actions", "Action", "Close", "ToolbarPrimitive", "React", "forwardRef", "ToolbarRoot", "forwardRef", "classNames", "children", "props", "forwardedRef", "tx", "useThemeContext", "React", "Root", "className", "ref", "ToolbarButton", "Button", "asChild", "ToolbarLink", "Link", "ToolbarToggleGroup", "elevation", "ButtonGroup", "ToolbarToggleGroupItem", "variant", "density", "ToolbarToggleItem", "ToolbarSeparator", "Separator", "orientation", "Toolbar", "ToggleGroup", "ToggleGroupItem", "Provider", "TooltipProviderPrimitive", "Root", "TooltipRootPrimitive", "TooltipContent", "TooltipContentPrimitive", "TooltipTrigger", "TooltipTriggerPrimitive", "TooltipPortal", "TooltipPortalPrimitive", "TooltipArrow", "TooltipArrowPrimitive", "React", "forwardRef", "TooltipProvider", "TooltipProviderPrimitive", "TooltipRoot", "TooltipRootPrimitive", "TooltipPortal", "TooltipPortalPrimitive", "TooltipTrigger", "TooltipTriggerPrimitive", "TooltipArrow", "forwardRef", "classNames", "props", "forwardedRef", "tx", "useThemeContext", "React", "TooltipArrowPrimitive", "className", "ref", "TooltipContent", "TooltipContentPrimitive", "sideOffset", "collisionPadding", "Tooltip", "Provider", "Root", "Portal", "Trigger", "Arrow", "Content", "createKeyborg", "React", "createContext", "useEffect", "hasIosKeyboard", "navigator", "userAgent", "match", "ThemeContext", "createContext", "tx", "_path", "defaultClassName", "_styleProps", "_options", "themeMode", "hasIosKeyboard", "handleInputModalityChange", "isUsingKeyboard", "document", "body", "setAttribute", "removeAttribute", "ThemeProvider", "children", "fallback", "resourceExtensions", "appNs", "rootElevation", "rootDensity", "useEffect", "defaultView", "kb", "createKeyborg", "subscribe", "unsubscribe", "React", "Provider", "value", "TranslationsProvider", "ElevationProvider", "elevation", "DensityProvider", "density"]
7
7
  }