@rebasepro/admin 0.13.0 → 0.13.1-canary.g18cfeb7
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/{CollectionEditorDialog-CjXkWZ64.js → CollectionEditorDialog-CUFXevVg.js} +3 -3
- package/dist/{CollectionEditorDialog-CjXkWZ64.js.map → CollectionEditorDialog-CUFXevVg.js.map} +1 -1
- package/dist/{PropertyEditView-W8I3YV89.js → PropertyEditView-DDUC7giL.js} +2 -2
- package/dist/{PropertyEditView-W8I3YV89.js.map → PropertyEditView-DDUC7giL.js.map} +1 -1
- package/dist/{RouterCollectionsStudioView-BsLTNoqX.js → RouterCollectionsStudioView-vzS848Gf.js} +9 -13
- package/dist/RouterCollectionsStudioView-vzS848Gf.js.map +1 -0
- package/dist/collection_editor/serializable_types.d.ts +1 -0
- package/dist/collection_editor_ui.js +4 -4
- package/dist/components/AdditionalFieldValue.d.ts +25 -0
- package/dist/components/CollectionViewBinding/CollectionViewBinding.d.ts +16 -0
- package/dist/components/CollectionViewBinding/SlotValue.d.ts +63 -0
- package/dist/components/CollectionViewBinding/SplitListCloseButton.d.ts +17 -4
- package/dist/components/CollectionViewBinding/SplitListShowButton.d.ts +12 -0
- package/dist/components/CollectionViewBinding/usePreviewSlots.d.ts +55 -5
- package/dist/components/DetailViewBinding.d.ts +15 -0
- package/dist/components/DrawerNavigationGroup.d.ts +9 -6
- package/dist/components/DrawerNavigationItem.d.ts +16 -6
- package/dist/components/EditViewBinding.d.ts +30 -1
- package/dist/components/EntityDisplayHeader.d.ts +53 -0
- package/dist/components/EntityIdentityBar.d.ts +43 -1
- package/dist/components/EntityViewBinding.d.ts +60 -6
- package/dist/components/RebaseLayout.d.ts +1 -1
- package/dist/components/RebaseShell.d.ts +1 -1
- package/dist/components/RelationSelector.d.ts +8 -1
- package/dist/components/UserSelector.d.ts +8 -1
- package/dist/components/app/Scaffold.d.ts +9 -3
- package/dist/components/index.d.ts +2 -0
- package/dist/{export-J79rMoNj.js → export-5bl2EoSs.js} +2 -2
- package/dist/{export-J79rMoNj.js.map → export-5bl2EoSs.js.map} +1 -1
- package/dist/form/components/FieldBlock.d.ts +58 -4
- package/dist/form/components/FormRail.d.ts +13 -0
- package/dist/form/components/FormSections.d.ts +15 -1
- package/dist/form/components/useRailVisible.d.ts +5 -4
- package/dist/form/form_utils.d.ts +38 -1
- package/dist/{history-D7L_JlLO.js → history-BuKKAhoY.js} +4 -4
- package/dist/{history-D7L_JlLO.js.map → history-BuKKAhoY.js.map} +1 -1
- package/dist/hooks/useEntityDisplay.d.ts +102 -0
- package/dist/hooks/useEntityDisplayTitle.d.ts +18 -9
- package/dist/{import-BvYl--U4.js → import-BhdWs34H.js} +3 -3
- package/dist/{import-BvYl--U4.js.map → import-BhdWs34H.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +152 -57
- package/dist/index.js.map +1 -1
- package/dist/preview/compact_text.d.ts +23 -0
- package/dist/preview/components/BooleanPreview.d.ts +3 -1
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +1 -1
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +1 -1
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +1 -1
- package/dist/routes/RebaseRoute.d.ts +1 -1
- package/dist/types/components/PropertyPreviewProps.d.ts +19 -0
- package/dist/util/number_format.d.ts +14 -0
- package/dist/util/previews.d.ts +9 -2
- package/dist/{util-GiwPgxnL.js → util-DNG7iK0w.js} +3756 -2300
- package/dist/util-DNG7iK0w.js.map +1 -0
- package/package.json +9 -9
- package/src/collection_editor/serializable_types.ts +1 -0
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +9 -11
- package/src/components/AdditionalFieldValue.tsx +68 -0
- package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +7 -8
- package/src/components/CollectionTableBinding/PropertyTableCell.tsx +2 -2
- package/src/components/CollectionTableBinding/column_utils.tsx +15 -6
- package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +2 -2
- package/src/components/CollectionViewBinding/BoardCardBinding.tsx +26 -27
- package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +723 -348
- package/src/components/CollectionViewBinding/CollectionViewActions.tsx +1 -1
- package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +38 -8
- package/src/components/CollectionViewBinding/EntityCardBinding.tsx +23 -36
- package/src/components/CollectionViewBinding/SlotValue.tsx +156 -0
- package/src/components/CollectionViewBinding/SplitListCloseButton.tsx +23 -7
- package/src/components/CollectionViewBinding/SplitListShowButton.tsx +28 -0
- package/src/components/CollectionViewBinding/SplitListView.tsx +33 -2
- package/src/components/CollectionViewBinding/useBoardDataController.tsx +12 -3
- package/src/components/CollectionViewBinding/usePreviewSlots.ts +183 -64
- package/src/components/CollectionViewBinding/utils.ts +7 -4
- package/src/components/DefaultDrawer.tsx +19 -23
- package/src/components/DetailViewBinding.tsx +93 -56
- package/src/components/DrawerNavigationGroup.tsx +16 -39
- package/src/components/DrawerNavigationItem.tsx +44 -16
- package/src/components/EditViewBinding.tsx +215 -42
- package/src/components/EntityDisplayHeader.tsx +170 -0
- package/src/components/EntityIdentityBar.tsx +163 -23
- package/src/components/EntityInspector.tsx +24 -6
- package/src/components/EntityPreviewBinding.tsx +58 -18
- package/src/components/EntityViewBinding.tsx +342 -41
- package/src/components/InlineEntityPreview.tsx +10 -10
- package/src/components/RebaseLayout.tsx +2 -2
- package/src/components/RebaseShell.tsx +2 -2
- package/src/components/ReferenceTable/SelectionTableBinding.tsx +4 -2
- package/src/components/RelationSelector.tsx +15 -4
- package/src/components/SideDialogs.tsx +15 -3
- package/src/components/SidePanelBinding.tsx +122 -66
- package/src/components/UserSelector.tsx +15 -4
- package/src/components/app/Scaffold.tsx +112 -10
- package/src/components/history/LastEditedByIndicator.tsx +7 -12
- package/src/components/index.ts +3 -0
- package/src/data_import/utils/data.ts +9 -1
- package/src/form/EntityForm.tsx +64 -52
- package/src/form/EntityFormBinding.tsx +24 -11
- package/src/form/PropertyFieldBinding.tsx +2 -2
- package/src/form/components/FieldBlock.tsx +80 -10
- package/src/form/components/FormRail.tsx +19 -2
- package/src/form/components/FormSections.tsx +32 -5
- package/src/form/components/StorageUploadProgress.tsx +9 -3
- package/src/form/components/useRailVisible.tsx +5 -4
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +2 -2
- package/src/form/field_bindings/BinaryFieldBinding.tsx +10 -5
- package/src/form/field_bindings/BlockFieldBinding.tsx +3 -3
- package/src/form/field_bindings/GeopointFieldBinding.tsx +23 -16
- package/src/form/field_bindings/MapFieldBinding.tsx +2 -2
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +13 -7
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +7 -1
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +7 -1
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +1 -1
- package/src/form/field_bindings/RelationFieldBinding.tsx +5 -2
- package/src/form/field_bindings/RepeatFieldBinding.tsx +3 -3
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +2 -2
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +4 -1
- package/src/form/field_bindings/VectorFieldBinding.tsx +6 -4
- package/src/form/form_utils.ts +78 -0
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +29 -5
- package/src/hooks/useEntityDisplay.tsx +262 -0
- package/src/hooks/useEntityDisplayTitle.tsx +27 -38
- package/src/index.ts +9 -1
- package/src/preview/PropertyPreview.tsx +25 -5
- package/src/preview/compact_text.ts +68 -0
- package/src/preview/components/BooleanPreview.tsx +5 -2
- package/src/preview/components/StorageThumbnail.tsx +5 -2
- package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +6 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +26 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +10 -1
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +10 -1
- package/src/preview/property_previews/MapPropertyPreview.tsx +52 -1
- package/src/preview/property_previews/NumberPropertyPreview.tsx +9 -1
- package/src/preview/property_previews/StringPropertyPreview.tsx +8 -5
- package/src/routes/RebaseRoute.tsx +62 -4
- package/src/types/components/PropertyPreviewProps.tsx +21 -0
- package/src/util/number_format.ts +46 -0
- package/src/util/previews.ts +8 -55
- package/src/util/property_utils.tsx +6 -1
- package/dist/RouterCollectionsStudioView-BsLTNoqX.js.map +0 -1
- package/dist/util-GiwPgxnL.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning block content into the one line a compact preview has room for.
|
|
3
|
+
*
|
|
4
|
+
* A preview slot inside a card is a single line that cannot grow. Rendering
|
|
5
|
+
* Markdown there does not produce a small version of the document — it
|
|
6
|
+
* produces the whole document, headings and lists included, inside a 44px box.
|
|
7
|
+
* These helpers take the opening line instead, which is what a person reads
|
|
8
|
+
* off a card anyway.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The readable text of a Markdown document, as one line.
|
|
12
|
+
*
|
|
13
|
+
* Deliberately a lexical strip rather than a parse: this runs once per preview
|
|
14
|
+
* cell in a table that can hold hundreds, and the result is truncated to a line
|
|
15
|
+
* regardless, so the cost of being exactly right is not worth paying. Anything
|
|
16
|
+
* it fails to strip degrades to a stray `*`, never to a broken layout.
|
|
17
|
+
*/
|
|
18
|
+
export declare function markdownToPlainText(source: string, maxLength?: number): string;
|
|
19
|
+
/**
|
|
20
|
+
* Whitespace — including the newlines that would otherwise let a `truncate`
|
|
21
|
+
* container grow — collapsed to single spaces, capped to `maxLength`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function collapseToSingleLine(source: string, maxLength?: number): string;
|
|
@@ -4,8 +4,10 @@ import { PreviewSize } from "../../types/components/PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function BooleanPreview({ value, size, property }: {
|
|
7
|
+
export declare function BooleanPreview({ value, size, property, hideLabel }: {
|
|
8
8
|
value: boolean;
|
|
9
9
|
size: PreviewSize;
|
|
10
10
|
property: Property;
|
|
11
|
+
/** The caller already shows the name — see `PropertyPreviewProps.hideLabel`. */
|
|
12
|
+
hideLabel?: boolean;
|
|
11
13
|
}): React.ReactElement;
|
|
@@ -4,4 +4,4 @@ import type { PropertyPreviewProps } from "../../types/components/PropertyPrevie
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function ArrayOfStringsPreview({ propertyKey, value, property: property, size }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element;
|
|
7
|
+
export declare function ArrayOfStringsPreview({ propertyKey, value, property: property, size, compact }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element;
|
|
@@ -4,4 +4,4 @@ import type { PropertyPreviewProps } from "../../types/components/PropertyPrevie
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function ArrayOneOfPreview({ propertyKey, value, property: property, size }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element | null;
|
|
7
|
+
export declare function ArrayOneOfPreview({ propertyKey, value, property: property, size, compact }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element | null;
|
|
@@ -4,4 +4,4 @@ import type { PropertyPreviewProps } from "../../types/components/PropertyPrevie
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function ArrayPropertyPreview({ propertyKey, value, property: property, size }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element | null;
|
|
7
|
+
export declare function ArrayPropertyPreview({ propertyKey, value, property: property, size, compact }: PropertyPreviewProps<ArrayProperty>): React.JSX.Element | null;
|
|
@@ -4,7 +4,7 @@ import type { PropertyPreviewProps } from "../../types/components/PropertyPrevie
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function MapPropertyPreview({ propertyKey, value, property, size }: PropertyPreviewProps<MapProperty>): React.JSX.Element | null;
|
|
7
|
+
export declare function MapPropertyPreview({ propertyKey, value, property, size, compact }: PropertyPreviewProps<MapProperty>): React.JSX.Element | null;
|
|
8
8
|
export declare function KeyValuePreview({ value }: {
|
|
9
9
|
value: any;
|
|
10
10
|
}): React.JSX.Element | null;
|
|
@@ -4,4 +4,4 @@ import type { PropertyPreviewProps } from "../../types/components/PropertyPrevie
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function StringPropertyPreview({ propertyKey, value, property, size, textOnly }: PropertyPreviewProps<StringProperty>): React.ReactElement;
|
|
7
|
+
export declare function StringPropertyPreview({ propertyKey, value, property, size, textOnly, compact }: PropertyPreviewProps<StringProperty>): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function RebaseRoute(): import("react").JSX.Element
|
|
1
|
+
export declare function RebaseRoute(): import("react").JSX.Element;
|
|
@@ -49,4 +49,23 @@ export interface PropertyPreviewProps<P extends Property | Property, CustomProps
|
|
|
49
49
|
* If true, relations/references will render as plain text strings rather than full cards.
|
|
50
50
|
*/
|
|
51
51
|
textOnly?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The preview has one line and cannot grow — it fills a slot in a card, a
|
|
54
|
+
* chip, or a table cell of fixed height.
|
|
55
|
+
*
|
|
56
|
+
* Properties whose natural rendering is a block (Markdown, multi-line text,
|
|
57
|
+
* maps, arrays) render a one-line stand-in instead: an opening excerpt, or
|
|
58
|
+
* a count. Left unset, {@link PropertyPreview} infers it from the entity
|
|
59
|
+
* preview nesting depth, which is where the constraint actually comes from;
|
|
60
|
+
* pass it explicitly only to force the compact form somewhere the nesting
|
|
61
|
+
* does not say so.
|
|
62
|
+
*/
|
|
63
|
+
compact?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The caller has already labelled this value, so the preview must not
|
|
66
|
+
* repeat the property name. A boolean is the one that does: it renders its
|
|
67
|
+
* name beside the checkbox, which reads as a caption in a table cell and as
|
|
68
|
+
* a stutter under a field label — "VIP" over a checkbox saying "VIP".
|
|
69
|
+
*/
|
|
70
|
+
hideLabel?: boolean;
|
|
52
71
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NumberFormatOptions } from "@rebasepro/admin-types";
|
|
2
|
+
/**
|
|
3
|
+
* Write a number out for reading, per a property's declared `admin.format`.
|
|
4
|
+
*
|
|
5
|
+
* Nothing is inferred here. With no options the number is returned as it came
|
|
6
|
+
* out of the database — `String(value)`, not a locale-grouped rendering — so a
|
|
7
|
+
* panel that declares nothing shows exactly the stored value, and an author who
|
|
8
|
+
* wants thousands separators asks for them.
|
|
9
|
+
*
|
|
10
|
+
* `Intl.NumberFormat` throws on a bad currency code or an out-of-range fraction
|
|
11
|
+
* count, and a record must not blank because one property is misconfigured, so a
|
|
12
|
+
* failure falls back to the raw value.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatNumber(value: number, options: NumberFormatOptions | undefined, fallbackLocale?: string): string;
|
package/dist/util/previews.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { PropertyConfig, AdminCollection } from "@rebasepro/admin-types";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Which properties fill a preview surface, best first.
|
|
4
|
+
*
|
|
5
|
+
* The implementation lives in `@rebasepro/app` so that the admin package and
|
|
6
|
+
* the app package cannot disagree about what a record looks like in a card —
|
|
7
|
+
* they had drifted, and only one of the two copies had learned to keep
|
|
8
|
+
* relations out of the list.
|
|
9
|
+
*/
|
|
10
|
+
export { getEntityPreviewKeys } from "@rebasepro/app";
|
|
4
11
|
/**
|
|
5
12
|
* The property that fills the title slot for a collection.
|
|
6
13
|
*
|