@coworkee/airworks 0.0.1023 → 0.0.1024
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/README.md +3 -1
- package/dist/apps/admin/identity.js +7 -6
- package/dist/apps/admin/index.js +2 -1
- package/dist/apps/admin/mail.js +7 -6
- package/dist/apps/admin/system.js +8 -7
- package/dist/apps/assistant.js +3 -2
- package/dist/apps/chat.js +2 -1
- package/dist/apps/data.js +2 -1
- package/dist/apps/file-preview.js +2 -1
- package/dist/apps/notifications.js +3 -2
- package/dist/apps/profile.js +1 -1
- package/dist/apps/report-designer.js +2 -1
- package/dist/icons.d.ts +33 -0
- package/dist/icons.js +39 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -21,4 +21,6 @@ Apps are hidden when the user lacks their permission, like the menu of the Blazo
|
|
|
21
21
|
|
|
22
22
|
`coworkee new --airworks` creates an app with this client in the Aspire app host; it takes the packages from the tarballs inside the template, or with `--airworks-packages npm` the version of the Coworkee release on npm. Documentation: [AirWorks client](https://fgilde.github.io/CoworkeeLib/web/airworks/)
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
`icons` holds white Material Symbols glyphs as `data:` URLs for apps where the AirWorks icon set has no fitting icon (`icon: icons.chat`); your own apps can use them too.
|
|
25
|
+
|
|
26
|
+
License: MIT. The glyphs in `icons` are from [Material Symbols / Material Icons](https://github.com/google/material-design-icons) by Google, licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { choices, crudApp } from "../../crud.js";
|
|
2
2
|
import { display, esc } from "../../dom.js";
|
|
3
3
|
import { formDialog, infoDialog } from "../../form.js";
|
|
4
|
+
import { icons } from "../../icons.js";
|
|
4
5
|
const identity = '/api/v1/identity';
|
|
5
6
|
const json = (method, body) => ({ method, body: body === undefined ? undefined : JSON.stringify(body) });
|
|
6
7
|
const quiet = (promise, fallback) => promise.catch(() => fallback);
|
|
@@ -35,7 +36,7 @@ export async function editGrants(coworkee, providerType, key, title) {
|
|
|
35
36
|
return false;
|
|
36
37
|
}
|
|
37
38
|
export const usersApp = crudApp({
|
|
38
|
-
id: 'coworkee.admin.users', group: 'Identity', title: 'Users', icon:
|
|
39
|
+
id: 'coworkee.admin.users', group: 'Identity', title: 'Users', icon: icons.manageAccounts, accent: '#1565c0', width: 920,
|
|
39
40
|
permissions: ['Identity.Users.View'],
|
|
40
41
|
search: true, serverSearch: true,
|
|
41
42
|
load: async ({ request }, { page, pageSize, search }) => {
|
|
@@ -114,7 +115,7 @@ export const usersApp = crudApp({
|
|
|
114
115
|
live: () => ['tenant:users'],
|
|
115
116
|
});
|
|
116
117
|
export const groupsApp = crudApp({
|
|
117
|
-
id: 'coworkee.admin.groups', group: 'Identity', title: 'Groups', icon:
|
|
118
|
+
id: 'coworkee.admin.groups', group: 'Identity', title: 'Groups', icon: icons.groups, accent: '#6a1b9a',
|
|
118
119
|
permissions: ['Identity.Groups.View'],
|
|
119
120
|
search: true, serverSearch: true,
|
|
120
121
|
load: async ({ request }, { page, pageSize, search }) => {
|
|
@@ -151,7 +152,7 @@ const roleFields = [
|
|
|
151
152
|
{ name: 'selectableForRegistration', label: 'Selectable for registration', type: 'bool' },
|
|
152
153
|
];
|
|
153
154
|
export const rolesApp = crudApp({
|
|
154
|
-
id: 'coworkee.admin.roles', group: 'Identity', title: 'Roles', icon:
|
|
155
|
+
id: 'coworkee.admin.roles', group: 'Identity', title: 'Roles', icon: icons.roles, accent: '#ad1457',
|
|
155
156
|
permissions: ['Identity.Roles.View'],
|
|
156
157
|
search: true,
|
|
157
158
|
load: async ({ request }) => ({ items: await request(`${identity}/roles`) }),
|
|
@@ -177,7 +178,7 @@ const showSecret = async (coworkee, result) => {
|
|
|
177
178
|
await infoDialog(coworkee, coworkee.t('Client secret'), `<p>${esc(coworkee.t('Copy the secret now, it is not shown again:'))}</p><pre class="cw-secret">${esc(result.clientSecret)}</pre>`);
|
|
178
179
|
};
|
|
179
180
|
export const clientsApp = crudApp({
|
|
180
|
-
id: 'coworkee.admin.clients', group: 'Identity', title: 'Applications', icon:
|
|
181
|
+
id: 'coworkee.admin.clients', group: 'Identity', title: 'Applications', icon: icons.apps, accent: '#00695c', width: 940,
|
|
181
182
|
permissions: ['Identity.Clients.Manage'], hostOnly: true,
|
|
182
183
|
search: true,
|
|
183
184
|
load: async ({ request }) => ({ items: await request(`${identity}/clients`) }),
|
|
@@ -214,7 +215,7 @@ const scopeFields = [
|
|
|
214
215
|
{ name: 'description', label: 'Description', type: 'textarea' }, { name: 'resources', label: 'Resources', type: 'list', hint: 'Audiences of the access token, e.g. https://api.example' },
|
|
215
216
|
];
|
|
216
217
|
export const scopesApp = crudApp({
|
|
217
|
-
id: 'coworkee.admin.scopes', group: 'Identity', title: 'Scopes', icon:
|
|
218
|
+
id: 'coworkee.admin.scopes', group: 'Identity', title: 'Scopes', icon: icons.checklist, accent: '#4e342e',
|
|
218
219
|
permissions: ['Identity.Clients.Manage'], hostOnly: true,
|
|
219
220
|
search: true,
|
|
220
221
|
load: async ({ request }) => ({ items: await request(`${identity}/scopes`) }),
|
|
@@ -228,7 +229,7 @@ export const scopesApp = crudApp({
|
|
|
228
229
|
});
|
|
229
230
|
const inDays = (days) => new Date(Date.now() + days * 86400000).toISOString();
|
|
230
231
|
export const apiKeysApp = crudApp({
|
|
231
|
-
id: 'coworkee.admin.api-keys', group: 'Identity', title: 'API keys', icon:
|
|
232
|
+
id: 'coworkee.admin.api-keys', group: 'Identity', title: 'API keys', icon: icons.key, accent: '#37474f', width: 900,
|
|
232
233
|
permissions: ['ApiKeys.Manage'],
|
|
233
234
|
load: async ({ request }) => ({ items: await request(`${identity}/api-keys`) }),
|
|
234
235
|
columns: [
|
package/dist/apps/admin/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { esc } from "../../dom.js";
|
|
2
|
+
import { icons } from "../../icons.js";
|
|
2
3
|
import { aiSettingsApp } from "../assistant.js";
|
|
3
4
|
import { identityApps } from "./identity.js";
|
|
4
5
|
import { mailApps } from "./mail.js";
|
|
@@ -11,7 +12,7 @@ const allowed = (coworkee) => coworkee.apps.filter((app) => app.group && !app.hi
|
|
|
11
12
|
/** Every administration app the user may open, grouped like the administration menu of the web app. */
|
|
12
13
|
export const administrationApp = (coworkee) => {
|
|
13
14
|
const definition = (visible) => ({
|
|
14
|
-
id: administrationAppId, title: coworkee.t('Administration'), icon:
|
|
15
|
+
id: administrationAppId, title: coworkee.t('Administration'), icon: icons.adminPanel, accent: '#35496b', width: 760, height: 560, singleInstance: true,
|
|
15
16
|
requiredPermissions: visible ? [] : [nobody],
|
|
16
17
|
render: ({ host }) => {
|
|
17
18
|
const { t } = coworkee;
|
package/dist/apps/admin/mail.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { choices, crudApp, renderCrud } from "../../crud.js";
|
|
2
2
|
import { display, errorText, esc } from "../../dom.js";
|
|
3
3
|
import { confirmDialog, formDialog, infoDialog } from "../../form.js";
|
|
4
|
+
import { icons } from "../../icons.js";
|
|
4
5
|
import { settingsPageApp } from "../settings.js";
|
|
5
6
|
import { userLookup } from "./identity.js";
|
|
6
7
|
const mail = '/api/v1/mail';
|
|
@@ -45,7 +46,7 @@ export async function previewRecipients(coworkee, source) {
|
|
|
45
46
|
return false;
|
|
46
47
|
}
|
|
47
48
|
export const mailTemplatesApp = crudApp({
|
|
48
|
-
id: 'coworkee.admin.mail-templates', group: 'Communication', title: 'Mail templates', icon:
|
|
49
|
+
id: 'coworkee.admin.mail-templates', group: 'Communication', title: 'Mail templates', icon: icons.drafts, accent: '#00838f',
|
|
49
50
|
permissions: ['Mail.Templates.Manage'],
|
|
50
51
|
search: true,
|
|
51
52
|
load: async ({ request }) => ({ items: await request(`${mail}/templates`) }),
|
|
@@ -70,7 +71,7 @@ export const mailTemplatesApp = crudApp({
|
|
|
70
71
|
});
|
|
71
72
|
/** Subject and body of a template in one language with a live preview, a test mail to oneself and the way back to the default. */
|
|
72
73
|
export const mailTemplateApp = (coworkee) => ({
|
|
73
|
-
id: mailTemplateAppId, title: coworkee.t('Template'), icon:
|
|
74
|
+
id: mailTemplateAppId, title: coworkee.t('Template'), icon: icons.drafts, accent: '#00838f', width: 1080, height: 680, hidden: true,
|
|
74
75
|
requiredPermissions: ['Mail.Templates.Manage'],
|
|
75
76
|
render: async ({ host, intent, setTitle }) => {
|
|
76
77
|
const { t, request } = coworkee;
|
|
@@ -145,7 +146,7 @@ const campaignRequest = async (coworkee, values) => {
|
|
|
145
146
|
};
|
|
146
147
|
const editable = (campaign) => campaign.status === 'Draft';
|
|
147
148
|
export const mailCampaignsApp = crudApp({
|
|
148
|
-
id: 'coworkee.admin.mail-campaigns', group: 'Communication', title: 'Mail campaigns', icon:
|
|
149
|
+
id: 'coworkee.admin.mail-campaigns', group: 'Communication', title: 'Mail campaigns', icon: icons.campaign, accent: '#d84315', width: 980,
|
|
149
150
|
permissions: ['Mail.Campaigns.Send'],
|
|
150
151
|
search: true,
|
|
151
152
|
load: async ({ request }) => ({ items: await request(`${mail}/campaigns`) }),
|
|
@@ -183,7 +184,7 @@ export const mailCampaignsApp = crudApp({
|
|
|
183
184
|
],
|
|
184
185
|
});
|
|
185
186
|
export const recipientListsApp = crudApp({
|
|
186
|
-
id: 'coworkee.admin.recipient-lists', group: 'Communication', title: 'Recipient lists', icon:
|
|
187
|
+
id: 'coworkee.admin.recipient-lists', group: 'Communication', title: 'Recipient lists', icon: icons.contactMail, accent: '#d84315',
|
|
187
188
|
permissions: ['Mail.Campaigns.Send'],
|
|
188
189
|
search: true,
|
|
189
190
|
load: async ({ request }) => ({ items: await request(`${mail}/recipient-lists`) }),
|
|
@@ -204,7 +205,7 @@ export const recipientListsApp = crudApp({
|
|
|
204
205
|
const statuses = ['', 'Queued', 'Sending', 'Sent', 'Failed', 'Skipped'];
|
|
205
206
|
/** The mails the app sent or queued; opened from a campaign it shows that campaign's mails. */
|
|
206
207
|
export const mailLogApp = (coworkee) => ({
|
|
207
|
-
id: mailLogAppId, group: 'Communication', title: coworkee.t('Mail log'), icon:
|
|
208
|
+
id: mailLogAppId, group: 'Communication', title: coworkee.t('Mail log'), icon: icons.receiptLong, accent: '#00838f', width: 980, height: 600,
|
|
208
209
|
requiredPermissions: ['Mail.Log.View'],
|
|
209
210
|
render: ({ host, intent, onClose, setTitle }) => {
|
|
210
211
|
const { t } = coworkee;
|
|
@@ -241,7 +242,7 @@ export const mailLogApp = (coworkee) => ({
|
|
|
241
242
|
},
|
|
242
243
|
});
|
|
243
244
|
export const mailSettingsApp = settingsPageApp({
|
|
244
|
-
id: 'coworkee.admin.mail-settings', group: 'Communication', title: 'Mail settings', icon:
|
|
245
|
+
id: 'coworkee.admin.mail-settings', group: 'Communication', title: 'Mail settings', icon: icons.mail, accent: '#00838f', page: '/admin/mail-settings',
|
|
245
246
|
test: {
|
|
246
247
|
title: 'Test connection',
|
|
247
248
|
run: async (coworkee, _, changed) => {
|
|
@@ -2,6 +2,7 @@ import { odataPage } from '@coworkee/client';
|
|
|
2
2
|
import { choices, crudApp, renderCrud } from "../../crud.js";
|
|
3
3
|
import { esc } from "../../dom.js";
|
|
4
4
|
import { confirmDialog, formDialog, infoDialog } from "../../form.js";
|
|
5
|
+
import { icons } from "../../icons.js";
|
|
5
6
|
const json = (method, body) => ({ method, body: body === undefined ? undefined : JSON.stringify(body) });
|
|
6
7
|
const check = (value) => value ? '✓' : '';
|
|
7
8
|
const paged = (page, pageSize, extra = {}) => new URLSearchParams({ Page: String(page), PageSize: String(pageSize), ...Object.fromEntries(Object.entries(extra).filter(([, value]) => value)) });
|
|
@@ -10,7 +11,7 @@ const languageFields = [
|
|
|
10
11
|
{ name: 'isEnabled', label: 'Enabled', type: 'bool' }, { name: 'isDefault', label: 'Default', type: 'bool' },
|
|
11
12
|
];
|
|
12
13
|
export const languagesApp = crudApp({
|
|
13
|
-
id: 'coworkee.admin.languages', group: 'Localization', title: 'Languages', icon:
|
|
14
|
+
id: 'coworkee.admin.languages', group: 'Localization', title: 'Languages', icon: icons.language, accent: '#0277bd',
|
|
14
15
|
permissions: ['Localization.Manage'],
|
|
15
16
|
search: true,
|
|
16
17
|
load: async ({ request }) => ({ items: await request('/api/v1/localization/languages/all') }),
|
|
@@ -33,7 +34,7 @@ export const languagesApp = crudApp({
|
|
|
33
34
|
});
|
|
34
35
|
/** The texts of one language: the English text, the language's default and the own translation, editable; missing ones machine translated. */
|
|
35
36
|
export const translationsApp = (coworkee) => ({
|
|
36
|
-
id: 'coworkee.admin.translations', group: 'Localization', title: coworkee.t('Translations'), icon:
|
|
37
|
+
id: 'coworkee.admin.translations', group: 'Localization', title: coworkee.t('Translations'), icon: icons.translate, accent: '#0277bd', width: 980, height: 620,
|
|
37
38
|
requiredPermissions: ['Localization.Manage'],
|
|
38
39
|
render: async ({ host, onClose }) => {
|
|
39
40
|
const { t, request } = coworkee;
|
|
@@ -115,7 +116,7 @@ export const themesApp = crudApp({
|
|
|
115
116
|
],
|
|
116
117
|
});
|
|
117
118
|
export const backupsApp = crudApp({
|
|
118
|
-
id: 'coworkee.admin.backups', group: 'System', title: 'Backups', icon:
|
|
119
|
+
id: 'coworkee.admin.backups', group: 'System', title: 'Backups', icon: icons.backup, accent: '#455a64',
|
|
119
120
|
permissions: ['Backups.Manage'], hostOnly: true,
|
|
120
121
|
load: async ({ request }) => ({ items: await request('/api/v1/backups') }),
|
|
121
122
|
columns: [
|
|
@@ -134,7 +135,7 @@ export const backupsApp = crudApp({
|
|
|
134
135
|
],
|
|
135
136
|
});
|
|
136
137
|
export const servicesApp = crudApp({
|
|
137
|
-
id: 'coworkee.admin.services', group: 'System', title: 'Services', icon:
|
|
138
|
+
id: 'coworkee.admin.services', group: 'System', title: 'Services', icon: icons.dns, accent: '#2e7d32',
|
|
138
139
|
permissions: ['Settings.Manage'], hostOnly: true,
|
|
139
140
|
load: async ({ request }) => ({ items: (await request('/api/v1/services')).services }),
|
|
140
141
|
columns: [
|
|
@@ -169,7 +170,7 @@ const tenantFields = [
|
|
|
169
170
|
{ name: 'isActive', label: 'Active', type: 'bool' }, { name: 'acceptsRegistrations', label: 'Registration', type: 'bool' },
|
|
170
171
|
];
|
|
171
172
|
export const tenantsApp = crudApp({
|
|
172
|
-
id: 'coworkee.admin.tenants', group: 'System', title: 'Tenants', icon:
|
|
173
|
+
id: 'coworkee.admin.tenants', group: 'System', title: 'Tenants', icon: icons.domain, accent: '#283593',
|
|
173
174
|
permissions: ['Features.Tenants'], hostOnly: true,
|
|
174
175
|
search: true,
|
|
175
176
|
load: async (_, { page, pageSize }) => {
|
|
@@ -211,7 +212,7 @@ export const tenantsApp = crudApp({
|
|
|
211
212
|
const changesTable = (coworkee, changes) => `<table class="cw-table"><thead><tr><th>${esc(coworkee.t('Field'))}</th>
|
|
212
213
|
<th>${esc(coworkee.t('Changes'))}</th></tr></thead><tbody>${changes.map((change) => `<tr><td>${esc(change.property)}</td><td>${esc(change.oldValue)} → ${esc(change.newValue)}</td></tr>`).join('')}</tbody></table>`;
|
|
213
214
|
export const auditApp = crudApp({
|
|
214
|
-
id: 'coworkee.admin.audit', group: 'Monitoring', title: 'Audit log', icon:
|
|
215
|
+
id: 'coworkee.admin.audit', group: 'Monitoring', title: 'Audit log', icon: icons.history, accent: '#5d4037', width: 960,
|
|
215
216
|
permissions: ['Audit.View'],
|
|
216
217
|
search: true, serverSearch: true,
|
|
217
218
|
load: async ({ request }, { page, pageSize, search }) => {
|
|
@@ -228,7 +229,7 @@ export const auditApp = crudApp({
|
|
|
228
229
|
}],
|
|
229
230
|
});
|
|
230
231
|
export const aiToolCallsApp = crudApp({
|
|
231
|
-
id: 'coworkee.admin.ai-tool-calls', group: 'Monitoring', title: 'AI tool calls', icon:
|
|
232
|
+
id: 'coworkee.admin.ai-tool-calls', group: 'Monitoring', title: 'AI tool calls', icon: icons.build, accent: '#6a1b9a', width: 960,
|
|
232
233
|
permissions: ['Ai.Audit'], probe: '/api/v1/ai/status',
|
|
233
234
|
search: true, serverSearch: true,
|
|
234
235
|
load: async ({ request }, { page, pageSize, search }) => {
|
package/dist/apps/assistant.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { postNdjson } from '@coworkee/client';
|
|
2
2
|
import { display, errorText, esc } from "../dom.js";
|
|
3
3
|
import { confirmDialog } from "../form.js";
|
|
4
|
+
import { icons } from "../icons.js";
|
|
4
5
|
import { settingsPageApp } from "./settings.js";
|
|
5
6
|
const ai = '/api/v1/ai';
|
|
6
7
|
const json = (method, body) => ({ method, body: body === undefined ? undefined : JSON.stringify(body) });
|
|
@@ -15,7 +16,7 @@ function messageHtml(coworkee, message, last) {
|
|
|
15
16
|
}
|
|
16
17
|
/** The AI assistant: sessions, answers streamed as they arrive, tool calls and confirmations for tools that change data. */
|
|
17
18
|
export const assistantApp = (coworkee) => ({
|
|
18
|
-
id: 'coworkee.assistant', title: coworkee.t('Assistant'), icon:
|
|
19
|
+
id: 'coworkee.assistant', title: coworkee.t('Assistant'), icon: icons.sparkles, accent: '#6a1b9a', width: 900, height: 640,
|
|
19
20
|
requiredPermissions: ['Ai.Chat'], probe: `${ai}/status`,
|
|
20
21
|
render: async ({ host, setState, intent }) => {
|
|
21
22
|
const { t, request, culture } = coworkee;
|
|
@@ -110,7 +111,7 @@ export const assistantApp = (coworkee) => ({
|
|
|
110
111
|
const aiFields = ['Provider', 'Model', 'Endpoint', 'ApiKey', 'Headers', 'AuthHeader'];
|
|
111
112
|
/** Provider, model and key of the assistant, with a test call to the model. */
|
|
112
113
|
export const aiSettingsApp = settingsPageApp({
|
|
113
|
-
id: 'coworkee.admin.ai-settings', group: 'System', title: 'AI', icon:
|
|
114
|
+
id: 'coworkee.admin.ai-settings', group: 'System', title: 'AI', icon: icons.smartToy, accent: '#6a1b9a', page: '/admin/ai-settings', hostOnly: true, scopes: ['Global'], probe: `${ai}/status`,
|
|
114
115
|
test: {
|
|
115
116
|
title: 'Test connection',
|
|
116
117
|
run: async (coworkee, values, changed) => {
|
package/dist/apps/chat.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { realtimeEvents, realtimeTopics } from '@coworkee/client';
|
|
2
2
|
import { display, errorText, esc } from "../dom.js";
|
|
3
|
+
import { icons } from "../icons.js";
|
|
3
4
|
const chat = '/api/v1/chat';
|
|
4
5
|
const json = (method, body) => ({ method, body: body === undefined ? undefined : JSON.stringify(body) });
|
|
5
6
|
/** Direct messages with the people of the organisation: who is online, unread counts, messages arriving live. */
|
|
6
7
|
export const chatApp = (coworkee) => ({
|
|
7
|
-
id: 'coworkee.chat', title: coworkee.t('Chat'), icon:
|
|
8
|
+
id: 'coworkee.chat', title: coworkee.t('Chat'), icon: icons.chat, accent: '#00897b', width: 860, height: 600,
|
|
8
9
|
requiredPermissions: ['Chat.Use'], probe: `${chat}/unread-count`,
|
|
9
10
|
render: async ({ host, intent, setState, onClose }) => {
|
|
10
11
|
const { t, request, culture, user, realtime } = coworkee;
|
package/dist/apps/data.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { entitySets } from '@coworkee/client';
|
|
2
2
|
import { errorText, esc } from "../dom.js";
|
|
3
|
+
import { icons } from "../icons.js";
|
|
3
4
|
import { renderEntityTable } from "../table.js";
|
|
4
5
|
/** Every OData entity set of the app the user may read, each as a table. */
|
|
5
6
|
export const dataApp = (coworkee) => ({
|
|
@@ -40,7 +41,7 @@ export const dataApp = (coworkee) => ({
|
|
|
40
41
|
export const entityApp = (options) => (coworkee) => ({
|
|
41
42
|
id: `coworkee.entity.${options.entitySet}`,
|
|
42
43
|
title: coworkee.t(options.title ?? options.entitySet),
|
|
43
|
-
icon: options.icon ??
|
|
44
|
+
icon: options.icon ?? icons.table,
|
|
44
45
|
accent: options.accent ?? '#35496b',
|
|
45
46
|
width: 900,
|
|
46
47
|
height: 580,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { esc } from "../dom.js";
|
|
2
|
+
import { icons } from "../icons.js";
|
|
2
3
|
import { mudExFrame } from "../mudex.js";
|
|
3
4
|
export const filePreviewAppId = 'coworkee.file-preview';
|
|
4
5
|
/** One file in a window, shown by MudEx's file display (pdf, images, office documents, archives, markdown, audio, video) in its own frame. */
|
|
5
6
|
export const filePreviewApp = (coworkee) => ({
|
|
6
7
|
id: filePreviewAppId,
|
|
7
8
|
title: coworkee.t('Preview'),
|
|
8
|
-
icon:
|
|
9
|
+
icon: icons.description,
|
|
9
10
|
accent: '#b26a00',
|
|
10
11
|
width: 900,
|
|
11
12
|
height: 640,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { realtimeEvents, realtimeTopics, unwrap } from '@coworkee/client';
|
|
2
2
|
import { display, errorText, esc } from "../dom.js";
|
|
3
|
+
import { icons } from "../icons.js";
|
|
3
4
|
/** The user's notifications: unread first in bold, mark read, mark all read, delete. */
|
|
4
5
|
export const notificationsApp = (coworkee) => ({
|
|
5
6
|
id: 'coworkee.notifications',
|
|
6
7
|
title: coworkee.t('Notifications'),
|
|
7
|
-
icon:
|
|
8
|
+
icon: icons.notifications,
|
|
8
9
|
accent: '#a2273b',
|
|
9
10
|
width: 560,
|
|
10
11
|
height: 600,
|
|
@@ -63,7 +64,7 @@ export const notificationsApp = (coworkee) => ({
|
|
|
63
64
|
export const apiDocsApp = (coworkee) => ({
|
|
64
65
|
id: 'coworkee.api-docs',
|
|
65
66
|
title: coworkee.t('API documentation'),
|
|
66
|
-
icon:
|
|
67
|
+
icon: icons.dataObject,
|
|
67
68
|
accent: '#447d1c',
|
|
68
69
|
width: 1000,
|
|
69
70
|
height: 680,
|
package/dist/apps/profile.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { errorText, esc } from "../dom.js";
|
|
2
2
|
import { formDialog } from "../form.js";
|
|
3
|
+
import { icons } from "../icons.js";
|
|
3
4
|
import { createWidget, hasData, isNumber, place, presets, reportIcons } from "./report-model.js";
|
|
4
5
|
import { humanize, rangeSelect, renderGrid, renderWidget, reportAppId, reportDesignerAppId } from "./reports.js";
|
|
5
6
|
const reports = '/api/v1/reports';
|
|
@@ -88,7 +89,7 @@ export function setPath(widget, path, value) {
|
|
|
88
89
|
}
|
|
89
90
|
/** Creates and changes reports: widgets on the 12 column grid (drag to move, the corner to resize), their data, filter and display, the report's settings. */
|
|
90
91
|
export const reportDesignerApp = (coworkee) => ({
|
|
91
|
-
id: reportDesignerAppId, title: coworkee.t('New report'), icon:
|
|
92
|
+
id: reportDesignerAppId, title: coworkee.t('New report'), icon: icons.dashboardCustomize, accent: '#1565c0', width: 1280, height: 800, hidden: true,
|
|
92
93
|
requiredPermissions: ['Reports.Manage'],
|
|
93
94
|
render: async ({ host, intent, setTitle, setState, onClose }) => {
|
|
94
95
|
const { t, request } = coworkee;
|
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons for apps where the small AirWorks set has none that fits. Each is a data URL AirWorks accepts as the icon of an app,
|
|
3
|
+
* sized to fill a tile like the AirWorks icons: `icon: icons.notifications` in the definition of an app.
|
|
4
|
+
*/
|
|
5
|
+
export declare const icons: {
|
|
6
|
+
readonly chat: string;
|
|
7
|
+
readonly smartToy: string;
|
|
8
|
+
readonly notifications: string;
|
|
9
|
+
readonly dataObject: string;
|
|
10
|
+
readonly adminPanel: string;
|
|
11
|
+
readonly groups: string;
|
|
12
|
+
readonly roles: string;
|
|
13
|
+
readonly apps: string;
|
|
14
|
+
readonly checklist: string;
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly language: string;
|
|
17
|
+
readonly translate: string;
|
|
18
|
+
readonly backup: string;
|
|
19
|
+
readonly dns: string;
|
|
20
|
+
readonly domain: string;
|
|
21
|
+
readonly history: string;
|
|
22
|
+
readonly drafts: string;
|
|
23
|
+
readonly campaign: string;
|
|
24
|
+
readonly contactMail: string;
|
|
25
|
+
readonly receiptLong: string;
|
|
26
|
+
readonly mail: string;
|
|
27
|
+
readonly build: string;
|
|
28
|
+
readonly table: string;
|
|
29
|
+
readonly description: string;
|
|
30
|
+
readonly dashboardCustomize: string;
|
|
31
|
+
readonly manageAccounts: string;
|
|
32
|
+
readonly sparkles: string;
|
|
33
|
+
};
|
package/dist/icons.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* White glyphs of Google's Material Symbols (filled, weight 400; "sparkles" is Material Icons "auto_awesome"),
|
|
3
|
+
* licensed under the Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0
|
|
4
|
+
* Source: https://github.com/google/material-design-icons
|
|
5
|
+
*/
|
|
6
|
+
const glyph = (box, path) => `data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="${box}"><path fill="#fff" d="${path}"/></svg>`)}`;
|
|
7
|
+
/**
|
|
8
|
+
* Icons for apps where the small AirWorks set has none that fits. Each is a data URL AirWorks accepts as the icon of an app,
|
|
9
|
+
* sized to fill a tile like the AirWorks icons: `icon: icons.notifications` in the definition of an app.
|
|
10
|
+
*/
|
|
11
|
+
export const icons = {
|
|
12
|
+
chat: glyph('35.6 -924.4 888.9 888.9', 'M80-80v-740q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H240L80-80Zm160-319h313v-60H240v60Zm0-130h480v-60H240v60Zm0-130h480v-60H240v60Z'),
|
|
13
|
+
smartToy: glyph('-8.9 -988.9 977.8 977.8', 'M147-376q-45 0-76-31.21T40-483q0-44.58 31.21-75.79Q102.42-590 147-590v-123q0-24 18-42t42-18h166q0-45 31-76t76-31q45 0 76 31.21T587-773h166q24 0 42 18t18 42v123q45 0 76 31.21T920-483q0 44.58-31.21 75.79Q857.58-376 813-376v196q0 24-18 42t-42 18H207q-24 0-42-18t-18-42v-196Zm224.5-111.74q11.5-11.73 11.5-28.5 0-16.76-11.74-28.26-11.73-11.5-28.5-11.5-16.76 0-28.26 11.74-11.5 11.73-11.5 28.5 0 16.76 11.74 28.26 11.73 11.5 28.5 11.5 16.76 0 28.26-11.74Zm274 0q11.5-11.73 11.5-28.5 0-16.76-11.74-28.26-11.73-11.5-28.5-11.5-16.76 0-28.26 11.74-11.5 11.73-11.5 28.5 0 16.76 11.74 28.26 11.73 11.5 28.5 11.5 16.76 0 28.26-11.74ZM312-285h336v-60H312v60Z'),
|
|
14
|
+
notifications: glyph('35.6 -924.4 888.9 888.9', 'M160-200v-60h80v-304q0-84 49.5-150.5T420-798v-22q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v22q81 17 130.5 83.5T720-564v304h80v60H160ZM480-80q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80Z'),
|
|
15
|
+
dataObject: glyph('35.6 -924.4 888.9 888.9', 'M570-160v-60h120q21 0 35.5-14.38Q740-248.75 740-270v-100q0-37 22.5-66t57.5-40v-8q-35-10-57.5-39.5T740-590v-100q0-21.25-14.37-35.63Q711.25-740 690-740H570v-60h120q46 0 78 32.08 32 32.09 32 77.92v100q0 21.25 14.38 35.62Q828.75-540 850-540h30v120h-30q-21.25 0-35.62 14.37Q800-391.25 800-370v100q0 45.83-32.08 77.92Q735.83-160 690-160H570Zm-300 0q-46 0-78-32.08-32-32.09-32-77.92v-100q0-21.25-14.37-35.63Q131.25-420 110-420H80v-120h30q21.25 0 35.63-14.38Q160-568.75 160-590v-100q0-45.83 32.08-77.92Q224.17-800 270-800h120v60H270q-21 0-35.5 14.37Q220-711.25 220-690v100q0 37-22.5 66.5T140-484v8q35 11 57.5 40t22.5 66v100q0 21.25 14.38 35.62Q248.75-220 270-220h120v60H270Z'),
|
|
16
|
+
adminPanel: glyph('75.5 -925.5 890 890', 'M693-80q-78 0-133-55.5T505-267q0-78 55-133.5T693-456q77 0 132.5 55.5T881-267q0 76-55.5 131.5T693-80Zm-213 0q-138-32-229-156.5T160-522v-239l320-120 320 120v270q-25-12-52-18.5t-55-6.5q-103 0-175.5 73T445-267q0 48 19.5 94T518-93q-9 5-19 7.5T480-80Zm255-209q18-19 18-45t-18-44q-18-18-44-18t-45 18q-19 18-19 44t19 45q19 19 45 19t44-19Zm-45 144q33 0 60-14t46-40q-26-14-52-21t-54-7q-28 0-54.5 7T584-199q19 26 45.5 40t60.5 14Z'),
|
|
17
|
+
groups: glyph('-53.3 -1013.3 1066.7 1066.7', 'M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Z'),
|
|
18
|
+
roles: glyph('35.6 -925.4 888.9 888.9', 'M577-490.17q40-40.17 40-97T576.83-684q-40.17-40-97-40T383-683.83q-40 40.17-40 97T383.17-490q40.17 40 97 40T577-490.17ZM480-81q-148-38-234-162.54Q160-368.08 160-523v-238l320-120 320 120v238q0 154.92-86 279.46Q628-119 480-81Zm0-62q60-20 108-59.5t83-90.5q-44.67-21.02-92.97-32.01Q529.72-336 479.86-336t-98.07 10.99Q333.58-314.02 289-293q35 51 83 90.5T480-143Z'),
|
|
19
|
+
apps: glyph('124.4 -835.6 711.1 711.1', 'M179-179q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19ZM179-433q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19ZM179-687q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Zm254 0q-19-19-19-47t19-47q19-19 47-19t47 19q19 19 19 47t-19 47q-19 19-47 19t-47-19Z'),
|
|
20
|
+
checklist: glyph('35.6 -950.4 888.9 888.9', 'M222-214 80-356l42-42 100 99 179-179 42 43-221 221Zm0-320L80-676l42-42 100 99 179-179 42 43-221 221Zm298 244v-60h360v60H520Zm0-320v-60h360v60H520Z'),
|
|
21
|
+
key: glyph('-8.9 -968.9 977.8 977.8', 'M371.5-388.5Q409-426 409-480t-37.5-91.5Q334-609 280-609t-91.5 37.5Q151-534 151-480t37.5 91.5Q226-351 280-351t91.5-37.5ZM280-240q-100 0-170-70T40-480q0-100 70-170t170-70q85 0 142.5 46.5T503-555h344l73 73-127 146-103-84-84 84-71-71h-32q-19 75-80.5 121T280-240Z'),
|
|
22
|
+
language: glyph('35.6 -924.4 888.9 888.9', 'M323-111.5Q250-143 196-197t-85-127.5Q80-398 80-482t31-156.5Q142-711 196-765t127-84.5Q396-880 480-880t157 30.5Q710-819 764-765t85 126.5Q880-566 880-482t-31 157.5Q818-251 764-197t-127 85.5Q564-80 480-80t-157-31.5ZM480-138q35-36 58.5-82.5T577-331H384q14 60 37.5 108t58.5 85Zm-85-12q-25-38-43-82t-30-99H172q38 71 88 111.5T395-150Zm171-1q72-23 129.5-69T788-331H639q-13 54-30.5 98T566-151ZM152-391h159q-3-27-3.5-48.5T307-482q0-25 1-44.5t4-43.5H152q-7 24-9.5 43t-2.5 45q0 26 2.5 46.5T152-391Zm221 0h215q4-31 5-50.5t1-40.5q0-20-1-38.5t-5-49.5H373q-4 31-5 49.5t-1 38.5q0 21 1 40.5t5 50.5Zm275 0h160q7-24 9.5-44.5T820-482q0-26-2.5-45t-9.5-43H649q3 35 4 53.5t1 34.5q0 22-1.5 41.5T648-391Zm-10-239h150q-33-69-90.5-115T565-810q25 37 42.5 80T638-630Zm-254 0h194q-11-53-37-102.5T480-820q-32 27-54 71t-42 119Zm-212 0h151q11-54 28-96.5t43-82.5q-75 19-131 64t-91 115Z'),
|
|
23
|
+
translate: glyph('-9.1 -971.1 982.2 982.2', 'm475-80 185-480h79L924-80h-65l-45-117H584L539-80h-64ZM162-201l-42-42 201-201q-51-53-85.5-107.5T183-660h65q16 43 43.5 85t72.5 88q46-48 85-117.5T505-740H40v-60h290v-80h60v80h290v60H567q-17 78-61.5 159.5T406-443l102 104-24 63-121-125-201 200Zm443-51h188l-94-248-94 248Z'),
|
|
24
|
+
backup: glyph('-8.9 -968.4 977.8 977.8', 'M450-160H251q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H510v-318l83 83 43-43-156-156-156 156 43 43 83-83v318Z'),
|
|
25
|
+
dns: glyph('58.3 -881.2 843.3 843.3', 'M286.88-717q-20.88 0-35.38 14.62-14.5 14.62-14.5 35.5 0 20.88 14.62 35.38 14.62 14.5 35.5 14.5 20.88 0 35.38-14.62 14.5-14.62 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5Zm0 414q-20.88 0-35.38 14.62-14.5 14.62-14.5 35.5 0 20.88 14.62 35.38 14.62 14.5 35.5 14.5 20.88 0 35.38-14.62 14.5-14.62 14.5-35.5 0-20.88-14.62-35.38-14.62-14.5-35.5-14.5ZM154-839h651q16 0 25.5 9.5t9.5 25.81V-535q0 17.42-9.5 29.21T805-494H154q-15 0-24.5-11.79T120-535v-268.69q0-16.31 9.5-25.81T154-839Zm0 413h647q15 0 27 12.5t12 28.53V-121q0 20-12 30.5T801-80H159q-16 0-27.5-10.5T120-121v-263.97q0-16.03 9.5-28.53T154-426Z'),
|
|
26
|
+
domain: glyph('35.6 -924.4 888.9 888.9', 'M80-120v-720h390v165h410v555H80Zm60-60h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm165 495h105v-105H305v105Zm0-165h105v-105H305v105Zm0-165h105v-105H305v105Zm0-165h105v-105H305v105Zm165 495h350v-435H470v105h80v60h-80v105h80v60h-80v105Zm185-270v-60h60v60h-60Zm0 165v-60h60v60h-60Z'),
|
|
27
|
+
history: glyph('80 -880 800 800', 'M477-120q-149 0-253-105.5T120-481h60q0 125 86 213t211 88q127 0 215-89t88-216q0-124-89-209.5T477-780q-68 0-127.5 31T246-667h105v60H142v-208h60v106q52-61 123.5-96T477-840q75 0 141 28t115.5 76.5Q783-687 811.5-622T840-482q0 75-28.5 141t-78 115Q684-177 618-148.5T477-120Zm128-197L451-469v-214h60v189l137 134-43 43Z'),
|
|
28
|
+
drafts: glyph('35.6 -964.4 888.9 888.9', 'm480-920 371 222q17 9 23 24.5t6 30.5v463q0 24-18 42t-42 18H140q-24 0-42-18t-18-42v-463q0-15 6.5-30.5T109-698l371-222Zm0 466 336-197-336-202-336 202 336 197Z'),
|
|
29
|
+
campaign: glyph('35.6 -924.4 888.9 888.9', 'M730-450v-60h150v60H730Zm50 290-121-90 36-48 121 90-36 48Zm-82-503-36-48 118-89 36 48-118 89ZM210-200v-160h-70q-25 0-42.5-17.5T80-420v-120q0-25 17.5-42.5T140-600h180l200-120v480L320-360h-50v160h-60Zm350-146v-268q27 24 43.5 58.5T620-480q0 41-16.5 75.5T560-346Z'),
|
|
30
|
+
contactMail: glyph('-54.4 -1013.9 1067.8 1067.8', 'M562-524h268v-186H562v186Zm135-37-105-79v-40l104 79 104-79v40l-103 79ZM59-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h841q24 0 42 18t18 42v600q0 24-18 42t-42 18H59Zm355-315q35-35 35-85t-35-85q-35-35-85-35t-85 35q-35 35-35 85t35 85q35 35 85 35t85-35ZM66-180h525q-45-69-113-109t-149-40q-80 0-149.5 40T66-180Z'),
|
|
31
|
+
receiptLong: glyph('35.6 -924.4 888.9 888.9', 'M222-80q-43.75 0-74.37-30.63Q117-141.25 117-185v-125h127v-570l59.8 60 59.8-60 59.8 60 59.8-60 59.8 60 60-60 60 60 60-60 60 60 60-60v695q0 43.75-30.62 74.37Q781.75-80 738-80H222Zm514.5-60q19.5 0 31.5-12.5t12-32.5v-611H307v536h390v75q0 20 10 32.5t29.5 12.5ZM360-642v-60h240v60H360Zm0 134v-60h240v60H360Zm333-134q-12 0-21-9t-9-21q0-12 9-21t21-9q12 0 21 9t9 21q0 12-9 21t-21 9Zm0 129q-12 0-21-9t-9-21q0-12 9-21t21-9q12 0 21 9t9 21q0 12-9 21t-21 9Z'),
|
|
32
|
+
mail: glyph('35.6 -924.4 888.9 888.9', 'M140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Zm340-302 340-223v-55L480-522 140-740v55l340 223Z'),
|
|
33
|
+
build: glyph('80.8 -880.2 803.3 803.3', 'M705-128 447-388q-23 8-46 13t-47 5q-97 0-165-67.5T121-602q0-31 8-60.5t23-55.5l145 145 92-86-149-149q26-15 55-23.5t59-8.5q99 0 168.5 69.5T592-602q0 24-5 47t-13 46l259 258q11 11 11 26.5T833-198l-76 70q-11 11-26 11t-26-11Z'),
|
|
34
|
+
table: glyph('80 -880 800 800', 'M450-340H120v160q0 24.75 17.63 42.37Q155.25-120 180-120h270v-220Zm60 0v220h270q24.75 0 42.38-17.63Q840-155.25 840-180v-160H510Zm-60-60v-220H120v220h330Zm60 0h330v-220H510v220ZM120-680h720v-100q0-24.75-17.62-42.38Q804.75-840 780-840H180q-24.75 0-42.37 17.62Q120-804.75 120-780v100Z'),
|
|
35
|
+
description: glyph('35.6 -924.4 888.9 888.9', 'M319-250h322v-60H319v60Zm0-170h322v-60H319v60ZM220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h361l219 219v521q0 24-18 42t-42 18H220Zm331-554h189L551-820v186Z'),
|
|
36
|
+
dashboardCustomize: glyph('80 -880 800 800', 'M120-840h330v330H120v-330Zm390 0h330v330H510v-330ZM120-450h330v330H120v-330Zm525 0h60v135h135v60H705v135h-60v-135H510v-60h135v-135Z'),
|
|
37
|
+
manageAccounts: glyph('35.8 -894.2 883.3 883.3', 'm667-120-10-66q-17-5-34.5-14.5T593-222l-55 12-25-42 47-44q-2-9-2-25t2-25l-47-44 25-42 55 12q12-12 29.5-21.5T657-456l10-66h54l10 66q17 5 34.5 14.5T795-420l55-12 25 42-47 44q2 9 2 25t-2 25l47 44-25 42-55-12q-12 12-29.5 21.5T731-186l-10 66h-54ZM80-164v-94q0-35 17.5-63t50.5-43q72-32 133.5-46T400-424h23q-21 51-19 134.5T438-164H80Zm672-99q22-22 22-58t-22-58q-22-22-58-22t-58 22q-22 22-22 58t22 58q22 22 58 22t58-22ZM292-527q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42Z'),
|
|
38
|
+
sparkles: glyph('-0.2 -0.2 24.4 24.4', 'm19 9-1.25-2.75L15 5l2.75-1.25L19 1l1.25 2.75L23 5l-2.75 1.25Zm0 14-1.25-2.75L15 19l2.75-1.25L19 15l1.25 2.75L23 19l-2.75 1.25ZM9 20l-2.5-5.5L1 12l5.5-2.5L9 4l2.5 5.5L17 12l-5.5 2.5Z'),
|
|
39
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AppFactory } from './coworkee.ts';
|
|
|
2
2
|
export { useCoworkee, type AirWorksApi, type AppFactory, type Coworkee, type CoworkeeApp, type CoworkeeOptions } from './coworkee.ts';
|
|
3
3
|
export { bffAuthProvider, sessionOf } from './auth.ts';
|
|
4
4
|
export { loadMudEx, defaultMudExFrameUrl, defaultMudExUrl, mudExFrame } from './mudex.ts';
|
|
5
|
+
export { icons } from './icons.ts';
|
|
5
6
|
export { bytes, display, esc, toast } from './dom.ts';
|
|
6
7
|
export { confirmDialog, fieldHtml, formDialog, infoDialog, promptDialog, readFields, type Field, type FieldType, type FormOptions, type Values } from './form.ts';
|
|
7
8
|
export { choices, crudApp, renderCrud, type CrudAction, type CrudColumn, type CrudOptions, type CrudQuery, type CrudToolbarAction } from './crud.ts';
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { settingsApp } from "./apps/settings.js";
|
|
|
11
11
|
export { useCoworkee } from "./coworkee.js";
|
|
12
12
|
export { bffAuthProvider, sessionOf } from "./auth.js";
|
|
13
13
|
export { loadMudEx, defaultMudExFrameUrl, defaultMudExUrl, mudExFrame } from "./mudex.js";
|
|
14
|
+
export { icons } from "./icons.js";
|
|
14
15
|
export { bytes, display, esc, toast } from "./dom.js";
|
|
15
16
|
export { confirmDialog, fieldHtml, formDialog, infoDialog, promptDialog, readFields } from "./form.js";
|
|
16
17
|
export { choices, crudApp, renderCrud } from "./crud.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coworkee/airworks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1024",
|
|
4
4
|
"description": "AirWorks web desktop for Coworkee apps: sign-in through the app's BFF, theme, texts, realtime and apps for settings, files, data, chat, reports, the assistant and the administration",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://fgilde.github.io/CoworkeeLib/web/airworks/",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"test": "node --test \"test/**/*.test.ts\""
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@coworkee/client": "0.0.
|
|
42
|
+
"@coworkee/client": "0.0.1024"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@fgilde/airworks": ">=0.4.0"
|