@dxos/plugin-status-bar 0.8.4-main.e8ec1fe → 0.8.4-main.effb148878
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/StatusBarActions-ZW4NBUYE.mjs +8 -0
- package/dist/lib/neutral/StatusBarActions-ZW4NBUYE.mjs.map +7 -0
- package/dist/lib/neutral/StatusBarPanel-4VTSCYUZ.mjs +20 -0
- package/dist/lib/neutral/StatusBarPanel-4VTSCYUZ.mjs.map +7 -0
- package/dist/lib/neutral/StatusBarPlugin.mjs +17 -0
- package/dist/lib/neutral/StatusBarPlugin.mjs.map +7 -0
- package/dist/lib/neutral/VersionNumber-KFAOZTYT.mjs +7 -0
- package/dist/lib/neutral/VersionNumber-KFAOZTYT.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +7 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CVCKWIFA.mjs +20 -0
- package/dist/lib/neutral/chunk-CVCKWIFA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-JK45L5QY.mjs +42 -0
- package/dist/lib/neutral/chunk-JK45L5QY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-R4HDO3RK.mjs +18 -0
- package/dist/lib/neutral/chunk-R4HDO3RK.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +48 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +11 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +7 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +7 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +11 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-LRBTL7UM.mjs +27 -0
- package/dist/lib/neutral/react-surface-LRBTL7UM.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +16 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/types/src/StatusBarPlugin.d.ts +3 -1
- package/dist/types/src/StatusBarPlugin.d.ts.map +1 -1
- package/dist/types/src/StatusBarPlugin.test.d.ts +2 -0
- package/dist/types/src/StatusBarPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +2 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/{StatusBar.d.ts → StatusBar/StatusBar.d.ts} +9 -7
- package/dist/types/src/components/StatusBar/StatusBar.d.ts.map +1 -0
- package/dist/types/src/components/{StatusBar.stories.d.ts → StatusBar/StatusBar.stories.d.ts} +3 -1
- package/dist/types/src/components/StatusBar/StatusBar.stories.d.ts.map +1 -0
- package/dist/types/src/components/StatusBar/index.d.ts +2 -0
- package/dist/types/src/components/StatusBar/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/StatusBarActions/StatusBarActions.d.ts +4 -0
- package/dist/types/src/containers/StatusBarActions/StatusBarActions.d.ts.map +1 -0
- package/dist/types/src/containers/StatusBarActions/StatusBarActions.stories.d.ts +7 -0
- package/dist/types/src/containers/StatusBarActions/StatusBarActions.stories.d.ts.map +1 -0
- package/dist/types/src/containers/StatusBarActions/index.d.ts +2 -0
- package/dist/types/src/containers/StatusBarActions/index.d.ts.map +1 -0
- package/dist/types/src/containers/StatusBarPanel/StatusBarPanel.d.ts +4 -0
- package/dist/types/src/containers/StatusBarPanel/StatusBarPanel.d.ts.map +1 -0
- package/dist/types/src/containers/StatusBarPanel/index.d.ts +2 -0
- package/dist/types/src/containers/StatusBarPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/VersionNumber/VersionNumber.d.ts +4 -0
- package/dist/types/src/containers/VersionNumber/VersionNumber.d.ts.map +1 -0
- package/dist/types/src/containers/VersionNumber/index.d.ts +2 -0
- package/dist/types/src/containers/VersionNumber/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +5 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +3 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +3 -12
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +81 -33
- package/src/StatusBarPlugin.test.ts +23 -0
- package/src/StatusBarPlugin.ts +12 -16
- package/src/capabilities/index.ts +2 -2
- package/src/capabilities/react-surface.tsx +25 -27
- package/src/components/StatusBar/StatusBar.stories.tsx +45 -0
- package/src/components/{StatusBar.tsx → StatusBar/StatusBar.tsx} +44 -22
- package/src/components/StatusBar/index.ts +5 -0
- package/src/components/index.ts +0 -2
- package/src/containers/StatusBarActions/StatusBarActions.stories.tsx +62 -0
- package/src/containers/StatusBarActions/StatusBarActions.tsx +19 -0
- package/src/containers/StatusBarActions/index.ts +5 -0
- package/src/containers/StatusBarPanel/StatusBarPanel.tsx +21 -0
- package/src/containers/StatusBarPanel/index.ts +5 -0
- package/src/containers/VersionNumber/VersionNumber.tsx +46 -0
- package/src/containers/VersionNumber/index.ts +5 -0
- package/src/containers/index.ts +9 -0
- package/src/index.ts +1 -2
- package/src/meta.ts +5 -3
- package/src/plugin.ts +9 -0
- package/src/translations.ts +3 -11
- package/dist/lib/browser/chunk-EY5IFRNW.mjs +0 -251
- package/dist/lib/browser/chunk-EY5IFRNW.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -57
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-JLUMVT7Q.mjs +0 -39
- package/dist/lib/browser/react-surface-JLUMVT7Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-X4F44ADI.mjs +0 -253
- package/dist/lib/node-esm/chunk-X4F44ADI.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -58
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-O34EDFRO.mjs +0 -40
- package/dist/lib/node-esm/react-surface-O34EDFRO.mjs.map +0 -7
- package/dist/types/src/components/StatusBar.d.ts.map +0 -1
- package/dist/types/src/components/StatusBar.stories.d.ts.map +0 -1
- package/dist/types/src/components/StatusBarPanel.d.ts +0 -4
- package/dist/types/src/components/StatusBarPanel.d.ts.map +0 -1
- package/dist/types/src/components/VersionNumber.d.ts +0 -3
- package/dist/types/src/components/VersionNumber.d.ts.map +0 -1
- package/src/components/StatusBar.stories.tsx +0 -45
- package/src/components/StatusBarPanel.tsx +0 -76
- package/src/components/VersionNumber.tsx +0 -85
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
|
|
3
|
-
// src/components/StatusBar.tsx
|
|
4
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
5
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
6
|
-
import React, { forwardRef } from "react";
|
|
7
|
-
import { mx } from "@dxos/react-ui-theme";
|
|
8
|
-
var StatusBarText = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => {
|
|
9
|
-
var _effect = _useSignals();
|
|
10
|
-
try {
|
|
11
|
-
return /* @__PURE__ */ React.createElement("span", {
|
|
12
|
-
className: mx(classNames),
|
|
13
|
-
ref: forwardedRef
|
|
14
|
-
}, children);
|
|
15
|
-
} finally {
|
|
16
|
-
_effect.f();
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var StatusBarButton = /* @__PURE__ */ forwardRef(({ classNames, children, asChild, ...props }, forwardedRef) => {
|
|
20
|
-
var _effect = _useSignals();
|
|
21
|
-
try {
|
|
22
|
-
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);
|
|
23
|
-
return asChild ? /* @__PURE__ */ React.createElement(Slot, {
|
|
24
|
-
role: "button",
|
|
25
|
-
ref: forwardedRef,
|
|
26
|
-
className: classes,
|
|
27
|
-
...props
|
|
28
|
-
}, children) : /* @__PURE__ */ React.createElement("button", {
|
|
29
|
-
className: classes,
|
|
30
|
-
ref: forwardedRef,
|
|
31
|
-
...props
|
|
32
|
-
}, children);
|
|
33
|
-
} finally {
|
|
34
|
-
_effect.f();
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
var StatusBarItem = /* @__PURE__ */ forwardRef(({ classNames, children, ...props }, forwardedRef) => {
|
|
38
|
-
var _effect = _useSignals();
|
|
39
|
-
try {
|
|
40
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
41
|
-
role: "menuitem",
|
|
42
|
-
className: mx("flex items-center justify-center gap-2 p-1 pli-2 rounded-sm select-none", classNames),
|
|
43
|
-
ref: forwardedRef,
|
|
44
|
-
...props
|
|
45
|
-
}, children);
|
|
46
|
-
} finally {
|
|
47
|
-
_effect.f();
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
var StartContent = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => {
|
|
51
|
-
var _effect = _useSignals();
|
|
52
|
-
try {
|
|
53
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
54
|
-
role: "none",
|
|
55
|
-
className: mx("flex-grow flex items-center space-x-2", classNames),
|
|
56
|
-
ref: forwardedRef
|
|
57
|
-
}, children);
|
|
58
|
-
} finally {
|
|
59
|
-
_effect.f();
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
var EndContent = /* @__PURE__ */ forwardRef(({ classNames, children }, forwardedRef) => {
|
|
63
|
-
var _effect = _useSignals();
|
|
64
|
-
try {
|
|
65
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
66
|
-
role: "none",
|
|
67
|
-
className: mx("flex-grow flex items-center justify-end", classNames),
|
|
68
|
-
ref: forwardedRef
|
|
69
|
-
}, children);
|
|
70
|
-
} finally {
|
|
71
|
-
_effect.f();
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
var StatusBar = {
|
|
75
|
-
Text: StatusBarText,
|
|
76
|
-
Item: StatusBarItem,
|
|
77
|
-
Button: StatusBarButton,
|
|
78
|
-
StartContent,
|
|
79
|
-
EndContent
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
// src/meta.ts
|
|
83
|
-
import { trim } from "@dxos/util";
|
|
84
|
-
var meta = {
|
|
85
|
-
id: "dxos.org/plugin/status-bar",
|
|
86
|
-
name: "Status Bar",
|
|
87
|
-
description: trim`
|
|
88
|
-
Persistent bottom bar displaying workspace status information and quick actions.
|
|
89
|
-
Access connection state, notifications, and common commands without leaving your current context.
|
|
90
|
-
`,
|
|
91
|
-
icon: "ph--info--regular"
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
// src/components/VersionNumber.tsx
|
|
95
|
-
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
96
|
-
import { formatDistance } from "date-fns/formatDistance";
|
|
97
|
-
import React2 from "react";
|
|
98
|
-
import { useConfig } from "@dxos/react-client";
|
|
99
|
-
import { Icon, Link, Message, Popover, Trans, useTranslation } from "@dxos/react-ui";
|
|
100
|
-
var repo = "https://github.com/dxos/dxos";
|
|
101
|
-
var VERSION_REGEX = /([\d.]+)/;
|
|
102
|
-
var VersionNumber = () => {
|
|
103
|
-
var _effect = _useSignals2();
|
|
104
|
-
try {
|
|
105
|
-
const { t } = useTranslation(meta.id);
|
|
106
|
-
const config = useConfig();
|
|
107
|
-
const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};
|
|
108
|
-
const [_, v] = version?.match(VERSION_REGEX) ?? [];
|
|
109
|
-
const isLabs = config.values.runtime?.app?.env?.DX_LABS;
|
|
110
|
-
const releaseUrl = config.values.runtime?.app?.env?.DX_ENVIRONMENT === "production" ? `${repo}/releases/tag/v${version}` : `${repo}/commit/${commitHash}`;
|
|
111
|
-
const previewUrl = "https://docs.dxos.org/composer#technology-preview";
|
|
112
|
-
return /* @__PURE__ */ React2.createElement(Popover.Root, null, /* @__PURE__ */ React2.createElement(Popover.Trigger, {
|
|
113
|
-
asChild: true
|
|
114
|
-
}, /* @__PURE__ */ React2.createElement(StatusBar.Button, {
|
|
115
|
-
classNames: "text-xs"
|
|
116
|
-
}, isLabs ? version : v)), /* @__PURE__ */ React2.createElement(Popover.Portal, null, /* @__PURE__ */ React2.createElement(Popover.Content, {
|
|
117
|
-
side: "top",
|
|
118
|
-
role: "message",
|
|
119
|
-
classNames: "z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]"
|
|
120
|
-
}, /* @__PURE__ */ React2.createElement(Message.Root, {
|
|
121
|
-
valence: "warning",
|
|
122
|
-
classNames: "rounded-be-none p-5"
|
|
123
|
-
}, /* @__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, {
|
|
124
|
-
href: previewUrl,
|
|
125
|
-
target: "_blank",
|
|
126
|
-
rel: "noreferrer",
|
|
127
|
-
variant: "neutral"
|
|
128
|
-
}, t("learn more label"), /* @__PURE__ */ React2.createElement(Icon, {
|
|
129
|
-
icon: "ph--arrow-square-out--bold",
|
|
130
|
-
classNames: "inline mis-1"
|
|
131
|
-
})))), /* @__PURE__ */ React2.createElement("div", {
|
|
132
|
-
role: "none",
|
|
133
|
-
className: "plb-4 pli-5 space-b-2 text-baseText"
|
|
134
|
-
}, timestamp && /* @__PURE__ */ React2.createElement("p", null, t("released message", {
|
|
135
|
-
released: formatDistance(new Date(timestamp), /* @__PURE__ */ new Date(), {
|
|
136
|
-
addSuffix: true
|
|
137
|
-
})
|
|
138
|
-
}), /* @__PURE__ */ React2.createElement("br", null), /* @__PURE__ */ React2.createElement(Link, {
|
|
139
|
-
href: releaseUrl,
|
|
140
|
-
target: "_blank",
|
|
141
|
-
rel: "noreferrer",
|
|
142
|
-
variant: "neutral"
|
|
143
|
-
}, t("see release label"), /* @__PURE__ */ React2.createElement(Icon, {
|
|
144
|
-
icon: "ph--arrow-square-out--bold",
|
|
145
|
-
classNames: "inline mis-1"
|
|
146
|
-
}))), /* @__PURE__ */ React2.createElement("p", null, /* @__PURE__ */ React2.createElement(Trans, {
|
|
147
|
-
t,
|
|
148
|
-
i18nKey: "powered by dxos message",
|
|
149
|
-
components: {
|
|
150
|
-
dxos: /* @__PURE__ */ React2.createElement(Link, {
|
|
151
|
-
href: "https://dxos.org",
|
|
152
|
-
target: "_blank",
|
|
153
|
-
rel: "noreferrer",
|
|
154
|
-
variant: "neutral"
|
|
155
|
-
})
|
|
156
|
-
}
|
|
157
|
-
}))), /* @__PURE__ */ React2.createElement(Popover.Arrow, null))));
|
|
158
|
-
} finally {
|
|
159
|
-
_effect.f();
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// src/components/StatusBarPanel.tsx
|
|
164
|
-
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
165
|
-
import React3, { useState } from "react";
|
|
166
|
-
import { Surface } from "@dxos/app-framework/react";
|
|
167
|
-
import { useConfig as useConfig2 } from "@dxos/react-client";
|
|
168
|
-
import { Icon as Icon2, Popover as Popover2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
169
|
-
var StatusBarActions = () => {
|
|
170
|
-
var _effect = _useSignals3();
|
|
171
|
-
try {
|
|
172
|
-
const { t } = useTranslation2(meta.id);
|
|
173
|
-
const [open, setOpen] = useState(false);
|
|
174
|
-
return /* @__PURE__ */ React3.createElement(Popover2.Root, {
|
|
175
|
-
open,
|
|
176
|
-
onOpenChange: setOpen
|
|
177
|
-
}, /* @__PURE__ */ React3.createElement(EnvironmentLabel, null), /* @__PURE__ */ React3.createElement(VersionNumber, null), /* @__PURE__ */ React3.createElement(StatusBar.Button, {
|
|
178
|
-
asChild: true
|
|
179
|
-
}, /* @__PURE__ */ React3.createElement("a", {
|
|
180
|
-
href: "https://dxos.org/discord",
|
|
181
|
-
target: "_blank",
|
|
182
|
-
rel: "noopener noreferrer"
|
|
183
|
-
}, /* @__PURE__ */ React3.createElement(Icon2, {
|
|
184
|
-
icon: "ph--discord-logo--regular",
|
|
185
|
-
size: 4
|
|
186
|
-
}), /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
187
|
-
classNames: "hidden sm:block"
|
|
188
|
-
}, t("discord label")))), /* @__PURE__ */ React3.createElement(StatusBar.Button, {
|
|
189
|
-
asChild: true
|
|
190
|
-
}, /* @__PURE__ */ React3.createElement("a", {
|
|
191
|
-
href: "https://github.com/dxos/dxos",
|
|
192
|
-
target: "_blank",
|
|
193
|
-
rel: "noopener noreferrer"
|
|
194
|
-
}, /* @__PURE__ */ React3.createElement(Icon2, {
|
|
195
|
-
icon: "ph--github-logo--regular",
|
|
196
|
-
size: 4
|
|
197
|
-
}), /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
198
|
-
classNames: "hidden sm:block"
|
|
199
|
-
}, t("github label")))));
|
|
200
|
-
} finally {
|
|
201
|
-
_effect.f();
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
var StatusBarPanel = () => {
|
|
205
|
-
var _effect = _useSignals3();
|
|
206
|
-
try {
|
|
207
|
-
return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(StatusBarActions, null), /* @__PURE__ */ React3.createElement("span", {
|
|
208
|
-
role: "separator",
|
|
209
|
-
className: "grow"
|
|
210
|
-
}), /* @__PURE__ */ React3.createElement(Surface, {
|
|
211
|
-
role: "status"
|
|
212
|
-
}));
|
|
213
|
-
} finally {
|
|
214
|
-
_effect.f();
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
var ENV_LABELS = {
|
|
218
|
-
"edge-dev": "Dev",
|
|
219
|
-
"edge-main": "Main",
|
|
220
|
-
"edge-labs": "Labs",
|
|
221
|
-
"edge-production": "Production"
|
|
222
|
-
};
|
|
223
|
-
var EnvironmentLabel = () => {
|
|
224
|
-
var _effect = _useSignals3();
|
|
225
|
-
try {
|
|
226
|
-
const config = useConfig2();
|
|
227
|
-
const edgeUrl = config.values.runtime?.services?.edge?.url;
|
|
228
|
-
if (!edgeUrl) {
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
const part = new URL(edgeUrl).host.split(".")[0];
|
|
232
|
-
const edgeEnv = ENV_LABELS[part];
|
|
233
|
-
if (!edgeEnv) {
|
|
234
|
-
return null;
|
|
235
|
-
}
|
|
236
|
-
return /* @__PURE__ */ React3.createElement(StatusBar.Item, null, /* @__PURE__ */ React3.createElement(StatusBar.Text, {
|
|
237
|
-
classNames: "text-xs text-subdued border border-separator rounded-full pli-1"
|
|
238
|
-
}, /* @__PURE__ */ React3.createElement("span", {
|
|
239
|
-
title: edgeEnv
|
|
240
|
-
}, edgeEnv[0])));
|
|
241
|
-
} finally {
|
|
242
|
-
_effect.f();
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
export {
|
|
247
|
-
StatusBar,
|
|
248
|
-
meta,
|
|
249
|
-
VersionNumber,
|
|
250
|
-
StatusBarActions,
|
|
251
|
-
StatusBarPanel
|
|
252
|
-
};
|
|
253
|
-
//# sourceMappingURL=chunk-X4F44ADI.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
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/react-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 PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\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/react';\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 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,58 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
StatusBar,
|
|
4
|
-
StatusBarActions,
|
|
5
|
-
StatusBarPanel,
|
|
6
|
-
VersionNumber,
|
|
7
|
-
meta
|
|
8
|
-
} from "./chunk-X4F44ADI.mjs";
|
|
9
|
-
|
|
10
|
-
// src/StatusBarPlugin.ts
|
|
11
|
-
import { Capabilities, Events, contributes, defineModule, definePlugin } from "@dxos/app-framework";
|
|
12
|
-
|
|
13
|
-
// src/capabilities/index.ts
|
|
14
|
-
import { lazy } from "@dxos/app-framework";
|
|
15
|
-
var ReactSurface = lazy(() => import("./react-surface-O34EDFRO.mjs"));
|
|
16
|
-
|
|
17
|
-
// src/translations.ts
|
|
18
|
-
var translations = [
|
|
19
|
-
{
|
|
20
|
-
"en-US": {
|
|
21
|
-
[meta.id]: {
|
|
22
|
-
"plugin name": "Status Bar",
|
|
23
|
-
"warning title": "WARNING",
|
|
24
|
-
"technology preview message": "Composer is currently in beta.",
|
|
25
|
-
"learn more label": "Learn more",
|
|
26
|
-
"released message": "This version released {{released}}.",
|
|
27
|
-
"see release label": "See release on GitHub",
|
|
28
|
-
"powered by dxos message": "Powered by <dxos>DXOS</dxos>",
|
|
29
|
-
"discord label": "Discord",
|
|
30
|
-
"github label": "GitHub",
|
|
31
|
-
"feedback label": "Feedback"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
// src/StatusBarPlugin.ts
|
|
38
|
-
var StatusBarPlugin = definePlugin(meta, () => [
|
|
39
|
-
defineModule({
|
|
40
|
-
id: `${meta.id}/module/translations`,
|
|
41
|
-
activatesOn: Events.SetupTranslations,
|
|
42
|
-
activate: () => contributes(Capabilities.Translations, translations)
|
|
43
|
-
}),
|
|
44
|
-
defineModule({
|
|
45
|
-
id: `${meta.id}/module/react-surface`,
|
|
46
|
-
activatesOn: Events.SetupReactSurface,
|
|
47
|
-
activate: ReactSurface
|
|
48
|
-
})
|
|
49
|
-
]);
|
|
50
|
-
export {
|
|
51
|
-
StatusBar,
|
|
52
|
-
StatusBarActions,
|
|
53
|
-
StatusBarPanel,
|
|
54
|
-
StatusBarPlugin,
|
|
55
|
-
VersionNumber,
|
|
56
|
-
meta
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
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 { Capabilities, Events, contributes, defineModule, definePlugin } from '@dxos/app-framework';\n\nimport { ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const StatusBarPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const ReactSurface = lazy(() => 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,cAAcC,QAAQC,aAAaC,cAAcC,oBAAoB;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,eAAeC,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACEvC,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;;;;AFdK,IAAMC,kBAAkBC,aAAaC,MAAM,MAAM;EACtDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAUM;EACZ,CAAA;CACD;",
|
|
6
|
-
"names": ["Capabilities", "Events", "contributes", "defineModule", "definePlugin", "lazy", "ReactSurface", "lazy", "translations", "meta", "id", "StatusBarPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"src/components/StatusBar.tsx":{"bytes":8418,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"src/meta.ts":{"bytes":1559,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/components/VersionNumber.tsx":{"bytes":10885,"imports":[{"path":"@preact-signals/safe-react/tracking","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":"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":8974,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/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"},{"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.tsx":{"bytes":3953,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","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/index.ts":{"bytes":783,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","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":2771,"imports":[{"path":"@dxos/app-framework","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":2678},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-X4F44ADI.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/react-surface-O34EDFRO.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":470},"src/capabilities/index.ts":{"bytesInOutput":115},"src/translations.ts":{"bytesInOutput":562}},"bytes":1603},"dist/lib/node-esm/react-surface-O34EDFRO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1897},"dist/lib/node-esm/react-surface-O34EDFRO.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-X4F44ADI.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":942}},"bytes":1274},"dist/lib/node-esm/chunk-X4F44ADI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14984},"dist/lib/node-esm/chunk-X4F44ADI.mjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework/react","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":2551},"src/meta.ts":{"bytesInOutput":350},"src/components/VersionNumber.tsx":{"bytesInOutput":3286},"src/components/StatusBarPanel.tsx":{"bytesInOutput":2940},"src/components/index.ts":{"bytesInOutput":0}},"bytes":9475}}}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
StatusBarActions,
|
|
4
|
-
StatusBarPanel,
|
|
5
|
-
VersionNumber,
|
|
6
|
-
meta
|
|
7
|
-
} from "./chunk-X4F44ADI.mjs";
|
|
8
|
-
|
|
9
|
-
// src/capabilities/react-surface.tsx
|
|
10
|
-
import React from "react";
|
|
11
|
-
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
12
|
-
import { Surface } from "@dxos/app-framework/react";
|
|
13
|
-
var react_surface_default = (() => contributes(Capabilities.ReactSurface, [
|
|
14
|
-
createSurface({
|
|
15
|
-
id: `${meta.id}/status-bar`,
|
|
16
|
-
role: "status-bar",
|
|
17
|
-
component: () => /* @__PURE__ */ React.createElement(StatusBarPanel, null)
|
|
18
|
-
}),
|
|
19
|
-
createSurface({
|
|
20
|
-
id: `${meta.id}/status-bar--r0-footer`,
|
|
21
|
-
role: "status-bar--r0-footer",
|
|
22
|
-
component: () => /* @__PURE__ */ React.createElement(Surface, {
|
|
23
|
-
role: "status"
|
|
24
|
-
})
|
|
25
|
-
}),
|
|
26
|
-
createSurface({
|
|
27
|
-
id: `${meta.id}/status-bar--r1-footer`,
|
|
28
|
-
role: "status-bar--r1-footer",
|
|
29
|
-
component: () => /* @__PURE__ */ React.createElement(StatusBarActions, null)
|
|
30
|
-
}),
|
|
31
|
-
createSurface({
|
|
32
|
-
id: `${meta.id}/header-end`,
|
|
33
|
-
role: "header-end",
|
|
34
|
-
component: () => /* @__PURE__ */ React.createElement(VersionNumber, null)
|
|
35
|
-
})
|
|
36
|
-
]));
|
|
37
|
-
export {
|
|
38
|
-
react_surface_default as default
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=react-surface-O34EDFRO.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/react';\n\nimport { StatusBarActions, StatusBarPanel, VersionNumber } from '../components';\nimport { meta } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/status-bar`,\n role: 'status-bar',\n component: () => <StatusBarPanel />,\n }),\n createSurface({\n id: `${meta.id}/status-bar--r0-footer`,\n role: 'status-bar--r0-footer',\n component: () => <Surface role='status' />,\n }),\n createSurface({\n id: `${meta.id}/status-bar--r1-footer`,\n role: 'status-bar--r1-footer',\n component: () => <StatusBarActions />,\n }),\n createSurface({\n id: `${meta.id}/header-end`,\n role: 'header-end',\n component: () => <VersionNumber />,\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,eAAe;AAKxB,IAAA,yBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACC,gBAAAA,IAAAA;EACpB,CAAA;EACAL,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACE,SAAAA;MAAQH,MAAK;;EACjC,CAAA;EACAH,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACG,kBAAAA,IAAAA;EACpB,CAAA;EACAP,cAAc;IACZC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,WAAW,MAAM,sBAAA,cAACI,eAAAA,IAAAA;EACpB,CAAA;CACD;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "createSurface", "Surface", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "component", "StatusBarPanel", "Surface", "StatusBarActions", "VersionNumber"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"}
|
|
@@ -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
|
-
};
|