@protobase/cli 0.66.12 → 0.66.14

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.
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "0.66.12";
2
+ var version = "0.66.14";
3
3
  //#endregion
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protobase/cli",
3
- "version": "0.66.12",
3
+ "version": "0.66.14",
4
4
  "description": "The protobase command: scaffold, doctor, dev, build and serve a Protobase project.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -43,12 +43,12 @@
43
43
  "dependencies": {
44
44
  "@better-auth/core": "^1.7.12",
45
45
  "@hono/node-server": "^2.1.3",
46
- "@protobase/config": "0.66.12",
47
- "@protobase/layout": "0.66.12",
48
- "@protobase/query": "0.66.12",
49
- "@protobase/schema": "0.66.12",
50
- "@protobase/server": "0.66.12",
51
- "@protobase/ui": "0.66.12",
46
+ "@protobase/config": "0.66.14",
47
+ "@protobase/layout": "0.66.14",
48
+ "@protobase/query": "0.66.14",
49
+ "@protobase/schema": "0.66.14",
50
+ "@protobase/server": "0.66.14",
51
+ "@protobase/ui": "0.66.14",
52
52
  "@react-email/render": "^2.1.0",
53
53
  "@scalar/hono-api-reference": "^0.12.10",
54
54
  "@sentry/vite-plugin": "^11.10.0",
@@ -10,6 +10,7 @@ Pages of your own, built from blocks in a JSX layout.
10
10
  - [App addresses](../reference/layouts.md#addresses): Links to lists, records, create forms and pages are typed addresses that can carry filters and prefilled values.
11
11
  - [Per-user pages](../reference/layouts.md#access): Each user gets the page without the parts, fields and actions they cannot use.
12
12
  - [Layout blocks](../reference/blocks.md#layout): Pages, responsive grids, cards and links.
13
+ - [Full-width pages](../reference/blocks.md#page): A page fills the whole area beside the sidebar instead of a centred column, for a dashboard with many blocks.
13
14
  - [Data blocks](../reference/blocks.md#data): Counts, tables, single records, rows of cards, field values and progress bars.
14
15
  - [Record rows](../reference/blocks.md#recordrow): A sideways row of cards for a filter, favorites or saved searches, with a count and new-record marks.
15
16
  - [Record cards](../reference/blocks.md#recordcards): Full-width cards with fields and buttons, stacked or in a carousel.
@@ -5,6 +5,7 @@
5
5
  The page of one record, with its sections, related records, galleries, charts and editing.
6
6
 
7
7
  - [Record page layout](../reference/ui-config.md#the-record-page): Sections, a summary sidebar, related tables, maps, charts, galleries, history, comments and your own components.
8
+ - [Full-width record pages](../reference/ui-config.md#page-width): A view's record pages fill the whole area beside the sidebar instead of a centred column, with the sidebar cards still beside the sections.
8
9
  - [Full-area record pages](../reference/ui-config.md#full-area-record-pages) (beta): A view draws its record pages with a component of its own that fills the area beside the sidebar and under the top bar, such as a chat channel, and links to the standard page.
9
10
  - [Read view and edit](../reference/ui-config.md#read-view-and-edit): A record opens as a read-only fact sheet or a form, and Edit opens the form at its own address.
10
11
  - [Unsaved edits](../reference/ui-config.md#editing-a-record): Unsaved changes to a record stay in the browser and can be resumed, and leaving a form, a dialog or a comment with changes asks first.
@@ -24,5 +24,4 @@ React components, field types, pages and handlers of your own, loaded as plugins
24
24
  - [Plugin settings](../reference/plugins.md#loading): Plugins are loaded from the config, limited to roles and given settings.
25
25
  - [Plugin fallbacks](../reference/plugins.md#when-a-plugin-is-off): A plugin that fails or does not fit the version is turned off alone, and admins see why.
26
26
  - [Before sign-in](../reference/plugins.md#before-sign-in): A plugin can run around the sign-in page, for example to sign someone in from a link.
27
- - [Confirm it's you](../reference/plugins.md#api): The app's step that has the person confirm it's them, and its field for a hidden value that asks for it, for your own pages.
28
27
  - [Unstable modules](../reference/plugins.md#the-unstable-entry): UI with its own build imports any module of the app's UI, without a promise that it stays the same, instead of copying it.
@@ -100,6 +100,15 @@ The root of every page, and only the root.
100
100
  | `title` | Heading, and the page's name in the sidebar and breadcrumbs. Required. |
101
101
  | `description` | A line under the title. |
102
102
  | `actions` | Elements beside the title, such as a `ModalForm`. |
103
+ | `width` | `column`, the default, keeps the page in a centred column about 1200px wide; `full` fills the content pane beside the sidebar, for a dashboard with many blocks. On a phone both look the same. |
104
+
105
+ ```tsx
106
+ <Page title="Today" width="full">
107
+ <Grid columns={4}>
108
+ ...
109
+ </Grid>
110
+ </Page>
111
+ ```
103
112
 
104
113
  ### Grid
105
114
 
@@ -335,8 +335,6 @@ From `@protobase/ui`:
335
335
  | `FieldWidget`, `FieldWidgetProps`, `FieldWidgetEditorProps` | The types of a [field type](#field-types) and of its parts' props. |
336
336
  | `RecordCardProps` | The props of a [record card](custom-components.md#record-cards), `{ row }`. |
337
337
  | `AuthLayout`, `CodeForm`, `ResendCodeButton`, `Button`, `buttonClass`, `Input`, `Spinner`, `LogoMark` | The pieces of the app's sign-in pages, for a page of a plugin or a host's own that looks like them. Outside the app, `@protobase/ui/styles.css` is the stylesheet that draws them, for a Vite build with Tailwind. |
338
- | `ConfirmSignIn`, `ConfirmSignInProps` | The app's step that asks the person to confirm it's them, with a passkey, a code or their password, after the server refused something for want of a recent strong sign-in; `onConfirmed` is called once they did, to ask again. |
339
- | `SensitiveField`, `SensitiveFieldProps` | The app's field for a value hidden like a password, which shows a stored one only once the person asks for it, confirming it's them first when the server wants that. |
340
338
  | `isFramed`, `useArmedAfterFocus`, `useGuardedPress`, `allowDelayMs` | The connect page's guard against clickjacking and click-through, for a host's own consent screen: it refuses to render when `isFramed()`, and its Allow button spreads `useGuardedPress(armed, onAllow)`, so a press counts only once the page has been in front for `allowDelayMs`, and a press anywhere on the page before then starts that wait again. |
341
339
  | `pluginApi` | The plugin API of the app's `@protobase/ui`. |
342
340
  | `protobaseVersion` | The Protobase version of the app's `@protobase/ui`. |
@@ -671,6 +671,14 @@ Without a layout the record page shows one section with every field the user may
671
671
 
672
672
  A record opened from a list, by its row or its card, shows the fields the list loaded at once, with placeholders for the others, and takes input once the whole record has loaded; actions, custom components, maps and galleries wait for it. What the page shows is read again whenever the browser tab or window regains focus, as are the lists, unless the record has unsaved changes, which keep the version they were made to.
673
673
 
674
+ ### Page width
675
+
676
+ The record page sits in a centred column about 1100px wide. `.recordWidth('full')` makes it fill the content pane beside the sidebar instead, with the sidebar cards still on the right, for a record with wide sections or related tables; `'column'` is the default. On a phone both look the same.
677
+
678
+ ```ts
679
+ view<typeof objectives>('objectives').recordWidth('full')
680
+ ```
681
+
674
682
  ### Full-area record pages
675
683
 
676
684
  `.record({ component })` makes the record page at `/<resource>/<key>` a [custom component](custom-components.md#full-area-record-pages) of the app's own, for a record that is used rather than filled in, such as a chat channel. The component fills the content area, at full width beside the sidebar and down to the bottom bar on a phone, and the page does not scroll, so the component scrolls its own parts, such as messages above a box that stays at the bottom. The sidebar, the top bar with its breadcrumb naming the record, the bottom bar and a right panel stay; the heading, Save, the action rail, the sections, the related records and the Details card are not drawn. A record that does not exist, or that the user may not read, shows the record page's usual notice, and the component is never drawn.