@object-ui/plugin-detail 3.0.2 → 3.1.0
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/.turbo/turbo-build.log +45 -8
- package/CHANGELOG.md +9 -0
- package/dist/AddressField-C07oUOY6.js +96 -0
- package/dist/AutoNumberField-BxnFqllo.js +8 -0
- package/dist/AvatarField-VThNABzo.js +82 -0
- package/dist/BooleanField-CGHKBzAi.js +37 -0
- package/dist/CodeField-Co_muhRR.js +21 -0
- package/dist/ColorField-DLid_tFz.js +42 -0
- package/dist/CurrencyField-Bw-LqANM.js +43 -0
- package/dist/DateField-BNHAzMB2.js +21 -0
- package/dist/DateTimeField-DjAyn_DQ.js +28 -0
- package/dist/EmailField-xoNcSppb.js +31 -0
- package/dist/FileField-DbNJwjU2.js +133 -0
- package/dist/FormulaField-CJkkwIK8.js +9 -0
- package/dist/GeolocationField-C1AnS6VV.js +123 -0
- package/dist/GridField-DATAHIKf.js +30 -0
- package/dist/ImageField-CEKJpyJp.js +90 -0
- package/dist/LocationField-jDWXjlpx.js +31 -0
- package/dist/LookupField-DQ08L9UQ.js +96 -0
- package/dist/MasterDetailField-Dbk529Ea.js +108 -0
- package/dist/NumberField-BVroN9aV.js +26 -0
- package/dist/ObjectField-CT3l_IHW.js +48 -0
- package/dist/PasswordField-DweVLEE0.js +38 -0
- package/dist/PercentField-ZpWUK97K.js +63 -0
- package/dist/PhoneField-mw-9fqZ_.js +31 -0
- package/dist/QRCodeField-Cbb9ck59.js +77 -0
- package/dist/RatingField-CSqgLS6t.js +47 -0
- package/dist/RichTextField-BpfBOd99.js +38 -0
- package/dist/SelectField-B9Ei-5jl.js +26 -0
- package/dist/SignatureField-DgGpHnQ8.js +85 -0
- package/dist/SliderField-C6HvOHd8.js +30 -0
- package/dist/SummaryField-ugYPYxjP.js +9 -0
- package/dist/TextAreaField-BK3RgzY3.js +39 -0
- package/dist/TextField-Bvzx3atT.js +32 -0
- package/dist/TimeField-Cuz9-Uai.js +21 -0
- package/dist/UrlField-B6XHTV73.js +33 -0
- package/dist/UserField-ooTul2d6.js +49 -0
- package/dist/VectorField-CKg9jdGa.js +25 -0
- package/dist/index-CnlyRfY_.js +59461 -0
- package/dist/index.js +30 -55026
- package/dist/index.umd.cjs +41 -30
- package/dist/plugin-detail.css +1 -1
- package/dist/src/ActivityTimeline.d.ts +20 -0
- package/dist/src/ActivityTimeline.d.ts.map +1 -0
- package/dist/src/CommentAttachment.d.ts +25 -0
- package/dist/src/CommentAttachment.d.ts.map +1 -0
- package/dist/src/CommentInput.d.ts +24 -0
- package/dist/src/CommentInput.d.ts.map +1 -0
- package/dist/src/DetailSection.d.ts +6 -0
- package/dist/src/DetailSection.d.ts.map +1 -1
- package/dist/src/DetailView.d.ts +4 -0
- package/dist/src/DetailView.d.ts.map +1 -1
- package/dist/src/DetailView.stories.d.ts +8 -0
- package/dist/src/DetailView.stories.d.ts.map +1 -1
- package/dist/src/DiffView.d.ts +24 -0
- package/dist/src/DiffView.d.ts.map +1 -0
- package/dist/src/FieldChangeItem.d.ts +21 -0
- package/dist/src/FieldChangeItem.d.ts.map +1 -0
- package/dist/src/InlineCreateRelated.d.ts +32 -0
- package/dist/src/InlineCreateRelated.d.ts.map +1 -0
- package/dist/src/MentionAutocomplete.d.ts +43 -0
- package/dist/src/MentionAutocomplete.d.ts.map +1 -0
- package/dist/src/PointInTimeRestore.d.ts +28 -0
- package/dist/src/PointInTimeRestore.d.ts.map +1 -0
- package/dist/src/ReactionPicker.d.ts +25 -0
- package/dist/src/ReactionPicker.d.ts.map +1 -0
- package/dist/src/RecordActivityTimeline.d.ts +49 -0
- package/dist/src/RecordActivityTimeline.d.ts.map +1 -0
- package/dist/src/RecordChatterPanel.d.ts +48 -0
- package/dist/src/RecordChatterPanel.d.ts.map +1 -0
- package/dist/src/RecordComments.d.ts +20 -0
- package/dist/src/RecordComments.d.ts.map +1 -0
- package/dist/src/RecordNavigationEnhanced.d.ts +18 -0
- package/dist/src/RecordNavigationEnhanced.d.ts.map +1 -0
- package/dist/src/RelatedList.d.ts +4 -0
- package/dist/src/RelatedList.d.ts.map +1 -1
- package/dist/src/RelationshipGraph.d.ts +23 -0
- package/dist/src/RelationshipGraph.d.ts.map +1 -0
- package/dist/src/RichTextCommentInput.d.ts +24 -0
- package/dist/src/RichTextCommentInput.d.ts.map +1 -0
- package/dist/src/SubscriptionToggle.d.ts +22 -0
- package/dist/src/SubscriptionToggle.d.ts.map +1 -0
- package/dist/src/ThreadedReplies.d.ts +26 -0
- package/dist/src/ThreadedReplies.d.ts.map +1 -0
- package/dist/src/autoLayout.d.ts +34 -0
- package/dist/src/autoLayout.d.ts.map +1 -0
- package/dist/src/index.d.ts +36 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/useDetailTranslation.d.ts +34 -0
- package/dist/src/useDetailTranslation.d.ts.map +1 -0
- package/package.json +8 -7
- package/src/ActivityTimeline.tsx +184 -0
- package/src/CommentAttachment.tsx +192 -0
- package/src/CommentInput.tsx +81 -0
- package/src/DetailSection.tsx +74 -9
- package/src/DetailView.stories.tsx +76 -0
- package/src/DetailView.tsx +270 -27
- package/src/DiffView.tsx +231 -0
- package/src/FieldChangeItem.tsx +46 -0
- package/src/InlineCreateRelated.tsx +291 -0
- package/src/MentionAutocomplete.tsx +123 -0
- package/src/PointInTimeRestore.tsx +261 -0
- package/src/ReactionPicker.tsx +106 -0
- package/src/RecordActivityTimeline.tsx +429 -0
- package/src/RecordChatterPanel.tsx +202 -0
- package/src/RecordComments.tsx +215 -0
- package/src/RecordNavigationEnhanced.tsx +211 -0
- package/src/RelatedList.tsx +37 -8
- package/src/RelationshipGraph.tsx +286 -0
- package/src/RichTextCommentInput.tsx +348 -0
- package/src/SubscriptionToggle.tsx +60 -0
- package/src/ThreadedReplies.tsx +161 -0
- package/src/__tests__/ActivityTimeline.test.tsx +119 -0
- package/src/__tests__/ActivityTimelineFiltering.test.tsx +143 -0
- package/src/__tests__/CommentInput.test.tsx +57 -0
- package/src/__tests__/DetailSection.test.tsx +320 -0
- package/src/__tests__/DetailView.test.tsx +415 -1
- package/src/__tests__/FieldChangeItem.test.tsx +119 -0
- package/src/__tests__/MentionAutocomplete.test.tsx +97 -0
- package/src/__tests__/ReactionPicker.test.tsx +113 -0
- package/src/__tests__/RecordActivityTimeline.test.tsx +395 -0
- package/src/__tests__/RecordChatterPanel.test.tsx +227 -0
- package/src/__tests__/RecordComments.test.tsx +96 -0
- package/src/__tests__/RecordCommentsPinSearch.test.tsx +133 -0
- package/src/__tests__/RelatedList.test.tsx +66 -0
- package/src/__tests__/SubscriptionToggle.test.tsx +84 -0
- package/src/__tests__/ThreadedReplies.test.tsx +212 -0
- package/src/__tests__/autoLayout.test.ts +184 -0
- package/src/__tests__/phase12-features.test.tsx +583 -0
- package/src/autoLayout.ts +111 -0
- package/src/index.tsx +46 -0
- package/src/useDetailTranslation.ts +103 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface CommentInputProps {
|
|
10
|
+
/** Called when a comment is submitted */
|
|
11
|
+
onSubmit: (text: string) => void | Promise<void>;
|
|
12
|
+
/** Placeholder text */
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
/** Whether the input is disabled */
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* CommentInput — Simple comment input component.
|
|
20
|
+
* Renders a "Leave a comment" textarea with submit button.
|
|
21
|
+
* Supports Ctrl+Enter to submit.
|
|
22
|
+
*/
|
|
23
|
+
export declare const CommentInput: React.FC<CommentInputProps>;
|
|
24
|
+
//# sourceMappingURL=CommentInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentInput.d.ts","sourceRoot":"","sources":["../../src/CommentInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqDpD,CAAC"}
|
|
@@ -11,6 +11,12 @@ export interface DetailSectionProps {
|
|
|
11
11
|
section: DetailViewSectionType;
|
|
12
12
|
data?: any;
|
|
13
13
|
className?: string;
|
|
14
|
+
/** Object schema from DataSource for field type enrichment */
|
|
15
|
+
objectSchema?: any;
|
|
16
|
+
/** Whether inline editing is active */
|
|
17
|
+
isEditing?: boolean;
|
|
18
|
+
/** Callback when a field value changes during inline editing */
|
|
19
|
+
onFieldChange?: (field: string, value: any) => void;
|
|
14
20
|
}
|
|
15
21
|
export declare const DetailSection: React.FC<DetailSectionProps>;
|
|
16
22
|
//# sourceMappingURL=DetailSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../../src/DetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../../src/DetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAkC,MAAM,kBAAkB,CAAC;AAInH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwOtD,CAAC"}
|
package/dist/src/DetailView.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export interface DetailViewProps {
|
|
|
14
14
|
onEdit?: () => void;
|
|
15
15
|
onDelete?: () => void;
|
|
16
16
|
onBack?: () => void;
|
|
17
|
+
/** Enable inline editing toggle for detail fields */
|
|
18
|
+
inlineEdit?: boolean;
|
|
19
|
+
/** Callback when a field value is saved inline */
|
|
20
|
+
onFieldSave?: (field: string, value: any, record: any) => void | Promise<void>;
|
|
17
21
|
}
|
|
18
22
|
export declare const DetailView: React.FC<DetailViewProps>;
|
|
19
23
|
//# sourceMappingURL=DetailView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailView.d.ts","sourceRoot":"","sources":["../../src/DetailView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DetailView.d.ts","sourceRoot":"","sources":["../../src/DetailView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGrE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+hBhD,CAAC"}
|
|
@@ -34,4 +34,12 @@ export declare const EnhancedAirtableStyle: Story;
|
|
|
34
34
|
* View with field count badges in section headers
|
|
35
35
|
*/
|
|
36
36
|
export declare const WithFieldCounts: Story;
|
|
37
|
+
/**
|
|
38
|
+
* Primary Field + Summary Badges — record name as header, key attributes as badges
|
|
39
|
+
*/
|
|
40
|
+
export declare const PrimaryFieldWithBadges: Story;
|
|
41
|
+
/**
|
|
42
|
+
* Hide Empty Fields — sections with hideEmpty filter out null/undefined/empty fields
|
|
43
|
+
*/
|
|
44
|
+
export declare const HideEmptyFields: Story;
|
|
37
45
|
//# sourceMappingURL=DetailView.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailView.stories.d.ts","sourceRoot":"","sources":["../../src/DetailView.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAeW,CAAC;AAEtB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAgD1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAqC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KA+DnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KA2C7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"DetailView.stories.d.ts","sourceRoot":"","sources":["../../src/DetailView.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAeW,CAAC;AAEtB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAgD1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAqC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KA+DnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KA2C7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,KA2BpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAuC7B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export type DiffFieldType = 'string' | 'number' | 'boolean' | 'json' | 'date';
|
|
10
|
+
export type DiffMode = 'unified' | 'side-by-side';
|
|
11
|
+
export interface DiffLine {
|
|
12
|
+
type: 'added' | 'removed' | 'unchanged';
|
|
13
|
+
value: string;
|
|
14
|
+
}
|
|
15
|
+
export interface DiffViewProps {
|
|
16
|
+
oldValue: any;
|
|
17
|
+
newValue: any;
|
|
18
|
+
fieldName: string;
|
|
19
|
+
fieldType?: DiffFieldType;
|
|
20
|
+
mode?: DiffMode;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const DiffView: React.FC<DiffViewProps>;
|
|
24
|
+
//# sourceMappingURL=DiffView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../src/DiffView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9E,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA0I5C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FieldChangeEntry } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface FieldChangeItemProps {
|
|
11
|
+
/** The field change entry to render */
|
|
12
|
+
change: FieldChangeEntry;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* FieldChangeItem — Renders a single field change entry.
|
|
17
|
+
* Shows: field label → old value → new value with human-readable display values.
|
|
18
|
+
* Aligned with @objectstack/spec FieldChangeEntrySchema.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FieldChangeItem: React.FC<FieldChangeItemProps>;
|
|
21
|
+
//# sourceMappingURL=FieldChangeItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldChangeItem.d.ts","sourceRoot":"","sources":["../../src/FieldChangeItem.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqB1D,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface RelatedFieldDefinition {
|
|
10
|
+
name: string;
|
|
11
|
+
label: string;
|
|
12
|
+
type: 'string' | 'number' | 'boolean' | 'date';
|
|
13
|
+
required?: boolean;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RelatedRecordOption {
|
|
17
|
+
id: string;
|
|
18
|
+
label: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface InlineCreateRelatedProps {
|
|
22
|
+
objectName: string;
|
|
23
|
+
relationshipField: string;
|
|
24
|
+
fields: RelatedFieldDefinition[];
|
|
25
|
+
onCreateRecord?: (values: Record<string, any>) => void | Promise<void>;
|
|
26
|
+
onLinkRecord?: (recordId: string) => void | Promise<void>;
|
|
27
|
+
onSearch?: (query: string) => Promise<RelatedRecordOption[]>;
|
|
28
|
+
existingRecords?: RelatedRecordOption[];
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare const InlineCreateRelated: React.FC<InlineCreateRelatedProps>;
|
|
32
|
+
//# sourceMappingURL=InlineCreateRelated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineCreateRelated.d.ts","sourceRoot":"","sources":["../../src/InlineCreateRelated.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC7D,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAiPlE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Mention } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface MentionSuggestionItem {
|
|
11
|
+
/** Entity ID */
|
|
12
|
+
id: string;
|
|
13
|
+
/** Display name */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Avatar URL */
|
|
16
|
+
avatarUrl?: string;
|
|
17
|
+
/** Entity type */
|
|
18
|
+
type: 'user' | 'team' | 'group';
|
|
19
|
+
}
|
|
20
|
+
export interface MentionAutocompleteProps {
|
|
21
|
+
/** Search query (text after @) */
|
|
22
|
+
query: string;
|
|
23
|
+
/** Available suggestions */
|
|
24
|
+
suggestions: MentionSuggestionItem[];
|
|
25
|
+
/** Called when a suggestion is selected */
|
|
26
|
+
onSelect: (item: MentionSuggestionItem) => void;
|
|
27
|
+
/** Whether the dropdown is visible */
|
|
28
|
+
visible?: boolean;
|
|
29
|
+
/** Active/highlighted index */
|
|
30
|
+
activeIndex?: number;
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* MentionAutocomplete — Dropdown for @mention autocomplete.
|
|
35
|
+
* Filters suggestions by query and renders a selectable list.
|
|
36
|
+
* Produces MentionSchema data on selection.
|
|
37
|
+
*/
|
|
38
|
+
export declare const MentionAutocomplete: React.FC<MentionAutocompleteProps>;
|
|
39
|
+
/**
|
|
40
|
+
* Helper to create a Mention object from a suggestion item.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createMentionFromSuggestion(item: MentionSuggestionItem, offset: number, length: number): Mention;
|
|
43
|
+
//# sourceMappingURL=MentionAutocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionAutocomplete.d.ts","sourceRoot":"","sources":["../../src/MentionAutocomplete.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+DlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,qBAAqB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAQT"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface RevisionEntry {
|
|
10
|
+
id: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
user: string;
|
|
13
|
+
changes: {
|
|
14
|
+
field: string;
|
|
15
|
+
oldValue: any;
|
|
16
|
+
newValue: any;
|
|
17
|
+
}[];
|
|
18
|
+
/** Full record snapshot at this revision point. */
|
|
19
|
+
snapshot?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
export interface PointInTimeRestoreProps {
|
|
22
|
+
recordId: string;
|
|
23
|
+
revisions: RevisionEntry[];
|
|
24
|
+
onRestore?: (revisionId: string, snapshot: Record<string, any>) => void | Promise<void>;
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const PointInTimeRestore: React.FC<PointInTimeRestoreProps>;
|
|
28
|
+
//# sourceMappingURL=PointInTimeRestore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PointInTimeRestore.d.ts","sourceRoot":"","sources":["../../src/PointInTimeRestore.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;IAC3D,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgNhE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Reaction } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface ReactionPickerProps {
|
|
11
|
+
/** Existing reactions on the feed item */
|
|
12
|
+
reactions: Reaction[];
|
|
13
|
+
/** Called when user adds or removes a reaction */
|
|
14
|
+
onToggleReaction?: (emoji: string) => void | Promise<void>;
|
|
15
|
+
/** Available emoji options */
|
|
16
|
+
emojiOptions?: string[];
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* ReactionPicker — Emoji reaction selector and display.
|
|
21
|
+
* Shows existing reactions with counts, and a picker to add/remove.
|
|
22
|
+
* Aligned with @objectstack/spec ReactionSchema.
|
|
23
|
+
*/
|
|
24
|
+
export declare const ReactionPicker: React.FC<ReactionPickerProps>;
|
|
25
|
+
//# sourceMappingURL=ReactionPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactionPicker.d.ts","sourceRoot":"","sources":["../../src/ReactionPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2ExD,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { FeedItem, RecordActivityComponentProps, RecordSubscription } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export type FeedFilterMode = 'all' | 'comments_only' | 'changes_only' | 'tasks_only';
|
|
11
|
+
export interface RecordActivityTimelineProps {
|
|
12
|
+
/** Feed items to display */
|
|
13
|
+
items: FeedItem[];
|
|
14
|
+
/** Activity configuration from RecordActivityComponentProps */
|
|
15
|
+
config?: RecordActivityComponentProps;
|
|
16
|
+
/** Filter mode for the timeline */
|
|
17
|
+
filterMode?: FeedFilterMode;
|
|
18
|
+
/** Called when filter mode changes */
|
|
19
|
+
onFilterChange?: (mode: FeedFilterMode) => void;
|
|
20
|
+
/** Whether there are more items to load */
|
|
21
|
+
hasMore?: boolean;
|
|
22
|
+
/** Called when user wants to load more items */
|
|
23
|
+
onLoadMore?: () => void | Promise<void>;
|
|
24
|
+
/** Loading state */
|
|
25
|
+
loading?: boolean;
|
|
26
|
+
/** Called when a comment is submitted */
|
|
27
|
+
onAddComment?: (text: string) => void | Promise<void>;
|
|
28
|
+
/** Called when a reply is submitted */
|
|
29
|
+
onAddReply?: (parentId: string | number, text: string) => void | Promise<void>;
|
|
30
|
+
/** Called when user toggles a reaction */
|
|
31
|
+
onToggleReaction?: (itemId: string | number, emoji: string) => void | Promise<void>;
|
|
32
|
+
/** Subscription state */
|
|
33
|
+
subscription?: RecordSubscription;
|
|
34
|
+
/** Called when user toggles subscription */
|
|
35
|
+
onToggleSubscription?: (subscribed: boolean) => void | Promise<void>;
|
|
36
|
+
/** When true, collapse to only the comment input when there are no items */
|
|
37
|
+
collapseWhenEmpty?: boolean;
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* RecordActivityTimeline — Unified timeline renderer for Airtable-style activity feeds.
|
|
42
|
+
*
|
|
43
|
+
* Renders different feed item types (comment, field_change, task, event, system, etc.)
|
|
44
|
+
* in a unified timeline. Supports filtering, pagination, reactions, and threading.
|
|
45
|
+
*
|
|
46
|
+
* Aligned with @objectstack/spec RecordActivityProps.
|
|
47
|
+
*/
|
|
48
|
+
export declare const RecordActivityTimeline: React.FC<RecordActivityTimelineProps>;
|
|
49
|
+
//# sourceMappingURL=RecordActivityTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordActivityTimeline.d.ts","sourceRoot":"","sources":["../../src/RecordActivityTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EAAE,QAAQ,EAAgB,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMjH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,eAAe,GAAG,cAAc,GAAG,YAAY,CAAC;AAErF,MAAM,WAAW,2BAA2B;IAC1C,4BAA4B;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,mCAAmC;IACnC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,yBAAyB;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA0SxE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { RecordChatterComponentProps, FeedItem, RecordSubscription } from '../../types/src';
|
|
2
|
+
import { FeedFilterMode } from './RecordActivityTimeline';
|
|
3
|
+
/**
|
|
4
|
+
* ObjectUI
|
|
5
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import * as React from 'react';
|
|
11
|
+
export interface RecordChatterPanelProps {
|
|
12
|
+
/** Chatter panel configuration from RecordChatterComponentProps */
|
|
13
|
+
config?: RecordChatterComponentProps;
|
|
14
|
+
/** Feed items to display in the embedded timeline */
|
|
15
|
+
items: FeedItem[];
|
|
16
|
+
/** Whether there are more items to load */
|
|
17
|
+
hasMore?: boolean;
|
|
18
|
+
/** Called when user wants to load more */
|
|
19
|
+
onLoadMore?: () => void | Promise<void>;
|
|
20
|
+
/** Loading state */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
/** Called when a comment is submitted */
|
|
23
|
+
onAddComment?: (text: string) => void | Promise<void>;
|
|
24
|
+
/** Called when a reply is submitted */
|
|
25
|
+
onAddReply?: (parentId: string | number, text: string) => void | Promise<void>;
|
|
26
|
+
/** Called when user toggles a reaction */
|
|
27
|
+
onToggleReaction?: (itemId: string | number, emoji: string) => void | Promise<void>;
|
|
28
|
+
/** Subscription state */
|
|
29
|
+
subscription?: RecordSubscription;
|
|
30
|
+
/** Called when user toggles subscription */
|
|
31
|
+
onToggleSubscription?: (subscribed: boolean) => void | Promise<void>;
|
|
32
|
+
/** Filter mode */
|
|
33
|
+
filterMode?: FeedFilterMode;
|
|
34
|
+
/** Called when filter changes */
|
|
35
|
+
onFilterChange?: (mode: FeedFilterMode) => void;
|
|
36
|
+
className?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* RecordChatterPanel — Side/inline/drawer panel for record discussions.
|
|
40
|
+
*
|
|
41
|
+
* Consumes RecordChatterComponentProps from the spec protocol.
|
|
42
|
+
* Supports three positions: bottom (inline), right (sidebar), left (sidebar).
|
|
43
|
+
* Can be collapsible/expandable.
|
|
44
|
+
*
|
|
45
|
+
* Embeds RecordActivityTimeline as the feed sub-component.
|
|
46
|
+
*/
|
|
47
|
+
export declare const RecordChatterPanel: React.FC<RecordChatterPanelProps>;
|
|
48
|
+
//# sourceMappingURL=RecordChatterPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordChatterPanel.d.ts","sourceRoot":"","sources":["../../src/RecordChatterPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAElG,OAAO,KAAK,EAAE,cAAc,EAA+B,MAAM,0BAA0B,CAAC;AAE5F,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,qDAAqD;IACrD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,yBAAyB;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,kBAAkB;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAqJhE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CommentEntry } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface RecordCommentsProps {
|
|
11
|
+
comments: CommentEntry[];
|
|
12
|
+
onAddComment?: (text: string) => void | Promise<void>;
|
|
13
|
+
/** Callback to toggle pin/star on a comment */
|
|
14
|
+
onTogglePin?: (commentId: string | number) => void;
|
|
15
|
+
/** Enable search input for filtering comments */
|
|
16
|
+
searchable?: boolean;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const RecordComments: React.FC<RecordCommentsProps>;
|
|
20
|
+
//# sourceMappingURL=RecordComments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordComments.d.ts","sourceRoot":"","sources":["../../src/RecordComments.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACnD,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyKxD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface RecordNavigationEnhancedProps {
|
|
10
|
+
currentIndex: number;
|
|
11
|
+
totalRecords: number;
|
|
12
|
+
recordIds: string[];
|
|
13
|
+
onNavigate: (recordId: string) => void;
|
|
14
|
+
onSearch?: (query: string) => void;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const RecordNavigationEnhanced: React.FC<RecordNavigationEnhancedProps>;
|
|
18
|
+
//# sourceMappingURL=RecordNavigationEnhanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordNavigationEnhanced.d.ts","sourceRoot":"","sources":["../../src/RecordNavigationEnhanced.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAuL5E,CAAC"}
|
|
@@ -16,6 +16,10 @@ export interface RelatedListProps {
|
|
|
16
16
|
columns?: any[];
|
|
17
17
|
className?: string;
|
|
18
18
|
dataSource?: DataSource;
|
|
19
|
+
/** Callback when "New" button is clicked */
|
|
20
|
+
onNew?: () => void;
|
|
21
|
+
/** Callback when "View All" button is clicked */
|
|
22
|
+
onViewAll?: () => void;
|
|
19
23
|
}
|
|
20
24
|
export declare const RelatedList: React.FC<RelatedListProps>;
|
|
21
25
|
//# sourceMappingURL=RelatedList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelatedList.d.ts","sourceRoot":"","sources":["../../src/RelatedList.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RelatedList.d.ts","sourceRoot":"","sources":["../../src/RelatedList.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoHlD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface GraphNode {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
type?: string;
|
|
13
|
+
relatedRecords?: GraphNode[];
|
|
14
|
+
}
|
|
15
|
+
export interface RelationshipGraphProps {
|
|
16
|
+
record: GraphNode;
|
|
17
|
+
relatedRecords: GraphNode[];
|
|
18
|
+
levels?: number;
|
|
19
|
+
onNodeClick?: (nodeId: string) => void;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const RelationshipGraph: React.FC<RelationshipGraphProps>;
|
|
23
|
+
//# sourceMappingURL=RelationshipGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationshipGraph.d.ts","sourceRoot":"","sources":["../../src/RelationshipGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,CAAC;IAClB,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsHD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8I9D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
export interface MentionSuggestion {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
avatarUrl?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface RichTextCommentInputProps {
|
|
15
|
+
value: string;
|
|
16
|
+
onChange: (value: string) => void;
|
|
17
|
+
onSubmit?: () => void | Promise<void>;
|
|
18
|
+
mentionSuggestions?: MentionSuggestion[];
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
className?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare const RichTextCommentInput: React.FC<RichTextCommentInputProps>;
|
|
24
|
+
//# sourceMappingURL=RichTextCommentInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextCommentInput.d.ts","sourceRoot":"","sources":["../../src/RichTextCommentInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiCD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuRpE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RecordSubscription } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface SubscriptionToggleProps {
|
|
11
|
+
/** Current subscription state */
|
|
12
|
+
subscription: RecordSubscription;
|
|
13
|
+
/** Called when user toggles subscription */
|
|
14
|
+
onToggle?: (subscribed: boolean) => void | Promise<void>;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* SubscriptionToggle — Bell icon toggle for record notification subscriptions.
|
|
19
|
+
* Aligned with @objectstack/spec RecordSubscriptionSchema.
|
|
20
|
+
*/
|
|
21
|
+
export declare const SubscriptionToggle: React.FC<SubscriptionToggleProps>;
|
|
22
|
+
//# sourceMappingURL=SubscriptionToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionToggle.d.ts","sourceRoot":"","sources":["../../src/SubscriptionToggle.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,YAAY,EAAE,kBAAkB,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkChE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FeedItem } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* ObjectUI
|
|
4
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export interface ThreadedRepliesProps {
|
|
11
|
+
/** Parent feed item (root comment) */
|
|
12
|
+
parentItem: FeedItem;
|
|
13
|
+
/** Reply feed items (children) */
|
|
14
|
+
replies: FeedItem[];
|
|
15
|
+
/** Called when a reply is submitted */
|
|
16
|
+
onAddReply?: (parentId: string | number, text: string) => void | Promise<void>;
|
|
17
|
+
/** Whether to show the reply input */
|
|
18
|
+
showReplyInput?: boolean;
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* ThreadedReplies — Displays a collapsible thread of replies under a parent comment.
|
|
23
|
+
* Supports adding new replies and showing reply count.
|
|
24
|
+
*/
|
|
25
|
+
export declare const ThreadedReplies: React.FC<ThreadedRepliesProps>;
|
|
26
|
+
//# sourceMappingURL=ThreadedReplies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadedReplies.d.ts","sourceRoot":"","sources":["../../src/ThreadedReplies.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,UAAU,EAAE,QAAQ,CAAC;IACrB,kCAAkC;IAClC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,uCAAuC;IACvC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgH1D,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DetailViewField } from '../../types/src';
|
|
2
|
+
/**
|
|
3
|
+
* Check if a field type is "wide" (should span full row in multi-column layout).
|
|
4
|
+
*/
|
|
5
|
+
export declare function isWideFieldType(type: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Infer optimal number of columns for a detail section based on field count.
|
|
8
|
+
*
|
|
9
|
+
* Rules:
|
|
10
|
+
* - 0-3 fields → 1 column
|
|
11
|
+
* - 4-10 fields → 2 columns
|
|
12
|
+
* - 11+ fields → 3 columns
|
|
13
|
+
*/
|
|
14
|
+
export declare function inferDetailColumns(fieldCount: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Apply auto span to wide fields so they span the full row.
|
|
17
|
+
* Only sets span if the field does not already have one explicitly set.
|
|
18
|
+
*
|
|
19
|
+
* @returns A new array of fields with span applied where needed.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyAutoSpan(fields: DetailViewField[], columns: number): DetailViewField[];
|
|
22
|
+
/**
|
|
23
|
+
* Main auto-layout orchestrator for detail sections.
|
|
24
|
+
* Applies intelligent defaults only when the user has not explicitly configured columns.
|
|
25
|
+
*
|
|
26
|
+
* @param fields - The section fields
|
|
27
|
+
* @param schemaColumns - User-provided columns (from DetailViewSection or DetailViewSchema)
|
|
28
|
+
* @returns Object with processed fields and inferred columns
|
|
29
|
+
*/
|
|
30
|
+
export declare function applyDetailAutoLayout(fields: DetailViewField[], schemaColumns: number | undefined): {
|
|
31
|
+
fields: DetailViewField[];
|
|
32
|
+
columns: number;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=autoLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoLayout.d.ts","sourceRoot":"","sources":["../../src/autoLayout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAgBxD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,MAAM,GACd,eAAe,EAAE,CAcnB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EAAE,EACzB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAchD"}
|