@dxos/plugin-status-bar 0.8.4-main.9735255 → 0.8.4-main.9be5663bfe

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 (79) hide show
  1. package/dist/lib/browser/index.mjs +77 -29
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +78 -29
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/StatusBarPlugin.d.ts.map +1 -1
  8. package/dist/types/src/capabilities/index.d.ts +2 -1
  9. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  10. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  11. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  12. package/dist/types/src/components/{StatusBar.d.ts → StatusBar/StatusBar.d.ts} +6 -4
  13. package/dist/types/src/components/StatusBar/StatusBar.d.ts.map +1 -0
  14. package/dist/types/src/components/{StatusBar.stories.d.ts → StatusBar/StatusBar.stories.d.ts} +3 -1
  15. package/dist/types/src/components/StatusBar/StatusBar.stories.d.ts.map +1 -0
  16. package/dist/types/src/components/StatusBar/index.d.ts +2 -0
  17. package/dist/types/src/components/StatusBar/index.d.ts.map +1 -0
  18. package/dist/types/src/components/index.d.ts +0 -2
  19. package/dist/types/src/components/index.d.ts.map +1 -1
  20. package/dist/types/src/containers/StatusBarActions/StatusBarActions.d.ts +4 -0
  21. package/dist/types/src/containers/StatusBarActions/StatusBarActions.d.ts.map +1 -0
  22. package/dist/types/src/containers/StatusBarActions/StatusBarActions.stories.d.ts +7 -0
  23. package/dist/types/src/containers/StatusBarActions/StatusBarActions.stories.d.ts.map +1 -0
  24. package/dist/types/src/containers/StatusBarActions/index.d.ts +2 -0
  25. package/dist/types/src/containers/StatusBarActions/index.d.ts.map +1 -0
  26. package/dist/types/src/containers/StatusBarPanel/StatusBarPanel.d.ts +4 -0
  27. package/dist/types/src/containers/StatusBarPanel/StatusBarPanel.d.ts.map +1 -0
  28. package/dist/types/src/containers/StatusBarPanel/index.d.ts +2 -0
  29. package/dist/types/src/containers/StatusBarPanel/index.d.ts.map +1 -0
  30. package/dist/types/src/containers/VersionNumber/VersionNumber.d.ts +4 -0
  31. package/dist/types/src/containers/VersionNumber/VersionNumber.d.ts.map +1 -0
  32. package/dist/types/src/containers/VersionNumber/index.d.ts +2 -0
  33. package/dist/types/src/containers/VersionNumber/index.d.ts.map +1 -0
  34. package/dist/types/src/containers/index.d.ts +5 -0
  35. package/dist/types/src/containers/index.d.ts.map +1 -0
  36. package/dist/types/src/translations.d.ts +11 -11
  37. package/dist/types/src/translations.d.ts.map +1 -1
  38. package/dist/types/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +26 -19
  40. package/src/StatusBarPlugin.ts +7 -5
  41. package/src/capabilities/index.ts +3 -1
  42. package/src/capabilities/react-surface.tsx +33 -0
  43. package/src/components/StatusBar/StatusBar.stories.tsx +45 -0
  44. package/src/components/{StatusBar.tsx → StatusBar/StatusBar.tsx} +41 -19
  45. package/src/components/StatusBar/index.ts +5 -0
  46. package/src/components/index.ts +0 -2
  47. package/src/containers/StatusBarActions/StatusBarActions.stories.tsx +61 -0
  48. package/src/containers/StatusBarActions/StatusBarActions.tsx +70 -0
  49. package/src/containers/StatusBarActions/index.ts +5 -0
  50. package/src/containers/StatusBarPanel/StatusBarPanel.tsx +21 -0
  51. package/src/containers/StatusBarPanel/index.ts +5 -0
  52. package/src/containers/VersionNumber/VersionNumber.tsx +97 -0
  53. package/src/containers/VersionNumber/index.ts +5 -0
  54. package/src/containers/index.ts +9 -0
  55. package/src/meta.ts +1 -1
  56. package/src/translations.ts +11 -11
  57. package/dist/lib/browser/chunk-G3E35NNM.mjs +0 -195
  58. package/dist/lib/browser/chunk-G3E35NNM.mjs.map +0 -7
  59. package/dist/lib/browser/react-surface-MYYYPTEW.mjs +0 -40
  60. package/dist/lib/browser/react-surface-MYYYPTEW.mjs.map +0 -7
  61. package/dist/lib/node-esm/chunk-RE6CUOP4.mjs +0 -197
  62. package/dist/lib/node-esm/chunk-RE6CUOP4.mjs.map +0 -7
  63. package/dist/lib/node-esm/react-surface-RNK64YYP.mjs +0 -41
  64. package/dist/lib/node-esm/react-surface-RNK64YYP.mjs.map +0 -7
  65. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  66. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  67. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  68. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  69. package/dist/types/src/components/StatusBar.d.ts.map +0 -1
  70. package/dist/types/src/components/StatusBar.stories.d.ts.map +0 -1
  71. package/dist/types/src/components/StatusBarPanel.d.ts +0 -4
  72. package/dist/types/src/components/StatusBarPanel.d.ts.map +0 -1
  73. package/dist/types/src/components/VersionNumber.d.ts +0 -3
  74. package/dist/types/src/components/VersionNumber.d.ts.map +0 -1
  75. package/src/capabilities/react-surface/index.ts +0 -7
  76. package/src/capabilities/react-surface/react-surface.tsx +0 -39
  77. package/src/components/StatusBar.stories.tsx +0 -45
  78. package/src/components/StatusBarPanel.tsx +0 -76
  79. package/src/components/VersionNumber.tsx +0 -85
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));
@@ -1,39 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import React from 'react';
7
-
8
- import { Capability, Common } from '@dxos/app-framework';
9
- import { Surface } from '@dxos/app-framework/react';
10
-
11
- import { StatusBarActions, StatusBarPanel, VersionNumber } from '../../components';
12
- import { meta } from '../../meta';
13
-
14
- export default Capability.makeModule(() =>
15
- Effect.succeed(
16
- Capability.contributes(Common.Capability.ReactSurface, [
17
- Common.createSurface({
18
- id: `${meta.id}/status-bar`,
19
- role: 'status-bar',
20
- component: () => <StatusBarPanel />,
21
- }),
22
- Common.createSurface({
23
- id: `${meta.id}/status-bar--r0-footer`,
24
- role: 'status-bar--r0-footer',
25
- component: () => <Surface role='status' />,
26
- }),
27
- Common.createSurface({
28
- id: `${meta.id}/status-bar--r1-footer`,
29
- role: 'status-bar--r1-footer',
30
- component: () => <StatusBarActions />,
31
- }),
32
- Common.createSurface({
33
- id: `${meta.id}/header-end`,
34
- role: 'header-end',
35
- component: () => <VersionNumber />,
36
- }),
37
- ]),
38
- ),
39
- );
@@ -1,45 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React from 'react';
7
-
8
- import { Icon } from '@dxos/react-ui';
9
- import { withTheme } from '@dxos/react-ui/testing';
10
-
11
- import { StatusBar } from './StatusBar';
12
-
13
- export const DefaultStory = () => (
14
- <div>
15
- <StatusBar.EndContent>
16
- <StatusBar.Button>
17
- <Icon icon='ph--mailbox--regular' size={4} />
18
- <StatusBar.Text>Quick feedback</StatusBar.Text>
19
- </StatusBar.Button>
20
- <a href='https://dxos.org/discord' target='_blank' rel='noopener noreferrer'>
21
- <StatusBar.Button>
22
- <Icon icon='ph--discord-logo--regular' size={4} />
23
- <StatusBar.Text>Join us on Discord</StatusBar.Text>
24
- </StatusBar.Button>
25
- </a>
26
- <StatusBar.Item>
27
- <Icon icon='ph--lightning--regular' size={4} />
28
- <StatusBar.Text>Online</StatusBar.Text>
29
- </StatusBar.Item>
30
- </StatusBar.EndContent>
31
- </div>
32
- );
33
-
34
- const meta = {
35
- title: 'plugins/plugin-status/StatusBar',
36
- component: StatusBar as any,
37
- render: DefaultStory,
38
- decorators: [withTheme],
39
- } satisfies Meta<typeof StatusBar>;
40
-
41
- export default meta;
42
-
43
- type Story = StoryObj<typeof meta>;
44
-
45
- export const Default: Story = {};
@@ -1,76 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { useState } from 'react';
6
-
7
- import { Surface } from '@dxos/app-framework/react';
8
- import { useConfig } from '@dxos/react-client';
9
- import { Icon, Popover, useTranslation } from '@dxos/react-ui';
10
-
11
- import { meta } from '../meta';
12
-
13
- import { StatusBar } from './StatusBar';
14
- import { VersionNumber } from './VersionNumber';
15
-
16
- export const StatusBarActions = () => {
17
- const { t } = useTranslation(meta.id);
18
- const [open, setOpen] = useState(false);
19
-
20
- return (
21
- <Popover.Root open={open} onOpenChange={setOpen}>
22
- <EnvironmentLabel />
23
- <VersionNumber />
24
- <StatusBar.Button asChild>
25
- <a href='https://dxos.org/discord' target='_blank' rel='noopener noreferrer'>
26
- <Icon icon='ph--discord-logo--regular' size={4} />
27
- <StatusBar.Text classNames='hidden sm:block'>{t('discord label')}</StatusBar.Text>
28
- </a>
29
- </StatusBar.Button>
30
- <StatusBar.Button asChild>
31
- <a href='https://github.com/dxos/dxos' target='_blank' rel='noopener noreferrer'>
32
- <Icon icon='ph--github-logo--regular' size={4} />
33
- <StatusBar.Text classNames='hidden sm:block'>{t('github label')}</StatusBar.Text>
34
- </a>
35
- </StatusBar.Button>
36
- </Popover.Root>
37
- );
38
- };
39
-
40
- export const StatusBarPanel = () => {
41
- return (
42
- <>
43
- <StatusBarActions />
44
- <span role='separator' className='grow' />
45
- <Surface role='status' />
46
- </>
47
- );
48
- };
49
-
50
- const ENV_LABELS: Record<string, string> = {
51
- 'edge-dev': 'Dev',
52
- 'edge-main': 'Main',
53
- 'edge-labs': 'Labs',
54
- 'edge-production': 'Production',
55
- };
56
-
57
- const EnvironmentLabel = () => {
58
- const config = useConfig();
59
- const edgeUrl = config.values.runtime?.services?.edge?.url;
60
- if (!edgeUrl) {
61
- return null;
62
- }
63
- const part = new URL(edgeUrl).host.split('.')[0];
64
- const edgeEnv = ENV_LABELS[part];
65
- if (!edgeEnv) {
66
- return null;
67
- }
68
-
69
- return (
70
- <StatusBar.Item>
71
- <StatusBar.Text classNames='text-xs text-subdued border border-separator rounded-full pli-1'>
72
- <span title={edgeEnv}>{edgeEnv[0]}</span>
73
- </StatusBar.Text>
74
- </StatusBar.Item>
75
- );
76
- };
@@ -1,85 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { formatDistance } from 'date-fns/formatDistance';
6
- import React from 'react';
7
-
8
- import { useConfig } from '@dxos/react-client';
9
- import { Icon, Link, Message, Popover, Trans, useTranslation } from '@dxos/react-ui';
10
-
11
- import { meta } from '../meta';
12
-
13
- import { StatusBar } from './StatusBar';
14
-
15
- const repo = 'https://github.com/dxos/dxos';
16
-
17
- const VERSION_REGEX = /([\d.]+)/;
18
-
19
- export const VersionNumber = () => {
20
- const { t } = useTranslation(meta.id);
21
- const config = useConfig();
22
- const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};
23
- const [_, v] = version?.match(VERSION_REGEX) ?? [];
24
- const isLabs = config.values.runtime?.app?.env?.DX_LABS;
25
-
26
- const releaseUrl =
27
- config.values.runtime?.app?.env?.DX_ENVIRONMENT === 'production'
28
- ? `${repo}/releases/tag/v${version}`
29
- : `${repo}/commit/${commitHash}`;
30
-
31
- const previewUrl = 'https://docs.dxos.org/composer#technology-preview';
32
-
33
- return (
34
- <Popover.Root>
35
- <Popover.Trigger asChild>
36
- <StatusBar.Button classNames='text-xs'>{isLabs ? version : v}</StatusBar.Button>
37
- </Popover.Trigger>
38
- <Popover.Portal>
39
- <Popover.Content
40
- side='top'
41
- role='message'
42
- classNames='z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]'
43
- >
44
- <Message.Root valence='warning' classNames='rounded-be-none p-5'>
45
- <Message.Title>{t('warning title')}</Message.Title>
46
- <Message.Content>
47
- {t('technology preview message')}
48
- <br />
49
- <Link href={previewUrl} target='_blank' rel='noreferrer' variant='neutral'>
50
- {t('learn more label')}
51
- <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />
52
- </Link>
53
- </Message.Content>
54
- </Message.Root>
55
- <div role='none' className='plb-4 pli-5 space-b-2 text-baseText'>
56
- {timestamp && (
57
- <p>
58
- {t('released message', {
59
- released: formatDistance(new Date(timestamp), new Date(), { addSuffix: true }),
60
- })}
61
- <br />
62
- <Link href={releaseUrl} target='_blank' rel='noreferrer' variant='neutral'>
63
- {t('see release label')}
64
- <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />
65
- </Link>
66
- </p>
67
- )}
68
- <p>
69
- <Trans
70
- {...{
71
- t,
72
- i18nKey: 'powered by dxos message',
73
- components: {
74
- dxos: <Link href='https://dxos.org' target='_blank' rel='noreferrer' variant='neutral' />,
75
- },
76
- }}
77
- />
78
- </p>
79
- </div>
80
- <Popover.Arrow />
81
- </Popover.Content>
82
- </Popover.Portal>
83
- </Popover.Root>
84
- );
85
- };