@protobase/ui 0.25.2 → 0.25.4
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/account/account-pages.js +3 -2
- package/dist/account/account-section.js +1 -1
- package/dist/account/account-security-page.js +9 -4
- package/dist/account/backup-codes.js +7 -6
- package/dist/account/messages.js +214 -0
- package/dist/account/passkeys-section.js +23 -22
- package/dist/account/password-dialog.js +4 -3
- package/dist/account/sign-in-policy-form.js +14 -13
- package/dist/account/sign-in-policy-labels.js +30 -29
- package/dist/account/sign-in-policy-page.js +11 -6
- package/dist/account/sign-in-providers-section.js +6 -5
- package/dist/account/staff-sign-in-log.js +11 -10
- package/dist/account/totp-qr.js +2 -1
- package/dist/account/two-factor-section.js +24 -23
- package/dist/account/two-factor-setup.js +19 -18
- package/dist/action-card/action-card.js +2 -1
- package/dist/action-card/field-list.js +1 -1
- package/dist/action-card/messages.js +8 -0
- package/dist/activity-chart/activity-chart.js +3 -2
- package/dist/activity-chart/messages.js +14 -0
- package/dist/app/app.d.ts +1 -1
- package/dist/app/app.js +20 -21
- package/dist/app/assistant-shell.js +2 -1
- package/dist/app/batch-failure.js +2 -1
- package/dist/app/breadcrumb-for.js +4 -3
- package/dist/app/charts/chart-groups.js +3 -2
- package/dist/app/charts/chart-view.js +3 -2
- package/dist/app/charts/group-bars.js +2 -1
- package/dist/app/charts/messages.js +26 -0
- package/dist/app/charts/period-chart.js +3 -2
- package/dist/app/charts/split-points.js +2 -1
- package/dist/app/comments/comment-composer.js +19 -18
- package/dist/app/comments/comments-section.js +4 -3
- package/dist/app/comments/messages.js +26 -0
- package/dist/app/create/create-page.js +11 -18
- package/dist/app/custom-section.js +4 -6
- package/dist/app/displays/board-column.js +7 -6
- package/dist/app/displays/board-columns.js +3 -2
- package/dist/app/displays/board-display.js +13 -15
- package/dist/app/displays/calendar-controls.js +3 -2
- package/dist/app/displays/calendar-display.js +12 -17
- package/dist/app/displays/card-carousel.js +4 -3
- package/dist/app/displays/cards-display.js +2 -1
- package/dist/app/displays/custom-display.js +4 -6
- package/dist/app/displays/display-frame.js +3 -2
- package/dist/app/displays/list-cards.js +5 -8
- package/dist/app/displays/list-displays.js +3 -3
- package/dist/app/displays/map-display.js +15 -14
- package/dist/app/displays/messages.js +128 -2
- package/dist/app/displays/period-controls.js +4 -3
- package/dist/app/displays/record-card.js +7 -6
- package/dist/app/displays/timeline-display.js +17 -26
- package/dist/app/displays/timeline-range.js +2 -1
- package/dist/app/displays/timeline-row.js +1 -1
- package/dist/app/displays/use-board-move.js +2 -2
- package/dist/app/displays/use-calendar-move.js +2 -1
- package/dist/app/document-title.js +2 -1
- package/dist/app/error-banner.js +1 -1
- package/dist/app/export/builder-port.js +2 -1
- package/dist/app/export/export-dialog.js +39 -43
- package/dist/app/export/export-worker.js +2 -0
- package/dist/app/export/messages.js +78 -0
- package/dist/app/export/run-export.js +5 -2
- package/dist/app/export/sink.js +4 -3
- package/dist/app/export/use-export-flow.js +4 -3
- package/dist/app/field-editor.js +4 -3
- package/dist/app/field-types/messages.js +8 -0
- package/dist/app/field-types/widget-part.js +2 -1
- package/dist/app/file-field.js +11 -14
- package/dist/app/gallery/gallery-section.js +4 -3
- package/dist/app/gallery/lightbox.js +5 -4
- package/dist/app/gallery/messages.js +30 -0
- package/dist/app/gallery/photo-details.js +3 -2
- package/dist/app/hand-order/hand-sorted-list.js +3 -6
- package/dist/app/hand-order/messages.js +4 -2
- package/dist/app/history/describe-change.js +3 -8
- package/dist/app/history/messages.js +32 -0
- package/dist/app/import/convert.js +20 -19
- package/dist/app/import/failed-rows.js +3 -2
- package/dist/app/import/import-button.js +2 -1
- package/dist/app/import/import-check-step.js +21 -37
- package/dist/app/import/import-dialog.js +13 -17
- package/dist/app/import/import-file-step.js +5 -9
- package/dist/app/import/import-mapping-step.js +32 -35
- package/dist/app/import/import-result-step.js +13 -12
- package/dist/app/import/messages.js +200 -0
- package/dist/app/import/parse-worker.js +2 -0
- package/dist/app/import/prepare-rows.js +5 -4
- package/dist/app/import/sheet-cell.js +2 -1
- package/dist/app/import/sheet-file.js +3 -2
- package/dist/app/import/sheet-source.js +7 -3
- package/dist/app/import/xlsx-reader.js +4 -3
- package/dist/app/import/xlsx-xml.js +2 -1
- package/dist/app/import/zip-reader.js +4 -3
- package/dist/app/list-edit/use-list-edits.js +1 -1
- package/dist/app/list-group-chart.js +2 -1
- package/dist/app/list-page.js +1 -1
- package/dist/app/map/map-layer-switch.js +3 -2
- package/dist/app/map/messages.js +14 -0
- package/dist/app/messages.js +116 -2
- package/dist/app/meta-gate.js +1 -1
- package/dist/app/nav-from-meta.js +11 -10
- package/dist/app/pages/action-inputs/action-inputs-dialog.js +3 -2
- package/dist/app/pages/action-inputs/input-answers.js +6 -5
- package/dist/app/pages/blocks/card-row.js +3 -2
- package/dist/app/pages/blocks/field.js +1 -1
- package/dist/app/pages/blocks/modal-form.js +5 -4
- package/dist/app/pages/blocks/progress.js +1 -1
- package/dist/app/pages/blocks/record-card.js +3 -2
- package/dist/app/pages/blocks/stat.js +2 -1
- package/dist/app/pages/composed-page.js +6 -8
- package/dist/app/pages/confirm-action.js +2 -1
- package/dist/app/pages/custom-boundary.js +4 -2
- package/dist/app/pages/messages.js +64 -0
- package/dist/app/pages/render-node.js +5 -7
- package/dist/app/pages/use-run-action.js +11 -10
- package/dist/app/record-page.js +1 -1
- package/dist/app/record-row/messages.js +26 -0
- package/dist/app/record-row/record-row-body.js +12 -7
- package/dist/app/record-row/record-row.js +4 -3
- package/dist/app/record-row/saved-record-row.js +3 -2
- package/dist/app/related-dots/dots-summary.js +2 -1
- package/dist/app/related-dots/messages.js +8 -0
- package/dist/app/relation-picker.js +9 -8
- package/dist/app/router.js +5 -4
- package/dist/app/runtime/messages.js +58 -0
- package/dist/app/runtime/runtime-status.js +10 -23
- package/dist/app/runtime/runtime-update-dialog.js +7 -6
- package/dist/app/runtime/runtime-update.js +4 -3
- package/dist/app/saved/favorite-button.js +2 -1
- package/dist/app/saved/messages.js +22 -0
- package/dist/app/saved/saved-list.js +4 -7
- package/dist/app/saved/use-favorite.js +3 -2
- package/dist/app/search/messages.js +6 -2
- package/dist/app/search/navigation-hits.js +9 -7
- package/dist/app/searches/filter-chip-list.js +2 -1
- package/dist/app/searches/messages.js +96 -0
- package/dist/app/searches/save-search-button.js +5 -4
- package/dist/app/searches/saved-search-rows.js +3 -2
- package/dist/app/searches/saved-search-section.js +6 -5
- package/dist/app/searches/saved-search.js +4 -3
- package/dist/app/searches/saved-searches.js +15 -25
- package/dist/app/searches/search-controls.js +5 -4
- package/dist/app/searches/search-diff.js +4 -2
- package/dist/app/searches/search-name-dialog.js +4 -3
- package/dist/app/searches/update-search-dialog.js +15 -30
- package/dist/app/searches/use-save-search.js +8 -7
- package/dist/app/searches/use-search-row.js +4 -3
- package/dist/app/sensitive-field.js +5 -4
- package/dist/app/source-notice.js +13 -8
- package/dist/app/staff-banner.js +13 -20
- package/dist/app-shell/global-search.js +2 -2
- package/dist/app-shell/messages.js +4 -2
- package/dist/app-shell/sidebar-group.js +1 -1
- package/dist/app-shell/sidebar-item.js +1 -1
- package/dist/app-shell/sidebar.js +1 -1
- package/dist/assistant-dock/assistant-dock.js +6 -6
- package/dist/assistant-dock/messages.js +26 -0
- package/dist/assistant-dock/use-assistant.js +2 -1
- package/dist/assistant-dock/use-backend-data.js +2 -1
- package/dist/assistant-dock/widget-view.js +3 -2
- package/dist/auth/auth-gate.js +10 -5
- package/dist/auth/auth-locale.js +14 -0
- package/dist/auth/auth-messages.js +122 -43
- package/dist/auth/auth-provider.js +6 -1
- package/dist/auth/code-form.js +4 -3
- package/dist/auth/email-code-form.js +11 -13
- package/dist/auth/email-code-page.js +2 -1
- package/dist/auth/first-run-page.js +6 -5
- package/dist/auth/forgot-password-form.js +15 -17
- package/dist/auth/forgot-password-page.js +2 -1
- package/dist/auth/messages.js +200 -0
- package/dist/auth/provider-sign-in-page.js +5 -5
- package/dist/auth/resend-code-button.js +2 -1
- package/dist/auth/reset-password-form.js +12 -11
- package/dist/auth/reset-password-page.js +4 -3
- package/dist/auth/setup-required-form.js +8 -10
- package/dist/auth/setup-required-page.js +7 -2
- package/dist/auth/sign-in-form.js +18 -21
- package/dist/auth/sign-in-prompt.js +4 -3
- package/dist/auth/sign-up-code-form.js +11 -13
- package/dist/auth/sign-up-details-form.js +15 -22
- package/dist/auth/sign-up-email-form.js +9 -8
- package/dist/auth/sign-up-page.js +2 -1
- package/dist/auth/staff-sign-in-form.js +16 -19
- package/dist/auth/two-factor-form.js +19 -18
- package/dist/auth/user-to-shell.js +2 -1
- package/dist/chat/composer.js +8 -7
- package/dist/chat/messages.js +14 -0
- package/dist/compact-table/compact-table.js +4 -8
- package/dist/compact-table/messages.js +18 -0
- package/dist/data/meta-data.d.ts +1 -1
- package/dist/data/use-update-record.js +1 -1
- package/dist/data-grid/grid-header.js +1 -1
- package/dist/filter-panel/date-presets.js +1 -1
- package/dist/forms/public-form-page.js +1 -1
- package/dist/inline-child-table/inline-child-table.js +12 -12
- package/dist/inline-child-table/line-row.js +10 -9
- package/dist/inline-child-table/messages.js +52 -0
- package/dist/inline-child-table/totals-footer.js +5 -8
- package/dist/invitations/invite-form.js +3 -2
- package/dist/invitations/link-notice.js +6 -4
- package/dist/invitations/messages.js +24 -0
- package/dist/invitations/pending-invitation-row.js +4 -3
- package/dist/lists/messages.js +8 -0
- package/dist/lists/paged-search-list.js +2 -1
- package/dist/locale/slotted.js +14 -0
- package/dist/markdown/markdown-editor.js +6 -5
- package/dist/markdown/messages.js +16 -0
- package/dist/organizations/all-organizations.js +6 -5
- package/dist/organizations/app-roles-picker.js +2 -1
- package/dist/organizations/invitation-page.js +41 -51
- package/dist/organizations/invitations-page.js +11 -10
- package/dist/organizations/members-page.js +16 -11
- package/dist/organizations/messages.js +180 -0
- package/dist/organizations/organization-page.js +27 -26
- package/dist/organizations/organization-paths.js +16 -13
- package/dist/organizations/organization-row.js +3 -2
- package/dist/organizations/organizations-page.js +17 -16
- package/dist/organizations/use-organizations.js +2 -1
- package/dist/package.js +1 -1
- package/dist/plugins/before-sign-in.js +6 -1
- package/dist/plugins/load-plugin.d.ts +1 -1
- package/dist/plugins/load-plugin.js +3 -2
- package/dist/plugins/messages.js +36 -0
- package/dist/plugins/plugin-gate.js +6 -1
- package/dist/plugins/plugin-manifest.js +8 -7
- package/dist/plugins/plugin-notice.js +8 -12
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/messages.js +16 -0
- package/dist/primitives/segmented.js +1 -1
- package/dist/primitives/sheet.js +2 -1
- package/dist/primitives/spinner.js +2 -1
- package/dist/primitives/token.js +2 -1
- package/dist/record-view/field.js +2 -2
- package/dist/record-view/messages.js +4 -2
- package/dist/record-view/record-tabs.js +2 -1
- package/dist/roles/messages.js +14 -0
- package/dist/roles/use-active-role.js +3 -2
- package/dist/shell/assets/app-yCMYvqMX.js +69 -0
- package/dist/shell/assets/cn-Bi0ZEjD9.js +1 -0
- package/dist/shell/assets/export-worker-ClACk00b.js +2 -0
- package/dist/shell/assets/{index-BRkDA5KD.css → index-Bkc7w8I4.css} +1 -1
- package/dist/shell/assets/{index-xY0Mvv6V.js → index-HkjqX_O-.js} +2 -2
- package/dist/shell/assets/maplibre-DUTS_eJM.js +814 -0
- package/dist/shell/assets/{markdown-content-ukDTCu6u.js → markdown-content-CtGUP4W6.js} +1 -1
- package/dist/shell/assets/parse-worker-UhbwEjS0.js +5 -0
- package/dist/shell/assets/preload-helper-BZ3hrQDD.js +1 -0
- package/dist/shell/assets/{record-map-BJmYZ7kQ.js → record-map-DFy7sJEU.js} +1 -1
- package/dist/shell/assets/records-map-MfQEuiFB.js +1 -0
- package/dist/shell/assets/shared-protobase-ui-Bfa59vx6.js +1 -0
- package/dist/shell/index.html +6 -4
- package/dist/shell/protobase.shell.json +1 -1
- package/dist/shell/protobase.sw.js +2 -2
- package/dist/side-panel/messages.js +8 -0
- package/dist/side-panel/side-panel.js +2 -1
- package/dist/toasts/messages.js +8 -0
- package/dist/toasts/toast.js +2 -1
- package/dist/users/app-invitations.js +5 -4
- package/dist/users/create-user-form.js +9 -8
- package/dist/users/messages.js +52 -0
- package/dist/users/use-user-roles.js +2 -1
- package/dist/users/user-list.js +6 -5
- package/dist/users/user-row.js +5 -4
- package/package.json +4 -4
- package/dist/shell/assets/app-C-OLrsRR.js +0 -69
- package/dist/shell/assets/export-worker-Bz57Pf5g.js +0 -2
- package/dist/shell/assets/maplibre-Dov6nhPX.js +0 -814
- package/dist/shell/assets/parse-worker-BtcY0dQw.js +0 -5
- package/dist/shell/assets/records-map-C1_gDKHR.js +0 -1
- package/dist/shell/assets/shared-protobase-ui-CFYJAbMR.js +0 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { text } from "./messages.js";
|
|
1
2
|
//#region src/plugins/plugin-manifest.ts
|
|
2
3
|
const isText = (value) => typeof value === "string" && value.trim() !== "";
|
|
3
4
|
/** The manifest in `value`, or what is wrong with it. */
|
|
4
5
|
const parseManifest = (value) => {
|
|
5
|
-
if (typeof value !== "object" || value === null || Array.isArray(value)) return { problem: "
|
|
6
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return { problem: text("notObject") };
|
|
6
7
|
const { name, version, api, protobase, entry, css } = value;
|
|
7
|
-
if (!isText(name)) return { problem: "
|
|
8
|
-
if (!Number.isInteger(api)) return { problem: "
|
|
9
|
-
if (!isText(protobase)) return { problem: "
|
|
10
|
-
if (!isText(entry)) return { problem: "
|
|
11
|
-
if (css !== void 0 && !isText(css)) return { problem: "
|
|
12
|
-
if (version !== void 0 && !isText(version)) return { problem:
|
|
8
|
+
if (!isText(name)) return { problem: text("noName") };
|
|
9
|
+
if (!Number.isInteger(api)) return { problem: text("noApi") };
|
|
10
|
+
if (!isText(protobase)) return { problem: text("noVersions") };
|
|
11
|
+
if (!isText(entry)) return { problem: text("noModule") };
|
|
12
|
+
if (css !== void 0 && !isText(css)) return { problem: text("badStylesheet") };
|
|
13
|
+
if (version !== void 0 && !isText(version)) return { problem: text("badVersion") };
|
|
13
14
|
return { manifest: {
|
|
14
15
|
name,
|
|
15
16
|
api,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { slotted } from "../locale/slotted.js";
|
|
2
|
+
import { text } from "./messages.js";
|
|
1
3
|
import { useState } from "react";
|
|
2
4
|
import { Puzzle, X } from "lucide-react";
|
|
3
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -8,7 +10,7 @@ const PluginNotice = ({ off }) => {
|
|
|
8
10
|
if (dismissed || off.length === 0) return null;
|
|
9
11
|
return /* @__PURE__ */ jsxs("div", {
|
|
10
12
|
role: "region",
|
|
11
|
-
"aria-label": "
|
|
13
|
+
"aria-label": text("pluginsOff"),
|
|
12
14
|
className: "flex items-start gap-3 border-b border-warning/40 bg-warning-soft px-4 py-2 text-warning-text",
|
|
13
15
|
children: [
|
|
14
16
|
/* @__PURE__ */ jsx(Puzzle, {
|
|
@@ -17,20 +19,14 @@ const PluginNotice = ({ off }) => {
|
|
|
17
19
|
}),
|
|
18
20
|
/* @__PURE__ */ jsx("ul", {
|
|
19
21
|
className: "min-w-0 flex-1 space-y-0.5 break-words",
|
|
20
|
-
children: off.map((plugin) => /* @__PURE__ */
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
children: plugin.name ?? plugin.url
|
|
25
|
-
}),
|
|
26
|
-
" is off: ",
|
|
27
|
-
plugin.reason,
|
|
28
|
-
"."
|
|
29
|
-
] }, plugin.url))
|
|
22
|
+
children: off.map((plugin) => /* @__PURE__ */ jsx("li", { children: slotted(text("pluginOff"), /* @__PURE__ */ jsx("span", {
|
|
23
|
+
className: "font-semibold",
|
|
24
|
+
children: plugin.name ?? plugin.url
|
|
25
|
+
}), plugin.reason) }, plugin.url))
|
|
30
26
|
}),
|
|
31
27
|
/* @__PURE__ */ jsx("button", {
|
|
32
28
|
type: "button",
|
|
33
|
-
"aria-label": "
|
|
29
|
+
"aria-label": text("dismiss"),
|
|
34
30
|
className: "rounded p-0.5 hover:bg-warning/10",
|
|
35
31
|
onClick: () => setDismissed(true),
|
|
36
32
|
children: /* @__PURE__ */ jsx(X, {
|
|
@@ -9,7 +9,7 @@ const variants = {
|
|
|
9
9
|
danger: "bg-background text-danger-text border border-border-strong hover:bg-danger-soft shadow-sm"
|
|
10
10
|
};
|
|
11
11
|
const sizes = {
|
|
12
|
-
sm: "h-7 px-2.5 text-
|
|
12
|
+
sm: "h-7 px-2.5 text-body gap-1.5",
|
|
13
13
|
md: "h-8 px-3 text-body gap-2"
|
|
14
14
|
};
|
|
15
15
|
/** A button's classes, for a link that looks like one. */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineMessages } from "../locale/messages.js";
|
|
2
|
+
//#region src/primitives/messages.ts
|
|
3
|
+
const text = defineMessages({
|
|
4
|
+
en: {
|
|
5
|
+
close: "Close",
|
|
6
|
+
loading: "Loading",
|
|
7
|
+
remove: (label) => `Remove ${label}`
|
|
8
|
+
},
|
|
9
|
+
nl: {
|
|
10
|
+
close: "Sluiten",
|
|
11
|
+
loading: "Laden",
|
|
12
|
+
remove: (label) => `${label} verwijderen`
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { text };
|
package/dist/primitives/sheet.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useFocusTrap } from "../lib/use-focus-trap.js";
|
|
2
|
+
import { text } from "./messages.js";
|
|
2
3
|
import { closesSheet } from "./sheet-swipe.js";
|
|
3
4
|
import { useRef } from "react";
|
|
4
5
|
import { X } from "lucide-react";
|
|
@@ -55,7 +56,7 @@ const Sheet = ({ title, open, onClose, children }) => {
|
|
|
55
56
|
}),
|
|
56
57
|
/* @__PURE__ */ jsx("button", {
|
|
57
58
|
type: "button",
|
|
58
|
-
"aria-label": "
|
|
59
|
+
"aria-label": text("close"),
|
|
59
60
|
onClick: onClose,
|
|
60
61
|
className: "-mr-2 inline-flex size-11 items-center justify-center rounded-md text-muted-foreground hover:bg-muted",
|
|
61
62
|
children: /* @__PURE__ */ jsx(X, { className: "size-5" })
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { text } from "./messages.js";
|
|
2
3
|
import { Loader2 } from "lucide-react";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
5
|
//#region src/primitives/spinner.tsx
|
|
5
6
|
const Spinner = ({ className }) => /* @__PURE__ */ jsx(Loader2, {
|
|
6
|
-
"aria-label": "
|
|
7
|
+
"aria-label": text("loading"),
|
|
7
8
|
className: cn("size-4 animate-spin", className)
|
|
8
9
|
});
|
|
9
10
|
//#endregion
|
package/dist/primitives/token.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { text } from "./messages.js";
|
|
1
2
|
import { X } from "lucide-react";
|
|
2
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
4
|
//#region src/primitives/token.tsx
|
|
@@ -9,7 +10,7 @@ const Token = ({ label, onRemove }) => /* @__PURE__ */ jsxs("span", {
|
|
|
9
10
|
children: label
|
|
10
11
|
}), /* @__PURE__ */ jsx("button", {
|
|
11
12
|
type: "button",
|
|
12
|
-
"aria-label":
|
|
13
|
+
"aria-label": text("remove", label),
|
|
13
14
|
className: "rounded p-0.5 hover:bg-primary-border/60",
|
|
14
15
|
onMouseDown: (event) => event.preventDefault(),
|
|
15
16
|
onClick: onRemove,
|
|
@@ -66,11 +66,11 @@ const Field = ({ name, label, required, help, example, error, conflict, wide, ch
|
|
|
66
66
|
}),
|
|
67
67
|
error && /* @__PURE__ */ jsx("p", {
|
|
68
68
|
id: `${id}-error`,
|
|
69
|
-
className: "mt-1.5 text-
|
|
69
|
+
className: "mt-1.5 text-body font-medium text-danger-text",
|
|
70
70
|
children: error
|
|
71
71
|
}),
|
|
72
72
|
conflict && /* @__PURE__ */ jsxs("div", {
|
|
73
|
-
className: "mt-2 flex items-center justify-between gap-3 rounded-md border border-warning/30 bg-warning-soft px-3 py-2 text-
|
|
73
|
+
className: "mt-2 flex items-center justify-between gap-3 rounded-md border border-warning/30 bg-warning-soft px-3 py-2 text-body text-warning-text",
|
|
74
74
|
children: [/* @__PURE__ */ jsxs("span", { children: [
|
|
75
75
|
/* @__PURE__ */ jsx("strong", { children: conflict.user.name }),
|
|
76
76
|
" ",
|
|
@@ -15,7 +15,8 @@ const text = defineMessages({
|
|
|
15
15
|
lastUpdated: (ago) => `Last updated ${ago}`,
|
|
16
16
|
viewing: (count) => `${count} viewing`,
|
|
17
17
|
savingSubject: (subject) => `Saving ${subject}...`,
|
|
18
|
-
subjectSaved: (subject) => `${subject} saved
|
|
18
|
+
subjectSaved: (subject) => `${subject} saved`,
|
|
19
|
+
tabs: "Tabs"
|
|
19
20
|
},
|
|
20
21
|
nl: {
|
|
21
22
|
savedDifferent: (name) => `${name} bewaarde een andere waarde`,
|
|
@@ -31,7 +32,8 @@ const text = defineMessages({
|
|
|
31
32
|
lastUpdated: (ago) => `Laatst bijgewerkt ${ago}`,
|
|
32
33
|
viewing: (count) => `${count} kijken mee`,
|
|
33
34
|
savingSubject: (subject) => `${subject} bewaren...`,
|
|
34
|
-
subjectSaved: (subject) => `${subject} bewaard
|
|
35
|
+
subjectSaved: (subject) => `${subject} bewaard`,
|
|
36
|
+
tabs: "Tabbladen"
|
|
35
37
|
}
|
|
36
38
|
});
|
|
37
39
|
//#endregion
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
2
|
import { segmentedClass } from "../primitives/segmented.js";
|
|
3
|
+
import { text } from "./messages.js";
|
|
3
4
|
import { AppLink } from "../app/use-app-address.js";
|
|
4
5
|
import { jsx } from "react/jsx-runtime";
|
|
5
6
|
//#region src/record-view/record-tabs.tsx
|
|
6
7
|
/** The record page's tabs, links whose addresses show each; the shown one is the current page. */
|
|
7
8
|
const RecordTabs = ({ tabs }) => /* @__PURE__ */ jsx("nav", {
|
|
8
|
-
"aria-label": "
|
|
9
|
+
"aria-label": text("tabs"),
|
|
9
10
|
className: "overflow-x-auto py-6",
|
|
10
11
|
children: /* @__PURE__ */ jsx("span", {
|
|
11
12
|
className: segmentedClass.group("md"),
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineMessages } from "../locale/messages.js";
|
|
2
|
+
//#region src/roles/messages.ts
|
|
3
|
+
const text = defineMessages({
|
|
4
|
+
en: {
|
|
5
|
+
couldNotReadRoles: "Could not read your roles",
|
|
6
|
+
couldNotSwitch: "Could not switch the role"
|
|
7
|
+
},
|
|
8
|
+
nl: {
|
|
9
|
+
couldNotReadRoles: "Kon je rollen niet lezen",
|
|
10
|
+
couldNotSwitch: "Kon niet van rol wisselen"
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { text };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { authMessage } from "../auth/auth-messages.js";
|
|
2
2
|
import { useAuth } from "../auth/auth-provider.js";
|
|
3
3
|
import { useToast } from "../toasts/toast-provider.js";
|
|
4
|
+
import { text } from "./messages.js";
|
|
4
5
|
import { useCallback, useEffect, useState } from "react";
|
|
5
6
|
import { AuthError } from "@protobase/client";
|
|
6
7
|
//#region src/roles/use-active-role.ts
|
|
@@ -14,7 +15,7 @@ const useActiveRole = (reopen, enabled = true) => {
|
|
|
14
15
|
if (!enabled) return;
|
|
15
16
|
session.roles.current().then(setCurrent, (failure) => toast.show({
|
|
16
17
|
state: "error",
|
|
17
|
-
title: failureMessage(failure, "
|
|
18
|
+
title: failureMessage(failure, text("couldNotReadRoles"))
|
|
18
19
|
}));
|
|
19
20
|
}, [
|
|
20
21
|
session,
|
|
@@ -23,7 +24,7 @@ const useActiveRole = (reopen, enabled = true) => {
|
|
|
23
24
|
]);
|
|
24
25
|
const switchTo = useCallback((name) => void session.roles.switchTo(name).then(reopen, (failure) => toast.show({
|
|
25
26
|
state: "error",
|
|
26
|
-
title: failureMessage(failure, "
|
|
27
|
+
title: failureMessage(failure, text("couldNotSwitch"))
|
|
27
28
|
})), [
|
|
28
29
|
session,
|
|
29
30
|
toast,
|