@byline/ui 2.5.1 → 2.6.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/dist/dnd/draggable-sortable/demo/draggable-list-demo.js +1 -1
- package/dist/react.d.ts +18 -54
- package/dist/react.js +0 -35
- package/dist/uikit.d.ts +1 -0
- package/dist/uikit.js +1 -0
- package/package.json +2 -8
- package/src/dnd/draggable-sortable/demo/draggable-list-demo.tsx +1 -1
- package/src/react.ts +20 -68
- package/src/uikit.ts +1 -0
- package/dist/admin/group.d.ts +0 -27
- package/dist/admin/group.js +0 -14
- package/dist/admin/group.module.js +0 -6
- package/dist/admin/group_module.css +0 -19
- package/dist/admin/row.d.ts +0 -25
- package/dist/admin/row.js +0 -8
- package/dist/admin/row.module.js +0 -5
- package/dist/admin/row_module.css +0 -18
- package/dist/admin/tabs.d.ts +0 -25
- package/dist/admin/tabs.js +0 -35
- package/dist/admin/tabs.module.js +0 -10
- package/dist/admin/tabs_module.css +0 -68
- package/dist/fields/array/array-field.d.ts +0 -14
- package/dist/fields/array/array-field.js +0 -176
- package/dist/fields/array/array-field.module.js +0 -11
- package/dist/fields/array/array-field_module.css +0 -32
- package/dist/fields/blocks/blocks-field.d.ts +0 -13
- package/dist/fields/blocks/blocks-field.js +0 -244
- package/dist/fields/blocks/blocks-field.module.js +0 -26
- package/dist/fields/blocks/blocks-field_module.css +0 -107
- package/dist/fields/checkbox/checkbox-field.d.ts +0 -16
- package/dist/fields/checkbox/checkbox-field.js +0 -28
- package/dist/fields/checkbox/checkbox-field.module.js +0 -6
- package/dist/fields/checkbox/checkbox-field_module.css +0 -4
- package/dist/fields/column-formatter.d.ts +0 -20
- package/dist/fields/column-formatter.js +0 -15
- package/dist/fields/date-time-formatter.d.ts +0 -16
- package/dist/fields/date-time-formatter.js +0 -8
- package/dist/fields/datetime/datetime-field.d.ts +0 -16
- package/dist/fields/datetime/datetime-field.js +0 -37
- package/dist/fields/datetime/datetime-field.module.js +0 -5
- package/dist/fields/datetime/datetime-field_module.css +0 -4
- package/dist/fields/draggable-context-menu.d.ts +0 -6
- package/dist/fields/draggable-context-menu.js +0 -83
- package/dist/fields/draggable-context-menu.module.js +0 -15
- package/dist/fields/draggable-context-menu_module.css +0 -91
- package/dist/fields/field-helpers.d.ts +0 -26
- package/dist/fields/field-helpers.js +0 -50
- package/dist/fields/field-renderer.d.ts +0 -37
- package/dist/fields/field-renderer.js +0 -206
- package/dist/fields/field-renderer.module.js +0 -8
- package/dist/fields/field-renderer_module.css +0 -11
- package/dist/fields/file/file-field.d.ts +0 -19
- package/dist/fields/file/file-field.js +0 -226
- package/dist/fields/file/file-field.module.js +0 -18
- package/dist/fields/file/file-field_module.css +0 -131
- package/dist/fields/file/file-upload-field.d.ts +0 -21
- package/dist/fields/file/file-upload-field.js +0 -128
- package/dist/fields/file/file-upload-field.module.js +0 -15
- package/dist/fields/file/file-upload-field_module.css +0 -74
- package/dist/fields/group/group-field.d.ts +0 -15
- package/dist/fields/group/group-field.js +0 -59
- package/dist/fields/group/group-field.module.js +0 -9
- package/dist/fields/group/group-field_module.css +0 -27
- package/dist/fields/image/image-field.d.ts +0 -19
- package/dist/fields/image/image-field.js +0 -242
- package/dist/fields/image/image-field.module.js +0 -22
- package/dist/fields/image/image-field_module.css +0 -121
- package/dist/fields/image/image-upload-field.d.ts +0 -21
- package/dist/fields/image/image-upload-field.js +0 -187
- package/dist/fields/image/image-upload-field.module.js +0 -19
- package/dist/fields/image/image-upload-field_module.css +0 -92
- package/dist/fields/local-date-time.d.ts +0 -27
- package/dist/fields/local-date-time.js +0 -49
- package/dist/fields/locale-badge.d.ts +0 -18
- package/dist/fields/locale-badge.js +0 -10
- package/dist/fields/locale-badge.module.js +0 -5
- package/dist/fields/locale-badge_module.css +0 -27
- package/dist/fields/numerical/numerical-field.d.ts +0 -18
- package/dist/fields/numerical/numerical-field.js +0 -74
- package/dist/fields/relation/relation-display.d.ts +0 -40
- package/dist/fields/relation/relation-display.js +0 -58
- package/dist/fields/relation/relation-display.module.js +0 -9
- package/dist/fields/relation/relation-display_module.css +0 -21
- package/dist/fields/relation/relation-field.d.ts +0 -18
- package/dist/fields/relation/relation-field.js +0 -146
- package/dist/fields/relation/relation-field.module.js +0 -13
- package/dist/fields/relation/relation-field_module.css +0 -62
- package/dist/fields/relation/relation-picker.d.ts +0 -49
- package/dist/fields/relation/relation-picker.js +0 -233
- package/dist/fields/relation/relation-picker.module.js +0 -26
- package/dist/fields/relation/relation-picker_module.css +0 -124
- package/dist/fields/relation/relation-summary.d.ts +0 -31
- package/dist/fields/relation/relation-summary.js +0 -50
- package/dist/fields/relation/relation-summary.module.js +0 -11
- package/dist/fields/relation/relation-summary_module.css +0 -37
- package/dist/fields/select/select-field.d.ts +0 -16
- package/dist/fields/select/select-field.js +0 -50
- package/dist/fields/select/select-field.module.js +0 -5
- package/dist/fields/select/select-field_module.css +0 -4
- package/dist/fields/sortable-item.d.ts +0 -15
- package/dist/fields/sortable-item.js +0 -80
- package/dist/fields/sortable-item.module.js +0 -22
- package/dist/fields/sortable-item_module.css +0 -124
- package/dist/fields/text/text-field.d.ts +0 -20
- package/dist/fields/text/text-field.js +0 -104
- package/dist/fields/text/text-field.module.js +0 -6
- package/dist/fields/text/text-field_module.css +0 -5
- package/dist/fields/text-area/text-area-field.d.ts +0 -20
- package/dist/fields/text-area/text-area-field.js +0 -105
- package/dist/fields/text-area/text-area-field.module.js +0 -6
- package/dist/fields/text-area/text-area-field_module.css +0 -5
- package/dist/fields/use-field-change-handler.d.ts +0 -23
- package/dist/fields/use-field-change-handler.js +0 -52
- package/dist/forms/document-actions.d.ts +0 -48
- package/dist/forms/document-actions.js +0 -469
- package/dist/forms/document-actions.module.js +0 -34
- package/dist/forms/document-actions_module.css +0 -118
- package/dist/forms/form-context.d.ts +0 -89
- package/dist/forms/form-context.js +0 -466
- package/dist/forms/form-renderer.d.ts +0 -98
- package/dist/forms/form-renderer.js +0 -591
- package/dist/forms/form-renderer.module.js +0 -46
- package/dist/forms/form-renderer_module.css +0 -245
- package/dist/forms/navigation-guard.d.ts +0 -54
- package/dist/forms/navigation-guard.js +0 -22
- package/dist/forms/path-widget.d.ts +0 -36
- package/dist/forms/path-widget.js +0 -107
- package/dist/forms/path-widget.module.js +0 -8
- package/dist/forms/path-widget_module.css +0 -29
- package/dist/forms/upload-executor.d.ts +0 -57
- package/dist/forms/upload-executor.js +0 -92
- package/dist/services/field-services-context.d.ts +0 -16
- package/dist/services/field-services-context.js +0 -13
- package/dist/services/field-services-types.d.ts +0 -63
- package/dist/services/field-services-types.js +0 -1
- package/dist/widgets/diff-viewer/diff-modal.d.ts +0 -22
- package/dist/widgets/diff-viewer/diff-modal.js +0 -146
- package/dist/widgets/diff-viewer/diff-modal.module.js +0 -14
- package/dist/widgets/diff-viewer/diff-modal_module.css +0 -56
- package/dist/widgets/status-badge/status-badge.d.ts +0 -25
- package/dist/widgets/status-badge/status-badge.js +0 -35
- package/dist/widgets/status-badge/status-badge.module.js +0 -7
- package/dist/widgets/status-badge/status-badge_module.css +0 -20
- package/src/admin/group.module.css +0 -41
- package/src/admin/group.tsx +0 -40
- package/src/admin/row.module.css +0 -32
- package/src/admin/row.tsx +0 -33
- package/src/admin/tabs.module.css +0 -107
- package/src/admin/tabs.tsx +0 -82
- package/src/fields/array/array-field.module.css +0 -48
- package/src/fields/array/array-field.tsx +0 -266
- package/src/fields/blocks/blocks-field.module.css +0 -148
- package/src/fields/blocks/blocks-field.tsx +0 -312
- package/src/fields/checkbox/checkbox-field.module.css +0 -4
- package/src/fields/checkbox/checkbox-field.tsx +0 -54
- package/src/fields/column-formatter.tsx +0 -31
- package/src/fields/date-time-formatter.tsx +0 -22
- package/src/fields/datetime/datetime-field.module.css +0 -13
- package/src/fields/datetime/datetime-field.tsx +0 -54
- package/src/fields/draggable-context-menu.module.css +0 -127
- package/src/fields/draggable-context-menu.tsx +0 -85
- package/src/fields/field-helpers.ts +0 -69
- package/src/fields/field-renderer.module.css +0 -22
- package/src/fields/field-renderer.tsx +0 -288
- package/src/fields/file/file-field.module.css +0 -153
- package/src/fields/file/file-field.tsx +0 -271
- package/src/fields/file/file-upload-field.module.css +0 -101
- package/src/fields/file/file-upload-field.tsx +0 -183
- package/src/fields/group/group-field.module.css +0 -43
- package/src/fields/group/group-field.tsx +0 -84
- package/src/fields/image/image-field.module.css +0 -155
- package/src/fields/image/image-field.tsx +0 -291
- package/src/fields/image/image-upload-field.module.css +0 -123
- package/src/fields/image/image-upload-field.tsx +0 -270
- package/src/fields/local-date-time.tsx +0 -88
- package/src/fields/locale-badge.module.css +0 -37
- package/src/fields/locale-badge.tsx +0 -32
- package/src/fields/numerical/numerical-field.tsx +0 -114
- package/src/fields/relation/relation-display.module.css +0 -36
- package/src/fields/relation/relation-display.tsx +0 -130
- package/src/fields/relation/relation-field.module.css +0 -83
- package/src/fields/relation/relation-field.tsx +0 -206
- package/src/fields/relation/relation-picker.module.css +0 -168
- package/src/fields/relation/relation-picker.tsx +0 -325
- package/src/fields/relation/relation-summary.module.css +0 -55
- package/src/fields/relation/relation-summary.tsx +0 -123
- package/src/fields/select/select-field.module.css +0 -13
- package/src/fields/select/select-field.tsx +0 -61
- package/src/fields/sortable-item.module.css +0 -167
- package/src/fields/sortable-item.tsx +0 -101
- package/src/fields/text/text-field.module.css +0 -13
- package/src/fields/text/text-field.tsx +0 -146
- package/src/fields/text-area/text-area-field.module.css +0 -13
- package/src/fields/text-area/text-area-field.tsx +0 -147
- package/src/fields/use-field-change-handler.ts +0 -112
- package/src/forms/document-actions.module.css +0 -160
- package/src/forms/document-actions.tsx +0 -487
- package/src/forms/form-context.tsx +0 -704
- package/src/forms/form-renderer.module.css +0 -321
- package/src/forms/form-renderer.tsx +0 -888
- package/src/forms/navigation-guard.tsx +0 -98
- package/src/forms/path-widget.module.css +0 -41
- package/src/forms/path-widget.test.tsx +0 -217
- package/src/forms/path-widget.tsx +0 -181
- package/src/forms/upload-executor.ts +0 -190
- package/src/services/field-services-context.tsx +0 -35
- package/src/services/field-services-types.ts +0 -68
- package/src/widgets/diff-viewer/diff-modal.module.css +0 -79
- package/src/widgets/diff-viewer/diff-modal.tsx +0 -184
- package/src/widgets/status-badge/status-badge.module.css +0 -31
- package/src/widgets/status-badge/status-badge.tsx +0 -69
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
-
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Infonomic Company Limited
|
|
7
|
-
*/
|
|
8
|
-
import type { RelationField as FieldType, RelatedDocumentValue } from '@byline/core';
|
|
9
|
-
interface RelationFieldProps {
|
|
10
|
-
field: FieldType;
|
|
11
|
-
value?: RelatedDocumentValue | null;
|
|
12
|
-
defaultValue?: RelatedDocumentValue | null;
|
|
13
|
-
onChange?: (value: RelatedDocumentValue | null) => void;
|
|
14
|
-
id?: string;
|
|
15
|
-
path?: string;
|
|
16
|
-
}
|
|
17
|
-
export declare const RelationField: ({ field, value, defaultValue, onChange, id, path, }: RelationFieldProps) => import("react").JSX.Element;
|
|
18
|
-
export {};
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { getCollectionAdminConfig, getCollectionDefinition } from "@byline/core";
|
|
4
|
-
import classnames from "classnames";
|
|
5
|
-
import { useFieldError, useFieldValue } from "../../forms/form-context.js";
|
|
6
|
-
import { CloseIcon } from "../../icons/close-icon.js";
|
|
7
|
-
import { EditIcon } from "../../icons/edit-icon.js";
|
|
8
|
-
import { Button, ErrorText, IconButton, Label } from "../../uikit.js";
|
|
9
|
-
import relation_field_module from "./relation-field.module.js";
|
|
10
|
-
import { RelationPicker } from "./relation-picker.js";
|
|
11
|
-
import { RelationSummary } from "./relation-summary.js";
|
|
12
|
-
const RelationField = ({ field, value, defaultValue, onChange, id, path })=>{
|
|
13
|
-
const fieldPath = path ?? field.name;
|
|
14
|
-
const htmlId = id ?? fieldPath;
|
|
15
|
-
const fieldError = useFieldError(fieldPath);
|
|
16
|
-
const fieldValue = useFieldValue(fieldPath);
|
|
17
|
-
const incomingValue = void 0 !== fieldValue ? fieldValue ?? null : value ?? defaultValue ?? null;
|
|
18
|
-
const targetDef = getCollectionDefinition(field.targetCollection);
|
|
19
|
-
const targetAdminConfig = getCollectionAdminConfig(field.targetCollection);
|
|
20
|
-
const [pickerOpen, setPickerOpen] = useState(false);
|
|
21
|
-
const [pickedRecord, setPickedRecord] = useState(null);
|
|
22
|
-
const handleSelect = (selection)=>{
|
|
23
|
-
setPickerOpen(false);
|
|
24
|
-
selection.record ? setPickedRecord({
|
|
25
|
-
id: selection.targetDocumentId,
|
|
26
|
-
record: selection.record
|
|
27
|
-
}) : setPickedRecord(null);
|
|
28
|
-
onChange?.({
|
|
29
|
-
targetDocumentId: selection.targetDocumentId,
|
|
30
|
-
targetCollectionId: selection.targetCollectionId
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
const handleRemove = ()=>{
|
|
34
|
-
setPickedRecord(null);
|
|
35
|
-
onChange?.(null);
|
|
36
|
-
};
|
|
37
|
-
const cachedRecord = pickedRecord && incomingValue && pickedRecord.id === incomingValue.targetDocumentId ? pickedRecord.record : null;
|
|
38
|
-
const isUnknown = null == targetDef;
|
|
39
|
-
const monoClass = classnames('byline-field-relation-mono', relation_field_module.mono);
|
|
40
|
-
return /*#__PURE__*/ jsxs("div", {
|
|
41
|
-
className: `byline-field-relation ${field.name}`,
|
|
42
|
-
children: [
|
|
43
|
-
/*#__PURE__*/ jsx("div", {
|
|
44
|
-
className: classnames('byline-field-relation-header', relation_field_module.header),
|
|
45
|
-
children: /*#__PURE__*/ jsx(Label, {
|
|
46
|
-
id: `${htmlId}-label`,
|
|
47
|
-
htmlFor: htmlId,
|
|
48
|
-
label: field.label ?? field.name,
|
|
49
|
-
required: !field.optional
|
|
50
|
-
})
|
|
51
|
-
}),
|
|
52
|
-
field.helpText && /*#__PURE__*/ jsx("div", {
|
|
53
|
-
className: classnames('byline-field-relation-help', relation_field_module.help),
|
|
54
|
-
children: field.helpText
|
|
55
|
-
}),
|
|
56
|
-
isUnknown ? /*#__PURE__*/ jsxs("div", {
|
|
57
|
-
className: classnames('byline-field-relation-error-tile', relation_field_module["error-tile"]),
|
|
58
|
-
children: [
|
|
59
|
-
/*#__PURE__*/ jsxs("span", {
|
|
60
|
-
children: [
|
|
61
|
-
"Relation field ",
|
|
62
|
-
/*#__PURE__*/ jsx("code", {
|
|
63
|
-
className: monoClass,
|
|
64
|
-
children: field.name
|
|
65
|
-
}),
|
|
66
|
-
" targets unknown collection ",
|
|
67
|
-
/*#__PURE__*/ jsx("code", {
|
|
68
|
-
className: monoClass,
|
|
69
|
-
children: field.targetCollection
|
|
70
|
-
}),
|
|
71
|
-
"."
|
|
72
|
-
]
|
|
73
|
-
}),
|
|
74
|
-
/*#__PURE__*/ jsx("span", {
|
|
75
|
-
className: classnames('byline-field-relation-error-text', relation_field_module["error-text"]),
|
|
76
|
-
children: "Register the collection in your Byline config or correct the target path."
|
|
77
|
-
})
|
|
78
|
-
]
|
|
79
|
-
}) : incomingValue ? /*#__PURE__*/ jsxs("div", {
|
|
80
|
-
className: classnames('byline-field-relation-tile', relation_field_module.tile),
|
|
81
|
-
children: [
|
|
82
|
-
/*#__PURE__*/ jsx(RelationSummary, {
|
|
83
|
-
targetDefinition: targetDef,
|
|
84
|
-
targetAdminConfig: targetAdminConfig,
|
|
85
|
-
displayField: field.displayField,
|
|
86
|
-
value: incomingValue,
|
|
87
|
-
cachedRecord: cachedRecord
|
|
88
|
-
}),
|
|
89
|
-
/*#__PURE__*/ jsxs("div", {
|
|
90
|
-
className: classnames('byline-field-relation-actions', relation_field_module.actions),
|
|
91
|
-
children: [
|
|
92
|
-
/*#__PURE__*/ jsx(IconButton, {
|
|
93
|
-
id: htmlId,
|
|
94
|
-
type: "button",
|
|
95
|
-
intent: "noeffect",
|
|
96
|
-
size: "xs",
|
|
97
|
-
"aria-label": `Change ${targetDef.labels.singular}`,
|
|
98
|
-
onClick: ()=>setPickerOpen(true),
|
|
99
|
-
children: /*#__PURE__*/ jsx(EditIcon, {
|
|
100
|
-
width: "15px",
|
|
101
|
-
height: "15px"
|
|
102
|
-
})
|
|
103
|
-
}),
|
|
104
|
-
/*#__PURE__*/ jsx(IconButton, {
|
|
105
|
-
type: "button",
|
|
106
|
-
intent: "noeffect",
|
|
107
|
-
size: "xs",
|
|
108
|
-
"aria-label": `Remove ${targetDef.labels.singular}`,
|
|
109
|
-
onClick: handleRemove,
|
|
110
|
-
children: /*#__PURE__*/ jsx(CloseIcon, {
|
|
111
|
-
width: "15px",
|
|
112
|
-
height: "15px"
|
|
113
|
-
})
|
|
114
|
-
})
|
|
115
|
-
]
|
|
116
|
-
})
|
|
117
|
-
]
|
|
118
|
-
}) : /*#__PURE__*/ jsxs(Button, {
|
|
119
|
-
id: htmlId,
|
|
120
|
-
size: "xs",
|
|
121
|
-
variant: "outlined",
|
|
122
|
-
intent: "noeffect",
|
|
123
|
-
type: "button",
|
|
124
|
-
onClick: ()=>setPickerOpen(true),
|
|
125
|
-
children: [
|
|
126
|
-
"Select ",
|
|
127
|
-
targetDef.labels.singular,
|
|
128
|
-
"…"
|
|
129
|
-
]
|
|
130
|
-
}),
|
|
131
|
-
fieldError && /*#__PURE__*/ jsx(ErrorText, {
|
|
132
|
-
id: `${field.name}-error`,
|
|
133
|
-
text: fieldError
|
|
134
|
-
}),
|
|
135
|
-
!isUnknown && /*#__PURE__*/ jsx(RelationPicker, {
|
|
136
|
-
targetCollectionPath: field.targetCollection,
|
|
137
|
-
targetDefinition: targetDef,
|
|
138
|
-
displayField: field.displayField,
|
|
139
|
-
isOpen: pickerOpen,
|
|
140
|
-
onSelect: handleSelect,
|
|
141
|
-
onDismiss: ()=>setPickerOpen(false)
|
|
142
|
-
})
|
|
143
|
-
]
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
|
-
export { RelationField };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import "./relation-field_module.css";
|
|
2
|
-
const relation_field_module = {
|
|
3
|
-
header: "header-y7lSnb",
|
|
4
|
-
help: "help-DEGVPH",
|
|
5
|
-
"error-tile": "error-tile-y2kiiq",
|
|
6
|
-
errorTile: "error-tile-y2kiiq",
|
|
7
|
-
"error-text": "error-text-jHQh34",
|
|
8
|
-
errorText: "error-text-jHQh34",
|
|
9
|
-
tile: "tile-Y3_yre",
|
|
10
|
-
actions: "actions-Nov8hS",
|
|
11
|
-
mono: "mono-y8Xo6b"
|
|
12
|
-
};
|
|
13
|
-
export default relation_field_module;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
:is(.header-y7lSnb, .byline-field-relation-header) {
|
|
2
|
-
align-items: baseline;
|
|
3
|
-
gap: var(--spacing-8);
|
|
4
|
-
margin-bottom: .25rem;
|
|
5
|
-
display: flex;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
:is(.help-DEGVPH, .byline-field-relation-help) {
|
|
9
|
-
color: var(--gray-400);
|
|
10
|
-
font-size: var(--font-size-xs);
|
|
11
|
-
margin-bottom: .25rem;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
:is(.error-tile-y2kiiq, .byline-field-relation-error-tile) {
|
|
15
|
-
padding: var(--spacing-8);
|
|
16
|
-
border: var(--border-width-thin) var(--border-style-solid) var(--red-700);
|
|
17
|
-
background-color: oklch(from var(--red-900) l c h / .2);
|
|
18
|
-
border-radius: var(--border-radius-md);
|
|
19
|
-
color: var(--red-200);
|
|
20
|
-
font-size: var(--font-size-xs);
|
|
21
|
-
flex-direction: column;
|
|
22
|
-
gap: .25rem;
|
|
23
|
-
margin-top: .25rem;
|
|
24
|
-
display: flex;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
:is(.error-text-jHQh34, .byline-field-relation-error-text) {
|
|
28
|
-
color: oklch(from var(--red-400) l c h / .8);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
:is(.tile-Y3_yre, .byline-field-relation-tile) {
|
|
32
|
-
justify-content: space-between;
|
|
33
|
-
align-items: flex-start;
|
|
34
|
-
gap: var(--spacing-8);
|
|
35
|
-
padding: var(--spacing-8);
|
|
36
|
-
border: var(--border-width-thin) var(--border-style-solid) var(--primary-500);
|
|
37
|
-
border-radius: var(--border-radius-md);
|
|
38
|
-
color: var(--gray-200);
|
|
39
|
-
font-size: var(--font-size-xs);
|
|
40
|
-
margin-top: .25rem;
|
|
41
|
-
display: flex;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
:is(.actions-Nov8hS, .byline-field-relation-actions) {
|
|
45
|
-
align-items: center;
|
|
46
|
-
gap: var(--spacing-4);
|
|
47
|
-
flex-shrink: 0;
|
|
48
|
-
display: flex;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.byline-field-relation-actions .byline-button {
|
|
52
|
-
color: var(--gray-900);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
:is(.dark .byline-field-relation-actions .byline-button, [data-theme="dark"] .byline-field-relation-actions .byline-button) {
|
|
56
|
-
color: var(--gray-200);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
:is(.mono-y8Xo6b, .byline-field-relation-mono) {
|
|
60
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
61
|
-
}
|
|
62
|
-
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
-
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Infonomic Company Limited
|
|
7
|
-
*/
|
|
8
|
-
import type { CollectionDefinition } from '@byline/core';
|
|
9
|
-
/**
|
|
10
|
-
* Row rendering strategy, in priority order:
|
|
11
|
-
* 1. `CollectionAdminConfig.picker` — a ColumnDefinition[] from the target
|
|
12
|
-
* admin config. Each row renders the declared columns side-by-side,
|
|
13
|
-
* reusing any column formatters (thumbnail, date, etc).
|
|
14
|
-
* 2. Explicit `displayField` prop on this component (forwarded from
|
|
15
|
-
* `RelationField.displayField`).
|
|
16
|
-
* 3. `CollectionDefinition.useAsTitle` on the target.
|
|
17
|
-
* 4. First top-level `text` field on the target.
|
|
18
|
-
*
|
|
19
|
-
* Paths 2–4 render a single-line label (primary) + `path` (secondary).
|
|
20
|
-
*/
|
|
21
|
-
interface RelationPickerProps {
|
|
22
|
-
/** The target collection path (e.g. `'media'`). */
|
|
23
|
-
targetCollectionPath: string;
|
|
24
|
-
/** The target collection definition (used for labels + displayField fallback). */
|
|
25
|
-
targetDefinition?: CollectionDefinition | null;
|
|
26
|
-
/** Explicit display field to render as row label. */
|
|
27
|
-
displayField?: string;
|
|
28
|
-
/** Modal open/close state. */
|
|
29
|
-
isOpen: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Called with the picked selection when the user confirms.
|
|
32
|
-
*
|
|
33
|
-
* `record` is the raw document the picker row rendered — the caller can
|
|
34
|
-
* use it to show the selected value in its own tile without a refetch.
|
|
35
|
-
* The fields available on `record` are whatever `resolveSelectFields`
|
|
36
|
-
* asked the listing endpoint for (picker columns + `useAsTitle` +
|
|
37
|
-
* `displayField`), so any display surface downstream of the picker that
|
|
38
|
-
* also renders from those same columns will find the data it needs.
|
|
39
|
-
*/
|
|
40
|
-
onSelect: (selection: {
|
|
41
|
-
targetDocumentId: string;
|
|
42
|
-
targetCollectionId: string;
|
|
43
|
-
record?: Record<string, any>;
|
|
44
|
-
}) => void;
|
|
45
|
-
/** Called when the user dismisses the modal. */
|
|
46
|
-
onDismiss: () => void;
|
|
47
|
-
}
|
|
48
|
-
export declare const RelationPicker: ({ targetCollectionPath, targetDefinition, displayField, isOpen, onSelect, onDismiss, }: RelationPickerProps) => import("react").JSX.Element;
|
|
49
|
-
export {};
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useEffect, useState } from "react";
|
|
3
|
-
import { getCollectionAdminConfig } from "@byline/core";
|
|
4
|
-
import classnames from "classnames";
|
|
5
|
-
import { useBylineFieldServices } from "../../services/field-services-context.js";
|
|
6
|
-
import { Button, LoaderRing, Modal, Search } from "../../uikit.js";
|
|
7
|
-
import { PickerCell, resolveFallbackDisplayField, resolveRowLabel, resolveSelectFields } from "./relation-display.js";
|
|
8
|
-
import relation_picker_module from "./relation-picker.module.js";
|
|
9
|
-
const PAGE_SIZE = 15;
|
|
10
|
-
const RelationPicker = ({ targetCollectionPath, targetDefinition, displayField, isOpen, onSelect, onDismiss })=>{
|
|
11
|
-
const [query, setQuery] = useState('');
|
|
12
|
-
const [page, setPage] = useState(1);
|
|
13
|
-
const [selectedDocumentId, setSelectedDocumentId] = useState(null);
|
|
14
|
-
const [loading, setLoading] = useState(false);
|
|
15
|
-
const [error, setError] = useState(null);
|
|
16
|
-
const [documents, setDocuments] = useState([]);
|
|
17
|
-
const [totalPages, setTotalPages] = useState(1);
|
|
18
|
-
const [collectionId, setCollectionId] = useState(null);
|
|
19
|
-
const { getCollectionDocuments } = useBylineFieldServices();
|
|
20
|
-
const targetAdminConfig = getCollectionAdminConfig(targetCollectionPath);
|
|
21
|
-
const pickerColumns = targetAdminConfig?.picker;
|
|
22
|
-
useEffect(()=>{
|
|
23
|
-
if (isOpen) {
|
|
24
|
-
setQuery('');
|
|
25
|
-
setPage(1);
|
|
26
|
-
setSelectedDocumentId(null);
|
|
27
|
-
setError(null);
|
|
28
|
-
}
|
|
29
|
-
}, [
|
|
30
|
-
isOpen
|
|
31
|
-
]);
|
|
32
|
-
useEffect(()=>{
|
|
33
|
-
if (!isOpen) return;
|
|
34
|
-
let cancelled = false;
|
|
35
|
-
const selectFields = resolveSelectFields(targetDefinition, displayField, pickerColumns);
|
|
36
|
-
setLoading(true);
|
|
37
|
-
setError(null);
|
|
38
|
-
getCollectionDocuments({
|
|
39
|
-
collection: targetCollectionPath,
|
|
40
|
-
params: {
|
|
41
|
-
page,
|
|
42
|
-
page_size: PAGE_SIZE,
|
|
43
|
-
query: query.length > 0 ? query : void 0,
|
|
44
|
-
fields: selectFields
|
|
45
|
-
}
|
|
46
|
-
}).then((response)=>{
|
|
47
|
-
if (cancelled) return;
|
|
48
|
-
setDocuments(response.docs);
|
|
49
|
-
setTotalPages(response.meta.totalPages ?? 1);
|
|
50
|
-
setCollectionId(response.included.collection.id);
|
|
51
|
-
}).catch((err)=>{
|
|
52
|
-
if (cancelled) return;
|
|
53
|
-
setError(err instanceof Error ? err.message : 'Failed to load documents');
|
|
54
|
-
}).finally(()=>{
|
|
55
|
-
if (!cancelled) setLoading(false);
|
|
56
|
-
});
|
|
57
|
-
return ()=>{
|
|
58
|
-
cancelled = true;
|
|
59
|
-
};
|
|
60
|
-
}, [
|
|
61
|
-
isOpen,
|
|
62
|
-
targetCollectionPath,
|
|
63
|
-
query,
|
|
64
|
-
page,
|
|
65
|
-
displayField,
|
|
66
|
-
targetDefinition,
|
|
67
|
-
pickerColumns,
|
|
68
|
-
getCollectionDocuments
|
|
69
|
-
]);
|
|
70
|
-
const resolvedDisplayField = displayField ?? targetDefinition?.useAsTitle ?? resolveFallbackDisplayField(targetDefinition) ?? null;
|
|
71
|
-
const handleSelect = useCallback(()=>{
|
|
72
|
-
if (!selectedDocumentId || !collectionId) return;
|
|
73
|
-
const record = documents.find((d)=>d?.id === selectedDocumentId);
|
|
74
|
-
onSelect({
|
|
75
|
-
targetDocumentId: selectedDocumentId,
|
|
76
|
-
targetCollectionId: collectionId,
|
|
77
|
-
record
|
|
78
|
-
});
|
|
79
|
-
}, [
|
|
80
|
-
selectedDocumentId,
|
|
81
|
-
collectionId,
|
|
82
|
-
documents,
|
|
83
|
-
onSelect
|
|
84
|
-
]);
|
|
85
|
-
const title = targetDefinition ? `Select ${targetDefinition.labels.singular}` : `Select ${targetCollectionPath}`;
|
|
86
|
-
return /*#__PURE__*/ jsx(Modal, {
|
|
87
|
-
isOpen: isOpen,
|
|
88
|
-
onDismiss: onDismiss,
|
|
89
|
-
children: /*#__PURE__*/ jsxs(Modal.Container, {
|
|
90
|
-
style: {
|
|
91
|
-
maxWidth: '600px',
|
|
92
|
-
width: '100%'
|
|
93
|
-
},
|
|
94
|
-
children: [
|
|
95
|
-
/*#__PURE__*/ jsx(Modal.Header, {
|
|
96
|
-
className: classnames('byline-field-relation-picker-header', relation_picker_module.header),
|
|
97
|
-
children: /*#__PURE__*/ jsx("h3", {
|
|
98
|
-
className: classnames('byline-field-relation-picker-title', relation_picker_module.title),
|
|
99
|
-
children: title
|
|
100
|
-
})
|
|
101
|
-
}),
|
|
102
|
-
/*#__PURE__*/ jsx(Modal.Content, {
|
|
103
|
-
children: /*#__PURE__*/ jsxs("div", {
|
|
104
|
-
className: classnames('byline-field-relation-picker-body', relation_picker_module.body),
|
|
105
|
-
children: [
|
|
106
|
-
/*#__PURE__*/ jsx(Search, {
|
|
107
|
-
onSearch: (q)=>{
|
|
108
|
-
setPage(1);
|
|
109
|
-
setQuery(q ?? '');
|
|
110
|
-
},
|
|
111
|
-
onClear: ()=>{
|
|
112
|
-
setPage(1);
|
|
113
|
-
setQuery('');
|
|
114
|
-
},
|
|
115
|
-
inputSize: "sm",
|
|
116
|
-
placeholder: "Search"
|
|
117
|
-
}),
|
|
118
|
-
/*#__PURE__*/ jsxs("div", {
|
|
119
|
-
className: classnames('byline-field-relation-picker-list', relation_picker_module.list),
|
|
120
|
-
children: [
|
|
121
|
-
loading && 0 === documents.length && /*#__PURE__*/ jsx("div", {
|
|
122
|
-
className: classnames('byline-field-relation-picker-loading', relation_picker_module.loading),
|
|
123
|
-
children: /*#__PURE__*/ jsx(LoaderRing, {
|
|
124
|
-
size: 24,
|
|
125
|
-
color: "#888888"
|
|
126
|
-
})
|
|
127
|
-
}),
|
|
128
|
-
!loading && error && /*#__PURE__*/ jsx("div", {
|
|
129
|
-
className: classnames('byline-field-relation-picker-error', relation_picker_module.error),
|
|
130
|
-
children: error
|
|
131
|
-
}),
|
|
132
|
-
!loading && !error && 0 === documents.length && /*#__PURE__*/ jsx("div", {
|
|
133
|
-
className: classnames('byline-field-relation-picker-empty', relation_picker_module.empty),
|
|
134
|
-
children: "No documents found"
|
|
135
|
-
}),
|
|
136
|
-
documents.length > 0 && /*#__PURE__*/ jsx("ul", {
|
|
137
|
-
className: classnames('byline-field-relation-picker-rows', relation_picker_module.rows),
|
|
138
|
-
children: documents.map((doc)=>{
|
|
139
|
-
const id = doc.id;
|
|
140
|
-
const selected = selectedDocumentId === id;
|
|
141
|
-
return /*#__PURE__*/ jsx("li", {
|
|
142
|
-
children: /*#__PURE__*/ jsx("button", {
|
|
143
|
-
type: "button",
|
|
144
|
-
className: classnames('byline-field-relation-picker-row-button', relation_picker_module["row-button"], selected && [
|
|
145
|
-
'byline-field-relation-picker-row-selected',
|
|
146
|
-
relation_picker_module["row-selected"]
|
|
147
|
-
]),
|
|
148
|
-
onClick: ()=>setSelectedDocumentId(id),
|
|
149
|
-
children: pickerColumns && pickerColumns.length > 0 ? /*#__PURE__*/ jsx("div", {
|
|
150
|
-
className: classnames('byline-field-relation-picker-row-cells', relation_picker_module["row-cells"]),
|
|
151
|
-
children: pickerColumns.map((col)=>/*#__PURE__*/ jsx(PickerCell, {
|
|
152
|
-
column: col,
|
|
153
|
-
record: doc
|
|
154
|
-
}, String(col.fieldName)))
|
|
155
|
-
}) : /*#__PURE__*/ jsxs("div", {
|
|
156
|
-
className: classnames('byline-field-relation-picker-row-stack', relation_picker_module["row-stack"]),
|
|
157
|
-
children: [
|
|
158
|
-
/*#__PURE__*/ jsx("span", {
|
|
159
|
-
className: classnames('byline-field-relation-picker-row-label', relation_picker_module["row-label"]),
|
|
160
|
-
children: resolveRowLabel(doc, resolvedDisplayField) || id
|
|
161
|
-
}),
|
|
162
|
-
'string' == typeof doc.path && doc.path.length > 0 && /*#__PURE__*/ jsx("span", {
|
|
163
|
-
className: classnames('byline-field-relation-picker-row-path', relation_picker_module["row-path"]),
|
|
164
|
-
children: doc.path
|
|
165
|
-
})
|
|
166
|
-
]
|
|
167
|
-
})
|
|
168
|
-
})
|
|
169
|
-
}, id);
|
|
170
|
-
})
|
|
171
|
-
})
|
|
172
|
-
]
|
|
173
|
-
}),
|
|
174
|
-
totalPages > 1 && /*#__PURE__*/ jsxs("div", {
|
|
175
|
-
className: classnames('byline-field-relation-picker-pager', relation_picker_module.pager),
|
|
176
|
-
children: [
|
|
177
|
-
/*#__PURE__*/ jsx(Button, {
|
|
178
|
-
size: "xs",
|
|
179
|
-
variant: "outlined",
|
|
180
|
-
intent: "noeffect",
|
|
181
|
-
type: "button",
|
|
182
|
-
disabled: page <= 1 || loading,
|
|
183
|
-
onClick: ()=>setPage((p)=>Math.max(1, p - 1)),
|
|
184
|
-
children: "Previous"
|
|
185
|
-
}),
|
|
186
|
-
/*#__PURE__*/ jsxs("span", {
|
|
187
|
-
children: [
|
|
188
|
-
"Page ",
|
|
189
|
-
page,
|
|
190
|
-
" of ",
|
|
191
|
-
totalPages
|
|
192
|
-
]
|
|
193
|
-
}),
|
|
194
|
-
/*#__PURE__*/ jsx(Button, {
|
|
195
|
-
size: "xs",
|
|
196
|
-
variant: "outlined",
|
|
197
|
-
intent: "noeffect",
|
|
198
|
-
type: "button",
|
|
199
|
-
disabled: page >= totalPages || loading,
|
|
200
|
-
onClick: ()=>setPage((p)=>Math.min(totalPages, p + 1)),
|
|
201
|
-
children: "Next"
|
|
202
|
-
})
|
|
203
|
-
]
|
|
204
|
-
})
|
|
205
|
-
]
|
|
206
|
-
})
|
|
207
|
-
}),
|
|
208
|
-
/*#__PURE__*/ jsxs(Modal.Actions, {
|
|
209
|
-
children: [
|
|
210
|
-
/*#__PURE__*/ jsx(Button, {
|
|
211
|
-
size: "sm",
|
|
212
|
-
intent: "noeffect",
|
|
213
|
-
type: "button",
|
|
214
|
-
onClick: onDismiss,
|
|
215
|
-
className: classnames('byline-field-relation-picker-action', relation_picker_module.action),
|
|
216
|
-
children: "Cancel"
|
|
217
|
-
}),
|
|
218
|
-
/*#__PURE__*/ jsx(Button, {
|
|
219
|
-
size: "sm",
|
|
220
|
-
className: classnames('byline-field-relation-picker-action', relation_picker_module.action),
|
|
221
|
-
intent: "primary",
|
|
222
|
-
type: "button",
|
|
223
|
-
disabled: !selectedDocumentId,
|
|
224
|
-
onClick: handleSelect,
|
|
225
|
-
children: "Select"
|
|
226
|
-
})
|
|
227
|
-
]
|
|
228
|
-
})
|
|
229
|
-
]
|
|
230
|
-
})
|
|
231
|
-
});
|
|
232
|
-
};
|
|
233
|
-
export { RelationPicker };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import "./relation-picker_module.css";
|
|
2
|
-
const relation_picker_module = {
|
|
3
|
-
header: "header-quQOWP",
|
|
4
|
-
title: "title-nX1CSv",
|
|
5
|
-
body: "body-S2EcHm",
|
|
6
|
-
list: "list-UFzd89",
|
|
7
|
-
loading: "loading-LZVbkl",
|
|
8
|
-
error: "error-ZtOVuJ",
|
|
9
|
-
empty: "empty-ks6ZeP",
|
|
10
|
-
rows: "rows-QZrdT9",
|
|
11
|
-
"row-button": "row-button-ZHfXmj",
|
|
12
|
-
rowButton: "row-button-ZHfXmj",
|
|
13
|
-
"row-selected": "row-selected-VlrgyO",
|
|
14
|
-
rowSelected: "row-selected-VlrgyO",
|
|
15
|
-
"row-cells": "row-cells-aSIcf5",
|
|
16
|
-
rowCells: "row-cells-aSIcf5",
|
|
17
|
-
"row-stack": "row-stack-BOPzzj",
|
|
18
|
-
rowStack: "row-stack-BOPzzj",
|
|
19
|
-
"row-label": "row-label-gEaOEB",
|
|
20
|
-
rowLabel: "row-label-gEaOEB",
|
|
21
|
-
"row-path": "row-path-v1lJwb",
|
|
22
|
-
rowPath: "row-path-v1lJwb",
|
|
23
|
-
pager: "pager-EWOfET",
|
|
24
|
-
action: "action-STxQVM"
|
|
25
|
-
};
|
|
26
|
-
export default relation_picker_module;
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
:is(.header-quQOWP, .byline-field-relation-picker-header) {
|
|
2
|
-
margin-bottom: var(--spacing-8);
|
|
3
|
-
padding-top: 1rem;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
:is(.title-nX1CSv, .byline-field-relation-picker-title) {
|
|
7
|
-
margin: 0 0 var(--spacing-8) 0;
|
|
8
|
-
font-size: var(--font-size-xl);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
:is(.body-S2EcHm, .byline-field-relation-picker-body) {
|
|
12
|
-
flex-direction: column;
|
|
13
|
-
gap: .75rem;
|
|
14
|
-
display: flex;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
:is(.list-UFzd89, .byline-field-relation-picker-list) {
|
|
18
|
-
border: var(--border-width-thin) var(--border-style-solid) var(--gray-700);
|
|
19
|
-
border-radius: var(--border-radius-md);
|
|
20
|
-
min-height: 320px;
|
|
21
|
-
max-height: 420px;
|
|
22
|
-
overflow-y: auto;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
:is(.loading-LZVbkl, .byline-field-relation-picker-loading) {
|
|
26
|
-
justify-content: center;
|
|
27
|
-
align-items: center;
|
|
28
|
-
padding: 2.5rem 0;
|
|
29
|
-
display: flex;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
:is(.error-ZtOVuJ, .byline-field-relation-picker-error) {
|
|
33
|
-
color: var(--red-500);
|
|
34
|
-
font-size: var(--font-size-sm);
|
|
35
|
-
text-align: center;
|
|
36
|
-
padding: 2.5rem 1rem;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
:is(.empty-ks6ZeP, .byline-field-relation-picker-empty) {
|
|
40
|
-
color: var(--gray-400);
|
|
41
|
-
font-size: var(--font-size-sm);
|
|
42
|
-
text-align: center;
|
|
43
|
-
padding: 2.5rem 1rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
:is(.rows-QZrdT9, .byline-field-relation-picker-rows) {
|
|
47
|
-
margin: 0;
|
|
48
|
-
padding: 0;
|
|
49
|
-
list-style: none;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
:is(.rows-QZrdT9 > li + li, .byline-field-relation-picker-rows > li + li) {
|
|
53
|
-
border-top: var(--border-width-thin) var(--border-style-solid) var(--gray-700);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
:is(.row-button-ZHfXmj, .byline-field-relation-picker-row-button) {
|
|
57
|
-
width: 100%;
|
|
58
|
-
padding: var(--spacing-8) .75rem;
|
|
59
|
-
text-align: left;
|
|
60
|
-
color: inherit;
|
|
61
|
-
cursor: pointer;
|
|
62
|
-
background: none;
|
|
63
|
-
border: none;
|
|
64
|
-
transition: background-color .15s;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
:is(.row-button-ZHfXmj:hover, .byline-field-relation-picker-row-button:hover) {
|
|
68
|
-
background-color: var(--gray-25);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
:is(.row-selected-VlrgyO, .byline-field-relation-picker-row-selected) {
|
|
72
|
-
background-color: oklch(from var(--primary-200) l c h / .3);
|
|
73
|
-
border-left: 2px solid var(--primary-200);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
:is(.row-cells-aSIcf5, .byline-field-relation-picker-row-cells) {
|
|
77
|
-
align-items: center;
|
|
78
|
-
gap: .75rem;
|
|
79
|
-
display: flex;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
:is(.row-stack-BOPzzj, .byline-field-relation-picker-row-stack) {
|
|
83
|
-
flex-direction: column;
|
|
84
|
-
gap: .125rem;
|
|
85
|
-
display: flex;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
:is(.row-label-gEaOEB, .byline-field-relation-picker-row-label) {
|
|
89
|
-
color: var(--gray-100);
|
|
90
|
-
font-size: var(--font-size-sm);
|
|
91
|
-
text-overflow: ellipsis;
|
|
92
|
-
white-space: nowrap;
|
|
93
|
-
overflow: hidden;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
:is(.row-path-v1lJwb, .byline-field-relation-picker-row-path) {
|
|
97
|
-
color: var(--gray-500);
|
|
98
|
-
font-size: var(--font-size-xs);
|
|
99
|
-
text-overflow: ellipsis;
|
|
100
|
-
white-space: nowrap;
|
|
101
|
-
overflow: hidden;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
:is(.pager-EWOfET, .byline-field-relation-picker-pager) {
|
|
105
|
-
color: var(--gray-400);
|
|
106
|
-
font-size: var(--font-size-xs);
|
|
107
|
-
justify-content: space-between;
|
|
108
|
-
align-items: center;
|
|
109
|
-
display: flex;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
:is(.action-STxQVM, .byline-field-relation-picker-action) {
|
|
113
|
-
min-width: 70px;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
:is(:is([data-theme="dark"], .dark) .row-button-ZHfXmj:hover, :is([data-theme="dark"], .dark) .byline-field-relation-picker-row-button:hover) {
|
|
117
|
-
background-color: var(--gray-900);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
:is(:is([data-theme="dark"], .dark) .row-selected-VlrgyO, :is([data-theme="dark"], .dark) .byline-field-relation-picker-row-selected) {
|
|
121
|
-
background-color: oklch(from var(--primary-900) l c h / .3);
|
|
122
|
-
border-left: 2px solid var(--primary-400);
|
|
123
|
-
}
|
|
124
|
-
|