@dxos/plugin-status-bar 0.8.3 → 0.8.4-main.1068cf700f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/chunk-VP63XX2T.mjs +195 -0
- package/dist/lib/browser/chunk-VP63XX2T.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +31 -41
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-XYQMVXMA.mjs → react-surface-B2T3FRSM.mjs} +13 -11
- package/dist/lib/browser/react-surface-B2T3FRSM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UONVHDU2.mjs +197 -0
- package/dist/lib/node-esm/chunk-UONVHDU2.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +31 -41
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-HZE7P2TS.mjs → react-surface-2KYAWCDQ.mjs} +13 -11
- package/dist/lib/node-esm/react-surface-2KYAWCDQ.mjs.map +7 -0
- package/dist/types/src/StatusBarPlugin.d.ts +2 -1
- package/dist/types/src/StatusBarPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/components/StatusBar.d.ts +3 -3
- package/dist/types/src/components/StatusBar.d.ts.map +1 -1
- package/dist/types/src/components/StatusBar.stories.d.ts +9 -5
- package/dist/types/src/components/StatusBar.stories.d.ts.map +1 -1
- package/dist/types/src/components/StatusBarPanel.d.ts.map +1 -1
- package/dist/types/src/components/VersionNumber.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +17 -12
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +31 -28
- package/src/StatusBarPlugin.ts +8 -15
- package/src/capabilities/index.ts +1 -3
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +39 -0
- package/src/components/StatusBar.stories.tsx +9 -12
- package/src/components/StatusBar.tsx +4 -4
- package/src/components/StatusBarPanel.tsx +6 -5
- package/src/components/VersionNumber.tsx +4 -3
- package/src/meta.ts +8 -6
- package/src/translations.ts +22 -42
- package/dist/lib/browser/chunk-NV543FLZ.mjs +0 -249
- package/dist/lib/browser/chunk-NV543FLZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-XYQMVXMA.mjs.map +0 -7
- package/dist/lib/node/chunk-IQ5QWIXI.cjs +0 -280
- package/dist/lib/node/chunk-IQ5QWIXI.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -86
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-surface-BD2WWDVZ.cjs +0 -61
- package/dist/lib/node/react-surface-BD2WWDVZ.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-4ENEPGOY.mjs +0 -251
- package/dist/lib/node-esm/chunk-4ENEPGOY.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-HZE7P2TS.mjs.map +0 -7
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/src/capabilities/react-surface.tsx +0 -34
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/components/StatusBar.tsx
|
|
4
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
+
import React, { forwardRef } from "react";
|
|
6
|
+
import { mx } from "@dxos/ui-theme";
|
|
7
|
+
var StatusBarText = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => /* @__PURE__ */ React.createElement("span", {
|
|
8
|
+
className: mx(classNames),
|
|
9
|
+
ref: forwardedRef
|
|
10
|
+
}, children));
|
|
11
|
+
var StatusBarButton = /* @__PURE__ */ forwardRef(({ classNames, children, asChild, ...props }, forwardedRef) => {
|
|
12
|
+
const classes = mx("flex items-center justify-center gap-2 p-1 pli-2 rounded-sm", "select-none cursor-pointer dx-focus-ring text-description text-xs", "hover:bg-neutral-75 active:bg-neutral-150 dark:hover:bg-neutral-750 dark:active:bg-neutral-700", classNames);
|
|
13
|
+
return asChild ? /* @__PURE__ */ React.createElement(Slot, {
|
|
14
|
+
role: "button",
|
|
15
|
+
ref: forwardedRef,
|
|
16
|
+
className: classes,
|
|
17
|
+
...props
|
|
18
|
+
}, children) : /* @__PURE__ */ React.createElement("button", {
|
|
19
|
+
className: classes,
|
|
20
|
+
ref: forwardedRef,
|
|
21
|
+
...props
|
|
22
|
+
}, children);
|
|
23
|
+
});
|
|
24
|
+
var StatusBarItem = /* @__PURE__ */ forwardRef(({ classNames, children, ...props }, forwardedRef) => /* @__PURE__ */ React.createElement("div", {
|
|
25
|
+
role: "menuitem",
|
|
26
|
+
className: mx("flex items-center justify-center gap-2 p-1 pli-2 rounded-sm select-none", classNames),
|
|
27
|
+
ref: forwardedRef,
|
|
28
|
+
...props
|
|
29
|
+
}, children));
|
|
30
|
+
var StartContent = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => /* @__PURE__ */ React.createElement("div", {
|
|
31
|
+
role: "none",
|
|
32
|
+
className: mx("flex-grow flex items-center space-x-2", classNames),
|
|
33
|
+
ref: forwardedRef
|
|
34
|
+
}, children));
|
|
35
|
+
var EndContent = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => /* @__PURE__ */ React.createElement("div", {
|
|
36
|
+
role: "none",
|
|
37
|
+
className: mx("flex-grow flex items-center justify-end", classNames),
|
|
38
|
+
ref: forwardedRef
|
|
39
|
+
}, children));
|
|
40
|
+
var StatusBar = {
|
|
41
|
+
Text: StatusBarText,
|
|
42
|
+
Item: StatusBarItem,
|
|
43
|
+
Button: StatusBarButton,
|
|
44
|
+
StartContent,
|
|
45
|
+
EndContent
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// src/meta.ts
|
|
49
|
+
import { trim } from "@dxos/util";
|
|
50
|
+
var meta = {
|
|
51
|
+
id: "dxos.org/plugin/status-bar",
|
|
52
|
+
name: "Status Bar",
|
|
53
|
+
description: trim`
|
|
54
|
+
Persistent bottom bar displaying workspace status information and quick actions.
|
|
55
|
+
Access connection state, notifications, and common commands without leaving your current context.
|
|
56
|
+
`,
|
|
57
|
+
icon: "ph--info--regular"
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/components/VersionNumber.tsx
|
|
61
|
+
import { formatDistance } from "date-fns/formatDistance";
|
|
62
|
+
import React2 from "react";
|
|
63
|
+
import { useConfig } from "@dxos/react-client";
|
|
64
|
+
import { Icon, Link, Message, Popover, Trans, useTranslation } from "@dxos/react-ui";
|
|
65
|
+
var repo = "https://github.com/dxos/dxos";
|
|
66
|
+
var VERSION_REGEX = /([\d.]+)/;
|
|
67
|
+
var VersionNumber = () => {
|
|
68
|
+
const { t } = useTranslation(meta.id);
|
|
69
|
+
const config = useConfig();
|
|
70
|
+
const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};
|
|
71
|
+
const [_, v] = version?.match(VERSION_REGEX) ?? [];
|
|
72
|
+
const isLabs = config.values.runtime?.app?.env?.DX_LABS;
|
|
73
|
+
const releaseUrl = config.values.runtime?.app?.env?.DX_ENVIRONMENT === "production" ? `${repo}/releases/tag/v${version}` : `${repo}/commit/${commitHash}`;
|
|
74
|
+
const previewUrl = "https://docs.dxos.org/composer#technology-preview";
|
|
75
|
+
return /* @__PURE__ */ React2.createElement(Popover.Root, null, /* @__PURE__ */ React2.createElement(Popover.Trigger, {
|
|
76
|
+
asChild: true
|
|
77
|
+
}, /* @__PURE__ */ React2.createElement(StatusBar.Button, {
|
|
78
|
+
classNames: "text-xs"
|
|
79
|
+
}, isLabs ? version : v)), /* @__PURE__ */ React2.createElement(Popover.Portal, null, /* @__PURE__ */ React2.createElement(Popover.Content, {
|
|
80
|
+
side: "top",
|
|
81
|
+
role: "message",
|
|
82
|
+
classNames: "z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]"
|
|
83
|
+
}, /* @__PURE__ */ React2.createElement(Message.Root, {
|
|
84
|
+
valence: "warning",
|
|
85
|
+
classNames: "rounded-be-none p-5"
|
|
86
|
+
}, /* @__PURE__ */ React2.createElement(Message.Title, null, t("warning title")), /* @__PURE__ */ React2.createElement(Message.Content, null, t("technology preview message"), /* @__PURE__ */ React2.createElement("br", null), /* @__PURE__ */ React2.createElement(Link, {
|
|
87
|
+
href: previewUrl,
|
|
88
|
+
target: "_blank",
|
|
89
|
+
rel: "noreferrer",
|
|
90
|
+
variant: "neutral"
|
|
91
|
+
}, t("learn more label"), /* @__PURE__ */ React2.createElement(Icon, {
|
|
92
|
+
icon: "ph--arrow-square-out--bold",
|
|
93
|
+
classNames: "inline mis-1"
|
|
94
|
+
})))), /* @__PURE__ */ React2.createElement("div", {
|
|
95
|
+
role: "none",
|
|
96
|
+
className: "plb-4 pli-5 space-b-2 text-baseText"
|
|
97
|
+
}, timestamp && /* @__PURE__ */ React2.createElement("p", null, t("released message", {
|
|
98
|
+
released: formatDistance(new Date(timestamp), /* @__PURE__ */ new Date(), {
|
|
99
|
+
addSuffix: true
|
|
100
|
+
})
|
|
101
|
+
}), /* @__PURE__ */ React2.createElement("br", null), /* @__PURE__ */ React2.createElement(Link, {
|
|
102
|
+
href: releaseUrl,
|
|
103
|
+
target: "_blank",
|
|
104
|
+
rel: "noreferrer",
|
|
105
|
+
variant: "neutral"
|
|
106
|
+
}, t("see release label"), /* @__PURE__ */ React2.createElement(Icon, {
|
|
107
|
+
icon: "ph--arrow-square-out--bold",
|
|
108
|
+
classNames: "inline mis-1"
|
|
109
|
+
}))), /* @__PURE__ */ React2.createElement("p", null, /* @__PURE__ */ React2.createElement(Trans, {
|
|
110
|
+
t,
|
|
111
|
+
i18nKey: "powered by dxos message",
|
|
112
|
+
components: {
|
|
113
|
+
dxos: /* @__PURE__ */ React2.createElement(Link, {
|
|
114
|
+
href: "https://dxos.org",
|
|
115
|
+
target: "_blank",
|
|
116
|
+
rel: "noreferrer",
|
|
117
|
+
variant: "neutral"
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
}))), /* @__PURE__ */ React2.createElement(Popover.Arrow, null))));
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// src/components/StatusBarPanel.tsx
|
|
124
|
+
import React3, { useState } from "react";
|
|
125
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
126
|
+
import { useConfig as useConfig2 } from "@dxos/react-client";
|
|
127
|
+
import { Icon as Icon2, Popover as Popover2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
128
|
+
var StatusBarActions = () => {
|
|
129
|
+
const { t } = useTranslation2(meta.id);
|
|
130
|
+
const [open, setOpen] = useState(false);
|
|
131
|
+
return /* @__PURE__ */ React3.createElement(Popover2.Root, {
|
|
132
|
+
open,
|
|
133
|
+
onOpenChange: setOpen
|
|
134
|
+
}, /* @__PURE__ */ React3.createElement(EnvironmentLabel, null), /* @__PURE__ */ React3.createElement(VersionNumber, null), /* @__PURE__ */ React3.createElement(StatusBar.Button, {
|
|
135
|
+
asChild: true
|
|
136
|
+
}, /* @__PURE__ */ React3.createElement("a", {
|
|
137
|
+
href: "https://dxos.org/discord",
|
|
138
|
+
target: "_blank",
|
|
139
|
+
rel: "noopener noreferrer"
|
|
140
|
+
}, /* @__PURE__ */ React3.createElement(Icon2, {
|
|
141
|
+
icon: "ph--discord-logo--regular",
|
|
142
|
+
size: 4
|
|
143
|
+
}), /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
144
|
+
classNames: "hidden sm:block"
|
|
145
|
+
}, t("discord label")))), /* @__PURE__ */ React3.createElement(StatusBar.Button, {
|
|
146
|
+
asChild: true
|
|
147
|
+
}, /* @__PURE__ */ React3.createElement("a", {
|
|
148
|
+
href: "https://github.com/dxos/dxos",
|
|
149
|
+
target: "_blank",
|
|
150
|
+
rel: "noopener noreferrer"
|
|
151
|
+
}, /* @__PURE__ */ React3.createElement(Icon2, {
|
|
152
|
+
icon: "ph--github-logo--regular",
|
|
153
|
+
size: 4
|
|
154
|
+
}), /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
155
|
+
classNames: "hidden sm:block"
|
|
156
|
+
}, t("github label")))));
|
|
157
|
+
};
|
|
158
|
+
var StatusBarPanel = () => {
|
|
159
|
+
return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(StatusBarActions, null), /* @__PURE__ */ React3.createElement("span", {
|
|
160
|
+
role: "separator",
|
|
161
|
+
className: "grow"
|
|
162
|
+
}), /* @__PURE__ */ React3.createElement(Surface.Surface, {
|
|
163
|
+
role: "status"
|
|
164
|
+
}));
|
|
165
|
+
};
|
|
166
|
+
var ENV_LABELS = {
|
|
167
|
+
"edge-dev": "Dev",
|
|
168
|
+
"edge-main": "Main",
|
|
169
|
+
"edge-labs": "Labs",
|
|
170
|
+
"edge-production": "Production"
|
|
171
|
+
};
|
|
172
|
+
var EnvironmentLabel = () => {
|
|
173
|
+
const config = useConfig2();
|
|
174
|
+
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
175
|
+
if (!edgeUrl) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const part = new URL(edgeUrl).host.split(".")[0];
|
|
179
|
+
const edgeEnv = ENV_LABELS[part];
|
|
180
|
+
if (!edgeEnv) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return /* @__PURE__ */ React3.createElement(StatusBar.Item, null, /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
184
|
+
classNames: "text-xs text-subdued border border-separator rounded-full pli-1"
|
|
185
|
+
}, /* @__PURE__ */ React3.createElement("span", {
|
|
186
|
+
title: edgeEnv
|
|
187
|
+
}, edgeEnv[0])));
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export {
|
|
191
|
+
StatusBar,
|
|
192
|
+
meta,
|
|
193
|
+
VersionNumber,
|
|
194
|
+
StatusBarActions,
|
|
195
|
+
StatusBarPanel
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=chunk-UONVHDU2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/StatusBar.tsx", "../../../src/meta.ts", "../../../src/components/VersionNumber.tsx", "../../../src/components/StatusBarPanel.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type ComponentPropsWithRef, type PropsWithChildren, type ReactNode, forwardRef } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\n\ntype StatusBarTextProps = ThemedClassName<{ children: ReactNode }>;\n\nconst StatusBarText = forwardRef<HTMLSpanElement, StatusBarTextProps>(({ classNames, children }, forwardedRef) => (\n <span className={mx(classNames)} ref={forwardedRef}>\n {children}\n </span>\n));\n\ntype StatusBarButtonProps = ThemedClassName<ComponentPropsWithRef<'button'> & { asChild?: boolean }>;\n\nconst StatusBarButton = forwardRef<HTMLButtonElement, StatusBarButtonProps>(\n ({ classNames, children, asChild, ...props }, forwardedRef) => {\n const classes = mx(\n 'flex items-center justify-center gap-2 p-1 pli-2 rounded-sm',\n 'select-none cursor-pointer dx-focus-ring text-description text-xs',\n 'hover:bg-neutral-75 active:bg-neutral-150 dark:hover:bg-neutral-750 dark:active:bg-neutral-700',\n classNames,\n );\n\n return asChild ? (\n <Slot role='button' ref={forwardedRef} className={classes} {...props}>\n {children}\n </Slot>\n ) : (\n <button className={classes} ref={forwardedRef} {...props}>\n {children}\n </button>\n );\n },\n);\n\nexport default StatusBarButton;\n\ntype StatusBarItemProps = ThemedClassName<ComponentPropsWithRef<'div'>>;\n\nconst StatusBarItem = forwardRef<HTMLDivElement, StatusBarItemProps>(\n ({ classNames, children, ...props }, forwardedRef) => (\n <div\n role='menuitem'\n className={mx('flex items-center justify-center gap-2 p-1 pli-2 rounded-sm select-none', classNames)}\n ref={forwardedRef}\n {...props}\n >\n {children}\n </div>\n ),\n);\n\ntype StartContentProps = ThemedClassName<PropsWithChildren<{}>>;\n\nconst StartContent = forwardRef<HTMLDivElement, StartContentProps>(({ classNames, children }, forwardedRef) => (\n <div role='none' className={mx('flex-grow flex items-center space-x-2', classNames)} ref={forwardedRef}>\n {children}\n </div>\n));\n\ntype EndContentProps = ThemedClassName<PropsWithChildren<{}>>;\n\nconst EndContent = forwardRef<HTMLDivElement, EndContentProps>(({ classNames, children }, forwardedRef) => (\n <div role='none' className={mx('flex-grow flex items-center justify-end', classNames)} ref={forwardedRef}>\n {children}\n </div>\n));\n\nexport const StatusBar = {\n Text: StatusBarText,\n Item: StatusBarItem,\n Button: StatusBarButton,\n StartContent,\n EndContent,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/status-bar',\n name: 'Status Bar',\n description: trim`\n Persistent bottom bar displaying workspace status information and quick actions.\n Access connection state, notifications, and common commands without leaving your current context.\n `,\n icon: 'ph--info--regular',\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { formatDistance } from 'date-fns/formatDistance';\nimport React from 'react';\n\nimport { useConfig } from '@dxos/react-client';\nimport { Icon, Link, Message, Popover, Trans, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nimport { StatusBar } from './StatusBar';\n\nconst repo = 'https://github.com/dxos/dxos';\n\nconst VERSION_REGEX = /([\\d.]+)/;\n\nexport const VersionNumber = () => {\n const { t } = useTranslation(meta.id);\n const config = useConfig();\n const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};\n const [_, v] = version?.match(VERSION_REGEX) ?? [];\n const isLabs = config.values.runtime?.app?.env?.DX_LABS;\n\n const releaseUrl =\n config.values.runtime?.app?.env?.DX_ENVIRONMENT === 'production'\n ? `${repo}/releases/tag/v${version}`\n : `${repo}/commit/${commitHash}`;\n\n const previewUrl = 'https://docs.dxos.org/composer#technology-preview';\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <StatusBar.Button classNames='text-xs'>{isLabs ? version : v}</StatusBar.Button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n side='top'\n role='message'\n classNames='z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]'\n >\n <Message.Root valence='warning' classNames='rounded-be-none p-5'>\n <Message.Title>{t('warning title')}</Message.Title>\n <Message.Content>\n {t('technology preview message')}\n <br />\n <Link href={previewUrl} target='_blank' rel='noreferrer' variant='neutral'>\n {t('learn more label')}\n <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />\n </Link>\n </Message.Content>\n </Message.Root>\n <div role='none' className='plb-4 pli-5 space-b-2 text-baseText'>\n {timestamp && (\n <p>\n {t('released message', {\n released: formatDistance(new Date(timestamp), new Date(), { addSuffix: true }),\n })}\n <br />\n <Link href={releaseUrl} target='_blank' rel='noreferrer' variant='neutral'>\n {t('see release label')}\n <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />\n </Link>\n </p>\n )}\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'powered by dxos message',\n components: {\n dxos: <Link href='https://dxos.org' target='_blank' rel='noreferrer' variant='neutral' />,\n },\n }}\n />\n </p>\n </div>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { useConfig } from '@dxos/react-client';\nimport { Icon, Popover, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nimport { StatusBar } from './StatusBar';\nimport { VersionNumber } from './VersionNumber';\n\nexport const StatusBarActions = () => {\n const { t } = useTranslation(meta.id);\n const [open, setOpen] = useState(false);\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <EnvironmentLabel />\n <VersionNumber />\n <StatusBar.Button asChild>\n <a href='https://dxos.org/discord' target='_blank' rel='noopener noreferrer'>\n <Icon icon='ph--discord-logo--regular' size={4} />\n <StatusBar.Text classNames='hidden sm:block'>{t('discord label')}</StatusBar.Text>\n </a>\n </StatusBar.Button>\n <StatusBar.Button asChild>\n <a href='https://github.com/dxos/dxos' target='_blank' rel='noopener noreferrer'>\n <Icon icon='ph--github-logo--regular' size={4} />\n <StatusBar.Text classNames='hidden sm:block'>{t('github label')}</StatusBar.Text>\n </a>\n </StatusBar.Button>\n </Popover.Root>\n );\n};\n\nexport const StatusBarPanel = () => {\n return (\n <>\n <StatusBarActions />\n <span role='separator' className='grow' />\n <Surface.Surface role='status' />\n </>\n );\n};\n\nconst ENV_LABELS: Record<string, string> = {\n 'edge-dev': 'Dev',\n 'edge-main': 'Main',\n 'edge-labs': 'Labs',\n 'edge-production': 'Production',\n};\n\nconst EnvironmentLabel = () => {\n const config = useConfig();\n const edgeUrl = config.values.runtime?.services?.edge?.url;\n if (!edgeUrl) {\n return null;\n }\n const part = new URL(edgeUrl).host.split('.')[0];\n const edgeEnv = ENV_LABELS[part];\n if (!edgeEnv) {\n return null;\n }\n\n return (\n <StatusBar.Item>\n <StatusBar.Text classNames='text-xs text-subdued border border-separator rounded-full pli-1'>\n <span title={edgeEnv}>{edgeEnv[0]}</span>\n </StatusBar.Text>\n </StatusBar.Item>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Slot", "React", "forwardRef", "mx", "StatusBarText", "forwardRef", "classNames", "children", "forwardedRef", "span", "className", "mx", "ref", "StatusBarButton", "asChild", "props", "classes", "Slot", "role", "button", "StatusBarItem", "forwardRef", "classNames", "children", "props", "forwardedRef", "div", "role", "className", "mx", "ref", "StartContent", "EndContent", "StatusBar", "Text", "StatusBarText", "Item", "Button", "StatusBarButton", "trim", "meta", "id", "name", "description", "trim", "icon", "formatDistance", "React", "useConfig", "Icon", "Link", "Message", "Popover", "Trans", "useTranslation", "repo", "VERSION_REGEX", "VersionNumber", "t", "useTranslation", "meta", "id", "config", "useConfig", "version", "timestamp", "commitHash", "values", "runtime", "app", "build", "_", "v", "match", "isLabs", "env", "DX_LABS", "releaseUrl", "DX_ENVIRONMENT", "previewUrl", "React", "Popover", "Root", "Trigger", "asChild", "StatusBar", "Button", "classNames", "Portal", "Content", "side", "role", "Message", "valence", "Title", "br", "Link", "href", "target", "rel", "variant", "Icon", "icon", "div", "className", "p", "released", "formatDistance", "Date", "addSuffix", "Trans", "i18nKey", "components", "dxos", "Arrow", "React", "useState", "Surface", "useConfig", "Icon", "Popover", "useTranslation", "StatusBarActions", "t", "useTranslation", "meta", "id", "open", "setOpen", "useState", "React", "Popover", "Root", "onOpenChange", "EnvironmentLabel", "VersionNumber", "StatusBar", "Button", "asChild", "a", "href", "target", "rel", "Icon", "icon", "size", "Text", "classNames", "StatusBarPanel", "span", "role", "className", "Surface", "ENV_LABELS", "config", "useConfig", "edgeUrl", "values", "runtime", "services", "edge", "url", "part", "URL", "host", "split", "edgeEnv", "Item", "title"]
|
|
7
|
+
}
|
|
@@ -1,57 +1,47 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
STATUS_BAR_PLUGIN,
|
|
4
3
|
StatusBar,
|
|
5
4
|
StatusBarActions,
|
|
6
5
|
StatusBarPanel,
|
|
7
6
|
VersionNumber,
|
|
8
7
|
meta
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UONVHDU2.mjs";
|
|
10
9
|
|
|
11
|
-
//
|
|
12
|
-
import {
|
|
10
|
+
// src/StatusBarPlugin.ts
|
|
11
|
+
import { Plugin } from "@dxos/app-framework";
|
|
12
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
13
13
|
|
|
14
|
-
//
|
|
15
|
-
import {
|
|
16
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
14
|
+
// src/capabilities/react-surface/index.ts
|
|
15
|
+
import { Capability } from "@dxos/app-framework";
|
|
16
|
+
var ReactSurface = Capability.lazy("ReactSurface", () => import("./react-surface-2KYAWCDQ.mjs"));
|
|
17
17
|
|
|
18
|
-
//
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
var translations_default = [
|
|
37
|
-
translations
|
|
18
|
+
// src/translations.ts
|
|
19
|
+
var translations = [
|
|
20
|
+
{
|
|
21
|
+
"en-US": {
|
|
22
|
+
[meta.id]: {
|
|
23
|
+
"plugin name": "Status Bar",
|
|
24
|
+
"warning title": "WARNING",
|
|
25
|
+
"technology preview message": "Composer is currently in beta.",
|
|
26
|
+
"learn more label": "Learn more",
|
|
27
|
+
"released message": "This version released {{released}}.",
|
|
28
|
+
"see release label": "See release on GitHub",
|
|
29
|
+
"powered by dxos message": "Powered by <dxos>DXOS</dxos>",
|
|
30
|
+
"discord label": "Discord",
|
|
31
|
+
"github label": "GitHub",
|
|
32
|
+
"feedback label": "Feedback"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
38
36
|
];
|
|
39
37
|
|
|
40
|
-
//
|
|
41
|
-
var StatusBarPlugin = ()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}),
|
|
47
|
-
defineModule({
|
|
48
|
-
id: `${meta.id}/module/react-surface`,
|
|
49
|
-
activatesOn: Events.SetupReactSurface,
|
|
50
|
-
activate: ReactSurface
|
|
51
|
-
})
|
|
52
|
-
]);
|
|
38
|
+
// src/StatusBarPlugin.ts
|
|
39
|
+
var StatusBarPlugin = Plugin.define(meta).pipe(AppPlugin.addSurfaceModule({
|
|
40
|
+
activate: ReactSurface
|
|
41
|
+
}), AppPlugin.addTranslationsModule({
|
|
42
|
+
translations
|
|
43
|
+
}), Plugin.make);
|
|
53
44
|
export {
|
|
54
|
-
STATUS_BAR_PLUGIN,
|
|
55
45
|
StatusBar,
|
|
56
46
|
StatusBarActions,
|
|
57
47
|
StatusBarPanel,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/StatusBarPlugin.ts", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/StatusBarPlugin.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const StatusBarPlugin = Plugin.define(meta).pipe(\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Status Bar',\n 'warning title': 'WARNING',\n 'technology preview message': 'Composer is currently in beta.',\n 'learn more label': 'Learn more',\n 'released message': 'This version released {{released}}.',\n 'see release label': 'See release on GitHub',\n 'powered by dxos message': 'Powered by <dxos>DXOS</dxos>',\n 'discord label': 'Discord',\n 'github label': 'GitHub',\n 'feedback label': 'Feedback',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;;;ACD1B,SAASC,kBAAkB;AAEpB,IAAMC,eAAeC,WAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACElE,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,iBAAiB;QACjB,8BAA8B;QAC9B,oBAAoB;QACpB,oBAAoB;QACpB,qBAAqB;QACrB,2BAA2B;QAC3B,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;MACpB;IACF;EACF;;;;AFbK,IAAMC,kBAAkBC,OAAOC,OAAOC,IAAAA,EAAMC,KACjDC,UAAUC,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpDH,UAAUI,sBAAsB;EAAEC;AAAa,CAAA,GAC/CT,OAAOU,IAAI;",
|
|
6
|
+
"names": ["Plugin", "AppPlugin", "Capability", "ReactSurface", "Capability", "lazy", "translations", "meta", "id", "StatusBarPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations", "make"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"
|
|
1
|
+
{"inputs":{"src/components/StatusBar.tsx":{"bytes":7670,"imports":[{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"format":"esm"},"src/meta.ts":{"bytes":1555,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/components/VersionNumber.tsx":{"bytes":10499,"imports":[{"path":"date-fns/formatDistance","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/components/StatusBar.tsx","kind":"import-statement","original":"./StatusBar"}],"format":"esm"},"src/components/StatusBarPanel.tsx":{"bytes":8447,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/components/StatusBar.tsx","kind":"import-statement","original":"./StatusBar"},{"path":"src/components/VersionNumber.tsx","kind":"import-statement","original":"./VersionNumber"}],"format":"esm"},"src/components/index.ts":{"bytes":684,"imports":[{"path":"src/components/StatusBar.tsx","kind":"import-statement","original":"./StatusBar"},{"path":"src/components/StatusBarPanel.tsx","kind":"import-statement","original":"./StatusBarPanel"},{"path":"src/components/VersionNumber.tsx","kind":"import-statement","original":"./VersionNumber"}],"format":"esm"},"src/capabilities/react-surface/react-surface.tsx":{"bytes":4439,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"src/capabilities/react-surface/index.ts":{"bytes":914,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":491,"imports":[{"path":"src/capabilities/react-surface/index.ts","kind":"import-statement","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":2422,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/StatusBarPlugin.ts":{"bytes":1958,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":654,"imports":[{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/StatusBarPlugin.ts","kind":"import-statement","original":"./StatusBarPlugin"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2345},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-UONVHDU2.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/react-surface-2KYAWCDQ.mjs","kind":"dynamic-import"}],"exports":["StatusBar","StatusBarActions","StatusBarPanel","StatusBarPlugin","VersionNumber","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/StatusBarPlugin.ts":{"bytesInOutput":265},"src/capabilities/react-surface/index.ts":{"bytesInOutput":148},"src/capabilities/index.ts":{"bytesInOutput":0},"src/translations.ts":{"bytesInOutput":562}},"bytes":1445},"dist/lib/node-esm/react-surface-2KYAWCDQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2157},"dist/lib/node-esm/react-surface-2KYAWCDQ.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-UONVHDU2.mjs","kind":"import-statement"},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface/react-surface.tsx","inputs":{"src/capabilities/react-surface/react-surface.tsx":{"bytesInOutput":1024}},"bytes":1370},"dist/lib/node-esm/chunk-UONVHDU2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14933},"dist/lib/node-esm/chunk-UONVHDU2.mjs":{"imports":[{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"date-fns/formatDistance","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["StatusBar","StatusBarActions","StatusBarPanel","VersionNumber","meta"],"inputs":{"src/components/StatusBar.tsx":{"bytesInOutput":1944},"src/meta.ts":{"bytesInOutput":350},"src/components/VersionNumber.tsx":{"bytesInOutput":3023},"src/components/StatusBarPanel.tsx":{"bytesInOutput":2540},"src/components/index.ts":{"bytesInOutput":0}},"bytes":8205}}}
|
|
@@ -4,36 +4,38 @@ import {
|
|
|
4
4
|
StatusBarPanel,
|
|
5
5
|
VersionNumber,
|
|
6
6
|
meta
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UONVHDU2.mjs";
|
|
8
8
|
|
|
9
|
-
//
|
|
9
|
+
// src/capabilities/react-surface/react-surface.tsx
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
10
11
|
import React from "react";
|
|
11
|
-
import { Capabilities,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
13
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
14
|
+
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
15
|
+
Surface.create({
|
|
14
16
|
id: `${meta.id}/status-bar`,
|
|
15
17
|
role: "status-bar",
|
|
16
18
|
component: () => /* @__PURE__ */ React.createElement(StatusBarPanel, null)
|
|
17
19
|
}),
|
|
18
|
-
|
|
20
|
+
Surface.create({
|
|
19
21
|
id: `${meta.id}/status-bar--r0-footer`,
|
|
20
22
|
role: "status-bar--r0-footer",
|
|
21
|
-
component: () => /* @__PURE__ */ React.createElement(Surface, {
|
|
23
|
+
component: () => /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
22
24
|
role: "status"
|
|
23
25
|
})
|
|
24
26
|
}),
|
|
25
|
-
|
|
27
|
+
Surface.create({
|
|
26
28
|
id: `${meta.id}/status-bar--r1-footer`,
|
|
27
29
|
role: "status-bar--r1-footer",
|
|
28
30
|
component: () => /* @__PURE__ */ React.createElement(StatusBarActions, null)
|
|
29
31
|
}),
|
|
30
|
-
|
|
32
|
+
Surface.create({
|
|
31
33
|
id: `${meta.id}/header-end`,
|
|
32
34
|
role: "header-end",
|
|
33
35
|
component: () => /* @__PURE__ */ React.createElement(VersionNumber, null)
|
|
34
36
|
})
|
|
35
|
-
]);
|
|
37
|
+
])));
|
|
36
38
|
export {
|
|
37
39
|
react_surface_default as default
|
|
38
40
|
};
|
|
39
|
-
//# sourceMappingURL=react-surface-
|
|
41
|
+
//# sourceMappingURL=react-surface-2KYAWCDQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\n\nimport { StatusBarActions, StatusBarPanel, VersionNumber } from '../../components';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/status-bar`,\n role: 'status-bar',\n component: () => <StatusBarPanel />,\n }),\n Surface.create({\n id: `${meta.id}/status-bar--r0-footer`,\n role: 'status-bar--r0-footer',\n component: () => <Surface.Surface role='status' />,\n }),\n Surface.create({\n id: `${meta.id}/status-bar--r1-footer`,\n role: 'status-bar--r1-footer',\n component: () => <StatusBarActions />,\n }),\n Surface.create({\n id: `${meta.id}/header-end`,\n role: 'header-end',\n component: () => <VersionNumber />,\n }),\n ]),\n ),\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AAKxB,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,cAAc;EAChDC,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACC,gBAAAA,IAAAA;EACpB,CAAA;EACAN,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACL,QAAQA,SAAO;MAACI,MAAK;;EACzC,CAAA;EACAJ,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACE,kBAAAA,IAAAA;EACpB,CAAA;EACAP,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACG,eAAAA,IAAAA;EACpB,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "component", "StatusBarPanel", "StatusBarActions", "VersionNumber"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarPlugin.d.ts","sourceRoot":"","sources":["../../../src/StatusBarPlugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatusBarPlugin.d.ts","sourceRoot":"","sources":["../../../src/StatusBarPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO7C,eAAO,MAAM,eAAe,4BAI3B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './react-surface';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,YAAY,iJAAmE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
3
|
+
declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.ReactSurface>>, never, never>;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# sourceMappingURL=react-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAM/D,wBAyBE"}
|
|
@@ -10,19 +10,19 @@ export declare const StatusBar: {
|
|
|
10
10
|
Text: React.ForwardRefExoticComponent<Omit<{
|
|
11
11
|
children: ReactNode;
|
|
12
12
|
}, "className"> & {
|
|
13
|
-
classNames?: import("@dxos/
|
|
13
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
14
14
|
} & React.RefAttributes<HTMLSpanElement>>;
|
|
15
15
|
Item: React.ForwardRefExoticComponent<Omit<StatusBarItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
16
|
Button: React.ForwardRefExoticComponent<Omit<StatusBarButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
17
17
|
StartContent: React.ForwardRefExoticComponent<Omit<{
|
|
18
18
|
children?: ReactNode | undefined;
|
|
19
19
|
}, "className"> & {
|
|
20
|
-
classNames?: import("@dxos/
|
|
20
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
21
21
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
22
|
EndContent: React.ForwardRefExoticComponent<Omit<{
|
|
23
23
|
children?: ReactNode | undefined;
|
|
24
24
|
}, "className"> & {
|
|
25
|
-
classNames?: import("@dxos/
|
|
25
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
26
26
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
27
27
|
};
|
|
28
28
|
//# sourceMappingURL=StatusBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,EAA0B,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAE9G,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWtD,KAAK,oBAAoB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAErG,QAAA,MAAM,eAAe,6GAmBpB,CAAC;AAEF,eAAe,eAAe,CAAC;AAE/B,KAAK,kBAAkB,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;AA+BxE,eAAO,MAAM,SAAS;;kBAhEgC,SAAS;;;;;;;;;;;;;;;;CAsE9D,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import '@
|
|
2
|
-
import { type Meta } from '@storybook/react';
|
|
1
|
+
import { type StoryObj } from '@storybook/react-vite';
|
|
3
2
|
import React from 'react';
|
|
4
|
-
import { StatusBar } from './StatusBar';
|
|
5
3
|
export declare const DefaultStory: () => React.JSX.Element;
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
declare const meta: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: any;
|
|
7
|
+
render: () => React.JSX.Element;
|
|
8
|
+
decorators: import("@storybook/react").Decorator[];
|
|
9
|
+
};
|
|
8
10
|
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
9
13
|
//# sourceMappingURL=StatusBar.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"StatusBar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,eAAO,MAAM,YAAY,yBAmBxB,CAAC;AAEF,QAAA,MAAM,IAAI;;eAEgB,GAAG;;;CAGK,CAAC;AAEnC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBarPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBarPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/StatusBarPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAWxC,eAAO,MAAM,gBAAgB,yBAsB5B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAQ1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/VersionNumber.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VersionNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/VersionNumber.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,eAAO,MAAM,aAAa,yBAkEzB,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const meta: PluginMeta;
|
|
1
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
2
|
+
export declare const meta: Plugin.Meta;
|
|
4
3
|
//# sourceMappingURL=meta.d.ts.map
|