@protobase/ui 0.21.6 → 0.21.7
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/app/app.d.ts +3 -3
- package/dist/app/app.js +32 -13
- package/dist/app/create/create-page.js +4 -4
- package/dist/app/custom-section.js +1 -1
- package/dist/app/displays/board-columns.js +1 -1
- package/dist/app/displays/board-display.js +1 -1
- package/dist/app/displays/list-displays.js +1 -1
- package/dist/app/displays/map-display.js +1 -1
- package/dist/app/displays/record-card.js +2 -2
- package/dist/app/displays/use-board-column.js +1 -1
- package/dist/app/displays/use-board-move.js +1 -1
- package/dist/app/displays/use-map-records.js +1 -1
- package/dist/app/embedded-list/embedded-list.js +3 -3
- package/dist/app/embedded-list/use-embedded-rows.js +1 -1
- package/dist/app/gallery/gallery-section.js +1 -1
- package/dist/app/gallery/lightbox.js +1 -1
- package/dist/app/hand-order/hand-sorted-list.js +3 -3
- package/dist/app/hand-order/use-hand-order.js +2 -2
- package/dist/app/import/import-dialog.js +1 -1
- package/dist/app/list-edit/use-list-edits.js +1 -1
- package/dist/app/list-page.js +4 -4
- package/dist/app/map/map-section.js +1 -1
- package/dist/app/pages/action-inputs/action-inputs-dialog.js +3 -3
- package/dist/app/pages/blocks/card-row.js +1 -1
- package/dist/app/pages/blocks/modal-form.js +3 -3
- package/dist/app/pages/blocks/record-card.js +1 -1
- package/dist/app/pages/field-value.js +1 -1
- package/dist/app/pages/use-run-action.js +1 -1
- package/dist/app/record-lines.js +1 -1
- package/dist/app/record-page.js +5 -5
- package/dist/app/record-row/record-row-body.js +1 -1
- package/dist/app/record-row/saved-record-row.js +1 -1
- package/dist/app/related-dots/related-dots.js +1 -1
- package/dist/app/related-section.js +1 -1
- package/dist/app/relation-picker.js +1 -1
- package/dist/app/search/search-model.js +1 -1
- package/dist/app/searches/saved-search-rows.js +2 -2
- package/dist/app/searches/saved-searches.js +2 -2
- package/dist/app/searches/update-search-dialog.js +1 -1
- package/dist/app/searches/use-save-search.js +1 -1
- package/dist/app/searches/use-saved-searches.js +1 -1
- package/dist/app/use-app-address.js +1 -1
- package/dist/assistant-dock/widget-view.js +1 -1
- package/dist/auth/auth-layout.d.ts +4 -2
- package/dist/auth/auth-layout.js +4 -3
- package/dist/data/api-provider.d.ts +6 -0
- package/dist/data/query-keys.js +3 -1
- package/dist/forms/prove-human.js +24 -0
- package/dist/forms/public-form-page.js +142 -0
- package/dist/forms/use-form-address.js +11 -0
- package/dist/index.js +7 -7
- package/dist/live/columns-from-model.js +1 -1
- package/dist/live/use-filter-config.js +1 -1
- package/dist/package.js +1 -1
- package/dist/plugins/plugin-gate.js +1 -1
- package/dist/shell/assets/app-BbVdHzEY.js +69 -0
- package/dist/shell/assets/{index-BztYGbYc.js → index-CQc-60lQ.js} +1 -1
- package/dist/shell/assets/{maplibre-CVOEAJ62.js → maplibre-BvtgTvfx.js} +1 -1
- package/dist/shell/assets/{markdown-content-Bg8FC_aK.js → markdown-content-CJ8g5iKO.js} +1 -1
- package/dist/shell/assets/{record-map-ChUVZLR6.js → record-map-DSXYVoqB.js} +1 -1
- package/dist/shell/assets/{records-map-BAI2D9VS.js → records-map-cU_FAK7w.js} +1 -1
- package/dist/shell/assets/shared-protobase-ui-Bc0CoTXD.js +1 -0
- package/dist/shell/index.html +3 -3
- package/dist/shell/protobase.shell.json +1 -1
- package/package.json +5 -4
- package/dist/shell/assets/app-Dfqcc3td.js +0 -69
- package/dist/shell/assets/shared-protobase-ui-CzT3bJ35.js +0 -1
package/dist/app/app.d.ts
CHANGED
|
@@ -29,9 +29,9 @@ export type AppProps = {
|
|
|
29
29
|
pluginLoader?: PluginLoader;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
|
-
* The admin: the sign-in route first, `/-/sign-in`, or browsing as a
|
|
33
|
-
* then a sidebar from `/meta`, `/:page` composed pages, `/:resource`
|
|
34
|
-
* parent, in the theme this browser chose, light, dark or the system's.
|
|
32
|
+
* The admin: a public form at `/-/forms/<name>` for anyone, the sign-in route first, `/-/sign-in`, or browsing as a
|
|
33
|
+
* visitor when the project's anonymous role reads, then a sidebar from `/meta`, `/:page` composed pages, `/:resource`
|
|
34
|
+
* lists and `/:resource/:key` records. Fills its parent, in the theme this browser chose, light, dark or the system's.
|
|
35
35
|
*/
|
|
36
36
|
export declare const App: ({ auth, workspace, basePath, initialUrl, pluginLoader, ...rest }: AppProps) => import("react").JSX.Element;
|
|
37
37
|
//#endregion
|
package/dist/app/app.js
CHANGED
|
@@ -13,18 +13,20 @@ import { PluginSourceProvider } from "../plugins/plugin-source.js";
|
|
|
13
13
|
import { AuthGate } from "../auth/auth-gate.js";
|
|
14
14
|
import { isAdmin, userToShell } from "../auth/user-to-shell.js";
|
|
15
15
|
import { useOpenedRecord } from "../data/use-record.js";
|
|
16
|
-
import { recordTitle } from "../live/model-helpers.js";
|
|
17
16
|
import { humanize } from "../live/naming.js";
|
|
18
|
-
import { ThemeProvider, useTheme } from "../theme/theme-provider.js";
|
|
19
17
|
import { ToastProvider } from "../toasts/toast-provider.js";
|
|
20
|
-
import { useProjectUi } from "./pages/project-ui.js";
|
|
21
|
-
import { AssistantButton, AssistantPanel } from "./assistant-shell.js";
|
|
22
|
-
import { bottomBarFromMeta } from "./bottom-bar-from-meta.js";
|
|
23
|
-
import { breadcrumbFor } from "./breadcrumb-for.js";
|
|
24
18
|
import { documentTitle, titleParts, useDocumentTitle } from "./document-title.js";
|
|
19
|
+
import { recordTitle } from "../live/model-helpers.js";
|
|
25
20
|
import { sourceStatusOf } from "../data/with-sources.js";
|
|
26
21
|
import { MetaGate, Notice, useAdminMeta } from "./meta-gate.js";
|
|
27
22
|
import { useAppAddress } from "./use-app-address.js";
|
|
23
|
+
import { ProjectUiContext, useProjectUi } from "./pages/project-ui.js";
|
|
24
|
+
import { PublicFormPage } from "../forms/public-form-page.js";
|
|
25
|
+
import { useFormAddress } from "../forms/use-form-address.js";
|
|
26
|
+
import { ThemeProvider, useTheme } from "../theme/theme-provider.js";
|
|
27
|
+
import { AssistantButton, AssistantPanel } from "./assistant-shell.js";
|
|
28
|
+
import { bottomBarFromMeta } from "./bottom-bar-from-meta.js";
|
|
29
|
+
import { breadcrumbFor } from "./breadcrumb-for.js";
|
|
28
30
|
import { ComposedPage } from "./pages/composed-page.js";
|
|
29
31
|
import { CreateRoute } from "./create/create-route.js";
|
|
30
32
|
import { ListPage } from "./list-page.js";
|
|
@@ -278,10 +280,22 @@ const Authenticated = ({ baseUrl, client, sources, workspace, sidebarMode, ui, a
|
|
|
278
280
|
}) }) })
|
|
279
281
|
});
|
|
280
282
|
};
|
|
283
|
+
const PublicFormGate = ({ baseUrl, client, ui, children }) => {
|
|
284
|
+
const address = useFormAddress();
|
|
285
|
+
if (!address) return children;
|
|
286
|
+
return /* @__PURE__ */ jsx(ApiProvider, {
|
|
287
|
+
baseUrl,
|
|
288
|
+
client,
|
|
289
|
+
children: /* @__PURE__ */ jsx(ProjectUiContext.Provider, {
|
|
290
|
+
value: ui ?? {},
|
|
291
|
+
children: /* @__PURE__ */ jsx(PublicFormPage, { name: address.name }, address.name)
|
|
292
|
+
})
|
|
293
|
+
});
|
|
294
|
+
};
|
|
281
295
|
/**
|
|
282
|
-
* The admin: the sign-in route first, `/-/sign-in`, or browsing as a
|
|
283
|
-
* then a sidebar from `/meta`, `/:page` composed pages, `/:resource`
|
|
284
|
-
* parent, in the theme this browser chose, light, dark or the system's.
|
|
296
|
+
* The admin: a public form at `/-/forms/<name>` for anyone, the sign-in route first, `/-/sign-in`, or browsing as a
|
|
297
|
+
* visitor when the project's anonymous role reads, then a sidebar from `/meta`, `/:page` composed pages, `/:resource`
|
|
298
|
+
* lists and `/:resource/:key` records. Fills its parent, in the theme this browser chose, light, dark or the system's.
|
|
285
299
|
*/
|
|
286
300
|
const App = ({ auth, workspace, basePath, initialUrl, pluginLoader, ...rest }) => /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(AuthProvider, {
|
|
287
301
|
session: auth,
|
|
@@ -290,11 +304,16 @@ const App = ({ auth, workspace, basePath, initialUrl, pluginLoader, ...rest }) =
|
|
|
290
304
|
initialUrl,
|
|
291
305
|
children: /* @__PURE__ */ jsx(PluginSourceProvider, {
|
|
292
306
|
...pluginLoader && { loader: pluginLoader },
|
|
293
|
-
children: /* @__PURE__ */ jsx(
|
|
294
|
-
|
|
295
|
-
|
|
307
|
+
children: /* @__PURE__ */ jsx(PublicFormGate, {
|
|
308
|
+
baseUrl: rest.baseUrl,
|
|
309
|
+
client: rest.client,
|
|
310
|
+
ui: rest.ui,
|
|
311
|
+
children: /* @__PURE__ */ jsx(AuthGate, {
|
|
296
312
|
workspace,
|
|
297
|
-
|
|
313
|
+
children: /* @__PURE__ */ jsx(Authenticated, {
|
|
314
|
+
workspace,
|
|
315
|
+
...rest
|
|
316
|
+
})
|
|
298
317
|
})
|
|
299
318
|
})
|
|
300
319
|
})
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useClient } from "../../data/api-provider.js";
|
|
2
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
3
2
|
import { humanize } from "../../live/naming.js";
|
|
4
|
-
import { Notice, useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
5
3
|
import { createBody, createSections, hasDatabaseDefault, initialDraft, isChosen, isRequired } from "./create-values.js";
|
|
4
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
5
|
+
import { Notice, useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
6
6
|
import { useAppAddress } from "../use-app-address.js";
|
|
7
7
|
import { FieldEditor } from "../field-editor.js";
|
|
8
|
-
import { can } from "../permissions.js";
|
|
9
|
-
import { fetchLabels } from "../../live/relation-labels.js";
|
|
10
8
|
import { fieldErrors, fieldMessage } from "../field-errors.js";
|
|
11
9
|
import { useFocusFirstInvalid } from "../use-focus-first-invalid.js";
|
|
10
|
+
import { can } from "../permissions.js";
|
|
11
|
+
import { fetchLabels } from "../../live/relation-labels.js";
|
|
12
12
|
import { useLiveSave } from "../use-live-save.js";
|
|
13
13
|
import { CreateRecordForm } from "./create-record-form.js";
|
|
14
14
|
import { useEffect, useState } from "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Problem } from "./pages/problem.js";
|
|
2
2
|
import { CustomBoundary } from "./pages/custom-boundary.js";
|
|
3
|
-
import { useProjectUi } from "./pages/project-ui.js";
|
|
4
3
|
import { Section } from "../record-view/section.js";
|
|
5
4
|
import { SidebarCard } from "../record-view/record-sidebar.js";
|
|
5
|
+
import { useProjectUi } from "./pages/project-ui.js";
|
|
6
6
|
import { RecordScope } from "./pages/record-scope.js";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { unmarkFieldRefs } from "@protobase/schema/internal";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { recordTitleField } from "../../live/model-helpers.js";
|
|
2
1
|
import { humanize } from "../../live/naming.js";
|
|
2
|
+
import { recordTitleField } from "../../live/model-helpers.js";
|
|
3
3
|
import { isApiError } from "@protobase/client";
|
|
4
4
|
import { enumLabel, printFilter, where } from "@protobase/schema";
|
|
5
5
|
//#region src/app/displays/board-columns.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { usePermissions } from "../meta-gate.js";
|
|
2
1
|
import { boardCard, boardColumns } from "./board-columns.js";
|
|
2
|
+
import { usePermissions } from "../meta-gate.js";
|
|
3
3
|
import { can } from "../permissions.js";
|
|
4
4
|
import { RecordCard } from "./record-card.js";
|
|
5
5
|
import { collision, columnCoordinates, columnId } from "./board-dnd.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { recordKey, recordTitleField } from "../../live/model-helpers.js";
|
|
2
1
|
import { humanize } from "../../live/naming.js";
|
|
2
|
+
import { recordKey, recordTitleField } from "../../live/model-helpers.js";
|
|
3
3
|
import { listColumnNames } from "../../live/columns-from-model.js";
|
|
4
4
|
import { displayValue } from "../../live/display-value.js";
|
|
5
5
|
import { photosKey } from "../../live/row-photos.js";
|
|
@@ -2,9 +2,9 @@ import { cn } from "../../lib/cn.js";
|
|
|
2
2
|
import { Button } from "../../primitives/button.js";
|
|
3
3
|
import { Problem } from "../pages/problem.js";
|
|
4
4
|
import { humanize } from "../../live/naming.js";
|
|
5
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
6
5
|
import { ErrorBanner } from "../error-banner.js";
|
|
7
6
|
import { mapCards } from "./list-displays.js";
|
|
7
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
8
8
|
import { useDebounced } from "../../lib/use-debounced.js";
|
|
9
9
|
import { RecordCard } from "./record-card.js";
|
|
10
10
|
import { boundsAround, worldArea } from "../map/map-area.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Badge } from "../../primitives/badge.js";
|
|
2
2
|
import { CustomBoundary } from "../pages/custom-boundary.js";
|
|
3
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
4
3
|
import { humanize } from "../../live/naming.js";
|
|
5
|
-
import { useProjectUi } from "../pages/project-ui.js";
|
|
6
4
|
import { markdownExcerpt } from "../../markdown/markdown-excerpt.js";
|
|
7
5
|
import { isMarkdown } from "../../markdown/markdown-hint.js";
|
|
6
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
8
7
|
import { displayValue } from "../../live/display-value.js";
|
|
9
8
|
import { amountParts, cardFields, filledAmount, filledMeta } from "./list-displays.js";
|
|
10
9
|
import { AppLink } from "../use-app-address.js";
|
|
10
|
+
import { useProjectUi } from "../pages/project-ui.js";
|
|
11
11
|
import { shownWidget } from "../field-types/shown-widget.js";
|
|
12
12
|
import { WidgetPart } from "../field-types/widget-part.js";
|
|
13
13
|
import { Markdown } from "../../markdown/markdown.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
2
1
|
import { columnFilter } from "./board-columns.js";
|
|
2
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
3
3
|
import { useLiveRows } from "../../live/use-live-rows.js";
|
|
4
4
|
import { useDisplayRows } from "./use-display-rows.js";
|
|
5
5
|
//#region src/app/displays/use-board-column.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useClient } from "../../data/api-provider.js";
|
|
2
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
3
2
|
import { useToast } from "../../toasts/toast-provider.js";
|
|
3
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
4
4
|
import { refusalReason } from "./board-columns.js";
|
|
5
5
|
import { useRefreshResource } from "../pages/use-layout-data.js";
|
|
6
6
|
import { useState } from "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { keys } from "../../data/query-keys.js";
|
|
2
2
|
import { useClient } from "../../data/api-provider.js";
|
|
3
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
4
3
|
import { listPhotos, withPhotos } from "../../live/row-photos.js";
|
|
5
4
|
import { displayRow } from "./list-displays.js";
|
|
5
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
6
6
|
import { listLabels, withLabels } from "../../live/relation-labels.js";
|
|
7
7
|
import { areaFilter, requestZoom } from "../map/map-area.js";
|
|
8
8
|
import { keepPreviousData, useQuery } from "@tanstack/react-query";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useIsDesktop, useIsXs } from "../../lib/use-media-query.js";
|
|
2
2
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
3
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
4
3
|
import { humanize } from "../../live/naming.js";
|
|
5
|
-
import { useProjectUi } from "../pages/project-ui.js";
|
|
6
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
7
4
|
import { ErrorBanner } from "../error-banner.js";
|
|
5
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
8
6
|
import { listColumnNames } from "../../live/columns-from-model.js";
|
|
9
7
|
import { displayRow, loadedFields, shownDisplay } from "../displays/list-displays.js";
|
|
10
8
|
import { defaultOrderBy, parseSort, sortToOrderBy } from "../list-order.js";
|
|
9
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
11
10
|
import { AppLink, useAppAddress } from "../use-app-address.js";
|
|
11
|
+
import { useProjectUi } from "../pages/project-ui.js";
|
|
12
12
|
import { DataGrid } from "../../data-grid/data-grid.js";
|
|
13
13
|
import { viewAllAddress } from "./embedded-display.js";
|
|
14
14
|
import { BoardDisplay } from "../displays/board-display.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { keys } from "../../data/query-keys.js";
|
|
2
2
|
import { useClient } from "../../data/api-provider.js";
|
|
3
3
|
import { recordId } from "../../live/model-helpers.js";
|
|
4
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
5
4
|
import { listPhotos, withPhotos } from "../../live/row-photos.js";
|
|
5
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
6
6
|
import { listLabels, withLabels } from "../../live/relation-labels.js";
|
|
7
7
|
import { keepPreviousData, useQuery } from "@tanstack/react-query";
|
|
8
8
|
//#region src/app/embedded-list/use-embedded-rows.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.js";
|
|
2
2
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
3
3
|
import { humanize } from "../../live/naming.js";
|
|
4
|
-
import { useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
5
4
|
import { Section } from "../../record-view/section.js";
|
|
6
5
|
import { shownImage } from "../../live/file-values.js";
|
|
7
6
|
import { ErrorBanner } from "../error-banner.js";
|
|
7
|
+
import { useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
8
8
|
import { FileImage } from "../../live/file-image.js";
|
|
9
9
|
import { galleryTiles } from "./gallery-layout.js";
|
|
10
10
|
import { Lightbox } from "./lightbox.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.js";
|
|
2
2
|
import { useIsDesktop } from "../../lib/use-media-query.js";
|
|
3
3
|
import { useFocusTrap } from "../../lib/use-focus-trap.js";
|
|
4
|
-
import { Sheet } from "../../primitives/sheet.js";
|
|
5
4
|
import { shownImage } from "../../live/file-values.js";
|
|
6
5
|
import { FileImage } from "../../live/file-image.js";
|
|
6
|
+
import { Sheet } from "../../primitives/sheet.js";
|
|
7
7
|
import { keyStep, steppedPhoto, swipeStep, togglesDetails } from "./gallery-layout.js";
|
|
8
8
|
import { readDetailsOpen, writeDetailsOpen } from "./details-open-storage.js";
|
|
9
9
|
import { useEffect, useId, useRef, useState } from "react";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
2
|
-
import { recordKey, recordTitle } from "../../live/model-helpers.js";
|
|
3
2
|
import { humanize } from "../../live/naming.js";
|
|
4
|
-
import { useProjectUi } from "../pages/project-ui.js";
|
|
5
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
6
3
|
import { ErrorBanner } from "../error-banner.js";
|
|
4
|
+
import { recordKey, recordTitle } from "../../live/model-helpers.js";
|
|
7
5
|
import { loadedFields } from "../displays/list-displays.js";
|
|
6
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
8
7
|
import { useAppAddress } from "../use-app-address.js";
|
|
8
|
+
import { useProjectUi } from "../pages/project-ui.js";
|
|
9
9
|
import { DataGrid } from "../../data-grid/data-grid.js";
|
|
10
10
|
import { embeddedColumns } from "../embedded-list/embedded-columns.js";
|
|
11
11
|
import { useHandOrder } from "./use-hand-order.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { keys } from "../../data/query-keys.js";
|
|
2
2
|
import { useClient } from "../../data/api-provider.js";
|
|
3
|
-
import { recordId, recordKey } from "../../live/model-helpers.js";
|
|
4
3
|
import { useToast } from "../../toasts/toast-provider.js";
|
|
5
|
-
import {
|
|
4
|
+
import { recordId, recordKey } from "../../live/model-helpers.js";
|
|
6
5
|
import { refusalReason } from "../displays/board-columns.js";
|
|
6
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
7
7
|
import { useRefreshResource } from "../pages/use-layout-data.js";
|
|
8
8
|
import { listLabels, withLabels } from "../../live/relation-labels.js";
|
|
9
9
|
import { useRef, useState } from "react";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Button } from "../../primitives/button.js";
|
|
2
2
|
import { humanize } from "../../live/naming.js";
|
|
3
|
-
import { ResponsiveDialog } from "../../primitives/responsive-dialog.js";
|
|
4
3
|
import { ErrorBanner } from "../error-banner.js";
|
|
4
|
+
import { ResponsiveDialog } from "../../primitives/responsive-dialog.js";
|
|
5
5
|
import { unmappedRequired } from "./mapping.js";
|
|
6
6
|
import { ImportCheckStep, ImportChecking } from "./import-check-step.js";
|
|
7
7
|
import { ImportFileStep } from "./import-file-step.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { keys } from "../../data/query-keys.js";
|
|
2
2
|
import { useClient } from "../../data/api-provider.js";
|
|
3
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
4
3
|
import { useToast } from "../../toasts/toast-provider.js";
|
|
4
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
5
5
|
import { useRef, useState } from "react";
|
|
6
6
|
import { isApiError } from "@protobase/client";
|
|
7
7
|
import { useQueryClient } from "@tanstack/react-query";
|
package/dist/app/list-page.js
CHANGED
|
@@ -3,17 +3,17 @@ import { usePageScroll } from "../app-shell/page-scroll.js";
|
|
|
3
3
|
import { PageHeader } from "../app-shell/page-header.js";
|
|
4
4
|
import { useAuth } from "../auth/auth-provider.js";
|
|
5
5
|
import { Button, buttonClass } from "../primitives/button.js";
|
|
6
|
-
import { recordKey, recordTitleField } from "../live/model-helpers.js";
|
|
7
6
|
import { humanize } from "../live/naming.js";
|
|
8
|
-
import { useProjectUi } from "./pages/project-ui.js";
|
|
9
|
-
import { Notice, useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
10
|
-
import { Sheet } from "../primitives/sheet.js";
|
|
11
7
|
import { ErrorBanner } from "./error-banner.js";
|
|
8
|
+
import { recordKey, recordTitleField } from "../live/model-helpers.js";
|
|
12
9
|
import { columnsFromModel, listColumnNames } from "../live/columns-from-model.js";
|
|
13
10
|
import { displayRow, listDisplayChoices, loadedFields, shownListDisplay } from "./displays/list-displays.js";
|
|
14
11
|
import { parseSort, sortToOrderBy } from "./list-order.js";
|
|
15
12
|
import { listedResource } from "./current-address.js";
|
|
13
|
+
import { Notice, useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
16
14
|
import { AppLink, useAppAddress } from "./use-app-address.js";
|
|
15
|
+
import { useProjectUi } from "./pages/project-ui.js";
|
|
16
|
+
import { Sheet } from "../primitives/sheet.js";
|
|
17
17
|
import { can, rowAllows } from "./permissions.js";
|
|
18
18
|
import { pinnedStorageKey } from "../data-grid/pinned-storage.js";
|
|
19
19
|
import { DataGrid } from "../data-grid/data-grid.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
2
1
|
import { Section } from "../../record-view/section.js";
|
|
3
2
|
import { SidebarCard } from "../../record-view/record-sidebar.js";
|
|
3
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
4
4
|
import { recordPosition } from "./record-position.js";
|
|
5
5
|
import { Suspense, lazy } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Button } from "../../../primitives/button.js";
|
|
2
|
-
import { useProjectUi } from "../project-ui.js";
|
|
3
|
-
import { useAdminMeta } from "../../meta-gate.js";
|
|
4
|
-
import { ResponsiveDialog } from "../../../primitives/responsive-dialog.js";
|
|
5
2
|
import { Field } from "../../../record-view/field.js";
|
|
6
3
|
import { isChosen } from "../../create/create-values.js";
|
|
7
4
|
import { ErrorBanner } from "../../error-banner.js";
|
|
5
|
+
import { useAdminMeta } from "../../meta-gate.js";
|
|
6
|
+
import { useProjectUi } from "../project-ui.js";
|
|
8
7
|
import { FieldEditor } from "../../field-editor.js";
|
|
8
|
+
import { ResponsiveDialog } from "../../../primitives/responsive-dialog.js";
|
|
9
9
|
import { answeredValues, inputField, inputHints, refusedAnswers, startingAnswers } from "./input-answers.js";
|
|
10
10
|
import { inputErrors } from "./input-errors.js";
|
|
11
11
|
import { useId, useState } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Skeleton } from "../../../primitives/skeleton.js";
|
|
2
|
-
import { useAdminMeta } from "../../meta-gate.js";
|
|
3
2
|
import { ErrorBanner } from "../../error-banner.js";
|
|
3
|
+
import { useAdminMeta } from "../../meta-gate.js";
|
|
4
4
|
import { RecordScope } from "../record-scope.js";
|
|
5
5
|
import { scopeOf, useListPage } from "../use-layout-data.js";
|
|
6
6
|
import { propsOf } from "./block-props.js";
|
|
@@ -3,18 +3,18 @@ import { Dialog } from "../../../primitives/dialog.js";
|
|
|
3
3
|
import { useClient } from "../../../data/api-provider.js";
|
|
4
4
|
import { humanize } from "../../../live/naming.js";
|
|
5
5
|
import { useToast } from "../../../toasts/toast-provider.js";
|
|
6
|
-
import { useAdminMeta, usePermissions } from "../../meta-gate.js";
|
|
7
6
|
import { Field } from "../../../record-view/field.js";
|
|
8
7
|
import { differs, toDraft, toPatchValue } from "../../../live/field-values.js";
|
|
9
8
|
import { createBody, isChosen } from "../../create/create-values.js";
|
|
10
9
|
import { ErrorBanner } from "../../error-banner.js";
|
|
10
|
+
import { useAdminMeta, usePermissions } from "../../meta-gate.js";
|
|
11
11
|
import { FieldEditor } from "../../field-editor.js";
|
|
12
|
+
import { fieldErrors, fieldMessage } from "../../field-errors.js";
|
|
13
|
+
import { useFocusFirstInvalid } from "../../use-focus-first-invalid.js";
|
|
12
14
|
import { useLayoutRecord } from "../record-scope.js";
|
|
13
15
|
import { can } from "../../permissions.js";
|
|
14
16
|
import { useFirstRecord, useRefreshResource } from "../use-layout-data.js";
|
|
15
17
|
import { propsOf } from "./block-props.js";
|
|
16
|
-
import { fieldErrors, fieldMessage } from "../../field-errors.js";
|
|
17
|
-
import { useFocusFirstInvalid } from "../../use-focus-first-invalid.js";
|
|
18
18
|
import { useState } from "react";
|
|
19
19
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
20
20
|
//#region src/app/pages/blocks/modal-form.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Skeleton } from "../../../primitives/skeleton.js";
|
|
2
|
-
import { useAdminMeta } from "../../meta-gate.js";
|
|
3
2
|
import { ErrorBanner } from "../../error-banner.js";
|
|
3
|
+
import { useAdminMeta } from "../../meta-gate.js";
|
|
4
4
|
import { RecordScope } from "../record-scope.js";
|
|
5
5
|
import { useFirstRecord } from "../use-layout-data.js";
|
|
6
6
|
import { propsOf } from "./block-props.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.js";
|
|
2
2
|
import { keys } from "../../data/query-keys.js";
|
|
3
3
|
import { useClient } from "../../data/api-provider.js";
|
|
4
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
5
4
|
import { fileShown, shownImage } from "../../live/file-values.js";
|
|
6
5
|
import { isMarkdown } from "../../markdown/markdown-hint.js";
|
|
7
6
|
import { displayValue } from "../../live/display-value.js";
|
|
7
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
8
8
|
import { AppLink } from "../use-app-address.js";
|
|
9
9
|
import { FileImage } from "../../live/file-image.js";
|
|
10
10
|
import { useShownWidget } from "../field-types/shown-widget.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useClient, useResourceClient } from "../../data/api-provider.js";
|
|
2
2
|
import { useToast } from "../../toasts/toast-provider.js";
|
|
3
|
-
import { useProjectUi } from "./project-ui.js";
|
|
4
3
|
import { useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
5
4
|
import { useAppAddress } from "../use-app-address.js";
|
|
5
|
+
import { useProjectUi } from "./project-ui.js";
|
|
6
6
|
import { can } from "../permissions.js";
|
|
7
7
|
import { actionFor, linkTarget, openLink } from "./action-href.js";
|
|
8
8
|
import { useRefreshResource } from "./use-layout-data.js";
|
package/dist/app/record-lines.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { usePermissions } from "./meta-gate.js";
|
|
2
1
|
import { InlineChildTable } from "../inline-child-table/inline-child-table.js";
|
|
3
2
|
import { Section } from "../record-view/section.js";
|
|
3
|
+
import { usePermissions } from "./meta-gate.js";
|
|
4
4
|
import { can } from "./permissions.js";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/app/record-lines.tsx
|
package/dist/app/record-page.js
CHANGED
|
@@ -8,10 +8,7 @@ import { keys } from "../data/query-keys.js";
|
|
|
8
8
|
import { useClient } from "../data/api-provider.js";
|
|
9
9
|
import { useNavigationGuard, useRouter } from "./router.js";
|
|
10
10
|
import { useOpenedRecord } from "../data/use-record.js";
|
|
11
|
-
import { recordTitle } from "../live/model-helpers.js";
|
|
12
11
|
import { humanize } from "../live/naming.js";
|
|
13
|
-
import { useProjectUi } from "./pages/project-ui.js";
|
|
14
|
-
import { Notice, useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
15
12
|
import { Field } from "../record-view/field.js";
|
|
16
13
|
import { Section } from "../record-view/section.js";
|
|
17
14
|
import { MetadataCard, RelatedRecords, SidebarCard } from "../record-view/record-sidebar.js";
|
|
@@ -23,19 +20,22 @@ import { fieldHelp, helpShown, recordShown, whenShown } from "./record-mode/reco
|
|
|
23
20
|
import { isChosen, keyValue } from "./create/create-values.js";
|
|
24
21
|
import { ErrorBanner } from "./error-banner.js";
|
|
25
22
|
import { isMarkdown } from "../markdown/markdown-hint.js";
|
|
23
|
+
import { recordTitle } from "../live/model-helpers.js";
|
|
26
24
|
import { toneFor } from "../live/columns-from-model.js";
|
|
27
25
|
import { displayValue } from "../live/display-value.js";
|
|
28
26
|
import { filledFields } from "./filled-fields.js";
|
|
27
|
+
import { Notice, useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
29
28
|
import { AppLink, useAppAddress } from "./use-app-address.js";
|
|
29
|
+
import { useProjectUi } from "./pages/project-ui.js";
|
|
30
30
|
import { shownWidget } from "./field-types/shown-widget.js";
|
|
31
31
|
import { WidgetPart } from "./field-types/widget-part.js";
|
|
32
32
|
import { Markdown } from "../markdown/markdown.js";
|
|
33
33
|
import { FieldEditor } from "./field-editor.js";
|
|
34
|
+
import { fieldMessage } from "./field-errors.js";
|
|
35
|
+
import { useFocusFirstInvalid } from "./use-focus-first-invalid.js";
|
|
34
36
|
import { can, fieldAccess } from "./permissions.js";
|
|
35
37
|
import { ValueBadge } from "./value-badge.js";
|
|
36
38
|
import { FieldValue } from "./pages/field-value.js";
|
|
37
|
-
import { fieldMessage } from "./field-errors.js";
|
|
38
|
-
import { useFocusFirstInvalid } from "./use-focus-first-invalid.js";
|
|
39
39
|
import { namedIcon } from "./named-icon.js";
|
|
40
40
|
import { useDeleteFlow } from "./delete/use-delete-flow.js";
|
|
41
41
|
import { useRestore } from "./delete/use-restore.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useIsXs } from "../../lib/use-media-query.js";
|
|
2
2
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
3
3
|
import { humanize } from "../../live/naming.js";
|
|
4
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
5
4
|
import { ErrorBanner } from "../error-banner.js";
|
|
6
5
|
import { displaysOf, loadedFields } from "../displays/list-displays.js";
|
|
7
6
|
import { defaultOrderBy } from "../list-order.js";
|
|
7
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
8
8
|
import { AppLink } from "../use-app-address.js";
|
|
9
9
|
import { useLiveRows } from "../../live/use-live-rows.js";
|
|
10
10
|
import { viewAllAddress } from "../embedded-list/embedded-display.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
2
2
|
import { humanize } from "../../live/naming.js";
|
|
3
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
4
3
|
import { ErrorBanner } from "../error-banner.js";
|
|
5
4
|
import { listedResource } from "../current-address.js";
|
|
5
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
6
6
|
import { savedScope } from "../saved/saved-records.js";
|
|
7
7
|
import { useSavedRecords } from "../saved/use-saved-records.js";
|
|
8
8
|
import { RecordRowBody } from "./record-row-body.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.js";
|
|
2
2
|
import { toneDots } from "../../primitives/badge.js";
|
|
3
|
-
import { recordTitleField } from "../../live/model-helpers.js";
|
|
4
3
|
import { humanize } from "../../live/naming.js";
|
|
4
|
+
import { recordTitleField } from "../../live/model-helpers.js";
|
|
5
5
|
import { toneFor } from "../../live/columns-from-model.js";
|
|
6
6
|
import { displayValue } from "../../live/display-value.js";
|
|
7
7
|
import { displayRow } from "../displays/list-displays.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Skeleton } from "../primitives/skeleton.js";
|
|
2
2
|
import { keys } from "../data/query-keys.js";
|
|
3
3
|
import { useClient } from "../data/api-provider.js";
|
|
4
|
-
import { useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
5
4
|
import { Section } from "../record-view/section.js";
|
|
6
5
|
import { ErrorBanner } from "./error-banner.js";
|
|
7
6
|
import { listColumnNames } from "../live/columns-from-model.js";
|
|
7
|
+
import { useAdminMeta, usePermissions } from "./meta-gate.js";
|
|
8
8
|
import { searchAll } from "../live/search-all.js";
|
|
9
9
|
import { EmbeddedDisplaySwitch, EmbeddedList } from "./embedded-list/embedded-list.js";
|
|
10
10
|
import { useEmbeddedDisplay } from "./embedded-list/use-embedded-display.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
2
|
import { Input } from "../primitives/input.js";
|
|
3
|
-
import { labelFieldOf } from "../live/model-helpers.js";
|
|
4
3
|
import { humanize } from "../live/naming.js";
|
|
4
|
+
import { labelFieldOf } from "../live/model-helpers.js";
|
|
5
5
|
import { useList } from "../data/use-list.js";
|
|
6
6
|
import { relationOptionsQuery, titleMatches } from "./relation-options.js";
|
|
7
7
|
import { useCallback, useEffect, useId, useRef, useState } from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { recordKey, recordTitleField } from "../../live/model-helpers.js";
|
|
2
1
|
import { humanize } from "../../live/naming.js";
|
|
2
|
+
import { recordKey, recordTitleField } from "../../live/model-helpers.js";
|
|
3
3
|
import { appPath, createWhere, enumLabel, printFilter } from "@protobase/schema";
|
|
4
4
|
import { encodeKey, matchedSearchField } from "@protobase/schema/internal";
|
|
5
5
|
//#region src/app/search/search-model.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
2
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
3
2
|
import { humanize } from "../../live/naming.js";
|
|
4
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
5
3
|
import { ErrorBanner } from "../error-banner.js";
|
|
4
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
5
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
6
6
|
import { AppLink } from "../use-app-address.js";
|
|
7
7
|
import { InlineFilterChips } from "./filter-chip-list.js";
|
|
8
8
|
import { RecordRowBody } from "../record-row/record-row-body.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Skeleton } from "../../primitives/skeleton.js";
|
|
2
2
|
import { PageHeader } from "../../app-shell/page-header.js";
|
|
3
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
4
3
|
import { humanize } from "../../live/naming.js";
|
|
5
|
-
import { Notice, useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
6
4
|
import { ErrorBanner } from "../error-banner.js";
|
|
5
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
6
|
+
import { Notice, useAdminMeta, usePermissions } from "../meta-gate.js";
|
|
7
7
|
import { AppLink } from "../use-app-address.js";
|
|
8
8
|
import { can } from "../permissions.js";
|
|
9
9
|
import { useSavedSearches } from "./use-saved-searches.js";
|
|
@@ -2,8 +2,8 @@ import { Skeleton } from "../../primitives/skeleton.js";
|
|
|
2
2
|
import { Button } from "../../primitives/button.js";
|
|
3
3
|
import { useClient } from "../../data/api-provider.js";
|
|
4
4
|
import { humanize } from "../../live/naming.js";
|
|
5
|
-
import { ResponsiveDialog } from "../../primitives/responsive-dialog.js";
|
|
6
5
|
import { defaultOrderBy } from "../list-order.js";
|
|
6
|
+
import { ResponsiveDialog } from "../../primitives/responsive-dialog.js";
|
|
7
7
|
import { countQuery } from "../pages/use-layout-data.js";
|
|
8
8
|
import { useFilterChips } from "./use-filter-chips.js";
|
|
9
9
|
import { EmbeddedList } from "../embedded-list/embedded-list.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useClient } from "../../data/api-provider.js";
|
|
2
|
-
import { recordKey } from "../../live/model-helpers.js";
|
|
3
2
|
import { humanize } from "../../live/naming.js";
|
|
4
3
|
import { useToast } from "../../toasts/toast-provider.js";
|
|
4
|
+
import { recordKey } from "../../live/model-helpers.js";
|
|
5
5
|
import { useAdminMeta } from "../meta-gate.js";
|
|
6
6
|
import { useAppAddress } from "../use-app-address.js";
|
|
7
7
|
import { can } from "../permissions.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { keys } from "../../data/query-keys.js";
|
|
2
2
|
import { useClient } from "../../data/api-provider.js";
|
|
3
|
-
import { useAdminMeta } from "../meta-gate.js";
|
|
4
3
|
import { defaultOrderBy } from "../list-order.js";
|
|
4
|
+
import { useAdminMeta } from "../meta-gate.js";
|
|
5
5
|
import { useQuery } from "@tanstack/react-query";
|
|
6
6
|
//#region src/app/searches/use-saved-searches.ts
|
|
7
7
|
/** Where the user's saved searches of `resource` are cached; a list key, so a write to the resource refreshes it. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useIsXs } from "../lib/use-media-query.js";
|
|
2
2
|
import { Link, useRouter } from "./router.js";
|
|
3
|
-
import { useAdminMeta } from "./meta-gate.js";
|
|
4
3
|
import { changedList, currentAddress, listDefaults, listedResource } from "./current-address.js";
|
|
4
|
+
import { useAdminMeta } from "./meta-gate.js";
|
|
5
5
|
import { useCallback, useMemo } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { appPath, readAppPath } from "@protobase/schema";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { reportRenderError } from "../app/error-reporting.js";
|
|
2
|
-
import { ActionCard } from "../action-card/action-card.js";
|
|
3
2
|
import { useProjectUi } from "../app/pages/project-ui.js";
|
|
3
|
+
import { ActionCard } from "../action-card/action-card.js";
|
|
4
4
|
import { Component } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/assistant-dock/widget-view.tsx
|